storefront-layouts 1.0.9 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -1
  2. package/dist/components/shipping/ProductDeliveryInfoSection.js +10 -3
  3. package/dist/components/ui/address-selector.d.ts.map +1 -1
  4. package/dist/components/ui/address-selector.js +4 -3
  5. package/dist/components/ui/button.js +1 -1
  6. package/dist/components/ui/checkout-button.d.ts.map +1 -1
  7. package/dist/components/ui/checkout-button.js +2 -1
  8. package/dist/components/ui/product-card.d.ts.map +1 -1
  9. package/dist/components/ui/product-card.js +15 -4
  10. package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -1
  11. package/dist/components/ui/route-skeleton-loader.js +6 -2
  12. package/dist/components/ui/sheet.d.ts.map +1 -1
  13. package/dist/components/ui/sheet.js +2 -2
  14. package/dist/components/ui/skeletons/checkout-skeleton.js +1 -1
  15. package/dist/editor/blocks/defaults/clothing-minimal-home.js +1 -1
  16. package/dist/editor/blocks/migrate-clothing-minimal.js +1 -1
  17. package/dist/hooks/use-pdp-variation.d.ts +57 -0
  18. package/dist/hooks/use-pdp-variation.d.ts.map +1 -0
  19. package/dist/hooks/use-pdp-variation.js +69 -0
  20. package/dist/hooks/use-product-by-slug.d.ts.map +1 -1
  21. package/dist/hooks/use-product-by-slug.js +0 -5
  22. package/dist/hooks/use-product-variation-selection.js +1 -1
  23. package/dist/hooks/use-shipping-quote.d.ts +1 -0
  24. package/dist/hooks/use-shipping-quote.d.ts.map +1 -1
  25. package/dist/hooks/use-shipping-quote.js +3 -0
  26. package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -1
  27. package/dist/layouts/booking/pages/ProductDetailPage.js +130 -223
  28. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -1
  29. package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +130 -223
  30. package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
  31. package/dist/layouts/clothing/components/ClothingHomePage.js +40 -2
  32. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -1
  33. package/dist/layouts/clothing/pages/ProductDetailPage.js +127 -209
  34. package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -1
  35. package/dist/layouts/clothing/pages/ProductsPage.js +2 -5
  36. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
  37. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +5 -3
  38. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts.map +1 -1
  39. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +13 -4
  40. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -1
  41. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +130 -223
  42. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -1
  43. package/dist/layouts/clothing-minimal/pages/ProductsPage.js +2 -5
  44. package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +1 -1
  45. package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -1
  46. package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +10 -9
  47. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -1
  48. package/dist/layouts/electronics/pages/ProductDetailPage.js +130 -223
  49. package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -1
  50. package/dist/layouts/electronics/pages/ProductsPage.js +2 -5
  51. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +1 -1
  52. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
  53. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +4 -5
  54. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -1
  55. package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +130 -223
  56. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -1
  57. package/dist/layouts/electronics-grid/pages/ProductsPage.js +2 -5
  58. package/dist/layouts/food/pages/MenuPage.js +1 -1
  59. package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -1
  60. package/dist/layouts/food/pages/ProductDetailPage.js +37 -140
  61. package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -1
  62. package/dist/layouts/food/pages/ProductsPage.js +2 -5
  63. package/dist/layouts/food-modern/pages/MenuPage.js +1 -1
  64. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -1
  65. package/dist/layouts/food-modern/pages/ProductDetailPage.js +130 -223
  66. package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -1
  67. package/dist/layouts/food-modern/pages/ProductsPage.js +2 -5
  68. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -1
  69. package/dist/layouts/motivational-speaker/pages/ProductsPage.js +2 -5
  70. package/dist/layouts/shared/components/PdpColorSwatch.d.ts +11 -0
  71. package/dist/layouts/shared/components/PdpColorSwatch.d.ts.map +1 -0
  72. package/dist/layouts/shared/components/PdpColorSwatch.js +29 -0
  73. package/dist/layouts/shared/components/PdpVariationSelectors.d.ts +13 -0
  74. package/dist/layouts/shared/components/PdpVariationSelectors.d.ts.map +1 -0
  75. package/dist/layouts/shared/components/PdpVariationSelectors.js +65 -0
  76. package/dist/layouts/shared/components/StoreCartSheet.d.ts +8 -0
  77. package/dist/layouts/shared/components/StoreCartSheet.d.ts.map +1 -0
  78. package/dist/layouts/shared/components/StoreCartSheet.js +16 -0
  79. package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -1
  80. package/dist/layouts/shared/components/StoreHeader.js +13 -12
  81. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts.map +1 -1
  82. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +5 -7
  83. package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -1
  84. package/dist/layouts/shared/pages/CartPage.js +6 -5
  85. package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -1
  86. package/dist/layouts/shared/pages/CheckoutPage.js +209 -107
  87. package/dist/layouts/shared/product-category-filter-chip.d.ts +2 -0
  88. package/dist/layouts/shared/product-category-filter-chip.d.ts.map +1 -0
  89. package/dist/layouts/shared/product-category-filter-chip.js +6 -0
  90. package/dist/lib/pdp-cart-actions.d.ts +5 -0
  91. package/dist/lib/pdp-cart-actions.d.ts.map +1 -0
  92. package/dist/lib/pdp-cart-actions.js +19 -0
  93. package/dist/lib/product-variation-utils.d.ts +17 -0
  94. package/dist/lib/product-variation-utils.d.ts.map +1 -1
  95. package/dist/lib/product-variation-utils.js +193 -14
  96. package/dist/lib/services/checkout.service.d.ts +11 -0
  97. package/dist/lib/services/checkout.service.d.ts.map +1 -1
  98. package/dist/lib/services/shipping.service.d.ts +3 -0
  99. package/dist/lib/services/shipping.service.d.ts.map +1 -1
  100. package/dist/lib/store-config-utils.d.ts.map +1 -1
  101. package/dist/lib/store-config-utils.js +104 -11
  102. package/dist/lib/store-context.d.ts.map +1 -1
  103. package/dist/lib/store-context.js +23 -8
  104. package/dist/lib/utils/asset-helpers.d.ts +2 -0
  105. package/dist/lib/utils/asset-helpers.d.ts.map +1 -1
  106. package/dist/lib/utils/asset-helpers.js +24 -0
  107. package/dist/styles/index.css +143 -45
  108. package/package.json +8 -2
