Merge version_2_1781680198891 into main #4

Merged
bender merged 1 commits from version_2_1781680198891 into main 2026-06-17 07:11:52 +00:00
12 changed files with 292 additions and 167 deletions

View File

@@ -1,22 +1,22 @@
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
@import "tailwindcss";
@import "./styles/masks.css";
@import "./styles/animations.css";
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--background: #ffffff;
--card: #f8f9fa;
--foreground: #111827;
--primary-cta: #000000;
--primary-cta-text: #ffffff;
--secondary-cta: #f3f4f6;
--secondary-cta-text: #111827;
--accent: #e5e7eb;
--background-accent: #d1d5db;
/* @layout/border-radius/rounded */
--radius: 0.5rem;
--radius: 0rem;
/* @layout/content-width/medium */
--width-content-width: clamp(40rem, 72.5vw, 100rem);
@@ -88,7 +88,7 @@
--color-background-accent: var(--background-accent);
/* Fonts */
--font-sans: 'Open Sans', sans-serif;
--font-sans: 'Inter', sans-serif;
--font-tight: "Inter Tight", sans-serif;
--font-mono: monospace;

View File

@@ -1,169 +1,42 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TeamGlassCards from '@/components/sections/team/TeamGlassCards';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import ServicesSection from './HomePage/sections/Services';
import PricingSection from './HomePage/sections/Pricing';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialProofSection from './HomePage/sections/SocialProof';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroCenteredLogos
avatarsSrc={[
"http://img.b2bpic.net/free-photo/young-cheerful-man-classic-black-jacket-white-shirt-happily-showing-ok-gesture-while-looking-camera-orange-background_574295-5835.jpg", "http://img.b2bpic.net/free-photo/pretty-student-girl-with-gathered-hair-make-up-relaxing-home-after-lectures-university-attractive-cheerful-young-woman-blue-dress-sitting-comfortable-couch-with-joyful-relaxed-smile_343059-2102.jpg", "http://img.b2bpic.net/free-photo/closeup-smiling-beautiful-adult-businesswoman_1262-1760.jpg", "http://img.b2bpic.net/free-photo/very-good-smiling-brunette-woman-shows-ok-okay-hand-sign-looking-satisfied-recommend-great-deal-pleased-with-quality-standing-white-background_176420-46695.jpg"
]}
avatarText="Ponad 1000 zadowolonych klientów"
title="Twój samochód w idealnym stanie"
description="Profesjonalny detailing, zabezpieczenia ceramiczne i kompleksowa pielęgnacja w PolishIT Detailing."
primaryButton={{ text: "Zobacz ofertę", href: "#services" }}
secondaryButton={{ text: "Kontakt", href: "#contact" }}
names={["Jan", "Anna", "Marek", "Ewa"]}
imageSrc="http://img.b2bpic.net/free-photo/closeup-shot-side-mirror-modern-white-cabriolet-car_181624-25257.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="O nas"
title="Pasja do perfekcji"
description="W PolishIT Detailing podchodzimy do każdego auta z najwyższą dbałością o detale. Wykorzystujemy tylko certyfikowane produkty."
items={[
{ icon: "Sparkles", title: "Najwyższa jakość", description: "Używamy tylko sprawdzonych środków chemicznych." },
{ icon: "Shield", title: "Ochrona", description: "Zapewniamy ceramiczne zabezpieczenie lakieru." },
{ icon: "Zap", title: "Szybkość", description: "Efekty, które zobaczysz natychmiast po odbiorze." }
]}
imageSrc="http://img.b2bpic.net/free-photo/man-polish-car-garage_1157-36588.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Nasze zalety"
title="Dlaczego my?"
description="Poznaj kluczowe aspekty naszej pracy."
items={[
{ tag: "Detailing", title: "Precyzja", description: "Każdy centymetr jest sprawdzany przez naszych fachowców.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-car-washing-service_23-2149212227.jpg" },
{ tag: "Ochrona", title: "Ceramika", description: "Długotrwała ochrona przed warunkami atmosferycznymi.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/man-polishing-car-with-orbital-applicator_1303-30572.jpg" },
{ tag: "Wnętrze", title: "Pranie tapicerki", description: "Dokładne czyszczenie i odświeżanie wnętrza pojazdu.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-car-interior-clean-up-service_23-2149212260.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Usługi"
title="Co oferujemy?"
description="Nasza pełna oferta detailingowa."
items={[
{ title: "Mycie ręczne", description: "Bezpieczne mycie z dbałością o lakier.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/bubbles-dark-water_23-2147933802.jpg" },
{ title: "Polerowanie lakieru", description: "Usuwanie rys i wydobycie blasku.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/close-up-car-care-process_23-2149193625.jpg" },
{ title: "Powłoki ceramiczne", description: "Najwyższa ochrona lakieru.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-white-shirt-works-with-cement_1157-37360.jpg" },
{ title: "Pranie wnętrza", description: "Głębokie oczyszczanie tkanin.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-looking-car-car-showroom_1303-14574.jpg" },
{ title: "Detailing silnika", description: "Czyszczenie komory silnika.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/female-mechanic-pouring-oil-lubricant-into-car-engine_1170-1460.jpg" },
{ title: "Przyciemnianie szyb", description: "Profesjonalna folia przyciemniająca.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/car-wrapping-with-foil-car-service_1303-32349.jpg" },
{ title: "Detale skórzane", description: "Renowacja i konserwacja skóry.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/luggage-seen-from-rear-car-window_23-2150934324.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingMediaCards
tag="Cennik"
title="Wybierz pakiet dla siebie"
description="Elastyczne rozwiązania dla każdego pojazdu."
plans={[
{ tag: "Basic", price: "300 PLN", period: "jednorazowo", features: ["Mycie ręczne", "Odkurzanie", "Nabłyszczanie opon"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/man-s-hand-is-cleaning-waxing-car_1150-6113.jpg" },
{ tag: "Premium", price: "800 PLN", period: "jednorazowo", features: ["Mycie detailingowe", "Polerowanie jednoetapowe", "Woskowanie premium"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/shaving-brush-spray-bottle-with-blurred-bottle_23-2148256969.jpg" },
{ tag: "Expert", price: "1500 PLN", period: "jednorazowo", features: ["Pełny detailing", "Powłoka ceramiczna 1 rok", "Czyszczenie komory silnika"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/car-wash-detailing-station_1303-22304.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamGlassCards
tag="Zespół"
title="Nasi specjaliści"
description="Poznaj ekspertów, którzy dbają o Twój samochód."
members={[
{ name: "Marek Nowak", role: "Head Detailer", imageSrc: "http://img.b2bpic.net/free-photo/close-up-car-care-process_23-2149193573.jpg" },
{ name: "Anna Kowalska", role: "Specjalista ds. Powłok", imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-cleaning-his-home_23-2148112857.jpg" },
{ name: "Tomasz Wiśniewski", role: "Technik wnętrz", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-car-service-owner-with-arms-crossed-his-workshop_637285-9434.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialTrustCard
quote="Zdecydowanie najlepszy detailing w mieście. Auto wygląda lepiej niż po wyjeździe z salonu!"
rating={5}
author="Katarzyna W."
avatars={[
{ name: "Katarzyna W.", imageSrc: "http://img.b2bpic.net/free-photo/blond-man-happy-expression_1194-2919.jpg" },
{ name: "Marek T.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-with-long-brown-hair-black-t-shirt-white-jacket_613910-8245.jpg" },
{ name: "Adam S.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-man-looking-photographer_23-2148398473.jpg" },
{ name: "Ewa J.", imageSrc: "http://img.b2bpic.net/free-photo/stylish-businesswoman-with-glasses_23-2147989567.jpg" },
{ name: "Robert B.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-smiling-woman-looking-camera_23-2148187139.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Partnerzy"
title="Pracujemy na najlepszych produktach"
description="Współpracujemy z liderami rynku detailingowego, aby zapewnić najwyższą jakość usług."
names={["Meguiar's", "Gtechniq", "Sonax", "Chemical Guys", "Koch Chemie", "CarPro", "Fresso"]}
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="FAQ"
title="Masz pytania?"
description="Znajdź odpowiedzi na najczęstsze wątpliwości."
items={[
{ question: "Jak długo trwa pełny detailing?", answer: "Standardowo od 1 do 3 dni, w zależności od wybranego pakietu." },
{ question: "Czy muszę zostawić auto?", answer: "Tak, większość usług wymaga pozostawienia pojazdu na cały proces." },
{ question: "Czy używacie profesjonalnej chemii?", answer: "Oczywiście, stosujemy wyłącznie sprawdzone preparaty detailingowe." }
]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-woman-talking_23-2150171287.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Kontakt"
text="Umów swoje auto już dziś i poczuj różnicę."
primaryButton={{ text: "Zadzwoń teraz", href: "tel:+48123456789" }}
secondaryButton={{ text: "Napisz wiadomość", href: "mailto:kontakt@polishit.pl" }}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,26 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="O nas"
title="Pasja do perfekcji"
description="W PolishIT Detailing podchodzimy do każdego auta z najwyższą dbałością o detale. Wykorzystujemy tylko certyfikowane produkty."
items={[
{ icon: "Sparkles", title: "Najwyższa jakość", description: "Używamy tylko sprawdzonych środków chemicznych." },
{ icon: "Shield", title: "Ochrona", description: "Zapewniamy ceramiczne zabezpieczenie lakieru." },
{ icon: "Zap", title: "Szybkość", description: "Efekty, które zobaczysz natychmiast po odbiorze." }
]}
imageSrc="http://img.b2bpic.net/free-photo/man-polish-car-garage_1157-36588.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Kontakt"
text="Umów swoje auto już dziś i poczuj różnicę."
primaryButton={{ text: "Zadzwoń teraz", href: "tel:+48123456789" }}
secondaryButton={{ text: "Napisz wiadomość", href: "mailto:kontakt@polishit.pl" }}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,26 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="FAQ"
title="Masz pytania?"
description="Znajdź odpowiedzi na najczęstsze wątpliwości."
items={[
{ question: "Jak długo trwa pełny detailing?", answer: "Standardowo od 1 do 3 dni, w zależności od wybranego pakietu." },
{ question: "Czy muszę zostawić auto?", answer: "Tak, większość usług wymaga pozostawienia pojazdu na cały proces." },
{ question: "Czy używacie profesjonalnej chemii?", answer: "Oczywiście, stosujemy wyłącznie sprawdzone preparaty detailingowe." }
]}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-man-woman-talking_23-2150171287.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Nasze zalety"
title="Dlaczego my?"
description="Poznaj kluczowe aspekty naszej pracy."
items={[
{ tag: "Detailing", title: "Precyzja", description: "Każdy centymetr jest sprawdzany przez naszych fachowców.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-car-washing-service_23-2149212227.jpg" },
{ tag: "Ochrona", title: "Ceramika", description: "Długotrwała ochrona przed warunkami atmosferycznymi.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/man-polishing-car-with-orbital-applicator_1303-30572.jpg" },
{ tag: "Wnętrze", title: "Pranie tapicerki", description: "Dokładne czyszczenie i odświeżanie wnętrza pojazdu.", primaryButton: { text: "Więcej", href: "#services" }, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-car-interior-clean-up-service_23-2149212260.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroCenteredLogos
avatarsSrc={[
"http://img.b2bpic.net/free-photo/young-cheerful-man-classic-black-jacket-white-shirt-happily-showing-ok-gesture-while-looking-camera-orange-background_574295-5835.jpg", "http://img.b2bpic.net/free-photo/pretty-student-girl-with-gathered-hair-make-up-relaxing-home-after-lectures-university-attractive-cheerful-young-woman-blue-dress-sitting-comfortable-couch-with-joyful-relaxed-smile_343059-2102.jpg", "http://img.b2bpic.net/free-photo/closeup-smiling-beautiful-adult-businesswoman_1262-1760.jpg", "http://img.b2bpic.net/free-photo/very-good-smiling-brunette-woman-shows-ok-okay-hand-sign-looking-satisfied-recommend-great-deal-pleased-with-quality-standing-white-background_176420-46695.jpg"
]}
avatarText="Ponad 1000 zadowolonych klientów"
title="Twój samochód w idealnym stanie"
description="Profesjonalny detailing, zabezpieczenia ceramiczne i kompleksowa pielęgnacja w PolishIT Detailing."
primaryButton={{ text: "Zobacz ofertę", href: "#services" }}
secondaryButton={{ text: "Kontakt", href: "#contact" }}
names={["Jan", "Anna", "Marek", "Ewa"]}
imageSrc="http://img.b2bpic.net/free-photo/closeup-shot-side-mirror-modern-white-cabriolet-car_181624-25257.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingMediaCards from '@/components/sections/pricing/PricingMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingMediaCards
tag="Cennik"
title="Wybierz pakiet dla siebie"
description="Elastyczne rozwiązania dla każdego pojazdu."
plans={[
{ tag: "Basic", price: "300 PLN", period: "jednorazowo", features: ["Mycie ręczne", "Odkurzanie", "Nabłyszczanie opon"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/man-s-hand-is-cleaning-waxing-car_1150-6113.jpg" },
{ tag: "Premium", price: "800 PLN", period: "jednorazowo", features: ["Mycie detailingowe", "Polerowanie jednoetapowe", "Woskowanie premium"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/shaving-brush-spray-bottle-with-blurred-bottle_23-2148256969.jpg" },
{ tag: "Expert", price: "1500 PLN", period: "jednorazowo", features: ["Pełny detailing", "Powłoka ceramiczna 1 rok", "Czyszczenie komory silnika"], primaryButton: { text: "Wybierz", href: "#contact" }, imageSrc: "http://img.b2bpic.net/free-photo/car-wash-detailing-station_1303-22304.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Usługi"
title="Co oferujemy?"
description="Nasza pełna oferta detailingowa."
items={[
{ title: "Mycie ręczne", description: "Bezpieczne mycie z dbałością o lakier.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/bubbles-dark-water_23-2147933802.jpg" },
{ title: "Polerowanie lakieru", description: "Usuwanie rys i wydobycie blasku.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/close-up-car-care-process_23-2149193625.jpg" },
{ title: "Powłoki ceramiczne", description: "Najwyższa ochrona lakieru.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-white-shirt-works-with-cement_1157-37360.jpg" },
{ title: "Pranie wnętrza", description: "Głębokie oczyszczanie tkanin.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/man-looking-car-car-showroom_1303-14574.jpg" },
{ title: "Detailing silnika", description: "Czyszczenie komory silnika.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/female-mechanic-pouring-oil-lubricant-into-car-engine_1170-1460.jpg" },
{ title: "Przyciemnianie szyb", description: "Profesjonalna folia przyciemniająca.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/car-wrapping-with-foil-car-service_1303-32349.jpg" },
{ title: "Detale skórzane", description: "Renowacja i konserwacja skóry.", href: "#contact", imageSrc: "http://img.b2bpic.net/free-photo/luggage-seen-from-rear-car-window_23-2150934324.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "social-proof" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SocialProofSection(): React.JSX.Element {
return (
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Partnerzy"
title="Pracujemy na najlepszych produktach"
description="Współpracujemy z liderami rynku detailingowego, aby zapewnić najwyższą jakość usług."
names={["Meguiar's", "Gtechniq", "Sonax", "Chemical Guys", "Koch Chemie", "CarPro", "Fresso"]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "team" section.
import React from 'react';
import TeamGlassCards from '@/components/sections/team/TeamGlassCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamGlassCards
tag="Zespół"
title="Nasi specjaliści"
description="Poznaj ekspertów, którzy dbają o Twój samochód."
members={[
{ name: "Marek Nowak", role: "Head Detailer", imageSrc: "http://img.b2bpic.net/free-photo/close-up-car-care-process_23-2149193573.jpg" },
{ name: "Anna Kowalska", role: "Specjalista ds. Powłok", imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-cleaning-his-home_23-2148112857.jpg" },
{ name: "Tomasz Wiśniewski", role: "Technik wnętrz", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-car-service-owner-with-arms-crossed-his-workshop_637285-9434.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialTrustCard
quote="Zdecydowanie najlepszy detailing w mieście. Auto wygląda lepiej niż po wyjeździe z salonu!"
rating={5}
author="Katarzyna W."
avatars={[
{ name: "Katarzyna W.", imageSrc: "http://img.b2bpic.net/free-photo/blond-man-happy-expression_1194-2919.jpg" },
{ name: "Marek T.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman-with-long-brown-hair-black-t-shirt-white-jacket_613910-8245.jpg" },
{ name: "Adam S.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-man-looking-photographer_23-2148398473.jpg" },
{ name: "Ewa J.", imageSrc: "http://img.b2bpic.net/free-photo/stylish-businesswoman-with-glasses_23-2147989567.jpg" },
{ name: "Robert B.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-smiling-woman-looking-camera_23-2148187139.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
);
}