@vtex/faststore 0.0.1

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 (538) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/LICENSE +21 -0
  3. package/README.md +95 -0
  4. package/dist/actions.json +334 -0
  5. package/dist/catalog.json +6615 -0
  6. package/dist/client.d.ts +17 -0
  7. package/dist/client.js +8 -0
  8. package/dist/components.d.ts +87 -0
  9. package/dist/components.js +87 -0
  10. package/dist/content-types.json +684 -0
  11. package/dist/core/dist/actions/mock-action.d.ts +24 -0
  12. package/dist/core/dist/actions/mock-action.js +28 -0
  13. package/dist/core/dist/actions/mock-action.js.map +1 -0
  14. package/dist/core/dist/actions/registry.d.ts +24 -0
  15. package/dist/core/dist/actions/registry.js +28 -0
  16. package/dist/core/dist/actions/registry.js.map +1 -0
  17. package/dist/core/dist/define-component.d.ts +100 -0
  18. package/dist/core/dist/define-component.js +8 -0
  19. package/dist/core/dist/define-component.js.map +1 -0
  20. package/dist/core/dist/define-content-type.d.ts +95 -0
  21. package/dist/core/dist/define-content-type.js +283 -0
  22. package/dist/core/dist/define-content-type.js.map +1 -0
  23. package/dist/core/dist/index.d.ts +7 -0
  24. package/dist/core/dist/index.js +5 -0
  25. package/dist/core/dist/schema/generated/schema.d.ts +28 -0
  26. package/dist/core/dist/types.d.ts +1 -0
  27. package/dist/docs/access-code-field.md +100 -0
  28. package/dist/docs/access-code-sign-in.md +174 -0
  29. package/dist/docs/account-entry-point.md +155 -0
  30. package/dist/docs/address-summary.md +50 -0
  31. package/dist/docs/buy-button.md +162 -0
  32. package/dist/docs/carousel.md +105 -0
  33. package/dist/docs/cart-item.md +162 -0
  34. package/dist/docs/cart-totalizer.md +197 -0
  35. package/dist/docs/cart.md +495 -0
  36. package/dist/docs/client-preferences.md +184 -0
  37. package/dist/docs/client-profile-form.md +192 -0
  38. package/dist/docs/client-profile.md +117 -0
  39. package/dist/docs/container.md +97 -0
  40. package/dist/docs/document-field.md +97 -0
  41. package/dist/docs/email-field.md +93 -0
  42. package/dist/docs/email-identification.md +102 -0
  43. package/dist/docs/footer-copyright.md +112 -0
  44. package/dist/docs/footer-link-group.md +162 -0
  45. package/dist/docs/footer-root.md +145 -0
  46. package/dist/docs/footer-social.md +151 -0
  47. package/dist/docs/free-shipping-progress.md +87 -0
  48. package/dist/docs/gallery.md +84 -0
  49. package/dist/docs/header-root.md +150 -0
  50. package/dist/docs/identity-edit.md +88 -0
  51. package/dist/docs/identity-summary.md +106 -0
  52. package/dist/docs/incentives.md +151 -0
  53. package/dist/docs/logo.md +135 -0
  54. package/dist/docs/meter.md +67 -0
  55. package/dist/docs/navigation-link-list.md +171 -0
  56. package/dist/docs/navigation-link.md +163 -0
  57. package/dist/docs/navigation-menu.md +264 -0
  58. package/dist/docs/payment-methods.md +139 -0
  59. package/dist/docs/phone-field.md +106 -0
  60. package/dist/docs/postal-code-field.md +126 -0
  61. package/dist/docs/pricing.md +499 -0
  62. package/dist/docs/product-gallery.md +409 -0
  63. package/dist/docs/product-information.md +295 -0
  64. package/dist/docs/product-list.md +170 -0
  65. package/dist/docs/product-quantity.md +88 -0
  66. package/dist/docs/product-shelf.md +141 -0
  67. package/dist/docs/promotion.md +109 -0
  68. package/dist/docs/region.md +225 -0
  69. package/dist/docs/session.md +123 -0
  70. package/dist/docs/shipping-address.md +390 -0
  71. package/dist/docs/shipping-simulator.md +147 -0
  72. package/dist/docs/sign-in-form.md +117 -0
  73. package/dist/docs/tabs.md +176 -0
  74. package/dist/docs/toast.md +124 -0
  75. package/dist/docs/variant-selector.md +450 -0
  76. package/dist/graphql/define-subgraph.d.ts +12 -0
  77. package/dist/graphql/define-subgraph.js +15 -0
  78. package/dist/graphql/define-subgraph.js.map +1 -0
  79. package/dist/graphql/gql.d.ts +10 -0
  80. package/dist/graphql/gql.js +16 -0
  81. package/dist/graphql/gql.js.map +1 -0
  82. package/dist/graphql/types.d.ts +88 -0
  83. package/dist/graphql.d.ts +4 -0
  84. package/dist/graphql.js +3 -0
  85. package/dist/index.d.ts +19 -0
  86. package/dist/index.js +5 -0
  87. package/dist/internal/client.d.ts +24 -0
  88. package/dist/internal/client.js +23 -0
  89. package/dist/internal/content.d.ts +2 -0
  90. package/dist/internal/content.js +2 -0
  91. package/dist/internal/server.d.ts +7 -0
  92. package/dist/internal/server.js +6 -0
  93. package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +111 -0
  94. package/dist/matter/access-code-sign-in/access-code-sign-in.js +387 -0
  95. package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -0
  96. package/dist/matter/account-entry-point/account-entry-point.d.ts +64 -0
  97. package/dist/matter/account-entry-point/account-entry-point.js +151 -0
  98. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -0
  99. package/dist/matter/breadcrumb/breadcrumb.d.ts +40 -0
  100. package/dist/matter/breadcrumb/breadcrumb.js +155 -0
  101. package/dist/matter/breadcrumb/breadcrumb.js.map +1 -0
  102. package/dist/matter/buy-button/buy-button.d.ts +95 -0
  103. package/dist/matter/buy-button/buy-button.js +259 -0
  104. package/dist/matter/buy-button/buy-button.js.map +1 -0
  105. package/dist/matter/cart/cart-namespace.d.ts +48 -0
  106. package/dist/matter/cart/cart-namespace.js +50 -0
  107. package/dist/matter/cart/cart-namespace.js.map +1 -0
  108. package/dist/matter/cart/cart.d.ts +312 -0
  109. package/dist/matter/cart/cart.js +1034 -0
  110. package/dist/matter/cart/cart.js.map +1 -0
  111. package/dist/matter/cart-item/cart-item.d.ts +103 -0
  112. package/dist/matter/cart-item/cart-item.js +672 -0
  113. package/dist/matter/cart-item/cart-item.js.map +1 -0
  114. package/dist/matter/cart-item-compositions/cart-item-compositions.d.ts +49 -0
  115. package/dist/matter/cart-item-compositions/cart-item-compositions.js +165 -0
  116. package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -0
  117. package/dist/matter/cart-item-customizations/cart-item-customizations.d.ts +28 -0
  118. package/dist/matter/cart-item-customizations/cart-item-customizations.js +73 -0
  119. package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -0
  120. package/dist/matter/cart-item-discounts/cart-item-discounts.d.ts +33 -0
  121. package/dist/matter/cart-item-discounts/cart-item-discounts.js +70 -0
  122. package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -0
  123. package/dist/matter/cart-item-seller-info/cart-item-seller-info.d.ts +24 -0
  124. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +54 -0
  125. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -0
  126. package/dist/matter/cart-item-variations/cart-item-variations.d.ts +27 -0
  127. package/dist/matter/cart-item-variations/cart-item-variations.js +69 -0
  128. package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -0
  129. package/dist/matter/cart-totalizer/cart-totalizer.d.ts +78 -0
  130. package/dist/matter/cart-totalizer/cart-totalizer.js +220 -0
  131. package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -0
  132. package/dist/matter/client-preferences/client-preferences.d.ts +50 -0
  133. package/dist/matter/client-preferences/client-preferences.js +206 -0
  134. package/dist/matter/client-preferences/client-preferences.js.map +1 -0
  135. package/dist/matter/client-profile/client-profile.d.ts +59 -0
  136. package/dist/matter/client-profile/client-profile.js +185 -0
  137. package/dist/matter/client-profile/client-profile.js.map +1 -0
  138. package/dist/matter/client-profile-form/client-profile-form.d.ts +126 -0
  139. package/dist/matter/client-profile-form/client-profile-form.js +660 -0
  140. package/dist/matter/client-profile-form/client-profile-form.js.map +1 -0
  141. package/dist/matter/delivery-options/delivery-options-accordion.d.ts +30 -0
  142. package/dist/matter/delivery-options/delivery-options-accordion.js +189 -0
  143. package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -0
  144. package/dist/matter/delivery-options/delivery-options-controller.d.ts +49 -0
  145. package/dist/matter/delivery-options/delivery-options-controller.js +203 -0
  146. package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -0
  147. package/dist/matter/delivery-options/delivery-options.d.ts +31 -0
  148. package/dist/matter/delivery-options/delivery-options.js +103 -0
  149. package/dist/matter/delivery-options/delivery-options.js.map +1 -0
  150. package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +9 -0
  151. package/dist/matter/delivery-options/use-delivery-option-selection.js +76 -0
  152. package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -0
  153. package/dist/matter/email-identification/email-identification.d.ts +37 -0
  154. package/dist/matter/email-identification/email-identification.js +111 -0
  155. package/dist/matter/email-identification/email-identification.js.map +1 -0
  156. package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +44 -0
  157. package/dist/matter/free-shipping-progress/free-shipping-progress.js +170 -0
  158. package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -0
  159. package/dist/matter/identity-edit/identity-edit.d.ts +52 -0
  160. package/dist/matter/identity-edit/identity-edit.js +148 -0
  161. package/dist/matter/identity-edit/identity-edit.js.map +1 -0
  162. package/dist/matter/identity-summary/identity-summary.d.ts +128 -0
  163. package/dist/matter/identity-summary/identity-summary.js +344 -0
  164. package/dist/matter/identity-summary/identity-summary.js.map +1 -0
  165. package/dist/matter/pricing/pricing.d.ts +162 -0
  166. package/dist/matter/pricing/pricing.js +793 -0
  167. package/dist/matter/pricing/pricing.js.map +1 -0
  168. package/dist/matter/product-gallery/product-gallery.d.ts +23 -0
  169. package/dist/matter/product-gallery/product-gallery.js +188 -0
  170. package/dist/matter/product-gallery/product-gallery.js.map +1 -0
  171. package/dist/matter/product-information/product-information.d.ts +61 -0
  172. package/dist/matter/product-information/product-information.js +355 -0
  173. package/dist/matter/product-information/product-information.js.map +1 -0
  174. package/dist/matter/product-list/product-list.d.ts +86 -0
  175. package/dist/matter/product-list/product-list.js +342 -0
  176. package/dist/matter/product-list/product-list.js.map +1 -0
  177. package/dist/matter/product-quantity/product-quantity.d.ts +50 -0
  178. package/dist/matter/product-quantity/product-quantity.js +111 -0
  179. package/dist/matter/product-quantity/product-quantity.js.map +1 -0
  180. package/dist/matter/product-shelf/product-shelf.d.ts +125 -0
  181. package/dist/matter/product-shelf/product-shelf.js +376 -0
  182. package/dist/matter/product-shelf/product-shelf.js.map +1 -0
  183. package/dist/matter/region/region.d.ts +211 -0
  184. package/dist/matter/region/region.js +579 -0
  185. package/dist/matter/region/region.js.map +1 -0
  186. package/dist/matter/session/session.d.ts +58 -0
  187. package/dist/matter/session/session.js +112 -0
  188. package/dist/matter/session/session.js.map +1 -0
  189. package/dist/matter/shipping-address/country-descriptors.js +101 -0
  190. package/dist/matter/shipping-address/country-descriptors.js.map +1 -0
  191. package/dist/matter/shipping-address/shipping-address.d.ts +284 -0
  192. package/dist/matter/shipping-address/shipping-address.js +1036 -0
  193. package/dist/matter/shipping-address/shipping-address.js.map +1 -0
  194. package/dist/matter/shipping-simulator/shipping-simulator.d.ts +143 -0
  195. package/dist/matter/shipping-simulator/shipping-simulator.js +644 -0
  196. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -0
  197. package/dist/matter/sign-in-form/sign-in-form.d.ts +79 -0
  198. package/dist/matter/sign-in-form/sign-in-form.js +226 -0
  199. package/dist/matter/sign-in-form/sign-in-form.js.map +1 -0
  200. package/dist/matter/variant-selector/variant-selector.d.ts +183 -0
  201. package/dist/matter/variant-selector/variant-selector.js +840 -0
  202. package/dist/matter/variant-selector/variant-selector.js.map +1 -0
  203. package/dist/message-locales.json +7 -0
  204. package/dist/particles/access-code-field/access-code-field.d.ts +33 -0
  205. package/dist/particles/access-code-field/access-code-field.js +95 -0
  206. package/dist/particles/access-code-field/access-code-field.js.map +1 -0
  207. package/dist/particles/accordion/accordion.d.ts +45 -0
  208. package/dist/particles/accordion/accordion.js +156 -0
  209. package/dist/particles/accordion/accordion.js.map +1 -0
  210. package/dist/particles/address-summary/address-summary.d.ts +50 -0
  211. package/dist/particles/address-summary/address-summary.js +129 -0
  212. package/dist/particles/address-summary/address-summary.js.map +1 -0
  213. package/dist/particles/badge/badge.d.ts +10 -0
  214. package/dist/particles/badge/badge.js +27 -0
  215. package/dist/particles/badge/badge.js.map +1 -0
  216. package/dist/particles/button/button.d.ts +18 -0
  217. package/dist/particles/button/button.js +37 -0
  218. package/dist/particles/button/button.js.map +1 -0
  219. package/dist/particles/carousel/carousel.d.ts +60 -0
  220. package/dist/particles/carousel/carousel.js +335 -0
  221. package/dist/particles/carousel/carousel.js.map +1 -0
  222. package/dist/particles/checkbox/checkbox.d.ts +40 -0
  223. package/dist/particles/checkbox/checkbox.js +82 -0
  224. package/dist/particles/checkbox/checkbox.js.map +1 -0
  225. package/dist/particles/container/container.d.ts +20 -0
  226. package/dist/particles/container/container.js +36 -0
  227. package/dist/particles/container/container.js.map +1 -0
  228. package/dist/particles/dialog/dialog.d.ts +54 -0
  229. package/dist/particles/dialog/dialog.js +192 -0
  230. package/dist/particles/dialog/dialog.js.map +1 -0
  231. package/dist/particles/document-field/document-field.d.ts +61 -0
  232. package/dist/particles/document-field/document-field.js +146 -0
  233. package/dist/particles/document-field/document-field.js.map +1 -0
  234. package/dist/particles/drawer/drawer.d.ts +52 -0
  235. package/dist/particles/drawer/drawer.js +183 -0
  236. package/dist/particles/drawer/drawer.js.map +1 -0
  237. package/dist/particles/email-field/email-field.d.ts +37 -0
  238. package/dist/particles/email-field/email-field.js +106 -0
  239. package/dist/particles/email-field/email-field.js.map +1 -0
  240. package/dist/particles/field/field.d.ts +50 -0
  241. package/dist/particles/field/field.js +133 -0
  242. package/dist/particles/field/field.js.map +1 -0
  243. package/dist/particles/fieldset/fieldset.d.ts +16 -0
  244. package/dist/particles/fieldset/fieldset.js +52 -0
  245. package/dist/particles/fieldset/fieldset.js.map +1 -0
  246. package/dist/particles/footer-copyright/footer-copyright.d.ts +32 -0
  247. package/dist/particles/footer-copyright/footer-copyright.js +50 -0
  248. package/dist/particles/footer-copyright/footer-copyright.js.map +1 -0
  249. package/dist/particles/footer-link-group/footer-link-group.d.ts +66 -0
  250. package/dist/particles/footer-link-group/footer-link-group.js +154 -0
  251. package/dist/particles/footer-link-group/footer-link-group.js.map +1 -0
  252. package/dist/particles/footer-root/footer-root.d.ts +21 -0
  253. package/dist/particles/footer-root/footer-root.js +38 -0
  254. package/dist/particles/footer-root/footer-root.js.map +1 -0
  255. package/dist/particles/footer-social/footer-social.d.ts +79 -0
  256. package/dist/particles/footer-social/footer-social.js +176 -0
  257. package/dist/particles/footer-social/footer-social.js.map +1 -0
  258. package/dist/particles/gallery/gallery.d.ts +181 -0
  259. package/dist/particles/gallery/gallery.js +920 -0
  260. package/dist/particles/gallery/gallery.js.map +1 -0
  261. package/dist/particles/header-root/header-root.d.ts +21 -0
  262. package/dist/particles/header-root/header-root.js +38 -0
  263. package/dist/particles/header-root/header-root.js.map +1 -0
  264. package/dist/particles/icon/icon.d.ts +22 -0
  265. package/dist/particles/icon/icon.js +48 -0
  266. package/dist/particles/icon/icon.js.map +1 -0
  267. package/dist/particles/image/image.d.ts +13 -0
  268. package/dist/particles/image/image.js +59 -0
  269. package/dist/particles/image/image.js.map +1 -0
  270. package/dist/particles/incentives/incentives.d.ts +85 -0
  271. package/dist/particles/incentives/incentives.js +200 -0
  272. package/dist/particles/incentives/incentives.js.map +1 -0
  273. package/dist/particles/input/input.d.ts +9 -0
  274. package/dist/particles/input/input.js +28 -0
  275. package/dist/particles/input/input.js.map +1 -0
  276. package/dist/particles/logo/logo.d.ts +55 -0
  277. package/dist/particles/logo/logo.js +96 -0
  278. package/dist/particles/logo/logo.js.map +1 -0
  279. package/dist/particles/menu/menu.d.ts +103 -0
  280. package/dist/particles/menu/menu.js +409 -0
  281. package/dist/particles/menu/menu.js.map +1 -0
  282. package/dist/particles/menubar/menubar.d.ts +18 -0
  283. package/dist/particles/menubar/menubar.js +42 -0
  284. package/dist/particles/menubar/menubar.js.map +1 -0
  285. package/dist/particles/meter/meter.d.ts +36 -0
  286. package/dist/particles/meter/meter.js +132 -0
  287. package/dist/particles/meter/meter.js.map +1 -0
  288. package/dist/particles/navigation-link/navigation-link.d.ts +43 -0
  289. package/dist/particles/navigation-link/navigation-link.js +82 -0
  290. package/dist/particles/navigation-link/navigation-link.js.map +1 -0
  291. package/dist/particles/navigation-link-list/navigation-link-list.d.ts +59 -0
  292. package/dist/particles/navigation-link-list/navigation-link-list.js +103 -0
  293. package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -0
  294. package/dist/particles/navigation-menu/navigation-menu.d.ts +78 -0
  295. package/dist/particles/navigation-menu/navigation-menu.js +295 -0
  296. package/dist/particles/navigation-menu/navigation-menu.js.map +1 -0
  297. package/dist/particles/number-field/number-field.d.ts +46 -0
  298. package/dist/particles/number-field/number-field.js +169 -0
  299. package/dist/particles/number-field/number-field.js.map +1 -0
  300. package/dist/particles/password-field/password-field.d.ts +31 -0
  301. package/dist/particles/password-field/password-field.js +109 -0
  302. package/dist/particles/password-field/password-field.js.map +1 -0
  303. package/dist/particles/payment-methods/payment-methods.d.ts +72 -0
  304. package/dist/particles/payment-methods/payment-methods.js +151 -0
  305. package/dist/particles/payment-methods/payment-methods.js.map +1 -0
  306. package/dist/particles/phone-field/phone-field.d.ts +67 -0
  307. package/dist/particles/phone-field/phone-field.js +250 -0
  308. package/dist/particles/phone-field/phone-field.js.map +1 -0
  309. package/dist/particles/popover/popover.d.ts +68 -0
  310. package/dist/particles/popover/popover.js +284 -0
  311. package/dist/particles/popover/popover.js.map +1 -0
  312. package/dist/particles/postal-code-field/postal-code-field.d.ts +75 -0
  313. package/dist/particles/postal-code-field/postal-code-field.js +169 -0
  314. package/dist/particles/postal-code-field/postal-code-field.js.map +1 -0
  315. package/dist/particles/promotion/promotion.d.ts +46 -0
  316. package/dist/particles/promotion/promotion.js +78 -0
  317. package/dist/particles/promotion/promotion.js.map +1 -0
  318. package/dist/particles/quantity-selector/quantity-selector.d.ts +30 -0
  319. package/dist/particles/quantity-selector/quantity-selector.js +116 -0
  320. package/dist/particles/quantity-selector/quantity-selector.js.map +1 -0
  321. package/dist/particles/radio/radio.d.ts +36 -0
  322. package/dist/particles/radio/radio.js +76 -0
  323. package/dist/particles/radio/radio.js.map +1 -0
  324. package/dist/particles/scroll-area/scroll-area.d.ts +36 -0
  325. package/dist/particles/scroll-area/scroll-area.js +145 -0
  326. package/dist/particles/scroll-area/scroll-area.js.map +1 -0
  327. package/dist/particles/select/select.d.ts +125 -0
  328. package/dist/particles/select/select.js +478 -0
  329. package/dist/particles/select/select.js.map +1 -0
  330. package/dist/particles/separator/separator.d.ts +12 -0
  331. package/dist/particles/separator/separator.js +33 -0
  332. package/dist/particles/separator/separator.js.map +1 -0
  333. package/dist/particles/shared/input-mask.d.ts +5 -0
  334. package/dist/particles/shared/input-mask.js +58 -0
  335. package/dist/particles/shared/input-mask.js.map +1 -0
  336. package/dist/particles/spinner/spinner.d.ts +13 -0
  337. package/dist/particles/spinner/spinner.js +31 -0
  338. package/dist/particles/spinner/spinner.js.map +1 -0
  339. package/dist/particles/switch/switch.d.ts +27 -0
  340. package/dist/particles/switch/switch.js +59 -0
  341. package/dist/particles/switch/switch.js.map +1 -0
  342. package/dist/particles/tabs/tabs.d.ts +45 -0
  343. package/dist/particles/tabs/tabs.js +164 -0
  344. package/dist/particles/tabs/tabs.js.map +1 -0
  345. package/dist/particles/text/text.d.ts +24 -0
  346. package/dist/particles/text/text.js +40 -0
  347. package/dist/particles/text/text.js.map +1 -0
  348. package/dist/particles/toast/toast.d.ts +83 -0
  349. package/dist/particles/toast/toast.js +194 -0
  350. package/dist/particles/toast/toast.js.map +1 -0
  351. package/dist/particles/toggle/toggle.d.ts +26 -0
  352. package/dist/particles/toggle/toggle.js +61 -0
  353. package/dist/particles/toggle/toggle.js.map +1 -0
  354. package/dist/particles/tooltip/tooltip.d.ts +61 -0
  355. package/dist/particles/tooltip/tooltip.js +240 -0
  356. package/dist/particles/tooltip/tooltip.js.map +1 -0
  357. package/dist/schema.graphql +2953 -0
  358. package/dist/sdk/actions/cart-action-provider.d.ts +19 -0
  359. package/dist/sdk/actions/cart-action-provider.js +23 -0
  360. package/dist/sdk/actions/cart-action-provider.js.map +1 -0
  361. package/dist/sdk/actions/identity-action-provider.d.ts +15 -0
  362. package/dist/sdk/actions/identity-action-provider.js +19 -0
  363. package/dist/sdk/actions/identity-action-provider.js.map +1 -0
  364. package/dist/sdk/actions/index.d.ts +7 -0
  365. package/dist/sdk/actions/index.js +6 -0
  366. package/dist/sdk/actions/inject-actions.d.ts +14 -0
  367. package/dist/sdk/actions/inject-actions.js +36 -0
  368. package/dist/sdk/actions/inject-actions.js.map +1 -0
  369. package/dist/sdk/actions/region-action-provider.d.ts +15 -0
  370. package/dist/sdk/actions/region-action-provider.js +19 -0
  371. package/dist/sdk/actions/region-action-provider.js.map +1 -0
  372. package/dist/sdk/actions/session-action-provider.d.ts +15 -0
  373. package/dist/sdk/actions/session-action-provider.js +19 -0
  374. package/dist/sdk/actions/session-action-provider.js.map +1 -0
  375. package/dist/sdk/actions/shipping-action-provider.d.ts +15 -0
  376. package/dist/sdk/actions/shipping-action-provider.js +19 -0
  377. package/dist/sdk/actions/shipping-action-provider.js.map +1 -0
  378. package/dist/sdk/actions/types.d.ts +21 -0
  379. package/dist/sdk/cache/storefront-cache.js +35 -0
  380. package/dist/sdk/cache/storefront-cache.js.map +1 -0
  381. package/dist/sdk/cart/operations.d.ts +31 -0
  382. package/dist/sdk/cart/operations.js +215 -0
  383. package/dist/sdk/cart/operations.js.map +1 -0
  384. package/dist/sdk/cart/optimistic.d.ts +24 -0
  385. package/dist/sdk/cart/optimistic.js +164 -0
  386. package/dist/sdk/cart/optimistic.js.map +1 -0
  387. package/dist/sdk/cart/use-cart-actions.d.ts +56 -0
  388. package/dist/sdk/cart/use-cart-actions.js +348 -0
  389. package/dist/sdk/cart/use-cart-actions.js.map +1 -0
  390. package/dist/sdk/cart/use-cart-validate-on-open.js +50 -0
  391. package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -0
  392. package/dist/sdk/cart/write-gate.js +54 -0
  393. package/dist/sdk/cart/write-gate.js.map +1 -0
  394. package/dist/sdk/client/assert-api-url.js +20 -0
  395. package/dist/sdk/client/assert-api-url.js.map +1 -0
  396. package/dist/sdk/client/create-client.d.ts +23 -0
  397. package/dist/sdk/client/create-client.js +46 -0
  398. package/dist/sdk/client/create-client.js.map +1 -0
  399. package/dist/sdk/client/fetch-page-data.d.ts +39 -0
  400. package/dist/sdk/client/fetch-page-data.js +33 -0
  401. package/dist/sdk/client/fetch-page-data.js.map +1 -0
  402. package/dist/sdk/client/register-preload-query.d.ts +24 -0
  403. package/dist/sdk/client/register-preload-query.js +33 -0
  404. package/dist/sdk/client/register-preload-query.js.map +1 -0
  405. package/dist/sdk/content/create-content-runtime.d.ts +68 -0
  406. package/dist/sdk/content/create-content-runtime.js +503 -0
  407. package/dist/sdk/content/create-content-runtime.js.map +1 -0
  408. package/dist/sdk/context/headers.d.ts +15 -0
  409. package/dist/sdk/context/headers.js +21 -0
  410. package/dist/sdk/context/headers.js.map +1 -0
  411. package/dist/sdk/context/storefront-context.d.ts +11 -0
  412. package/dist/sdk/context/storefront-context.js +29 -0
  413. package/dist/sdk/context/storefront-context.js.map +1 -0
  414. package/dist/sdk/data/data-override-context.d.ts +12 -0
  415. package/dist/sdk/data/data-override-context.js +19 -0
  416. package/dist/sdk/data/data-override-context.js.map +1 -0
  417. package/dist/sdk/data/entity-subscriber.js +28 -0
  418. package/dist/sdk/data/entity-subscriber.js.map +1 -0
  419. package/dist/sdk/data/hot-data-provider.d.ts +19 -0
  420. package/dist/sdk/data/hot-data-provider.js +33 -0
  421. package/dist/sdk/data/hot-data-provider.js.map +1 -0
  422. package/dist/sdk/data/index.d.ts +8 -0
  423. package/dist/sdk/data/index.js +8 -0
  424. package/dist/sdk/data/list-item-ref-context.d.ts +20 -0
  425. package/dist/sdk/data/list-item-ref-context.js +11 -0
  426. package/dist/sdk/data/list-item-ref-context.js.map +1 -0
  427. package/dist/sdk/data/multiple-reactive-data-provider.d.ts +32 -0
  428. package/dist/sdk/data/multiple-reactive-data-provider.js +20 -0
  429. package/dist/sdk/data/multiple-reactive-data-provider.js.map +1 -0
  430. package/dist/sdk/data/page-reactive-data-root.d.ts +53 -0
  431. package/dist/sdk/data/page-reactive-data-root.js +153 -0
  432. package/dist/sdk/data/page-reactive-data-root.js.map +1 -0
  433. package/dist/sdk/data/reactive-data-provider.d.ts +25 -0
  434. package/dist/sdk/data/reactive-data-provider.js +24 -0
  435. package/dist/sdk/data/reactive-data-provider.js.map +1 -0
  436. package/dist/sdk/data/reactive-list-item-data-provider.d.ts +26 -0
  437. package/dist/sdk/data/reactive-list-item-data-provider.js +42 -0
  438. package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -0
  439. package/dist/sdk/data/use-reactive-entity.js +40 -0
  440. package/dist/sdk/data/use-reactive-entity.js.map +1 -0
  441. package/dist/sdk/format/client.d.ts +12 -0
  442. package/dist/sdk/format/client.js +20 -0
  443. package/dist/sdk/format/client.js.map +1 -0
  444. package/dist/sdk/format/formatters.d.ts +32 -0
  445. package/dist/sdk/format/formatters.js +45 -0
  446. package/dist/sdk/format/formatters.js.map +1 -0
  447. package/dist/sdk/generated/fragment-types.js +23 -0
  448. package/dist/sdk/generated/fragment-types.js.map +1 -0
  449. package/dist/sdk/generated/gql.js +51 -0
  450. package/dist/sdk/generated/gql.js.map +1 -0
  451. package/dist/sdk/generated/graphql.d.ts +622 -0
  452. package/dist/sdk/generated/graphql.js +11917 -0
  453. package/dist/sdk/generated/graphql.js.map +1 -0
  454. package/dist/sdk/graphql-tag.d.ts +10 -0
  455. package/dist/sdk/graphql-tag.js +21 -0
  456. package/dist/sdk/graphql-tag.js.map +1 -0
  457. package/dist/sdk/i18n/client.d.ts +4 -0
  458. package/dist/sdk/i18n/client.js +4 -0
  459. package/dist/sdk/i18n/locales.d.ts +8 -0
  460. package/dist/sdk/i18n/locales.js +57 -0
  461. package/dist/sdk/i18n/locales.js.map +1 -0
  462. package/dist/sdk/i18n/messages/en-US.js +24 -0
  463. package/dist/sdk/i18n/messages/en-US.js.map +1 -0
  464. package/dist/sdk/i18n/messages/en-US.json +19 -0
  465. package/dist/sdk/i18n/messages/en-US.json.d.ts +23 -0
  466. package/dist/sdk/i18n/messages/es-ES.js +24 -0
  467. package/dist/sdk/i18n/messages/es-ES.js.map +1 -0
  468. package/dist/sdk/i18n/messages/es-ES.json +19 -0
  469. package/dist/sdk/i18n/messages/pt-BR.js +24 -0
  470. package/dist/sdk/i18n/messages/pt-BR.js.map +1 -0
  471. package/dist/sdk/i18n/messages/pt-BR.json +19 -0
  472. package/dist/sdk/i18n/provider.d.ts +1 -0
  473. package/dist/sdk/i18n/provider.js +30 -0
  474. package/dist/sdk/i18n/provider.js.map +1 -0
  475. package/dist/sdk/i18n/server.d.ts +28 -0
  476. package/dist/sdk/i18n/server.js +59 -0
  477. package/dist/sdk/i18n/server.js.map +1 -0
  478. package/dist/sdk/identity/operations.d.ts +34 -0
  479. package/dist/sdk/identity/operations.js +78 -0
  480. package/dist/sdk/identity/operations.js.map +1 -0
  481. package/dist/sdk/identity/use-identity-actions.d.ts +62 -0
  482. package/dist/sdk/identity/use-identity-actions.js +180 -0
  483. package/dist/sdk/identity/use-identity-actions.js.map +1 -0
  484. package/dist/sdk/provider/index.d.ts +2 -0
  485. package/dist/sdk/provider/index.js +2 -0
  486. package/dist/sdk/provider/storefront-provider.d.ts +32 -0
  487. package/dist/sdk/provider/storefront-provider.js +111 -0
  488. package/dist/sdk/provider/storefront-provider.js.map +1 -0
  489. package/dist/sdk/region/operations.d.ts +6 -0
  490. package/dist/sdk/region/region-operations.d.ts +30 -0
  491. package/dist/sdk/region/region-operations.js +23 -0
  492. package/dist/sdk/region/region-operations.js.map +1 -0
  493. package/dist/sdk/region/use-region-actions.d.ts +23 -0
  494. package/dist/sdk/region/use-region-actions.js +66 -0
  495. package/dist/sdk/region/use-region-actions.js.map +1 -0
  496. package/dist/sdk/seller.js +11 -0
  497. package/dist/sdk/seller.js.map +1 -0
  498. package/dist/sdk/session/auth-operations.d.ts +47 -0
  499. package/dist/sdk/session/auth-operations.js +79 -0
  500. package/dist/sdk/session/auth-operations.js.map +1 -0
  501. package/dist/sdk/session/operations.d.ts +6 -0
  502. package/dist/sdk/session/use-session-actions.d.ts +27 -0
  503. package/dist/sdk/session/use-session-actions.js +126 -0
  504. package/dist/sdk/session/use-session-actions.js.map +1 -0
  505. package/dist/sdk/shipping/cart-operations.d.ts +3 -0
  506. package/dist/sdk/shipping/cart-operations.js +33 -0
  507. package/dist/sdk/shipping/cart-operations.js.map +1 -0
  508. package/dist/sdk/shipping/operations.d.ts +3 -0
  509. package/dist/sdk/shipping/operations.js +33 -0
  510. package/dist/sdk/shipping/operations.js.map +1 -0
  511. package/dist/sdk/shipping/option-select-operations.d.ts +24 -0
  512. package/dist/sdk/shipping/option-select-operations.js +45 -0
  513. package/dist/sdk/shipping/option-select-operations.js.map +1 -0
  514. package/dist/sdk/shipping/request-timeout.js +41 -0
  515. package/dist/sdk/shipping/request-timeout.js.map +1 -0
  516. package/dist/sdk/shipping/shipping-operations.d.ts +38 -0
  517. package/dist/sdk/shipping/shipping-operations.js +77 -0
  518. package/dist/sdk/shipping/shipping-operations.js.map +1 -0
  519. package/dist/sdk/shipping/use-cart-shipping-simulation.d.ts +7 -0
  520. package/dist/sdk/shipping/use-cart-shipping-simulation.js +72 -0
  521. package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -0
  522. package/dist/sdk/shipping/use-shipping-actions.d.ts +27 -0
  523. package/dist/sdk/shipping/use-shipping-actions.js +113 -0
  524. package/dist/sdk/shipping/use-shipping-actions.js.map +1 -0
  525. package/dist/sdk/shipping/use-shipping-simulation.d.ts +7 -0
  526. package/dist/sdk/shipping/use-shipping-simulation.js +72 -0
  527. package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -0
  528. package/dist/sdk/state/cart.d.ts +42 -0
  529. package/dist/sdk/state/cart.js +64 -0
  530. package/dist/sdk/state/cart.js.map +1 -0
  531. package/dist/sdk/state/index.js +3 -0
  532. package/dist/sdk/state/variant-selector.d.ts +17 -0
  533. package/dist/sdk/state/variant-selector.js +14 -0
  534. package/dist/sdk/state/variant-selector.js.map +1 -0
  535. package/dist/utils/safe-href.js +63 -0
  536. package/dist/utils/safe-href.js.map +1 -0
  537. package/package.json +84 -0
  538. package/src/styles/tailwind.css +32 -0