@@ -9,7 +9,7 @@ import { ArrowUpRight, Plus } from 'lucide-react';
9
9
  import Link from 'next/link';
10
10
  import { formatCurrency, filterActiveProducts } from '../../../lib/utils';
11
11
  import { countProductsInCategoryTree, getCategoriesForDisplay, } from '../../../lib/utils/category-tree';
12
- import { getLayoutText, getBannerImage, getTextContent } from '../../../lib/utils/asset-helpers';
12
+ import { getLayoutText, getBannerImage, resolveClothingMinimalHeroBadge } from '../../../lib/utils/asset-helpers';
13
13
  import { PromoBanner } from '../../shared/components/PromoBanner';
14
14
  import { DynamicIcon } from '../../../components/ui/dynamic-icon';
15
15
  import { SafeRichHtml } from '../../../components/rich-text/SafeRichHtml';
@@ -45,11 +45,13 @@ export function ClothingHomePageMinimal({ storeConfig: initialConfig }) {
45
45
  { id: 'p4', name: 'Linen Jacket', price: 180, currency: 'USD', images: ['https://images.unsplash.com/photo-1591047139829-d91aecb6caea?q=80&w=800'], slug: 'linen-jacket' }
46
46
  ] : []));
47
47
  const { addToast } = useToast();
48
+ const heroBadge = resolveClothingMinimalHeroBadge(storeConfig) ??
49
+ (isPreview ? 'New Collection 2024' : null);
48
50
  const handleAddToCart = (product) => {
49
51
  addToCart(product);
50
52
  addToast(`${product.name} added to cart`, 'success');
51
53
  };
