@vtex/faststore 0.0.7 → 0.0.10

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 (498) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/actions.json +194 -1
  3. package/dist/catalog.json +3449 -1612
  4. package/dist/cli/index.d.ts +512 -63
  5. package/dist/cli/index.js +2098 -686
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/server-runtime.js +44 -24
  8. package/dist/cli/server-runtime.js.map +1 -1
  9. package/dist/client.d.ts +5 -1
  10. package/dist/client.js +5 -1
  11. package/dist/components.d.ts +42 -10
  12. package/dist/components.js +47 -15
  13. package/dist/content-types.json +823 -0
  14. package/dist/core/dist/define-component.d.ts +12 -2
  15. package/dist/docs/account-access-gate.md +4 -4
  16. package/dist/docs/account-address-book.md +519 -0
  17. package/dist/docs/account-entry-point.md +5 -5
  18. package/dist/docs/account-menu.md +7 -7
  19. package/dist/docs/account-saved-cards.md +301 -0
  20. package/dist/docs/alert-dialog.md +2 -2
  21. package/dist/docs/billing-address.md +17 -9
  22. package/dist/docs/binding-switcher.md +154 -0
  23. package/dist/docs/card-entry.md +38 -7
  24. package/dist/docs/card-summary.md +175 -0
  25. package/dist/docs/cardholder-document.md +16 -14
  26. package/dist/docs/cart-destination.md +238 -0
  27. package/dist/docs/cart-item.md +22 -4
  28. package/dist/docs/cart-totalizer.md +1 -1
  29. package/dist/docs/cart.md +126 -19
  30. package/dist/docs/client-profile-fieldset.md +7 -5
  31. package/dist/docs/copy-text.md +84 -0
  32. package/dist/docs/document-field.md +8 -8
  33. package/dist/docs/footer-link-group.md +2 -2
  34. package/dist/docs/footer-social.md +1 -1
  35. package/dist/docs/free-shipping-progress.md +13 -9
  36. package/dist/docs/header-root.md +1 -1
  37. package/dist/docs/incentives.md +4 -4
  38. package/dist/docs/logo.md +6 -6
  39. package/dist/docs/my-account-profile.md +4 -4
  40. package/dist/docs/navigation-link-list.md +2 -2
  41. package/dist/docs/navigation-link.md +3 -3
  42. package/dist/docs/order-cancel.md +52 -0
  43. package/dist/docs/order-delivery-address.md +63 -0
  44. package/dist/docs/order-delivery-group.md +83 -0
  45. package/dist/docs/order-details-back.md +41 -0
  46. package/dist/docs/order-details-header.md +48 -0
  47. package/dist/docs/order-list-row.md +46 -0
  48. package/dist/docs/order-list-search.md +101 -0
  49. package/dist/docs/order-list-views.md +97 -0
  50. package/dist/docs/order-list.md +94 -0
  51. package/dist/docs/order-payment.md +94 -0
  52. package/dist/docs/order-placed-date.md +49 -0
  53. package/dist/docs/order-placed-payment-summary.md +13 -15
  54. package/dist/docs/order-placed.md +225 -0
  55. package/dist/docs/order-progress.md +88 -0
  56. package/dist/docs/order-status-badge.md +91 -0
  57. package/dist/docs/order-summary.md +53 -0
  58. package/dist/docs/payment-method-badges.md +16 -5
  59. package/dist/docs/payment-methods.md +1 -1
  60. package/dist/docs/place-order.md +13 -9
  61. package/dist/docs/product-information.md +2 -2
  62. package/dist/docs/product-shelf.md +7 -0
  63. package/dist/docs/saved-cards.md +2 -2
  64. package/dist/docs/select.md +22 -10
  65. package/dist/docs/session.md +1 -1
  66. package/dist/docs/shipping-address.md +1 -1
  67. package/dist/docs/sign-in-redirect.md +7 -7
  68. package/dist/docs/toast.md +35 -13
  69. package/dist/index.d.ts +7 -2
  70. package/dist/index.js +2 -1
  71. package/dist/internal/client.d.ts +9 -1
  72. package/dist/internal/client.js +10 -2
  73. package/dist/internal/server.d.ts +8 -2
  74. package/dist/internal/server.js +8 -2
  75. package/dist/matter/account-access-gate/account-access-gate.d.ts +2 -1
  76. package/dist/matter/account-access-gate/account-access-gate.js +19 -16
  77. package/dist/matter/account-access-gate/account-access-gate.js.map +1 -1
  78. package/dist/matter/account-address-book/account-address-book-delete.d.ts +60 -0
  79. package/dist/matter/account-address-book/account-address-book-delete.js +184 -0
  80. package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -0
  81. package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +19 -0
  82. package/dist/matter/account-address-book/account-address-book-deliverability.js +50 -0
  83. package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -0
  84. package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +42 -0
  85. package/dist/matter/account-address-book/account-address-book-form-parts.js +146 -0
  86. package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -0
  87. package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +25 -0
  88. package/dist/matter/account-address-book/account-address-book-profile-notice.js +72 -0
  89. package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -0
  90. package/dist/matter/account-address-book/account-address-book.d.ts +120 -0
  91. package/dist/matter/account-address-book/account-address-book.js +469 -0
  92. package/dist/matter/account-address-book/account-address-book.js.map +1 -0
  93. package/dist/matter/account-address-book/account-address-country-switch.js +59 -0
  94. package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -0
  95. package/dist/matter/account-address-book/account-address-country.d.ts +36 -0
  96. package/dist/matter/account-address-book/account-address-country.js +151 -0
  97. package/dist/matter/account-address-book/account-address-country.js.map +1 -0
  98. package/dist/matter/account-address-book/account-address-first-line.js +11 -0
  99. package/dist/matter/account-address-book/account-address-first-line.js.map +1 -0
  100. package/dist/matter/account-address-book/account-address-form-context.d.ts +55 -0
  101. package/dist/matter/account-address-book/account-address-form-context.js +14 -0
  102. package/dist/matter/account-address-book/account-address-form-context.js.map +1 -0
  103. package/dist/matter/account-address-book/account-address-form.d.ts +85 -0
  104. package/dist/matter/account-address-book/account-address-form.js +946 -0
  105. package/dist/matter/account-address-book/account-address-form.js.map +1 -0
  106. package/dist/matter/account-address-book/account-address-postal-autofill.js +189 -0
  107. package/dist/matter/account-address-book/account-address-postal-autofill.js.map +1 -0
  108. package/dist/matter/account-address-book/account-address-record.d.ts +26 -0
  109. package/dist/matter/account-address-book/account-address-record.js +138 -0
  110. package/dist/matter/account-address-book/account-address-record.js.map +1 -0
  111. package/dist/matter/account-entry-point/account-entry-point.js +11 -11
  112. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
  113. package/dist/matter/account-menu/account-menu.d.ts +7 -3
  114. package/dist/matter/account-menu/account-menu.js +69 -28
  115. package/dist/matter/account-menu/account-menu.js.map +1 -1
  116. package/dist/matter/account-saved-cards/account-saved-cards.d.ts +383 -0
  117. package/dist/matter/account-saved-cards/account-saved-cards.js +956 -0
  118. package/dist/matter/account-saved-cards/account-saved-cards.js.map +1 -0
  119. package/dist/matter/billing-address/billing-address.d.ts +30 -17
  120. package/dist/matter/billing-address/billing-address.js +128 -33
  121. package/dist/matter/billing-address/billing-address.js.map +1 -1
  122. package/dist/matter/breadcrumb/breadcrumb.js +2 -2
  123. package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
  124. package/dist/matter/card-entry/card-capture.js +4 -3
  125. package/dist/matter/card-entry/card-capture.js.map +1 -1
  126. package/dist/matter/card-entry/card-entry.d.ts +5 -3
  127. package/dist/matter/card-entry/card-entry.js +77 -27
  128. package/dist/matter/card-entry/card-entry.js.map +1 -1
  129. package/dist/matter/cardholder-document/cardholder-document.d.ts +10 -9
  130. package/dist/matter/cardholder-document/cardholder-document.js +36 -16
  131. package/dist/matter/cardholder-document/cardholder-document.js.map +1 -1
  132. package/dist/matter/cart/cart-namespace.d.ts +5 -1
  133. package/dist/matter/cart/cart-namespace.js +5 -1
  134. package/dist/matter/cart/cart-namespace.js.map +1 -1
  135. package/dist/matter/cart/cart.d.ts +41 -6
  136. package/dist/matter/cart/cart.js +267 -54
  137. package/dist/matter/cart/cart.js.map +1 -1
  138. package/dist/matter/cart-destination/cart-destination.d.ts +222 -0
  139. package/dist/matter/cart-destination/cart-destination.js +613 -0
  140. package/dist/matter/cart-destination/cart-destination.js.map +1 -0
  141. package/dist/matter/cart-item/cart-item.d.ts +4 -2
  142. package/dist/matter/cart-item/cart-item.js +76 -17
  143. package/dist/matter/cart-item/cart-item.js.map +1 -1
  144. package/dist/matter/cart-totalizer/cart-totalizer.js +3 -2
  145. package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -1
  146. package/dist/matter/client-preferences/client-preferences-fieldset.js +1 -1
  147. package/dist/matter/client-profile-form/client-profile-fieldset.js +8 -5
  148. package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
  149. package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +6 -3
  150. package/dist/matter/free-shipping-progress/free-shipping-progress.js +76 -33
  151. package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -1
  152. package/dist/matter/identity-edit/identity-edit.js +3 -3
  153. package/dist/matter/identity-edit/identity-edit.js.map +1 -1
  154. package/dist/matter/identity-summary/identity-summary.js +2 -2
  155. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  156. package/dist/matter/my-account-profile/my-account-profile.d.ts +3 -3
  157. package/dist/matter/my-account-profile/my-account-profile.js +4 -4
  158. package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
  159. package/dist/matter/order-cancel/order-cancel.d.ts +110 -0
  160. package/dist/matter/order-cancel/order-cancel.js +344 -0
  161. package/dist/matter/order-cancel/order-cancel.js.map +1 -0
  162. package/dist/matter/order-delivery-address/order-delivery-address.d.ts +73 -0
  163. package/dist/matter/order-delivery-address/order-delivery-address.js +172 -0
  164. package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -0
  165. package/dist/matter/order-delivery-group/order-delivery-group.d.ts +128 -0
  166. package/dist/matter/order-delivery-group/order-delivery-group.js +408 -0
  167. package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -0
  168. package/dist/matter/order-details-header/order-details-header.d.ts +104 -0
  169. package/dist/matter/order-details-header/order-details-header.js +190 -0
  170. package/dist/matter/order-details-header/order-details-header.js.map +1 -0
  171. package/dist/matter/order-list/customer-orders-filter.d.ts +12 -0
  172. package/dist/matter/order-list/customer-orders-filter.js +30 -0
  173. package/dist/matter/order-list/customer-orders-filter.js.map +1 -0
  174. package/dist/matter/order-list/order-list.d.ts +121 -0
  175. package/dist/matter/order-list/order-list.js +395 -0
  176. package/dist/matter/order-list/order-list.js.map +1 -0
  177. package/dist/matter/order-list-row/order-list-row.d.ts +44 -0
  178. package/dist/matter/order-list-row/order-list-row.js +127 -0
  179. package/dist/matter/order-list-row/order-list-row.js.map +1 -0
  180. package/dist/matter/order-list-search/order-list-search.d.ts +72 -0
  181. package/dist/matter/order-list-search/order-list-search.js +296 -0
  182. package/dist/matter/order-list-search/order-list-search.js.map +1 -0
  183. package/dist/matter/order-list-views/order-list-views.d.ts +65 -0
  184. package/dist/matter/order-list-views/order-list-views.js +154 -0
  185. package/dist/matter/order-list-views/order-list-views.js.map +1 -0
  186. package/dist/matter/order-payment/order-payment.d.ts +83 -0
  187. package/dist/matter/order-payment/order-payment.js +258 -0
  188. package/dist/matter/order-payment/order-payment.js.map +1 -0
  189. package/dist/matter/order-placed/order-placed-deliveries.d.ts +145 -0
  190. package/dist/matter/order-placed/order-placed-deliveries.js +380 -0
  191. package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -0
  192. package/dist/matter/order-placed/order-placed.d.ts +122 -0
  193. package/dist/matter/order-placed/order-placed.js +452 -0
  194. package/dist/matter/order-placed/order-placed.js.map +1 -0
  195. package/dist/matter/order-placed-date/order-placed-date.d.ts +45 -0
  196. package/dist/matter/order-placed-date/order-placed-date.js +92 -0
  197. package/dist/matter/order-placed-date/order-placed-date.js.map +1 -0
  198. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +5 -8
  199. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +29 -81
  200. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
  201. package/dist/matter/order-progress/order-progress.d.ts +85 -0
  202. package/dist/matter/order-progress/order-progress.js +203 -0
  203. package/dist/matter/order-progress/order-progress.js.map +1 -0
  204. package/dist/matter/order-summary/order-summary.d.ts +81 -0
  205. package/dist/matter/order-summary/order-summary.js +192 -0
  206. package/dist/matter/order-summary/order-summary.js.map +1 -0
  207. package/dist/matter/payment/cardholder-document-rule.d.ts +35 -0
  208. package/dist/matter/payment/cardholder-document-rule.js +35 -0
  209. package/dist/matter/payment/cardholder-document-rule.js.map +1 -0
  210. package/dist/matter/payment/payment-card-capture.js +38 -23
  211. package/dist/matter/payment/payment-card-capture.js.map +1 -1
  212. package/dist/matter/payment/payment-controller.js +11 -0
  213. package/dist/matter/payment/payment-controller.js.map +1 -1
  214. package/dist/matter/payment/payment-method-badges.js +4 -2
  215. package/dist/matter/payment/payment-method-badges.js.map +1 -1
  216. package/dist/matter/payment/payment.js +11 -0
  217. package/dist/matter/payment/payment.js.map +1 -1
  218. package/dist/matter/payment/use-payment-method-selection.d.ts +39 -0
  219. package/dist/matter/payment/use-payment-method-selection.js +30 -2
  220. package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
  221. package/dist/matter/payment/use-payment-submit-gate.d.ts +16 -2
  222. package/dist/matter/payment/use-payment-submit-gate.js +42 -14
  223. package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
  224. package/dist/matter/place-order/place-order.d.ts +12 -7
  225. package/dist/matter/place-order/place-order.js +126 -103
  226. package/dist/matter/place-order/place-order.js.map +1 -1
  227. package/dist/matter/pricing/pricing.js +5 -5
  228. package/dist/matter/pricing/pricing.js.map +1 -1
  229. package/dist/matter/product-shelf/product-shelf.d.ts +7 -0
  230. package/dist/matter/product-shelf/product-shelf.js +115 -1
  231. package/dist/matter/product-shelf/product-shelf.js.map +1 -1
  232. package/dist/matter/region/region.js +1 -1
  233. package/dist/matter/saved-cards/saved-cards.js +26 -15
  234. package/dist/matter/saved-cards/saved-cards.js.map +1 -1
  235. package/dist/matter/session/session.js +2 -2
  236. package/dist/matter/session/session.js.map +1 -1
  237. package/dist/matter/shipping-address/country-descriptors.d.ts +1 -0
  238. package/dist/matter/shipping-address/country-descriptors.js +23 -1
  239. package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
  240. package/dist/matter/shipping-address/shipping-address.js +62 -14
  241. package/dist/matter/shipping-address/shipping-address.js.map +1 -1
  242. package/dist/matter/shipping-simulator/shipping-simulator.d.ts +2 -2
  243. package/dist/matter/shipping-simulator/shipping-simulator.js +6 -2
  244. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
  245. package/dist/matter/sign-in-redirect/sign-in-redirect.js +48 -10
  246. package/dist/matter/sign-in-redirect/sign-in-redirect.js.map +1 -1
  247. package/dist/matter/variant-selector/variant-selector.js +2 -2
  248. package/dist/matter/variant-selector/variant-selector.js.map +1 -1
  249. package/dist/particles/address-summary/address-summary.js +2 -2
  250. package/dist/particles/address-summary/address-summary.js.map +1 -1
  251. package/dist/particles/alert-dialog/alert-dialog.d.ts +5 -1
  252. package/dist/particles/alert-dialog/alert-dialog.js +5 -2
  253. package/dist/particles/alert-dialog/alert-dialog.js.map +1 -1
  254. package/dist/particles/binding-switcher/binding-switcher.d.ts +38 -0
  255. package/dist/particles/binding-switcher/binding-switcher.js +183 -0
  256. package/dist/particles/binding-switcher/binding-switcher.js.map +1 -0
  257. package/dist/particles/card-summary/card-network.d.ts +17 -0
  258. package/dist/particles/card-summary/card-network.js +25 -0
  259. package/dist/particles/card-summary/card-network.js.map +1 -0
  260. package/dist/particles/card-summary/card-summary.d.ts +83 -0
  261. package/dist/particles/card-summary/card-summary.js +188 -0
  262. package/dist/particles/card-summary/card-summary.js.map +1 -0
  263. package/dist/particles/copy-text/copy-text.d.ts +28 -0
  264. package/dist/particles/copy-text/copy-text.js +140 -0
  265. package/dist/particles/copy-text/copy-text.js.map +1 -0
  266. package/dist/particles/document-field/document-field.d.ts +34 -5
  267. package/dist/particles/document-field/document-field.js +115 -19
  268. package/dist/particles/document-field/document-field.js.map +1 -1
  269. package/dist/particles/field/field.js +1 -1
  270. package/dist/particles/field/field.js.map +1 -1
  271. package/dist/particles/footer-link-group/footer-link-group.d.ts +6 -2
  272. package/dist/particles/footer-link-group/footer-link-group.js +18 -7
  273. package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
  274. package/dist/particles/footer-social/footer-social.d.ts +1 -1
  275. package/dist/particles/footer-social/footer-social.js +1 -1
  276. package/dist/particles/footer-social/footer-social.js.map +1 -1
  277. package/dist/particles/incentives/incentives.d.ts +7 -3
  278. package/dist/particles/incentives/incentives.js +8 -3
  279. package/dist/particles/incentives/incentives.js.map +1 -1
  280. package/dist/particles/logo/logo.d.ts +3 -2
  281. package/dist/particles/logo/logo.js +20 -8
  282. package/dist/particles/logo/logo.js.map +1 -1
  283. package/dist/particles/navigation-link/navigation-link.d.ts +2 -3
  284. package/dist/particles/navigation-link/navigation-link.js +4 -4
  285. package/dist/particles/navigation-link/navigation-link.js.map +1 -1
  286. package/dist/particles/navigation-link-list/navigation-link-list.d.ts +6 -2
  287. package/dist/particles/navigation-link-list/navigation-link-list.js +18 -7
  288. package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -1
  289. package/dist/particles/order-details-back/order-details-back.d.ts +28 -0
  290. package/dist/particles/order-details-back/order-details-back.js +52 -0
  291. package/dist/particles/order-details-back/order-details-back.js.map +1 -0
  292. package/dist/particles/order-status-badge/order-status-badge.d.ts +19 -0
  293. package/dist/particles/order-status-badge/order-status-badge.js +50 -0
  294. package/dist/particles/order-status-badge/order-status-badge.js.map +1 -0
  295. package/dist/particles/payment-methods/payment-methods.d.ts +1 -1
  296. package/dist/particles/payment-methods/payment-methods.js +1 -1
  297. package/dist/particles/payment-methods/payment-methods.js.map +1 -1
  298. package/dist/particles/phone-field/phone-field.js +2 -2
  299. package/dist/particles/phone-field/phone-field.js.map +1 -1
  300. package/dist/particles/select/select.js +6 -6
  301. package/dist/particles/select/select.js.map +1 -1
  302. package/dist/particles/toast/toast.d.ts +21 -7
  303. package/dist/particles/toast/toast.js +76 -8
  304. package/dist/particles/toast/toast.js.map +1 -1
  305. package/dist/schema.graphql +1376 -126
  306. package/dist/sdk/actions/address-action-provider.d.ts +16 -0
  307. package/dist/sdk/actions/address-action-provider.js +20 -0
  308. package/dist/sdk/actions/address-action-provider.js.map +1 -0
  309. package/dist/sdk/actions/analytics-action-provider.js +1 -1
  310. package/dist/sdk/actions/index.d.ts +5 -1
  311. package/dist/sdk/actions/index.js +5 -1
  312. package/dist/sdk/actions/locale-action-provider.d.ts +16 -0
  313. package/dist/sdk/actions/locale-action-provider.js +20 -0
  314. package/dist/sdk/actions/locale-action-provider.js.map +1 -0
  315. package/dist/sdk/actions/order-action-provider.d.ts +12 -0
  316. package/dist/sdk/actions/order-action-provider.js +16 -0
  317. package/dist/sdk/actions/order-action-provider.js.map +1 -0
  318. package/dist/sdk/actions/saved-card-action-provider.d.ts +12 -0
  319. package/dist/sdk/actions/saved-card-action-provider.js +16 -0
  320. package/dist/sdk/actions/saved-card-action-provider.js.map +1 -0
  321. package/dist/sdk/actions/types.d.ts +10 -2
  322. package/dist/sdk/address/address-fields.js +38 -0
  323. package/dist/sdk/address/address-fields.js.map +1 -0
  324. package/dist/sdk/address/checkout-readiness.js +17 -0
  325. package/dist/sdk/address/checkout-readiness.js.map +1 -0
  326. package/dist/sdk/address/constants.js +60 -0
  327. package/dist/sdk/address/constants.js.map +1 -0
  328. package/dist/sdk/address/country-display.js +19 -0
  329. package/dist/sdk/address/country-display.js.map +1 -0
  330. package/dist/sdk/address/country-rules.js +30 -0
  331. package/dist/sdk/address/country-rules.js.map +1 -0
  332. package/dist/sdk/address/format-address.js +18 -0
  333. package/dist/sdk/address/format-address.js.map +1 -0
  334. package/dist/sdk/address/iso-countries.js +262 -0
  335. package/dist/sdk/address/iso-countries.js.map +1 -0
  336. package/dist/sdk/address/layouts.js +56 -0
  337. package/dist/sdk/address/layouts.js.map +1 -0
  338. package/dist/sdk/address/messages.js +97 -0
  339. package/dist/sdk/address/messages.js.map +1 -0
  340. package/dist/sdk/address/operations.d.ts +54 -0
  341. package/dist/sdk/address/operations.js +83 -0
  342. package/dist/sdk/address/operations.js.map +1 -0
  343. package/dist/sdk/address/postal-code-lookup-operations.js +23 -0
  344. package/dist/sdk/address/postal-code-lookup-operations.js.map +1 -0
  345. package/dist/sdk/address/postal-code.js +11 -0
  346. package/dist/sdk/address/postal-code.js.map +1 -0
  347. package/dist/sdk/address/schema.js +14 -0
  348. package/dist/sdk/address/schema.js.map +1 -0
  349. package/dist/sdk/address/server-fields.js +25 -0
  350. package/dist/sdk/address/server-fields.js.map +1 -0
  351. package/dist/sdk/address/switch-country.js +57 -0
  352. package/dist/sdk/address/switch-country.js.map +1 -0
  353. package/dist/sdk/address/types.d.ts +26 -0
  354. package/dist/sdk/address/use-address-actions.d.ts +29 -0
  355. package/dist/sdk/address/use-address-actions.js +247 -0
  356. package/dist/sdk/address/use-address-actions.js.map +1 -0
  357. package/dist/sdk/address/use-address-by-postal-code.js +57 -0
  358. package/dist/sdk/address/use-address-by-postal-code.js.map +1 -0
  359. package/dist/sdk/address/validate-address.js +62 -0
  360. package/dist/sdk/address/validate-address.js.map +1 -0
  361. package/dist/sdk/cache/storefront-cache.js +30 -4
  362. package/dist/sdk/cache/storefront-cache.js.map +1 -1
  363. package/dist/sdk/cart/operations.d.ts +2 -1
  364. package/dist/sdk/cart/operations.js +55 -1
  365. package/dist/sdk/cart/operations.js.map +1 -1
  366. package/dist/sdk/cart/optimistic.d.ts +30 -7
  367. package/dist/sdk/cart/optimistic.js +78 -41
  368. package/dist/sdk/cart/optimistic.js.map +1 -1
  369. package/dist/sdk/cart/use-cart-actions.d.ts +7 -0
  370. package/dist/sdk/cart/use-cart-actions.js +61 -15
  371. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  372. package/dist/sdk/cart/use-cart-sync-sales-channel.js +70 -0
  373. package/dist/sdk/cart/use-cart-sync-sales-channel.js.map +1 -0
  374. package/dist/sdk/client/fetch-page-data.d.ts +11 -0
  375. package/dist/sdk/client/fetch-page-data.js +12 -1
  376. package/dist/sdk/client/fetch-page-data.js.map +1 -1
  377. package/dist/sdk/content/create-content-runtime.js +1 -8
  378. package/dist/sdk/content/create-content-runtime.js.map +1 -1
  379. package/dist/sdk/data/failed-fields.js +23 -0
  380. package/dist/sdk/data/failed-fields.js.map +1 -0
  381. package/dist/sdk/data/index.js +2 -2
  382. package/dist/sdk/data/page-reactive-data-root.d.ts +45 -7
  383. package/dist/sdk/data/page-reactive-data-root.js +88 -12
  384. package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
  385. package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
  386. package/dist/sdk/generated/fragment-types.js +2 -0
  387. package/dist/sdk/generated/fragment-types.js.map +1 -1
  388. package/dist/sdk/generated/gql.js +17 -11
  389. package/dist/sdk/generated/gql.js.map +1 -1
  390. package/dist/sdk/generated/graphql.d.ts +185 -46
  391. package/dist/sdk/generated/graphql.js +2587 -155
  392. package/dist/sdk/generated/graphql.js.map +1 -1
  393. package/dist/sdk/i18n/messages/en-US.js +157 -1
  394. package/dist/sdk/i18n/messages/en-US.json +157 -1
  395. package/dist/sdk/i18n/messages/en-US.json.d.ts +156 -0
  396. package/dist/sdk/i18n/messages/es-ES.js +157 -1
  397. package/dist/sdk/i18n/messages/es-ES.json +157 -1
  398. package/dist/sdk/i18n/messages/pt-BR.js +157 -1
  399. package/dist/sdk/i18n/messages/pt-BR.json +157 -1
  400. package/dist/sdk/i18n/provider.js +1 -1
  401. package/dist/sdk/i18n/provider.js.map +1 -1
  402. package/dist/sdk/locale/binding-switch-provider.d.ts +13 -0
  403. package/dist/sdk/locale/binding-switch-provider.js +20 -0
  404. package/dist/sdk/locale/binding-switch-provider.js.map +1 -0
  405. package/dist/sdk/locale/use-locale-actions.d.ts +16 -0
  406. package/dist/sdk/locale/use-locale-actions.js +70 -0
  407. package/dist/sdk/locale/use-locale-actions.js.map +1 -0
  408. package/dist/sdk/navigation/binding-switch.d.ts +39 -0
  409. package/dist/sdk/navigation/binding-switch.js +129 -0
  410. package/dist/sdk/navigation/binding-switch.js.map +1 -0
  411. package/dist/sdk/navigation/current-page.js +30 -0
  412. package/dist/sdk/navigation/current-page.js.map +1 -0
  413. package/dist/sdk/navigation/decode-route-params.d.ts +11 -0
  414. package/dist/sdk/navigation/decode-route-params.js +32 -0
  415. package/dist/sdk/navigation/decode-route-params.js.map +1 -0
  416. package/dist/sdk/navigation/not-found-log.d.ts +28 -0
  417. package/dist/sdk/navigation/not-found-log.js +133 -0
  418. package/dist/sdk/navigation/not-found-log.js.map +1 -0
  419. package/dist/sdk/navigation/path.js +25 -0
  420. package/dist/sdk/navigation/path.js.map +1 -0
  421. package/dist/sdk/navigation/redirect.d.ts +11 -0
  422. package/dist/sdk/navigation/redirect.js +22 -0
  423. package/dist/sdk/navigation/redirect.js.map +1 -0
  424. package/dist/sdk/navigation/report.js +70 -0
  425. package/dist/sdk/navigation/report.js.map +1 -0
  426. package/dist/sdk/navigation/resolve-storefront-href.d.ts +12 -0
  427. package/dist/sdk/navigation/resolve-storefront-href.js +214 -0
  428. package/dist/sdk/navigation/resolve-storefront-href.js.map +1 -0
  429. package/dist/sdk/navigation/route-identity-provider.d.ts +11 -0
  430. package/dist/sdk/navigation/route-identity-provider.js +20 -0
  431. package/dist/sdk/navigation/route-identity-provider.js.map +1 -0
  432. package/dist/sdk/navigation/route-map-provider.d.ts +19 -0
  433. package/dist/sdk/navigation/route-map-provider.js +29 -0
  434. package/dist/sdk/navigation/route-map-provider.js.map +1 -0
  435. package/dist/sdk/navigation/storefront-link.d.ts +16 -0
  436. package/dist/sdk/navigation/storefront-link.js +66 -0
  437. package/dist/sdk/navigation/storefront-link.js.map +1 -0
  438. package/dist/sdk/navigation/types.d.ts +45 -0
  439. package/dist/sdk/navigation/use-storefront-navigation.d.ts +26 -0
  440. package/dist/sdk/navigation/use-storefront-navigation.js +73 -0
  441. package/dist/sdk/navigation/use-storefront-navigation.js.map +1 -0
  442. package/dist/sdk/navigation/use-storefront-route.d.ts +26 -0
  443. package/dist/sdk/navigation/use-storefront-route.js +87 -0
  444. package/dist/sdk/navigation/use-storefront-route.js.map +1 -0
  445. package/dist/sdk/navigation/use-storefront-search-params.d.ts +11 -0
  446. package/dist/sdk/navigation/use-storefront-search-params.js +16 -0
  447. package/dist/sdk/navigation/use-storefront-search-params.js.map +1 -0
  448. package/dist/sdk/orders/completion-badge.d.ts +8 -0
  449. package/dist/sdk/orders/completion-badge.js +47 -0
  450. package/dist/sdk/orders/completion-badge.js.map +1 -0
  451. package/dist/sdk/orders/order-operations.d.ts +19 -0
  452. package/dist/sdk/orders/order-operations.js +21 -0
  453. package/dist/sdk/orders/order-operations.js.map +1 -0
  454. package/dist/sdk/orders/use-order-actions.d.ts +23 -0
  455. package/dist/sdk/orders/use-order-actions.js +62 -0
  456. package/dist/sdk/orders/use-order-actions.js.map +1 -0
  457. package/dist/sdk/payment/gateway-origin.js +26 -13
  458. package/dist/sdk/payment/gateway-origin.js.map +1 -1
  459. package/dist/sdk/payment/gateway.d.ts +14 -2
  460. package/dist/sdk/payment/gateway.js +32 -14
  461. package/dist/sdk/payment/gateway.js.map +1 -1
  462. package/dist/sdk/payment/operations.js +11 -0
  463. package/dist/sdk/payment/operations.js.map +1 -1
  464. package/dist/sdk/payment/submission-registry.d.ts +2 -1
  465. package/dist/sdk/payment/submission-registry.js +12 -8
  466. package/dist/sdk/payment/submission-registry.js.map +1 -1
  467. package/dist/sdk/payment/use-payment-actions.d.ts +5 -3
  468. package/dist/sdk/payment/use-payment-actions.js +5 -2
  469. package/dist/sdk/payment/use-payment-actions.js.map +1 -1
  470. package/dist/sdk/payment/use-place-order.d.ts +6 -3
  471. package/dist/sdk/payment/use-place-order.js +333 -143
  472. package/dist/sdk/payment/use-place-order.js.map +1 -1
  473. package/dist/sdk/saved-cards/operations.d.ts +16 -0
  474. package/dist/sdk/saved-cards/operations.js +41 -0
  475. package/dist/sdk/saved-cards/operations.js.map +1 -0
  476. package/dist/sdk/saved-cards/use-saved-card-actions.d.ts +26 -0
  477. package/dist/sdk/saved-cards/use-saved-card-actions.js +86 -0
  478. package/dist/sdk/saved-cards/use-saved-card-actions.js.map +1 -0
  479. package/dist/sdk/seo/page-alternates.d.ts +57 -0
  480. package/dist/sdk/seo/page-alternates.js +127 -0
  481. package/dist/sdk/seo/page-alternates.js.map +1 -0
  482. package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
  483. package/dist/sdk/shipping/shipping-operations.js +13 -0
  484. package/dist/sdk/shipping/shipping-operations.js.map +1 -1
  485. package/dist/sdk/state/cart.d.ts +9 -2
  486. package/dist/sdk/state/cart.js +9 -2
  487. package/dist/sdk/state/cart.js.map +1 -1
  488. package/dist/utils/own-value.js +19 -0
  489. package/dist/utils/own-value.js.map +1 -0
  490. package/dist/utils/safe-href.d.ts +4 -4
  491. package/dist/utils/safe-href.js +31 -22
  492. package/dist/utils/safe-href.js.map +1 -1
  493. package/package.json +5 -1
  494. package/skills/storefront-asset/SKILL.md +111 -0
  495. package/skills/storefront-asset/references/api-side.md +153 -0
  496. package/skills/storefront-asset/references/findings.md +40 -0
  497. package/skills/storefront-asset/references/ui-side.md +94 -0
  498. package/src/styles/tailwind.css +28 -2
