@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.
- package/CHANGELOG.md +102 -0
- package/dist/actions.json +194 -1
- package/dist/catalog.json +3449 -1612
- 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 +42 -10
- package/dist/components.js +47 -15
- package/dist/content-types.json +823 -0
- package/dist/core/dist/define-component.d.ts +12 -2
- 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 +5 -5
- package/dist/docs/account-menu.md +7 -7
- package/dist/docs/account-saved-cards.md +301 -0
- package/dist/docs/alert-dialog.md +2 -2
- package/dist/docs/billing-address.md +17 -9
- package/dist/docs/binding-switcher.md +154 -0
- package/dist/docs/card-entry.md +38 -7
- package/dist/docs/card-summary.md +175 -0
- package/dist/docs/cardholder-document.md +16 -14
- package/dist/docs/cart-destination.md +238 -0
- package/dist/docs/cart-item.md +22 -4
- package/dist/docs/cart-totalizer.md +1 -1
- package/dist/docs/cart.md +126 -19
- 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/footer-social.md +1 -1
- package/dist/docs/free-shipping-progress.md +13 -9
- package/dist/docs/header-root.md +1 -1
- package/dist/docs/incentives.md +4 -4
- package/dist/docs/logo.md +6 -6
- 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 +16 -5
- package/dist/docs/payment-methods.md +1 -1
- package/dist/docs/place-order.md +13 -9
- package/dist/docs/product-information.md +2 -2
- package/dist/docs/product-shelf.md +7 -0
- package/dist/docs/saved-cards.md +2 -2
- package/dist/docs/select.md +22 -10
- package/dist/docs/session.md +1 -1
- package/dist/docs/shipping-address.md +1 -1
- package/dist/docs/sign-in-redirect.md +7 -7
- package/dist/docs/toast.md +35 -13
- package/dist/index.d.ts +7 -2
- package/dist/index.js +2 -1
- package/dist/internal/client.d.ts +9 -1
- package/dist/internal/client.js +10 -2
- package/dist/internal/server.d.ts +8 -2
- package/dist/internal/server.js +8 -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/account-saved-cards/account-saved-cards.d.ts +383 -0
- package/dist/matter/account-saved-cards/account-saved-cards.js +956 -0
- package/dist/matter/account-saved-cards/account-saved-cards.js.map +1 -0
- 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-namespace.d.ts +5 -1
- package/dist/matter/cart/cart-namespace.js +5 -1
- package/dist/matter/cart/cart-namespace.js.map +1 -1
- package/dist/matter/cart/cart.d.ts +41 -6
- package/dist/matter/cart/cart.js +267 -54
- package/dist/matter/cart/cart.js.map +1 -1
- package/dist/matter/cart-destination/cart-destination.d.ts +222 -0
- package/dist/matter/cart-destination/cart-destination.js +613 -0
- package/dist/matter/cart-destination/cart-destination.js.map +1 -0
- package/dist/matter/cart-item/cart-item.d.ts +4 -2
- package/dist/matter/cart-item/cart-item.js +76 -17
- package/dist/matter/cart-item/cart-item.js.map +1 -1
- package/dist/matter/cart-totalizer/cart-totalizer.js +3 -2
- package/dist/matter/cart-totalizer/cart-totalizer.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/free-shipping-progress/free-shipping-progress.d.ts +6 -3
- package/dist/matter/free-shipping-progress/free-shipping-progress.js +76 -33
- package/dist/matter/free-shipping-progress/free-shipping-progress.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/product-shelf/product-shelf.d.ts +7 -0
- package/dist/matter/product-shelf/product-shelf.js +115 -1
- package/dist/matter/product-shelf/product-shelf.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 +2 -2
- package/dist/matter/shipping-simulator/shipping-simulator.js +6 -2
- 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/binding-switcher/binding-switcher.d.ts +38 -0
- package/dist/particles/binding-switcher/binding-switcher.js +183 -0
- package/dist/particles/binding-switcher/binding-switcher.js.map +1 -0
- package/dist/particles/card-summary/card-network.d.ts +17 -0
- package/dist/particles/card-summary/card-network.js +25 -0
- package/dist/particles/card-summary/card-network.js.map +1 -0
- package/dist/particles/card-summary/card-summary.d.ts +83 -0
- package/dist/particles/card-summary/card-summary.js +188 -0
- package/dist/particles/card-summary/card-summary.js.map +1 -0
- 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/footer-social/footer-social.d.ts +1 -1
- package/dist/particles/footer-social/footer-social.js +1 -1
- package/dist/particles/footer-social/footer-social.js.map +1 -1
- package/dist/particles/incentives/incentives.d.ts +7 -3
- package/dist/particles/incentives/incentives.js +8 -3
- 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/payment-methods/payment-methods.d.ts +1 -1
- package/dist/particles/payment-methods/payment-methods.js +1 -1
- package/dist/particles/payment-methods/payment-methods.js.map +1 -1
- 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 +21 -7
- package/dist/particles/toast/toast.js +76 -8
- package/dist/particles/toast/toast.js.map +1 -1
- package/dist/schema.graphql +1376 -126
- 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 +5 -1
- package/dist/sdk/actions/index.js +5 -1
- package/dist/sdk/actions/locale-action-provider.d.ts +16 -0
- package/dist/sdk/actions/locale-action-provider.js +20 -0
- package/dist/sdk/actions/locale-action-provider.js.map +1 -0
- 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/saved-card-action-provider.d.ts +12 -0
- package/dist/sdk/actions/saved-card-action-provider.js +16 -0
- package/dist/sdk/actions/saved-card-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +10 -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 +30 -4
- package/dist/sdk/cache/storefront-cache.js.map +1 -1
- package/dist/sdk/cart/operations.d.ts +2 -1
- package/dist/sdk/cart/operations.js +55 -1
- package/dist/sdk/cart/operations.js.map +1 -1
- package/dist/sdk/cart/optimistic.d.ts +30 -7
- package/dist/sdk/cart/optimistic.js +78 -41
- package/dist/sdk/cart/optimistic.js.map +1 -1
- package/dist/sdk/cart/use-cart-actions.d.ts +7 -0
- package/dist/sdk/cart/use-cart-actions.js +61 -15
- package/dist/sdk/cart/use-cart-actions.js.map +1 -1
- package/dist/sdk/cart/use-cart-sync-sales-channel.js +70 -0
- package/dist/sdk/cart/use-cart-sync-sales-channel.js.map +1 -0
- 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 +17 -11
- package/dist/sdk/generated/gql.js.map +1 -1
- package/dist/sdk/generated/graphql.d.ts +185 -46
- package/dist/sdk/generated/graphql.js +2587 -155
- package/dist/sdk/generated/graphql.js.map +1 -1
- package/dist/sdk/i18n/messages/en-US.js +157 -1
- package/dist/sdk/i18n/messages/en-US.json +157 -1
- package/dist/sdk/i18n/messages/en-US.json.d.ts +156 -0
- package/dist/sdk/i18n/messages/es-ES.js +157 -1
- package/dist/sdk/i18n/messages/es-ES.json +157 -1
- package/dist/sdk/i18n/messages/pt-BR.js +157 -1
- package/dist/sdk/i18n/messages/pt-BR.json +157 -1
- package/dist/sdk/i18n/provider.js +1 -1
- package/dist/sdk/i18n/provider.js.map +1 -1
- package/dist/sdk/locale/binding-switch-provider.d.ts +13 -0
- package/dist/sdk/locale/binding-switch-provider.js +20 -0
- package/dist/sdk/locale/binding-switch-provider.js.map +1 -0
- package/dist/sdk/locale/use-locale-actions.d.ts +16 -0
- package/dist/sdk/locale/use-locale-actions.js +70 -0
- package/dist/sdk/locale/use-locale-actions.js.map +1 -0
- package/dist/sdk/navigation/binding-switch.d.ts +39 -0
- package/dist/sdk/navigation/binding-switch.js +129 -0
- package/dist/sdk/navigation/binding-switch.js.map +1 -0
- package/dist/sdk/navigation/current-page.js +30 -0
- package/dist/sdk/navigation/current-page.js.map +1 -0
- package/dist/sdk/navigation/decode-route-params.d.ts +11 -0
- package/dist/sdk/navigation/decode-route-params.js +32 -0
- package/dist/sdk/navigation/decode-route-params.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/saved-cards/operations.d.ts +16 -0
- package/dist/sdk/saved-cards/operations.js +41 -0
- package/dist/sdk/saved-cards/operations.js.map +1 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.d.ts +26 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.js +86 -0
- package/dist/sdk/saved-cards/use-saved-card-actions.js.map +1 -0
- package/dist/sdk/seo/page-alternates.d.ts +57 -0
- package/dist/sdk/seo/page-alternates.js +127 -0
- package/dist/sdk/seo/page-alternates.js.map +1 -0
- package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
- package/dist/sdk/shipping/shipping-operations.js +13 -0
- package/dist/sdk/shipping/shipping-operations.js.map +1 -1
- package/dist/sdk/state/cart.d.ts +9 -2
- package/dist/sdk/state/cart.js +9 -2
- package/dist/sdk/state/cart.js.map +1 -1
- 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 +28 -2
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
2
|
+
import "../../core/dist/index.js";
|
|
3
|
+
import { ComponentActions } from "../../sdk/actions/types.js";
|
|
4
|
+
import { ComponentPropsWithRef } from "react";
|
|
5
|
+
//#region src/matter/account-address-book/account-address-book-delete.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Deleting an address (specs/sfs-3437-address-book-delete.md, RFC REQ-04). The book's root holds which
|
|
8
|
+
* address is waiting for an answer; a trigger in each entry asks, and one confirmation under the root
|
|
9
|
+
* puts the question and dispatches `$actions.address.remove`. The confirmation never edits the list:
|
|
10
|
+
* the entry leaves through the cache edit the action makes.
|
|
11
|
+
*/
|
|
12
|
+
export type AccountAddressBookDeleteTriggerProps = ComponentPropsWithRef<'button'> & {
|
|
13
|
+
/** The button's visible text. A blank value falls back to the catalog copy. */
|
|
14
|
+
label?: string;
|
|
15
|
+
};
|
|
16
|
+
export type AccountAddressBookDeleteConfirmProps = Readonly<{
|
|
17
|
+
/** Goes on the popup, the one element a store can size and place: the dialog renders in a portal. */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** The question. A blank value falls back to the catalog copy. */
|
|
20
|
+
title?: string;
|
|
21
|
+
/** What deleting means. The address's first line always shows before it. A blank value falls back to the catalog copy. */
|
|
22
|
+
description?: string;
|
|
23
|
+
/** The label of the control that backs out. A blank value falls back to the catalog copy. */
|
|
24
|
+
cancelLabel?: string;
|
|
25
|
+
/** The label of the control that deletes. A blank value falls back to the catalog copy. */
|
|
26
|
+
confirmLabel?: string;
|
|
27
|
+
/** Toast after the address is deleted. A blank value falls back to the catalog copy. */
|
|
28
|
+
deletedMessage?: string;
|
|
29
|
+
/** Shown in the prompt when the address was not deleted. A blank value falls back to the catalog copy. */
|
|
30
|
+
failedMessage?: string;
|
|
31
|
+
/** Shown in the prompt when the session expired. A blank value falls back to the catalog copy. */
|
|
32
|
+
unauthorizedMessage?: string;
|
|
33
|
+
/** Injected by the compiler from `actions: { address: [...] }`; the address write surface. */
|
|
34
|
+
$actions?: ComponentActions;
|
|
35
|
+
}>;
|
|
36
|
+
export declare function AccountAddressBookDeleteTrigger({ label, className, children, onClick, ...props }: AccountAddressBookDeleteTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare function AccountAddressBookDeleteConfirm({ className, title, description, cancelLabel, confirmLabel, deletedMessage, failedMessage, unauthorizedMessage, $actions: $actionsProp }: AccountAddressBookDeleteConfirmProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export declare const AccountAddressBookDeleteTriggerDefinition: ComponentDefinition<AccountAddressBookDeleteTriggerProps>;
|
|
39
|
+
export declare const AccountAddressBookDeleteConfirmDefinition: ComponentDefinition<Readonly<{
|
|
40
|
+
/** Goes on the popup, the one element a store can size and place: the dialog renders in a portal. */
|
|
41
|
+
className?: string;
|
|
42
|
+
/** The question. A blank value falls back to the catalog copy. */
|
|
43
|
+
title?: string;
|
|
44
|
+
/** What deleting means. The address's first line always shows before it. A blank value falls back to the catalog copy. */
|
|
45
|
+
description?: string;
|
|
46
|
+
/** The label of the control that backs out. A blank value falls back to the catalog copy. */
|
|
47
|
+
cancelLabel?: string;
|
|
48
|
+
/** The label of the control that deletes. A blank value falls back to the catalog copy. */
|
|
49
|
+
confirmLabel?: string;
|
|
50
|
+
/** Toast after the address is deleted. A blank value falls back to the catalog copy. */
|
|
51
|
+
deletedMessage?: string;
|
|
52
|
+
/** Shown in the prompt when the address was not deleted. A blank value falls back to the catalog copy. */
|
|
53
|
+
failedMessage?: string;
|
|
54
|
+
/** Shown in the prompt when the session expired. A blank value falls back to the catalog copy. */
|
|
55
|
+
unauthorizedMessage?: string;
|
|
56
|
+
/** Injected by the compiler from `actions: { address: [...] }`; the address write surface. */
|
|
57
|
+
$actions?: ComponentActions;
|
|
58
|
+
}>>;
|
|
59
|
+
//#endregion
|
|
60
|
+
//# sourceMappingURL=account-address-book-delete.d.ts.map
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { useIntl } from "../../sdk/i18n/client.js";
|
|
5
|
+
import { useActionsOverride } from "../../sdk/actions/actions-override-context.js";
|
|
6
|
+
import { resolveAuthoredCopy } from "../../utils/resolve-authored-copy.js";
|
|
7
|
+
import { loggableErrorName } from "../../utils/loggable-error-name.js";
|
|
8
|
+
import { Button } from "../../particles/button/button.js";
|
|
9
|
+
import { useAccountAddressBook, useAccountAddressBookItem } from "./account-address-book.js";
|
|
10
|
+
import { AlertDialog } from "../../particles/alert-dialog/alert-dialog.js";
|
|
11
|
+
import { useToast } from "../../particles/toast/toast.js";
|
|
12
|
+
import { firstLine } from "./account-address-first-line.js";
|
|
13
|
+
import { useRef, useState } from "react";
|
|
14
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
//#region src/matter/account-address-book/account-address-book-delete.tsx
|
|
16
|
+
/**
|
|
17
|
+
* What a result means for the prompt. An empty result is a removal, and so is `NOT_FOUND`: the server no
|
|
18
|
+
* longer has the address, which is what the shopper asked for, and the action already took it out of
|
|
19
|
+
* the cache. Anything else leaves the address listed.
|
|
20
|
+
*/
|
|
21
|
+
function deleteError(userErrors) {
|
|
22
|
+
if (userErrors.length === 0 || userErrors.some(({ code }) => code === "NOT_FOUND")) return null;
|
|
23
|
+
return userErrors.some(({ code }) => code === "UNAUTHORIZED") ? "unauthorized" : "deleteFailed";
|
|
24
|
+
}
|
|
25
|
+
function AccountAddressBookDeleteTrigger({ label, className, children, onClick, ...props }) {
|
|
26
|
+
const { requestDelete } = useAccountAddressBook();
|
|
27
|
+
const address = useAccountAddressBookItem();
|
|
28
|
+
const intl = useIntl();
|
|
29
|
+
const text = resolveAuthoredCopy(label, intl.formatMessage({ id: "fs/address-delete.trigger" }));
|
|
30
|
+
const line = firstLine(address);
|
|
31
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
32
|
+
"aria-label": line === "" ? void 0 : `${text} ${line}`,
|
|
33
|
+
...props,
|
|
34
|
+
type: "button",
|
|
35
|
+
className,
|
|
36
|
+
onClick: (event) => {
|
|
37
|
+
onClick?.(event);
|
|
38
|
+
requestDelete(address, event.currentTarget);
|
|
39
|
+
},
|
|
40
|
+
"data-fs-account-address-book-delete": "",
|
|
41
|
+
children: children ?? text
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function AccountAddressBookDeleteConfirm({ className, title, description, cancelLabel, confirmLabel, deletedMessage, failedMessage, unauthorizedMessage, $actions: $actionsProp }) {
|
|
45
|
+
const toast = useToast();
|
|
46
|
+
const intl = useIntl();
|
|
47
|
+
const $actions = useActionsOverride($actionsProp);
|
|
48
|
+
const { pendingDelete, endDelete, openForm, close } = useAccountAddressBook();
|
|
49
|
+
const [pending, setPending] = useState(false);
|
|
50
|
+
const pendingRef = useRef(false);
|
|
51
|
+
const [error, setError] = useState(null);
|
|
52
|
+
const line = pendingDelete ? firstLine(pendingDelete) : "";
|
|
53
|
+
const errorMessage = error === "unauthorized" ? resolveAuthoredCopy(unauthorizedMessage, intl.formatMessage({ id: "fs/address-delete.error.unauthorized" })) : resolveAuthoredCopy(failedMessage, intl.formatMessage({ id: "fs/address-delete.error.failed" }));
|
|
54
|
+
function finish() {
|
|
55
|
+
setError(null);
|
|
56
|
+
endDelete();
|
|
57
|
+
}
|
|
58
|
+
function deleted(id) {
|
|
59
|
+
toast.add({
|
|
60
|
+
title: resolveAuthoredCopy(deletedMessage, intl.formatMessage({ id: "fs/address-delete.deleted" })),
|
|
61
|
+
type: "success"
|
|
62
|
+
});
|
|
63
|
+
if (openForm?.mode === "edit" && openForm.address.id === id) close();
|
|
64
|
+
finish();
|
|
65
|
+
}
|
|
66
|
+
async function confirm() {
|
|
67
|
+
if (pendingRef.current || pendingDelete === null) return;
|
|
68
|
+
const remove = $actions?.address?.remove;
|
|
69
|
+
if (!remove) {
|
|
70
|
+
setError("deleteFailed");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const { id } = pendingDelete;
|
|
74
|
+
pendingRef.current = true;
|
|
75
|
+
setPending(true);
|
|
76
|
+
setError(null);
|
|
77
|
+
try {
|
|
78
|
+
const failure = deleteError(await remove({ id }));
|
|
79
|
+
if (failure) setError(failure);
|
|
80
|
+
else deleted(id);
|
|
81
|
+
} catch (error_) {
|
|
82
|
+
console.error("[AccountAddressBookDeleteConfirm] address.remove failed", loggableErrorName(error_));
|
|
83
|
+
setError("deleteFailed");
|
|
84
|
+
} finally {
|
|
85
|
+
pendingRef.current = false;
|
|
86
|
+
setPending(false);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return /* @__PURE__ */ jsx(AlertDialog.Root, {
|
|
90
|
+
open: pendingDelete !== null,
|
|
91
|
+
onOpenChange: (next) => {
|
|
92
|
+
if (!next && !pendingRef.current) finish();
|
|
93
|
+
},
|
|
94
|
+
children: /* @__PURE__ */ jsxs(AlertDialog.Portal, { children: [/* @__PURE__ */ jsx(AlertDialog.Backdrop, {}), /* @__PURE__ */ jsx(AlertDialog.Viewport, { children: /* @__PURE__ */ jsxs(AlertDialog.Popup, {
|
|
95
|
+
className,
|
|
96
|
+
"data-fs-account-address-book-delete-confirm": "",
|
|
97
|
+
children: [
|
|
98
|
+
/* @__PURE__ */ jsx(AlertDialog.Title, { children: resolveAuthoredCopy(title, intl.formatMessage({ id: "fs/address-delete.title" })) }),
|
|
99
|
+
/* @__PURE__ */ jsxs(AlertDialog.Description, { children: [line === "" ? null : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
100
|
+
"data-fs-account-address-book-delete-address": "",
|
|
101
|
+
children: line
|
|
102
|
+
}), " "] }), resolveAuthoredCopy(description, intl.formatMessage({ id: "fs/address-delete.description" }))] }),
|
|
103
|
+
error === null ? null : /* @__PURE__ */ jsx("p", {
|
|
104
|
+
role: "alert",
|
|
105
|
+
"data-fs-account-address-book-delete-error": "",
|
|
106
|
+
children: errorMessage
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ jsx(AlertDialog.Close, {
|
|
109
|
+
disabled: pending,
|
|
110
|
+
children: resolveAuthoredCopy(cancelLabel, intl.formatMessage({ id: "fs/address-delete.cancel" }))
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ jsx(Button, {
|
|
113
|
+
type: "button",
|
|
114
|
+
disabled: pending,
|
|
115
|
+
"aria-busy": pending || void 0,
|
|
116
|
+
onClick: confirm,
|
|
117
|
+
"data-fs-account-address-book-delete-submit": "",
|
|
118
|
+
children: resolveAuthoredCopy(confirmLabel, intl.formatMessage({ id: "fs/address-delete.confirm" }))
|
|
119
|
+
})
|
|
120
|
+
]
|
|
121
|
+
}) })] })
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const AccountAddressBookDeleteTriggerDefinition = defineComponent({
|
|
125
|
+
name: "AccountAddressBookDeleteTrigger",
|
|
126
|
+
importPath: "@vtex/faststore/components",
|
|
127
|
+
component: AccountAddressBookDeleteTrigger,
|
|
128
|
+
requiresContext: "account-address-book-item",
|
|
129
|
+
editor: {
|
|
130
|
+
label: "Account Address Book Delete Trigger",
|
|
131
|
+
category: "action"
|
|
132
|
+
},
|
|
133
|
+
schema: { label: {
|
|
134
|
+
type: "string",
|
|
135
|
+
label: "Button label"
|
|
136
|
+
} },
|
|
137
|
+
guideline: "Asks to delete the address of the entry it sits in. Nothing is deleted until the shopper confirms in an AccountAddressBookDeleteConfirm. Its accessible name adds the address's first line, so a list of them is told apart. Place it inside AccountAddressBookItem, and one AccountAddressBookDeleteConfirm under the root to ask the question."
|
|
138
|
+
});
|
|
139
|
+
const AccountAddressBookDeleteConfirmDefinition = defineComponent({
|
|
140
|
+
name: "AccountAddressBookDeleteConfirm",
|
|
141
|
+
importPath: "@vtex/faststore/components",
|
|
142
|
+
component: AccountAddressBookDeleteConfirm,
|
|
143
|
+
requiresContext: "account-address-book",
|
|
144
|
+
actions: { address: ["remove"] },
|
|
145
|
+
editor: {
|
|
146
|
+
label: "Account Address Book Delete Confirm",
|
|
147
|
+
category: "layout"
|
|
148
|
+
},
|
|
149
|
+
schema: {
|
|
150
|
+
title: {
|
|
151
|
+
type: "string",
|
|
152
|
+
label: "Question"
|
|
153
|
+
},
|
|
154
|
+
description: {
|
|
155
|
+
type: "string",
|
|
156
|
+
label: "What deleting means"
|
|
157
|
+
},
|
|
158
|
+
cancelLabel: {
|
|
159
|
+
type: "string",
|
|
160
|
+
label: "Cancel label"
|
|
161
|
+
},
|
|
162
|
+
confirmLabel: {
|
|
163
|
+
type: "string",
|
|
164
|
+
label: "Delete label"
|
|
165
|
+
},
|
|
166
|
+
deletedMessage: {
|
|
167
|
+
type: "string",
|
|
168
|
+
label: "Address deleted message"
|
|
169
|
+
},
|
|
170
|
+
failedMessage: {
|
|
171
|
+
type: "string",
|
|
172
|
+
label: "Not deleted message"
|
|
173
|
+
},
|
|
174
|
+
unauthorizedMessage: {
|
|
175
|
+
type: "string",
|
|
176
|
+
label: "Session expired message"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
guideline: "The alert dialog that asks before an address is deleted, one per address book, opened by AccountAddressBookDeleteTrigger. Names the address, takes focus on Cancel, and closes only on Cancel or Escape: a click outside does nothing. Confirming removes the address, shows a toast and closes; a refusal keeps the dialog open with a message and lets the shopper try again. While the call runs, nothing closes it. Deleting the last address leaves the book empty, so compose an AccountAddressBookEmpty. Requires a ToastProvider ancestor, since the success toast throws without one. Place it under AccountAddressBookRoot. See account-address-book.md."
|
|
180
|
+
});
|
|
181
|
+
//#endregion
|
|
182
|
+
export { AccountAddressBookDeleteConfirm, AccountAddressBookDeleteConfirmDefinition, AccountAddressBookDeleteTrigger, AccountAddressBookDeleteTriggerDefinition };
|
|
183
|
+
|
|
184
|
+
//# sourceMappingURL=account-address-book-delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-book-delete.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-book-delete.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport { type ComponentPropsWithRef, useRef, useState } from 'react';\nimport { AlertDialog } from '../../particles/alert-dialog/alert-dialog.js';\nimport { Button } from '../../particles/button/button.js';\nimport { useToast } from '../../particles/toast/toast.js';\nimport { useActionsOverride } from '../../sdk/actions/actions-override-context.js';\nimport type { ComponentActions } from '../../sdk/actions/types.js';\nimport type { CustomerAddressUserError } from '../../sdk/address/operations.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\nimport { loggableErrorName } from '../../utils/loggable-error-name.js';\nimport { resolveAuthoredCopy } from '../../utils/resolve-authored-copy.js';\nimport { useAccountAddressBook, useAccountAddressBookItem } from './account-address-book.js';\nimport { firstLine } from './account-address-first-line.js';\n\n/**\n * Deleting an address (specs/sfs-3437-address-book-delete.md, RFC REQ-04). The book's root holds which\n * address is waiting for an answer; a trigger in each entry asks, and one confirmation under the root\n * puts the question and dispatches `$actions.address.remove`. The confirmation never edits the list:\n * the entry leaves through the cache edit the action makes.\n */\n\nexport type AccountAddressBookDeleteTriggerProps = ComponentPropsWithRef<'button'> & {\n /** The button's visible text. A blank value falls back to the catalog copy. */\n label?: string;\n};\n\nexport type AccountAddressBookDeleteConfirmProps = Readonly<{\n /** Goes on the popup, the one element a store can size and place: the dialog renders in a portal. */\n className?: string;\n /** The question. A blank value falls back to the catalog copy. */\n title?: string;\n /** What deleting means. The address's first line always shows before it. A blank value falls back to the catalog copy. */\n description?: string;\n /** The label of the control that backs out. A blank value falls back to the catalog copy. */\n cancelLabel?: string;\n /** The label of the control that deletes. A blank value falls back to the catalog copy. */\n confirmLabel?: string;\n /** Toast after the address is deleted. A blank value falls back to the catalog copy. */\n deletedMessage?: string;\n /** Shown in the prompt when the address was not deleted. A blank value falls back to the catalog copy. */\n failedMessage?: string;\n /** Shown in the prompt when the session expired. A blank value falls back to the catalog copy. */\n unauthorizedMessage?: string;\n /** Injected by the compiler from `actions: { address: [...] }`; the address write surface. */\n $actions?: ComponentActions;\n}>;\n\ntype DeleteError = 'unauthorized' | 'deleteFailed';\n\n/**\n * What a result means for the prompt. An empty result is a removal, and so is `NOT_FOUND`: the server no\n * longer has the address, which is what the shopper asked for, and the action already took it out of\n * the cache. Anything else leaves the address listed.\n */\nfunction deleteError(userErrors: readonly CustomerAddressUserError[]): DeleteError | null {\n if (userErrors.length === 0 || userErrors.some(({ code }) => code === 'NOT_FOUND')) return null;\n return userErrors.some(({ code }) => code === 'UNAUTHORIZED') ? 'unauthorized' : 'deleteFailed';\n}\n\nexport function AccountAddressBookDeleteTrigger({\n label,\n className,\n children,\n onClick,\n ...props\n}: AccountAddressBookDeleteTriggerProps) {\n const { requestDelete } = useAccountAddressBook();\n const address = useAccountAddressBookItem();\n const intl = useIntl();\n const text = resolveAuthoredCopy(label, intl.formatMessage({ id: 'fs/address-delete.trigger' }));\n const line = firstLine(address);\n\n return (\n <Button\n aria-label={line === '' ? undefined : `${text} ${line}`}\n {...props}\n type=\"button\"\n className={className}\n onClick={(event) => {\n onClick?.(event);\n requestDelete(address, event.currentTarget);\n }}\n data-fs-account-address-book-delete=\"\"\n >\n {children ?? text}\n </Button>\n );\n}\n\nexport function AccountAddressBookDeleteConfirm({\n className,\n title,\n description,\n cancelLabel,\n confirmLabel,\n deletedMessage,\n failedMessage,\n unauthorizedMessage,\n $actions: $actionsProp,\n}: AccountAddressBookDeleteConfirmProps) {\n // Enforces the ToastProvider ancestor: the hook throws outside one.\n const toast = useToast();\n const intl = useIntl();\n const $actions = useActionsOverride($actionsProp);\n const { pendingDelete, endDelete, openForm, close } = useAccountAddressBook();\n const [pending, setPending] = useState(false);\n const pendingRef = useRef(false);\n const [error, setError] = useState<DeleteError | null>(null);\n\n const line = pendingDelete ? firstLine(pendingDelete) : '';\n const errorMessage =\n error === 'unauthorized'\n ? resolveAuthoredCopy(unauthorizedMessage, intl.formatMessage({ id: 'fs/address-delete.error.unauthorized' }))\n : resolveAuthoredCopy(failedMessage, intl.formatMessage({ id: 'fs/address-delete.error.failed' }));\n\n function finish() {\n setError(null);\n endDelete();\n }\n\n function deleted(id: string) {\n toast.add({\n title: resolveAuthoredCopy(deletedMessage, intl.formatMessage({ id: 'fs/address-delete.deleted' })),\n type: 'success',\n });\n // An edit of this very address would only fail with `NOT_FOUND`, so it goes with the address.\n if (openForm?.mode === 'edit' && openForm.address.id === id) close();\n finish();\n }\n\n async function confirm() {\n if (pendingRef.current || pendingDelete === null) return;\n const remove = $actions?.address?.remove;\n if (!remove) {\n // A composition gap (the provider chain never delivered the action) is otherwise a dead button.\n setError('deleteFailed');\n return;\n }\n\n const { id } = pendingDelete;\n pendingRef.current = true;\n setPending(true);\n setError(null);\n try {\n const failure = deleteError(await remove({ id }));\n if (failure) setError(failure);\n else deleted(id);\n } catch (error_) {\n // Log only the error name: a message can echo an address value.\n console.error('[AccountAddressBookDeleteConfirm] address.remove failed', loggableErrorName(error_));\n setError('deleteFailed');\n } finally {\n pendingRef.current = false;\n setPending(false);\n }\n }\n\n return (\n <AlertDialog.Root\n open={pendingDelete !== null}\n onOpenChange={(next) => {\n // Nothing closes the prompt while the call runs: its outcome has to land in front of the shopper.\n if (!next && !pendingRef.current) finish();\n }}\n >\n <AlertDialog.Portal>\n <AlertDialog.Backdrop />\n <AlertDialog.Viewport>\n <AlertDialog.Popup className={className} data-fs-account-address-book-delete-confirm=\"\">\n <AlertDialog.Title>\n {resolveAuthoredCopy(title, intl.formatMessage({ id: 'fs/address-delete.title' }))}\n </AlertDialog.Title>\n <AlertDialog.Description>\n {line === '' ? null : (\n <>\n <span data-fs-account-address-book-delete-address=\"\">{line}</span>{' '}\n </>\n )}\n {resolveAuthoredCopy(description, intl.formatMessage({ id: 'fs/address-delete.description' }))}\n </AlertDialog.Description>\n {error === null ? null : (\n <p role=\"alert\" data-fs-account-address-book-delete-error=\"\">\n {errorMessage}\n </p>\n )}\n <AlertDialog.Close disabled={pending}>\n {resolveAuthoredCopy(cancelLabel, intl.formatMessage({ id: 'fs/address-delete.cancel' }))}\n </AlertDialog.Close>\n <Button\n type=\"button\"\n disabled={pending}\n aria-busy={pending || undefined}\n onClick={confirm}\n data-fs-account-address-book-delete-submit=\"\"\n >\n {resolveAuthoredCopy(confirmLabel, intl.formatMessage({ id: 'fs/address-delete.confirm' }))}\n </Button>\n </AlertDialog.Popup>\n </AlertDialog.Viewport>\n </AlertDialog.Portal>\n </AlertDialog.Root>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Definitions\n// ---------------------------------------------------------------------------\n\nexport const AccountAddressBookDeleteTriggerDefinition = defineComponent<AccountAddressBookDeleteTriggerProps>({\n name: 'AccountAddressBookDeleteTrigger',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookDeleteTrigger,\n requiresContext: 'account-address-book-item',\n editor: { label: 'Account Address Book Delete Trigger', category: 'action' },\n schema: {\n label: { type: 'string', label: 'Button label' },\n },\n guideline:\n \"Asks to delete the address of the entry it sits in. Nothing is deleted until the shopper confirms in an AccountAddressBookDeleteConfirm. Its accessible name adds the address's first line, so a list of them is told apart. Place it inside AccountAddressBookItem, and one AccountAddressBookDeleteConfirm under the root to ask the question.\",\n});\n\nexport const AccountAddressBookDeleteConfirmDefinition = defineComponent<AccountAddressBookDeleteConfirmProps>({\n name: 'AccountAddressBookDeleteConfirm',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookDeleteConfirm,\n requiresContext: 'account-address-book',\n actions: { address: ['remove'] },\n editor: { label: 'Account Address Book Delete Confirm', category: 'layout' },\n schema: {\n title: { type: 'string', label: 'Question' },\n description: { type: 'string', label: 'What deleting means' },\n cancelLabel: { type: 'string', label: 'Cancel label' },\n confirmLabel: { type: 'string', label: 'Delete label' },\n deletedMessage: { type: 'string', label: 'Address deleted message' },\n failedMessage: { type: 'string', label: 'Not deleted message' },\n unauthorizedMessage: { type: 'string', label: 'Session expired message' },\n },\n guideline:\n 'The alert dialog that asks before an address is deleted, one per address book, opened by AccountAddressBookDeleteTrigger. Names the address, takes focus on Cancel, and closes only on Cancel or Escape: a click outside does nothing. Confirming removes the address, shows a toast and closes; a refusal keeps the dialog open with a message and lets the shopper try again. While the call runs, nothing closes it. Deleting the last address leaves the book empty, so compose an AccountAddressBookEmpty. Requires a ToastProvider ancestor, since the success toast throws without one. Place it under AccountAddressBookRoot. See account-address-book.md.',\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
2
|
+
import "../../core/dist/index.js";
|
|
3
|
+
import { ComponentPropsWithRef } from "react";
|
|
4
|
+
//#region src/matter/account-address-book/account-address-book-deliverability.d.ts
|
|
5
|
+
/** The shipping countries the marker reads. */
|
|
6
|
+
export type AccountAddressBookItemDeliverabilitySlice = Readonly<{
|
|
7
|
+
countries: readonly string[];
|
|
8
|
+
source: 'PLATFORM' | 'SALES_CHANNEL_FALLBACK';
|
|
9
|
+
}>;
|
|
10
|
+
export type AccountAddressBookItemDeliverabilityProps = ComponentPropsWithRef<'p'> & {
|
|
11
|
+
/** Unwrapped `shippingCountries` from the reactive runtime: `null` when the read failed, `undefined` outside the page query. */
|
|
12
|
+
$data?: AccountAddressBookItemDeliverabilitySlice | null;
|
|
13
|
+
/** The marker text. A blank value falls back to the catalog copy. */
|
|
14
|
+
message?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const AccountAddressBookItemDeliverabilityDefinition: ComponentDefinition<AccountAddressBookItemDeliverabilityProps>;
|
|
17
|
+
export declare function AccountAddressBookItemDeliverability({ $data: $dataProp, message, className, ...props }: AccountAddressBookItemDeliverabilityProps): import("react/jsx-runtime").JSX.Element | null;
|
|
18
|
+
//#endregion
|
|
19
|
+
//# sourceMappingURL=account-address-book-deliverability.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { useIntl } from "../../sdk/i18n/client.js";
|
|
5
|
+
import { useDataOverride } from "../../sdk/data/data-override-context.js";
|
|
6
|
+
import { resolveAuthoredCopy } from "../../utils/resolve-authored-copy.js";
|
|
7
|
+
import { AccountAddressBookSkeleton, useAccountAddressBookItem } from "./account-address-book.js";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
const AccountAddressBookItemDeliverabilityDefinition = defineComponent({
|
|
10
|
+
name: "AccountAddressBookItemDeliverability",
|
|
11
|
+
importPath: "@vtex/faststore/components",
|
|
12
|
+
component: AccountAddressBookItemDeliverability,
|
|
13
|
+
fragment: `
|
|
14
|
+
fragment AccountAddressBookItemDeliverabilityData on Query {
|
|
15
|
+
shippingCountries {
|
|
16
|
+
countries
|
|
17
|
+
source
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
`,
|
|
21
|
+
fetchStrategy: "reactive",
|
|
22
|
+
requiresContext: "account-address-book-item",
|
|
23
|
+
skeleton: AccountAddressBookSkeleton,
|
|
24
|
+
editor: {
|
|
25
|
+
label: "Account Address Book Item Deliverability",
|
|
26
|
+
category: "content"
|
|
27
|
+
},
|
|
28
|
+
schema: { message: {
|
|
29
|
+
type: "string",
|
|
30
|
+
label: "Marker message"
|
|
31
|
+
} },
|
|
32
|
+
guideline: "Marks a saved address the store does not ship to, as text read with the address. Place it inside AccountAddressBookItem, which repeats it per address. Renders nothing unless the store's shipping countries are known and the address's country is not among them: a failed read, a single-country fallback list, or an address with no country all leave it empty. Set message to replace the default copy."
|
|
33
|
+
});
|
|
34
|
+
function AccountAddressBookItemDeliverability({ $data: $dataProp, message, className, ...props }) {
|
|
35
|
+
const { country } = useAccountAddressBookItem();
|
|
36
|
+
const shippingCountries = useDataOverride($dataProp);
|
|
37
|
+
const intl = useIntl();
|
|
38
|
+
const code = country?.trim().toUpperCase() ?? "";
|
|
39
|
+
if (shippingCountries?.source !== "PLATFORM" || code === "" || shippingCountries.countries.includes(code)) return null;
|
|
40
|
+
return /* @__PURE__ */ jsx("p", {
|
|
41
|
+
...props,
|
|
42
|
+
className,
|
|
43
|
+
"data-fs-account-address-book-item-deliverability": "",
|
|
44
|
+
children: resolveAuthoredCopy(message, intl.formatMessage({ id: "fs/address-book.undeliverable" }))
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { AccountAddressBookItemDeliverability, AccountAddressBookItemDeliverabilityDefinition };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=account-address-book-deliverability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-book-deliverability.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-book-deliverability.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\nimport { useDataOverride } from '../../sdk/data/data-override-context.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\nimport { resolveAuthoredCopy } from '../../utils/resolve-authored-copy.js';\nimport { AccountAddressBookSkeleton, useAccountAddressBookItem } from './account-address-book.js';\n\n/**\n * Marks a saved address the store does not ship to (specs/sfs-3436-address-deliverability-marker.md,\n * RFC REQ-01). The checkout refuses such an address, and the shopper otherwise finds out mid-purchase.\n *\n * It renders only when it can tell for sure: the store's own shipping countries (`PLATFORM`, never\n * the single-country `SALES_CHANNEL_FALLBACK` guess), a non-blank country on the address, and a\n * country that is not in the list. A failed read, a page that does not carry the marker, and an\n * address with no country all render nothing, so the marker never claims what the data has not earned.\n *\n * Its fragment is the one `AddressCountryControl` (SFS-3442) shares: the same selection, with no alias\n * and no argument, so the compiler merges both into one root read. `ShippingCountries` has no `id`,\n * so the marker keeps the server-rendered value for the whole page.\n */\n\nconst fragment = /* GraphQL */ `\n fragment AccountAddressBookItemDeliverabilityData on Query {\n shippingCountries {\n countries\n source\n }\n }\n`;\n\n/** The shipping countries the marker reads. */\nexport type AccountAddressBookItemDeliverabilitySlice = Readonly<{\n countries: readonly string[];\n source: 'PLATFORM' | 'SALES_CHANNEL_FALLBACK';\n}>;\n\nexport type AccountAddressBookItemDeliverabilityProps = ComponentPropsWithRef<'p'> & {\n /** Unwrapped `shippingCountries` from the reactive runtime: `null` when the read failed, `undefined` outside the page query. */\n $data?: AccountAddressBookItemDeliverabilitySlice | null;\n /** The marker text. A blank value falls back to the catalog copy. */\n message?: string;\n};\n\nexport const AccountAddressBookItemDeliverabilityDefinition =\n defineComponent<AccountAddressBookItemDeliverabilityProps>({\n name: 'AccountAddressBookItemDeliverability',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookItemDeliverability,\n fragment,\n fetchStrategy: 'reactive',\n requiresContext: 'account-address-book-item',\n skeleton: AccountAddressBookSkeleton,\n editor: { label: 'Account Address Book Item Deliverability', category: 'content' },\n schema: {\n message: { type: 'string', label: 'Marker message' },\n },\n guideline:\n \"Marks a saved address the store does not ship to, as text read with the address. Place it inside AccountAddressBookItem, which repeats it per address. Renders nothing unless the store's shipping countries are known and the address's country is not among them: a failed read, a single-country fallback list, or an address with no country all leave it empty. Set message to replace the default copy.\",\n });\n\nexport function AccountAddressBookItemDeliverability({\n $data: $dataProp,\n message,\n className,\n ...props\n}: AccountAddressBookItemDeliverabilityProps) {\n const { country } = useAccountAddressBookItem();\n const shippingCountries = useDataOverride<AccountAddressBookItemDeliverabilitySlice | null | undefined>($dataProp);\n const intl = useIntl();\n\n const code = country?.trim().toUpperCase() ?? '';\n if (shippingCountries?.source !== 'PLATFORM' || code === '' || shippingCountries.countries.includes(code)) {\n return null;\n }\n\n return (\n <p {...props} className={className} data-fs-account-address-book-item-deliverability=\"\">\n {resolveAuthoredCopy(message, intl.formatMessage({ id: 'fs/address-book.undeliverable' }))}\n </p>\n );\n}\n"],"mappings":";;;;;;;;AA6CA,MAAa,iDACX,gBAA2D;CACzD,MAAM;CACN,YAAY;CACZ,WAAW;CACX;;;;;;;;CACA,eAAe;CACf,iBAAiB;CACjB,UAAU;CACV,QAAQ;EAAE,OAAO;EAA4C,UAAU;CAAU;CACjF,QAAQ,EACN,SAAS;EAAE,MAAM;EAAU,OAAO;CAAiB,EACrD;CACA,WACE;AACJ,CAAC;AAEH,SAAgB,qCAAqC,EACnD,OAAO,WACP,SACA,WACA,GAAG,SACyC;CAC5C,MAAM,EAAE,YAAY,0BAA0B;CAC9C,MAAM,oBAAoB,gBAA8E,SAAS;CACjH,MAAM,OAAO,QAAQ;CAErB,MAAM,OAAO,SAAS,KAAK,CAAC,CAAC,YAAY,KAAK;CAC9C,IAAI,mBAAmB,WAAW,cAAc,SAAS,MAAM,kBAAkB,UAAU,SAAS,IAAI,GACtG,OAAO;CAGT,OACE,oBAAC,KAAD;EAAG,GAAI;EAAkB;EAAW,oDAAiD;EAClF,UAAA,oBAAoB,SAAS,KAAK,cAAc,EAAE,IAAI,gCAAgC,CAAC,CAAC;CACxF,CAAA;AAEP"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
2
|
+
import "../../core/dist/index.js";
|
|
3
|
+
import { ComponentPropsWithRef, ReactNode } from "react";
|
|
4
|
+
//#region src/matter/account-address-book/account-address-book-form-parts.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* Where the address form opens (specs/sfs-3441-address-book-form.md, RFC REQ-02 and REQ-03). The book's
|
|
7
|
+
* root holds which form is open; these parts read it. A trigger opens a form, and a placement part
|
|
8
|
+
* shows it: `AccountAddressBookFormSlot` in place, `AccountAddressBookFormDialog` in a dialog. A store
|
|
9
|
+
* chooses by composition, and no prop selects a layout.
|
|
10
|
+
*/
|
|
11
|
+
export type AccountAddressBookAddTriggerProps = ComponentPropsWithRef<'button'> & {
|
|
12
|
+
/** The button's text. A blank value falls back to the catalog copy. */
|
|
13
|
+
label?: string;
|
|
14
|
+
};
|
|
15
|
+
export type AccountAddressBookEditTriggerProps = ComponentPropsWithRef<'button'> & {
|
|
16
|
+
/** The button's visible text. A blank value falls back to the catalog copy. */
|
|
17
|
+
label?: string;
|
|
18
|
+
};
|
|
19
|
+
export type AccountAddressBookFormSlotProps = ComponentPropsWithRef<'div'>;
|
|
20
|
+
export type AccountAddressBookFormDialogProps = Readonly<{
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
/** Goes on the dialog's popup, the one element a store can size and place: the dialog renders in a portal. */
|
|
23
|
+
className?: string;
|
|
24
|
+
/** The dialog's title. A blank value falls back to the catalog copy for the open mode. */
|
|
25
|
+
title?: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function AccountAddressBookAddTrigger({ label, className, children, onClick, ...props }: AccountAddressBookAddTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function AccountAddressBookEditTrigger({ label, className, children, onClick, ...props }: AccountAddressBookEditTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare function AccountAddressBookFormSlot({ children, ...props }: AccountAddressBookFormSlotProps): import("react/jsx-runtime").JSX.Element | null;
|
|
30
|
+
export declare function AccountAddressBookFormDialog({ title, className, children }: AccountAddressBookFormDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare const AccountAddressBookAddTriggerDefinition: ComponentDefinition<AccountAddressBookAddTriggerProps>;
|
|
32
|
+
export declare const AccountAddressBookEditTriggerDefinition: ComponentDefinition<AccountAddressBookEditTriggerProps>;
|
|
33
|
+
export declare const AccountAddressBookFormSlotDefinition: ComponentDefinition<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
|
|
34
|
+
export declare const AccountAddressBookFormDialogDefinition: ComponentDefinition<Readonly<{
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
/** Goes on the dialog's popup, the one element a store can size and place: the dialog renders in a portal. */
|
|
37
|
+
className?: string;
|
|
38
|
+
/** The dialog's title. A blank value falls back to the catalog copy for the open mode. */
|
|
39
|
+
title?: string;
|
|
40
|
+
}>>;
|
|
41
|
+
//#endregion
|
|
42
|
+
//# sourceMappingURL=account-address-book-form-parts.d.ts.map
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { useIntl } from "../../sdk/i18n/client.js";
|
|
5
|
+
import { resolveAuthoredCopy } from "../../utils/resolve-authored-copy.js";
|
|
6
|
+
import { Button } from "../../particles/button/button.js";
|
|
7
|
+
import { useAccountAddressBook, useAccountAddressBookItem } from "./account-address-book.js";
|
|
8
|
+
import { firstLine } from "./account-address-first-line.js";
|
|
9
|
+
import { Dialog } from "../../particles/dialog/dialog.js";
|
|
10
|
+
import { createElement } from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
//#region src/matter/account-address-book/account-address-book-form-parts.tsx
|
|
13
|
+
/** A new key starts a new draft: a different address, or an add after an edit. */
|
|
14
|
+
function formKey(form) {
|
|
15
|
+
return form.mode === "edit" ? `edit:${form.address.id}` : "add";
|
|
16
|
+
}
|
|
17
|
+
function AccountAddressBookAddTrigger({ label, className, children, onClick, ...props }) {
|
|
18
|
+
const { open } = useAccountAddressBook();
|
|
19
|
+
const intl = useIntl();
|
|
20
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
21
|
+
...props,
|
|
22
|
+
type: "button",
|
|
23
|
+
className,
|
|
24
|
+
onClick: (event) => {
|
|
25
|
+
onClick?.(event);
|
|
26
|
+
open({ mode: "add" }, event.currentTarget);
|
|
27
|
+
},
|
|
28
|
+
"data-fs-account-address-book-add": "",
|
|
29
|
+
children: children ?? resolveAuthoredCopy(label, intl.formatMessage({ id: "fs/address-form.add" }))
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function AccountAddressBookEditTrigger({ label, className, children, onClick, ...props }) {
|
|
33
|
+
const { open } = useAccountAddressBook();
|
|
34
|
+
const address = useAccountAddressBookItem();
|
|
35
|
+
const intl = useIntl();
|
|
36
|
+
const text = resolveAuthoredCopy(label, intl.formatMessage({ id: "fs/address-form.edit" }));
|
|
37
|
+
const line = firstLine(address);
|
|
38
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
39
|
+
"aria-label": line === "" ? void 0 : `${text} ${line}`,
|
|
40
|
+
...props,
|
|
41
|
+
type: "button",
|
|
42
|
+
className,
|
|
43
|
+
onClick: (event) => {
|
|
44
|
+
onClick?.(event);
|
|
45
|
+
open({
|
|
46
|
+
mode: "edit",
|
|
47
|
+
address
|
|
48
|
+
}, event.currentTarget);
|
|
49
|
+
},
|
|
50
|
+
"data-fs-account-address-book-edit": "",
|
|
51
|
+
children: children ?? text
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function AccountAddressBookFormSlot({ children, ...props }) {
|
|
55
|
+
const { openForm } = useAccountAddressBook();
|
|
56
|
+
if (openForm === null) return null;
|
|
57
|
+
return /* @__PURE__ */ createElement("div", {
|
|
58
|
+
...props,
|
|
59
|
+
key: formKey(openForm),
|
|
60
|
+
"data-fs-account-address-book-form-slot": ""
|
|
61
|
+
}, children);
|
|
62
|
+
}
|
|
63
|
+
function AccountAddressBookFormDialog({ title, className, children }) {
|
|
64
|
+
const { openForm, close, formPending } = useAccountAddressBook();
|
|
65
|
+
const intl = useIntl();
|
|
66
|
+
const defaultTitle = intl.formatMessage({ id: openForm?.mode === "edit" ? "fs/address-form.title.edit" : "fs/address-form.title.add" });
|
|
67
|
+
return /* @__PURE__ */ jsx(Dialog.Root, {
|
|
68
|
+
open: openForm !== null,
|
|
69
|
+
onOpenChange: (next) => {
|
|
70
|
+
if (!next && !formPending) close();
|
|
71
|
+
},
|
|
72
|
+
children: /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, {}), /* @__PURE__ */ jsx(Dialog.Viewport, { children: /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
73
|
+
className,
|
|
74
|
+
"data-fs-account-address-book-form-dialog": "",
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ jsx(Dialog.Title, { children: resolveAuthoredCopy(title, defaultTitle) }),
|
|
77
|
+
/* @__PURE__ */ jsx(Dialog.Close, {
|
|
78
|
+
"aria-label": intl.formatMessage({ id: "fs/a11y.close" }),
|
|
79
|
+
children: "×"
|
|
80
|
+
}),
|
|
81
|
+
openForm === null ? null : /* @__PURE__ */ jsx("div", { children }, formKey(openForm))
|
|
82
|
+
]
|
|
83
|
+
}) })] })
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
const AccountAddressBookAddTriggerDefinition = defineComponent({
|
|
87
|
+
name: "AccountAddressBookAddTrigger",
|
|
88
|
+
importPath: "@vtex/faststore/components",
|
|
89
|
+
component: AccountAddressBookAddTrigger,
|
|
90
|
+
requiresContext: "account-address-book",
|
|
91
|
+
editor: {
|
|
92
|
+
label: "Account Address Book Add Trigger",
|
|
93
|
+
category: "action"
|
|
94
|
+
},
|
|
95
|
+
schema: { label: {
|
|
96
|
+
type: "string",
|
|
97
|
+
label: "Button label"
|
|
98
|
+
} },
|
|
99
|
+
guideline: "Opens the address form in add mode. Shown in every state of the book, the empty one included, since that is where a first address is added. Place an AccountAddressBookFormSlot or an AccountAddressBookFormDialog beside it to show the form. Must be inside AccountAddressBookRoot."
|
|
100
|
+
});
|
|
101
|
+
const AccountAddressBookEditTriggerDefinition = defineComponent({
|
|
102
|
+
name: "AccountAddressBookEditTrigger",
|
|
103
|
+
importPath: "@vtex/faststore/components",
|
|
104
|
+
component: AccountAddressBookEditTrigger,
|
|
105
|
+
requiresContext: "account-address-book-item",
|
|
106
|
+
editor: {
|
|
107
|
+
label: "Account Address Book Edit Trigger",
|
|
108
|
+
category: "action"
|
|
109
|
+
},
|
|
110
|
+
schema: { label: {
|
|
111
|
+
type: "string",
|
|
112
|
+
label: "Button label"
|
|
113
|
+
} },
|
|
114
|
+
guideline: "Opens the address form in edit mode for the address of the entry it sits in. Its accessible name adds the address's first line, so a list of them is told apart. Place it inside AccountAddressBookItem, and an AccountAddressBookFormSlot or an AccountAddressBookFormDialog under the root to show the form."
|
|
115
|
+
});
|
|
116
|
+
const AccountAddressBookFormSlotDefinition = defineComponent({
|
|
117
|
+
name: "AccountAddressBookFormSlot",
|
|
118
|
+
importPath: "@vtex/faststore/components",
|
|
119
|
+
component: AccountAddressBookFormSlot,
|
|
120
|
+
requiresContext: "account-address-book",
|
|
121
|
+
editor: {
|
|
122
|
+
label: "Account Address Book Form Slot",
|
|
123
|
+
category: "layout"
|
|
124
|
+
},
|
|
125
|
+
schema: {},
|
|
126
|
+
guideline: "Shows its children, an AccountAddressFormRoot, in place while a form is open, and nothing otherwise. Each open starts a new draft. Use it to open the form inline under the list; use AccountAddressBookFormDialog for an overlay. Must be inside AccountAddressBookRoot."
|
|
127
|
+
});
|
|
128
|
+
const AccountAddressBookFormDialogDefinition = defineComponent({
|
|
129
|
+
name: "AccountAddressBookFormDialog",
|
|
130
|
+
importPath: "@vtex/faststore/components",
|
|
131
|
+
component: AccountAddressBookFormDialog,
|
|
132
|
+
requiresContext: "account-address-book",
|
|
133
|
+
editor: {
|
|
134
|
+
label: "Account Address Book Form Dialog",
|
|
135
|
+
category: "layout"
|
|
136
|
+
},
|
|
137
|
+
schema: { title: {
|
|
138
|
+
type: "string",
|
|
139
|
+
label: "Dialog title"
|
|
140
|
+
} },
|
|
141
|
+
guideline: "Shows its children, an AccountAddressFormRoot, in a modal dialog while a form is open. Escape and the close button cancel the form and drop the draft, and focus returns to the control that opened it. Use AccountAddressBookFormSlot instead to open the form in place. Must be inside AccountAddressBookRoot."
|
|
142
|
+
});
|
|
143
|
+
//#endregion
|
|
144
|
+
export { AccountAddressBookAddTrigger, AccountAddressBookAddTriggerDefinition, AccountAddressBookEditTrigger, AccountAddressBookEditTriggerDefinition, AccountAddressBookFormDialog, AccountAddressBookFormDialogDefinition, AccountAddressBookFormSlot, AccountAddressBookFormSlotDefinition };
|
|
145
|
+
|
|
146
|
+
//# sourceMappingURL=account-address-book-form-parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-address-book-form-parts.js","names":[],"sources":["../../../src/matter/account-address-book/account-address-book-form-parts.tsx"],"sourcesContent":["'use client';\n\nimport { defineComponent } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef, ReactNode } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport { Dialog } from '../../particles/dialog/dialog.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\nimport { resolveAuthoredCopy } from '../../utils/resolve-authored-copy.js';\nimport {\n type AccountAddressBookOpenForm,\n useAccountAddressBook,\n useAccountAddressBookItem,\n} from './account-address-book.js';\nimport { firstLine } from './account-address-first-line.js';\n\n/**\n * Where the address form opens (specs/sfs-3441-address-book-form.md, RFC REQ-02 and REQ-03). The book's\n * root holds which form is open; these parts read it. A trigger opens a form, and a placement part\n * shows it: `AccountAddressBookFormSlot` in place, `AccountAddressBookFormDialog` in a dialog. A store\n * chooses by composition, and no prop selects a layout.\n */\n\nexport type AccountAddressBookAddTriggerProps = ComponentPropsWithRef<'button'> & {\n /** The button's text. A blank value falls back to the catalog copy. */\n label?: string;\n};\n\nexport type AccountAddressBookEditTriggerProps = ComponentPropsWithRef<'button'> & {\n /** The button's visible text. A blank value falls back to the catalog copy. */\n label?: string;\n};\n\nexport type AccountAddressBookFormSlotProps = ComponentPropsWithRef<'div'>;\n\nexport type AccountAddressBookFormDialogProps = Readonly<{\n children?: ReactNode;\n /** Goes on the dialog's popup, the one element a store can size and place: the dialog renders in a portal. */\n className?: string;\n /** The dialog's title. A blank value falls back to the catalog copy for the open mode. */\n title?: string;\n}>;\n\n/** A new key starts a new draft: a different address, or an add after an edit. */\nfunction formKey(form: AccountAddressBookOpenForm): string {\n return form.mode === 'edit' ? `edit:${form.address.id}` : 'add';\n}\n\nexport function AccountAddressBookAddTrigger({\n label,\n className,\n children,\n onClick,\n ...props\n}: AccountAddressBookAddTriggerProps) {\n const { open } = useAccountAddressBook();\n const intl = useIntl();\n\n return (\n <Button\n {...props}\n type=\"button\"\n className={className}\n onClick={(event) => {\n onClick?.(event);\n open({ mode: 'add' }, event.currentTarget);\n }}\n data-fs-account-address-book-add=\"\"\n >\n {children ?? resolveAuthoredCopy(label, intl.formatMessage({ id: 'fs/address-form.add' }))}\n </Button>\n );\n}\n\nexport function AccountAddressBookEditTrigger({\n label,\n className,\n children,\n onClick,\n ...props\n}: AccountAddressBookEditTriggerProps) {\n const { open } = useAccountAddressBook();\n const address = useAccountAddressBookItem();\n const intl = useIntl();\n const text = resolveAuthoredCopy(label, intl.formatMessage({ id: 'fs/address-form.edit' }));\n const line = firstLine(address);\n\n return (\n <Button\n aria-label={line === '' ? undefined : `${text} ${line}`}\n {...props}\n type=\"button\"\n className={className}\n onClick={(event) => {\n onClick?.(event);\n open({ mode: 'edit', address }, event.currentTarget);\n }}\n data-fs-account-address-book-edit=\"\"\n >\n {children ?? text}\n </Button>\n );\n}\n\nexport function AccountAddressBookFormSlot({ children, ...props }: AccountAddressBookFormSlotProps) {\n const { openForm } = useAccountAddressBook();\n\n if (openForm === null) return null;\n\n return (\n <div {...props} key={formKey(openForm)} data-fs-account-address-book-form-slot=\"\">\n {children}\n </div>\n );\n}\n\nexport function AccountAddressBookFormDialog({ title, className, children }: AccountAddressBookFormDialogProps) {\n const { openForm, close, formPending } = useAccountAddressBook();\n const intl = useIntl();\n const defaultTitle = intl.formatMessage({\n id: openForm?.mode === 'edit' ? 'fs/address-form.title.edit' : 'fs/address-form.title.add',\n });\n\n return (\n <Dialog.Root\n open={openForm !== null}\n onOpenChange={(next) => {\n // A save in flight keeps the form open: its refusal has to land where the shopper can see it.\n if (!next && !formPending) close();\n }}\n >\n <Dialog.Portal>\n <Dialog.Backdrop />\n <Dialog.Viewport>\n <Dialog.Popup className={className} data-fs-account-address-book-form-dialog=\"\">\n <Dialog.Title>{resolveAuthoredCopy(title, defaultTitle)}</Dialog.Title>\n <Dialog.Close aria-label={intl.formatMessage({ id: 'fs/a11y.close' })}>×</Dialog.Close>\n {openForm === null ? null : <div key={formKey(openForm)}>{children}</div>}\n </Dialog.Popup>\n </Dialog.Viewport>\n </Dialog.Portal>\n </Dialog.Root>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Definitions\n// ---------------------------------------------------------------------------\n\nexport const AccountAddressBookAddTriggerDefinition = defineComponent<AccountAddressBookAddTriggerProps>({\n name: 'AccountAddressBookAddTrigger',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookAddTrigger,\n requiresContext: 'account-address-book',\n editor: { label: 'Account Address Book Add Trigger', category: 'action' },\n schema: {\n label: { type: 'string', label: 'Button label' },\n },\n guideline:\n 'Opens the address form in add mode. Shown in every state of the book, the empty one included, since that is where a first address is added. Place an AccountAddressBookFormSlot or an AccountAddressBookFormDialog beside it to show the form. Must be inside AccountAddressBookRoot.',\n});\n\nexport const AccountAddressBookEditTriggerDefinition = defineComponent<AccountAddressBookEditTriggerProps>({\n name: 'AccountAddressBookEditTrigger',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookEditTrigger,\n requiresContext: 'account-address-book-item',\n editor: { label: 'Account Address Book Edit Trigger', category: 'action' },\n schema: {\n label: { type: 'string', label: 'Button label' },\n },\n guideline:\n \"Opens the address form in edit mode for the address of the entry it sits in. Its accessible name adds the address's first line, so a list of them is told apart. Place it inside AccountAddressBookItem, and an AccountAddressBookFormSlot or an AccountAddressBookFormDialog under the root to show the form.\",\n});\n\nexport const AccountAddressBookFormSlotDefinition = defineComponent<AccountAddressBookFormSlotProps>({\n name: 'AccountAddressBookFormSlot',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookFormSlot,\n requiresContext: 'account-address-book',\n editor: { label: 'Account Address Book Form Slot', category: 'layout' },\n schema: {},\n guideline:\n 'Shows its children, an AccountAddressFormRoot, in place while a form is open, and nothing otherwise. Each open starts a new draft. Use it to open the form inline under the list; use AccountAddressBookFormDialog for an overlay. Must be inside AccountAddressBookRoot.',\n});\n\nexport const AccountAddressBookFormDialogDefinition = defineComponent<AccountAddressBookFormDialogProps>({\n name: 'AccountAddressBookFormDialog',\n importPath: '@vtex/faststore/components',\n component: AccountAddressBookFormDialog,\n requiresContext: 'account-address-book',\n editor: { label: 'Account Address Book Form Dialog', category: 'layout' },\n schema: {\n title: { type: 'string', label: 'Dialog title' },\n },\n guideline:\n 'Shows its children, an AccountAddressFormRoot, in a modal dialog while a form is open. Escape and the close button cancel the form and drop the draft, and focus returns to the control that opened it. Use AccountAddressBookFormSlot instead to open the form in place. Must be inside AccountAddressBookRoot.',\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 { ComponentPropsWithRef } from "react";
|
|
5
|
+
//#region src/matter/account-address-book/account-address-book-profile-notice.d.ts
|
|
6
|
+
/** The profile fields the notice reads. */
|
|
7
|
+
export type AccountAddressBookProfileNoticeSlice = Readonly<{
|
|
8
|
+
__typename?: 'CustomerProfile';
|
|
9
|
+
id: string;
|
|
10
|
+
homePhone?: string | null;
|
|
11
|
+
}>;
|
|
12
|
+
export type AccountAddressBookProfileNoticeProps = ComponentPropsWithRef<'div'> & {
|
|
13
|
+
/** Unwrapped `customerProfile` from the reactive runtime (arity-1 fragment); `null` until resolved. */
|
|
14
|
+
$data?: AccountAddressBookProfileNoticeSlice | null;
|
|
15
|
+
/** Where the link goes. A blank value falls back to the default. */
|
|
16
|
+
href?: PageRef | string;
|
|
17
|
+
/** The notice text. A blank value falls back to the catalog copy. */
|
|
18
|
+
message?: string;
|
|
19
|
+
/** The link's label. A blank value falls back to the catalog copy. */
|
|
20
|
+
linkLabel?: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const AccountAddressBookProfileNoticeDefinition: ComponentDefinition<AccountAddressBookProfileNoticeProps>;
|
|
23
|
+
export declare function AccountAddressBookProfileNotice({ $data: $dataProp, href, message, linkLabel, className, ...props }: AccountAddressBookProfileNoticeProps): import("react/jsx-runtime").JSX.Element | null;
|
|
24
|
+
//#endregion
|
|
25
|
+
//# sourceMappingURL=account-address-book-profile-notice.d.ts.map
|