storefront-layouts 1.0.3 → 1.0.4

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 (509) hide show
  1. package/dist/components/auth/LoginForm.js +2 -2
  2. package/dist/components/auth/LoginSheet.js +2 -2
  3. package/dist/components/auth/login-form-core.js +3 -3
  4. package/dist/components/auth/login-sheet-header.js +3 -3
  5. package/dist/components/auth/login-sheet-registry.js +2 -2
  6. package/dist/components/auth/login-sheet-themes/booking-agenda.theme.js +1 -1
  7. package/dist/components/auth/login-sheet-themes/booking.theme.js +1 -1
  8. package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.js +1 -1
  9. package/dist/components/auth/login-sheet-themes/clothing.theme.js +1 -1
  10. package/dist/components/auth/login-sheet-themes/electronics-grid.theme.js +1 -1
  11. package/dist/components/auth/login-sheet-themes/electronics.theme.js +1 -1
  12. package/dist/components/auth/login-sheet-themes/food-modern.theme.js +1 -1
  13. package/dist/components/auth/login-sheet-themes/food.theme.js +1 -1
  14. package/dist/components/auth/login-sheet-themes/index.js +9 -9
  15. package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.js +1 -1
  16. package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts +2 -2
  17. package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts.map +1 -1
  18. package/dist/components/auth/login-sheet-themes/theme-input-baselines.js +2 -2
  19. package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -1
  20. package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +6 -6
  21. package/dist/components/auth/use-login-submit.js +3 -3
  22. package/dist/components/cart/InventoryHoldCountdown.js +2 -2
  23. package/dist/components/categories/category-masonry-grid.js +3 -3
  24. package/dist/components/checkout/CheckoutFeeLines.js +1 -1
  25. package/dist/components/checkout/ShippingOptionsPanel.js +3 -3
  26. package/dist/components/learning/CertificateTemplates.js +2 -2
  27. package/dist/components/learning/CertificateViewer.js +3 -3
  28. package/dist/components/learning/MentorshipProgress.d.ts.map +1 -1
  29. package/dist/components/learning/MentorshipProgress.js +4 -4
  30. package/dist/components/product/ProductVariationSelectors.js +1 -1
  31. package/dist/components/rich-text/CategoryDescription.js +2 -2
  32. package/dist/components/rich-text/ProductDescription.js +2 -2
  33. package/dist/components/rich-text/RichTextExcerpt.js +1 -1
  34. package/dist/components/rich-text/SafeRichHtml.d.ts +8 -11
  35. package/dist/components/rich-text/SafeRichHtml.d.ts.map +1 -1
  36. package/dist/components/rich-text/SafeRichHtml.js +3 -5
  37. package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -1
  38. package/dist/components/shipping/ProductDeliveryInfoSection.js +7 -4
  39. package/dist/components/shipping/ShippingQuoteAddressForm.js +3 -3
  40. package/dist/components/ui/alert-modal.js +2 -2
  41. package/dist/components/ui/avatar-image.js +1 -1
  42. package/dist/components/ui/badge.js +1 -1
  43. package/dist/components/ui/breadcrumbs.js +1 -1
  44. package/dist/components/ui/button.d.ts +1 -1
  45. package/dist/components/ui/button.js +1 -1
  46. package/dist/components/ui/card.js +1 -1
  47. package/dist/components/ui/category-tree.js +2 -2
  48. package/dist/components/ui/checkout-button.d.ts.map +1 -1
  49. package/dist/components/ui/checkout-button.js +11 -283
  50. package/dist/components/ui/guest-checkout-modal.js +3 -3
  51. package/dist/components/ui/image-skeleton.js +2 -2
  52. package/dist/components/ui/image-with-fallback.d.ts +3 -1
  53. package/dist/components/ui/image-with-fallback.d.ts.map +1 -1
  54. package/dist/components/ui/image-with-fallback.js +55 -139
  55. package/dist/components/ui/input.js +1 -1
  56. package/dist/components/ui/limited-time-offer-badge.js +2 -2
  57. package/dist/components/ui/loading-skeleton-wrapper.js +1 -1
  58. package/dist/components/ui/modal.js +2 -2
  59. package/dist/components/ui/otp-input.js +1 -1
  60. package/dist/components/ui/out-of-stock-overlay.js +1 -1
  61. package/dist/components/ui/page-animate-wrapper.js +2 -2
  62. package/dist/components/ui/page-content-loader.js +2 -2
  63. package/dist/components/ui/page-loader.js +1 -1
  64. package/dist/components/ui/product-card.d.ts.map +1 -1
  65. package/dist/components/ui/product-card.js +17 -17
  66. package/dist/components/ui/product-rating.js +1 -1
  67. package/dist/components/ui/product-stock-badge.js +2 -2
  68. package/dist/components/ui/review-form.js +2 -2
  69. package/dist/components/ui/route-skeleton-loader.js +6 -6
  70. package/dist/components/ui/sheet.d.ts +2 -1
  71. package/dist/components/ui/sheet.d.ts.map +1 -1
  72. package/dist/components/ui/sheet.js +4 -4
  73. package/dist/components/ui/skeleton.js +1 -1
  74. package/dist/components/ui/skeletons/index.js +5 -5
  75. package/dist/components/ui/skeletons/product-grid-skeleton.js +1 -1
  76. package/dist/components/ui/store-logos.d.ts.map +1 -1
  77. package/dist/components/ui/store-logos.js +4 -4
  78. package/dist/components/ui/toast.js +1 -1
  79. package/dist/components/ui/video-player.js +2 -2
  80. package/dist/editor/alignment-schemas/booking.js +1 -1
  81. package/dist/editor/alignment-schemas/clothing-minimal.js +1 -1
  82. package/dist/editor/alignment-schemas/index.js +20 -20
  83. package/dist/editor/alignment-schemas/lazy-loader.js +1 -1
  84. package/dist/editor/alignment-schemas/metadata.js +1 -1
  85. package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.js +3 -3
  86. package/dist/editor/blocks/index.js +3 -3
  87. package/dist/editor/blocks/migrate-clothing-minimal.js +3 -3
  88. package/dist/editor/blocks/nav-outline-utils.js +2 -2
  89. package/dist/editor/blocks/registry.js +1 -1
  90. package/dist/editor/document/adapter.js +4 -4
  91. package/dist/editor/document/block-tree.js +1 -1
  92. package/dist/editor/document/index.js +6 -6
  93. package/dist/editor/document/validate.js +1 -1
  94. package/dist/editor/index.js +12 -12
  95. package/dist/editor/layout-content-loader.js +3 -3
  96. package/dist/editor/payaza-form/ArrayItemManager.js +2 -2
  97. package/dist/editor/payaza-form/EditorCanvasPreview.js +5 -5
  98. package/dist/editor/payaza-form/FieldRenderer.js +17 -17
  99. package/dist/editor/payaza-form/IframePreviewMessageBridge.js +3 -3
  100. package/dist/editor/payaza-form/PayazaFormEditor.js +31 -31
  101. package/dist/editor/payaza-form/PayazaFormEditorFullPage.js +2 -2
  102. package/dist/editor/payaza-form/SliderArrayEditor.js +3 -3
  103. package/dist/editor/payaza-form/components/ArrayField.js +1 -1
  104. package/dist/editor/payaza-form/components/BlockStylesInspector.js +1 -1
  105. package/dist/editor/payaza-form/components/BlocksField.js +9 -9
  106. package/dist/editor/payaza-form/components/ButtonField.js +3 -3
  107. package/dist/editor/payaza-form/components/CanvasGranularInspector.js +11 -11
  108. package/dist/editor/payaza-form/components/IconField.js +2 -2
  109. package/dist/editor/payaza-form/components/ImageField.js +1 -1
  110. package/dist/editor/payaza-form/components/NumberField.js +1 -1
  111. package/dist/editor/payaza-form/components/RichTextField.js +2 -2
  112. package/dist/editor/payaza-form/components/SectionField.js +1 -1
  113. package/dist/editor/payaza-form/components/SectionSchemaInspector.js +3 -3
  114. package/dist/editor/payaza-form/components/StarRatingField.js +2 -2
  115. package/dist/editor/payaza-form/components/TextField.js +1 -1
  116. package/dist/editor/payaza-form/data-merger.js +6 -6
  117. package/dist/editor/payaza-form/data-transformer.js +3 -3
  118. package/dist/editor/payaza-form/engine.js +1 -1
  119. package/dist/editor/payaza-form/examples/custom-widgets.example.js +1 -1
  120. package/dist/editor/payaza-form/index.js +8 -8
  121. package/dist/editor/payaza-form/layout-loader.js +2 -2
  122. package/dist/editor/payaza-form/preview-message-handler.js +3 -3
  123. package/dist/editor/payaza-form/schema-bridge.js +3 -3
  124. package/dist/editor/payaza-form/widget-registry.js +1 -1
  125. package/dist/editor/shared/BlockOutlineTree.js +2 -2
  126. package/dist/editor/shared/EditorHeader.js +2 -2
  127. package/dist/editor/shared/EditorNavigator.js +2 -2
  128. package/dist/editor/shared/IframePreview.js +6 -6
  129. package/dist/editor/shared/InlineCanvasPreview.js +8 -8
  130. package/dist/editor/shared/LayoutRenderer.js +1 -1
  131. package/dist/editor/shared/ResizableSidebar.js +1 -1
  132. package/dist/editor/shared/index.js +7 -7
  133. package/dist/hooks/use-analytics.js +3 -3
  134. package/dist/hooks/use-api.js +1 -1
  135. package/dist/hooks/use-cart-api.d.ts.map +1 -1
  136. package/dist/hooks/use-cart-api.js +8 -3
  137. package/dist/hooks/use-catalog-loader.js +3 -3
  138. package/dist/hooks/use-catalog-price-range.d.ts +2 -5
  139. package/dist/hooks/use-catalog-price-range.d.ts.map +1 -1
  140. package/dist/hooks/use-catalog-price-range.js +20 -5
  141. package/dist/hooks/use-category-products.d.ts +8 -0
  142. package/dist/hooks/use-category-products.d.ts.map +1 -0
  143. package/dist/hooks/use-category-products.js +43 -0
  144. package/dist/hooks/use-checkout-fees.d.ts +3 -4
  145. package/dist/hooks/use-checkout-fees.d.ts.map +1 -1
  146. package/dist/hooks/use-checkout-fees.js +1 -1
  147. package/dist/hooks/use-content-ready.js +1 -1
  148. package/dist/hooks/use-featured-products.d.ts +3 -0
  149. package/dist/hooks/use-featured-products.d.ts.map +1 -0
  150. package/dist/hooks/use-featured-products.js +25 -0
  151. package/dist/hooks/use-multi-store-checkout-fees.d.ts +3 -4
  152. package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -1
  153. package/dist/hooks/use-multi-store-checkout-fees.js +1 -1
  154. package/dist/hooks/use-navigation-loading.js +1 -1
  155. package/dist/hooks/use-payaza-checkout.d.ts +1 -1
  156. package/dist/hooks/use-payaza-checkout.d.ts.map +1 -1
  157. package/dist/hooks/use-payaza-checkout.js +9 -3
  158. package/dist/hooks/use-product-brands.d.ts +5 -0
  159. package/dist/hooks/use-product-brands.d.ts.map +1 -0
  160. package/dist/hooks/use-product-brands.js +25 -0
  161. package/dist/hooks/use-product-by-slug.d.ts +7 -0
  162. package/dist/hooks/use-product-by-slug.d.ts.map +1 -0
  163. package/dist/hooks/use-product-by-slug.js +38 -0
  164. package/dist/hooks/use-product-reviews.d.ts +15 -0
  165. package/dist/hooks/use-product-reviews.d.ts.map +1 -0
  166. package/dist/hooks/use-product-reviews.js +75 -0
  167. package/dist/hooks/use-product-variation-selection.d.ts +2 -8
  168. package/dist/hooks/use-product-variation-selection.d.ts.map +1 -1
  169. package/dist/hooks/use-product-variation-selection.js +1 -1
  170. package/dist/hooks/use-products-api.js +3 -3
  171. package/dist/hooks/use-shipping-quote.js +2 -2
  172. package/dist/hooks/use-store-api.js +4 -4
  173. package/dist/hooks/usePreviewSlideSync.js +1 -1
  174. package/dist/index.d.ts +62 -74
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js +141 -153
  177. package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -1
  178. package/dist/layouts/booking/components/BookingHomePage.js +68 -74
  179. package/dist/layouts/booking/components/BookingMultilineHeading.js +1 -1
  180. package/dist/layouts/booking/components/BookingTestimonialCard.js +2 -2
  181. package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +1 -1
  182. package/dist/layouts/booking/components/booking-footer-defaults.js +2 -2
  183. package/dist/layouts/booking/index.js +8 -8
  184. package/dist/layouts/booking/pages/AboutPage.d.ts +1 -1
  185. package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -1
  186. package/dist/layouts/booking/pages/AboutPage.js +39 -60
  187. package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -1
  188. package/dist/layouts/booking/pages/BookPage.js +16 -22
  189. package/dist/layouts/booking/pages/CategoriesPage.js +6 -6
  190. package/dist/layouts/booking/pages/CategoryPage.d.ts +1 -1
  191. package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -1
  192. package/dist/layouts/booking/pages/CategoryPage.js +17 -26
  193. package/dist/layouts/booking/pages/ContactPage.d.ts +1 -1
  194. package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -1
  195. package/dist/layouts/booking/pages/ContactPage.js +5 -12
  196. package/dist/layouts/booking/pages/ProductDetailPage.d.ts +1 -1
  197. package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -1
  198. package/dist/layouts/booking/pages/ProductDetailPage.js +203 -150
  199. package/dist/layouts/booking/pages/ServicesPage.d.ts +1 -1
  200. package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -1
  201. package/dist/layouts/booking/pages/ServicesPage.js +11 -31
  202. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -1
  203. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +21 -30
  204. package/dist/layouts/booking-agenda/index.js +8 -8
  205. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +1 -1
  206. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -1
  207. package/dist/layouts/booking-agenda/pages/AboutPage.js +11 -14
  208. package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -1
  209. package/dist/layouts/booking-agenda/pages/BookPage.js +15 -21
  210. package/dist/layouts/booking-agenda/pages/CategoriesPage.js +5 -5
  211. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +1 -1
  212. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -1
  213. package/dist/layouts/booking-agenda/pages/CategoryPage.js +12 -18
  214. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +1 -1
  215. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -1
  216. package/dist/layouts/booking-agenda/pages/ContactPage.js +8 -13
  217. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +1 -1
  218. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -1
  219. package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +202 -149
  220. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +1 -1
  221. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -1
  222. package/dist/layouts/booking-agenda/pages/ServicesPage.js +8 -23
  223. package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -1
  224. package/dist/layouts/clothing/components/ClothingHomePage.js +199 -136
  225. package/dist/layouts/clothing/index.js +7 -7
  226. package/dist/layouts/clothing/pages/AboutPage.d.ts +1 -1
  227. package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -1
  228. package/dist/layouts/clothing/pages/AboutPage.js +19 -33
  229. package/dist/layouts/clothing/pages/CategoriesPage.js +8 -8
  230. package/dist/layouts/clothing/pages/CategoryPage.d.ts +1 -1
  231. package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -1
  232. package/dist/layouts/clothing/pages/CategoryPage.js +15 -41
  233. package/dist/layouts/clothing/pages/ContactPage.d.ts +1 -1
  234. package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -1
  235. package/dist/layouts/clothing/pages/ContactPage.js +5 -8
  236. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +1 -1
  237. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -1
  238. package/dist/layouts/clothing/pages/ProductDetailPage.js +256 -167
  239. package/dist/layouts/clothing/pages/ProductsPage.d.ts +1 -1
  240. package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -1
  241. package/dist/layouts/clothing/pages/ProductsPage.js +125 -59
  242. package/dist/layouts/clothing/payaza-bindings.js +2 -2
  243. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -1
  244. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +32 -131
  245. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +8 -8
  246. package/dist/layouts/clothing-minimal/index.js +7 -7
  247. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +1 -1
  248. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -1
  249. package/dist/layouts/clothing-minimal/pages/AboutPage.js +37 -61
  250. package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +7 -7
  251. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +1 -1
  252. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -1
  253. package/dist/layouts/clothing-minimal/pages/CategoryPage.js +13 -18
  254. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +1 -1
  255. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -1
  256. package/dist/layouts/clothing-minimal/pages/ContactPage.js +5 -8
  257. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +1 -1
  258. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -1
  259. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +202 -143
  260. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +1 -1
  261. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -1
  262. package/dist/layouts/clothing-minimal/pages/ProductsPage.js +126 -57
  263. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +7 -7
  264. package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +10 -10
  265. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -1
  266. package/dist/layouts/electronics/components/ElectronicsHomePage.js +29 -31
  267. package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +4 -4
  268. package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -1
  269. package/dist/layouts/electronics/components/ElectronicsProductsPage.js +81 -23
  270. package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +2 -2
  271. package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +6 -6
  272. package/dist/layouts/electronics/index.js +18 -18
  273. package/dist/layouts/electronics/pages/AboutPage.d.ts +1 -1
  274. package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -1
  275. package/dist/layouts/electronics/pages/AboutPage.js +11 -14
  276. package/dist/layouts/electronics/pages/CategoriesPage.js +1 -1
  277. package/dist/layouts/electronics/pages/CategoryPage.d.ts +1 -1
  278. package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -1
  279. package/dist/layouts/electronics/pages/CategoryPage.js +14 -20
  280. package/dist/layouts/electronics/pages/ContactPage.d.ts +1 -1
  281. package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -1
  282. package/dist/layouts/electronics/pages/ContactPage.js +8 -13
  283. package/dist/layouts/electronics/pages/HelpCenterPage.js +1 -1
  284. package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +1 -1
  285. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +1 -1
  286. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -1
  287. package/dist/layouts/electronics/pages/ProductDetailPage.js +201 -142
  288. package/dist/layouts/electronics/pages/ProductsPage.d.ts +1 -1
  289. package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -1
  290. package/dist/layouts/electronics/pages/ProductsPage.js +119 -49
  291. package/dist/layouts/electronics/pages/TermsPage.js +1 -1
  292. package/dist/layouts/electronics/pages/TrackOrderPage.js +4 -4
  293. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +10 -10
  294. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -1
  295. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +75 -33
  296. package/dist/layouts/electronics-grid/index.js +14 -14
  297. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +1 -1
  298. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -1
  299. package/dist/layouts/electronics-grid/pages/AboutPage.js +11 -14
  300. package/dist/layouts/electronics-grid/pages/CategoriesPage.js +1 -1
  301. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +1 -1
  302. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -1
  303. package/dist/layouts/electronics-grid/pages/CategoryPage.js +14 -20
  304. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +1 -1
  305. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -1
  306. package/dist/layouts/electronics-grid/pages/ContactPage.js +8 -13
  307. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +6 -6
  308. package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +1 -1
  309. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +1 -1
  310. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +1 -1
  311. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -1
  312. package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +201 -142
  313. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +1 -1
  314. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -1
  315. package/dist/layouts/electronics-grid/pages/ProductsPage.js +121 -52
  316. package/dist/layouts/electronics-grid/pages/TermsPage.js +1 -1
  317. package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +4 -4
  318. package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -1
  319. package/dist/layouts/food/components/FoodHomePage.js +42 -41
  320. package/dist/layouts/food/index.js +8 -8
  321. package/dist/layouts/food/pages/AboutPage.d.ts +1 -1
  322. package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -1
  323. package/dist/layouts/food/pages/AboutPage.js +44 -45
  324. package/dist/layouts/food/pages/CategoriesPage.js +6 -6
  325. package/dist/layouts/food/pages/CategoryPage.d.ts +1 -1
  326. package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -1
  327. package/dist/layouts/food/pages/CategoryPage.js +23 -21
  328. package/dist/layouts/food/pages/ContactPage.d.ts +1 -1
  329. package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -1
  330. package/dist/layouts/food/pages/ContactPage.js +5 -7
  331. package/dist/layouts/food/pages/MenuPage.d.ts +1 -1
  332. package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -1
  333. package/dist/layouts/food/pages/MenuPage.js +81 -42
  334. package/dist/layouts/food/pages/ProductDetailPage.d.ts +1 -1
  335. package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -1
  336. package/dist/layouts/food/pages/ProductDetailPage.js +209 -171
  337. package/dist/layouts/food/pages/ProductsPage.d.ts +1 -1
  338. package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -1
  339. package/dist/layouts/food/pages/ProductsPage.js +130 -45
  340. package/dist/layouts/food-modern/components/FoodHomePageModern.js +10 -10
  341. package/dist/layouts/food-modern/index.js +8 -8
  342. package/dist/layouts/food-modern/pages/AboutPage.d.ts +1 -1
  343. package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -1
  344. package/dist/layouts/food-modern/pages/AboutPage.js +11 -14
  345. package/dist/layouts/food-modern/pages/CategoriesPage.js +5 -5
  346. package/dist/layouts/food-modern/pages/CategoryPage.d.ts +1 -1
  347. package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -1
  348. package/dist/layouts/food-modern/pages/CategoryPage.js +23 -20
  349. package/dist/layouts/food-modern/pages/ContactPage.d.ts +1 -1
  350. package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -1
  351. package/dist/layouts/food-modern/pages/ContactPage.js +5 -7
  352. package/dist/layouts/food-modern/pages/MenuPage.d.ts +1 -1
  353. package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -1
  354. package/dist/layouts/food-modern/pages/MenuPage.js +81 -46
  355. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +1 -1
  356. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -1
  357. package/dist/layouts/food-modern/pages/ProductDetailPage.js +202 -143
  358. package/dist/layouts/food-modern/pages/ProductsPage.d.ts +1 -1
  359. package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -1
  360. package/dist/layouts/food-modern/pages/ProductsPage.js +117 -33
  361. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -1
  362. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +32 -23
  363. package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.js +1 -1
  364. package/dist/layouts/motivational-speaker/index.js +9 -9
  365. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +1 -1
  366. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -1
  367. package/dist/layouts/motivational-speaker/pages/AboutPage.js +6 -9
  368. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +1 -1
  369. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -1
  370. package/dist/layouts/motivational-speaker/pages/CategoryPage.js +18 -22
  371. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +1 -1
  372. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -1
  373. package/dist/layouts/motivational-speaker/pages/ContactPage.js +9 -13
  374. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +1 -1
  375. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -1
  376. package/dist/layouts/motivational-speaker/pages/ProductsPage.js +121 -52
  377. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +1 -1
  378. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -1
  379. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +15 -24
  380. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +1 -1
  381. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -1
  382. package/dist/layouts/motivational-speaker/pages/ServicesPage.js +8 -23
  383. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +7 -7
  384. package/dist/layouts/shared/components/BaseStoreLayout.js +9 -9
  385. package/dist/layouts/shared/components/CartLineQuantityControl.js +1 -1
  386. package/dist/layouts/shared/components/GenericPageWrapper.js +3 -3
  387. package/dist/layouts/shared/components/ProductPriceFilterSection.js +4 -4
  388. package/dist/layouts/shared/components/PromoBanner.d.ts +1 -4
  389. package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -1
  390. package/dist/layouts/shared/components/PromoBanner.js +12 -8
  391. package/dist/layouts/shared/components/StoreFooter.js +10 -10
  392. package/dist/layouts/shared/components/StoreHeader.js +7 -7
  393. package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -1
  394. package/dist/layouts/shared/components/TestimonialCard.js +2 -2
  395. package/dist/layouts/shared/components/headers/BookingAgendaSidebar.js +2 -2
  396. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +11 -11
  397. package/dist/layouts/shared/components/headers/FoodModernHeader.js +7 -7
  398. package/dist/layouts/shared/index.js +22 -22
  399. package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -1
  400. package/dist/layouts/shared/pages/AccountPage.js +101 -27
  401. package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -1
  402. package/dist/layouts/shared/pages/CartPage.js +39 -90
  403. package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -1
  404. package/dist/layouts/shared/pages/CheckoutPage.js +349 -868
  405. package/dist/layouts/shared/pages/CookiePolicyPage.js +1 -1
  406. package/dist/layouts/shared/pages/FeatureDisabledPage.js +1 -1
  407. package/dist/layouts/shared/pages/HelpCenterPage.js +1 -1
  408. package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -1
  409. package/dist/layouts/shared/pages/MaintenancePage.js +2 -3
  410. package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -1
  411. package/dist/layouts/shared/pages/PortfolioPage.js +2 -2
  412. package/dist/layouts/shared/pages/PrivacyPolicyPage.js +1 -1
  413. package/dist/layouts/shared/pages/SizeGuidePage.js +1 -1
  414. package/dist/layouts/shared/pages/StyleGuidePage.js +3 -3
  415. package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -1
  416. package/dist/layouts/shared/pages/TeamPage.js +1 -1
  417. package/dist/layouts/shared/pages/TermsPage.js +1 -1
  418. package/dist/layouts/shared/pages/TrackOrderPage.js +4 -4
  419. package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -1
  420. package/dist/layouts/shared/pages/WishlistPage.js +44 -29
  421. package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -1
  422. package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +80 -35
  423. package/dist/layouts/shared/wrappers/ClothingLayout.js +8 -8
  424. package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +7 -7
  425. package/dist/layouts/shared/wrappers/ElectronicsLayout.js +5 -5
  426. package/dist/layouts/shared/wrappers/FoodModernLayout.js +6 -6
  427. package/dist/layouts/shared/wrappers/MotivationalLayout.js +9 -9
  428. package/dist/layouts/shared/wrappers/StandardLayout.js +8 -8
  429. package/dist/lib/api.d.ts +3 -4
  430. package/dist/lib/api.d.ts.map +1 -1
  431. package/dist/lib/api.js +69 -109
  432. package/dist/lib/auth-context.js +2 -2
  433. package/dist/lib/content-selectors.d.ts +1 -1
  434. package/dist/lib/content-selectors.d.ts.map +1 -1
  435. package/dist/lib/content-selectors.js +8 -0
  436. package/dist/lib/layout-config-hydration.js +2 -2
  437. package/dist/lib/loading-context.d.ts.map +1 -1
  438. package/dist/lib/loading-context.js +11 -21
  439. package/dist/lib/payaza-checkout.d.ts.map +1 -1
  440. package/dist/lib/payaza-checkout.js +2 -4
  441. package/dist/lib/payaza-public-key.d.ts +6 -0
  442. package/dist/lib/payaza-public-key.d.ts.map +1 -0
  443. package/dist/lib/payaza-public-key.js +10 -0
  444. package/dist/lib/rich-html.d.ts +31 -26
  445. package/dist/lib/rich-html.d.ts.map +1 -1
  446. package/dist/lib/rich-html.js +1 -0
  447. package/dist/lib/services/analytics.service.js +1 -1
  448. package/dist/lib/services/auth.service.js +1 -1
  449. package/dist/lib/services/booking.service.js +1 -1
  450. package/dist/lib/services/category.service.js +1 -1
  451. package/dist/lib/services/checkout.service.d.ts +3 -0
  452. package/dist/lib/services/checkout.service.d.ts.map +1 -1
  453. package/dist/lib/services/checkout.service.js +1 -1
  454. package/dist/lib/services/contact.service.js +1 -1
  455. package/dist/lib/services/customer.service.js +1 -1
  456. package/dist/lib/services/fees.service.d.ts +17 -63
  457. package/dist/lib/services/fees.service.d.ts.map +1 -1
  458. package/dist/lib/services/fees.service.js +4 -138
  459. package/dist/lib/services/index.js +13 -13
  460. package/dist/lib/services/location.service.js +1 -1
  461. package/dist/lib/services/order.service.js +1 -1
  462. package/dist/lib/services/payment.service.js +1 -1
  463. package/dist/lib/services/product.service.d.ts +7 -2
  464. package/dist/lib/services/product.service.d.ts.map +1 -1
  465. package/dist/lib/services/product.service.js +13 -1
  466. package/dist/lib/services/promo.service.js +1 -1
  467. package/dist/lib/services/review.service.js +1 -1
  468. package/dist/lib/services/service.service.js +1 -1
  469. package/dist/lib/services/shipping.service.js +1 -1
  470. package/dist/lib/services/store.service.js +1 -1
  471. package/dist/lib/store-config-utils.d.ts +1 -10
  472. package/dist/lib/store-config-utils.d.ts.map +1 -1
  473. package/dist/lib/store-config-utils.js +73 -261
  474. package/dist/lib/store-config.js +1 -1
  475. package/dist/lib/store-context.d.ts +1 -23
  476. package/dist/lib/store-context.d.ts.map +1 -1
  477. package/dist/lib/store-context.js +89 -111
  478. package/dist/lib/store-types.d.ts +9 -91
  479. package/dist/lib/store-types.d.ts.map +1 -1
  480. package/dist/lib/utils/asset-helpers.js +1 -1
  481. package/dist/lib/utils/catalog-price-bounds.d.ts +16 -6
  482. package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -1
  483. package/dist/lib/utils/catalog-price-bounds.js +58 -14
  484. package/dist/lib/utils/category-tree.d.ts +9 -0
  485. package/dist/lib/utils/category-tree.d.ts.map +1 -1
  486. package/dist/lib/utils/category-tree.js +26 -0
  487. package/dist/lib/utils/editor-preview.d.ts +5 -0
  488. package/dist/lib/utils/editor-preview.d.ts.map +1 -1
  489. package/dist/lib/utils/editor-preview.js +17 -3
  490. package/dist/lib/utils/fee-calculations.d.ts +5 -1
  491. package/dist/lib/utils/fee-calculations.d.ts.map +1 -1
  492. package/dist/lib/utils/fee-calculations.js +28 -31
  493. package/dist/lib/utils/index.d.ts +1 -1
  494. package/dist/lib/utils/index.d.ts.map +1 -1
  495. package/dist/lib/utils/index.js +4 -4
  496. package/dist/lib/utils/product-images.js +1 -1
  497. package/dist/lib/utils/product-share.js +1 -1
  498. package/dist/lib/utils/url-helpers.d.ts +6 -0
  499. package/dist/lib/utils/url-helpers.d.ts.map +1 -1
  500. package/dist/lib/utils/url-helpers.js +20 -4
  501. package/dist/preview/LayoutPreview.js +6 -6
  502. package/dist/preview/PreviewRouter.js +4 -4
  503. package/dist/preview/canvas/PreviewCanvasEnhancer.js +8 -8
  504. package/dist/preview/canvas/preview-flush-await.js +1 -1
  505. package/dist/preview/canvas/preview-isolation.js +1 -1
  506. package/dist/preview/canvas/preview-route.js +2 -2
  507. package/dist/preview/index.js +5 -5
  508. package/dist/styles/index.css +190 -149
  509. package/package.json +31 -43
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { RouteSkeletonLoader } from './route-skeleton-loader.js';
3
+ import { RouteSkeletonLoader } from './route-skeleton-loader';
4
4
  /**
5
5
  * Client component wrapper for Next.js loading.tsx files
6
6
  * Uses pathname to determine which skeleton to show
@@ -2,8 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import { X } from 'lucide-react';
5
- import { cn } from '../../lib/utils/index.js';
6
- import { Button } from './button.js';
5
+ import { cn } from '../../lib/utils';
6
+ import { Button } from './button';
7
7
  export function Modal({ isOpen, onClose, title, children, className }) {
8
8
  const overlayRef = React.useRef(null);
9
9
  React.useEffect(() => {
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { cn } from "../../lib/utils/index.js";
3
+ import { cn } from "../../lib/utils";
4
4
  export function OtpInput({ length = 6, value, onChange, disabled = false, className, }) {
5
5
  const inputRefs = React.useRef([]);
6
6
  const handleChange = (index, e) => {
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils/index.js';
3
+ import { cn } from '../../lib/utils';
4
4
  export function OutOfStockOverlay({ className, showBadge = true, badgePosition = 'center' }) {
5
5
  const badgePositions = {
6
6
  'top-left': 'top-4 left-4',
@@ -2,8 +2,8 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { usePathname } from 'next/navigation';
4
4
  import { useEffect } from 'react';
5
- import { cn } from '../../lib/utils/index.js';
6
- import { scrollToTop } from '../../lib/utils/scroll-to-top.util.js';
5
+ import { cn } from '../../lib/utils';
6
+ import { scrollToTop } from '../../lib/utils/scroll-to-top.util';
7
7
  export function PageAnimateWrapper({ children, className }) {
8
8
  const pathname = usePathname();
9
9
  useEffect(() => {
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils/index.js';
4
- import { PageLoader } from './page-loader.js';
3
+ import { cn } from '../../lib/utils';
4
+ import { PageLoader } from './page-loader';
5
5
  /**
6
6
  * PageContentLoader component that displays a spinner loader
7
7
  * with minimum height for proper user feedback during backend operations.
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { cn } from '../../lib/utils/index.js';
3
+ import { cn } from '../../lib/utils';
4
4
  function Spinner({ size = 'md', className, color = 'text-gray-900' }) {
5
5
  const sizeClasses = {
6
6
  sm: 'w-4 h-4',
@@ -1 +1 @@
1
- {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/product-card.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoBjD,UAAU,gBAAgB;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAyQxG"}
1
+ {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/product-card.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoBjD,UAAU,gBAAgB;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CA0QxG"}
@@ -1,24 +1,24 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
- import { Button } from '../../components/ui/button.js';
5
- import { ImageWithFallback } from '../../components/ui/image-with-fallback.js';
6
- import { ProductRating } from '../../components/ui/product-rating.js';
4
+ import { Button } from '../../components/ui/button';
5
+ import { ImageWithFallback } from '../../components/ui/image-with-fallback';
6
+ import { ProductRating } from '../../components/ui/product-rating';
7
7
  import { ShoppingCart, Heart, Eye, Share2 } from 'lucide-react';
8
- import { shareProductLink } from '../../lib/utils/product-share.js';
8
+ import { shareProductLink } from '../../lib/utils/product-share';
9
9
  import Link from 'next/link';
10
- import { cn, formatCurrency } from '../../lib/utils/index.js';
11
- import { resolveProductImageUrls } from '../../lib/utils/product-images.js';
12
- import { useStore } from '../../lib/store-context.js';
13
- import { useToast } from '../../components/ui/toast.js';
14
- import { ButtonLoader } from '../../components/ui/page-loader.js';
15
- import { useLoading } from '../../lib/loading-context.js';
16
- import { OutOfStockOverlay } from '../../components/ui/out-of-stock-overlay.js';
17
- import { LimitedTimeOfferBadge } from '../../components/ui/limited-time-offer-badge.js';
18
- import { isActiveLimitedTimeOffer } from '../../lib/limited-time-offer.js';
19
- import { getProductStockInfo } from '../../lib/inventory-utils.js';
20
- import { richFieldHasContent, richFieldPlainTextForDisplay } from '../../lib/rich-html.js';
21
- import { trackStorefrontEvent } from '../../lib/mixpanel.js';
10
+ import { cn, formatCurrency } from '../../lib/utils';
11
+ import { resolveProductImageUrls } from '../../lib/utils/product-images';
12
+ import { useStore } from '../../lib/store-context';
13
+ import { useToast } from '../../components/ui/toast';
14
+ import { ButtonLoader } from '../../components/ui/page-loader';
15
+ import { useLoading } from '../../lib/loading-context';
16
+ import { OutOfStockOverlay } from '../../components/ui/out-of-stock-overlay';
17
+ import { LimitedTimeOfferBadge } from '../../components/ui/limited-time-offer-badge';
18
+ import { isActiveLimitedTimeOffer } from '../../lib/limited-time-offer';
19
+ import { getProductStockInfo } from '../../lib/inventory-utils';
20
+ import { richFieldHasContent, richFieldPlainTextForDisplay } from '../../lib/rich-html';
21
+ import { trackStorefrontEvent } from '../../lib/mixpanel';
22
22
  export function ProductCard({ product, storeSlug, onAddToCart, onQuickView, className }) {
23
23
  const [isHovered, setIsHovered] = useState(false);
24
24
  const { toggleWishlist, isInWishlist, isWishlistLoading, store } = useStore();
@@ -127,7 +127,7 @@ export function ProductCard({ product, storeSlug, onAddToCart, onQuickView, clas
127
127
  });
128
128
  }
129
129
  }
130
- return (_jsxs("div", { "data-product-card": true, className: cn("group relative flex flex-col h-full bg-white rounded-lg overflow-hidden border border-gray-100 hover:border-gray-300 transition-all duration-300 hover:shadow-md", className), onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [_jsxs("div", { className: "relative aspect-[3/4] bg-gray-50 overflow-hidden", children: [_jsx(Link, { href: `/${storeSlug}/products/${product.slug}`, onClick: handleProductClick, className: "block w-full h-full", children: _jsx(ImageWithFallback, { src: currentImage, alt: product.name, className: cn("w-full h-full object-cover transition-all duration-700 ease-in-out", isHovered && !hasSecondImage ? "scale-110" : "scale-100", isOutOfStock && "grayscale"), skeletonAspectRatio: "3/4" }) }), isOutOfStock && (_jsx(OutOfStockOverlay, { badgePosition: "center" })), (isActiveLimitedTimeOffer(product) || product.compareAtPrice || (product.rating && product.rating >= 4.8)) && (_jsxs("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10", children: [_jsx(LimitedTimeOfferBadge, { product: product, compact: true }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsx("span", { className: "bg-red-500 text-white text-[10px] font-bold px-2.5 py-1 rounded-full uppercase tracking-wider shadow-sm", children: "Sale" })), !isActiveLimitedTimeOffer(product) && !product.compareAtPrice && product.rating && product.rating >= 4.8 && (_jsx("span", { className: "bg-white/90 backdrop-blur-sm text-slate-900 text-[10px] font-bold px-2.5 py-1 rounded-full uppercase tracking-wider shadow-sm border border-gray-100", children: "Top Rated" }))] })), _jsxs("div", { className: "absolute top-3 right-3 z-30 flex flex-col gap-2 opacity-0 group-hover:opacity-100 transform translate-x-2 group-hover:translate-x-0 transition-all duration-300", children: [_jsx("button", { type: "button", onClick: handleShareClick, className: "p-2 rounded-full bg-white/80 backdrop-blur-sm hover:bg-white transition-all duration-300 shadow-sm text-slate-600 hover:text-slate-900", title: "Share product", "aria-label": "Share product", children: _jsx(Share2, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: handleWishlistClick, disabled: isLoading, className: cn("p-2 rounded-full bg-white/80 backdrop-blur-sm hover:bg-white transition-all duration-300 shadow-sm disabled:opacity-50 disabled:cursor-not-allowed", inWishlist ? "text-red-500" : "text-slate-600 hover:text-red-500"), title: inWishlist ? "Remove from wishlist" : "Add to wishlist", children: isLoading ? (_jsx(ButtonLoader, { className: "text-red-500" })) : (_jsx(Heart, { className: cn("h-4 w-4", inWishlist && "fill-current") })) })] }), _jsxs("div", { className: "absolute bottom-4 inset-x-4 flex items-center gap-2 opacity-0 translate-y-4 group-hover:opacity-100 group-hover:translate-y-0 transition-all duration-300 ease-out z-20", children: [_jsx(Link, { href: `/${storeSlug}/products/${product.slug}`, className: "h-10 w-10 flex items-center justify-center rounded-full bg-white text-slate-900 hover:bg-slate-900 hover:text-white border border-transparent shadow-lg transition-colors duration-200", title: "View Details", onClick: trackProductClick, children: _jsx(Eye, { className: "h-4 w-4" }) }), _jsxs(Button, { onClick: async (e) => {
130
+ return (_jsxs("div", { "data-product-card": true, className: cn("group relative flex flex-col h-full bg-white rounded-lg overflow-hidden border border-gray-100 hover:border-gray-300 transition-all duration-300 hover:shadow-md", className), onMouseEnter: () => setIsHovered(true), onMouseLeave: () => setIsHovered(false), children: [_jsxs("div", { className: "relative aspect-[3/4] bg-gray-50 overflow-hidden", children: [_jsx(Link, { href: `/${storeSlug}/products/${product.slug}`, onClick: handleProductClick, className: "block w-full h-full", children: _jsx(ImageWithFallback, { src: currentImage, alt: product.name, className: cn("w-full h-full object-cover transition-all duration-700 ease-in-out", isHovered && !hasSecondImage ? "scale-110" : "scale-100", isOutOfStock && "grayscale"), skeletonAspectRatio: "3/4", lazy: true }) }), isOutOfStock && (_jsx(OutOfStockOverlay, { badgePosition: "center" })), (isActiveLimitedTimeOffer(product) || product.compareAtPrice || (product.rating && product.rating >= 4.8)) && (_jsxs("div", { className: "absolute top-3 left-3 flex flex-col gap-2 z-10", children: [_jsx(LimitedTimeOfferBadge, { product: product, compact: true }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsx("span", { className: "bg-red-500 text-white text-[10px] font-bold px-2.5 py-1 rounded-full uppercase tracking-wider shadow-sm", children: "Sale" })), !isActiveLimitedTimeOffer(product) && !product.compareAtPrice && product.rating && product.rating >= 4.8 && (_jsx("span", { className: "bg-white/90 backdrop-blur-sm text-slate-900 text-[10px] font-bold px-2.5 py-1 rounded-full uppercase tracking-wider shadow-sm border border-gray-100", children: "Top Rated" }))] })), _jsxs("div", { className: "absolute top-3 right-3 z-30 flex flex-col gap-2 opacity-0 group-hover:opacity-100 transform translate-x-2 group-hover:translate-x-0 transition-all duration-300", children: [_jsx("button", { type: "button", onClick: handleShareClick, className: "p-2 rounded-full bg-white/80 backdrop-blur-sm hover:bg-white transition-all duration-300 shadow-sm text-slate-600 hover:text-slate-900", title: "Share product", "aria-label": "Share product", children: _jsx(Share2, { className: "h-4 w-4" }) }), _jsx("button", { type: "button", onClick: handleWishlistClick, disabled: isLoading, className: cn("p-2 rounded-full bg-white/80 backdrop-blur-sm hover:bg-white transition-all duration-300 shadow-sm disabled:opacity-50 disabled:cursor-not-allowed", inWishlist ? "text-red-500" : "text-slate-600 hover:text-red-500"), title: inWishlist ? "Remove from wishlist" : "Add to wishlist", children: isLoading ? (_jsx(ButtonLoader, { className: "text-red-500" })) : (_jsx(Heart, { className: cn("h-4 w-4", inWishlist && "fill-current") })) })] }), _jsxs("div", { className: "absolute bottom-4 inset-x-4 flex items-center gap-2 opacity-0 translate-y-4 group-hover:opacity-100 group-hover:translate-y-0 transition-all duration-300 ease-out z-20", children: [_jsx(Link, { href: `/${storeSlug}/products/${product.slug}`, className: "h-10 w-10 flex items-center justify-center rounded-full bg-white text-slate-900 hover:bg-slate-900 hover:text-white border border-transparent shadow-lg transition-colors duration-200", title: "View Details", onClick: trackProductClick, children: _jsx(Eye, { className: "h-4 w-4" }) }), _jsxs(Button, { onClick: async (e) => {
131
131
  e.preventDefault();
132
132
  if (!isOutOfStock) {
133
133
  await onAddToCart(product);
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { Star } from 'lucide-react';
4
- import { cn } from '../../lib/utils/index.js';
4
+ import { cn } from '../../lib/utils';
5
5
  /**
6
6
  * Smart product rating component that handles:
7
7
  * - Products with reviews: Shows rating and review count
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { CheckCircle, AlertTriangle, Info } from 'lucide-react';
4
- import { cn } from '../../lib/utils/index.js';
5
- import { getProductStockInfo } from '../../lib/inventory-utils.js';
4
+ import { cn } from '../../lib/utils';
5
+ import { getProductStockInfo } from '../../lib/inventory-utils';
6
6
  const STATUS_STYLES = {
7
7
  untracked: 'bg-green-100 text-green-800',
8
8
  in_stock: 'bg-green-100 text-green-800',
@@ -2,8 +2,8 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState } from 'react';
4
4
  import { Star, X } from 'lucide-react';
5
- import { Button } from '../../components/ui/button.js';
6
- import { cn } from '../../lib/utils/index.js';
5
+ import { Button } from '../../components/ui/button';
6
+ import { cn } from '../../lib/utils';
7
7
  export function ReviewForm({ storeConfig, onClose, onSubmit }) {
8
8
  const [rating, setRating] = useState(0);
9
9
  const [hoverRating, setHoverRating] = useState(0);
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { usePathname } from 'next/navigation';
4
- import { ProductDetailSkeleton } from './skeletons/product-detail-skeleton.js';
5
- import { ProductGridSkeleton } from './skeletons/product-grid-skeleton.js';
6
- import { CategoryGridSkeleton } from './skeletons/category-grid-skeleton.js';
7
- import { PageSkeleton } from './skeletons/page-skeleton.js';
8
- import { CheckoutSkeleton } from './skeletons/checkout-skeleton.js';
9
- import { cn } from '../../lib/utils/index.js';
4
+ import { ProductDetailSkeleton } from './skeletons/product-detail-skeleton';
5
+ import { ProductGridSkeleton } from './skeletons/product-grid-skeleton';
6
+ import { CategoryGridSkeleton } from './skeletons/category-grid-skeleton';
7
+ import { PageSkeleton } from './skeletons/page-skeleton';
8
+ import { CheckoutSkeleton } from './skeletons/checkout-skeleton';
9
+ import { cn } from '../../lib/utils';
10
10
  export function RouteSkeletonLoader({ className, pathname: pathnameProp }) {
11
11
  const pathnameFromHook = usePathname();
12
12
  const pathname = pathnameProp || pathnameFromHook;
@@ -6,6 +6,7 @@ interface SheetProps {
6
6
  children: React.ReactNode;
7
7
  side?: 'left' | 'right';
8
8
  className?: string;
9
+ style?: React.CSSProperties;
9
10
  contentClassName?: string;
10
11
  backdropClassName?: string;
11
12
  closeButtonClassName?: string;
@@ -24,6 +25,6 @@ interface SheetProps {
24
25
  /** SSO login sheet color-scheme hint for OS dark mode (light resists forced-dark). */
