@vtex/faststore 0.0.8 → 0.0.11

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 (568) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/README.md +0 -1
  3. package/dist/actions.json +48 -1
  4. package/dist/catalog.json +1397 -1594
  5. package/dist/cli/index.d.ts +66 -28
  6. package/dist/cli/index.js +7371 -512
  7. package/dist/cli/index.js.map +1 -1
  8. package/dist/cli/server-runtime.js +41 -60
  9. package/dist/cli/server-runtime.js.map +1 -1
  10. package/dist/client.d.ts +3 -3
  11. package/dist/client.js +2 -2
  12. package/dist/components.d.ts +67 -56
  13. package/dist/components.js +64 -53
  14. package/dist/content-types.json +5886 -555
  15. package/dist/core/dist/define-component.d.ts +7 -2
  16. package/dist/core/dist/define-content-type.d.ts +50 -2
  17. package/dist/core/dist/define-content-type.js +107 -3
  18. package/dist/core/dist/define-content-type.js.map +1 -1
  19. package/dist/core/dist/index.d.ts +2 -2
  20. package/dist/docs/access-code-field.md +1 -1
  21. package/dist/docs/access-code-sign-in.md +126 -77
  22. package/dist/docs/account-address-book.md +210 -95
  23. package/dist/docs/account-entry-point.md +4 -4
  24. package/dist/docs/account-menu.md +16 -17
  25. package/dist/docs/account-saved-cards.md +306 -0
  26. package/dist/docs/alert-dialog.md +3 -1
  27. package/dist/docs/avatar.md +4 -2
  28. package/dist/docs/billing-address.md +99 -30
  29. package/dist/docs/binding-switcher.md +157 -0
  30. package/dist/docs/buy-button.md +7 -8
  31. package/dist/docs/card-entry.md +42 -29
  32. package/dist/docs/card-summary.md +185 -0
  33. package/dist/docs/cardholder-document.md +5 -3
  34. package/dist/docs/carousel.md +5 -4
  35. package/dist/docs/cart-destination.md +251 -0
  36. package/dist/docs/cart-item.md +48 -15
  37. package/dist/docs/cart-totalizer.md +8 -6
  38. package/dist/docs/cart.md +240 -39
  39. package/dist/docs/challenge-return.md +135 -0
  40. package/dist/docs/client-preferences-fieldset.md +10 -5
  41. package/dist/docs/client-preferences.md +31 -8
  42. package/dist/docs/client-profile-fieldset.md +20 -6
  43. package/dist/docs/client-profile.md +12 -3
  44. package/dist/docs/copy-text.md +9 -7
  45. package/dist/docs/document-field.md +1 -1
  46. package/dist/docs/email-field.md +2 -1
  47. package/dist/docs/email-identification.md +12 -2
  48. package/dist/docs/footer-copyright.md +4 -2
  49. package/dist/docs/footer-social.md +1 -1
  50. package/dist/docs/form.md +54 -18
  51. package/dist/docs/free-shipping-progress.md +18 -13
  52. package/dist/docs/identity-edit.md +8 -2
  53. package/dist/docs/identity-summary.md +18 -5
  54. package/dist/docs/incentives.md +2 -2
  55. package/dist/docs/installments.md +46 -32
  56. package/dist/docs/logo.md +1 -1
  57. package/dist/docs/my-account-profile.md +16 -11
  58. package/dist/docs/navigation-link.md +5 -3
  59. package/dist/docs/order-cancel.md +3 -1
  60. package/dist/docs/order-delivery-address.md +7 -5
  61. package/dist/docs/order-delivery-group.md +1 -3
  62. package/dist/docs/order-details-back.md +1 -1
  63. package/dist/docs/order-details-header.md +1 -4
  64. package/dist/docs/order-invoice-download.md +60 -0
  65. package/dist/docs/order-list-row.md +1 -1
  66. package/dist/docs/order-list-search.md +13 -20
  67. package/dist/docs/order-list-views.md +11 -17
  68. package/dist/docs/order-list.md +12 -5
  69. package/dist/docs/order-payment.md +9 -7
  70. package/dist/docs/order-placed-date.md +1 -1
  71. package/dist/docs/order-placed-payment-summary.md +28 -15
  72. package/dist/docs/order-placed.md +49 -14
  73. package/dist/docs/order-progress.md +1 -1
  74. package/dist/docs/order-status-badge.md +20 -9
  75. package/dist/docs/order-summary.md +2 -2
  76. package/dist/docs/order-tracking-link.md +58 -0
  77. package/dist/docs/payment-method-badges.md +32 -6
  78. package/dist/docs/payment-methods.md +2 -2
  79. package/dist/docs/payment.md +36 -17
  80. package/dist/docs/phone-field.md +4 -4
  81. package/dist/docs/place-order.md +84 -36
  82. package/dist/docs/postal-code-field.md +3 -1
  83. package/dist/docs/pricing.md +21 -23
  84. package/dist/docs/product-gallery.md +19 -20
  85. package/dist/docs/product-information.md +14 -10
  86. package/dist/docs/product-list.md +7 -6
  87. package/dist/docs/product-shelf.md +7 -1
  88. package/dist/docs/promotion.md +4 -2
  89. package/dist/docs/region.md +23 -15
  90. package/dist/docs/save-card.md +7 -6
  91. package/dist/docs/saved-cards.md +65 -36
  92. package/dist/docs/select.md +3 -4
  93. package/dist/docs/shipping-address.md +57 -21
  94. package/dist/docs/shipping-simulator.md +53 -15
  95. package/dist/docs/sign-in-disclosure.md +176 -0
  96. package/dist/docs/sign-in-form.md +78 -47
  97. package/dist/docs/sign-in-redirect.md +5 -3
  98. package/dist/docs/sign-in.md +173 -0
  99. package/dist/docs/toast.md +45 -16
  100. package/dist/docs/variant-selector.md +15 -11
  101. package/dist/graphql/types.d.ts +4 -14
  102. package/dist/index.d.ts +3 -2
  103. package/dist/internal/client.d.ts +4 -3
  104. package/dist/internal/client.js +5 -2
  105. package/dist/internal/server.d.ts +10 -5
  106. package/dist/internal/server.js +9 -4
  107. package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +250 -66
  108. package/dist/matter/access-code-sign-in/access-code-sign-in.js +459 -188
  109. package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -1
  110. package/dist/matter/account-address-book/account-address-book-delete.d.ts +78 -40
  111. package/dist/matter/account-address-book/account-address-book-delete.js +86 -50
  112. package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -1
  113. package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +21 -4
  114. package/dist/matter/account-address-book/account-address-book-deliverability.js +45 -17
  115. package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -1
  116. package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +74 -19
  117. package/dist/matter/account-address-book/account-address-book-form-parts.js +77 -26
  118. package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -1
  119. package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +27 -6
  120. package/dist/matter/account-address-book/account-address-book-profile-notice.js +55 -28
  121. package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -1
  122. package/dist/matter/account-address-book/account-address-book.d.ts +67 -14
  123. package/dist/matter/account-address-book/account-address-book.js +74 -33
  124. package/dist/matter/account-address-book/account-address-book.js.map +1 -1
  125. package/dist/matter/account-address-book/account-address-country-switch.js +3 -3
  126. package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -1
  127. package/dist/matter/account-address-book/account-address-country.d.ts +66 -20
  128. package/dist/matter/account-address-book/account-address-country.js +83 -49
  129. package/dist/matter/account-address-book/account-address-country.js.map +1 -1
  130. package/dist/matter/account-address-book/account-address-form-context.d.ts +8 -4
  131. package/dist/matter/account-address-book/account-address-form-context.js.map +1 -1
  132. package/dist/matter/account-address-book/account-address-form.d.ts +468 -45
  133. package/dist/matter/account-address-book/account-address-form.js +518 -155
  134. package/dist/matter/account-address-book/account-address-form.js.map +1 -1
  135. package/dist/matter/account-address-book/account-address-record.d.ts +27 -6
  136. package/dist/matter/account-address-book/account-address-record.js +32 -17
  137. package/dist/matter/account-address-book/account-address-record.js.map +1 -1
  138. package/dist/matter/account-menu/account-menu.d.ts +34 -17
  139. package/dist/matter/account-menu/account-menu.js +46 -54
  140. package/dist/matter/account-menu/account-menu.js.map +1 -1
  141. package/dist/matter/account-menu-identity/account-menu-identity.js +1 -1
  142. package/dist/matter/account-saved-cards/account-saved-cards.d.ts +463 -0
  143. package/dist/matter/account-saved-cards/account-saved-cards.js +1011 -0
  144. package/dist/matter/account-saved-cards/account-saved-cards.js.map +1 -0
  145. package/dist/matter/billing-address/billing-address.d.ts +156 -74
  146. package/dist/matter/billing-address/billing-address.js +227 -156
  147. package/dist/matter/billing-address/billing-address.js.map +1 -1
  148. package/dist/matter/breadcrumb/breadcrumb.d.ts +21 -3
  149. package/dist/matter/breadcrumb/breadcrumb.js +24 -9
  150. package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
  151. package/dist/matter/buy-button/buy-button.d.ts +8 -11
  152. package/dist/matter/buy-button/buy-button.js +10 -19
  153. package/dist/matter/buy-button/buy-button.js.map +1 -1
  154. package/dist/matter/card-entry/card-capture.js +12 -4
  155. package/dist/matter/card-entry/card-capture.js.map +1 -1
  156. package/dist/matter/card-entry/card-entry.d.ts +123 -32
  157. package/dist/matter/card-entry/card-entry.js +348 -221
  158. package/dist/matter/card-entry/card-entry.js.map +1 -1
  159. package/dist/matter/cart/cart-namespace.d.ts +11 -1
  160. package/dist/matter/cart/cart-namespace.js +11 -1
  161. package/dist/matter/cart/cart-namespace.js.map +1 -1
  162. package/dist/matter/cart/cart.d.ts +416 -45
  163. package/dist/matter/cart/cart.js +782 -101
  164. package/dist/matter/cart/cart.js.map +1 -1
  165. package/dist/matter/cart-destination/cart-destination.d.ts +233 -0
  166. package/dist/matter/cart-destination/cart-destination.js +703 -0
  167. package/dist/matter/cart-destination/cart-destination.js.map +1 -0
  168. package/dist/matter/cart-item/cart-item.d.ts +145 -16
  169. package/dist/matter/cart-item/cart-item.js +230 -54
  170. package/dist/matter/cart-item/cart-item.js.map +1 -1
  171. package/dist/matter/cart-item-compositions/cart-item-compositions.js +1 -1
  172. package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -1
  173. package/dist/matter/cart-item-customizations/cart-item-customizations.js +1 -1
  174. package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -1
  175. package/dist/matter/cart-item-discounts/cart-item-discounts.js +1 -1
  176. package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -1
  177. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +1 -1
  178. package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -1
  179. package/dist/matter/cart-item-variations/cart-item-variations.js +1 -1
  180. package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -1
  181. package/dist/matter/cart-totalizer/cart-totalizer.d.ts +43 -9
  182. package/dist/matter/cart-totalizer/cart-totalizer.js +49 -19
  183. package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -1
  184. package/dist/matter/challenge-return/challenge-return.d.ts +62 -0
  185. package/dist/matter/challenge-return/challenge-return.js +241 -0
  186. package/dist/matter/challenge-return/challenge-return.js.map +1 -0
  187. package/dist/matter/client-preferences/client-preferences-fieldset.d.ts +86 -17
  188. package/dist/matter/client-preferences/client-preferences-fieldset.js +126 -54
  189. package/dist/matter/client-preferences/client-preferences-fieldset.js.map +1 -1
  190. package/dist/matter/client-preferences/client-preferences.d.ts +50 -7
  191. package/dist/matter/client-preferences/client-preferences.js +84 -15
  192. package/dist/matter/client-preferences/client-preferences.js.map +1 -1
  193. package/dist/matter/client-profile/client-profile.d.ts +44 -9
  194. package/dist/matter/client-profile/client-profile.js +64 -24
  195. package/dist/matter/client-profile/client-profile.js.map +1 -1
  196. package/dist/matter/client-profile-form/client-profile-fieldset.d.ts +119 -22
  197. package/dist/matter/client-profile-form/client-profile-fieldset.js +161 -73
  198. package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
  199. package/dist/matter/delivery-options/delivery-options-accordion.d.ts +49 -4
  200. package/dist/matter/delivery-options/delivery-options-accordion.js +67 -14
  201. package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -1
  202. package/dist/matter/delivery-options/delivery-options-controller.d.ts +69 -9
  203. package/dist/matter/delivery-options/delivery-options-controller.js +80 -14
  204. package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -1
  205. package/dist/matter/delivery-options/delivery-options.d.ts +37 -2
  206. package/dist/matter/delivery-options/delivery-options.js +75 -12
  207. package/dist/matter/delivery-options/delivery-options.js.map +1 -1
  208. package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +1 -0
  209. package/dist/matter/delivery-options/use-delivery-option-selection.js +1 -1
  210. package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -1
  211. package/dist/matter/email-identification/email-identification.d.ts +25 -3
  212. package/dist/matter/email-identification/email-identification.js +49 -12
  213. package/dist/matter/email-identification/email-identification.js.map +1 -1
  214. package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +85 -10
  215. package/dist/matter/free-shipping-progress/free-shipping-progress.js +153 -53
  216. package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -1
  217. package/dist/matter/identity-edit/identity-edit.d.ts +52 -10
  218. package/dist/matter/identity-edit/identity-edit.js +47 -19
  219. package/dist/matter/identity-edit/identity-edit.js.map +1 -1
  220. package/dist/matter/identity-summary/identity-summary.d.ts +76 -22
  221. package/dist/matter/identity-summary/identity-summary.js +95 -45
  222. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  223. package/dist/matter/installments/installments-select.d.ts +98 -16
  224. package/dist/matter/installments/installments-select.js +156 -48
  225. package/dist/matter/installments/installments-select.js.map +1 -1
  226. package/dist/matter/installments/installments.d.ts +96 -16
  227. package/dist/matter/installments/installments.js +115 -40
  228. package/dist/matter/installments/installments.js.map +1 -1
  229. package/dist/matter/installments/use-installments-selection.d.ts +1 -0
  230. package/dist/matter/installments/use-installments-selection.js +8 -3
  231. package/dist/matter/installments/use-installments-selection.js.map +1 -1
  232. package/dist/matter/my-account-profile/my-account-profile.d.ts +358 -103
  233. package/dist/matter/my-account-profile/my-account-profile.js +370 -174
  234. package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
  235. package/dist/matter/order-cancel/order-cancel.d.ts +65 -19
  236. package/dist/matter/order-cancel/order-cancel.js +118 -51
  237. package/dist/matter/order-cancel/order-cancel.js.map +1 -1
  238. package/dist/matter/order-delivery-address/order-delivery-address.d.ts +8 -18
  239. package/dist/matter/order-delivery-address/order-delivery-address.js +14 -23
  240. package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -1
  241. package/dist/matter/order-delivery-group/order-delivery-group.d.ts +40 -24
  242. package/dist/matter/order-delivery-group/order-delivery-group.js +64 -74
  243. package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -1
  244. package/dist/matter/order-details-header/order-details-header.d.ts +32 -15
  245. package/dist/matter/order-details-header/order-details-header.js +66 -58
  246. package/dist/matter/order-details-header/order-details-header.js.map +1 -1
  247. package/dist/matter/order-invoice-download/order-invoice-download.d.ts +78 -0
  248. package/dist/matter/order-invoice-download/order-invoice-download.js +173 -0
  249. package/dist/matter/order-invoice-download/order-invoice-download.js.map +1 -0
  250. package/dist/matter/order-list/order-list.d.ts +164 -19
  251. package/dist/matter/order-list/order-list.js +229 -87
  252. package/dist/matter/order-list/order-list.js.map +1 -1
  253. package/dist/matter/order-list-row/order-list-row.d.ts +6 -1
  254. package/dist/matter/order-list-row/order-list-row.js +3 -2
  255. package/dist/matter/order-list-row/order-list-row.js.map +1 -1
  256. package/dist/matter/order-list-search/order-list-search.d.ts +18 -26
  257. package/dist/matter/order-list-search/order-list-search.js +30 -69
  258. package/dist/matter/order-list-search/order-list-search.js.map +1 -1
  259. package/dist/matter/order-list-views/order-list-views.d.ts +15 -22
  260. package/dist/matter/order-list-views/order-list-views.js +22 -68
  261. package/dist/matter/order-list-views/order-list-views.js.map +1 -1
  262. package/dist/matter/order-payment/order-payment.d.ts +33 -10
  263. package/dist/matter/order-payment/order-payment.js +44 -39
  264. package/dist/matter/order-payment/order-payment.js.map +1 -1
  265. package/dist/matter/order-placed/order-placed-deliveries.d.ts +144 -12
  266. package/dist/matter/order-placed/order-placed-deliveries.js +115 -40
  267. package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -1
  268. package/dist/matter/order-placed/order-placed.d.ts +198 -31
  269. package/dist/matter/order-placed/order-placed.js +230 -139
  270. package/dist/matter/order-placed/order-placed.js.map +1 -1
  271. package/dist/matter/order-placed-date/order-placed-date.d.ts +5 -8
  272. package/dist/matter/order-placed-date/order-placed-date.js +7 -8
  273. package/dist/matter/order-placed-date/order-placed-date.js.map +1 -1
  274. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +90 -17
  275. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +93 -117
  276. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
  277. package/dist/matter/order-progress/order-progress.d.ts +19 -8
  278. package/dist/matter/order-progress/order-progress.js +37 -45
  279. package/dist/matter/order-progress/order-progress.js.map +1 -1
  280. package/dist/matter/order-summary/order-summary.d.ts +19 -9
  281. package/dist/matter/order-summary/order-summary.js +38 -44
  282. package/dist/matter/order-summary/order-summary.js.map +1 -1
  283. package/dist/matter/order-tracking-link/order-tracking-link.d.ts +43 -0
  284. package/dist/matter/order-tracking-link/order-tracking-link.js +107 -0
  285. package/dist/matter/order-tracking-link/order-tracking-link.js.map +1 -0
  286. package/dist/matter/payment/payment-card-capture.js +17 -10
  287. package/dist/matter/payment/payment-card-capture.js.map +1 -1
  288. package/dist/matter/payment/payment-controller.d.ts +4 -2
  289. package/dist/matter/payment/payment-controller.js +30 -9
  290. package/dist/matter/payment/payment-controller.js.map +1 -1
  291. package/dist/matter/payment/payment-method-badges.js +1 -1
  292. package/dist/matter/payment/payment.d.ts +69 -19
  293. package/dist/matter/payment/payment.js +101 -35
  294. package/dist/matter/payment/payment.js.map +1 -1
  295. package/dist/matter/payment/use-payment-method-selection.d.ts +25 -4
  296. package/dist/matter/payment/use-payment-method-selection.js +94 -32
  297. package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
  298. package/dist/matter/payment/use-payment-submit-gate.d.ts +14 -3
  299. package/dist/matter/payment/use-payment-submit-gate.js +47 -8
  300. package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
  301. package/dist/matter/place-order/place-order.d.ts +171 -57
  302. package/dist/matter/place-order/place-order.js +376 -185
  303. package/dist/matter/place-order/place-order.js.map +1 -1
  304. package/dist/matter/pricing/pricing.d.ts +152 -13
  305. package/dist/matter/pricing/pricing.js +153 -52
  306. package/dist/matter/pricing/pricing.js.map +1 -1
  307. package/dist/matter/product-information/product-information.d.ts +27 -4
  308. package/dist/matter/product-information/product-information.js +32 -15
  309. package/dist/matter/product-information/product-information.js.map +1 -1
  310. package/dist/matter/product-list/product-list.d.ts +24 -6
  311. package/dist/matter/product-list/product-list.js +32 -26
  312. package/dist/matter/product-list/product-list.js.map +1 -1
  313. package/dist/matter/product-shelf/product-shelf.d.ts +8 -3
  314. package/dist/matter/product-shelf/product-shelf.js +111 -10
  315. package/dist/matter/product-shelf/product-shelf.js.map +1 -1
  316. package/dist/matter/region/region.d.ts +33 -16
  317. package/dist/matter/region/region.js +59 -52
  318. package/dist/matter/region/region.js.map +1 -1
  319. package/dist/matter/save-card/save-card.d.ts +43 -8
  320. package/dist/matter/save-card/save-card.js +61 -23
  321. package/dist/matter/save-card/save-card.js.map +1 -1
  322. package/dist/matter/saved-cards/saved-cards.d.ts +113 -21
  323. package/dist/matter/saved-cards/saved-cards.js +349 -77
  324. package/dist/matter/saved-cards/saved-cards.js.map +1 -1
  325. package/dist/matter/shipping-address/address-payload.js +25 -0
  326. package/dist/matter/shipping-address/address-payload.js.map +1 -0
  327. package/dist/matter/shipping-address/country-descriptors.js +71 -71
  328. package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
  329. package/dist/matter/shipping-address/library-country-descriptors.js +136 -0
  330. package/dist/matter/shipping-address/library-country-descriptors.js.map +1 -0
  331. package/dist/matter/shipping-address/shipping-address.d.ts +312 -45
  332. package/dist/matter/shipping-address/shipping-address.js +443 -188
  333. package/dist/matter/shipping-address/shipping-address.js.map +1 -1
  334. package/dist/matter/shipping-simulator/shipping-simulator.d.ts +251 -25
  335. package/dist/matter/shipping-simulator/shipping-simulator.js +261 -51
  336. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
  337. package/dist/matter/sign-in/sign-in.d.ts +108 -0
  338. package/dist/matter/sign-in/sign-in.js +285 -0
  339. package/dist/matter/sign-in/sign-in.js.map +1 -0
  340. package/dist/matter/sign-in-disclosure/sign-in-disclosure.d.ts +81 -0
  341. package/dist/matter/sign-in-disclosure/sign-in-disclosure.js +232 -0
  342. package/dist/matter/sign-in-disclosure/sign-in-disclosure.js.map +1 -0
  343. package/dist/matter/sign-in-form/sign-in-form.d.ts +93 -62
  344. package/dist/matter/sign-in-form/sign-in-form.js +134 -144
  345. package/dist/matter/sign-in-form/sign-in-form.js.map +1 -1
  346. package/dist/particles/binding-switcher/binding-switcher.d.ts +59 -0
  347. package/dist/particles/binding-switcher/binding-switcher.js +194 -0
  348. package/dist/particles/binding-switcher/binding-switcher.js.map +1 -0
  349. package/dist/particles/card-summary/card-network.d.ts +17 -0
  350. package/dist/particles/card-summary/card-network.js +25 -0
  351. package/dist/particles/card-summary/card-network.js.map +1 -0
  352. package/dist/particles/card-summary/card-summary.d.ts +113 -0
  353. package/dist/particles/card-summary/card-summary.js +221 -0
  354. package/dist/particles/card-summary/card-summary.js.map +1 -0
  355. package/dist/particles/carousel/carousel.d.ts +99 -11
  356. package/dist/particles/carousel/carousel.js +103 -35
  357. package/dist/particles/carousel/carousel.js.map +1 -1
  358. package/dist/particles/copy-text/copy-text.js +5 -15
  359. package/dist/particles/copy-text/copy-text.js.map +1 -1
  360. package/dist/particles/dialog/dialog.d.ts +14 -6
  361. package/dist/particles/dialog/dialog.js +6 -3
  362. package/dist/particles/dialog/dialog.js.map +1 -1
  363. package/dist/particles/drawer/drawer.js +1 -1
  364. package/dist/particles/drawer/drawer.js.map +1 -1
  365. package/dist/particles/email-field/email-field.d.ts +2 -1
  366. package/dist/particles/email-field/email-field.js +2 -1
  367. package/dist/particles/email-field/email-field.js.map +1 -1
  368. package/dist/particles/footer-link-group/footer-link-group.js +1 -0
  369. package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
  370. package/dist/particles/footer-social/footer-social.d.ts +1 -1
  371. package/dist/particles/footer-social/footer-social.js +1 -1
  372. package/dist/particles/footer-social/footer-social.js.map +1 -1
  373. package/dist/particles/form/form.d.ts +85 -13
  374. package/dist/particles/form/form.js +91 -42
  375. package/dist/particles/form/form.js.map +1 -1
  376. package/dist/particles/gallery/gallery.d.ts +129 -12
  377. package/dist/particles/gallery/gallery.js +121 -34
  378. package/dist/particles/gallery/gallery.js.map +1 -1
  379. package/dist/particles/incentives/incentives.d.ts +1 -1
  380. package/dist/particles/incentives/incentives.js +1 -1
  381. package/dist/particles/incentives/incentives.js.map +1 -1
  382. package/dist/particles/order-details-back/order-details-back.d.ts +5 -3
  383. package/dist/particles/order-details-back/order-details-back.js +8 -10
  384. package/dist/particles/order-details-back/order-details-back.js.map +1 -1
  385. package/dist/particles/order-status-badge/order-status-badge.d.ts +3 -3
  386. package/dist/particles/order-status-badge/order-status-badge.js +4 -20
  387. package/dist/particles/order-status-badge/order-status-badge.js.map +1 -1
  388. package/dist/particles/password-field/password-field.d.ts +1 -1
  389. package/dist/particles/password-field/password-field.js +2 -4
  390. package/dist/particles/password-field/password-field.js.map +1 -1
  391. package/dist/particles/payment-methods/payment-methods.d.ts +1 -1
  392. package/dist/particles/payment-methods/payment-methods.js +1 -1
  393. package/dist/particles/payment-methods/payment-methods.js.map +1 -1
  394. package/dist/particles/phone-field/phone-field.d.ts +4 -4
  395. package/dist/particles/phone-field/phone-field.js +8 -11
  396. package/dist/particles/phone-field/phone-field.js.map +1 -1
  397. package/dist/particles/spinner/spinner.d.ts +24 -4
  398. package/dist/particles/spinner/spinner.js +25 -9
  399. package/dist/particles/spinner/spinner.js.map +1 -1
  400. package/dist/particles/switch/switch.d.ts +4 -1
  401. package/dist/particles/switch/switch.js +3 -1
  402. package/dist/particles/switch/switch.js.map +1 -1
  403. package/dist/particles/toast/toast.d.ts +49 -9
  404. package/dist/particles/toast/toast.js +81 -15
  405. package/dist/particles/toast/toast.js.map +1 -1
  406. package/dist/schema.graphql +461 -89
  407. package/dist/sdk/actions/index.d.ts +3 -1
  408. package/dist/sdk/actions/index.js +3 -1
  409. package/dist/sdk/actions/locale-action-provider.d.ts +16 -0
  410. package/dist/sdk/actions/locale-action-provider.js +20 -0
  411. package/dist/sdk/actions/locale-action-provider.js.map +1 -0
  412. package/dist/sdk/actions/saved-card-action-provider.d.ts +12 -0
  413. package/dist/sdk/actions/saved-card-action-provider.js +16 -0
  414. package/dist/sdk/actions/saved-card-action-provider.js.map +1 -0
  415. package/dist/sdk/actions/types.d.ts +6 -2
  416. package/dist/sdk/address/address-fields.js +4 -4
  417. package/dist/sdk/address/address-fields.js.map +1 -1
  418. package/dist/sdk/address/constants.js +1 -6
  419. package/dist/sdk/address/constants.js.map +1 -1
  420. package/dist/sdk/address/messages.js +44 -44
  421. package/dist/sdk/address/messages.js.map +1 -1
  422. package/dist/sdk/address/postal-code.js +15 -2
  423. package/dist/sdk/address/postal-code.js.map +1 -1
  424. package/dist/sdk/address/types.d.ts +5 -3
  425. package/dist/sdk/address/validate-address.js +3 -3
  426. package/dist/sdk/address/validate-address.js.map +1 -1
  427. package/dist/sdk/analytics/use-analytics-actions.d.ts +1 -1
  428. package/dist/sdk/analytics/use-analytics-actions.js.map +1 -1
  429. package/dist/sdk/cache/storefront-cache.js +2 -1
  430. package/dist/sdk/cache/storefront-cache.js.map +1 -1
  431. package/dist/sdk/cart/operations.d.ts +2 -1
  432. package/dist/sdk/cart/operations.js +55 -1
  433. package/dist/sdk/cart/operations.js.map +1 -1
  434. package/dist/sdk/cart/optimistic.d.ts +30 -7
  435. package/dist/sdk/cart/optimistic.js +78 -41
  436. package/dist/sdk/cart/optimistic.js.map +1 -1
  437. package/dist/sdk/cart/use-cart-actions.d.ts +7 -0
  438. package/dist/sdk/cart/use-cart-actions.js +61 -15
  439. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  440. package/dist/sdk/cart/use-cart-sync-sales-channel.js +70 -0
  441. package/dist/sdk/cart/use-cart-sync-sales-channel.js.map +1 -0
  442. package/dist/sdk/data/index.js +2 -2
  443. package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
  444. package/dist/sdk/generated/gql.js +16 -12
  445. package/dist/sdk/generated/gql.js.map +1 -1
  446. package/dist/sdk/generated/graphql.d.ts +197 -51
  447. package/dist/sdk/generated/graphql.js +2318 -91
  448. package/dist/sdk/generated/graphql.js.map +1 -1
  449. package/dist/sdk/i18n/format-error-code.js +23 -0
  450. package/dist/sdk/i18n/format-error-code.js.map +1 -0
  451. package/dist/sdk/i18n/message-formatter.d.ts +22 -0
  452. package/dist/sdk/i18n/message-formatter.js +140 -0
  453. package/dist/sdk/i18n/message-formatter.js.map +1 -0
  454. package/dist/sdk/i18n/use-message-formatter.d.ts +8 -0
  455. package/dist/sdk/i18n/use-message-formatter.js +18 -0
  456. package/dist/sdk/i18n/use-message-formatter.js.map +1 -0
  457. package/dist/sdk/identity/use-identity-actions.js.map +1 -1
  458. package/dist/sdk/locale/binding-switch-provider.d.ts +13 -0
  459. package/dist/sdk/locale/binding-switch-provider.js +20 -0
  460. package/dist/sdk/locale/binding-switch-provider.js.map +1 -0
  461. package/dist/sdk/locale/use-locale-actions.d.ts +16 -0
  462. package/dist/sdk/locale/use-locale-actions.js +70 -0
  463. package/dist/sdk/locale/use-locale-actions.js.map +1 -0
  464. package/dist/sdk/navigation/binding-switch.d.ts +39 -0
  465. package/dist/sdk/navigation/binding-switch.js +129 -0
  466. package/dist/sdk/navigation/binding-switch.js.map +1 -0
  467. package/dist/sdk/navigation/decode-route-params.d.ts +11 -0
  468. package/dist/sdk/navigation/decode-route-params.js +32 -0
  469. package/dist/sdk/navigation/decode-route-params.js.map +1 -0
  470. package/dist/sdk/navigation/redirect.d.ts +2 -0
  471. package/dist/sdk/navigation/redirect.js +19 -1
  472. package/dist/sdk/navigation/redirect.js.map +1 -1
  473. package/dist/sdk/navigation/types.d.ts +13 -0
  474. package/dist/sdk/payment/bin-format.js +20 -0
  475. package/dist/sdk/payment/bin-format.js.map +1 -0
  476. package/dist/sdk/payment/challenge-return.js +37 -0
  477. package/dist/sdk/payment/challenge-return.js.map +1 -0
  478. package/dist/sdk/payment/confirmation-last-four.js +39 -0
  479. package/dist/sdk/payment/confirmation-last-four.js.map +1 -0
  480. package/dist/sdk/payment/gateway.d.ts +1 -1
  481. package/dist/sdk/payment/gateway.js +8 -2
  482. package/dist/sdk/payment/gateway.js.map +1 -1
  483. package/dist/sdk/payment/operations.d.ts +1 -0
  484. package/dist/sdk/payment/operations.js +28 -6
  485. package/dist/sdk/payment/operations.js.map +1 -1
  486. package/dist/sdk/payment/resumed-purchase.d.ts +1 -0
  487. package/dist/sdk/payment/resumed-purchase.js +119 -0
  488. package/dist/sdk/payment/resumed-purchase.js.map +1 -0
  489. package/dist/sdk/payment/security-code-mask.js +16 -23
  490. package/dist/sdk/payment/security-code-mask.js.map +1 -1
  491. package/dist/sdk/payment/submission-registry.js +6 -2
  492. package/dist/sdk/payment/submission-registry.js.map +1 -1
  493. package/dist/sdk/payment/use-payment-actions.d.ts +18 -3
  494. package/dist/sdk/payment/use-payment-actions.js +23 -3
  495. package/dist/sdk/payment/use-payment-actions.js.map +1 -1
  496. package/dist/sdk/payment/use-place-order.d.ts +10 -2
  497. package/dist/sdk/payment/use-place-order.js +138 -76
  498. package/dist/sdk/payment/use-place-order.js.map +1 -1
  499. package/dist/sdk/provider/storefront-provider.d.ts +1 -7
  500. package/dist/sdk/provider/storefront-provider.js +4 -11
  501. package/dist/sdk/provider/storefront-provider.js.map +1 -1
  502. package/dist/sdk/saved-cards/operations.d.ts +16 -0
  503. package/dist/sdk/saved-cards/operations.js +41 -0
  504. package/dist/sdk/saved-cards/operations.js.map +1 -0
  505. package/dist/sdk/saved-cards/use-saved-card-actions.d.ts +26 -0
  506. package/dist/sdk/saved-cards/use-saved-card-actions.js +86 -0
  507. package/dist/sdk/saved-cards/use-saved-card-actions.js.map +1 -0
  508. package/dist/sdk/seo/entity-landing.d.ts +24 -0
  509. package/dist/sdk/seo/entity-landing.js +30 -0
  510. package/dist/sdk/seo/entity-landing.js.map +1 -0
  511. package/dist/sdk/seo/page-alternates.d.ts +8 -5
  512. package/dist/sdk/seo/page-alternates.js +11 -14
  513. package/dist/sdk/seo/page-alternates.js.map +1 -1
  514. package/dist/sdk/seo/search-landing.d.ts +42 -0
  515. package/dist/sdk/seo/search-landing.js +85 -0
  516. package/dist/sdk/seo/search-landing.js.map +1 -0
  517. package/dist/sdk/session/mock-session.d.ts +9 -0
  518. package/dist/sdk/session/mock-session.js +31 -0
  519. package/dist/sdk/session/mock-session.js.map +1 -0
  520. package/dist/sdk/session/read-server-session.d.ts +3 -0
  521. package/dist/sdk/session/read-server-session.js +5 -0
  522. package/dist/sdk/session/read-server-session.js.map +1 -1
  523. package/dist/sdk/session/return-path-segment.d.ts +10 -0
  524. package/dist/sdk/session/return-path-segment.js +15 -0
  525. package/dist/sdk/session/return-path-segment.js.map +1 -0
  526. package/dist/sdk/session/use-session-actions.js.map +1 -1
  527. package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
  528. package/dist/sdk/shipping/shipping-operations.js +13 -0
  529. package/dist/sdk/shipping/shipping-operations.js.map +1 -1
  530. package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -1
  531. package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
  532. package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -1
  533. package/dist/sdk/state/cart.d.ts +9 -2
  534. package/dist/sdk/state/cart.js +9 -2
  535. package/dist/sdk/state/cart.js.map +1 -1
  536. package/dist/utils/safe-href.d.ts +2 -0
  537. package/package.json +4 -3
  538. package/skills/storefront-asset/SKILL.md +2 -2
  539. package/skills/storefront-asset/references/api-side.md +27 -14
  540. package/skills/storefront-asset/references/findings.md +5 -2
  541. package/src/styles/tailwind.css +9 -2
  542. package/dist/matter/shipping-address/country-descriptors.d.ts +0 -1
  543. package/dist/message-locales.json +0 -7
  544. package/dist/sdk/i18n/client.d.ts +0 -4
  545. package/dist/sdk/i18n/client.js +0 -4
  546. package/dist/sdk/i18n/locales.d.ts +0 -8
  547. package/dist/sdk/i18n/locales.js +0 -57
  548. package/dist/sdk/i18n/locales.js.map +0 -1
  549. package/dist/sdk/i18n/messages/en-US.js +0 -164
  550. package/dist/sdk/i18n/messages/en-US.js.map +0 -1
  551. package/dist/sdk/i18n/messages/en-US.json +0 -159
  552. package/dist/sdk/i18n/messages/en-US.json.d.ts +0 -163
  553. package/dist/sdk/i18n/messages/es-ES.js +0 -164
  554. package/dist/sdk/i18n/messages/es-ES.js.map +0 -1
  555. package/dist/sdk/i18n/messages/es-ES.json +0 -159
  556. package/dist/sdk/i18n/messages/pt-BR.js +0 -164
  557. package/dist/sdk/i18n/messages/pt-BR.js.map +0 -1
  558. package/dist/sdk/i18n/messages/pt-BR.json +0 -159
  559. package/dist/sdk/i18n/provider.d.ts +0 -1
  560. package/dist/sdk/i18n/provider.js +0 -30
  561. package/dist/sdk/i18n/provider.js.map +0 -1
  562. package/dist/sdk/i18n/server.d.ts +0 -28
  563. package/dist/sdk/i18n/server.js +0 -59
  564. package/dist/sdk/i18n/server.js.map +0 -1
  565. package/dist/utils/resolve-authored-copy.js +0 -18
  566. package/dist/utils/resolve-authored-copy.js.map +0 -1
  567. package/dist/utils/substitute-template.js +0 -33
  568. package/dist/utils/substitute-template.js.map +0 -1
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { defineComponent } from "../../core/dist/define-component.js";
3
+ import { defineContentType } from "../../core/dist/define-content-type.js";
3
4
  import "../../core/dist/index.js";
