@fayz-ai/storefront 0.9.0 → 0.10.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 (368) hide show
  1. package/README.md +3 -3
  2. package/dist/app/createStorefrontApp.d.ts +65 -0
  3. package/dist/app/createStorefrontApp.d.ts.map +1 -0
  4. package/dist/{define.d.ts → app/define.d.ts} +3 -3
  5. package/dist/app/define.d.ts.map +1 -0
  6. package/dist/app/hydration.d.ts +37 -0
  7. package/dist/app/hydration.d.ts.map +1 -0
  8. package/dist/app/prerender.d.ts +57 -0
  9. package/dist/app/prerender.d.ts.map +1 -0
  10. package/dist/{router.d.ts → app/router.d.ts} +140 -113
  11. package/dist/app/router.d.ts.map +1 -0
  12. package/dist/{scaffold.d.ts → app/scaffold.d.ts} +2 -2
  13. package/dist/app/scaffold.d.ts.map +1 -0
  14. package/dist/app/serving.d.ts +70 -0
  15. package/dist/app/serving.d.ts.map +1 -0
  16. package/dist/app/static-render.d.ts +46 -0
  17. package/dist/app/static-render.d.ts.map +1 -0
  18. package/dist/blocks/block-at-path.d.ts +59 -0
  19. package/dist/blocks/block-at-path.d.ts.map +1 -0
  20. package/dist/blocks/page-blocks.d.ts +163 -0
  21. package/dist/blocks/page-blocks.d.ts.map +1 -0
  22. package/dist/blocks/page-data.d.ts +105 -0
  23. package/dist/blocks/page-data.d.ts.map +1 -0
  24. package/dist/{blocks.d.ts → blocks/registry.d.ts} +1 -1
  25. package/dist/blocks/registry.d.ts.map +1 -0
  26. package/dist/{sections.d.ts → blocks/sections.d.ts} +40 -2
  27. package/dist/blocks/sections.d.ts.map +1 -0
  28. package/dist/chunk-6B7H3IZ6.js +10232 -0
  29. package/dist/chunk-6B7H3IZ6.js.map +1 -0
  30. package/dist/chunk-6IXTENLB.js +162 -0
  31. package/dist/chunk-6IXTENLB.js.map +1 -0
  32. package/dist/components/PaymentTerms.d.ts +34 -0
  33. package/dist/components/PaymentTerms.d.ts.map +1 -0
  34. package/dist/components/SmoothImage.d.ts +1 -1
  35. package/dist/components/SmoothImage.d.ts.map +1 -1
  36. package/dist/components/account/CustomerAccountShell.d.ts.map +1 -0
  37. package/dist/components/account/SignInModal.d.ts.map +1 -0
  38. package/dist/components/cart/CartDrawer.d.ts.map +1 -0
  39. package/dist/components/cart/QuantityInput.d.ts.map +1 -0
  40. package/dist/components/checkout/DeliveryEstimator.d.ts.map +1 -0
  41. package/dist/components/collection/CategoryShowcase.d.ts +44 -0
  42. package/dist/components/collection/CategoryShowcase.d.ts.map +1 -0
  43. package/dist/components/collection/FiltersPanel.d.ts +19 -0
  44. package/dist/components/collection/FiltersPanel.d.ts.map +1 -0
  45. package/dist/components/collection/ProductGrid.d.ts.map +1 -0
  46. package/dist/components/layout/PageBodyBlocks.d.ts +40 -0
  47. package/dist/components/layout/PageBodyBlocks.d.ts.map +1 -0
  48. package/dist/components/layout/SearchOverlay.d.ts +13 -0
  49. package/dist/components/layout/SearchOverlay.d.ts.map +1 -0
  50. package/dist/components/layout/StorefrontErrorBoundary.d.ts.map +1 -0
  51. package/dist/components/layout/StorefrontFooter.d.ts.map +1 -0
  52. package/dist/components/layout/StorefrontHeader.d.ts.map +1 -0
  53. package/dist/components/layout/Toaster.d.ts.map +1 -0
  54. package/dist/components/marketing/CollectionSections.d.ts +463 -0
  55. package/dist/components/marketing/CollectionSections.d.ts.map +1 -0
  56. package/dist/components/marketing/ConversionSections.d.ts +221 -0
  57. package/dist/components/marketing/ConversionSections.d.ts.map +1 -0
  58. package/dist/components/marketing/EditorialSections.d.ts +248 -0
  59. package/dist/components/marketing/EditorialSections.d.ts.map +1 -0
  60. package/dist/components/marketing/EntityList.d.ts +97 -0
  61. package/dist/components/marketing/EntityList.d.ts.map +1 -0
  62. package/dist/components/marketing/FormBlock.d.ts +167 -0
  63. package/dist/components/marketing/FormBlock.d.ts.map +1 -0
  64. package/dist/components/marketing/HeroSection.d.ts +125 -0
  65. package/dist/components/marketing/HeroSection.d.ts.map +1 -0
  66. package/dist/components/marketing/MediaCarousel.d.ts +135 -0
  67. package/dist/components/marketing/MediaCarousel.d.ts.map +1 -0
  68. package/dist/components/marketing/MiscSections.d.ts +252 -0
  69. package/dist/components/marketing/MiscSections.d.ts.map +1 -0
  70. package/dist/components/order/OrderTrackingTimeline.d.ts.map +1 -0
  71. package/dist/components/product/ProductCard.d.ts +14 -0
  72. package/dist/components/product/ProductCard.d.ts.map +1 -0
  73. package/dist/components/product/ProductEnquiryForm.d.ts.map +1 -0
  74. package/dist/components/product/ProductGallery.d.ts +36 -0
  75. package/dist/components/product/ProductGallery.d.ts.map +1 -0
  76. package/dist/components/{ProductOptionSelector.d.ts → product/ProductOptionSelector.d.ts} +1 -1
  77. package/dist/components/product/ProductOptionSelector.d.ts.map +1 -0
  78. package/dist/components/product/ProductRail.d.ts +93 -0
  79. package/dist/components/product/ProductRail.d.ts.map +1 -0
  80. package/dist/components/product/ProductReviews.d.ts +39 -0
  81. package/dist/components/product/ProductReviews.d.ts.map +1 -0
  82. package/dist/components/product/ProductSlider.d.ts +169 -0
  83. package/dist/components/product/ProductSlider.d.ts.map +1 -0
  84. package/dist/components/product/ProductSpecs.d.ts.map +1 -0
  85. package/dist/components/product/RelatedProducts.d.ts.map +1 -0
  86. package/dist/{auth.d.ts → data/auth.d.ts} +9 -0
  87. package/dist/data/auth.d.ts.map +1 -0
  88. package/dist/data/facets.d.ts +39 -0
  89. package/dist/data/facets.d.ts.map +1 -0
  90. package/dist/data/loaders.d.ts +56 -0
  91. package/dist/data/loaders.d.ts.map +1 -0
  92. package/dist/data/order-status.d.ts.map +1 -0
  93. package/dist/data/product-options.d.ts +36 -0
  94. package/dist/data/product-options.d.ts.map +1 -0
  95. package/dist/diagnostics/seo-audit.d.ts +54 -0
  96. package/dist/diagnostics/seo-audit.d.ts.map +1 -0
  97. package/dist/diagnostics/seo-audit.js +3 -0
  98. package/dist/diagnostics/seo-audit.js.map +1 -0
  99. package/dist/document/change.d.ts +100 -0
  100. package/dist/document/change.d.ts.map +1 -0
  101. package/dist/{config.d.ts → document/config.d.ts} +126 -7
  102. package/dist/document/config.d.ts.map +1 -0
  103. package/dist/document/describe.d.ts +135 -0
  104. package/dist/document/describe.d.ts.map +1 -0
  105. package/dist/document/overlay.d.ts +58 -0
  106. package/dist/document/overlay.d.ts.map +1 -0
  107. package/dist/{presets.d.ts → document/presets.d.ts} +2 -2
  108. package/dist/document/presets.d.ts.map +1 -0
  109. package/dist/document/render.d.ts +171 -0
  110. package/dist/document/render.d.ts.map +1 -0
  111. package/dist/document/round-trip.d.ts +46 -0
  112. package/dist/document/round-trip.d.ts.map +1 -0
  113. package/dist/document/sections.d.ts +194 -0
  114. package/dist/document/sections.d.ts.map +1 -0
  115. package/dist/document/upgrade.d.ts +112 -0
  116. package/dist/document/upgrade.d.ts.map +1 -0
  117. package/dist/document/validate.d.ts +24 -0
  118. package/dist/document/validate.d.ts.map +1 -0
  119. package/dist/{component-contracts.d.ts → extend/component-contracts.d.ts} +74 -22
  120. package/dist/extend/component-contracts.d.ts.map +1 -0
  121. package/dist/extend/component-override.d.ts +38 -0
  122. package/dist/extend/component-override.d.ts.map +1 -0
  123. package/dist/extend/component-selectors.d.ts.map +1 -0
  124. package/dist/extend/editor-bridge.d.ts +59 -0
  125. package/dist/extend/editor-bridge.d.ts.map +1 -0
  126. package/dist/extend/extension-points.d.ts +103 -0
  127. package/dist/extend/extension-points.d.ts.map +1 -0
  128. package/dist/extend/slots.d.ts +216 -0
  129. package/dist/extend/slots.d.ts.map +1 -0
  130. package/dist/hooks/index.d.ts +25 -6
  131. package/dist/hooks/index.d.ts.map +1 -1
  132. package/dist/hooks/use-address.d.ts +26 -0
  133. package/dist/hooks/use-address.d.ts.map +1 -0
  134. package/dist/hooks/use-cart.d.ts +3 -0
  135. package/dist/hooks/use-cart.d.ts.map +1 -0
  136. package/dist/hooks/use-catalog.d.ts +24 -0
  137. package/dist/hooks/use-catalog.d.ts.map +1 -0
  138. package/dist/hooks/use-categories.d.ts +19 -0
  139. package/dist/hooks/use-categories.d.ts.map +1 -0
  140. package/dist/hooks/use-checkout.d.ts +41 -0
  141. package/dist/hooks/use-checkout.d.ts.map +1 -0
  142. package/dist/hooks/use-discount-validator.d.ts +20 -0
  143. package/dist/hooks/use-discount-validator.d.ts.map +1 -0
  144. package/dist/hooks/use-enquiry.d.ts +7 -0
  145. package/dist/hooks/use-enquiry.d.ts.map +1 -0
  146. package/dist/hooks/{useMyOrders.d.ts → use-my-orders.d.ts} +1 -1
  147. package/dist/hooks/use-my-orders.d.ts.map +1 -0
  148. package/dist/hooks/use-order.d.ts +17 -0
  149. package/dist/hooks/use-order.d.ts.map +1 -0
  150. package/dist/hooks/use-payment-methods.d.ts +19 -0
  151. package/dist/hooks/use-payment-methods.d.ts.map +1 -0
  152. package/dist/hooks/use-policies.d.ts +25 -0
  153. package/dist/hooks/use-policies.d.ts.map +1 -0
  154. package/dist/hooks/use-product.d.ts +15 -0
  155. package/dist/hooks/use-product.d.ts.map +1 -0
  156. package/dist/hooks/{useProducts.d.ts → use-products.d.ts} +1 -1
  157. package/dist/hooks/use-products.d.ts.map +1 -0
  158. package/dist/hooks/use-region.d.ts +15 -0
  159. package/dist/hooks/use-region.d.ts.map +1 -0
  160. package/dist/hooks/use-shipping.d.ts +29 -0
  161. package/dist/hooks/use-shipping.d.ts.map +1 -0
  162. package/dist/hooks/use-storefront-actions.d.ts +12 -0
  163. package/dist/hooks/use-storefront-actions.d.ts.map +1 -0
  164. package/dist/hooks/use-storefront-head.d.ts +19 -0
  165. package/dist/hooks/use-storefront-head.d.ts.map +1 -0
  166. package/dist/hooks/use-storefront.d.ts +3 -0
  167. package/dist/hooks/use-storefront.d.ts.map +1 -0
  168. package/dist/index.d.ts +123 -54
  169. package/dist/index.d.ts.map +1 -1
  170. package/dist/index.js +1311 -5012
  171. package/dist/index.js.map +1 -1
  172. package/dist/lib/format.d.ts.map +1 -0
  173. package/dist/lib/motion.d.ts.map +1 -0
  174. package/dist/lib/seo.d.ts +26 -0
  175. package/dist/lib/seo.d.ts.map +1 -0
  176. package/dist/{testids.d.ts → lib/testids.d.ts} +21 -0
  177. package/dist/lib/testids.d.ts.map +1 -0
  178. package/dist/{theme.d.ts → lib/theme.d.ts} +41 -3
  179. package/dist/lib/theme.d.ts.map +1 -0
  180. package/dist/render.d.ts +5 -0
  181. package/dist/render.d.ts.map +1 -0
  182. package/dist/render.js +359 -0
  183. package/dist/render.js.map +1 -0
  184. package/dist/stores/cart.store.d.ts +6 -2
  185. package/dist/stores/cart.store.d.ts.map +1 -1
  186. package/dist/stores/catalog.store.d.ts +11 -0
  187. package/dist/stores/catalog.store.d.ts.map +1 -1
  188. package/dist/views/CatalogPage.d.ts.map +1 -0
  189. package/dist/views/CheckoutPage.d.ts.map +1 -0
  190. package/dist/views/ContentPage.d.ts +11 -0
  191. package/dist/views/ContentPage.d.ts.map +1 -0
  192. package/dist/views/HomePage.d.ts +9 -0
  193. package/dist/views/HomePage.d.ts.map +1 -0
  194. package/dist/views/MyPurchasesPage.d.ts.map +1 -0
  195. package/dist/views/NotFoundPage.d.ts.map +1 -0
  196. package/dist/{pages → views}/OrderConfirmationPage.d.ts.map +1 -1
  197. package/dist/{pages → views}/PolicyPage.d.ts.map +1 -1
  198. package/dist/views/ProductDetailPage.d.ts.map +1 -0
  199. package/dist/views/StorefrontPage.d.ts +35 -0
  200. package/dist/views/StorefrontPage.d.ts.map +1 -0
  201. package/dist/workflows/checkout.d.ts +1 -1
  202. package/dist/workflows/checkout.d.ts.map +1 -1
  203. package/package.json +21 -14
  204. package/dist/auth.d.ts.map +0 -1
  205. package/dist/blocks.d.ts.map +0 -1
  206. package/dist/component-contracts.d.ts.map +0 -1
  207. package/dist/component-selectors.d.ts.map +0 -1
  208. package/dist/components/CartDrawer.d.ts.map +0 -1
  209. package/dist/components/CustomerAccountShell.d.ts.map +0 -1
  210. package/dist/components/DeliveryEstimator.d.ts.map +0 -1
  211. package/dist/components/FiltersPanel.d.ts +0 -3
  212. package/dist/components/FiltersPanel.d.ts.map +0 -1
  213. package/dist/components/OrderTrackingTimeline.d.ts.map +0 -1
  214. package/dist/components/ProductCard.d.ts +0 -4
  215. package/dist/components/ProductCard.d.ts.map +0 -1
  216. package/dist/components/ProductEnquiryForm.d.ts.map +0 -1
  217. package/dist/components/ProductGallery.d.ts +0 -22
  218. package/dist/components/ProductGallery.d.ts.map +0 -1
  219. package/dist/components/ProductGrid.d.ts.map +0 -1
  220. package/dist/components/ProductOptionSelector.d.ts.map +0 -1
  221. package/dist/components/ProductSpecs.d.ts.map +0 -1
  222. package/dist/components/QuantityInput.d.ts.map +0 -1
  223. package/dist/components/RelatedProducts.d.ts.map +0 -1
  224. package/dist/components/SignInModal.d.ts.map +0 -1
  225. package/dist/components/StorefrontErrorBoundary.d.ts.map +0 -1
  226. package/dist/components/StorefrontFooter.d.ts.map +0 -1
  227. package/dist/components/StorefrontHeader.d.ts.map +0 -1
  228. package/dist/components/Toaster.d.ts.map +0 -1
  229. package/dist/components/sections/CategoryShowcase.d.ts +0 -6
  230. package/dist/components/sections/CategoryShowcase.d.ts.map +0 -1
  231. package/dist/components/sections/HeroSection.d.ts +0 -9
  232. package/dist/components/sections/HeroSection.d.ts.map +0 -1
  233. package/dist/components/sections/MediaCarousel.d.ts +0 -11
  234. package/dist/components/sections/MediaCarousel.d.ts.map +0 -1
  235. package/dist/components/sections/MiscSections.d.ts +0 -33
  236. package/dist/components/sections/MiscSections.d.ts.map +0 -1
  237. package/dist/components/sections/ProductRail.d.ts +0 -9
  238. package/dist/components/sections/ProductRail.d.ts.map +0 -1
  239. package/dist/components/sections/ProductSlider.d.ts +0 -15
  240. package/dist/components/sections/ProductSlider.d.ts.map +0 -1
  241. package/dist/config.d.ts.map +0 -1
  242. package/dist/createStorefrontApp.d.ts +0 -28
  243. package/dist/createStorefrontApp.d.ts.map +0 -1
  244. package/dist/define.d.ts.map +0 -1
  245. package/dist/format.d.ts.map +0 -1
  246. package/dist/hooks/useCategories.d.ts +0 -6
  247. package/dist/hooks/useCategories.d.ts.map +0 -1
  248. package/dist/hooks/useDiscountValidator.d.ts +0 -14
  249. package/dist/hooks/useDiscountValidator.d.ts.map +0 -1
  250. package/dist/hooks/useMyOrders.d.ts.map +0 -1
  251. package/dist/hooks/useProduct.d.ts +0 -7
  252. package/dist/hooks/useProduct.d.ts.map +0 -1
  253. package/dist/hooks/useProducts.d.ts.map +0 -1
  254. package/dist/hooks/useStorefront.d.ts +0 -35
  255. package/dist/hooks/useStorefront.d.ts.map +0 -1
  256. package/dist/hooks/useStorefrontHead.d.ts +0 -11
  257. package/dist/hooks/useStorefrontHead.d.ts.map +0 -1
  258. package/dist/motion.d.ts.map +0 -1
  259. package/dist/order-status.d.ts.map +0 -1
  260. package/dist/pages/CatalogPage.d.ts.map +0 -1
  261. package/dist/pages/CheckoutPage.d.ts.map +0 -1
  262. package/dist/pages/HomePage.d.ts +0 -9
  263. package/dist/pages/HomePage.d.ts.map +0 -1
  264. package/dist/pages/MyPurchasesPage.d.ts.map +0 -1
  265. package/dist/pages/NotFoundPage.d.ts.map +0 -1
  266. package/dist/pages/ProductDetailPage.d.ts.map +0 -1
  267. package/dist/presets.d.ts.map +0 -1
  268. package/dist/product-options.d.ts +0 -12
  269. package/dist/product-options.d.ts.map +0 -1
  270. package/dist/router.d.ts.map +0 -1
  271. package/dist/scaffold.d.ts.map +0 -1
  272. package/dist/sections.d.ts.map +0 -1
  273. package/dist/testids.d.ts.map +0 -1
  274. package/dist/theme.d.ts.map +0 -1
  275. package/src/auth.ts +0 -227
  276. package/src/blocks.tsx +0 -51
  277. package/src/catalog.ts +0 -3
  278. package/src/component-contracts.ts +0 -154
  279. package/src/component-selectors.ts +0 -31
  280. package/src/components/CartDrawer.tsx +0 -279
  281. package/src/components/CustomerAccountShell.tsx +0 -102
  282. package/src/components/DeliveryEstimator.tsx +0 -157
  283. package/src/components/FiltersPanel.tsx +0 -109
  284. package/src/components/OrderTrackingTimeline.tsx +0 -135
  285. package/src/components/Price.tsx +0 -32
  286. package/src/components/ProductCard.tsx +0 -120
  287. package/src/components/ProductEnquiryForm.tsx +0 -175
  288. package/src/components/ProductGallery.tsx +0 -174
  289. package/src/components/ProductGrid.tsx +0 -43
  290. package/src/components/ProductOptionSelector.tsx +0 -50
  291. package/src/components/ProductSpecs.tsx +0 -75
  292. package/src/components/QuantityInput.tsx +0 -52
  293. package/src/components/RelatedProducts.tsx +0 -40
  294. package/src/components/SignInModal.tsx +0 -120
  295. package/src/components/SmoothImage.tsx +0 -59
  296. package/src/components/StorefrontErrorBoundary.tsx +0 -51
  297. package/src/components/StorefrontFooter.tsx +0 -110
  298. package/src/components/StorefrontHeader.tsx +0 -477
  299. package/src/components/Toaster.tsx +0 -60
  300. package/src/components/sections/CategoryShowcase.tsx +0 -80
  301. package/src/components/sections/HeroSection.tsx +0 -193
  302. package/src/components/sections/MediaCarousel.tsx +0 -141
  303. package/src/components/sections/MiscSections.tsx +0 -158
  304. package/src/components/sections/ProductRail.tsx +0 -81
  305. package/src/components/sections/ProductSlider.tsx +0 -119
  306. package/src/config.ts +0 -229
  307. package/src/createStorefrontApp.tsx +0 -247
  308. package/src/define.ts +0 -34
  309. package/src/format.ts +0 -7
  310. package/src/hooks/index.ts +0 -6
  311. package/src/hooks/useCategories.ts +0 -26
  312. package/src/hooks/useDiscountValidator.ts +0 -43
  313. package/src/hooks/useMyOrders.ts +0 -41
  314. package/src/hooks/useProduct.ts +0 -36
  315. package/src/hooks/useProducts.ts +0 -39
  316. package/src/hooks/useStorefront.ts +0 -58
  317. package/src/hooks/useStorefrontHead.ts +0 -25
  318. package/src/index.ts +0 -202
  319. package/src/motion.tsx +0 -94
  320. package/src/order-status.ts +0 -33
  321. package/src/pages/CatalogPage.tsx +0 -118
  322. package/src/pages/CheckoutPage.tsx +0 -689
  323. package/src/pages/HomePage.tsx +0 -16
  324. package/src/pages/MyPurchasesPage.tsx +0 -311
  325. package/src/pages/NotFoundPage.tsx +0 -25
  326. package/src/pages/OrderConfirmationPage.tsx +0 -190
  327. package/src/pages/PolicyPage.tsx +0 -47
  328. package/src/pages/ProductDetailPage.tsx +0 -264
  329. package/src/presets.ts +0 -324
  330. package/src/product-options.ts +0 -63
  331. package/src/router.ts +0 -49
  332. package/src/scaffold.tsx +0 -115
  333. package/src/sections.ts +0 -116
  334. package/src/shop.ts +0 -4
  335. package/src/stores/cart.store.ts +0 -185
  336. package/src/stores/catalog.store.ts +0 -39
  337. package/src/stores/delivery.store.ts +0 -152
  338. package/src/stores/session.store.ts +0 -28
  339. package/src/stores/toast.store.ts +0 -43
  340. package/src/testids.ts +0 -136
  341. package/src/theme.ts +0 -194
  342. package/src/ui.ts +0 -5
  343. package/src/workflows/checkout.ts +0 -119
  344. /package/dist/components/{CustomerAccountShell.d.ts → account/CustomerAccountShell.d.ts} +0 -0
  345. /package/dist/components/{SignInModal.d.ts → account/SignInModal.d.ts} +0 -0
  346. /package/dist/components/{CartDrawer.d.ts → cart/CartDrawer.d.ts} +0 -0
  347. /package/dist/components/{QuantityInput.d.ts → cart/QuantityInput.d.ts} +0 -0
  348. /package/dist/components/{DeliveryEstimator.d.ts → checkout/DeliveryEstimator.d.ts} +0 -0
  349. /package/dist/components/{ProductGrid.d.ts → collection/ProductGrid.d.ts} +0 -0
  350. /package/dist/components/{StorefrontErrorBoundary.d.ts → layout/StorefrontErrorBoundary.d.ts} +0 -0
  351. /package/dist/components/{StorefrontFooter.d.ts → layout/StorefrontFooter.d.ts} +0 -0
  352. /package/dist/components/{StorefrontHeader.d.ts → layout/StorefrontHeader.d.ts} +0 -0
  353. /package/dist/components/{Toaster.d.ts → layout/Toaster.d.ts} +0 -0
  354. /package/dist/components/{OrderTrackingTimeline.d.ts → order/OrderTrackingTimeline.d.ts} +0 -0
  355. /package/dist/components/{ProductEnquiryForm.d.ts → product/ProductEnquiryForm.d.ts} +0 -0
  356. /package/dist/components/{ProductSpecs.d.ts → product/ProductSpecs.d.ts} +0 -0
  357. /package/dist/components/{RelatedProducts.d.ts → product/RelatedProducts.d.ts} +0 -0
  358. /package/dist/{order-status.d.ts → data/order-status.d.ts} +0 -0
  359. /package/dist/{component-selectors.d.ts → extend/component-selectors.d.ts} +0 -0
  360. /package/dist/{format.d.ts → lib/format.d.ts} +0 -0
  361. /package/dist/{motion.d.ts → lib/motion.d.ts} +0 -0
  362. /package/dist/{pages → views}/CatalogPage.d.ts +0 -0
  363. /package/dist/{pages → views}/CheckoutPage.d.ts +0 -0
  364. /package/dist/{pages → views}/MyPurchasesPage.d.ts +0 -0
  365. /package/dist/{pages → views}/NotFoundPage.d.ts +0 -0
  366. /package/dist/{pages → views}/OrderConfirmationPage.d.ts +0 -0
  367. /package/dist/{pages → views}/PolicyPage.d.ts +0 -0
  368. /package/dist/{pages → views}/ProductDetailPage.d.ts +0 -0
