payaza-storefront-layouts 1.0.20 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -1
  2. package/dist/layouts/booking/components/BookingHomePage.js +7 -7
  3. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -1
  4. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +2 -2
  5. package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
  6. package/dist/layouts/clothing/components/ClothingHomePage.js +3 -3
  7. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
  8. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +4 -4
  9. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -1
  10. package/dist/layouts/electronics/components/ElectronicsHomePage.js +3 -3
  11. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
  12. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +2 -2
  13. package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -1
  14. package/dist/layouts/food/components/FoodHomePage.js +3 -3
  15. package/dist/layouts/food/pages/AboutPage.js +2 -2
  16. package/dist/layouts/food/pages/ContactPage.js +1 -1
  17. package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -1
  18. package/dist/layouts/food-modern/components/FoodHomePageModern.js +2 -2
  19. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -1
  20. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +5 -5
  21. package/dist/layouts/shared/components/PromoBanner.js +1 -1
  22. package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -1
  23. package/dist/layouts/shared/components/StoreFooter.js +1 -1
  24. package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -1
  25. package/dist/layouts/shared/components/StoreHeader.js +1 -1
  26. package/dist/layouts/shared/components/TestimonialCard.js +1 -1
  27. package/dist/preview/LayoutPreview.d.ts +2 -1
  28. package/dist/preview/LayoutPreview.d.ts.map +1 -1
  29. package/dist/preview/LayoutPreview.js +2 -2
  30. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BookingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking/components/BookingHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,EAAE,oBAAoB,2CAqUpE"}
