storefront-layouts-staging 1.0.0-staging.0

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 (1204) hide show
  1. package/README.md +539 -0
  2. package/dist/components/auth/LoginForm.d.ts +9 -0
  3. package/dist/components/auth/LoginForm.d.ts.map +1 -0
  4. package/dist/components/auth/LoginForm.js +21 -0
  5. package/dist/components/auth/LoginSheet.d.ts +7 -0
  6. package/dist/components/auth/LoginSheet.d.ts.map +1 -0
  7. package/dist/components/auth/LoginSheet.js +8 -0
  8. package/dist/components/auth/login-form-core.d.ts +11 -0
  9. package/dist/components/auth/login-form-core.d.ts.map +1 -0
  10. package/dist/components/auth/login-form-core.js +19 -0
  11. package/dist/components/auth/login-sheet-header.d.ts +10 -0
  12. package/dist/components/auth/login-sheet-header.d.ts.map +1 -0
  13. package/dist/components/auth/login-sheet-header.js +10 -0
  14. package/dist/components/auth/login-sheet-registry.d.ts +11 -0
  15. package/dist/components/auth/login-sheet-registry.d.ts.map +1 -0
  16. package/dist/components/auth/login-sheet-registry.js +9 -0
  17. package/dist/components/auth/login-sheet-theme.types.d.ts +29 -0
  18. package/dist/components/auth/login-sheet-theme.types.d.ts.map +1 -0
  19. package/dist/components/auth/login-sheet-theme.types.js +1 -0
  20. package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts +3 -0
  21. package/dist/components/auth/login-sheet-themes/booking-agenda.theme.d.ts.map +1 -0
  22. package/dist/components/auth/login-sheet-themes/booking-agenda.theme.js +21 -0
  23. package/dist/components/auth/login-sheet-themes/booking.theme.d.ts +3 -0
  24. package/dist/components/auth/login-sheet-themes/booking.theme.d.ts.map +1 -0
  25. package/dist/components/auth/login-sheet-themes/booking.theme.js +20 -0
  26. package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts +3 -0
  27. package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.d.ts.map +1 -0
  28. package/dist/components/auth/login-sheet-themes/clothing-minimal.theme.js +20 -0
  29. package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts +3 -0
  30. package/dist/components/auth/login-sheet-themes/clothing.theme.d.ts.map +1 -0
  31. package/dist/components/auth/login-sheet-themes/clothing.theme.js +21 -0
  32. package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts +3 -0
  33. package/dist/components/auth/login-sheet-themes/electronics-grid.theme.d.ts.map +1 -0
  34. package/dist/components/auth/login-sheet-themes/electronics-grid.theme.js +20 -0
  35. package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts +3 -0
  36. package/dist/components/auth/login-sheet-themes/electronics.theme.d.ts.map +1 -0
  37. package/dist/components/auth/login-sheet-themes/electronics.theme.js +20 -0
  38. package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts +3 -0
  39. package/dist/components/auth/login-sheet-themes/food-modern.theme.d.ts.map +1 -0
  40. package/dist/components/auth/login-sheet-themes/food-modern.theme.js +22 -0
  41. package/dist/components/auth/login-sheet-themes/food.theme.d.ts +3 -0
  42. package/dist/components/auth/login-sheet-themes/food.theme.d.ts.map +1 -0
  43. package/dist/components/auth/login-sheet-themes/food.theme.js +22 -0
  44. package/dist/components/auth/login-sheet-themes/index.d.ts +14 -0
  45. package/dist/components/auth/login-sheet-themes/index.d.ts.map +1 -0
  46. package/dist/components/auth/login-sheet-themes/index.js +29 -0
  47. package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts +3 -0
  48. package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.d.ts.map +1 -0
  49. package/dist/components/auth/login-sheet-themes/motivational-speaker.theme.js +20 -0
  50. package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts +24 -0
  51. package/dist/components/auth/login-sheet-themes/theme-input-baselines.d.ts.map +1 -0
  52. package/dist/components/auth/login-sheet-themes/theme-input-baselines.js +23 -0
  53. package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts +13 -0
  54. package/dist/components/auth/login-sheets/StoreLoginSheetShell.d.ts.map +1 -0
  55. package/dist/components/auth/login-sheets/StoreLoginSheetShell.js +14 -0
  56. package/dist/components/auth/use-login-submit.d.ts +22 -0
  57. package/dist/components/auth/use-login-submit.d.ts.map +1 -0
  58. package/dist/components/auth/use-login-submit.js +99 -0
  59. package/dist/components/cart/InventoryHoldCountdown.d.ts +8 -0
  60. package/dist/components/cart/InventoryHoldCountdown.d.ts.map +1 -0
  61. package/dist/components/cart/InventoryHoldCountdown.js +73 -0
  62. package/dist/components/categories/category-masonry-grid.d.ts +18 -0
  63. package/dist/components/categories/category-masonry-grid.d.ts.map +1 -0
  64. package/dist/components/categories/category-masonry-grid.js +50 -0
  65. package/dist/components/categories/category-masonry-utils.d.ts +9 -0
  66. package/dist/components/categories/category-masonry-utils.d.ts.map +1 -0
  67. package/dist/components/categories/category-masonry-utils.js +67 -0
  68. package/dist/components/checkout/CheckoutFeeLines.d.ts +12 -0
  69. package/dist/components/checkout/CheckoutFeeLines.d.ts.map +1 -0
  70. package/dist/components/checkout/CheckoutFeeLines.js +9 -0
  71. package/dist/components/checkout/ShippingOptionsPanel.d.ts +54 -0
  72. package/dist/components/checkout/ShippingOptionsPanel.d.ts.map +1 -0
  73. package/dist/components/checkout/ShippingOptionsPanel.js +115 -0
  74. package/dist/components/learning/CertificateTemplates.d.ts +25 -0
  75. package/dist/components/learning/CertificateTemplates.d.ts.map +1 -0
  76. package/dist/components/learning/CertificateTemplates.js +31 -0
  77. package/dist/components/learning/CertificateViewer.d.ts +11 -0
  78. package/dist/components/learning/CertificateViewer.d.ts.map +1 -0
  79. package/dist/components/learning/CertificateViewer.js +114 -0
  80. package/dist/components/learning/MentorshipProgress.d.ts +18 -0
  81. package/dist/components/learning/MentorshipProgress.d.ts.map +1 -0
  82. package/dist/components/learning/MentorshipProgress.js +20 -0
  83. package/dist/components/product/ProductVariationSelectors.d.ts +10 -0
  84. package/dist/components/product/ProductVariationSelectors.d.ts.map +1 -0
  85. package/dist/components/product/ProductVariationSelectors.js +27 -0
  86. package/dist/components/rich-text/CategoryDescription.d.ts +7 -0
  87. package/dist/components/rich-text/CategoryDescription.d.ts.map +1 -0
  88. package/dist/components/rich-text/CategoryDescription.js +11 -0
  89. package/dist/components/rich-text/ProductDescription.d.ts +9 -0
  90. package/dist/components/rich-text/ProductDescription.d.ts.map +1 -0
  91. package/dist/components/rich-text/ProductDescription.js +10 -0
  92. package/dist/components/rich-text/RichTextExcerpt.d.ts +10 -0
  93. package/dist/components/rich-text/RichTextExcerpt.d.ts.map +1 -0
  94. package/dist/components/rich-text/RichTextExcerpt.js +12 -0
  95. package/dist/components/rich-text/SafeRichHtml.d.ts +14 -0
  96. package/dist/components/rich-text/SafeRichHtml.d.ts.map +1 -0
  97. package/dist/components/rich-text/SafeRichHtml.js +15 -0
  98. package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts +7 -0
  99. package/dist/components/shipping/MerchantHandledDeliveryNotice.d.ts.map +1 -0
  100. package/dist/components/shipping/MerchantHandledDeliveryNotice.js +7 -0
  101. package/dist/components/shipping/ProductDeliveryInfoSection.d.ts +21 -0
  102. package/dist/components/shipping/ProductDeliveryInfoSection.d.ts.map +1 -0
  103. package/dist/components/shipping/ProductDeliveryInfoSection.js +22 -0
  104. package/dist/components/shipping/ShippingQuoteAddressForm.d.ts +11 -0
  105. package/dist/components/shipping/ShippingQuoteAddressForm.d.ts.map +1 -0
  106. package/dist/components/shipping/ShippingQuoteAddressForm.js +66 -0
  107. package/dist/components/ui/address-selector.d.ts +11 -0
  108. package/dist/components/ui/address-selector.d.ts.map +1 -0
  109. package/dist/components/ui/address-selector.js +21 -0
  110. package/dist/components/ui/alert-modal.d.ts +21 -0
  111. package/dist/components/ui/alert-modal.d.ts.map +1 -0
  112. package/dist/components/ui/alert-modal.js +59 -0
  113. package/dist/components/ui/avatar-image.d.ts +11 -0
  114. package/dist/components/ui/avatar-image.d.ts.map +1 -0
  115. package/dist/components/ui/avatar-image.js +39 -0
  116. package/dist/components/ui/background-patterns.d.ts +27 -0
  117. package/dist/components/ui/background-patterns.d.ts.map +1 -0
  118. package/dist/components/ui/background-patterns.js +5 -0
  119. package/dist/components/ui/badge.d.ts +10 -0
  120. package/dist/components/ui/badge.d.ts.map +1 -0
  121. package/dist/components/ui/badge.js +20 -0
  122. package/dist/components/ui/breadcrumbs.d.ts +12 -0
  123. package/dist/components/ui/breadcrumbs.d.ts.map +1 -0
  124. package/dist/components/ui/breadcrumbs.js +12 -0
  125. package/dist/components/ui/button.d.ts +11 -0
  126. package/dist/components/ui/button.d.ts.map +1 -0
  127. package/dist/components/ui/button.js +34 -0
  128. package/dist/components/ui/card.d.ts +10 -0
  129. package/dist/components/ui/card.d.ts.map +1 -0
  130. package/dist/components/ui/card.js +24 -0
  131. package/dist/components/ui/category-tree.d.ts +16 -0
  132. package/dist/components/ui/category-tree.d.ts.map +1 -0
  133. package/dist/components/ui/category-tree.js +74 -0
  134. package/dist/components/ui/checkout-button.d.ts +11 -0
  135. package/dist/components/ui/checkout-button.d.ts.map +1 -0
  136. package/dist/components/ui/checkout-button.js +298 -0
  137. package/dist/components/ui/dynamic-icon.d.ts +11 -0
  138. package/dist/components/ui/dynamic-icon.d.ts.map +1 -0
  139. package/dist/components/ui/dynamic-icon.js +77 -0
  140. package/dist/components/ui/guest-checkout-modal.d.ts +19 -0
  141. package/dist/components/ui/guest-checkout-modal.d.ts.map +1 -0
  142. package/dist/components/ui/guest-checkout-modal.js +95 -0
  143. package/dist/components/ui/image-skeleton.d.ts +7 -0
  144. package/dist/components/ui/image-skeleton.d.ts.map +1 -0
  145. package/dist/components/ui/image-skeleton.js +15 -0
  146. package/dist/components/ui/image-with-fallback.d.ts +10 -0
  147. package/dist/components/ui/image-with-fallback.d.ts.map +1 -0
  148. package/dist/components/ui/image-with-fallback.js +165 -0
  149. package/dist/components/ui/input.d.ts +6 -0
  150. package/dist/components/ui/input.d.ts.map +1 -0
  151. package/dist/components/ui/input.js +8 -0
  152. package/dist/components/ui/limited-time-offer-badge.d.ts +12 -0
  153. package/dist/components/ui/limited-time-offer-badge.d.ts.map +1 -0
  154. package/dist/components/ui/limited-time-offer-badge.js +13 -0
  155. package/dist/components/ui/loading-skeleton-wrapper.d.ts +6 -0
  156. package/dist/components/ui/loading-skeleton-wrapper.d.ts.map +1 -0
  157. package/dist/components/ui/loading-skeleton-wrapper.js +10 -0
  158. package/dist/components/ui/modal.d.ts +11 -0
  159. package/dist/components/ui/modal.d.ts.map +1 -0
  160. package/dist/components/ui/modal.js +26 -0
  161. package/dist/components/ui/otp-input.d.ts +10 -0
  162. package/dist/components/ui/otp-input.d.ts.map +1 -0
  163. package/dist/components/ui/otp-input.js +57 -0
  164. package/dist/components/ui/out-of-stock-overlay.d.ts +8 -0
  165. package/dist/components/ui/out-of-stock-overlay.d.ts.map +1 -0
  166. package/dist/components/ui/out-of-stock-overlay.js +12 -0
  167. package/dist/components/ui/page-animate-wrapper.d.ts +7 -0
  168. package/dist/components/ui/page-animate-wrapper.d.ts.map +1 -0
  169. package/dist/components/ui/page-animate-wrapper.js +13 -0
  170. package/dist/components/ui/page-content-loader.d.ts +13 -0
  171. package/dist/components/ui/page-content-loader.d.ts.map +1 -0
  172. package/dist/components/ui/page-content-loader.js +12 -0
  173. package/dist/components/ui/page-loader.d.ts +20 -0
  174. package/dist/components/ui/page-loader.d.ts.map +1 -0
  175. package/dist/components/ui/page-loader.js +31 -0
  176. package/dist/components/ui/product-card.d.ts +11 -0
  177. package/dist/components/ui/product-card.d.ts.map +1 -0
  178. package/dist/components/ui/product-card.js +124 -0
  179. package/dist/components/ui/product-rating.d.ts +17 -0
  180. package/dist/components/ui/product-rating.d.ts.map +1 -0
  181. package/dist/components/ui/product-rating.js +54 -0
  182. package/dist/components/ui/product-stock-badge.d.ts +9 -0
  183. package/dist/components/ui/product-stock-badge.d.ts.map +1 -0
  184. package/dist/components/ui/product-stock-badge.js +20 -0
  185. package/dist/components/ui/review-form.d.ts +9 -0
  186. package/dist/components/ui/review-form.d.ts.map +1 -0
  187. package/dist/components/ui/review-form.js +28 -0
  188. package/dist/components/ui/route-skeleton-loader.d.ts +7 -0
  189. package/dist/components/ui/route-skeleton-loader.d.ts.map +1 -0
  190. package/dist/components/ui/route-skeleton-loader.js +75 -0
  191. package/dist/components/ui/sheet.d.ts +29 -0
  192. package/dist/components/ui/sheet.d.ts.map +1 -0
  193. package/dist/components/ui/sheet.js +45 -0
  194. package/dist/components/ui/skeleton.d.ts +3 -0
  195. package/dist/components/ui/skeleton.d.ts.map +1 -0
  196. package/dist/components/ui/skeleton.js +6 -0
  197. package/dist/components/ui/skeletons/category-grid-skeleton.d.ts +6 -0
  198. package/dist/components/ui/skeletons/category-grid-skeleton.d.ts.map +1 -0
  199. package/dist/components/ui/skeletons/category-grid-skeleton.js +9 -0
  200. package/dist/components/ui/skeletons/checkout-skeleton.d.ts +2 -0
  201. package/dist/components/ui/skeletons/checkout-skeleton.d.ts.map +1 -0
  202. package/dist/components/ui/skeletons/checkout-skeleton.js +4 -0
  203. package/dist/components/ui/skeletons/index.d.ts +6 -0
  204. package/dist/components/ui/skeletons/index.d.ts.map +1 -0
  205. package/dist/components/ui/skeletons/index.js +5 -0
  206. package/dist/components/ui/skeletons/page-skeleton.d.ts +2 -0
  207. package/dist/components/ui/skeletons/page-skeleton.d.ts.map +1 -0
  208. package/dist/components/ui/skeletons/page-skeleton.js +4 -0
  209. package/dist/components/ui/skeletons/product-card-skeleton.d.ts +2 -0
  210. package/dist/components/ui/skeletons/product-card-skeleton.d.ts.map +1 -0
  211. package/dist/components/ui/skeletons/product-card-skeleton.js +4 -0
  212. package/dist/components/ui/skeletons/product-detail-skeleton.d.ts +2 -0
  213. package/dist/components/ui/skeletons/product-detail-skeleton.d.ts.map +1 -0
  214. package/dist/components/ui/skeletons/product-detail-skeleton.js +4 -0
  215. package/dist/components/ui/skeletons/product-grid-skeleton.d.ts +7 -0
  216. package/dist/components/ui/skeletons/product-grid-skeleton.d.ts.map +1 -0
  217. package/dist/components/ui/skeletons/product-grid-skeleton.js +12 -0
  218. package/dist/components/ui/store-logos.d.ts +43 -0
  219. package/dist/components/ui/store-logos.d.ts.map +1 -0
  220. package/dist/components/ui/store-logos.js +83 -0
  221. package/dist/components/ui/toast.d.ts +20 -0
  222. package/dist/components/ui/toast.d.ts.map +1 -0
  223. package/dist/components/ui/toast.js +33 -0
  224. package/dist/components/ui/video-player.d.ts +48 -0
  225. package/dist/components/ui/video-player.d.ts.map +1 -0
  226. package/dist/components/ui/video-player.js +101 -0
  227. package/dist/editor/alignment-schemas/booking-agenda.d.ts +3 -0
  228. package/dist/editor/alignment-schemas/booking-agenda.d.ts.map +1 -0
  229. package/dist/editor/alignment-schemas/booking-agenda.js +145 -0
  230. package/dist/editor/alignment-schemas/booking-footer-section.d.ts +4 -0
  231. package/dist/editor/alignment-schemas/booking-footer-section.d.ts.map +1 -0
  232. package/dist/editor/alignment-schemas/booking-footer-section.js +69 -0
  233. package/dist/editor/alignment-schemas/booking.d.ts +3 -0
  234. package/dist/editor/alignment-schemas/booking.d.ts.map +1 -0
  235. package/dist/editor/alignment-schemas/booking.js +476 -0
  236. package/dist/editor/alignment-schemas/clothing-minimal.d.ts +3 -0
  237. package/dist/editor/alignment-schemas/clothing-minimal.d.ts.map +1 -0
  238. package/dist/editor/alignment-schemas/clothing-minimal.js +363 -0
  239. package/dist/editor/alignment-schemas/clothing.d.ts +3 -0
  240. package/dist/editor/alignment-schemas/clothing.d.ts.map +1 -0
  241. package/dist/editor/alignment-schemas/clothing.js +477 -0
  242. package/dist/editor/alignment-schemas/electronics-grid.d.ts +3 -0
  243. package/dist/editor/alignment-schemas/electronics-grid.d.ts.map +1 -0
  244. package/dist/editor/alignment-schemas/electronics-grid.js +97 -0
  245. package/dist/editor/alignment-schemas/electronics.d.ts +3 -0
  246. package/dist/editor/alignment-schemas/electronics.d.ts.map +1 -0
  247. package/dist/editor/alignment-schemas/electronics.js +145 -0
  248. package/dist/editor/alignment-schemas/food-modern.d.ts +3 -0
  249. package/dist/editor/alignment-schemas/food-modern.d.ts.map +1 -0
  250. package/dist/editor/alignment-schemas/food-modern.js +237 -0
  251. package/dist/editor/alignment-schemas/food.d.ts +3 -0
  252. package/dist/editor/alignment-schemas/food.d.ts.map +1 -0
  253. package/dist/editor/alignment-schemas/food.js +494 -0
  254. package/dist/editor/alignment-schemas/index.d.ts +15 -0
  255. package/dist/editor/alignment-schemas/index.d.ts.map +1 -0
  256. package/dist/editor/alignment-schemas/index.js +50 -0
  257. package/dist/editor/alignment-schemas/lazy-loader.d.ts +14 -0
  258. package/dist/editor/alignment-schemas/lazy-loader.d.ts.map +1 -0
  259. package/dist/editor/alignment-schemas/lazy-loader.js +80 -0
  260. package/dist/editor/alignment-schemas/metadata.d.ts +25 -0
  261. package/dist/editor/alignment-schemas/metadata.d.ts.map +1 -0
  262. package/dist/editor/alignment-schemas/metadata.js +225 -0
  263. package/dist/editor/alignment-schemas/motivational-speaker.d.ts +3 -0
  264. package/dist/editor/alignment-schemas/motivational-speaker.d.ts.map +1 -0
  265. package/dist/editor/alignment-schemas/motivational-speaker.js +185 -0
  266. package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts +18 -0
  267. package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.d.ts.map +1 -0
  268. package/dist/editor/alignment-schemas/resolve-canvas-inspector-leaf.js +166 -0
  269. package/dist/editor/alignment-schemas/resolve-field.d.ts +9 -0
  270. package/dist/editor/alignment-schemas/resolve-field.d.ts.map +1 -0
  271. package/dist/editor/alignment-schemas/resolve-field.js +56 -0
  272. package/dist/editor/alignment-schemas/types.d.ts +53 -0
  273. package/dist/editor/alignment-schemas/types.d.ts.map +1 -0
  274. package/dist/editor/alignment-schemas/types.js +1 -0
  275. package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts +9 -0
  276. package/dist/editor/blocks/defaults/clothing-minimal-home.d.ts.map +1 -0
  277. package/dist/editor/blocks/defaults/clothing-minimal-home.js +207 -0
  278. package/dist/editor/blocks/index.d.ts +4 -0
  279. package/dist/editor/blocks/index.d.ts.map +1 -0
  280. package/dist/editor/blocks/index.js +3 -0
  281. package/dist/editor/blocks/migrate-clothing-minimal.d.ts +5 -0
  282. package/dist/editor/blocks/migrate-clothing-minimal.d.ts.map +1 -0
  283. package/dist/editor/blocks/migrate-clothing-minimal.js +140 -0
  284. package/dist/editor/blocks/nav-outline-utils.d.ts +47 -0
  285. package/dist/editor/blocks/nav-outline-utils.d.ts.map +1 -0
  286. package/dist/editor/blocks/nav-outline-utils.js +201 -0
  287. package/dist/editor/blocks/registry.d.ts +19 -0
  288. package/dist/editor/blocks/registry.d.ts.map +1 -0
  289. package/dist/editor/blocks/registry.js +118 -0
  290. package/dist/editor/blocks/types.d.ts +14 -0
  291. package/dist/editor/blocks/types.d.ts.map +1 -0
  292. package/dist/editor/blocks/types.js +14 -0
  293. package/dist/editor/document/adapter.d.ts +44 -0
  294. package/dist/editor/document/adapter.d.ts.map +1 -0
  295. package/dist/editor/document/adapter.js +159 -0
  296. package/dist/editor/document/block-tree.d.ts +46 -0
  297. package/dist/editor/document/block-tree.d.ts.map +1 -0
  298. package/dist/editor/document/block-tree.js +345 -0
  299. package/dist/editor/document/constants.d.ts +6 -0
  300. package/dist/editor/document/constants.d.ts.map +1 -0
  301. package/dist/editor/document/constants.js +14 -0
  302. package/dist/editor/document/index.d.ts +7 -0
  303. package/dist/editor/document/index.d.ts.map +1 -0
  304. package/dist/editor/document/index.js +6 -0
  305. package/dist/editor/document/layout-id.d.ts +3 -0
  306. package/dist/editor/document/layout-id.d.ts.map +1 -0
  307. package/dist/editor/document/layout-id.js +17 -0
  308. package/dist/editor/document/types.d.ts +91 -0
  309. package/dist/editor/document/types.d.ts.map +1 -0
  310. package/dist/editor/document/types.js +1 -0
  311. package/dist/editor/document/validate.d.ts +11 -0
  312. package/dist/editor/document/validate.d.ts.map +1 -0
  313. package/dist/editor/document/validate.js +92 -0
  314. package/dist/editor/feature-flags.d.ts +11 -0
  315. package/dist/editor/feature-flags.d.ts.map +1 -0
  316. package/dist/editor/feature-flags.js +19 -0
  317. package/dist/editor/index.d.ts +28 -0
  318. package/dist/editor/index.d.ts.map +1 -0
  319. package/dist/editor/index.js +72 -0
  320. package/dist/editor/layout-content-loader.d.ts +13 -0
  321. package/dist/editor/layout-content-loader.d.ts.map +1 -0
  322. package/dist/editor/layout-content-loader.js +222 -0
  323. package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts +20 -0
  324. package/dist/editor/payaza-form/ActiveArrayFocusContext.d.ts.map +1 -0
  325. package/dist/editor/payaza-form/ActiveArrayFocusContext.js +31 -0
  326. package/dist/editor/payaza-form/ArrayItemManager.d.ts +19 -0
  327. package/dist/editor/payaza-form/ArrayItemManager.d.ts.map +1 -0
  328. package/dist/editor/payaza-form/ArrayItemManager.js +62 -0
  329. package/dist/editor/payaza-form/AssetSelectionContext.d.ts +17 -0
  330. package/dist/editor/payaza-form/AssetSelectionContext.d.ts.map +1 -0
  331. package/dist/editor/payaza-form/AssetSelectionContext.js +81 -0
  332. package/dist/editor/payaza-form/EditorCanvasPreview.d.ts +41 -0
  333. package/dist/editor/payaza-form/EditorCanvasPreview.d.ts.map +1 -0
  334. package/dist/editor/payaza-form/EditorCanvasPreview.js +56 -0
  335. package/dist/editor/payaza-form/EditorLayoutContext.d.ts +8 -0
  336. package/dist/editor/payaza-form/EditorLayoutContext.d.ts.map +1 -0
  337. package/dist/editor/payaza-form/EditorLayoutContext.js +6 -0
  338. package/dist/editor/payaza-form/FieldRenderer.d.ts +16 -0
  339. package/dist/editor/payaza-form/FieldRenderer.d.ts.map +1 -0
  340. package/dist/editor/payaza-form/FieldRenderer.js +192 -0
  341. package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts +29 -0
  342. package/dist/editor/payaza-form/IframePreviewMessageBridge.d.ts.map +1 -0
  343. package/dist/editor/payaza-form/IframePreviewMessageBridge.js +46 -0
  344. package/dist/editor/payaza-form/PayazaFormEditor.d.ts +12 -0
  345. package/dist/editor/payaza-form/PayazaFormEditor.d.ts.map +1 -0
  346. package/dist/editor/payaza-form/PayazaFormEditor.js +1226 -0
  347. package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts +9 -0
  348. package/dist/editor/payaza-form/PayazaFormEditorFullPage.d.ts.map +1 -0
  349. package/dist/editor/payaza-form/PayazaFormEditorFullPage.js +6 -0
  350. package/dist/editor/payaza-form/SliderArrayEditor.d.ts +17 -0
  351. package/dist/editor/payaza-form/SliderArrayEditor.d.ts.map +1 -0
  352. package/dist/editor/payaza-form/SliderArrayEditor.js +96 -0
  353. package/dist/editor/payaza-form/components/ArrayField.d.ts +21 -0
  354. package/dist/editor/payaza-form/components/ArrayField.d.ts.map +1 -0
  355. package/dist/editor/payaza-form/components/ArrayField.js +18 -0
  356. package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts +9 -0
  357. package/dist/editor/payaza-form/components/BlockStylesInspector.d.ts.map +1 -0
  358. package/dist/editor/payaza-form/components/BlockStylesInspector.js +150 -0
  359. package/dist/editor/payaza-form/components/BlocksField.d.ts +17 -0
  360. package/dist/editor/payaza-form/components/BlocksField.d.ts.map +1 -0
  361. package/dist/editor/payaza-form/components/BlocksField.js +108 -0
  362. package/dist/editor/payaza-form/components/ButtonField.d.ts +15 -0
  363. package/dist/editor/payaza-form/components/ButtonField.d.ts.map +1 -0
  364. package/dist/editor/payaza-form/components/ButtonField.js +17 -0
  365. package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts +16 -0
  366. package/dist/editor/payaza-form/components/CanvasGranularInspector.d.ts.map +1 -0
  367. package/dist/editor/payaza-form/components/CanvasGranularInspector.js +32 -0
  368. package/dist/editor/payaza-form/components/FieldDensityContext.d.ts +10 -0
  369. package/dist/editor/payaza-form/components/FieldDensityContext.d.ts.map +1 -0
  370. package/dist/editor/payaza-form/components/FieldDensityContext.js +13 -0
  371. package/dist/editor/payaza-form/components/IconField.d.ts +12 -0
  372. package/dist/editor/payaza-form/components/IconField.d.ts.map +1 -0
  373. package/dist/editor/payaza-form/components/IconField.js +42 -0
  374. package/dist/editor/payaza-form/components/ImageField.d.ts +10 -0
  375. package/dist/editor/payaza-form/components/ImageField.d.ts.map +1 -0
  376. package/dist/editor/payaza-form/components/ImageField.js +30 -0
  377. package/dist/editor/payaza-form/components/NumberField.d.ts +14 -0
  378. package/dist/editor/payaza-form/components/NumberField.d.ts.map +1 -0
  379. package/dist/editor/payaza-form/components/NumberField.js +23 -0
  380. package/dist/editor/payaza-form/components/ObjectField.d.ts +11 -0
  381. package/dist/editor/payaza-form/components/ObjectField.d.ts.map +1 -0
  382. package/dist/editor/payaza-form/components/ObjectField.js +7 -0
  383. package/dist/editor/payaza-form/components/RichTextField.d.ts +15 -0
  384. package/dist/editor/payaza-form/components/RichTextField.d.ts.map +1 -0
  385. package/dist/editor/payaza-form/components/RichTextField.js +88 -0
  386. package/dist/editor/payaza-form/components/SectionField.d.ts +14 -0
  387. package/dist/editor/payaza-form/components/SectionField.d.ts.map +1 -0
  388. package/dist/editor/payaza-form/components/SectionField.js +8 -0
  389. package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts +18 -0
  390. package/dist/editor/payaza-form/components/SectionSchemaInspector.d.ts.map +1 -0
  391. package/dist/editor/payaza-form/components/SectionSchemaInspector.js +64 -0
  392. package/dist/editor/payaza-form/components/SegmentedControlField.d.ts +13 -0
  393. package/dist/editor/payaza-form/components/SegmentedControlField.d.ts.map +1 -0
  394. package/dist/editor/payaza-form/components/SegmentedControlField.js +7 -0
  395. package/dist/editor/payaza-form/components/StarRatingField.d.ts +13 -0
  396. package/dist/editor/payaza-form/components/StarRatingField.d.ts.map +1 -0
  397. package/dist/editor/payaza-form/components/StarRatingField.js +16 -0
  398. package/dist/editor/payaza-form/components/TextField.d.ts +13 -0
  399. package/dist/editor/payaza-form/components/TextField.d.ts.map +1 -0
  400. package/dist/editor/payaza-form/components/TextField.js +12 -0
  401. package/dist/editor/payaza-form/components/TextareaField.d.ts +11 -0
  402. package/dist/editor/payaza-form/components/TextareaField.d.ts.map +1 -0
  403. package/dist/editor/payaza-form/components/TextareaField.js +6 -0
  404. package/dist/editor/payaza-form/components/ToggleField.d.ts +12 -0
  405. package/dist/editor/payaza-form/components/ToggleField.d.ts.map +1 -0
  406. package/dist/editor/payaza-form/components/ToggleField.js +15 -0
  407. package/dist/editor/payaza-form/data-merger.d.ts +28 -0
  408. package/dist/editor/payaza-form/data-merger.d.ts.map +1 -0
  409. package/dist/editor/payaza-form/data-merger.js +878 -0
  410. package/dist/editor/payaza-form/data-transformer.d.ts +28 -0
  411. package/dist/editor/payaza-form/data-transformer.d.ts.map +1 -0
  412. package/dist/editor/payaza-form/data-transformer.js +304 -0
  413. package/dist/editor/payaza-form/engine.d.ts +72 -0
  414. package/dist/editor/payaza-form/engine.d.ts.map +1 -0
  415. package/dist/editor/payaza-form/engine.js +140 -0
  416. package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts +8 -0
  417. package/dist/editor/payaza-form/examples/custom-widgets.example.d.ts.map +1 -0
  418. package/dist/editor/payaza-form/examples/custom-widgets.example.js +51 -0
  419. package/dist/editor/payaza-form/field-renderer-ref.d.ts +4 -0
  420. package/dist/editor/payaza-form/field-renderer-ref.d.ts.map +1 -0
  421. package/dist/editor/payaza-form/field-renderer-ref.js +16 -0
  422. package/dist/editor/payaza-form/index.d.ts +11 -0
  423. package/dist/editor/payaza-form/index.d.ts.map +1 -0
  424. package/dist/editor/payaza-form/index.js +8 -0
  425. package/dist/editor/payaza-form/layout-loader.d.ts +12 -0
  426. package/dist/editor/payaza-form/layout-loader.d.ts.map +1 -0
  427. package/dist/editor/payaza-form/layout-loader.js +43 -0
  428. package/dist/editor/payaza-form/payaza-style-sanitize.d.ts +14 -0
  429. package/dist/editor/payaza-form/payaza-style-sanitize.d.ts.map +1 -0
  430. package/dist/editor/payaza-form/payaza-style-sanitize.js +76 -0
  431. package/dist/editor/payaza-form/preview-message-handler.d.ts +18 -0
  432. package/dist/editor/payaza-form/preview-message-handler.d.ts.map +1 -0
  433. package/dist/editor/payaza-form/preview-message-handler.js +89 -0
  434. package/dist/editor/payaza-form/schema-bridge.d.ts +12 -0
  435. package/dist/editor/payaza-form/schema-bridge.d.ts.map +1 -0
  436. package/dist/editor/payaza-form/schema-bridge.js +90 -0
  437. package/dist/editor/payaza-form/widget-registry.d.ts +94 -0
  438. package/dist/editor/payaza-form/widget-registry.d.ts.map +1 -0
  439. package/dist/editor/payaza-form/widget-registry.js +107 -0
  440. package/dist/editor/shared/AIGenerateModal.d.ts +17 -0
  441. package/dist/editor/shared/AIGenerateModal.d.ts.map +1 -0
  442. package/dist/editor/shared/AIGenerateModal.js +59 -0
  443. package/dist/editor/shared/BlockOutlineTree.d.ts +14 -0
  444. package/dist/editor/shared/BlockOutlineTree.d.ts.map +1 -0
  445. package/dist/editor/shared/BlockOutlineTree.js +47 -0
  446. package/dist/editor/shared/EditorHeader.d.ts +61 -0
  447. package/dist/editor/shared/EditorHeader.d.ts.map +1 -0
  448. package/dist/editor/shared/EditorHeader.js +181 -0
  449. package/dist/editor/shared/EditorNavigator.d.ts +42 -0
  450. package/dist/editor/shared/EditorNavigator.d.ts.map +1 -0
  451. package/dist/editor/shared/EditorNavigator.js +44 -0
  452. package/dist/editor/shared/IframePreview.d.ts +36 -0
  453. package/dist/editor/shared/IframePreview.d.ts.map +1 -0
  454. package/dist/editor/shared/IframePreview.js +217 -0
  455. package/dist/editor/shared/InlineCanvasPreview.d.ts +36 -0
  456. package/dist/editor/shared/InlineCanvasPreview.d.ts.map +1 -0
  457. package/dist/editor/shared/InlineCanvasPreview.js +174 -0
  458. package/dist/editor/shared/LayoutRenderer.d.ts +11 -0
  459. package/dist/editor/shared/LayoutRenderer.d.ts.map +1 -0
  460. package/dist/editor/shared/LayoutRenderer.js +7 -0
  461. package/dist/editor/shared/PageTabs.d.ts +13 -0
  462. package/dist/editor/shared/PageTabs.d.ts.map +1 -0
  463. package/dist/editor/shared/PageTabs.js +6 -0
  464. package/dist/editor/shared/ResizableSidebar.d.ts +14 -0
  465. package/dist/editor/shared/ResizableSidebar.d.ts.map +1 -0
  466. package/dist/editor/shared/ResizableSidebar.js +45 -0
  467. package/dist/editor/shared/index.d.ts +8 -0
  468. package/dist/editor/shared/index.d.ts.map +1 -0
  469. package/dist/editor/shared/index.js +7 -0
  470. package/dist/editor/shared/preview-viewport.d.ts +9 -0
  471. package/dist/editor/shared/preview-viewport.d.ts.map +1 -0
  472. package/dist/editor/shared/preview-viewport.js +17 -0
  473. package/dist/editor/shared/useEditorChromeMetrics.d.ts +15 -0
  474. package/dist/editor/shared/useEditorChromeMetrics.d.ts.map +1 -0
  475. package/dist/editor/shared/useEditorChromeMetrics.js +52 -0
  476. package/dist/editor/types.d.ts +162 -0
  477. package/dist/editor/types.d.ts.map +1 -0
  478. package/dist/editor/types.js +1 -0
  479. package/dist/hooks/use-analytics.d.ts +15 -0
  480. package/dist/hooks/use-analytics.d.ts.map +1 -0
  481. package/dist/hooks/use-analytics.js +62 -0
  482. package/dist/hooks/use-api.d.ts +17 -0
  483. package/dist/hooks/use-api.d.ts.map +1 -0
  484. package/dist/hooks/use-api.js +53 -0
  485. package/dist/hooks/use-cart-api.d.ts +28 -0
  486. package/dist/hooks/use-cart-api.d.ts.map +1 -0
  487. package/dist/hooks/use-cart-api.js +116 -0
  488. package/dist/hooks/use-catalog-loader.d.ts +19 -0
  489. package/dist/hooks/use-catalog-loader.d.ts.map +1 -0
  490. package/dist/hooks/use-catalog-loader.js +107 -0
  491. package/dist/hooks/use-catalog-price-range.d.ts +17 -0
  492. package/dist/hooks/use-catalog-price-range.d.ts.map +1 -0
  493. package/dist/hooks/use-catalog-price-range.js +26 -0
  494. package/dist/hooks/use-checkout-fees.d.ts +16 -0
  495. package/dist/hooks/use-checkout-fees.d.ts.map +1 -0
  496. package/dist/hooks/use-checkout-fees.js +105 -0
  497. package/dist/hooks/use-content-ready.d.ts +17 -0
  498. package/dist/hooks/use-content-ready.d.ts.map +1 -0
  499. package/dist/hooks/use-content-ready.js +197 -0
  500. package/dist/hooks/use-debounce.d.ts +6 -0
  501. package/dist/hooks/use-debounce.d.ts.map +1 -0
  502. package/dist/hooks/use-debounce.js +17 -0
  503. package/dist/hooks/use-multi-store-checkout-fees.d.ts +25 -0
  504. package/dist/hooks/use-multi-store-checkout-fees.d.ts.map +1 -0
  505. package/dist/hooks/use-multi-store-checkout-fees.js +116 -0
  506. package/dist/hooks/use-navigation-loading.d.ts +4 -0
  507. package/dist/hooks/use-navigation-loading.d.ts.map +1 -0
  508. package/dist/hooks/use-navigation-loading.js +14 -0
  509. package/dist/hooks/use-payaza-checkout.d.ts +15 -0
  510. package/dist/hooks/use-payaza-checkout.d.ts.map +1 -0
  511. package/dist/hooks/use-payaza-checkout.js +123 -0
  512. package/dist/hooks/use-product-variation-selection.d.ts +26 -0
  513. package/dist/hooks/use-product-variation-selection.d.ts.map +1 -0
  514. package/dist/hooks/use-product-variation-selection.js +26 -0
  515. package/dist/hooks/use-products-api.d.ts +19 -0
  516. package/dist/hooks/use-products-api.d.ts.map +1 -0
  517. package/dist/hooks/use-products-api.js +84 -0
  518. package/dist/hooks/use-shipping-quote.d.ts +25 -0
  519. package/dist/hooks/use-shipping-quote.d.ts.map +1 -0
  520. package/dist/hooks/use-shipping-quote.js +80 -0
  521. package/dist/hooks/use-store-api.d.ts +12 -0
  522. package/dist/hooks/use-store-api.d.ts.map +1 -0
  523. package/dist/hooks/use-store-api.js +73 -0
  524. package/dist/hooks/usePreviewSlideSync.d.ts +5 -0
  525. package/dist/hooks/usePreviewSlideSync.d.ts.map +1 -0
  526. package/dist/hooks/usePreviewSlideSync.js +28 -0
  527. package/dist/index.d.ts +150 -0
  528. package/dist/index.d.ts.map +1 -0
  529. package/dist/index.js +164 -0
  530. package/dist/json/booking-agenda.json +166 -0
  531. package/dist/json/booking.json +224 -0
  532. package/dist/json/clothing-minimal.json +203 -0
  533. package/dist/json/clothing.json +418 -0
  534. package/dist/json/electronics-grid.json +246 -0
  535. package/dist/json/electronics.json +303 -0
  536. package/dist/json/food-modern.json +191 -0
  537. package/dist/json/food.json +283 -0
  538. package/dist/json/json-map.d.ts +7 -0
  539. package/dist/json/json-map.d.ts.map +1 -0
  540. package/dist/json/json-map.js +36 -0
  541. package/dist/json/motivational-speaker.json +361 -0
  542. package/dist/layouts/booking/components/BookingHomePage.d.ts +7 -0
  543. package/dist/layouts/booking/components/BookingHomePage.d.ts.map +1 -0
  544. package/dist/layouts/booking/components/BookingHomePage.js +107 -0
  545. package/dist/layouts/booking/components/BookingMultilineHeading.d.ts +20 -0
  546. package/dist/layouts/booking/components/BookingMultilineHeading.d.ts.map +1 -0
  547. package/dist/layouts/booking/components/BookingMultilineHeading.js +32 -0
  548. package/dist/layouts/booking/components/BookingTestimonialCard.d.ts +10 -0
  549. package/dist/layouts/booking/components/BookingTestimonialCard.d.ts.map +1 -0
  550. package/dist/layouts/booking/components/BookingTestimonialCard.js +11 -0
  551. package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts +9 -0
  552. package/dist/layouts/booking/components/BookingTestimonialsEmptyState.d.ts.map +1 -0
  553. package/dist/layouts/booking/components/BookingTestimonialsEmptyState.js +19 -0
  554. package/dist/layouts/booking/components/booking-about-defaults.d.ts +26 -0
  555. package/dist/layouts/booking/components/booking-about-defaults.d.ts.map +1 -0
  556. package/dist/layouts/booking/components/booking-about-defaults.js +99 -0
  557. package/dist/layouts/booking/components/booking-footer-defaults.d.ts +19 -0
  558. package/dist/layouts/booking/components/booking-footer-defaults.d.ts.map +1 -0
  559. package/dist/layouts/booking/components/booking-footer-defaults.js +52 -0
  560. package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts +21 -0
  561. package/dist/layouts/booking/components/booking-testimonial-defaults.d.ts.map +1 -0
  562. package/dist/layouts/booking/components/booking-testimonial-defaults.js +112 -0
  563. package/dist/layouts/booking/index.d.ts +9 -0
  564. package/dist/layouts/booking/index.d.ts.map +1 -0
  565. package/dist/layouts/booking/index.js +9 -0
  566. package/dist/layouts/booking/pages/AboutPage.d.ts +7 -0
  567. package/dist/layouts/booking/pages/AboutPage.d.ts.map +1 -0
  568. package/dist/layouts/booking/pages/AboutPage.js +69 -0
  569. package/dist/layouts/booking/pages/BookPage.d.ts +8 -0
  570. package/dist/layouts/booking/pages/BookPage.d.ts.map +1 -0
  571. package/dist/layouts/booking/pages/BookPage.js +482 -0
  572. package/dist/layouts/booking/pages/CategoriesPage.d.ts +7 -0
  573. package/dist/layouts/booking/pages/CategoriesPage.d.ts.map +1 -0
  574. package/dist/layouts/booking/pages/CategoriesPage.js +30 -0
  575. package/dist/layouts/booking/pages/CategoryPage.d.ts +8 -0
  576. package/dist/layouts/booking/pages/CategoryPage.d.ts.map +1 -0
  577. package/dist/layouts/booking/pages/CategoryPage.js +51 -0
  578. package/dist/layouts/booking/pages/ContactPage.d.ts +7 -0
  579. package/dist/layouts/booking/pages/ContactPage.d.ts.map +1 -0
  580. package/dist/layouts/booking/pages/ContactPage.js +59 -0
  581. package/dist/layouts/booking/pages/ProductDetailPage.d.ts +8 -0
  582. package/dist/layouts/booking/pages/ProductDetailPage.d.ts.map +1 -0
  583. package/dist/layouts/booking/pages/ProductDetailPage.js +433 -0
  584. package/dist/layouts/booking/pages/ServicesPage.d.ts +9 -0
  585. package/dist/layouts/booking/pages/ServicesPage.d.ts.map +1 -0
  586. package/dist/layouts/booking/pages/ServicesPage.js +54 -0
  587. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts +7 -0
  588. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.d.ts.map +1 -0
  589. package/dist/layouts/booking-agenda/components/BookingHomePageAgenda.js +283 -0
  590. package/dist/layouts/booking-agenda/index.d.ts +9 -0
  591. package/dist/layouts/booking-agenda/index.d.ts.map +1 -0
  592. package/dist/layouts/booking-agenda/index.js +9 -0
  593. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts +7 -0
  594. package/dist/layouts/booking-agenda/pages/AboutPage.d.ts.map +1 -0
  595. package/dist/layouts/booking-agenda/pages/AboutPage.js +51 -0
  596. package/dist/layouts/booking-agenda/pages/BookPage.d.ts +8 -0
  597. package/dist/layouts/booking-agenda/pages/BookPage.d.ts.map +1 -0
  598. package/dist/layouts/booking-agenda/pages/BookPage.js +468 -0
  599. package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts +7 -0
  600. package/dist/layouts/booking-agenda/pages/CategoriesPage.d.ts.map +1 -0
  601. package/dist/layouts/booking-agenda/pages/CategoriesPage.js +23 -0
  602. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts +8 -0
  603. package/dist/layouts/booking-agenda/pages/CategoryPage.d.ts.map +1 -0
  604. package/dist/layouts/booking-agenda/pages/CategoryPage.js +48 -0
  605. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts +7 -0
  606. package/dist/layouts/booking-agenda/pages/ContactPage.d.ts.map +1 -0
  607. package/dist/layouts/booking-agenda/pages/ContactPage.js +57 -0
  608. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts +8 -0
  609. package/dist/layouts/booking-agenda/pages/ProductDetailPage.d.ts.map +1 -0
  610. package/dist/layouts/booking-agenda/pages/ProductDetailPage.js +433 -0
  611. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts +9 -0
  612. package/dist/layouts/booking-agenda/pages/ServicesPage.d.ts.map +1 -0
  613. package/dist/layouts/booking-agenda/pages/ServicesPage.js +46 -0
  614. package/dist/layouts/clothing/components/ClothingHomePage.d.ts +7 -0
  615. package/dist/layouts/clothing/components/ClothingHomePage.d.ts.map +1 -0
  616. package/dist/layouts/clothing/components/ClothingHomePage.js +260 -0
  617. package/dist/layouts/clothing/index.d.ts +8 -0
  618. package/dist/layouts/clothing/index.d.ts.map +1 -0
  619. package/dist/layouts/clothing/index.js +8 -0
  620. package/dist/layouts/clothing/pages/AboutPage.d.ts +7 -0
  621. package/dist/layouts/clothing/pages/AboutPage.d.ts.map +1 -0
  622. package/dist/layouts/clothing/pages/AboutPage.js +55 -0
  623. package/dist/layouts/clothing/pages/CategoriesPage.d.ts +7 -0
  624. package/dist/layouts/clothing/pages/CategoriesPage.d.ts.map +1 -0
  625. package/dist/layouts/clothing/pages/CategoriesPage.js +34 -0
  626. package/dist/layouts/clothing/pages/CategoryPage.d.ts +8 -0
  627. package/dist/layouts/clothing/pages/CategoryPage.d.ts.map +1 -0
  628. package/dist/layouts/clothing/pages/CategoryPage.js +77 -0
  629. package/dist/layouts/clothing/pages/ContactPage.d.ts +7 -0
  630. package/dist/layouts/clothing/pages/ContactPage.d.ts.map +1 -0
  631. package/dist/layouts/clothing/pages/ContactPage.js +58 -0
  632. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts +8 -0
  633. package/dist/layouts/clothing/pages/ProductDetailPage.d.ts.map +1 -0
  634. package/dist/layouts/clothing/pages/ProductDetailPage.js +393 -0
  635. package/dist/layouts/clothing/pages/ProductsPage.d.ts +7 -0
  636. package/dist/layouts/clothing/pages/ProductsPage.d.ts.map +1 -0
  637. package/dist/layouts/clothing/pages/ProductsPage.js +268 -0
  638. package/dist/layouts/clothing/payaza-bindings.d.ts +23 -0
  639. package/dist/layouts/clothing/payaza-bindings.d.ts.map +1 -0
  640. package/dist/layouts/clothing/payaza-bindings.js +17 -0
  641. package/dist/layouts/clothing/styles/clothing.css +80 -0
  642. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts +7 -0
  643. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.d.ts.map +1 -0
  644. package/dist/layouts/clothing-minimal/components/ClothingHomePageMinimal.js +163 -0
  645. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts +40 -0
  646. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.d.ts.map +1 -0
  647. package/dist/layouts/clothing-minimal/components/clothing-minimal-block-render.js +180 -0
  648. package/dist/layouts/clothing-minimal/index.d.ts +8 -0
  649. package/dist/layouts/clothing-minimal/index.d.ts.map +1 -0
  650. package/dist/layouts/clothing-minimal/index.js +8 -0
  651. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts +7 -0
  652. package/dist/layouts/clothing-minimal/pages/AboutPage.d.ts.map +1 -0
  653. package/dist/layouts/clothing-minimal/pages/AboutPage.js +71 -0
  654. package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts +7 -0
  655. package/dist/layouts/clothing-minimal/pages/CategoriesPage.d.ts.map +1 -0
  656. package/dist/layouts/clothing-minimal/pages/CategoriesPage.js +35 -0
  657. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts +8 -0
  658. package/dist/layouts/clothing-minimal/pages/CategoryPage.d.ts.map +1 -0
  659. package/dist/layouts/clothing-minimal/pages/CategoryPage.js +56 -0
  660. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts +7 -0
  661. package/dist/layouts/clothing-minimal/pages/ContactPage.d.ts.map +1 -0
  662. package/dist/layouts/clothing-minimal/pages/ContactPage.js +53 -0
  663. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts +8 -0
  664. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.d.ts.map +1 -0
  665. package/dist/layouts/clothing-minimal/pages/ProductDetailPage.js +432 -0
  666. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts +7 -0
  667. package/dist/layouts/clothing-minimal/pages/ProductsPage.d.ts.map +1 -0
  668. package/dist/layouts/clothing-minimal/pages/ProductsPage.js +274 -0
  669. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts +7 -0
  670. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.d.ts.map +1 -0
  671. package/dist/layouts/electronics/components/ElectronicsCategoriesPage.js +40 -0
  672. package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts +10 -0
  673. package/dist/layouts/electronics/components/ElectronicsGridProductCard.d.ts.map +1 -0
  674. package/dist/layouts/electronics/components/ElectronicsGridProductCard.js +107 -0
  675. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts +7 -0
  676. package/dist/layouts/electronics/components/ElectronicsHomePage.d.ts.map +1 -0
  677. package/dist/layouts/electronics/components/ElectronicsHomePage.js +96 -0
  678. package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts +8 -0
  679. package/dist/layouts/electronics/components/ElectronicsPageWrapper.d.ts.map +1 -0
  680. package/dist/layouts/electronics/components/ElectronicsPageWrapper.js +10 -0
  681. package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts +7 -0
  682. package/dist/layouts/electronics/components/ElectronicsProductsPage.d.ts.map +1 -0
  683. package/dist/layouts/electronics/components/ElectronicsProductsPage.js +99 -0
  684. package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts +7 -0
  685. package/dist/layouts/electronics/components/ElectronicsStoreFooter.d.ts.map +1 -0
  686. package/dist/layouts/electronics/components/ElectronicsStoreFooter.js +11 -0
  687. package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts +7 -0
  688. package/dist/layouts/electronics/components/ElectronicsStoreHeader.d.ts.map +1 -0
  689. package/dist/layouts/electronics/components/ElectronicsStoreHeader.js +39 -0
  690. package/dist/layouts/electronics/index.d.ts +19 -0
  691. package/dist/layouts/electronics/index.d.ts.map +1 -0
  692. package/dist/layouts/electronics/index.js +19 -0
  693. package/dist/layouts/electronics/pages/AboutPage.d.ts +7 -0
  694. package/dist/layouts/electronics/pages/AboutPage.d.ts.map +1 -0
  695. package/dist/layouts/electronics/pages/AboutPage.js +51 -0
  696. package/dist/layouts/electronics/pages/CategoriesPage.d.ts +7 -0
  697. package/dist/layouts/electronics/pages/CategoriesPage.d.ts.map +1 -0
  698. package/dist/layouts/electronics/pages/CategoriesPage.js +6 -0
  699. package/dist/layouts/electronics/pages/CategoryPage.d.ts +8 -0
  700. package/dist/layouts/electronics/pages/CategoryPage.d.ts.map +1 -0
  701. package/dist/layouts/electronics/pages/CategoryPage.js +55 -0
  702. package/dist/layouts/electronics/pages/ContactPage.d.ts +7 -0
  703. package/dist/layouts/electronics/pages/ContactPage.d.ts.map +1 -0
  704. package/dist/layouts/electronics/pages/ContactPage.js +57 -0
  705. package/dist/layouts/electronics/pages/HelpCenterPage.d.ts +7 -0
  706. package/dist/layouts/electronics/pages/HelpCenterPage.d.ts.map +1 -0
  707. package/dist/layouts/electronics/pages/HelpCenterPage.js +55 -0
  708. package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts +7 -0
  709. package/dist/layouts/electronics/pages/PrivacyPolicyPage.d.ts.map +1 -0
  710. package/dist/layouts/electronics/pages/PrivacyPolicyPage.js +9 -0
  711. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts +8 -0
  712. package/dist/layouts/electronics/pages/ProductDetailPage.d.ts.map +1 -0
  713. package/dist/layouts/electronics/pages/ProductDetailPage.js +430 -0
  714. package/dist/layouts/electronics/pages/ProductsPage.d.ts +7 -0
  715. package/dist/layouts/electronics/pages/ProductsPage.d.ts.map +1 -0
  716. package/dist/layouts/electronics/pages/ProductsPage.js +273 -0
  717. package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts +7 -0
  718. package/dist/layouts/electronics/pages/ShippingReturnsPage.d.ts.map +1 -0
  719. package/dist/layouts/electronics/pages/ShippingReturnsPage.js +7 -0
  720. package/dist/layouts/electronics/pages/TermsPage.d.ts +7 -0
  721. package/dist/layouts/electronics/pages/TermsPage.d.ts.map +1 -0
  722. package/dist/layouts/electronics/pages/TermsPage.js +9 -0
  723. package/dist/layouts/electronics/pages/TrackOrderPage.d.ts +7 -0
  724. package/dist/layouts/electronics/pages/TrackOrderPage.d.ts.map +1 -0
  725. package/dist/layouts/electronics/pages/TrackOrderPage.js +376 -0
  726. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts +10 -0
  727. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.d.ts.map +1 -0
  728. package/dist/layouts/electronics-grid/components/ElectronicsGridProductCard.js +107 -0
  729. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts +7 -0
  730. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.d.ts.map +1 -0
  731. package/dist/layouts/electronics-grid/components/ElectronicsHomePageGrid.js +111 -0
  732. package/dist/layouts/electronics-grid/index.d.ts +15 -0
  733. package/dist/layouts/electronics-grid/index.d.ts.map +1 -0
  734. package/dist/layouts/electronics-grid/index.js +15 -0
  735. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts +7 -0
  736. package/dist/layouts/electronics-grid/pages/AboutPage.d.ts.map +1 -0
  737. package/dist/layouts/electronics-grid/pages/AboutPage.js +51 -0
  738. package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts +7 -0
  739. package/dist/layouts/electronics-grid/pages/CategoriesPage.d.ts.map +1 -0
  740. package/dist/layouts/electronics-grid/pages/CategoriesPage.js +6 -0
  741. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts +8 -0
  742. package/dist/layouts/electronics-grid/pages/CategoryPage.d.ts.map +1 -0
  743. package/dist/layouts/electronics-grid/pages/CategoryPage.js +55 -0
  744. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts +7 -0
  745. package/dist/layouts/electronics-grid/pages/ContactPage.d.ts.map +1 -0
  746. package/dist/layouts/electronics-grid/pages/ContactPage.js +57 -0
  747. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts +7 -0
  748. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.d.ts.map +1 -0
  749. package/dist/layouts/electronics-grid/pages/ElectronicsGridCategoriesPage.js +26 -0
  750. package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts +7 -0
  751. package/dist/layouts/electronics-grid/pages/HelpCenterPage.d.ts.map +1 -0
  752. package/dist/layouts/electronics-grid/pages/HelpCenterPage.js +55 -0
  753. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts +7 -0
  754. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.d.ts.map +1 -0
  755. package/dist/layouts/electronics-grid/pages/PrivacyPolicyPage.js +9 -0
  756. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts +8 -0
  757. package/dist/layouts/electronics-grid/pages/ProductDetailPage.d.ts.map +1 -0
  758. package/dist/layouts/electronics-grid/pages/ProductDetailPage.js +430 -0
  759. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts +7 -0
  760. package/dist/layouts/electronics-grid/pages/ProductsPage.d.ts.map +1 -0
  761. package/dist/layouts/electronics-grid/pages/ProductsPage.js +273 -0
  762. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts +7 -0
  763. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.d.ts.map +1 -0
  764. package/dist/layouts/electronics-grid/pages/ShippingReturnsPage.js +7 -0
  765. package/dist/layouts/electronics-grid/pages/TermsPage.d.ts +7 -0
  766. package/dist/layouts/electronics-grid/pages/TermsPage.d.ts.map +1 -0
  767. package/dist/layouts/electronics-grid/pages/TermsPage.js +9 -0
  768. package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts +7 -0
  769. package/dist/layouts/electronics-grid/pages/TrackOrderPage.d.ts.map +1 -0
  770. package/dist/layouts/electronics-grid/pages/TrackOrderPage.js +376 -0
  771. package/dist/layouts/food/components/FoodHomePage.d.ts +7 -0
  772. package/dist/layouts/food/components/FoodHomePage.d.ts.map +1 -0
  773. package/dist/layouts/food/components/FoodHomePage.js +387 -0
  774. package/dist/layouts/food/index.d.ts +9 -0
  775. package/dist/layouts/food/index.d.ts.map +1 -0
  776. package/dist/layouts/food/index.js +9 -0
  777. package/dist/layouts/food/pages/AboutPage.d.ts +7 -0
  778. package/dist/layouts/food/pages/AboutPage.d.ts.map +1 -0
  779. package/dist/layouts/food/pages/AboutPage.js +67 -0
  780. package/dist/layouts/food/pages/CategoriesPage.d.ts +7 -0
  781. package/dist/layouts/food/pages/CategoriesPage.d.ts.map +1 -0
  782. package/dist/layouts/food/pages/CategoriesPage.js +26 -0
  783. package/dist/layouts/food/pages/CategoryPage.d.ts +8 -0
  784. package/dist/layouts/food/pages/CategoryPage.d.ts.map +1 -0
  785. package/dist/layouts/food/pages/CategoryPage.js +65 -0
  786. package/dist/layouts/food/pages/ContactPage.d.ts +7 -0
  787. package/dist/layouts/food/pages/ContactPage.d.ts.map +1 -0
  788. package/dist/layouts/food/pages/ContactPage.js +55 -0
  789. package/dist/layouts/food/pages/MenuPage.d.ts +8 -0
  790. package/dist/layouts/food/pages/MenuPage.d.ts.map +1 -0
  791. package/dist/layouts/food/pages/MenuPage.js +107 -0
  792. package/dist/layouts/food/pages/ProductDetailPage.d.ts +8 -0
  793. package/dist/layouts/food/pages/ProductDetailPage.d.ts.map +1 -0
  794. package/dist/layouts/food/pages/ProductDetailPage.js +485 -0
  795. package/dist/layouts/food/pages/ProductsPage.d.ts +7 -0
  796. package/dist/layouts/food/pages/ProductsPage.d.ts.map +1 -0
  797. package/dist/layouts/food/pages/ProductsPage.js +174 -0
  798. package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts +7 -0
  799. package/dist/layouts/food-modern/components/FoodHomePageModern.d.ts.map +1 -0
  800. package/dist/layouts/food-modern/components/FoodHomePageModern.js +101 -0
  801. package/dist/layouts/food-modern/index.d.ts +9 -0
  802. package/dist/layouts/food-modern/index.d.ts.map +1 -0
  803. package/dist/layouts/food-modern/index.js +9 -0
  804. package/dist/layouts/food-modern/pages/AboutPage.d.ts +7 -0
  805. package/dist/layouts/food-modern/pages/AboutPage.d.ts.map +1 -0
  806. package/dist/layouts/food-modern/pages/AboutPage.js +52 -0
  807. package/dist/layouts/food-modern/pages/CategoriesPage.d.ts +7 -0
  808. package/dist/layouts/food-modern/pages/CategoriesPage.d.ts.map +1 -0
  809. package/dist/layouts/food-modern/pages/CategoriesPage.js +23 -0
  810. package/dist/layouts/food-modern/pages/CategoryPage.d.ts +8 -0
  811. package/dist/layouts/food-modern/pages/CategoryPage.d.ts.map +1 -0
  812. package/dist/layouts/food-modern/pages/CategoryPage.js +64 -0
  813. package/dist/layouts/food-modern/pages/ContactPage.d.ts +7 -0
  814. package/dist/layouts/food-modern/pages/ContactPage.d.ts.map +1 -0
  815. package/dist/layouts/food-modern/pages/ContactPage.js +55 -0
  816. package/dist/layouts/food-modern/pages/MenuPage.d.ts +8 -0
  817. package/dist/layouts/food-modern/pages/MenuPage.d.ts.map +1 -0
  818. package/dist/layouts/food-modern/pages/MenuPage.js +110 -0
  819. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts +8 -0
  820. package/dist/layouts/food-modern/pages/ProductDetailPage.d.ts.map +1 -0
  821. package/dist/layouts/food-modern/pages/ProductDetailPage.js +427 -0
  822. package/dist/layouts/food-modern/pages/ProductsPage.d.ts +7 -0
  823. package/dist/layouts/food-modern/pages/ProductsPage.d.ts.map +1 -0
  824. package/dist/layouts/food-modern/pages/ProductsPage.js +175 -0
  825. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts +7 -0
  826. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.d.ts.map +1 -0
  827. package/dist/layouts/motivational-speaker/components/MotivationalHomePage.js +131 -0
  828. package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts +3 -0
  829. package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.d.ts.map +1 -0
  830. package/dist/layouts/motivational-speaker/components/MotivationalSpeakerPageWrapper.js +7 -0
  831. package/dist/layouts/motivational-speaker/index.d.ts +10 -0
  832. package/dist/layouts/motivational-speaker/index.d.ts.map +1 -0
  833. package/dist/layouts/motivational-speaker/index.js +10 -0
  834. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts +7 -0
  835. package/dist/layouts/motivational-speaker/pages/AboutPage.d.ts.map +1 -0
  836. package/dist/layouts/motivational-speaker/pages/AboutPage.js +51 -0
  837. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts +8 -0
  838. package/dist/layouts/motivational-speaker/pages/CategoryPage.d.ts.map +1 -0
  839. package/dist/layouts/motivational-speaker/pages/CategoryPage.js +72 -0
  840. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts +7 -0
  841. package/dist/layouts/motivational-speaker/pages/ContactPage.d.ts.map +1 -0
  842. package/dist/layouts/motivational-speaker/pages/ContactPage.js +57 -0
  843. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts +7 -0
  844. package/dist/layouts/motivational-speaker/pages/ProductsPage.d.ts.map +1 -0
  845. package/dist/layouts/motivational-speaker/pages/ProductsPage.js +273 -0
  846. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts +8 -0
  847. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.d.ts.map +1 -0
  848. package/dist/layouts/motivational-speaker/pages/ServiceDetailPage.js +153 -0
  849. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts +9 -0
  850. package/dist/layouts/motivational-speaker/pages/ServicesPage.d.ts.map +1 -0
  851. package/dist/layouts/motivational-speaker/pages/ServicesPage.js +46 -0
  852. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts +7 -0
  853. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.d.ts.map +1 -0
  854. package/dist/layouts/motivational-speaker/pages/SubscriptionPage.js +137 -0
  855. package/dist/layouts/shared/components/BaseStoreLayout.d.ts +8 -0
  856. package/dist/layouts/shared/components/BaseStoreLayout.d.ts.map +1 -0
  857. package/dist/layouts/shared/components/BaseStoreLayout.js +49 -0
  858. package/dist/layouts/shared/components/CartLineQuantityControl.d.ts +12 -0
  859. package/dist/layouts/shared/components/CartLineQuantityControl.d.ts.map +1 -0
  860. package/dist/layouts/shared/components/CartLineQuantityControl.js +99 -0
  861. package/dist/layouts/shared/components/GenericPageWrapper.d.ts +8 -0
  862. package/dist/layouts/shared/components/GenericPageWrapper.d.ts.map +1 -0
  863. package/dist/layouts/shared/components/GenericPageWrapper.js +24 -0
  864. package/dist/layouts/shared/components/PromoBanner.d.ts +12 -0
  865. package/dist/layouts/shared/components/PromoBanner.d.ts.map +1 -0
  866. package/dist/layouts/shared/components/PromoBanner.js +17 -0
  867. package/dist/layouts/shared/components/StoreFooter.d.ts +7 -0
  868. package/dist/layouts/shared/components/StoreFooter.d.ts.map +1 -0
  869. package/dist/layouts/shared/components/StoreFooter.js +156 -0
  870. package/dist/layouts/shared/components/StoreHeader.d.ts +8 -0
  871. package/dist/layouts/shared/components/StoreHeader.d.ts.map +1 -0
  872. package/dist/layouts/shared/components/StoreHeader.js +111 -0
  873. package/dist/layouts/shared/components/TestimonialCard.d.ts +8 -0
  874. package/dist/layouts/shared/components/TestimonialCard.d.ts.map +1 -0
  875. package/dist/layouts/shared/components/TestimonialCard.js +10 -0
  876. package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts +8 -0
  877. package/dist/layouts/shared/components/headers/BookingAgendaSidebar.d.ts.map +1 -0
  878. package/dist/layouts/shared/components/headers/BookingAgendaSidebar.js +16 -0
  879. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts +7 -0
  880. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.d.ts.map +1 -0
  881. package/dist/layouts/shared/components/headers/ClothingMinimalHeader.js +38 -0
  882. package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts +7 -0
  883. package/dist/layouts/shared/components/headers/FoodModernHeader.d.ts.map +1 -0
  884. package/dist/layouts/shared/components/headers/FoodModernHeader.js +61 -0
  885. package/dist/layouts/shared/index.d.ts +23 -0
  886. package/dist/layouts/shared/index.d.ts.map +1 -0
  887. package/dist/layouts/shared/index.js +23 -0
  888. package/dist/layouts/shared/pages/AccountPage.d.ts +7 -0
  889. package/dist/layouts/shared/pages/AccountPage.d.ts.map +1 -0
  890. package/dist/layouts/shared/pages/AccountPage.js +549 -0
  891. package/dist/layouts/shared/pages/CartPage.d.ts +7 -0
  892. package/dist/layouts/shared/pages/CartPage.d.ts.map +1 -0
  893. package/dist/layouts/shared/pages/CartPage.js +121 -0
  894. package/dist/layouts/shared/pages/CheckoutPage.d.ts +7 -0
  895. package/dist/layouts/shared/pages/CheckoutPage.d.ts.map +1 -0
  896. package/dist/layouts/shared/pages/CheckoutPage.js +1430 -0
  897. package/dist/layouts/shared/pages/CookiePolicyPage.d.ts +7 -0
  898. package/dist/layouts/shared/pages/CookiePolicyPage.d.ts.map +1 -0
  899. package/dist/layouts/shared/pages/CookiePolicyPage.js +9 -0
  900. package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts +9 -0
  901. package/dist/layouts/shared/pages/FeatureDisabledPage.d.ts.map +1 -0
  902. package/dist/layouts/shared/pages/FeatureDisabledPage.js +8 -0
  903. package/dist/layouts/shared/pages/HelpCenterPage.d.ts +7 -0
  904. package/dist/layouts/shared/pages/HelpCenterPage.d.ts.map +1 -0
  905. package/dist/layouts/shared/pages/HelpCenterPage.js +55 -0
  906. package/dist/layouts/shared/pages/MaintenancePage.d.ts +7 -0
  907. package/dist/layouts/shared/pages/MaintenancePage.d.ts.map +1 -0
  908. package/dist/layouts/shared/pages/MaintenancePage.js +10 -0
  909. package/dist/layouts/shared/pages/PortfolioPage.d.ts +7 -0
  910. package/dist/layouts/shared/pages/PortfolioPage.d.ts.map +1 -0
  911. package/dist/layouts/shared/pages/PortfolioPage.js +130 -0
  912. package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts +7 -0
  913. package/dist/layouts/shared/pages/PrivacyPolicyPage.d.ts.map +1 -0
  914. package/dist/layouts/shared/pages/PrivacyPolicyPage.js +9 -0
  915. package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts +7 -0
  916. package/dist/layouts/shared/pages/ShippingReturnsPage.d.ts.map +1 -0
  917. package/dist/layouts/shared/pages/ShippingReturnsPage.js +7 -0
  918. package/dist/layouts/shared/pages/SizeGuidePage.d.ts +7 -0
  919. package/dist/layouts/shared/pages/SizeGuidePage.d.ts.map +1 -0
  920. package/dist/layouts/shared/pages/SizeGuidePage.js +10 -0
  921. package/dist/layouts/shared/pages/StyleGuidePage.d.ts +7 -0
  922. package/dist/layouts/shared/pages/StyleGuidePage.d.ts.map +1 -0
  923. package/dist/layouts/shared/pages/StyleGuidePage.js +126 -0
  924. package/dist/layouts/shared/pages/TeamPage.d.ts +7 -0
  925. package/dist/layouts/shared/pages/TeamPage.d.ts.map +1 -0
  926. package/dist/layouts/shared/pages/TeamPage.js +39 -0
  927. package/dist/layouts/shared/pages/TermsPage.d.ts +7 -0
  928. package/dist/layouts/shared/pages/TermsPage.d.ts.map +1 -0
  929. package/dist/layouts/shared/pages/TermsPage.js +9 -0
  930. package/dist/layouts/shared/pages/TrackOrderPage.d.ts +7 -0
  931. package/dist/layouts/shared/pages/TrackOrderPage.d.ts.map +1 -0
  932. package/dist/layouts/shared/pages/TrackOrderPage.js +379 -0
  933. package/dist/layouts/shared/pages/WishlistPage.d.ts +7 -0
  934. package/dist/layouts/shared/pages/WishlistPage.d.ts.map +1 -0
  935. package/dist/layouts/shared/pages/WishlistPage.js +144 -0
  936. package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts +14 -0
  937. package/dist/layouts/shared/wrappers/BookingAgendaLayout.d.ts.map +1 -0
  938. package/dist/layouts/shared/wrappers/BookingAgendaLayout.js +152 -0
  939. package/dist/layouts/shared/wrappers/ClothingLayout.d.ts +10 -0
  940. package/dist/layouts/shared/wrappers/ClothingLayout.d.ts.map +1 -0
  941. package/dist/layouts/shared/wrappers/ClothingLayout.js +44 -0
  942. package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts +8 -0
  943. package/dist/layouts/shared/wrappers/ClothingMinimalLayout.d.ts.map +1 -0
  944. package/dist/layouts/shared/wrappers/ClothingMinimalLayout.js +48 -0
  945. package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts +8 -0
  946. package/dist/layouts/shared/wrappers/ElectronicsLayout.d.ts.map +1 -0
  947. package/dist/layouts/shared/wrappers/ElectronicsLayout.js +40 -0
  948. package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts +8 -0
  949. package/dist/layouts/shared/wrappers/FoodModernLayout.d.ts.map +1 -0
  950. package/dist/layouts/shared/wrappers/FoodModernLayout.js +48 -0
  951. package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts +8 -0
  952. package/dist/layouts/shared/wrappers/MotivationalLayout.d.ts.map +1 -0
  953. package/dist/layouts/shared/wrappers/MotivationalLayout.js +51 -0
  954. package/dist/layouts/shared/wrappers/StandardLayout.d.ts +8 -0
  955. package/dist/layouts/shared/wrappers/StandardLayout.d.ts.map +1 -0
  956. package/dist/layouts/shared/wrappers/StandardLayout.js +45 -0
  957. package/dist/lib/alignment-schemas.d.ts +51 -0
  958. package/dist/lib/alignment-schemas.d.ts.map +1 -0
  959. package/dist/lib/alignment-schemas.js +637 -0
  960. package/dist/lib/api.d.ts +11 -0
  961. package/dist/lib/api.d.ts.map +1 -0
  962. package/dist/lib/api.js +167 -0
  963. package/dist/lib/auth-context.d.ts +49 -0
  964. package/dist/lib/auth-context.d.ts.map +1 -0
  965. package/dist/lib/auth-context.js +296 -0
  966. package/dist/lib/checkout-availability.d.ts +10 -0
  967. package/dist/lib/checkout-availability.d.ts.map +1 -0
  968. package/dist/lib/checkout-availability.js +16 -0
  969. package/dist/lib/compact-array-items.d.ts +7 -0
  970. package/dist/lib/compact-array-items.d.ts.map +1 -0
  971. package/dist/lib/compact-array-items.js +13 -0
  972. package/dist/lib/content-selectors.d.ts +21 -0
  973. package/dist/lib/content-selectors.d.ts.map +1 -0
  974. package/dist/lib/content-selectors.js +75 -0
  975. package/dist/lib/countries.d.ts +13 -0
  976. package/dist/lib/countries.d.ts.map +1 -0
  977. package/dist/lib/countries.js +292 -0
  978. package/dist/lib/currency-symbols.d.ts +36 -0
  979. package/dist/lib/currency-symbols.d.ts.map +1 -0
  980. package/dist/lib/currency-symbols.js +153 -0
  981. package/dist/lib/guest-user.d.ts +27 -0
  982. package/dist/lib/guest-user.d.ts.map +1 -0
  983. package/dist/lib/guest-user.js +71 -0
  984. package/dist/lib/inventory-utils.d.ts +41 -0
  985. package/dist/lib/inventory-utils.d.ts.map +1 -0
  986. package/dist/lib/inventory-utils.js +180 -0
  987. package/dist/lib/layout-badges.d.ts +4 -0
  988. package/dist/lib/layout-badges.d.ts.map +1 -0
  989. package/dist/lib/layout-badges.js +5 -0
  990. package/dist/lib/layout-config-hydration.d.ts +25 -0
  991. package/dist/lib/layout-config-hydration.d.ts.map +1 -0
  992. package/dist/lib/layout-config-hydration.js +264 -0
  993. package/dist/lib/layout-field-normalize.d.ts +18 -0
  994. package/dist/lib/layout-field-normalize.d.ts.map +1 -0
  995. package/dist/lib/layout-field-normalize.js +190 -0
  996. package/dist/lib/layout-route-utils.d.ts +30 -0
  997. package/dist/lib/layout-route-utils.d.ts.map +1 -0
  998. package/dist/lib/layout-route-utils.js +79 -0
  999. package/dist/lib/limited-time-offer.d.ts +6 -0
  1000. package/dist/lib/limited-time-offer.d.ts.map +1 -0
  1001. package/dist/lib/limited-time-offer.js +24 -0
  1002. package/dist/lib/loading-context.d.ts +20 -0
  1003. package/dist/lib/loading-context.d.ts.map +1 -0
  1004. package/dist/lib/loading-context.js +212 -0
  1005. package/dist/lib/mock-stores.d.ts +24 -0
  1006. package/dist/lib/mock-stores.d.ts.map +1 -0
  1007. package/dist/lib/mock-stores.js +2106 -0
  1008. package/dist/lib/order-success-cart.d.ts +5 -0
  1009. package/dist/lib/order-success-cart.d.ts.map +1 -0
  1010. package/dist/lib/order-success-cart.js +50 -0
  1011. package/dist/lib/payaza-checkout.d.ts +147 -0
  1012. package/dist/lib/payaza-checkout.d.ts.map +1 -0
  1013. package/dist/lib/payaza-checkout.js +717 -0
  1014. package/dist/lib/payaza-section-styles.d.ts +16 -0
  1015. package/dist/lib/payaza-section-styles.d.ts.map +1 -0
  1016. package/dist/lib/payaza-section-styles.js +93 -0
  1017. package/dist/lib/preview-data.d.ts +58 -0
  1018. package/dist/lib/preview-data.d.ts.map +1 -0
  1019. package/dist/lib/preview-data.js +2576 -0
  1020. package/dist/lib/product-variation-utils.d.ts +8 -0
  1021. package/dist/lib/product-variation-utils.d.ts.map +1 -0
  1022. package/dist/lib/product-variation-utils.js +101 -0
  1023. package/dist/lib/rich-html.d.ts +38 -0
  1024. package/dist/lib/rich-html.d.ts.map +1 -0
  1025. package/dist/lib/rich-html.js +272 -0
  1026. package/dist/lib/services/analytics.service.d.ts +59 -0
  1027. package/dist/lib/services/analytics.service.d.ts.map +1 -0
  1028. package/dist/lib/services/analytics.service.js +382 -0
  1029. package/dist/lib/services/auth.service.d.ts +63 -0
  1030. package/dist/lib/services/auth.service.d.ts.map +1 -0
  1031. package/dist/lib/services/auth.service.js +101 -0
  1032. package/dist/lib/services/booking.service.d.ts +53 -0
  1033. package/dist/lib/services/booking.service.d.ts.map +1 -0
  1034. package/dist/lib/services/booking.service.js +52 -0
  1035. package/dist/lib/services/category.service.d.ts +21 -0
  1036. package/dist/lib/services/category.service.d.ts.map +1 -0
  1037. package/dist/lib/services/category.service.js +41 -0
  1038. package/dist/lib/services/checkout.service.d.ts +168 -0
  1039. package/dist/lib/services/checkout.service.d.ts.map +1 -0
  1040. package/dist/lib/services/checkout.service.js +48 -0
  1041. package/dist/lib/services/contact.service.d.ts +26 -0
  1042. package/dist/lib/services/contact.service.d.ts.map +1 -0
  1043. package/dist/lib/services/contact.service.js +23 -0
  1044. package/dist/lib/services/customer.service.d.ts +54 -0
  1045. package/dist/lib/services/customer.service.d.ts.map +1 -0
  1046. package/dist/lib/services/customer.service.js +64 -0
  1047. package/dist/lib/services/fees.service.d.ts +85 -0
  1048. package/dist/lib/services/fees.service.d.ts.map +1 -0
  1049. package/dist/lib/services/fees.service.js +147 -0
  1050. package/dist/lib/services/index.d.ts +19 -0
  1051. package/dist/lib/services/index.d.ts.map +1 -0
  1052. package/dist/lib/services/index.js +18 -0
  1053. package/dist/lib/services/location.service.d.ts +31 -0
  1054. package/dist/lib/services/location.service.d.ts.map +1 -0
  1055. package/dist/lib/services/location.service.js +25 -0
  1056. package/dist/lib/services/order.service.d.ts +5 -0
  1057. package/dist/lib/services/order.service.d.ts.map +1 -0
  1058. package/dist/lib/services/order.service.js +12 -0
  1059. package/dist/lib/services/payment.service.d.ts +56 -0
  1060. package/dist/lib/services/payment.service.d.ts.map +1 -0
  1061. package/dist/lib/services/payment.service.js +122 -0
  1062. package/dist/lib/services/product.service.d.ts +92 -0
  1063. package/dist/lib/services/product.service.d.ts.map +1 -0
  1064. package/dist/lib/services/product.service.js +86 -0
  1065. package/dist/lib/services/promo.service.d.ts +31 -0
  1066. package/dist/lib/services/promo.service.d.ts.map +1 -0
  1067. package/dist/lib/services/promo.service.js +29 -0
  1068. package/dist/lib/services/review.service.d.ts +47 -0
  1069. package/dist/lib/services/review.service.d.ts.map +1 -0
  1070. package/dist/lib/services/review.service.js +54 -0
  1071. package/dist/lib/services/service.service.d.ts +55 -0
  1072. package/dist/lib/services/service.service.d.ts.map +1 -0
  1073. package/dist/lib/services/service.service.js +37 -0
  1074. package/dist/lib/services/shipping.service.d.ts +62 -0
  1075. package/dist/lib/services/shipping.service.d.ts.map +1 -0
  1076. package/dist/lib/services/shipping.service.js +39 -0
  1077. package/dist/lib/services/store.service.d.ts +89 -0
  1078. package/dist/lib/services/store.service.d.ts.map +1 -0
  1079. package/dist/lib/services/store.service.js +41 -0
  1080. package/dist/lib/shipping-address.util.d.ts +76 -0
  1081. package/dist/lib/shipping-address.util.d.ts.map +1 -0
  1082. package/dist/lib/shipping-address.util.js +149 -0
  1083. package/dist/lib/shipping-settings.util.d.ts +4 -0
  1084. package/dist/lib/shipping-settings.util.d.ts.map +1 -0
  1085. package/dist/lib/shipping-settings.util.js +6 -0
  1086. package/dist/lib/store-config-utils.d.ts +50 -0
  1087. package/dist/lib/store-config-utils.d.ts.map +1 -0
  1088. package/dist/lib/store-config-utils.js +1713 -0
  1089. package/dist/lib/store-config.d.ts +4 -0
  1090. package/dist/lib/store-config.d.ts.map +1 -0
  1091. package/dist/lib/store-config.js +4 -0
  1092. package/dist/lib/store-context.d.ts +69 -0
  1093. package/dist/lib/store-context.d.ts.map +1 -0
  1094. package/dist/lib/store-context.js +456 -0
  1095. package/dist/lib/store-types.d.ts +921 -0
  1096. package/dist/lib/store-types.d.ts.map +1 -0
  1097. package/dist/lib/store-types.js +1 -0
  1098. package/dist/lib/template-pages.d.ts +8 -0
  1099. package/dist/lib/template-pages.d.ts.map +1 -0
  1100. package/dist/lib/template-pages.js +62 -0
  1101. package/dist/lib/utils/asset-helpers.d.ts +111 -0
  1102. package/dist/lib/utils/asset-helpers.d.ts.map +1 -0
  1103. package/dist/lib/utils/asset-helpers.js +462 -0
  1104. package/dist/lib/utils/catalog-price-bounds.d.ts +13 -0
  1105. package/dist/lib/utils/catalog-price-bounds.d.ts.map +1 -0
  1106. package/dist/lib/utils/catalog-price-bounds.js +24 -0
  1107. package/dist/lib/utils/category-tree.d.ts +25 -0
  1108. package/dist/lib/utils/category-tree.d.ts.map +1 -0
  1109. package/dist/lib/utils/category-tree.js +85 -0
  1110. package/dist/lib/utils/demo-detection.d.ts +23 -0
  1111. package/dist/lib/utils/demo-detection.d.ts.map +1 -0
  1112. package/dist/lib/utils/demo-detection.js +36 -0
  1113. package/dist/lib/utils/editor-preview.d.ts +42 -0
  1114. package/dist/lib/utils/editor-preview.d.ts.map +1 -0
  1115. package/dist/lib/utils/editor-preview.js +214 -0
  1116. package/dist/lib/utils/fee-calculations.d.ts +35 -0
  1117. package/dist/lib/utils/fee-calculations.d.ts.map +1 -0
  1118. package/dist/lib/utils/fee-calculations.js +81 -0
  1119. package/dist/lib/utils/footer-nav-defaults.d.ts +11 -0
  1120. package/dist/lib/utils/footer-nav-defaults.d.ts.map +1 -0
  1121. package/dist/lib/utils/footer-nav-defaults.js +67 -0
  1122. package/dist/lib/utils/idempotency-key.d.ts +15 -0
  1123. package/dist/lib/utils/idempotency-key.d.ts.map +1 -0
  1124. package/dist/lib/utils/idempotency-key.js +22 -0
  1125. package/dist/lib/utils/index.d.ts +45 -0
  1126. package/dist/lib/utils/index.d.ts.map +1 -0
  1127. package/dist/lib/utils/index.js +197 -0
  1128. package/dist/lib/utils/mobile-editor.d.ts +13 -0
  1129. package/dist/lib/utils/mobile-editor.d.ts.map +1 -0
  1130. package/dist/lib/utils/mobile-editor.js +34 -0
  1131. package/dist/lib/utils/phone-format.d.ts +6 -0
  1132. package/dist/lib/utils/phone-format.d.ts.map +1 -0
  1133. package/dist/lib/utils/phone-format.js +17 -0
  1134. package/dist/lib/utils/product-catalog.d.ts +11 -0
  1135. package/dist/lib/utils/product-catalog.d.ts.map +1 -0
  1136. package/dist/lib/utils/product-catalog.js +40 -0
  1137. package/dist/lib/utils/product-images.d.ts +20 -0
  1138. package/dist/lib/utils/product-images.d.ts.map +1 -0
  1139. package/dist/lib/utils/product-images.js +31 -0
  1140. package/dist/lib/utils/product-share.d.ts +17 -0
  1141. package/dist/lib/utils/product-share.d.ts.map +1 -0
  1142. package/dist/lib/utils/product-share.js +48 -0
  1143. package/dist/lib/utils/scroll-to-top.util.d.ts +9 -0
  1144. package/dist/lib/utils/scroll-to-top.util.d.ts.map +1 -0
  1145. package/dist/lib/utils/scroll-to-top.util.js +18 -0
  1146. package/dist/lib/utils/url-helpers.d.ts +30 -0
  1147. package/dist/lib/utils/url-helpers.d.ts.map +1 -0
  1148. package/dist/lib/utils/url-helpers.js +61 -0
  1149. package/dist/lib/utils/video-helpers.d.ts +32 -0
  1150. package/dist/lib/utils/video-helpers.d.ts.map +1 -0
  1151. package/dist/lib/utils/video-helpers.js +210 -0
  1152. package/dist/preview/LayoutPreview.d.ts +14 -0
  1153. package/dist/preview/LayoutPreview.d.ts.map +1 -0
  1154. package/dist/preview/LayoutPreview.js +122 -0
  1155. package/dist/preview/PreviewRouter.d.ts +9 -0
  1156. package/dist/preview/PreviewRouter.d.ts.map +1 -0
  1157. package/dist/preview/PreviewRouter.js +332 -0
  1158. package/dist/preview/ShadowDOMWrapper.d.ts +18 -0
  1159. package/dist/preview/ShadowDOMWrapper.d.ts.map +1 -0
  1160. package/dist/preview/ShadowDOMWrapper.js +80 -0
  1161. package/dist/preview/canvas/PreviewBlockToolbar.d.ts +23 -0
  1162. package/dist/preview/canvas/PreviewBlockToolbar.d.ts.map +1 -0
  1163. package/dist/preview/canvas/PreviewBlockToolbar.js +113 -0
  1164. package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts +17 -0
  1165. package/dist/preview/canvas/PreviewCanvasEnhancer.d.ts.map +1 -0
  1166. package/dist/preview/canvas/PreviewCanvasEnhancer.js +741 -0
  1167. package/dist/preview/canvas/PreviewCanvasStyles.d.ts +4 -0
  1168. package/dist/preview/canvas/PreviewCanvasStyles.d.ts.map +1 -0
  1169. package/dist/preview/canvas/PreviewCanvasStyles.js +51 -0
  1170. package/dist/preview/canvas/extract-editable-plain-text.d.ts +11 -0
  1171. package/dist/preview/canvas/extract-editable-plain-text.d.ts.map +1 -0
  1172. package/dist/preview/canvas/extract-editable-plain-text.js +65 -0
  1173. package/dist/preview/canvas/field-key.d.ts +34 -0
  1174. package/dist/preview/canvas/field-key.d.ts.map +1 -0
  1175. package/dist/preview/canvas/field-key.js +62 -0
  1176. package/dist/preview/canvas/preview-editable-commit.util.d.ts +3 -0
  1177. package/dist/preview/canvas/preview-editable-commit.util.d.ts.map +1 -0
  1178. package/dist/preview/canvas/preview-editable-commit.util.js +11 -0
  1179. package/dist/preview/canvas/preview-flush-await.d.ts +6 -0
  1180. package/dist/preview/canvas/preview-flush-await.d.ts.map +1 -0
  1181. package/dist/preview/canvas/preview-flush-await.js +23 -0
  1182. package/dist/preview/canvas/preview-flush-handle.d.ts +13 -0
  1183. package/dist/preview/canvas/preview-flush-handle.d.ts.map +1 -0
  1184. package/dist/preview/canvas/preview-flush-handle.js +3 -0
  1185. package/dist/preview/canvas/preview-isolation.d.ts +9 -0
  1186. package/dist/preview/canvas/preview-isolation.d.ts.map +1 -0
  1187. package/dist/preview/canvas/preview-isolation.js +10 -0
  1188. package/dist/preview/canvas/preview-messages.d.ts +65 -0
  1189. package/dist/preview/canvas/preview-messages.d.ts.map +1 -0
  1190. package/dist/preview/canvas/preview-messages.js +17 -0
  1191. package/dist/preview/canvas/preview-route.d.ts +4 -0
  1192. package/dist/preview/canvas/preview-route.d.ts.map +1 -0
  1193. package/dist/preview/canvas/preview-route.js +76 -0
  1194. package/dist/preview/index.d.ts +13 -0
  1195. package/dist/preview/index.d.ts.map +1 -0
  1196. package/dist/preview/index.js +12 -0
  1197. package/dist/preview/route-audit.d.ts +17 -0
  1198. package/dist/preview/route-audit.d.ts.map +1 -0
  1199. package/dist/preview/route-audit.js +54 -0
  1200. package/dist/styles/index.css +10598 -0
  1201. package/dist/utils/date.d.ts +20 -0
  1202. package/dist/utils/date.d.ts.map +1 -0
  1203. package/dist/utils/date.js +47 -0
  1204. package/package.json +192 -0