@@ -0,0 +1,672 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { useStorefrontContext } from "../../sdk/context/storefront-context.js";
5
+ import { graphql } from "../../sdk/generated/gql.js";
6
+ import { useDataOverride } from "../../sdk/data/data-override-context.js";
7
+ import { resolveSafeHref } from "../../utils/safe-href.js";
8
+ import { NavigationLink } from "../../particles/navigation-link/navigation-link.js";
9
+ import { formatPrice } from "../cart/cart.js";
10
+ import { createContext, useContext, useState } from "react";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ import { NumberField } from "@base-ui/react/number-field";
13
+ //#region src/matter/cart-item/cart-item.tsx
14
+ const fragment = graphql(`
15
+ fragment CartItemRootData on Query {
16
+ cart {
17
+ items {
18
+ __typename
19
+ id
20
+ quantity
21
+ price {
22
+ amount
23
+ currencyCode
24
+ }
25
+ listPrice {
26
+ amount
27
+ currencyCode
28
+ }
29
+ sellingPrice {
30
+ amount
31
+ currencyCode
32
+ }
33
+ gift
34
+ ownTotal {
35
+ ...MoneyFragment
36
+ }
37
+ total {
38
+ ...MoneyFragment
39
+ }
40
+ variant {
41
+ __typename
42
+ variantId
43
+ sku
44
+ name
45
+ image {
46
+ url
47
+ altText
48
+ }
49
+ availability
50
+ }
51
+ product {
52
+ __typename
53
+ productId
54
+ title
55
+ detailUrl
56
+ categories {
57
+ categoryId
58
+ name
59
+ }
60
+ brand {
61
+ brandId
62
+ name
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ `);
69
+ const cartItemQuantityFragment = graphql(`
70
+ fragment CartItemQuantityData on Query {
71
+ cart {
72
+ items {
73
+ __typename
74
+ id
75
+ variant {
76
+ __typename
77
+ unitMultiplier
78
+ }
79
+ }
80
+ }
81
+ }
82
+ `);
83
+ const CartItemContext = createContext(null);
84
+ function useCartItem() {
85
+ const item = useContext(CartItemContext);
86
+ if (!item) throw new Error("Cart item components must be used inside a <CartItemRoot> subtree.");
87
+ return item;
88
+ }
89
+ const CartItemRootDefinition = defineComponent({
90
+ name: "CartItemRoot",
91
+ importPath: "@vtex/faststore/components",
92
+ component: CartItemRoot,
93
+ fragment,
94
+ fetchStrategy: "reactive-list-item",
95
+ requiresContext: "cart-item",
96
+ providesContext: "cart-item-data",
97
+ editor: {
98
+ label: "Cart Item Root",
99
+ category: "commerce"
100
+ },
101
+ schema: {},
102
+ guideline: "Per-line data provider for the cart line-item template: place it directly inside CartList, wrapping the CartItem* particles (CartItemImage, CartItemName, CartItemPrice, the CartItemQuantity stepper, CartItemRemove, …). It owns the core per-item fields and delivers each line its own slice, so the core particles must sit inside it. Must be inside CartList. See cart-item.md."
103
+ });
104
+ const CartItemImageDefinition = defineComponent({
105
+ name: "CartItemImage",
106
+ importPath: "@vtex/faststore/components",
107
+ component: CartItemImage,
108
+ requiresContext: "cart-item-data",
109
+ editor: {
110
+ label: "Cart Item Image",
111
+ category: "commerce"
112
+ },
113
+ schema: { objectFit: {
114
+ type: [
115
+ "contain",
116
+ "cover",
117
+ "fill",
118
+ "none"
119
+ ],
120
+ default: "contain",
121
+ label: "Object Fit"
122
+ } },
123
+ guideline: "Renders the product image from the cart item. Must be inside CartItemRoot."
124
+ });
125
+ const CartItemProductLinkDefinition = defineComponent({
126
+ name: "CartItemProductLink",
127
+ importPath: "@vtex/faststore/components",
128
+ component: CartItemProductLink,
129
+ requiresContext: "cart-item-data",
130
+ editor: {
131
+ label: "Cart Item Product Link",
132
+ category: "commerce"
133
+ },
134
+ schema: {},
135
+ guideline: "Links the cart line image to its product page, using the product URL the line already carries: place it inside CartItemRoot wrapping CartItemImage. Whether a line links is decided by placing this element, so there is no prop to toggle it — a checkout line simply omits it. Renders its children unwrapped when the line has no image or no usable product URL, so it never leaves an empty or unsafe link. Navigation is same-tab, and the leaf adds no fields to the page query. Must be inside CartItemRoot. See cart-item.md."
136
+ });
137
+ const CartItemNameDefinition = defineComponent({
138
+ name: "CartItemName",
139
+ importPath: "@vtex/faststore/components",
140
+ component: CartItemName,
141
+ requiresContext: "cart-item-data",
142
+ editor: {
143
+ label: "Cart Item Name",
144
+ category: "commerce"
145
+ },
146
+ schema: {},
147
+ guideline: "Renders the product name from the cart item. Must be inside CartItemRoot."
148
+ });
149
+ const CartItemVariantDefinition = defineComponent({
150
+ name: "CartItemVariant",
151
+ importPath: "@vtex/faststore/components",
152
+ component: CartItemVariant,
153
+ requiresContext: "cart-item-data",
154
+ editor: {
155
+ label: "Cart Item Variant",
156
+ category: "commerce"
157
+ },
158
+ schema: {},
159
+ guideline: "Renders the selected variant name of the cart item (e.g. \"Midnight Black\"); renders null when the variant has no name. Use as a subtitle under CartItemName, typically alongside CartItemSku. Must be inside CartItemRoot."
160
+ });
161
+ const CartItemSkuDefinition = defineComponent({
162
+ name: "CartItemSku",
163
+ importPath: "@vtex/faststore/components",
164
+ component: CartItemSku,
165
+ requiresContext: "cart-item-data",
166
+ editor: {
167
+ label: "Cart Item SKU",
168
+ category: "commerce"
169
+ },
170
+ schema: {},
171
+ guideline: "Renders the SKU code of the cart item variant (e.g. \"WNC-400X\"); renders null when the variant has no SKU. Use as a subtitle under CartItemName, typically alongside CartItemVariant. Must be inside CartItemRoot."
172
+ });
173
+ const CartItemPriceDefinition = defineComponent({
174
+ name: "CartItemPrice",
175
+ importPath: "@vtex/faststore/components",
176
+ component: CartItemPrice,
177
+ requiresContext: "cart-item-data",
178
+ editor: {
179
+ label: "Cart Item Price",
180
+ category: "commerce"
181
+ },
182
+ schema: {},
183
+ guideline: "Renders the selling price of the cart item, formatted from the active storefront context. Must be inside CartItemRoot."
184
+ });
185
+ const CartItemListPriceDefinition = defineComponent({
186
+ name: "CartItemListPrice",
187
+ importPath: "@vtex/faststore/components",
188
+ component: CartItemListPrice,
189
+ requiresContext: "cart-item-data",
190
+ editor: {
191
+ label: "Cart Item List Price",
192
+ category: "commerce"
193
+ },
194
+ schema: {},
195
+ guideline: "Renders the original list price of the cart item (strikethrough); renders null when no discount is active. Use alongside CartItemPrice to show promotional pricing. Must be inside CartItemRoot."
196
+ });
197
+ const CartItemDiscountPercentageDefinition = defineComponent({
198
+ name: "CartItemDiscountPercentage",
199
+ importPath: "@vtex/faststore/components",
200
+ component: CartItemDiscountPercentage,
201
+ requiresContext: "cart-item-data",
202
+ editor: {
203
+ label: "Cart Item Discount %",
204
+ category: "commerce"
205
+ },
206
+ schema: { template: {
207
+ type: "string",
208
+ default: "-{percentage}%",
209
+ label: "Template"
210
+ } },
211
+ guideline: "Per-line discount badge showing the integer listPrice-vs-sellingPrice percentage (e.g. \"-20%\"); use the template prop to customize the format ({percentage} is the integer percent). Renders null when the line has no discount (sellingPrice >= listPrice), so it only appears on promotional lines. Place alongside CartItemPrice/CartItemListPrice. Must be inside CartItemRoot."
212
+ });
213
+ const CartItemLineTotalDefinition = defineComponent({
214
+ name: "CartItemLineTotal",
215
+ importPath: "@vtex/faststore/components",
216
+ component: CartItemLineTotal,
217
+ requiresContext: "cart-item-data",
218
+ editor: {
219
+ label: "Cart Item Line Total",
220
+ category: "commerce"
221
+ },
222
+ schema: {},
223
+ guideline: "Renders the per-line total (selling price × quantity) formatted from the active storefront context. Must be inside CartItemRoot."
224
+ });
225
+ const CartItemOwnTotalDefinition = defineComponent({
226
+ name: "CartItemOwnTotal",
227
+ importPath: "@vtex/faststore/components",
228
+ component: CartItemOwnTotal,
229
+ requiresContext: "cart-item-data",
230
+ editor: {
231
+ label: "Cart Item Own Total",
232
+ category: "commerce"
233
+ },
234
+ schema: {},
235
+ guideline: "Renders the line's own total (excludes bundle/composition children), formatted from the active storefront context. Equals CartItemAggregateTotal on lines with no compositions. Must be inside CartItemRoot. See cart-item.md."
236
+ });
237
+ const CartItemAggregateTotalDefinition = defineComponent({
238
+ name: "CartItemAggregateTotal",
239
+ importPath: "@vtex/faststore/components",
240
+ component: CartItemAggregateTotal,
241
+ requiresContext: "cart-item-data",
242
+ editor: {
243
+ label: "Cart Item Aggregate Total",
244
+ category: "commerce"
245
+ },
246
+ schema: {},
247
+ guideline: "Renders the line's aggregate total including all nested composition children, formatted from the active storefront context — the price the shopper actually pays for a bundled line. Equals CartItemOwnTotal on lines with no compositions. Must be inside CartItemRoot. See cart-item.md."
248
+ });
249
+ const CartItemQuantityDefinition = defineComponent({
250
+ name: "CartItemQuantity",
251
+ importPath: "@vtex/faststore/components",
252
+ component: CartItemQuantity,
253
+ fragment: cartItemQuantityFragment,
254
+ fetchStrategy: "reactive-list-item",
255
+ requiresContext: "cart-item-data",
256
+ editor: {
257
+ label: "Cart Item Quantity",
258
+ category: "commerce"
259
+ },
260
+ schema: {
261
+ min: {
262
+ type: "number",
263
+ default: 1,
264
+ label: "Min"
265
+ },
266
+ max: {
267
+ type: "number",
268
+ label: "Max"
269
+ },
270
+ step: {
271
+ type: "number",
272
+ default: 1,
273
+ label: "Step"
274
+ },
275
+ removeOnDecrement: {
276
+ type: "boolean",
277
+ default: false,
278
+ label: "Remove On Decrement"
279
+ },
280
+ validationMessage: {
281
+ type: "string",
282
+ default: "Quantity adjusted to {value}.",
283
+ label: "Validation Message"
284
+ }
285
+ },
286
+ actions: { cart: [
287
+ "increaseQuantity",
288
+ "decreaseQuantity",
289
+ "removeItem"
290
+ ] },
291
+ guideline: "Quantity stepper for a cart item, shown in the unit the merchant sells in: the displayed amount is the line's quantity times its unit multiplier, so a SKU sold in 500 g portions reads 1.5 rather than 3. min, max, and step are configured in purchasable units and converted for display, so one template serves SKUs with different multipliers. A typed amount that is out of bounds or off the multiplier grid snaps to the nearest valid value on commit and renders validationMessage. Set removeOnDecrement=true to remove the item when quantity reaches the minimum. Renders nothing on a gift line — a gift's quantity is promotion-controlled and cannot be stepped or removed, so use CartItemQuantityValue to show a gift's fixed quantity. Must be inside CartItemRoot. See cart-item.md."
292
+ });
293
+ const CartItemQuantityValueDefinition = defineComponent({
294
+ name: "CartItemQuantityValue",
295
+ importPath: "@vtex/faststore/components",
296
+ component: CartItemQuantityValue,
297
+ requiresContext: "cart-item-data",
298
+ editor: {
299
+ label: "Cart Item Quantity Value",
300
+ category: "commerce"
301
+ },
302
+ schema: {},
303
+ guideline: "Renders the read-only quantity count of the cart item as text (e.g. a \"Qty\" badge). Distinct from the editable CartItemQuantity stepper. Must be inside CartItemRoot."
304
+ });
305
+ const CartItemRemoveDefinition = defineComponent({
306
+ name: "CartItemRemove",
307
+ importPath: "@vtex/faststore/components",
308
+ component: CartItemRemove,
309
+ requiresContext: "cart-item-data",
310
+ editor: {
311
+ label: "Cart Item Remove",
312
+ category: "commerce"
313
+ },
314
+ schema: {},
315
+ actions: { cart: ["removeItem"] },
316
+ guideline: "Button that removes the current line item from the cart. Must be inside CartItemRoot. Also composes inside CartItemUnavailable as a remove-on-alert control. See cart-item.md."
317
+ });
318
+ const CartItemAvailableDefinition = defineComponent({
319
+ name: "CartItemAvailable",
320
+ importPath: "@vtex/faststore/components",
321
+ component: CartItemAvailable,
322
+ requiresContext: "cart-item-data",
323
+ editor: {
324
+ label: "Cart Item Available",
325
+ category: "commerce"
326
+ },
327
+ schema: {},
328
+ guideline: "Renders its children only when the current cart item is in stock (availability AVAILABLE). Wrap price, quantity stepper, and line total so they hide for unavailable items. Must be inside CartItemRoot."
329
+ });
330
+ const CartItemUnavailableDefinition = defineComponent({
331
+ name: "CartItemUnavailable",
332
+ importPath: "@vtex/faststore/components",
333
+ component: CartItemUnavailable,
334
+ requiresContext: "cart-item-data",
335
+ editor: {
336
+ label: "Cart Item Unavailable",
337
+ category: "commerce"
338
+ },
339
+ schema: {},
340
+ guideline: "Status badge shown only when the current cart item is NOT available. Renders a built-in English label per state (OUT_OF_STOCK → \"Out of stock\", UNAVAILABLE → \"Cannot be delivered\", otherwise \"Unavailable\"); pass children to override the text — children REPLACE the label, so a remove-on-alert composition nests an explicit label plus a CartItemRemove. Emits data-fs-cart-item-unavailable-state for per-state styling. Must be inside CartItemRoot. See cart-item.md."
341
+ });
342
+ const CartItemGiftDefinition = defineComponent({
343
+ name: "CartItemGift",
344
+ importPath: "@vtex/faststore/components",
345
+ component: CartItemGift,
346
+ requiresContext: "cart-item-data",
347
+ editor: {
348
+ label: "Cart Item Gift",
349
+ category: "commerce"
350
+ },
351
+ schema: {},
352
+ guideline: "Free marker for a promotional gift line: renders only when the current cart item is a gift, showing a built-in \"Free\" label; pass children to override the text — children REPLACE the label. Place it beside CartItemPrice/CartItemListPrice, whose struck-through list price it complements. It is an inline marker, not a wrapper for a gift-only subtree. On a gift line CartItemRemove suppresses itself and CartItemRoot marks the row with data-fs-cart-item-gift-line, so neither needs composing differently. Must be inside CartItemRoot. See cart-item.md."
353
+ });
354
+ function CartItemRoot({ $data: $dataProp, className, children, ...props }) {
355
+ const slice = useDataOverride($dataProp) ?? null;
356
+ return /* @__PURE__ */ jsx(CartItemContext, {
357
+ value: slice,
358
+ children: /* @__PURE__ */ jsx("div", {
359
+ ...props,
360
+ className,
361
+ "data-fs-cart-item-root": "",
362
+ ...slice?.gift ? { "data-fs-cart-item-gift-line": "" } : {},
363
+ children
364
+ })
365
+ });
366
+ }
367
+ function CartItemImage({ className, objectFit = "contain", ...props }) {
368
+ const item = useCartItem();
369
+ const image = item.variant.image;
370
+ if (!image) return null;
371
+ return /* @__PURE__ */ jsx("img", {
372
+ ...props,
373
+ src: image.url,
374
+ alt: image.altText ?? item.variant.name,
375
+ className,
376
+ style: {
377
+ objectFit,
378
+ ...props.style
379
+ },
380
+ "data-fs-cart-item-image": "",
381
+ "data-fs-image": ""
382
+ });
383
+ }
384
+ function CartItemProductLink({ className, children, ...props }) {
385
+ const item = useCartItem();
386
+ const destination = resolveSafeHref(item.product.detailUrl);
387
+ if (!destination.safe) {
388
+ if (destination.reason !== "blank") console.warn("[CartItemProductLink] product URL rejected", { reason: destination.reason });
389
+ return children;
390
+ }
391
+ const image = item.variant.image;
392
+ if (!image || !(image.altText ?? item.variant.name ?? "").trim()) return children;
393
+ return /* @__PURE__ */ jsx(NavigationLink, {
394
+ ...props,
395
+ href: destination.href,
396
+ className,
397
+ "data-fs-cart-item-product-link": "",
398
+ children
399
+ });
400
+ }
401
+ function CartItemName({ className, children, ...props }) {
402
+ const item = useCartItem();
403
+ return /* @__PURE__ */ jsx("span", {
404
+ ...props,
405
+ className,
406
+ "data-fs-cart-item-name": "",
407
+ "data-fs-text": "",
408
+ children: children ?? item.product.title
409
+ });
410
+ }
411
+ function CartItemVariant({ className, children, ...props }) {
412
+ const { name } = useCartItem().variant;
413
+ if (!name) return null;
414
+ return /* @__PURE__ */ jsx("span", {
415
+ ...props,
416
+ className,
417
+ "data-fs-cart-item-variant": "",
418
+ children: children ?? name
419
+ });
420
+ }
421
+ function CartItemSku({ className, children, ...props }) {
422
+ const { sku } = useCartItem().variant;
423
+ if (!sku) return null;
424
+ return /* @__PURE__ */ jsx("span", {
425
+ ...props,
426
+ className,
427
+ "data-fs-cart-item-sku": "",
428
+ children: children ?? sku
429
+ });
430
+ }
431
+ function CartItemPrice({ className, children, ...props }) {
432
+ const item = useCartItem();
433
+ const { locale, currency } = useStorefrontContext();
434
+ return /* @__PURE__ */ jsx("span", {
435
+ ...props,
436
+ className,
437
+ "data-fs-cart-item-price": "",
438
+ "data-fs-text": "",
439
+ children: children ?? formatPrice(item.sellingPrice.amount, locale, currency)
440
+ });
441
+ }
442
+ function CartItemListPrice({ className, children, ...props }) {
443
+ const item = useCartItem();
444
+ const { locale, currency } = useStorefrontContext();
445
+ if (item.listPrice.amount <= item.sellingPrice.amount) return null;
446
+ return /* @__PURE__ */ jsx("span", {
447
+ ...props,
448
+ className,
449
+ "data-fs-cart-item-list-price": "",
450
+ "data-fs-text": "",
451
+ children: children ?? formatPrice(item.listPrice.amount, locale, currency)
452
+ });
453
+ }
454
+ function CartItemDiscountPercentage({ template = "-{percentage}%", className, children, ...props }) {
455
+ const item = useCartItem();
456
+ const listPrice = Number(item.listPrice.amount);
457
+ const sellingPrice = Number(item.sellingPrice.amount);
458
+ if (listPrice <= sellingPrice) return null;
459
+ const percent = Math.round((listPrice - sellingPrice) / listPrice * 100);
460
+ const text = template.replaceAll("{percentage}", String(percent));
461
+ return /* @__PURE__ */ jsx("span", {
462
+ ...props,
463
+ className,
464
+ "data-fs-cart-item-discount-percentage": "",
465
+ "data-fs-text": "",
466
+ children: children ?? text
467
+ });
468
+ }
469
+ function CartItemLineTotal({ className, children, ...props }) {
470
+ const item = useCartItem();
471
+ const { locale, currency } = useStorefrontContext();
472
+ return /* @__PURE__ */ jsx("span", {
473
+ ...props,
474
+ className,
475
+ "data-fs-cart-item-line-total": "",
476
+ children: children ?? formatPrice(item.sellingPrice.amount * item.quantity, locale, currency)
477
+ });
478
+ }
479
+ function CartItemOwnTotal({ className, children, ...props }) {
480
+ const item = useCartItem();
481
+ const { locale, currency } = useStorefrontContext();
482
+ return /* @__PURE__ */ jsx("span", {
483
+ ...props,
484
+ className,
485
+ "data-fs-cart-item-own-total": "",
486
+ "data-fs-text": "",
487
+ children: children ?? formatPrice(Number(item.ownTotal.amount), locale, currency)
488
+ });
489
+ }
490
+ function CartItemAggregateTotal({ className, children, ...props }) {
491
+ const item = useCartItem();
492
+ const { locale, currency } = useStorefrontContext();
493
+ return /* @__PURE__ */ jsx("span", {
494
+ ...props,
495
+ className,
496
+ "data-fs-cart-item-aggregate-total": "",
497
+ "data-fs-text": "",
498
+ children: children ?? formatPrice(Number(item.total.amount), locale, currency)
499
+ });
500
+ }
501
+ const MAX_DISPLAY_DECIMALS = 6;
502
+ /**
503
+ * A multiplier the platform cannot sell in — zero, negative, or non-finite — is treated as `1`, which
504
+ * is also the fallback when the optional slice is absent (the stepper composed with no own provider).
505
+ */
506
+ function effectiveMultiplier(slice) {
507
+ const multiplier = slice?.variant?.unitMultiplier ?? 1;
508
+ return Number.isFinite(multiplier) && multiplier > 0 ? multiplier : 1;
509
+ }
510
+ /**
511
+ * Precision of the multiplier, so a displayed amount never carries binary-representation noise.
512
+ * Derived through `toFixed` rather than `String`: `String` switches to exponential notation below
513
+ * 1e-6, where it carries no decimal point and would report zero places, yielding a step of 0 that no
514
+ * control can move. The normal-path precisions (0.5, 0.1, 0.333) are covered by tests; the
515
+ * exponential branch is not, since it needs a multiplier no SKU can have.
516
+ */
517
+ function decimalPlacesOf(multiplier) {
518
+ const [, decimals = ""] = multiplier.toFixed(MAX_DISPLAY_DECIMALS).split(".");
519
+ let end = decimals.length;
520
+ while (end > 0 && decimals[end - 1] === "0") end -= 1;
521
+ return end;
522
+ }
523
+ function roundTo(value, decimals) {
524
+ return Number(value.toFixed(decimals));
525
+ }
526
+ function resolveAdjustment(entered, snappedDisplay, multiplier, minDisplay, maxDisplay) {
527
+ if (maxDisplay != null && entered > maxDisplay) return {
528
+ reason: "max",
529
+ value: snappedDisplay
530
+ };
531
+ if (entered < minDisplay) return {
532
+ reason: "min",
533
+ value: snappedDisplay
534
+ };
535
+ if (Math.abs(entered - snappedDisplay) > multiplier * 1e-6) return {
536
+ reason: "multiple",
537
+ value: snappedDisplay
538
+ };
539
+ return null;
540
+ }
541
+ function CartItemQuantity({ className, children, min = 1, max, step, removeOnDecrement, validationMessage = "Quantity adjusted to {value}.", $data: $dataProp, $actions, ...props }) {
542
+ const item = useCartItem();
543
+ const slice = useDataOverride($dataProp);
544
+ const [adjustment, setAdjustment] = useState(null);
545
+ if (item.gift) return null;
546
+ const cart = $actions?.cart;
547
+ const multiplier = effectiveMultiplier(slice);
548
+ const decimals = decimalPlacesOf(multiplier);
549
+ const stepUnits = Math.max(1, Math.round(step ?? 1));
550
+ const minUnits = Math.round(min);
551
+ const maxUnits = max == null ? void 0 : Math.round(max);
552
+ const displayStep = roundTo(stepUnits * multiplier, decimals);
553
+ const minDisplay = roundTo(minUnits * multiplier, decimals);
554
+ const maxDisplay = maxUnits == null ? void 0 : roundTo(maxUnits * multiplier, decimals);
555
+ function handleValueCommitted(value) {
556
+ if (value == null) return;
557
+ if (removeOnDecrement && value < minDisplay) {
558
+ setAdjustment(null);
559
+ cart?.removeItem?.({ id: item.id });
560
+ return;
561
+ }
562
+ const snapped = Math.min(Math.max(Math.round(value / multiplier), minUnits), maxUnits ?? Number.POSITIVE_INFINITY);
563
+ const snappedDisplay = roundTo(snapped * multiplier, decimals);
564
+ setAdjustment(resolveAdjustment(value, snappedDisplay, multiplier, minDisplay, maxDisplay));
565
+ const delta = snapped - item.quantity;
566
+ if (delta > 0) cart?.increaseQuantity?.({
567
+ id: item.id,
568
+ by: delta
569
+ });
570
+ else if (delta < 0) cart?.decreaseQuantity?.({
571
+ id: item.id,
572
+ by: -delta
573
+ });
574
+ }
575
+ const effectiveMin = removeOnDecrement ? 0 : minDisplay;
576
+ const computedClassName = removeOnDecrement ? className ? `group ${className}` : "group" : className;
577
+ return /* @__PURE__ */ jsxs(NumberField.Root, {
578
+ ...props,
579
+ value: roundTo(item.quantity * multiplier, decimals),
580
+ onValueCommitted: handleValueCommitted,
581
+ onValueChange: (_value, details) => {
582
+ if (details.reason === "input-change" || details.reason === "input-paste" || details.reason === "input-clear") setAdjustment(null);
583
+ },
584
+ min: effectiveMin,
585
+ max: maxDisplay,
586
+ step: displayStep,
587
+ smallStep: displayStep,
588
+ largeStep: roundTo(displayStep * 10, decimals),
589
+ snapOnStep: true,
590
+ allowOutOfRange: true,
591
+ className: computedClassName,
592
+ "data-fs-cart-item-quantity": "",
593
+ ...multiplier === 1 ? {} : { "data-fs-cart-item-quantity-multiplier": String(multiplier) },
594
+ ...adjustment ? {
595
+ "data-fs-cart-item-quantity-adjusted": "",
596
+ "data-fs-cart-item-quantity-adjusted-reason": adjustment.reason
597
+ } : {},
598
+ ...removeOnDecrement && item.quantity <= minUnits ? { "data-fs-cart-item-at-min": "" } : {},
599
+ children: [children, adjustment ? /* @__PURE__ */ jsx("div", {
600
+ role: "alert",
601
+ "data-fs-cart-item-quantity-validation": "",
602
+ children: validationMessage.replaceAll("{value}", String(adjustment.value))
603
+ }) : null]
604
+ });
605
+ }
606
+ function CartItemQuantityValue({ className, children, ...props }) {
607
+ const item = useCartItem();
608
+ return /* @__PURE__ */ jsx("span", {
609
+ ...props,
610
+ className,
611
+ "data-fs-cart-item-quantity-value": "",
612
+ children: children ?? String(item.quantity)
613
+ });
614
+ }
615
+ function CartItemRemove({ className, children, onClick, $actions, ...props }) {
616
+ const item = useCartItem();
617
+ if (item.gift) return null;
618
+ function handleClick(e) {
619
+ $actions?.cart?.removeItem?.({ id: item.id });
620
+ onClick?.(e);
621
+ }
622
+ return /* @__PURE__ */ jsx("button", {
623
+ ...props,
624
+ type: "button",
625
+ className,
626
+ onClick: handleClick,
627
+ "data-fs-cart-item-remove": "",
628
+ "data-fs-button": "",
629
+ children
630
+ });
631
+ }
632
+ const UNAVAILABLE_LABELS = {
633
+ OUT_OF_STOCK: "Out of stock",
634
+ UNAVAILABLE: "Cannot be delivered"
635
+ };
636
+ function unavailableLabel(availability) {
637
+ return UNAVAILABLE_LABELS[availability] ?? "Unavailable";
638
+ }
639
+ function CartItemAvailable({ className, children, ...props }) {
640
+ if (useCartItem().variant.availability !== "AVAILABLE") return null;
641
+ return /* @__PURE__ */ jsx("div", {
642
+ ...props,
643
+ className,
644
+ "data-fs-cart-item-available": "",
645
+ children
646
+ });
647
+ }
648
+ function CartItemUnavailable({ className, children, ...props }) {
649
+ const { availability } = useCartItem().variant;
650
+ if (availability === "AVAILABLE") return null;
651
+ return /* @__PURE__ */ jsx("div", {
652
+ ...props,
653
+ className,
654
+ "data-fs-cart-item-unavailable": "",
655
+ "data-fs-cart-item-unavailable-state": availability.toLowerCase(),
656
+ children: children ?? unavailableLabel(availability)
657
+ });
658
+ }
659
+ function CartItemGift({ className, children, ...props }) {
660
+ if (!useCartItem().gift) return null;
661
+ return /* @__PURE__ */ jsx("span", {
662
+ ...props,
663
+ className,
664
+ "data-fs-cart-item-gift": "",
665
+ "data-fs-text": "",
666
+ children: children ?? "Free"
667
+ });
668
+ }
669
+ //#endregion
670
+ export { CartItemAggregateTotal, CartItemAggregateTotalDefinition, CartItemAvailable, CartItemAvailableDefinition, CartItemDiscountPercentage, CartItemDiscountPercentageDefinition, CartItemGift, CartItemGiftDefinition, CartItemImage, CartItemImageDefinition, CartItemLineTotal, CartItemLineTotalDefinition, CartItemListPrice, CartItemListPriceDefinition, CartItemName, CartItemNameDefinition, CartItemOwnTotal, CartItemOwnTotalDefinition, CartItemPrice, CartItemPriceDefinition, CartItemProductLink, CartItemProductLinkDefinition, CartItemQuantity, CartItemQuantityDefinition, CartItemQuantityValue, CartItemQuantityValueDefinition, CartItemRemove, CartItemRemoveDefinition, CartItemRoot, CartItemRootDefinition, CartItemSku, CartItemSkuDefinition, CartItemUnavailable, CartItemUnavailableDefinition, CartItemVariant, CartItemVariantDefinition };
671
+
672
+ //# sourceMappingURL=cart-item.js.map