@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,380 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { useStorefrontFormatters } from "../../sdk/format/client.js";
5
+ import { useIntl } from "../../sdk/i18n/client.js";
6
+ import { DataOverrideContext, useDataOverride } from "../../sdk/data/data-override-context.js";
7
+ import { AddressSummaryRoot } from "../../particles/address-summary/address-summary.js";
8
+ import { CartItemRoot } from "../cart-item/cart-item.js";
9
+ import { CartItemCompositions } from "../cart-item-compositions/cart-item-compositions.js";
10
+ import { ESTIMATE_MESSAGE } from "../shipping-simulator/shipping-simulator.js";
11
+ import { substituteTemplate } from "../../utils/substitute-template.js";
12
+ import { useOrderPlaced } from "./order-placed.js";
13
+ import { createContext, useContext } from "react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ //#region src/matter/order-placed/order-placed-deliveries.tsx
16
+ /**
17
+ * Order Placed format A (docs/features/order-placed/rfc-particles.md, Parts, part 3): the purchase's
18
+ * items grouped by delivery across sellers. `OrderPlacedDeliveryList` reads `Order.deliveries` through
19
+ * its own fragment and renders its child once per delivery; `OrderPlacedDeliveryGroup` states the
20
+ * method, the promise and the item count and hands the address to the `AddressSummary*` leaves;
21
+ * `OrderPlacedItemRow` presents each item through the cart's own `CartItemRoot` and leaves, so the
22
+ * item reads as it did in the cart.
23
+ */
24
+ const fragment = `
25
+ fragment OrderPlacedDeliveryListData on Query {
26
+ order(orderGroup: $orderGroup) {
27
+ __typename
28
+ id
29
+ deliveries {
30
+ id
31
+ shippingOption {
32
+ id
33
+ name
34
+ channel
35
+ shippingEstimate {
36
+ value
37
+ unit
38
+ }
39
+ }
40
+ estimatedDate
41
+ itemCount
42
+ pickupPointName
43
+ address {
44
+ id
45
+ recipientName
46
+ street
47
+ number
48
+ complement
49
+ neighborhood
50
+ city
51
+ state
52
+ postalCode
53
+ country
54
+ }
55
+ items {
56
+ __typename
57
+ id
58
+ quantity
59
+ price {
60
+ amount
61
+ currencyCode
62
+ }
63
+ listPrice {
64
+ amount
65
+ currencyCode
66
+ }
67
+ sellingPrice {
68
+ amount
69
+ currencyCode
70
+ }
71
+ gift
72
+ ownTotal {
73
+ amount
74
+ currencyCode
75
+ }
76
+ total {
77
+ amount
78
+ currencyCode
79
+ }
80
+ variant {
81
+ __typename
82
+ variantId
83
+ sku
84
+ name
85
+ image {
86
+ url
87
+ altText
88
+ }
89
+ availability
90
+ }
91
+ product {
92
+ __typename
93
+ productId
94
+ title
95
+ detailUrl
96
+ categories {
97
+ categoryId
98
+ name
99
+ }
100
+ brand {
101
+ brandId
102
+ name
103
+ }
104
+ }
105
+ compositions {
106
+ id
107
+ name
108
+ quantity
109
+ price {
110
+ amount
111
+ currencyCode
112
+ }
113
+ availability
114
+ assemblyId
115
+ ownTotal {
116
+ amount
117
+ currencyCode
118
+ }
119
+ total {
120
+ amount
121
+ currencyCode
122
+ }
123
+ customizations {
124
+ id
125
+ entries {
126
+ name
127
+ value
128
+ }
129
+ }
130
+ compositions {
131
+ id
132
+ name
133
+ quantity
134
+ price {
135
+ amount
136
+ currencyCode
137
+ }
138
+ availability
139
+ assemblyId
140
+ ownTotal {
141
+ amount
142
+ currencyCode
143
+ }
144
+ total {
145
+ amount
146
+ currencyCode
147
+ }
148
+ customizations {
149
+ id
150
+ entries {
151
+ name
152
+ value
153
+ }
154
+ }
155
+ compositions {
156
+ id
157
+ name
158
+ quantity
159
+ price {
160
+ amount
161
+ currencyCode
162
+ }
163
+ availability
164
+ assemblyId
165
+ ownTotal {
166
+ amount
167
+ currencyCode
168
+ }
169
+ total {
170
+ amount
171
+ currencyCode
172
+ }
173
+ customizations {
174
+ id
175
+ entries {
176
+ name
177
+ value
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
187
+ `;
188
+ const OrderDeliveryContext = createContext(null);
189
+ const OrderPlacedItemContext = createContext(null);
190
+ /** The delivery the nearest OrderPlacedDeliveryList renders this subtree for. */
191
+ function useOrderDelivery() {
192
+ const delivery = useContext(OrderDeliveryContext);
193
+ if (!delivery) throw new Error("useOrderDelivery() must be used inside an <OrderPlacedDeliveryList> subtree.");
194
+ return delivery;
195
+ }
196
+ /** The item the nearest OrderPlacedItemRow renders this subtree for. */
197
+ function useOrderPlacedItem() {
198
+ const item = useContext(OrderPlacedItemContext);
199
+ if (!item) throw new Error("useOrderPlacedItem() must be used inside an <OrderPlacedItemRow> subtree.");
200
+ return item;
201
+ }
202
+ const OrderPlacedDeliveryListDefinition = defineComponent({
203
+ name: "OrderPlacedDeliveryList",
204
+ importPath: "@vtex/faststore/components",
205
+ component: OrderPlacedDeliveryList,
206
+ fragment,
207
+ fetchStrategy: "reactive",
208
+ requiresContext: "order-placed",
209
+ providesContext: "order-delivery",
210
+ editor: {
211
+ label: "Order Placed Delivery List",
212
+ category: "commerce"
213
+ },
214
+ schema: {},
215
+ guideline: "The placed order grouped by delivery: one entry per way the items arrive (shipping method, channel and estimate), across sellers. Compose exactly one OrderPlacedDeliveryGroup as its child; the list renders it once per delivery, in the order the API returns them, and renders nothing when the order has no delivery. Must be inside OrderPlacedRoot. See order-placed.md."
216
+ });
217
+ const OrderPlacedDeliveryGroupDefinition = defineComponent({
218
+ name: "OrderPlacedDeliveryGroup",
219
+ importPath: "@vtex/faststore/components",
220
+ component: OrderPlacedDeliveryGroup,
221
+ requiresContext: "order-delivery",
222
+ providesContext: "address-summary",
223
+ editor: {
224
+ label: "Order Placed Delivery Group",
225
+ category: "commerce"
226
+ },
227
+ schema: {
228
+ dateTemplate: {
229
+ type: "string",
230
+ default: "Arrives by {date}",
231
+ label: "Date template"
232
+ },
233
+ itemCountTemplate: {
234
+ type: "string",
235
+ default: "{count} items",
236
+ label: "Item count template"
237
+ },
238
+ itemCountOneTemplate: {
239
+ type: "string",
240
+ default: "{count} item",
241
+ label: "Single item count template"
242
+ },
243
+ pickupPointTemplate: {
244
+ type: "string",
245
+ default: "Pickup at {name}",
246
+ label: "Pickup point template"
247
+ }
248
+ },
249
+ guideline: "One delivery of the placed order: its shipping method, its promise (the date under dateTemplate once the order system set one, otherwise the relative estimate sentence the checkout's delivery step showed, e.g. \"in 2 business days\"), its item count and, for a pickup, the pickup point's name. Compose AddressSummaryRecipient, AddressSummaryStreet and AddressSummaryLocality as children for the address (the shipping address, or the pickup point's for a pickup, masked as the order system returns it; nothing when the order carries none), and one OrderPlacedItemRow for the items. Style it through data-fs-order-placed-delivery-group and switch on data-fs-order-placed-delivery-group-channel (delivery, pickup, unknown). Must be the child of OrderPlacedDeliveryList. See order-placed.md."
250
+ });
251
+ const OrderPlacedItemRowDefinition = defineComponent({
252
+ name: "OrderPlacedItemRow",
253
+ importPath: "@vtex/faststore/components",
254
+ component: OrderPlacedItemRow,
255
+ requiresContext: "order-placed",
256
+ providesContext: ["cart-item-data", "order-placed-item"],
257
+ editor: {
258
+ label: "Order Placed Item Row",
259
+ category: "commerce"
260
+ },
261
+ schema: {},
262
+ guideline: "One purchased item of the delivery, presented with the cart's own item leaves, so it reads as it did in the cart. Compose read-only cart leaves as children: CartItemImage, CartItemProductLink, CartItemName, CartItemVariant, CartItemSku, CartItemPrice, CartItemListPrice, CartItemDiscountPercentage, CartItemLineTotal, CartItemOwnTotal, CartItemAggregateTotal, CartItemQuantityValue, CartItemGift, and OrderPlacedItemCompositions for its add-ons. Never compose CartItemQuantity, CartItemRemove, CartItemVariations, CartItemAvailable or CartItemUnavailable here: they read or change the live cart, not the placed order. Renders once per item of the nearest delivery; nothing outside a delivery. Must be inside OrderPlacedDeliveryGroup. See order-placed.md."
263
+ });
264
+ const OrderPlacedItemCompositionsDefinition = defineComponent({
265
+ name: "OrderPlacedItemCompositions",
266
+ importPath: "@vtex/faststore/components",
267
+ component: OrderPlacedItemCompositions,
268
+ requiresContext: "order-placed-item",
269
+ editor: {
270
+ label: "Order Placed Item Compositions",
271
+ category: "commerce"
272
+ },
273
+ schema: {},
274
+ guideline: "The add-on services of a placed item, nested under it with the cart's own composition markup (data-fs-cart-item-composition*): each one's name, quantity, unit price and customizations, children nested by depth. Renders nothing when the item has none, as every item of a purchase split across sellers. Never compose CartItemCompositions on this page instead: it reads the live cart. Must be inside OrderPlacedItemRow. See order-placed.md."
275
+ });
276
+ /** Renders its child once per delivery of the placed order. */
277
+ function OrderPlacedDeliveryList({ className, children, $data: $dataProp }) {
278
+ useOrderPlaced();
279
+ const deliveries = useDataOverride($dataProp)?.deliveries ?? [];
280
+ if (deliveries.length === 0) return null;
281
+ return /* @__PURE__ */ jsx("div", {
282
+ className,
283
+ "data-fs-order-placed-delivery-list": "",
284
+ children: deliveries.map((delivery) => /* @__PURE__ */ jsx(OrderDeliveryContext, {
285
+ value: delivery,
286
+ children
287
+ }, delivery.id))
288
+ });
289
+ }
290
+ const CHANNEL_ATTRIBUTE = {
291
+ DELIVERY: "delivery",
292
+ PICKUP: "pickup",
293
+ UNKNOWN: "unknown"
294
+ };
295
+ /**
296
+ * The relative promise, as the checkout's delivery step words it: the catalog's whole sentence for the
297
+ * unit (`ESTIMATE_MESSAGE`), and "arrives today" at zero, never a translated fragment in a wrapper.
298
+ */
299
+ function useRelativePromise(estimate) {
300
+ const intl = useIntl();
301
+ if (!estimate) return null;
302
+ if (estimate.value === 0) return intl.formatMessage({ id: "fs/shipping.estimate.today" });
303
+ const { id, variable } = ESTIMATE_MESSAGE[estimate.unit];
304
+ return intl.formatMessage({ id }, { [variable]: estimate.value });
305
+ }
306
+ /**
307
+ * One delivery: method, promise, item count and pickup point, with its address provided to the
308
+ * `AddressSummary*` children. The dated promise wins when the order carries one; otherwise the relative
309
+ * estimate. A delivery with neither a method nor a date still shows its items and count.
310
+ */
311
+ function OrderPlacedDeliveryGroup({ className, children, dateTemplate = "Arrives by {date}", itemCountTemplate = "{count} items", itemCountOneTemplate = "{count} item", pickupPointTemplate = "Pickup at {name}" }) {
312
+ const delivery = useOrderDelivery();
313
+ const { formatDate, pluralRule } = useStorefrontFormatters();
314
+ const { shippingOption, estimatedDate, itemCount, pickupPointName, address } = delivery;
315
+ const relativePromise = useRelativePromise(shippingOption?.shippingEstimate);
316
+ const promise = estimatedDate ? substituteTemplate(dateTemplate, { date: formatDate(new Date(estimatedDate), { dateStyle: "medium" }) }) : relativePromise;
317
+ const count = substituteTemplate(pluralRule(itemCount) === "one" ? itemCountOneTemplate : itemCountTemplate, { count: String(itemCount) });
318
+ return /* @__PURE__ */ jsxs("div", {
319
+ className,
320
+ "data-fs-order-placed-delivery-group": "",
321
+ "data-fs-order-placed-delivery-group-channel": CHANNEL_ATTRIBUTE[shippingOption?.channel ?? "UNKNOWN"],
322
+ children: [
323
+ shippingOption ? /* @__PURE__ */ jsx("p", {
324
+ "data-fs-order-placed-delivery-group-method": "",
325
+ children: shippingOption.name
326
+ }) : null,
327
+ promise ? /* @__PURE__ */ jsx("p", {
328
+ "data-fs-order-placed-delivery-group-date": "",
329
+ children: promise
330
+ }) : null,
331
+ /* @__PURE__ */ jsx("p", {
332
+ "data-fs-order-placed-delivery-group-count": "",
333
+ children: count
334
+ }),
335
+ pickupPointName ? /* @__PURE__ */ jsx("p", {
336
+ "data-fs-order-placed-delivery-group-pickup-point": "",
337
+ children: substituteTemplate(pickupPointTemplate, { name: pickupPointName })
338
+ }) : null,
339
+ /* @__PURE__ */ jsx(AddressSummaryRoot, {
340
+ address: address ?? {},
341
+ children
342
+ })
343
+ ]
344
+ });
345
+ }
346
+ /**
347
+ * Each item of the nearest delivery, through the cart's own `CartItemRoot`: the row publishes the
348
+ * order item on `DataOverrideContext`, the seam `CartItemRoot` reads before its `$data`, so the cart's
349
+ * leaves present it unchanged (ADR-0009's substitution; `cart-item.tsx` is not edited). Outside a
350
+ * delivery, as straight under the root, the purchase has no items of its own to show.
351
+ */
352
+ function OrderPlacedItemRow({ className, children }) {
353
+ useOrderPlaced();
354
+ const delivery = useContext(OrderDeliveryContext);
355
+ if (!delivery) return null;
356
+ return delivery.items.map((item) => /* @__PURE__ */ jsx(OrderPlacedItemContext, {
357
+ value: item,
358
+ children: /* @__PURE__ */ jsx(DataOverrideContext, {
359
+ value: item,
360
+ children: /* @__PURE__ */ jsx(CartItemRoot, {
361
+ className,
362
+ "data-fs-order-placed-item-row": "",
363
+ children
364
+ })
365
+ })
366
+ }, item.id));
367
+ }
368
+ /**
369
+ * The item's add-ons, through the cart's own `CartItemCompositions`, which reads the item from the
370
+ * row's `DataOverrideContext`. Rendered as a function, never composed in the page, so its `Query.cart`
371
+ * fragment is never collected and the page reads only the order.
372
+ */
373
+ function OrderPlacedItemCompositions({ className }) {
374
+ useOrderPlacedItem();
375
+ return /* @__PURE__ */ jsx(CartItemCompositions, { className });
376
+ }
377
+ //#endregion
378
+ export { OrderPlacedDeliveryGroup, OrderPlacedDeliveryGroupDefinition, OrderPlacedDeliveryList, OrderPlacedDeliveryListDefinition, OrderPlacedItemCompositions, OrderPlacedItemCompositionsDefinition, OrderPlacedItemRow, OrderPlacedItemRowDefinition, useOrderDelivery, useOrderPlacedItem };
379
+
380
+ //# sourceMappingURL=order-placed-deliveries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-placed-deliveries.js","names":[],"sources":["../../../src/matter/order-placed/order-placed-deliveries.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport { createContext, type ReactNode, useContext } from 'react';\nimport { type AddressSummaryFields, AddressSummaryRoot } from '../../particles/address-summary/address-summary.js';\nimport { DataOverrideContext, useDataOverride } from '../../sdk/data/data-override-context.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\nimport { substituteTemplate } from '../../utils/substitute-template.js';\nimport { CartItemRoot } from '../cart-item/cart-item.js';\nimport { CartItemCompositions } from '../cart-item-compositions/cart-item-compositions.js';\nimport { ESTIMATE_MESSAGE, type ShippingEstimateUnit } from '../shipping-simulator/shipping-simulator.js';\nimport { type OrderPlacedMoney, useOrderPlaced } from './order-placed.js';\n\n/**\n * Order Placed format A (docs/features/order-placed/rfc-particles.md, Parts, part 3): the purchase's\n * items grouped by delivery across sellers. `OrderPlacedDeliveryList` reads `Order.deliveries` through\n * its own fragment and renders its child once per delivery; `OrderPlacedDeliveryGroup` states the\n * method, the promise and the item count and hands the address to the `AddressSummary*` leaves;\n * `OrderPlacedItemRow` presents each item through the cart's own `CartItemRoot` and leaves, so the\n * item reads as it did in the cart.\n */\n\n// ---------------------------------------------------------------------------\n// GraphQL Fragment\n// ---------------------------------------------------------------------------\n\n// The item selects what CartItemRootData selects on CartItem, and `compositions` what\n// CartItemCompositionsData selects, with every Money inlined: the row hands the item to the cart's\n// own components, which read exactly those fields. Two tests keep both selections in step.\nconst fragment = /* GraphQL */ `\n fragment OrderPlacedDeliveryListData on Query {\n order(orderGroup: $orderGroup) {\n __typename\n id\n deliveries {\n id\n shippingOption {\n id\n name\n channel\n shippingEstimate {\n value\n unit\n }\n }\n estimatedDate\n itemCount\n pickupPointName\n address {\n id\n recipientName\n street\n number\n complement\n neighborhood\n city\n state\n postalCode\n country\n }\n items {\n __typename\n id\n quantity\n price {\n amount\n currencyCode\n }\n listPrice {\n amount\n currencyCode\n }\n sellingPrice {\n amount\n currencyCode\n }\n gift\n ownTotal {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n variant {\n __typename\n variantId\n sku\n name\n image {\n url\n altText\n }\n availability\n }\n product {\n __typename\n productId\n title\n detailUrl\n categories {\n categoryId\n name\n }\n brand {\n brandId\n name\n }\n }\n compositions {\n id\n name\n quantity\n price {\n amount\n currencyCode\n }\n availability\n assemblyId\n ownTotal {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n customizations {\n id\n entries {\n name\n value\n }\n }\n compositions {\n id\n name\n quantity\n price {\n amount\n currencyCode\n }\n availability\n assemblyId\n ownTotal {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n customizations {\n id\n entries {\n name\n value\n }\n }\n compositions {\n id\n name\n quantity\n price {\n amount\n currencyCode\n }\n availability\n assemblyId\n ownTotal {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n customizations {\n id\n entries {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n }\n`;\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type OrderPlacedShippingEstimateUnit = ShippingEstimateUnit;\n\nexport type OrderPlacedItemComposition = {\n id: string;\n name: string;\n quantity: number;\n price: OrderPlacedMoney;\n availability: string;\n assemblyId: string;\n ownTotal: OrderPlacedMoney;\n total: OrderPlacedMoney;\n customizations: readonly { id: string; entries: readonly { name: string; value: string }[] }[];\n compositions?: readonly OrderPlacedItemComposition[];\n};\n\n/**\n * An `OrderItem` with `CartItemRootData`'s selection plus `compositions`. Amounts are the wire's\n * strings; it is published to `DataOverrideContext`, typed `unknown`, with no cast and no mapping.\n */\nexport type OrderPlacedItem = {\n __typename?: string;\n id: string;\n quantity: number;\n price: OrderPlacedMoney;\n listPrice: OrderPlacedMoney;\n sellingPrice: OrderPlacedMoney;\n gift: boolean;\n ownTotal: OrderPlacedMoney;\n total: OrderPlacedMoney;\n variant: {\n __typename?: string;\n variantId: string;\n sku: string;\n name: string;\n image?: { url: string; altText?: string | null } | null;\n availability: string;\n };\n product: {\n __typename?: string;\n productId: string;\n title: string;\n detailUrl: string;\n categories: readonly { categoryId: string; name: string }[];\n brand?: { brandId: string; name: string } | null;\n };\n compositions: readonly OrderPlacedItemComposition[];\n};\n\nexport type OrderPlacedDelivery = {\n id: string;\n shippingOption?: {\n id: string;\n name: string;\n channel: 'DELIVERY' | 'PICKUP' | 'UNKNOWN';\n shippingEstimate: { value: number; unit: OrderPlacedShippingEstimateUnit };\n } | null;\n estimatedDate?: string | null;\n itemCount: number;\n pickupPointName?: string | null;\n address?: (AddressSummaryFields & { id?: string | null }) | null;\n items: readonly OrderPlacedItem[];\n};\n\n/** `OrderPlacedDeliveryList`'s `$data`: the unwrapped `order` field of its fragment (ADR-0015). */\nexport type OrderPlacedDeliveryListData = { deliveries: readonly OrderPlacedDelivery[] } | null;\n\nexport type OrderPlacedDeliveryListProps = {\n className?: string;\n children?: ReactNode;\n $data?: OrderPlacedDeliveryListData;\n};\n\nexport type OrderPlacedDeliveryGroupProps = {\n className?: string;\n children?: ReactNode;\n /** The dated promise; `{date}` placeholder. */\n dateTemplate?: string;\n /** `{count}` placeholder, for any count but one. */\n itemCountTemplate?: string;\n /** `{count}` placeholder, for a count of one. */\n itemCountOneTemplate?: string;\n /** `{name}` placeholder, shown when the delivery is picked up. */\n pickupPointTemplate?: string;\n};\n\nexport type OrderPlacedItemRowProps = {\n className?: string;\n children?: ReactNode;\n};\n\nexport type OrderPlacedItemCompositionsProps = {\n className?: string;\n};\n\n// ---------------------------------------------------------------------------\n// Contexts\n// ---------------------------------------------------------------------------\n\nconst OrderDeliveryContext = createContext<OrderPlacedDelivery | null>(null);\nconst OrderPlacedItemContext = createContext<OrderPlacedItem | null>(null);\n\n/** The delivery the nearest OrderPlacedDeliveryList renders this subtree for. */\nexport function useOrderDelivery(): OrderPlacedDelivery {\n const delivery = useContext(OrderDeliveryContext);\n if (!delivery) throw new Error('useOrderDelivery() must be used inside an <OrderPlacedDeliveryList> subtree.');\n return delivery;\n}\n\n/** The item the nearest OrderPlacedItemRow renders this subtree for. */\nexport function useOrderPlacedItem(): OrderPlacedItem {\n const item = useContext(OrderPlacedItemContext);\n if (!item) throw new Error('useOrderPlacedItem() must be used inside an <OrderPlacedItemRow> subtree.');\n return item;\n}\n\n// ---------------------------------------------------------------------------\n// Definitions\n// ---------------------------------------------------------------------------\n\nexport const OrderPlacedDeliveryListDefinition = defineComponent<OrderPlacedDeliveryListProps>({\n name: 'OrderPlacedDeliveryList',\n importPath: '@vtex/faststore/components',\n component: OrderPlacedDeliveryList,\n fragment,\n fetchStrategy: 'reactive',\n requiresContext: 'order-placed',\n providesContext: 'order-delivery',\n editor: { label: 'Order Placed Delivery List', category: 'commerce' },\n schema: {},\n guideline:\n 'The placed order grouped by delivery: one entry per way the items arrive (shipping method, channel and estimate), across sellers. Compose exactly one OrderPlacedDeliveryGroup as its child; the list renders it once per delivery, in the order the API returns them, and renders nothing when the order has no delivery. Must be inside OrderPlacedRoot. See order-placed.md.',\n});\n\nexport const OrderPlacedDeliveryGroupDefinition = defineComponent<OrderPlacedDeliveryGroupProps>({\n name: 'OrderPlacedDeliveryGroup',\n importPath: '@vtex/faststore/components',\n component: OrderPlacedDeliveryGroup,\n requiresContext: 'order-delivery',\n providesContext: 'address-summary',\n editor: { label: 'Order Placed Delivery Group', category: 'commerce' },\n schema: {\n dateTemplate: { type: 'string', default: 'Arrives by {date}', label: 'Date template' },\n itemCountTemplate: { type: 'string', default: '{count} items', label: 'Item count template' },\n itemCountOneTemplate: { type: 'string', default: '{count} item', label: 'Single item count template' },\n pickupPointTemplate: { type: 'string', default: 'Pickup at {name}', label: 'Pickup point template' },\n },\n guideline:\n \"One delivery of the placed order: its shipping method, its promise (the date under dateTemplate once the order system set one, otherwise the relative estimate sentence the checkout's delivery step showed, e.g. \\\"in 2 business days\\\"), its item count and, for a pickup, the pickup point's name. Compose AddressSummaryRecipient, AddressSummaryStreet and AddressSummaryLocality as children for the address (the shipping address, or the pickup point's for a pickup, masked as the order system returns it; nothing when the order carries none), and one OrderPlacedItemRow for the items. Style it through data-fs-order-placed-delivery-group and switch on data-fs-order-placed-delivery-group-channel (delivery, pickup, unknown). Must be the child of OrderPlacedDeliveryList. See order-placed.md.\",\n});\n\n// The row requires the root, not a delivery: formats B and D (particles RFC, Formats B, C and D) place\n// it under a seller order instead, and it reads whichever list is nearest at run time. In format A it\n// sits under OrderPlacedDeliveryGroup; placed straight under the root it renders nothing.\nexport const OrderPlacedItemRowDefinition = defineComponent<OrderPlacedItemRowProps>({\n name: 'OrderPlacedItemRow',\n importPath: '@vtex/faststore/components',\n component: OrderPlacedItemRow,\n requiresContext: 'order-placed',\n providesContext: ['cart-item-data', 'order-placed-item'],\n editor: { label: 'Order Placed Item Row', category: 'commerce' },\n schema: {},\n guideline:\n \"One purchased item of the delivery, presented with the cart's own item leaves, so it reads as it did in the cart. Compose read-only cart leaves as children: CartItemImage, CartItemProductLink, CartItemName, CartItemVariant, CartItemSku, CartItemPrice, CartItemListPrice, CartItemDiscountPercentage, CartItemLineTotal, CartItemOwnTotal, CartItemAggregateTotal, CartItemQuantityValue, CartItemGift, and OrderPlacedItemCompositions for its add-ons. Never compose CartItemQuantity, CartItemRemove, CartItemVariations, CartItemAvailable or CartItemUnavailable here: they read or change the live cart, not the placed order. Renders once per item of the nearest delivery; nothing outside a delivery. Must be inside OrderPlacedDeliveryGroup. See order-placed.md.\",\n});\n\nexport const OrderPlacedItemCompositionsDefinition = defineComponent<OrderPlacedItemCompositionsProps>({\n name: 'OrderPlacedItemCompositions',\n importPath: '@vtex/faststore/components',\n component: OrderPlacedItemCompositions,\n requiresContext: 'order-placed-item',\n editor: { label: 'Order Placed Item Compositions', category: 'commerce' },\n schema: {},\n guideline:\n \"The add-on services of a placed item, nested under it with the cart's own composition markup (data-fs-cart-item-composition*): each one's name, quantity, unit price and customizations, children nested by depth. Renders nothing when the item has none, as every item of a purchase split across sellers. Never compose CartItemCompositions on this page instead: it reads the live cart. Must be inside OrderPlacedItemRow. See order-placed.md.\",\n});\n\n// ---------------------------------------------------------------------------\n// Implementations\n// ---------------------------------------------------------------------------\n\n/** Renders its child once per delivery of the placed order. */\nexport function OrderPlacedDeliveryList({\n className,\n children,\n $data: $dataProp,\n}: Readonly<OrderPlacedDeliveryListProps>) {\n // The call only enforces that the root is an ancestor; the root withholds its children until the\n // order resolves. The deliveries come from this component's own fragment.\n useOrderPlaced();\n const deliveries = useDataOverride($dataProp)?.deliveries ?? [];\n if (deliveries.length === 0) return null;\n\n return (\n <div className={className} data-fs-order-placed-delivery-list=\"\">\n {deliveries.map((delivery) => (\n <OrderDeliveryContext key={delivery.id} value={delivery}>\n {children}\n </OrderDeliveryContext>\n ))}\n </div>\n );\n}\n\nconst CHANNEL_ATTRIBUTE = {\n DELIVERY: 'delivery',\n PICKUP: 'pickup',\n UNKNOWN: 'unknown',\n} as const;\n\n/**\n * The relative promise, as the checkout's delivery step words it: the catalog's whole sentence for the\n * unit (`ESTIMATE_MESSAGE`), and \"arrives today\" at zero, never a translated fragment in a wrapper.\n */\nfunction useRelativePromise(estimate: { value: number; unit: OrderPlacedShippingEstimateUnit } | undefined) {\n const intl = useIntl();\n if (!estimate) return null;\n if (estimate.value === 0) return intl.formatMessage({ id: 'fs/shipping.estimate.today' });\n const { id, variable } = ESTIMATE_MESSAGE[estimate.unit];\n return intl.formatMessage({ id }, { [variable]: estimate.value });\n}\n\n/**\n * One delivery: method, promise, item count and pickup point, with its address provided to the\n * `AddressSummary*` children. The dated promise wins when the order carries one; otherwise the relative\n * estimate. A delivery with neither a method nor a date still shows its items and count.\n */\nexport function OrderPlacedDeliveryGroup({\n className,\n children,\n dateTemplate = 'Arrives by {date}',\n itemCountTemplate = '{count} items',\n itemCountOneTemplate = '{count} item',\n pickupPointTemplate = 'Pickup at {name}',\n}: Readonly<OrderPlacedDeliveryGroupProps>) {\n const delivery = useOrderDelivery();\n const { formatDate, pluralRule } = useStorefrontFormatters();\n const { shippingOption, estimatedDate, itemCount, pickupPointName, address } = delivery;\n const relativePromise = useRelativePromise(shippingOption?.shippingEstimate);\n\n // The API sends an instant; the store's day of it, in the store's timezone, is the promised one.\n const promise = estimatedDate\n ? substituteTemplate(dateTemplate, { date: formatDate(new Date(estimatedDate), { dateStyle: 'medium' }) })\n : relativePromise;\n const count = substituteTemplate(pluralRule(itemCount) === 'one' ? itemCountOneTemplate : itemCountTemplate, {\n count: String(itemCount),\n });\n\n return (\n <div\n className={className}\n data-fs-order-placed-delivery-group=\"\"\n data-fs-order-placed-delivery-group-channel={CHANNEL_ATTRIBUTE[shippingOption?.channel ?? 'UNKNOWN']}\n >\n {shippingOption ? <p data-fs-order-placed-delivery-group-method=\"\">{shippingOption.name}</p> : null}\n {promise ? <p data-fs-order-placed-delivery-group-date=\"\">{promise}</p> : null}\n <p data-fs-order-placed-delivery-group-count=\"\">{count}</p>\n {pickupPointName ? (\n <p data-fs-order-placed-delivery-group-pickup-point=\"\">\n {substituteTemplate(pickupPointTemplate, { name: pickupPointName })}\n </p>\n ) : null}\n <AddressSummaryRoot address={address ?? {}}>{children}</AddressSummaryRoot>\n </div>\n );\n}\n\n/**\n * Each item of the nearest delivery, through the cart's own `CartItemRoot`: the row publishes the\n * order item on `DataOverrideContext`, the seam `CartItemRoot` reads before its `$data`, so the cart's\n * leaves present it unchanged (ADR-0009's substitution; `cart-item.tsx` is not edited). Outside a\n * delivery, as straight under the root, the purchase has no items of its own to show.\n */\nexport function OrderPlacedItemRow({ className, children }: OrderPlacedItemRowProps) {\n useOrderPlaced();\n const delivery = useContext(OrderDeliveryContext);\n if (!delivery) return null;\n\n return delivery.items.map((item) => (\n <OrderPlacedItemContext key={item.id} value={item}>\n <DataOverrideContext value={item}>\n <CartItemRoot className={className} data-fs-order-placed-item-row=\"\">\n {children}\n </CartItemRoot>\n </DataOverrideContext>\n </OrderPlacedItemContext>\n ));\n}\n\n/**\n * The item's add-ons, through the cart's own `CartItemCompositions`, which reads the item from the\n * row's `DataOverrideContext`. Rendered as a function, never composed in the page, so its `Query.cart`\n * fragment is never collected and the page reads only the order.\n */\nexport function OrderPlacedItemCompositions({ className }: Readonly<OrderPlacedItemCompositionsProps>) {\n useOrderPlacedItem();\n return <CartItemCompositions className={className} />;\n}\n"],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
2
+ import "../../core/dist/index.js";
3
+ import { ReactNode } from "react";
4
+ import { ErrorLike } from "@apollo/client";
5
+ //#region src/matter/order-placed/order-placed.d.ts
6
+ /** `amount` is the API's `Decimal`, a string ("12.50"). */
7
+ export type OrderPlacedMoney = {
8
+ amount: string;
9
+ currencyCode: string;
10
+ };
11
+ export type OrderPlacedStatusValue = 'APPROVED' | 'PENDING' | 'DENIED' | 'UNKNOWN';
12
+ export type OrderPlacedTotalLine = {
13
+ id: string;
14
+ name: string;
15
+ value: OrderPlacedMoney;
16
+ };
17
+ /**
18
+ * The `$data` slice forwarded by the reactive runtime: the unwrapped `order` field, never a
19
+ * `{ order: … }` wrapper (ADR-0015). `null` when the order group does not resolve.
20
+ */
21
+ export type OrderPlacedData = {
22
+ id: string;
23
+ reference: string;
24
+ status: OrderPlacedStatusValue;
25
+ total?: OrderPlacedMoney | null;
26
+ totals: readonly OrderPlacedTotalLine[];
27
+ } | null;
28
+ /** `OrderPlacedCustomer`'s own `$data` slice, the unwrapped `order` field of its fragment. */
29
+ export type OrderPlacedCustomerData = {
30
+ customer?: {
31
+ firstName?: string | null;
32
+ lastName?: string | null;
33
+ email?: string | null;
34
+ phone?: string | null;
35
+ document?: string | null;
36
+ } | null;
37
+ } | null;
38
+ export type OrderPlacedContextValue = Readonly<{
39
+ order: OrderPlacedData;
40
+ loading: boolean;
41
+ error: ErrorLike | null;
42
+ }>;
43
+ export type OrderPlacedRootProps = {
44
+ className?: string;
45
+ children?: ReactNode;
46
+ /** Shown in place of the order when the read is refused: after 15 minutes, or from another browser. */
47
+ refusedOrderLabel?: string;
48
+ /** Shown in place of the order when the read fails or the order group resolves to no order. */
49
+ unresolvedOrderLabel?: string;
50
+ /** Unwrapped `Order` slice forwarded by the reactive runtime. */
51
+ $data?: OrderPlacedData;
52
+ };
53
+ export type OrderPlacedStatusProps = {
54
+ className?: string;
55
+ /** An optional `Icon`, shown on every outcome. */
56
+ children?: ReactNode;
57
+ approvedTitle?: string;
58
+ approvedMessage?: string;
59
+ pendingTitle?: string;
60
+ pendingMessage?: string;
61
+ deniedTitle?: string;
62
+ deniedMessage?: string;
63
+ };
64
+ export type OrderPlacedReferenceProps = {
65
+ className?: string;
66
+ /** `{reference}` placeholder. */
67
+ template?: string;
68
+ };
69
+ export type OrderPlacedCustomerProps = {
70
+ className?: string;
71
+ nameLabel?: string;
72
+ emailLabel?: string;
73
+ phoneLabel?: string;
74
+ documentLabel?: string;
75
+ /** Unwrapped `Order` slice of this component's own fragment. */
76
+ $data?: OrderPlacedCustomerData;
77
+ };
78
+ export type OrderPlacedTotalsProps = {
79
+ className?: string;
80
+ itemsLabel?: string;
81
+ shippingLabel?: string;
82
+ discountsLabel?: string;
83
+ taxLabel?: string;
84
+ totalLabel?: string;
85
+ /** Shown instead of a zero shipping value. Omitted to show the formatted zero. */
86
+ shippingZeroLabel?: string;
87
+ };
88
+ /** The placed order, its loading flag and the root query's error, from the nearest OrderPlacedRoot. */
89
+ export declare function useOrderPlaced(): OrderPlacedContextValue;
90
+ export declare const OrderPlacedRootDefinition: ComponentDefinition<OrderPlacedRootProps>;
91
+ export declare const OrderPlacedStatusDefinition: ComponentDefinition<OrderPlacedStatusProps>;
92
+ export declare const OrderPlacedReferenceDefinition: ComponentDefinition<OrderPlacedReferenceProps>;
93
+ export declare const OrderPlacedCustomerDefinition: ComponentDefinition<OrderPlacedCustomerProps>;
94
+ export declare const OrderPlacedTotalsDefinition: ComponentDefinition<OrderPlacedTotalsProps>;
95
+ /** Placeholder for the order's blocks while the read is in flight. */
96
+ export declare function OrderPlacedRootSkeleton(): import("react/jsx-runtime").JSX.Element;
97
+ /** Provides the placed order to its descendants, or a message in their place. Mirrors CartRoot's read side. */
98
+ export declare function OrderPlacedRoot({ className, children, refusedOrderLabel, unresolvedOrderLabel, $data: $dataProp }: Readonly<OrderPlacedRootProps>): import("react/jsx-runtime").JSX.Element;
99
+ /**
100
+ * The outcome banner. `UNKNOWN` (seller orders that disagree, or a state the mapping does not
101
+ * classify) renders nothing, so the page shows the order without asserting success or failure.
102
+ */
103
+ export declare function OrderPlacedStatus({ className, children, approvedTitle, approvedMessage, pendingTitle, pendingMessage, deniedTitle, deniedMessage }: Readonly<OrderPlacedStatusProps>): import("react/jsx-runtime").JSX.Element | null;
104
+ /**
105
+ * The order group, the one reference a split purchase has, so support resolves the whole purchase
106
+ * from it rather than one seller's order.
107
+ */
108
+ export declare function OrderPlacedReference({ className, template }: Readonly<OrderPlacedReferenceProps>): import("react/jsx-runtime").JSX.Element | null;
109
+ /**
110
+ * The customer as the order recorded them, never the live profile: masked values show as the order
111
+ * system returns them, and an empty field is left out.
112
+ */
113
+ export declare function OrderPlacedCustomer({ className, nameLabel, emailLabel, phoneLabel, documentLabel, $data: $dataProp }: Readonly<OrderPlacedCustomerProps>): import("react/jsx-runtime").JSX.Element | null;
114
+ /**
115
+ * The order's money lines in API order, then the total, each in its own currency. `Items`,
116
+ * `Shipping`, `Discounts` and `Tax` take the authored label, since the order system names them in
117
+ * English; any other line (a custom tax) shows its own name. The API sums lines on id and name, so
118
+ * two custom taxes that share an id are two rows.
119
+ */
120
+ export declare function OrderPlacedTotals({ className, itemsLabel, shippingLabel, discountsLabel, taxLabel, totalLabel, shippingZeroLabel }: Readonly<OrderPlacedTotalsProps>): import("react/jsx-runtime").JSX.Element | null;
121
+ //#endregion
122
+ //# sourceMappingURL=order-placed.d.ts.map