payaza-storefront-layouts 1.0.21 → 1.0.24
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.
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -1
- package/dist/layouts/booking/components/BookingHomePage.js +7 -7
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -1
- package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +2 -2
- package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
- package/dist/layouts/clothing/components/ClothingHomePage.js +1 -1
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
- package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +4 -4
- package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -1
- package/dist/layouts/electronics/components/ElectronicsHomePage.js +2 -2
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
- package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +2 -2
- package/dist/layouts/food/components/FoodHomePage.js +1 -1
- package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -1
- package/dist/layouts/food-modern/components/FoodHomePageModern.js +2 -2
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -1
- package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +4 -4
- package/dist/preview/LayoutPreview.d.ts +2 -1
- package/dist/preview/LayoutPreview.d.ts.map +1 -1
- package/dist/preview/LayoutPreview.js +2 -2
- package/dist/preview/PreviewRouter.js +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { ProductsPage as FoodProductsPage } from './layouts/food/pages/ProductsP
|
|
|
8
8
|
export { ProductDetailPage as FoodProductDetailPage } from './layouts/food/pages/ProductDetailPage';
|
|
9
9
|
export { CategoryPage as FoodCategoryPage } from './layouts/food/pages/CategoryPage';
|
|
10
10
|
export { CategoriesPage as FoodCategoriesPage } from './layouts/food/pages/CategoriesPage';
|
|
11
|
-
export { MenuPage } from './layouts/food/pages/MenuPage';
|
|
11
|
+
export { MenuPage as FoodMenuPage } from './layouts/food/pages/MenuPage';
|
|
12
12
|
export { AboutPage as FoodAboutPage } from './layouts/food/pages/AboutPage';
|
|
13
13
|
export { ContactPage as FoodContactPage } from './layouts/food/pages/ContactPage';
|
|
14
14
|
export { FoodHomePageModern } from './layouts/food-modern/components/FoodHomePageModern';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpG,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC3F,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,iBAAiB,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjH,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClG,OAAO,EAAE,cAAc,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACxG,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAG/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,iBAAiB,IAAI,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAC5G,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,YAAY,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5G,OAAO,EAAE,iBAAiB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC3H,OAAO,EAAE,YAAY,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5G,OAAO,EAAE,cAAc,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAClH,OAAO,EAAE,SAAS,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,WAAW,IAAI,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAGzG,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,IAAI,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAC1G,OAAO,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACjG,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAAE,QAAQ,IAAI,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAAE,YAAY,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,iBAAiB,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACvH,OAAO,EAAE,YAAY,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,cAAc,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC9G,OAAO,EAAE,SAAS,IAAI,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,WAAW,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAGrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AACjG,OAAO,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AACzG,OAAO,EAAE,YAAY,IAAI,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvG,OAAO,EAAE,iBAAiB,IAAI,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAClH,OAAO,EAAE,YAAY,IAAI,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,cAAc,IAAI,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC7G,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACzG,OAAO,EAAE,iBAAiB,IAAI,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAClH,OAAO,EAAE,mBAAmB,IAAI,8BAA8B,EAAE,MAAM,iDAAiD,CAAC;AACxH,OAAO,EAAE,SAAS,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAGzG,OAAO,EAAE,0BAA0B,IAAI,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAChJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,6BAA6B,EAAE,MAAM,gEAAgE,CAAC;AAC/G,OAAO,EAAE,YAAY,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5G,OAAO,EAAE,iBAAiB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC3H,OAAO,EAAE,YAAY,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC5G,OAAO,EAAE,cAAc,IAAI,iCAAiC,EAAE,MAAM,iDAAiD,CAAC;AACtH,OAAO,EAAE,SAAS,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,WAAW,IAAI,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AACzG,OAAO,EAAE,cAAc,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAClH,OAAO,EAAE,iBAAiB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC3H,OAAO,EAAE,mBAAmB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AACjI,OAAO,EAAE,SAAS,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,cAAc,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAGlH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gEAAgE,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,mEAAmE,CAAC;AAC5G,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,YAAY,IAAI,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAC7G,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACpG,OAAO,EAAE,WAAW,IAAI,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,iCAAiC,EACjC,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ export { ProductsPage as FoodProductsPage } from './layouts/food/pages/ProductsP
|
|
|
10
10
|
export { ProductDetailPage as FoodProductDetailPage } from './layouts/food/pages/ProductDetailPage';
|
|
11
11
|
export { CategoryPage as FoodCategoryPage } from './layouts/food/pages/CategoryPage';
|
|
12
12
|
export { CategoriesPage as FoodCategoriesPage } from './layouts/food/pages/CategoriesPage';
|
|
13
|
-
export { MenuPage } from './layouts/food/pages/MenuPage';
|
|
13
|
+
export { MenuPage as FoodMenuPage } from './layouts/food/pages/MenuPage';
|
|
14
14
|
export { AboutPage as FoodAboutPage } from './layouts/food/pages/AboutPage';
|
|
15
15
|
export { ContactPage as FoodContactPage } from './layouts/food/pages/ContactPage';
|
|
16
16
|
// Food-modern layout exports
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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"}
|
|
@@ -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", { "data-section": "
|
|
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,
|
|
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:
|
|
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,
|
|
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", { "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" }), 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" }) }) }),
|
|
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
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", { "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:
|
|
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,
|
|
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"}
|
|
@@ -39,7 +39,7 @@ export function ElectronicsHomePageGrid({ storeConfig }) {
|
|
|
39
39
|
? products.filter(p => p.name.toLowerCase().includes(searchQuery.toLowerCase()) || p.description.toLowerCase().includes(searchQuery.toLowerCase()))
|
|
40
40
|
: products;
|
|
41
41
|
const [isFilterOpen, setIsFilterOpen] = useState(false);
|
|
42
|
-
return (_jsxs("div", { className: "min-h-screen font-sans text-gray-900 bg-white", children: [_jsx("div", { className: "bg-white text-gray-500 text-xs font-normal py-3 px-4 md:px-8 border-b border-gray-100/50", children: _jsxs("div", { className: "container mx-auto flex justify-between items-center", children: [_jsxs("div", { className: "hidden md:flex gap-8", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Package, { className: "h-3.5 w-3.5 text-gray-400" }), " Free Express Shipping Nationwide"] }), _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(CheckCircle2, { className: "h-3.5 w-3.5 text-gray-400" }), " Authentic Apple Products"] })] }), _jsxs("div", { className: "flex gap-6 ml-auto", children: [_jsx(Link, { href: `/${storeConfig.slug}/track-order`, className: "hover:text-gray-900 transition-colors", children: "Track Order" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-gray-900 transition-colors", children: "Business Direct" }), _jsx(Link, { href: `/${storeConfig.slug}/help-center`, className: "hover:text-gray-900 transition-colors", children: "Support" })] })] }) }), _jsxs("header", { className: "sticky top-0 z-50 bg-white/95 backdrop-blur-md border-b border-gray-100", children: [_jsxs("div", { className: "container mx-auto px-4 md:px-6 h-16 flex items-center gap-8", children: [_jsx(Link, { href: `/${storeConfig.slug}`, className: "flex flex-col leading-none shrink-0 group", children: getLogoUrl(storeConfig) ? (_jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-xl font-medium tracking-tight text-gray-900 group-hover:text-gray-600 transition-colors", children: storeConfig.name }), _jsx("span", { className: "text-[9px] font-normal tracking-wide text-gray-400 mt-0.5", children:
|
|
42
|
+
return (_jsxs("div", { className: "min-h-screen font-sans text-gray-900 bg-white", children: [_jsx("div", { className: "bg-white text-gray-500 text-xs font-normal py-3 px-4 md:px-8 border-b border-gray-100/50", children: _jsxs("div", { className: "container mx-auto flex justify-between items-center", children: [_jsxs("div", { className: "hidden md:flex gap-8", children: [_jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(Package, { className: "h-3.5 w-3.5 text-gray-400" }), " Free Express Shipping Nationwide"] }), _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(CheckCircle2, { className: "h-3.5 w-3.5 text-gray-400" }), " Authentic Apple Products"] })] }), _jsxs("div", { className: "flex gap-6 ml-auto", children: [_jsx(Link, { href: `/${storeConfig.slug}/track-order`, className: "hover:text-gray-900 transition-colors", children: "Track Order" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-gray-900 transition-colors", children: "Business Direct" }), _jsx(Link, { href: `/${storeConfig.slug}/help-center`, className: "hover:text-gray-900 transition-colors", children: "Support" })] })] }) }), _jsxs("header", { className: "sticky top-0 z-50 bg-white/95 backdrop-blur-md border-b border-gray-100", children: [_jsxs("div", { "data-section": "header", className: "container mx-auto px-4 md:px-6 h-16 flex items-center gap-8", children: [_jsx(Link, { href: `/${storeConfig.slug}`, className: "flex flex-col leading-none shrink-0 group", children: getLogoUrl(storeConfig) ? (_jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name })) : (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-xl font-medium tracking-tight text-gray-900 group-hover:text-gray-600 transition-colors", children: storeConfig.name }), _jsx("span", { className: "text-[9px] font-normal tracking-wide text-gray-400 mt-0.5", children: layoutConfig?.sections?.header?.subtitle || 'Premium Apple Products' })] })) }), _jsx("div", { className: "hidden md:flex flex-1 max-w-3xl relative", children: _jsxs("div", { className: "relative w-full flex", children: [_jsx("div", { className: "relative flex-1", children: _jsx("input", { type: "text", placeholder: "Search by keyword, model number, or SKU...", value: searchQuery, onChange: (e) => {
|
|
43
43
|
setSearchQuery(e.target.value);
|
|
44
44
|
setVisibleCount(INITIAL_DISPLAY_COUNT);
|
|
45
45
|
}, className: "w-full h-10 pl-4 pr-12 rounded-l-lg border border-gray-200 bg-white text-sm focus:outline-none focus:ring-1 focus:ring-gray-400 focus:border-gray-400 transition-all" }) }), _jsxs("button", { className: "h-10 px-6 bg-gray-900 hover:bg-gray-800 text-white font-normal text-sm rounded-r-lg border border-gray-900 border-l-0 transition-colors flex items-center gap-2", children: [_jsx(Search, { className: "h-4 w-4" }), " Search"] })] }) }), _jsxs("div", { className: "flex items-center gap-2 ml-auto", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "md:hidden h-10 w-10 text-slate-600", onClick: () => setIsSearchOpen(!isSearchOpen), children: isSearchOpen ? _jsx(X, { className: "h-6 w-6" }) : _jsx(Search, { className: "h-6 w-6" }) }), _jsx(Link, { href: `/${storeConfig.slug}/account`, children: _jsxs(Button, { variant: "ghost", className: "hidden sm:flex flex-col items-center justify-center h-auto py-1 px-2 text-gray-500 hover:text-gray-900 hover:bg-transparent gap-0.5 transition-colors", children: [_jsx(User, { className: "h-5 w-5" }), _jsx("span", { className: "text-[10px] font-normal", children: "Account" })] }) }), storeConfig.features.wishlist && (_jsx(Link, { href: `/${storeConfig.slug}/wishlist`, children: _jsxs(Button, { variant: "ghost", className: "hidden sm:flex flex-col items-center justify-center h-auto py-1 px-2 text-gray-500 hover:text-gray-900 hover:bg-transparent gap-0.5 relative", children: [_jsxs("div", { className: "relative", children: [_jsx(Heart, { className: cn("h-5 w-5 transition-all", wishlistCount > 0 && "fill-current text-red-500") }), wishlistCount > 0 && (_jsx("span", { className: "absolute -top-1 -right-1 h-3.5 w-3.5 text-[9px] font-bold text-white rounded-full flex items-center justify-center shadow-sm ring-1 ring-white", style: { backgroundColor: storeConfig.branding.primaryColor || '#ef4444' }, children: wishlistCount > 9 ? '9+' : wishlistCount }))] }), _jsx("span", { className: "text-[10px] font-normal", children: "Saved" })] }) })), _jsx("div", { className: "h-6 w-px bg-gray-200 mx-1 hidden sm:block" }), _jsxs(Button, { className: "relative bg-white hover:bg-gray-50 text-gray-900 border border-gray-200 font-normal h-10 px-4 rounded-lg flex items-center gap-2 transition-colors", onClick: () => setIsCartOpen(true), children: [_jsx(ShoppingCart, { className: "h-4 w-4 text-gray-600" }), _jsx("span", { className: "text-sm", children: cartCount })] }), _jsx(Button, { variant: "ghost", size: "icon", className: "md:hidden h-10 w-10", onClick: () => setIsMobileMenuOpen(true), children: _jsx(Menu, { className: "h-6 w-6" }) })] })] }), isSearchOpen && (_jsx("div", { className: "md:hidden p-4 bg-white border-b border-gray-200 animate-in slide-in-from-top-2 absolute w-full top-20 z-40 shadow-lg", children: _jsxs("div", { className: "relative", children: [_jsx("input", { type: "text", placeholder: "Search by keyword...", value: searchQuery, onChange: (e) => {
|
|
@@ -72,7 +72,7 @@ export function ElectronicsHomePageGrid({ storeConfig }) {
|
|
|
72
72
|
defaultButtonText;
|
|
73
73
|
const bannerButtonLink = promoBanner?.buttonLink ||
|
|
74
74
|
`/${storeConfig.slug}/products`;
|
|
75
|
-
return (_jsxs("div", { className: "mb-8 rounded-lg bg-white text-gray-900 py-12 px-6 flex items-center justify-between relative overflow-hidden min-h-[200px]", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(Image, { src: bannerImage, alt: bannerTitle, fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/70 via-black/50 to-black/40" })] }), _jsxs("div", { className: "relative z-10 max-w-2xl", children: [_jsx("h2", { className: "text-4xl font-light mb-4 text-white tracking-tight", children: bannerTitle }), _jsx("p", { className: "text-gray-200 text-lg mb-8 leading-relaxed font-light", children: bannerSubtitle }), _jsx(Link, { href: bannerButtonLink, children: _jsx(Button, { size: "sm", className: "bg-white hover:bg-gray-100 text-gray-900 font-normal border-none transition-colors px-6 py-2.5 text-sm shadow-lg", children: bannerButtonText }) })] })] }));
|
|
75
|
+
return (_jsxs("div", { "data-section": "marketing", className: "mb-8 rounded-lg bg-white text-gray-900 py-12 px-6 flex items-center justify-between relative overflow-hidden min-h-[200px]", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(Image, { src: bannerImage, alt: bannerTitle, fill: true, className: "object-cover", unoptimized: true }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black/70 via-black/50 to-black/40" })] }), _jsxs("div", { className: "relative z-10 max-w-2xl", children: [_jsx("h2", { className: "text-4xl font-light mb-4 text-white tracking-tight", children: bannerTitle }), _jsx("p", { className: "text-gray-200 text-lg mb-8 leading-relaxed font-light", children: bannerSubtitle }), _jsx(Link, { href: bannerButtonLink, children: _jsx(Button, { size: "sm", className: "bg-white hover:bg-gray-100 text-gray-900 font-normal border-none transition-colors px-6 py-2.5 text-sm shadow-lg", children: bannerButtonText }) })] })] }));
|
|
76
76
|
})(), _jsxs("div", { className: "bg-white py-4 mb-6 flex flex-wrap items-center gap-4 justify-between border-b border-gray-100", children: [_jsxs("div", { className: "flex items-center gap-6", children: [_jsxs("span", { className: "text-sm font-normal text-gray-600", children: [filteredProducts.length, " Items"] }), _jsx("div", { className: "h-4 w-px bg-gray-200" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-gray-500 font-normal", children: "Sort:" }), _jsxs("select", { className: "text-sm border-none bg-transparent font-normal text-gray-900 focus:ring-0 cursor-pointer p-0 pr-6 appearance-none", children: [_jsx("option", { children: "Best Match" }), _jsx("option", { children: "Price Low-High" }), _jsx("option", { children: "Price High-Low" }), _jsx("option", { children: "Highest Rated" })] })] })] }), _jsx("div", { className: "flex items-center gap-2", children: _jsxs(Button, { variant: "ghost", size: "sm", className: "lg:hidden flex items-center gap-2 text-gray-600 hover:text-gray-900", onClick: () => setIsFilterOpen(true), children: [_jsx(Filter, { className: "h-4 w-4" }), " Filters"] }) })] }), _jsx(Sheet, { isOpen: isFilterOpen, onClose: () => setIsFilterOpen(false), title: "Filters", side: "left", children: _jsx(ElectronicsFilterContent, { categories: categories, storeSlug: storeConfig.slug }) }), _jsx("div", { className: "grid gap-4 sm:gap-6 lg:gap-8 grid-cols-2 sm:grid-cols-2 lg:grid-cols-3", children: filteredProducts.slice(0, visibleCount).map((product, index) => (
|
|
77
77
|
// Grid View Card - High Density Info
|
|
78
78
|
_jsx(ElectronicsGridProductCard, { product: product, storeSlug: storeConfig.slug, onAddToCart: handleAddToCart, index: index }, product.id))) }), visibleCount < filteredProducts.length && (_jsx("div", { className: "mt-16 flex justify-center border-t border-gray-100 pt-12", children: _jsx(Button, { variant: "outline", onClick: () => setVisibleCount(prev => prev + LOAD_MORE_INCREMENT), className: "min-w-[200px] border-gray-300 text-gray-700 hover:bg-gray-50 hover:text-gray-900 font-normal transition-colors", children: "Load More Products" }) }))] })] })] }), _jsx("footer", { className: "bg-white border-t border-gray-100 pt-16 pb-12 mt-20", children: _jsxs("div", { className: "container mx-auto px-6", children: [_jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 mb-12", children: [_jsxs("div", { className: "lg:col-span-1", children: [_jsx("div", { className: "mb-6", children: _jsx("span", { className: "text-lg font-medium text-gray-900", children: storeConfig.name }) }), _jsx("p", { className: "text-sm text-gray-500 leading-relaxed mb-6 font-light", children: storeConfig.description || "Nigeria's premier destination for authentic Apple products. Authorized reseller with genuine warranty and exceptional service." }), _jsxs("div", { className: "flex gap-2", children: [_jsx("div", { className: "w-8 h-8 bg-gray-100 rounded flex items-center justify-center text-gray-400", children: _jsx(Smartphone, { className: "h-4 w-4" }) }), _jsx("div", { className: "w-8 h-8 bg-gray-100 rounded flex items-center justify-center text-gray-400", children: _jsx(Tag, { className: "h-4 w-4" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium text-gray-900 text-sm mb-4", 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-gray-900 transition-colors", children: "All Products" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/categories`, className: "hover:text-gray-900 transition-colors", children: "Categories" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium text-gray-900 text-sm mb-4", 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-gray-900 transition-colors", children: "Help Center" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/shipping-returns`, className: "hover:text-gray-900 transition-colors", children: "Shipping & Returns" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/track-order`, className: "hover:text-gray-900 transition-colors", children: "Track Order" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium text-gray-900 text-sm mb-4", children: "Account" }), _jsxs("ul", { className: "space-y-3 text-sm text-gray-500", children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/account`, className: "hover:text-gray-900 transition-colors", children: "My Account" }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/track-order`, className: "hover:text-gray-900 transition-colors", children: "Track Order" }) })] })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium text-gray-900 text-sm mb-4", children: "Stay Connected" }), _jsxs("form", { onSubmit: async (e) => {
|
|
@@ -263,7 +263,7 @@ export function FoodHomePage({ storeConfig }) {
|
|
|
263
263
|
setIsAutoPlaying(false);
|
|
264
264
|
}, className: `transition-all duration-500 rounded-full ${index === currentSlide
|
|
265
265
|
? 'w-12 h-3 bg-orange-500 shadow-lg shadow-orange-500/50'
|
|
266
|
-
: 'w-3 h-3 bg-white/30 hover:bg-white/50'}`, "aria-label": `Go to slide ${index + 1}` }, index))) })] })), _jsx("section", { "data-section": "categories", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 -mt-20 md:-mt-32 relative z-10", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "bg-white/80 backdrop-blur-xl rounded-[2.5rem] shadow-2xl shadow-black/5 p-8 md:p-14 border border-white/20", children: [_jsxs("div", { className: "text-center mb-8 md:mb-12", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Menu Categories" }), _jsx("h2", { className: "text-3xl md:text-4xl font-black text-gray-900 tracking-tight", children: "What are you craving?" })] }), _jsx("div", { className: "flex flex-wrap justify-center gap-8 md:gap-12", children: categories.map((category) => (_jsxs(Link, { href: `/${storeConfig.slug}/menu/${category.slug}`, className: "group flex flex-col items-center gap-5 min-w-[120px]", children: [_jsxs("div", { className: "w-24 h-24 md:w-32 md:h-32 rounded-full bg-white shadow-[0_10px_40px_rgba(0,0,0,0.08)] group-hover:shadow-[0_20px_40px_rgba(249,115,22,0.2)] flex items-center justify-center transition-all duration-500 group-hover:-translate-y-2 border-4 border-white overflow-hidden relative", children: [_jsx("div", { className: "absolute inset-0 bg-orange-50 opacity-0 group-hover:opacity-100 transition-opacity duration-500" }), _jsx(Utensils, { className: "h-10 w-10 md:h-12 md:w-12 text-gray-400 group-hover:text-orange-500 transition-colors relative z-10" })] }), _jsx("span", { className: "font-bold text-gray-600 group-hover:text-orange-600 transition-colors text-base md:text-lg tracking-tight", children: category.name })] }, category.id))) })] }) }) }), _jsx("section", { "data-section": "about", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-[#FAFAFA]", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12 md:mb-20", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Simple Process" }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 tracking-tight", children: "How It Works" })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-12 relative max-w-5xl mx-auto", children: [_jsx("div", { className: "hidden md:block absolute top-16 left-[20%] right-[20%] h-0.5 bg-gradient-to-r from-gray-200 via-orange-200 to-gray-200 -z-10 border-t-2 border-dashed border-gray-300/50" }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(Smartphone, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "1" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Choose Your Dish" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Browse our diverse menu and select your favorite meals with just a few taps." })] }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(ChefHat, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "2" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "We Cook It Fresh" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Our expert chefs prepare your order using the finest, freshest ingredients." })] }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(Truck, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "3" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Fast Delivery" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Receive your hot and delicious meal at your doorstep in record time." })] })] })] }) }), _jsx("section", { "data-section": "featuredProducts", className: "py-16 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 items-end justify-between mb-8 md:mb-12 gap-4", children: [_jsxs("div", { children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Our Menu" }), _jsx("h2", { className: "text-3xl md:text-4xl font-black text-gray-900 tracking-tight", children: getLayoutText(storeConfig, 'food.chefRecommendations', 'Chef\'s Recommendations') })] }), _jsxs(Link, { href: `/${storeConfig.slug}/menu`, className: "group flex items-center gap-2 text-gray-600 hover:text-orange-600 font-bold transition-colors", children: [getLayoutText(storeConfig, 'food.viewMenu', 'View Full Menu'), " ", _jsx(ArrowRight, { className: "h-5 w-5 transition-transform group-hover:translate-x-1" })] })] }), _jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: menuItems.slice(0, 3).map((item) => (_jsxs("div", { className: "group bg-white rounded-[2rem] border border-gray-100 shadow-sm hover:shadow-[0_20px_50px_rgba(0,0,0,0.08)] transition-all duration-500 overflow-hidden flex flex-col h-full hover:-translate-y-2", children: [_jsxs("div", { className: "relative aspect-[4/3] overflow-hidden m-3 rounded-[1.5rem]", children: [item.image ? (_jsx("div", { className: "w-full h-full relative", children: _jsx(Image, { src: item.image, alt: item.name, fill: true, className: "object-cover transition-transform duration-700 group-hover:scale-110", unoptimized: true }) })) : (_jsx("div", { className: "w-full h-full bg-gray-100 flex items-center justify-center", children: _jsx(Utensils, { className: "h-12 w-12 text-gray-300" }) })), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500" }), _jsx("div", { className: "absolute top-4 right-4 bg-white/95 backdrop-blur-md px-4 py-2 rounded-full font-black text-gray-900 shadow-lg border border-white/50", children: formatCurrency(item.price, storeConfig.settings?.currency || 'USD') }), _jsx("div", { className: "hidden lg:block absolute bottom-4 left-4 right-4 translate-y-20 opacity-0 group-hover:translate-y-0 group-hover:opacity-100 transition-all duration-500 delay-100", children: _jsx(Button, { onClick: () => handleAddToCart(item), className: "w-full h-12 rounded-xl bg-white hover:bg-orange-600 text-gray-900 hover:text-white font-bold shadow-xl border-0 transition-colors", children: "Add to Order" }) }), _jsx("button", { onClick: () => handleAddToCart(item), className: "lg:hidden absolute bottom-3 right-3 bg-white text-orange-600 w-10 h-10 rounded-full shadow-lg flex items-center justify-center font-bold z-10 active:scale-95 transition-transform", children: _jsx(Plus, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: "p-6 pt-2 flex flex-col flex-1", children: [_jsx("div", { className: "flex justify-between items-start mb-2", children: _jsx("h3", { className: "font-bold text-xl text-gray-900 group-hover:text-orange-600 transition-colors line-clamp-1", children: item.name }) }), _jsx("p", { className: "text-gray-500 text-sm mb-6 line-clamp-2 flex-1 leading-relaxed font-medium", children: item.description }), item.dietaryInfo && item.dietaryInfo.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mt-auto pt-4 border-t border-gray-50", children: item.dietaryInfo.map((info) => (_jsx("span", { className: "text-[10px] font-bold uppercase tracking-wider px-3 py-1.5 bg-gray-50 text-gray-600 rounded-lg group-hover:bg-orange-50 group-hover:text-orange-700 transition-colors", children: info }, info))) }))] })] }, item.id))) })] }) }), layoutConfig?.sections?.story?.show !== false && (_jsx("section", { "data-section": "about", className: "py-16 md:py-20 px-4 sm:px-6 lg:px-8 bg-white overflow-hidden", 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: [_jsx("div", { className: "order-2 lg:order-1", children: _jsxs("div", { className: "relative", children: [_jsx("div", { className: "absolute -top-10 -left-10 w-64 h-64 bg-orange-100 rounded-full blur-3xl opacity-50" }), _jsx("div", { className: "relative aspect-square rounded-3xl overflow-hidden shadow-2xl rotate-3 hover:rotate-0 transition-transform duration-700", children: _jsx(Image, { src: layoutConfig?.sections?.story?.image || getBannerImage(storeConfig, 'chef_image', "https://images.unsplash.com/photo-1583394293214-28ded15ee548?q=80&w=2000&auto=format&fit=crop"), alt: "Chef Cooking", fill: true, className: "object-cover", unoptimized: true }) }), _jsx("div", { className: "absolute -bottom-8 -right-8 bg-white p-6 rounded-2xl shadow-xl animate-fade-in-up hidden md:block", children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "p-3 bg-orange-100 rounded-full text-orange-600", children: _jsx(ChefHat, { className: "h-8 w-8" }) }), _jsxs("div", { children: [_jsx("p", { className: "font-bold text-gray-900 text-lg", children: "Master Chef" }), _jsx("p", { className: "text-sm text-gray-500", children: "15+ Years Experience" })] })] }) })] }) }), _jsxs("div", { className: "order-1 lg:order-2 space-y-6", children: [_jsx("span", { className: "text-orange-600 font-bold tracking-wider uppercase text-sm", children: layoutConfig?.sections?.story?.label || getLayoutText(storeConfig, 'chef_image:section_title', 'Our Story') }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 leading-tight", children: layoutConfig?.sections?.story?.title || getLayoutText(storeConfig, 'chef_image:chef_name', 'Crafted with Love, Served with Passion') }), _jsx("p", { className: "text-lg text-gray-600 leading-relaxed", children: layoutConfig?.sections?.story?.description || getLayoutText(storeConfig, 'chef_image:chef_bio', 'We believe that great food brings people together. Our chefs use only the freshest, locally-sourced ingredients to create dishes that not only taste amazing but also tell a story of tradition and innovation.') }), _jsxs("div", { className: "grid grid-cols-2 gap-6 pt-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("h4", { className: "text-3xl font-black text-gray-900", children: "15k+" }), _jsx("p", { className: "text-gray-500 font-medium", children: "Happy Customers" })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("h4", { className: "text-3xl font-black text-gray-900", children: "100%" }), _jsx("p", { className: "text-gray-500 font-medium", children: "Fresh Ingredients" })] })] }), _jsx("div", { className: "pt-6", children: _jsx(Link, { href: `/${storeConfig.slug}/about`, children: _jsx(Button, { variant: "outline", className: "rounded-full px-8 py-6 border-gray-200 hover:border-orange-600 hover:text-orange-600 text-base font-bold", children: "Read More About Us" }) }) })] })] }) }) })), layoutConfig?.sections?.testimonials?.show !== false && (_jsx("section", { "data-section": "testimonials", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-gradient-to-b from-white via-orange-50/30 to-white", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12 md:mb-20", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Testimonials" }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 tracking-tight", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Customers Say') }), _jsx("p", { className: "text-gray-500 text-lg mt-4 max-w-2xl mx-auto", children: layoutConfig?.sections?.testimonials?.subtitle || getLayoutText(storeConfig, 'sections.testimonials.subtitle', 'Real experiences from food lovers who trust us') })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: (() => {
|
|
266
|
+
: 'w-3 h-3 bg-white/30 hover:bg-white/50'}`, "aria-label": `Go to slide ${index + 1}` }, index))) })] })), _jsx("section", { "data-section": "categories", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 -mt-20 md:-mt-32 relative z-10", children: _jsx("div", { className: "container mx-auto max-w-7xl", children: _jsxs("div", { className: "bg-white/80 backdrop-blur-xl rounded-[2.5rem] shadow-2xl shadow-black/5 p-8 md:p-14 border border-white/20", children: [_jsxs("div", { className: "text-center mb-8 md:mb-12", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Menu Categories" }), _jsx("h2", { className: "text-3xl md:text-4xl font-black text-gray-900 tracking-tight", children: "What are you craving?" })] }), _jsx("div", { className: "flex flex-wrap justify-center gap-8 md:gap-12", children: categories.map((category) => (_jsxs(Link, { href: `/${storeConfig.slug}/menu/${category.slug}`, className: "group flex flex-col items-center gap-5 min-w-[120px]", children: [_jsxs("div", { className: "w-24 h-24 md:w-32 md:h-32 rounded-full bg-white shadow-[0_10px_40px_rgba(0,0,0,0.08)] group-hover:shadow-[0_20px_40px_rgba(249,115,22,0.2)] flex items-center justify-center transition-all duration-500 group-hover:-translate-y-2 border-4 border-white overflow-hidden relative", children: [_jsx("div", { className: "absolute inset-0 bg-orange-50 opacity-0 group-hover:opacity-100 transition-opacity duration-500" }), _jsx(Utensils, { className: "h-10 w-10 md:h-12 md:w-12 text-gray-400 group-hover:text-orange-500 transition-colors relative z-10" })] }), _jsx("span", { className: "font-bold text-gray-600 group-hover:text-orange-600 transition-colors text-base md:text-lg tracking-tight", children: category.name })] }, category.id))) })] }) }) }), _jsx("section", { "data-section": "about", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-[#FAFAFA]", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12 md:mb-20", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Simple Process" }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 tracking-tight", children: "How It Works" })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-12 relative max-w-5xl mx-auto", children: [_jsx("div", { className: "hidden md:block absolute top-16 left-[20%] right-[20%] h-0.5 bg-gradient-to-r from-gray-200 via-orange-200 to-gray-200 -z-10 border-t-2 border-dashed border-gray-300/50" }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(Smartphone, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "1" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Choose Your Dish" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Browse our diverse menu and select your favorite meals with just a few taps." })] }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(ChefHat, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "2" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "We Cook It Fresh" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Our expert chefs prepare your order using the finest, freshest ingredients." })] }), _jsxs("div", { className: "flex flex-col items-center text-center group", children: [_jsxs("div", { className: "w-32 h-32 rounded-[2rem] bg-white flex items-center justify-center mb-8 shadow-[0_20px_50px_rgba(0,0,0,0.05)] group-hover:shadow-[0_20px_50px_rgba(249,115,22,0.15)] group-hover:-translate-y-2 transition-all duration-500 relative z-10 border border-gray-100", children: [_jsx("div", { className: "p-4 bg-orange-50 rounded-2xl group-hover:bg-orange-100 transition-colors duration-500", children: _jsx(Truck, { className: "h-10 w-10 text-orange-500 group-hover:scale-110 transition-transform duration-500" }) }), _jsx("div", { className: "absolute -top-3 -right-3 w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-bold text-sm shadow-lg", children: "3" })] }), _jsx("h3", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Fast Delivery" }), _jsx("p", { className: "text-gray-500 leading-relaxed max-w-xs font-medium", children: "Receive your hot and delicious meal at your doorstep in record time." })] })] })] }) }), _jsx("section", { "data-section": "featuredProducts", className: "py-16 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 items-end justify-between mb-8 md:mb-12 gap-4", children: [_jsxs("div", { children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Our Menu" }), _jsx("h2", { className: "text-3xl md:text-4xl font-black text-gray-900 tracking-tight", children: getLayoutText(storeConfig, 'food.chefRecommendations', 'Chef\'s Recommendations') })] }), _jsxs(Link, { href: `/${storeConfig.slug}/menu`, className: "group flex items-center gap-2 text-gray-600 hover:text-orange-600 font-bold transition-colors", children: [getLayoutText(storeConfig, 'food.viewMenu', 'View Full Menu'), " ", _jsx(ArrowRight, { className: "h-5 w-5 transition-transform group-hover:translate-x-1" })] })] }), _jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8", children: menuItems.slice(0, 3).map((item) => (_jsxs("div", { className: "group bg-white rounded-[2rem] border border-gray-100 shadow-sm hover:shadow-[0_20px_50px_rgba(0,0,0,0.08)] transition-all duration-500 overflow-hidden flex flex-col h-full hover:-translate-y-2", children: [_jsxs("div", { className: "relative aspect-[4/3] overflow-hidden m-3 rounded-[1.5rem]", children: [item.image ? (_jsx("div", { className: "w-full h-full relative", children: _jsx(Image, { src: item.image, alt: item.name, fill: true, className: "object-cover transition-transform duration-700 group-hover:scale-110", unoptimized: true }) })) : (_jsx("div", { className: "w-full h-full bg-gray-100 flex items-center justify-center", children: _jsx(Utensils, { className: "h-12 w-12 text-gray-300" }) })), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-500" }), _jsx("div", { className: "absolute top-4 right-4 bg-white/95 backdrop-blur-md px-4 py-2 rounded-full font-black text-gray-900 shadow-lg border border-white/50", children: formatCurrency(item.price, storeConfig.settings?.currency || 'USD') }), _jsx("div", { className: "hidden lg:block absolute bottom-4 left-4 right-4 translate-y-20 opacity-0 group-hover:translate-y-0 group-hover:opacity-100 transition-all duration-500 delay-100", children: _jsx(Button, { onClick: () => handleAddToCart(item), className: "w-full h-12 rounded-xl bg-white hover:bg-orange-600 text-gray-900 hover:text-white font-bold shadow-xl border-0 transition-colors", children: "Add to Order" }) }), _jsx("button", { onClick: () => handleAddToCart(item), className: "lg:hidden absolute bottom-3 right-3 bg-white text-orange-600 w-10 h-10 rounded-full shadow-lg flex items-center justify-center font-bold z-10 active:scale-95 transition-transform", children: _jsx(Plus, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: "p-6 pt-2 flex flex-col flex-1", children: [_jsx("div", { className: "flex justify-between items-start mb-2", children: _jsx("h3", { className: "font-bold text-xl text-gray-900 group-hover:text-orange-600 transition-colors line-clamp-1", children: item.name }) }), _jsx("p", { className: "text-gray-500 text-sm mb-6 line-clamp-2 flex-1 leading-relaxed font-medium", children: item.description }), item.dietaryInfo && item.dietaryInfo.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-2 mt-auto pt-4 border-t border-gray-50", children: item.dietaryInfo.map((info) => (_jsx("span", { className: "text-[10px] font-bold uppercase tracking-wider px-3 py-1.5 bg-gray-50 text-gray-600 rounded-lg group-hover:bg-orange-50 group-hover:text-orange-700 transition-colors", children: info }, info))) }))] })] }, item.id))) })] }) }), layoutConfig?.sections?.about?.show !== false && (_jsx("section", { "data-section": "about", className: "py-16 md:py-20 px-4 sm:px-6 lg:px-8 bg-white overflow-hidden", 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: [_jsx("div", { className: "order-2 lg:order-1", children: _jsxs("div", { className: "relative", children: [_jsx("div", { className: "absolute -top-10 -left-10 w-64 h-64 bg-orange-100 rounded-full blur-3xl opacity-50" }), _jsx("div", { className: "relative aspect-square rounded-3xl overflow-hidden shadow-2xl rotate-3 hover:rotate-0 transition-transform duration-700", children: _jsx(Image, { src: layoutConfig?.sections?.about?.image || getBannerImage(storeConfig, 'chef_image', "https://images.unsplash.com/photo-1583394293214-28ded15ee548?q=80&w=2000&auto=format&fit=crop"), alt: "Chef Cooking", fill: true, className: "object-cover", unoptimized: true }) }), _jsx("div", { className: "absolute -bottom-8 -right-8 bg-white p-6 rounded-2xl shadow-xl animate-fade-in-up hidden md:block", children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "p-3 bg-orange-100 rounded-full text-orange-600", children: _jsx(ChefHat, { className: "h-8 w-8" }) }), _jsxs("div", { children: [_jsx("p", { className: "font-bold text-gray-900 text-lg", children: "Master Chef" }), _jsx("p", { className: "text-sm text-gray-500", children: "15+ Years Experience" })] })] }) })] }) }), _jsxs("div", { className: "order-1 lg:order-2 space-y-6", children: [_jsx("span", { className: "text-orange-600 font-bold tracking-wider uppercase text-sm", children: layoutConfig?.sections?.about?.section_title || getLayoutText(storeConfig, 'chef_image:section_title', 'Our Story') }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 leading-tight", children: layoutConfig?.sections?.about?.chef_name || getLayoutText(storeConfig, 'chef_image:chef_name', 'Crafted with Love, Served with Passion') }), _jsx("p", { className: "text-lg text-gray-600 leading-relaxed", children: layoutConfig?.sections?.about?.chef_bio || getLayoutText(storeConfig, 'chef_image:chef_bio', 'We believe that great food brings people together. Our chefs use only the freshest, locally-sourced ingredients to create dishes that not only taste amazing but also tell a story of tradition and innovation.') }), _jsxs("div", { className: "grid grid-cols-2 gap-6 pt-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx("h4", { className: "text-3xl font-black text-gray-900", children: "15k+" }), _jsx("p", { className: "text-gray-500 font-medium", children: "Happy Customers" })] }), _jsxs("div", { className: "space-y-2", children: [_jsx("h4", { className: "text-3xl font-black text-gray-900", children: "100%" }), _jsx("p", { className: "text-gray-500 font-medium", children: "Fresh Ingredients" })] })] }), _jsx("div", { className: "pt-6", children: _jsx(Link, { href: `/${storeConfig.slug}/about`, children: _jsx(Button, { variant: "outline", className: "rounded-full px-8 py-6 border-gray-200 hover:border-orange-600 hover:text-orange-600 text-base font-bold", children: "Read More About Us" }) }) })] })] }) }) })), layoutConfig?.sections?.testimonials?.show !== false && (_jsx("section", { "data-section": "testimonials", className: "py-16 md:py-24 px-4 sm:px-6 lg:px-8 bg-gradient-to-b from-white via-orange-50/30 to-white", children: _jsxs("div", { className: "container mx-auto max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12 md:mb-20", children: [_jsx("span", { className: "text-orange-500 font-bold tracking-widest uppercase text-xs mb-3 block", children: "Testimonials" }), _jsx("h2", { className: "text-4xl md:text-5xl font-black text-gray-900 tracking-tight", children: layoutConfig?.sections?.testimonials?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'What Our Customers Say') }), _jsx("p", { className: "text-gray-500 text-lg mt-4 max-w-2xl mx-auto", children: layoutConfig?.sections?.testimonials?.subtitle || getLayoutText(storeConfig, 'sections.testimonials.subtitle', 'Real experiences from food lovers who trust us') })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: (() => {
|
|
267
267
|
// Use backend testimonials if available
|
|
268
268
|
const backendTestimonials = layoutConfig?.sections?.testimonials?.items || [];
|
|
269
269
|
const fallbackTestimonials = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FoodHomePageModern.d.ts","sourceRoot":"","sources":["../../../../src/layouts/food-modern/components/FoodHomePageModern.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAgB9D,UAAU,uBAAuB;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,WAAW,EAAE,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"FoodHomePageModern.d.ts","sourceRoot":"","sources":["../../../../src/layouts/food-modern/components/FoodHomePageModern.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAgB9D,UAAU,uBAAuB;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,WAAW,EAAE,EAAE,uBAAuB,2CAqpB1E"}
|
|
@@ -75,7 +75,7 @@ export function FoodHomePageModern({ storeConfig }) {
|
|
|
75
75
|
image: t.image || fallbackTestimonials[idx]?.image || '',
|
|
76
76
|
}))
|
|
77
77
|
: fallbackTestimonials;
|
|
78
|
-
return (_jsxs("div", { className: "min-h-screen bg-[#0F0F0F] text-white font-sans selection:bg-orange-500 selection:text-white", children: [_jsx("nav", { className: `fixed top-0 left-0 right-0 z-40 transition-all duration-500 ${scrolled ? 'bg-[#0F0F0F]/95 backdrop-blur-xl border-b border-white/5 py-4' : 'bg-transparent py-8'}`, children: _jsxs("div", { className: "container mx-auto px-6 flex items-center justify-between", children: [getLogoUrl(storeConfig) ? (_jsx(Link, { href: `/${storeConfig.slug}`, className: "relative z-50", children: _jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name }) })) : (_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-2xl font-black tracking-tighter uppercase relative z-50 group", children: [storeConfig.name, _jsx("span", { className: "text-orange-500 group-hover:text-white transition-colors duration-300", children: "." })] })), _jsxs("div", { className: "hidden md:flex items-center gap-10 text-xs font-bold tracking-[0.2em] uppercase", children: [_jsx("button", { onClick: scrollToMenu, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Menu" }), _jsx("button", { onClick: () => setIsReservationOpen(true), className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Reservations" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Contact" })] }), _jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "text-white hover:text-orange-500 hover:bg-white/5 rounded-full md:hidden", onClick: () => setIsMenuOpen(true), children: _jsx(MenuIcon, { className: "h-6 w-6" }) }), storeConfig.features.search && (_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsSearchOpen(!isSearchOpen), className: "text-white hover:text-orange-500 hover:bg-white/5 rounded-full hidden md:flex", children: _jsx(Search, { className: "h-5 w-5" }) })), _jsx(Button, { onClick: () => setIsReservationOpen(true), className: "bg-white text-black hover:bg-orange-500 hover:text-white rounded-full px-8 font-bold uppercase tracking-wider text-xs h-10 transition-all duration-300 hidden sm:flex", children: "Book Table" })] })] }) }), isSearchOpen && storeConfig.features.search && (_jsx("div", { className: "fixed inset-0 z-50 bg-[#0F0F0F]/98 backdrop-blur-xl pt-20", children: _jsx("div", { className: "container mx-auto px-6", 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-6 w-6 text-gray-400" }), _jsx("input", { type: "text", placeholder: getLayoutText(storeConfig, 'header.searchPlaceholder', 'Search menu items...'), autoFocus: true, className: "w-full pl-14 pr-4 py-6 text-xl bg-transparent border-b-2 border-orange-500/50 text-white focus:outline-none focus:border-orange-500", onBlur: () => setIsSearchOpen(false) })] }) }) })), _jsx("div", { className: `fixed inset-0 z-50 bg-[#0F0F0F] transition-transform duration-500 ${isMenuOpen ? 'translate-x-0' : '-translate-x-full'}`, children: _jsxs("div", { className: "flex flex-col h-full p-8", children: [_jsxs("div", { className: "flex justify-between items-center mb-12", children: [!getLogoUrl(storeConfig) ? (_jsxs("span", { className: "text-2xl font-black uppercase", children: [storeConfig.name, _jsx("span", { className: "text-orange-500", children: "." })] })) : (_jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10", alt: storeConfig.name })), _jsx("button", { onClick: () => setIsMenuOpen(false), className: "text-white hover:text-orange-500", children: _jsx(X, { className: "h-8 w-8" }) })] }), _jsxs("div", { className: "flex flex-col gap-8 text-2xl font-black uppercase tracking-tight", children: [_jsx("button", { onClick: () => { scrollToMenu(); setIsMenuOpen(false); }, className: "text-left hover:text-orange-500", children: "Menu" }), _jsx("button", { onClick: () => { setIsReservationOpen(true); setIsMenuOpen(false); }, className: "text-left hover:text-orange-500", children: "Reservations" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, onClick: () => setIsMenuOpen(false), className: "hover:text-orange-500", children: "Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, onClick: () => setIsMenuOpen(false), className: "hover:text-orange-500", children: "Contact" })] })] }) }), _jsxs("section", { className: "relative h-screen w-full overflow-hidden flex items-center justify-center", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(VideoPlayer, { src: getAssetUrl(storeConfig, 'hero_video', "https://cdn.coverr.co/videos/coverr-chef-preparing-food-in-kitchen-5379/1080p.mp4"), poster: getBannerImage(storeConfig, 'hero_video_poster', "https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?q=80&w=2070&auto=format&fit=crop"), context: "background", className: "w-full h-full opacity-50 scale-105" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-[#0F0F0F] via-[#0F0F0F]/40 to-black/30" }), _jsx("div", { className: "absolute inset-0 bg-[url('https://www.transparenttextures.com/patterns/noise.png')] opacity-20 mix-blend-overlay" })] }), _jsxs("div", { className: "relative z-10 text-center px-4 max-w-5xl mx-auto space-y-10", children: [_jsxs("div", { className: "flex justify-center items-center gap-6 animate-fade-in-up", children: [_jsx("span", { className: "h-px w-16 bg-white/30" }), _jsxs("div", { className: "flex items-center gap-2 text-orange-500 uppercase tracking-[0.3em] text-xs font-bold", children: [_jsx(Star, { className: "h-3 w-3 fill-current" }), " ", getLayoutText(storeConfig, 'food.ourPhilosophy', 'Michelin Star 2024')] }), _jsx("span", { className: "h-px w-16 bg-white/30" })] }), _jsxs("h1", { className: "text-5xl md:text-8xl lg:text-9xl font-black tracking-tighter leading-none uppercase text-white animate-fade-in-up delay-100", children: [getLayoutText(storeConfig, 'food.ourPhilosophy', 'Taste the Extraordinary'), " ", _jsx("br", {}), _jsx("span", { className: "text-transparent bg-clip-text bg-gradient-to-r from-orange-400 to-amber-200", children: "Extraordinary" })] }), _jsxs("p", { className: "text-lg md:text-xl text-gray-300 max-w-xl mx-auto font-light leading-relaxed animate-fade-in-up delay-200 tracking-wide", children: [storeConfig.description, " Where culinary art meets exceptional atmosphere."] }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-6 justify-center items-center pt-8 animate-fade-in-up delay-300", children: [_jsx(Button, { onClick: () => setIsReservationOpen(true), className: "h-14 px-10 bg-orange-600 hover:bg-orange-700 text-white text-sm font-bold uppercase tracking-[0.2em] rounded-full transition-all hover:scale-105 hover:shadow-[0_0_40px_rgba(234,88,12,0.3)]", children: getLayoutText(storeConfig, 'food.reserveTable', 'Reserve Table') }), _jsx("div", { onClick: scrollToMenu, className: "w-14 h-14 rounded-full border border-white/20 flex items-center justify-center cursor-pointer hover:bg-white hover:text-black transition-all group", children: _jsx(ArrowRight, { className: "h-5 w-5 group-hover:rotate-90 transition-transform duration-300" }) })] })] }), _jsxs("div", { className: "absolute bottom-10 left-1/2 -translate-x-1/2 flex flex-col items-center gap-4 animate-pulse", children: [_jsx("span", { className: "text-[10px] uppercase tracking-[0.3em] text-gray-500", children: "Scroll" }), _jsx("div", { className: "w-px h-16 bg-gradient-to-b from-orange-500 to-transparent" })] })] }), layoutConfig?.sections?.story?.show !== false && (_jsxs("section", { className: "py-20 px-6 relative overflow-hidden", children: [_jsx("div", { className: "absolute top-0 right-0 w-1/3 h-full bg-white/5 skew-x-12 transform translate-x-20 pointer-events-none" }), _jsx("div", { className: "container mx-auto max-w-6xl relative z-10", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-20 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-none overflow-hidden grayscale hover:grayscale-0 transition-all duration-700", children: _jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'about_section_image', "https://images.unsplash.com/photo-1559339352-11d035aa65de?w=1200&q=80"), alt: "Chef", className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "absolute -bottom-10 -right-10 bg-[#1A1A1A] p-8 border border-white/5 max-w-xs hidden md:block", children: [_jsx("p", { className: "font-serif italic text-2xl text-white mb-4", children: "\"Cooking is an art, but patience is the key ingredient.\"" }), _jsx("p", { className: "text-orange-500 text-xs font-bold uppercase tracking-widest", children: "\u2014 Head Chef Marco" })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsx("span", { className: "text-orange-500 font-bold uppercase tracking-widest text-xs", children: layoutConfig?.sections?.story?.label || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Our Philosophy') }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold leading-tight", children: layoutConfig?.sections?.story?.title || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Crafting Memories Through Flavor') }), _jsx("p", { className: "text-gray-400 text-lg leading-relaxed", children: layoutConfig?.sections?.story?.description || getLayoutText(storeConfig, 'food.ourPhilosophy', 'We believe that dining is more than just eating; it\'s an experience that engages all senses. Our seasonal menu is carefully curated using locally sourced ingredients to bring you the freshest flavors of the region.') }), _jsxs("div", { className: "grid grid-cols-3 gap-8 pt-8 border-t border-white/10", children: [_jsxs("div", { children: [_jsx(Flame, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Wood Fired" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Authentic taste" })] }), _jsxs("div", { children: [_jsx(Wine, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Fine Wines" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Curated selection" })] }), _jsxs("div", { children: [_jsx(Coffee, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Artisan Coffee" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Roasted in-house" })] })] })] })] }) })] })), layoutConfig?.sections?.promoBanner?.show !== false && layoutConfig?.sections?.promoBanner && (_jsx(PromoBanner, { config: layoutConfig.sections.promoBanner, layoutStyle: "food", className: "my-20" })), _jsx("section", { id: "menu-section", className: "py-20 bg-[#141414] border-t border-white/5", children: _jsxs("div", { className: "container mx-auto px-6 max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12", children: [_jsx("span", { className: "text-orange-500 font-bold uppercase tracking-widest text-xs mb-4 block", children: "Discover" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold uppercase tracking-tight mb-8", children: getLayoutText(storeConfig, 'food.menuCategories', 'Our Menu') }), _jsxs("div", { className: "flex flex-wrap justify-center gap-4", children: [_jsx("button", { onClick: () => setActiveTab('all'), className: `px-8 py-3 rounded-full text-sm font-bold uppercase tracking-wider transition-all border ${activeTab === 'all' ? 'bg-white text-black border-white' : 'bg-transparent text-gray-400 border-white/10 hover:border-white/30'}`, children: "All" }), categories.map((cat) => (_jsx("button", { onClick: () => setActiveTab(cat.id), className: `px-8 py-3 rounded-full text-sm font-bold uppercase tracking-wider transition-all border ${activeTab === cat.id ? 'bg-white text-black border-white' : 'bg-transparent text-gray-400 border-white/10 hover:border-white/30'}`, children: cat.name }, cat.id)))] })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-16", children: filteredItems.map((item) => (_jsxs("div", { className: "group cursor-pointer", children: [_jsxs("div", { className: "aspect-square overflow-hidden rounded-full mb-6 border border-white/10 relative", children: [_jsx(ImageWithFallback, { src: item.image, alt: item.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110 group-hover:rotate-3", skeletonAspectRatio: "square" }), _jsx("div", { className: "hidden lg:flex absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity items-center justify-center", children: _jsx(Button, { className: "bg-orange-600 rounded-full px-6 hover:bg-orange-700", onClick: (e) => {
|
|
78
|
+
return (_jsxs("div", { className: "min-h-screen bg-[#0F0F0F] text-white font-sans selection:bg-orange-500 selection:text-white", children: [_jsx("nav", { className: `fixed top-0 left-0 right-0 z-40 transition-all duration-500 ${scrolled ? 'bg-[#0F0F0F]/95 backdrop-blur-xl border-b border-white/5 py-4' : 'bg-transparent py-8'}`, children: _jsxs("div", { className: "container mx-auto px-6 flex items-center justify-between", children: [getLogoUrl(storeConfig) ? (_jsx(Link, { href: `/${storeConfig.slug}`, className: "relative z-50", children: _jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10 transition-all duration-300 hover:opacity-90", alt: storeConfig.name }) })) : (_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-2xl font-black tracking-tighter uppercase relative z-50 group", children: [storeConfig.name, _jsx("span", { className: "text-orange-500 group-hover:text-white transition-colors duration-300", children: "." })] })), _jsxs("div", { className: "hidden md:flex items-center gap-10 text-xs font-bold tracking-[0.2em] uppercase", children: [_jsx("button", { onClick: scrollToMenu, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Menu" }), _jsx("button", { onClick: () => setIsReservationOpen(true), className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Reservations" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors relative after:content-[''] after:absolute after:-bottom-2 after:left-0 after:w-0 after:h-0.5 after:bg-orange-500 hover:after:w-full after:transition-all", children: "Contact" })] }), _jsxs("div", { className: "flex items-center gap-6", children: [_jsx(Button, { variant: "ghost", size: "icon", className: "text-white hover:text-orange-500 hover:bg-white/5 rounded-full md:hidden", onClick: () => setIsMenuOpen(true), children: _jsx(MenuIcon, { className: "h-6 w-6" }) }), storeConfig.features.search && (_jsx(Button, { variant: "ghost", size: "icon", onClick: () => setIsSearchOpen(!isSearchOpen), className: "text-white hover:text-orange-500 hover:bg-white/5 rounded-full hidden md:flex", children: _jsx(Search, { className: "h-5 w-5" }) })), _jsx(Button, { onClick: () => setIsReservationOpen(true), className: "bg-white text-black hover:bg-orange-500 hover:text-white rounded-full px-8 font-bold uppercase tracking-wider text-xs h-10 transition-all duration-300 hidden sm:flex", children: "Book Table" })] })] }) }), isSearchOpen && storeConfig.features.search && (_jsx("div", { className: "fixed inset-0 z-50 bg-[#0F0F0F]/98 backdrop-blur-xl pt-20", children: _jsx("div", { className: "container mx-auto px-6", 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-6 w-6 text-gray-400" }), _jsx("input", { type: "text", placeholder: getLayoutText(storeConfig, 'header.searchPlaceholder', 'Search menu items...'), autoFocus: true, className: "w-full pl-14 pr-4 py-6 text-xl bg-transparent border-b-2 border-orange-500/50 text-white focus:outline-none focus:border-orange-500", onBlur: () => setIsSearchOpen(false) })] }) }) })), _jsx("div", { className: `fixed inset-0 z-50 bg-[#0F0F0F] transition-transform duration-500 ${isMenuOpen ? 'translate-x-0' : '-translate-x-full'}`, children: _jsxs("div", { className: "flex flex-col h-full p-8", children: [_jsxs("div", { className: "flex justify-between items-center mb-12", children: [!getLogoUrl(storeConfig) ? (_jsxs("span", { className: "text-2xl font-black uppercase", children: [storeConfig.name, _jsx("span", { className: "text-orange-500", children: "." })] })) : (_jsx(StoreLogo, { storeConfig: storeConfig, className: "h-10 w-10", alt: storeConfig.name })), _jsx("button", { onClick: () => setIsMenuOpen(false), className: "text-white hover:text-orange-500", children: _jsx(X, { className: "h-8 w-8" }) })] }), _jsxs("div", { className: "flex flex-col gap-8 text-2xl font-black uppercase tracking-tight", children: [_jsx("button", { onClick: () => { scrollToMenu(); setIsMenuOpen(false); }, className: "text-left hover:text-orange-500", children: "Menu" }), _jsx("button", { onClick: () => { setIsReservationOpen(true); setIsMenuOpen(false); }, className: "text-left hover:text-orange-500", children: "Reservations" }), _jsx(Link, { href: `/${storeConfig.slug}/about`, onClick: () => setIsMenuOpen(false), className: "hover:text-orange-500", children: "Story" }), _jsx(Link, { href: `/${storeConfig.slug}/contact`, onClick: () => setIsMenuOpen(false), className: "hover:text-orange-500", children: "Contact" })] })] }) }), _jsxs("section", { "data-section": "hero", className: "relative h-screen w-full overflow-hidden flex items-center justify-center", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [_jsx(VideoPlayer, { src: getAssetUrl(storeConfig, 'hero_video', "https://cdn.coverr.co/videos/coverr-chef-preparing-food-in-kitchen-5379/1080p.mp4"), poster: getBannerImage(storeConfig, 'hero_video_poster', "https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?q=80&w=2070&auto=format&fit=crop"), context: "background", className: "w-full h-full opacity-50 scale-105" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-[#0F0F0F] via-[#0F0F0F]/40 to-black/30" }), _jsx("div", { className: "absolute inset-0 bg-[url('https://www.transparenttextures.com/patterns/noise.png')] opacity-20 mix-blend-overlay" })] }), _jsxs("div", { className: "relative z-10 text-center px-4 max-w-5xl mx-auto space-y-10", children: [_jsxs("div", { className: "flex justify-center items-center gap-6 animate-fade-in-up", children: [_jsx("span", { className: "h-px w-16 bg-white/30" }), _jsxs("div", { className: "flex items-center gap-2 text-orange-500 uppercase tracking-[0.3em] text-xs font-bold", children: [_jsx(Star, { className: "h-3 w-3 fill-current" }), " ", layoutConfig?.sections?.hero?.badge || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Michelin Star 2024')] }), _jsx("span", { className: "h-px w-16 bg-white/30" })] }), _jsxs("h1", { className: "text-5xl md:text-8xl lg:text-9xl font-black tracking-tighter leading-none uppercase text-white animate-fade-in-up delay-100", children: [layoutConfig?.sections?.hero?.title || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Taste the Extraordinary'), " ", _jsx("br", {}), _jsx("span", { className: "text-transparent bg-clip-text bg-gradient-to-r from-orange-400 to-amber-200", children: layoutConfig?.sections?.hero?.titleHighlight || 'Extraordinary' })] }), _jsx("p", { className: "text-lg md:text-xl text-gray-300 max-w-xl mx-auto font-light leading-relaxed animate-fade-in-up delay-200 tracking-wide", children: layoutConfig?.sections?.hero?.subtitle || `${storeConfig.description} Where culinary art meets exceptional atmosphere.` }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-6 justify-center items-center pt-8 animate-fade-in-up delay-300", children: [_jsx(Button, { onClick: () => setIsReservationOpen(true), className: "h-14 px-10 bg-orange-600 hover:bg-orange-700 text-white text-sm font-bold uppercase tracking-[0.2em] rounded-full transition-all hover:scale-105 hover:shadow-[0_0_40px_rgba(234,88,12,0.3)]", children: layoutConfig?.sections?.hero?.primaryCTA || getLayoutText(storeConfig, 'food.reserveTable', 'Reserve Table') }), _jsx("div", { onClick: scrollToMenu, className: "w-14 h-14 rounded-full border border-white/20 flex items-center justify-center cursor-pointer hover:bg-white hover:text-black transition-all group", children: _jsx(ArrowRight, { className: "h-5 w-5 group-hover:rotate-90 transition-transform duration-300" }) })] })] }), _jsxs("div", { className: "absolute bottom-10 left-1/2 -translate-x-1/2 flex flex-col items-center gap-4 animate-pulse", children: [_jsx("span", { className: "text-[10px] uppercase tracking-[0.3em] text-gray-500", children: "Scroll" }), _jsx("div", { className: "w-px h-16 bg-gradient-to-b from-orange-500 to-transparent" })] })] }), layoutConfig?.sections?.about?.show !== false && (_jsxs("section", { "data-section": "about", className: "py-20 px-6 relative overflow-hidden", children: [_jsx("div", { className: "absolute top-0 right-0 w-1/3 h-full bg-white/5 skew-x-12 transform translate-x-20 pointer-events-none" }), _jsx("div", { className: "container mx-auto max-w-6xl relative z-10", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-20 items-center", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "aspect-[4/5] rounded-none overflow-hidden grayscale hover:grayscale-0 transition-all duration-700", children: _jsx(ImageWithFallback, { src: getBannerImage(storeConfig, 'about_section_image', "https://images.unsplash.com/photo-1559339352-11d035aa65de?w=1200&q=80"), alt: "Chef", className: "w-full h-full object-cover" }) }), _jsxs("div", { className: "absolute -bottom-10 -right-10 bg-[#1A1A1A] p-8 border border-white/5 max-w-xs hidden md:block", children: [_jsx("p", { className: "font-serif italic text-2xl text-white mb-4", children: layoutConfig?.sections?.about?.quote || '"Cooking is an art, but patience is the key ingredient."' }), _jsx("p", { className: "text-orange-500 text-xs font-bold uppercase tracking-widest", children: layoutConfig?.sections?.about?.author || '— Head Chef Marco' })] })] }), _jsxs("div", { className: "space-y-8", children: [_jsx("span", { className: "text-orange-500 font-bold uppercase tracking-widest text-xs", children: layoutConfig?.sections?.about?.badge || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Our Philosophy') }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold leading-tight", children: layoutConfig?.sections?.about?.title || getLayoutText(storeConfig, 'food.ourPhilosophy', 'Crafting Memories Through Flavor') }), _jsx("p", { className: "text-gray-400 text-lg leading-relaxed", children: layoutConfig?.sections?.about?.description || getLayoutText(storeConfig, 'food.ourPhilosophy', 'We believe that dining is more than just eating; it\'s an experience that engages all senses. Our seasonal menu is carefully curated using locally sourced ingredients to bring you the freshest flavors of the region.') }), _jsxs("div", { className: "grid grid-cols-3 gap-8 pt-8 border-t border-white/10", children: [_jsxs("div", { children: [_jsx(Flame, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Wood Fired" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Authentic taste" })] }), _jsxs("div", { children: [_jsx(Wine, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Fine Wines" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Curated selection" })] }), _jsxs("div", { children: [_jsx(Coffee, { className: "h-8 w-8 text-orange-500 mb-4" }), _jsx("h4", { className: "font-bold text-lg", children: "Artisan Coffee" }), _jsx("p", { className: "text-sm text-gray-500 mt-2", children: "Roasted in-house" })] })] })] })] }) })] })), layoutConfig?.sections?.promoBanner?.show !== false && layoutConfig?.sections?.promoBanner && (_jsx(PromoBanner, { config: layoutConfig.sections.promoBanner, layoutStyle: "food", className: "my-20" })), _jsx("section", { id: "menu-section", "data-section": "categories", className: "py-20 bg-[#141414] border-t border-white/5", children: _jsxs("div", { className: "container mx-auto px-6 max-w-7xl", children: [_jsxs("div", { className: "text-center mb-12", children: [_jsx("span", { className: "text-orange-500 font-bold uppercase tracking-widest text-xs mb-4 block", children: "Discover" }), _jsx("h2", { className: "text-4xl md:text-5xl font-bold uppercase tracking-tight mb-8", children: layoutConfig?.sections?.categories?.title || getLayoutText(storeConfig, 'food.menuCategories', 'Our Menu') }), _jsxs("div", { className: "flex flex-wrap justify-center gap-4", children: [_jsx("button", { onClick: () => setActiveTab('all'), className: `px-8 py-3 rounded-full text-sm font-bold uppercase tracking-wider transition-all border ${activeTab === 'all' ? 'bg-white text-black border-white' : 'bg-transparent text-gray-400 border-white/10 hover:border-white/30'}`, children: "All" }), categories.map((cat) => (_jsx("button", { onClick: () => setActiveTab(cat.id), className: `px-8 py-3 rounded-full text-sm font-bold uppercase tracking-wider transition-all border ${activeTab === cat.id ? 'bg-white text-black border-white' : 'bg-transparent text-gray-400 border-white/10 hover:border-white/30'}`, children: cat.name }, cat.id)))] })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-16", children: filteredItems.map((item) => (_jsxs("div", { className: "group cursor-pointer", children: [_jsxs("div", { className: "aspect-square overflow-hidden rounded-full mb-6 border border-white/10 relative", children: [_jsx(ImageWithFallback, { src: item.image, alt: item.name, className: "w-full h-full object-cover transition-transform duration-700 group-hover:scale-110 group-hover:rotate-3", skeletonAspectRatio: "square" }), _jsx("div", { className: "hidden lg:flex absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity items-center justify-center", children: _jsx(Button, { className: "bg-orange-600 rounded-full px-6 hover:bg-orange-700", onClick: (e) => {
|
|
79
79
|
e.preventDefault();
|
|
80
80
|
e.stopPropagation();
|
|
81
81
|
// Adapt menu item to product for cart
|
|
@@ -104,7 +104,7 @@ export function FoodHomePageModern({ storeConfig }) {
|
|
|
104
104
|
};
|
|
105
105
|
addToCart(product);
|
|
106
106
|
addToast(`${item.name} added to order`, 'success');
|
|
107
|
-
}, children: _jsx(Utensils, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: "text-center px-4", children: [_jsx("h3", { className: "text-xl font-bold uppercase tracking-wide mb-2 group-hover:text-orange-500 transition-colors", children: item.name }), _jsx("p", { className: "text-gray-500 text-sm mb-3 line-clamp-2", children: item.description }), _jsx("span", { className: "text-2xl font-serif text-white block", children: formatCurrency(item.price, item.currency || storeConfig.settings?.currency || 'USD') })] })] }, item.id))) })] }) }), testimonialsSection?.show !== false && (_jsx("section", { className: "py-20 px-6 bg-[#0F0F0F] border-t border-white/5", children: _jsxs("div", { className: "container mx-auto max-w-6xl", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-12 uppercase tracking-tight", children: testimonialsSection?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'Guest Stories') }), testimonialsSection?.subtitle && (_jsx("p", { className: "text-center text-gray-400 mb-12 max-w-2xl mx-auto", children: testimonialsSection.subtitle })), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: testimonials.slice(0, 3).map((t) => (_jsxs("div", { className: "bg-[#1A1A1A] p-8 rounded-none border border-white/5 relative hover:-translate-y-2 transition-transform duration-300", children: [_jsx("div", { className: "absolute -top-5 left-8 text-6xl text-orange-500/20 font-serif", children: "\"" }), _jsx("p", { className: "text-gray-300 leading-relaxed mb-8 relative z-10 italic font-light", children: t.comment }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx(ImageWithFallback, { src: t.image, alt: t.name, className: "w-12 h-12 rounded-full object-cover grayscale" }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-white text-sm uppercase tracking-wide", children: t.name }), _jsx("span", { className: "text-xs text-orange-500 font-bold uppercase tracking-widest", children: t.role })] })] })] }, t.id))) })] }) })), _jsxs("section", { className: "relative py-20 md:py-32 flex items-center justify-center overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-cover bg-center fixed-bg opacity-30 grayscale", style: { backgroundImage: `url('${getBannerImage(storeConfig, 'reservation_bg', "https://images.unsplash.com/photo-1559339352-11d035aa65de?q=80&w=1974&auto=format&fit=crop")}')` } }), _jsx("div", { className: "absolute inset-0 bg-[#0F0F0F]/80" }), _jsxs("div", { className: "relative z-10 text-center max-w-4xl mx-auto px-6", children: [_jsx(ChefHat, { className: "h-12 w-12 md:h-16 md:w-16 text-white/20 mx-auto mb-6 md:mb-8" }), _jsx("h2", { className: "text-4xl md:text-7xl font-bold uppercase tracking-tight mb-6 md:mb-8", children: "Your Table Awaits" }), _jsx("p", { className: "text-lg md:text-xl text-gray-300 mb-10 md:mb-12 font-light", children: "Experience the art of fine dining in the heart of the city." }), _jsx(Button, { onClick: () => setIsReservationOpen(true), className: "h-16 px-12 bg-white text-black hover:bg-orange-500 hover:text-white text-lg font-bold uppercase tracking-[0.2em] rounded-full transition-all duration-300 hover:shadow-[0_0_30px_rgba(255,255,255,0.2)]", children: "Make a Reservation" })] })] }), _jsx("footer", { className: "bg-black pt-24 pb-12 border-t border-white/5", children: _jsxs("div", { className: "container mx-auto px-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-16 mb-20", children: [_jsxs("div", { className: "space-y-8", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-3xl font-black tracking-tighter uppercase block", children: [storeConfig.name, _jsx("span", { className: "text-orange-500", children: "." })] }), _jsx("p", { className: "text-gray-500 leading-relaxed text-sm", children: storeConfig.description || getLayoutText(storeConfig, 'footer.description', 'Redefining the art of dining through innovation, passion, and uncompromising quality.') }), (storeConfig.branding.socialMedia || storeConfig.socialLinks) && (_jsxs("div", { className: "flex gap-4", children: [(storeConfig.branding.socialMedia?.instagram || storeConfig.socialLinks?.instagram) && (_jsx("a", { href: storeConfig.branding.socialMedia?.instagram || storeConfig.socialLinks?.instagram || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Instagram, { className: "h-4 w-4" }) })), (storeConfig.branding.socialMedia?.facebook || storeConfig.socialLinks?.facebook) && (_jsx("a", { href: storeConfig.branding.socialMedia?.facebook || storeConfig.socialLinks?.facebook || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Facebook, { className: "h-4 w-4" }) })), (storeConfig.branding.socialMedia?.twitter || storeConfig.socialLinks?.twitter) && (_jsx("a", { href: storeConfig.branding.socialMedia?.twitter || storeConfig.socialLinks?.twitter || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Twitter, { className: "h-4 w-4" }) }))] }))] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-bold uppercase tracking-[0.2em] mb-8 text-white", children: getLayoutText(storeConfig, 'footer.quickLinks.title', 'Quick Links') }), _jsx("ul", { className: "space-y-4 text-gray-500 text-sm", children: storeConfig.navigation?.footer && storeConfig.navigation.footer.length > 0 ? (storeConfig.navigation.footer.map((section, idx) => (section.links?.map((link, linkIdx) => (_jsx("li", { children: _jsx(Link, { href: link.href, className: "hover:text-orange-500 transition-colors", children: link.label }) }, `${idx}-${linkIdx}`))))).flat()) : (_jsxs(_Fragment, { children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/menu`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.menu', 'Our Menu') }) }), _jsx("li", { children: _jsx("button", { onClick: () => setIsReservationOpen(true), className: "hover:text-orange-500 transition-colors text-left", children: getLayoutText(storeConfig, 'footer.quickLinks.reservations', 'Reservations') }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.privateDining', 'Private Dining') }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.giftCards', 'Gift Cards') }) })] })) })] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-bold uppercase tracking-[0.2em] mb-8 text-white", children: getLayoutText(storeConfig, 'footer.contact.title', 'Contact') }), _jsxs("ul", { className: "space-y-4 text-gray-500 text-sm", children: [storeConfig.contactInfo?.address && ((storeConfig.contactInfo.address.street ||
|
|
107
|
+
}, children: _jsx(Utensils, { className: "h-5 w-5" }) })] }), _jsxs("div", { className: "text-center px-4", children: [_jsx("h3", { className: "text-xl font-bold uppercase tracking-wide mb-2 group-hover:text-orange-500 transition-colors", children: item.name }), _jsx("p", { className: "text-gray-500 text-sm mb-3 line-clamp-2", children: item.description }), _jsx("span", { className: "text-2xl font-serif text-white block", children: formatCurrency(item.price, item.currency || storeConfig.settings?.currency || 'USD') })] })] }, item.id))) })] }) }), testimonialsSection?.show !== false && (_jsx("section", { "data-section": "testimonials", className: "py-20 px-6 bg-[#0F0F0F] border-t border-white/5", children: _jsxs("div", { className: "container mx-auto max-w-6xl", children: [_jsx("h2", { className: "text-3xl md:text-4xl font-bold text-center mb-12 uppercase tracking-tight", children: testimonialsSection?.title || getLayoutText(storeConfig, 'sections.testimonials.title', 'Guest Stories') }), testimonialsSection?.subtitle && (_jsx("p", { className: "text-center text-gray-400 mb-12 max-w-2xl mx-auto", children: testimonialsSection.subtitle })), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: testimonials.slice(0, 3).map((t) => (_jsxs("div", { className: "bg-[#1A1A1A] p-8 rounded-none border border-white/5 relative hover:-translate-y-2 transition-transform duration-300", children: [_jsx("div", { className: "absolute -top-5 left-8 text-6xl text-orange-500/20 font-serif", children: "\"" }), _jsx("p", { className: "text-gray-300 leading-relaxed mb-8 relative z-10 italic font-light", children: t.comment }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx(ImageWithFallback, { src: t.image, alt: t.name, className: "w-12 h-12 rounded-full object-cover grayscale" }), _jsxs("div", { children: [_jsx("h4", { className: "font-bold text-white text-sm uppercase tracking-wide", children: t.name }), _jsx("span", { className: "text-xs text-orange-500 font-bold uppercase tracking-widest", children: t.role })] })] })] }, t.id))) })] }) })), _jsxs("section", { className: "relative py-20 md:py-32 flex items-center justify-center overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 bg-cover bg-center fixed-bg opacity-30 grayscale", style: { backgroundImage: `url('${getBannerImage(storeConfig, 'reservation_bg', "https://images.unsplash.com/photo-1559339352-11d035aa65de?q=80&w=1974&auto=format&fit=crop")}')` } }), _jsx("div", { className: "absolute inset-0 bg-[#0F0F0F]/80" }), _jsxs("div", { className: "relative z-10 text-center max-w-4xl mx-auto px-6", children: [_jsx(ChefHat, { className: "h-12 w-12 md:h-16 md:w-16 text-white/20 mx-auto mb-6 md:mb-8" }), _jsx("h2", { className: "text-4xl md:text-7xl font-bold uppercase tracking-tight mb-6 md:mb-8", children: "Your Table Awaits" }), _jsx("p", { className: "text-lg md:text-xl text-gray-300 mb-10 md:mb-12 font-light", children: "Experience the art of fine dining in the heart of the city." }), _jsx(Button, { onClick: () => setIsReservationOpen(true), className: "h-16 px-12 bg-white text-black hover:bg-orange-500 hover:text-white text-lg font-bold uppercase tracking-[0.2em] rounded-full transition-all duration-300 hover:shadow-[0_0_30px_rgba(255,255,255,0.2)]", children: "Make a Reservation" })] })] }), _jsx("footer", { className: "bg-black pt-24 pb-12 border-t border-white/5", children: _jsxs("div", { className: "container mx-auto px-6", children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-16 mb-20", children: [_jsxs("div", { className: "space-y-8", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "text-3xl font-black tracking-tighter uppercase block", children: [storeConfig.name, _jsx("span", { className: "text-orange-500", children: "." })] }), _jsx("p", { className: "text-gray-500 leading-relaxed text-sm", children: storeConfig.description || getLayoutText(storeConfig, 'footer.description', 'Redefining the art of dining through innovation, passion, and uncompromising quality.') }), (storeConfig.branding.socialMedia || storeConfig.socialLinks) && (_jsxs("div", { className: "flex gap-4", children: [(storeConfig.branding.socialMedia?.instagram || storeConfig.socialLinks?.instagram) && (_jsx("a", { href: storeConfig.branding.socialMedia?.instagram || storeConfig.socialLinks?.instagram || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Instagram, { className: "h-4 w-4" }) })), (storeConfig.branding.socialMedia?.facebook || storeConfig.socialLinks?.facebook) && (_jsx("a", { href: storeConfig.branding.socialMedia?.facebook || storeConfig.socialLinks?.facebook || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Facebook, { className: "h-4 w-4" }) })), (storeConfig.branding.socialMedia?.twitter || storeConfig.socialLinks?.twitter) && (_jsx("a", { href: storeConfig.branding.socialMedia?.twitter || storeConfig.socialLinks?.twitter || '#', target: "_blank", rel: "noopener noreferrer", className: "w-10 h-10 border border-white/10 flex items-center justify-center hover:bg-orange-500 hover:border-orange-500 hover:text-white transition-all rounded-full", children: _jsx(Twitter, { className: "h-4 w-4" }) }))] }))] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-bold uppercase tracking-[0.2em] mb-8 text-white", children: getLayoutText(storeConfig, 'footer.quickLinks.title', 'Quick Links') }), _jsx("ul", { className: "space-y-4 text-gray-500 text-sm", children: storeConfig.navigation?.footer && storeConfig.navigation.footer.length > 0 ? (storeConfig.navigation.footer.map((section, idx) => (section.links?.map((link, linkIdx) => (_jsx("li", { children: _jsx(Link, { href: link.href, className: "hover:text-orange-500 transition-colors", children: link.label }) }, `${idx}-${linkIdx}`))))).flat()) : (_jsxs(_Fragment, { children: [_jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/menu`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.menu', 'Our Menu') }) }), _jsx("li", { children: _jsx("button", { onClick: () => setIsReservationOpen(true), className: "hover:text-orange-500 transition-colors text-left", children: getLayoutText(storeConfig, 'footer.quickLinks.reservations', 'Reservations') }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.privateDining', 'Private Dining') }) }), _jsx("li", { children: _jsx(Link, { href: `/${storeConfig.slug}/contact`, className: "hover:text-orange-500 transition-colors", children: getLayoutText(storeConfig, 'footer.quickLinks.giftCards', 'Gift Cards') }) })] })) })] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-bold uppercase tracking-[0.2em] mb-8 text-white", children: getLayoutText(storeConfig, 'footer.contact.title', 'Contact') }), _jsxs("ul", { className: "space-y-4 text-gray-500 text-sm", children: [storeConfig.contactInfo?.address && ((storeConfig.contactInfo.address.street ||
|
|
108
108
|
storeConfig.contactInfo.address.city ||
|
|
109
109
|
storeConfig.contactInfo.address.state ||
|
|
110
110
|
storeConfig.contactInfo.address.zipCode) && (_jsxs("li", { className: "flex items-start gap-3", children: [_jsx(MapPin, { className: "h-5 w-5 text-orange-500 mt-1 shrink-0" }), _jsxs("span", { children: [storeConfig.contactInfo.address.street && `${storeConfig.contactInfo.address.street}, `, storeConfig.contactInfo.address.city && `${storeConfig.contactInfo.address.city}, `, storeConfig.contactInfo.address.state && `${storeConfig.contactInfo.address.state} `, storeConfig.contactInfo.address.zipCode && storeConfig.contactInfo.address.zipCode] })] }))), storeConfig.contactInfo?.phone && (_jsxs("li", { className: "flex items-center gap-3", children: [_jsx(Phone, { className: "h-5 w-5 text-orange-500 shrink-0" }), _jsx("a", { href: `tel:${storeConfig.contactInfo.phone}`, className: "hover:text-orange-500 transition-colors", children: storeConfig.contactInfo.phone })] })), storeConfig.contactInfo?.email && (_jsxs("li", { className: "flex items-center gap-3", children: [_jsx(Mail, { className: "h-5 w-5 text-orange-500 shrink-0" }), _jsx("a", { href: `mailto:${storeConfig.contactInfo.email}`, className: "hover:text-orange-500 transition-colors", children: storeConfig.contactInfo.email })] })), storeConfig.locations && storeConfig.locations.length > 0 && storeConfig.locations[0].openingHours && (_jsxs("li", { className: "flex items-center gap-3", children: [_jsx(Clock, { className: "h-5 w-5 text-orange-500 shrink-0" }), _jsx("span", { children: storeConfig.locations[0].openingHours })] })), !storeConfig.contactInfo?.address && !storeConfig.contactInfo?.phone && !storeConfig.contactInfo?.email && (!storeConfig.locations || storeConfig.locations.length === 0 || !storeConfig.locations[0].openingHours) && (_jsxs("li", { className: "flex items-center gap-3", children: [_jsx(Clock, { className: "h-5 w-5 text-orange-500 shrink-0" }), _jsx("span", { children: getLayoutText(storeConfig, 'footer.contact.openingHours', 'Mon-Sun: 11am - 11pm') })] }))] })] }), _jsxs("div", { children: [_jsx("h4", { className: "text-sm font-bold uppercase tracking-[0.2em] mb-8 text-white", children: getLayoutText(storeConfig, 'footer.newsletter.title', 'Newsletter') }), _jsx("p", { className: "text-gray-500 mb-6 text-sm", children: getLayoutText(storeConfig, 'footer.newsletter.description', getLayoutText(storeConfig, 'sections.marketing.newsletter.subtitle', 'Subscribe for seasonal updates and exclusive invitations.')) }), _jsxs("form", { onSubmit: async (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MotivationalHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/motivational-speaker/components/MotivationalHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,UAAU,yBAAyB;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"MotivationalHomePage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/motivational-speaker/components/MotivationalHomePage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,UAAU,yBAAyB;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC5B;AAED,wBAAgB,oBAAoB,CAAC,EAAE,WAAW,EAAE,EAAE,yBAAyB,2CAmoB9E"}
|
|
@@ -63,7 +63,7 @@ export function MotivationalHomePage({ storeConfig }) {
|
|
|
63
63
|
const toggleFaq = (index) => {
|
|
64
64
|
setOpenFaqIndex(openFaqIndex === index ? null : index);
|
|
65
65
|
};
|
|
66
|
-
return (_jsxs("div", { className: "min-h-screen bg-white font-sans text-gray-900 selection:bg-black selection:text-white", children: [_jsxs("section", { "data-section": "hero", ref: heroRef, className: "relative h-screen min-h-[800px] flex items-center justify-center overflow-hidden bg-black", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [heroVideo ? (_jsx("video", { src: heroVideo, autoPlay: true, loop: true, muted: true, playsInline: true, className: "w-full h-full object-cover opacity-60" })) : (_jsx(Image, { src: heroBg, alt: "Hero Background", fill: true, className: "object-cover opacity-80", priority: true, unoptimized: true })), _jsx("div", { className: "absolute inset-0 bg-gradient-to-b from-black/70 via-black/40 to-black/80" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-black/10 to-transparent animate-pulse" })] }), _jsx(motion.div, { style: { opacity: heroOpacity, scale: heroScale }, className: "container mx-auto px-6 relative z-10 text-center text-white pt-20", children: _jsxs(motion.div, { initial: { opacity: 0, y: 30 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.8, ease: "easeOut" }, className: "max-w-4xl mx-auto space-y-8", children: [_jsx(motion.span, { initial: { opacity: 0, scale: 0.9 }, animate: { opacity: 1, scale: 1 }, transition: { delay: 0.2, duration: 0.6 }, className: "inline-block py-1.5 px-4 border border-white/30 rounded-full text-sm font-medium tracking-widest uppercase backdrop-blur-md bg-white/5", children: getTextContent(storeConfig, 'hero_subtitle', 'Master Your Mindset') }), _jsx(motion.h1, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3, duration: 0.8 }, className: "text-6xl md:text-8xl font-serif font-medium tracking-tight leading-tight", children: getTextContent(storeConfig, 'hero_title', 'Unlock Your True Potential') }), _jsx(motion.p, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.5, duration: 0.8 }, className: "text-xl md:text-2xl text-gray-300 max-w-2xl mx-auto font-light leading-relaxed", children: storeConfig.description || "Join thousands of students learning to master their mindset and achieve their dreams." }), _jsxs(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.7, duration: 0.8 }, className: "flex flex-col sm:flex-row gap-6 justify-center pt-8", children: [_jsx(Link, { href: isAuthenticated ? `/${storeConfig.slug}/account?tab=learning` : `/${storeConfig.slug}/subscription`, children: _jsxs(Button, { size: "lg", className: "h-16 px-12 rounded-full text-lg font-medium bg-white text-black hover:bg-gray-200 transition-all transform hover:-translate-y-1 hover:shadow-2xl", children: [isAuthenticated ? 'Continue Learning' : getTextContent(storeConfig, 'cta_primary', 'Start Learning Now'), _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) }), _jsx(Link, { href: `/${storeConfig.slug}/services`, children: _jsxs(Button, { size: "lg", variant: "outline", className: "h-16 px-12 rounded-full text-lg font-medium border-2 border-white/40 text-white hover:bg-white hover:text-black hover:border-white transition-all backdrop-blur-sm", children: [
|
|
66
|
+
return (_jsxs("div", { className: "min-h-screen bg-white font-sans text-gray-900 selection:bg-black selection:text-white", children: [_jsxs("section", { "data-section": "hero", ref: heroRef, className: "relative h-screen min-h-[800px] flex items-center justify-center overflow-hidden bg-black", children: [_jsxs("div", { className: "absolute inset-0 z-0", children: [heroVideo ? (_jsx("video", { src: heroVideo, autoPlay: true, loop: true, muted: true, playsInline: true, className: "w-full h-full object-cover opacity-60" })) : (_jsx(Image, { src: heroBg, alt: "Hero Background", fill: true, className: "object-cover opacity-80", priority: true, unoptimized: true })), _jsx("div", { className: "absolute inset-0 bg-gradient-to-b from-black/70 via-black/40 to-black/80" }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-transparent via-black/10 to-transparent animate-pulse" })] }), _jsx(motion.div, { style: { opacity: heroOpacity, scale: heroScale }, className: "container mx-auto px-6 relative z-10 text-center text-white pt-20", children: _jsxs(motion.div, { initial: { opacity: 0, y: 30 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.8, ease: "easeOut" }, className: "max-w-4xl mx-auto space-y-8", children: [_jsx(motion.span, { initial: { opacity: 0, scale: 0.9 }, animate: { opacity: 1, scale: 1 }, transition: { delay: 0.2, duration: 0.6 }, className: "inline-block py-1.5 px-4 border border-white/30 rounded-full text-sm font-medium tracking-widest uppercase backdrop-blur-md bg-white/5", children: layoutConfig?.sections?.hero?.subtitle || getTextContent(storeConfig, 'hero_subtitle', 'Master Your Mindset') }), _jsx(motion.h1, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3, duration: 0.8 }, className: "text-6xl md:text-8xl font-serif font-medium tracking-tight leading-tight", children: layoutConfig?.sections?.hero?.title || getTextContent(storeConfig, 'hero_title', 'Unlock Your True Potential') }), _jsx(motion.p, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.5, duration: 0.8 }, className: "text-xl md:text-2xl text-gray-300 max-w-2xl mx-auto font-light leading-relaxed", children: layoutConfig?.sections?.hero?.description || storeConfig.description || "Join thousands of students learning to master their mindset and achieve their dreams." }), _jsxs(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.7, duration: 0.8 }, className: "flex flex-col sm:flex-row gap-6 justify-center pt-8", children: [_jsx(Link, { href: isAuthenticated ? `/${storeConfig.slug}/account?tab=learning` : `/${storeConfig.slug}/subscription`, children: _jsxs(Button, { size: "lg", className: "h-16 px-12 rounded-full text-lg font-medium bg-white text-black hover:bg-gray-200 transition-all transform hover:-translate-y-1 hover:shadow-2xl", children: [isAuthenticated ? 'Continue Learning' : (layoutConfig?.sections?.hero?.primaryCTA || getTextContent(storeConfig, 'cta_primary', 'Start Learning Now')), _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) }), _jsx(Link, { href: `/${storeConfig.slug}/services`, children: _jsxs(Button, { size: "lg", variant: "outline", className: "h-16 px-12 rounded-full text-lg font-medium border-2 border-white/40 text-white hover:bg-white hover:text-black hover:border-white transition-all backdrop-blur-sm", children: [layoutConfig?.sections?.hero?.secondaryCTA || 'Explore Catalogue', _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) })] })] }) }), _jsx(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { delay: 1, duration: 0.6 }, className: "absolute bottom-10 left-1/2 -translate-x-1/2", children: _jsx(motion.div, { animate: { y: [0, 10, 0] }, transition: { duration: 2, repeat: Infinity, ease: "easeInOut" }, className: "w-[1px] h-16 bg-gradient-to-b from-white to-transparent opacity-50" }) })] }), _jsxs("section", { className: "py-20 border-y border-gray-100 bg-white overflow-hidden", children: [_jsx("div", { className: "container mx-auto px-6 mb-10", children: _jsx("p", { className: "text-center text-[10px] font-black uppercase tracking-[0.4em] text-gray-400", children: "Trusted by Global Institutions" }) }), _jsx("div", { className: "relative flex overflow-x-hidden group", children: _jsx("div", { className: "animate-scroll flex items-center gap-20 whitespace-nowrap min-w-full", children: [
|
|
67
67
|
{ name: "Forbes", logo: "https://logos-world.net/wp-content/uploads/2021/03/Forbes-Logo.png" },
|
|
68
68
|
{ name: "Entrepreneur", logo: "https://logos-world.net/wp-content/uploads/2023/11/Entrepreneur-Logo.png" },
|
|
69
69
|
{ name: "TED", logo: "https://logos-world.net/wp-content/uploads/2023/11/TED-Logo.png" },
|
|
@@ -77,7 +77,7 @@ export function MotivationalHomePage({ storeConfig }) {
|
|
|
77
77
|
{ name: "Wired", logo: "https://logos-world.net/wp-content/uploads/2023/11/Wired-Logo.png" },
|
|
78
78
|
{ name: "Fast Company", logo: "https://logos-world.net/wp-content/uploads/2023/11/Fast-Company-Logo.png" },
|
|
79
79
|
{ name: "Inc", logo: "https://logos-world.net/wp-content/uploads/2023/11/Inc-Logo.png" },
|
|
80
|
-
].map((brand, i) => (_jsx("div", { className: "flex items-center justify-center w-32 h-10 grayscale opacity-40 hover:grayscale-0 hover:opacity-100 transition-all duration-700 mx-10", children: _jsx(Image, { src: brand.logo, alt: brand.name, width: 120, height: 40, className: "object-contain max-h-full", unoptimized: true }) }, i))) }) })] }), _jsx("section", { "data-section": "about", className: "py-32 bg-white", children: _jsx("div", { className: "container mx-auto px-6 max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-16 items-center", children: [_jsxs(motion.div, { initial: { opacity: 0, x: -50 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8 }, className: "lg:col-span-5 relative", children: [_jsx("div", { className: "relative aspect-[4/5] overflow-hidden bg-gray-100 rounded-lg", children: _jsx(Image, { src: speakerImage, alt: "Speaker Portrait", fill: true, className: "object-cover grayscale hover:grayscale-0 transition-all duration-700 ease-in-out", unoptimized: true }) }), _jsx("div", { className: "absolute -bottom-6 -right-6 w-32 h-32 border-r-2 border-b-2 border-black/10 -z-10 backdrop-blur-sm bg-white/30" }), _jsx("div", { className: "absolute -top-6 -left-6 w-32 h-32 border-t-2 border-l-2 border-black/10 -z-10 backdrop-blur-sm bg-white/30" })] }), _jsx("div", { className: "lg:col-span-1" }), " ", _jsxs(motion.div, { initial: { opacity: 0, x: 50 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8, delay: 0.2 }, className: "lg:col-span-6 space-y-10", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-serif text-gray-900 leading-tight", children: getTextContent(storeConfig, 'bio_title', "Hi, I'm here to help you grow.") }), _jsx("div", { className: "space-y-6 text-xl text-gray-600 font-light leading-relaxed", children: _jsx("p", { children: getTextContent(storeConfig, 'bio_desc', "I have dedicated my life to helping individuals break through their barriers. My courses are designed to give you practical tools for everyday success.") }) }), _jsxs("div", { className: "grid grid-cols-3 gap-8 pt-8 border-t border-gray-100", children: [_jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "50k+" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Students" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "100+" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Modules" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "4.9" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Rating" })] })] }), _jsxs("div", { className: "flex items-center gap-4 pt-4", children: [storeConfig.branding.socialMedia?.youtube && (_jsx("a", { href: storeConfig.branding.socialMedia.youtube, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Youtube, { className: "w-5 h-5 text-gray-700" }) })), storeConfig.branding.socialMedia?.instagram && (_jsx("a", { href: storeConfig.branding.socialMedia.instagram, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Instagram, { className: "w-5 h-5 text-gray-700" }) })), storeConfig.branding.socialMedia?.twitter && (_jsx("a", { href: storeConfig.branding.socialMedia.twitter, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Twitter, { className: "w-5 h-5 text-gray-700" }) }))] })] })] }) }) }), _jsx("section", { "data-section": "services", className: "py-32 bg-gray-50", children: _jsxs("div", { className: "container mx-auto px-6 max-w-7xl", children: [_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6 }, className: "flex flex-col md:flex-row justify-between items-end mb-20 gap-8", children: [_jsxs("div", { children: [_jsx("span", { className: "text-gray-400 font-bold tracking-widest uppercase text-xs mb-4 block", children: "Catalogue" }), _jsx("h2", { className: "text-4xl md:text-5xl font-serif text-gray-900", children:
|
|
80
|
+
].map((brand, i) => (_jsx("div", { className: "flex items-center justify-center w-32 h-10 grayscale opacity-40 hover:grayscale-0 hover:opacity-100 transition-all duration-700 mx-10", children: _jsx(Image, { src: brand.logo, alt: brand.name, width: 120, height: 40, className: "object-contain max-h-full", unoptimized: true }) }, i))) }) })] }), _jsx("section", { "data-section": "about", className: "py-32 bg-white", children: _jsx("div", { className: "container mx-auto px-6 max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-16 items-center", children: [_jsxs(motion.div, { initial: { opacity: 0, x: -50 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8 }, className: "lg:col-span-5 relative", children: [_jsx("div", { className: "relative aspect-[4/5] overflow-hidden bg-gray-100 rounded-lg", children: _jsx(Image, { src: speakerImage, alt: "Speaker Portrait", fill: true, className: "object-cover grayscale hover:grayscale-0 transition-all duration-700 ease-in-out", unoptimized: true }) }), _jsx("div", { className: "absolute -bottom-6 -right-6 w-32 h-32 border-r-2 border-b-2 border-black/10 -z-10 backdrop-blur-sm bg-white/30" }), _jsx("div", { className: "absolute -top-6 -left-6 w-32 h-32 border-t-2 border-l-2 border-black/10 -z-10 backdrop-blur-sm bg-white/30" })] }), _jsx("div", { className: "lg:col-span-1" }), " ", _jsxs(motion.div, { initial: { opacity: 0, x: 50 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8, delay: 0.2 }, className: "lg:col-span-6 space-y-10", children: [_jsx("h2", { className: "text-4xl md:text-6xl font-serif text-gray-900 leading-tight", children: layoutConfig?.sections?.about?.title || getTextContent(storeConfig, 'bio_title', "Hi, I'm here to help you grow.") }), _jsx("div", { className: "space-y-6 text-xl text-gray-600 font-light leading-relaxed", children: _jsx("p", { children: layoutConfig?.sections?.about?.description || getTextContent(storeConfig, 'bio_desc', "I have dedicated my life to helping individuals break through their barriers. My courses are designed to give you practical tools for everyday success.") }) }), _jsxs("div", { className: "grid grid-cols-3 gap-8 pt-8 border-t border-gray-100", children: [_jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "50k+" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Students" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "100+" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Modules" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-4xl font-serif text-gray-900 mb-1", children: "4.9" }), _jsx("div", { className: "text-sm uppercase tracking-wider text-gray-400", children: "Rating" })] })] }), _jsxs("div", { className: "flex items-center gap-4 pt-4", children: [storeConfig.branding.socialMedia?.youtube && (_jsx("a", { href: storeConfig.branding.socialMedia.youtube, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Youtube, { className: "w-5 h-5 text-gray-700" }) })), storeConfig.branding.socialMedia?.instagram && (_jsx("a", { href: storeConfig.branding.socialMedia.instagram, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Instagram, { className: "w-5 h-5 text-gray-700" }) })), storeConfig.branding.socialMedia?.twitter && (_jsx("a", { href: storeConfig.branding.socialMedia.twitter, target: "_blank", rel: "noopener noreferrer", className: "p-3 rounded-full bg-gray-100 hover:bg-gray-200 transition-colors", children: _jsx(Twitter, { className: "w-5 h-5 text-gray-700" }) }))] })] })] }) }) }), _jsx("section", { "data-section": "services", className: "py-32 bg-gray-50", children: _jsxs("div", { className: "container mx-auto px-6 max-w-7xl", children: [_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6 }, className: "flex flex-col md:flex-row justify-between items-end mb-20 gap-8", children: [_jsxs("div", { children: [_jsx("span", { className: "text-gray-400 font-bold tracking-widest uppercase text-xs mb-4 block", children: "Catalogue" }), _jsx("h2", { className: "text-4xl md:text-5xl font-serif text-gray-900", children: layoutConfig?.sections?.services?.title || 'Latest Materials' })] }), _jsxs(Link, { href: `/${storeConfig.slug}/services`, className: "group flex items-center gap-3 text-lg font-medium hover:text-gray-600 transition-colors", children: [layoutConfig?.sections?.services?.viewAllLabel || 'View All Material', " ", _jsx(ArrowRight, { className: "w-5 h-5 group-hover:translate-x-1 transition-transform" })] })] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-10", children: contentItems.slice(0, 6).map((item, index) => {
|
|
81
81
|
// Infer Type & Badge
|
|
82
82
|
let TypeIcon = Play;
|
|
83
83
|
let typeLabel = "Course";
|
|
@@ -96,7 +96,7 @@ export function MotivationalHomePage({ storeConfig }) {
|
|
|
96
96
|
// Access Status
|
|
97
97
|
const isLocked = item.accessLevel === 'subscription' || item.accessLevel === 'paid';
|
|
98
98
|
return (_jsx(motion.div, { initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6, delay: index * 0.1 }, children: _jsx(Link, { href: `/${storeConfig.slug}/services/${item.slug}`, className: "group block h-full", children: _jsxs("article", { className: "bg-white h-full flex flex-col hover:shadow-2xl transition-all duration-500 ease-out border border-gray-200/50 hover:border-gray-300 rounded-lg overflow-hidden", children: [_jsxs("div", { className: "relative aspect-[16/10] overflow-hidden bg-gray-200", children: [_jsx(Image, { src: getServiceImage(item.image, storeConfig, "https://images.unsplash.com/photo-1516321318423-f06f85e504b3?w=800&auto=format&fit=crop"), alt: item.name, fill: true, className: "object-cover group-hover:scale-110 transition-transform duration-700", unoptimized: true }), _jsxs("div", { className: "absolute top-4 left-4 flex gap-2", children: [_jsxs("div", { className: "bg-white/90 backdrop-blur-md text-black px-4 py-2 text-xs font-bold uppercase tracking-wider flex items-center gap-2 rounded-full shadow-lg", children: [_jsx(TypeIcon, { className: "w-3 h-3" }), " ", typeLabel] }), isLocked && (_jsxs("div", { className: "bg-black/90 backdrop-blur-md text-white px-3 py-2 text-xs font-bold uppercase tracking-wider flex items-center gap-2 rounded-full shadow-lg", children: [_jsx(Lock, { className: "w-3 h-3" }), " Premium"] }))] })] }), _jsxs("div", { className: "p-8 flex flex-col flex-1", children: [_jsx("h3", { className: "text-2xl font-serif text-gray-900 mb-3 group-hover:underline decoration-1 underline-offset-4 decoration-gray-300", children: item.name }), _jsx("p", { className: "text-gray-500 font-light leading-relaxed mb-8 line-clamp-3", children: item.description }), _jsxs("div", { className: "mt-auto pt-6 border-t border-gray-100 flex items-center justify-between", children: [_jsxs("div", { className: "flex flex-col", children: [_jsx("span", { className: "text-xs uppercase tracking-wider text-gray-400 mb-1", children: "Access" }), _jsx("span", { className: "font-medium text-lg", children: item.price > 0 ? formatCurrency(item.price, item.currency || 'USD') : 'Free' })] }), _jsx("div", { className: "w-10 h-10 border border-gray-200 rounded-full flex items-center justify-center group-hover:bg-black group-hover:border-black group-hover:text-white transition-all", children: _jsx(ArrowRight, { className: "w-4 h-4" }) })] })] })] }) }) }, item.id));
|
|
99
|
-
}) })] }) }), _jsxs("section", { "data-section": "marketing", className: "relative py-32 bg-[#0a0a0a] text-white overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 opacity-20", children: _jsx(Image, { src: subBanner, alt: "Background", fill: true, className: "object-cover", unoptimized: true }) }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black via-[#0a0a0a] to-transparent" }), _jsx("div", { className: "container mx-auto px-6 relative z-10 max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-20 items-center", children: [_jsxs(motion.div, { initial: { opacity: 0, x: -30 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8 }, children: [_jsx("span", { className: "text-yellow-500 font-bold tracking-widest uppercase text-xs mb-6 block", children:
|
|
99
|
+
}) })] }) }), _jsxs("section", { "data-section": "marketing", className: "relative py-32 bg-[#0a0a0a] text-white overflow-hidden", children: [_jsx("div", { className: "absolute inset-0 opacity-20", children: _jsx(Image, { src: subBanner, alt: "Background", fill: true, className: "object-cover", unoptimized: true }) }), _jsx("div", { className: "absolute inset-0 bg-gradient-to-r from-black via-[#0a0a0a] to-transparent" }), _jsx("div", { className: "container mx-auto px-6 relative z-10 max-w-7xl", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-20 items-center", children: [_jsxs(motion.div, { initial: { opacity: 0, x: -30 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8 }, children: [_jsx("span", { className: "text-yellow-500 font-bold tracking-widest uppercase text-xs mb-6 block", children: layoutConfig?.sections?.marketing?.subscriptionBadge || 'Inner Circle Access' }), _jsx("h2", { className: "text-5xl md:text-7xl font-serif mb-8 leading-none", children: layoutConfig?.sections?.marketing?.subscriptionTitle || getTextContent(storeConfig, 'sub_title', 'Join the Movement') }), _jsx("p", { className: "text-xl text-gray-400 mb-12 font-light leading-relaxed max-w-lg", children: layoutConfig?.sections?.marketing?.subscriptionDescription || getTextContent(storeConfig, 'sub_desc', 'Get unlimited access to all courses, exclusive live sessions, and a community of like-minded individuals.') }), _jsx("div", { className: "flex flex-col sm:flex-row gap-6", children: _jsx(Link, { href: `/${storeConfig.slug}/subscription`, children: _jsxs(Button, { size: "lg", className: "h-16 px-12 rounded-full text-lg font-bold bg-yellow-500 text-black hover:bg-yellow-400 border-0 shadow-lg hover:shadow-xl transition-all transform hover:-translate-y-1", children: [layoutConfig?.sections?.marketing?.subscriptionButton || getTextContent(storeConfig, 'sub_cta', 'Become a Member'), _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] }) }) })] }), _jsxs(motion.div, { initial: { opacity: 0, x: 30 }, whileInView: { opacity: 1, x: 0 }, viewport: { once: true }, transition: { duration: 0.8, delay: 0.2 }, className: "bg-white/5 backdrop-blur-md border border-white/10 p-10 lg:p-14 rounded-2xl", children: [_jsx("h3", { className: "text-2xl font-serif mb-8", children: "Membership Benefits" }), _jsx("ul", { className: "space-y-6", children: [
|
|
100
100
|
"Unlimited access to all video courses",
|
|
101
101
|
"Downloadable PDF workbooks & guides",
|
|
102
102
|
"Weekly live Q&A sessions",
|
|
@@ -111,5 +111,5 @@ export function MotivationalHomePage({ storeConfig }) {
|
|
|
111
111
|
];
|
|
112
112
|
const testimonials = backendTestimonials.length > 0 ? backendTestimonials : fallbackTestimonials;
|
|
113
113
|
return testimonials.slice(0, 3).map((testimonial, index) => (_jsxs(motion.div, { initial: { opacity: 0, y: 30 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6, delay: index * 0.1 }, className: "text-center space-y-6", children: [_jsx("div", { className: "relative w-20 h-20 mx-auto rounded-full overflow-hidden mb-6 ring-4 ring-gray-100", children: _jsx(Image, { src: testimonial.image || '', alt: testimonial.name, fill: true, className: "object-cover", unoptimized: true }) }), _jsx("div", { className: "flex justify-center gap-1 mb-4 text-yellow-500", children: [...Array(5)].map((_, i) => _jsx(Star, { className: "w-4 h-4 fill-current" }, i)) }), _jsx(Quote, { className: "w-8 h-8 text-gray-300 mx-auto" }), _jsxs("p", { className: "text-xl font-serif text-gray-800 italic leading-relaxed", children: ["\"", testimonial.quote, "\""] }), _jsxs("div", { children: [_jsx("div", { className: "font-bold uppercase tracking-wider text-sm", children: testimonial.name }), _jsx("div", { className: "text-gray-400 text-xs mt-1", children: testimonial.role })] })] }, testimonial.id || testimonial.name)));
|
|
114
|
-
})() })] }) })), _jsxs("section", { "data-section": "marketing", className: "py-24 bg-gradient-to-br from-gray-900 via-gray-800 to-black text-white relative overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0 opacity-10", children: [_jsx("div", { className: "absolute top-0 left-0 w-96 h-96 bg-yellow-500 rounded-full blur-3xl" }), _jsx("div", { className: "absolute bottom-0 right-0 w-96 h-96 bg-blue-500 rounded-full blur-3xl" })] }), _jsx("div", { className: "container mx-auto px-6 max-w-4xl relative z-10", children: _jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6 }, className: "text-center space-y-8", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-xs font-bold uppercase tracking-widest", children: [_jsx(Mail, { className: "w-3 h-3" }),
|
|
114
|
+
})() })] }) })), _jsxs("section", { "data-section": "marketing", className: "py-24 bg-gradient-to-br from-gray-900 via-gray-800 to-black text-white relative overflow-hidden", children: [_jsxs("div", { className: "absolute inset-0 opacity-10", children: [_jsx("div", { className: "absolute top-0 left-0 w-96 h-96 bg-yellow-500 rounded-full blur-3xl" }), _jsx("div", { className: "absolute bottom-0 right-0 w-96 h-96 bg-blue-500 rounded-full blur-3xl" })] }), _jsx("div", { className: "container mx-auto px-6 max-w-4xl relative z-10", children: _jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6 }, className: "text-center space-y-8", children: [_jsxs("div", { className: "inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-xs font-bold uppercase tracking-widest", children: [_jsx(Mail, { className: "w-3 h-3" }), layoutConfig?.sections?.marketing?.newsletterBadge || 'Stay Connected'] }), _jsx("h2", { className: "text-4xl md:text-5xl font-serif", children: layoutConfig?.sections?.marketing?.newsletterTitle || 'Join Our Newsletter' }), _jsx("p", { className: "text-xl text-gray-300 max-w-2xl mx-auto font-light", children: layoutConfig?.sections?.marketing?.newsletterSubtitle || 'Get weekly insights, exclusive content, and early access to new courses delivered straight to your inbox.' }), _jsxs("form", { onSubmit: handleSubscribe, className: "flex flex-col sm:flex-row gap-4 max-w-lg mx-auto", children: [_jsx("input", { type: "email", value: email, onChange: (e) => setEmail(e.target.value), placeholder: layoutConfig?.sections?.marketing?.newsletterPlaceholder || 'Enter your email', required: true, className: "flex-1 px-6 py-4 rounded-full bg-white/10 backdrop-blur-md border border-white/20 text-white placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-yellow-500 focus:border-transparent" }), _jsxs(Button, { type: "submit", size: "lg", className: "h-14 px-8 rounded-full bg-yellow-500 text-black hover:bg-yellow-400 font-bold text-lg transition-all transform hover:-translate-y-1 hover:shadow-xl", children: [layoutConfig?.sections?.marketing?.newsletterButton || 'Subscribe', _jsx(ArrowRight, { className: "ml-2 h-5 w-5" })] })] }), _jsx("p", { className: "text-sm text-gray-400", children: "We respect your privacy. Unsubscribe at any time." })] }) })] }), _jsx("section", { className: "py-32 bg-white", children: _jsxs("div", { className: "container mx-auto px-6 max-w-4xl", children: [_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6 }, className: "text-center mb-16", children: [_jsx("span", { className: "text-gray-400 font-bold tracking-widest uppercase text-xs mb-4 block", children: "Support" }), _jsx("h2", { className: "text-4xl md:text-5xl font-serif text-gray-900 mb-4", children: "Frequently Asked Questions" }), _jsx("p", { className: "text-lg text-gray-600 max-w-2xl mx-auto", children: "Everything you need to know about our courses and membership." })] }), _jsx("div", { className: "space-y-4", children: faqItems.map((faq, index) => (_jsxs(motion.div, { initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.4, delay: index * 0.1 }, className: "border border-gray-200 rounded-lg overflow-hidden bg-white hover:shadow-lg transition-shadow", children: [_jsxs("button", { onClick: () => toggleFaq(index), className: "w-full px-6 py-5 flex items-center justify-between text-left hover:bg-gray-50 transition-colors", children: [_jsx("span", { className: "text-lg font-semibold text-gray-900 pr-8", children: faq.question }), _jsx(ChevronDown, { className: `w-5 h-5 text-gray-500 transition-transform shrink-0 ${openFaqIndex === index ? 'transform rotate-180' : ''}` })] }), openFaqIndex === index && (_jsx(motion.div, { initial: { opacity: 0, height: 0 }, animate: { opacity: 1, height: 'auto' }, exit: { opacity: 0, height: 0 }, transition: { duration: 0.3 }, className: "px-6 pb-5", children: _jsx("p", { className: "text-gray-600 leading-relaxed", children: faq.answer }) }))] }, index))) })] }) })] }));
|
|
115
115
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { StoreLayoutType } from '../lib/store-types';
|
|
1
|
+
import { StoreConfig, StoreLayoutType } from '../lib/store-types';
|
|
2
2
|
interface LayoutPreviewProps {
|
|
3
3
|
layout: StoreLayoutType | string;
|
|
4
4
|
className?: string;
|
|
5
5
|
initialRoute?: string;
|
|
6
6
|
onRouteChange?: (route: string) => void;
|
|
7
|
+
config?: StoreConfig | null;
|
|
7
8
|
}
|
|
8
9
|
export declare function LayoutPreview(props: LayoutPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutPreview.d.ts","sourceRoot":"","sources":["../../src/preview/LayoutPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"LayoutPreview.d.ts","sourceRoot":"","sources":["../../src/preview/LayoutPreview.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASjE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AA2LD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,2CAEtD"}
|
|
@@ -17,11 +17,11 @@ import { PreviewRouter } from './PreviewRouter';
|
|
|
17
17
|
* and demonstrates that layouts are self-sustaining with embedded data.
|
|
18
18
|
*/
|
|
19
19
|
// Inner component that uses Next.js router if available
|
|
20
|
-
function LayoutPreviewWithRouter({ layout, className, initialRoute, onRouteChange }) {
|
|
20
|
+
function LayoutPreviewWithRouter({ layout, className, initialRoute, onRouteChange, config }) {
|
|
21
21
|
const [currentRoute, setCurrentRoute] = useState(initialRoute || '/');
|
|
22
22
|
const [isClient, setIsClient] = useState(false);
|
|
23
23
|
// Get preview data for the specified layout
|
|
24
|
-
const previewData = getPreviewDataByLayout(layout);
|
|
24
|
+
const previewData = config || getPreviewDataByLayout(layout);
|
|
25
25
|
// Helper function to normalize and decode route from URL
|
|
26
26
|
const getRouteFromUrl = useCallback(() => {
|
|
27
27
|
if (typeof window === 'undefined')
|
|
@@ -8,7 +8,7 @@ ElectronicsCategoriesPage, ElectronicsPageWrapper,
|
|
|
8
8
|
// Motivational speaker components
|
|
9
9
|
ServiceDetailPage, SubscriptionPage, MotivationalPageWrapper,
|
|
10
10
|
// Food layout
|
|
11
|
-
FoodProductsPage, FoodProductDetailPage, FoodCategoryPage, FoodCategoriesPage,
|
|
11
|
+
FoodProductsPage, FoodProductDetailPage, FoodCategoryPage, FoodCategoriesPage, FoodMenuPage, FoodAboutPage, FoodContactPage,
|
|
12
12
|
// Food-modern layout
|
|
13
13
|
FoodModernProductsPage, FoodModernProductDetailPage, FoodModernCategoryPage, FoodModernCategoriesPage, FoodModernMenuPage, FoodModernAboutPage, FoodModernContactPage,
|
|
14
14
|
// Clothing layout
|