@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
@@ -77,7 +77,7 @@ function orderTarget(href, orderId) {
77
77
  const tail = cut === -1 ? "" : href.slice(cut);
78
78
  return `${path.replace(/\/+$/, "")}/${encodeURIComponent(orderId)}${tail}`;
79
79
  }
80
- function OrderListRow({ $data, href = ORDER_PAGE, className, ref }) {
80
+ function OrderListRow({ $data, href = ORDER_PAGE, statusMessages, className, ref }) {
81
81
  const { formatMoney, formatDate } = useStorefrontFormatters();
82
82
  const badge = completionBadgeModel($data.completion);
83
83
  const placed = instant($data.placedAt);
@@ -111,7 +111,8 @@ function OrderListRow({ $data, href = ORDER_PAGE, className, ref }) {
111
111
  badge ? /* @__PURE__ */ jsx(OrderStatusBadge, {
112
112
  state: badge.state,
113
113
  tone: badge.tone,
114
- label: badge.label
114
+ label: badge.label,
115
+ messages: statusMessages
115
116
  }) : null,
116
117
  estimate ? /* @__PURE__ */ jsx("time", {
117
118
  dateTime: estimateValue($data) ?? void 0,
@@ -1 +1 @@
1
- {"version":3,"file":"order-list-row.js","names":[],"sources":["../../../src/matter/order-list-row/order-list-row.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { OrderStatusBadge } from '../../particles/order-status-badge/order-status-badge.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { completionBadgeModel } from '../../sdk/orders/completion-badge.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderListRowData on CustomerOrderListItem {\n id\n placedAt\n total {\n amount\n currencyCode\n }\n itemCount\n completion {\n view\n label\n }\n shippingEstimatedDateMin\n shippingEstimatedDateMax\n }\n`;\n\nexport type OrderListItemData = {\n id: string;\n placedAt: string | null;\n total: { amount: string | number; currencyCode: string } | null;\n itemCount: number | null;\n completion: { view: string; label: string };\n shippingEstimatedDateMin: string | null;\n shippingEstimatedDateMax: string | null;\n};\n\nexport type OrderListRowProps = Readonly<{\n $data: OrderListItemData;\n /**\n * The order page; the row fills `orderId`. A string is the path the orders live under, and the row\n * appends its id. `OrderList` passes its `orderHref`.\n */\n href?: PageRef | string;\n className?: string;\n ref?: Ref<HTMLAnchorElement>;\n}>;\n\nexport const OrderListRowDefinition = defineComponent<OrderListRowProps>({\n name: 'OrderListRow',\n importPath: '@vtex/faststore/components',\n component: OrderListRow,\n fragment,\n skeleton: OrderListRowSkeleton,\n editor: { label: 'Order List Row', category: 'content' },\n schema: {},\n guideline:\n 'One order as a link to that order, showing its number, placed date, total, item count, and status badge, plus a delivery estimate while it is ongoing. The list renders it; do not place it on a page alone.',\n});\n\nfunction instant(value: string | null): Date | null {\n if (!value) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\nfunction moneyAmount(amount: string | number): number | null {\n const value = typeof amount === 'number' ? amount : Number(amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction estimateValue(item: OrderListItemData): string | null {\n if (item.completion.view !== 'ONGOING') {\n return null;\n }\n const max = item.shippingEstimatedDateMax?.trim();\n if (max) {\n return max;\n }\n const min = item.shippingEstimatedDateMin?.trim();\n return min || null;\n}\n\nexport function OrderListRowSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-list-row-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n </div>\n );\n}\n\nconst ORDER_PAGE: PageRef = { standard: 'order' };\n\n/**\n * The row's own order: a reference gets `orderId` as a param, and a string is the path the orders\n * live under, which gets the encoded id as its last segment (before any query or hash).\n */\nfunction orderTarget(href: PageRef | string, orderId: string): PageRef | string {\n if (typeof href !== 'string') return { ...href, params: { ...href.params, orderId } };\n const cut = href.search(/[?#]/);\n const path = cut === -1 ? href : href.slice(0, cut);\n const tail = cut === -1 ? '' : href.slice(cut);\n return `${path.replace(/\\/+$/, '')}/${encodeURIComponent(orderId)}${tail}`;\n}\n\nexport function OrderListRow({ $data, href = ORDER_PAGE, className, ref }: OrderListRowProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const badge = completionBadgeModel($data.completion);\n const placed = instant($data.placedAt);\n const amount = $data.total ? moneyAmount($data.total.amount) : null;\n const estimate = instant(estimateValue($data));\n\n return (\n <StorefrontLink\n ref={ref}\n href={orderTarget(href, $data.id)}\n aria-label={$data.id}\n className={className}\n data-fs-order-list-row=\"\"\n data-fs-order-list-row-state={badge?.state}\n >\n <span data-fs-order-list-row-id=\"\">{$data.id}</span>\n {placed ? (\n <time dateTime={$data.placedAt ?? undefined} data-fs-order-list-row-placed=\"\">\n {formatDate(placed)}\n </time>\n ) : null}\n {amount != null && $data.total ? (\n <span data-fs-order-list-row-total=\"\">{formatMoney(amount, { currency: $data.total.currencyCode })}</span>\n ) : null}\n {$data.itemCount == null ? null : <span data-fs-order-list-row-count=\"\">{$data.itemCount}</span>}\n {badge ? <OrderStatusBadge state={badge.state} tone={badge.tone} label={badge.label} /> : null}\n {estimate ? (\n <time dateTime={estimateValue($data) ?? undefined} data-fs-order-list-row-estimate=\"\">\n {formatDate(estimate)}\n </time>\n ) : null}\n </StorefrontLink>\n );\n}\n"],"mappings":";;;;;;;;AAiDA,MAAa,yBAAyB,gBAAmC;CACvE,MAAM;CACN,YAAY;CACZ,WAAW;CACX;;;;;;;;;;;;;;;;;CACA,UAAU;CACV,QAAQ;EAAE,OAAO;EAAkB,UAAU;CAAU;CACvD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,SAAS,QAAQ,OAAmC;CAClD,IAAI,CAAC,OACH,OAAO;CAET,MAAM,OAAO,IAAI,KAAK,KAAK;CAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAC/C;AAEA,SAAS,YAAY,QAAwC;CAC3D,MAAM,QAAQ,OAAO,WAAW,WAAW,SAAS,OAAO,MAAM;CACjE,OAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEA,SAAS,cAAc,MAAwC;CAC7D,IAAI,KAAK,WAAW,SAAS,WAC3B,OAAO;CAET,MAAM,MAAM,KAAK,0BAA0B,KAAK;CAChD,IAAI,KACF,OAAO;CAGT,OADY,KAAK,0BAA0B,KAAK,KAClC;AAChB;AAEA,SAAgB,qBAAqB,EAAE,WAAW,GAAG,SAAuC;CAC1F,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,mCAAgC;EAAG,eAAY;EAArF,UAAA,CACE,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,GAC/C,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,CAC5C;;AAET;AAEA,MAAM,aAAsB,EAAE,UAAU,QAAQ;;;;;AAMhD,SAAS,YAAY,MAAwB,SAAmC;CAC9E,IAAI,OAAO,SAAS,UAAU,OAAO;EAAE,GAAG;EAAM,QAAQ;GAAE,GAAG,KAAK;GAAQ;EAAQ;CAAE;CACpF,MAAM,MAAM,KAAK,OAAO,MAAM;CAC9B,MAAM,OAAO,QAAQ,KAAK,OAAO,KAAK,MAAM,GAAG,GAAG;CAClD,MAAM,OAAO,QAAQ,KAAK,KAAK,KAAK,MAAM,GAAG;CAC7C,OAAO,GAAG,KAAK,QAAQ,QAAQ,EAAE,EAAE,GAAG,mBAAmB,OAAO,IAAI;AACtE;AAEA,SAAgB,aAAa,EAAE,OAAO,OAAO,YAAY,WAAW,OAA0B;CAC5F,MAAM,EAAE,aAAa,eAAe,wBAAwB;CAC5D,MAAM,QAAQ,qBAAqB,MAAM,UAAU;CACnD,MAAM,SAAS,QAAQ,MAAM,QAAQ;CACrC,MAAM,SAAS,MAAM,QAAQ,YAAY,MAAM,MAAM,MAAM,IAAI;CAC/D,MAAM,WAAW,QAAQ,cAAc,KAAK,CAAC;CAE7C,OACE,qBAAC,gBAAD;EACO;EACL,MAAM,YAAY,MAAM,MAAM,EAAE;EAChC,cAAY,MAAM;EACP;EACX,0BAAuB;EACvB,gCAA8B,OAAO;EANvC,UAAA;GAQE,oBAAC,QAAD;IAAM,6BAA0B;IAAI,UAAA,MAAM;GAAS,CAAA;GAClD,SACC,oBAAC,QAAD;IAAM,UAAU,MAAM,YAAY,KAAA;IAAW,iCAA8B;IACxE,UAAA,WAAW,MAAM;GACd,CAAA,IACJ;GACH,UAAU,QAAQ,MAAM,QACvB,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,YAAY,QAAQ,EAAE,UAAU,MAAM,MAAM,aAAa,CAAC;GAAQ,CAAA,IACvG;GACH,MAAM,aAAa,OAAO,OAAO,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,MAAM;GAAgB,CAAA;GAC9F,QAAQ,oBAAC,kBAAD;IAAkB,OAAO,MAAM;IAAO,MAAM,MAAM;IAAM,OAAO,MAAM;GAAQ,CAAA,IAAI;GACzF,WACC,oBAAC,QAAD;IAAM,UAAU,cAAc,KAAK,KAAK,KAAA;IAAW,mCAAgC;IAChF,UAAA,WAAW,QAAQ;GAChB,CAAA,IACJ;EACU;;AAEpB"}
1
+ {"version":3,"file":"order-list-row.js","names":[],"sources":["../../../src/matter/order-list-row/order-list-row.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, Ref } from 'react';\nimport { OrderStatusBadge, type OrderStatusMessages } from '../../particles/order-status-badge/order-status-badge.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { completionBadgeModel } from '../../sdk/orders/completion-badge.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderListRowData on CustomerOrderListItem {\n id\n placedAt\n total {\n amount\n currencyCode\n }\n itemCount\n completion {\n view\n label\n }\n shippingEstimatedDateMin\n shippingEstimatedDateMax\n }\n`;\n\nexport type OrderListItemData = {\n id: string;\n placedAt: string | null;\n total: { amount: string | number; currencyCode: string } | null;\n itemCount: number | null;\n completion: { view: string; label: string };\n shippingEstimatedDateMin: string | null;\n shippingEstimatedDateMax: string | null;\n};\n\nexport type OrderListRowProps = Readonly<{\n $data: OrderListItemData;\n /**\n * The order page; the row fills `orderId`. A string is the path the orders live under, and the row\n * appends its id. `OrderList` passes its `orderHref`.\n */\n href?: PageRef | string;\n /** The formatted status sentences. `OrderList` passes its own `status*` messages. */\n statusMessages: OrderStatusMessages;\n className?: string;\n ref?: Ref<HTMLAnchorElement>;\n}>;\n\nexport const OrderListRowDefinition = defineComponent<OrderListRowProps>({\n name: 'OrderListRow',\n importPath: '@vtex/faststore/components',\n component: OrderListRow,\n fragment,\n skeleton: OrderListRowSkeleton,\n editor: { label: 'Order List Row', category: 'content' },\n schema: {},\n guideline:\n 'One order as a link to that order, showing its number, placed date, total, item count, and status badge, plus a delivery estimate while it is ongoing. The list renders it; do not place it on a page alone.',\n});\n\nfunction instant(value: string | null): Date | null {\n if (!value) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\nfunction moneyAmount(amount: string | number): number | null {\n const value = typeof amount === 'number' ? amount : Number(amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction estimateValue(item: OrderListItemData): string | null {\n if (item.completion.view !== 'ONGOING') {\n return null;\n }\n const max = item.shippingEstimatedDateMax?.trim();\n if (max) {\n return max;\n }\n const min = item.shippingEstimatedDateMin?.trim();\n return min || null;\n}\n\nexport function OrderListRowSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-list-row-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n <span data-fs-order-list-row-skeleton-fact=\"\" />\n </div>\n );\n}\n\nconst ORDER_PAGE: PageRef = { standard: 'order' };\n\n/**\n * The row's own order: a reference gets `orderId` as a param, and a string is the path the orders\n * live under, which gets the encoded id as its last segment (before any query or hash).\n */\nfunction orderTarget(href: PageRef | string, orderId: string): PageRef | string {\n if (typeof href !== 'string') return { ...href, params: { ...href.params, orderId } };\n const cut = href.search(/[?#]/);\n const path = cut === -1 ? href : href.slice(0, cut);\n const tail = cut === -1 ? '' : href.slice(cut);\n return `${path.replace(/\\/+$/, '')}/${encodeURIComponent(orderId)}${tail}`;\n}\n\nexport function OrderListRow({ $data, href = ORDER_PAGE, statusMessages, className, ref }: OrderListRowProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const badge = completionBadgeModel($data.completion);\n const placed = instant($data.placedAt);\n const amount = $data.total ? moneyAmount($data.total.amount) : null;\n const estimate = instant(estimateValue($data));\n\n return (\n <StorefrontLink\n ref={ref}\n href={orderTarget(href, $data.id)}\n aria-label={$data.id}\n className={className}\n data-fs-order-list-row=\"\"\n data-fs-order-list-row-state={badge?.state}\n >\n <span data-fs-order-list-row-id=\"\">{$data.id}</span>\n {placed ? (\n <time dateTime={$data.placedAt ?? undefined} data-fs-order-list-row-placed=\"\">\n {formatDate(placed)}\n </time>\n ) : null}\n {amount != null && $data.total ? (\n <span data-fs-order-list-row-total=\"\">{formatMoney(amount, { currency: $data.total.currencyCode })}</span>\n ) : null}\n {$data.itemCount == null ? null : <span data-fs-order-list-row-count=\"\">{$data.itemCount}</span>}\n {badge ? (\n <OrderStatusBadge state={badge.state} tone={badge.tone} label={badge.label} messages={statusMessages} />\n ) : null}\n {estimate ? (\n <time dateTime={estimateValue($data) ?? undefined} data-fs-order-list-row-estimate=\"\">\n {formatDate(estimate)}\n </time>\n ) : null}\n </StorefrontLink>\n );\n}\n"],"mappings":";;;;;;;;AAmDA,MAAa,yBAAyB,gBAAmC;CACvE,MAAM;CACN,YAAY;CACZ,WAAW;CACX;;;;;;;;;;;;;;;;;CACA,UAAU;CACV,QAAQ;EAAE,OAAO;EAAkB,UAAU;CAAU;CACvD,QAAQ,CAAC;CACT,WACE;AACJ,CAAC;AAED,SAAS,QAAQ,OAAmC;CAClD,IAAI,CAAC,OACH,OAAO;CAET,MAAM,OAAO,IAAI,KAAK,KAAK;CAC3B,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAC/C;AAEA,SAAS,YAAY,QAAwC;CAC3D,MAAM,QAAQ,OAAO,WAAW,WAAW,SAAS,OAAO,MAAM;CACjE,OAAO,OAAO,SAAS,KAAK,IAAI,QAAQ;AAC1C;AAEA,SAAS,cAAc,MAAwC;CAC7D,IAAI,KAAK,WAAW,SAAS,WAC3B,OAAO;CAET,MAAM,MAAM,KAAK,0BAA0B,KAAK;CAChD,IAAI,KACF,OAAO;CAGT,OADY,KAAK,0BAA0B,KAAK,KAClC;AAChB;AAEA,SAAgB,qBAAqB,EAAE,WAAW,GAAG,SAAuC;CAC1F,OACE,qBAAC,OAAD;EAAK,GAAI;EAAkB;EAAW,mCAAgC;EAAG,eAAY;EAArF,UAAA,CACE,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,GAC/C,oBAAC,QAAD,EAAM,wCAAqC,GAAI,CAAA,CAC5C;;AAET;AAEA,MAAM,aAAsB,EAAE,UAAU,QAAQ;;;;;AAMhD,SAAS,YAAY,MAAwB,SAAmC;CAC9E,IAAI,OAAO,SAAS,UAAU,OAAO;EAAE,GAAG;EAAM,QAAQ;GAAE,GAAG,KAAK;GAAQ;EAAQ;CAAE;CACpF,MAAM,MAAM,KAAK,OAAO,MAAM;CAC9B,MAAM,OAAO,QAAQ,KAAK,OAAO,KAAK,MAAM,GAAG,GAAG;CAClD,MAAM,OAAO,QAAQ,KAAK,KAAK,KAAK,MAAM,GAAG;CAC7C,OAAO,GAAG,KAAK,QAAQ,QAAQ,EAAE,EAAE,GAAG,mBAAmB,OAAO,IAAI;AACtE;AAEA,SAAgB,aAAa,EAAE,OAAO,OAAO,YAAY,gBAAgB,WAAW,OAA0B;CAC5G,MAAM,EAAE,aAAa,eAAe,wBAAwB;CAC5D,MAAM,QAAQ,qBAAqB,MAAM,UAAU;CACnD,MAAM,SAAS,QAAQ,MAAM,QAAQ;CACrC,MAAM,SAAS,MAAM,QAAQ,YAAY,MAAM,MAAM,MAAM,IAAI;CAC/D,MAAM,WAAW,QAAQ,cAAc,KAAK,CAAC;CAE7C,OACE,qBAAC,gBAAD;EACO;EACL,MAAM,YAAY,MAAM,MAAM,EAAE;EAChC,cAAY,MAAM;EACP;EACX,0BAAuB;EACvB,gCAA8B,OAAO;EANvC,UAAA;GAQE,oBAAC,QAAD;IAAM,6BAA0B;IAAI,UAAA,MAAM;GAAS,CAAA;GAClD,SACC,oBAAC,QAAD;IAAM,UAAU,MAAM,YAAY,KAAA;IAAW,iCAA8B;IACxE,UAAA,WAAW,MAAM;GACd,CAAA,IACJ;GACH,UAAU,QAAQ,MAAM,QACvB,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,YAAY,QAAQ,EAAE,UAAU,MAAM,MAAM,aAAa,CAAC;GAAQ,CAAA,IACvG;GACH,MAAM,aAAa,OAAO,OAAO,oBAAC,QAAD;IAAM,gCAA6B;IAAI,UAAA,MAAM;GAAgB,CAAA;GAC9F,QACC,oBAAC,kBAAD;IAAkB,OAAO,MAAM;IAAO,MAAM,MAAM;IAAM,OAAO,MAAM;IAAO,UAAU;GAAiB,CAAA,IACrG;GACH,WACC,oBAAC,QAAD;IAAM,UAAU,cAAc,KAAK,KAAK,KAAA;IAAW,mCAAgC;IAChF,UAAA,WAAW,QAAQ;GAChB,CAAA,IACJ;EACU;;AAEpB"}
@@ -1,4 +1,4 @@
1
- import { ContentValue } from "../../core/dist/define-content-type.js";
1
+ import { ContentValue, MessageLocaleProp } from "../../core/dist/define-content-type.js";
2
2
  import { ComponentDefinition } from "../../core/dist/define-component.js";
3
3
  import "../../core/dist/index.js";
4
4
  import { Ref } from "react";
@@ -14,59 +14,51 @@ export declare const OrderListSearchContent: {
14
14
  readonly label: {
15
15
  readonly type: "string";
16
16
  readonly title: "Order number";
17
+ readonly format: "icu-message";
18
+ readonly messageSource: "Order number";
17
19
  };
18
20
  readonly from: {
19
21
  readonly type: "string";
20
22
  readonly title: "Placed from";
23
+ readonly format: "icu-message";
24
+ readonly messageSource: "Placed from";
21
25
  };
22
26
  readonly to: {
23
27
  readonly type: "string";
24
28
  readonly title: "Placed to";
29
+ readonly format: "icu-message";
30
+ readonly messageSource: "Placed to";
25
31
  };
26
32
  readonly submit: {
27
33
  readonly type: "string";
28
34
  readonly title: "Search";
35
+ readonly format: "icu-message";
36
+ readonly messageSource: "Search";
29
37
  };
30
38
  readonly clear: {
31
39
  readonly type: "string";
32
40
  readonly title: "Clear search";
41
+ readonly format: "icu-message";
42
+ readonly messageSource: "Clear search";
33
43
  };
34
44
  readonly invalidRange: {
35
45
  readonly type: "string";
36
46
  readonly title: "Invalid range";
47
+ readonly description: "Shown when the from day is after the to day.";
48
+ readonly format: "icu-message";
49
+ readonly messageSource: "The start date is after the end date.";
37
50
  };
38
51
  };
39
52
  };
40
53
  };
41
54
  export type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;
42
- export type OrderListSearchProps = Readonly<{
43
- /** Visible label of the text field. */
44
- label?: string;
45
- fromLabel?: string;
46
- toLabel?: string;
47
- submitLabel?: string;
48
- clearLabel?: string;
49
- /** Shown when the from day is after the to day. */
50
- invalidRangeMessage?: string;
51
- /** Injected by the compiler from the page content entry. */
55
+ export type OrderListSearchProps = MessageLocaleProp & Readonly<{
56
+ /** The field labels, the button labels and the invalid-range message. */
52
57
  $content?: OrderListSearchContentValue;
53
58
  className?: string;
54
59
  ref?: Ref<HTMLFormElement>;
55
60
  }>;
56
- export declare const OrderListSearchDefinition: ComponentDefinition<Readonly<{
57
- /** Visible label of the text field. */
58
- label?: string;
59
- fromLabel?: string;
60
- toLabel?: string;
61
- submitLabel?: string;
62
- clearLabel?: string;
63
- /** Shown when the from day is after the to day. */
64
- invalidRangeMessage?: string;
65
- /** Injected by the compiler from the page content entry. */
66
- $content?: OrderListSearchContentValue;
67
- className?: string;
68
- ref?: Ref<HTMLFormElement>;
69
- }>>;
70
- export declare function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, invalidRangeMessage, $content, className, ref }: OrderListSearchProps): import("react/jsx-runtime").JSX.Element;
61
+ export declare const OrderListSearchDefinition: ComponentDefinition<OrderListSearchProps>;
62
+ export declare function OrderListSearch({ $content, $locale, className, ref }: OrderListSearchProps): import("react/jsx-runtime").JSX.Element;
71
63
  //#endregion
72
64
  //# sourceMappingURL=order-list-search.d.ts.map
@@ -2,6 +2,7 @@
2
2
  import { defineComponent } from "../../core/dist/define-component.js";
3
3
  import { defineContentType } from "../../core/dist/define-content-type.js";
4
4
  import "../../core/dist/index.js";
5
+ import { useMessageFormatter } from "../../sdk/i18n/use-message-formatter.js";
5
6
  import { useStorefrontNavigation } from "../../sdk/navigation/use-storefront-navigation.js";
6
7
  import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
7
8
  import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
@@ -23,41 +24,46 @@ const OrderListSearchContent = defineContentType({
23
24
  properties: {
24
25
  label: {
25
26
  type: "string",
26
- title: "Order number"
27
+ title: "Order number",
28
+ format: "icu-message",
29
+ messageSource: "Order number"
27
30
  },
28
31
  from: {
29
32
  type: "string",
30
- title: "Placed from"
33
+ title: "Placed from",
34
+ format: "icu-message",
35
+ messageSource: "Placed from"
31
36
  },
32
37
  to: {
33
38
  type: "string",
34
- title: "Placed to"
39
+ title: "Placed to",
40
+ format: "icu-message",
41
+ messageSource: "Placed to"
35
42
  },
36
43
  submit: {
37
44
  type: "string",
38
- title: "Search"
45
+ title: "Search",
46
+ format: "icu-message",
47
+ messageSource: "Search"
39
48
  },
40
49
  clear: {
41
50
  type: "string",
42
- title: "Clear search"
51
+ title: "Clear search",
52
+ format: "icu-message",
53
+ messageSource: "Clear search"
43
54
  },
44
55
  invalidRange: {
45
56
  type: "string",
46
- title: "Invalid range"
57
+ title: "Invalid range",
58
+ description: "Shown when the from day is after the to day.",
59
+ format: "icu-message",
60
+ messageSource: "The start date is after the end date."
47
61
  }
48
62
  }
49
63
  }
50
64
  });
51
65
  const DAY = /^(\d{4})-(\d{2})-(\d{2})$/;
52
66
  const INSTANT = /^(\d{4})-(\d{2})-(\d{2})T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
53
- const DEFAULTS = {
54
- label: "Order number",
55
- from: "Placed from",
56
- to: "Placed to",
57
- submit: "Search",
58
- clear: "Clear search",
59
- invalidRange: "The start date is after the end date."
60
- };
61
67
  const OrderListSearchDefinition = defineComponent({
62
68
  name: "OrderListSearch",
63
69
  importPath: "@vtex/faststore/components",
@@ -67,47 +73,9 @@ const OrderListSearchDefinition = defineComponent({
67
73
  label: "Order List Search",
68
74
  category: "action"
69
75
  },
70
- schema: {
71
- label: {
72
- type: "string",
73
- default: "Order number",
74
- label: "Order number"
75
- },
76
- fromLabel: {
77
- type: "string",
78
- default: "Placed from",
79
- label: "Placed from"
80
- },
81
- toLabel: {
82
- type: "string",
83
- default: "Placed to",
84
- label: "Placed to"
85
- },
86
- submitLabel: {
87
- type: "string",
88
- default: "Search",
89
- label: "Search"
90
- },
91
- clearLabel: {
92
- type: "string",
93
- default: "Clear search",
94
- label: "Clear search"
95
- },
96
- invalidRangeMessage: {
97
- type: "string",
98
- default: "The start date is after the end date.",
99
- label: "Invalid range"
100
- }
101
- },
102
- guideline: "A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written."
76
+ schema: {},
77
+ guideline: "A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written. Its copy is the $content fields label, from, to, submit, clear and invalidRange."
103
78
  });
104
- function resolveText(content, prop, fallback) {
105
- const fromContent = content?.trim();
106
- if (fromContent) return fromContent;
107
- const fromProp = prop?.trim();
108
- if (fromProp) return fromProp;
109
- return fallback;
110
- }
111
79
  function calendarDay(value) {
112
80
  if (value == null) return "";
113
81
  const trimmed = value.trim();
@@ -193,7 +161,7 @@ function readFields(params) {
193
161
  to: calendarDay(params.get("placedTo"))
194
162
  };
195
163
  }
196
- function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, invalidRangeMessage, $content, className, ref }) {
164
+ function OrderListSearch({ $content, $locale, className, ref }) {
197
165
  const route = useStorefrontRoute();
198
166
  const searchParams = useStorefrontSearchParams();
199
167
  const { push } = useStorefrontNavigation();
@@ -205,14 +173,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
205
173
  setSeenCriteria(criteria);
206
174
  setFields(readFields(searchParams));
207
175
  }
208
- const texts = {
209
- label: resolveText($content?.label, label, DEFAULTS.label),
210
- from: resolveText($content?.from, fromLabel, DEFAULTS.from),
211
- to: resolveText($content?.to, toLabel, DEFAULTS.to),
212
- submit: resolveText($content?.submit, submitLabel, DEFAULTS.submit),
213
- clear: resolveText($content?.clear, clearLabel, DEFAULTS.clear),
214
- invalidRange: resolveText($content?.invalidRange, invalidRangeMessage, DEFAULTS.invalidRange)
215
- };
176
+ const { format } = useMessageFormatter(OrderListSearchContent, $content);
216
177
  const rangeInvalid = inverted(fields.from, fields.to);
217
178
  const showClear = applied(searchParams);
218
179
  function onSubmit(event) {
@@ -228,7 +189,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
228
189
  "data-fs-order-list-search-invalid": rangeInvalid ? "" : void 0,
229
190
  onSubmit,
230
191
  children: [
231
- /* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.label }), /* @__PURE__ */ jsx(Input, {
192
+ /* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children: format("label") }), /* @__PURE__ */ jsx(Input, {
232
193
  type: "text",
233
194
  value: fields.term,
234
195
  "data-fs-order-list-search-term": "",
@@ -242,7 +203,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
242
203
  })] }),
243
204
  /* @__PURE__ */ jsxs(Field.Root, {
244
205
  invalid: rangeInvalid,
245
- children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.from }), /* @__PURE__ */ jsx(Input, {
206
+ children: [/* @__PURE__ */ jsx(Field.Label, { children: format("from") }), /* @__PURE__ */ jsx(Input, {
246
207
  type: "date",
247
208
  value: fields.from,
248
209
  "aria-invalid": rangeInvalid || void 0,
@@ -259,7 +220,7 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
259
220
  }),
260
221
  /* @__PURE__ */ jsxs(Field.Root, {
261
222
  invalid: rangeInvalid,
262
- children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.to }), /* @__PURE__ */ jsx(Input, {
223
+ children: [/* @__PURE__ */ jsx(Field.Label, { children: format("to") }), /* @__PURE__ */ jsx(Input, {
263
224
  type: "date",
264
225
  value: fields.to,
265
226
  "aria-invalid": rangeInvalid || void 0,
@@ -276,16 +237,16 @@ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, i
276
237
  }),
277
238
  rangeInvalid ? /* @__PURE__ */ jsx("p", {
278
239
  id: messageId,
279
- children: texts.invalidRange
240
+ children: format("invalidRange")
280
241
  }) : null,
281
242
  /* @__PURE__ */ jsx(Button, {
282
243
  type: "submit",
283
- children: texts.submit
244
+ children: format("submit")
284
245
  }),
285
246
  showClear ? /* @__PURE__ */ jsx(StorefrontLink, {
286
247
  href: clearHref(route, searchParams),
287
248
  "data-fs-order-list-search-clear": "",
288
- children: texts.clear
249
+ children: format("clear")
289
250
  }) : null
290
251
  ]
291
252
  });
@@ -1 +1 @@
1
- {"version":3,"file":"order-list-search.js","names":[],"sources":["../../../src/matter/order-list-search/order-list-search.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport { type Ref, type SubmitEvent, useId, useState } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport { Field } from '../../particles/field/field.js';\nimport { Input } from '../../particles/input/input.js';\nimport { type CurrentRoute, currentPageWith } from '../../sdk/navigation/current-page.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { useStorefrontNavigation } from '../../sdk/navigation/use-storefront-navigation.js';\nimport { useStorefrontRoute } from '../../sdk/navigation/use-storefront-route.js';\nimport { useStorefrontSearchParams } from '../../sdk/navigation/use-storefront-search-params.js';\n\nexport const OrderListSearchContent = defineContentType({\n id: 'order-list-search',\n title: 'Order List Search',\n description: 'The order-number label, the placed-date labels, and the invalid-range message.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Order number' },\n from: { type: 'string', title: 'Placed from' },\n to: { type: 'string', title: 'Placed to' },\n submit: { type: 'string', title: 'Search' },\n clear: { type: 'string', title: 'Clear search' },\n invalidRange: { type: 'string', title: 'Invalid range' },\n },\n },\n});\n\nexport type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;\n\nexport type OrderListSearchProps = Readonly<{\n /** Visible label of the text field. */\n label?: string;\n fromLabel?: string;\n toLabel?: string;\n submitLabel?: string;\n clearLabel?: string;\n /** Shown when the from day is after the to day. */\n invalidRangeMessage?: string;\n /** Injected by the compiler from the page content entry. */\n $content?: OrderListSearchContentValue;\n className?: string;\n ref?: Ref<HTMLFormElement>;\n}>;\n\ntype Fields = {\n term: string;\n from: string;\n to: string;\n};\n\nconst DAY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst INSTANT = /^(\\d{4})-(\\d{2})-(\\d{2})T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\nconst DEFAULTS = {\n label: 'Order number',\n from: 'Placed from',\n to: 'Placed to',\n submit: 'Search',\n clear: 'Clear search',\n invalidRange: 'The start date is after the end date.',\n} as const;\n\nexport const OrderListSearchDefinition = defineComponent<OrderListSearchProps>({\n name: 'OrderListSearch',\n importPath: '@vtex/faststore/components',\n component: OrderListSearch,\n content: OrderListSearchContent,\n editor: { label: 'Order List Search', category: 'action' },\n schema: {\n label: { type: 'string', default: 'Order number', label: 'Order number' },\n fromLabel: { type: 'string', default: 'Placed from', label: 'Placed from' },\n toLabel: { type: 'string', default: 'Placed to', label: 'Placed to' },\n submitLabel: { type: 'string', default: 'Search', label: 'Search' },\n clearLabel: { type: 'string', default: 'Clear search', label: 'Clear search' },\n invalidRangeMessage: {\n type: 'string',\n default: 'The start date is after the end date.',\n label: 'Invalid range',\n },\n },\n guideline:\n 'A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written.',\n});\n\nfunction resolveText(content: string | undefined, prop: string | undefined, fallback: string): string {\n const fromContent = content?.trim();\n if (fromContent) {\n return fromContent;\n }\n const fromProp = prop?.trim();\n if (fromProp) {\n return fromProp;\n }\n return fallback;\n}\n\nfunction calendarDay(value: string | null): string {\n if (value == null) {\n return '';\n }\n const trimmed = value.trim();\n const match = INSTANT.exec(trimmed);\n if (!match) {\n return '';\n }\n const year = Number(match[1]);\n const monthIndex = Number(match[2]) - 1;\n const utcDay = Number(match[3]);\n const probe = new Date(Date.UTC(year, monthIndex, utcDay));\n if (probe.getUTCFullYear() !== year || probe.getUTCMonth() !== monthIndex || probe.getUTCDate() !== utcDay) {\n return '';\n }\n const date = new Date(trimmed);\n if (Number.isNaN(date.getTime())) {\n return '';\n }\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n\nfunction dayParts(day: string): { year: number; month: number; date: number } | null {\n const match = DAY.exec(day);\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const date = Number(match[3]);\n const probe = new Date(year, month - 1, date);\n if (probe.getFullYear() !== year || probe.getMonth() !== month - 1 || probe.getDate() !== date) {\n return null;\n }\n return { year, month, date };\n}\n\nfunction instant(day: string, end: boolean): string | null {\n const parts = dayParts(day);\n if (!parts) {\n return null;\n }\n const date = end\n ? new Date(parts.year, parts.month - 1, parts.date, 23, 59, 59, 0)\n : new Date(parts.year, parts.month - 1, parts.date, 0, 0, 0, 0);\n return date.toISOString();\n}\n\nfunction inverted(from: string, to: string): boolean {\n if (!dayParts(from) || !dayParts(to)) {\n return false;\n }\n return from > to;\n}\n\nfunction submitHref(route: CurrentRoute, current: URLSearchParams, fields: Fields): PageRef | string | null {\n if (inverted(fields.from, fields.to)) {\n return null;\n }\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n const term = fields.term.trim();\n if (term.length > 0) {\n next.set('search', term);\n }\n const from = instant(fields.from, false);\n const to = instant(fields.to, true);\n if (from) {\n next.set('placedFrom', from);\n }\n if (to) {\n next.set('placedTo', to);\n }\n return currentPageWith(route, next);\n}\n\nfunction clearHref(route: CurrentRoute, current: URLSearchParams): PageRef | string {\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n return currentPageWith(route, next);\n}\n\nconst CRITERIA = ['search', 'placedFrom', 'placedTo'] as const;\n\nfunction applied(params: URLSearchParams): boolean {\n return CRITERIA.some((key) => (params.get(key) ?? '').trim().length > 0);\n}\n\nfunction criteriaKey(params: URLSearchParams): string {\n const next = new URLSearchParams();\n for (const key of CRITERIA) {\n const value = params.get(key);\n if (value != null) {\n next.set(key, value);\n }\n }\n return next.toString();\n}\n\nfunction readFields(params: URLSearchParams): Fields {\n return {\n term: params.get('search') ?? '',\n from: calendarDay(params.get('placedFrom')),\n to: calendarDay(params.get('placedTo')),\n };\n}\n\nexport function OrderListSearch({\n label,\n fromLabel,\n toLabel,\n submitLabel,\n clearLabel,\n invalidRangeMessage,\n $content,\n className,\n ref,\n}: OrderListSearchProps) {\n const route = useStorefrontRoute();\n const searchParams = useStorefrontSearchParams();\n const { push } = useStorefrontNavigation();\n const messageId = useId();\n const criteria = criteriaKey(searchParams);\n const [fields, setFields] = useState(() => readFields(searchParams));\n const [seenCriteria, setSeenCriteria] = useState(criteria);\n if (criteria !== seenCriteria) {\n setSeenCriteria(criteria);\n setFields(readFields(searchParams));\n }\n\n const texts = {\n label: resolveText($content?.label, label, DEFAULTS.label),\n from: resolveText($content?.from, fromLabel, DEFAULTS.from),\n to: resolveText($content?.to, toLabel, DEFAULTS.to),\n submit: resolveText($content?.submit, submitLabel, DEFAULTS.submit),\n clear: resolveText($content?.clear, clearLabel, DEFAULTS.clear),\n invalidRange: resolveText($content?.invalidRange, invalidRangeMessage, DEFAULTS.invalidRange),\n };\n const rangeInvalid = inverted(fields.from, fields.to);\n const showClear = applied(searchParams);\n\n function onSubmit(event: SubmitEvent<HTMLFormElement>) {\n event.preventDefault();\n const href = submitHref(route, searchParams, fields);\n if (!href) {\n return;\n }\n push(href);\n }\n\n return (\n <form\n ref={ref}\n className={className}\n data-fs-order-list-search=\"\"\n data-fs-order-list-search-invalid={rangeInvalid ? '' : undefined}\n onSubmit={onSubmit}\n >\n <Field.Root>\n <Field.Label>{texts.label}</Field.Label>\n <Input\n type=\"text\"\n value={fields.term}\n data-fs-order-list-search-term=\"\"\n onChange={(event) => {\n const term = event.target.value;\n setFields((current) => ({ ...current, term }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{texts.from}</Field.Label>\n <Input\n type=\"date\"\n value={fields.from}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-from=\"\"\n onChange={(event) => {\n const from = event.target.value;\n setFields((current) => ({ ...current, from }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{texts.to}</Field.Label>\n <Input\n type=\"date\"\n value={fields.to}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-to=\"\"\n onChange={(event) => {\n const to = event.target.value;\n setFields((current) => ({ ...current, to }));\n }}\n />\n </Field.Root>\n {rangeInvalid ? <p id={messageId}>{texts.invalidRange}</p> : null}\n <Button type=\"submit\">{texts.submit}</Button>\n {showClear ? (\n <StorefrontLink href={clearHref(route, searchParams)} data-fs-order-list-search-clear=\"\">\n {texts.clear}\n </StorefrontLink>\n ) : null}\n </form>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"order-list-search.js","names":[],"sources":["../../../src/matter/order-list-search/order-list-search.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType, type MessageLocaleProp } from '@vtex/fs-core';\nimport { type Ref, type SubmitEvent, useId, useState } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport { Field } from '../../particles/field/field.js';\nimport { Input } from '../../particles/input/input.js';\nimport { useMessageFormatter } from '../../sdk/i18n/use-message-formatter.js';\nimport { type CurrentRoute, currentPageWith } from '../../sdk/navigation/current-page.js';\nimport { StorefrontLink } from '../../sdk/navigation/storefront-link.js';\nimport type { PageRef } from '../../sdk/navigation/types.js';\nimport { useStorefrontNavigation } from '../../sdk/navigation/use-storefront-navigation.js';\nimport { useStorefrontRoute } from '../../sdk/navigation/use-storefront-route.js';\nimport { useStorefrontSearchParams } from '../../sdk/navigation/use-storefront-search-params.js';\n\nexport const OrderListSearchContent = defineContentType({\n id: 'order-list-search',\n title: 'Order List Search',\n description: 'The order-number label, the placed-date labels, and the invalid-range message.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Order number', format: 'icu-message', messageSource: 'Order number' },\n from: { type: 'string', title: 'Placed from', format: 'icu-message', messageSource: 'Placed from' },\n to: { type: 'string', title: 'Placed to', format: 'icu-message', messageSource: 'Placed to' },\n submit: { type: 'string', title: 'Search', format: 'icu-message', messageSource: 'Search' },\n clear: { type: 'string', title: 'Clear search', format: 'icu-message', messageSource: 'Clear search' },\n invalidRange: {\n type: 'string',\n title: 'Invalid range',\n description: 'Shown when the from day is after the to day.',\n format: 'icu-message',\n messageSource: 'The start date is after the end date.',\n },\n },\n },\n});\n\nexport type OrderListSearchContentValue = ContentValue<typeof OrderListSearchContent>;\n\nexport type OrderListSearchProps = MessageLocaleProp &\n Readonly<{\n /** The field labels, the button labels and the invalid-range message. */\n $content?: OrderListSearchContentValue;\n className?: string;\n ref?: Ref<HTMLFormElement>;\n }>;\n\ntype Fields = {\n term: string;\n from: string;\n to: string;\n};\n\nconst DAY = /^(\\d{4})-(\\d{2})-(\\d{2})$/;\nconst INSTANT = /^(\\d{4})-(\\d{2})-(\\d{2})T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\nexport const OrderListSearchDefinition = defineComponent<OrderListSearchProps>({\n name: 'OrderListSearch',\n importPath: '@vtex/faststore/components',\n component: OrderListSearch,\n content: OrderListSearchContent,\n editor: { label: 'Order List Search', category: 'action' },\n schema: {},\n guideline:\n 'A text field and a placed-date range that write search, placedFrom, and placedTo, keep the current view, and drop the cursor. An inverted range is not written. Its copy is the $content fields label, from, to, submit, clear and invalidRange.',\n});\n\nfunction calendarDay(value: string | null): string {\n if (value == null) {\n return '';\n }\n const trimmed = value.trim();\n const match = INSTANT.exec(trimmed);\n if (!match) {\n return '';\n }\n const year = Number(match[1]);\n const monthIndex = Number(match[2]) - 1;\n const utcDay = Number(match[3]);\n const probe = new Date(Date.UTC(year, monthIndex, utcDay));\n if (probe.getUTCFullYear() !== year || probe.getUTCMonth() !== monthIndex || probe.getUTCDate() !== utcDay) {\n return '';\n }\n const date = new Date(trimmed);\n if (Number.isNaN(date.getTime())) {\n return '';\n }\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${date.getFullYear()}-${month}-${day}`;\n}\n\nfunction dayParts(day: string): { year: number; month: number; date: number } | null {\n const match = DAY.exec(day);\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]);\n const date = Number(match[3]);\n const probe = new Date(year, month - 1, date);\n if (probe.getFullYear() !== year || probe.getMonth() !== month - 1 || probe.getDate() !== date) {\n return null;\n }\n return { year, month, date };\n}\n\nfunction instant(day: string, end: boolean): string | null {\n const parts = dayParts(day);\n if (!parts) {\n return null;\n }\n const date = end\n ? new Date(parts.year, parts.month - 1, parts.date, 23, 59, 59, 0)\n : new Date(parts.year, parts.month - 1, parts.date, 0, 0, 0, 0);\n return date.toISOString();\n}\n\nfunction inverted(from: string, to: string): boolean {\n if (!dayParts(from) || !dayParts(to)) {\n return false;\n }\n return from > to;\n}\n\nfunction submitHref(route: CurrentRoute, current: URLSearchParams, fields: Fields): PageRef | string | null {\n if (inverted(fields.from, fields.to)) {\n return null;\n }\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n const term = fields.term.trim();\n if (term.length > 0) {\n next.set('search', term);\n }\n const from = instant(fields.from, false);\n const to = instant(fields.to, true);\n if (from) {\n next.set('placedFrom', from);\n }\n if (to) {\n next.set('placedTo', to);\n }\n return currentPageWith(route, next);\n}\n\nfunction clearHref(route: CurrentRoute, current: URLSearchParams): PageRef | string {\n const next = new URLSearchParams(current);\n next.delete('search');\n next.delete('placedFrom');\n next.delete('placedTo');\n next.delete('after');\n return currentPageWith(route, next);\n}\n\nconst CRITERIA = ['search', 'placedFrom', 'placedTo'] as const;\n\nfunction applied(params: URLSearchParams): boolean {\n return CRITERIA.some((key) => (params.get(key) ?? '').trim().length > 0);\n}\n\nfunction criteriaKey(params: URLSearchParams): string {\n const next = new URLSearchParams();\n for (const key of CRITERIA) {\n const value = params.get(key);\n if (value != null) {\n next.set(key, value);\n }\n }\n return next.toString();\n}\n\nfunction readFields(params: URLSearchParams): Fields {\n return {\n term: params.get('search') ?? '',\n from: calendarDay(params.get('placedFrom')),\n to: calendarDay(params.get('placedTo')),\n };\n}\n\nexport function OrderListSearch({ $content, $locale, className, ref }: OrderListSearchProps) {\n const route = useStorefrontRoute();\n const searchParams = useStorefrontSearchParams();\n const { push } = useStorefrontNavigation();\n const messageId = useId();\n const criteria = criteriaKey(searchParams);\n const [fields, setFields] = useState(() => readFields(searchParams));\n const [seenCriteria, setSeenCriteria] = useState(criteria);\n if (criteria !== seenCriteria) {\n setSeenCriteria(criteria);\n setFields(readFields(searchParams));\n }\n\n const { format } = useMessageFormatter(OrderListSearchContent, $content);\n const rangeInvalid = inverted(fields.from, fields.to);\n const showClear = applied(searchParams);\n\n function onSubmit(event: SubmitEvent<HTMLFormElement>) {\n event.preventDefault();\n const href = submitHref(route, searchParams, fields);\n if (!href) {\n return;\n }\n push(href);\n }\n\n return (\n <form\n ref={ref}\n className={className}\n data-fs-order-list-search=\"\"\n data-fs-order-list-search-invalid={rangeInvalid ? '' : undefined}\n onSubmit={onSubmit}\n >\n <Field.Root>\n <Field.Label>{format('label')}</Field.Label>\n <Input\n type=\"text\"\n value={fields.term}\n data-fs-order-list-search-term=\"\"\n onChange={(event) => {\n const term = event.target.value;\n setFields((current) => ({ ...current, term }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{format('from')}</Field.Label>\n <Input\n type=\"date\"\n value={fields.from}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-from=\"\"\n onChange={(event) => {\n const from = event.target.value;\n setFields((current) => ({ ...current, from }));\n }}\n />\n </Field.Root>\n <Field.Root invalid={rangeInvalid}>\n <Field.Label>{format('to')}</Field.Label>\n <Input\n type=\"date\"\n value={fields.to}\n aria-invalid={rangeInvalid || undefined}\n aria-describedby={rangeInvalid ? messageId : undefined}\n data-fs-order-list-search-to=\"\"\n onChange={(event) => {\n const to = event.target.value;\n setFields((current) => ({ ...current, to }));\n }}\n />\n </Field.Root>\n {rangeInvalid ? <p id={messageId}>{format('invalidRange')}</p> : null}\n <Button type=\"submit\">{format('submit')}</Button>\n {showClear ? (\n <StorefrontLink href={clearHref(route, searchParams)} data-fs-order-list-search-clear=\"\">\n {format('clear')}\n </StorefrontLink>\n ) : null}\n </form>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ContentValue } from "../../core/dist/define-content-type.js";
1
+ import { ContentValue, MessageLocaleProp } from "../../core/dist/define-content-type.js";
2
2
  import { ComponentDefinition } from "../../core/dist/define-component.js";
3
3
  import "../../core/dist/index.js";
4
4
  import { Ref } from "react";
@@ -14,52 +14,45 @@ export declare const OrderListViewsContent: {
14
14
  readonly label: {
15
15
  readonly type: "string";
16
16
  readonly title: "Accessible name";
17
+ readonly format: "icu-message";
18
+ readonly messageSource: "Order views";
17
19
  };
18
20
  readonly all: {
19
21
  readonly type: "string";
20
22
  readonly title: "All orders";
23
+ readonly format: "icu-message";
24
+ readonly messageSource: "All orders";
21
25
  };
22
26
  readonly ongoing: {
23
27
  readonly type: "string";
24
28
  readonly title: "Ongoing";
29
+ readonly format: "icu-message";
30
+ readonly messageSource: "Ongoing";
25
31
  };
26
32
  readonly completed: {
27
33
  readonly type: "string";
28
34
  readonly title: "Completed";
35
+ readonly format: "icu-message";
36
+ readonly messageSource: "Completed";
29
37
  };
30
38
  readonly cancelled: {
31
39
  readonly type: "string";
32
40
  readonly title: "Cancelled";
41
+ readonly format: "icu-message";
42
+ readonly messageSource: "Cancelled";
33
43
  };
34
44
  };
35
45
  };
36
46
  };
37
47
  export type OrderListView = 'all' | 'ongoing' | 'completed' | 'cancelled';
38
48
  export type OrderListViewsContentValue = ContentValue<typeof OrderListViewsContent>;
39
- export type OrderListViewsProps = Readonly<{
40
- /** Accessible name of the navigation landmark. */
41
- label?: string;
42
- allLabel?: string;
43
- ongoingLabel?: string;
44
- completedLabel?: string;
45
- cancelledLabel?: string;
46
- /** Injected by the compiler from the page content entry. */
49
+ export type OrderListViewsProps = MessageLocaleProp & Readonly<{
50
+ /** The accessible name of the landmark and the four view names. */
47
51
  $content?: OrderListViewsContentValue;
48
52
  className?: string;
49
53
  ref?: Ref<HTMLElement>;
50
54
  }>;
51
- export declare const OrderListViewsDefinition: ComponentDefinition<Readonly<{
52
- /** Accessible name of the navigation landmark. */
53
- label?: string;
54
- allLabel?: string;
55
- ongoingLabel?: string;
56
- completedLabel?: string;
57
- cancelledLabel?: string;
58
- /** Injected by the compiler from the page content entry. */
59
- $content?: OrderListViewsContentValue;
60
- className?: string;
61
- ref?: Ref<HTMLElement>;
62
- }>>;
63
- export declare function OrderListViews({ label, allLabel, ongoingLabel, completedLabel, cancelledLabel, $content, className, ref }: OrderListViewsProps): import("react/jsx-runtime").JSX.Element;
55
+ export declare const OrderListViewsDefinition: ComponentDefinition<OrderListViewsProps>;
56
+ export declare function OrderListViews({ $content, $locale, className, ref }: OrderListViewsProps): import("react/jsx-runtime").JSX.Element;
64
57
  //#endregion
65
58
  //# sourceMappingURL=order-list-views.d.ts.map
@@ -2,6 +2,7 @@
2
2
  import { defineComponent } from "../../core/dist/define-component.js";
3
3
  import { defineContentType } from "../../core/dist/define-content-type.js";
4
4
  import "../../core/dist/index.js";
5
+ import { useMessageFormatter } from "../../sdk/i18n/use-message-formatter.js";
5
6
  import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
6
7
  import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
7
8
  import { useStorefrontSearchParams } from "../../sdk/navigation/use-storefront-search-params.js";
@@ -18,23 +19,33 @@ const OrderListViewsContent = defineContentType({
18
19
  properties: {
19
20
  label: {
20
21
  type: "string",
21
- title: "Accessible name"
22
+ title: "Accessible name",
23
+ format: "icu-message",
24
+ messageSource: "Order views"
22
25
  },
23
26
  all: {
24
27
  type: "string",
25
- title: "All orders"
28
+ title: "All orders",
29
+ format: "icu-message",
30
+ messageSource: "All orders"
26
31
  },
27
32
  ongoing: {
28
33
  type: "string",
29
- title: "Ongoing"
34
+ title: "Ongoing",
35
+ format: "icu-message",
36
+ messageSource: "Ongoing"
30
37
  },
31
38
  completed: {
32
39
  type: "string",
33
- title: "Completed"
40
+ title: "Completed",
41
+ format: "icu-message",
42
+ messageSource: "Completed"
34
43
  },
35
44
  cancelled: {
36
45
  type: "string",
37
- title: "Cancelled"
46
+ title: "Cancelled",
47
+ format: "icu-message",
48
+ messageSource: "Cancelled"
38
49
  }
39
50
  }
40
51
  }
@@ -45,13 +56,6 @@ const CHOICES = [
45
56
  "completed",
46
57
  "cancelled"
47
58
  ];
48
- const DEFAULT_GROUP_LABEL = "Order views";
49
- const DEFAULT_LABELS = {
50
- all: "All orders",
51
- ongoing: "Ongoing",
52
- completed: "Completed",
53
- cancelled: "Cancelled"
54
- };
55
59
  const OrderListViewsDefinition = defineComponent({
56
60
  name: "OrderListViews",
57
61
  importPath: "@vtex/faststore/components",
@@ -61,50 +65,9 @@ const OrderListViewsDefinition = defineComponent({
61
65
  label: "Order List Views",
62
66
  category: "navigation"
63
67
  },
64
- schema: {
65
- label: {
66
- type: "string",
67
- default: "Order views",
68
- label: "Accessible name"
69
- },
70
- allLabel: {
71
- type: "string",
72
- default: "All orders",
73
- label: "All orders"
74
- },
75
- ongoingLabel: {
76
- type: "string",
77
- default: "Ongoing",
78
- label: "Ongoing"
79
- },
80
- completedLabel: {
81
- type: "string",
82
- default: "Completed",
83
- label: "Completed"
84
- },
85
- cancelledLabel: {
86
- type: "string",
87
- default: "Cancelled",
88
- label: "Cancelled"
89
- }
90
- },
91
- guideline: "Four links that switch the orders page among all orders, ongoing, completed, and cancelled. Choosing one writes the view search param and keeps an existing search and placed-date range. It does not filter the orders already on the page."
68
+ schema: {},
69
+ guideline: "Four links that switch the orders page among all orders, ongoing, completed, and cancelled. Their names are the $content fields all, ongoing, completed and cancelled; label is the landmark name. Choosing one writes the view search param and keeps an existing search and placed-date range. It does not filter the orders already on the page."
92
70
  });
93
- function resolveText(content, prop, fallback) {
94
- const fromContent = content?.trim();
95
- if (fromContent) return fromContent;
96
- const fromProp = prop?.trim();
97
- if (fromProp) return fromProp;
98
- return fallback;
99
- }
100
- function authoredLabel(view, props) {
101
- switch (view) {
102
- case "all": return props.allLabel;
103
- case "ongoing": return props.ongoingLabel;
104
- case "completed": return props.completedLabel;
105
- case "cancelled": return props.cancelledLabel;
106
- }
107
- }
108
71
  function currentView(value) {
109
72
  if (value === "ongoing" || value === "completed" || value === "cancelled") return value;
110
73
  return "all";
@@ -116,34 +79,25 @@ function choiceHref(route, searchParams, view) {
116
79
  if (view !== "all") next.set("view", view);
117
80
  return currentPageWith(route, next);
118
81
  }
119
- function OrderListViews({ label, allLabel, ongoingLabel, completedLabel, cancelledLabel, $content, className, ref }) {
82
+ function OrderListViews({ $content, $locale, className, ref }) {
120
83
  const route = useStorefrontRoute();
121
84
  const searchParams = useStorefrontSearchParams();
85
+ const { format } = useMessageFormatter(OrderListViewsContent, $content);
122
86
  const current = currentView(searchParams.get("view"));
123
- const props = {
124
- label,
125
- allLabel,
126
- ongoingLabel,
127
- completedLabel,
128
- cancelledLabel,
129
- $content
130
- };
131
- const groupLabel = resolveText($content?.label, label, DEFAULT_GROUP_LABEL);
132
87
  return /* @__PURE__ */ jsx("nav", {
133
88
  ref,
134
- "aria-label": groupLabel,
89
+ "aria-label": format("label"),
135
90
  className,
136
91
  "data-fs-order-list-views": "",
137
92
  "data-fs-order-list-views-current": current,
138
93
  children: CHOICES.map((view) => {
139
- const text = resolveText($content?.[view], authoredLabel(view, props), DEFAULT_LABELS[view]);
140
94
  const selected = view === current;
141
95
  return /* @__PURE__ */ jsx(StorefrontLink, {
142
96
  href: choiceHref(route, searchParams, view),
143
97
  "aria-current": selected ? "page" : void 0,
144
98
  "data-fs-order-list-views-choice": view,
145
99
  "data-fs-order-list-views-choice-current": selected ? "" : void 0,
146
- children: text
100
+ children: format(view)
147
101
  }, view);
148
102
  })
149
103
  });