@@ -0,0 +1,55 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Search, ChevronDown, ChevronUp, Mail, Phone, MessageCircle } from 'lucide-react';
4
+ import { useState } from 'react';
5
+ import { Button } from '../../../components/ui/button.js';
6
+ export function ElectronicsGridHelpCenterPage({ storeConfig }) {
7
+ const primaryColor = storeConfig.branding.primaryColor;
8
+ const faqConfig = storeConfig.layoutConfig?.pages?.faq;
9
+ // Convert flat list of FAQs from config to categorized structure if needed,
10
+ // or just use a default category if the structure doesn't match perfectly.
11
+ // For simplicity, if config items exist, we'll put them in a "General Questions" category.
12
+ const faqs = faqConfig?.items ? [
13
+ {
14
+ category: "Frequently Asked Questions",
15
+ questions: faqConfig.items.map(item => ({ q: item.question, a: item.answer }))
16
+ }
17
+ ] : [
18
+ {
19
+ category: "Ordering & Payment",
20
+ questions: [
21
+ { q: "What payment methods do you accept?", a: "We accept all major credit cards (Visa, Mastercard, American Express), PayPal, and various local payment methods depending on your region." },
22
+ { q: "Can I modify my order after placing it?", a: "Orders can be modified within 30 minutes of placement. Please contact our support team immediately if you need to make changes." },
23
+ { q: "How do I use a promo code?", a: "You can enter your promo code at checkout in the designated box. The discount will be applied to your total immediately." }
24
+ ]
25
+ },
26
+ {
27
+ category: "Shipping & Delivery",
28
+ questions: [
29
+ { q: "Do you ship internationally?", a: "Yes, we ship to most countries worldwide. Shipping costs and delivery times vary by location." },
30
+ { q: "How long will my order take to arrive?", a: "Standard shipping typically takes 3-5 business days domestically. Express shipping options are available at checkout." },
31
+ { q: "How can I track my order?", a: "Once your order ships, you'll receive a confirmation email with a tracking number and link to track your package." }
32
+ ]
33
+ },
34
+ {
35
+ category: "Returns & Refunds",
36
+ questions: [
37
+ { q: "What is your return policy?", a: "We offer a 30-day return policy for unused items in original packaging. Some exclusions apply to final sale items." },
38
+ { q: "How long do refunds take to process?", a: "Refunds are typically processed within 5-7 business days after we receive your return." }
39
+ ]
40
+ }
41
+ ];
42
+ const [openIndex, setOpenIndex] = useState(null);
43
+ const toggleAccordion = (id) => {
44
+ setOpenIndex(openIndex === id ? null : id);
45
+ };
46
+ return (_jsxs("div", { className: "min-h-screen bg-gray-50 pb-20", children: [_jsx("div", { className: "bg-white border-b", children: _jsxs("div", { className: "container mx-auto px-4 py-16 sm:py-24 text-center max-w-3xl", children: [_jsx("h1", { className: "text-4xl font-bold tracking-tight text-gray-900 mb-6", children: faqConfig?.title || "How can we help you?" }), _jsxs("div", { className: "relative max-w-xl mx-auto", children: [_jsx(Search, { className: "absolute left-4 top-1/2 -translate-y-1/2 h-5 w-5 text-gray-400" }), _jsx("input", { type: "text", placeholder: "Search for answers...", className: "w-full pl-12 pr-4 py-4 rounded-xl border border-gray-200 shadow-sm focus:outline-none focus:ring-2 focus:border-transparent text-lg", style: { '--tw-ring-color': primaryColor } })] })] }) }), _jsxs("div", { className: "container mx-auto px-4 py-12 max-w-4xl", children: [_jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6 mb-16", children: [
47
+ { title: "Track Order", icon: MessageCircle, desc: "Check your order status" },
48
+ { title: "Shipping Info", icon: Mail, desc: "Delivery times & costs" },
49
+ { title: "Returns", icon: Phone, desc: "Start a return or exchange" }
50
+ ].map((item, i) => (_jsxs("div", { className: "bg-white p-6 rounded-xl border border-gray-100 shadow-sm hover:shadow-md transition-shadow cursor-pointer", children: [_jsx(item.icon, { className: "h-8 w-8 mb-4", style: { color: primaryColor } }), _jsx("h3", { className: "font-semibold text-lg text-gray-900 mb-2", children: item.title }), _jsx("p", { className: "text-gray-500", children: item.desc })] }, i))) }), _jsx("div", { className: "space-y-12", children: faqs.map((section, sectionIdx) => (_jsxs("div", { children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900 mb-6", children: section.category }), _jsx("div", { className: "space-y-4", children: section.questions.map((faq, faqIdx) => {
51
+ const id = `${sectionIdx}-${faqIdx}`;
52
+ const isOpen = openIndex === id;
53
+ return (_jsxs("div", { className: "bg-white border border-gray-200 rounded-lg overflow-hidden transition-all duration-200", children: [_jsxs("button", { onClick: () => toggleAccordion(id), className: "w-full flex items-center justify-between p-5 text-left bg-white hover:bg-gray-50 transition-colors", children: [_jsx("span", { className: "font-medium text-gray-900", children: faq.q }), isOpen ? (_jsx(ChevronUp, { className: "h-5 w-5 text-gray-500" })) : (_jsx(ChevronDown, { className: "h-5 w-5 text-gray-500" }))] }), _jsx("div", { className: `overflow-hidden transition-all duration-300 ease-in-out ${isOpen ? 'max-h-48 opacity-100' : 'max-h-0 opacity-0'}`, children: _jsx("div", { className: "p-5 pt-0 text-gray-600 border-t border-gray-100 bg-gray-50/50", children: faq.a }) })] }, faqIdx));
54
+ }) })] }, sectionIdx))) }), _jsxs("div", { className: "mt-20 bg-white rounded-2xl p-8 md:p-12 border border-gray-100 shadow-lg text-center", children: [_jsx("h2", { className: "text-2xl font-bold text-gray-900 mb-4", children: "Still need help?" }), _jsx("p", { className: "text-gray-500 mb-8 max-w-lg mx-auto", children: "Our support team is available Monday through Friday, 9am to 6pm EST. We usually respond within 24 hours." }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-4 justify-center", children: [_jsx(Button, { className: "px-8 py-6 text-base", style: { backgroundColor: primaryColor }, children: "Contact Support" }), _jsx(Button, { variant: "outline", className: "px-8 py-6 text-base", children: "Email Us" })] })] })] })] }));
55
+ }
@@ -0,0 +1,7 @@
1
+ import { StoreConfig } from '../../../lib/store-types';
2
+ interface PrivacyPolicyPageProps {
3
+ storeConfig: StoreConfig;
4
+ }
5
+ export declare function ElectronicsGridPrivacyPolicyPage({ storeConfig }: PrivacyPolicyPageProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=PrivacyPolicyPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrivacyPolicyPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics-grid/pages/PrivacyPolicyPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD,UAAU,sBAAsB;IAC9B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAgB,gCAAgC,CAAC,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CA2GvF"}
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ShieldCheck, ArrowLeft } from 'lucide-react';
4
+ import Link from 'next/link';
5
+ import { formatDateSafe } from '../../../utils/date.js';
6
+ export function ElectronicsGridPrivacyPolicyPage({ storeConfig }) {
7
+ const primaryColor = storeConfig.branding.primaryColor;
8
+ return (_jsxs("div", { className: "min-h-screen bg-gray-50 pb-20", children: [_jsx("div", { className: "bg-white border-b", children: _jsxs("div", { className: "container mx-auto px-4 py-8", children: [_jsxs(Link, { href: `/${storeConfig.slug}`, className: "inline-flex items-center gap-2 text-gray-500 hover:text-gray-900 transition-colors mb-6", children: [_jsx(ArrowLeft, { className: "w-4 h-4" }), "Back to Home"] }), _jsxs("div", { className: "flex items-center gap-4", children: [_jsx("div", { className: "w-12 h-12 rounded-xl flex items-center justify-center", style: { backgroundColor: `${primaryColor}15` }, children: _jsx(ShieldCheck, { className: "w-6 h-6", style: { color: primaryColor } }) }), _jsx("h1", { className: "text-3xl font-bold text-gray-900", children: "Privacy Policy" })] })] }) }), _jsx("div", { className: "container mx-auto px-4 py-12 max-w-4xl", children: _jsxs("div", { className: "bg-white rounded-2xl p-8 md:p-12 shadow-sm border border-gray-100 prose prose-lg max-w-none", children: [_jsxs("p", { className: "text-gray-500 lead", children: ["Last updated: ", formatDateSafe(new Date(), undefined, { month: 'long', day: 'numeric', year: 'numeric' })] }), _jsxs("p", { children: ["At ", storeConfig.name, ", accessible from ", typeof window !== 'undefined' ? window.location.origin : 'our website', ", one of our main priorities is the privacy of our visitors. This Privacy Policy document contains types of information that is collected and recorded by ", storeConfig.name, " and how we use it."] }), _jsx("p", { children: "If you have additional questions or require more information about our Privacy Policy, do not hesitate to contact us." }), _jsx("h3", { children: "Log Files" }), _jsxs("p", { children: [storeConfig.name, " follows a standard procedure of using log files. These files log visitors when they visit websites. All hosting companies do this and a part of hosting services' analytics. The information collected by log files include internet protocol (IP) addresses, browser type, Internet Service Provider (ISP), date and time stamp, referring/exit pages, and possibly the number of clicks. These are not linked to any information that is personally identifiable. The purpose of the information is for analyzing trends, administering the site, tracking users' movement on the website, and gathering demographic information."] }), _jsx("h3", { children: "Cookies and Web Beacons" }), _jsxs("p", { children: ["Like any other website, ", storeConfig.name, " uses \"cookies\". These cookies are used to store information including visitors' preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information."] }), _jsx("h3", { children: "Privacy Policies" }), _jsxs("p", { children: ["You may consult this list to find the Privacy Policy for each of the advertising partners of ", storeConfig.name, "."] }), _jsxs("p", { children: ["Third-party ad servers or ad networks uses technologies like cookies, JavaScript, or Web Beacons that are used in their respective advertisements and links that appear on ", storeConfig.name, ", which are sent directly to users' browser. They automatically receive your IP address when this occurs. These technologies are used to measure the effectiveness of their advertising campaigns and/or to personalize the advertising content that you see on websites that you visit."] }), _jsxs("p", { children: ["Note that ", storeConfig.name, " has no access to or control over these cookies that are used by third-party advertisers."] }), _jsx("h3", { children: "Third Party Privacy Policies" }), _jsxs("p", { children: [storeConfig.name, "'s Privacy Policy does not apply to other advertisers or websites. Thus, we are advising you to consult the respective Privacy Policies of these third-party ad servers for more detailed information. It may include their practices and instructions about how to opt-out of certain options."] }), _jsx("p", { children: "You can choose to disable cookies through your individual browser options. To know more detailed information about cookie management with specific web browsers, it can be found at the browsers' respective websites." }), _jsx("h3", { children: "Children's Information" }), _jsx("p", { children: "Another part of our priority is adding protection for children while using the internet. We encourage parents and guardians to observe, participate in, and/or monitor and guide their online activity." }), _jsxs("p", { children: [storeConfig.name, " does not knowingly collect any Personal Identifiable Information from children under the age of 13. If you think that your child provided this kind of information on our website, we strongly encourage you to contact us immediately and we will do our best efforts to promptly remove such information from our records."] }), _jsx("h3", { children: "Online Privacy Policy Only" }), _jsxs("p", { children: ["This Privacy Policy applies only to our online activities and is valid for visitors to our website with regards to the information that they shared and/or collect in ", storeConfig.name, ". This policy is not applicable to any information collected offline or via channels other than this website."] }), _jsx("h3", { children: "Consent" }), _jsx("p", { children: "By using our website, you hereby consent to our Privacy Policy and agree to its Terms and Conditions." })] }) })] }));
9
+ }
@@ -0,0 +1,8 @@
1
+ import { StoreConfig } from '../../../lib/store-types';
2
+ interface ProductDetailPageProps {
3
+ storeConfig: StoreConfig;
4
+ productSlug: string;
5
+ }
6
+ export declare function ElectronicsGridProductDetailPage({ storeConfig, productSlug }: ProductDetailPageProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=ProductDetailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics-grid/pages/ProductDetailPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA8C,MAAM,mBAAmB,CAAC;AA4C5F,UAAU,sBAAsB;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyHD,wBAAgB,gCAAgC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,sBAAsB,2CAu3BpG"}
@@ -0,0 +1,430 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { shareProductLink } from '../../../lib/utils/product-share.js';
4
+ import { Button } from '../../../components/ui/button.js';
5
+ import { Breadcrumbs } from '../../../components/ui/breadcrumbs.js';
6
+ import { Modal } from '../../../components/ui/modal.js';
7
+ import { ShoppingCart, Heart, Star, ThumbsUp, User, Minus, Plus, Share2 } from 'lucide-react';
8
+ import { useState, useMemo, useEffect } from 'react';
9
+ import { useStore } from '../../../lib/store-context.js';
10
+ import { useToast } from '../../../components/ui/toast.js';
11
+ import { useRouter } from 'next/navigation';
12
+ import { useAuth } from '../../../lib/auth-context.js';
13
+ import { useAnalytics } from '../../../hooks/use-analytics.js';
14
+ import { customerService } from '../../../lib/services/customer.service.js';
15
+ import { GuestCheckoutModal } from '../../../components/ui/guest-checkout-modal.js';
16
+ import { getGuestUserInfo, saveGuestUserInfo } from '../../../lib/guest-user.js';
17
+ import { ProductCard } from '../../../components/ui/product-card.js';
18
+ import Image from 'next/image';
19
+ import { ImageWithFallback } from '../../../components/ui/image-with-fallback.js';
20
+ import { ButtonLoader } from '../../../components/ui/page-loader.js';
21
+ import { extractImageUrls } from '../../../lib/store-config-utils.js';
22
+ import { OutOfStockOverlay } from '../../../components/ui/out-of-stock-overlay.js';
23
+ import { ProductStockBadge } from '../../../components/ui/product-stock-badge.js';
24
+ import { LimitedTimeOfferBadge } from '../../../components/ui/limited-time-offer-badge.js';
25
+ import { getProductStockInfo, getMaxPurchasableQuantity, formatStockLimitMessage } from '../../../lib/inventory-utils.js';
26
+ import { cn, formatCurrency, isEditorPreviewMode, resolveProductBySlugForDisplay, resolveStoreProductsForDisplay, } from '../../../lib/utils/index.js';
27
+ import { useShippingQuote } from '../../../hooks/use-shipping-quote.js';
28
+ import { ProductDeliveryInfoSection } from '../../../components/shipping/ProductDeliveryInfoSection.js';
29
+ import { isAutomatedShippingEnabled } from '../../../lib/shipping-settings.util.js';
30
+ import { enrichShippingQuoteAddress } from '../../../lib/shipping-address.util.js';
31
+ import { useProductVariationSelection } from '../../../hooks/use-product-variation-selection.js';
32
+ import { ProductVariationSelectors } from '../../../components/product/ProductVariationSelectors.js';
33
+ import { findMatchingVariation } from '../../../lib/product-variation-utils.js';
34
+ import { guardCheckoutAvailable, isCheckoutDisabled } from '../../../lib/checkout-availability.js';
35
+ import { formatDateSafe } from '../../../utils/date.js';
36
+ // Helper function to format date
37
+ const formatDate = (dateString) => {
38
+ return formatDateSafe(dateString, '—', { year: 'numeric', month: 'long', day: 'numeric' });
39
+ };
40
+ // Star Rating Component with half-star support
41
+ function StarRating({ rating, size = 'md', className = '' }) {
42
+ const sizeClasses = {
43
+ sm: 'h-3.5 w-3.5',
44
+ md: 'h-4 w-4',
45
+ lg: 'h-6 w-6',
46
+ };
47
+ const starSize = sizeClasses[size];
48
+ return (_jsx("div", { className: `flex items-center gap-0.5 ${className}`, children: [...Array(5)].map((_, i) => {
49
+ const starValue = i + 1;
50
+ const fullStars = Math.floor(rating);
51
+ const hasHalfStar = rating % 1 >= 0.5 && fullStars === i;
52
+ const isFull = starValue <= fullStars;
53
+ const isHalf = hasHalfStar;
54
+ return (_jsxs("div", { className: `relative inline-block ${sizeClasses[size]}`, children: [_jsx(Star, { className: `w-full h-full absolute inset-0 text-gray-200 fill-gray-200` }), isHalf && (_jsx("div", { className: "absolute inset-0", style: { clipPath: 'inset(0 50% 0 0)' }, children: _jsx(Star, { className: `w-full h-full text-gray-900 fill-gray-900` }) })), isFull && (_jsx(Star, { className: `w-full h-full absolute inset-0 text-gray-900 fill-gray-900` }))] }, i));
55
+ }) }));
56
+ }
57
+ import { ProductDescription } from '../../../components/rich-text/ProductDescription.js';
58
+ function ReviewCard({ review }) {
59
+ return (_jsxs("div", { className: "border-b border-gray-100 pb-8 last:border-b-0 last:pb-0", children: [_jsx("div", { className: "flex items-start justify-between mb-4", children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("div", { className: "w-12 h-12 rounded-full bg-gradient-to-br from-gray-200 to-gray-300 flex items-center justify-center flex-shrink-0 ring-2 ring-white shadow-sm overflow-hidden", children: [review.userAvatar ? (_jsx(Image, { src: review.userAvatar, alt: review.userName, fill: true, className: "w-full h-full object-cover", unoptimized: true })) : null, _jsx(User, { className: "h-6 w-6 text-gray-600", style: { display: review.userAvatar ? 'none' : 'flex' } })] }), _jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-1", children: [_jsx("span", { className: "font-semibold text-gray-900", children: review.userName }), review.verified && (_jsx("span", { className: "text-xs bg-blue-50 text-blue-700 px-2.5 py-1 rounded-full font-medium border border-blue-100", children: "Verified Purchase" }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StarRating, { rating: review.rating, size: "sm" }), _jsx("span", { className: "text-xs text-gray-500", children: formatDate(review.date) })] })] })] }) }), review.title && (_jsx("h4", { className: "font-semibold text-gray-900 mb-3 text-lg", children: review.title })), _jsx("p", { className: "text-gray-700 leading-relaxed mb-4", children: review.comment }), review.images && review.images.length > 0 && (_jsx("div", { className: "flex gap-2 mb-4", children: review.images.map((img, idx) => (_jsx("div", { className: "relative w-20 h-20 rounded-lg overflow-hidden border border-gray-200", children: _jsx(Image, { src: img, alt: `${review.userName}'s review image ${idx + 1}`, fill: true, className: "object-cover", unoptimized: true }) }, idx))) })), review.helpful !== undefined && (_jsx("div", { className: "flex items-center gap-4", children: _jsxs("button", { className: "flex items-center gap-1.5 text-xs text-gray-600 hover:text-gray-900 transition-colors font-medium", children: [_jsx(ThumbsUp, { className: "h-4 w-4" }), _jsxs("span", { children: ["Helpful (", review.helpful, ")"] })] }) }))] }));
60
+ }
61
+ export function ElectronicsGridProductDetailPage({ storeConfig, productSlug }) {
62
+ const { addToCart, isCartLoading, toggleWishlist, isInWishlist, isWishlistLoading, setBuyNowItem } = useStore();
63
+ const isPreview = isEditorPreviewMode(storeConfig);
64
+ const products = resolveStoreProductsForDisplay(storeConfig.products, isPreview);
65
+ const product = resolveProductBySlugForDisplay(storeConfig.products, productSlug, isPreview);
66
+ const { optionGroups, selectedAttributes, setAttribute, selectedColor, selectedSize, matchingVariation, hasVariations, } = useProductVariationSelection(product?.variants);
67
+ const { addToast } = useToast();
68
+ const router = useRouter();
69
+ const { isAuthenticated } = useAuth();
70
+ const { trackEvent } = useAnalytics();
71
+ // Related products logic
72
+ const relatedProducts = useMemo(() => {
73
+ if (!product)
74
+ return [];
75
+ return products
76
+ .filter(p => p.categoryId === product.categoryId && p.id !== product.id)
77
+ .slice(0, 4);
78
+ }, [product, products]);
79
+ const handleShare = async () => {
80
+ if (!product)
81
+ return;
82
+ try {
83
+ const result = await shareProductLink({
84
+ storeSlug: storeConfig.slug,
85
+ productSlug: product.slug,
86
+ productName: product.name,
87
+ });
88
+ addToast(result === 'shared' ? 'Product shared!' : 'Link copied to clipboard!', 'success');
89
+ }
90
+ catch (error) {
91
+ if (error instanceof Error && error.name === 'AbortError')
92
+ return;
93
+ addToast('Failed to copy link', 'error');
94
+ }
95
+ };
96
+ const handleQuickView = (p) => {
97
+ // Navigate to product page for now
98
+ router.push(`/${storeConfig.slug}/products/${p.slug}`);
99
+ };
100
+ const handleWishlistClick = async () => {
101
+ if (!product)
102
+ return;
103
+ if (isWishlistLoading) {
104
+ return; // Prevent multiple clicks
105
+ }
106
+ try {
107
+ const wasInWishlist = isInWishlist(product.id);
108
+ await toggleWishlist(product.id);
109
+ addToast(wasInWishlist
110
+ ? `${product.name} removed from wishlist`
111
+ : `${product.name} added to wishlist`, 'success');
112
+ }
113
+ catch (error) {
114
+ console.error('Failed to toggle wishlist:', error);
115
+ addToast('Failed to update wishlist', 'error');
116
+ }
117
+ };
118
+ // Initialize state with defaults
119
+ const [selectedImage, setSelectedImage] = useState(0);
120
+ // Ensure selectedImage is within bounds when images change
121
+ useEffect(() => {
122
+ if (product && product.images && product.images.length > 0 && selectedImage >= product.images.length) {
123
+ // Use setTimeout to avoid synchronous setState in effect
124
+ const timer = setTimeout(() => setSelectedImage(0), 0);
125
+ return () => clearTimeout(timer);
126
+ }
127
+ }, [product, selectedImage]);
128
+ const [quantity, setQuantity] = useState(1);
129
+ const [showAllReviews, setShowAllReviews] = useState(false);
130
+ const [isReviewModalOpen, setIsReviewModalOpen] = useState(false);
131
+ const [newReview, setNewReview] = useState({ rating: 5, title: '', comment: '' });
132
+ const [showGuestModal, setShowGuestModal] = useState(false);
133
+ const [isBuyNowLoading, setIsBuyNowLoading] = useState(false);
134
+ // Shipping calculation (ShipBubble-ready address fields)
135
+ const currency = product?.currency || storeConfig.settings?.currency || 'USD';
136
+ const { address: shippingAddress, updateAddress: updateShippingAddress, methods: shippingMethods, isCalculating: isCalculatingShipping, error: shippingError, freeShippingEligible, freeShippingThreshold, } = useShippingQuote({
137
+ storeId: storeConfig.id,
138
+ productId: product?.id || '',
139
+ productPrice: product?.price || 0,
140
+ currency,
141
+ quantity,
142
+ enabled: Boolean(product) && isAutomatedShippingEnabled(storeConfig),
143
+ });
144
+ const [savedAddresses, setSavedAddresses] = useState([]);
145
+ const handleSubmitReview = (e) => {
146
+ e.preventDefault();
147
+ // In a real app, this would submit to API
148
+ addToast('Review submitted successfully!', 'success');
149
+ setIsReviewModalOpen(false);
150
+ setNewReview({ rating: 5, title: '', comment: '' });
151
+ };
152
+ if (!product) {
153
+ return (_jsx("div", { className: "min-h-screen bg-white flex items-center justify-center p-8", children: _jsxs("div", { className: "text-center", children: [_jsx("h1", { className: "text-2xl font-bold mb-2", children: "Product Not Found" }), _jsx("p", { className: "text-gray-600 mb-4", children: "The product you're looking for doesn't exist." })] }) }));
154
+ }
155
+ // Use SKU for display, fallback to generated SKU from slug if not available
156
+ const displaySKU = product.sku || product.slug?.toUpperCase().replace(/-/g, '').substring(0, 12).padEnd(8, 'X') || 'N/A';
157
+ // Build category breadcrumb path with all parent categories
158
+ const buildCategoryPath = (categoryId) => {
159
+ if (!categoryId)
160
+ return [];
161
+ const path = [];
162
+ let currentCategoryId = categoryId;
163
+ // Traverse up the parent chain
164
+ while (currentCategoryId) {
165
+ const category = storeConfig.categories.find(c => c.id === currentCategoryId);
166
+ if (!category)
167
+ break;
168
+ path.unshift(category); // Add to beginning to maintain root-to-leaf order
169
+ currentCategoryId = category.parentId || null;
170
+ }
171
+ return path;
172
+ };
173
+ // Get category path for breadcrumbs
174
+ const categoryPath = product.categoryId ? buildCategoryPath(product.categoryId) : [];
175
+ const directCategory = categoryPath.length > 0 ? categoryPath[categoryPath.length - 1] : null;
176
+ // Generate breadcrumbs with all parent categories
177
+ const breadcrumbItems = [
178
+ { label: storeConfig.name, href: `/${storeConfig.slug}` },
179
+ // Add all parent categories
180
+ ...categoryPath.map(cat => ({
181
+ label: cat.name,
182
+ href: `/${storeConfig.slug}/categories/${cat.slug || ''}`,
183
+ })),
184
+ // Add product name
185
+ { label: product.name, href: `/${storeConfig.slug}/products/${product.slug}` },
186
+ ];
187
+ // Extract product images - product.images should already be string[] from transformation,
188
+ // but handle edge cases where it might still be in object format
189
+ // Use the comprehensive extraction utility from store-config-utils for consistency
190
+ const productImages = (() => {
191
+ // Debug: Log the raw product.images to understand its format
192
+ if (process.env.NODE_ENV === 'development') {
193
+ console.log('[ProductDetailPage] Raw product.images:', {
194
+ productId: product.id,
195
+ productName: product.name,
196
+ images: product.images,
197
+ imagesType: typeof product.images,
198
+ imagesIsArray: Array.isArray(product.images),
199
+ imagesLength: Array.isArray(product.images) ? product.images.length : 'N/A',
200
+ firstItem: Array.isArray(product.images) && product.images.length > 0 ? product.images[0] : 'N/A',
201
+ firstItemType: Array.isArray(product.images) && product.images.length > 0 ? typeof product.images[0] : 'N/A'
202
+ });
203
+ }
204
+ // If already an array of strings (normal case after transformation)
205
+ if (Array.isArray(product.images) && product.images.length > 0) {
206
+ const firstItem = product.images[0];
207
+ if (typeof firstItem === 'string') {
208
+ const filtered = product.images.filter((img) => typeof img === 'string' && img.trim().length > 0);
209
+ if (process.env.NODE_ENV === 'development') {
210
+ console.log('[ProductDetailPage] Using string array directly:', { count: filtered.length, firstImage: filtered[0]?.substring(0, 100) });
211
+ }
212
+ return filtered;
213
+ }
214
+ // If array but not strings, extract using utility
215
+ if (process.env.NODE_ENV === 'development') {
216
+ console.log('[ProductDetailPage] Array but not strings, using extractImageUrls');
217
+ }
218
+ }
219
+ // Use the comprehensive extraction utility for any other format (objects, nested structures, etc.)
220
+ const extracted = extractImageUrls(product.images);
221
+ if (process.env.NODE_ENV === 'development') {
222
+ console.log('[ProductDetailPage] Extracted using utility:', { count: extracted.length, firstImage: extracted[0]?.substring(0, 100) });
223
+ }
224
+ return extracted;
225
+ })();
226
+ // For gallery, use actual images only (don't duplicate to fill 5 slots)
227
+ const displayImages = productImages.slice(0, 5);
228
+ const hasMoreImages = productImages.length > 5;
229
+ // Debug logging for images (can be removed in production)
230
+ if (process.env.NODE_ENV === 'development') {
231
+ if (productImages.length === 0) {
232
+ console.warn(`[ProductDetailPage] Product "${product.name}" (${product.id}) has no valid images:`, {
233
+ productId: product.id,
234
+ productName: product.name,
235
+ originalImages: product.images,
236
+ originalType: typeof product.images,
237
+ originalIsArray: Array.isArray(product.images),
238
+ validImagesCount: productImages.length
239
+ });
240
+ }
241
+ else {
242
+ console.log(`[ProductDetailPage] Product "${product.name}" (${product.id}) images:`, {
243
+ productId: product.id,
244
+ validImagesCount: productImages.length,
245
+ displayImagesCount: displayImages.length,
246
+ firstImage: productImages[0]?.substring(0, 100)
247
+ });
248
+ }
249
+ }
250
+ // Color swatch mapping
251
+ const colorSwatches = {
252
+ 'White': '#FFFFFF',
253
+ 'Black': '#000000',
254
+ 'Gray': '#808080',
255
+ 'Grey': '#808080',
256
+ 'Blue': '#3B82F6',
257
+ 'Red': '#EF4444',
258
+ 'Green': '#10B981',
259
+ 'Yellow': '#FBBF24',
260
+ 'Brown': '#92400E',
261
+ 'Navy': '#1E3A8A',
262
+ 'Beige': '#F5F5DC',
263
+ };
264
+ // Get reviews
265
+ const reviews = product.reviews || [];
266
+ const displayedReviews = showAllReviews ? reviews : reviews.slice(0, 3);
267
+ const hasMoreReviews = reviews.length > 3;
268
+ // Out of stock check
269
+ const stockInfo = getProductStockInfo(product);
270
+ const isOutOfStock = !stockInfo.canPurchase;
271
+ const maxPurchasableQty = getMaxPurchasableQuantity(product);
272
+ // Calculate rating distribution
273
+ const ratingDistribution = [5, 4, 3, 2, 1].map(rating => {
274
+ const count = reviews.filter(r => r.rating === rating).length;
275
+ return {
276
+ rating,
277
+ count,
278
+ percentage: reviews.length > 0 ? (count / reviews.length) * 100 : 0,
279
+ };
280
+ });
281
+ const handleAddToCart = () => {
282
+ if (isOutOfStock) {
283
+ addToast(formatStockLimitMessage(product.name, stockInfo.availableStock ?? 0), 'error');
284
+ return;
285
+ }
286
+ if (hasVariations && !matchingVariation) {
287
+ addToast('Please select all product options', 'error');
288
+ return;
289
+ }
290
+ // Find the matching variation UUID based on selected attributes
291
+ // Note: StoreProduct uses 'variants' not 'variations'
292
+ let variationId = matchingVariation?.id;
293
+ if (!variationId && product.variants && product.variants.length > 0) {
294
+ const resolved = findMatchingVariation(product.variants, {
295
+ ...(selectedColor ? { color: selectedColor } : {}),
296
+ ...(selectedSize ? { size: selectedSize } : {}),
297
+ ...selectedAttributes,
298
+ });
299
+ variationId = resolved?.id;
300
+ }
301
+ // Fallback to composite string for backward compatibility if no variation found
302
+ const variantId = variationId || (selectedColor || selectedSize
303
+ ? [selectedColor, selectedSize].filter(Boolean).join(' / ')
304
+ : undefined);
305
+ const resolvedVariation = variationId ? product.variants?.find(v => v.id === variationId) : matchingVariation;
306
+ const variantName = resolvedVariation?.value || Object.values(resolvedVariation?.attributes || {}).filter(Boolean).join(' / ') || undefined;
307
+ const unitPrice = resolvedVariation?.price ?? product.price;
308
+ addToCart(product, quantity, { variantId, variantName, unitPrice });
309
+ addToast(`${product.name} added to cart`, 'success');
310
+ };
311
+ const handleBuyNow = async () => {
312
+ if (isOutOfStock) {
313
+ addToast(formatStockLimitMessage(product.name, stockInfo.availableStock ?? 0), 'error');
314
+ return;
315
+ }
316
+ if (hasVariations && !matchingVariation) {
317
+ addToast('Please select all product options', 'error');
318
+ return;
319
+ }
320
+ if (!guardCheckoutAvailable(storeConfig, addToast)) {
321
+ return;
322
+ }
323
+ if (isBuyNowLoading || isCartLoading) {
324
+ return; // Prevent multiple clicks
325
+ }
326
+ setIsBuyNowLoading(true);
327
+ try {
328
+ // Find the matching variation UUID based on selected attributes
329
+ // Note: StoreProduct uses 'variants' not 'variations'
330
+ let variationId = matchingVariation?.id;
331
+ let variantName;
332
+ if (!variationId && product.variants && product.variants.length > 0) {
333
+ const resolved = findMatchingVariation(product.variants, {
334
+ ...(selectedColor ? { color: selectedColor } : {}),
335
+ ...(selectedSize ? { size: selectedSize } : {}),
336
+ ...selectedAttributes,
337
+ });
338
+ variationId = resolved?.id;
339
+ variantName = resolved?.value || Object.values(resolved?.attributes || {}).filter(Boolean).join(' / ');
340
+ }
341
+ else if (matchingVariation) {
342
+ variantName = matchingVariation.value || Object.values(matchingVariation.attributes || {}).filter(Boolean).join(' / ');
343
+ }
344
+ // Fallback to composite string for backward compatibility if no variation found
345
+ const variantId = variationId || (selectedColor || selectedSize
346
+ ? [selectedColor, selectedSize].filter(Boolean).join(' / ')
347
+ : undefined);
348
+ // Create buy now item (don't add to cart)
349
+ const buyNowItemId = variantId ? `${product.id}-${variantId}` : product.id;
350
+ const buyNowItem = {
351
+ id: buyNowItemId,
352
+ productId: product.id,
353
+ quantity,
354
+ variantId,
355
+ variantName: variantName || variantId,
356
+ price: (variationId ? product.variants?.find(v => v.id === variationId)?.price : matchingVariation?.price) ?? product.price,
357
+ product
358
+ };
359
+ // Set buy now item and navigate directly to checkout
360
+ setBuyNowItem(buyNowItem);
361
+ // Navigate to checkout page for direct checkout
362
+ router.push(`/${storeConfig.slug}/checkout`);
363
+ }
364
+ catch (error) {
365
+ console.error('Buy Now error:', error);
366
+ addToast('Failed to proceed to checkout. Please try again.', 'error');
367
+ }
368
+ finally {
369
+ setIsBuyNowLoading(false);
370
+ }
371
+ };
372
+ const handleGuestInfoSubmit = (userInfo) => {
373
+ // Save guest info to localStorage
374
+ saveGuestUserInfo(userInfo);
375
+ setShowGuestModal(false);
376
+ // Note: This is now only used for other flows, not buy now
377
+ // Buy now now redirects to checkout page
378
+ };
379
+ // Load saved addresses for authenticated users and auto-populate shipping address
380
+ useEffect(() => {
381
+ const loadAddresses = async () => {
382
+ if (isAuthenticated) {
383
+ try {
384
+ const addresses = await customerService.getAddresses();
385
+ setSavedAddresses(addresses);
386
+ if (addresses.length > 0) {
387
+ const defaultAddress = addresses.find((a) => a.isDefault) || addresses[0];
388
+ if (defaultAddress) {
389
+ updateShippingAddress(enrichShippingQuoteAddress({
390
+ country: defaultAddress.country || '',
391
+ city: defaultAddress.city || '',
392
+ zipCode: defaultAddress.zipCode || '',
393
+ street: defaultAddress.address1 || '',
394
+ state: defaultAddress.state || '',
395
+ phone: defaultAddress.phone || '',
396
+ }));
397
+ }
398
+ }
399
+ }
400
+ catch (error) {
401
+ console.error('Failed to load addresses:', error);
402
+ }
403
+ }
404
+ };
405
+ loadAddresses();
406
+ // eslint-disable-next-line react-hooks/exhaustive-deps
407
+ }, [isAuthenticated]);
408
+ // Track product view
409
+ useEffect(() => {
410
+ if (product && storeConfig?.id) {
411
+ trackEvent({
412
+ eventType: 'product_view',
413
+ metadata: {
414
+ productId: product.id,
415
+ productName: product.name,
416
+ categoryId: product.categoryId,
417
+ price: product.price,
418
+ },
419
+ });
420
+ }
421
+ }, [product?.id, storeConfig?.id, trackEvent]);
422
+ return (_jsxs("div", { className: "min-h-screen bg-white", children: [_jsxs("div", { "data-content-ready": true, className: "container mx-auto px-4 sm:px-6 lg:px-8 py-8 lg:py-12 max-w-7xl", children: [_jsx("div", { className: "mb-6", children: _jsx(Breadcrumbs, { items: breadcrumbItems }) }), _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-16 mb-20", children: [_jsxs("div", { className: "relative lg:sticky lg:top-24 self-start z-0", children: [_jsxs("div", { className: "relative aspect-square bg-gray-50 rounded-xl overflow-hidden mb-4 border border-gray-100 shadow-sm group", children: [_jsx(ImageWithFallback, { "data-product-image": true, src: displayImages[selectedImage] || displayImages[0] || productImages[0], alt: product.name, className: cn("w-full h-full object-cover transition-transform duration-300 group-hover:scale-105", isOutOfStock && "grayscale"), skeletonAspectRatio: "square" }), isOutOfStock && (_jsx(OutOfStockOverlay, { badgePosition: "center" }))] }), displayImages.length > 0 && (_jsxs("div", { className: "grid grid-cols-5 gap-2", children: [displayImages.map((image, index) => (_jsx("button", { onClick: () => setSelectedImage(Math.min(index, displayImages.length - 1)), className: `aspect-square rounded-lg overflow-hidden border-2 transition-all ${selectedImage === index
423
+ ? 'border-gray-900 ring-2 ring-gray-900 ring-offset-2'
424
+ : 'border-gray-200 hover:border-gray-300'}`, children: _jsx(ImageWithFallback, { src: image, alt: `${product.name} view ${index + 1}`, className: cn("w-full h-full object-cover", isOutOfStock && "grayscale"), skeletonAspectRatio: "square" }) }, index))), hasMoreImages && (_jsxs("div", { className: "aspect-square rounded-lg border-2 border-gray-200 bg-gray-50 flex items-center justify-center text-xs text-gray-500 font-medium", children: ["+", productImages.length - 5, " more"] }))] }))] }), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("span", { className: "text-sm font-semibold text-gray-700 uppercase tracking-wide", children: (() => {
425
+ const brandMatch = product.name.match(/\b(Sony|Samsung|Apple|LG|Dell|HP|Microsoft|Logitech|Razer|Corsair|Asus|Acer|Lenovo)\b/i);
426
+ return brandMatch ? brandMatch[1] : storeConfig.name;
427
+ })() }), _jsx("button", { onClick: handleShare, className: "text-gray-400 hover:text-gray-900 transition-colors p-2 rounded-full hover:bg-gray-100", title: "Share this product", children: _jsx(Share2, { className: "h-5 w-5" }) })] }), _jsx("h1", { "data-product-name": true, className: "text-3xl sm:text-4xl lg:text-5xl font-bold text-gray-900 mb-3 leading-tight tracking-tight", children: product.name }), _jsxs("p", { className: "text-sm text-gray-500 mb-6 font-mono", children: ["SKU: ", displaySKU] }), _jsxs("div", { className: "mb-4 flex items-center gap-2", children: [_jsx(ProductStockBadge, { product: product }), _jsx(LimitedTimeOfferBadge, { product: product })] }), _jsxs("div", { className: "mb-8", children: [_jsxs("div", { className: "flex items-baseline gap-4", children: [_jsx("span", { "data-product-price": true, className: "text-4xl lg:text-5xl font-bold text-gray-900", children: formatCurrency(product.price, product.currency || 'USD') }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsx("span", { className: "text-2xl text-gray-500 line-through", children: formatCurrency(product.compareAtPrice, product.currency || 'USD') }))] }), product.compareAtPrice != null && product.compareAtPrice > product.price && (_jsxs("span", { className: "inline-block mt-2 bg-red-100 text-red-700 text-xs font-bold px-2 py-1 rounded", children: ["SAVE ", Math.round(((product.compareAtPrice - product.price) / product.compareAtPrice) * 100), "%"] }))] }), _jsx(ProductVariationSelectors, { optionGroups: optionGroups, selectedAttributes: selectedAttributes, onSelectAttribute: setAttribute, storeSlug: storeConfig.slug, colorSwatches: colorSwatches }), _jsxs("div", { className: "flex flex-col gap-4 mb-8", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: "Quantity" }), _jsxs("div", { className: "flex items-center border border-gray-300 rounded-lg", children: [_jsx("button", { className: "p-3 text-gray-600 hover:bg-gray-100 rounded-l-lg disabled:opacity-50", onClick: () => setQuantity(Math.max(1, quantity - 1)), disabled: quantity <= 1, children: _jsx(Minus, { className: "h-4 w-4" }) }), _jsx("span", { className: "w-12 text-center font-semibold text-gray-900", children: quantity }), _jsx("button", { className: "p-3 text-gray-600 hover:bg-gray-100 rounded-r-lg", onClick: () => setQuantity(Math.min(maxPurchasableQty ?? quantity + 1, quantity + 1)), children: _jsx(Plus, { className: "h-4 w-4" }) })] })] }), _jsxs("div", { className: "flex flex-col sm:flex-row gap-3 mt-2", children: [_jsx(Button, { "data-add-to-cart": true, size: "lg", onClick: handleAddToCart, disabled: isCartLoading || isOutOfStock, className: "w-full sm:flex-1 bg-white border-2 border-gray-900 text-gray-900 hover:bg-gray-50 rounded-full min-h-14 text-base font-bold shadow-sm transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: isCartLoading ? (_jsxs(_Fragment, { children: [_jsx(ButtonLoader, { className: "mr-2" }), "Adding..."] })) : (_jsxs(_Fragment, { children: [_jsx(ShoppingCart, { className: "h-5 w-5 mr-2" }), "Add to Cart"] })) }), _jsx(Button, { size: "xl", onClick: handleBuyNow, disabled: isOutOfStock || isBuyNowLoading || isCartLoading || isCheckoutDisabled(storeConfig), className: "w-full sm:flex-1 bg-gray-900 hover:bg-gray-800 text-white rounded-full min-h-14 text-base font-bold shadow-lg hover:shadow-xl transition-all disabled:opacity-50 disabled:cursor-not-allowed", children: isBuyNowLoading || isCartLoading ? (_jsxs(_Fragment, { children: [_jsx(ButtonLoader, { className: "mr-2" }), "Adding..."] })) : ('Buy Now') }), storeConfig.features.wishlist && (_jsx(Button, { variant: "outline", size: "xl", onClick: handleWishlistClick, disabled: isWishlistLoading || !product, className: cn("h-14 w-14 rounded-full border-2 transition-all disabled:opacity-50 disabled:cursor-not-allowed", product && isInWishlist(product.id)
428
+ ? "border-red-500 bg-red-50 text-red-500 hover:bg-red-100"
429
+ : "border-gray-200 hover:border-gray-300 hover:bg-gray-50"), children: isWishlistLoading ? (_jsx(ButtonLoader, { className: "h-5 w-5" })) : (_jsx(Heart, { className: cn("h-5 w-5", product && isInWishlist(product.id) && "fill-current") })) }))] })] }), _jsx(ProductDeliveryInfoSection, { storeConfig: storeConfig, currency: currency, productCurrency: product.currency, productPrice: product.price, quantity: quantity, shippingAddress: shippingAddress, updateShippingAddress: updateShippingAddress, shippingMethods: shippingMethods, isCalculatingShipping: isCalculatingShipping, shippingError: shippingError, freeShippingEligible: freeShippingEligible, freeShippingThreshold: freeShippingThreshold, onToast: (message, type) => addToast(message, type) }), _jsx(ProductDescription, { description: product.description }), product.specifications && Object.keys(product.specifications).length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "text-lg font-semibold text-gray-900 mb-4", children: "Specifications" }), _jsx("dl", { className: "grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-4", children: Object.entries(product.specifications).map(([key, value]) => (_jsxs("div", { className: "flex flex-col p-3 bg-gray-50 rounded-lg", children: [_jsx("dt", { className: "text-xs text-gray-500 font-medium uppercase tracking-wider mb-1", children: key }), _jsx("dd", { className: "text-sm font-bold text-gray-900", children: value })] }, key))) })] }))] })] }), _jsx("div", { className: "mt-20 pt-16 border-t border-gray-200", children: _jsxs("div", { className: "max-w-4xl", children: [_jsxs("div", { className: "flex flex-col sm:flex-row items-start sm:items-center justify-between gap-6 mb-10", children: [_jsxs("div", { className: "flex-1", children: [_jsx("h2", { className: "text-2xl lg:text-3xl font-bold text-gray-900 mb-4", children: "Customer Reviews" }), product.reviewCount && product.reviewCount > 0 && product.rating && product.rating > 0 ? (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StarRating, { rating: typeof product.rating === 'number' ? product.rating : Number(product.rating) || 0, size: "lg" }), _jsx("span", { className: "text-2xl font-bold text-gray-900", children: Number(product.rating).toFixed(1) }), _jsx("span", { className: "text-lg text-gray-500", children: "out of 5" })] }), _jsx("span", { className: "text-gray-300", children: "|" }), _jsxs("span", { className: "text-lg text-gray-600", children: [product.reviewCount, " ", product.reviewCount === 1 ? 'review' : 'reviews'] })] })) : (_jsx("div", { className: "text-gray-500", children: _jsx("p", { className: "text-base", children: "Be the first to review this product" }) }))] }), _jsx(Button, { onClick: () => setIsReviewModalOpen(true), className: "rounded-full shrink-0 bg-gray-900 hover:bg-gray-800 text-white", children: product.reviewCount && product.reviewCount > 0 ? 'Write a Review' : 'Be the First to Review' })] }), ratingDistribution.some(r => r.count > 0) && (_jsxs("div", { className: "mb-10 p-6 bg-gray-50 rounded-xl border border-gray-100", children: [_jsx("h3", { className: "text-sm font-semibold text-gray-900 mb-5", children: "Rating Breakdown" }), _jsx("div", { className: "space-y-3", children: ratingDistribution.map(({ rating, count, percentage }) => (_jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "flex items-center gap-1.5 w-20", children: [_jsx("span", { className: "text-sm font-semibold text-gray-900", children: rating }), _jsx(Star, { className: "h-4 w-4 fill-gray-900 text-gray-900" })] }), _jsx("div", { className: "flex-1 h-2.5 bg-gray-200 rounded-full overflow-hidden", children: _jsx("div", { className: "h-full bg-gradient-to-r from-gray-700 to-gray-900 rounded-full transition-all duration-500", style: { width: `${percentage}%` } }) }), _jsx("span", { className: "text-sm font-medium text-gray-700 w-12 text-right", children: count })] }, rating))) })] })), reviews.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "space-y-6", children: displayedReviews.map((review) => (_jsx(ReviewCard, { review: review }, review.id))) }), hasMoreReviews && !showAllReviews && (_jsx("div", { className: "mt-8 text-center", children: _jsxs(Button, { variant: "outline", onClick: () => setShowAllReviews(true), className: "px-8 rounded-full h-12 border-gray-300", children: ["Show All ", reviews.length, " Reviews"] }) }))] })) : (_jsxs("div", { className: "text-center py-12 bg-gray-50 rounded-xl border border-dashed border-gray-300", children: [_jsx("div", { className: "inline-flex items-center justify-center w-12 h-12 rounded-full bg-white shadow-sm mb-4", children: _jsx(Star, { className: "h-6 w-6 text-gray-400" }) }), _jsx("h3", { className: "text-lg font-semibold text-gray-900 mb-2", children: "No Reviews Yet" }), _jsx("p", { className: "text-gray-500 max-w-sm mx-auto mb-6", children: "Be the first to review this product and help other customers make informed decisions." }), _jsx(Button, { onClick: () => setIsReviewModalOpen(true), className: "bg-gray-900 hover:bg-gray-800 text-white", children: "Write the First Review" })] }))] }) }), relatedProducts.length > 0 && (_jsxs("div", { className: "mt-20 pt-16 border-t border-gray-200", children: [_jsx("h2", { className: "text-2xl lg:text-3xl font-bold text-gray-900 mb-8", children: "You Might Also Like" }), _jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", children: relatedProducts.map((relatedProduct) => (_jsx("div", { className: "h-[400px]", children: _jsx(ProductCard, { product: relatedProduct, storeSlug: storeConfig.slug, onAddToCart: (p) => addToCart(p, 1), onQuickView: handleQuickView, className: "h-full" }) }, relatedProduct.id))) })] }))] }), _jsx(Modal, { isOpen: isReviewModalOpen, onClose: () => setIsReviewModalOpen(false), title: "Write a Review", children: _jsxs("form", { onSubmit: handleSubmitReview, className: "space-y-4", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Rating" }), _jsxs("div", { className: "flex items-center gap-1", children: [[1, 2, 3, 4, 5].map((star) => (_jsxs("div", { className: "relative group", children: [_jsx("button", { type: "button", onClick: () => setNewReview({ ...newReview, rating: star - 0.5 }), className: "absolute top-0 left-0 w-1/2 h-full z-20 focus:outline-none", title: `${star - 0.5} stars` }), _jsx("button", { type: "button", onClick: () => setNewReview({ ...newReview, rating: star }), className: "absolute top-0 right-0 w-1/2 h-full z-20 focus:outline-none", title: `${star} stars` }), _jsxs("div", { className: "relative pointer-events-none transition-transform group-hover:scale-110", children: [_jsx(Star, { className: "h-8 w-8 text-gray-200 fill-gray-200" }), newReview.rating >= star - 0.5 && (_jsx("div", { className: "absolute inset-0 overflow-hidden", style: { width: newReview.rating === star - 0.5 ? '50%' : '100%' }, children: _jsx(Star, { className: "h-8 w-8 text-gray-900 fill-gray-900" }) }))] })] }, star))), _jsx("span", { className: "ml-3 text-lg font-medium text-gray-900 w-12", children: newReview.rating })] })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "title", className: "block text-sm font-medium text-gray-700 mb-1", children: "Review Title" }), _jsx("input", { type: "text", id: "title", required: true, className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-black", placeholder: "Summarize your thoughts", value: newReview.title, onChange: (e) => setNewReview({ ...newReview, title: e.target.value }) })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: "comment", className: "block text-sm font-medium text-gray-700 mb-1", children: "Review" }), _jsx("textarea", { id: "comment", required: true, rows: 4, className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-black", placeholder: "What did you like or dislike?", value: newReview.comment, onChange: (e) => setNewReview({ ...newReview, comment: e.target.value }) })] }), _jsxs("div", { className: "pt-4 flex justify-end gap-3", children: [_jsx(Button, { type: "button", variant: "outline", onClick: () => setIsReviewModalOpen(false), children: "Cancel" }), _jsx(Button, { type: "submit", className: "bg-black text-white hover:bg-gray-800", children: "Submit Review" })] })] }) }), _jsx(GuestCheckoutModal, { isOpen: showGuestModal, onClose: () => setShowGuestModal(false), onSubmit: handleGuestInfoSubmit, initialData: getGuestUserInfo() || undefined })] }));
430
+ }
@@ -0,0 +1,7 @@
1
+ import { StoreConfig } from '../../../lib/store-types';
2
+ interface ProductsPageProps {
3
+ storeConfig: StoreConfig;
4
+ }
5
+ export declare function ElectronicsGridProductsListingPage(props: ProductsPageProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=ProductsPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductsPage.d.ts","sourceRoot":"","sources":["../../../../src/layouts/electronics-grid/pages/ProductsPage.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,mBAAmB,CAAC;AAwB9D,UAAU,iBAAiB;IACzB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAwuBD,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,iBAAiB,2CAM1E"}