4
5
  import { useStorefrontFormatters } from "../../sdk/format/client.js";
5
- import { useIntl } from "../../sdk/i18n/client.js";
6
+ import { useMessageFormatter } from "../../sdk/i18n/use-message-formatter.js";
6
7
  import { DataOverrideContext, useDataOverride } from "../../sdk/data/data-override-context.js";
7
8
  import { AddressSummaryRoot } from "../../particles/address-summary/address-summary.js";
8
9
  import { CartItemRoot } from "../cart-item/cart-item.js";
9
10
  import { CartItemCompositions } from "../cart-item-compositions/cart-item-compositions.js";
10
11
  import { ESTIMATE_MESSAGE } from "../shipping-simulator/shipping-simulator.js";
11
- import { substituteTemplate } from "../../utils/substitute-template.js";
12
12
  import { useOrderPlaced } from "./order-placed.js";
13
13
  import { createContext, useContext } from "react";
14
14
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -23,7 +23,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
23
23
  */
24
24
  const fragment = `
25
25
  fragment OrderPlacedDeliveryListData on Query {
26
- order(orderGroup: $orderGroup) {
26
+ order(id: $orderId) {
27
27
  __typename
28
28
  id
29
29
  deliveries {
@@ -214,39 +214,115 @@ const OrderPlacedDeliveryListDefinition = defineComponent({
214
214
  schema: {},
215
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
216
  });
217
+ const OrderPlacedDeliveryGroupContent = defineContentType({
218
+ id: "order-placed-delivery-group",
219
+ title: "Order Placed Delivery Group",
220
+ description: "The dated promise, the relative estimate sentences (one per unit), the item count and the pickup point of a placed order's delivery.",
221
+ schema: {
222
+ type: "object",
223
+ additionalProperties: false,
224
+ properties: {
225
+ dateTemplate: {
226
+ type: "string",
227
+ title: "Dated promise",
228
+ description: "`date` is the formatted estimated date.",
229
+ format: "icu-message",
230
+ messageSource: "Arrives by {date}",
231
+ messageArguments: {
232
+ type: "object",
233
+ properties: { date: { type: "string" } }
234
+ },
235
+ messageExample: { date: "Mar 12, 2026" }
236
+ },
237
+ itemCountTemplate: {
238
+ type: "string",
239
+ title: "Item count",
240
+ format: "icu-message",
241
+ messageSource: "{count, plural, one {# item} other {# items}}",
242
+ messageArguments: {
243
+ type: "object",
244
+ properties: { count: { type: "integer" } }
245
+ },
246
+ messageExample: { count: 3 }
247
+ },
248
+ pickupPointTemplate: {
249
+ type: "string",
250
+ title: "Pickup point",
251
+ description: "`name` is the pickup point name.",
252
+ format: "icu-message",
253
+ messageSource: "Pickup at {name}",
254
+ messageArguments: {
255
+ type: "object",
256
+ properties: { name: { type: "string" } }
257
+ },
258
+ messageExample: { name: "Downtown store" }
259
+ },
260
+ today: {
261
+ type: "string",
262
+ title: "Arrives today",
263
+ format: "icu-message",
264
+ messageSource: "arrives today"
265
+ },
266
+ inBusinessDays: {
267
+ type: "string",
268
+ title: "In business days",
269
+ format: "icu-message",
270
+ messageSource: "in {days, plural, one {# business day} other {# business days}}",
271
+ messageArguments: {
272
+ type: "object",
273
+ properties: { days: { type: "integer" } }
274
+ },
275
+ messageExample: { days: 3 }
276
+ },
277
+ inDays: {
278
+ type: "string",
279
+ title: "In days",
280
+ format: "icu-message",
281
+ messageSource: "in {days, plural, one {# day} other {# days}}",
282
+ messageArguments: {
283
+ type: "object",
284
+ properties: { days: { type: "integer" } }
285
+ },
286
+ messageExample: { days: 3 }
287
+ },
288
+ inHours: {
289
+ type: "string",
290
+ title: "In hours",
291
+ format: "icu-message",
292
+ messageSource: "in {hours, plural, one {# hour} other {# hours}}",
293
+ messageArguments: {
294
+ type: "object",
295
+ properties: { hours: { type: "integer" } }
296
+ },
297
+ messageExample: { hours: 4 }
298
+ },
299
+ inMinutes: {
300
+ type: "string",
301
+ title: "In minutes",
302
+ format: "icu-message",
303
+ messageSource: "in {minutes, plural, one {# minute} other {# minutes}}",
304
+ messageArguments: {
305
+ type: "object",
306
+ properties: { minutes: { type: "integer" } }
307
+ },
308
+ messageExample: { minutes: 30 }
309
+ }
310
+ }
311
+ }
312
+ });
217
313
  const OrderPlacedDeliveryGroupDefinition = defineComponent({
218
314
  name: "OrderPlacedDeliveryGroup",
219
315
  importPath: "@vtex/faststore/components",
220
316
  component: OrderPlacedDeliveryGroup,
317
+ content: OrderPlacedDeliveryGroupContent,
221
318
  requiresContext: "order-delivery",
222
319
  providesContext: "address-summary",
223
320
  editor: {
224
321
  label: "Order Placed Delivery Group",
225
322
  category: "commerce"
226
323
  },
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."
324
+ schema: {},
325
+ 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. dateTemplate, itemCountTemplate and pickupPointTemplate are $content ICU messages; itemCountTemplate words the count with {count, plural, …}. 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
326
  });
251
327
  const OrderPlacedItemRowDefinition = defineComponent({
252
328
  name: "OrderPlacedItemRow",
@@ -293,28 +369,27 @@ const CHANNEL_ATTRIBUTE = {
293
369
  UNKNOWN: "unknown"
294
370
  };
295
371
  /**
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.
372
+ * The relative promise, as the checkout's delivery step words it: the whole sentence for the unit
373
+ * (`ESTIMATE_MESSAGE`), and "arrives today" at zero, never a translated fragment in a wrapper.
298
374
  */
299
- function useRelativePromise(estimate) {
300
- const intl = useIntl();
375
+ function relativePromise(messages, estimate) {
301
376
  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 });
377
+ if (estimate.value === 0) return messages.format("today");
378
+ const { field, variable } = ESTIMATE_MESSAGE[estimate.unit];
379
+ return messages.format(field, { [variable]: estimate.value });
305
380
  }
306
381
  /**
307
382
  * One delivery: method, promise, item count and pickup point, with its address provided to the
308
383
  * `AddressSummary*` children. The dated promise wins when the order carries one; otherwise the relative
309
384
  * estimate. A delivery with neither a method nor a date still shows its items and count.
310
385
  */
311
- function OrderPlacedDeliveryGroup({ className, children, dateTemplate = "Arrives by {date}", itemCountTemplate = "{count} items", itemCountOneTemplate = "{count} item", pickupPointTemplate = "Pickup at {name}" }) {
386
+ function OrderPlacedDeliveryGroup({ $content, $locale, className, children }) {
312
387
  const delivery = useOrderDelivery();
313
- const { formatDate, pluralRule } = useStorefrontFormatters();
388
+ const { formatDate } = useStorefrontFormatters();
389
+ const messages = useMessageFormatter(OrderPlacedDeliveryGroupContent, $content);
314
390
  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) });
391
+ const promise = estimatedDate ? messages.format("dateTemplate", { date: formatDate(new Date(estimatedDate), { dateStyle: "medium" }) }) : relativePromise(messages, shippingOption?.shippingEstimate);
392
+ const count = messages.format("itemCountTemplate", { count: itemCount });
318
393
  return /* @__PURE__ */ jsxs("div", {
319
394
  className,
320
395
  "data-fs-order-placed-delivery-group": "",
@@ -334,7 +409,7 @@ function OrderPlacedDeliveryGroup({ className, children, dateTemplate = "Arrives
334
409
  }),
335
410
  pickupPointName ? /* @__PURE__ */ jsx("p", {
336
411
  "data-fs-order-placed-delivery-group-pickup-point": "",
337
- children: substituteTemplate(pickupPointTemplate, { name: pickupPointName })
412
+ children: messages.format("pickupPointTemplate", { name: pickupPointName })
338
413
  }) : null,
339
414
  /* @__PURE__ */ jsx(AddressSummaryRoot, {
340
415
  address: address ?? {},
@@ -375,6 +450,6 @@ function OrderPlacedItemCompositions({ className }) {
375
450
  return /* @__PURE__ */ jsx(CartItemCompositions, { className });
376
451
  }
377
452
  //#endregion
378
- export { OrderPlacedDeliveryGroup, OrderPlacedDeliveryGroupDefinition, OrderPlacedDeliveryList, OrderPlacedDeliveryListDefinition, OrderPlacedItemCompositions, OrderPlacedItemCompositionsDefinition, OrderPlacedItemRow, OrderPlacedItemRowDefinition, useOrderDelivery, useOrderPlacedItem };
453
+ export { OrderPlacedDeliveryGroup, OrderPlacedDeliveryGroupContent, OrderPlacedDeliveryGroupDefinition, OrderPlacedDeliveryList, OrderPlacedDeliveryListDefinition, OrderPlacedItemCompositions, OrderPlacedItemCompositionsDefinition, OrderPlacedItemRow, OrderPlacedItemRowDefinition, useOrderDelivery, useOrderPlacedItem };
379
454
 
380
455
  //# sourceMappingURL=order-placed-deliveries.js.map
@@ -1 +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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"}
1
+ {"version":3,"file":"order-placed-deliveries.js","names":[],"sources":["../../../src/matter/order-placed/order-placed-deliveries.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType, type MessageLocaleProp } 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 type { MessageFormatter } from '../../sdk/i18n/message-formatter.js';\nimport { useMessageFormatter } from '../../sdk/i18n/use-message-formatter.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(id: $orderId) {\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 = MessageLocaleProp & {\n $content?: ContentValue<typeof OrderPlacedDeliveryGroupContent>;\n className?: string;\n children?: ReactNode;\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 OrderPlacedDeliveryGroupContent = defineContentType({\n id: 'order-placed-delivery-group',\n title: 'Order Placed Delivery Group',\n description:\n \"The dated promise, the relative estimate sentences (one per unit), the item count and the pickup point of a placed order's delivery.\",\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n dateTemplate: {\n type: 'string',\n title: 'Dated promise',\n description: '`date` is the formatted estimated date.',\n format: 'icu-message',\n messageSource: 'Arrives by {date}',\n messageArguments: { type: 'object', properties: { date: { type: 'string' } } },\n messageExample: { date: 'Mar 12, 2026' },\n },\n itemCountTemplate: {\n type: 'string',\n title: 'Item count',\n format: 'icu-message',\n messageSource: '{count, plural, one {# item} other {# items}}',\n messageArguments: { type: 'object', properties: { count: { type: 'integer' } } },\n messageExample: { count: 3 },\n },\n pickupPointTemplate: {\n type: 'string',\n title: 'Pickup point',\n description: '`name` is the pickup point name.',\n format: 'icu-message',\n messageSource: 'Pickup at {name}',\n messageArguments: { type: 'object', properties: { name: { type: 'string' } } },\n messageExample: { name: 'Downtown store' },\n },\n today: { type: 'string', title: 'Arrives today', format: 'icu-message', messageSource: 'arrives today' },\n inBusinessDays: {\n type: 'string',\n title: 'In business days',\n format: 'icu-message',\n messageSource: 'in {days, plural, one {# business day} other {# business days}}',\n messageArguments: { type: 'object', properties: { days: { type: 'integer' } } },\n messageExample: { days: 3 },\n },\n inDays: {\n type: 'string',\n title: 'In days',\n format: 'icu-message',\n messageSource: 'in {days, plural, one {# day} other {# days}}',\n messageArguments: { type: 'object', properties: { days: { type: 'integer' } } },\n messageExample: { days: 3 },\n },\n inHours: {\n type: 'string',\n title: 'In hours',\n format: 'icu-message',\n messageSource: 'in {hours, plural, one {# hour} other {# hours}}',\n messageArguments: { type: 'object', properties: { hours: { type: 'integer' } } },\n messageExample: { hours: 4 },\n },\n inMinutes: {\n type: 'string',\n title: 'In minutes',\n format: 'icu-message',\n messageSource: 'in {minutes, plural, one {# minute} other {# minutes}}',\n messageArguments: { type: 'object', properties: { minutes: { type: 'integer' } } },\n messageExample: { minutes: 30 },\n },\n },\n },\n});\n\nexport const OrderPlacedDeliveryGroupDefinition = defineComponent<OrderPlacedDeliveryGroupProps>({\n name: 'OrderPlacedDeliveryGroup',\n importPath: '@vtex/faststore/components',\n component: OrderPlacedDeliveryGroup,\n content: OrderPlacedDeliveryGroupContent,\n requiresContext: 'order-delivery',\n providesContext: 'address-summary',\n editor: { label: 'Order Placed Delivery Group', category: 'commerce' },\n schema: {},\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. dateTemplate, itemCountTemplate and pickupPointTemplate are $content ICU messages; itemCountTemplate words the count with {count, plural, …}. 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 whole sentence for the unit\n * (`ESTIMATE_MESSAGE`), and \"arrives today\" at zero, never a translated fragment in a wrapper.\n */\nfunction relativePromise(\n messages: MessageFormatter<typeof OrderPlacedDeliveryGroupContent>,\n estimate: { value: number; unit: OrderPlacedShippingEstimateUnit } | undefined,\n) {\n if (!estimate) return null;\n if (estimate.value === 0) return messages.format('today');\n const { field, variable } = ESTIMATE_MESSAGE[estimate.unit];\n // A computed key widens to an index signature; the parity test pins `variable` to `field`.\n return messages.format(field, { [variable]: estimate.value } as Record<typeof variable, number>);\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 $content,\n $locale,\n className,\n children,\n}: Readonly<OrderPlacedDeliveryGroupProps>) {\n const delivery = useOrderDelivery();\n const { formatDate } = useStorefrontFormatters();\n const messages = useMessageFormatter(OrderPlacedDeliveryGroupContent, $content);\n const { shippingOption, estimatedDate, itemCount, pickupPointName, address } = delivery;\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 ? messages.format('dateTemplate', { date: formatDate(new Date(estimatedDate), { dateStyle: 'medium' }) })\n : relativePromise(messages, shippingOption?.shippingEstimate);\n const count = messages.format('itemCountTemplate', { count: itemCount });\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 {messages.format('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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"}
@@ -1,8 +1,186 @@
1
+ import { ContentValue, MessageLocaleProp } from "../../core/dist/define-content-type.js";
1
2
  import { ComponentDefinition } from "../../core/dist/define-component.js";
2
3
  import "../../core/dist/index.js";
3
4
  import { ReactNode } from "react";
4
5
  import { ErrorLike } from "@apollo/client";
5
6
  //#region src/matter/order-placed/order-placed.d.ts
7
+ export declare const OrderPlacedRootContent: {
8
+ readonly id: "order-placed-root";
9
+ readonly title: "Order Placed Root";
10
+ readonly description: "Messages shown in place of the order when it cannot be shown.";
11
+ readonly schema: {
12
+ readonly type: "object";
13
+ readonly additionalProperties: false;
14
+ readonly properties: {
15
+ readonly refusedOrderLabel: {
16
+ readonly type: "string";
17
+ readonly title: "Refused order";
18
+ readonly description: "Shown when the read is refused: after 15 minutes, or from another browser.";
19
+ readonly format: "icu-message";
20
+ readonly messageSource: "This order can no longer be shown here";
21
+ };
22
+ readonly unresolvedOrderLabel: {
23
+ readonly type: "string";
24
+ readonly title: "Unresolved order";
25
+ readonly description: "Shown when the read fails or the order group resolves to no order.";
26
+ readonly format: "icu-message";
27
+ readonly messageSource: "Could not load this order";
28
+ };
29
+ };
30
+ };
31
+ };
32
+ export declare const OrderPlacedStatusContent: {
33
+ readonly id: "order-placed-status";
34
+ readonly title: "Order Placed Status";
35
+ readonly description: "Title and message of each payment outcome.";
36
+ readonly schema: {
37
+ readonly type: "object";
38
+ readonly additionalProperties: false;
39
+ readonly properties: {
40
+ readonly approvedTitle: {
41
+ readonly type: "string";
42
+ readonly title: "Approved title";
43
+ readonly format: "icu-message";
44
+ readonly messageSource: "Your order is confirmed";
45
+ };
46
+ readonly approvedMessage: {
47
+ readonly type: "string";
48
+ readonly title: "Approved message";
49
+ readonly format: "icu-message";
50
+ readonly messageSource: "Your payment was approved.";
51
+ };
52
+ readonly pendingTitle: {
53
+ readonly type: "string";
54
+ readonly title: "Pending title";
55
+ readonly format: "icu-message";
56
+ readonly messageSource: "We're confirming your payment";
57
+ };
58
+ readonly pendingMessage: {
59
+ readonly type: "string";
60
+ readonly title: "Pending message";
61
+ readonly format: "icu-message";
62
+ readonly messageSource: "Your order was placed, and its payment is still being processed or reviewed.";
63
+ };
64
+ readonly deniedTitle: {
65
+ readonly type: "string";
66
+ readonly title: "Denied title";
67
+ readonly format: "icu-message";
68
+ readonly messageSource: "Your payment was not approved";
69
+ };
70
+ readonly deniedMessage: {
71
+ readonly type: "string";
72
+ readonly title: "Denied message";
73
+ readonly format: "icu-message";
74
+ readonly messageSource: "This purchase did not go through. You can place a new order with another payment method.";
75
+ };
76
+ };
77
+ };
78
+ };
79
+ export declare const OrderPlacedReferenceContent: {
80
+ readonly id: "order-placed-reference";
81
+ readonly title: "Order Placed Reference";
82
+ readonly description: "Text of the order number.";
83
+ readonly schema: {
84
+ readonly type: "object";
85
+ readonly additionalProperties: false;
86
+ readonly properties: {
87
+ readonly template: {
88
+ readonly type: "string";
89
+ readonly title: "Reference text";
90
+ readonly description: "`reference` is the order group.";
91
+ readonly format: "icu-message";
92
+ readonly messageSource: "Order #{reference}";
93
+ readonly messageArguments: {
94
+ readonly type: "object";
95
+ readonly properties: {
96
+ readonly reference: {
97
+ readonly type: "string";
98
+ };
99
+ };
100
+ };
101
+ readonly messageExample: {
102
+ readonly reference: "1335290583288";
103
+ };
104
+ };
105
+ };
106
+ };
107
+ };
108
+ export declare const OrderPlacedCustomerContent: {
109
+ readonly id: "order-placed-customer";
110
+ readonly title: "Order Placed Customer";
111
+ readonly description: "Labels of the customer rows.";
112
+ readonly schema: {
113
+ readonly type: "object";
114
+ readonly additionalProperties: false;
115
+ readonly properties: {
116
+ readonly nameLabel: {
117
+ readonly type: "string";
118
+ readonly title: "Name label";
119
+ readonly format: "icu-message";
120
+ readonly messageSource: "Name";
121
+ };
122
+ readonly emailLabel: {
123
+ readonly type: "string";
124
+ readonly title: "Email label";
125
+ readonly format: "icu-message";
126
+ readonly messageSource: "Email";
127
+ };
128
+ readonly phoneLabel: {
129
+ readonly type: "string";
130
+ readonly title: "Phone label";
131
+ readonly format: "icu-message";
132
+ readonly messageSource: "Phone";
133
+ };
134
+ readonly documentLabel: {
135
+ readonly type: "string";
136
+ readonly title: "Document label";
137
+ readonly format: "icu-message";
138
+ readonly messageSource: "Document";
139
+ };
140
+ };
141
+ };
142
+ };
143
+ export declare const OrderPlacedTotalsContent: {
144
+ readonly id: "order-placed-totals";
145
+ readonly title: "Order Placed Totals";
146
+ readonly description: "Labels of the money lines and the total.";
147
+ readonly schema: {
148
+ readonly type: "object";
149
+ readonly additionalProperties: false;
150
+ readonly properties: {
151
+ readonly itemsLabel: {
152
+ readonly type: "string";
153
+ readonly title: "Items label";
154
+ readonly format: "icu-message";
155
+ readonly messageSource: "Subtotal";
156
+ };
157
+ readonly shippingLabel: {
158
+ readonly type: "string";
159
+ readonly title: "Shipping label";
160
+ readonly format: "icu-message";
161
+ readonly messageSource: "Shipping";
162
+ };
163
+ readonly discountsLabel: {
164
+ readonly type: "string";
165
+ readonly title: "Discounts label";
166
+ readonly format: "icu-message";
167
+ readonly messageSource: "Discounts";
168
+ };
169
+ readonly taxLabel: {
170
+ readonly type: "string";
171
+ readonly title: "Tax label";
172
+ readonly format: "icu-message";
173
+ readonly messageSource: "Tax";
174
+ };
175
+ readonly totalLabel: {
176
+ readonly type: "string";
177
+ readonly title: "Total label";
178
+ readonly format: "icu-message";
179
+ readonly messageSource: "Total";
180
+ };
181
+ };
182
+ };
183
+ };
6
184
  /** `amount` is the API's `Decimal`, a string ("12.50"). */
7
185
  export type OrderPlacedMoney = {
8
186
  amount: string;
@@ -40,50 +218,39 @@ export type OrderPlacedContextValue = Readonly<{
40
218
  loading: boolean;
41
219
  error: ErrorLike | null;
42
220
  }>;
43
- export type OrderPlacedRootProps = {
221
+ export type OrderPlacedRootProps = MessageLocaleProp & {
44
222
  className?: string;
45
223
  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;
224
+ /** The messages shown in place of the order when it is refused or does not resolve. */
225
+ $content?: ContentValue<typeof OrderPlacedRootContent>;
50
226
  /** Unwrapped `Order` slice forwarded by the reactive runtime. */
51
227
  $data?: OrderPlacedData;
52
228
  };
53
- export type OrderPlacedStatusProps = {
229
+ export type OrderPlacedStatusProps = MessageLocaleProp & {
54
230
  className?: string;
55
231
  /** An optional `Icon`, shown on every outcome. */
56
232
  children?: ReactNode;
57
- approvedTitle?: string;
58
- approvedMessage?: string;
59
- pendingTitle?: string;
60
- pendingMessage?: string;
61
- deniedTitle?: string;
62
- deniedMessage?: string;
233
+ /** The title and message of each outcome. */
234
+ $content?: ContentValue<typeof OrderPlacedStatusContent>;
63
235
  };
64
- export type OrderPlacedReferenceProps = {
236
+ export type OrderPlacedReferenceProps = MessageLocaleProp & {
65
237
  className?: string;
66
- /** `{reference}` placeholder. */
67
- template?: string;
238
+ /** The order number text, with a `reference` argument. */
239
+ $content?: ContentValue<typeof OrderPlacedReferenceContent>;
68
240
  };
69
- export type OrderPlacedCustomerProps = {
241
+ export type OrderPlacedCustomerProps = MessageLocaleProp & {
70
242
  className?: string;
71
- nameLabel?: string;
72
- emailLabel?: string;
73
- phoneLabel?: string;
74
- documentLabel?: string;
243
+ /** The row labels. */
244
+ $content?: ContentValue<typeof OrderPlacedCustomerContent>;
75
245
  /** Unwrapped `Order` slice of this component's own fragment. */
76
246
  $data?: OrderPlacedCustomerData;
77
247
  };
78
- export type OrderPlacedTotalsProps = {
248
+ export type OrderPlacedTotalsProps = MessageLocaleProp & {
79
249
  className?: string;
80
- itemsLabel?: string;
81
- shippingLabel?: string;
82
- discountsLabel?: string;
83
- taxLabel?: string;
84
- totalLabel?: string;
85
250
  /** Shown instead of a zero shipping value. Omitted to show the formatted zero. */
86
251
  shippingZeroLabel?: string;
252
+ /** The line labels and the total label. */
253
+ $content?: ContentValue<typeof OrderPlacedTotalsContent>;
87
254
  };
88
255
  /** The placed order, its loading flag and the root query's error, from the nearest OrderPlacedRoot. */
89
256
  export declare function useOrderPlaced(): OrderPlacedContextValue;
@@ -95,28 +262,28 @@ export declare const OrderPlacedTotalsDefinition: ComponentDefinition<OrderPlace
95
262
  /** Placeholder for the order's blocks while the read is in flight. */
96
263
  export declare function OrderPlacedRootSkeleton(): import("react/jsx-runtime").JSX.Element;
97
264
  /** 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;
265
+ export declare function OrderPlacedRoot({ className, children, $content, $locale, $data: $dataProp }: Readonly<OrderPlacedRootProps>): import("react/jsx-runtime").JSX.Element;
99
266
  /**
100
267
  * The outcome banner. `UNKNOWN` (seller orders that disagree, or a state the mapping does not
101
268
  * classify) renders nothing, so the page shows the order without asserting success or failure.
102
269
  */
103
- export declare function OrderPlacedStatus({ className, children, approvedTitle, approvedMessage, pendingTitle, pendingMessage, deniedTitle, deniedMessage }: Readonly<OrderPlacedStatusProps>): import("react/jsx-runtime").JSX.Element | null;
270
+ export declare function OrderPlacedStatus({ className, children, $content, $locale }: Readonly<OrderPlacedStatusProps>): import("react/jsx-runtime").JSX.Element | null;
104
271
  /**
105
272
  * The order group, the one reference a split purchase has, so support resolves the whole purchase
106
273
  * from it rather than one seller's order.
107
274
  */
108
- export declare function OrderPlacedReference({ className, template }: Readonly<OrderPlacedReferenceProps>): import("react/jsx-runtime").JSX.Element | null;
275
+ export declare function OrderPlacedReference({ className, $content, $locale }: Readonly<OrderPlacedReferenceProps>): import("react/jsx-runtime").JSX.Element | null;
109
276
  /**
110
277
  * The customer as the order recorded them, never the live profile: masked values show as the order
111
278
  * system returns them, and an empty field is left out.
112
279
  */
113
- export declare function OrderPlacedCustomer({ className, nameLabel, emailLabel, phoneLabel, documentLabel, $data: $dataProp }: Readonly<OrderPlacedCustomerProps>): import("react/jsx-runtime").JSX.Element | null;
280
+ export declare function OrderPlacedCustomer({ className, $content, $locale, $data: $dataProp }: Readonly<OrderPlacedCustomerProps>): import("react/jsx-runtime").JSX.Element | null;
114
281
  /**
115
282
  * The order's money lines in API order, then the total, each in its own currency. `Items`,
116
283
  * `Shipping`, `Discounts` and `Tax` take the authored label, since the order system names them in
117
284
  * English; any other line (a custom tax) shows its own name. The API sums lines on id and name, so
118
285
  * two custom taxes that share an id are two rows.
119
286
  */
120
- export declare function OrderPlacedTotals({ className, itemsLabel, shippingLabel, discountsLabel, taxLabel, totalLabel, shippingZeroLabel }: Readonly<OrderPlacedTotalsProps>): import("react/jsx-runtime").JSX.Element | null;
287
+ export declare function OrderPlacedTotals({ className, shippingZeroLabel, $content, $locale }: Readonly<OrderPlacedTotalsProps>): import("react/jsx-runtime").JSX.Element | null;
121
288
  //#endregion
122
289
  //# sourceMappingURL=order-placed.d.ts.map