@@ -0,0 +1,169 @@
1
+ import React from 'react';
2
+ import type { BlockNode } from '@fayz-ai/core';
3
+ import { type CatalogFacetEntry } from '../../data/facets';
4
+ export interface ProductSliderProps {
5
+ title: string;
6
+ subtitle?: string;
7
+ eyebrow?: string;
8
+ filter?: 'sale' | 'new' | 'all';
9
+ categoryName?: string;
10
+ collection?: string;
11
+ /**
12
+ * Arbitrary `product.metadata` refinements, the same model the catalogue
13
+ * page uses. A rail for a store's own discovery axis needs no SDK change.
14
+ * Authored as rows (`[{ key: 'purpose', value: 'presentear' }]`) or as a map
15
+ * in hand-written config; both normalise.
16
+ */
17
+ facets?: Record<string, string> | readonly CatalogFacetEntry[];
18
+ limit?: number;
19
+ cta?: string;
20
+ href?: string;
21
+ className?: string;
22
+ /** The block node, when rendered from a tree — carries instance `data` overrides. */
23
+ node?: BlockNode;
24
+ }
25
+ export declare function ProductSlider({ title, subtitle, eyebrow, filter, categoryName, collection, facets, limit, cta, href, className, node, }: ProductSliderProps): React.JSX.Element | null;
26
+ export declare const productSliderBlockMeta: {
27
+ label: string;
28
+ description: string;
29
+ settings: ({
30
+ id: string;
31
+ type: "text";
32
+ label: string;
33
+ required: true;
34
+ help?: undefined;
35
+ options?: undefined;
36
+ default?: undefined;
37
+ of?: undefined;
38
+ min?: undefined;
39
+ max?: undefined;
40
+ } | {
41
+ id: string;
42
+ type: "text";
43
+ label: string;
44
+ help: string;
45
+ required?: undefined;
46
+ options?: undefined;
47
+ default?: undefined;
48
+ of?: undefined;
49
+ min?: undefined;
50
+ max?: undefined;
51
+ } | {
52
+ id: string;
53
+ type: "select";
54
+ label: string;
55
+ help: string;
56
+ options: {
57
+ value: string;
58
+ label: string;
59
+ }[];
60
+ default: string;
61
+ required?: undefined;
62
+ of?: undefined;
63
+ min?: undefined;
64
+ max?: undefined;
65
+ } | {
66
+ id: string;
67
+ type: "category";
68
+ label: string;
69
+ help: string;
70
+ required?: undefined;
71
+ options?: undefined;
72
+ default?: undefined;
73
+ of?: undefined;
74
+ min?: undefined;
75
+ max?: undefined;
76
+ } | {
77
+ id: string;
78
+ type: "list";
79
+ label: string;
80
+ help: string;
81
+ of: {
82
+ id: string;
83
+ type: "text";
84
+ label: string;
85
+ help: string;
86
+ required: true;
87
+ }[];
88
+ required?: undefined;
89
+ options?: undefined;
90
+ default?: undefined;
91
+ min?: undefined;
92
+ max?: undefined;
93
+ } | {
94
+ id: string;
95
+ type: "number";
96
+ label: string;
97
+ help: string;
98
+ min: number;
99
+ max: number;
100
+ default: number;
101
+ required?: undefined;
102
+ options?: undefined;
103
+ of?: undefined;
104
+ } | {
105
+ id: string;
106
+ type: "text";
107
+ label: string;
108
+ help: string;
109
+ default: string;
110
+ required?: undefined;
111
+ options?: undefined;
112
+ of?: undefined;
113
+ min?: undefined;
114
+ max?: undefined;
115
+ } | {
116
+ id: string;
117
+ type: "url";
118
+ label: string;
119
+ help: string;
120
+ required?: undefined;
121
+ options?: undefined;
122
+ default?: undefined;
123
+ of?: undefined;
124
+ min?: undefined;
125
+ max?: undefined;
126
+ })[];
127
+ presets: ({
128
+ name: string;
129
+ props: {
130
+ eyebrow: string;
131
+ title: string;
132
+ subtitle: string;
133
+ filter: string;
134
+ limit: number;
135
+ cta: string;
136
+ };
137
+ } | {
138
+ name: string;
139
+ props: {
140
+ title: string;
141
+ filter: string;
142
+ limit: number;
143
+ cta: string;
144
+ eyebrow?: undefined;
145
+ subtitle?: undefined;
146
+ };
147
+ })[];
148
+ enabledOn: string[];
149
+ data: {
150
+ products: {
151
+ loader: string;
152
+ params: {
153
+ filter: {
154
+ $prop: string;
155
+ };
156
+ category: {
157
+ $prop: string;
158
+ };
159
+ collection: {
160
+ $prop: string;
161
+ };
162
+ limit: {
163
+ $prop: string;
164
+ };
165
+ };
166
+ };
167
+ };
168
+ };
169
+ //# sourceMappingURL=ProductSlider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductSlider.d.ts","sourceRoot":"","sources":["../../../src/components/product/ProductSlider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiB,MAAM,OAAO,CAAA;AACrC,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,eAAe,CAAA;AAU5D,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAEtE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qFAAqF;IACrF,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAc,EACd,YAAY,EACZ,UAAU,EACV,MAAM,EACN,KAAU,EACV,GAAgB,EAChB,IAAI,EACJ,SAAc,EACd,IAAI,GACL,EAAE,kBAAkB,4BAqFpB;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsGU,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductSpecs.d.ts","sourceRoot":"","sources":["../../../src/components/product/ProductSpecs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAqDlD;sDACsD;AACtD,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,4BAmC7D"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RelatedProducts.d.ts","sourceRoot":"","sources":["../../../src/components/product/RelatedProducts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAOvE;;0EAE0E;AAC1E,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,4BA8BhE"}
@@ -1,6 +1,15 @@
1
1
  import type { AuthAdapter } from '@fayz-ai/core';