25
26
  dataLoginPanel?: 'light' | 'dark';
26
27
  }
27
- export declare function Sheet({ isOpen, onClose, title, children, side, className, contentClassName, backdropClassName, closeButtonClassName, ariaLabelledBy, hideBuiltInTitle, showCloseButton, onOpenAutoFocus, portal, overlayTier, overlayMobileMode, dataLoginPanel, }: SheetProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function Sheet({ isOpen, onClose, title, children, side, className, style, contentClassName, backdropClassName, closeButtonClassName, ariaLabelledBy, hideBuiltInTitle, showCloseButton, onOpenAutoFocus, portal, overlayTier, overlayMobileMode, dataLoginPanel, }: SheetProps): import("react/jsx-runtime").JSX.Element;
28
29
  export {};
29
30
  //# sourceMappingURL=sheet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,UAAU,UAAU;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,wFAAwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC5C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC;AAED,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAc,EACd,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAwB,EACxB,eAAsB,EACtB,eAAe,EACf,MAAc,EACd,WAAuB,EACvB,iBAA4B,EAC5B,cAAc,GACf,EAAE,UAAU,2CA8FZ"}
1
+ {"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sheet.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,UAAU,UAAU;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,wFAAwF;IACxF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC5C,sFAAsF;IACtF,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACnC;AAED,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,OAAO,EACP,KAAK,EACL,QAAQ,EACR,IAAc,EACd,SAAS,EACT,KAAK,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,gBAAwB,EACxB,eAAsB,EACtB,eAAe,EACf,MAAc,EACd,WAAuB,EACvB,iBAA4B,EAC5B,cAAc,GACf,EAAE,UAAU,2CA+FZ"}
@@ -3,11 +3,11 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
  import { X } from 'lucide-react';
6
- import { cn } from '../../lib/utils/index.js';
7
- import { Button } from './button.js';
6
+ import { cn } from '../../lib/utils';
7
+ import { Button } from './button';
8
8
  /** Login / critical overlays — above sticky headers (z-60), search (z-100), sliders, etc. */
9
9
  const OVERLAY_ROOT_Z = 'z-[9999]';
10
- export function Sheet({ isOpen, onClose, title, children, side = 'right', className, contentClassName, backdropClassName, closeButtonClassName, ariaLabelledBy, hideBuiltInTitle = false, showCloseButton = true, onOpenAutoFocus, portal = false, overlayTier = 'default', overlayMobileMode = 'drawer', dataLoginPanel, }) {
10
+ export function Sheet({ isOpen, onClose, title, children, side = 'right', className, style, contentClassName, backdropClassName, closeButtonClassName, ariaLabelledBy, hideBuiltInTitle = false, showCloseButton = true, onOpenAutoFocus, portal = false, overlayTier = 'default', overlayMobileMode = 'drawer', dataLoginPanel, }) {
11
11
  React.useEffect(() => {
12
12
  const handleEscape = (e) => {
13
13
  if (e.key === 'Escape')
@@ -37,7 +37,7 @@ export function Sheet({ isOpen, onClose, title, children, side = 'right', classN
37
37
  const panelZ = isOverlay ? 'z-10' : 'z-[110]';
38
38
  const sheetContent = (_jsxs("div", { className: cn(isOverlay && 'fixed inset-0', !isOverlay && 'contents', rootZ), children: [_jsx("div", { className: cn(isOverlay ? 'absolute inset-0' : 'fixed inset-0', backdropZ, 'transition-opacity', backdropClassName ?? 'bg-black/60 backdrop-blur-sm'), onClick: onClose, "aria-hidden": "true" }), _jsxs("div", { role: "dialog", "aria-modal": "true", "data-login-panel": dataLoginPanel, "aria-labelledby": ariaLabelledBy || (title && !hideBuiltInTitle ? 'sheet-title' : undefined), className: cn('bg-white shadow-xl transition ease-in-out duration-300 transform flex flex-col', isOverlay ? 'fixed top-0 bottom-0 h-dvh max-h-dvh supports-[height:100dvh]:h-dvh' : 'fixed', panelZ, side === 'left' ? 'left-0' : 'right-0', !isOverlay && (side === 'left' ? 'top-0 bottom-0 left-0' : 'top-0 bottom-0 right-0 h-dvh max-h-dvh'), overlayMobileMode === 'fullscreen' &&
39
39
  isOverlay &&
40
- 'max-sm:inset-0 max-sm:left-0 max-sm:right-0 max-sm:w-screen max-sm:max-w-[100dvw] max-sm:rounded-none', 'w-full max-w-md translate-x-0 opacity-100 pointer-events-auto', className), children: [showCloseButton && !hideBuiltInTitle ? (_jsxs("div", { className: "flex items-center justify-between shrink-0 px-6 pt-6 pb-2", children: [title ? (_jsx("h2", { id: "sheet-title", className: "text-lg font-semibold text-[#1b0029]", children: title })) : (_jsx("span", {})), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, className: cn('rounded-full shrink-0', closeButtonClassName), "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4" }) })] })) : null, _jsx("div", { className: cn('flex-1 min-h-0 overflow-y-auto overflow-x-hidden py-px', contentClassName), children: children })] })] }));
40
+ 'max-sm:inset-0 max-sm:left-0 max-sm:right-0 max-sm:w-screen max-sm:max-w-[100dvw] max-sm:rounded-none', 'w-full max-w-md translate-x-0 opacity-100 pointer-events-auto', className), style: style, children: [showCloseButton && !hideBuiltInTitle ? (_jsxs("div", { className: "flex items-center justify-between shrink-0 px-6 pt-6 pb-2", children: [title ? (_jsx("h2", { id: "sheet-title", className: "text-lg font-semibold text-[#1b0029]", children: title })) : (_jsx("span", {})), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, className: cn('rounded-full shrink-0', closeButtonClassName), "aria-label": "Close", children: _jsx(X, { className: "h-4 w-4" }) })] })) : null, _jsx("div", { className: cn('flex-1 min-h-0 overflow-y-auto overflow-x-hidden py-px', contentClassName), children: children })] })] }));
41
41
  if (portal && typeof document !== 'undefined') {
42
42
  return createPortal(sheetContent, document.body);
43
43
  }
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { cn } from "../../lib/utils/index.js";
2
+ import { cn } from "../../lib/utils";
3
3
  function Skeleton({ className, ...props }) {
4
4
  return (_jsx("div", { className: cn("animate-pulse rounded-md bg-gray-200/80", className), ...props }));
5
5
  }
