@vtex/faststore 0.0.7 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/actions.json +194 -1
  3. package/dist/catalog.json +3449 -1612
  4. package/dist/cli/index.d.ts +512 -63
  5. package/dist/cli/index.js +2098 -686
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/server-runtime.js +44 -24
  8. package/dist/cli/server-runtime.js.map +1 -1
  9. package/dist/client.d.ts +5 -1
  10. package/dist/client.js +5 -1
  11. package/dist/components.d.ts +42 -10
  12. package/dist/components.js +47 -15
  13. package/dist/content-types.json +823 -0
  14. package/dist/core/dist/define-component.d.ts +12 -2
  15. package/dist/docs/account-access-gate.md +4 -4
  16. package/dist/docs/account-address-book.md +519 -0
  17. package/dist/docs/account-entry-point.md +5 -5
  18. package/dist/docs/account-menu.md +7 -7
  19. package/dist/docs/account-saved-cards.md +301 -0
  20. package/dist/docs/alert-dialog.md +2 -2
  21. package/dist/docs/billing-address.md +17 -9
  22. package/dist/docs/binding-switcher.md +154 -0
  23. package/dist/docs/card-entry.md +38 -7
  24. package/dist/docs/card-summary.md +175 -0
  25. package/dist/docs/cardholder-document.md +16 -14
  26. package/dist/docs/cart-destination.md +238 -0
  27. package/dist/docs/cart-item.md +22 -4
  28. package/dist/docs/cart-totalizer.md +1 -1
  29. package/dist/docs/cart.md +126 -19
  30. package/dist/docs/client-profile-fieldset.md +7 -5
  31. package/dist/docs/copy-text.md +84 -0
  32. package/dist/docs/document-field.md +8 -8
  33. package/dist/docs/footer-link-group.md +2 -2
  34. package/dist/docs/footer-social.md +1 -1
  35. package/dist/docs/free-shipping-progress.md +13 -9
  36. package/dist/docs/header-root.md +1 -1
  37. package/dist/docs/incentives.md +4 -4
  38. package/dist/docs/logo.md +6 -6
  39. package/dist/docs/my-account-profile.md +4 -4
  40. package/dist/docs/navigation-link-list.md +2 -2
  41. package/dist/docs/navigation-link.md +3 -3
  42. package/dist/docs/order-cancel.md +52 -0
  43. package/dist/docs/order-delivery-address.md +63 -0
  44. package/dist/docs/order-delivery-group.md +83 -0
  45. package/dist/docs/order-details-back.md +41 -0
  46. package/dist/docs/order-details-header.md +48 -0
  47. package/dist/docs/order-list-row.md +46 -0
  48. package/dist/docs/order-list-search.md +101 -0
  49. package/dist/docs/order-list-views.md +97 -0
  50. package/dist/docs/order-list.md +94 -0
  51. package/dist/docs/order-payment.md +94 -0
  52. package/dist/docs/order-placed-date.md +49 -0
  53. package/dist/docs/order-placed-payment-summary.md +13 -15
  54. package/dist/docs/order-placed.md +225 -0
  55. package/dist/docs/order-progress.md +88 -0
  56. package/dist/docs/order-status-badge.md +91 -0
  57. package/dist/docs/order-summary.md +53 -0
  58. package/dist/docs/payment-method-badges.md +16 -5
  59. package/dist/docs/payment-methods.md +1 -1
  60. package/dist/docs/place-order.md +13 -9
  61. package/dist/docs/product-information.md +2 -2
  62. package/dist/docs/product-shelf.md +7 -0
  63. package/dist/docs/saved-cards.md +2 -2
  64. package/dist/docs/select.md +22 -10
  65. package/dist/docs/session.md +1 -1
  66. package/dist/docs/shipping-address.md +1 -1
  67. package/dist/docs/sign-in-redirect.md +7 -7
  68. package/dist/docs/toast.md +35 -13
  69. package/dist/index.d.ts +7 -2
  70. package/dist/index.js +2 -1
  71. package/dist/internal/client.d.ts +9 -1
  72. package/dist/internal/client.js +10 -2
  73. package/dist/internal/server.d.ts +8 -2
  74. package/dist/internal/server.js +8 -2
  75. package/dist/matter/account-access-gate/account-access-gate.d.ts +2 -1
  76. package/dist/matter/account-access-gate/account-access-gate.js +19 -16
  77. package/dist/matter/account-access-gate/account-access-gate.js.map +1 -1
  78. package/dist/matter/account-address-book/account-address-book-delete.d.ts +60 -0
  79. package/dist/matter/account-address-book/account-address-book-delete.js +184 -0
  80. package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -0
  81. package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +19 -0
  82. package/dist/matter/account-address-book/account-address-book-deliverability.js +50 -0
  83. package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -0
  84. package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +42 -0
  85. package/dist/matter/account-address-book/account-address-book-form-parts.js +146 -0
  86. package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -0
  87. package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +25 -0
  88. package/dist/matter/account-address-book/account-address-book-profile-notice.js +72 -0
  89. package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -0
  90. package/dist/matter/account-address-book/account-address-book.d.ts +120 -0
  91. package/dist/matter/account-address-book/account-address-book.js +469 -0
  92. package/dist/matter/account-address-book/account-address-book.js.map +1 -0
  93. package/dist/matter/account-address-book/account-address-country-switch.js +59 -0
  94. package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -0
  95. package/dist/matter/account-address-book/account-address-country.d.ts +36 -0
  96. package/dist/matter/account-address-book/account-address-country.js +151 -0
  97. package/dist/matter/account-address-book/account-address-country.js.map +1 -0
  98. package/dist/matter/account-address-book/account-address-first-line.js +11 -0
  99. package/dist/matter/account-address-book/account-address-first-line.js.map +1 -0
  100. package/dist/matter/account-address-book/account-address-form-context.d.ts +55 -0
  101. package/dist/matter/account-address-book/account-address-form-context.js +14 -0
  102. package/dist/matter/account-address-book/account-address-form-context.js.map +1 -0
  103. package/dist/matter/account-address-book/account-address-form.d.ts +85 -0
  104. package/dist/matter/account-address-book/account-address-form.js +946 -0
  105. package/dist/matter/account-address-book/account-address-form.js.map +1 -0
  106. package/dist/matter/account-address-book/account-address-postal-autofill.js +189 -0
  107. package/dist/matter/account-address-book/account-address-postal-autofill.js.map +1 -0
  108. package/dist/matter/account-address-book/account-address-record.d.ts +26 -0
  109. package/dist/matter/account-address-book/account-address-record.js +138 -0
  110. package/dist/matter/account-address-book/account-address-record.js.map +1 -0
  111. package/dist/matter/account-entry-point/account-entry-point.js +11 -11
  112. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
  113. package/dist/matter/account-menu/account-menu.d.ts +7 -3
  114. package/dist/matter/account-menu/account-menu.js +69 -28
  115. package/dist/matter/account-menu/account-menu.js.map +1 -1
  116. package/dist/matter/account-saved-cards/account-saved-cards.d.ts +383 -0
  117. package/dist/matter/account-saved-cards/account-saved-cards.js +956 -0
  118. package/dist/matter/account-saved-cards/account-saved-cards.js.map +1 -0
  119. package/dist/matter/billing-address/billing-address.d.ts +30 -17
  120. package/dist/matter/billing-address/billing-address.js +128 -33
  121. package/dist/matter/billing-address/billing-address.js.map +1 -1
  122. package/dist/matter/breadcrumb/breadcrumb.js +2 -2
  123. package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
  124. package/dist/matter/card-entry/card-capture.js +4 -3
  125. package/dist/matter/card-entry/card-capture.js.map +1 -1
  126. package/dist/matter/card-entry/card-entry.d.ts +5 -3
  127. package/dist/matter/card-entry/card-entry.js +77 -27
  128. package/dist/matter/card-entry/card-entry.js.map +1 -1
  129. package/dist/matter/cardholder-document/cardholder-document.d.ts +10 -9
  130. package/dist/matter/cardholder-document/cardholder-document.js +36 -16
  131. package/dist/matter/cardholder-document/cardholder-document.js.map +1 -1
  132. package/dist/matter/cart/cart-namespace.d.ts +5 -1
  133. package/dist/matter/cart/cart-namespace.js +5 -1
  134. package/dist/matter/cart/cart-namespace.js.map +1 -1
  135. package/dist/matter/cart/cart.d.ts +41 -6
  136. package/dist/matter/cart/cart.js +267 -54
  137. package/dist/matter/cart/cart.js.map +1 -1
  138. package/dist/matter/cart-destination/cart-destination.d.ts +222 -0
  139. package/dist/matter/cart-destination/cart-destination.js +613 -0
  140. package/dist/matter/cart-destination/cart-destination.js.map +1 -0
  141. package/dist/matter/cart-item/cart-item.d.ts +4 -2
  142. package/dist/matter/cart-item/cart-item.js +76 -17
  143. package/dist/matter/cart-item/cart-item.js.map +1 -1
  144. package/dist/matter/cart-totalizer/cart-totalizer.js +3 -2
  145. package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -1
  146. package/dist/matter/client-preferences/client-preferences-fieldset.js +1 -1
  147. package/dist/matter/client-profile-form/client-profile-fieldset.js +8 -5
  148. package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
  149. package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +6 -3
  150. package/dist/matter/free-shipping-progress/free-shipping-progress.js +76 -33
  151. package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -1
  152. package/dist/matter/identity-edit/identity-edit.js +3 -3
  153. package/dist/matter/identity-edit/identity-edit.js.map +1 -1
  154. package/dist/matter/identity-summary/identity-summary.js +2 -2
  155. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  156. package/dist/matter/my-account-profile/my-account-profile.d.ts +3 -3
  157. package/dist/matter/my-account-profile/my-account-profile.js +4 -4
  158. package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
  159. package/dist/matter/order-cancel/order-cancel.d.ts +110 -0
  160. package/dist/matter/order-cancel/order-cancel.js +344 -0
  161. package/dist/matter/order-cancel/order-cancel.js.map +1 -0
  162. package/dist/matter/order-delivery-address/order-delivery-address.d.ts +73 -0
  163. package/dist/matter/order-delivery-address/order-delivery-address.js +172 -0
  164. package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -0
  165. package/dist/matter/order-delivery-group/order-delivery-group.d.ts +128 -0
  166. package/dist/matter/order-delivery-group/order-delivery-group.js +408 -0
  167. package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -0
  168. package/dist/matter/order-details-header/order-details-header.d.ts +104 -0
  169. package/dist/matter/order-details-header/order-details-header.js +190 -0
  170. package/dist/matter/order-details-header/order-details-header.js.map +1 -0
  171. package/dist/matter/order-list/customer-orders-filter.d.ts +12 -0
  172. package/dist/matter/order-list/customer-orders-filter.js +30 -0
  173. package/dist/matter/order-list/customer-orders-filter.js.map +1 -0
  174. package/dist/matter/order-list/order-list.d.ts +121 -0
  175. package/dist/matter/order-list/order-list.js +395 -0
  176. package/dist/matter/order-list/order-list.js.map +1 -0
  177. package/dist/matter/order-list-row/order-list-row.d.ts +44 -0
  178. package/dist/matter/order-list-row/order-list-row.js +127 -0
  179. package/dist/matter/order-list-row/order-list-row.js.map +1 -0
  180. package/dist/matter/order-list-search/order-list-search.d.ts +72 -0
  181. package/dist/matter/order-list-search/order-list-search.js +296 -0
  182. package/dist/matter/order-list-search/order-list-search.js.map +1 -0
  183. package/dist/matter/order-list-views/order-list-views.d.ts +65 -0
  184. package/dist/matter/order-list-views/order-list-views.js +154 -0
  185. package/dist/matter/order-list-views/order-list-views.js.map +1 -0
  186. package/dist/matter/order-payment/order-payment.d.ts +83 -0
  187. package/dist/matter/order-payment/order-payment.js +258 -0
  188. package/dist/matter/order-payment/order-payment.js.map +1 -0
  189. package/dist/matter/order-placed/order-placed-deliveries.d.ts +145 -0
  190. package/dist/matter/order-placed/order-placed-deliveries.js +380 -0
  191. package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -0
  192. package/dist/matter/order-placed/order-placed.d.ts +122 -0
  193. package/dist/matter/order-placed/order-placed.js +452 -0
  194. package/dist/matter/order-placed/order-placed.js.map +1 -0
  195. package/dist/matter/order-placed-date/order-placed-date.d.ts +45 -0
  196. package/dist/matter/order-placed-date/order-placed-date.js +92 -0
  197. package/dist/matter/order-placed-date/order-placed-date.js.map +1 -0
  198. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +5 -8
  199. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +29 -81
  200. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
  201. package/dist/matter/order-progress/order-progress.d.ts +85 -0
  202. package/dist/matter/order-progress/order-progress.js +203 -0
  203. package/dist/matter/order-progress/order-progress.js.map +1 -0
  204. package/dist/matter/order-summary/order-summary.d.ts +81 -0
  205. package/dist/matter/order-summary/order-summary.js +192 -0
  206. package/dist/matter/order-summary/order-summary.js.map +1 -0
  207. package/dist/matter/payment/cardholder-document-rule.d.ts +35 -0
  208. package/dist/matter/payment/cardholder-document-rule.js +35 -0
  209. package/dist/matter/payment/cardholder-document-rule.js.map +1 -0
  210. package/dist/matter/payment/payment-card-capture.js +38 -23
  211. package/dist/matter/payment/payment-card-capture.js.map +1 -1
  212. package/dist/matter/payment/payment-controller.js +11 -0
  213. package/dist/matter/payment/payment-controller.js.map +1 -1
  214. package/dist/matter/payment/payment-method-badges.js +4 -2
  215. package/dist/matter/payment/payment-method-badges.js.map +1 -1
  216. package/dist/matter/payment/payment.js +11 -0
  217. package/dist/matter/payment/payment.js.map +1 -1
  218. package/dist/matter/payment/use-payment-method-selection.d.ts +39 -0
  219. package/dist/matter/payment/use-payment-method-selection.js +30 -2
  220. package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
  221. package/dist/matter/payment/use-payment-submit-gate.d.ts +16 -2
  222. package/dist/matter/payment/use-payment-submit-gate.js +42 -14
  223. package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
  224. package/dist/matter/place-order/place-order.d.ts +12 -7
  225. package/dist/matter/place-order/place-order.js +126 -103
  226. package/dist/matter/place-order/place-order.js.map +1 -1
  227. package/dist/matter/pricing/pricing.js +5 -5
  228. package/dist/matter/pricing/pricing.js.map +1 -1
  229. package/dist/matter/product-shelf/product-shelf.d.ts +7 -0
  230. package/dist/matter/product-shelf/product-shelf.js +115 -1
  231. package/dist/matter/product-shelf/product-shelf.js.map +1 -1
  232. package/dist/matter/region/region.js +1 -1
  233. package/dist/matter/saved-cards/saved-cards.js +26 -15
  234. package/dist/matter/saved-cards/saved-cards.js.map +1 -1
  235. package/dist/matter/session/session.js +2 -2
  236. package/dist/matter/session/session.js.map +1 -1
  237. package/dist/matter/shipping-address/country-descriptors.d.ts +1 -0
  238. package/dist/matter/shipping-address/country-descriptors.js +23 -1
  239. package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
  240. package/dist/matter/shipping-address/shipping-address.js +62 -14
  241. package/dist/matter/shipping-address/shipping-address.js.map +1 -1
  242. package/dist/matter/shipping-simulator/shipping-simulator.d.ts +2 -2
  243. package/dist/matter/shipping-simulator/shipping-simulator.js +6 -2
  244. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
  245. package/dist/matter/sign-in-redirect/sign-in-redirect.js +48 -10
  246. package/dist/matter/sign-in-redirect/sign-in-redirect.js.map +1 -1
  247. package/dist/matter/variant-selector/variant-selector.js +2 -2
  248. package/dist/matter/variant-selector/variant-selector.js.map +1 -1
  249. package/dist/particles/address-summary/address-summary.js +2 -2
  250. package/dist/particles/address-summary/address-summary.js.map +1 -1
  251. package/dist/particles/alert-dialog/alert-dialog.d.ts +5 -1
  252. package/dist/particles/alert-dialog/alert-dialog.js +5 -2
  253. package/dist/particles/alert-dialog/alert-dialog.js.map +1 -1
  254. package/dist/particles/binding-switcher/binding-switcher.d.ts +38 -0
  255. package/dist/particles/binding-switcher/binding-switcher.js +183 -0
  256. package/dist/particles/binding-switcher/binding-switcher.js.map +1 -0
  257. package/dist/particles/card-summary/card-network.d.ts +17 -0
  258. package/dist/particles/card-summary/card-network.js +25 -0
  259. package/dist/particles/card-summary/card-network.js.map +1 -0
  260. package/dist/particles/card-summary/card-summary.d.ts +83 -0
  261. package/dist/particles/card-summary/card-summary.js +188 -0
  262. package/dist/particles/card-summary/card-summary.js.map +1 -0
  263. package/dist/particles/copy-text/copy-text.d.ts +28 -0
  264. package/dist/particles/copy-text/copy-text.js +140 -0
  265. package/dist/particles/copy-text/copy-text.js.map +1 -0
  266. package/dist/particles/document-field/document-field.d.ts +34 -5
  267. package/dist/particles/document-field/document-field.js +115 -19
  268. package/dist/particles/document-field/document-field.js.map +1 -1
  269. package/dist/particles/field/field.js +1 -1
  270. package/dist/particles/field/field.js.map +1 -1
  271. package/dist/particles/footer-link-group/footer-link-group.d.ts +6 -2
  272. package/dist/particles/footer-link-group/footer-link-group.js +18 -7
  273. package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
  274. package/dist/particles/footer-social/footer-social.d.ts +1 -1
  275. package/dist/particles/footer-social/footer-social.js +1 -1
  276. package/dist/particles/footer-social/footer-social.js.map +1 -1
  277. package/dist/particles/incentives/incentives.d.ts +7 -3
  278. package/dist/particles/incentives/incentives.js +8 -3
  279. package/dist/particles/incentives/incentives.js.map +1 -1
  280. package/dist/particles/logo/logo.d.ts +3 -2
  281. package/dist/particles/logo/logo.js +20 -8
  282. package/dist/particles/logo/logo.js.map +1 -1
  283. package/dist/particles/navigation-link/navigation-link.d.ts +2 -3
  284. package/dist/particles/navigation-link/navigation-link.js +4 -4
  285. package/dist/particles/navigation-link/navigation-link.js.map +1 -1
  286. package/dist/particles/navigation-link-list/navigation-link-list.d.ts +6 -2
  287. package/dist/particles/navigation-link-list/navigation-link-list.js +18 -7
  288. package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -1
  289. package/dist/particles/order-details-back/order-details-back.d.ts +28 -0
  290. package/dist/particles/order-details-back/order-details-back.js +52 -0
  291. package/dist/particles/order-details-back/order-details-back.js.map +1 -0
  292. package/dist/particles/order-status-badge/order-status-badge.d.ts +19 -0
  293. package/dist/particles/order-status-badge/order-status-badge.js +50 -0
  294. package/dist/particles/order-status-badge/order-status-badge.js.map +1 -0
  295. package/dist/particles/payment-methods/payment-methods.d.ts +1 -1
  296. package/dist/particles/payment-methods/payment-methods.js +1 -1
  297. package/dist/particles/payment-methods/payment-methods.js.map +1 -1
  298. package/dist/particles/phone-field/phone-field.js +2 -2
  299. package/dist/particles/phone-field/phone-field.js.map +1 -1
  300. package/dist/particles/select/select.js +6 -6
  301. package/dist/particles/select/select.js.map +1 -1
  302. package/dist/particles/toast/toast.d.ts +21 -7
  303. package/dist/particles/toast/toast.js +76 -8
  304. package/dist/particles/toast/toast.js.map +1 -1
  305. package/dist/schema.graphql +1376 -126
  306. package/dist/sdk/actions/address-action-provider.d.ts +16 -0
  307. package/dist/sdk/actions/address-action-provider.js +20 -0
  308. package/dist/sdk/actions/address-action-provider.js.map +1 -0
  309. package/dist/sdk/actions/analytics-action-provider.js +1 -1
  310. package/dist/sdk/actions/index.d.ts +5 -1
  311. package/dist/sdk/actions/index.js +5 -1
  312. package/dist/sdk/actions/locale-action-provider.d.ts +16 -0
  313. package/dist/sdk/actions/locale-action-provider.js +20 -0
  314. package/dist/sdk/actions/locale-action-provider.js.map +1 -0
  315. package/dist/sdk/actions/order-action-provider.d.ts +12 -0
  316. package/dist/sdk/actions/order-action-provider.js +16 -0
  317. package/dist/sdk/actions/order-action-provider.js.map +1 -0
  318. package/dist/sdk/actions/saved-card-action-provider.d.ts +12 -0
  319. package/dist/sdk/actions/saved-card-action-provider.js +16 -0
  320. package/dist/sdk/actions/saved-card-action-provider.js.map +1 -0
  321. package/dist/sdk/actions/types.d.ts +10 -2
  322. package/dist/sdk/address/address-fields.js +38 -0
  323. package/dist/sdk/address/address-fields.js.map +1 -0
  324. package/dist/sdk/address/checkout-readiness.js +17 -0
  325. package/dist/sdk/address/checkout-readiness.js.map +1 -0
  326. package/dist/sdk/address/constants.js +60 -0
  327. package/dist/sdk/address/constants.js.map +1 -0
  328. package/dist/sdk/address/country-display.js +19 -0
  329. package/dist/sdk/address/country-display.js.map +1 -0
  330. package/dist/sdk/address/country-rules.js +30 -0
  331. package/dist/sdk/address/country-rules.js.map +1 -0
  332. package/dist/sdk/address/format-address.js +18 -0
  333. package/dist/sdk/address/format-address.js.map +1 -0
  334. package/dist/sdk/address/iso-countries.js +262 -0
  335. package/dist/sdk/address/iso-countries.js.map +1 -0
  336. package/dist/sdk/address/layouts.js +56 -0
  337. package/dist/sdk/address/layouts.js.map +1 -0
  338. package/dist/sdk/address/messages.js +97 -0
  339. package/dist/sdk/address/messages.js.map +1 -0
  340. package/dist/sdk/address/operations.d.ts +54 -0
  341. package/dist/sdk/address/operations.js +83 -0
  342. package/dist/sdk/address/operations.js.map +1 -0
  343. package/dist/sdk/address/postal-code-lookup-operations.js +23 -0
  344. package/dist/sdk/address/postal-code-lookup-operations.js.map +1 -0
  345. package/dist/sdk/address/postal-code.js +11 -0
  346. package/dist/sdk/address/postal-code.js.map +1 -0
  347. package/dist/sdk/address/schema.js +14 -0
  348. package/dist/sdk/address/schema.js.map +1 -0
  349. package/dist/sdk/address/server-fields.js +25 -0
  350. package/dist/sdk/address/server-fields.js.map +1 -0
  351. package/dist/sdk/address/switch-country.js +57 -0
  352. package/dist/sdk/address/switch-country.js.map +1 -0
  353. package/dist/sdk/address/types.d.ts +26 -0
  354. package/dist/sdk/address/use-address-actions.d.ts +29 -0
  355. package/dist/sdk/address/use-address-actions.js +247 -0
  356. package/dist/sdk/address/use-address-actions.js.map +1 -0
  357. package/dist/sdk/address/use-address-by-postal-code.js +57 -0
  358. package/dist/sdk/address/use-address-by-postal-code.js.map +1 -0
  359. package/dist/sdk/address/validate-address.js +62 -0
  360. package/dist/sdk/address/validate-address.js.map +1 -0
  361. package/dist/sdk/cache/storefront-cache.js +30 -4
  362. package/dist/sdk/cache/storefront-cache.js.map +1 -1
  363. package/dist/sdk/cart/operations.d.ts +2 -1
  364. package/dist/sdk/cart/operations.js +55 -1
  365. package/dist/sdk/cart/operations.js.map +1 -1
  366. package/dist/sdk/cart/optimistic.d.ts +30 -7
  367. package/dist/sdk/cart/optimistic.js +78 -41
  368. package/dist/sdk/cart/optimistic.js.map +1 -1
  369. package/dist/sdk/cart/use-cart-actions.d.ts +7 -0
  370. package/dist/sdk/cart/use-cart-actions.js +61 -15
  371. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  372. package/dist/sdk/cart/use-cart-sync-sales-channel.js +70 -0
  373. package/dist/sdk/cart/use-cart-sync-sales-channel.js.map +1 -0
  374. package/dist/sdk/client/fetch-page-data.d.ts +11 -0
  375. package/dist/sdk/client/fetch-page-data.js +12 -1
  376. package/dist/sdk/client/fetch-page-data.js.map +1 -1
  377. package/dist/sdk/content/create-content-runtime.js +1 -8
  378. package/dist/sdk/content/create-content-runtime.js.map +1 -1
  379. package/dist/sdk/data/failed-fields.js +23 -0
  380. package/dist/sdk/data/failed-fields.js.map +1 -0
  381. package/dist/sdk/data/index.js +2 -2
  382. package/dist/sdk/data/page-reactive-data-root.d.ts +45 -7
  383. package/dist/sdk/data/page-reactive-data-root.js +88 -12
  384. package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
  385. package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
  386. package/dist/sdk/generated/fragment-types.js +2 -0
  387. package/dist/sdk/generated/fragment-types.js.map +1 -1
  388. package/dist/sdk/generated/gql.js +17 -11
  389. package/dist/sdk/generated/gql.js.map +1 -1
  390. package/dist/sdk/generated/graphql.d.ts +185 -46
  391. package/dist/sdk/generated/graphql.js +2587 -155
  392. package/dist/sdk/generated/graphql.js.map +1 -1
  393. package/dist/sdk/i18n/messages/en-US.js +157 -1
  394. package/dist/sdk/i18n/messages/en-US.json +157 -1
  395. package/dist/sdk/i18n/messages/en-US.json.d.ts +156 -0
  396. package/dist/sdk/i18n/messages/es-ES.js +157 -1
  397. package/dist/sdk/i18n/messages/es-ES.json +157 -1
  398. package/dist/sdk/i18n/messages/pt-BR.js +157 -1
  399. package/dist/sdk/i18n/messages/pt-BR.json +157 -1
  400. package/dist/sdk/i18n/provider.js +1 -1
  401. package/dist/sdk/i18n/provider.js.map +1 -1
  402. package/dist/sdk/locale/binding-switch-provider.d.ts +13 -0
  403. package/dist/sdk/locale/binding-switch-provider.js +20 -0
  404. package/dist/sdk/locale/binding-switch-provider.js.map +1 -0
  405. package/dist/sdk/locale/use-locale-actions.d.ts +16 -0
  406. package/dist/sdk/locale/use-locale-actions.js +70 -0
  407. package/dist/sdk/locale/use-locale-actions.js.map +1 -0
  408. package/dist/sdk/navigation/binding-switch.d.ts +39 -0
  409. package/dist/sdk/navigation/binding-switch.js +129 -0
  410. package/dist/sdk/navigation/binding-switch.js.map +1 -0
  411. package/dist/sdk/navigation/current-page.js +30 -0
  412. package/dist/sdk/navigation/current-page.js.map +1 -0
  413. package/dist/sdk/navigation/decode-route-params.d.ts +11 -0
  414. package/dist/sdk/navigation/decode-route-params.js +32 -0
  415. package/dist/sdk/navigation/decode-route-params.js.map +1 -0
  416. package/dist/sdk/navigation/not-found-log.d.ts +28 -0
  417. package/dist/sdk/navigation/not-found-log.js +133 -0
  418. package/dist/sdk/navigation/not-found-log.js.map +1 -0
  419. package/dist/sdk/navigation/path.js +25 -0
  420. package/dist/sdk/navigation/path.js.map +1 -0
  421. package/dist/sdk/navigation/redirect.d.ts +11 -0
  422. package/dist/sdk/navigation/redirect.js +22 -0
  423. package/dist/sdk/navigation/redirect.js.map +1 -0
  424. package/dist/sdk/navigation/report.js +70 -0
  425. package/dist/sdk/navigation/report.js.map +1 -0
  426. package/dist/sdk/navigation/resolve-storefront-href.d.ts +12 -0
  427. package/dist/sdk/navigation/resolve-storefront-href.js +214 -0
  428. package/dist/sdk/navigation/resolve-storefront-href.js.map +1 -0
  429. package/dist/sdk/navigation/route-identity-provider.d.ts +11 -0
  430. package/dist/sdk/navigation/route-identity-provider.js +20 -0
  431. package/dist/sdk/navigation/route-identity-provider.js.map +1 -0
  432. package/dist/sdk/navigation/route-map-provider.d.ts +19 -0
  433. package/dist/sdk/navigation/route-map-provider.js +29 -0
  434. package/dist/sdk/navigation/route-map-provider.js.map +1 -0
  435. package/dist/sdk/navigation/storefront-link.d.ts +16 -0
  436. package/dist/sdk/navigation/storefront-link.js +66 -0
  437. package/dist/sdk/navigation/storefront-link.js.map +1 -0
  438. package/dist/sdk/navigation/types.d.ts +45 -0
  439. package/dist/sdk/navigation/use-storefront-navigation.d.ts +26 -0
  440. package/dist/sdk/navigation/use-storefront-navigation.js +73 -0
  441. package/dist/sdk/navigation/use-storefront-navigation.js.map +1 -0
  442. package/dist/sdk/navigation/use-storefront-route.d.ts +26 -0
  443. package/dist/sdk/navigation/use-storefront-route.js +87 -0
  444. package/dist/sdk/navigation/use-storefront-route.js.map +1 -0
  445. package/dist/sdk/navigation/use-storefront-search-params.d.ts +11 -0
  446. package/dist/sdk/navigation/use-storefront-search-params.js +16 -0
  447. package/dist/sdk/navigation/use-storefront-search-params.js.map +1 -0
  448. package/dist/sdk/orders/completion-badge.d.ts +8 -0
  449. package/dist/sdk/orders/completion-badge.js +47 -0
  450. package/dist/sdk/orders/completion-badge.js.map +1 -0
  451. package/dist/sdk/orders/order-operations.d.ts +19 -0
  452. package/dist/sdk/orders/order-operations.js +21 -0
  453. package/dist/sdk/orders/order-operations.js.map +1 -0
  454. package/dist/sdk/orders/use-order-actions.d.ts +23 -0
  455. package/dist/sdk/orders/use-order-actions.js +62 -0
  456. package/dist/sdk/orders/use-order-actions.js.map +1 -0
  457. package/dist/sdk/payment/gateway-origin.js +26 -13
  458. package/dist/sdk/payment/gateway-origin.js.map +1 -1
  459. package/dist/sdk/payment/gateway.d.ts +14 -2
  460. package/dist/sdk/payment/gateway.js +32 -14
  461. package/dist/sdk/payment/gateway.js.map +1 -1
  462. package/dist/sdk/payment/operations.js +11 -0
  463. package/dist/sdk/payment/operations.js.map +1 -1
  464. package/dist/sdk/payment/submission-registry.d.ts +2 -1
  465. package/dist/sdk/payment/submission-registry.js +12 -8
  466. package/dist/sdk/payment/submission-registry.js.map +1 -1
  467. package/dist/sdk/payment/use-payment-actions.d.ts +5 -3
  468. package/dist/sdk/payment/use-payment-actions.js +5 -2
  469. package/dist/sdk/payment/use-payment-actions.js.map +1 -1
  470. package/dist/sdk/payment/use-place-order.d.ts +6 -3
  471. package/dist/sdk/payment/use-place-order.js +333 -143
  472. package/dist/sdk/payment/use-place-order.js.map +1 -1
  473. package/dist/sdk/saved-cards/operations.d.ts +16 -0
  474. package/dist/sdk/saved-cards/operations.js +41 -0
  475. package/dist/sdk/saved-cards/operations.js.map +1 -0
  476. package/dist/sdk/saved-cards/use-saved-card-actions.d.ts +26 -0
  477. package/dist/sdk/saved-cards/use-saved-card-actions.js +86 -0
  478. package/dist/sdk/saved-cards/use-saved-card-actions.js.map +1 -0
  479. package/dist/sdk/seo/page-alternates.d.ts +57 -0
  480. package/dist/sdk/seo/page-alternates.js +127 -0
  481. package/dist/sdk/seo/page-alternates.js.map +1 -0
  482. package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
  483. package/dist/sdk/shipping/shipping-operations.js +13 -0
  484. package/dist/sdk/shipping/shipping-operations.js.map +1 -1
  485. package/dist/sdk/state/cart.d.ts +9 -2
  486. package/dist/sdk/state/cart.js +9 -2
  487. package/dist/sdk/state/cart.js.map +1 -1
  488. package/dist/utils/own-value.js +19 -0
  489. package/dist/utils/own-value.js.map +1 -0
  490. package/dist/utils/safe-href.d.ts +4 -4
  491. package/dist/utils/safe-href.js +31 -22
  492. package/dist/utils/safe-href.js.map +1 -1
  493. package/package.json +5 -1
  494. package/skills/storefront-asset/SKILL.md +111 -0
  495. package/skills/storefront-asset/references/api-side.md +153 -0
  496. package/skills/storefront-asset/references/findings.md +40 -0
  497. package/skills/storefront-asset/references/ui-side.md +94 -0
  498. package/src/styles/tailwind.css +28 -2
