@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,408 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { defineComponent } from "../../core/dist/define-component.js";
|
|
3
|
+
import { defineContentType } from "../../core/dist/define-content-type.js";
|
|
4
|
+
import "../../core/dist/index.js";
|
|
5
|
+
import { useStorefrontFormatters } from "../../sdk/format/client.js";
|
|
6
|
+
import { useIntl } from "../../sdk/i18n/client.js";
|
|
7
|
+
import { AccordionHeader, AccordionItem, AccordionPanel, AccordionRoot, AccordionTrigger } from "../../particles/accordion/accordion.js";
|
|
8
|
+
import { createContext, useContext, useMemo } from "react";
|
|
9
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
//#region src/matter/order-delivery-group/order-delivery-group.tsx
|
|
11
|
+
const fragment = `
|
|
12
|
+
fragment OrderDeliveryGroupData on Query {
|
|
13
|
+
customerOrder(id: $orderId) {
|
|
14
|
+
deliveryOptions {
|
|
15
|
+
selectedSla
|
|
16
|
+
deliveryChannel
|
|
17
|
+
shippingEstimateDate
|
|
18
|
+
items {
|
|
19
|
+
id
|
|
20
|
+
name
|
|
21
|
+
quantity
|
|
22
|
+
image {
|
|
23
|
+
url
|
|
24
|
+
altText
|
|
25
|
+
}
|
|
26
|
+
sellingPrice {
|
|
27
|
+
amount
|
|
28
|
+
currencyCode
|
|
29
|
+
}
|
|
30
|
+
listPrice {
|
|
31
|
+
amount
|
|
32
|
+
currencyCode
|
|
33
|
+
}
|
|
34
|
+
total {
|
|
35
|
+
amount
|
|
36
|
+
currencyCode
|
|
37
|
+
}
|
|
38
|
+
tax {
|
|
39
|
+
amount
|
|
40
|
+
currencyCode
|
|
41
|
+
}
|
|
42
|
+
customFields {
|
|
43
|
+
name
|
|
44
|
+
value
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
const OrderDeliveryGroupContent = defineContentType({
|
|
52
|
+
id: "order-delivery-group",
|
|
53
|
+
title: "Order Delivery Group",
|
|
54
|
+
description: "The labels of a delivery group. The item-count sentences keep {count}: one for a single item, the other for the rest.",
|
|
55
|
+
schema: {
|
|
56
|
+
type: "object",
|
|
57
|
+
additionalProperties: false,
|
|
58
|
+
properties: {
|
|
59
|
+
label: {
|
|
60
|
+
type: "string",
|
|
61
|
+
title: "Accessible name"
|
|
62
|
+
},
|
|
63
|
+
delivery: {
|
|
64
|
+
type: "string",
|
|
65
|
+
title: "Delivery"
|
|
66
|
+
},
|
|
67
|
+
pickup: {
|
|
68
|
+
type: "string",
|
|
69
|
+
title: "Pickup"
|
|
70
|
+
},
|
|
71
|
+
estimate: {
|
|
72
|
+
type: "string",
|
|
73
|
+
title: "Estimated delivery"
|
|
74
|
+
},
|
|
75
|
+
itemsOne: {
|
|
76
|
+
type: "string",
|
|
77
|
+
title: "One item",
|
|
78
|
+
description: "Keep the placeholder {count}."
|
|
79
|
+
},
|
|
80
|
+
itemsOther: {
|
|
81
|
+
type: "string",
|
|
82
|
+
title: "Many items",
|
|
83
|
+
description: "Keep the placeholder {count}."
|
|
84
|
+
},
|
|
85
|
+
subtotal: {
|
|
86
|
+
type: "string",
|
|
87
|
+
title: "Subtotal"
|
|
88
|
+
},
|
|
89
|
+
quantity: {
|
|
90
|
+
type: "string",
|
|
91
|
+
title: "Quantity"
|
|
92
|
+
},
|
|
93
|
+
unitPrice: {
|
|
94
|
+
type: "string",
|
|
95
|
+
title: "Unit price"
|
|
96
|
+
},
|
|
97
|
+
listPrice: {
|
|
98
|
+
type: "string",
|
|
99
|
+
title: "List price"
|
|
100
|
+
},
|
|
101
|
+
total: {
|
|
102
|
+
type: "string",
|
|
103
|
+
title: "Total"
|
|
104
|
+
},
|
|
105
|
+
tax: {
|
|
106
|
+
type: "string",
|
|
107
|
+
title: "Tax"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
const OrderDeliveryOptionContext = createContext(null);
|
|
113
|
+
/** The option index published by the enclosing `OrderDeliveryGroup`, or null outside one. */
|
|
114
|
+
function useOrderDeliveryOption() {
|
|
115
|
+
return useContext(OrderDeliveryOptionContext);
|
|
116
|
+
}
|
|
117
|
+
const ESTIMATE_FORMAT = {
|
|
118
|
+
year: "numeric",
|
|
119
|
+
month: "numeric",
|
|
120
|
+
day: "numeric",
|
|
121
|
+
hour: "numeric",
|
|
122
|
+
minute: "2-digit"
|
|
123
|
+
};
|
|
124
|
+
function estimateInstant(value) {
|
|
125
|
+
if (!value?.trim()) return null;
|
|
126
|
+
const date = new Date(value);
|
|
127
|
+
return Number.isNaN(date.getTime()) ? null : date;
|
|
128
|
+
}
|
|
129
|
+
function authored(value) {
|
|
130
|
+
return value?.trim() || void 0;
|
|
131
|
+
}
|
|
132
|
+
function sentence(value, fallback) {
|
|
133
|
+
return authored(value) ?? fallback;
|
|
134
|
+
}
|
|
135
|
+
const OrderDeliveryGroupDefinition = defineComponent({
|
|
136
|
+
name: "OrderDeliveryGroup",
|
|
137
|
+
importPath: "@vtex/faststore/components",
|
|
138
|
+
component: OrderDeliveryGroup,
|
|
139
|
+
content: OrderDeliveryGroupContent,
|
|
140
|
+
fragment,
|
|
141
|
+
fetchStrategy: "static",
|
|
142
|
+
skeleton: OrderDeliveryGroupSkeleton,
|
|
143
|
+
editor: {
|
|
144
|
+
label: "Order Delivery Group",
|
|
145
|
+
category: "content"
|
|
146
|
+
},
|
|
147
|
+
schema: { label: {
|
|
148
|
+
type: "string",
|
|
149
|
+
label: "Accessible name"
|
|
150
|
+
} },
|
|
151
|
+
providesContext: "order-delivery-option",
|
|
152
|
+
guideline: "The products of one order grouped by delivery option, one collapsible group per option with the option name, the delivery estimate when the order has one, the item count, and the subtotal in its header. Labels are content; a blank field keeps the catalogue. A single option arrives open; two or more arrive closed. Reads customerOrder by the orderId route segment; place it once on the order details page. Children such as OrderDeliveryAddress render once per option, after its rows."
|
|
153
|
+
});
|
|
154
|
+
function moneyAmount(money) {
|
|
155
|
+
if (!money || typeof money.amount === "string" && money.amount.trim() === "") return null;
|
|
156
|
+
const value = typeof money.amount === "number" ? money.amount : Number(money.amount);
|
|
157
|
+
return Number.isFinite(value) ? value : null;
|
|
158
|
+
}
|
|
159
|
+
function optionValue(index) {
|
|
160
|
+
return `option-${index}`;
|
|
161
|
+
}
|
|
162
|
+
function initialOpen(options) {
|
|
163
|
+
return options.length === 1 ? [optionValue(0)] : [];
|
|
164
|
+
}
|
|
165
|
+
function itemCount(items) {
|
|
166
|
+
return items.reduce((sum, line) => sum + line.quantity, 0);
|
|
167
|
+
}
|
|
168
|
+
/** The sum of the line totals the API returned, in cents, in the currency of the first total. */
|
|
169
|
+
function subtotal(items) {
|
|
170
|
+
let cents = 0;
|
|
171
|
+
let currencyCode = null;
|
|
172
|
+
for (const line of items) {
|
|
173
|
+
if (!line.total) continue;
|
|
174
|
+
const amount = moneyAmount(line.total);
|
|
175
|
+
if (amount == null) continue;
|
|
176
|
+
cents += Math.round(amount * 100);
|
|
177
|
+
currencyCode ??= line.total.currencyCode;
|
|
178
|
+
}
|
|
179
|
+
return currencyCode ? {
|
|
180
|
+
amount: cents / 100,
|
|
181
|
+
currencyCode
|
|
182
|
+
} : null;
|
|
183
|
+
}
|
|
184
|
+
function OrderDeliveryGroupSkeleton({ className, ...props }) {
|
|
185
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
186
|
+
...props,
|
|
187
|
+
className,
|
|
188
|
+
"data-fs-order-delivery-group-skeleton": "",
|
|
189
|
+
"aria-hidden": "true",
|
|
190
|
+
children: [/* @__PURE__ */ jsx("span", { "data-fs-order-delivery-group-skeleton-option": "" }), /* @__PURE__ */ jsx("span", { "data-fs-order-delivery-group-skeleton-option": "" })]
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
function deliveryLabels(content, label, intl) {
|
|
194
|
+
const itemsOne = authored(content?.itemsOne);
|
|
195
|
+
const itemsOther = authored(content?.itemsOther);
|
|
196
|
+
return {
|
|
197
|
+
region: authored(content?.label) ?? (label?.trim() || intl.formatMessage({ id: "fs/order-delivery-group.label" })),
|
|
198
|
+
delivery: sentence(content?.delivery, intl.formatMessage({ id: "fs/order-delivery-group.channel.delivery" })),
|
|
199
|
+
pickup: sentence(content?.pickup, intl.formatMessage({ id: "fs/order-delivery-group.channel.pickup-in-point" })),
|
|
200
|
+
estimate: sentence(content?.estimate, intl.formatMessage({ id: "fs/order-delivery-group.estimate" })),
|
|
201
|
+
subtotal: sentence(content?.subtotal, intl.formatMessage({ id: "fs/order-delivery-group.subtotal" })),
|
|
202
|
+
quantity: sentence(content?.quantity, intl.formatMessage({ id: "fs/order-delivery-group.quantity" })),
|
|
203
|
+
unitPrice: sentence(content?.unitPrice, intl.formatMessage({ id: "fs/order-delivery-group.unit-price" })),
|
|
204
|
+
listPrice: sentence(content?.listPrice, intl.formatMessage({ id: "fs/order-delivery-group.list-price" })),
|
|
205
|
+
total: sentence(content?.total, intl.formatMessage({ id: "fs/order-delivery-group.total" })),
|
|
206
|
+
tax: sentence(content?.tax, intl.formatMessage({ id: "fs/order-delivery-group.tax" })),
|
|
207
|
+
items(count) {
|
|
208
|
+
const template = count === 1 ? itemsOne : itemsOther;
|
|
209
|
+
if (template) return template.replaceAll("{count}", String(count));
|
|
210
|
+
return intl.formatMessage({ id: "fs/order-delivery-group.items" }, { count });
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
function OrderDeliveryGroup({ label, $content, $data, children, className, ref }) {
|
|
215
|
+
const intl = useIntl();
|
|
216
|
+
const options = $data?.deliveryOptions ?? [];
|
|
217
|
+
const labels = deliveryLabels($content, label, intl);
|
|
218
|
+
if (options.length === 0) return null;
|
|
219
|
+
return /* @__PURE__ */ jsx("section", {
|
|
220
|
+
ref,
|
|
221
|
+
"aria-label": labels.region,
|
|
222
|
+
className,
|
|
223
|
+
"data-fs-order-delivery-group": "",
|
|
224
|
+
"data-fs-order-delivery-group-count": options.length,
|
|
225
|
+
children: /* @__PURE__ */ jsx(AccordionRoot, {
|
|
226
|
+
openMultiple: true,
|
|
227
|
+
defaultValue: initialOpen(options),
|
|
228
|
+
children: options.map((option, index) => /* @__PURE__ */ jsx(DeliveryOption, {
|
|
229
|
+
value: optionValue(index),
|
|
230
|
+
index,
|
|
231
|
+
option,
|
|
232
|
+
labels,
|
|
233
|
+
children
|
|
234
|
+
}, optionValue(index)))
|
|
235
|
+
})
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
function channelName(channel, labels) {
|
|
239
|
+
if (channel === "delivery") return labels.delivery;
|
|
240
|
+
if (channel === "pickup-in-point") return labels.pickup;
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
function DeliveryOption({ value, index, option, labels, children }) {
|
|
244
|
+
const { formatMoney, formatDate } = useStorefrontFormatters();
|
|
245
|
+
const name = option.selectedSla?.trim() || channelName(option.deliveryChannel, labels);
|
|
246
|
+
const total = subtotal(option.items);
|
|
247
|
+
const estimate = estimateInstant(option.shippingEstimateDate);
|
|
248
|
+
const optionContext = useMemo(() => ({ index }), [index]);
|
|
249
|
+
return /* @__PURE__ */ jsxs(AccordionItem, {
|
|
250
|
+
value,
|
|
251
|
+
"data-fs-order-delivery-group-option": "",
|
|
252
|
+
"data-fs-order-delivery-group-option-channel": option.deliveryChannel ?? void 0,
|
|
253
|
+
children: [/* @__PURE__ */ jsx(AccordionHeader, {
|
|
254
|
+
"data-fs-order-delivery-group-option-header": "",
|
|
255
|
+
children: /* @__PURE__ */ jsxs(AccordionTrigger, {
|
|
256
|
+
"data-fs-order-delivery-group-option-trigger": "",
|
|
257
|
+
children: [
|
|
258
|
+
name ? /* @__PURE__ */ jsx("span", {
|
|
259
|
+
"data-fs-order-delivery-group-option-name": "",
|
|
260
|
+
children: name
|
|
261
|
+
}) : null,
|
|
262
|
+
estimate ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
263
|
+
"data-fs-order-delivery-group-option-estimate-label": "",
|
|
264
|
+
children: labels.estimate
|
|
265
|
+
}), /* @__PURE__ */ jsx("time", {
|
|
266
|
+
dateTime: option.shippingEstimateDate ?? void 0,
|
|
267
|
+
"data-fs-order-delivery-group-option-estimate": "",
|
|
268
|
+
children: formatDate(estimate, ESTIMATE_FORMAT)
|
|
269
|
+
})] }) : null,
|
|
270
|
+
/* @__PURE__ */ jsx("span", {
|
|
271
|
+
"data-fs-order-delivery-group-option-items": "",
|
|
272
|
+
children: labels.items(itemCount(option.items))
|
|
273
|
+
}),
|
|
274
|
+
total ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
275
|
+
"data-fs-order-delivery-group-option-subtotal-label": "",
|
|
276
|
+
children: labels.subtotal
|
|
277
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
278
|
+
"data-fs-order-delivery-group-option-subtotal": "",
|
|
279
|
+
children: formatMoney(total.amount, { currency: total.currencyCode })
|
|
280
|
+
})] }) : null
|
|
281
|
+
]
|
|
282
|
+
})
|
|
283
|
+
}), /* @__PURE__ */ jsxs(AccordionPanel, {
|
|
284
|
+
"data-fs-order-delivery-group-option-panel": "",
|
|
285
|
+
children: [/* @__PURE__ */ jsx("ul", {
|
|
286
|
+
"data-fs-order-delivery-group-rows": "",
|
|
287
|
+
children: option.items.map((line) => /* @__PURE__ */ jsx(DeliveryRow, {
|
|
288
|
+
line,
|
|
289
|
+
labels
|
|
290
|
+
}, line.id))
|
|
291
|
+
}), children ? /* @__PURE__ */ jsx(OrderDeliveryOptionContext.Provider, {
|
|
292
|
+
value: optionContext,
|
|
293
|
+
children
|
|
294
|
+
}) : null]
|
|
295
|
+
})]
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
const MONEY_FACTS = {
|
|
299
|
+
"unit-price": {
|
|
300
|
+
field: "unitPrice",
|
|
301
|
+
label: { "data-fs-order-delivery-group-row-unit-price-label": "" },
|
|
302
|
+
value: { "data-fs-order-delivery-group-row-unit-price": "" }
|
|
303
|
+
},
|
|
304
|
+
"list-price": {
|
|
305
|
+
field: "listPrice",
|
|
306
|
+
label: { "data-fs-order-delivery-group-row-list-price-label": "" },
|
|
307
|
+
value: { "data-fs-order-delivery-group-row-list-price": "" }
|
|
308
|
+
},
|
|
309
|
+
total: {
|
|
310
|
+
field: "total",
|
|
311
|
+
label: { "data-fs-order-delivery-group-row-total-label": "" },
|
|
312
|
+
value: { "data-fs-order-delivery-group-row-total": "" }
|
|
313
|
+
},
|
|
314
|
+
tax: {
|
|
315
|
+
field: "tax",
|
|
316
|
+
label: { "data-fs-order-delivery-group-row-tax-label": "" },
|
|
317
|
+
value: { "data-fs-order-delivery-group-row-tax": "" }
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
function MoneyFact({ kind, money, labels }) {
|
|
321
|
+
const { formatMoney } = useStorefrontFormatters();
|
|
322
|
+
const amount = moneyAmount(money);
|
|
323
|
+
if (amount == null) return null;
|
|
324
|
+
const fact = MONEY_FACTS[kind];
|
|
325
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
326
|
+
...fact.label,
|
|
327
|
+
children: labels[fact.field]
|
|
328
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
329
|
+
...fact.value,
|
|
330
|
+
children: formatMoney(amount, { currency: money.currencyCode })
|
|
331
|
+
})] });
|
|
332
|
+
}
|
|
333
|
+
function DeliveryRow({ line, labels }) {
|
|
334
|
+
const listPrice = moneyAmount(line.listPrice) === moneyAmount(line.sellingPrice) ? null : line.listPrice;
|
|
335
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
336
|
+
"data-fs-order-delivery-group-row": "",
|
|
337
|
+
children: [
|
|
338
|
+
line.image ? /* @__PURE__ */ jsx("img", {
|
|
339
|
+
src: line.image.url,
|
|
340
|
+
alt: line.image.altText ?? line.name,
|
|
341
|
+
"data-fs-order-delivery-group-row-image": "",
|
|
342
|
+
"data-fs-image": ""
|
|
343
|
+
}) : null,
|
|
344
|
+
/* @__PURE__ */ jsxs("span", {
|
|
345
|
+
"data-fs-order-delivery-group-row-details": "",
|
|
346
|
+
children: [
|
|
347
|
+
/* @__PURE__ */ jsx("span", {
|
|
348
|
+
"data-fs-order-delivery-group-row-name": "",
|
|
349
|
+
children: line.name
|
|
350
|
+
}),
|
|
351
|
+
line.customFields.map((field) => /* @__PURE__ */ jsxs("span", {
|
|
352
|
+
"data-fs-order-delivery-group-row-custom-field": "",
|
|
353
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
354
|
+
"data-fs-order-delivery-group-row-custom-field-name": "",
|
|
355
|
+
children: field.name
|
|
356
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
357
|
+
"data-fs-order-delivery-group-row-custom-field-value": "",
|
|
358
|
+
children: field.value
|
|
359
|
+
})]
|
|
360
|
+
}, field.name)),
|
|
361
|
+
/* @__PURE__ */ jsxs("span", {
|
|
362
|
+
"data-fs-order-delivery-group-row-fact": "",
|
|
363
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
364
|
+
"data-fs-order-delivery-group-row-quantity-label": "",
|
|
365
|
+
children: labels.quantity
|
|
366
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
367
|
+
"data-fs-order-delivery-group-row-quantity": "",
|
|
368
|
+
children: line.quantity
|
|
369
|
+
})]
|
|
370
|
+
}),
|
|
371
|
+
line.sellingPrice ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
|
|
372
|
+
kind: "unit-price",
|
|
373
|
+
money: line.sellingPrice,
|
|
374
|
+
labels
|
|
375
|
+
}) }) : null,
|
|
376
|
+
listPrice ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
|
|
377
|
+
kind: "list-price",
|
|
378
|
+
money: listPrice,
|
|
379
|
+
labels
|
|
380
|
+
}) }) : null,
|
|
381
|
+
line.tax ? /* @__PURE__ */ jsx(FactLine, { children: /* @__PURE__ */ jsx(MoneyFact, {
|
|
382
|
+
kind: "tax",
|
|
383
|
+
money: line.tax,
|
|
384
|
+
labels
|
|
385
|
+
}) }) : null
|
|
386
|
+
]
|
|
387
|
+
}),
|
|
388
|
+
line.total ? /* @__PURE__ */ jsx("span", {
|
|
389
|
+
"data-fs-order-delivery-group-row-aside": "",
|
|
390
|
+
children: /* @__PURE__ */ jsx(MoneyFact, {
|
|
391
|
+
kind: "total",
|
|
392
|
+
money: line.total,
|
|
393
|
+
labels
|
|
394
|
+
})
|
|
395
|
+
}) : null
|
|
396
|
+
]
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
function FactLine({ children }) {
|
|
400
|
+
return /* @__PURE__ */ jsx("span", {
|
|
401
|
+
"data-fs-order-delivery-group-row-fact": "",
|
|
402
|
+
children
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
//#endregion
|
|
406
|
+
export { OrderDeliveryGroup, OrderDeliveryGroupContent, OrderDeliveryGroupDefinition, OrderDeliveryGroupSkeleton, useOrderDeliveryOption };
|
|
407
|
+
|
|
408
|
+
//# sourceMappingURL=order-delivery-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-delivery-group.js","names":[],"sources":["../../../src/matter/order-delivery-group/order-delivery-group.tsx"],"sourcesContent":["'use client';\n\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport { type ComponentPropsWithRef, createContext, type ReactNode, type Ref, useContext, useMemo } from 'react';\nimport {\n AccordionHeader,\n AccordionItem,\n AccordionPanel,\n AccordionRoot,\n AccordionTrigger,\n} from '../../particles/accordion/accordion.js';\nimport { useStorefrontFormatters } from '../../sdk/format/client.js';\nimport { useIntl } from '../../sdk/i18n/client.js';\n\nconst fragment = /* GraphQL */ `\n fragment OrderDeliveryGroupData on Query {\n customerOrder(id: $orderId) {\n deliveryOptions {\n selectedSla\n deliveryChannel\n shippingEstimateDate\n items {\n id\n name\n quantity\n image {\n url\n altText\n }\n sellingPrice {\n amount\n currencyCode\n }\n listPrice {\n amount\n currencyCode\n }\n total {\n amount\n currencyCode\n }\n tax {\n amount\n currencyCode\n }\n customFields {\n name\n value\n }\n }\n }\n }\n }\n`;\n\nexport const OrderDeliveryGroupContent = defineContentType({\n id: 'order-delivery-group',\n title: 'Order Delivery Group',\n description:\n 'The labels of a delivery group. The item-count sentences keep {count}: one for a single item, the other for the rest.',\n schema: {\n type: 'object',\n additionalProperties: false,\n properties: {\n label: { type: 'string', title: 'Accessible name' },\n delivery: { type: 'string', title: 'Delivery' },\n pickup: { type: 'string', title: 'Pickup' },\n estimate: { type: 'string', title: 'Estimated delivery' },\n itemsOne: { type: 'string', title: 'One item', description: 'Keep the placeholder {count}.' },\n itemsOther: { type: 'string', title: 'Many items', description: 'Keep the placeholder {count}.' },\n subtotal: { type: 'string', title: 'Subtotal' },\n quantity: { type: 'string', title: 'Quantity' },\n unitPrice: { type: 'string', title: 'Unit price' },\n listPrice: { type: 'string', title: 'List price' },\n total: { type: 'string', title: 'Total' },\n tax: { type: 'string', title: 'Tax' },\n },\n },\n});\n\nexport type OrderDeliveryGroupContentValue = ContentValue<typeof OrderDeliveryGroupContent>;\n\nexport type OrderDeliveryMoney = { amount: string | number; currencyCode: string };\n\nexport type OrderDeliveryItemData = {\n id: string;\n name: string;\n quantity: number;\n image: { url: string; altText: string | null } | null;\n sellingPrice: OrderDeliveryMoney | null;\n listPrice: OrderDeliveryMoney | null;\n total: OrderDeliveryMoney | null;\n tax: OrderDeliveryMoney | null;\n customFields: Array<{ name: string; value: string }>;\n};\n\nexport type OrderDeliveryOptionData = {\n selectedSla: string | null;\n deliveryChannel: string | null;\n shippingEstimateDate: string | null;\n items: OrderDeliveryItemData[];\n};\n\n/** Unwrapped `CustomerOrder` slice. Null when the id does not resolve to the shopper's order. */\nexport type OrderDeliveryGroupData = {\n deliveryOptions: OrderDeliveryOptionData[];\n} | null;\n\nexport type OrderDeliveryGroupProps = Readonly<{\n /** Accessible name of the section. Content wins, then this prop, then the catalogue. */\n label?: string;\n $content?: OrderDeliveryGroupContentValue;\n $data?: OrderDeliveryGroupData;\n /** Rendered once per option, after its rows, inside the `order-delivery-option` context. */\n children?: ReactNode;\n className?: string;\n ref?: Ref<HTMLElement>;\n}>;\n\n/** Which delivery option the children of `OrderDeliveryGroup` are rendering inside. */\nexport type OrderDeliveryOptionContextValue = Readonly<{ index: number }>;\n\nconst OrderDeliveryOptionContext = createContext<OrderDeliveryOptionContextValue | null>(null);\n\n/** The option index published by the enclosing `OrderDeliveryGroup`, or null outside one. */\nexport function useOrderDeliveryOption(): OrderDeliveryOptionContextValue | null {\n return useContext(OrderDeliveryOptionContext);\n}\n\nconst ESTIMATE_FORMAT: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n};\n\nfunction estimateInstant(value: string | null | undefined): Date | null {\n if (!value?.trim()) {\n return null;\n }\n const date = new Date(value);\n return Number.isNaN(date.getTime()) ? null : date;\n}\n\ntype DeliveryLabels = {\n region: string;\n delivery: string;\n pickup: string;\n estimate: string;\n subtotal: string;\n quantity: string;\n unitPrice: string;\n listPrice: string;\n total: string;\n tax: string;\n items: (count: number) => string;\n};\n\nfunction authored(value: string | undefined): string | undefined {\n const trimmed = value?.trim();\n return trimmed || undefined;\n}\n\nfunction sentence(value: string | undefined, fallback: string): string {\n return authored(value) ?? fallback;\n}\n\nexport const OrderDeliveryGroupDefinition = defineComponent<OrderDeliveryGroupProps>({\n name: 'OrderDeliveryGroup',\n importPath: '@vtex/faststore/components',\n component: OrderDeliveryGroup,\n content: OrderDeliveryGroupContent,\n fragment,\n fetchStrategy: 'static',\n skeleton: OrderDeliveryGroupSkeleton,\n editor: { label: 'Order Delivery Group', category: 'content' },\n schema: {\n label: { type: 'string', label: 'Accessible name' },\n },\n providesContext: 'order-delivery-option',\n guideline:\n 'The products of one order grouped by delivery option, one collapsible group per option with the option name, the delivery estimate when the order has one, the item count, and the subtotal in its header. Labels are content; a blank field keeps the catalogue. A single option arrives open; two or more arrive closed. Reads customerOrder by the orderId route segment; place it once on the order details page. Children such as OrderDeliveryAddress render once per option, after its rows.',\n});\n\nfunction moneyAmount(money: OrderDeliveryMoney | null): number | null {\n // Number('') and Number(' ') are 0, which would print a blank upstream amount as a real zero.\n if (!money || (typeof money.amount === 'string' && money.amount.trim() === '')) {\n return null;\n }\n const value = typeof money.amount === 'number' ? money.amount : Number(money.amount);\n return Number.isFinite(value) ? value : null;\n}\n\nfunction optionValue(index: number): string {\n return `option-${index}`;\n}\n\nfunction initialOpen(options: OrderDeliveryOptionData[]): string[] {\n return options.length === 1 ? [optionValue(0)] : [];\n}\n\nfunction itemCount(items: OrderDeliveryItemData[]): number {\n return items.reduce((sum, line) => sum + line.quantity, 0);\n}\n\n/** The sum of the line totals the API returned, in cents, in the currency of the first total. */\nfunction subtotal(items: OrderDeliveryItemData[]): { amount: number; currencyCode: string } | null {\n let cents = 0;\n let currencyCode: string | null = null;\n for (const line of items) {\n if (!line.total) {\n continue;\n }\n const amount = moneyAmount(line.total);\n if (amount == null) {\n continue;\n }\n cents += Math.round(amount * 100);\n currencyCode ??= line.total.currencyCode;\n }\n return currencyCode ? { amount: cents / 100, currencyCode } : null;\n}\n\nexport function OrderDeliveryGroupSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-order-delivery-group-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-order-delivery-group-skeleton-option=\"\" />\n <span data-fs-order-delivery-group-skeleton-option=\"\" />\n </div>\n );\n}\n\nfunction deliveryLabels(\n content: OrderDeliveryGroupContentValue | undefined,\n label: string | undefined,\n intl: ReturnType<typeof useIntl>,\n): DeliveryLabels {\n const itemsOne = authored(content?.itemsOne);\n const itemsOther = authored(content?.itemsOther);\n return {\n region: authored(content?.label) ?? (label?.trim() || intl.formatMessage({ id: 'fs/order-delivery-group.label' })),\n delivery: sentence(content?.delivery, intl.formatMessage({ id: 'fs/order-delivery-group.channel.delivery' })),\n pickup: sentence(content?.pickup, intl.formatMessage({ id: 'fs/order-delivery-group.channel.pickup-in-point' })),\n estimate: sentence(content?.estimate, intl.formatMessage({ id: 'fs/order-delivery-group.estimate' })),\n subtotal: sentence(content?.subtotal, intl.formatMessage({ id: 'fs/order-delivery-group.subtotal' })),\n quantity: sentence(content?.quantity, intl.formatMessage({ id: 'fs/order-delivery-group.quantity' })),\n unitPrice: sentence(content?.unitPrice, intl.formatMessage({ id: 'fs/order-delivery-group.unit-price' })),\n listPrice: sentence(content?.listPrice, intl.formatMessage({ id: 'fs/order-delivery-group.list-price' })),\n total: sentence(content?.total, intl.formatMessage({ id: 'fs/order-delivery-group.total' })),\n tax: sentence(content?.tax, intl.formatMessage({ id: 'fs/order-delivery-group.tax' })),\n items(count: number) {\n const template = count === 1 ? itemsOne : itemsOther;\n if (template) {\n return template.replaceAll('{count}', String(count));\n }\n return intl.formatMessage({ id: 'fs/order-delivery-group.items' }, { count });\n },\n };\n}\n\nexport function OrderDeliveryGroup({ label, $content, $data, children, className, ref }: OrderDeliveryGroupProps) {\n const intl = useIntl();\n const options = $data?.deliveryOptions ?? [];\n const labels = deliveryLabels($content, label, intl);\n\n if (options.length === 0) {\n return null;\n }\n\n return (\n <section\n ref={ref}\n aria-label={labels.region}\n className={className}\n data-fs-order-delivery-group=\"\"\n data-fs-order-delivery-group-count={options.length}\n >\n <AccordionRoot openMultiple defaultValue={initialOpen(options)}>\n {options.map((option, index) => (\n <DeliveryOption\n key={optionValue(index)}\n value={optionValue(index)}\n index={index}\n option={option}\n labels={labels}\n >\n {children}\n </DeliveryOption>\n ))}\n </AccordionRoot>\n </section>\n );\n}\n\ntype DeliveryOptionProps = Readonly<{\n value: string;\n index: number;\n option: OrderDeliveryOptionData;\n labels: DeliveryLabels;\n children?: ReactNode;\n}>;\n\nfunction channelName(channel: string | null, labels: DeliveryLabels): string | null {\n if (channel === 'delivery') {\n return labels.delivery;\n }\n if (channel === 'pickup-in-point') {\n return labels.pickup;\n }\n return null;\n}\n\nfunction DeliveryOption({ value, index, option, labels, children }: DeliveryOptionProps) {\n const { formatMoney, formatDate } = useStorefrontFormatters();\n const name = option.selectedSla?.trim() || channelName(option.deliveryChannel, labels);\n const total = subtotal(option.items);\n const estimate = estimateInstant(option.shippingEstimateDate);\n const optionContext = useMemo(() => ({ index }), [index]);\n\n return (\n <AccordionItem\n value={value}\n data-fs-order-delivery-group-option=\"\"\n data-fs-order-delivery-group-option-channel={option.deliveryChannel ?? undefined}\n >\n <AccordionHeader data-fs-order-delivery-group-option-header=\"\">\n <AccordionTrigger data-fs-order-delivery-group-option-trigger=\"\">\n {name ? <span data-fs-order-delivery-group-option-name=\"\">{name}</span> : null}\n {estimate ? (\n <>\n <span data-fs-order-delivery-group-option-estimate-label=\"\">{labels.estimate}</span>\n <time dateTime={option.shippingEstimateDate ?? undefined} data-fs-order-delivery-group-option-estimate=\"\">\n {formatDate(estimate, ESTIMATE_FORMAT)}\n </time>\n </>\n ) : null}\n <span data-fs-order-delivery-group-option-items=\"\">{labels.items(itemCount(option.items))}</span>\n {total ? (\n <>\n <span data-fs-order-delivery-group-option-subtotal-label=\"\">{labels.subtotal}</span>\n <span data-fs-order-delivery-group-option-subtotal=\"\">\n {formatMoney(total.amount, { currency: total.currencyCode })}\n </span>\n </>\n ) : null}\n </AccordionTrigger>\n </AccordionHeader>\n <AccordionPanel data-fs-order-delivery-group-option-panel=\"\">\n <ul data-fs-order-delivery-group-rows=\"\">\n {option.items.map((line) => (\n <DeliveryRow key={line.id} line={line} labels={labels} />\n ))}\n </ul>\n {children ? (\n <OrderDeliveryOptionContext.Provider value={optionContext}>{children}</OrderDeliveryOptionContext.Provider>\n ) : null}\n </AccordionPanel>\n </AccordionItem>\n );\n}\n\ntype MoneyLabel = 'unitPrice' | 'listPrice' | 'total' | 'tax';\n\nconst MONEY_FACTS = {\n 'unit-price': {\n field: 'unitPrice',\n label: { 'data-fs-order-delivery-group-row-unit-price-label': '' },\n value: { 'data-fs-order-delivery-group-row-unit-price': '' },\n },\n 'list-price': {\n field: 'listPrice',\n label: { 'data-fs-order-delivery-group-row-list-price-label': '' },\n value: { 'data-fs-order-delivery-group-row-list-price': '' },\n },\n total: {\n field: 'total',\n label: { 'data-fs-order-delivery-group-row-total-label': '' },\n value: { 'data-fs-order-delivery-group-row-total': '' },\n },\n tax: {\n field: 'tax',\n label: { 'data-fs-order-delivery-group-row-tax-label': '' },\n value: { 'data-fs-order-delivery-group-row-tax': '' },\n },\n} as const satisfies Record<string, { field: MoneyLabel; label: object; value: object }>;\n\ntype MoneyFactProps = Readonly<{\n kind: keyof typeof MONEY_FACTS;\n money: OrderDeliveryMoney;\n labels: DeliveryLabels;\n}>;\n\nfunction MoneyFact({ kind, money, labels }: MoneyFactProps) {\n const { formatMoney } = useStorefrontFormatters();\n const amount = moneyAmount(money);\n if (amount == null) {\n return null;\n }\n const fact = MONEY_FACTS[kind];\n\n return (\n <>\n <span {...fact.label}>{labels[fact.field]}</span>\n <span {...fact.value}>{formatMoney(amount, { currency: money.currencyCode })}</span>\n </>\n );\n}\n\nfunction DeliveryRow({ line, labels }: Readonly<{ line: OrderDeliveryItemData; labels: DeliveryLabels }>) {\n const listPrice = moneyAmount(line.listPrice) === moneyAmount(line.sellingPrice) ? null : line.listPrice;\n\n return (\n <li data-fs-order-delivery-group-row=\"\">\n {line.image ? (\n // biome-ignore lint/performance/noImgElement: order line image URL is dynamic; matter stays Next-agnostic.\n <img\n src={line.image.url}\n alt={line.image.altText ?? line.name}\n data-fs-order-delivery-group-row-image=\"\"\n data-fs-image=\"\"\n />\n ) : null}\n <span data-fs-order-delivery-group-row-details=\"\">\n <span data-fs-order-delivery-group-row-name=\"\">{line.name}</span>\n {line.customFields.map((field) => (\n <span key={field.name} data-fs-order-delivery-group-row-custom-field=\"\">\n <span data-fs-order-delivery-group-row-custom-field-name=\"\">{field.name}</span>\n <span data-fs-order-delivery-group-row-custom-field-value=\"\">{field.value}</span>\n </span>\n ))}\n <span data-fs-order-delivery-group-row-fact=\"\">\n <span data-fs-order-delivery-group-row-quantity-label=\"\">{labels.quantity}</span>\n <span data-fs-order-delivery-group-row-quantity=\"\">{line.quantity}</span>\n </span>\n {line.sellingPrice ? (\n <FactLine>\n <MoneyFact kind=\"unit-price\" money={line.sellingPrice} labels={labels} />\n </FactLine>\n ) : null}\n {listPrice ? (\n <FactLine>\n <MoneyFact kind=\"list-price\" money={listPrice} labels={labels} />\n </FactLine>\n ) : null}\n {line.tax ? (\n <FactLine>\n <MoneyFact kind=\"tax\" money={line.tax} labels={labels} />\n </FactLine>\n ) : null}\n </span>\n {line.total ? (\n <span data-fs-order-delivery-group-row-aside=\"\">\n <MoneyFact kind=\"total\" money={line.total} labels={labels} />\n </span>\n ) : null}\n </li>\n );\n}\n\nfunction FactLine({ children }: Readonly<{ children: ReactNode }>) {\n return <span data-fs-order-delivery-group-row-fact=\"\">{children}</span>;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ContentValue } from "../../core/dist/define-content-type.js";
|
|
2
|
+
import { ComponentDefinition } from "../../core/dist/define-component.js";
|
|
3
|
+
import "../../core/dist/index.js";
|
|
4
|
+
import { OrderCompletionData } from "../../sdk/orders/completion-badge.js";
|
|
5
|
+
import { ComponentPropsWithRef, Ref } from "react";
|
|
6
|
+
//#region src/matter/order-details-header/order-details-header.d.ts
|
|
7
|
+
export declare const OrderDetailsHeaderContent: {
|
|
8
|
+
readonly id: "order-details-header";
|
|
9
|
+
readonly title: "Order Details Header";
|
|
10
|
+
readonly description: "The prefix, the copy action, and the status sentences on the order page.";
|
|
11
|
+
readonly schema: {
|
|
12
|
+
readonly type: "object";
|
|
13
|
+
readonly additionalProperties: false;
|
|
14
|
+
readonly properties: {
|
|
15
|
+
readonly prefix: {
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly title: "Prefix";
|
|
18
|
+
};
|
|
19
|
+
readonly copyLabel: {
|
|
20
|
+
readonly type: "string";
|
|
21
|
+
readonly title: "Copy label";
|
|
22
|
+
};
|
|
23
|
+
readonly copyAccessibleName: {
|
|
24
|
+
readonly type: "string";
|
|
25
|
+
readonly title: "Copy accessible name";
|
|
26
|
+
};
|
|
27
|
+
readonly copyCopied: {
|
|
28
|
+
readonly type: "string";
|
|
29
|
+
readonly title: "Copied";
|
|
30
|
+
};
|
|
31
|
+
readonly copyFailure: {
|
|
32
|
+
readonly type: "string";
|
|
33
|
+
readonly title: "Copy failure";
|
|
34
|
+
};
|
|
35
|
+
readonly copyDismiss: {
|
|
36
|
+
readonly type: "string";
|
|
37
|
+
readonly title: "Dismiss copy";
|
|
38
|
+
};
|
|
39
|
+
readonly statusInProgress: {
|
|
40
|
+
readonly type: "string";
|
|
41
|
+
readonly title: "In progress";
|
|
42
|
+
};
|
|
43
|
+
readonly statusCancellationRequested: {
|
|
44
|
+
readonly type: "string";
|
|
45
|
+
readonly title: "Cancellation requested";
|
|
46
|
+
};
|
|
47
|
+
readonly statusCancelled: {
|
|
48
|
+
readonly type: "string";
|
|
49
|
+
readonly title: "Cancelled";
|
|
50
|
+
};
|
|
51
|
+
readonly statusDelivered: {
|
|
52
|
+
readonly type: "string";
|
|
53
|
+
readonly title: "Delivered";
|
|
54
|
+
};
|
|
55
|
+
readonly statusShipped: {
|
|
56
|
+
readonly type: "string";
|
|
57
|
+
readonly title: "Shipped";
|
|
58
|
+
};
|
|
59
|
+
readonly statusReadyForPickup: {
|
|
60
|
+
readonly type: "string";
|
|
61
|
+
readonly title: "Ready for pickup";
|
|
62
|
+
};
|
|
63
|
+
readonly statusCollected: {
|
|
64
|
+
readonly type: "string";
|
|
65
|
+
readonly title: "Collected";
|
|
66
|
+
};
|
|
67
|
+
readonly statusPlaceholder: {
|
|
68
|
+
readonly type: "string";
|
|
69
|
+
readonly title: "Status unavailable";
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export type OrderDetailsHeaderContentValue = ContentValue<typeof OrderDetailsHeaderContent>;
|
|
75
|
+
/**
|
|
76
|
+
* The `customerOrder` root the generator passes as `$data`. A single-root fragment is bound to
|
|
77
|
+
* that field's value, so this is the order itself, or null when the read resolves nothing.
|
|
78
|
+
*/
|
|
79
|
+
export type OrderDetailsHeaderData = {
|
|
80
|
+
orderNumber: string;
|
|
81
|
+
completion: OrderCompletionData;
|
|
82
|
+
} | null;
|
|
83
|
+
export type OrderDetailsHeaderProps = Readonly<{
|
|
84
|
+
$data?: OrderDetailsHeaderData | null;
|
|
85
|
+
$content?: OrderDetailsHeaderContentValue;
|
|
86
|
+
prefix?: string;
|
|
87
|
+
copyLabel?: string;
|
|
88
|
+
copyAccessibleName?: string;
|
|
89
|
+
className?: string;
|
|
90
|
+
ref?: Ref<HTMLElement>;
|
|
91
|
+
}>;
|
|
92
|
+
export declare const OrderDetailsHeaderDefinition: ComponentDefinition<Readonly<{
|
|
93
|
+
$data?: OrderDetailsHeaderData | null;
|
|
94
|
+
$content?: OrderDetailsHeaderContentValue;
|
|
95
|
+
prefix?: string;
|
|
96
|
+
copyLabel?: string;
|
|
97
|
+
copyAccessibleName?: string;
|
|
98
|
+
className?: string;
|
|
99
|
+
ref?: Ref<HTMLElement>;
|
|
100
|
+
}>>;
|
|
101
|
+
export declare function OrderDetailsHeaderSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
102
|
+
export declare function OrderDetailsHeader({ $data, $content, prefix, copyLabel, copyAccessibleName, className, ref }: OrderDetailsHeaderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
103
|
+
//#endregion
|
|
104
|
+
//# sourceMappingURL=order-details-header.d.ts.map
|