@@ -1,5 +1,5 @@
1
- export { ProductCardSkeleton } from './product-card-skeleton.js';
2
- export { ProductGridSkeleton } from './product-grid-skeleton.js';
3
- export { ProductDetailSkeleton } from './product-detail-skeleton.js';
4
- export { CategoryGridSkeleton } from './category-grid-skeleton.js';
5
- export { PageSkeleton } from './page-skeleton.js';
1
+ export { ProductCardSkeleton } from './product-card-skeleton';
2
+ export { ProductGridSkeleton } from './product-grid-skeleton';
3
+ export { ProductDetailSkeleton } from './product-detail-skeleton';
4
+ export { CategoryGridSkeleton } from './category-grid-skeleton';
5
+ export { PageSkeleton } from './page-skeleton';
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ProductCardSkeleton } from './product-card-skeleton.js';
2
+ import { ProductCardSkeleton } from './product-card-skeleton';
3
3
  export function ProductGridSkeleton({ count = 8, columns = 4 }) {
4
4
  const gridCols = {
5
5
  1: 'grid-cols-1',
@@ -1 +1 @@
1
- {"version":3,"file":"store-logos.d.ts","sourceRoot":"","sources":["../../../src/components/ui/store-logos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,SAAU,SAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,GAAI,uDAA+E,SAAS,4CA0ChH,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,uDAA+E,SAAS,4CAuBtH,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,uDAA+E,SAAS,4CAgCpH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uDAA+E,SAAS,4CAqB3H,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,uDAA+E,SAAS,4CA4BnH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,uDAA+E,SAAS,4CAczH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,uDAA+E,SAAS,4CA8BvH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uDAA+E,SAAS,4CAmB3H,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,uDAA+E,SAAS,4CA8BxH,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,SAAS,4CAuB1D,CAAC;AAEF;;GAEG;AACH,UAAU,uBAAwB,SAAQ,SAAS;IACjD,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CA4B3F;AAiBD;;GAEG;AACH,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YACT,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,GAAG,IAAI,GAAG,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CA0BxF"}
1
+ {"version":3,"file":"store-logos.d.ts","sourceRoot":"","sources":["../../../src/components/ui/store-logos.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,UAAU,SAAU,SAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,GAAI,uDAA+E,SAAS,4CA0ChH,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,uDAA+E,SAAS,4CAuBtH,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,uDAA+E,SAAS,4CAgCpH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uDAA+E,SAAS,4CAqB3H,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,uDAA+E,SAAS,4CA4BnH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,uDAA+E,SAAS,4CAczH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,uDAA+E,SAAS,4CA8BvH,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,uDAA+E,SAAS,4CAmB3H,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,uDAA+E,SAAS,4CA8BxH,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,SAAS,4CAuB1D,CAAC;AAEF;;GAEG;AACH,UAAU,uBAAwB,SAAQ,SAAS;IACjD,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CA2B3F;AAiBD;;GAEG;AACH,UAAU,oBAAqB,SAAQ,SAAS;IAC9C,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE;YACT,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,GAAG,IAAI,GAAG,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAyBxF"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import Image from 'next/image';
3
- import { cn } from '../../lib/utils/index.js';
4
- import { getLogoUrl } from '../../lib/utils/asset-helpers.js';
3
+ import { cn } from '../../lib/utils';
4
+ import { getLogoUrl } from '../../lib/utils/asset-helpers';
5
5
  export const FoodLogo = ({ className, primaryColor = '#FF6B35', secondaryColor = '#F7931E', ...props }) => (_jsxs("svg", { viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: cn("w-10 h-10", className), ...props, children: [_jsx("path", { d: "M100 20C55.8172 20 20 55.8172 20 100C20 144.183 55.8172 180 100 180C144.183 180 180 144.183 180 100C180 55.8172 144.183 20 100 20Z", fill: primaryColor, fillOpacity: "0.1" }), _jsx("path", { d: "M130 90C130 90 125 60 100 60C75 60 70 90 70 90V110C70 126.569 83.4315 140 100 140C116.569 140 130 126.569 130 110V90Z", stroke: primaryColor, strokeWidth: "12", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M100 60V140", stroke: primaryColor, strokeWidth: "8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M70 90H130", stroke: primaryColor, strokeWidth: "8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M85 45C85 45 90 35 100 35C110 35 115 45 115 45", stroke: secondaryColor, strokeWidth: "6", strokeLinecap: "round", strokeLinejoin: "round" })] }));
6
6
  export const FoodModernLogo = ({ className, primaryColor = '#FF6B35', secondaryColor = '#F7931E', ...props }) => (_jsxs("svg", { viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: cn("w-10 h-10", className), ...props, children: [_jsx("rect", { width: "200", height: "200", rx: "40", fill: primaryColor }), _jsx("path", { d: "M140 70C140 70 130 50 100 50C70 50 60 70 60 70V120C60 142.091 77.9086 160 100 160C122.091 160 140 142.091 140 120V70Z", stroke: "white", strokeWidth: "12", strokeLinecap: "round" }), _jsx("path", { d: "M80 100L120 100", stroke: "white", strokeWidth: "12", strokeLinecap: "round" }), _jsx("circle", { cx: "150", cy: "50", r: "15", fill: secondaryColor })] }));
7
7
  export const ClothingLogo = ({ className, primaryColor = '#EC4899', secondaryColor = '#FBCFE8', ...props }) => (_jsxs("svg", { viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg", className: cn("w-10 h-10", className), ...props, children: [_jsx("path", { d: "M100 30L40 70V160C40 171.046 48.9543 180 60 180H140C151.046 180 160 171.046 160 160V70L100 30Z", fill: secondaryColor, fillOpacity: "0.3", stroke: primaryColor, strokeWidth: "10", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M100 30V180", stroke: primaryColor, strokeWidth: "8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M70 70L100 100L130 70", stroke: primaryColor, strokeWidth: "8", strokeLinecap: "round", strokeLinejoin: "round" })] }));
@@ -42,7 +42,7 @@ export function StoreLogo({ storeConfig, alt, className, ...props }) {
42
42
  if (logoUrl) {
43
43
  // Extract width/height from className if present, otherwise use defaults
44
44
  const defaultSize = 40;
45
- return (_jsx("div", { className: cn("relative flex items-center justify-center", className), children: _jsx(Image, { src: logoUrl, alt: alt || storeConfig?.name || 'Store Logo', fill: true, className: "object-contain", unoptimized: true }) }));
45
+ return (_jsx("div", { className: cn("relative flex items-center justify-center", className), children: _jsx(Image, { src: logoUrl, alt: alt || storeConfig?.name || 'Store Logo', fill: true, className: "object-contain" }) }));
46
46
  }
47
47
  // Otherwise, fall back to default SVG logo
48
48
  return getStoreLogo(storeType, {
@@ -71,7 +71,7 @@ export function StoreLogoSimple({ store, alt, className, ...props }) {
71
71
  const storeType = store?.type || 'clothing';
72
72
  // If backend logo exists, render it as an image
73
73
  if (logoUrl) {
74
- return (_jsx("div", { className: cn("relative flex items-center justify-center", className), children: _jsx(Image, { src: logoUrl, alt: alt || store?.name || 'Store Logo', fill: true, className: "object-contain", unoptimized: true }) }));
74
+ return (_jsx("div", { className: cn("relative flex items-center justify-center", className), children: _jsx(Image, { src: logoUrl, alt: alt || store?.name || 'Store Logo', fill: true, className: "object-contain" }) }));
75
75
  }
76
76
  // Otherwise, fall back to default SVG logo
77
77
  return getStoreLogo(storeType, {
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useContext, useState, useCallback } from 'react';
4
4
  import { X, CheckCircle, AlertCircle, Info } from 'lucide-react';
5
- import { cn } from '../../lib/utils/index.js';
5
+ import { cn } from '../../lib/utils';
6
6
  export const ToastContext = createContext(undefined);
7
7
  export function ToastProvider({ children }) {
8
8
  const [toasts, setToasts] = useState([]);
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useEffect, useRef, useState } from 'react';
4
- import { parseVideoUrl, getBackgroundVideoEmbedUrl, getEmbedVideoUrl } from '../../lib/utils/video-helpers.js';
5
- import { cn } from '../../lib/utils/index.js';
4
+ import { parseVideoUrl, getBackgroundVideoEmbedUrl, getEmbedVideoUrl } from '../../lib/utils/video-helpers';
5
+ import { cn } from '../../lib/utils';
6
6
  export function VideoPlayer({ src, poster, context = 'inline', autoplay = false, controls = true, loop = false, muted = false, className, aspectRatio, onError, }) {
7
7
  const [videoInfo, setVideoInfo] = useState(null);
8
8
  const [hasError, setHasError] = useState(false);
@@ -1,4 +1,4 @@
1
- import { bookingFooterSection } from './booking-footer-section.js';
1
+ import { bookingFooterSection } from './booking-footer-section';
2
2
  const sectionStyleSupports = {
3
3
  spacing: true,
4
4
  colors: true,
@@ -1,4 +1,4 @@
1
- import { PAYAZA_BLOCK_IDS } from '../blocks/types.js';
1
+ import { PAYAZA_BLOCK_IDS } from '../blocks/types';
2
2
  const sectionStyleSupports = {
3
3
  spacing: true,
4
4
  colors: true,
@@ -1,23 +1,23 @@
1
- import { ClothingSchema } from './clothing.js';
2
- import { ClothingMinimalSchema } from './clothing-minimal.js';
3
- import { FoodSchema } from './food.js';
4
- import { FoodModernSchema } from './food-modern.js';
5
- import { ElectronicsSchema } from './electronics.js';
6
- import { ElectronicsGridSchema } from './electronics-grid.js';
7
- import { BookingSchema } from './booking.js';
8
- import { BookingAgendaSchema } from './booking-agenda.js';
9
- import { MotivationalSpeakerSchema } from './motivational-speaker.js';
10
- export * from './types.js';
11
- export * from './metadata.js';
12
- export * from './clothing.js';
13
- export * from './clothing-minimal.js';
14
- export * from './food.js';
15
- export * from './food-modern.js';
16
- export * from './electronics.js';
17
- export * from './electronics-grid.js';
18
- export * from './booking.js';
19
- export * from './booking-agenda.js';
20
- export * from './motivational-speaker.js';
1
+ import { ClothingSchema } from './clothing';
2
+ import { ClothingMinimalSchema } from './clothing-minimal';
3
+ import { FoodSchema } from './food';
4
+ import { FoodModernSchema } from './food-modern';
5
+ import { ElectronicsSchema } from './electronics';
6
+ import { ElectronicsGridSchema } from './electronics-grid';
7
+ import { BookingSchema } from './booking';
8
+ import { BookingAgendaSchema } from './booking-agenda';
9
+ import { MotivationalSpeakerSchema } from './motivational-speaker';
10
+ export * from './types';
11
+ export * from './metadata';
12
+ export * from './clothing';
13
+ export * from './clothing-minimal';
14
+ export * from './food';
15
+ export * from './food-modern';
16
+ export * from './electronics';
17
+ export * from './electronics-grid';
18
+ export * from './booking';
19
+ export * from './booking-agenda';
20
+ export * from './motivational-speaker';
21
21
  export const alignmentSchemasMap = {
22
22
  'clothing': ClothingSchema,
23
23
  'fashion-hub': ClothingSchema,
@@ -1,4 +1,4 @@
1
- import { normalizeEditorLayoutId } from '../document/layout-id.js';
1
+ import { normalizeEditorLayoutId } from '../document/layout-id';
2
2
  const _cache = {};
3
3
  const _pending = {};
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { normalizeEditorLayoutId } from '../document/layout-id.js';
1
+ import { normalizeEditorLayoutId } from '../document/layout-id';
2
2
  /**
3
3
  * Metadata for all layouts
4
4
  * Extracted from requirements JSON files
@@ -1,6 +1,6 @@
1
- import { readDataAtPath } from '../payaza-form/data-transformer.js';
2
- import { getPayazaBlockDefinition } from '../blocks/registry.js';
3
- import { resolveAlignmentFieldLeaf } from './resolve-field.js';
1
+ import { readDataAtPath } from '../payaza-form/data-transformer';
2
+ import { getPayazaBlockDefinition } from '../blocks/registry';
3
+ import { resolveAlignmentFieldLeaf } from './resolve-field';
4
4
  function alignmentSchemaToMeta(leaf) {
5
5
  const label = leaf.label || leaf._label || 'Field';
6
6
  const description = leaf.description || leaf._description || undefined;
@@ -1,3 +1,3 @@
1
- export * from './types.js';
2
- export * from './registry.js';
3
- export * from './defaults/clothing-minimal-home.js';
1
+ export * from './types';
2
+ export * from './registry';
3
+ export * from './defaults/clothing-minimal-home';
@@ -1,6 +1,6 @@
1
- import { deepClone } from '../../lib/utils/index.js';
2
- import { hasClothingMinimalMerchantSectionSignal } from '../../lib/layout-field-normalize.js';
3
- import { defaultClothingMinimalAboutBlocks, defaultClothingMinimalCategoriesBlocks, defaultClothingMinimalFeaturedProductsBlocks, defaultClothingMinimalFeaturesBlocks, defaultClothingMinimalHeroBlocks, defaultClothingMinimalPromoBlocks, getDefaultBlocksForClothingMinimalHomeSection, } from './defaults/clothing-minimal-home.js';
1
+ import { deepClone } from '../../lib/utils';
2
+ import { hasClothingMinimalMerchantSectionSignal } from '../../lib/layout-field-normalize';
3
+ import { defaultClothingMinimalAboutBlocks, defaultClothingMinimalCategoriesBlocks, defaultClothingMinimalFeaturedProductsBlocks, defaultClothingMinimalFeaturesBlocks, defaultClothingMinimalHeroBlocks, defaultClothingMinimalPromoBlocks, getDefaultBlocksForClothingMinimalHomeSection, } from './defaults/clothing-minimal-home';
4
4
  function richOrString(v) {
5
5
  if (v == null)
6
6
  return '';
@@ -1,5 +1,5 @@
1
- import { getPayazaBlockDefinition } from './registry.js';
2
- import { readDataAtPath } from '../payaza-form/data-transformer.js';
1
+ import { getPayazaBlockDefinition } from './registry';
2
+ import { readDataAtPath } from '../payaza-form/data-transformer';
3
3
  const ARRAY_FIELD_KEY_SET = new Set([
4
4
  'sliders',
5
5
  'items',
@@ -1,4 +1,4 @@
1
- import { deepClone } from '../../lib/utils/index.js';
1
+ import { deepClone } from '../../lib/utils';
2
2
  const defs = {
3
3
  'payaza/badge': {
4
4
  name: 'payaza/badge',
@@ -1,7 +1,7 @@
1
- import { deepMergeLayoutPayload } from '../../lib/layout-config-hydration.js';
2
- import { EDITOR_DOC_VERSION, SNAPSHOT_CONTENT_KEY } from './constants.js';
3
- import { SHOPAZA_BLOCK_TYPES, SHOPAZA_DOCUMENT_ROOT_ID, applySectionContentEntriesToStoreConfig, applyTemplateBlocksToStoreConfig, buildTemplateFromOverlay, hasStructuredBlockTree, mergeSectionEntriesIntoContent, } from './block-tree.js';
4
- import { validateEditorEnvelope } from './validate.js';
1
+ import { deepMergeLayoutPayload } from '../../lib/layout-config-hydration';
2
+ import { EDITOR_DOC_VERSION, SNAPSHOT_CONTENT_KEY } from './constants';
3
+ import { SHOPAZA_BLOCK_TYPES, SHOPAZA_DOCUMENT_ROOT_ID, applySectionContentEntriesToStoreConfig, applyTemplateBlocksToStoreConfig, buildTemplateFromOverlay, hasStructuredBlockTree, mergeSectionEntriesIntoContent, } from './block-tree';
4
+ import { validateEditorEnvelope } from './validate';
5
5
  function nowIso() {
6
6
  return new Date().toISOString();
7
7
  }
@@ -1,4 +1,4 @@
1
- import { deepClone } from '../../lib/utils/index.js';
1
+ import { deepClone } from '../../lib/utils';
2
2
  /** Document root — one tree per storefront layout JSON. */
3
3
  export const SHOPAZA_DOCUMENT_ROOT_ID = 'shopaza:document:root';
4
4
  export const SHOPAZA_BLOCK_TYPES = {
@@ -1,6 +1,6 @@
1
- export * from './types.js';
2
- export * from './constants.js';
3
- export * from './validate.js';
4
- export * from './adapter.js';
5
- export * from './layout-id.js';
6
- export * from './block-tree.js';
1
+ export * from './types';
2
+ export * from './constants';
3
+ export * from './validate';
4
+ export * from './adapter';
5
+ export * from './layout-id';
6
+ export * from './block-tree';
@@ -1,4 +1,4 @@
1
- import { EDITOR_DOC_VERSION, SUPPORTED_LAYOUT_TYPES, SNAPSHOT_CONTENT_KEY } from './constants.js';
1
+ import { EDITOR_DOC_VERSION, SUPPORTED_LAYOUT_TYPES, SNAPSHOT_CONTENT_KEY } from './constants';
2
2
  function push(diagnostics, d) {
3
3
  diagnostics.push(d);
4
4
  }
@@ -1,19 +1,19 @@
1
- export * from './types.js';
2
- export * from './document/index.js';
3
- export * from './shared/index.js';
4
- export * from './feature-flags.js';
1
+ export * from './types';
2
+ export * from './document';
3
+ export * from './shared';
4
+ export * from './feature-flags';
5
5
  // Export PayazaForm editor (namespace for consumers that destructure PayazaForm)
6
- export * as PayazaForm from './payaza-form/index.js';
6
+ export * as PayazaForm from './payaza-form';
7
7
  // Top-level named exports so consumers can also import directly:
8
8
  // import { PayazaFormEditorFullPage, getFullInventory } from 'payaza-storefront-layouts/editor'
9
- export { PayazaFormEditorFullPage, PayazaFormEditor } from './payaza-form/index.js';
9
+ export { PayazaFormEditorFullPage, PayazaFormEditor } from './payaza-form';
10
10
  // Also export asset selection handler directly for easier access
11
- export { getGlobalAssetSelectionHandler } from './payaza-form/AssetSelectionContext.js';
12
- export { loadLayoutContentForEditor, hasRenderableLayoutContent, } from './layout-content-loader.js';
13
- export { extractPublishedLayoutConfig } from '../lib/layout-config-hydration.js';
14
- export { normalizeLayoutConfigFieldShapes, prepareLayoutPayloadForPublish, denormalizeClothingMinimalBlocksToSectionFields, } from '../lib/layout-field-normalize.js';
15
- export { mergeAllPagesWithActualData } from './payaza-form/data-merger.js';
16
- export { loadLayoutJSONSync } from './payaza-form/layout-loader.js';
11
+ export { getGlobalAssetSelectionHandler } from './payaza-form/AssetSelectionContext';
12
+ export { loadLayoutContentForEditor, hasRenderableLayoutContent, } from './layout-content-loader';
13
+ export { extractPublishedLayoutConfig } from '../lib/layout-config-hydration';
14
+ export { normalizeLayoutConfigFieldShapes, prepareLayoutPayloadForPublish, denormalizeClothingMinimalBlocksToSectionFields, } from '../lib/layout-field-normalize';
15
+ export { mergeAllPagesWithActualData } from './payaza-form/data-merger';
16
+ export { loadLayoutJSONSync } from './payaza-form/layout-loader';
17
17
  /**
18
18
  * Helper to get the full inventory of all layouts
19
19
  * Now uses alignment-schemas instead of requirements JSON
@@ -1,6 +1,6 @@
1
- import { envelopeToStoreConfig } from './document/adapter.js';
2
- import { validateEditorEnvelope } from './document/validate.js';
3
- import { extractPublishedLayoutConfig, hydratePublishedLayoutPayload, hasRenderableLayoutContent as hasRenderableLayoutContentFromHydration, } from '../lib/layout-config-hydration.js';
1
+ import { envelopeToStoreConfig } from './document/adapter';
2
+ import { validateEditorEnvelope } from './document/validate';
3
+ import { extractPublishedLayoutConfig, hydratePublishedLayoutPayload, hasRenderableLayoutContent as hasRenderableLayoutContentFromHydration, } from '../lib/layout-config-hydration';
4
4
  export { extractPublishedLayoutConfig, hydratePublishedLayoutPayload };
5
5
  function isUnsplashDefaultUrl(url) {
6
6
  return /images\.unsplash\.com|unsplash\.com/i.test(url);
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState, memo } from 'react';
3
3
  import { GripVertical, Plus, Copy, Trash2, ChevronUp, ChevronDown } from 'lucide-react';
4
- import { getFieldRenderer } from './field-renderer-ref.js';
5
- import { SliderArrayEditor } from './SliderArrayEditor.js';
4
+ import { getFieldRenderer } from './field-renderer-ref';
5
+ import { SliderArrayEditor } from './SliderArrayEditor';
6
6
  function isSliderMode(itemEditor, arrayFieldKey) {
7
7
  if (itemEditor === 'slider')
8
8
  return true;
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useRef } from 'react';
4
- import { IframePreview } from '../shared/IframePreview.js';
5
- import { InlineCanvasPreview } from '../shared/InlineCanvasPreview.js';
6
- import { shouldUseInlineEditorPreview } from '../../lib/utils/mobile-editor.js';
7
- import { useAssetSelection } from './AssetSelectionContext.js';
8
- import { processPreviewMessage } from './preview-message-handler.js';
4
+ import { IframePreview } from '../shared/IframePreview';
5
+ import { InlineCanvasPreview } from '../shared/InlineCanvasPreview';
6
+ import { shouldUseInlineEditorPreview } from '../../lib/utils/mobile-editor';
7
+ import { useAssetSelection } from './AssetSelectionContext';
8
+ import { processPreviewMessage } from './preview-message-handler';
9
9
  export function EditorCanvasPreview({ layoutId, config, activePageId, viewMode, selectedSection, focusedField, interactionMode, slideIndexSync, flushRequestId, previewZoom, editorContext, onSectionSelected, onFieldCommit, onSectionReorder, onFocusSidebarSection, onPreviewElementFocus, onRouteChange, previewFlushRef, iframePreviewFlushRef, }) {
10
10
  const useInline = shouldUseInlineEditorPreview();
11
11
  const { onOpenAssetSelect } = useAssetSelection();