@vtex/faststore 0.0.7 → 0.0.8
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.
- package/CHANGELOG.md +43 -0
- package/dist/actions.json +152 -1
- package/dist/catalog.json +1264 -142
- package/dist/cli/index.d.ts +512 -63
- package/dist/cli/index.js +2098 -686
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/server-runtime.js +44 -24
- package/dist/cli/server-runtime.js.map +1 -1
- package/dist/client.d.ts +5 -1
- package/dist/client.js +5 -1
- package/dist/components.d.ts +34 -7
- package/dist/components.js +38 -11
- package/dist/content-types.json +523 -0
- package/dist/core/dist/define-component.d.ts +6 -1
- package/dist/docs/account-access-gate.md +4 -4
- package/dist/docs/account-address-book.md +519 -0
- package/dist/docs/account-entry-point.md +1 -1
- package/dist/docs/account-menu.md +5 -5
- package/dist/docs/alert-dialog.md +2 -2
- package/dist/docs/billing-address.md +17 -9
- package/dist/docs/card-entry.md +37 -6
- package/dist/docs/cardholder-document.md +16 -14
- package/dist/docs/cart-item.md +1 -1
- package/dist/docs/cart.md +8 -8
- package/dist/docs/client-profile-fieldset.md +7 -5
- package/dist/docs/copy-text.md +84 -0
- package/dist/docs/document-field.md +8 -8
- package/dist/docs/footer-link-group.md +2 -2
- package/dist/docs/header-root.md +1 -1
- package/dist/docs/incentives.md +2 -2
- package/dist/docs/logo.md +5 -5
- package/dist/docs/my-account-profile.md +4 -4
- package/dist/docs/navigation-link-list.md +2 -2
- package/dist/docs/navigation-link.md +3 -3
- package/dist/docs/order-cancel.md +52 -0
- package/dist/docs/order-delivery-address.md +63 -0
- package/dist/docs/order-delivery-group.md +83 -0
- package/dist/docs/order-details-back.md +41 -0
- package/dist/docs/order-details-header.md +48 -0
- package/dist/docs/order-list-row.md +46 -0
- package/dist/docs/order-list-search.md +101 -0
- package/dist/docs/order-list-views.md +97 -0
- package/dist/docs/order-list.md +94 -0
- package/dist/docs/order-payment.md +94 -0
- package/dist/docs/order-placed-date.md +49 -0
- package/dist/docs/order-placed-payment-summary.md +13 -15
- package/dist/docs/order-placed.md +225 -0
- package/dist/docs/order-progress.md +88 -0
- package/dist/docs/order-status-badge.md +91 -0
- package/dist/docs/order-summary.md +53 -0
- package/dist/docs/payment-method-badges.md +14 -3
- package/dist/docs/place-order.md +13 -9
- package/dist/docs/saved-cards.md +2 -2
- package/dist/docs/select.md +19 -6
- package/dist/docs/session.md +1 -1
- package/dist/docs/shipping-address.md +1 -1
- package/dist/docs/sign-in-redirect.md +6 -6
- package/dist/docs/toast.md +7 -3
- package/dist/index.d.ts +6 -2
- package/dist/index.js +2 -1
- package/dist/internal/client.d.ts +6 -1
- package/dist/internal/client.js +7 -2
- package/dist/internal/server.d.ts +6 -2
- package/dist/internal/server.js +6 -2
- package/dist/matter/account-access-gate/account-access-gate.d.ts +2 -1
- package/dist/matter/account-access-gate/account-access-gate.js +19 -16
- package/dist/matter/account-access-gate/account-access-gate.js.map +1 -1
- package/dist/matter/account-address-book/account-address-book-delete.d.ts +60 -0
- package/dist/matter/account-address-book/account-address-book-delete.js +184 -0
- package/dist/matter/account-address-book/account-address-book-delete.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.d.ts +19 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.js +50 -0
- package/dist/matter/account-address-book/account-address-book-deliverability.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.d.ts +42 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.js +146 -0
- package/dist/matter/account-address-book/account-address-book-form-parts.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.d.ts +25 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.js +72 -0
- package/dist/matter/account-address-book/account-address-book-profile-notice.js.map +1 -0
- package/dist/matter/account-address-book/account-address-book.d.ts +120 -0
- package/dist/matter/account-address-book/account-address-book.js +469 -0
- package/dist/matter/account-address-book/account-address-book.js.map +1 -0
- package/dist/matter/account-address-book/account-address-country-switch.js +59 -0
- package/dist/matter/account-address-book/account-address-country-switch.js.map +1 -0
- package/dist/matter/account-address-book/account-address-country.d.ts +36 -0
- package/dist/matter/account-address-book/account-address-country.js +151 -0
- package/dist/matter/account-address-book/account-address-country.js.map +1 -0
- package/dist/matter/account-address-book/account-address-first-line.js +11 -0
- package/dist/matter/account-address-book/account-address-first-line.js.map +1 -0
- package/dist/matter/account-address-book/account-address-form-context.d.ts +55 -0
- package/dist/matter/account-address-book/account-address-form-context.js +14 -0
- package/dist/matter/account-address-book/account-address-form-context.js.map +1 -0
- package/dist/matter/account-address-book/account-address-form.d.ts +85 -0
- package/dist/matter/account-address-book/account-address-form.js +946 -0
- package/dist/matter/account-address-book/account-address-form.js.map +1 -0
- package/dist/matter/account-address-book/account-address-postal-autofill.js +189 -0
- package/dist/matter/account-address-book/account-address-postal-autofill.js.map +1 -0
- package/dist/matter/account-address-book/account-address-record.d.ts +26 -0
- package/dist/matter/account-address-book/account-address-record.js +138 -0
- package/dist/matter/account-address-book/account-address-record.js.map +1 -0
- package/dist/matter/account-entry-point/account-entry-point.js +11 -11
- package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
- package/dist/matter/account-menu/account-menu.d.ts +7 -3
- package/dist/matter/account-menu/account-menu.js +69 -28
- package/dist/matter/account-menu/account-menu.js.map +1 -1
- package/dist/matter/billing-address/billing-address.d.ts +30 -17
- package/dist/matter/billing-address/billing-address.js +128 -33
- package/dist/matter/billing-address/billing-address.js.map +1 -1
- package/dist/matter/breadcrumb/breadcrumb.js +2 -2
- package/dist/matter/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/matter/card-entry/card-capture.js +4 -3
- package/dist/matter/card-entry/card-capture.js.map +1 -1
- package/dist/matter/card-entry/card-entry.d.ts +5 -3
- package/dist/matter/card-entry/card-entry.js +77 -27
- package/dist/matter/card-entry/card-entry.js.map +1 -1
- package/dist/matter/cardholder-document/cardholder-document.d.ts +10 -9
- package/dist/matter/cardholder-document/cardholder-document.js +36 -16
- package/dist/matter/cardholder-document/cardholder-document.js.map +1 -1
- package/dist/matter/cart/cart.d.ts +7 -2
- package/dist/matter/cart/cart.js +29 -26
- package/dist/matter/cart/cart.js.map +1 -1
- package/dist/matter/cart-item/cart-item.js +2 -2
- package/dist/matter/cart-item/cart-item.js.map +1 -1
- package/dist/matter/client-preferences/client-preferences-fieldset.js +1 -1
- package/dist/matter/client-profile-form/client-profile-fieldset.js +8 -5
- package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -1
- package/dist/matter/identity-edit/identity-edit.js +3 -3
- package/dist/matter/identity-edit/identity-edit.js.map +1 -1
- package/dist/matter/identity-summary/identity-summary.js +2 -2
- package/dist/matter/identity-summary/identity-summary.js.map +1 -1
- package/dist/matter/my-account-profile/my-account-profile.d.ts +3 -3
- package/dist/matter/my-account-profile/my-account-profile.js +4 -4
- package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
- package/dist/matter/order-cancel/order-cancel.d.ts +110 -0
- package/dist/matter/order-cancel/order-cancel.js +344 -0
- package/dist/matter/order-cancel/order-cancel.js.map +1 -0
- package/dist/matter/order-delivery-address/order-delivery-address.d.ts +73 -0
- package/dist/matter/order-delivery-address/order-delivery-address.js +172 -0
- package/dist/matter/order-delivery-address/order-delivery-address.js.map +1 -0
- package/dist/matter/order-delivery-group/order-delivery-group.d.ts +128 -0
- package/dist/matter/order-delivery-group/order-delivery-group.js +408 -0
- package/dist/matter/order-delivery-group/order-delivery-group.js.map +1 -0
- package/dist/matter/order-details-header/order-details-header.d.ts +104 -0
- package/dist/matter/order-details-header/order-details-header.js +190 -0
- package/dist/matter/order-details-header/order-details-header.js.map +1 -0
- package/dist/matter/order-list/customer-orders-filter.d.ts +12 -0
- package/dist/matter/order-list/customer-orders-filter.js +30 -0
- package/dist/matter/order-list/customer-orders-filter.js.map +1 -0
- package/dist/matter/order-list/order-list.d.ts +121 -0
- package/dist/matter/order-list/order-list.js +395 -0
- package/dist/matter/order-list/order-list.js.map +1 -0
- package/dist/matter/order-list-row/order-list-row.d.ts +44 -0
- package/dist/matter/order-list-row/order-list-row.js +127 -0
- package/dist/matter/order-list-row/order-list-row.js.map +1 -0
- package/dist/matter/order-list-search/order-list-search.d.ts +72 -0
- package/dist/matter/order-list-search/order-list-search.js +296 -0
- package/dist/matter/order-list-search/order-list-search.js.map +1 -0
- package/dist/matter/order-list-views/order-list-views.d.ts +65 -0
- package/dist/matter/order-list-views/order-list-views.js +154 -0
- package/dist/matter/order-list-views/order-list-views.js.map +1 -0
- package/dist/matter/order-payment/order-payment.d.ts +83 -0
- package/dist/matter/order-payment/order-payment.js +258 -0
- package/dist/matter/order-payment/order-payment.js.map +1 -0
- package/dist/matter/order-placed/order-placed-deliveries.d.ts +145 -0
- package/dist/matter/order-placed/order-placed-deliveries.js +380 -0
- package/dist/matter/order-placed/order-placed-deliveries.js.map +1 -0
- package/dist/matter/order-placed/order-placed.d.ts +122 -0
- package/dist/matter/order-placed/order-placed.js +452 -0
- package/dist/matter/order-placed/order-placed.js.map +1 -0
- package/dist/matter/order-placed-date/order-placed-date.d.ts +45 -0
- package/dist/matter/order-placed-date/order-placed-date.js +92 -0
- package/dist/matter/order-placed-date/order-placed-date.js.map +1 -0
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +5 -8
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +29 -81
- package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -1
- package/dist/matter/order-progress/order-progress.d.ts +85 -0
- package/dist/matter/order-progress/order-progress.js +203 -0
- package/dist/matter/order-progress/order-progress.js.map +1 -0
- package/dist/matter/order-summary/order-summary.d.ts +81 -0
- package/dist/matter/order-summary/order-summary.js +192 -0
- package/dist/matter/order-summary/order-summary.js.map +1 -0
- package/dist/matter/payment/cardholder-document-rule.d.ts +35 -0
- package/dist/matter/payment/cardholder-document-rule.js +35 -0
- package/dist/matter/payment/cardholder-document-rule.js.map +1 -0
- package/dist/matter/payment/payment-card-capture.js +38 -23
- package/dist/matter/payment/payment-card-capture.js.map +1 -1
- package/dist/matter/payment/payment-controller.js +11 -0
- package/dist/matter/payment/payment-controller.js.map +1 -1
- package/dist/matter/payment/payment-method-badges.js +4 -2
- package/dist/matter/payment/payment-method-badges.js.map +1 -1
- package/dist/matter/payment/payment.js +11 -0
- package/dist/matter/payment/payment.js.map +1 -1
- package/dist/matter/payment/use-payment-method-selection.d.ts +39 -0
- package/dist/matter/payment/use-payment-method-selection.js +30 -2
- package/dist/matter/payment/use-payment-method-selection.js.map +1 -1
- package/dist/matter/payment/use-payment-submit-gate.d.ts +16 -2
- package/dist/matter/payment/use-payment-submit-gate.js +42 -14
- package/dist/matter/payment/use-payment-submit-gate.js.map +1 -1
- package/dist/matter/place-order/place-order.d.ts +12 -7
- package/dist/matter/place-order/place-order.js +126 -103
- package/dist/matter/place-order/place-order.js.map +1 -1
- package/dist/matter/pricing/pricing.js +5 -5
- package/dist/matter/pricing/pricing.js.map +1 -1
- package/dist/matter/region/region.js +1 -1
- package/dist/matter/saved-cards/saved-cards.js +26 -15
- package/dist/matter/saved-cards/saved-cards.js.map +1 -1
- package/dist/matter/session/session.js +2 -2
- package/dist/matter/session/session.js.map +1 -1
- package/dist/matter/shipping-address/country-descriptors.d.ts +1 -0
- package/dist/matter/shipping-address/country-descriptors.js +23 -1
- package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
- package/dist/matter/shipping-address/shipping-address.js +62 -14
- package/dist/matter/shipping-address/shipping-address.js.map +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.d.ts +1 -1
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
- package/dist/matter/sign-in-redirect/sign-in-redirect.js +48 -10
- package/dist/matter/sign-in-redirect/sign-in-redirect.js.map +1 -1
- package/dist/matter/variant-selector/variant-selector.js +2 -2
- package/dist/matter/variant-selector/variant-selector.js.map +1 -1
- package/dist/particles/address-summary/address-summary.js +2 -2
- package/dist/particles/address-summary/address-summary.js.map +1 -1
- package/dist/particles/alert-dialog/alert-dialog.d.ts +5 -1
- package/dist/particles/alert-dialog/alert-dialog.js +5 -2
- package/dist/particles/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/particles/copy-text/copy-text.d.ts +28 -0
- package/dist/particles/copy-text/copy-text.js +140 -0
- package/dist/particles/copy-text/copy-text.js.map +1 -0
- package/dist/particles/document-field/document-field.d.ts +34 -5
- package/dist/particles/document-field/document-field.js +115 -19
- package/dist/particles/document-field/document-field.js.map +1 -1
- package/dist/particles/field/field.js +1 -1
- package/dist/particles/field/field.js.map +1 -1
- package/dist/particles/footer-link-group/footer-link-group.d.ts +6 -2
- package/dist/particles/footer-link-group/footer-link-group.js +18 -7
- package/dist/particles/footer-link-group/footer-link-group.js.map +1 -1
- package/dist/particles/incentives/incentives.d.ts +6 -2
- package/dist/particles/incentives/incentives.js +7 -2
- package/dist/particles/incentives/incentives.js.map +1 -1
- package/dist/particles/logo/logo.d.ts +3 -2
- package/dist/particles/logo/logo.js +20 -8
- package/dist/particles/logo/logo.js.map +1 -1
- package/dist/particles/navigation-link/navigation-link.d.ts +2 -3
- package/dist/particles/navigation-link/navigation-link.js +4 -4
- package/dist/particles/navigation-link/navigation-link.js.map +1 -1
- package/dist/particles/navigation-link-list/navigation-link-list.d.ts +6 -2
- package/dist/particles/navigation-link-list/navigation-link-list.js +18 -7
- package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -1
- package/dist/particles/order-details-back/order-details-back.d.ts +28 -0
- package/dist/particles/order-details-back/order-details-back.js +52 -0
- package/dist/particles/order-details-back/order-details-back.js.map +1 -0
- package/dist/particles/order-status-badge/order-status-badge.d.ts +19 -0
- package/dist/particles/order-status-badge/order-status-badge.js +50 -0
- package/dist/particles/order-status-badge/order-status-badge.js.map +1 -0
- package/dist/particles/phone-field/phone-field.js +2 -2
- package/dist/particles/phone-field/phone-field.js.map +1 -1
- package/dist/particles/select/select.js +6 -6
- package/dist/particles/select/select.js.map +1 -1
- package/dist/particles/toast/toast.d.ts +1 -1
- package/dist/particles/toast/toast.js +32 -6
- package/dist/particles/toast/toast.js.map +1 -1
- package/dist/schema.graphql +1014 -28
- package/dist/sdk/actions/address-action-provider.d.ts +16 -0
- package/dist/sdk/actions/address-action-provider.js +20 -0
- package/dist/sdk/actions/address-action-provider.js.map +1 -0
- package/dist/sdk/actions/analytics-action-provider.js +1 -1
- package/dist/sdk/actions/index.d.ts +3 -1
- package/dist/sdk/actions/index.js +3 -1
- package/dist/sdk/actions/order-action-provider.d.ts +12 -0
- package/dist/sdk/actions/order-action-provider.js +16 -0
- package/dist/sdk/actions/order-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +6 -2
- package/dist/sdk/address/address-fields.js +38 -0
- package/dist/sdk/address/address-fields.js.map +1 -0
- package/dist/sdk/address/checkout-readiness.js +17 -0
- package/dist/sdk/address/checkout-readiness.js.map +1 -0
- package/dist/sdk/address/constants.js +60 -0
- package/dist/sdk/address/constants.js.map +1 -0
- package/dist/sdk/address/country-display.js +19 -0
- package/dist/sdk/address/country-display.js.map +1 -0
- package/dist/sdk/address/country-rules.js +30 -0
- package/dist/sdk/address/country-rules.js.map +1 -0
- package/dist/sdk/address/format-address.js +18 -0
- package/dist/sdk/address/format-address.js.map +1 -0
- package/dist/sdk/address/iso-countries.js +262 -0
- package/dist/sdk/address/iso-countries.js.map +1 -0
- package/dist/sdk/address/layouts.js +56 -0
- package/dist/sdk/address/layouts.js.map +1 -0
- package/dist/sdk/address/messages.js +97 -0
- package/dist/sdk/address/messages.js.map +1 -0
- package/dist/sdk/address/operations.d.ts +54 -0
- package/dist/sdk/address/operations.js +83 -0
- package/dist/sdk/address/operations.js.map +1 -0
- package/dist/sdk/address/postal-code-lookup-operations.js +23 -0
- package/dist/sdk/address/postal-code-lookup-operations.js.map +1 -0
- package/dist/sdk/address/postal-code.js +11 -0
- package/dist/sdk/address/postal-code.js.map +1 -0
- package/dist/sdk/address/schema.js +14 -0
- package/dist/sdk/address/schema.js.map +1 -0
- package/dist/sdk/address/server-fields.js +25 -0
- package/dist/sdk/address/server-fields.js.map +1 -0
- package/dist/sdk/address/switch-country.js +57 -0
- package/dist/sdk/address/switch-country.js.map +1 -0
- package/dist/sdk/address/types.d.ts +26 -0
- package/dist/sdk/address/use-address-actions.d.ts +29 -0
- package/dist/sdk/address/use-address-actions.js +247 -0
- package/dist/sdk/address/use-address-actions.js.map +1 -0
- package/dist/sdk/address/use-address-by-postal-code.js +57 -0
- package/dist/sdk/address/use-address-by-postal-code.js.map +1 -0
- package/dist/sdk/address/validate-address.js +62 -0
- package/dist/sdk/address/validate-address.js.map +1 -0
- package/dist/sdk/cache/storefront-cache.js +29 -4
- package/dist/sdk/cache/storefront-cache.js.map +1 -1
- package/dist/sdk/client/fetch-page-data.d.ts +11 -0
- package/dist/sdk/client/fetch-page-data.js +12 -1
- package/dist/sdk/client/fetch-page-data.js.map +1 -1
- package/dist/sdk/content/create-content-runtime.js +1 -8
- package/dist/sdk/content/create-content-runtime.js.map +1 -1
- package/dist/sdk/data/failed-fields.js +23 -0
- package/dist/sdk/data/failed-fields.js.map +1 -0
- package/dist/sdk/data/index.js +2 -2
- package/dist/sdk/data/page-reactive-data-root.d.ts +45 -7
- package/dist/sdk/data/page-reactive-data-root.js +88 -12
- package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
- package/dist/sdk/data/reactive-list-item-data-provider.js +2 -2
- package/dist/sdk/generated/fragment-types.js +2 -0
- package/dist/sdk/generated/fragment-types.js.map +1 -1
- package/dist/sdk/generated/gql.js +3 -1
- package/dist/sdk/generated/gql.js.map +1 -1
- package/dist/sdk/generated/graphql.d.ts +8 -0
- package/dist/sdk/generated/graphql.js +212 -1
- package/dist/sdk/generated/graphql.js.map +1 -1
- package/dist/sdk/i18n/messages/en-US.js +138 -1
- package/dist/sdk/i18n/messages/en-US.json +138 -1
- package/dist/sdk/i18n/messages/en-US.json.d.ts +137 -0
- package/dist/sdk/i18n/messages/es-ES.js +138 -1
- package/dist/sdk/i18n/messages/es-ES.json +138 -1
- package/dist/sdk/i18n/messages/pt-BR.js +138 -1
- package/dist/sdk/i18n/messages/pt-BR.json +138 -1
- package/dist/sdk/navigation/current-page.js +30 -0
- package/dist/sdk/navigation/current-page.js.map +1 -0
- package/dist/sdk/navigation/not-found-log.d.ts +28 -0
- package/dist/sdk/navigation/not-found-log.js +133 -0
- package/dist/sdk/navigation/not-found-log.js.map +1 -0
- package/dist/sdk/navigation/path.js +25 -0
- package/dist/sdk/navigation/path.js.map +1 -0
- package/dist/sdk/navigation/redirect.d.ts +11 -0
- package/dist/sdk/navigation/redirect.js +22 -0
- package/dist/sdk/navigation/redirect.js.map +1 -0
- package/dist/sdk/navigation/report.js +70 -0
- package/dist/sdk/navigation/report.js.map +1 -0
- package/dist/sdk/navigation/resolve-storefront-href.d.ts +12 -0
- package/dist/sdk/navigation/resolve-storefront-href.js +214 -0
- package/dist/sdk/navigation/resolve-storefront-href.js.map +1 -0
- package/dist/sdk/navigation/route-identity-provider.d.ts +11 -0
- package/dist/sdk/navigation/route-identity-provider.js +20 -0
- package/dist/sdk/navigation/route-identity-provider.js.map +1 -0
- package/dist/sdk/navigation/route-map-provider.d.ts +19 -0
- package/dist/sdk/navigation/route-map-provider.js +29 -0
- package/dist/sdk/navigation/route-map-provider.js.map +1 -0
- package/dist/sdk/navigation/storefront-link.d.ts +16 -0
- package/dist/sdk/navigation/storefront-link.js +66 -0
- package/dist/sdk/navigation/storefront-link.js.map +1 -0
- package/dist/sdk/navigation/types.d.ts +45 -0
- package/dist/sdk/navigation/use-storefront-navigation.d.ts +26 -0
- package/dist/sdk/navigation/use-storefront-navigation.js +73 -0
- package/dist/sdk/navigation/use-storefront-navigation.js.map +1 -0
- package/dist/sdk/navigation/use-storefront-route.d.ts +26 -0
- package/dist/sdk/navigation/use-storefront-route.js +87 -0
- package/dist/sdk/navigation/use-storefront-route.js.map +1 -0
- package/dist/sdk/navigation/use-storefront-search-params.d.ts +11 -0
- package/dist/sdk/navigation/use-storefront-search-params.js +16 -0
- package/dist/sdk/navigation/use-storefront-search-params.js.map +1 -0
- package/dist/sdk/orders/completion-badge.d.ts +8 -0
- package/dist/sdk/orders/completion-badge.js +47 -0
- package/dist/sdk/orders/completion-badge.js.map +1 -0
- package/dist/sdk/orders/order-operations.d.ts +19 -0
- package/dist/sdk/orders/order-operations.js +21 -0
- package/dist/sdk/orders/order-operations.js.map +1 -0
- package/dist/sdk/orders/use-order-actions.d.ts +23 -0
- package/dist/sdk/orders/use-order-actions.js +62 -0
- package/dist/sdk/orders/use-order-actions.js.map +1 -0
- package/dist/sdk/payment/gateway-origin.js +26 -13
- package/dist/sdk/payment/gateway-origin.js.map +1 -1
- package/dist/sdk/payment/gateway.d.ts +14 -2
- package/dist/sdk/payment/gateway.js +32 -14
- package/dist/sdk/payment/gateway.js.map +1 -1
- package/dist/sdk/payment/operations.js +11 -0
- package/dist/sdk/payment/operations.js.map +1 -1
- package/dist/sdk/payment/submission-registry.d.ts +2 -1
- package/dist/sdk/payment/submission-registry.js +12 -8
- package/dist/sdk/payment/submission-registry.js.map +1 -1
- package/dist/sdk/payment/use-payment-actions.d.ts +5 -3
- package/dist/sdk/payment/use-payment-actions.js +5 -2
- package/dist/sdk/payment/use-payment-actions.js.map +1 -1
- package/dist/sdk/payment/use-place-order.d.ts +6 -3
- package/dist/sdk/payment/use-place-order.js +333 -143
- package/dist/sdk/payment/use-place-order.js.map +1 -1
- package/dist/sdk/seo/page-alternates.d.ts +55 -0
- package/dist/sdk/seo/page-alternates.js +132 -0
- package/dist/sdk/seo/page-alternates.js.map +1 -0
- package/dist/utils/own-value.js +19 -0
- package/dist/utils/own-value.js.map +1 -0
- package/dist/utils/safe-href.d.ts +4 -4
- package/dist/utils/safe-href.js +31 -22
- package/dist/utils/safe-href.js.map +1 -1
- package/package.json +5 -1
- package/skills/storefront-asset/SKILL.md +111 -0
- package/skills/storefront-asset/references/api-side.md +153 -0
- package/skills/storefront-asset/references/findings.md +40 -0
- package/skills/storefront-asset/references/ui-side.md +94 -0
- package/src/styles/tailwind.css +27 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { useStorefrontContext } from "../../sdk/context/storefront-context.js";
|
|
5
|
+
import { useStorefrontFormatters } from "../../sdk/format/client.js";
|
|
6
|
+
import { useIntl } from "../../sdk/i18n/client.js";
|
|
7
|
+
import { useDataOverride } from "../../sdk/data/data-override-context.js";
|
|
8
|
+
import { resolveAuthoredCopy } from "../../utils/resolve-authored-copy.js";
|
|
9
|
+
import { countryDisplayName } from "../../sdk/address/country-display.js";
|
|
10
|
+
import { AccountAddressBookSkeleton } from "./account-address-book.js";
|
|
11
|
+
import { Select } from "../../particles/select/select.js";
|
|
12
|
+
import { useAccountAddressForm } from "./account-address-form-context.js";
|
|
13
|
+
import { useEffect, useMemo } from "react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
const AddressCountryControlDefinition = defineComponent({
|
|
16
|
+
name: "AddressCountryControl",
|
|
17
|
+
importPath: "@vtex/faststore/components",
|
|
18
|
+
component: AddressCountryControl,
|
|
19
|
+
fragment: `
|
|
20
|
+
fragment AddressCountryControlData on Query {
|
|
21
|
+
shippingCountries {
|
|
22
|
+
countries
|
|
23
|
+
source
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
`,
|
|
27
|
+
fetchStrategy: "reactive",
|
|
28
|
+
requiresContext: "account-address-form",
|
|
29
|
+
skeleton: AccountAddressBookSkeleton,
|
|
30
|
+
editor: {
|
|
31
|
+
label: "Address Country Control",
|
|
32
|
+
category: "input"
|
|
33
|
+
},
|
|
34
|
+
schema: { label: {
|
|
35
|
+
type: "string",
|
|
36
|
+
label: "Field label"
|
|
37
|
+
} },
|
|
38
|
+
guideline: "The country of the address. A new address picks it from the countries the store ships to, in a list sorted by name, when there are two or more; with one it shows nothing, and the address takes that country. A saved address keeps its country, shown as text, and so does a new one when the list could not be read. Changing it keeps the fields the new country takes, and brings back what was typed for that country before. Compose it explicitly under AccountAddressFormRoot to offer the choice: in the root's default composition it gets no list and shows the root's defaultCountry as text. Place AccountAddressCountryNotice next to it. Must be inside AccountAddressFormRoot."
|
|
39
|
+
});
|
|
40
|
+
const AccountAddressCountryNoticeDefinition = defineComponent({
|
|
41
|
+
name: "AccountAddressCountryNotice",
|
|
42
|
+
importPath: "@vtex/faststore/components",
|
|
43
|
+
component: AccountAddressCountryNotice,
|
|
44
|
+
requiresContext: "account-address-form",
|
|
45
|
+
editor: {
|
|
46
|
+
label: "Account Address Country Notice",
|
|
47
|
+
category: "content"
|
|
48
|
+
},
|
|
49
|
+
schema: { message: {
|
|
50
|
+
type: "string",
|
|
51
|
+
label: "Notice message"
|
|
52
|
+
} },
|
|
53
|
+
guideline: "Says which fields a country change left behind, and that they come back on switching back. Announced politely, and empty until a change leaves something behind. The message takes count, country, previous and fields as ICU arguments. Place it right after AddressCountryControl. Must be inside AccountAddressFormRoot."
|
|
54
|
+
});
|
|
55
|
+
function AddressCountryControl({ $data: $dataProp, label, className }) {
|
|
56
|
+
const slice = useDataOverride($dataProp);
|
|
57
|
+
const { mode, country, pending, countryChoice: { offer, selected, change } } = useAccountAddressForm();
|
|
58
|
+
const { displayName } = useStorefrontFormatters();
|
|
59
|
+
const { locale } = useStorefrontContext();
|
|
60
|
+
const intl = useIntl();
|
|
61
|
+
const countries = slice?.countries ?? null;
|
|
62
|
+
const reported = countries?.join(",") ?? null;
|
|
63
|
+
useEffect(() => offer(reported === null ? null : reported.split(",").filter(Boolean)), [offer, reported]);
|
|
64
|
+
const options = useMemo(() => {
|
|
65
|
+
const collator = new Intl.Collator(locale);
|
|
66
|
+
return (countries ?? []).map((code) => ({
|
|
67
|
+
value: code,
|
|
68
|
+
label: countryDisplayName(code, displayName) ?? code
|
|
69
|
+
})).sort((a, b) => collator.compare(a.label, b.label));
|
|
70
|
+
}, [
|
|
71
|
+
countries,
|
|
72
|
+
locale,
|
|
73
|
+
displayName
|
|
74
|
+
]);
|
|
75
|
+
const wrapper = {
|
|
76
|
+
className,
|
|
77
|
+
"data-fs-address-country-control": "",
|
|
78
|
+
...selected !== country ? { "data-fs-address-country-control-pending": "" } : {}
|
|
79
|
+
};
|
|
80
|
+
if (mode === "add" && countries?.length === 1) return null;
|
|
81
|
+
if (mode === "add" && countries && countries.length > 1) return /* @__PURE__ */ jsx("div", {
|
|
82
|
+
...wrapper,
|
|
83
|
+
"data-fs-address-country-control-mode": "select",
|
|
84
|
+
children: /* @__PURE__ */ jsxs(Select.Root, {
|
|
85
|
+
value: selected,
|
|
86
|
+
disabled: pending,
|
|
87
|
+
onValueChange: (value) => value && change(value),
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ jsx(Select.Label, { children: resolveAuthoredCopy(label, intl.formatMessage({ id: "fs/address-form.country" })) }),
|
|
90
|
+
/* @__PURE__ */ jsxs(Select.Trigger, {
|
|
91
|
+
"data-fs-account-address-form-control": "",
|
|
92
|
+
disabled: pending,
|
|
93
|
+
children: [/* @__PURE__ */ jsx(Select.Value, { children: (value) => options.find((option) => option.value === value)?.label ?? countryDisplayName(value, displayName) ?? value }), /* @__PURE__ */ jsx(Select.Icon, {})]
|
|
94
|
+
}),
|
|
95
|
+
/* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsx(Select.Positioner, { children: /* @__PURE__ */ jsx(Select.Popup, { children: /* @__PURE__ */ jsx(Select.List, { children: options.map((option) => /* @__PURE__ */ jsx(Select.Item, {
|
|
96
|
+
value: option.value,
|
|
97
|
+
label: option.label,
|
|
98
|
+
children: /* @__PURE__ */ jsx(Select.ItemText, { children: option.label })
|
|
99
|
+
}, option.value)) }) }) }) })
|
|
100
|
+
]
|
|
101
|
+
})
|
|
102
|
+
});
|
|
103
|
+
const name = countryDisplayName(country, displayName);
|
|
104
|
+
if (!name) return null;
|
|
105
|
+
return /* @__PURE__ */ jsx("div", {
|
|
106
|
+
...wrapper,
|
|
107
|
+
"data-fs-address-country-control-mode": "text",
|
|
108
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
109
|
+
"data-fs-address-country-control-text": "",
|
|
110
|
+
children: name
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function describeChange({ change, message, intl, formatters }) {
|
|
115
|
+
if (!change || change.notCarried.length === 0) return "";
|
|
116
|
+
const { displayName, formatList } = formatters;
|
|
117
|
+
const values = {
|
|
118
|
+
count: change.notCarried.length,
|
|
119
|
+
country: countryDisplayName(change.to, displayName) ?? change.to,
|
|
120
|
+
previous: countryDisplayName(change.from, displayName) ?? change.from,
|
|
121
|
+
fields: formatList(change.notCarried.map(({ labelId }) => intl.formatMessage({ id: labelId })))
|
|
122
|
+
};
|
|
123
|
+
const fallback = intl.formatMessage({ id: "fs/address-form.country-notice" }, values);
|
|
124
|
+
const authored = resolveAuthoredCopy(message, "");
|
|
125
|
+
if (!authored) return fallback;
|
|
126
|
+
try {
|
|
127
|
+
return String(intl.formatters.getMessageFormat(authored, intl.locale).format(values));
|
|
128
|
+
} catch {
|
|
129
|
+
return fallback;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function AccountAddressCountryNotice({ message, className }) {
|
|
133
|
+
const { countryChoice: { lastChange } } = useAccountAddressForm();
|
|
134
|
+
const intl = useIntl();
|
|
135
|
+
const formatters = useStorefrontFormatters();
|
|
136
|
+
return /* @__PURE__ */ jsx("output", {
|
|
137
|
+
"aria-live": "polite",
|
|
138
|
+
className,
|
|
139
|
+
"data-fs-account-address-country-notice": "",
|
|
140
|
+
children: describeChange({
|
|
141
|
+
change: lastChange,
|
|
142
|
+
message,
|
|
143
|
+
intl,
|
|
144
|
+
formatters
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
//#endregion
|
|
149
|
+
export { AccountAddressCountryNotice, AccountAddressCountryNoticeDefinition, AddressCountryControl, AddressCountryControlDefinition };
|
|
150
|
+
|
|
151
|
+
//# sourceMappingURL=account-address-country.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-country.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-country.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport { useEffect, useMemo } from 'react';\nimport { Select } from '../../particles/select/select.js';\nimport { countryDisplayName } from '../../sdk/address/country-display.js';\nimport { useStorefrontContext } from '../../sdk/context/storefront-context.js';\nimport { useDataOverride } from '../../sdk/data/data-override-context.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\nimport { resolveAuthoredCopy } from '../../utils/resolve-authored-copy.js';\nimport { AccountAddressBookSkeleton } from './account-address-book.js';\nimport { type AccountAddressCountryChange, useAccountAddressForm } from './account-address-form-context.js';\n\n/**\n * The country of a new address, chosen from where the store ships, and the notice that says what a switch\n * left behind. The control reads `shippingCountries` through its own fragment and reports the list to the\n * form, which owns the country, the switch and the values set aside. Neither part touches the draft.\n */\n\nconst fragment = /* GraphQL */ `\n fragment AddressCountryControlData on Query {\n shippingCountries {\n countries\n source\n }\n }\n`;\n\n/** The shipping countries the control reads. `countries` is ISO 3166-1 alpha-3, in the platform's order. */\nexport type AddressCountryControlSlice = Readonly<{\n countries: readonly string[];\n source: 'PLATFORM' | 'SALES_CHANNEL_FALLBACK';\n}>;\n\nexport type AddressCountryControlProps = Readonly<{\n /** Unwrapped `shippingCountries` from the reactive runtime: `null` when the read failed, absent outside the page query. */\n $data?: AddressCountryControlSlice | null;\n /** The select's label. A blank value falls back to the catalog copy. */\n label?: string;\n className?: string;\n}>;\n\nexport type AccountAddressCountryNoticeProps = Readonly<{\n /** Replaces the whole sentence, with the same ICU arguments. A blank value falls back to the catalog copy. */\n message?: string;\n className?: string;\n}>;\n\nexport const AddressCountryControlDefinition = defineComponent<AddressCountryControlProps>({\n name: 'AddressCountryControl',\n importPath: '@vtex/faststore/components',\n component: AddressCountryControl,\n fragment,\n fetchStrategy: 'reactive',\n requiresContext: 'account-address-form',\n skeleton: AccountAddressBookSkeleton,\n editor: { label: 'Address Country Control', category: 'input' },\n schema: {\n label: { type: 'string', label: 'Field label' },\n },\n guideline:\n \"The country of the address. A new address picks it from the countries the store ships to, in a list sorted by name, when there are two or more; with one it shows nothing, and the address takes that country. A saved address keeps its country, shown as text, and so does a new one when the list could not be read. Changing it keeps the fields the new country takes, and brings back what was typed for that country before. Compose it explicitly under AccountAddressFormRoot to offer the choice: in the root's default composition it gets no list and shows the root's defaultCountry as text. Place AccountAddressCountryNotice next to it. Must be inside AccountAddressFormRoot.\",\n});\n\nexport const AccountAddressCountryNoticeDefinition = defineComponent<AccountAddressCountryNoticeProps>({\n name: 'AccountAddressCountryNotice',\n importPath: '@vtex/faststore/components',\n component: AccountAddressCountryNotice,\n requiresContext: 'account-address-form',\n editor: { label: 'Account Address Country Notice', category: 'content' },\n schema: {\n message: { type: 'string', label: 'Notice message' },\n },\n guideline:\n 'Says which fields a country change left behind, and that they come back on switching back. Announced politely, and empty until a change leaves something behind. The message takes count, country, previous and fields as ICU arguments. Place it right after AddressCountryControl. Must be inside AccountAddressFormRoot.',\n});\n\ntype CountryOption = Readonly<{ value: string; label: string }>;\n\nexport function AddressCountryControl({ $data: $dataProp, label, className }: AddressCountryControlProps) {\n const slice = useDataOverride<AddressCountryControlSlice | null | undefined>($dataProp);\n const {\n mode,\n country,\n pending,\n countryChoice: { offer, selected, change },\n } = useAccountAddressForm();\n const { displayName } = useStorefrontFormatters();\n const { locale } = useStorefrontContext();\n const intl = useIntl();\n\n // A slice from another ancestor's provider has no `countries`: the list is unknown then.\n const countries = slice?.countries ?? null;\n const reported = countries?.join(',') ?? null;\n\n useEffect(() => offer(reported === null ? null : reported.split(',').filter(Boolean)), [offer, reported]);\n\n const options = useMemo<readonly CountryOption[]>(() => {\n const collator = new Intl.Collator(locale);\n return (countries ?? [])\n .map((code) => ({ value: code, label: countryDisplayName(code, displayName) ?? code }))\n .sort((a, b) => collator.compare(a.label, b.label));\n }, [countries, locale, displayName]);\n\n const switching = selected !== country;\n const wrapper = {\n className,\n 'data-fs-address-country-control': '',\n ...(switching ? { 'data-fs-address-country-control-pending': '' } : {}),\n };\n\n if (mode === 'add' && countries?.length === 1) return null;\n\n if (mode === 'add' && countries && countries.length > 1) {\n return (\n <div {...wrapper} data-fs-address-country-control-mode=\"select\">\n <Select.Root value={selected} disabled={pending} onValueChange={(value) => value && change(value)}>\n <Select.Label>\n {resolveAuthoredCopy(label, intl.formatMessage({ id: 'fs/address-form.country' }))}\n </Select.Label>\n <Select.Trigger data-fs-account-address-form-control=\"\" disabled={pending}>\n <Select.Value>\n {(value) =>\n options.find((option) => option.value === value)?.label ??\n countryDisplayName(value, displayName) ??\n value\n }\n </Select.Value>\n <Select.Icon />\n </Select.Trigger>\n <Select.Portal>\n <Select.Positioner>\n <Select.Popup>\n <Select.List>\n {options.map((option) => (\n <Select.Item key={option.value} value={option.value} label={option.label}>\n <Select.ItemText>{option.label}</Select.ItemText>\n </Select.Item>\n ))}\n </Select.List>\n </Select.Popup>\n </Select.Positioner>\n </Select.Portal>\n </Select.Root>\n </div>\n );\n }\n\n const name = countryDisplayName(country, displayName);\n if (!name) return null;\n\n return (\n <div {...wrapper} data-fs-address-country-control-mode=\"text\">\n <p data-fs-address-country-control-text=\"\">{name}</p>\n </div>\n );\n}\n\ntype DescribeChangeInput = Readonly<{\n change: AccountAddressCountryChange | null;\n message: string | undefined;\n intl: ReturnType<typeof useIntl>;\n formatters: ReturnType<typeof useStorefrontFormatters>;\n}>;\n\nfunction describeChange({ change, message, intl, formatters }: DescribeChangeInput): string {\n if (!change || change.notCarried.length === 0) return '';\n const { displayName, formatList } = formatters;\n const values = {\n count: change.notCarried.length,\n country: countryDisplayName(change.to, displayName) ?? change.to,\n previous: countryDisplayName(change.from, displayName) ?? change.from,\n fields: formatList(change.notCarried.map(({ labelId }) => intl.formatMessage({ id: labelId }))),\n };\n const fallback = intl.formatMessage({ id: 'fs/address-form.country-notice' }, values);\n const authored = resolveAuthoredCopy(message, '');\n if (!authored) return fallback;\n try {\n return String(intl.formatters.getMessageFormat(authored, intl.locale).format(values));\n } catch {\n // An authored message is free text: a malformed ICU pattern falls back to the catalog copy.\n return fallback;\n }\n}\n\nexport function AccountAddressCountryNotice({ message, className }: AccountAddressCountryNoticeProps) {\n const {\n countryChoice: { lastChange },\n } = useAccountAddressForm();\n const intl = useIntl();\n const formatters = useStorefrontFormatters();\n\n return (\n <output aria-live=\"polite\" className={className} data-fs-account-address-country-notice=\"\">\n {describeChange({ change: lastChange, message, intl, formatters })}\n </output>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { formatAddress } from "../../sdk/address/format-address.js";
|
|
2
|
+
//#region src/matter/account-address-book/account-address-first-line.ts
|
|
3
|
+
/** The text of the address's first printed line, so a button says which address it acts on. */
|
|
4
|
+
function firstLine(address) {
|
|
5
|
+
const [line] = formatAddress(address, address.country ?? "");
|
|
6
|
+
return (line ?? []).map(({ field, separator }) => `${separator ?? ""}${address[field] ?? ""}`).join("");
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { firstLine };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=account-address-first-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-first-line.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-first-line.ts"],"sourcesContent":["import { formatAddress } from '../../sdk/address/format-address.js';\nimport type { AccountAddressBookItemSlice } from './account-address-book.js';\n\n/** The text of the address's first printed line, so a button says which address it acts on. */\nexport function firstLine(address: AccountAddressBookItemSlice): string {\n const [line] = formatAddress(address, address.country ?? '');\n return (line ?? []).map(({ field, separator }) => `${separator ?? ''}${address[field] ?? ''}`).join('');\n}\n"],"mappings":";;;AAIA,SAAgB,UAAU,SAA8C;CACtE,MAAM,CAAC,QAAQ,cAAc,SAAS,QAAQ,WAAW,EAAE;CAC3D,QAAQ,QAAQ,CAAC,EAAA,CAAG,KAAK,EAAE,OAAO,gBAAgB,GAAG,aAAa,KAAK,QAAQ,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE;AACxG"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { MessageId } from "../../sdk/i18n/locales.js";
|
|
2
|
+
import "../../sdk/i18n/client.js";
|
|
3
|
+
import { AddressFieldError, AddressFieldName, CountryRules } from "../../sdk/address/types.js";
|
|
4
|
+
//#region src/matter/account-address-book/account-address-form-context.d.ts
|
|
5
|
+
export type EditableField = Exclude<AddressFieldName, 'name'>;
|
|
6
|
+
/** The draft: the address fields the form edits. `name` is not edited, as `CustomerAddress` has none. */
|
|
7
|
+
export type AccountAddressFormDraft = Readonly<Partial<Record<EditableField, string>>>;
|
|
8
|
+
export type AccountAddressFormFieldErrors = Readonly<Partial<Record<AddressFieldName, AddressFieldError>>>;
|
|
9
|
+
/** What a refusal that names no field on screen says. */
|
|
10
|
+
export type AccountAddressFormErrorKind = 'unrenderedField' | 'notFound' | 'unauthorized' | 'saveFailed' | 'rulesFailed' | 'countrySwitchFailed' | 'unsupportedCountry';
|
|
11
|
+
/** What the last applied switch did not carry, for AccountAddressCountryNotice. */
|
|
12
|
+
export type AccountAddressCountryChange = Readonly<{
|
|
13
|
+
/** ISO 3166-1 alpha-3. */
|
|
14
|
+
from: string;
|
|
15
|
+
to: string;
|
|
16
|
+
/** In the old country's field order; empty when everything was carried. */
|
|
17
|
+
notCarried: readonly Readonly<{
|
|
18
|
+
field: AddressFieldName;
|
|
19
|
+
labelId: MessageId;
|
|
20
|
+
}>[];
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* The country choice, the only part of the form the country control and the notice touch. The
|
|
24
|
+
* values set aside on a switch stay with the draft's owner, behind `change`.
|
|
25
|
+
*/
|
|
26
|
+
export type AccountAddressFormCountryChoice = Readonly<{
|
|
27
|
+
/** AddressCountryControl reports its shipping countries; `null` means unknown. Returns the withdrawal. */
|
|
28
|
+
offer: (countries: readonly string[] | null) => () => void;
|
|
29
|
+
/** The country the control shows as chosen: a switch in flight, else `country`. */
|
|
30
|
+
selected: string;
|
|
31
|
+
/** Starts a switch in add mode. Ignored in edit mode. `change(country)` cancels a switch in flight. */
|
|
32
|
+
change: (to: string) => void;
|
|
33
|
+
/** `null` until a switch applies, and always in edit mode. */
|
|
34
|
+
lastChange: AccountAddressCountryChange | null;
|
|
35
|
+
}>;
|
|
36
|
+
export type AccountAddressFormContextValue = Readonly<{
|
|
37
|
+
mode: 'add' | 'edit';
|
|
38
|
+
/** ISO 3166-1 alpha-3, upper case. Empty while a new address's country is not resolved yet. */
|
|
39
|
+
country: string;
|
|
40
|
+
/** `null` until the country's rules loaded. */
|
|
41
|
+
rules: CountryRules | null;
|
|
42
|
+
draft: AccountAddressFormDraft;
|
|
43
|
+
fieldErrors: AccountAddressFormFieldErrors;
|
|
44
|
+
formError: AccountAddressFormErrorKind | null;
|
|
45
|
+
pending: boolean;
|
|
46
|
+
setField: (name: EditableField, value: string) => void;
|
|
47
|
+
/** A field part calls this while it is on screen, so a refusal on a field with no control is told apart. */
|
|
48
|
+
registerField: (name: AddressFieldName) => () => void;
|
|
49
|
+
close: () => void;
|
|
50
|
+
countryChoice: AccountAddressFormCountryChoice;
|
|
51
|
+
}>;
|
|
52
|
+
/** The form's draft, errors and state, for any part composed under `AccountAddressFormRoot`. */
|
|
53
|
+
export declare function useAccountAddressForm(): AccountAddressFormContextValue;
|
|
54
|
+
//#endregion
|
|
55
|
+
//# sourceMappingURL=account-address-form-context.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
//#region src/matter/account-address-book/account-address-form-context.ts
|
|
4
|
+
const AccountAddressFormContext = createContext(null);
|
|
5
|
+
/** The form's draft, errors and state, for any part composed under `AccountAddressFormRoot`. */
|
|
6
|
+
function useAccountAddressForm() {
|
|
7
|
+
const value = useContext(AccountAddressFormContext);
|
|
8
|
+
if (!value) throw new Error("Address form parts must be used inside an AccountAddressFormRoot.");
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { AccountAddressFormContext, useAccountAddressForm };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=account-address-form-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-form-context.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-form-context.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContext } from 'react';\nimport type { AddressFieldError, AddressFieldName, CountryRules } from '../../sdk/address/types.js';\nimport type { MessageId } from '../../sdk/i18n/client.js';\n\nexport type EditableField = Exclude<AddressFieldName, 'name'>;\n\n/** The draft: the address fields the form edits. `name` is not edited, as `CustomerAddress` has none. */\nexport type AccountAddressFormDraft = Readonly<Partial<Record<EditableField, string>>>;\n\nexport type AccountAddressFormFieldErrors = Readonly<Partial<Record<AddressFieldName, AddressFieldError>>>;\n\n/** What a refusal that names no field on screen says. */\nexport type AccountAddressFormErrorKind =\n | 'unrenderedField'\n | 'notFound'\n | 'unauthorized'\n | 'saveFailed'\n | 'rulesFailed'\n | 'countrySwitchFailed'\n | 'unsupportedCountry';\n\n/** What the last applied switch did not carry, for AccountAddressCountryNotice. */\nexport type AccountAddressCountryChange = Readonly<{\n /** ISO 3166-1 alpha-3. */\n from: string;\n to: string;\n /** In the old country's field order; empty when everything was carried. */\n notCarried: readonly Readonly<{ field: AddressFieldName; labelId: MessageId }>[];\n}>;\n\n/**\n * The country choice, the only part of the form the country control and the notice touch. The\n * values set aside on a switch stay with the draft's owner, behind `change`.\n */\nexport type AccountAddressFormCountryChoice = Readonly<{\n /** AddressCountryControl reports its shipping countries; `null` means unknown. Returns the withdrawal. */\n offer: (countries: readonly string[] | null) => () => void;\n /** The country the control shows as chosen: a switch in flight, else `country`. */\n selected: string;\n /** Starts a switch in add mode. Ignored in edit mode. `change(country)` cancels a switch in flight. */\n change: (to: string) => void;\n /** `null` until a switch applies, and always in edit mode. */\n lastChange: AccountAddressCountryChange | null;\n}>;\n\nexport type AccountAddressFormContextValue = Readonly<{\n mode: 'add' | 'edit';\n /** ISO 3166-1 alpha-3, upper case. Empty while a new address's country is not resolved yet. */\n country: string;\n /** `null` until the country's rules loaded. */\n rules: CountryRules | null;\n draft: AccountAddressFormDraft;\n fieldErrors: AccountAddressFormFieldErrors;\n formError: AccountAddressFormErrorKind | null;\n pending: boolean;\n setField: (name: EditableField, value: string) => void;\n /** A field part calls this while it is on screen, so a refusal on a field with no control is told apart. */\n registerField: (name: AddressFieldName) => () => void;\n close: () => void;\n countryChoice: AccountAddressFormCountryChoice;\n}>;\n\nexport const AccountAddressFormContext = createContext<AccountAddressFormContextValue | null>(null);\n\n/** The form's draft, errors and state, for any part composed under `AccountAddressFormRoot`. */\nexport function useAccountAddressForm(): AccountAddressFormContextValue {\n const value = useContext(AccountAddressFormContext);\n if (!value) {\n throw new Error('Address form parts must be used inside an AccountAddressFormRoot.');\n }\n return value;\n}\n"],"mappings":";;;AAgEA,MAAa,4BAA4B,cAAqD,IAAI;;AAGlG,SAAgB,wBAAwD;CACtE,MAAM,QAAQ,WAAW,yBAAyB;CAClD,IAAI,CAAC,OACH,MAAM,IAAI,MAAM,mEAAmE;CAErF,OAAO;AACT"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
2
|
+
import "../../core/dist/index.js";
|
|
3
|
+
import { PageRef } from "../../sdk/navigation/types.js";
|
|
4
|
+
import { ComponentActions } from "../../sdk/actions/types.js";
|
|
5
|
+
import { ComponentPropsWithRef } from "react";
|
|
6
|
+
//#region src/matter/account-address-book/account-address-form.d.ts
|
|
7
|
+
/**
|
|
8
|
+
* The form that adds an address and corrects a saved one (specs/sfs-3441-address-book-form.md, RFC
|
|
9
|
+
* REQ-02 and REQ-03). The Root renders `FormRoot` and registers one fieldset with it, under the
|
|
10
|
+
* `accountAddress` namespace: react-hook-form holds the draft and knows what is dirty, and the
|
|
11
|
+
* fieldset owns the field errors, the form-level error, the status message and the save. It holds no
|
|
12
|
+
* country rule: the fields come from `addressFields`, the verdict from `validateAddress`, and the
|
|
13
|
+
* writes go through `$actions.address`.
|
|
14
|
+
*/
|
|
15
|
+
export type AccountAddressFormRootProps = ComponentPropsWithRef<'form'> & {
|
|
16
|
+
/**
|
|
17
|
+
* ISO 3166-1 alpha-3 country a new address prefers: taken when the store ships there or its list
|
|
18
|
+
* is unknown. A blank value falls back to `BRA`.
|
|
19
|
+
*/
|
|
20
|
+
defaultCountry?: string;
|
|
21
|
+
/** Toast after an address is added. A blank value falls back to the catalog copy. */
|
|
22
|
+
addedMessage?: string;
|
|
23
|
+
/** Toast after an address is saved. A blank value falls back to the catalog copy. */
|
|
24
|
+
savedMessage?: string;
|
|
25
|
+
/** Announced when a save is blocked. A blank value falls back to the catalog copy. */
|
|
26
|
+
blockedMessage?: string;
|
|
27
|
+
/** Where leaving the form goes when it stands on its own page. A page reference, or a site-relative string. A blank value falls back to the address page. */
|
|
28
|
+
returnHref?: PageRef | string;
|
|
29
|
+
/** Injected by the compiler from `actions: { address: [...] }`; the address write surface. */
|
|
30
|
+
$actions?: ComponentActions;
|
|
31
|
+
};
|
|
32
|
+
/** `className` goes on every field's wrapper. */
|
|
33
|
+
export type AccountAddressFormFieldsProps = Readonly<{
|
|
34
|
+
className?: string;
|
|
35
|
+
}>;
|
|
36
|
+
export type AccountAddressFormLabelProps = Readonly<{
|
|
37
|
+
/** The field's label. A blank value falls back to the catalog copy. */
|
|
38
|
+
label?: string;
|
|
39
|
+
className?: string;
|
|
40
|
+
}>;
|
|
41
|
+
export type AccountAddressFormErrorProps = ComponentPropsWithRef<'div'> & {
|
|
42
|
+
/** Each message below falls back to the catalog copy when blank. */
|
|
43
|
+
unrenderedFieldMessage?: string;
|
|
44
|
+
notFoundMessage?: string;
|
|
45
|
+
unauthorizedMessage?: string;
|
|
46
|
+
saveFailedMessage?: string;
|
|
47
|
+
rulesFailedMessage?: string;
|
|
48
|
+
countrySwitchFailedMessage?: string;
|
|
49
|
+
unsupportedCountryMessage?: string;
|
|
50
|
+
};
|
|
51
|
+
export type AccountAddressFormButtonProps = Omit<ComponentPropsWithRef<'button'>, 'type'> & {
|
|
52
|
+
/** The button's text. A blank value falls back to the catalog copy. */
|
|
53
|
+
label?: string;
|
|
54
|
+
};
|
|
55
|
+
export declare function AccountAddressFormRoot({ defaultCountry, addedMessage, savedMessage, blockedMessage, returnHref, $actions, className, children, ...props }: AccountAddressFormRootProps): import("react/jsx-runtime").JSX.Element | null;
|
|
56
|
+
export declare function AccountAddressFormRecipientName({ label, className }: AccountAddressFormLabelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
57
|
+
export declare function AccountAddressFormReference({ label, className }: AccountAddressFormLabelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
58
|
+
/**
|
|
59
|
+
* One field per descriptor the country's rules give for the draft, in the order the country's form lists them.
|
|
60
|
+
* A complete postal code fills the empty state, city, neighborhood and street the shopper has not typed;
|
|
61
|
+
* the fill is announced once.
|
|
62
|
+
*/
|
|
63
|
+
export declare function AccountAddressFormFields({ className }: AccountAddressFormFieldsProps): import("react/jsx-runtime").JSX.Element[] | null;
|
|
64
|
+
export declare function AccountAddressFormError({ unrenderedFieldMessage, notFoundMessage, unauthorizedMessage, saveFailedMessage, rulesFailedMessage, countrySwitchFailedMessage, unsupportedCountryMessage, className, ...props }: AccountAddressFormErrorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
65
|
+
export declare function AccountAddressFormSubmit({ label, className, children, ...props }: AccountAddressFormButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
export declare function AccountAddressFormCancel({ label, className, children, onClick, ...props }: AccountAddressFormButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare const AccountAddressFormRootDefinition: ComponentDefinition<AccountAddressFormRootProps>;
|
|
68
|
+
export declare const AccountAddressFormRecipientNameDefinition: ComponentDefinition<Readonly<{
|
|
69
|
+
/** The field's label. A blank value falls back to the catalog copy. */
|
|
70
|
+
label?: string;
|
|
71
|
+
className?: string;
|
|
72
|
+
}>>;
|
|
73
|
+
export declare const AccountAddressFormFieldsDefinition: ComponentDefinition<Readonly<{
|
|
74
|
+
className?: string;
|
|
75
|
+
}>>;
|
|
76
|
+
export declare const AccountAddressFormReferenceDefinition: ComponentDefinition<Readonly<{
|
|
77
|
+
/** The field's label. A blank value falls back to the catalog copy. */
|
|
78
|
+
label?: string;
|
|
79
|
+
className?: string;
|
|
80
|
+
}>>;
|
|
81
|
+
export declare const AccountAddressFormErrorDefinition: ComponentDefinition<AccountAddressFormErrorProps>;
|
|
82
|
+
export declare const AccountAddressFormSubmitDefinition: ComponentDefinition<AccountAddressFormButtonProps>;
|
|
83
|
+
export declare const AccountAddressFormCancelDefinition: ComponentDefinition<AccountAddressFormButtonProps>;
|
|
84
|
+
//#endregion
|
|
85
|
+
//# sourceMappingURL=account-address-form.d.ts.map
|