Merge version_2_1781388286649 into main #1

Merged
bender merged 3 commits from version_2_1781388286649 into main 2026-06-13 22:08:53 +00:00
13 changed files with 353 additions and 273 deletions

View File

@@ -12,8 +12,8 @@ export default function Layout() {
"href": "/"
},
{
"name": "Banyo Dolabı",
"href": "#products"
"name": "Modeller",
"href": "#catalog"
},
{
"name": "Projeler",
@@ -26,14 +26,6 @@ export default function Layout() {
{
"name": "İletişim",
"href": "#contact"
},
{
"name": "Hero",
"href": "#hero"
},
{
"name": "Metrics",
"href": "#metrics"
}
];
@@ -42,9 +34,9 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
logo="LOKS"
logo="LOKS MOBİLYA"
ctaButton={{
text: "Teklif Al",
text: "Ücretsiz Teklif Al",
href: "#contact",
}}
navItems={navItems} />

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #0B0B0B;
--card: #171717;
--foreground: #F8F6F2;
--primary-cta: #D4A64F;
--primary-cta-text: #0B0B0B;
--secondary-cta: #171717;
--secondary-cta-text: #D4A64F;
--accent: #D4A64F;
--background-accent: #171717;
--background: #F7F9FC;
--card: #FFFFFF;
--foreground: #1A1A1A;
--primary-cta: #0F2744;
--primary-cta-text: #FFFFFF;
--secondary-cta: #FFFFFF;
--secondary-cta-text: #0F2744;
--accent: #3B82F6;
--background-accent: #2D5B8A;
/* @layout/border-radius/rounded */
--radius: 1.5rem;

View File

@@ -1,265 +1,41 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBrand from '@/components/sections/hero/HeroBrand';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import { Award, Building2, ShieldCheck, Sparkles } from "lucide-react";
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 MetricsSection from './HomePage/sections/Metrics';
import ProductsSection from './HomePage/sections/Products';
import AboutSection from './HomePage/sections/About';
import BeforeAfterSection from './HomePage/sections/BeforeAfter';
import ProjectsSection from './HomePage/sections/Projects';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import CatalogSection from './HomePage/sections/Catalog';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Banyonuza Lüks Dokunuş Katın"
description="Özel Ölçü Üretim • Kaliteli Malzeme • Profesyonel Montaj"
primaryButton={{
text: "Teklif Al",
href: "#contact",
}}
secondaryButton={{
text: "Ürünleri İncele",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/interior-design-neoclassical-style-with-furnishings-decor_23-2151199302.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Uzmanlık"
title="Neden Biz?"
description="Premium standartlarda hizmet veriyoruz."
metrics={[
{
icon: Building2,
title: "Özel Ölçü Üretim",
value: "100%",
},
{
icon: ShieldCheck,
title: "Uzman Montaj",
value: "24/7",
},
{
icon: Sparkles,
title: "Kaliteli Malzeme",
value: "Premium",
},
{
icon: Award,
title: "Memnuniyet",
value: "%100",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Ürünler"
title="Ürün Kategorilerimiz"
description="Modern tasarımlarımızla banyonuzu yenileyin."
items={[
{
title: "Banyo Dolabı",
description: "Özel tasarım modern banyo dolapları.",
imageSrc: "http://img.b2bpic.net/free-photo/basin-black-faucet-green-bathroom-with-lighting-cozy-spa-nook_169016-69326.jpg",
},
{
title: "Duşakabin",
description: "Modern minimalist duş sistemleri.",
imageSrc: "http://img.b2bpic.net/free-photo/three-shower-niches-ambient-light-stone-minimalism_169016-68895.jpg",
},
{
title: "Boy Dolabı",
description: ık ve fonksiyonel boy dolapları.",
imageSrc: "http://img.b2bpic.net/free-photo/detail-home-interior-part-kitchen-interior-with-ovens_169016-20190.jpg",
},
{
title: "Çamaşır Dolabı",
description: "Düzenli ve estetik çamaşır alanları.",
imageSrc: "http://img.b2bpic.net/free-photo/mid-century-interior-design_23-2151902078.jpg",
},
{
title: "Banyo Aynası",
description: "Gold çerçeveli premium aynalar.",
imageSrc: "http://img.b2bpic.net/free-photo/set-papers-near-macaroons-plate-rings-mirror_23-2148042157.jpg",
},
{
title: "Aksesuarlar",
description: "Tamamlayıcı lüks banyo aksesuarları.",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-male-self-care-setting-still-life_23-2150326594.jpg",
},
{
title: "Komple Dönüşüm",
description: "A'dan Z'ye banyo renovasyonu.",
imageSrc: "http://img.b2bpic.net/free-photo/interior-modern-bathroom-with-window-overlooking-city_169016-26703.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<CatalogSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Neden LOKS MOBİLYA?"
descriptions={[
"Banyonuzu sadece bir alan olarak değil, kişisel bir kaçış noktası olarak görüyoruz. LOKS Mobilya olarak, lüksü fonksiyonellikle birleştirerek yaşam kalitenizi artırmayı hedefliyoruz.",
"Özel ölçü üretim imkanlarımız ve profesyonel montaj ekibimizle, hayallerinizdeki banyoyu gerçeğe dönüştürmek için çalışıyoruz. Kaliteden ödün vermeyen yaklaşımımızla modern yaşamın tüm gereksinimlerini karşılıyoruz.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="before-after" data-section="before-after">
<SectionErrorBoundary name="before-after">
<FeaturesArrowCards
tag="Dönüşüm"
title="Eski Banyodan Modern Yaşam Alanına"
description="Profesyonel ekibimizle banyonuzun havasını değiştiriyoruz."
items={[
{
title: "Modernize Edilmiş Duş Alanı",
tags: [
"Değişim",
"Lüks",
],
imageSrc: "http://img.b2bpic.net/free-photo/kitchen-drawer-contemporary-design-light-depth_169016-69050.jpg",
},
{
title: "Fonksiyonel Dolap Çözümleri",
tags: [
"Organizasyon",
"Premium",
],
imageSrc: "http://img.b2bpic.net/free-photo/carpenter-marking-wooden-desk-with-measuring-tape_74855-5662.jpg",
},
{
title: "Estetik Ayna ve Aydınlatma",
tags: [
"Aydınlatma",
"Modern",
],
imageSrc: "http://img.b2bpic.net/free-photo/colorful-terrazzo-surface-with-irregular-stone-fragments_84443-73027.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<BeforeAfterSection />
<div id="projects" data-section="projects">
<SectionErrorBoundary name="projects">
<SocialProofMarquee
tag="Projeler"
title="Referanslarımız"
description="Mutlu müşterilerimizin yaşam alanlarına değer kattık."
names={[
"Villa Projeleri",
"Premium Konutlar",
"Modern Daireler",
"Luxury Spa",
"Boutique Oteller",
"Özel Rezidans",
"Mimari Tasarımlar",
]}
/>
</SectionErrorBoundary>
</div>
<ProjectsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Müşterilerimiz"
title="Neler Söylüyorlar?"
description="Müşteri memnuniyeti en büyük referansımızdır."
testimonials={[
{
name: "Ayşe Y.",
role: "Mimar",
quote: "İşlerini o kadar profesyonel yapıyorlar ki sonuçtan büyülenmemek elde değil.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-beautiful-brunette-woman-girl-model-with-nude-makeup-wearing-summer-hipster-biker-leather-jacket-clothes-posing-near-wall-sitting-floor_158538-8923.jpg",
},
{
name: "Mehmet K.",
role: "İş İnsanı",
quote: "LOKS Mobilya ile banyom tamamen lüks bir spa alanına dönüştü.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-positive-confident-businessman_1262-17122.jpg",
},
{
name: "Canan S.",
role: "Yönetici",
quote: "Hizmet kalitesi ve malzeme seçimi gerçekten üst düzey.",
imageSrc: "http://img.b2bpic.net/free-photo/stusio-portrait-trendy-brunette-woman-wearing-white-linen-suit-posing-beige-background-blogger-fashionista_291049-2973.jpg",
},
{
name: "Emre D.",
role: "Daire Sahibi",
quote: "Tam vaktinde teslimat ve kusursuz bir montaj süreci yaşadık.",
imageSrc: "http://img.b2bpic.net/free-photo/blond-man-surprised_1194-2887.jpg",
},
{
name: "Zeynep B.",
role: "Ev Sahibi",
quote: "Tasarımları modern ve çok fonksiyonel. Kesinlikle tavsiye ederim.",
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-vacation_23-2149204469.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="SSS"
title="Sıkça Sorulan Sorular"
description="Süreçlerimizle ilgili merak edilenler."
items={[
{
question: "Keşif hizmeti ücretli mi?",
answer: "Hayır, ücretsiz keşif hizmeti sunuyoruz.",
},
{
question: "Üretim ne kadar sürer?",
answer: "Projenin kapsamına göre genellikle 2-4 hafta arasında teslimat sağlıyoruz.",
},
{
question: "Garanti veriyor musunuz?",
answer: "Tüm ürünlerimiz ve montaj işçiliğimiz için garanti sunuyoruz.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/view-plumber-tool-box-ready-fixing-problems-bathroom_23-2150990694.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Teklif Al"
text="Hayalinizdeki banyoya kavuşmak için ücretsiz keşif talep edin."
primaryButton={{
text: "WhatsApp'tan Yaz",
href: "https://wa.me/905382784327",
}}
secondaryButton={{
text: "Hemen Ara",
href: "tel:+905382784327",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,19 @@
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Hakkımızda"
descriptions={["LOKS MOBİLYA modern tasarım anlayışı ve yüksek kalite standartlarıyla üretim yapan bir markadır. Estetik ve dayanıklılığı bir araya getirerek müşterilerine özel çözümler sunmaktadır.","Banyonuzu sadece bir alan olarak değil, kişisel bir kaçış noktası olarak görüyoruz. LOKS Mobilya olarak, lüksü fonksiyonellikle birleştirerek yaşam kalitenizi artırmayı hedefliyoruz.","Özel ölçü üretim imkanlarımız ve profesyonel montaj ekibimizle, hayallerinizdeki banyoyu gerçeğe dönüştürmek için çalışıyoruz. Kaliteden ödün vermeyen yaklaşımımızla modern yaşamın tüm gereksinimlerini karşılıyoruz."]}
/>
</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 "before-after" section.
import React from 'react';
import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function BeforeAfterSection(): React.JSX.Element {
return (
<div id="before-after" data-section="before-after">
<SectionErrorBoundary name="before-after">
<FeaturesArrowCards
tag="Dönüşüm"
title="Eski Banyodan Modern Yaşam Alanına"
description="Profesyonel ekibimizle banyonuzun havasını değiştiriyoruz."
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/kitchen-drawer-contemporary-design-light-depth_169016-69050.jpg","tags":["Değişim","Lüks"],"title":"Modernize Edilmiş Duş Alanı"},{"tags":["Organizasyon","Premium"],"title":"Fonksiyonel Dolap Çözümleri","imageSrc":"http://img.b2bpic.net/free-photo/carpenter-marking-wooden-desk-with-measuring-tape_74855-5662.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/colorful-terrazzo-surface-with-irregular-stone-fragments_84443-73027.jpg","tags":["Aydınlatma","Modern"],"title":"Estetik Ayna ve Aydınlatma"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,55 @@
import { motion } from "motion/react"
import Button from "@/components/ui/Button"
import Card from "@/components/ui/Card"
import ScrollReveal from "@/components/ui/ScrollReveal"
export default function CatalogSection() {
return (
<section id="catalog" data-webild-section="catalog" className="relative w-full bg-background">
<div className="max-w-content-width mx-auto px-6">
<ScrollReveal variant="fade">
<div className="text-center">
<span className="text-accent font-medium tracking-wider uppercase text-sm mb-4 block">Katalog</span>
<h2 className="text-4xl md:text-5xl font-bold text-foreground mb-6">Lüks Modellerimiz</h2>
<p className="text-lg text-muted-foreground max-w-content-width mx-auto">
Her banyoya uygun, özel tasarım ve yüksek kaliteli malzemelerle üretilmiş model seçeneklerimiz.
</p>
</div>
</ScrollReveal>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6">
{[
"NOVA LINE", "PANORAMA", "TIRTIKLI", "INCI", "MONVERA", "TREVIA", "VIRELLO", "VERION",
"VALENC", "SAVERO", "VENSA", "SELVO", "LORYA", "CORVINO", "MOVENTO", "LIRO",
"RIVO", "VEXO", "ORVO", "ZARO", "NEXO", "TAVO", "ELORIA", "VARELLO",
"LIVANO", "CORVATO", "CERVON", "VELTRIX", "NOVENTIS", "MARVELLO", "ELVANE", "LARO",
"SENO", "VANO", "NEXORA", "VALTERO", "AVORIA", "LUXSIRA", "VANTIO", "ORVION"
].map((model, index) => (
<ScrollReveal variant="fade" key={index} delay={index * 0.05}>
<Card className="group overflow-hidden border border-border/50 bg-card hover:border-accent/50 transition-colors duration-300">
<div className="relative aspect-[4/3] overflow-hidden bg-muted">
<img
src=""
alt={`${model} luxury bathroom furniture model`}
className="w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"
/>
<div className="absolute inset-0 bg-black/20 group-hover:bg-black/40 transition-colors duration-300" />
</div>
<div className="p-6">
<div className="text-xs text-muted-foreground mb-2 font-mono">KOD: {model.replace(/\s+/g, '')}-24</div>
<h3 className="text-xl font-bold text-foreground mb-4">{model}</h3>
<Button
variant="secondary"
className="w-full justify-center transition-colors"
href="https://wa.me/905382784327"
text="Bu Model İçin Teklif Al"
/>
</div>
</Card>
</ScrollReveal>
))}
</div>
</div>
</section>
);
}

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="İletişim"
text="Hayalinizdeki banyoya kavuşmak için ücretsiz keşif talep edin."
primaryButton={{"href":"https://wa.me/905382784327","text":"WhatsApp"}}
secondaryButton={{"href":"tel:+905382784327","text":"Telefon"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// 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="Süreç"
title="Süreç Nasıl İşliyor?"
description="Süreçlerimizle ilgili merak edilenler."
items={[{"question":"Keşif hizmeti ücretli mi?","answer":"Hayır, ücretsiz keşif hizmeti sunuyoruz."},{"question":"Üretim ne kadar sürer?","answer":"Projenin kapsamına göre genellikle 2-4 hafta arasında teslimat sağlıyoruz."},{"answer":"Tüm ürünlerimiz ve montaj işçiliğimiz için garanti sunuyoruz.","question":"Garanti veriyor musunuz?"}]}
imageSrc="http://img.b2bpic.net/free-photo/view-plumber-tool-box-ready-fixing-problems-bathroom_23-2150990694.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// 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 HeroBrand from '@/components/sections/hero/HeroBrand';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Banyonuza Lüks Dokunuş Katın"
description="Özel Ölçü Üretim • Kaliteli Malzeme • Profesyonel Montaj"
primaryButton={{"href":"https://wa.me/905382784327","text":"WhatsApp'tan Teklif Al"}}
secondaryButton={{"href":"#catalog","text":"Modelleri İncele"}}
imageSrc="http://img.b2bpic.net/free-photo/interior-design-neoclassical-style-with-furnishings-decor_23-2151199302.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { Award, Building2, ShieldCheck, Sparkles } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Neden Biz?"
title="Neden LOKS MOBİLYA?"
description="Premium standartlarda hizmet veriyoruz."
metrics={[{"value":"100%","title":"Özel Ölçü Üretim","icon":"Building2"},{"icon":"ShieldCheck","title":"Uzman Montaj","value":"24/7"},{"icon":"Sparkles","title":"Kaliteli Malzeme","value":"Premium"},{"icon":"Award","title":"Memnuniyet","value":"%100"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Koleksiyonlar"
title="Lüks Koleksiyonlar"
description="Modern tasarımlarımızla banyonuzu yenileyin."
items={[
{
"description": "Modern ve minimalist tasarımlar.",
"title": "Modern Seri",
"imageSrc": "http://img.b2bpic.net/free-photo/basin-black-faucet-green-bathroom-with-lighting-cozy-spa-nook_169016-69326.jpg"
},
{
"title": "Premium Seri",
"description": "Lüks ve premium detaylar.",
"imageSrc": "http://img.b2bpic.net/free-photo/three-shower-niches-ambient-light-stone-minimalism_169016-68895.jpg"
},
{
"title": "Ahşap Seri",
"description": "Doğal ahşap dokusu ve sıcaklığı.",
"imageSrc": "http://img.b2bpic.net/free-photo/detail-home-interior-part-kitchen-interior-with-ovens_169016-20190.jpg"
},
{
"description": "Düzenli ve estetik çamaşır alanları.",
"title": "Çamaşır Dolabı Çözümleri",
"imageSrc": "http://img.b2bpic.net/free-photo/mid-century-interior-design_23-2151902078.jpg"
},
{
"title": "Klasik Seri",
"description": "Zamansız ve zarif detaylar.",
"imageSrc": ""
},
{
"title": "Minimalist Seri",
"description": "Sade ve şık banyo tasarımları.",
"imageSrc": ""
},
{
"title": "Ekolojik Seri",
"description": "Doğa dostu ve sürdürülebilir malzemeler.",
"imageSrc": ""
}
]}
/>
</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 "projects" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProjectsSection(): React.JSX.Element {
return (
<div id="projects" data-section="projects">
<SectionErrorBoundary name="projects">
<SocialProofMarquee
tag="Projeler"
title="Referanslarımız"
description="Mutlu müşterilerimizin yaşam alanlarına değer kattık."
names={["Villa Projeleri","Premium Konutlar","Modern Daireler","Luxury Spa","Boutique Oteller","Özel Rezidans","Mimari Tasarımlar"]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// 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 TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Müşterilerimiz"
title="Neler Söylüyorlar?"
description="Müşteri memnuniyeti en büyük referansımızdır."
testimonials={[
{
name: "Ayşe Y.",
role: "Mimar",
quote: "İşlerini o kadar profesyonel yapıyorlar ki sonuçtan büyülenmemek elde değil.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-beautiful-brunette-woman-girl-model-with-nude-makeup-wearing-summer-hipster-biker-leather-jacket-clothes-posing-near-wall-sitting-floor_158538-8923.jpg",
},
{
name: "Mehmet K.",
role: "İş İnsanı",
quote: "LOKS Mobilya ile banyom tamamen lüks bir spa alanına dönüştü.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-positive-confident-businessman_1262-17122.jpg",
},
{
name: "Canan S.",
role: "Yönetici",
quote: "Hizmet kalitesi ve malzeme seçimi gerçekten üst düzey.",
imageSrc: "http://img.b2bpic.net/free-photo/stusio-portrait-trendy-brunette-woman-wearing-white-linen-suit-posing-beige-background-blogger-fashionista_291049-2973.jpg",
},
{
name: "Emre D.",
role: "Daire Sahibi",
quote: "Tam vaktinde teslimat ve kusursuz bir montaj süreci yaşadık.",
imageSrc: "http://img.b2bpic.net/free-photo/blond-man-surprised_1194-2887.jpg",
},
{
name: "Zeynep B.",
role: "Ev Sahibi",
quote: "Tasarımları modern ve çok fonksiyonel. Kesinlikle tavsiye ederim.",
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-vacation_23-2149204469.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}