52
- return (_jsxs("div", { className: "min-h-screen bg-white text-black font-sans selection:bg-black selection:text-white", children: [layoutConfig?.sections?.hero?.show !== false && (_jsx("section", { "data-section": "hero", className: "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(SafeRichHtml, { as: "span", className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500 block [&_p]:m-0", value: layoutConfig?.sections?.hero?.badge || getTextContent(storeConfig, 'hero_badge', 'New Collection 2024'), fallbackPlain: "New Collection 2024" }), _jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.hero?.title || getLayoutText(storeConfig, 'hero.title', 'Simplicity is the ultimate sophistication.'), fallbackPlain: "Simplicity is the ultimate sophistication." }) }), _jsx("div", { className: "text-gray-600 text-lg leading-relaxed [&_p]:mb-3 [&_p:last-child]:mb-0", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.hero?.subtitle ||
54
+ return (_jsxs("div", { className: "min-h-screen bg-white text-black font-sans selection:bg-black selection:text-white", children: [layoutConfig?.sections?.hero?.show !== false && (_jsx("section", { "data-section": "hero", className: "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: [heroBadge ? (_jsx(SafeRichHtml, { as: "span", className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500 block [&_p]:m-0", value: heroBadge, fallbackPlain: "" })) : null, _jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.hero?.title || getLayoutText(storeConfig, 'hero.title', 'Simplicity is the ultimate sophistication.'), fallbackPlain: "Simplicity is the ultimate sophistication." }) }), _jsx("div", { className: "text-gray-600 text-lg leading-relaxed [&_p]:mb-3 [&_p:last-child]:mb-0", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.hero?.subtitle ||
53
55
  getLayoutText(storeConfig, 'hero.subtitle', storeConfig.description
54
56
  ? `${storeConfig.description} Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.`
55
57
  : 'Discover our latest arrivals, crafted for the modern individual who values quality and timeless design.'), fallbackPlain: "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: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.hero?.primaryCTA || getLayoutText(storeConfig, 'common.shopNow', 'Shop Collection'), fallbackPlain: "Shop Collection", className: "[&_p]:m-0" }) }) }) })] }) }), _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" })] })] })] }) })), layoutConfig?.sections?.features?.show !== false && (_jsx("section", { "data-section": "features", className: "py-12 border-b border-gray-100 bg-white", children: _jsx("div", { className: "container mx-auto px-4 md:px-8", children: _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8", children: (layoutConfig?.sections?.features?.items || [
@@ -62,7 +64,7 @@ export function ClothingHomePageMinimal({ storeConfig: initialConfig }) {
62
64
  }) })] }) })), layoutConfig?.sections?.featuredProducts?.show !== false && (_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("div", { className: "text-gray-500 [&_p]:mb-2 [&_p:last-child]:mb-0", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.featuredProducts?.subtitle || 'Timeless pieces designed to build the foundation of your wardrobe.', fallbackPlain: "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) => {
63
65
  e.preventDefault();
64
66
  handleAddToCart(product);
65
- }, 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) => {
67
+ }, 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: "Add to cart" }) }), _jsx("button", { onClick: (e) => {
66
68
  e.preventDefault();
67
69
  handleAddToCart(product);
68
70
  }, 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 != null && product.compareAtPrice > product.price && (_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))) })] }) })), layoutConfig?.sections?.about?.show !== false && (_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("div", { className: "text-gray-600 leading-relaxed max-w-md [&_p]:mb-3 [&_p:last-child]:mb-0", children: _jsx(SafeRichHtml, { value: layoutConfig?.sections?.about?.description ||
@@ -1 +1 @@
1
- {"version":3,"file":"clothing-minimal-block-render.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/components/clothing-minimal-block-render.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE1E,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAOnG,wBAAgB,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI7E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEvF;AAOD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA8BF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,EAAE,sBAAsB,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,cAAc,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC,qBA+IF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBAsC7F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBA+BrG;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBAyBlG;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD,qBA8HF;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAwBP"}
1
+ {"version":3,"file":"clothing-minimal-block-render.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/components/clothing-minimal-block-render.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE1E,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAQnG,wBAAgB,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI7E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAEvF;AAOD,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA8BF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,GAAG,EAAE,sBAAsB,GAAG;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,cAAc,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,gBAAgB,CAAC,EAAE,aAAa,CAAC;CAClC,qBAuJF;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBAsC7F;AAED,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBA+BrG;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,sBAAsB,qBAyBlG;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,GAAG,EAAE,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD,qBA8HF;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,CAwBP"}
@@ -6,7 +6,8 @@ import { ImageWithFallback } from '../../../components/ui/image-with-fallback';
6
6
  import { Plus } from 'lucide-react';
7
7
  import { DynamicIcon } from '../../../components/ui/dynamic-icon';
8
8
  import { encodePayazaFieldKey, payazaInlineBindingProps, payazaGroupBindingProps, payazaIconBindingProps } from '../../../preview/canvas/field-key';
9
- import { richFieldHtmlForRender } from '../../../lib/rich-html';
9
+ import { richFieldHasContent, richFieldHtmlForRender } from '../../../lib/rich-html';
10
+ import { resolveClothingMinimalHeroBadge } from '../../../lib/utils/asset-helpers';
10
11
  import { formatCurrency } from '../../../lib/utils';
11
12
  import { readItemIconName } from '../../../lib/compact-array-items';
12
13
  import { getPayazaBlockDefinition } from '../../../editor/blocks/registry';
@@ -66,9 +67,17 @@ export function renderHeroBlocks(section, ctx) {
66
67
  return (_jsx("section", { "data-section": "hero", "data-payaza-section-key": "hero", "data-payaza-page": "home", style: (ctx.heroSectionStyle || {}), className: "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", ...payazaGroupBindingProps(ctx.isPreview ?? false, 'hero', ['blocks', String(leftIdx)]), style: {
67
68
  ...blkAttr(left ?? {}).payazaStyle,
68
69
  ...(left && blkAttr(left).show === false ? { display: 'none' } : {}),
69
- }, children: _jsxs("div", { className: "space-y-6 md:space-y-8 max-w-lg animate-fade-in-up", children: [badgeB ? (_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500", dangerouslySetInnerHTML: {
70
- __html: richFieldHtmlForRender(blkAttr(badgeB).text, ctx.getTextContent(ctx.storeConfig, 'hero_badge', '')),
71
- }, ...pbRich(ctx, 'hero', ['blocks', 0, 'innerBlocks', li(badgeB), 'attributes', 'text'], 'payaza/badge', 'text') })) : null, headingB ? (_jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", dangerouslySetInnerHTML: {
70
+ }, children: _jsxs("div", { className: "space-y-6 md:space-y-8 max-w-lg animate-fade-in-up", children: [badgeB && (() => {
71
+ const blockText = blkAttr(badgeB).text;
72
+ const badgeValue = (richFieldHasContent(blockText) ? blockText : null) ??
73
+ resolveClothingMinimalHeroBadge(ctx.storeConfig) ??
74
+ (ctx.isPreview ? blkAttr(badgeB).text || 'New Collection 2024' : null);
75
+ if (!badgeValue || !richFieldHasContent(badgeValue))
76
+ return null;
77
+ return (_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.2em] text-gray-500", dangerouslySetInnerHTML: {
78
+ __html: richFieldHtmlForRender(badgeValue, ''),
79
+ }, ...pbRich(ctx, 'hero', ['blocks', 0, 'innerBlocks', li(badgeB), 'attributes', 'text'], 'payaza/badge', 'text') }));
80
+ })(), headingB ? (_jsx("h1", { className: "text-4xl md:text-7xl font-light tracking-tight leading-[1.1]", dangerouslySetInnerHTML: {
72
81
  __html: richFieldHtmlForRender(blkAttr(headingB).content, ctx.getLayoutText(ctx.storeConfig, 'hero.title', 'Simplicity is the ultimate sophistication.')),
73
82
  }, ...pbRich(ctx, 'hero', ['blocks', 0, 'innerBlocks', li(headingB), 'attributes', 'content'], 'payaza/heading', 'content') })) : null, parB ? (_jsx("p", { className: "text-gray-600 text-lg leading-relaxed", dangerouslySetInnerHTML: {
74
83
  __html: richFieldHtmlForRender(blkAttr(parB).content, ctx.getLayoutText(ctx.storeConfig, 'hero.subtitle', ctx.storeConfig.description ||
@@ -1 +1 @@
1
- {"version":3,"file":"ProductDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/pages/ProductDetailPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAA8C,MAAM,0BAA0B,CAAC;AA6BnG,UAAU,sBAAsB;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAsHD,wBAAgB,iBAAiB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,sBAAsB,+BAojCpG"}
1
+ {"version":3,"file":"ProductDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/clothing-minimal/pages/ProductDetailPage.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAA8C,MAAM,0BAA0B,CAAC;AAiCnG,UAAU,sBAAsB;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAsHD,wBAAgB,iBAAiB,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,sBAAsB,+BA05BpG"}