2
2
  import { type AuthPluginOptions } from '@fayz-ai/plugin-auth';
3
3
  export type StorefrontAuthAdapter = AuthAdapter | 'mock' | 'supabase' | (string & {});
4
+ /** Thrown by signUpCustomer when the adapter reports a user but no live
5
+ * session (Supabase's signal for "email confirmation required" — see
6
+ * createSupabaseAuthAdapter's signUp, which returns accessToken: '' instead
7
+ * of null/an error). Signup succeeded; the customer just isn't authenticated
8
+ * yet, so we must not link/persist a session for them. */
9
+ export declare class EmailConfirmationRequiredError extends Error {
10
+ readonly email: string;
11
+ constructor(email: string);
12
+ }
4
13
  export interface StorefrontAuthConfig {
5
14
  adapter?: AuthPluginOptions['adapter'];
6
15
  provider?: AuthPluginOptions['provider'];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/data/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,eAAe,CAAA;AAC1D,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAA;AAa7B,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAErF;;;;2DAI2D;AAC3D,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,KAAK,EAAE,MAAM;CAK1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACpC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;CACzC;AAsBD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,GAAG,SAAS,EACpE,QAAQ,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,WAAW,CAeb;AAuBD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAyC3D;AAED,wBAAgB,sBAAsB,IAAI,WAAW,CAGpD;AAgCD,MAAM,WAAW,uBAAuB;IACtC,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,uBAAuB,GAC7B,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjC;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAE3F;AAED,mEAAmE;AACnE,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAWjC;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAQrD"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Active refinements, keyed by the `product.metadata` field they match.
3
+ *
4
+ * A metadata value may be a scalar or an array; an array matches if it contains
5
+ * the wanted value, which is what makes multi-valued facets like
6
+ * `purpose: ['estudar', 'presentear']` work.
7
+ */
8
+ export type CatalogFacets = Readonly<Record<string, string>>;
9
+ /** Does a product satisfy every active facet? */
10
+ export declare function matchesFacets(metadata: Record<string, unknown> | null | undefined, facets: CatalogFacets): boolean;
11
+ /**
12
+ * One authored refinement, as a repeatable row.
13
+ *
14
+ * A `Record<string, string>` is the natural shape for the matcher and for a
15
+ * hand-written config, but it is not something an editor can render a form for
16
+ * or an agent can generate against — the block schema vocabulary has no map
17
+ * type, and declaring one as a shapeless `list` is a schema that lies (the
18
+ * strict `auditBlocks` bar rejects it). So the authored form is a list of
19
+ * pairs, and both forms normalise here.
20
+ */
21
+ export interface CatalogFacetEntry {
22
+ key: string;
23
+ value: string;
24
+ }
25
+ /** Either authored form → the map the matcher and the loader use. */
26
+ export declare function toFacetMap(input: CatalogFacets | readonly CatalogFacetEntry[] | undefined | null): CatalogFacets;
27
+ /** Immutably set or drop one key. */
28
+ export declare function withFacet(facets: CatalogFacets, key: string, value: string | null): CatalogFacets;
29
+ /**
30
+ * Fold the named `collection` shorthand into the facet map.
31
+ *
32
+ * `collection` is the one axis with a name of its own — a block prop, a loader
33
+ * param and a query key all spell it out. It is still just a metadata
34
+ * refinement, so it is merged here rather than filtered separately: two code
35
+ * paths applying refinements is how a rail and the catalogue come to disagree
36
+ * about what "in this collection" means.
37
+ */
38
+ export declare function mergeCollectionFacet(facets: CatalogFacets | readonly CatalogFacetEntry[] | undefined | null, collection: string | undefined | null): CatalogFacets;
39
+ //# sourceMappingURL=facets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facets.d.ts","sourceRoot":"","sources":["../../src/data/facets.ts"],"names":[],"mappings":"AAcA;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE5D,iDAAiD;AACjD,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACpD,MAAM,EAAE,aAAa,GACpB,OAAO,CAUT;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,GAAG,SAAS,iBAAiB,EAAE,GAAG,SAAS,GAAG,IAAI,GACrE,aAAa,CAQf;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,CAQjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,GAAG,SAAS,iBAAiB,EAAE,GAAG,SAAS,GAAG,IAAI,EACvE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACpC,aAAa,CAGf"}
@@ -0,0 +1,56 @@
1
+ import type { LoaderContext } from '@fayz-ai/core';
2
+ import type { ShopProvider } from '@fayz-ai/shop/provider';
3
+ import { type CatalogFacetEntry } from './facets';
4
+ export type StorefrontLoaderContext = LoaderContext<ShopProvider>;
5
+ export type ProductsSort = 'catalog' | 'newest' | 'price-asc' | 'price-desc' | 'name';
6
+ export interface ProductsListParams extends Record<string, unknown> {
7
+ /** Quick filter, mirroring the products/productSlider block vocabulary:
8
+ * 'new' implies sort 'newest'; 'sale' implies onSale. */
9
+ filter?: 'all' | 'new' | 'sale';
10
+ /**
11
+ * Category id, category SLUG, or exact category name — resolved in that
12
+ * order (see {@link filterByCategory}). The slug form is what makes the M3
13
+ * `/category/:slug` page shape portable to a backend with opaque ids.
14
+ */
15
+ category?: string;
16
+ /**
17
+ * Matched against each product's `metadata.collection` tag. The named
18
+ * shorthand for `facets: { collection }` — both go through one matcher.
19
+ */
20
+ collection?: string;
21
+ /**
22
+ * Arbitrary refinements over `product.metadata`. This is the store's own
23
+ * discovery axis — `purpose`, `brand`, `room` — without the SDK knowing the
24
+ * axis exists. An array-valued metadata field matches if it contains the
25
+ * value. Accepts the authored row form or a plain map; both normalise.
26
+ */
27
+ facets?: Record<string, string> | readonly CatalogFacetEntry[];
28
+ search?: string;
29
+ sort?: ProductsSort;
30
+ limit?: number;
31
+ offset?: number;
32
+ inStock?: boolean;
33
+ onSale?: boolean;
34
+ }
35
+ export interface ProductBySlugParams extends Record<string, unknown> {
36
+ slug: string;
37
+ }
38
+ export interface EntityListParams extends Record<string, unknown> {
39
+ entity: string;
40
+ limit?: number;
41
+ offset?: number;
42
+ orderBy?: string;
43
+ order?: 'asc' | 'desc';
44
+ }
45
+ export interface EntityBySlugParams extends Record<string, unknown> {
46
+ entity: string;
47
+ slug: string;
48
+ }
49
+ export interface EntityFieldsParams extends Record<string, unknown> {
50
+ reference: string;
51
+ id: string;
52
+ }
53
+ /** Register the SDK loaders. Idempotent; called wherever blocks are registered,
54
+ * because the SDK blocks declare their data needs against these ids. */
55
+ export declare function registerStorefrontLoaders(): void;
56
+ //# sourceMappingURL=loaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loaders.d.ts","sourceRoot":"","sources":["../../src/data/loaders.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAG1D,OAAO,EAAuC,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAetF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AAEjE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAA;AAErF,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE;8DAC0D;IAC1D,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,iBAAiB,EAAE,CAAA;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAgFD,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,IAAI,EAAE,MAAM,CAAA;CACb;AA0CD,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;CACvB;AAaD,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AASD,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,MAAM,CAAA;CACX;AAqBD;yEACyE;AACzE,wBAAgB,yBAAyB,IAAI,IAAI,CAsKhD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-status.d.ts","sourceRoot":"","sources":["../../src/data/order-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAmB1D;kFACkF;AAClF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAGlG;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAEvD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,36 @@
1
+ import type { Product, ProductVariant } from '@fayz-ai/shop/types';
2
+ export interface ProductOptionGroup {
3
+ id: string;
4
+ label: string;
5
+ values: string[];
6
+ }
7
+ export type ProductOptionSelection = Record<string, string>;
8
+ /** Test seam — re-arms the once-per-product overlay deprecation warning. */
9
+ export declare function resetProductOptionsDeprecationWarnings(): void;
10
+ /**
11
+ * The option axes the PDP picker renders, in order of authority:
12
+ *
13
+ * 1. `product.options` — the variant tables (0028), attached by the
14
+ * products.bySlug loader. THE source since spine M5: these axes are the
15
+ * ones the server prices and decrements against.
16
+ * 2. metadata options / sizes / colors — the retired productMetadata overlay,
17
+ * kept rendering as an I10 deprecation shim (logged, documented). Display
18
+ * only: nothing server-side has ever heard of these labels, which is
19
+ * exactly why the overlay lost the job. Full deletion from the stores is
20
+ * M9 (`catalog.ts` dies everywhere).
21
+ */
22
+ export declare function getProductOptionGroups(product: Product): ProductOptionGroup[];
23
+ /**
24
+ * The variant a selection denotes, or null when the product has no variants
25
+ * or the combination does not exist (a partial selection, or axes/values the
26
+ * variant table never had). Matching is exact over the variant's own options
27
+ * object — the same jsonb equality 0029 relies on server-side.
28
+ */
29
+ export declare function resolveVariantForSelection(product: Product, selection?: ProductOptionSelection | null): ProductVariant | null;
30
+ /** The price a selection sells for: the variant's own, or the product's when
31
+ * the variant inherits (price null) or nothing matched. */
32
+ export declare function selectionPrice(product: Product, selection?: ProductOptionSelection | null): number;
33
+ export declare function normalizeProductOptionSelection(selection?: ProductOptionSelection | null): ProductOptionSelection;
34
+ export declare function formatProductOptionSelection(selection?: ProductOptionSelection | null): string;
35
+ export declare function productOptionSelectionKey(selection?: ProductOptionSelection | null): string;
36
+ //# sourceMappingURL=product-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-options.d.ts","sourceRoot":"","sources":["../../src/data/product-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElE,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAqB3D,4EAA4E;AAC5E,wBAAgB,sCAAsC,IAAI,IAAI,CAE7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CA6B7E;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GACxC,cAAc,GAAG,IAAI,CAcvB;AAED;4DAC4D;AAC5D,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAGlG;AAED,wBAAgB,+BAA+B,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GAAG,sBAAsB,CAOjH;AAED,wBAAgB,4BAA4B,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAI9F;AAED,wBAAgB,yBAAyB,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAI3F"}
@@ -0,0 +1,54 @@
1
+ export type SeoFindingStatus = 'pass' | 'warn' | 'fail';
2
+ export interface SeoFinding {
3
+ id: string;
4
+ label: string;
5
+ status: SeoFindingStatus;
6
+ /** What was actually found. */
7
+ detail: string;
8
+ /** Why it matters — the consequence, not the rule. */
9
+ why: string;
10
+ /** Weight in the score. Higher = more consequential. */
11
+ weight: number;
12
+ }
13
+ export interface SeoAuditInput {
14
+ /** In-app path, used to detect fragment addressing. */
15
+ path: string;
16
+ /** Full URL as the browser sees it, when available. */
17
+ url?: string;
18
+ title?: string | null;
19
+ meta: Array<{
20
+ name?: string;
21
+ property?: string;
22
+ content: string;
23
+ }>;
24
+ links: Array<{
25
+ rel: string;
26
+ href: string;
27
+ }>;
28
+ /** `@type` of every JSON-LD block on the page. */
29
+ jsonLdTypes: string[];
30
+ h1Count: number;
31
+ imageCount: number;
32
+ imagesMissingAlt: number;
33
+ /** Text length of the main content region — the body a crawler indexes. */
34
+ contentTextLength: number;
35
+ /** Number of loading placeholders still in the markup. */
36
+ skeletonCount: number;
37
+ /** HTTP status, when the caller knows it. */
38
+ statusCode?: number;
39
+ }
40
+ export interface SeoAuditResult {
41
+ /** 0–100, weighted by consequence. */
42
+ score: number;
43
+ grade: 'A' | 'B' | 'C' | 'D' | 'F';
44
+ findings: SeoFinding[];
45
+ passed: number;
46
+ total: number;
47
+ }
48
+ export declare function auditStorefrontSeo(input: SeoAuditInput): SeoAuditResult;
49
+ /**
50
+ * Collect audit input from a live document. Browser-only by definition — the
51
+ * server-side counterpart builds the same shape from its SeoConfig.
52
+ */
53
+ export declare function collectSeoAuditInput(doc: Document, path: string): SeoAuditInput;
54
+ //# sourceMappingURL=seo-audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo-audit.d.ts","sourceRoot":"","sources":["../../src/diagnostics/seo-audit.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,gBAAgB,CAAA;IACxB,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAA;IACX,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClE,KAAK,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC3C,kDAAkD;IAClD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,CAAA;IACzB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IACrB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAaD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAiJvE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAmC/E"}
@@ -0,0 +1,3 @@
1
+ export { auditStorefrontSeo, collectSeoAuditInput } from '../chunk-6IXTENLB.js';
2
+ //# sourceMappingURL=seo-audit.js.map
3
+ //# sourceMappingURL=seo-audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"seo-audit.js"}
@@ -0,0 +1,100 @@
1
+ import type { StoreDocument, StoreSectionName } from './sections';
2
+ import type { StoreValidationError, StoreValidationReport } from './validate';
3
+ /** JSON values a change may write. */
4
+ export type StoreChangeValue = unknown;
5
+ export declare const STORE_CHANGE_OPS: readonly ["set", "remove", "insert", "move"];
6
+ export type StoreChangeOp = (typeof STORE_CHANGE_OPS)[number];
7
+ export interface StoreChange {
8
+ /**
9
+ * `set` — write `value` at `path` (creating missing intermediate objects).
10
+ * `remove` — delete the key, or splice the array element, at `path`.
11
+ * `insert` — splice `value` into the array at `path`, at `index` (default: append).
12
+ * `move` — relocate the array element at `path` to `index`.
13
+ */
14
+ op: StoreChangeOp;
15
+ /**
16
+ * Dotted document path, the same shape `validateStore` reports:
17
+ * `presentation.pages.home.blocks[2].props.title`. An array step may address
18
+ * a block by id instead of by position — `blocks[#hero]` — which is the only
19
+ * form that stays correct across a reorder.
20
+ */
21
+ path: string;
22
+ /** `set` / `insert`: the JSON value to write. */
23
+ value?: StoreChangeValue;
24
+ /** `insert` / `move`: destination index. `insert` defaults to append. */
25
+ index?: number;
26
+ }
27
+ export interface AppliedStoreChange {
28
+ op: StoreChangeOp;
29
+ path: string;
30
+ /** The path with every `[#id]` step resolved to the position it hit — what
31
+ * actually moved, which is what a diff or an undo needs. */
32
+ resolvedPath: string;
33
+ /** The value that was there before, when there was one. */
34
+ before?: StoreChangeValue;
35
+ /** The value that is there now, when the op leaves one. */
36
+ after?: StoreChangeValue;
37
+ }
38
+ export interface ApplyChangeOptions {
39
+ /**
40
+ * Sections this caller may write. Defaults to every section EXCEPT `code`:
41
+ * a code entry is a handle name resolved out of the handle registry, so an
42
+ * agent inventing one produces a document that hydrates to a missing
43
+ * component. Pass it explicitly to move a route or drop an override.
44
+ */
45
+ sections?: readonly StoreSectionName[];
46
+ /**
47
+ * 'reject' (default) — a batch whose RESULT fails validation is discarded
48
+ * whole and `doc` is the untouched input. 'allow' returns the changed
49
+ * document with the report anyway, for a caller that is mid-way through a
50
+ * multi-step edit and will validate at the end.
51
+ */
52
+ onInvalid?: 'reject' | 'allow';
53
+ }
54
+ export interface StoreChangeResult {
55
+ /** True only when every change applied AND the result validates. */
56
+ ok: boolean;
57
+ /** The resulting document — the input, unchanged, when a rejected batch failed. */
58
+ doc: StoreDocument;
59
+ /** One entry per change, in order, for the changes that were applied. */
60
+ applied: AppliedStoreChange[];
61
+ /** Path/permission failures AND the resulting document's validation errors,
62
+ * in one list, in the shape `validateStore` returns — so a caller has one
63
+ * error vocabulary to correct on rather than two. */
64
+ errors: StoreValidationError[];
65
+ /** Validation of the resulting document. */
66
+ validation: StoreValidationReport;
67
+ }
68
+ /** Sections a change may write unless the caller says otherwise. */
69
+ export declare const DEFAULT_WRITABLE_SECTIONS: readonly StoreSectionName[];
70
+ type PathStep = {
71
+ kind: 'key';
72
+ key: string;
73
+ } | {
74
+ kind: 'index';
75
+ index: number;
76
+ } | {
77
+ kind: 'id';
78
+ id: string;
79
+ };
80
+ /**
81
+ * Parse `presentation.pages.home.blocks[#hero].props.title` into steps.
82
+ * Returns null for anything malformed — an unparseable path is a hard error,
83
+ * never a silently ignored change.
84
+ */
85
+ export declare function parseStorePath(path: string): PathStep[] | null;
86
+ /**
87
+ * Apply an ordered batch of changes to a Store Document.
88
+ *
89
+ * Transactional: the batch either applies whole and validates, or the input
90
+ * document comes back untouched with every reason listed.
91
+ *
92
+ * applyChange(doc, { op: 'set', path: 'theme.colors.primary', value: '41 54% 55%' })
93
+ * applyChange(doc, [
94
+ * { op: 'insert', path: 'presentation.home.sections', index: 0, value: { type: 'seals' } },
95
+ * { op: 'move', path: 'presentation.home.sections[#hero]', index: 1 },
96
+ * ])
97
+ */
98
+ export declare function applyChange(input: StoreDocument | Record<string, unknown>, changes: StoreChange | readonly StoreChange[], options?: ApplyChangeOptions): StoreChangeResult;
99
+ export {};
100
+ //# sourceMappingURL=change.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../src/document/change.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAmC7E,sCAAsC;AACtC,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAA;AAEtC,eAAO,MAAM,gBAAgB,8CAA+C,CAAA;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,EAAE,EAAE,aAAa,CAAA;IACjB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,aAAa,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ;iEAC6D;IAC7D,YAAY,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACtC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,EAAE,EAAE,OAAO,CAAA;IACX,mFAAmF;IACnF,GAAG,EAAE,aAAa,CAAA;IAClB,yEAAyE;IACzE,OAAO,EAAE,kBAAkB,EAAE,CAAA;IAC7B;;0DAEsD;IACtD,MAAM,EAAE,oBAAoB,EAAE,CAAA;IAC9B,4CAA4C;IAC5C,UAAU,EAAE,qBAAqB,CAAA;CAClC;AAED,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,EAAE,SAAS,gBAAgB,EAEhE,CAAA;AAID,KAAK,QAAQ,GACT;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAgB9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,GAAG,IAAI,CAwC9D;AA0HD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9C,OAAO,EAAE,WAAW,GAAG,SAAS,WAAW,EAAE,EAC7C,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAmOnB"}