@@ -0,0 +1,72 @@
1
+ import { ContentValue } from "../../core/dist/define-content-type.js";
2
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { Ref } from "react";
5
+ //#region src/matter/order-list-search/order-list-search.d.ts
6
+ export declare const OrderListSearchContent: {
7
+ readonly id: "order-list-search";
8
+ readonly title: "Order List Search";
9
+ readonly description: "The order-number label, the placed-date labels, and the invalid-range message.";
10
+ readonly schema: {
11
+ readonly type: "object";
12
+ readonly additionalProperties: false;
13
+ readonly properties: {
14
+ readonly label: {
15
+ readonly type: "string";
16
+ readonly title: "Order number";
17
+ };
18
+ readonly from: {
19
+ readonly type: "string";
20
+ readonly title: "Placed from";
21
+ };
22
+ readonly to: {
23
+ readonly type: "string";
24
+ readonly title: "Placed to";
25
+ };
26
+ readonly submit: {
27
+ readonly type: "string";
28
+ readonly title: "Search";
29
+ };
30
+ readonly clear: {
31
+ readonly type: "string";
32
+ readonly title: "Clear search";
33
+ };
34
+ readonly invalidRange: {
35
+ readonly type: "string";
36
+ readonly title: "Invalid range";
37
+ };
38
+ };
39
+ };
40
+ };
41
+ 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. */
52
+ $content?: OrderListSearchContentValue;
53
+ className?: string;
54
+ ref?: Ref<HTMLFormElement>;
55
+ }>;
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;
71
+ //#endregion
72
+ //# sourceMappingURL=order-list-search.d.ts.map
@@ -0,0 +1,296 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import { defineContentType } from "../../core/dist/define-content-type.js";
4
+ import "../../core/dist/index.js";
5
+ import { useStorefrontNavigation } from "../../sdk/navigation/use-storefront-navigation.js";
6
+ import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
7
+ import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
8
+ import { useStorefrontSearchParams } from "../../sdk/navigation/use-storefront-search-params.js";
9
+ import { Field } from "../../particles/field/field.js";
10
+ import { Button } from "../../particles/button/button.js";
11
+ import { Input } from "../../particles/input/input.js";
12
+ import { currentPageWith } from "../../sdk/navigation/current-page.js";
13
+ import { useId, useState } from "react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ //#region src/matter/order-list-search/order-list-search.tsx
16
+ const OrderListSearchContent = defineContentType({
17
+ id: "order-list-search",
18
+ title: "Order List Search",
19
+ description: "The order-number label, the placed-date labels, and the invalid-range message.",
20
+ schema: {
21
+ type: "object",
22
+ additionalProperties: false,
23
+ properties: {
24
+ label: {
25
+ type: "string",
26
+ title: "Order number"
27
+ },
28
+ from: {
29
+ type: "string",
30
+ title: "Placed from"
31
+ },
32
+ to: {
33
+ type: "string",
34
+ title: "Placed to"
35
+ },
36
+ submit: {
37
+ type: "string",
38
+ title: "Search"
39
+ },
40
+ clear: {
41
+ type: "string",
42
+ title: "Clear search"
43
+ },
44
+ invalidRange: {
45
+ type: "string",
46
+ title: "Invalid range"
47
+ }
48
+ }
49
+ }
50
+ });
51
+ const DAY = /^(\d{4})-(\d{2})-(\d{2})$/;
52
+ 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
+ const OrderListSearchDefinition = defineComponent({
62
+ name: "OrderListSearch",
63
+ importPath: "@vtex/faststore/components",
64
+ component: OrderListSearch,
65
+ content: OrderListSearchContent,
66
+ editor: {
67
+ label: "Order List Search",
68
+ category: "action"
69
+ },
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."
103
+ });
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
+ function calendarDay(value) {
112
+ if (value == null) return "";
113
+ const trimmed = value.trim();
114
+ const match = INSTANT.exec(trimmed);
115
+ if (!match) return "";
116
+ const year = Number(match[1]);
117
+ const monthIndex = Number(match[2]) - 1;
118
+ const utcDay = Number(match[3]);
119
+ const probe = new Date(Date.UTC(year, monthIndex, utcDay));
120
+ if (probe.getUTCFullYear() !== year || probe.getUTCMonth() !== monthIndex || probe.getUTCDate() !== utcDay) return "";
121
+ const date = new Date(trimmed);
122
+ if (Number.isNaN(date.getTime())) return "";
123
+ const month = String(date.getMonth() + 1).padStart(2, "0");
124
+ const day = String(date.getDate()).padStart(2, "0");
125
+ return `${date.getFullYear()}-${month}-${day}`;
126
+ }
127
+ function dayParts(day) {
128
+ const match = DAY.exec(day);
129
+ if (!match) return null;
130
+ const year = Number(match[1]);
131
+ const month = Number(match[2]);
132
+ const date = Number(match[3]);
133
+ const probe = new Date(year, month - 1, date);
134
+ if (probe.getFullYear() !== year || probe.getMonth() !== month - 1 || probe.getDate() !== date) return null;
135
+ return {
136
+ year,
137
+ month,
138
+ date
139
+ };
140
+ }
141
+ function instant(day, end) {
142
+ const parts = dayParts(day);
143
+ if (!parts) return null;
144
+ return (end ? new Date(parts.year, parts.month - 1, parts.date, 23, 59, 59, 0) : new Date(parts.year, parts.month - 1, parts.date, 0, 0, 0, 0)).toISOString();
145
+ }
146
+ function inverted(from, to) {
147
+ if (!dayParts(from) || !dayParts(to)) return false;
148
+ return from > to;
149
+ }
150
+ function submitHref(route, current, fields) {
151
+ if (inverted(fields.from, fields.to)) return null;
152
+ const next = new URLSearchParams(current);
153
+ next.delete("search");
154
+ next.delete("placedFrom");
155
+ next.delete("placedTo");
156
+ next.delete("after");
157
+ const term = fields.term.trim();
158
+ if (term.length > 0) next.set("search", term);
159
+ const from = instant(fields.from, false);
160
+ const to = instant(fields.to, true);
161
+ if (from) next.set("placedFrom", from);
162
+ if (to) next.set("placedTo", to);
163
+ return currentPageWith(route, next);
164
+ }
165
+ function clearHref(route, current) {
166
+ const next = new URLSearchParams(current);
167
+ next.delete("search");
168
+ next.delete("placedFrom");
169
+ next.delete("placedTo");
170
+ next.delete("after");
171
+ return currentPageWith(route, next);
172
+ }
173
+ const CRITERIA = [
174
+ "search",
175
+ "placedFrom",
176
+ "placedTo"
177
+ ];
178
+ function applied(params) {
179
+ return CRITERIA.some((key) => (params.get(key) ?? "").trim().length > 0);
180
+ }
181
+ function criteriaKey(params) {
182
+ const next = new URLSearchParams();
183
+ for (const key of CRITERIA) {
184
+ const value = params.get(key);
185
+ if (value != null) next.set(key, value);
186
+ }
187
+ return next.toString();
188
+ }
189
+ function readFields(params) {
190
+ return {
191
+ term: params.get("search") ?? "",
192
+ from: calendarDay(params.get("placedFrom")),
193
+ to: calendarDay(params.get("placedTo"))
194
+ };
195
+ }
196
+ function OrderListSearch({ label, fromLabel, toLabel, submitLabel, clearLabel, invalidRangeMessage, $content, className, ref }) {
197
+ const route = useStorefrontRoute();
198
+ const searchParams = useStorefrontSearchParams();
199
+ const { push } = useStorefrontNavigation();
200
+ const messageId = useId();
201
+ const criteria = criteriaKey(searchParams);
202
+ const [fields, setFields] = useState(() => readFields(searchParams));
203
+ const [seenCriteria, setSeenCriteria] = useState(criteria);
204
+ if (criteria !== seenCriteria) {
205
+ setSeenCriteria(criteria);
206
+ setFields(readFields(searchParams));
207
+ }
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
+ };
216
+ const rangeInvalid = inverted(fields.from, fields.to);
217
+ const showClear = applied(searchParams);
218
+ function onSubmit(event) {
219
+ event.preventDefault();
220
+ const href = submitHref(route, searchParams, fields);
221
+ if (!href) return;
222
+ push(href);
223
+ }
224
+ return /* @__PURE__ */ jsxs("form", {
225
+ ref,
226
+ className,
227
+ "data-fs-order-list-search": "",
228
+ "data-fs-order-list-search-invalid": rangeInvalid ? "" : void 0,
229
+ onSubmit,
230
+ children: [
231
+ /* @__PURE__ */ jsxs(Field.Root, { children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.label }), /* @__PURE__ */ jsx(Input, {
232
+ type: "text",
233
+ value: fields.term,
234
+ "data-fs-order-list-search-term": "",
235
+ onChange: (event) => {
236
+ const term = event.target.value;
237
+ setFields((current) => ({
238
+ ...current,
239
+ term
240
+ }));
241
+ }
242
+ })] }),
243
+ /* @__PURE__ */ jsxs(Field.Root, {
244
+ invalid: rangeInvalid,
245
+ children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.from }), /* @__PURE__ */ jsx(Input, {
246
+ type: "date",
247
+ value: fields.from,
248
+ "aria-invalid": rangeInvalid || void 0,
249
+ "aria-describedby": rangeInvalid ? messageId : void 0,
250
+ "data-fs-order-list-search-from": "",
251
+ onChange: (event) => {
252
+ const from = event.target.value;
253
+ setFields((current) => ({
254
+ ...current,
255
+ from
256
+ }));
257
+ }
258
+ })]
259
+ }),
260
+ /* @__PURE__ */ jsxs(Field.Root, {
261
+ invalid: rangeInvalid,
262
+ children: [/* @__PURE__ */ jsx(Field.Label, { children: texts.to }), /* @__PURE__ */ jsx(Input, {
263
+ type: "date",
264
+ value: fields.to,
265
+ "aria-invalid": rangeInvalid || void 0,
266
+ "aria-describedby": rangeInvalid ? messageId : void 0,
267
+ "data-fs-order-list-search-to": "",
268
+ onChange: (event) => {
269
+ const to = event.target.value;
270
+ setFields((current) => ({
271
+ ...current,
272
+ to
273
+ }));
274
+ }
275
+ })]
276
+ }),
277
+ rangeInvalid ? /* @__PURE__ */ jsx("p", {
278
+ id: messageId,
279
+ children: texts.invalidRange
280
+ }) : null,
281
+ /* @__PURE__ */ jsx(Button, {
282
+ type: "submit",
283
+ children: texts.submit
284
+ }),
285
+ showClear ? /* @__PURE__ */ jsx(StorefrontLink, {
286
+ href: clearHref(route, searchParams),
287
+ "data-fs-order-list-search-clear": "",
288
+ children: texts.clear
289
+ }) : null
290
+ ]
291
+ });
292
+ }
293
+ //#endregion
294
+ export { OrderListSearch, OrderListSearchContent, OrderListSearchDefinition };
295
+
296
+ //# sourceMappingURL=order-list-search.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,65 @@
1
+ import { ContentValue } from "../../core/dist/define-content-type.js";
2
+ import { ComponentDefinition } from "../../core/dist/define-component.js";
3
+ import "../../core/dist/index.js";
4
+ import { Ref } from "react";
5
+ //#region src/matter/order-list-views/order-list-views.d.ts
6
+ export declare const OrderListViewsContent: {
7
+ readonly id: "order-list-views";
8
+ readonly title: "Order List Views";
9
+ readonly description: "The names of the four order views and the accessible name of the switch.";
10
+ readonly schema: {
11
+ readonly type: "object";
12
+ readonly additionalProperties: false;
13
+ readonly properties: {
14
+ readonly label: {
15
+ readonly type: "string";
16
+ readonly title: "Accessible name";
17
+ };
18
+ readonly all: {
19
+ readonly type: "string";
20
+ readonly title: "All orders";
21
+ };
22
+ readonly ongoing: {
23
+ readonly type: "string";
24
+ readonly title: "Ongoing";
25
+ };
26
+ readonly completed: {
27
+ readonly type: "string";
28
+ readonly title: "Completed";
29
+ };
30
+ readonly cancelled: {
31
+ readonly type: "string";
32
+ readonly title: "Cancelled";
33
+ };
34
+ };
35
+ };
36
+ };
37
+ export type OrderListView = 'all' | 'ongoing' | 'completed' | 'cancelled';
38
+ 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. */
47
+ $content?: OrderListViewsContentValue;
48
+ className?: string;
49
+ ref?: Ref<HTMLElement>;
50
+ }>;
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;
64
+ //#endregion
65
+ //# sourceMappingURL=order-list-views.d.ts.map
@@ -0,0 +1,154 @@
1
+ "use client";
2
+ import { defineComponent } from "../../core/dist/define-component.js";
3
+ import { defineContentType } from "../../core/dist/define-content-type.js";
4
+ import "../../core/dist/index.js";
5
+ import { StorefrontLink } from "../../sdk/navigation/storefront-link.js";
6
+ import { useStorefrontRoute } from "../../sdk/navigation/use-storefront-route.js";
7
+ import { useStorefrontSearchParams } from "../../sdk/navigation/use-storefront-search-params.js";
8
+ import { currentPageWith } from "../../sdk/navigation/current-page.js";
9
+ import { jsx } from "react/jsx-runtime";
10
+ //#region src/matter/order-list-views/order-list-views.tsx
11
+ const OrderListViewsContent = defineContentType({
12
+ id: "order-list-views",
13
+ title: "Order List Views",
14
+ description: "The names of the four order views and the accessible name of the switch.",
15
+ schema: {
16
+ type: "object",
17
+ additionalProperties: false,
18
+ properties: {
19
+ label: {
20
+ type: "string",
21
+ title: "Accessible name"
22
+ },
23
+ all: {
24
+ type: "string",
25
+ title: "All orders"
26
+ },
27
+ ongoing: {
28
+ type: "string",
29
+ title: "Ongoing"
30
+ },
31
+ completed: {
32
+ type: "string",
33
+ title: "Completed"
34
+ },
35
+ cancelled: {
36
+ type: "string",
37
+ title: "Cancelled"
38
+ }
39
+ }
40
+ }
41
+ });
42
+ const CHOICES = [
43
+ "all",
44
+ "ongoing",
45
+ "completed",
46
+ "cancelled"
47
+ ];
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
+ const OrderListViewsDefinition = defineComponent({
56
+ name: "OrderListViews",
57
+ importPath: "@vtex/faststore/components",
58
+ component: OrderListViews,
59
+ content: OrderListViewsContent,
60
+ editor: {
61
+ label: "Order List Views",
62
+ category: "navigation"
63
+ },
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."
92
+ });
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
+ function currentView(value) {
109
+ if (value === "ongoing" || value === "completed" || value === "cancelled") return value;
110
+ return "all";
111
+ }
112
+ function choiceHref(route, searchParams, view) {
113
+ const next = new URLSearchParams(searchParams);
114
+ next.delete("view");
115
+ next.delete("after");
116
+ if (view !== "all") next.set("view", view);
117
+ return currentPageWith(route, next);
118
+ }
119
+ function OrderListViews({ label, allLabel, ongoingLabel, completedLabel, cancelledLabel, $content, className, ref }) {
120
+ const route = useStorefrontRoute();
121
+ const searchParams = useStorefrontSearchParams();
122
+ 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
+ return /* @__PURE__ */ jsx("nav", {
133
+ ref,
134
+ "aria-label": groupLabel,
135
+ className,
136
+ "data-fs-order-list-views": "",
137
+ "data-fs-order-list-views-current": current,
138
+ children: CHOICES.map((view) => {
139
+ const text = resolveText($content?.[view], authoredLabel(view, props), DEFAULT_LABELS[view]);
140
+ const selected = view === current;
141
+ return /* @__PURE__ */ jsx(StorefrontLink, {
142
+ href: choiceHref(route, searchParams, view),
143
+ "aria-current": selected ? "page" : void 0,
144
+ "data-fs-order-list-views-choice": view,
145
+ "data-fs-order-list-views-choice-current": selected ? "" : void 0,
146
+ children: text
147
+ }, view);
148
+ })
149
+ });
150
+ }
151
+ //#endregion
152
+ export { OrderListViews, OrderListViewsContent, OrderListViewsDefinition };
153
+
154
+ //# sourceMappingURL=order-list-views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-list-views.js","names":[],"sources":["../../../src/matter/order-list-views/order-list-views.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport type { Ref } from 'react';\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 { useStorefrontRoute } from '../../sdk/navigation/use-storefront-route.js';\nimport { useStorefrontSearchParams } from '../../sdk/navigation/use-storefront-search-params.js';\n\nexport const OrderListViewsContent = defineContentType({\n id: 'order-list-views',\n title: 'Order List Views',\n description: 'The names of the four order views and the accessible name of the switch.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Accessible name' },\n all: { type: 'string', title: 'All orders' },\n ongoing: { type: 'string', title: 'Ongoing' },\n completed: { type: 'string', title: 'Completed' },\n cancelled: { type: 'string', title: 'Cancelled' },\n },\n },\n});\n\nexport type OrderListView = 'all' | 'ongoing' | 'completed' | 'cancelled';\n\nexport type OrderListViewsContentValue = ContentValue<typeof OrderListViewsContent>;\n\nexport type OrderListViewsProps = Readonly<{\n /** Accessible name of the navigation landmark. */\n label?: string;\n allLabel?: string;\n ongoingLabel?: string;\n completedLabel?: string;\n cancelledLabel?: string;\n /** Injected by the compiler from the page content entry. */\n $content?: OrderListViewsContentValue;\n className?: string;\n ref?: Ref<HTMLElement>;\n}>;\n\nconst CHOICES: readonly OrderListView[] = ['all', 'ongoing', 'completed', 'cancelled'];\n\nconst DEFAULT_GROUP_LABEL = 'Order views';\n\nconst DEFAULT_LABELS: Record<OrderListView, string> = {\n all: 'All orders',\n ongoing: 'Ongoing',\n completed: 'Completed',\n cancelled: 'Cancelled',\n};\n\nexport const OrderListViewsDefinition = defineComponent<OrderListViewsProps>({\n name: 'OrderListViews',\n importPath: '@vtex/faststore/components',\n component: OrderListViews,\n content: OrderListViewsContent,\n editor: { label: 'Order List Views', category: 'navigation' },\n schema: {\n label: { type: 'string', default: 'Order views', label: 'Accessible name' },\n allLabel: { type: 'string', default: 'All orders', label: 'All orders' },\n ongoingLabel: { type: 'string', default: 'Ongoing', label: 'Ongoing' },\n completedLabel: { type: 'string', default: 'Completed', label: 'Completed' },\n cancelledLabel: { type: 'string', default: 'Cancelled', label: 'Cancelled' },\n },\n guideline:\n '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.',\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 authoredLabel(view: OrderListView, props: OrderListViewsProps): string | undefined {\n switch (view) {\n case 'all':\n return props.allLabel;\n case 'ongoing':\n return props.ongoingLabel;\n case 'completed':\n return props.completedLabel;\n case 'cancelled':\n return props.cancelledLabel;\n }\n}\n\nfunction currentView(value: string | null): OrderListView {\n if (value === 'ongoing' || value === 'completed' || value === 'cancelled') {\n return value;\n }\n return 'all';\n}\n\nfunction choiceHref(route: CurrentRoute, searchParams: URLSearchParams, view: OrderListView): PageRef | string {\n const next = new URLSearchParams(searchParams);\n next.delete('view');\n next.delete('after');\n if (view !== 'all') {\n next.set('view', view);\n }\n return currentPageWith(route, next);\n}\n\nexport function OrderListViews({\n label,\n allLabel,\n ongoingLabel,\n completedLabel,\n cancelledLabel,\n $content,\n className,\n ref,\n}: OrderListViewsProps) {\n const route = useStorefrontRoute();\n const searchParams = useStorefrontSearchParams();\n const current = currentView(searchParams.get('view'));\n const props: OrderListViewsProps = { label, allLabel, ongoingLabel, completedLabel, cancelledLabel, $content };\n const groupLabel = resolveText($content?.label, label, DEFAULT_GROUP_LABEL);\n\n return (\n <nav\n ref={ref}\n aria-label={groupLabel}\n className={className}\n data-fs-order-list-views=\"\"\n data-fs-order-list-views-current={current}\n >\n {CHOICES.map((view) => {\n const text = resolveText($content?.[view], authoredLabel(view, props), DEFAULT_LABELS[view]);\n const selected = view === current;\n return (\n <StorefrontLink\n key={view}\n href={choiceHref(route, searchParams, view)}\n aria-current={selected ? 'page' : undefined}\n data-fs-order-list-views-choice={view}\n data-fs-order-list-views-choice-current={selected ? '' : undefined}\n >\n {text}\n </StorefrontLink>\n );\n })}\n </nav>\n );\n}\n"],"mappings":";;;;;;;;;;AAUA,MAAa,wBAAwB,kBAAkB;CACrD,IAAI;CACJ,OAAO;CACP,aAAa;CACb,QAAQ;EACN,MAAM;EACN,sBAAsB;EACtB,YAAY;GACV,OAAO;IAAE,MAAM;IAAU,OAAO;GAAkB;GAClD,KAAK;IAAE,MAAM;IAAU,OAAO;GAAa;GAC3C,SAAS;IAAE,MAAM;IAAU,OAAO;GAAU;GAC5C,WAAW;IAAE,MAAM;IAAU,OAAO;GAAY;GAChD,WAAW;IAAE,MAAM;IAAU,OAAO;GAAY;EAClD;CACF;AACF,CAAC;AAmBD,MAAM,UAAoC;CAAC;CAAO;CAAW;CAAa;AAAW;AAErF,MAAM,sBAAsB;AAE5B,MAAM,iBAAgD;CACpD,KAAK;CACL,SAAS;CACT,WAAW;CACX,WAAW;AACb;AAEA,MAAa,2BAA2B,gBAAqC;CAC3E,MAAM;CACN,YAAY;CACZ,WAAW;CACX,SAAS;CACT,QAAQ;EAAE,OAAO;EAAoB,UAAU;CAAa;CAC5D,QAAQ;EACN,OAAO;GAAE,MAAM;GAAU,SAAS;GAAe,OAAO;EAAkB;EAC1E,UAAU;GAAE,MAAM;GAAU,SAAS;GAAc,OAAO;EAAa;EACvE,cAAc;GAAE,MAAM;GAAU,SAAS;GAAW,OAAO;EAAU;EACrE,gBAAgB;GAAE,MAAM;GAAU,SAAS;GAAa,OAAO;EAAY;EAC3E,gBAAgB;GAAE,MAAM;GAAU,SAAS;GAAa,OAAO;EAAY;CAC7E;CACA,WACE;AACJ,CAAC;AAED,SAAS,YAAY,SAA6B,MAA0B,UAA0B;CACpG,MAAM,cAAc,SAAS,KAAK;CAClC,IAAI,aACF,OAAO;CAET,MAAM,WAAW,MAAM,KAAK;CAC5B,IAAI,UACF,OAAO;CAET,OAAO;AACT;AAEA,SAAS,cAAc,MAAqB,OAAgD;CAC1F,QAAQ,MAAR;EACE,KAAK,OACH,OAAO,MAAM;EACf,KAAK,WACH,OAAO,MAAM;EACf,KAAK,aACH,OAAO,MAAM;EACf,KAAK,aACH,OAAO,MAAM;CACjB;AACF;AAEA,SAAS,YAAY,OAAqC;CACxD,IAAI,UAAU,aAAa,UAAU,eAAe,UAAU,aAC5D,OAAO;CAET,OAAO;AACT;AAEA,SAAS,WAAW,OAAqB,cAA+B,MAAuC;CAC7G,MAAM,OAAO,IAAI,gBAAgB,YAAY;CAC7C,KAAK,OAAO,MAAM;CAClB,KAAK,OAAO,OAAO;CACnB,IAAI,SAAS,OACX,KAAK,IAAI,QAAQ,IAAI;CAEvB,OAAO,gBAAgB,OAAO,IAAI;AACpC;AAEA,SAAgB,eAAe,EAC7B,OACA,UACA,cACA,gBACA,gBACA,UACA,WACA,OACsB;CACtB,MAAM,QAAQ,mBAAmB;CACjC,MAAM,eAAe,0BAA0B;CAC/C,MAAM,UAAU,YAAY,aAAa,IAAI,MAAM,CAAC;CACpD,MAAM,QAA6B;EAAE;EAAO;EAAU;EAAc;EAAgB;EAAgB;CAAS;CAC7G,MAAM,aAAa,YAAY,UAAU,OAAO,OAAO,mBAAmB;CAE1E,OACE,oBAAC,OAAD;EACO;EACL,cAAY;EACD;EACX,4BAAyB;EACzB,oCAAkC;EAEjC,UAAA,QAAQ,KAAK,SAAS;GACrB,MAAM,OAAO,YAAY,WAAW,OAAO,cAAc,MAAM,KAAK,GAAG,eAAe,KAAK;GAC3F,MAAM,WAAW,SAAS;GAC1B,OACE,oBAAC,gBAAD;IAEE,MAAM,WAAW,OAAO,cAAc,IAAI;IAC1C,gBAAc,WAAW,SAAS,KAAA;IAClC,mCAAiC;IACjC,2CAAyC,WAAW,KAAK,KAAA;IAExD,UAAA;GACa,GAPT,IAOS;EAEpB,CAAC;CACE,CAAA;AAET"}