1
+ {"version":3,"file":"BookingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking/components/BookingHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,UAAU,oBAAoB;IAC5B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,EAAE,WAAW,EAAE,EAAE,oBAAoB,2CAoVpE"}
@@ -12,25 +12,25 @@ export function BookingHomePage({ storeConfig }) {
12
12
  const primaryColor = storeConfig.branding.primaryColor;
13
13
  const layoutConfig = storeConfig.layoutConfig;
14
14
  const heroBg = getBannerImage(storeConfig, 'hero_bg', 'https://images.unsplash.com/photo-1457972729786-0411a3b2b626?q=80&w=2070&auto=format&fit=crop');
15
- return (_jsxs("div", { className: "min-h-screen bg-white", children: [_jsxs("section", { className: "relative h-[85vh] min-h-[600px] w-full overflow-hidden flex items-center bg-gray-900", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(Image, { src: heroBg, alt: "Makeup Studio", fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-black/40" })] }), _jsx("div", { className: "container mx-auto px-4 relative z-10 text-white", children: _jsxs("div", { className: "max-w-2xl animate-fade-in-up", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/20 backdrop-blur-md border border-white/30 text-white text-sm font-medium mb-6", children: [_jsx(Sparkles, { className: "w-4 h-4" }), _jsx("span", { children: getTextContent(storeConfig, 'hero_badge', 'Premium Beauty Studio') })] }), _jsx("h1", { className: "text-4xl md:text-5xl lg:text-7xl font-light mb-6 tracking-tight leading-tight", children: (() => {
16
- const titleText = getTextContent(storeConfig, 'hero_title', 'Reveal Your\nInner Radiance.');
15
+ return (_jsxs("div", { className: "min-h-screen bg-white", children: [_jsxs("section", { "data-section": "hero", className: "relative h-[85vh] min-h-[600px] w-full overflow-hidden flex items-center bg-gray-900", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(Image, { src: heroBg, alt: "Makeup Studio", fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-black/40" })] }), _jsx("div", { className: "container mx-auto px-4 relative z-10 text-white", children: _jsxs("div", { className: "max-w-2xl animate-fade-in-up", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/20 backdrop-blur-md border border-white/30 text-white text-sm font-medium mb-6", children: [_jsx(Sparkles, { className: "w-4 h-4" }), _jsx("span", { children: getTextContent(storeConfig, 'hero_badge', 'Premium Beauty Studio') })] }), _jsx("h1", { className: "text-4xl md:text-5xl lg:text-7xl font-light mb-6 tracking-tight leading-tight", children: (() => {
16
+ const titleText = layoutConfig?.sections?.hero?.title || getTextContent(storeConfig, 'hero_title', 'Reveal Your\nInner Radiance.');
17
17
  const lines = titleText.split('\n');
18
18
  return lines.map((line, i) => (_jsx("span", { children: i === lines.length - 1 ? (_jsx("span", { className: "font-bold", children: line })) : (_jsxs(_Fragment, { children: [line, " ", _jsx("br", {})] })) }, i)));
19
- })() }), _jsx("p", { className: "text-xl md:text-2xl text-gray-200 mb-10 font-light leading-relaxed max-w-lg", children: getTextContent(storeConfig, 'hero_subtitle', storeConfig.description || "Enhance your natural beauty with our professional makeup artistry.") }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4", children: [_jsx(Link, { href: `/${storeConfig.slug}/book`, children: _jsx(Button, { size: "lg", className: "h-14 px-8 rounded-full text-lg font-medium bg-white text-black hover:bg-gray-100 transition-colors", children: getLayoutText(storeConfig, 'booking.bookAppointment', getTextContent(storeConfig, 'book_btn', 'Book Appointment')) }) }), _jsx(Link, { href: `/${storeConfig.slug}/services`, children: _jsx(Button, { size: "lg", variant: "outline", className: "h-14 px-8 rounded-full text-lg font-medium border-white/80 text-white bg-white/5 hover:bg-white/15 hover:text-white transition-colors backdrop-blur-sm shadow-lg", children: getLayoutText(storeConfig, 'booking.viewServices', getTextContent(storeConfig, 'view_services_btn', 'View Services')) }) })] })] }) })] }), _jsx("section", { className: "py-12 md:py-20 px-4 bg-gray-50/50", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "flex justify-between items-end mb-8 md:mb-12", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-3xl font-bold text-gray-900 mb-2", children: getLayoutText(storeConfig, 'sections.featuredServices.title', getTextContent(storeConfig, 'services_section_title', 'Signature Looks')) }), _jsx("p", { className: "text-gray-500", children: getLayoutText(storeConfig, 'sections.featuredServices.subtitle', getTextContent(storeConfig, 'services_section_subtitle', 'Curated styles for every occasion')) })] }), _jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-2 text-sm font-bold tracking-wide uppercase hover:underline", style: { color: primaryColor }, children: [getLayoutText(storeConfig, 'sections.featuredServices.viewAll', getTextContent(storeConfig, 'services_view_all', 'View All')), ' ', _jsx(ArrowRight, { className: "w-4 h-4" })] })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", children: services.slice(0, 3).map((service) => (_jsxs(Link, { href: `/${storeConfig.slug}/book?service=${service.slug}`, className: "group cursor-pointer", children: [_jsxs("div", { className: "relative aspect-[4/3] overflow-hidden rounded-2xl mb-6 bg-gray-200", children: [_jsx(Image, { src: getServiceImage(service.image, storeConfig, "https://images.unsplash.com/photo-1522337660859-02fbefca4702?q=80&w=2069&auto=format&fit=crop"), alt: service.name, fill: true, className: "object-cover transition-transform duration-700 group-hover:scale-110", unoptimized: true }), _jsx("div", { className: "absolute top-4 right-4 bg-white/90 backdrop-blur px-3 py-1 rounded-full text-sm font-bold shadow-sm", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsx("h3", { className: "text-xl font-bold text-gray-900 mb-2 group-hover:text-gray-600 transition-colors", children: service.name }), _jsx("p", { className: "text-gray-500 line-clamp-2 mb-4", children: service.description }), _jsxs("div", { className: "flex items-center gap-4 text-sm text-gray-400", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Clock, { className: "w-4 h-4" }), " ", service.duration, " mins"] }), service.provider && (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(User, { className: "w-4 h-4" }), " ", service.provider.name] }))] })] }, service.id))) })] }) }), _jsx("section", { className: "py-12 md:py-24 px-4 bg-white", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-[2rem] overflow-hidden bg-gray-100 relative", children: _jsx(Image, { src: getTeamMemberImage(storeConfig, 'Sarah Mitchell', 'specialist_image', "https://blog.sugar.ng/files/styles/width-640/public/We%20Just%20Found%20the%20Perfect%20Nikkai%20Bridal%20Look%20for%20You.jpg?itok=HGIlGdwB"), alt: "Specialist", fill: true, className: "object-cover", unoptimized: true }) }), _jsxs("div", { className: "absolute bottom-8 left-8 right-8 bg-white/95 backdrop-blur p-6 rounded-2xl shadow-xl", children: [_jsx("h3", { className: "text-xl font-bold text-gray-900", children: getLayoutText(storeConfig, 'sections.team.memberName', getTextContent(storeConfig, 'team_member_name', 'Sarah Mitchell')) }), _jsx("p", { className: "text-gray-500 mb-4", children: getLayoutText(storeConfig, 'sections.team.memberRole', getTextContent(storeConfig, 'team_member_role', 'Lead Makeup Artist')) }), _jsxs("div", { className: "flex items-center gap-1 text-yellow-500", children: [_jsx(Star, { className: "w-4 h-4 fill-current" }), _jsx("span", { className: "font-bold text-black", children: "5.0" }), _jsx("span", { className: "text-gray-400 text-sm ml-1", children: "(150+ Reviews)" })] })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsx("h2", { className: "text-4xl md:text-5xl font-light text-gray-900 leading-tight", children: (() => {
19
+ })() }), _jsx("p", { className: "text-xl md:text-2xl text-gray-200 mb-10 font-light leading-relaxed max-w-lg", children: layoutConfig?.sections?.hero?.subtitle || getTextContent(storeConfig, 'hero_subtitle', storeConfig.description || "Enhance your natural beauty with our professional makeup artistry.") }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4", children: [_jsx(Link, { href: `/${storeConfig.slug}/book`, children: _jsx(Button, { size: "lg", className: "h-14 px-8 rounded-full text-lg font-medium bg-white text-black hover:bg-gray-100 transition-colors", children: layoutConfig?.sections?.hero?.primaryCTA || getLayoutText(storeConfig, 'booking.bookAppointment', getTextContent(storeConfig, 'book_btn', 'Book Appointment')) }) }), _jsx(Link, { href: `/${storeConfig.slug}/services`, children: _jsx(Button, { size: "lg", variant: "outline", className: "h-14 px-8 rounded-full text-lg font-medium border-white/80 text-white bg-white/5 hover:bg-white/15 hover:text-white transition-colors backdrop-blur-sm shadow-lg", children: layoutConfig?.sections?.hero?.secondaryCTA || getLayoutText(storeConfig, 'booking.viewServices', getTextContent(storeConfig, 'view_services_btn', 'View Services')) }) })] })] }) })] }), _jsx("section", { "data-section": "featuredServices", className: "py-12 md:py-20 px-4 bg-gray-50/50", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "flex justify-between items-end mb-8 md:mb-12", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-3xl font-bold text-gray-900 mb-2", children: layoutConfig?.sections?.featuredServices?.title || getLayoutText(storeConfig, 'sections.featuredServices.title', getTextContent(storeConfig, 'services_section_title', 'Signature Looks')) }), _jsx("p", { className: "text-gray-500", children: layoutConfig?.sections?.featuredServices?.subtitle || getLayoutText(storeConfig, 'sections.featuredServices.subtitle', getTextContent(storeConfig, 'services_section_subtitle', 'Curated styles for every occasion')) })] }), _jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-2 text-sm font-bold tracking-wide uppercase hover:underline", style: { color: primaryColor }, children: [layoutConfig?.sections?.featuredServices?.viewAllLabel || getLayoutText(storeConfig, 'sections.featuredServices.viewAll', getTextContent(storeConfig, 'services_view_all', 'View All')), ' ', _jsx(ArrowRight, { className: "w-4 h-4" })] })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", children: services.slice(0, 3).map((service) => (_jsxs(Link, { href: `/${storeConfig.slug}/book?service=${service.slug}`, className: "group cursor-pointer", children: [_jsxs("div", { className: "relative aspect-[4/3] overflow-hidden rounded-2xl mb-6 bg-gray-200", children: [_jsx(Image, { src: getServiceImage(service.image, storeConfig, "https://images.unsplash.com/photo-1522337660859-02fbefca4702?q=80&w=2069&auto=format&fit=crop"), alt: service.name, fill: true, className: "object-cover transition-transform duration-700 group-hover:scale-110", unoptimized: true }), _jsx("div", { className: "absolute top-4 right-4 bg-white/90 backdrop-blur px-3 py-1 rounded-full text-sm font-bold shadow-sm", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsx("h3", { className: "text-xl font-bold text-gray-900 mb-2 group-hover:text-gray-600 transition-colors", children: service.name }), _jsx("p", { className: "text-gray-500 line-clamp-2 mb-4", children: service.description }), _jsxs("div", { className: "flex items-center gap-4 text-sm text-gray-400", children: [_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(Clock, { className: "w-4 h-4" }), " ", service.duration, " mins"] }), service.provider && (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx(User, { className: "w-4 h-4" }), " ", service.provider.name] }))] })] }, service.id))) })] }) }), _jsx("section", { "data-section": "team", className: "py-12 md:py-24 px-4 bg-white", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-[2rem] overflow-hidden bg-gray-100 relative", children: _jsx(Image, { src: getTeamMemberImage(storeConfig, 'Sarah Mitchell', 'specialist_image', "https://blog.sugar.ng/files/styles/width-640/public/We%20Just%20Found%20the%20Perfect%20Nikkai%20Bridal%20Look%20for%20You.jpg?itok=HGIlGdwB"), alt: "Specialist", fill: true, className: "object-cover", unoptimized: true }) }), _jsxs("div", { className: "absolute bottom-8 left-8 right-8 bg-white/95 backdrop-blur p-6 rounded-2xl shadow-xl", children: [_jsx("h3", { className: "text-xl font-bold text-gray-900", children: layoutConfig?.sections?.team?.memberName || getLayoutText(storeConfig, 'sections.team.memberName', getTextContent(storeConfig, 'team_member_name', 'Sarah Mitchell')) }), _jsx("p", { className: "text-gray-500 mb-4", children: layoutConfig?.sections?.team?.memberRole || getLayoutText(storeConfig, 'sections.team.memberRole', getTextContent(storeConfig, 'team_member_role', 'Lead Makeup Artist')) }), _jsxs("div", { className: "flex items-center gap-1 text-yellow-500", children: [_jsx(Star, { className: "w-4 h-4 fill-current" }), _jsx("span", { className: "font-bold text-black", children: "5.0" }), _jsx("span", { className: "text-gray-400 text-sm ml-1", children: "(150+ Reviews)" })] })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsx("h2", { className: "text-4xl md:text-5xl font-light text-gray-900 leading-tight", children: (() => {
20
20
  const defaultTitle = storeConfig.pageFeatures?.teamPage
21
21
  ? 'Artistry in\nevery brushstroke.'
22
22
  : 'Excellence in\nevery detail.';
23
23
  // Try new structured text first, then fallback to legacy
24
- const titleText = getLayoutText(storeConfig, 'sections.team.title', getTextContent(storeConfig, 'team_section_title', defaultTitle));
24
+ const titleText = layoutConfig?.sections?.team?.title || getLayoutText(storeConfig, 'sections.team.title', getTextContent(storeConfig, 'team_section_title', defaultTitle));
25
25
  return titleText.split('\n').map((line, i, arr) => (_jsx("span", { children: i === arr.length - 1 ? (_jsx("span", { className: "font-bold", children: line })) : (_jsxs(_Fragment, { children: [line, " ", _jsx("br", {})] })) }, i)));
26
- })() }), _jsx("p", { className: "text-xl text-gray-500 font-light leading-relaxed", children: getLayoutText(storeConfig, 'sections.team.subtitle', getTextContent(storeConfig, 'team_desc', storeConfig.pageFeatures?.teamPage
26
+ })() }), _jsx("p", { className: "text-xl text-gray-500 font-light leading-relaxed", children: layoutConfig?.sections?.team?.subtitle || getLayoutText(storeConfig, 'sections.team.subtitle', getTextContent(storeConfig, 'team_desc', storeConfig.pageFeatures?.teamPage
27
27
  ? "Our team of certified makeup artists brings passion and precision to every look. Whether it's your big day or a night out, we create looks that enhance your natural beauty."
28
28
  : "We bring passion and precision to every look. Whether it's your big day or a night out, we create looks that enhance your natural beauty.")) }), _jsx("div", { className: "space-y-6", children: getFeaturesList(storeConfig, 'team_feature_', [
29
29
  "Certified Professional Artists",
30
30
  "Premium & Luxury Brands",
31
31
  "Customized Color Matching",
32
32
  "Long-lasting Techniques"
33
- ]).map((item, i) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-gray-50 text-gray-900", children: _jsx(Star, { className: "w-5 h-5" }) }), _jsx("span", { className: "text-lg font-medium text-gray-900", children: item })] }, i))) }), storeConfig.pageFeatures?.teamPage && (_jsx(Link, { href: `/${storeConfig.slug}/team`, children: _jsx(Button, { size: "lg", className: "mt-8 h-14 px-8 rounded-full text-lg", style: { backgroundColor: primaryColor }, children: "Meet Our Team" }) })), storeConfig.pageFeatures?.portfolioPage && !storeConfig.pageFeatures?.teamPage && (_jsx(Link, { href: `/${storeConfig.slug}/portfolio`, children: _jsx(Button, { size: "lg", className: "mt-8 h-14 px-8 rounded-full text-lg", style: { backgroundColor: primaryColor }, children: "View Portfolio" }) }))] })] }) }) }), layoutConfig?.sections?.testimonials?.show !== false && (_jsxs("section", { className: "py-16 md:py-24 px-4 bg-black text-white relative overflow-hidden", children: [_jsx("div", { className: "absolute top-0 right-0 -mr-20 -mt-20 w-96 h-96 bg-white/5 rounded-full blur-3xl" }), _jsxs("div", { className: "container mx-auto max-w-7xl relative z-10", children: [_jsxs("div", { className: "text-center mb-12", children: [_jsx("h2", { className: "text-2xl md:text-4xl font-bold mb-4", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Clients Say') }), layoutConfig?.sections?.testimonials?.subtitle && (_jsx("p", { className: "text-white/70 text-lg", children: layoutConfig.sections.testimonials.subtitle }))] }), (() => {
33
+ ]).map((item, i) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "w-10 h-10 rounded-full flex items-center justify-center bg-gray-50 text-gray-900", children: _jsx(Star, { className: "w-5 h-5" }) }), _jsx("span", { className: "text-lg font-medium text-gray-900", children: item })] }, i))) }), storeConfig.pageFeatures?.teamPage && (_jsx(Link, { href: `/${storeConfig.slug}/team`, children: _jsx(Button, { size: "lg", className: "mt-8 h-14 px-8 rounded-full text-lg", style: { backgroundColor: primaryColor }, children: "Meet Our Team" }) })), storeConfig.pageFeatures?.portfolioPage && !storeConfig.pageFeatures?.teamPage && (_jsx(Link, { href: `/${storeConfig.slug}/portfolio`, children: _jsx(Button, { size: "lg", className: "mt-8 h-14 px-8 rounded-full text-lg", style: { backgroundColor: primaryColor }, children: "View Portfolio" }) }))] })] }) }) }), layoutConfig?.sections?.testimonials?.show !== false && (_jsxs("section", { "data-section": "testimonials", className: "py-16 md:py-24 px-4 bg-black text-white relative overflow-hidden", children: [_jsx("div", { className: "absolute top-0 right-0 -mr-20 -mt-20 w-96 h-96 bg-white/5 rounded-full blur-3xl" }), _jsxs("div", { className: "container mx-auto max-w-7xl relative z-10", children: [_jsxs("div", { className: "text-center mb-12", children: [_jsx("h2", { className: "text-2xl md:text-4xl font-bold mb-4", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Clients Say') }), layoutConfig?.sections?.testimonials?.subtitle && (_jsx("p", { className: "text-white/70 text-lg", children: layoutConfig.sections.testimonials.subtitle }))] }), (() => {
34
34
  const backendTestimonials = layoutConfig?.sections?.testimonials?.items || [];
35
35
  const fallbackTestimonials = [
36
36
  {
@@ -45,5 +45,5 @@ export function BookingHomePage({ storeConfig }) {
45
45
  ];
46
46
  const testimonials = backendTestimonials.length > 0 ? backendTestimonials : fallbackTestimonials;
47
47
  return (_jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: testimonials.slice(0, 3).map((testimonial) => (_jsx("div", { className: "bg-white/5 backdrop-blur-sm rounded-2xl p-8 border border-white/10", children: _jsx(TestimonialCard, { testimonial: testimonial }) }, testimonial.id || testimonial.name))) }));
48
- })()] })] })), _jsx("section", { className: "py-24 px-4 bg-gray-50 text-center", children: _jsxs("div", { className: "container mx-auto max-w-2xl", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: getLayoutText(storeConfig, 'sections.cta.title', getTextContent(storeConfig, 'cta_title', 'Ready to glow?')) }), _jsx("p", { className: "text-gray-500 text-lg mb-10", children: getLayoutText(storeConfig, 'sections.cta.description', getTextContent(storeConfig, 'cta_description', 'Book your session today and let us create the perfect look for you.')) }), _jsx(Link, { href: `/${storeConfig.slug}/book`, children: _jsx(Button, { size: "lg", className: "h-16 px-12 rounded-full text-xl shadow-xl hover:shadow-2xl transition-all hover:-translate-y-1", style: { backgroundColor: primaryColor }, children: getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Appointment') }) })] }) })] }));
48
+ })()] })] })), _jsx("section", { "data-section": "marketing", className: "py-24 px-4 bg-gray-50 text-center", children: _jsxs("div", { className: "container mx-auto max-w-2xl", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-6", children: layoutConfig?.sections?.marketing?.ctaTitle || getLayoutText(storeConfig, 'sections.cta.title', getTextContent(storeConfig, 'cta_title', 'Ready to glow?')) }), _jsx("p", { className: "text-gray-500 text-lg mb-10", children: layoutConfig?.sections?.marketing?.ctaDescription || getLayoutText(storeConfig, 'sections.cta.description', getTextContent(storeConfig, 'cta_description', 'Book your session today and let us create the perfect look for you.')) }), _jsx(Link, { href: `/${storeConfig.slug}/book`, children: _jsx(Button, { size: "lg", className: "h-16 px-12 rounded-full text-xl shadow-xl hover:shadow-2xl transition-all hover:-translate-y-1", style: { backgroundColor: primaryColor }, children: layoutConfig?.sections?.marketing?.ctaButton || getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Appointment') }) })] }) })] }));
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BookingHomePageAgenda.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/components/BookingHomePageAgenda.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAehD,UAAU,0BAA0B;IAClC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,0BAA0B,2CA6oBhF"}
1
+ {"version":3,"file":"BookingHomePageAgenda.d.ts","sourceRoot":"","sources":["../../../../src/layouts/booking-agenda/components/BookingHomePageAgenda.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAehD,UAAU,0BAA0B;IAClC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,WAAW,EAAE,EAAE,0BAA0B,2CAopBhF"}
@@ -156,9 +156,9 @@ export function BookingHomePageAgenda({ storeConfig }) {
156
156
  const sidebarBg = getThemeColor(storeConfig, 'layoutSpecific', 'sidebar', 'rgba(255,255,255,0.8)');
157
157
  const buttonBg = getThemeColor(storeConfig, 'layoutSpecific', 'button', '#1E293B');
158
158
  const borderPrimary = getThemeColor(storeConfig, 'border', 'primary', 'rgba(0,0,0,0.05)');
159
- return (_jsxs("div", { className: "min-h-screen font-sans", style: { backgroundColor: bgPrimary, color: textPrimary }, children: [_jsxs("div", { className: "fixed inset-0 z-0 pointer-events-none opacity-40", children: [_jsx("div", { className: "absolute top-0 right-0 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob", style: { backgroundColor: blob1 } }), _jsx("div", { className: "absolute top-0 left-0 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob animation-delay-2000", style: { backgroundColor: blob2 } }), _jsx("div", { className: "absolute -bottom-32 left-20 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob animation-delay-4000", style: { backgroundColor: blob3 } })] }), _jsxs("div", { className: "relative z-10 flex flex-col md:flex-row max-w-[1600px] mx-auto backdrop-blur-xl min-h-screen shadow-[0_0_100px_rgba(0,0,0,0.05)]", style: { backgroundColor: bgOverlay }, children: [_jsxs("aside", { className: "w-full md:w-72 border-r flex-shrink-0 md:h-screen md:sticky md:top-0 z-30 flex flex-col backdrop-blur-md", style: { backgroundColor: sidebarBg, borderRightColor: borderPrimary }, children: [_jsxs("div", { className: "p-8 border-b border-gray-100/50 flex items-center justify-between md:block", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-2xl font-serif font-bold text-slate-800 flex items-center gap-2 tracking-tight", children: [_jsx("span", { className: "w-8 h-8 bg-rose-500 rounded-full flex items-center justify-center text-white", children: _jsx(Sparkles, { className: "h-4 w-4" }) }), storeConfig.name] }), _jsx(Button, { variant: "ghost", size: "icon", className: "md:hidden", onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen), children: isMobileMenuOpen ? _jsx(X, { className: "h-5 w-5" }) : _jsx(MoreHorizontal, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: `p-6 space-y-8 overflow-y-auto md:flex-1 transition-all duration-300 ${isMobileMenuOpen ? 'block' : 'hidden md:block'}`, children: [_jsxs(Button, { onClick: () => handleBookClick(), className: "w-full justify-center text-white hover:opacity-90 h-12 rounded-xl font-medium shadow-lg transition-all hover:scale-[1.02]", style: { backgroundColor: buttonBg }, children: [_jsx(Calendar, { className: "mr-2 h-4 w-4" }), " ", getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Appointment')] }), _jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "px-3 text-xs font-bold text-slate-400 uppercase tracking-widest mb-3", children: "Menu" }), _jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Search, { className: "h-4 w-4" }), " Discover"] }), _jsxs(Link, { href: `/${storeConfig.slug}/account`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(User, { className: "h-4 w-4" }), " My Profile"] }), storeConfig.features.wishlist ? (_jsxs(Link, { href: `/${storeConfig.slug}/wishlist`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Heart, { className: "h-4 w-4" }), " Favorites"] })) : (_jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Heart, { className: "h-4 w-4" }), " Favorites"] }))] }), _jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "px-3 text-xs font-bold text-slate-400 uppercase tracking-widest mb-3", children: "Categories" }), categories.map(cat => (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${cat.slug}`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors group", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-slate-300 group-hover:bg-rose-500 transition-colors" }), cat.name] }, cat.id)))] })] }), _jsx("div", { className: `p-6 border-t border-gray-100/50 ${isMobileMenuOpen ? 'block' : 'hidden md:block'}`, children: _jsx(Link, { href: `/${storeConfig.slug}/account`, children: _jsxs("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-slate-50 hover:bg-slate-100 transition-colors cursor-pointer", children: [_jsx("div", { className: "w-8 h-8 rounded-full bg-rose-200 flex items-center justify-center text-rose-700 text-xs font-bold", children: "JD" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-sm font-bold text-slate-700 truncate", children: "Jane Doe" }), _jsx("p", { className: "text-xs text-slate-500 truncate", children: "View Profile" })] })] }) }) })] }), _jsxs("main", { className: "flex-1 min-w-0 overflow-y-auto", children: [_jsxs("div", { className: "bg-white/80 backdrop-blur-md border-b border-gray-100/50 sticky top-0 z-20", children: [_jsxs("div", { className: "px-4 md:px-8 py-4 md:py-6 flex flex-col md:flex-row md:items-center justify-between gap-4", children: [_jsxs("div", { children: [_jsx("h1", { className: "text-2xl font-serif font-bold text-slate-900 mb-1", children: getTextContent(storeConfig, 'booking_page_title', 'Book an Appointment') }), _jsx("p", { className: "text-slate-500 text-sm", children: getLayoutText(storeConfig, 'booking.pageSubtitle', getTextContent(storeConfig, 'booking_page_subtitle', 'Select a date and service to continue')) })] }), _jsxs(Button, { onClick: () => setIsFilterOpen(true), variant: "outline", className: "w-full md:w-auto rounded-full border-gray-200 hover:bg-gray-50", children: [_jsx(Filter, { className: "h-4 w-4 mr-2" }), " ", getLayoutText(storeConfig, 'booking.filters', 'Filters')] })] }), _jsx("div", { className: "flex overflow-x-auto px-4 md:px-8 pb-4 md:pb-6 gap-3 no-scrollbar scroll-smooth", children: days.map((day, idx) => (_jsxs("button", { onClick: () => setSelectedDate(idx), className: `flex flex-col items-center justify-center min-w-[70px] p-4 rounded-2xl border transition-all duration-300 ${selectedDate === idx
159
+ return (_jsxs("div", { className: "min-h-screen font-sans", style: { backgroundColor: bgPrimary, color: textPrimary }, children: [_jsxs("div", { className: "fixed inset-0 z-0 pointer-events-none opacity-40", children: [_jsx("div", { className: "absolute top-0 right-0 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob", style: { backgroundColor: blob1 } }), _jsx("div", { className: "absolute top-0 left-0 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob animation-delay-2000", style: { backgroundColor: blob2 } }), _jsx("div", { className: "absolute -bottom-32 left-20 w-[600px] h-[600px] rounded-full mix-blend-multiply filter blur-3xl animate-blob animation-delay-4000", style: { backgroundColor: blob3 } })] }), _jsxs("div", { className: "relative z-10 flex flex-col md:flex-row max-w-[1600px] mx-auto backdrop-blur-xl min-h-screen shadow-[0_0_100px_rgba(0,0,0,0.05)]", style: { backgroundColor: bgOverlay }, children: [_jsxs("aside", { className: "w-full md:w-72 border-r flex-shrink-0 md:h-screen md:sticky md:top-0 z-30 flex flex-col backdrop-blur-md", style: { backgroundColor: sidebarBg, borderRightColor: borderPrimary }, children: [_jsxs("div", { className: "p-8 border-b border-gray-100/50 flex items-center justify-between md:block", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-2xl font-serif font-bold text-slate-800 flex items-center gap-2 tracking-tight", children: [_jsx("span", { className: "w-8 h-8 bg-rose-500 rounded-full flex items-center justify-center text-white", children: _jsx(Sparkles, { className: "h-4 w-4" }) }), storeConfig.name] }), _jsx(Button, { variant: "ghost", size: "icon", className: "md:hidden", onClick: () => setIsMobileMenuOpen(!isMobileMenuOpen), children: isMobileMenuOpen ? _jsx(X, { className: "h-5 w-5" }) : _jsx(MoreHorizontal, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: `p-6 space-y-8 overflow-y-auto md:flex-1 transition-all duration-300 ${isMobileMenuOpen ? 'block' : 'hidden md:block'}`, children: [_jsxs(Button, { onClick: () => handleBookClick(), className: "w-full justify-center text-white hover:opacity-90 h-12 rounded-xl font-medium shadow-lg transition-all hover:scale-[1.02]", style: { backgroundColor: buttonBg }, children: [_jsx(Calendar, { className: "mr-2 h-4 w-4" }), " ", getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Appointment')] }), _jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "px-3 text-xs font-bold text-slate-400 uppercase tracking-widest mb-3", children: "Menu" }), _jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Search, { className: "h-4 w-4" }), " Discover"] }), _jsxs(Link, { href: `/${storeConfig.slug}/account`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(User, { className: "h-4 w-4" }), " My Profile"] }), storeConfig.features.wishlist ? (_jsxs(Link, { href: `/${storeConfig.slug}/wishlist`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Heart, { className: "h-4 w-4" }), " Favorites"] })) : (_jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors", children: [_jsx(Heart, { className: "h-4 w-4" }), " Favorites"] }))] }), _jsxs("div", { className: "space-y-1", children: [_jsx("h3", { className: "px-3 text-xs font-bold text-slate-400 uppercase tracking-widest mb-3", children: "Categories" }), categories.map(cat => (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${cat.slug}`, className: "flex items-center gap-3 px-3 py-2.5 text-sm font-medium text-slate-600 hover:text-rose-600 hover:bg-rose-50/50 rounded-lg transition-colors group", children: [_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-slate-300 group-hover:bg-rose-500 transition-colors" }), cat.name] }, cat.id)))] })] }), _jsx("div", { className: `p-6 border-t border-gray-100/50 ${isMobileMenuOpen ? 'block' : 'hidden md:block'}`, children: _jsx(Link, { href: `/${storeConfig.slug}/account`, children: _jsxs("div", { className: "flex items-center gap-3 p-3 rounded-xl bg-slate-50 hover:bg-slate-100 transition-colors cursor-pointer", children: [_jsx("div", { className: "w-8 h-8 rounded-full bg-rose-200 flex items-center justify-center text-rose-700 text-xs font-bold", children: "JD" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsx("p", { className: "text-sm font-bold text-slate-700 truncate", children: "Jane Doe" }), _jsx("p", { className: "text-xs text-slate-500 truncate", children: "View Profile" })] })] }) }) })] }), _jsxs("main", { className: "flex-1 min-w-0 overflow-y-auto", children: [_jsxs("div", { className: "bg-white/80 backdrop-blur-md border-b border-gray-100/50 sticky top-0 z-20", children: [_jsxs("div", { className: "px-4 md:px-8 py-4 md:py-6 flex flex-col md:flex-row md:items-center justify-between gap-4", children: [_jsxs("div", { "data-section": "header", children: [_jsx("h1", { className: "text-2xl font-serif font-bold text-slate-900 mb-1", children: layoutConfig?.sections?.header?.title || getTextContent(storeConfig, 'booking_page_title', 'Book an Appointment') }), _jsx("p", { className: "text-slate-500 text-sm", children: layoutConfig?.sections?.header?.subtitle || getLayoutText(storeConfig, 'booking.pageSubtitle', getTextContent(storeConfig, 'booking_page_subtitle', 'Select a date and service to continue')) })] }), _jsxs(Button, { onClick: () => setIsFilterOpen(true), variant: "outline", className: "w-full md:w-auto rounded-full border-gray-200 hover:bg-gray-50", children: [_jsx(Filter, { className: "h-4 w-4 mr-2" }), " ", getLayoutText(storeConfig, 'booking.filters', 'Filters')] })] }), _jsx("div", { className: "flex overflow-x-auto px-4 md:px-8 pb-4 md:pb-6 gap-3 no-scrollbar scroll-smooth", children: days.map((day, idx) => (_jsxs("button", { onClick: () => setSelectedDate(idx), className: `flex flex-col items-center justify-center min-w-[70px] p-4 rounded-2xl border transition-all duration-300 ${selectedDate === idx
160
160
  ? 'bg-slate-900 text-white border-slate-900 shadow-lg shadow-slate-900/20 transform -translate-y-1'
161
- : 'bg-white text-slate-600 border-gray-100 hover:border-rose-200 hover:shadow-md'}`, children: [_jsx("span", { className: "text-xs font-medium uppercase tracking-wider opacity-80", children: day.dayName }), _jsx("span", { className: "text-xl font-bold mt-1", children: day.dayNumber })] }, idx))) })] }), _jsxs("div", { className: "p-4 md:p-10 max-w-5xl space-y-8 md:space-y-12", children: [_jsxs("div", { className: "relative rounded-3xl overflow-hidden shadow-2xl shadow-rose-900/20 group cursor-pointer", onClick: () => handleBookClick(), children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'promo_banner', "https://images.unsplash.com/photo-1540555700478-4be289fbecef?w=1600&q=80"), alt: "Spa treatment", className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/60 via-black/30 to-transparent" })] }), _jsxs("div", { className: "relative z-10 p-6 md:p-14 text-white max-w-2xl", children: [_jsx("span", { className: "inline-block px-4 py-1.5 bg-white/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-widest mb-4 md:mb-6 border border-white/30", children: getTextContent(storeConfig, 'promo_badge', 'Summer Exclusive') }), _jsx("h2", { className: "text-3xl md:text-5xl font-serif font-bold mb-4 leading-tight", children: getTextContent(storeConfig, 'promo_title', 'Total Renewal\nPackage').split('\n').map((line, i) => (_jsxs("span", { children: [line, i === 0 && _jsx("br", {})] }, i))) }), _jsx("p", { className: "text-base md:text-lg text-white/90 mb-6 md:mb-8 font-light leading-relaxed max-w-lg", children: getTextContent(storeConfig, 'promo_desc', 'Indulge in a 90-minute holistic treatment including a full body massage, organic facial, and aromatherapy session.') }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(Button, { className: "bg-white text-slate-900 hover:bg-rose-50 h-12 px-8 rounded-full font-bold shadow-lg transition-transform hover:scale-105", children: [getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Now'), " \u2022 $120"] }), _jsx("span", { className: "text-sm font-medium text-white/80", children: "Limited availability" })] })] })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-end justify-between mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900", children: getLayoutText(storeConfig, 'booking.availableServices', getTextContent(storeConfig, 'services_list_title', 'Available Services')) }), _jsx("span", { className: "text-sm text-slate-500 font-medium", children: getTextContent(storeConfig, 'services_list_count', `Showing ${services.length} results`) })] }), _jsx("div", { className: "grid grid-cols-1 gap-6", children: services.map((service) => (_jsxs("div", { className: "group bg-white rounded-3xl p-4 border border-gray-100 hover:border-rose-100 shadow-sm hover:shadow-xl hover:shadow-rose-900/5 transition-all duration-300 flex flex-col md:flex-row gap-6", children: [_jsxs("div", { className: "w-full md:w-64 h-48 md:h-auto flex-shrink-0 rounded-2xl overflow-hidden relative", children: [_jsx(ImageWithFallback, { src: getServiceImage(service.image, storeConfig, "https://images.unsplash.com/photo-1544161515-4ab6ce6db874?w=800&q=80"), alt: service.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110" }), _jsxs("div", { className: "absolute top-3 left-3 bg-white/90 backdrop-blur px-3 py-1.5 rounded-full text-xs font-bold shadow-sm flex items-center gap-1.5", children: [_jsx(Clock, { className: "h-3 w-3 text-rose-500" }), service.duration, " min"] })] }), _jsxs("div", { className: "flex-1 py-2 pr-4 flex flex-col", children: [_jsxs("div", { className: "flex justify-between items-start mb-3", children: [_jsxs("div", { children: [_jsx("h4", { className: "text-xl font-bold text-slate-900 group-hover:text-rose-600 transition-colors mb-2", children: service.name }), _jsx("p", { className: "text-slate-500 text-sm leading-relaxed line-clamp-2 max-w-xl", children: service.description })] }), _jsx("span", { className: "text-2xl font-serif font-bold text-slate-900", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsxs("div", { className: "mt-auto pt-6 border-t border-gray-50 flex flex-col md:flex-row items-start md:items-center justify-between gap-4", children: [_jsx("div", { className: "flex gap-2 overflow-x-auto no-scrollbar w-full md:w-auto pb-2 md:pb-0", children: ['09:00', '10:30', '13:00', '15:45'].map(time => (_jsx("button", { onClick: () => handleBookClick(service.id), className: "px-4 py-2 rounded-xl bg-slate-50 text-slate-600 text-xs font-bold hover:bg-slate-900 hover:text-white transition-all whitespace-nowrap flex-shrink-0", children: time }, time))) }), _jsxs("div", { className: "flex flex-col sm:flex-row items-stretch sm:items-center gap-3 w-full md:w-auto", children: [service.provider && (_jsxs("div", { className: "flex items-center gap-2 text-xs font-medium text-slate-500 bg-slate-50 px-3 py-2 rounded-full", children: [_jsx("div", { className: "w-5 h-5 rounded-full bg-rose-200 flex items-center justify-center text-rose-700 font-bold", children: service.provider.name.charAt(0) }), service.provider.name] })), _jsx(Button, { onClick: () => handleBookClick(service.id), className: "flex-1 md:flex-none rounded-xl bg-rose-600 hover:bg-rose-700 text-white font-medium px-6", children: getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Now') })] })] })] })] }, service.id))) })] }), layoutConfig?.sections?.team?.show !== false && (_jsxs("section", { children: [_jsxs("div", { className: "flex items-end justify-between mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900", children: layoutConfig?.sections?.team?.title || getTextContent(storeConfig, 'experts_section_title', 'Our Experts') }), _jsxs(Link, { href: storeConfig.pageFeatures?.teamPage ? `/${storeConfig.slug}/team` : `/${storeConfig.slug}/services`, className: "text-sm font-bold text-rose-600 hover:text-rose-700 flex items-center gap-1", children: [getTextContent(storeConfig, 'experts_view_all', 'View All'), " ", _jsx(ChevronRight, { className: "h-4 w-4" })] })] }), _jsx("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-6", children: providers.map((provider) => (_jsxs("div", { className: "group bg-white p-4 rounded-3xl border border-gray-100 hover:border-rose-100 hover:shadow-xl hover:shadow-rose-900/5 transition-all text-center", children: [_jsx("div", { className: "w-24 h-24 mx-auto bg-gray-100 rounded-full mb-4 overflow-hidden border-4 border-white shadow-lg relative group-hover:scale-105 transition-transform", children: _jsx(ImageWithFallback, { src: provider.image, alt: provider.name, className: "w-full h-full object-cover" }) }), _jsx("h4", { className: "font-bold text-slate-900 mb-1", children: provider.name }), _jsx("p", { className: "text-xs text-rose-600 font-bold uppercase tracking-wider mb-3", children: provider.role }), _jsxs("div", { className: "flex items-center justify-center gap-1.5 text-xs font-medium text-slate-500 bg-slate-50 py-1.5 rounded-full mx-4", children: [_jsx(Star, { className: "h-3.5 w-3.5 fill-amber-400 text-amber-400" }), provider.rating, " ", _jsx("span", { className: "text-slate-300", children: "\u2022" }), " ", provider.reviews, " reviews"] })] }, provider.id))) })] })), layoutConfig?.sections?.testimonials?.show !== false && (_jsxs("section", { className: "py-12", children: [_jsxs("div", { className: "mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900 mb-2", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Clients Say') }), layoutConfig?.sections?.testimonials?.subtitle && (_jsx("p", { className: "text-slate-500 text-sm", children: layoutConfig.sections.testimonials.subtitle }))] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: (() => {
161
+ : 'bg-white text-slate-600 border-gray-100 hover:border-rose-200 hover:shadow-md'}`, children: [_jsx("span", { className: "text-xs font-medium uppercase tracking-wider opacity-80", children: day.dayName }), _jsx("span", { className: "text-xl font-bold mt-1", children: day.dayNumber })] }, idx))) })] }), _jsxs("div", { className: "p-4 md:p-10 max-w-5xl space-y-8 md:space-y-12", children: [_jsxs("div", { "data-section": "promoBanner", className: "relative rounded-3xl overflow-hidden shadow-2xl shadow-rose-900/20 group cursor-pointer", onClick: () => handleBookClick(), children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'promo_banner', "https://images.unsplash.com/photo-1540555700478-4be289fbecef?w=1600&q=80"), alt: "Spa treatment", className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/60 via-black/30 to-transparent" })] }), _jsxs("div", { className: "relative z-10 p-6 md:p-14 text-white max-w-2xl", children: [_jsx("span", { className: "inline-block px-4 py-1.5 bg-white/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-widest mb-4 md:mb-6 border border-white/30", children: layoutConfig?.sections?.promoBanner?.badge || getTextContent(storeConfig, 'promo_badge', 'Summer Exclusive') }), _jsx("h2", { className: "text-3xl md:text-5xl font-serif font-bold mb-4 leading-tight", children: (layoutConfig?.sections?.promoBanner?.title || getTextContent(storeConfig, 'promo_title', 'Total Renewal\nPackage')).split('\n').map((line, i) => (_jsxs("span", { children: [line, i === 0 && _jsx("br", {})] }, i))) }), _jsx("p", { className: "text-base md:text-lg text-white/90 mb-6 md:mb-8 font-light leading-relaxed max-w-lg", children: layoutConfig?.sections?.promoBanner?.description || getTextContent(storeConfig, 'promo_desc', 'Indulge in a 90-minute holistic treatment including a full body massage, organic facial, and aromatherapy session.') }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs(Button, { className: "bg-white text-slate-900 hover:bg-rose-50 h-12 px-8 rounded-full font-bold shadow-lg transition-transform hover:scale-105", children: [layoutConfig?.sections?.promoBanner?.buttonText || getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Now'), " \u2022 $120"] }), _jsx("span", { className: "text-sm font-medium text-white/80", children: "Limited availability" })] })] })] }), _jsxs("div", { "data-section": "services", children: [_jsxs("div", { className: "flex items-end justify-between mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900", children: layoutConfig?.sections?.services?.title || getLayoutText(storeConfig, 'booking.availableServices', getTextContent(storeConfig, 'services_list_title', 'Available Services')) }), _jsx("span", { className: "text-sm text-slate-500 font-medium", children: getTextContent(storeConfig, 'services_list_count', `Showing ${services.length} results`) })] }), _jsx("div", { className: "grid grid-cols-1 gap-6", children: services.map((service) => (_jsxs("div", { className: "group bg-white rounded-3xl p-4 border border-gray-100 hover:border-rose-100 shadow-sm hover:shadow-xl hover:shadow-rose-900/5 transition-all duration-300 flex flex-col md:flex-row gap-6", children: [_jsxs("div", { className: "w-full md:w-64 h-48 md:h-auto flex-shrink-0 rounded-2xl overflow-hidden relative", children: [_jsx(ImageWithFallback, { src: getServiceImage(service.image, storeConfig, "https://images.unsplash.com/photo-1544161515-4ab6ce6db874?w=800&q=80"), alt: service.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110" }), _jsxs("div", { className: "absolute top-3 left-3 bg-white/90 backdrop-blur px-3 py-1.5 rounded-full text-xs font-bold shadow-sm flex items-center gap-1.5", children: [_jsx(Clock, { className: "h-3 w-3 text-rose-500" }), service.duration, " min"] })] }), _jsxs("div", { className: "flex-1 py-2 pr-4 flex flex-col", children: [_jsxs("div", { className: "flex justify-between items-start mb-3", children: [_jsxs("div", { children: [_jsx("h4", { className: "text-xl font-bold text-slate-900 group-hover:text-rose-600 transition-colors mb-2", children: service.name }), _jsx("p", { className: "text-slate-500 text-sm leading-relaxed line-clamp-2 max-w-xl", children: service.description })] }), _jsx("span", { className: "text-2xl font-serif font-bold text-slate-900", children: formatCurrency(service.price, service.currency || storeConfig.settings?.currency || 'USD') })] }), _jsxs("div", { className: "mt-auto pt-6 border-t border-gray-50 flex flex-col md:flex-row items-start md:items-center justify-between gap-4", children: [_jsx("div", { className: "flex gap-2 overflow-x-auto no-scrollbar w-full md:w-auto pb-2 md:pb-0", children: ['09:00', '10:30', '13:00', '15:45'].map(time => (_jsx("button", { onClick: () => handleBookClick(service.id), className: "px-4 py-2 rounded-xl bg-slate-50 text-slate-600 text-xs font-bold hover:bg-slate-900 hover:text-white transition-all whitespace-nowrap flex-shrink-0", children: time }, time))) }), _jsxs("div", { className: "flex flex-col sm:flex-row items-stretch sm:items-center gap-3 w-full md:w-auto", children: [service.provider && (_jsxs("div", { className: "flex items-center gap-2 text-xs font-medium text-slate-500 bg-slate-50 px-3 py-2 rounded-full", children: [_jsx("div", { className: "w-5 h-5 rounded-full bg-rose-200 flex items-center justify-center text-rose-700 font-bold", children: service.provider.name.charAt(0) }), service.provider.name] })), _jsx(Button, { onClick: () => handleBookClick(service.id), className: "flex-1 md:flex-none rounded-xl bg-rose-600 hover:bg-rose-700 text-white font-medium px-6", children: getLayoutText(storeConfig, 'booking.bookAppointment', 'Book Now') })] })] })] })] }, service.id))) })] }), layoutConfig?.sections?.team?.show !== false && (_jsxs("section", { "data-section": "team", children: [_jsxs("div", { className: "flex items-end justify-between mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900", children: layoutConfig?.sections?.team?.title || getTextContent(storeConfig, 'experts_section_title', 'Our Experts') }), _jsxs(Link, { href: storeConfig.pageFeatures?.teamPage ? `/${storeConfig.slug}/team` : `/${storeConfig.slug}/services`, className: "text-sm font-bold text-rose-600 hover:text-rose-700 flex items-center gap-1", children: [layoutConfig?.sections?.team?.viewAllLabel || getTextContent(storeConfig, 'experts_view_all', 'View All'), " ", _jsx(ChevronRight, { className: "h-4 w-4" })] })] }), _jsx("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-6", children: providers.map((provider) => (_jsxs("div", { className: "group bg-white p-4 rounded-3xl border border-gray-100 hover:border-rose-100 hover:shadow-xl hover:shadow-rose-900/5 transition-all text-center", children: [_jsx("div", { className: "w-24 h-24 mx-auto bg-gray-100 rounded-full mb-4 overflow-hidden border-4 border-white shadow-lg relative group-hover:scale-105 transition-transform", children: _jsx(ImageWithFallback, { src: provider.image, alt: provider.name, className: "w-full h-full object-cover" }) }), _jsx("h4", { className: "font-bold text-slate-900 mb-1", children: provider.name }), _jsx("p", { className: "text-xs text-rose-600 font-bold uppercase tracking-wider mb-3", children: provider.role }), _jsxs("div", { className: "flex items-center justify-center gap-1.5 text-xs font-medium text-slate-500 bg-slate-50 py-1.5 rounded-full mx-4", children: [_jsx(Star, { className: "h-3.5 w-3.5 fill-amber-400 text-amber-400" }), provider.rating, " ", _jsx("span", { className: "text-slate-300", children: "\u2022" }), " ", provider.reviews, " reviews"] })] }, provider.id))) })] })), layoutConfig?.sections?.testimonials?.show !== false && (_jsxs("section", { "data-section": "testimonials", className: "py-12", children: [_jsxs("div", { className: "mb-8", children: [_jsx("h3", { className: "text-2xl font-serif font-bold text-slate-900 mb-2", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Clients Say') }), layoutConfig?.sections?.testimonials?.subtitle && (_jsx("p", { className: "text-slate-500 text-sm", children: layoutConfig.sections.testimonials.subtitle }))] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", children: (() => {
162
162
  const backendTestimonials = layoutConfig?.sections?.testimonials?.items || [];
163
163
  const fallbackTestimonials = [
164
164
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ClothingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing/components/ClothingHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAaD,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,qBAAqB,2CAirBtE"}
1
+ {"version":3,"file":"ClothingHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing/components/ClothingHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD,UAAU,qBAAqB;IAC7B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAaD,wBAAgB,gBAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,qBAAqB,2CAqsBtE"}
@@ -194,7 +194,7 @@ export function ClothingHomePage({ storeConfig }) {
194
194
  const getCategoryGridClass = () => {
195
195
  return 'grid-cols-1 md:grid-cols-2';
196
196
  };
197
- return (_jsxs("div", { className: "min-h-screen bg-white", children: [layoutConfig?.hero?.show !== false && heroSlides.length > 0 && (_jsxs("section", { className: "relative h-[85vh] w-full overflow-hidden", onMouseEnter: () => setIsAutoPlaying(false), onMouseLeave: () => layoutConfig?.hero?.autoPlay !== false && setIsAutoPlaying(true), children: [_jsx("div", { className: "relative h-full w-full", children: heroSlides.map((slide, index) => (_jsxs("div", { className: `absolute inset-0 transition-opacity duration-1000 ease-in-out ${index === currentSlide ? 'opacity-100 z-10' : 'opacity-0 z-0'}`, children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: slide.image, alt: slide.title, fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/50 via-black/20 to-transparent" })] }), _jsx("div", { className: "absolute inset-0 flex items-center z-20", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: `max-w-3xl text-white space-y-8 transition-all duration-1000 ${index === currentSlide
197
+ return (_jsxs("div", { className: "min-h-screen bg-white", children: [layoutConfig?.hero?.show !== false && heroSlides.length > 0 && (_jsxs("section", { "data-section": "hero", className: "relative h-[85vh] w-full overflow-hidden", onMouseEnter: () => setIsAutoPlaying(false), onMouseLeave: () => layoutConfig?.hero?.autoPlay !== false && setIsAutoPlaying(true), children: [_jsx("div", { className: "relative h-full w-full", children: heroSlides.map((slide, index) => (_jsxs("div", { className: `absolute inset-0 transition-opacity duration-1000 ease-in-out ${index === currentSlide ? 'opacity-100 z-10' : 'opacity-0 z-0'}`, children: [_jsxs("div", { className: "absolute inset-0", children: [_jsx(Image, { src: slide.image, alt: slide.title, fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/50 via-black/20 to-transparent" })] }), _jsx("div", { className: "absolute inset-0 flex items-center z-20", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: `max-w-3xl text-white space-y-8 transition-all duration-1000 ${index === currentSlide
198
198
  ? 'opacity-100 translate-y-0'
199
199
  : 'opacity-0 translate-y-8'}`, children: [_jsxs("div", { children: [slide.badge && (_jsx("span", { className: "inline-block px-4 py-1.5 bg-white/20 backdrop-blur-md rounded-full text-sm font-medium border border-white/30 uppercase tracking-wider mb-4", children: slide.badge })), _jsx("h1", { className: "text-4xl sm:text-6xl lg:text-7xl font-bold leading-tight tracking-tight mb-4", children: slide.title }), _jsx("div", { className: "h-1 w-24 bg-white/80 rounded-full" })] }), _jsx("p", { className: "text-xl sm:text-2xl text-gray-100 font-light leading-relaxed max-w-lg", children: slide.description }), _jsxs("div", { className: "flex flex-wrap gap-4 pt-4", children: [layoutConfig?.sections?.hero?.showCTA !== false &&
200
200
  layoutConfig?.hero?.showCTA !== false &&
@@ -204,7 +204,7 @@ export function ClothingHomePage({ storeConfig }) {
204
204
  slide.secondaryButtonText.trim() !== '' &&
205
205
  slide.secondaryButtonLink && (_jsx(Link, { href: slide.secondaryButtonLink, children: _jsx(Button, { size: "lg", variant: "outline", className: "h-14 px-10 text-base rounded-full border-white bg-transparent text-white hover:bg-white/20 hover:text-white backdrop-blur-sm transition-all duration-300", style: { color: 'white' }, children: slide.secondaryButtonText }) }))] })] }) }) })] }, index))) }), _jsx("button", { onClick: prevSlide, className: "absolute left-4 top-1/2 -translate-y-1/2 z-30 bg-white/10 hover:bg-white/20 backdrop-blur-md rounded-full p-3 transition-all duration-300 hover:scale-110 group", "aria-label": "Previous slide", children: _jsx(ChevronLeft, { className: "h-6 w-6 text-white group-hover:text-white" }) }), _jsx("button", { onClick: nextSlide, className: "absolute right-4 top-1/2 -translate-y-1/2 z-30 bg-white/10 hover:bg-white/20 backdrop-blur-md rounded-full p-3 transition-all duration-300 hover:scale-110 group", "aria-label": "Next slide", children: _jsx(ChevronRight, { className: "h-6 w-6 text-white group-hover:text-white" }) }), _jsx("div", { className: "absolute bottom-8 left-1/2 -translate-x-1/2 z-30 flex gap-2", children: heroSlides.map((_, index) => (_jsx("button", { onClick: () => goToSlide(index), className: `transition-all duration-300 rounded-full ${index === currentSlide
206
206
  ? 'w-12 h-2 bg-white'
207
- : 'w-2 h-2 bg-white/50 hover:bg-white/75'}`, "aria-label": `Go to slide ${index + 1}` }, index))) })] })), layoutConfig?.features?.show !== false && (_jsx("section", { className: "py-8 bg-gray-50 border-b border-gray-100", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 text-center divide-y md:divide-y-0 md:divide-x divide-gray-200", children: [_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(Truck, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Free Shipping" }), _jsxs("p", { className: "text-sm text-gray-500", children: ["On all orders over $", storeConfig.settings.freeShippingThreshold] })] }), _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(RefreshCw, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Free Returns" }), _jsx("p", { className: "text-sm text-gray-500", children: "30-day money back guarantee" })] }), _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(ShieldCheck, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Secure Payment" }), _jsx("p", { className: "text-sm text-gray-500", children: "100% secure checkout process" })] })] }) }) })), layoutConfig?.sections?.categories?.show !== false && (_jsx("section", { className: "py-12 md:py-20 px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-end mb-8 md:mb-12 gap-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-3 tracking-tight", children: getLayoutText(storeConfig, 'sections.categories.title', 'Shop by Category') }), _jsx("p", { className: "text-gray-500 text-lg", children: getLayoutText(storeConfig, 'sections.categories.subtitle', 'Curated collections for every style') })] }), layoutConfig?.sections?.categories?.showViewAll !== false && (_jsxs(Link, { href: `/${storeConfig.slug}/categories`, className: "group flex items-center gap-2 text-sm font-medium hover:text-gray-600 transition-colors pb-1 border-b border-transparent hover:border-gray-300", children: [getLayoutText(storeConfig, 'sections.categories.viewAll', 'View All Categories'), " ", _jsx(ArrowRight, { className: "h-4 w-4 transition-transform group-hover:translate-x-1" })] }))] }), _jsx("div", { className: `grid ${getCategoryGridClass()} gap-6`, children: displayedCategories.map((category) => {
207
+ : 'w-2 h-2 bg-white/50 hover:bg-white/75'}`, "aria-label": `Go to slide ${index + 1}` }, index))) })] })), layoutConfig?.features?.show !== false && (_jsx("section", { "data-section": "about", className: "py-8 bg-gray-50 border-b border-gray-100", children: _jsx("div", { className: "container mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 text-center divide-y md:divide-y-0 md:divide-x divide-gray-200", children: [_jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(Truck, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Free Shipping" }), _jsxs("p", { className: "text-sm text-gray-500", children: ["On all orders over $", storeConfig.settings.freeShippingThreshold] })] }), _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(RefreshCw, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Free Returns" }), _jsx("p", { className: "text-sm text-gray-500", children: "30-day money back guarantee" })] }), _jsxs("div", { className: "flex flex-col items-center justify-center gap-2 p-4", children: [_jsx(ShieldCheck, { className: "h-6 w-6 text-gray-900" }), _jsx("h3", { className: "font-semibold text-gray-900", children: "Secure Payment" }), _jsx("p", { className: "text-sm text-gray-500", children: "100% secure checkout process" })] })] }) }) })), layoutConfig?.sections?.categories?.show !== false && (_jsx("section", { "data-section": "categories", className: "py-12 md:py-20 px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-end mb-8 md:mb-12 gap-4", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-3 tracking-tight", children: getLayoutText(storeConfig, 'sections.categories.title', 'Shop by Category') }), _jsx("p", { className: "text-gray-500 text-lg", children: getLayoutText(storeConfig, 'sections.categories.subtitle', 'Curated collections for every style') })] }), layoutConfig?.sections?.categories?.showViewAll !== false && (_jsxs(Link, { href: `/${storeConfig.slug}/categories`, className: "group flex items-center gap-2 text-sm font-medium hover:text-gray-600 transition-colors pb-1 border-b border-transparent hover:border-gray-300", children: [getLayoutText(storeConfig, 'sections.categories.viewAll', 'View All Categories'), " ", _jsx(ArrowRight, { className: "h-4 w-4 transition-transform group-hover:translate-x-1" })] }))] }), _jsx("div", { className: `grid ${getCategoryGridClass()} gap-6`, children: displayedCategories.map((category) => {
208
208
  // Validate category image - handle all formats
209
209
  const extractCategoryImage = (image) => {
210
210
  if (!image)
@@ -229,7 +229,7 @@ export function ClothingHomePage({ storeConfig }) {
229
229
  };
230
230
  const categoryImage = extractCategoryImage(category.image);
231
231
  return (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${category.slug}`, className: `group relative overflow-hidden rounded-2xl aspect-[3/4]`, children: [_jsxs("div", { className: "absolute inset-0 bg-gray-200", children: [_jsx(ImageWithFallback, { src: categoryImage, alt: category.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110", skeletonAspectRatio: "auto" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/70 via-black/20 to-transparent opacity-80 group-hover:opacity-70 transition-opacity" })] }), _jsxs("div", { className: "absolute inset-0 flex flex-col justify-end p-8", children: [_jsx("h3", { className: "text-2xl font-bold text-white mb-2 transform translate-y-0 transition-transform duration-300", children: category.name }), _jsx("div", { className: "h-0.5 w-12 bg-white/0 group-hover:bg-white/100 transition-all duration-500 mb-4" }), _jsxs("span", { className: "inline-flex items-center text-white text-sm font-medium opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-300", children: [getLayoutText(storeConfig, 'common.shopNow', 'Shop Now'), " ", _jsx(ArrowRight, { className: "ml-2 h-4 w-4" })] })] })] }, category.id));
232
- }) })] }) })), layoutConfig?.sections?.marketing?.show !== false && (_jsx("section", { className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-stone-50", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-12 lg:gap-20 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-lg overflow-hidden relative", children: _jsx(ImageWithFallback, { src: layoutConfig?.sections?.marketing?.editorial?.image, alt: "Editorial Lookbook", className: "w-full h-full object-cover", skeletonAspectRatio: "4/5" }) }), layoutConfig?.sections?.marketing?.editorial?.detailImage && (_jsx("div", { className: "absolute -bottom-8 -right-8 w-48 h-48 bg-white p-4 shadow-xl rounded-lg hidden md:block animate-fade-in-up", style: { animationDelay: '0.2s' }, children: _jsx("div", { className: "w-full h-full relative", children: _jsx(ImageWithFallback, { src: layoutConfig.sections.marketing.editorial.detailImage, alt: "Detail Shot", className: "w-full h-full object-cover rounded", skeletonAspectRatio: "square" }) }) }))] }), _jsxs("div", { className: "space-y-8", children: [_jsx("span", { className: "text-sm font-bold tracking-widest text-gray-500 uppercase", children: layoutConfig?.sections?.marketing?.editorial?.label || "Editorial" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold tracking-tight leading-tight text-gray-900", children: layoutConfig?.sections?.marketing?.editorial?.title ? (layoutConfig.sections.marketing.editorial.title.split('\n').map((line, idx, arr) => (_jsxs("span", { children: [line, idx < arr.length - 1 && _jsx("br", {})] }, idx)))) : (_jsxs(_Fragment, { children: ["Redefining Modern ", _jsx("br", {}), _jsx("span", { className: "italic font-serif", children: "Elegance" })] })) }), _jsx("p", { className: "text-lg text-gray-600 leading-relaxed", children: layoutConfig?.sections?.marketing?.editorial?.description || "Explore our latest editorial featuring timeless pieces crafted for the contemporary wardrobe. From essential basics to statement outwear, find your signature look." }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 pt-4", children: [layoutConfig?.sections?.marketing?.editorial?.primaryButtonText && layoutConfig.sections.marketing.editorial.primaryButtonText.trim() !== '' && (_jsx(Link, { href: layoutConfig.sections.marketing.editorial.primaryButtonLink || `/${storeConfig.slug}/style-guide`, children: _jsx(Button, { className: "rounded-full px-8 py-6 bg-gray-900 hover:bg-black text-white transition-all", children: layoutConfig.sections.marketing.editorial.primaryButtonText }) })), layoutConfig?.sections?.marketing?.editorial?.secondaryButtonText && layoutConfig.sections.marketing.editorial.secondaryButtonText.trim() !== '' && (_jsx(Link, { href: layoutConfig.sections.marketing.editorial.secondaryButtonLink || `/${storeConfig.slug}/about`, children: _jsx(Button, { variant: "outline", className: "rounded-full px-8 py-6 border-gray-300 hover:bg-white hover:border-gray-900 transition-all", children: layoutConfig.sections.marketing.editorial.secondaryButtonText }) }))] })] })] }) }) })), layoutConfig?.sections?.featuredProducts?.show !== false && (_jsx("section", { className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-white", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center max-w-2xl mx-auto mb-10 md:mb-16", children: [_jsx("span", { className: "text-sm font-bold tracking-widest text-gray-500 uppercase mb-3 block", children: "Curated For You" }), _jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-4 tracking-tight", children: layoutConfig?.sections?.featuredProducts?.title || getLayoutText(storeConfig, 'sections.featuredProducts.title', 'Trending Now') }), _jsx("div", { className: "h-1 w-20 bg-gray-900 mx-auto mb-6" }), _jsx("p", { className: "text-gray-600 text-lg", children: getLayoutText(storeConfig, 'sections.featuredProducts.subtitle', 'Discover the latest trends and essential pieces that define this season\'s style.') })] }), _jsx("div", { className: "grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4 gap-4 sm:gap-8", children: products.slice(0, 4).map((product) => {
232
+ }) })] }) })), layoutConfig?.sections?.marketing?.show !== false && (_jsx("section", { "data-section": "about", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-stone-50", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-12 lg:gap-20 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-lg overflow-hidden relative", children: _jsx(ImageWithFallback, { src: layoutConfig?.sections?.about?.image || layoutConfig?.sections?.marketing?.editorial?.image, alt: "Editorial Lookbook", className: "w-full h-full object-cover", skeletonAspectRatio: "4/5" }) }), (layoutConfig?.sections?.about?.detailImage || layoutConfig?.sections?.marketing?.editorial?.detailImage) && (_jsx("div", { className: "absolute -bottom-8 -right-8 w-48 h-48 bg-white p-4 shadow-xl rounded-lg hidden md:block animate-fade-in-up", style: { animationDelay: '0.2s' }, children: _jsx("div", { className: "w-full h-full relative", children: _jsx(ImageWithFallback, { src: layoutConfig?.sections?.about?.detailImage || layoutConfig.sections.marketing.editorial.detailImage, alt: "Detail Shot", className: "w-full h-full object-cover rounded", skeletonAspectRatio: "square" }) }) }))] }), _jsxs("div", { className: "space-y-8", children: [_jsx("span", { className: "text-sm font-bold tracking-widest text-gray-500 uppercase", children: layoutConfig?.sections?.about?.label || layoutConfig?.sections?.marketing?.editorial?.label || "Editorial" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold tracking-tight leading-tight text-gray-900", children: layoutConfig?.sections?.about?.title ? (layoutConfig.sections.about.title.split('\n').map((line, idx, arr) => (_jsxs("span", { children: [line, idx < arr.length - 1 && _jsx("br", {})] }, idx)))) : layoutConfig?.sections?.marketing?.editorial?.title ? (layoutConfig.sections.marketing.editorial.title.split('\n').map((line, idx, arr) => (_jsxs("span", { children: [line, idx < arr.length - 1 && _jsx("br", {})] }, idx)))) : (_jsxs(_Fragment, { children: ["Redefining Modern ", _jsx("br", {}), _jsx("span", { className: "italic font-serif", children: "Elegance" })] })) }), _jsx("p", { className: "text-lg text-gray-600 leading-relaxed", children: layoutConfig?.sections?.about?.description || layoutConfig?.sections?.marketing?.editorial?.description || "Explore our latest editorial featuring timeless pieces crafted for the contemporary wardrobe. From essential basics to statement outwear, find your signature look." }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 pt-4", children: [(layoutConfig?.sections?.about?.primaryButtonText || layoutConfig?.sections?.marketing?.editorial?.primaryButtonText) && (_jsx(Link, { href: layoutConfig?.sections?.about?.primaryButtonLink || layoutConfig?.sections?.marketing?.editorial?.primaryButtonLink || `/${storeConfig.slug}/style-guide`, children: _jsx(Button, { className: "rounded-full px-8 py-6 bg-gray-900 hover:bg-black text-white transition-all", children: layoutConfig?.sections?.about?.primaryButtonText || layoutConfig.sections.marketing.editorial.primaryButtonText }) })), (layoutConfig?.sections?.about?.secondaryButtonText || layoutConfig?.sections?.marketing?.editorial?.secondaryButtonText) && (_jsx(Link, { href: layoutConfig?.sections?.about?.secondaryButtonLink || layoutConfig?.sections?.marketing?.editorial?.secondaryButtonLink || `/${storeConfig.slug}/about`, children: _jsx(Button, { variant: "outline", className: "rounded-full px-8 py-6 border-gray-300 hover:bg-white hover:border-gray-900 transition-all", children: layoutConfig?.sections?.about?.secondaryButtonText || layoutConfig.sections.marketing.editorial.secondaryButtonText }) }))] })] })] }) }) })), layoutConfig?.sections?.featuredProducts?.show !== false && (_jsx("section", { "data-section": "featuredProducts", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-white", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center max-w-2xl mx-auto mb-10 md:mb-16", children: [_jsx("span", { className: "text-sm font-bold tracking-widest text-gray-500 uppercase mb-3 block", children: "Curated For You" }), _jsx("h2", { className: "text-3xl md:text-4xl font-bold mb-4 tracking-tight", children: layoutConfig?.sections?.featuredProducts?.title || getLayoutText(storeConfig, 'sections.featuredProducts.title', 'Trending Now') }), _jsx("div", { className: "h-1 w-20 bg-gray-900 mx-auto mb-6" }), _jsx("p", { className: "text-gray-600 text-lg", children: getLayoutText(storeConfig, 'sections.featuredProducts.subtitle', 'Discover the latest trends and essential pieces that define this season\'s style.') })] }), _jsx("div", { className: "grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4 gap-4 sm:gap-8", children: products.slice(0, 4).map((product) => {
233
233
  // Comprehensive image extraction - handles all formats
234
234
  const extractProductImages = (images) => {
235
235
  if (!images)
@@ -1 +1 @@
1
- {"version":3,"file":"ClothingHomePageMinimal.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/components/ClothingHomePageMinimal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAe9D,UAAU,4BAA4B;IACpC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,4BAA4B,2CAobpF"}
1
+ {"version":3,"file":"ClothingHomePageMinimal.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/components/ClothingHomePageMinimal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAe9D,UAAU,4BAA4B;IACpC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,4BAA4B,2CAscpF"}
@@ -30,19 +30,19 @@ export function ClothingHomePageMinimal({ storeConfig }) {
30
30
  addToCart(product);
31
31
  addToast(`${product.name} added to cart`, 'success');
32
32
  };
33
- return (_jsxs("div", { className: "min-h-screen bg-white text-black font-sans selection:bg-black selection:text-white", children: [_jsx("header", { className: "fixed top-0 w-full z-40 bg-white/90 backdrop-blur-sm transition-all duration-300 border-b border-transparent hover:border-gray-100", children: _jsxs("div", { className: "container mx-auto px-4 md:px-8 h-20 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsMenuOpen(true), className: "hover:bg-gray-100 rounded-full", children: _jsx(Menu, { className: "h-5 w-5" }) }), storeConfig.features.search && (_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsSearchOpen(!isSearchOpen), className: "hidden md:flex hover:bg-gray-100 rounded-full", children: _jsx(Search, { className: "h-5 w-5" }) }))] }), !getLogoUrl(storeConfig) && (_jsx(Link, { href: `/${storeConfig.slug}`, className: "text-xl md:text-2xl font-bold tracking-tight absolute left-1/2 -translate-x-1/2 uppercase whitespace-nowrap", children: storeConfig.name })), getLogoUrl(storeConfig) && (_jsx(Link, { href: `/${storeConfig.slug}`, className: "absolute left-1/2 -translate-x-1/2", children: _jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name }) })), _jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Link, { href: `/${storeConfig.slug}/account`, className: "hidden md:block text-sm font-medium hover:text-gray-600", children: getLayoutText(storeConfig, 'common.account', 'Account') }), _jsxs(Button, { variant: "ghost", size: "icon", onClick: () => setIsCartOpen(true), className: "relative hover:bg-gray-100 rounded-full", children: [_jsx(ShoppingBag, { className: "h-5 w-5" }), isClient && cartCount > 0 && (_jsx("span", { className: "absolute top-2 right-2 h-2 w-2 bg-black rounded-full animate-pulse" }))] })] })] }) }), isSearchOpen && storeConfig.features.search && (_jsx("div", { className: "fixed inset-0 z-50 bg-white/95 backdrop-blur-md pt-20", children: _jsx("div", { className: "container mx-auto px-4 md:px-8", children: _jsxs("div", { className: "relative max-w-2xl mx-auto", children: [_jsx(Search, { className: "absolute left-4 top-1/2 -translate-y-1/2 h-5 w-5 text-gray-400" }), _jsx("input", { type: "text", placeholder: getLayoutText(storeConfig, 'header.searchPlaceholder', 'Search products...'), autoFocus: true, className: "w-full pl-12 pr-4 py-4 text-lg border-b-2 border-black focus:outline-none", onBlur: () => setIsSearchOpen(false) })] }) }) })), _jsx("section", { className: "pt-20 lg:h-screen h-auto w-full", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 h-full", children: [_jsx("div", { className: "relative bg-[#F4F4F4] flex flex-col justify-center px-12 md:px-24 lg:order-1 order-2 py-20 lg:py-0", children: _jsxs("div", { className: "space-y-6 md:space-y-8 max-w-lg animate-fade-in-up", children: [_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500", children: getTextContent(storeConfig, 'hero_badge', 'New Collection 2024') }), _jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", children: (() => {
34
- const titleText = getLayoutText(storeConfig, 'hero.title', 'Simplicity is the ultimate sophistication.');
33
+ return (_jsxs("div", { className: "min-h-screen bg-white text-black font-sans selection:bg-black selection:text-white", children: [_jsx("header", { className: "fixed top-0 w-full z-40 bg-white/90 backdrop-blur-sm transition-all duration-300 border-b border-transparent hover:border-gray-100", children: _jsxs("div", { className: "container mx-auto px-4 md:px-8 h-20 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsMenuOpen(true), className: "hover:bg-gray-100 rounded-full", children: _jsx(Menu, { className: "h-5 w-5" }) }), storeConfig.features.search && (_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsSearchOpen(!isSearchOpen), className: "hidden md:flex hover:bg-gray-100 rounded-full", children: _jsx(Search, { className: "h-5 w-5" }) }))] }), !getLogoUrl(storeConfig) && (_jsx(Link, { href: `/${storeConfig.slug}`, className: "text-xl md:text-2xl font-bold tracking-tight absolute left-1/2 -translate-x-1/2 uppercase whitespace-nowrap", children: storeConfig.name })), getLogoUrl(storeConfig) && (_jsx(Link, { href: `/${storeConfig.slug}`, className: "absolute left-1/2 -translate-x-1/2", children: _jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name }) })), _jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Link, { href: `/${storeConfig.slug}/account`, className: "hidden md:block text-sm font-medium hover:text-gray-600", children: getLayoutText(storeConfig, 'common.account', 'Account') }), _jsxs(Button, { variant: "ghost", size: "icon", onClick: () => setIsCartOpen(true), className: "relative hover:bg-gray-100 rounded-full", children: [_jsx(ShoppingBag, { className: "h-5 w-5" }), isClient && cartCount > 0 && (_jsx("span", { className: "absolute top-2 right-2 h-2 w-2 bg-black rounded-full animate-pulse" }))] })] })] }) }), isSearchOpen && storeConfig.features.search && (_jsx("div", { className: "fixed inset-0 z-50 bg-white/95 backdrop-blur-md pt-20", children: _jsx("div", { className: "container mx-auto px-4 md:px-8", children: _jsxs("div", { className: "relative max-w-2xl mx-auto", children: [_jsx(Search, { className: "absolute left-4 top-1/2 -translate-y-1/2 h-5 w-5 text-gray-400" }), _jsx("input", { type: "text", placeholder: getLayoutText(storeConfig, 'header.searchPlaceholder', 'Search products...'), autoFocus: true, className: "w-full pl-12 pr-4 py-4 text-lg border-b-2 border-black focus:outline-none", onBlur: () => setIsSearchOpen(false) })] }) }) })), _jsx("section", { "data-section": "hero", className: "pt-20 lg:h-screen h-auto w-full", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 h-full", children: [_jsx("div", { className: "relative bg-[#F4F4F4] flex flex-col justify-center px-12 md:px-24 lg:order-1 order-2 py-20 lg:py-0", children: _jsxs("div", { className: "space-y-6 md:space-y-8 max-w-lg animate-fade-in-up", children: [_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500", children: layoutConfig?.sections?.hero?.badge || getTextContent(storeConfig, 'hero_badge', 'New Collection 2024') }), _jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", children: (() => {
34
+ const titleText = layoutConfig?.sections?.hero?.title || getLayoutText(storeConfig, 'hero.title', 'Simplicity is the ultimate sophistication.');
35
35
  // If title contains "sophistication", preserve the italic styling
36
36
  if (titleText.includes('sophistication')) {
37
37
  const parts = titleText.split('sophistication');
38
38
  return (_jsxs(_Fragment, { children: [parts[0], _jsx("span", { className: "font-serif italic", children: "sophistication" }), parts[1]] }));
39
39
  }
40
40
  return titleText;
41
- })() }), _jsx("p", { className: "text-gray-600 text-lg leading-relaxed", children: getLayoutText(storeConfig, 'hero.subtitle', storeConfig.description ? `${storeConfig.description} Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.` : 'Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.') }), _jsx("div", { className: "pt-4", children: _jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsx(Button, { className: "h-14 px-10 rounded-full bg-black text-white hover:bg-gray-800 text-base transition-all hover:scale-105", children: getLayoutText(storeConfig, 'common.shopNow', 'Shop Collection') }) }) })] }) }), _jsxs("div", { className: "relative h-[60vh] lg:h-full w-full lg:order-2 order-1 overflow-hidden group", children: [_jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'hero_main', 'https://images.unsplash.com/photo-1539109136881-3be0616acf4b?q=80&w=1887&auto=format&fit=crop'), alt: "Minimal Fashion", className: "absolute inset-0 w-full h-full object-cover object-center group-hover:scale-105 transition-transform duration-[2s]" }), _jsxs("div", { className: "absolute bottom-8 right-8 bg-white/90 backdrop-blur p-4 rounded-lg hidden md:block", children: [_jsx("p", { className: "text-xs font-bold uppercase tracking-wider mb-1", children: "Featured Look" }), _jsx("p", { className: "text-sm text-gray-600", children: "Linen Blend Blazer - $299" })] })] })] }) }), _jsx("section", { className: "py-16 md:py-24 px-4 md:px-8", children: _jsxs("div", { className: "container mx-auto", children: [_jsxs("div", { className: "flex justify-between items-end mb-8 md:mb-12", children: [_jsx("h2", { className: "text-3xl font-light", children: getLayoutText(storeConfig, 'sections.categories.title', 'Categories') }), _jsx(Link, { href: `/${storeConfig.slug}/categories`, className: "text-sm font-bold uppercase tracking-wider border-b border-black pb-1 hover:text-gray-600 hover:border-gray-600 transition-colors", children: getLayoutText(storeConfig, 'sections.categories.viewAll', 'View All') })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: categories.slice(0, 3).map((category, idx) => (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${category.slug}`, className: "group block cursor-pointer", children: [_jsxs("div", { className: "relative aspect-[3/4] overflow-hidden bg-[#F4F4F4] mb-4", children: [_jsx(ImageWithFallback, { src: category.image, alt: category.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110", skeletonAspectRatio: "3/4" }), _jsx("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-500" }), _jsx("div", { className: "absolute top-4 right-4 bg-white rounded-full p-2 opacity-0 group-hover:opacity-100 transform translate-y-2 group-hover:translate-y-0 transition-all duration-300", children: _jsx(ArrowUpRight, { className: "h-5 w-5" }) })] }), _jsx("h3", { className: "text-xl font-medium mb-1", children: category.name }), _jsxs("p", { className: "text-sm text-gray-500", children: [12 + idx * 5, " Items"] })] }, category.id))) })] }) }), _jsx("section", { className: "py-16 md:py-24 bg-[#FAFAFA]", children: _jsxs("div", { className: "container mx-auto px-4 md:px-8", children: [_jsxs("div", { className: "max-w-2xl mx-auto text-center mb-10 md:mb-16", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-light mb-4", children: "The Essentials" }), _jsx("p", { className: "text-gray-500", children: "Timeless pieces designed to build the foundation of your wardrobe." })] }), _jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-x-6 gap-y-12 md:gap-8", children: products.slice(0, 4).map((product) => (_jsx("div", { className: "group", children: _jsxs(Link, { href: `/${storeConfig.slug}/products/${product.slug}`, children: [_jsxs("div", { className: "aspect-[3/4] bg-white overflow-hidden relative mb-4", children: [_jsx(ImageWithFallback, { src: product.images[0], alt: product.name, className: "w-full h-full object-cover mix-blend-multiply group-hover:scale-105 transition-transform duration-500", skeletonAspectRatio: "3/4" }), _jsx("div", { className: "hidden lg:flex absolute inset-0 bg-black/5 opacity-0 group-hover:opacity-100 transition-opacity items-end justify-center pb-6", children: _jsx("button", { onClick: (e) => {
41
+ })() }), _jsx("p", { className: "text-gray-600 text-lg leading-relaxed", children: layoutConfig?.sections?.hero?.subtitle || getLayoutText(storeConfig, 'hero.subtitle', storeConfig.description ? `${storeConfig.description} Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.` : 'Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.') }), _jsx("div", { className: "pt-4", children: _jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsx(Button, { className: "h-14 px-10 rounded-full bg-black text-white hover:bg-gray-800 text-base transition-all hover:scale-105", children: layoutConfig?.sections?.hero?.primaryCTA || getLayoutText(storeConfig, 'common.shopNow', 'Shop Collection') }) }) })] }) }), _jsxs("div", { className: "relative h-[60vh] lg:h-full w-full lg:order-2 order-1 overflow-hidden group", children: [_jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'hero_main', 'https://images.unsplash.com/photo-1539109136881-3be0616acf4b?q=80&w=1887&auto=format&fit=crop'), alt: "Minimal Fashion", className: "absolute inset-0 w-full h-full object-cover object-center group-hover:scale-105 transition-transform duration-[2s]" }), _jsxs("div", { className: "absolute bottom-8 right-8 bg-white/90 backdrop-blur p-4 rounded-lg hidden md:block", children: [_jsx("p", { className: "text-xs font-bold uppercase tracking-wider mb-1", children: "Featured Look" }), _jsx("p", { className: "text-sm text-gray-600", children: "Linen Blend Blazer - $299" })] })] })] }) }), _jsx("section", { "data-section": "categories", className: "py-16 md:py-24 px-4 md:px-8", children: _jsxs("div", { className: "container mx-auto", children: [_jsxs("div", { className: "flex justify-between items-end mb-8 md:mb-12", children: [_jsx("h2", { className: "text-3xl font-light", children: layoutConfig?.sections?.categories?.title || getLayoutText(storeConfig, 'sections.categories.title', 'Categories') }), _jsx(Link, { href: `/${storeConfig.slug}/categories`, className: "text-sm font-bold uppercase tracking-wider border-b border-black pb-1 hover:text-gray-600 hover:border-gray-600 transition-colors", children: layoutConfig?.sections?.categories?.viewAllLabel || getLayoutText(storeConfig, 'sections.categories.viewAll', 'View All') })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: categories.slice(0, 3).map((category, idx) => (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${category.slug}`, className: "group block cursor-pointer", children: [_jsxs("div", { className: "relative aspect-[3/4] overflow-hidden bg-[#F4F4F4] mb-4", children: [_jsx(ImageWithFallback, { src: category.image, alt: category.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110", skeletonAspectRatio: "3/4" }), _jsx("div", { className: "absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-500" }), _jsx("div", { className: "absolute top-4 right-4 bg-white rounded-full p-2 opacity-0 group-hover:opacity-100 transform translate-y-2 group-hover:translate-y-0 transition-all duration-300", children: _jsx(ArrowUpRight, { className: "h-5 w-5" }) })] }), _jsx("h3", { className: "text-xl font-medium mb-1", children: category.name }), _jsxs("p", { className: "text-sm text-gray-500", children: [12 + idx * 5, " Items"] })] }, category.id))) })] }) }), _jsx("section", { "data-section": "featuredProducts", className: "py-16 md:py-24 bg-[#FAFAFA]", children: _jsxs("div", { className: "container mx-auto px-4 md:px-8", children: [_jsxs("div", { className: "max-w-2xl mx-auto text-center mb-10 md:mb-16", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-light mb-4", children: layoutConfig?.sections?.featuredProducts?.title || 'The Essentials' }), _jsx("p", { className: "text-gray-500", children: layoutConfig?.sections?.featuredProducts?.subtitle || 'Timeless pieces designed to build the foundation of your wardrobe.' })] }), _jsx("div", { className: "grid grid-cols-2 lg:grid-cols-4 gap-x-6 gap-y-12 md:gap-8", children: products.slice(0, 4).map((product) => (_jsx("div", { className: "group", children: _jsxs(Link, { href: `/${storeConfig.slug}/products/${product.slug}`, children: [_jsxs("div", { className: "aspect-[3/4] bg-white overflow-hidden relative mb-4", children: [_jsx(ImageWithFallback, { src: product.images[0], alt: product.name, className: "w-full h-full object-cover mix-blend-multiply group-hover:scale-105 transition-transform duration-500", skeletonAspectRatio: "3/4" }), _jsx("div", { className: "hidden lg:flex absolute inset-0 bg-black/5 opacity-0 group-hover:opacity-100 transition-opacity items-end justify-center pb-6", children: _jsx("button", { onClick: (e) => {
42
42
  e.preventDefault();
43
43
  handleAddToCart(product);
44
44
  }, className: "bg-white text-black px-8 py-3 rounded-full text-sm font-bold shadow-lg transform translate-y-4 group-hover:translate-y-0 transition-all duration-300 hover:bg-black hover:text-white", children: "Quick Add" }) }), _jsx("button", { onClick: (e) => {
45
45
  e.preventDefault();
46
46
  handleAddToCart(product);
47
- }, className: "lg:hidden absolute bottom-3 right-3 bg-white text-black h-10 w-10 flex items-center justify-center rounded-full shadow-lg z-10 active:scale-95 transition-transform", children: _jsx(Plus, { className: "h-5 w-5" }) }), product.compareAtPrice && (_jsx("span", { className: "absolute top-2 left-2 text-[10px] font-bold uppercase tracking-wider bg-black text-white px-2 py-1", children: getLayoutText(storeConfig, 'common.sale', 'Sale') }))] }), _jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-medium text-base mb-1 group-hover:underline decoration-1 underline-offset-4", children: product.name }), _jsx("div", { className: "flex gap-2 mb-2", children: ['#D4D4D4', '#171717', '#737373'].map((color, i) => (_jsx("div", { className: "w-3 h-3 rounded-full border border-gray-200", style: { backgroundColor: color } }, i))) })] }), _jsx("span", { className: "font-medium text-sm", children: formatCurrency(product.price, product.currency || 'USD') })] })] }) }, product.id))) })] }) }), _jsx("section", { className: "py-16 md:py-24 px-4 md:px-8 border-t border-gray-100", children: _jsx("div", { className: "container mx-auto", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 items-center", children: [_jsxs("div", { className: "relative aspect-[4/5] bg-gray-100 group overflow-hidden", children: [_jsx(ImageWithFallback, { src: "https://images.unsplash.com/photo-1483985988355-763728e1935b?q=80&w=2070&auto=format&fit=crop", alt: "Shop the look", className: "w-full h-full object-cover" }), _jsxs("div", { className: "absolute top-[30%] left-[45%] group/spot", children: [_jsx("div", { className: "w-4 h-4 bg-white rounded-full animate-pulse cursor-pointer relative z-10 hover:scale-125 transition-transform" }), _jsxs("div", { className: "absolute left-6 top-1/2 -translate-y-1/2 bg-white p-3 rounded shadow-lg w-48 opacity-0 group-hover/spot:opacity-100 transition-opacity pointer-events-none group-hover/spot:pointer-events-auto", children: [_jsx("p", { className: "font-bold text-xs mb-1", children: "Oversized Wool Coat" }), _jsx("p", { className: "text-xs text-gray-500", children: "$299.00" })] })] }), _jsxs("div", { className: "absolute bottom-[25%] right-[40%] group/spot", children: [_jsx("div", { className: "w-4 h-4 bg-white rounded-full animate-pulse cursor-pointer relative z-10 hover:scale-125 transition-transform" }), _jsxs("div", { className: "absolute right-6 top-1/2 -translate-y-1/2 bg-white p-3 rounded shadow-lg w-48 opacity-0 group-hover/spot:opacity-100 transition-opacity pointer-events-none group-hover/spot:pointer-events-auto", children: [_jsx("p", { className: "font-bold text-xs mb-1", children: "Leather Ankle Boots" }), _jsx("p", { className: "text-xs text-gray-500", children: "$189.00" })] })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsxs("h2", { className: "text-4xl font-light", children: ["Winter ", _jsx("span", { className: "font-serif italic", children: "Layering" })] }), _jsx("p", { className: "text-gray-600 leading-relaxed max-w-md", children: "Master the art of layering with our winter collection. Combining warmth with style, these pieces are designed to work together seamlessly." }), _jsx("div", { className: "space-y-4", children: products.slice(0, 3).map((item, i) => (_jsxs("div", { className: "flex gap-4 items-center p-2 hover:bg-gray-50 rounded-lg transition-colors group cursor-pointer", children: [_jsx("div", { className: "w-16 h-20 bg-white relative", children: _jsx(ImageWithFallback, { src: item.images[0], alt: item.name, className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "flex-1", children: [_jsx("h4", { className: "font-medium text-sm mb-1", children: item.name }), _jsx("p", { className: "text-xs text-gray-500", children: formatCurrency(item.price, item.currency || storeConfig.settings?.currency || 'USD') })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: () => handleAddToCart(item), className: "opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(Plus, { className: "h-4 w-4" }) })] }, i))) }), _jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsx(Button, { className: "w-full bg-black text-white hover:bg-gray-800 h-12 rounded-none uppercase tracking-widest text-xs font-bold", children: getLayoutText(storeConfig, 'common.shopNow', 'Shop The Edit') }) })] })] }) }) }), _jsx("footer", { className: "bg-white border-t border-gray-100 pt-20 pb-10 px-4 md:px-8", children: _jsxs("div", { className: "container mx-auto", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-12 mb-16", children: [_jsxs("div", { className: "md:col-span-1", children: [_jsx(Link, { href: `/${storeConfig.slug}`, className: "text-xl font-bold uppercase tracking-tight block mb-6", children: storeConfig.name }), _jsx("p", { className: "text-gray-500 text-sm leading-relaxed mb-6", children: "Quality materials, ethical production, and timeless design. Made for the modern world." })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Shop" }), _jsxs("ul", { className: "space-y-3 text-sm text-gray-500", children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "New Arrivals" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "Clothing" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/categories`, className: "hover:text-black transition-colors", children: "Accessories" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "Sale" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Support" }), _jsxs("ul", { className: "space-y-3 text-sm text-gray-500", children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/help-center`, className: "hover:text-black transition-colors", children: "FAQ" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/shipping-returns`, className: "hover:text-black transition-colors", children: "Shipping & Returns" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/style-guide`, className: "hover:text-black transition-colors", children: "Size Guide" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-black transition-colors", children: "Contact Us" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Newsletter" }), _jsx("p", { className: "text-sm text-gray-500 mb-4", children: "Subscribe to receive news and updates." }), _jsxs("div", { className: "flex border-b border-gray-300 focus-within:border-black transition-colors pb-2", children: [_jsx("input", { type: "email", placeholder: "Email Address", className: "w-full outline-none text-sm placeholder:text-gray-400" }), _jsx("button", { className: "text-xs font-bold uppercase hover:opacity-70", children: "Submit" })] })] })] }), _jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center text-xs text-gray-400 border-t border-gray-100 pt-8", children: [_jsxs("p", { children: ["\u00A9 2024 ", storeConfig.name, "."] }), storeConfig.branding.socialMedia && (_jsxs("div", { className: "flex gap-6 mt-4 md:mt-0", children: [storeConfig.branding.socialMedia.instagram && (_jsx("a", { href: storeConfig.branding.socialMedia.instagram, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Instagram" })), storeConfig.branding.socialMedia.pinterest && (_jsx("a", { href: storeConfig.branding.socialMedia.pinterest, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Pinterest" })), storeConfig.branding.socialMedia.twitter && (_jsx("a", { href: storeConfig.branding.socialMedia.twitter, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Twitter" }))] }))] })] }) }), _jsx(Sheet, { isOpen: isCartOpen, onClose: () => setIsCartOpen(false), title: `Shopping Bag (${cartCount})`, side: "right", children: cart.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center h-full text-center space-y-4", children: [_jsx(ShoppingBag, { className: "h-12 w-12 text-gray-300" }), _jsx("p", { className: "text-gray-500", children: getLayoutText(storeConfig, 'header.cartEmpty', 'Your bag is empty.') }), _jsx(Button, { onClick: () => setIsCartOpen(false), variant: "outline", className: "mt-4", children: getLayoutText(storeConfig, 'common.continueShopping', 'Continue Shopping') })] })) : (_jsxs("div", { className: "flex flex-col h-full", children: [_jsx("div", { className: "flex-1 overflow-y-auto py-4 space-y-6", children: cart.map((item) => (_jsxs("div", { className: "flex gap-4", children: [_jsx("div", { className: "w-20 h-24 bg-gray-100 flex-shrink-0 overflow-hidden relative", children: _jsx(ImageWithFallback, { src: item.product.images[0], alt: item.product.name, className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "flex-1 flex flex-col justify-between", children: [_jsxs("div", { children: [_jsx("h4", { className: "font-medium text-sm line-clamp-2", children: item.product.name }), _jsx("p", { className: "text-gray-500 text-xs mt-1", children: item.variantName })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center border border-gray-200 rounded-full", children: [_jsx("button", { onClick: () => updateCartQuantity(item.id, item.quantity - 1), className: "p-1 hover:bg-gray-100 rounded-full", children: _jsx(Minus, { className: "h-3 w-3" }) }), _jsx("span", { className: "text-xs font-medium px-2", children: item.quantity }), _jsx("button", { onClick: () => updateCartQuantity(item.id, item.quantity + 1), className: "p-1 hover:bg-gray-100 rounded-full", children: _jsx(Plus, { className: "h-3 w-3" }) })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "font-medium text-sm", children: formatCurrency(item.price * item.quantity, item.product?.currency || storeConfig.settings?.currency || 'USD') }), _jsx("button", { onClick: () => removeFromCart(item.id), className: "text-gray-400 hover:text-red-500", children: _jsx(Trash2, { className: "h-4 w-4" }) })] })] })] })] }, item.id))) }), _jsxs("div", { className: "border-t pt-4 space-y-4", children: [_jsxs("div", { className: "flex justify-between font-medium text-lg", children: [_jsx("span", { children: "Subtotal" }), _jsx("span", { children: formatCurrency(cartTotal, storeConfig.settings?.currency || 'USD') })] }), _jsx("p", { className: "text-xs text-gray-500 text-center", children: "Shipping and taxes calculated at checkout." }), _jsx(CheckoutButton, { storeConfig: storeConfig, className: "w-full h-12 bg-black text-white hover:bg-gray-800 rounded-full font-bold" })] })] })) }), _jsxs(Sheet, { isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), title: "Menu", side: "left", children: [_jsx("div", { className: "pt-4 pb-6", children: _jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), _jsx("input", { type: "text", placeholder: "Search...", className: "w-full pl-10 pr-4 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:border-black transition-colors" })] }) }), _jsxs("nav", { className: "flex flex-col space-y-6 text-lg font-medium", children: [_jsx(Link, { href: `/${storeConfig.slug}/products`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500", children: "Shop All" }), _jsx(Link, { href: `/${storeConfig.slug}/categories`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500", children: "Categories" }), _jsx("div", { className: "h-px bg-gray-100 my-2" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500 text-base font-normal", children: "Our Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500 text-base font-normal", children: "Contact" }), _jsxs("div", { className: "mt-auto pt-12 text-sm font-normal text-gray-500", children: [_jsx("p", { children: "Sign in" }), _jsx("p", { className: "mt-2", children: "Create Account" })] })] })] }), _jsx(PromoBanner, { config: layoutConfig?.sections?.promoBanner, layoutStyle: "clothing" })] }));
47
+ }, className: "lg:hidden absolute bottom-3 right-3 bg-white text-black h-10 w-10 flex items-center justify-center rounded-full shadow-lg z-10 active:scale-95 transition-transform", children: _jsx(Plus, { className: "h-5 w-5" }) }), product.compareAtPrice && (_jsx("span", { className: "absolute top-2 left-2 text-[10px] font-bold uppercase tracking-wider bg-black text-white px-2 py-1", children: getLayoutText(storeConfig, 'common.sale', 'Sale') }))] }), _jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-medium text-base mb-1 group-hover:underline decoration-1 underline-offset-4", children: product.name }), _jsx("div", { className: "flex gap-2 mb-2", children: ['#D4D4D4', '#171717', '#737373'].map((color, i) => (_jsx("div", { className: "w-3 h-3 rounded-full border border-gray-200", style: { backgroundColor: color } }, i))) })] }), _jsx("span", { className: "font-medium text-sm", children: formatCurrency(product.price, product.currency || 'USD') })] })] }) }, product.id))) })] }) }), _jsx("section", { "data-section": "about", className: "py-16 md:py-24 px-4 md:px-8 border-t border-gray-100", children: _jsx("div", { className: "container mx-auto", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-10 md:gap-16 items-center", children: [_jsxs("div", { className: "relative aspect-[4/5] bg-gray-100 group overflow-hidden", children: [_jsx(ImageWithFallback, { src: "https://images.unsplash.com/photo-1483985988355-763728e1935b?q=80&w=2070&auto=format&fit=crop", alt: "Shop the look", className: "w-full h-full object-cover" }), _jsxs("div", { className: "absolute top-[30%] left-[45%] group/spot", children: [_jsx("div", { className: "w-4 h-4 bg-white rounded-full animate-pulse cursor-pointer relative z-10 hover:scale-125 transition-transform" }), _jsxs("div", { className: "absolute left-6 top-1/2 -translate-y-1/2 bg-white p-3 rounded shadow-lg w-48 opacity-0 group-hover/spot:opacity-100 transition-opacity pointer-events-none group-hover/spot:pointer-events-auto", children: [_jsx("p", { className: "font-bold text-xs mb-1", children: "Oversized Wool Coat" }), _jsx("p", { className: "text-xs text-gray-500", children: "$299.00" })] })] }), _jsxs("div", { className: "absolute bottom-[25%] right-[40%] group/spot", children: [_jsx("div", { className: "w-4 h-4 bg-white rounded-full animate-pulse cursor-pointer relative z-10 hover:scale-125 transition-transform" }), _jsxs("div", { className: "absolute right-6 top-1/2 -translate-y-1/2 bg-white p-3 rounded shadow-lg w-48 opacity-0 group-hover/spot:opacity-100 transition-opacity pointer-events-none group-hover/spot:pointer-events-auto", children: [_jsx("p", { className: "font-bold text-xs mb-1", children: "Leather Ankle Boots" }), _jsx("p", { className: "text-xs text-gray-500", children: "$189.00" })] })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsx("h2", { className: "text-4xl font-light", children: layoutConfig?.sections?.about?.title || (_jsxs(_Fragment, { children: ["Winter ", _jsx("span", { className: "font-serif italic", children: "Layering" })] })) }), _jsx("p", { className: "text-gray-600 leading-relaxed max-w-md", children: layoutConfig?.sections?.about?.description || 'Master the art of layering with our winter collection. Combining warmth with style, these pieces are designed to work together seamlessly.' }), _jsx("div", { className: "space-y-4", children: products.slice(0, 3).map((item, i) => (_jsxs("div", { className: "flex gap-4 items-center p-2 hover:bg-gray-50 rounded-lg transition-colors group cursor-pointer", children: [_jsx("div", { className: "w-16 h-20 bg-white relative", children: _jsx(ImageWithFallback, { src: item.images[0], alt: item.name, className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "flex-1", children: [_jsx("h4", { className: "font-medium text-sm mb-1", children: item.name }), _jsx("p", { className: "text-xs text-gray-500", children: formatCurrency(item.price, item.currency || storeConfig.settings?.currency || 'USD') })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: () => handleAddToCart(item), className: "opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(Plus, { className: "h-4 w-4" }) })] }, i))) }), _jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsx(Button, { className: "w-full bg-black text-white hover:bg-gray-800 h-12 rounded-none uppercase tracking-widest text-xs font-bold", children: getLayoutText(storeConfig, 'common.shopNow', 'Shop The Edit') }) })] })] }) }) }), _jsx("footer", { className: "bg-white border-t border-gray-100 pt-20 pb-10 px-4 md:px-8", children: _jsxs("div", { className: "container mx-auto", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-12 mb-16", children: [_jsxs("div", { className: "md:col-span-1", children: [_jsx(Link, { href: `/${storeConfig.slug}`, className: "text-xl font-bold uppercase tracking-tight block mb-6", children: storeConfig.name }), _jsx("p", { className: "text-gray-500 text-sm leading-relaxed mb-6", children: "Quality materials, ethical production, and timeless design. Made for the modern world." })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Shop" }), _jsxs("ul", { className: "space-y-3 text-sm text-gray-500", children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "New Arrivals" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "Clothing" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/categories`, className: "hover:text-black transition-colors", children: "Accessories" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/products`, className: "hover:text-black transition-colors", children: "Sale" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Support" }), _jsxs("ul", { className: "space-y-3 text-sm text-gray-500", children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/help-center`, className: "hover:text-black transition-colors", children: "FAQ" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/shipping-returns`, className: "hover:text-black transition-colors", children: "Shipping & Returns" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/style-guide`, className: "hover:text-black transition-colors", children: "Size Guide" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-black transition-colors", children: "Contact Us" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-xs uppercase tracking-widest mb-6", children: "Newsletter" }), _jsx("p", { className: "text-sm text-gray-500 mb-4", children: "Subscribe to receive news and updates." }), _jsxs("div", { className: "flex border-b border-gray-300 focus-within:border-black transition-colors pb-2", children: [_jsx("input", { type: "email", placeholder: "Email Address", className: "w-full outline-none text-sm placeholder:text-gray-400" }), _jsx("button", { className: "text-xs font-bold uppercase hover:opacity-70", children: "Submit" })] })] })] }), _jsxs("div", { className: "flex flex-col md:flex-row justify-between items-center text-xs text-gray-400 border-t border-gray-100 pt-8", children: [_jsxs("p", { children: ["\u00A9 2024 ", storeConfig.name, "."] }), storeConfig.branding.socialMedia && (_jsxs("div", { className: "flex gap-6 mt-4 md:mt-0", children: [storeConfig.branding.socialMedia.instagram && (_jsx("a", { href: storeConfig.branding.socialMedia.instagram, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Instagram" })), storeConfig.branding.socialMedia.pinterest && (_jsx("a", { href: storeConfig.branding.socialMedia.pinterest, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Pinterest" })), storeConfig.branding.socialMedia.twitter && (_jsx("a", { href: storeConfig.branding.socialMedia.twitter, target: "_blank", rel: "noopener noreferrer", className: "hover:text-black", children: "Twitter" }))] }))] })] }) }), _jsx(Sheet, { isOpen: isCartOpen, onClose: () => setIsCartOpen(false), title: `Shopping Bag (${cartCount})`, side: "right", children: cart.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center h-full text-center space-y-4", children: [_jsx(ShoppingBag, { className: "h-12 w-12 text-gray-300" }), _jsx("p", { className: "text-gray-500", children: getLayoutText(storeConfig, 'header.cartEmpty', 'Your bag is empty.') }), _jsx(Button, { onClick: () => setIsCartOpen(false), variant: "outline", className: "mt-4", children: getLayoutText(storeConfig, 'common.continueShopping', 'Continue Shopping') })] })) : (_jsxs("div", { className: "flex flex-col h-full", children: [_jsx("div", { className: "flex-1 overflow-y-auto py-4 space-y-6", children: cart.map((item) => (_jsxs("div", { className: "flex gap-4", children: [_jsx("div", { className: "w-20 h-24 bg-gray-100 flex-shrink-0 overflow-hidden relative", children: _jsx(ImageWithFallback, { src: item.product.images[0], alt: item.product.name, className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "flex-1 flex flex-col justify-between", children: [_jsxs("div", { children: [_jsx("h4", { className: "font-medium text-sm line-clamp-2", children: item.product.name }), _jsx("p", { className: "text-gray-500 text-xs mt-1", children: item.variantName })] }), _jsxs("div", { className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center border border-gray-200 rounded-full", children: [_jsx("button", { onClick: () => updateCartQuantity(item.id, item.quantity - 1), className: "p-1 hover:bg-gray-100 rounded-full", children: _jsx(Minus, { className: "h-3 w-3" }) }), _jsx("span", { className: "text-xs font-medium px-2", children: item.quantity }), _jsx("button", { onClick: () => updateCartQuantity(item.id, item.quantity + 1), className: "p-1 hover:bg-gray-100 rounded-full", children: _jsx(Plus, { className: "h-3 w-3" }) })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "font-medium text-sm", children: formatCurrency(item.price * item.quantity, item.product?.currency || storeConfig.settings?.currency || 'USD') }), _jsx("button", { onClick: () => removeFromCart(item.id), className: "text-gray-400 hover:text-red-500", children: _jsx(Trash2, { className: "h-4 w-4" }) })] })] })] })] }, item.id))) }), _jsxs("div", { className: "border-t pt-4 space-y-4", children: [_jsxs("div", { className: "flex justify-between font-medium text-lg", children: [_jsx("span", { children: "Subtotal" }), _jsx("span", { children: formatCurrency(cartTotal, storeConfig.settings?.currency || 'USD') })] }), _jsx("p", { className: "text-xs text-gray-500 text-center", children: "Shipping and taxes calculated at checkout." }), _jsx(CheckoutButton, { storeConfig: storeConfig, className: "w-full h-12 bg-black text-white hover:bg-gray-800 rounded-full font-bold" })] })] })) }), _jsxs(Sheet, { isOpen: isMenuOpen, onClose: () => setIsMenuOpen(false), title: "Menu", side: "left", children: [_jsx("div", { className: "pt-4 pb-6", children: _jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" }), _jsx("input", { type: "text", placeholder: "Search...", className: "w-full pl-10 pr-4 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:border-black transition-colors" })] }) }), _jsxs("nav", { className: "flex flex-col space-y-6 text-lg font-medium", children: [_jsx(Link, { href: `/${storeConfig.slug}/products`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500", children: "Shop All" }), _jsx(Link, { href: `/${storeConfig.slug}/categories`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500", children: "Categories" }), _jsx("div", { className: "h-px bg-gray-100 my-2" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500 text-base font-normal", children: "Our Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, onClick: () => setIsMenuOpen(false), className: "hover:text-gray-500 text-base font-normal", children: "Contact" }), _jsxs("div", { className: "mt-auto pt-12 text-sm font-normal text-gray-500", children: [_jsx("p", { children: "Sign in" }), _jsx("p", { className: "mt-2", children: "Create Account" })] })] })] }), _jsx(PromoBanner, { config: layoutConfig?.sections?.promoBanner, layoutStyle: "clothing" })] }));
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ElectronicsHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics/components/ElectronicsHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAe9D,UAAU,wBAAwB;IAChC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE,wBAAwB,2CAiZ5E"}
1
+ {"version":3,"file":"ElectronicsHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics/components/ElectronicsHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAe9D,UAAU,wBAAwB;IAChC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,WAAW,EAAE,EAAE,wBAAwB,2CAwa5E"}
@@ -67,12 +67,12 @@ export function ElectronicsHomePage({ storeConfig }) {
67
67
  return _jsx(Camera, { className: "h-6 w-6" });
68
68
  return _jsx(Zap, { className: "h-6 w-6" });
69
69
  };
70
- return (_jsxs("div", { className: "min-h-screen bg-slate-50 text-slate-900 font-sans selection:bg-blue-600 selection:text-white", children: [_jsx(ElectronicsStoreHeader, { storeConfig: storeConfig }), layout?.hero?.show !== false && (_jsxs("section", { ref: targetRef, className: "relative min-h-screen flex items-center pt-20 overflow-hidden bg-slate-950", children: [_jsxs("div", { className: "absolute inset-0 overflow-hidden pointer-events-none", children: [_jsx("div", { className: "absolute top-[-10%] right-[-5%] w-[600px] h-[600px] bg-blue-600/20 rounded-full blur-[120px]" }), _jsx("div", { className: "absolute bottom-[-10%] left-[-5%] w-[500px] h-[500px] bg-indigo-600/20 rounded-full blur-[100px]" }), _jsx("div", { className: "absolute top-[20%] left-[20%] w-[300px] h-[300px] bg-cyan-500/10 rounded-full blur-[80px]" })] }), _jsx("div", { className: "container mx-auto px-6 relative z-10 py-20", children: _jsxs("div", { className: "grid lg:grid-cols-2 gap-16 items-center", children: [_jsxs(motion.div, { style: { opacity, scale }, className: "space-y-8 relative z-20", children: [layout?.hero?.showBadges !== false && (_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-slate-900/50 border border-slate-800 text-blue-400 text-xs font-bold uppercase tracking-wider backdrop-blur-md", children: [_jsx("span", { className: "w-2 h-2 rounded-full bg-blue-500 animate-pulse" }), getLayoutText(storeConfig, 'electronics.newArrivals', 'Next Gen • 2025 Series')] })), _jsxs("h1", { className: "text-4xl sm:text-6xl md:text-7xl lg:text-8xl font-black tracking-tighter leading-[0.9] text-white", children: [getLayoutText(storeConfig, 'hero.title', 'Future Realized'), " ", _jsx("br", {}), _jsx("span", { className: "text-transparent bg-clip-text bg-gradient-to-r from-blue-400 via-indigo-400 to-cyan-400", children: "Realized." })] }), _jsx("div", { className: "lg:hidden w-full max-w-[300px] mx-auto py-8", children: _jsx("div", { className: "relative aspect-square bg-gradient-to-br from-slate-800/50 to-slate-900/50 rounded-3xl p-6 border border-slate-700/30", children: _jsx(ImageWithFallback, { src: products[0]?.images?.[0], alt: "Hero Product", className: "w-full h-full object-contain drop-shadow-2xl", skeletonAspectRatio: "square" }) }) }), _jsxs("p", { className: "text-lg text-slate-400 max-w-xl leading-relaxed font-medium", children: [storeConfig.description, " Experience the pinnacle of engineering with our curated collection of premium electronics."] }), _jsxs("div", { className: "flex flex-wrap items-center gap-4 pt-4", children: [layout?.hero?.showCTA !== false && (_jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsxs(Button, { className: "h-14 px-10 rounded-full bg-blue-600 hover:bg-blue-500 text-white font-bold text-lg transition-all hover:scale-105 shadow-[0_0_40px_-10px_rgba(59,130,246,0.5)] border-0 ring-0", children: [getLayoutText(storeConfig, 'common.shopNow', 'Shop Now'), " ", _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) })), layout?.sections?.featuredProducts?.show !== false && (_jsxs("div", { className: "flex items-center gap-4 text-slate-400 text-sm font-medium ml-4", children: [_jsx("div", { className: "flex -space-x-3", children: [1, 2, 3].map(i => (_jsx("div", { className: "w-10 h-10 rounded-full border-2 border-slate-950 bg-slate-800 flex items-center justify-center text-xs text-white", children: _jsx("span", { className: "sr-only", children: "User" }) }, i))) }), _jsxs("div", { children: [_jsx("p", { className: "text-white font-bold", children: getLayoutText(storeConfig, 'common.account', '10k+ Happy') }), _jsx("p", { children: getLayoutText(storeConfig, 'common.account', 'Customers') })] })] }))] })] }), _jsx("div", { className: "relative h-[600px] hidden lg:block perspective-1000", children: _jsxs(motion.div, { initial: { opacity: 0, x: 100, rotateY: -20 }, animate: { opacity: 1, x: 0, rotateY: 0 }, transition: { duration: 1, ease: "easeOut" }, className: "relative z-10 w-full h-full", children: [_jsxs("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[400px] h-[500px] bg-gradient-to-br from-slate-800/80 to-slate-900/80 backdrop-blur-xl rounded-[3rem] border border-slate-700/50 p-8 shadow-2xl shadow-blue-900/20 transform rotate-[-6deg] hover:rotate-0 transition-transform duration-700", children: [_jsx("div", { className: "absolute top-8 right-8", children: _jsx(Zap, { className: "text-blue-500 w-8 h-8" }) }), _jsx(ImageWithFallback, { src: products[0]?.images?.[0], alt: "Hero Product", className: "w-full h-3/4 object-contain drop-shadow-[0_20px_50px_rgba(0,0,0,0.5)]", skeletonAspectRatio: "square" }), _jsx("div", { className: "absolute bottom-8 left-8 right-8", children: _jsxs("div", { className: "flex justify-between items-end", children: [_jsxs("div", { children: [_jsx("p", { className: "text-blue-400 font-bold text-sm mb-1", children: "New Arrival" }), _jsx("h3", { className: "text-white text-2xl font-bold", children: products[0]?.name })] }), _jsx("div", { className: "text-right", children: _jsx("p", { className: "text-white text-2xl font-bold", children: formatCurrency(products[0]?.price || 0, products[0]?.currency || storeConfig?.settings?.currency || 'USD') }) })] }) })] }), _jsx(motion.div, { animate: { y: [0, -20, 0] }, transition: { repeat: Infinity, duration: 6, ease: "easeInOut" }, className: "absolute top-20 right-10 bg-white/10 backdrop-blur-md p-4 rounded-2xl border border-white/10", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "bg-green-500/20 p-2 rounded-lg", children: _jsx(Battery, { className: "text-green-400 w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-xs text-slate-400", children: "Battery Life" }), _jsx("p", { className: "text-sm font-bold text-white", children: "24 Hours" })] })] }) }), _jsx(motion.div, { animate: { y: [0, 20, 0] }, transition: { repeat: Infinity, duration: 5, ease: "easeInOut", delay: 1 }, className: "absolute bottom-40 left-0 bg-white/10 backdrop-blur-md p-4 rounded-2xl border border-white/10", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "bg-blue-500/20 p-2 rounded-lg", children: _jsx(Wifi, { className: "text-blue-400 w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-xs text-slate-400", children: "Connectivity" }), _jsx("p", { className: "text-sm font-bold text-white", children: "5G Ultra" })] })] }) })] }) })] }) })] })), layout?.sections?.brands?.show !== false && (_jsx("div", { className: "bg-slate-950 border-y border-slate-900 overflow-hidden py-10", children: _jsx("div", { className: "flex gap-16 items-center animate-scroll whitespace-nowrap opacity-50 hover:opacity-100 transition-opacity duration-300", children: [...Array(2)].map((_, i) => (_jsx("div", { className: "flex gap-16 items-center", children: ['SONY', 'SAMSUNG', 'APPLE', 'DELL', 'LG', 'ASUS', 'HP', 'BOSE', 'CANON', 'NIKON'].map((brand) => (_jsx("span", { className: "text-3xl font-black text-slate-800 tracking-tight hover:text-slate-600 transition-colors cursor-default select-none", children: brand }, brand))) }, i))) }) })), layout?.sections?.categories?.show !== false && (_jsx("section", { className: "py-16 md:py-32 bg-slate-50", children: _jsxs("div", { className: "container mx-auto px-6", children: [_jsxs("div", { className: "flex justify-between items-end mb-10 md:mb-16", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-4xl font-bold mb-4 text-slate-900 tracking-tight", children: "Ecosystems" }), _jsx("p", { className: "text-lg text-slate-500", children: "Curated collections for every aspect of your digital life." })] }), layout?.sections?.categories?.showViewAll !== false && (_jsxs(Link, { href: `/${storeConfig.slug}/categories`, className: "flex items-center gap-2 text-blue-600 font-bold hover:gap-3 transition-all", children: ["View All ", _jsx(ArrowRight, { className: "h-5 w-5" })] }))] }), categories.length === 0 ? (_jsxs("div", { className: "text-center py-20 bg-white rounded-2xl border border-slate-200", children: [_jsx("h3", { className: "text-xl font-semibold text-slate-900 mb-2", children: "No categories available" }), _jsx("p", { className: "text-slate-500", children: "Categories will appear here once they are added to the store." })] })) : (_jsx("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-6 auto-rows-[300px]", children: categories.slice(0, layout?.sections?.categories?.limit || 5).map((category, idx) => {
70
+ return (_jsxs("div", { className: "min-h-screen bg-slate-50 text-slate-900 font-sans selection:bg-blue-600 selection:text-white", children: [_jsx(ElectronicsStoreHeader, { storeConfig: storeConfig }), layout?.hero?.show !== false && (_jsxs("section", { "data-section": "hero", ref: targetRef, className: "relative min-h-screen flex items-center pt-20 overflow-hidden bg-slate-950", children: [_jsxs("div", { className: "absolute inset-0 overflow-hidden pointer-events-none", children: [_jsx("div", { className: "absolute top-[-10%] right-[-5%] w-[600px] h-[600px] bg-blue-600/20 rounded-full blur-[120px]" }), _jsx("div", { className: "absolute bottom-[-10%] left-[-5%] w-[500px] h-[500px] bg-indigo-600/20 rounded-full blur-[100px]" }), _jsx("div", { className: "absolute top-[20%] left-[20%] w-[300px] h-[300px] bg-cyan-500/10 rounded-full blur-[80px]" })] }), _jsx("div", { className: "container mx-auto px-6 relative z-10 py-20", children: _jsxs("div", { className: "grid lg:grid-cols-2 gap-16 items-center", children: [_jsxs(motion.div, { style: { opacity, scale }, className: "space-y-8 relative z-20", children: [layout?.hero?.showBadges !== false && (_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-slate-900/50 border border-slate-800 text-blue-400 text-xs font-bold uppercase tracking-wider backdrop-blur-md", children: [_jsx("span", { className: "w-2 h-2 rounded-full bg-blue-500 animate-pulse" }), layout?.sections?.hero?.badge || getLayoutText(storeConfig, 'electronics.newArrivals', 'Next Gen • 2025 Series')] })), _jsxs("h1", { className: "text-4xl sm:text-6xl md:text-7xl lg:text-8xl font-black tracking-tighter leading-[0.9] text-white", children: [layout?.sections?.hero?.title || getLayoutText(storeConfig, 'hero.title', 'Future Realized'), " ", _jsx("br", {}), _jsx("span", { className: "text-transparent bg-clip-text bg-gradient-to-r from-blue-400 via-indigo-400 to-cyan-400", children: "Realized." })] }), _jsx("div", { className: "lg:hidden w-full max-w-[300px] mx-auto py-8", children: _jsx("div", { className: "relative aspect-square bg-gradient-to-br from-slate-800/50 to-slate-900/50 rounded-3xl p-6 border border-slate-700/30", children: _jsx(ImageWithFallback, { src: products[0]?.images?.[0], alt: "Hero Product", className: "w-full h-full object-contain drop-shadow-2xl", skeletonAspectRatio: "square" }) }) }), _jsx("p", { className: "text-lg text-slate-400 max-w-xl leading-relaxed font-medium", children: layout?.sections?.hero?.subtitle || `${storeConfig.description} Experience the pinnacle of engineering with our curated collection of premium electronics.` }), _jsxs("div", { className: "flex flex-wrap items-center gap-4 pt-4", children: [layout?.hero?.showCTA !== false && (_jsx(Link, { href: `/${storeConfig.slug}/products`, children: _jsxs(Button, { className: "h-14 px-10 rounded-full bg-blue-600 hover:bg-blue-500 text-white font-bold text-lg transition-all hover:scale-105 shadow-[0_0_40px_-10px_rgba(59,130,246,0.5)] border-0 ring-0", children: [layout?.sections?.hero?.primaryCTA || getLayoutText(storeConfig, 'common.shopNow', 'Shop Now'), " ", _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) })), layout?.sections?.featuredProducts?.show !== false && (_jsxs("div", { className: "flex items-center gap-4 text-slate-400 text-sm font-medium ml-4", children: [_jsx("div", { className: "flex -space-x-3", children: [1, 2, 3].map(i => (_jsx("div", { className: "w-10 h-10 rounded-full border-2 border-slate-950 bg-slate-800 flex items-center justify-center text-xs text-white", children: _jsx("span", { className: "sr-only", children: "User" }) }, i))) }), _jsxs("div", { children: [_jsx("p", { className: "text-white font-bold", children: getLayoutText(storeConfig, 'common.account', '10k+ Happy') }), _jsx("p", { children: getLayoutText(storeConfig, 'common.account', 'Customers') })] })] }))] })] }), _jsx("div", { className: "relative h-[600px] hidden lg:block perspective-1000", children: _jsxs(motion.div, { initial: { opacity: 0, x: 100, rotateY: -20 }, animate: { opacity: 1, x: 0, rotateY: 0 }, transition: { duration: 1, ease: "easeOut" }, className: "relative z-10 w-full h-full", children: [_jsxs("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[400px] h-[500px] bg-gradient-to-br from-slate-800/80 to-slate-900/80 backdrop-blur-xl rounded-[3rem] border border-slate-700/50 p-8 shadow-2xl shadow-blue-900/20 transform rotate-[-6deg] hover:rotate-0 transition-transform duration-700", children: [_jsx("div", { className: "absolute top-8 right-8", children: _jsx(Zap, { className: "text-blue-500 w-8 h-8" }) }), _jsx(ImageWithFallback, { src: products[0]?.images?.[0], alt: "Hero Product", className: "w-full h-3/4 object-contain drop-shadow-[0_20px_50px_rgba(0,0,0,0.5)]", skeletonAspectRatio: "square" }), _jsx("div", { className: "absolute bottom-8 left-8 right-8", children: _jsxs("div", { className: "flex justify-between items-end", children: [_jsxs("div", { children: [_jsx("p", { className: "text-blue-400 font-bold text-sm mb-1", children: "New Arrival" }), _jsx("h3", { className: "text-white text-2xl font-bold", children: products[0]?.name })] }), _jsx("div", { className: "text-right", children: _jsx("p", { className: "text-white text-2xl font-bold", children: formatCurrency(products[0]?.price || 0, products[0]?.currency || storeConfig?.settings?.currency || 'USD') }) })] }) })] }), _jsx(motion.div, { animate: { y: [0, -20, 0] }, transition: { repeat: Infinity, duration: 6, ease: "easeInOut" }, className: "absolute top-20 right-10 bg-white/10 backdrop-blur-md p-4 rounded-2xl border border-white/10", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "bg-green-500/20 p-2 rounded-lg", children: _jsx(Battery, { className: "text-green-400 w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-xs text-slate-400", children: "Battery Life" }), _jsx("p", { className: "text-sm font-bold text-white", children: "24 Hours" })] })] }) }), _jsx(motion.div, { animate: { y: [0, 20, 0] }, transition: { repeat: Infinity, duration: 5, ease: "easeInOut", delay: 1 }, className: "absolute bottom-40 left-0 bg-white/10 backdrop-blur-md p-4 rounded-2xl border border-white/10", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "bg-blue-500/20 p-2 rounded-lg", children: _jsx(Wifi, { className: "text-blue-400 w-5 h-5" }) }), _jsxs("div", { children: [_jsx("p", { className: "text-xs text-slate-400", children: "Connectivity" }), _jsx("p", { className: "text-sm font-bold text-white", children: "5G Ultra" })] })] }) })] }) })] }) })] })), layout?.sections?.brands?.show !== false && (_jsx("div", { "data-section": "brands", className: "bg-slate-950 border-y border-slate-900 overflow-hidden py-10", children: _jsx("div", { className: "flex gap-16 items-center animate-scroll whitespace-nowrap opacity-50 hover:opacity-100 transition-opacity duration-300", children: [...Array(2)].map((_, i) => (_jsx("div", { className: "flex gap-16 items-center", children: ['SONY', 'SAMSUNG', 'APPLE', 'DELL', 'LG', 'ASUS', 'HP', 'BOSE', 'CANON', 'NIKON'].map((brand) => (_jsx("span", { className: "text-3xl font-black text-slate-800 tracking-tight hover:text-slate-600 transition-colors cursor-default select-none", children: brand }, brand))) }, i))) }) })), layout?.sections?.categories?.show !== false && (_jsx("section", { "data-section": "categories", className: "py-16 md:py-32 bg-slate-50", children: _jsxs("div", { className: "container mx-auto px-6", children: [_jsxs("div", { className: "flex justify-between items-end mb-10 md:mb-16", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-4xl font-bold mb-4 text-slate-900 tracking-tight", children: "Ecosystems" }), _jsx("p", { className: "text-lg text-slate-500", children: "Curated collections for every aspect of your digital life." })] }), layout?.sections?.categories?.showViewAll !== false && (_jsxs(Link, { href: `/${storeConfig.slug}/categories`, className: "flex items-center gap-2 text-blue-600 font-bold hover:gap-3 transition-all", children: ["View All ", _jsx(ArrowRight, { className: "h-5 w-5" })] }))] }), categories.length === 0 ? (_jsxs("div", { className: "text-center py-20 bg-white rounded-2xl border border-slate-200", children: [_jsx("h3", { className: "text-xl font-semibold text-slate-900 mb-2", children: "No categories available" }), _jsx("p", { className: "text-slate-500", children: "Categories will appear here once they are added to the store." })] })) : (_jsx("div", { className: "grid grid-cols-1 md:grid-cols-4 gap-6 auto-rows-[300px]", children: categories.slice(0, layout?.sections?.categories?.limit || 5).map((category, idx) => {
71
71
  const isLarge = idx === 0 || idx === 3;
72
72
  return (_jsxs(Link, { href: `/${storeConfig.slug}/categories/${category.slug}`, className: `group relative overflow-hidden rounded-[2.5rem] bg-white shadow-sm border border-slate-100 hover:shadow-2xl hover:shadow-blue-500/10 transition-all duration-500 ${isLarge ? 'md:col-span-2' : 'md:col-span-1'}`, children: [_jsx(ImageWithFallback, { src: category.image, alt: category.name, className: "absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-105", skeletonAspectRatio: "auto" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-slate-950/80 via-slate-950/20 to-transparent opacity-80 group-hover:opacity-90 transition-opacity" }), _jsxs("div", { className: "absolute bottom-0 left-0 p-8 w-full", children: [_jsx("div", { className: "mb-3 text-white/80 group-hover:text-blue-400 transition-colors", children: getCategoryIcon(category.slug) }), _jsx("h3", { className: `font-bold text-white mb-2 ${isLarge ? 'text-3xl' : 'text-xl'}`, children: category.name }), _jsx("div", { className: "w-10 h-1 bg-blue-500 rounded-full transform scale-x-0 group-hover:scale-x-100 transition-transform origin-left duration-300" })] })] }, idx));
73
- }) }))] }) })), layout?.sections?.featuredProducts?.show !== false && (_jsx("section", { className: "py-16 md:py-32 bg-white relative overflow-hidden", children: _jsxs("div", { className: "container mx-auto px-6 relative z-10", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-end mb-8 md:mb-12 gap-6", children: [_jsxs("div", { className: "max-w-2xl", children: [_jsx("span", { className: "text-blue-600 font-bold tracking-widest text-xs uppercase mb-3 block", children: "Latest Drops" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold text-slate-900 tracking-tight", children: layout?.sections?.featuredProducts?.title || "Performance Redefined" })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "outline", size: "icon", onClick: scrollLeft, className: "rounded-full border-slate-200 hover:bg-slate-100 hover:text-slate-900", children: _jsx(ArrowRight, { className: "h-5 w-5 rotate-180" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: scrollRight, className: "rounded-full border-slate-200 hover:bg-slate-100 hover:text-slate-900", children: _jsx(ArrowRight, { className: "h-5 w-5" }) })] })] }), _jsx("div", { ref: scrollContainerRef, className: "flex overflow-x-auto snap-x snap-mandatory gap-8 pb-12 -mx-6 px-6 scrollbar-hide", children: products.map((product) => (_jsxs("div", { className: "min-w-[280px] md:min-w-[320px] snap-center group", children: [_jsxs("div", { className: "relative aspect-[4/5] bg-slate-50 rounded-[2.5rem] overflow-hidden mb-6 border border-slate-100", children: [_jsx("div", { className: "absolute top-4 left-4 z-20", children: product.compareAtPrice && (_jsx("span", { className: "bg-slate-900 text-white text-[10px] font-bold px-3 py-1.5 rounded-full", children: "SALE" })) }), layout?.sections?.featuredProducts?.showAddToCart !== false && (_jsx("div", { className: "absolute top-4 right-4 z-20 opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(Button, { size: "icon", onClick: (e) => handleAddToCart(e, product), className: "rounded-full bg-white text-slate-900 hover:bg-blue-600 hover:text-white shadow-lg", children: _jsx(ShoppingCart, { className: "h-4 w-4" }) }) })), _jsx("div", { className: "absolute inset-0 flex items-center justify-center p-8 bg-gradient-to-br from-white to-slate-50", children: _jsx(ImageWithFallback, { src: product.images?.[0], alt: product.name, className: "w-full h-full object-contain group-hover:scale-110 transition-transform duration-500", skeletonAspectRatio: "square" }) })] }), _jsxs("div", { className: "space-y-1 px-2", children: [_jsx("h3", { className: "font-bold text-lg text-slate-900 truncate group-hover:text-blue-600 transition-colors", children: product.name }), _jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "text-slate-900 font-bold", children: formatCurrency(product.price, product.currency || 'USD') }), product.compareAtPrice && _jsx("span", { className: "text-slate-400 text-sm line-through", children: formatCurrency(product.compareAtPrice, product.currency || 'USD') })] })] }), _jsx(Link, { href: `/${storeConfig.slug}/products/${product.slug}`, className: "absolute inset-0 z-10" })] }, product.id))) })] }) })), layout?.features?.show !== false && (_jsxs("section", { className: "py-16 md:py-32 bg-slate-950 text-white relative overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_60%_60%_at_50%_50%,#000_70%,transparent_100%)]" }), _jsx("div", { className: "container mx-auto px-6 relative z-10", children: _jsx("div", { className: "grid md:grid-cols-3 gap-8 md:gap-12", children: [
73
+ }) }))] }) })), layout?.sections?.featuredProducts?.show !== false && (_jsx("section", { "data-section": "featuredProducts", className: "py-16 md:py-32 bg-white relative overflow-hidden", children: _jsxs("div", { className: "container mx-auto px-6 relative z-10", children: [_jsxs("div", { className: "flex flex-col md:flex-row justify-between items-end mb-8 md:mb-12 gap-6", children: [_jsxs("div", { className: "max-w-2xl", children: [_jsx("span", { className: "text-blue-600 font-bold tracking-widest text-xs uppercase mb-3 block", children: "Latest Drops" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold text-slate-900 tracking-tight", children: layout?.sections?.featuredProducts?.title || "Performance Redefined" })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { variant: "outline", size: "icon", onClick: scrollLeft, className: "rounded-full border-slate-200 hover:bg-slate-100 hover:text-slate-900", children: _jsx(ArrowRight, { className: "h-5 w-5 rotate-180" }) }), _jsx(Button, { variant: "outline", size: "icon", onClick: scrollRight, className: "rounded-full border-slate-200 hover:bg-slate-100 hover:text-slate-900", children: _jsx(ArrowRight, { className: "h-5 w-5" }) })] })] }), _jsx("div", { ref: scrollContainerRef, className: "flex overflow-x-auto snap-x snap-mandatory gap-8 pb-12 -mx-6 px-6 scrollbar-hide", children: products.map((product) => (_jsxs("div", { className: "min-w-[280px] md:min-w-[320px] snap-center group", children: [_jsxs("div", { className: "relative aspect-[4/5] bg-slate-50 rounded-[2.5rem] overflow-hidden mb-6 border border-slate-100", children: [_jsx("div", { className: "absolute top-4 left-4 z-20", children: product.compareAtPrice && (_jsx("span", { className: "bg-slate-900 text-white text-[10px] font-bold px-3 py-1.5 rounded-full", children: "SALE" })) }), layout?.sections?.featuredProducts?.showAddToCart !== false && (_jsx("div", { className: "absolute top-4 right-4 z-20 opacity-0 group-hover:opacity-100 transition-opacity", children: _jsx(Button, { size: "icon", onClick: (e) => handleAddToCart(e, product), className: "rounded-full bg-white text-slate-900 hover:bg-blue-600 hover:text-white shadow-lg", children: _jsx(ShoppingCart, { className: "h-4 w-4" }) }) })), _jsx("div", { className: "absolute inset-0 flex items-center justify-center p-8 bg-gradient-to-br from-white to-slate-50", children: _jsx(ImageWithFallback, { src: product.images?.[0], alt: product.name, className: "w-full h-full object-contain group-hover:scale-110 transition-transform duration-500", skeletonAspectRatio: "square" }) })] }), _jsxs("div", { className: "space-y-1 px-2", children: [_jsx("h3", { className: "font-bold text-lg text-slate-900 truncate group-hover:text-blue-600 transition-colors", children: product.name }), _jsxs("div", { className: "flex items-baseline gap-2", children: [_jsx("span", { className: "text-slate-900 font-bold", children: formatCurrency(product.price, product.currency || 'USD') }), product.compareAtPrice && _jsx("span", { className: "text-slate-400 text-sm line-through", children: formatCurrency(product.compareAtPrice, product.currency || 'USD') })] })] }), _jsx(Link, { href: `/${storeConfig.slug}/products/${product.slug}`, className: "absolute inset-0 z-10" })] }, product.id))) })] }) })), layout?.features?.show !== false && (_jsxs("section", { "data-section": "about", className: "py-16 md:py-32 bg-slate-950 text-white relative overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-[linear-gradient(rgba(255,255,255,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.03)_1px,transparent_1px)] bg-[size:64px_64px] [mask-image:radial-gradient(ellipse_60%_60%_at_50%_50%,#000_70%,transparent_100%)]" }), _jsx("div", { className: "container mx-auto px-6 relative z-10", children: _jsx("div", { className: "grid md:grid-cols-3 gap-8 md:gap-12", children: [
74
74
  { icon: Cpu, title: "Neural Processing", desc: "Advanced AI capabilities built into every device for smarter performance." },
75
75
  { icon: Shield, title: "Military Grade", desc: "Tested against rigorous standards to ensure durability in any environment." },
76
76
  { icon: Zap, title: "Hyper Charge", desc: "Next-generation battery technology for all-day power in minutes." }
77
- ].map((feature, i) => (_jsxs("div", { className: "bg-slate-900/50 backdrop-blur-sm border border-slate-800 p-8 rounded-[2rem] hover:bg-slate-800/50 transition-colors", children: [_jsx("div", { className: "w-14 h-14 rounded-2xl bg-blue-600/20 flex items-center justify-center mb-6 text-blue-400", children: layout?.features?.showIcons !== false && _jsx(feature.icon, { className: "h-7 w-7" }) }), _jsx("h3", { className: "text-xl font-bold mb-3", children: feature.title }), _jsx("p", { className: "text-slate-400 leading-relaxed", children: feature.desc })] }, i))) }) })] })), layout?.sections?.marketing?.showNewsletter !== false && (_jsx("section", { className: "py-16 md:py-32 bg-white", children: _jsx("div", { className: "container mx-auto px-6", children: _jsxs("div", { className: "bg-blue-600 rounded-[3rem] p-10 md:p-24 text-center relative overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-blue-500 to-indigo-600" }), _jsx("div", { className: "absolute inset-0 opacity-20 bg-[url('https://grainy-gradients.vercel.app/noise.svg')]" }), _jsxs("div", { className: "relative z-10 max-w-2xl mx-auto space-y-8", children: [_jsx("h2", { className: "text-4xl md:text-5xl font-black text-white tracking-tight", children: "Stay Ahead of the Curve" }), _jsx("p", { className: "text-blue-100 text-lg", children: "Join our exclusive community for early access to drops and special offers." }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 max-w-md mx-auto", children: [_jsx("input", { type: "email", placeholder: "Enter your email", value: email, onChange: (e) => setEmail(e.target.value), className: "flex-1 h-14 px-6 rounded-full bg-white/10 border border-white/20 text-white placeholder:text-blue-200 focus:outline-none focus:bg-white/20 focus:border-white transition-all backdrop-blur-md" }), _jsx(Button, { onClick: handleSubscribe, className: "h-14 px-8 rounded-full bg-white text-blue-600 hover:bg-blue-50 font-bold text-lg shadow-xl", children: "Subscribe" })] })] })] }) }) })), _jsx(PromoBanner, { config: layout?.sections?.promoBanner, layoutStyle: "electronics" }), _jsx(ElectronicsStoreFooter, { storeConfig: storeConfig })] }));
77
+ ].map((feature, i) => (_jsxs("div", { className: "bg-slate-900/50 backdrop-blur-sm border border-slate-800 p-8 rounded-[2rem] hover:bg-slate-800/50 transition-colors", children: [_jsx("div", { className: "w-14 h-14 rounded-2xl bg-blue-600/20 flex items-center justify-center mb-6 text-blue-400", children: layout?.features?.showIcons !== false && _jsx(feature.icon, { className: "h-7 w-7" }) }), _jsx("h3", { className: "text-xl font-bold mb-3", children: feature.title }), _jsx("p", { className: "text-slate-400 leading-relaxed", children: feature.desc })] }, i))) }) })] })), layout?.sections?.marketing?.showNewsletter !== false && (_jsx("section", { "data-section": "marketing", className: "py-16 md:py-32 bg-white", children: _jsx("div", { className: "container mx-auto px-6", children: _jsxs("div", { className: "bg-blue-600 rounded-[3rem] p-10 md:p-24 text-center relative overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-gradient-to-br from-blue-500 to-indigo-600" }), _jsx("div", { className: "absolute inset-0 opacity-20 bg-[url('https://grainy-gradients.vercel.app/noise.svg')]" }), _jsxs("div", { className: "relative z-10 max-w-2xl mx-auto space-y-8", children: [_jsx("h2", { className: "text-4xl md:text-5xl font-black text-white tracking-tight", children: layout?.sections?.marketing?.newsletterTitle || 'Stay Ahead of the Curve' }), _jsx("p", { className: "text-blue-100 text-lg", children: layout?.sections?.marketing?.newsletterSubtitle || 'Join our exclusive community for early access to drops and special offers.' }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 max-w-md mx-auto", children: [_jsx("input", { type: "email", placeholder: layout?.sections?.marketing?.newsletterPlaceholder || 'Enter your email', value: email, onChange: (e) => setEmail(e.target.value), className: "flex-1 h-14 px-6 rounded-full bg-white/10 border border-white/20 text-white placeholder:text-blue-200 focus:outline-none focus:bg-white/20 focus:border-white transition-all backdrop-blur-md" }), _jsx(Button, { onClick: handleSubscribe, className: "h-14 px-8 rounded-full bg-white text-blue-600 hover:bg-blue-50 font-bold text-lg shadow-xl", children: layout?.sections?.marketing?.newsletterButton || 'Subscribe' })] })] })] }) }) })), _jsx(PromoBanner, { config: layout?.sections?.promoBanner, layoutStyle: "electronics" }), _jsx(ElectronicsStoreFooter, { storeConfig: storeConfig })] }));
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ElectronicsHomePageGrid.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics-grid/components/ElectronicsHomePageGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA+B,MAAM,mBAAmB,CAAC;AAmB7E,UAAU,4BAA4B;IACnC,WAAW,EAAE,WAAW,CAAC;CAC3B;AA+ED,wBAAgB,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,4BAA4B,2CAscpF"}
1
+ {"version":3,"file":"ElectronicsHomePageGrid.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics-grid/components/ElectronicsHomePageGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA+B,MAAM,mBAAmB,CAAC;AAmB7E,UAAU,4BAA4B;IACnC,WAAW,EAAE,WAAW,CAAC;CAC3B;AA+ED,wBAAgB,uBAAuB,CAAC,EAAE,WAAW,EAAE,EAAE,4BAA4B,2CA2cpF"}