@@ -0,0 +1,408 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import { defineContentType } from "../../core/dist/define-content-type.js";
4
+ import "../../core/dist/index.js";
5
+ import { useStorefrontFormatters } from "../../sdk/format/client.js";
6
+ import { useIntl } from "../../sdk/i18n/client.js";
7
+ import { AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger } from "../../particles/accordion/accordion.js";
8
+ import { createContext, useContext, useMemo } from "react";
9
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
+ //#region src/matter/order-delivery-group/order-delivery-group.tsx
11
+ const fragment = `
12
+ fragment OrderDeliveryGroupData on Query {
13
+ customerOrder(id: $orderId) {
14
+ deliveryOptions {
15
+ selectedSla
16
+ deliveryChannel
17
+ shippingEstimateDate
18
+ items {
19
+ id
20
+ name
21
+ quantity
22
+ image {
23
+ url
24
+ altText
25
+ }
26
+ sellingPrice {
27
+ amount
28
+ currencyCode
29
+ }
30
+ listPrice {
31
+ amount
32
+ currencyCode
33
+ }
34
+ total {
35
+ amount
36
+ currencyCode
37
+ }
38
+ tax {
39
+ amount
40
+ currencyCode
41
+ }
42
+ customFields {
43
+ name
44
+ value
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
50
+ `;
51
+ const OrderDeliveryGroupContent = defineContentType({
52
+ id: "order-delivery-group",
53
+ title: "Order Delivery Group",
54
+ description: "The labels of a delivery group. The item-count sentences keep {count}: one for a single item, the other for the rest.",
55
+ schema: {
56
+ type: "object",
57
+ additionalProperties: false,
58
+ properties: {
59
+ label: {
60
+ type: "string",
61
+ title: "Accessible name"
62
+ },
63
+ delivery: {
64
+ type: "string",
65
+ title: "Delivery"
66
+ },
67
+ pickup: {
68
+ type: "string",
69
+ title: "Pickup"
70
+ },
71
+ estimate: {
72
+ type: "string",
73
+ title: "Estimated delivery"
74
+ },
75
+ itemsOne: {
76
+ type: "string",
77
+ title: "One item",
78
+ description: "Keep the placeholder {count}."
79
+ },
80
+ itemsOther: {
81
+ type: "string",
82
+ title: "Many items",
83
+ description: "Keep the placeholder {count}."
84
+ },
85
+ subtotal: {
86
+ type: "string",
87
+ title: "Subtotal"
88
+ },
89
+ quantity: {
90
+ type: "string",
91
+ title: "Quantity"
92
+ },
93
+ unitPrice: {
94
+ type: "string",
95
+ title: "Unit price"
96
+ },
97
+ listPrice: {
98
+ type: "string",
99
+ title: "List price"
100
+ },
101
+ total: {
102
+ type: "string",
103
+ title: "Total"
104
+ },
105
+ tax: {
106
+ type: "string",
107
+ title: "Tax"
108
+ }
109
+ }
110
+ }
111
+ });
112
+ const OrderDeliveryOptionContext = createContext(null);
113
+ /** The option index published by the enclosing `OrderDeliveryGroup`, or null outside one. */
114
+ function useOrderDeliveryOption() {
115
+ return useContext(OrderDeliveryOptionContext);
116
+ }
117
+ const ESTIMATE_FORMAT = {
118
+ year: "numeric",
119
+ month: "numeric",
120
+ day: "numeric",
121
+ hour: "numeric",
122
+ minute: "2-digit"
123
+ };
124
+ function estimateInstant(value) {
125
+ if (!value?.trim()) return null;
126
+ const date = new Date(value);
127
+ return Number.isNaN(date.getTime()) ? null : date;
128
+ }
129
+ function authored(value) {
130
+ return value?.trim() || void 0;
131
+ }
132
+ function sentence(value, fallback) {
133
+ return authored(value) ?? fallback;
134
+ }
135
+ const OrderDeliveryGroupDefinition = defineComponent({
136
+ name: "OrderDeliveryGroup",
137
+ importPath: "@vtex/faststore/components",
138
+ component: OrderDeliveryGroup,
139
+ content: OrderDeliveryGroupContent,
140
+ fragment,
141
+ fetchStrategy: "static",
142
+ skeleton: OrderDeliveryGroupSkeleton,
143
+ editor: {
144
+ label: "Order Delivery Group",
145
+ category: "content"
146
+ },
147
+ schema: { label: {
148
+ type: "string",
149
+ label: "Accessible name"
150
+ } },
151
+ providesContext: "order-delivery-option",
152
+ guideline: "The products of one order grouped by delivery option, one collapsible group per option with the option name, the delivery estimate when the order has one, the item count, and the subtotal in its header. Labels are content; a blank field keeps the catalogue. A single option arrives open; two or more arrive closed. Reads customerOrder by the orderId route segment; place it once on the order details page. Children such as OrderDeliveryAddress render once per option, after its rows."
153
+ });
154
+ function moneyAmount(money) {
155
+ if (!money || typeof money.amount === "string" && money.amount.trim() === "") return null;
156
+ const value = typeof money.amount === "number" ? money.amount : Number(money.amount);
157
+ return Number.isFinite(value) ? value : null;
158
+ }
159
+ function optionValue(index) {
160
+ return `option-${index}`;
161
+ }
162
+ function initialOpen(options) {
163
+ return options.length === 1 ? [optionValue(0)] : [];
164
+ }
165
+ function itemCount(items) {
166
+ return items.reduce((sum, line) => sum + line.quantity, 0);
167
+ }
168
+ /** The sum of the line totals the API returned, in cents, in the currency of the first total. */
169
+ function subtotal(items) {
170
+ let cents = 0;
171
+ let currencyCode = null;
172
+ for (const line of items) {
173
+ if (!line.total) continue;
174
+ const amount = moneyAmount(line.total);
175
+ if (amount == null) continue;
176
+ cents += Math.round(amount * 100);
177
+ currencyCode ??= line.total.currencyCode;
178
+ }
179
+ return currencyCode ? {
180
+ amount: cents / 100,
181
+ currencyCode
182
+ } : null;
183
+ }
184
+ function OrderDeliveryGroupSkeleton({ className, ...props }) {
185
+ return /* @__PURE__ */ jsxs("div", {
186
+ ...props,
187
+ className,
188
+ "data-fs-order-delivery-group-skeleton": "",
189
+ "aria-hidden": "true",
190
+ children: [/* @__PURE__ */ jsx("span", { "data-fs-order-delivery-group-skeleton-option": "" }), /* @__PURE__ */ jsx("span", { "data-fs-order-delivery-group-skeleton-option": "" })]
191
+ });
192
+ }
193
+ function deliveryLabels(content, label, intl) {
194
+ const itemsOne = authored(content?.itemsOne);
195
+ const itemsOther = authored(content?.itemsOther);
196
+ return {
197
+ region: authored(content?.label) ?? (label?.trim() || intl.formatMessage({ id: "fs/order-delivery-group.label" })),
198
+ delivery: sentence(content?.delivery, intl.formatMessage({ id: "fs/order-delivery-group.channel.delivery" })),
199
+ pickup: sentence(content?.pickup, intl.formatMessage({ id: "fs/order-delivery-group.channel.pickup-in-point" })),
200
+ estimate: sentence(content?.estimate, intl.formatMessage({ id: "fs/order-delivery-group.estimate" })),
201
+ subtotal: sentence(content?.subtotal, intl.formatMessage({ id: "fs/order-delivery-group.subtotal" })),
202
+ quantity: sentence(content?.quantity, intl.formatMessage({ id: "fs/order-delivery-group.quantity" })),
203
+ unitPrice: sentence(content?.unitPrice, intl.formatMessage({ id: "fs/order-delivery-group.unit-price" })),
204
+ listPrice: sentence(content?.listPrice, intl.formatMessage({ id: "fs/order-delivery-group.list-price" })),
205
+ total: sentence(content?.total, intl.formatMessage({ id: "fs/order-delivery-group.total" })),
206
+ tax: sentence(content?.tax, intl.formatMessage({ id: "fs/order-delivery-group.tax" })),
207
+ items(count) {
208
+ const template = count === 1 ? itemsOne : itemsOther;
209
+ if (template) return template.replaceAll("{count}", String(count));
210
+ return intl.formatMessage({ id: "fs/order-delivery-group.items" }, { count });
211
+ }
212
+ };
213
+ }
214
+ function OrderDeliveryGroup({ label, $content, $data, children, className, ref }) {
215
+ const intl = useIntl();
216
+ const options = $data?.deliveryOptions ?? [];
217
+ const labels = deliveryLabels($content, label, intl);
218
+ if (options.length === 0) return null;
219
+ return /* @__PURE__ */ jsx("section", {
220
+ ref,
221
+ "aria-label": labels.region,
222
+ className,
223
+ "data-fs-order-delivery-group": "",
224
+ "data-fs-order-delivery-group-count": options.length,
225
+ children: /* @__PURE__ */ jsx(AccordionRoot, {
226
+ openMultiple: true,
227
+ defaultValue: initialOpen(options),
228
+ children: options.map((option, index) => /* @__PURE__ */ jsx(DeliveryOption, {
229
+ value: optionValue(index),
230
+ index,
231
+ option,
232
+ labels,
233
+ children
234
+ }, optionValue(index)))
235
+ })
236
+ });
237
+ }
238
+ function channelName(channel, labels) {
239
+ if (channel === "delivery") return labels.delivery;
240
+ if (channel === "pickup-in-point") return labels.pickup;
241
+ return null;
242
+ }
243
+ function DeliveryOption({ value, index, option, labels, children }) {
244
+ const { formatMoney, formatDate } = useStorefrontFormatters();
245
+ const name = option.selectedSla?.trim() || channelName(option.deliveryChannel, labels);
246
+ const total = subtotal(option.items);
247
+ const estimate = estimateInstant(option.shippingEstimateDate);
248
+ const optionContext = useMemo(() => ({ index }), [index]);
249
+ return /* @__PURE__ */ jsxs(AccordionItem, {
250
+ value,
251
+ "data-fs-order-delivery-group-option": "",
252
+ "data-fs-order-delivery-group-option-channel": option.deliveryChannel ?? void 0,
253
+ children: [/* @__PURE__ */ jsx(AccordionHeader, {
254
+ "data-fs-order-delivery-group-option-header": "",
255
+ children: /* @__PURE__ */ jsxs(AccordionTrigger, {
256
+ "data-fs-order-delivery-group-option-trigger": "",
257
+ children: [
258
+ name ? /* @__PURE__ */ jsx("span", {
259
+ "data-fs-order-delivery-group-option-name": "",
260
+ children: name
261
+ }) : null,
262
+ estimate ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
263
+ "data-fs-order-delivery-group-option-estimate-label": "",
264
+ children: labels.estimate
265
+ }), /* @__PURE__ */ jsx("time", {
266
+ dateTime: option.shippingEstimateDate ?? void 0,
267
+ "data-fs-order-delivery-group-option-estimate": "",
268
+ children: formatDate(estimate, ESTIMATE_FORMAT)
269
+ })] }) : null,
270
+ /* @__PURE__ */ jsx("span", {
271
+ "data-fs-order-delivery-group-option-items": "",
272
+ children: labels.items(itemCount(option.items))
273
+ }),
274
+ total ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
275
+ "data-fs-order-delivery-group-option-subtotal-label": "",
276
+ children: labels.subtotal
277
+ }), /* @__PURE__ */ jsx("span", {
278
+ "data-fs-order-delivery-group-option-subtotal": "",
279
+ children: formatMoney(total.amount, { currency: total.currencyCode })
280
+ })] }) : null
281
+ ]
282
+ })
283
+ }), /* @__PURE__ */ jsxs(AccordionPanel, {
284
+ "data-fs-order-delivery-group-option-panel": "",
285
+ children: [/* @__PURE__ */ jsx("ul", {
286
+ "data-fs-order-delivery-group-rows": "",
287
+ children: option.items.map((line) => /* @__PURE__ */ jsx(DeliveryRow, {
288
+ line,
289
+ labels
290
+ }, line.id))
291
+ }), children ? /* @__PURE__ */ jsx(OrderDeliveryOptionContext.Provider, {
292
+ value: optionContext,
293
+ children
294
+ }) : null]
295
+ })]
296
+ });
297
+ }
298
+ const MONEY_FACTS = {
299
+ "unit-price": {
300
+ field: "unitPrice",
301
+ label: { "data-fs-order-delivery-group-row-unit-price-label": "" },
302
+ value: { "data-fs-order-delivery-group-row-unit-price": "" }
303
+ },
304
+ "list-price": {
305
+ field: "listPrice",
306
+ label: { "data-fs-order-delivery-group-row-list-price-label": "" },
307
+ value: { "data-fs-order-delivery-group-row-list-price": "" }
308
+ },
309
+ total: {
310
+ field: "total",
311
+ label: { "data-fs-order-delivery-group-row-total-label": "" },
312
+ value: { "data-fs-order-delivery-group-row-total": "" }
313
+ },
314
+ tax: {
315
+ field: "tax",
316
+ label: { "data-fs-order-delivery-group-row-tax-label": "" },
317
+ value: { "data-fs-order-delivery-group-row-tax": "" }
318
+ }
319
+ };
320
+ function MoneyFact({ kind, money, labels }) {
321
+ const { formatMoney } = useStorefrontFormatters();
322
+ const amount = moneyAmount(money);
323
+ if (amount == null) return null;
324
+ const fact = MONEY_FACTS[kind];
325
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
326
+ ...fact.label,
327
+ children: labels[fact.field]
328
+ }), /* @__PURE__ */ jsx("span", {
329
+ ...fact.value,
330
+ children: formatMoney(amount, { currency: money.currencyCode })
331
+ })] });
332
+ }
333
+ function DeliveryRow({ line, labels }) {
334
+ const listPrice = moneyAmount(line.listPrice) === moneyAmount(line.sellingPrice) ? null : line.listPrice;
335
+ return /* @__PURE__ */ jsxs("li", {
336
+ "data-fs-order-delivery-group-row": "",
337
+ children: [
338
+ line.image ? /* @__PURE__ */ jsx("img", {
339
+ src: line.image.url,
340
+ alt: line.image.altText ?? line.name,
341
+ "data-fs-order-delivery-group-row-image": "",
342
+ "data-fs-image": ""
343
+ }) : null,
344
+ /* @__PURE__ */ jsxs("span", {
345
+ "data-fs-order-delivery-group-row-details": "",
346
+ children: [
347
+ /* @__PURE__ */ jsx("span", {
348
+ "data-fs-order-delivery-group-row-name": "",
349
+ children: line.name
350
+ }),
351
+ line.customFields.map((field) => /* @__PURE__ */ jsxs("span", {
352
+ "data-fs-order-delivery-group-row-custom-field": "",
353
+ children: [/* @__PURE__ */ jsx("span", {
354
+ "data-fs-order-delivery-group-row-custom-field-name": "",
355
+ children: field.name
356
+ }), /* @__PURE__ */ jsx("span", {
357
+ "data-fs-order-delivery-group-row-custom-field-value": "",
358
+ children: field.value
359
+ })]
360
+ }, field.name)),
361
+ /* @__PURE__ */ jsxs("span", {
362
+ "data-fs-order-delivery-group-row-fact": "",
363
+ children: [/* @__PURE__ */ jsx("span", {
364
+ "data-fs-order-delivery-group-row-quantity-label": "",
365
+ children: labels.quantity
366
+ }), /* @__PURE__ */ jsx("span", {
367
+ "data-fs-order-delivery-group-row-quantity": "",
368
+ children: line.quantity
369
+ })]
370
+ }),
371
+ line.sellingPrice ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
372
+ kind: "unit-price",
373
+ money: line.sellingPrice,
374
+ labels
375
+ }) }) : null,
376
+ listPrice ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
377
+ kind: "list-price",
378
+ money: listPrice,
379
+ labels
380
+ }) }) : null,
381
+ line.tax ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
382
+ kind: "tax",
383
+ money: line.tax,
384
+ labels
385
+ }) }) : null
386
+ ]
387
+ }),
388
+ line.total ? /* @__PURE__ */ jsx("span", {
389
+ "data-fs-order-delivery-group-row-aside": "",
390
+ children: /* @__PURE__ */ jsx(MoneyFact, {
391
+ kind: "total",
392
+ money: line.total,
393
+ labels
394
+ })
395
+ }) : null
396
+ ]
397
+ });
398
+ }
399
+ function FactLine({ children }) {
400
+ return /* @__PURE__ */ jsx("span", {
401
+ "data-fs-order-delivery-group-row-fact": "",
402
+ children
403
+ });
404
+ }
405
+ //#endregion
406
+ export { OrderDeliveryGroup, OrderDeliveryGroupContent, OrderDeliveryGroupDefinition, OrderDeliveryGroupSkeleton, useOrderDeliveryOption };
407
+
408
+ //# sourceMappingURL=order-delivery-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-delivery-group.js","names":[],"sources":["../../../src/matter/order-delivery-group/order-delivery-group.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport { type ComponentPropsWithRef, createContext, type ReactNode, type Ref, useContext, useMemo } from 'react';\nimport {\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n AccordionRoot,\n AccordionTrigger,\n} from '../../particles/accordion/accordion.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderDeliveryGroupData on Query {\n customerOrder(id: $orderId) {\n deliveryOptions {\n selectedSla\n deliveryChannel\n shippingEstimateDate\n items {\n id\n name\n quantity\n image {\n url\n altText\n }\n sellingPrice {\n amount\n currencyCode\n }\n listPrice {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n tax {\n amount\n currencyCode\n }\n customFields {\n name\n value\n }\n }\n }\n }\n }\n`;\n\nexport const OrderDeliveryGroupContent = defineContentType({\n id: 'order-delivery-group',\n title: 'Order Delivery Group',\n description:\n 'The labels of a delivery group. The item-count sentences keep {count}: one for a single item, the other for the rest.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Accessible name' },\n delivery: { type: 'string', title: 'Delivery' },\n pickup: { type: 'string', title: 'Pickup' },\n estimate: { type: 'string', title: 'Estimated delivery' },\n itemsOne: { type: 'string', title: 'One item', description: 'Keep the placeholder {count}.' },\n itemsOther: { type: 'string', title: 'Many items', description: 'Keep the placeholder {count}.' },\n subtotal: { type: 'string', title: 'Subtotal' },\n quantity: { type: 'string', title: 'Quantity' },\n unitPrice: { type: 'string', title: 'Unit price' },\n listPrice: { type: 'string', title: 'List price' },\n total: { type: 'string', title: 'Total' },\n tax: { type: 'string', title: 'Tax' },\n },\n },\n});\n\nexport type OrderDeliveryGroupContentValue = ContentValue<typeof OrderDeliveryGroupContent>;\n\nexport type OrderDeliveryMoney = { amount: string | number; currencyCode: string };\n\nexport type OrderDeliveryItemData = {\n id: string;\n name: string;\n quantity: number;\n image: { url: string; altText: string | null } | null;\n sellingPrice: OrderDeliveryMoney | null;\n listPrice: OrderDeliveryMoney | null;\n total: OrderDeliveryMoney | null;\n tax: OrderDeliveryMoney | null;\n customFields: Array<{ name: string; value: string }>;\n};\n\nexport type OrderDeliveryOptionData = {\n selectedSla: string | null;\n deliveryChannel: string | null;\n shippingEstimateDate: string | null;\n items: OrderDeliveryItemData[];\n};\n\n/** Unwrapped `CustomerOrder` slice. Null when the id does not resolve to the shopper's order. */\nexport type OrderDeliveryGroupData = {\n deliveryOptions: OrderDeliveryOptionData[];\n} | null;\n\nexport type OrderDeliveryGroupProps = Readonly<{\n /** Accessible name of the section. Content wins, then this prop, then the catalogue. */\n label?: string;\n $content?: OrderDeliveryGroupContentValue;\n $data?: OrderDeliveryGroupData;\n /** Rendered once per option, after its rows, inside the `order-delivery-option` context. */\n children?: ReactNode;\n className?: string;\n ref?: Ref<HTMLElement>;\n}>;\n\n/** Which delivery option the children of `OrderDeliveryGroup` are rendering inside. */\nexport type OrderDeliveryOptionContextValue = Readonly<{ index: number }>;\n\nconst OrderDeliveryOptionContext = createContext<OrderDeliveryOptionContextValue | null>(null);\n\n/** The option index published by the enclosing `OrderDeliveryGroup`, or null outside one. */\nexport function useOrderDeliveryOption(): OrderDeliveryOptionContextValue | null {\n return useContext(OrderDeliveryOptionContext);\n}\n\nconst ESTIMATE_FORMAT: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n};\n\nfunction estimateInstant(value: string | null | undefined): Date | null {\n if (!value?.trim()) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\ntype DeliveryLabels = {\n region: string;\n delivery: string;\n pickup: string;\n estimate: string;\n subtotal: string;\n quantity: string;\n unitPrice: string;\n listPrice: string;\n total: string;\n tax: string;\n items: (count: number) => string;\n};\n\nfunction authored(value: string | undefined): string | undefined {\n const trimmed = value?.trim();\n return trimmed || undefined;\n}\n\nfunction sentence(value: string | undefined, fallback: string): string {\n return authored(value) ?? fallback;\n}\n\nexport const OrderDeliveryGroupDefinition = defineComponent<OrderDeliveryGroupProps>({\n name: 'OrderDeliveryGroup',\n importPath: '@vtex/faststore/components',\n component: OrderDeliveryGroup,\n content: OrderDeliveryGroupContent,\n fragment,\n fetchStrategy: 'static',\n skeleton: OrderDeliveryGroupSkeleton,\n editor: { label: 'Order Delivery Group', category: 'content' },\n schema: {\n label: { type: 'string', label: 'Accessible name' },\n },\n providesContext: 'order-delivery-option',\n guideline:\n 'The products of one order grouped by delivery option, one collapsible group per option with the option name, the delivery estimate when the order has one, the item count, and the subtotal in its header. Labels are content; a blank field keeps the catalogue. A single option arrives open; two or more arrive closed. Reads customerOrder by the orderId route segment; place it once on the order details page. Children such as OrderDeliveryAddress render once per option, after its rows.',\n});\n\nfunction moneyAmount(money: OrderDeliveryMoney | null): number | null {\n // Number('') and Number(' ') are 0, which would print a blank upstream amount as a real zero.\n if (!money || (typeof money.amount === 'string' && money.amount.trim() === '')) {\n return null;\n }\n const value = typeof money.amount === 'number' ? money.amount : Number(money.amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction optionValue(index: number): string {\n return `option-${index}`;\n}\n\nfunction initialOpen(options: OrderDeliveryOptionData[]): string[] {\n return options.length === 1 ? [optionValue(0)] : [];\n}\n\nfunction itemCount(items: OrderDeliveryItemData[]): number {\n return items.reduce((sum, line) => sum + line.quantity, 0);\n}\n\n/** The sum of the line totals the API returned, in cents, in the currency of the first total. */\nfunction subtotal(items: OrderDeliveryItemData[]): { amount: number; currencyCode: string } | null {\n let cents = 0;\n let currencyCode: string | null = null;\n for (const line of items) {\n if (!line.total) {\n continue;\n }\n const amount = moneyAmount(line.total);\n if (amount == null) {\n continue;\n }\n cents += Math.round(amount * 100);\n currencyCode ??= line.total.currencyCode;\n }\n return currencyCode ? { amount: cents / 100, currencyCode } : null;\n}\n\nexport function OrderDeliveryGroupSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-delivery-group-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-delivery-group-skeleton-option=\"\" />\n <span data-fs-order-delivery-group-skeleton-option=\"\" />\n </div>\n );\n}\n\nfunction deliveryLabels(\n content: OrderDeliveryGroupContentValue | undefined,\n label: string | undefined,\n intl: ReturnType<typeof useIntl>,\n): DeliveryLabels {\n const itemsOne = authored(content?.itemsOne);\n const itemsOther = authored(content?.itemsOther);\n return {\n region: authored(content?.label) ?? (label?.trim() || intl.formatMessage({ id: 'fs/order-delivery-group.label' })),\n delivery: sentence(content?.delivery, intl.formatMessage({ id: 'fs/order-delivery-group.channel.delivery' })),\n pickup: sentence(content?.pickup, intl.formatMessage({ id: 'fs/order-delivery-group.channel.pickup-in-point' })),\n estimate: sentence(content?.estimate, intl.formatMessage({ id: 'fs/order-delivery-group.estimate' })),\n subtotal: sentence(content?.subtotal, intl.formatMessage({ id: 'fs/order-delivery-group.subtotal' })),\n quantity: sentence(content?.quantity, intl.formatMessage({ id: 'fs/order-delivery-group.quantity' })),\n unitPrice: sentence(content?.unitPrice, intl.formatMessage({ id: 'fs/order-delivery-group.unit-price' })),\n listPrice: sentence(content?.listPrice, intl.formatMessage({ id: 'fs/order-delivery-group.list-price' })),\n total: sentence(content?.total, intl.formatMessage({ id: 'fs/order-delivery-group.total' })),\n tax: sentence(content?.tax, intl.formatMessage({ id: 'fs/order-delivery-group.tax' })),\n items(count: number) {\n const template = count === 1 ? itemsOne : itemsOther;\n if (template) {\n return template.replaceAll('{count}', String(count));\n }\n return intl.formatMessage({ id: 'fs/order-delivery-group.items' }, { count });\n },\n };\n}\n\nexport function OrderDeliveryGroup({ label, $content, $data, children, className, ref }: OrderDeliveryGroupProps) {\n const intl = useIntl();\n const options = $data?.deliveryOptions ?? [];\n const labels = deliveryLabels($content, label, intl);\n\n if (options.length === 0) {\n return null;\n }\n\n return (\n <section\n ref={ref}\n aria-label={labels.region}\n className={className}\n data-fs-order-delivery-group=\"\"\n data-fs-order-delivery-group-count={options.length}\n >\n <AccordionRoot openMultiple defaultValue={initialOpen(options)}>\n {options.map((option, index) => (\n <DeliveryOption\n key={optionValue(index)}\n value={optionValue(index)}\n index={index}\n option={option}\n labels={labels}\n >\n {children}\n </DeliveryOption>\n ))}\n </AccordionRoot>\n </section>\n );\n}\n\ntype DeliveryOptionProps = Readonly<{\n value: string;\n index: number;\n option: OrderDeliveryOptionData;\n labels: DeliveryLabels;\n children?: ReactNode;\n}>;\n\nfunction channelName(channel: string | null, labels: DeliveryLabels): string | null {\n if (channel === 'delivery') {\n return labels.delivery;\n }\n if (channel === 'pickup-in-point') {\n return labels.pickup;\n }\n return null;\n}\n\nfunction DeliveryOption({ value, index, option, labels, children }: DeliveryOptionProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const name = option.selectedSla?.trim() || channelName(option.deliveryChannel, labels);\n const total = subtotal(option.items);\n const estimate = estimateInstant(option.shippingEstimateDate);\n const optionContext = useMemo(() => ({ index }), [index]);\n\n return (\n <AccordionItem\n value={value}\n data-fs-order-delivery-group-option=\"\"\n data-fs-order-delivery-group-option-channel={option.deliveryChannel ?? undefined}\n >\n <AccordionHeader data-fs-order-delivery-group-option-header=\"\">\n <AccordionTrigger data-fs-order-delivery-group-option-trigger=\"\">\n {name ? <span data-fs-order-delivery-group-option-name=\"\">{name}</span> : null}\n {estimate ? (\n <>\n <span data-fs-order-delivery-group-option-estimate-label=\"\">{labels.estimate}</span>\n <time dateTime={option.shippingEstimateDate ?? undefined} data-fs-order-delivery-group-option-estimate=\"\">\n {formatDate(estimate, ESTIMATE_FORMAT)}\n </time>\n </>\n ) : null}\n <span data-fs-order-delivery-group-option-items=\"\">{labels.items(itemCount(option.items))}</span>\n {total ? (\n <>\n <span data-fs-order-delivery-group-option-subtotal-label=\"\">{labels.subtotal}</span>\n <span data-fs-order-delivery-group-option-subtotal=\"\">\n {formatMoney(total.amount, { currency: total.currencyCode })}\n </span>\n </>\n ) : null}\n </AccordionTrigger>\n </AccordionHeader>\n <AccordionPanel data-fs-order-delivery-group-option-panel=\"\">\n <ul data-fs-order-delivery-group-rows=\"\">\n {option.items.map((line) => (\n <DeliveryRow key={line.id} line={line} labels={labels} />\n ))}\n </ul>\n {children ? (\n <OrderDeliveryOptionContext.Provider value={optionContext}>{children}</OrderDeliveryOptionContext.Provider>\n ) : null}\n </AccordionPanel>\n </AccordionItem>\n );\n}\n\ntype MoneyLabel = 'unitPrice' | 'listPrice' | 'total' | 'tax';\n\nconst MONEY_FACTS = {\n 'unit-price': {\n field: 'unitPrice',\n label: { 'data-fs-order-delivery-group-row-unit-price-label': '' },\n value: { 'data-fs-order-delivery-group-row-unit-price': '' },\n },\n 'list-price': {\n field: 'listPrice',\n label: { 'data-fs-order-delivery-group-row-list-price-label': '' },\n value: { 'data-fs-order-delivery-group-row-list-price': '' },\n },\n total: {\n field: 'total',\n label: { 'data-fs-order-delivery-group-row-total-label': '' },\n value: { 'data-fs-order-delivery-group-row-total': '' },\n },\n tax: {\n field: 'tax',\n label: { 'data-fs-order-delivery-group-row-tax-label': '' },\n value: { 'data-fs-order-delivery-group-row-tax': '' },\n },\n} as const satisfies Record<string, { field: MoneyLabel; label: object; value: object }>;\n\ntype MoneyFactProps = Readonly<{\n kind: keyof typeof MONEY_FACTS;\n money: OrderDeliveryMoney;\n labels: DeliveryLabels;\n}>;\n\nfunction MoneyFact({ kind, money, labels }: MoneyFactProps) {\n const { formatMoney } = useStorefrontFormatters();\n const amount = moneyAmount(money);\n if (amount == null) {\n return null;\n }\n const fact = MONEY_FACTS[kind];\n\n return (\n <>\n <span {...fact.label}>{labels[fact.field]}</span>\n <span {...fact.value}>{formatMoney(amount, { currency: money.currencyCode })}</span>\n </>\n );\n}\n\nfunction DeliveryRow({ line, labels }: Readonly<{ line: OrderDeliveryItemData; labels: DeliveryLabels }>) {\n const listPrice = moneyAmount(line.listPrice) === moneyAmount(line.sellingPrice) ? null : line.listPrice;\n\n return (\n <li data-fs-order-delivery-group-row=\"\">\n {line.image ? (\n // biome-ignore lint/performance/noImgElement: order line image URL is dynamic; matter stays Next-agnostic.\n <img\n src={line.image.url}\n alt={line.image.altText ?? line.name}\n data-fs-order-delivery-group-row-image=\"\"\n data-fs-image=\"\"\n />\n ) : null}\n <span data-fs-order-delivery-group-row-details=\"\">\n <span data-fs-order-delivery-group-row-name=\"\">{line.name}</span>\n {line.customFields.map((field) => (\n <span key={field.name} data-fs-order-delivery-group-row-custom-field=\"\">\n <span data-fs-order-delivery-group-row-custom-field-name=\"\">{field.name}</span>\n <span data-fs-order-delivery-group-row-custom-field-value=\"\">{field.value}</span>\n </span>\n ))}\n <span data-fs-order-delivery-group-row-fact=\"\">\n <span data-fs-order-delivery-group-row-quantity-label=\"\">{labels.quantity}</span>\n <span data-fs-order-delivery-group-row-quantity=\"\">{line.quantity}</span>\n </span>\n {line.sellingPrice ? (\n <FactLine>\n <MoneyFact kind=\"unit-price\" money={line.sellingPrice} labels={labels} />\n </FactLine>\n ) : null}\n {listPrice ? (\n <FactLine>\n <MoneyFact kind=\"list-price\" money={listPrice} labels={labels} />\n </FactLine>\n ) : null}\n {line.tax ? (\n <FactLine>\n <MoneyFact kind=\"tax\" money={line.tax} labels={labels} />\n </FactLine>\n ) : null}\n </span>\n {line.total ? (\n <span data-fs-order-delivery-group-row-aside=\"\">\n <MoneyFact kind=\"total\" money={line.total} labels={labels} />\n </span>\n ) : null}\n </li>\n );\n}\n\nfunction FactLine({ children }: Readonly<{ children: ReactNode }>) {\n return <span data-fs-order-delivery-group-row-fact=\"\">{children}</span>;\n}\n"],"mappings":";;;;;;;;;;AAcA,MAAM,WAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyC/B,MAAa,4BAA4B,kBAAkB;CACzD,IAAI;CACJ,OAAO;CACP,aACE;CACF,QAAQ;EACN,MAAM;EACN,sBAAsB;EACtB,YAAY;GACV,OAAO;IAAE,MAAM;IAAU,OAAO;GAAkB;GAClD,UAAU;IAAE,MAAM;IAAU,OAAO;GAAW;GAC9C,QAAQ;IAAE,MAAM;IAAU,OAAO;GAAS;GAC1C,UAAU;IAAE,MAAM;IAAU,OAAO;GAAqB;GACxD,UAAU;IAAE,MAAM;IAAU,OAAO;IAAY,aAAa;GAAgC;GAC5F,YAAY;IAAE,MAAM;IAAU,OAAO;IAAc,aAAa;GAAgC;GAChG,UAAU;IAAE,MAAM;IAAU,OAAO;GAAW;GAC9C,UAAU;IAAE,MAAM;IAAU,OAAO;GAAW;GAC9C,WAAW;IAAE,MAAM;IAAU,OAAO;GAAa;GACjD,WAAW;IAAE,MAAM;IAAU,OAAO;GAAa;GACjD,OAAO;IAAE,MAAM;IAAU,OAAO;GAAQ;GACxC,KAAK;IAAE,MAAM;IAAU,OAAO;GAAM;EACtC;CACF;AACF,CAAC;AA4CD,MAAM,6BAA6B,cAAsD,IAAI;;AAG7F,SAAgB,yBAAiE;CAC/E,OAAO,WAAW,0BAA0B;AAC9C;AAEA,MAAM,kBAA8C;CAClD,MAAM;CACN,OAAO;CACP,KAAK;CACL,MAAM;CACN,QAAQ;AACV;AAEA,SAAS,gBAAgB,OAA+C;CACtE,IAAI,CAAC,OAAO,KAAK,GACf,OAAO;CAET,MAAM,OAAO,IAAI,KAAK,KAAK;CAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAC/C;AAgBA,SAAS,SAAS,OAA+C;CAE/D,OADgB,OAAO,KAAK,KACV,KAAA;AACpB;AAEA,SAAS,SAAS,OAA2B,UAA0B;CACrE,OAAO,SAAS,KAAK,KAAK;AAC5B;AAEA,MAAa,+BAA+B,gBAAyC;CACnF,MAAM;CACN,YAAY;CACZ,WAAW;CACX,SAAS;CACT;CACA,eAAe;CACf,UAAU;CACV,QAAQ;EAAE,OAAO;EAAwB,UAAU;CAAU;CAC7D,QAAQ,EACN,OAAO;EAAE,MAAM;EAAU,OAAO;CAAkB,EACpD;CACA,iBAAiB;CACjB,WACE;AACJ,CAAC;AAED,SAAS,YAAY,OAAiD;CAEpE,IAAI,CAAC,SAAU,OAAO,MAAM,WAAW,YAAY,MAAM,OAAO,KAAK,MAAM,IACzE,OAAO;CAET,MAAM,QAAQ,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS,OAAO,MAAM,MAAM;CACnF,OAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEA,SAAS,YAAY,OAAuB;CAC1C,OAAO,UAAU;AACnB;AAEA,SAAS,YAAY,SAA8C;CACjE,OAAO,QAAQ,WAAW,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;AACpD;AAEA,SAAS,UAAU,OAAwC;CACzD,OAAO,MAAM,QAAQ,KAAK,SAAS,MAAM,KAAK,UAAU,CAAC;AAC3D;;AAGA,SAAS,SAAS,OAAiF;CACjG,IAAI,QAAQ;CACZ,IAAI,eAA8B;CAClC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,KAAK,OACR;EAEF,MAAM,SAAS,YAAY,KAAK,KAAK;EACrC,IAAI,UAAU,MACZ;EAEF,SAAS,KAAK,MAAM,SAAS,GAAG;EAChC,iBAAiB,KAAK,MAAM;CAC9B;CACA,OAAO,eAAe;EAAE,QAAQ,QAAQ;EAAK;CAAa,IAAI;AAChE;AAEA,SAAgB,2BAA2B,EAAE,WAAW,GAAG,SAAuC;CAChG,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,yCAAsC;EAAG,eAAY;EAA3F,UAAA,CACE,oBAAC,QAAD,EAAM,gDAA6C,GAAI,CAAA,GACvD,oBAAC,QAAD,EAAM,gDAA6C,GAAI,CAAA,CACpD;;AAET;AAEA,SAAS,eACP,SACA,OACA,MACgB;CAChB,MAAM,WAAW,SAAS,SAAS,QAAQ;CAC3C,MAAM,aAAa,SAAS,SAAS,UAAU;CAC/C,OAAO;EACL,QAAQ,SAAS,SAAS,KAAK,MAAM,OAAO,KAAK,KAAK,KAAK,cAAc,EAAE,IAAI,gCAAgC,CAAC;EAChH,UAAU,SAAS,SAAS,UAAU,KAAK,cAAc,EAAE,IAAI,2CAA2C,CAAC,CAAC;EAC5G,QAAQ,SAAS,SAAS,QAAQ,KAAK,cAAc,EAAE,IAAI,kDAAkD,CAAC,CAAC;EAC/G,UAAU,SAAS,SAAS,UAAU,KAAK,cAAc,EAAE,IAAI,mCAAmC,CAAC,CAAC;EACpG,UAAU,SAAS,SAAS,UAAU,KAAK,cAAc,EAAE,IAAI,mCAAmC,CAAC,CAAC;EACpG,UAAU,SAAS,SAAS,UAAU,KAAK,cAAc,EAAE,IAAI,mCAAmC,CAAC,CAAC;EACpG,WAAW,SAAS,SAAS,WAAW,KAAK,cAAc,EAAE,IAAI,qCAAqC,CAAC,CAAC;EACxG,WAAW,SAAS,SAAS,WAAW,KAAK,cAAc,EAAE,IAAI,qCAAqC,CAAC,CAAC;EACxG,OAAO,SAAS,SAAS,OAAO,KAAK,cAAc,EAAE,IAAI,gCAAgC,CAAC,CAAC;EAC3F,KAAK,SAAS,SAAS,KAAK,KAAK,cAAc,EAAE,IAAI,8BAA8B,CAAC,CAAC;EACrF,MAAM,OAAe;GACnB,MAAM,WAAW,UAAU,IAAI,WAAW;GAC1C,IAAI,UACF,OAAO,SAAS,WAAW,WAAW,OAAO,KAAK,CAAC;GAErD,OAAO,KAAK,cAAc,EAAE,IAAI,gCAAgC,GAAG,EAAE,MAAM,CAAC;EAC9E;CACF;AACF;AAEA,SAAgB,mBAAmB,EAAE,OAAO,UAAU,OAAO,UAAU,WAAW,OAAgC;CAChH,MAAM,OAAO,QAAQ;CACrB,MAAM,UAAU,OAAO,mBAAmB,CAAC;CAC3C,MAAM,SAAS,eAAe,UAAU,OAAO,IAAI;CAEnD,IAAI,QAAQ,WAAW,GACrB,OAAO;CAGT,OACE,oBAAC,WAAD;EACO;EACL,cAAY,OAAO;EACR;EACX,gCAA6B;EAC7B,sCAAoC,QAAQ;EAE5C,UAAA,oBAAC,eAAD;GAAe,cAAA;GAAa,cAAc,YAAY,OAAO;GAC1D,UAAA,QAAQ,KAAK,QAAQ,UACpB,oBAAC,gBAAD;IAEE,OAAO,YAAY,KAAK;IACjB;IACC;IACA;IAEP;GACa,GAPT,YAAY,KAAK,CAOR,CACjB;EACY,CAAA;CACR,CAAA;AAEb;AAUA,SAAS,YAAY,SAAwB,QAAuC;CAClF,IAAI,YAAY,YACd,OAAO,OAAO;CAEhB,IAAI,YAAY,mBACd,OAAO,OAAO;CAEhB,OAAO;AACT;AAEA,SAAS,eAAe,EAAE,OAAO,OAAO,QAAQ,QAAQ,YAAiC;CACvF,MAAM,EAAE,aAAa,eAAe,wBAAwB;CAC5D,MAAM,OAAO,OAAO,aAAa,KAAK,KAAK,YAAY,OAAO,iBAAiB,MAAM;CACrF,MAAM,QAAQ,SAAS,OAAO,KAAK;CACnC,MAAM,WAAW,gBAAgB,OAAO,oBAAoB;CAC5D,MAAM,gBAAgB,eAAe,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;CAExD,OACE,qBAAC,eAAD;EACS;EACP,uCAAoC;EACpC,+CAA6C,OAAO,mBAAmB,KAAA;EAHzE,UAAA,CAKE,oBAAC,iBAAD;GAAiB,8CAA2C;GAC1D,UAAA,qBAAC,kBAAD;IAAkB,+CAA4C;IAA9D,UAAA;KACG,OAAO,oBAAC,QAAD;MAAM,4CAAyC;MAAI,UAAA;KAAW,CAAA,IAAI;KACzE,WACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;MAAM,sDAAmD;MAAI,UAAA,OAAO;KAAe,CAAA,GACnF,oBAAC,QAAD;MAAM,UAAU,OAAO,wBAAwB,KAAA;MAAW,gDAA6C;MACpG,UAAA,WAAW,UAAU,eAAe;KACjC,CAAA,CACN,EAAA,CAAA,IACA;KACJ,oBAAC,QAAD;MAAM,6CAA0C;MAAI,UAAA,OAAO,MAAM,UAAU,OAAO,KAAK,CAAC;KAAQ,CAAA;KAC/F,QACC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;MAAM,sDAAmD;MAAI,UAAA,OAAO;KAAe,CAAA,GACnF,oBAAC,QAAD;MAAM,gDAA6C;MAChD,UAAA,YAAY,MAAM,QAAQ,EAAE,UAAU,MAAM,aAAa,CAAC;KACvD,CAAA,CACN,EAAA,CAAA,IACA;IACY;;EACH,CAAA,GACjB,qBAAC,gBAAD;GAAgB,6CAA0C;GAA1D,UAAA,CACE,oBAAC,MAAD;IAAI,qCAAkC;IACnC,UAAA,OAAO,MAAM,KAAK,SACjB,oBAAC,aAAD;KAAiC;KAAc;IAAS,GAAtC,KAAK,EAAiC,CACzD;GACC,CAAA,GACH,WACC,oBAAC,2BAA2B,UAA5B;IAAqC,OAAO;IAAgB;GAA8C,CAAA,IACxG,IACU;EACH,CAAA,CAAA;;AAEnB;AAIA,MAAM,cAAc;CAClB,cAAc;EACZ,OAAO;EACP,OAAO,EAAE,qDAAqD,GAAG;EACjE,OAAO,EAAE,+CAA+C,GAAG;CAC7D;CACA,cAAc;EACZ,OAAO;EACP,OAAO,EAAE,qDAAqD,GAAG;EACjE,OAAO,EAAE,+CAA+C,GAAG;CAC7D;CACA,OAAO;EACL,OAAO;EACP,OAAO,EAAE,gDAAgD,GAAG;EAC5D,OAAO,EAAE,0CAA0C,GAAG;CACxD;CACA,KAAK;EACH,OAAO;EACP,OAAO,EAAE,8CAA8C,GAAG;EAC1D,OAAO,EAAE,wCAAwC,GAAG;CACtD;AACF;AAQA,SAAS,UAAU,EAAE,MAAM,OAAO,UAA0B;CAC1D,MAAM,EAAE,gBAAgB,wBAAwB;CAChD,MAAM,SAAS,YAAY,KAAK;CAChC,IAAI,UAAU,MACZ,OAAO;CAET,MAAM,OAAO,YAAY;CAEzB,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;EAAM,GAAI,KAAK;EAAQ,UAAA,OAAO,KAAK;CAAa,CAAA,GAChD,oBAAC,QAAD;EAAM,GAAI,KAAK;EAAQ,UAAA,YAAY,QAAQ,EAAE,UAAU,MAAM,aAAa,CAAC;CAAQ,CAAA,CACnF,EAAA,CAAA;AAEN;AAEA,SAAS,YAAY,EAAE,MAAM,UAA6E;CACxG,MAAM,YAAY,YAAY,KAAK,SAAS,MAAM,YAAY,KAAK,YAAY,IAAI,OAAO,KAAK;CAE/F,OACE,qBAAC,MAAD;EAAI,oCAAiC;EAArC,UAAA;GACG,KAAK,QAEJ,oBAAC,OAAD;IACE,KAAK,KAAK,MAAM;IAChB,KAAK,KAAK,MAAM,WAAW,KAAK;IAChC,0CAAuC;IACvC,iBAAc;GACf,CAAA,IACC;GACJ,qBAAC,QAAD;IAAM,4CAAyC;IAA/C,UAAA;KACE,oBAAC,QAAD;MAAM,yCAAsC;MAAI,UAAA,KAAK;KAAW,CAAA;KAC/D,KAAK,aAAa,KAAK,UACtB,qBAAC,QAAD;MAAuB,iDAA8C;MAArE,UAAA,CACE,oBAAC,QAAD;OAAM,sDAAmD;OAAI,UAAA,MAAM;MAAW,CAAA,GAC9E,oBAAC,QAAD;OAAM,uDAAoD;OAAI,UAAA,MAAM;MAAY,CAAA,CAC5E;KAHK,GAAA,MAAM,IAGX,CACP;KACD,qBAAC,QAAD;MAAM,yCAAsC;MAA5C,UAAA,CACE,oBAAC,QAAD;OAAM,mDAAgD;OAAI,UAAA,OAAO;MAAe,CAAA,GAChF,oBAAC,QAAD;OAAM,6CAA0C;OAAI,UAAA,KAAK;MAAe,CAAA,CACpE;;KACL,KAAK,eACJ,oBAAC,UAAD,EAAA,UACE,oBAAC,WAAD;MAAW,MAAK;MAAa,OAAO,KAAK;MAAsB;KAAS,CAAA,EAChE,CAAA,IACR;KACH,YACC,oBAAC,UAAD,EAAA,UACE,oBAAC,WAAD;MAAW,MAAK;MAAa,OAAO;MAAmB;KAAS,CAAA,EACxD,CAAA,IACR;KACH,KAAK,MACJ,oBAAC,UAAD,EAAA,UACE,oBAAC,WAAD;MAAW,MAAK;MAAM,OAAO,KAAK;MAAa;KAAS,CAAA,EAChD,CAAA,IACR;IACA;;GACL,KAAK,QACJ,oBAAC,QAAD;IAAM,0CAAuC;IAC3C,UAAA,oBAAC,WAAD;KAAW,MAAK;KAAQ,OAAO,KAAK;KAAe;IAAS,CAAA;GACxD,CAAA,IACJ;EACF;;AAER;AAEA,SAAS,SAAS,EAAE,YAA+C;CACjE,OAAO,oBAAC,QAAD;EAAM,yCAAsC;EAAI;CAAe,CAAA;AACxE"}
@@ -0,0 +1,104 @@
1
+ import { ContentValue } from "../../core/dist/define-content-type.js";
2
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { OrderCompletionData } from "../../sdk/orders/completion-badge.js";
5
+ import { ComponentPropsWithRef, Ref } from "react";
6
+ //#region src/matter/order-details-header/order-details-header.d.ts
7
+ export declare const OrderDetailsHeaderContent: {
8
+ readonly id: "order-details-header";
9
+ readonly title: "Order Details Header";
10
+ readonly description: "The prefix, the copy action, and the status sentences on the order page.";
11
+ readonly schema: {
12
+ readonly type: "object";
13
+ readonly additionalProperties: false;
14
+ readonly properties: {
15
+ readonly prefix: {
16
+ readonly type: "string";
17
+ readonly title: "Prefix";
18
+ };
19
+ readonly copyLabel: {
20
+ readonly type: "string";
21
+ readonly title: "Copy label";
22
+ };
23
+ readonly copyAccessibleName: {
24
+ readonly type: "string";
25
+ readonly title: "Copy accessible name";
26
+ };
27
+ readonly copyCopied: {
28
+ readonly type: "string";
29
+ readonly title: "Copied";
30
+ };
31
+ readonly copyFailure: {
32
+ readonly type: "string";
33
+ readonly title: "Copy failure";
34
+ };
35
+ readonly copyDismiss: {
36
+ readonly type: "string";
37
+ readonly title: "Dismiss copy";
38
+ };
39
+ readonly statusInProgress: {
40
+ readonly type: "string";
41
+ readonly title: "In progress";
42
+ };
43
+ readonly statusCancellationRequested: {
44
+ readonly type: "string";
45
+ readonly title: "Cancellation requested";
46
+ };
47
+ readonly statusCancelled: {
48
+ readonly type: "string";
49
+ readonly title: "Cancelled";
50
+ };
51
+ readonly statusDelivered: {
52
+ readonly type: "string";
53
+ readonly title: "Delivered";
54
+ };
55
+ readonly statusShipped: {
56
+ readonly type: "string";
57
+ readonly title: "Shipped";
58
+ };
59
+ readonly statusReadyForPickup: {
60
+ readonly type: "string";
61
+ readonly title: "Ready for pickup";
62
+ };
63
+ readonly statusCollected: {
64
+ readonly type: "string";
65
+ readonly title: "Collected";
66
+ };
67
+ readonly statusPlaceholder: {
68
+ readonly type: "string";
69
+ readonly title: "Status unavailable";
70
+ };
71
+ };
72
+ };
73
+ };
74
+ export type OrderDetailsHeaderContentValue = ContentValue<typeof OrderDetailsHeaderContent>;
75
+ /**
76
+ * The `customerOrder` root the generator passes as `$data`. A single-root fragment is bound to
77
+ * that field's value, so this is the order itself, or null when the read resolves nothing.
78
+ */
79
+ export type OrderDetailsHeaderData = {
80
+ orderNumber: string;
81
+ completion: OrderCompletionData;
82
+ } | null;
83
+ export type OrderDetailsHeaderProps = Readonly<{
84
+ $data?: OrderDetailsHeaderData | null;
85
+ $content?: OrderDetailsHeaderContentValue;
86
+ prefix?: string;
87
+ copyLabel?: string;
88
+ copyAccessibleName?: string;
89
+ className?: string;
90
+ ref?: Ref<HTMLElement>;
91
+ }>;
92
+ export declare const OrderDetailsHeaderDefinition: ComponentDefinition<Readonly<{
93
+ $data?: OrderDetailsHeaderData | null;
94
+ $content?: OrderDetailsHeaderContentValue;
95
+ prefix?: string;
96
+ copyLabel?: string;
97
+ copyAccessibleName?: string;
98
+ className?: string;
99
+ ref?: Ref<HTMLElement>;
100
+ }>>;
101
+ export declare function OrderDetailsHeaderSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>): import("react/jsx-runtime").JSX.Element;
102
+ export declare function OrderDetailsHeader({ $data, $content, prefix, copyLabel, copyAccessibleName, className, ref }: OrderDetailsHeaderProps): import("react/jsx-runtime").JSX.Element | null;
103
+ //#endregion
104
+ //# sourceMappingURL=order-details-header.d.ts.map