@vtex/faststore 0.0.1
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 +18 -0
- package/LICENSE +21 -0
- package/README.md +95 -0
- package/dist/actions.json +334 -0
- package/dist/catalog.json +6615 -0
- package/dist/client.d.ts +17 -0
- package/dist/client.js +8 -0
- package/dist/components.d.ts +87 -0
- package/dist/components.js +87 -0
- package/dist/content-types.json +684 -0
- package/dist/core/dist/actions/mock-action.d.ts +24 -0
- package/dist/core/dist/actions/mock-action.js +28 -0
- package/dist/core/dist/actions/mock-action.js.map +1 -0
- package/dist/core/dist/actions/registry.d.ts +24 -0
- package/dist/core/dist/actions/registry.js +28 -0
- package/dist/core/dist/actions/registry.js.map +1 -0
- package/dist/core/dist/define-component.d.ts +100 -0
- package/dist/core/dist/define-component.js +8 -0
- package/dist/core/dist/define-component.js.map +1 -0
- package/dist/core/dist/define-content-type.d.ts +95 -0
- package/dist/core/dist/define-content-type.js +283 -0
- package/dist/core/dist/define-content-type.js.map +1 -0
- package/dist/core/dist/index.d.ts +7 -0
- package/dist/core/dist/index.js +5 -0
- package/dist/core/dist/schema/generated/schema.d.ts +28 -0
- package/dist/core/dist/types.d.ts +1 -0
- package/dist/docs/access-code-field.md +100 -0
- package/dist/docs/access-code-sign-in.md +174 -0
- package/dist/docs/account-entry-point.md +155 -0
- package/dist/docs/address-summary.md +50 -0
- package/dist/docs/buy-button.md +162 -0
- package/dist/docs/carousel.md +105 -0
- package/dist/docs/cart-item.md +162 -0
- package/dist/docs/cart-totalizer.md +197 -0
- package/dist/docs/cart.md +495 -0
- package/dist/docs/client-preferences.md +184 -0
- package/dist/docs/client-profile-form.md +192 -0
- package/dist/docs/client-profile.md +117 -0
- package/dist/docs/container.md +97 -0
- package/dist/docs/document-field.md +97 -0
- package/dist/docs/email-field.md +93 -0
- package/dist/docs/email-identification.md +102 -0
- package/dist/docs/footer-copyright.md +112 -0
- package/dist/docs/footer-link-group.md +162 -0
- package/dist/docs/footer-root.md +145 -0
- package/dist/docs/footer-social.md +151 -0
- package/dist/docs/free-shipping-progress.md +87 -0
- package/dist/docs/gallery.md +84 -0
- package/dist/docs/header-root.md +150 -0
- package/dist/docs/identity-edit.md +88 -0
- package/dist/docs/identity-summary.md +106 -0
- package/dist/docs/incentives.md +151 -0
- package/dist/docs/logo.md +135 -0
- package/dist/docs/meter.md +67 -0
- package/dist/docs/navigation-link-list.md +171 -0
- package/dist/docs/navigation-link.md +163 -0
- package/dist/docs/navigation-menu.md +264 -0
- package/dist/docs/payment-methods.md +139 -0
- package/dist/docs/phone-field.md +106 -0
- package/dist/docs/postal-code-field.md +126 -0
- package/dist/docs/pricing.md +499 -0
- package/dist/docs/product-gallery.md +409 -0
- package/dist/docs/product-information.md +295 -0
- package/dist/docs/product-list.md +170 -0
- package/dist/docs/product-quantity.md +88 -0
- package/dist/docs/product-shelf.md +141 -0
- package/dist/docs/promotion.md +109 -0
- package/dist/docs/region.md +225 -0
- package/dist/docs/session.md +123 -0
- package/dist/docs/shipping-address.md +390 -0
- package/dist/docs/shipping-simulator.md +147 -0
- package/dist/docs/sign-in-form.md +117 -0
- package/dist/docs/tabs.md +176 -0
- package/dist/docs/toast.md +124 -0
- package/dist/docs/variant-selector.md +450 -0
- package/dist/graphql/define-subgraph.d.ts +12 -0
- package/dist/graphql/define-subgraph.js +15 -0
- package/dist/graphql/define-subgraph.js.map +1 -0
- package/dist/graphql/gql.d.ts +10 -0
- package/dist/graphql/gql.js +16 -0
- package/dist/graphql/gql.js.map +1 -0
- package/dist/graphql/types.d.ts +88 -0
- package/dist/graphql.d.ts +4 -0
- package/dist/graphql.js +3 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +5 -0
- package/dist/internal/client.d.ts +24 -0
- package/dist/internal/client.js +23 -0
- package/dist/internal/content.d.ts +2 -0
- package/dist/internal/content.js +2 -0
- package/dist/internal/server.d.ts +7 -0
- package/dist/internal/server.js +6 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.d.ts +111 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.js +387 -0
- package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -0
- package/dist/matter/account-entry-point/account-entry-point.d.ts +64 -0
- package/dist/matter/account-entry-point/account-entry-point.js +151 -0
- package/dist/matter/account-entry-point/account-entry-point.js.map +1 -0
- package/dist/matter/breadcrumb/breadcrumb.d.ts +40 -0
- package/dist/matter/breadcrumb/breadcrumb.js +155 -0
- package/dist/matter/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/matter/buy-button/buy-button.d.ts +95 -0
- package/dist/matter/buy-button/buy-button.js +259 -0
- package/dist/matter/buy-button/buy-button.js.map +1 -0
- package/dist/matter/cart/cart-namespace.d.ts +48 -0
- package/dist/matter/cart/cart-namespace.js +50 -0
- package/dist/matter/cart/cart-namespace.js.map +1 -0
- package/dist/matter/cart/cart.d.ts +312 -0
- package/dist/matter/cart/cart.js +1034 -0
- package/dist/matter/cart/cart.js.map +1 -0
- package/dist/matter/cart-item/cart-item.d.ts +103 -0
- package/dist/matter/cart-item/cart-item.js +672 -0
- package/dist/matter/cart-item/cart-item.js.map +1 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.d.ts +49 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.js +165 -0
- package/dist/matter/cart-item-compositions/cart-item-compositions.js.map +1 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.d.ts +28 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.js +73 -0
- package/dist/matter/cart-item-customizations/cart-item-customizations.js.map +1 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.d.ts +33 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.js +70 -0
- package/dist/matter/cart-item-discounts/cart-item-discounts.js.map +1 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.d.ts +24 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js +54 -0
- package/dist/matter/cart-item-seller-info/cart-item-seller-info.js.map +1 -0
- package/dist/matter/cart-item-variations/cart-item-variations.d.ts +27 -0
- package/dist/matter/cart-item-variations/cart-item-variations.js +69 -0
- package/dist/matter/cart-item-variations/cart-item-variations.js.map +1 -0
- package/dist/matter/cart-totalizer/cart-totalizer.d.ts +78 -0
- package/dist/matter/cart-totalizer/cart-totalizer.js +220 -0
- package/dist/matter/cart-totalizer/cart-totalizer.js.map +1 -0
- package/dist/matter/client-preferences/client-preferences.d.ts +50 -0
- package/dist/matter/client-preferences/client-preferences.js +206 -0
- package/dist/matter/client-preferences/client-preferences.js.map +1 -0
- package/dist/matter/client-profile/client-profile.d.ts +59 -0
- package/dist/matter/client-profile/client-profile.js +185 -0
- package/dist/matter/client-profile/client-profile.js.map +1 -0
- package/dist/matter/client-profile-form/client-profile-form.d.ts +126 -0
- package/dist/matter/client-profile-form/client-profile-form.js +660 -0
- package/dist/matter/client-profile-form/client-profile-form.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options-accordion.d.ts +30 -0
- package/dist/matter/delivery-options/delivery-options-accordion.js +189 -0
- package/dist/matter/delivery-options/delivery-options-accordion.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options-controller.d.ts +49 -0
- package/dist/matter/delivery-options/delivery-options-controller.js +203 -0
- package/dist/matter/delivery-options/delivery-options-controller.js.map +1 -0
- package/dist/matter/delivery-options/delivery-options.d.ts +31 -0
- package/dist/matter/delivery-options/delivery-options.js +103 -0
- package/dist/matter/delivery-options/delivery-options.js.map +1 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.d.ts +9 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.js +76 -0
- package/dist/matter/delivery-options/use-delivery-option-selection.js.map +1 -0
- package/dist/matter/email-identification/email-identification.d.ts +37 -0
- package/dist/matter/email-identification/email-identification.js +111 -0
- package/dist/matter/email-identification/email-identification.js.map +1 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.d.ts +44 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.js +170 -0
- package/dist/matter/free-shipping-progress/free-shipping-progress.js.map +1 -0
- package/dist/matter/identity-edit/identity-edit.d.ts +52 -0
- package/dist/matter/identity-edit/identity-edit.js +148 -0
- package/dist/matter/identity-edit/identity-edit.js.map +1 -0
- package/dist/matter/identity-summary/identity-summary.d.ts +128 -0
- package/dist/matter/identity-summary/identity-summary.js +344 -0
- package/dist/matter/identity-summary/identity-summary.js.map +1 -0
- package/dist/matter/pricing/pricing.d.ts +162 -0
- package/dist/matter/pricing/pricing.js +793 -0
- package/dist/matter/pricing/pricing.js.map +1 -0
- package/dist/matter/product-gallery/product-gallery.d.ts +23 -0
- package/dist/matter/product-gallery/product-gallery.js +188 -0
- package/dist/matter/product-gallery/product-gallery.js.map +1 -0
- package/dist/matter/product-information/product-information.d.ts +61 -0
- package/dist/matter/product-information/product-information.js +355 -0
- package/dist/matter/product-information/product-information.js.map +1 -0
- package/dist/matter/product-list/product-list.d.ts +86 -0
- package/dist/matter/product-list/product-list.js +342 -0
- package/dist/matter/product-list/product-list.js.map +1 -0
- package/dist/matter/product-quantity/product-quantity.d.ts +50 -0
- package/dist/matter/product-quantity/product-quantity.js +111 -0
- package/dist/matter/product-quantity/product-quantity.js.map +1 -0
- package/dist/matter/product-shelf/product-shelf.d.ts +125 -0
- package/dist/matter/product-shelf/product-shelf.js +376 -0
- package/dist/matter/product-shelf/product-shelf.js.map +1 -0
- package/dist/matter/region/region.d.ts +211 -0
- package/dist/matter/region/region.js +579 -0
- package/dist/matter/region/region.js.map +1 -0
- package/dist/matter/session/session.d.ts +58 -0
- package/dist/matter/session/session.js +112 -0
- package/dist/matter/session/session.js.map +1 -0
- package/dist/matter/shipping-address/country-descriptors.js +101 -0
- package/dist/matter/shipping-address/country-descriptors.js.map +1 -0
- package/dist/matter/shipping-address/shipping-address.d.ts +284 -0
- package/dist/matter/shipping-address/shipping-address.js +1036 -0
- package/dist/matter/shipping-address/shipping-address.js.map +1 -0
- package/dist/matter/shipping-simulator/shipping-simulator.d.ts +143 -0
- package/dist/matter/shipping-simulator/shipping-simulator.js +644 -0
- package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -0
- package/dist/matter/sign-in-form/sign-in-form.d.ts +79 -0
- package/dist/matter/sign-in-form/sign-in-form.js +226 -0
- package/dist/matter/sign-in-form/sign-in-form.js.map +1 -0
- package/dist/matter/variant-selector/variant-selector.d.ts +183 -0
- package/dist/matter/variant-selector/variant-selector.js +840 -0
- package/dist/matter/variant-selector/variant-selector.js.map +1 -0
- package/dist/message-locales.json +7 -0
- package/dist/particles/access-code-field/access-code-field.d.ts +33 -0
- package/dist/particles/access-code-field/access-code-field.js +95 -0
- package/dist/particles/access-code-field/access-code-field.js.map +1 -0
- package/dist/particles/accordion/accordion.d.ts +45 -0
- package/dist/particles/accordion/accordion.js +156 -0
- package/dist/particles/accordion/accordion.js.map +1 -0
- package/dist/particles/address-summary/address-summary.d.ts +50 -0
- package/dist/particles/address-summary/address-summary.js +129 -0
- package/dist/particles/address-summary/address-summary.js.map +1 -0
- package/dist/particles/badge/badge.d.ts +10 -0
- package/dist/particles/badge/badge.js +27 -0
- package/dist/particles/badge/badge.js.map +1 -0
- package/dist/particles/button/button.d.ts +18 -0
- package/dist/particles/button/button.js +37 -0
- package/dist/particles/button/button.js.map +1 -0
- package/dist/particles/carousel/carousel.d.ts +60 -0
- package/dist/particles/carousel/carousel.js +335 -0
- package/dist/particles/carousel/carousel.js.map +1 -0
- package/dist/particles/checkbox/checkbox.d.ts +40 -0
- package/dist/particles/checkbox/checkbox.js +82 -0
- package/dist/particles/checkbox/checkbox.js.map +1 -0
- package/dist/particles/container/container.d.ts +20 -0
- package/dist/particles/container/container.js +36 -0
- package/dist/particles/container/container.js.map +1 -0
- package/dist/particles/dialog/dialog.d.ts +54 -0
- package/dist/particles/dialog/dialog.js +192 -0
- package/dist/particles/dialog/dialog.js.map +1 -0
- package/dist/particles/document-field/document-field.d.ts +61 -0
- package/dist/particles/document-field/document-field.js +146 -0
- package/dist/particles/document-field/document-field.js.map +1 -0
- package/dist/particles/drawer/drawer.d.ts +52 -0
- package/dist/particles/drawer/drawer.js +183 -0
- package/dist/particles/drawer/drawer.js.map +1 -0
- package/dist/particles/email-field/email-field.d.ts +37 -0
- package/dist/particles/email-field/email-field.js +106 -0
- package/dist/particles/email-field/email-field.js.map +1 -0
- package/dist/particles/field/field.d.ts +50 -0
- package/dist/particles/field/field.js +133 -0
- package/dist/particles/field/field.js.map +1 -0
- package/dist/particles/fieldset/fieldset.d.ts +16 -0
- package/dist/particles/fieldset/fieldset.js +52 -0
- package/dist/particles/fieldset/fieldset.js.map +1 -0
- package/dist/particles/footer-copyright/footer-copyright.d.ts +32 -0
- package/dist/particles/footer-copyright/footer-copyright.js +50 -0
- package/dist/particles/footer-copyright/footer-copyright.js.map +1 -0
- package/dist/particles/footer-link-group/footer-link-group.d.ts +66 -0
- package/dist/particles/footer-link-group/footer-link-group.js +154 -0
- package/dist/particles/footer-link-group/footer-link-group.js.map +1 -0
- package/dist/particles/footer-root/footer-root.d.ts +21 -0
- package/dist/particles/footer-root/footer-root.js +38 -0
- package/dist/particles/footer-root/footer-root.js.map +1 -0
- package/dist/particles/footer-social/footer-social.d.ts +79 -0
- package/dist/particles/footer-social/footer-social.js +176 -0
- package/dist/particles/footer-social/footer-social.js.map +1 -0
- package/dist/particles/gallery/gallery.d.ts +181 -0
- package/dist/particles/gallery/gallery.js +920 -0
- package/dist/particles/gallery/gallery.js.map +1 -0
- package/dist/particles/header-root/header-root.d.ts +21 -0
- package/dist/particles/header-root/header-root.js +38 -0
- package/dist/particles/header-root/header-root.js.map +1 -0
- package/dist/particles/icon/icon.d.ts +22 -0
- package/dist/particles/icon/icon.js +48 -0
- package/dist/particles/icon/icon.js.map +1 -0
- package/dist/particles/image/image.d.ts +13 -0
- package/dist/particles/image/image.js +59 -0
- package/dist/particles/image/image.js.map +1 -0
- package/dist/particles/incentives/incentives.d.ts +85 -0
- package/dist/particles/incentives/incentives.js +200 -0
- package/dist/particles/incentives/incentives.js.map +1 -0
- package/dist/particles/input/input.d.ts +9 -0
- package/dist/particles/input/input.js +28 -0
- package/dist/particles/input/input.js.map +1 -0
- package/dist/particles/logo/logo.d.ts +55 -0
- package/dist/particles/logo/logo.js +96 -0
- package/dist/particles/logo/logo.js.map +1 -0
- package/dist/particles/menu/menu.d.ts +103 -0
- package/dist/particles/menu/menu.js +409 -0
- package/dist/particles/menu/menu.js.map +1 -0
- package/dist/particles/menubar/menubar.d.ts +18 -0
- package/dist/particles/menubar/menubar.js +42 -0
- package/dist/particles/menubar/menubar.js.map +1 -0
- package/dist/particles/meter/meter.d.ts +36 -0
- package/dist/particles/meter/meter.js +132 -0
- package/dist/particles/meter/meter.js.map +1 -0
- package/dist/particles/navigation-link/navigation-link.d.ts +43 -0
- package/dist/particles/navigation-link/navigation-link.js +82 -0
- package/dist/particles/navigation-link/navigation-link.js.map +1 -0
- package/dist/particles/navigation-link-list/navigation-link-list.d.ts +59 -0
- package/dist/particles/navigation-link-list/navigation-link-list.js +103 -0
- package/dist/particles/navigation-link-list/navigation-link-list.js.map +1 -0
- package/dist/particles/navigation-menu/navigation-menu.d.ts +78 -0
- package/dist/particles/navigation-menu/navigation-menu.js +295 -0
- package/dist/particles/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/particles/number-field/number-field.d.ts +46 -0
- package/dist/particles/number-field/number-field.js +169 -0
- package/dist/particles/number-field/number-field.js.map +1 -0
- package/dist/particles/password-field/password-field.d.ts +31 -0
- package/dist/particles/password-field/password-field.js +109 -0
- package/dist/particles/password-field/password-field.js.map +1 -0
- package/dist/particles/payment-methods/payment-methods.d.ts +72 -0
- package/dist/particles/payment-methods/payment-methods.js +151 -0
- package/dist/particles/payment-methods/payment-methods.js.map +1 -0
- package/dist/particles/phone-field/phone-field.d.ts +67 -0
- package/dist/particles/phone-field/phone-field.js +250 -0
- package/dist/particles/phone-field/phone-field.js.map +1 -0
- package/dist/particles/popover/popover.d.ts +68 -0
- package/dist/particles/popover/popover.js +284 -0
- package/dist/particles/popover/popover.js.map +1 -0
- package/dist/particles/postal-code-field/postal-code-field.d.ts +75 -0
- package/dist/particles/postal-code-field/postal-code-field.js +169 -0
- package/dist/particles/postal-code-field/postal-code-field.js.map +1 -0
- package/dist/particles/promotion/promotion.d.ts +46 -0
- package/dist/particles/promotion/promotion.js +78 -0
- package/dist/particles/promotion/promotion.js.map +1 -0
- package/dist/particles/quantity-selector/quantity-selector.d.ts +30 -0
- package/dist/particles/quantity-selector/quantity-selector.js +116 -0
- package/dist/particles/quantity-selector/quantity-selector.js.map +1 -0
- package/dist/particles/radio/radio.d.ts +36 -0
- package/dist/particles/radio/radio.js +76 -0
- package/dist/particles/radio/radio.js.map +1 -0
- package/dist/particles/scroll-area/scroll-area.d.ts +36 -0
- package/dist/particles/scroll-area/scroll-area.js +145 -0
- package/dist/particles/scroll-area/scroll-area.js.map +1 -0
- package/dist/particles/select/select.d.ts +125 -0
- package/dist/particles/select/select.js +478 -0
- package/dist/particles/select/select.js.map +1 -0
- package/dist/particles/separator/separator.d.ts +12 -0
- package/dist/particles/separator/separator.js +33 -0
- package/dist/particles/separator/separator.js.map +1 -0
- package/dist/particles/shared/input-mask.d.ts +5 -0
- package/dist/particles/shared/input-mask.js +58 -0
- package/dist/particles/shared/input-mask.js.map +1 -0
- package/dist/particles/spinner/spinner.d.ts +13 -0
- package/dist/particles/spinner/spinner.js +31 -0
- package/dist/particles/spinner/spinner.js.map +1 -0
- package/dist/particles/switch/switch.d.ts +27 -0
- package/dist/particles/switch/switch.js +59 -0
- package/dist/particles/switch/switch.js.map +1 -0
- package/dist/particles/tabs/tabs.d.ts +45 -0
- package/dist/particles/tabs/tabs.js +164 -0
- package/dist/particles/tabs/tabs.js.map +1 -0
- package/dist/particles/text/text.d.ts +24 -0
- package/dist/particles/text/text.js +40 -0
- package/dist/particles/text/text.js.map +1 -0
- package/dist/particles/toast/toast.d.ts +83 -0
- package/dist/particles/toast/toast.js +194 -0
- package/dist/particles/toast/toast.js.map +1 -0
- package/dist/particles/toggle/toggle.d.ts +26 -0
- package/dist/particles/toggle/toggle.js +61 -0
- package/dist/particles/toggle/toggle.js.map +1 -0
- package/dist/particles/tooltip/tooltip.d.ts +61 -0
- package/dist/particles/tooltip/tooltip.js +240 -0
- package/dist/particles/tooltip/tooltip.js.map +1 -0
- package/dist/schema.graphql +2953 -0
- package/dist/sdk/actions/cart-action-provider.d.ts +19 -0
- package/dist/sdk/actions/cart-action-provider.js +23 -0
- package/dist/sdk/actions/cart-action-provider.js.map +1 -0
- package/dist/sdk/actions/identity-action-provider.d.ts +15 -0
- package/dist/sdk/actions/identity-action-provider.js +19 -0
- package/dist/sdk/actions/identity-action-provider.js.map +1 -0
- package/dist/sdk/actions/index.d.ts +7 -0
- package/dist/sdk/actions/index.js +6 -0
- package/dist/sdk/actions/inject-actions.d.ts +14 -0
- package/dist/sdk/actions/inject-actions.js +36 -0
- package/dist/sdk/actions/inject-actions.js.map +1 -0
- package/dist/sdk/actions/region-action-provider.d.ts +15 -0
- package/dist/sdk/actions/region-action-provider.js +19 -0
- package/dist/sdk/actions/region-action-provider.js.map +1 -0
- package/dist/sdk/actions/session-action-provider.d.ts +15 -0
- package/dist/sdk/actions/session-action-provider.js +19 -0
- package/dist/sdk/actions/session-action-provider.js.map +1 -0
- package/dist/sdk/actions/shipping-action-provider.d.ts +15 -0
- package/dist/sdk/actions/shipping-action-provider.js +19 -0
- package/dist/sdk/actions/shipping-action-provider.js.map +1 -0
- package/dist/sdk/actions/types.d.ts +21 -0
- package/dist/sdk/cache/storefront-cache.js +35 -0
- package/dist/sdk/cache/storefront-cache.js.map +1 -0
- package/dist/sdk/cart/operations.d.ts +31 -0
- package/dist/sdk/cart/operations.js +215 -0
- package/dist/sdk/cart/operations.js.map +1 -0
- package/dist/sdk/cart/optimistic.d.ts +24 -0
- package/dist/sdk/cart/optimistic.js +164 -0
- package/dist/sdk/cart/optimistic.js.map +1 -0
- package/dist/sdk/cart/use-cart-actions.d.ts +56 -0
- package/dist/sdk/cart/use-cart-actions.js +348 -0
- package/dist/sdk/cart/use-cart-actions.js.map +1 -0
- package/dist/sdk/cart/use-cart-validate-on-open.js +50 -0
- package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -0
- package/dist/sdk/cart/write-gate.js +54 -0
- package/dist/sdk/cart/write-gate.js.map +1 -0
- package/dist/sdk/client/assert-api-url.js +20 -0
- package/dist/sdk/client/assert-api-url.js.map +1 -0
- package/dist/sdk/client/create-client.d.ts +23 -0
- package/dist/sdk/client/create-client.js +46 -0
- package/dist/sdk/client/create-client.js.map +1 -0
- package/dist/sdk/client/fetch-page-data.d.ts +39 -0
- package/dist/sdk/client/fetch-page-data.js +33 -0
- package/dist/sdk/client/fetch-page-data.js.map +1 -0
- package/dist/sdk/client/register-preload-query.d.ts +24 -0
- package/dist/sdk/client/register-preload-query.js +33 -0
- package/dist/sdk/client/register-preload-query.js.map +1 -0
- package/dist/sdk/content/create-content-runtime.d.ts +68 -0
- package/dist/sdk/content/create-content-runtime.js +503 -0
- package/dist/sdk/content/create-content-runtime.js.map +1 -0
- package/dist/sdk/context/headers.d.ts +15 -0
- package/dist/sdk/context/headers.js +21 -0
- package/dist/sdk/context/headers.js.map +1 -0
- package/dist/sdk/context/storefront-context.d.ts +11 -0
- package/dist/sdk/context/storefront-context.js +29 -0
- package/dist/sdk/context/storefront-context.js.map +1 -0
- package/dist/sdk/data/data-override-context.d.ts +12 -0
- package/dist/sdk/data/data-override-context.js +19 -0
- package/dist/sdk/data/data-override-context.js.map +1 -0
- package/dist/sdk/data/entity-subscriber.js +28 -0
- package/dist/sdk/data/entity-subscriber.js.map +1 -0
- package/dist/sdk/data/hot-data-provider.d.ts +19 -0
- package/dist/sdk/data/hot-data-provider.js +33 -0
- package/dist/sdk/data/hot-data-provider.js.map +1 -0
- package/dist/sdk/data/index.d.ts +8 -0
- package/dist/sdk/data/index.js +8 -0
- package/dist/sdk/data/list-item-ref-context.d.ts +20 -0
- package/dist/sdk/data/list-item-ref-context.js +11 -0
- package/dist/sdk/data/list-item-ref-context.js.map +1 -0
- package/dist/sdk/data/multiple-reactive-data-provider.d.ts +32 -0
- package/dist/sdk/data/multiple-reactive-data-provider.js +20 -0
- package/dist/sdk/data/multiple-reactive-data-provider.js.map +1 -0
- package/dist/sdk/data/page-reactive-data-root.d.ts +53 -0
- package/dist/sdk/data/page-reactive-data-root.js +153 -0
- package/dist/sdk/data/page-reactive-data-root.js.map +1 -0
- package/dist/sdk/data/reactive-data-provider.d.ts +25 -0
- package/dist/sdk/data/reactive-data-provider.js +24 -0
- package/dist/sdk/data/reactive-data-provider.js.map +1 -0
- package/dist/sdk/data/reactive-list-item-data-provider.d.ts +26 -0
- package/dist/sdk/data/reactive-list-item-data-provider.js +42 -0
- package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -0
- package/dist/sdk/data/use-reactive-entity.js +40 -0
- package/dist/sdk/data/use-reactive-entity.js.map +1 -0
- package/dist/sdk/format/client.d.ts +12 -0
- package/dist/sdk/format/client.js +20 -0
- package/dist/sdk/format/client.js.map +1 -0
- package/dist/sdk/format/formatters.d.ts +32 -0
- package/dist/sdk/format/formatters.js +45 -0
- package/dist/sdk/format/formatters.js.map +1 -0
- package/dist/sdk/generated/fragment-types.js +23 -0
- package/dist/sdk/generated/fragment-types.js.map +1 -0
- package/dist/sdk/generated/gql.js +51 -0
- package/dist/sdk/generated/gql.js.map +1 -0
- package/dist/sdk/generated/graphql.d.ts +622 -0
- package/dist/sdk/generated/graphql.js +11917 -0
- package/dist/sdk/generated/graphql.js.map +1 -0
- package/dist/sdk/graphql-tag.d.ts +10 -0
- package/dist/sdk/graphql-tag.js +21 -0
- package/dist/sdk/graphql-tag.js.map +1 -0
- package/dist/sdk/i18n/client.d.ts +4 -0
- package/dist/sdk/i18n/client.js +4 -0
- package/dist/sdk/i18n/locales.d.ts +8 -0
- package/dist/sdk/i18n/locales.js +57 -0
- package/dist/sdk/i18n/locales.js.map +1 -0
- package/dist/sdk/i18n/messages/en-US.js +24 -0
- package/dist/sdk/i18n/messages/en-US.js.map +1 -0
- package/dist/sdk/i18n/messages/en-US.json +19 -0
- package/dist/sdk/i18n/messages/en-US.json.d.ts +23 -0
- package/dist/sdk/i18n/messages/es-ES.js +24 -0
- package/dist/sdk/i18n/messages/es-ES.js.map +1 -0
- package/dist/sdk/i18n/messages/es-ES.json +19 -0
- package/dist/sdk/i18n/messages/pt-BR.js +24 -0
- package/dist/sdk/i18n/messages/pt-BR.js.map +1 -0
- package/dist/sdk/i18n/messages/pt-BR.json +19 -0
- package/dist/sdk/i18n/provider.d.ts +1 -0
- package/dist/sdk/i18n/provider.js +30 -0
- package/dist/sdk/i18n/provider.js.map +1 -0
- package/dist/sdk/i18n/server.d.ts +28 -0
- package/dist/sdk/i18n/server.js +59 -0
- package/dist/sdk/i18n/server.js.map +1 -0
- package/dist/sdk/identity/operations.d.ts +34 -0
- package/dist/sdk/identity/operations.js +78 -0
- package/dist/sdk/identity/operations.js.map +1 -0
- package/dist/sdk/identity/use-identity-actions.d.ts +62 -0
- package/dist/sdk/identity/use-identity-actions.js +180 -0
- package/dist/sdk/identity/use-identity-actions.js.map +1 -0
- package/dist/sdk/provider/index.d.ts +2 -0
- package/dist/sdk/provider/index.js +2 -0
- package/dist/sdk/provider/storefront-provider.d.ts +32 -0
- package/dist/sdk/provider/storefront-provider.js +111 -0
- package/dist/sdk/provider/storefront-provider.js.map +1 -0
- package/dist/sdk/region/operations.d.ts +6 -0
- package/dist/sdk/region/region-operations.d.ts +30 -0
- package/dist/sdk/region/region-operations.js +23 -0
- package/dist/sdk/region/region-operations.js.map +1 -0
- package/dist/sdk/region/use-region-actions.d.ts +23 -0
- package/dist/sdk/region/use-region-actions.js +66 -0
- package/dist/sdk/region/use-region-actions.js.map +1 -0
- package/dist/sdk/seller.js +11 -0
- package/dist/sdk/seller.js.map +1 -0
- package/dist/sdk/session/auth-operations.d.ts +47 -0
- package/dist/sdk/session/auth-operations.js +79 -0
- package/dist/sdk/session/auth-operations.js.map +1 -0
- package/dist/sdk/session/operations.d.ts +6 -0
- package/dist/sdk/session/use-session-actions.d.ts +27 -0
- package/dist/sdk/session/use-session-actions.js +126 -0
- package/dist/sdk/session/use-session-actions.js.map +1 -0
- package/dist/sdk/shipping/cart-operations.d.ts +3 -0
- package/dist/sdk/shipping/cart-operations.js +33 -0
- package/dist/sdk/shipping/cart-operations.js.map +1 -0
- package/dist/sdk/shipping/operations.d.ts +3 -0
- package/dist/sdk/shipping/operations.js +33 -0
- package/dist/sdk/shipping/operations.js.map +1 -0
- package/dist/sdk/shipping/option-select-operations.d.ts +24 -0
- package/dist/sdk/shipping/option-select-operations.js +45 -0
- package/dist/sdk/shipping/option-select-operations.js.map +1 -0
- package/dist/sdk/shipping/request-timeout.js +41 -0
- package/dist/sdk/shipping/request-timeout.js.map +1 -0
- package/dist/sdk/shipping/shipping-operations.d.ts +38 -0
- package/dist/sdk/shipping/shipping-operations.js +77 -0
- package/dist/sdk/shipping/shipping-operations.js.map +1 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.d.ts +7 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.js +72 -0
- package/dist/sdk/shipping/use-cart-shipping-simulation.js.map +1 -0
- package/dist/sdk/shipping/use-shipping-actions.d.ts +27 -0
- package/dist/sdk/shipping/use-shipping-actions.js +113 -0
- package/dist/sdk/shipping/use-shipping-actions.js.map +1 -0
- package/dist/sdk/shipping/use-shipping-simulation.d.ts +7 -0
- package/dist/sdk/shipping/use-shipping-simulation.js +72 -0
- package/dist/sdk/shipping/use-shipping-simulation.js.map +1 -0
- package/dist/sdk/state/cart.d.ts +42 -0
- package/dist/sdk/state/cart.js +64 -0
- package/dist/sdk/state/cart.js.map +1 -0
- package/dist/sdk/state/index.js +3 -0
- package/dist/sdk/state/variant-selector.d.ts +17 -0
- package/dist/sdk/state/variant-selector.js +14 -0
- package/dist/sdk/state/variant-selector.js.map +1 -0
- package/dist/utils/safe-href.js +63 -0
- package/dist/utils/safe-href.js.map +1 -0
- package/package.json +84 -0
- package/src/styles/tailwind.css +32 -0
|
@@ -0,0 +1,259 @@
|
|
|
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 { graphql } from "../../sdk/generated/gql.js";
|
|
6
|
+
import { useDataOverride } from "../../sdk/data/data-override-context.js";
|
|
7
|
+
import { Button } from "../../particles/button/button.js";
|
|
8
|
+
import { HotDataProvider } from "../../sdk/data/hot-data-provider.js";
|
|
9
|
+
import { resolveDefaultSeller } from "../../sdk/seller.js";
|
|
10
|
+
import { publishedVariantIdFor, selectedVariantVar } from "../../sdk/state/variant-selector.js";
|
|
11
|
+
import { useProductQuantity } from "../product-quantity/product-quantity.js";
|
|
12
|
+
import { useReactiveVar } from "@apollo/client/react";
|
|
13
|
+
import { Suspense, createContext, useContext, useState } from "react";
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
//#region src/matter/buy-button/buy-button.tsx
|
|
16
|
+
const fragment = `
|
|
17
|
+
fragment BuyButtonData on Query {
|
|
18
|
+
productBySlug(slug: $slug) {
|
|
19
|
+
id
|
|
20
|
+
title
|
|
21
|
+
slug
|
|
22
|
+
images(first: 1) {
|
|
23
|
+
edges {
|
|
24
|
+
node {
|
|
25
|
+
url
|
|
26
|
+
altText
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
variants(first: 1) {
|
|
31
|
+
edges {
|
|
32
|
+
node {
|
|
33
|
+
id
|
|
34
|
+
sku
|
|
35
|
+
availableForSale
|
|
36
|
+
sellers {
|
|
37
|
+
id
|
|
38
|
+
isDefault
|
|
39
|
+
offer {
|
|
40
|
+
price { amount currencyCode }
|
|
41
|
+
listPrice { amount currencyCode }
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
graphql(`
|
|
51
|
+
fragment VariantBuyButtonData on Variant {
|
|
52
|
+
__typename
|
|
53
|
+
id
|
|
54
|
+
availableForSale
|
|
55
|
+
sellers {
|
|
56
|
+
id
|
|
57
|
+
isDefault
|
|
58
|
+
offer {
|
|
59
|
+
price { amount currencyCode }
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
`);
|
|
64
|
+
const variantQuery = graphql(`
|
|
65
|
+
query VariantBuyButtonQuery($id: ID!) {
|
|
66
|
+
node(id: $id) {
|
|
67
|
+
__typename
|
|
68
|
+
... on Variant {
|
|
69
|
+
...VariantBuyButtonData
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`);
|
|
74
|
+
const BuyButtonLabels = defineContentType({
|
|
75
|
+
id: "buy-button-labels",
|
|
76
|
+
title: "Buy Button Labels",
|
|
77
|
+
description: "Editorial labels for the add-to-cart button.",
|
|
78
|
+
schema: {
|
|
79
|
+
type: "object",
|
|
80
|
+
additionalProperties: false,
|
|
81
|
+
required: ["availableLabel", "unavailableLabel"],
|
|
82
|
+
properties: {
|
|
83
|
+
availableLabel: {
|
|
84
|
+
type: "string",
|
|
85
|
+
minLength: 1,
|
|
86
|
+
title: "Available label",
|
|
87
|
+
default: "Comprar"
|
|
88
|
+
},
|
|
89
|
+
unavailableLabel: {
|
|
90
|
+
type: "string",
|
|
91
|
+
minLength: 1,
|
|
92
|
+
title: "Unavailable label",
|
|
93
|
+
default: "Indisponivel"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
const BUYBUTTON_CONTEXT_UNSET = Symbol("BuyButtonContextUnset");
|
|
99
|
+
const BuyButtonContext = createContext(BUYBUTTON_CONTEXT_UNSET);
|
|
100
|
+
function useBuyButton() {
|
|
101
|
+
const ctx = useContext(BuyButtonContext);
|
|
102
|
+
if (ctx === BUYBUTTON_CONTEXT_UNSET) throw new Error("BuyButton components must be used inside BuyButtonRoot.");
|
|
103
|
+
return ctx;
|
|
104
|
+
}
|
|
105
|
+
function buyButtonContextFromVariant(variant) {
|
|
106
|
+
const seller = resolveDefaultSeller(variant.sellers);
|
|
107
|
+
if (!seller?.offer) return null;
|
|
108
|
+
return {
|
|
109
|
+
available: variant.availableForSale,
|
|
110
|
+
variantId: variant.id,
|
|
111
|
+
seller: seller.id
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function transformBuyButtonData(data) {
|
|
115
|
+
const edge = data.variants.edges[0];
|
|
116
|
+
if (!edge) return null;
|
|
117
|
+
return buyButtonContextFromVariant(edge.node);
|
|
118
|
+
}
|
|
119
|
+
function transformVariantBuyButtonData(variant) {
|
|
120
|
+
return buyButtonContextFromVariant(variant);
|
|
121
|
+
}
|
|
122
|
+
const BuyButtonRootDefinition = defineComponent({
|
|
123
|
+
name: "BuyButtonRoot",
|
|
124
|
+
importPath: "@vtex/faststore/components",
|
|
125
|
+
component: BuyButtonRoot,
|
|
126
|
+
fragment,
|
|
127
|
+
skeleton: BuyButtonSkeleton,
|
|
128
|
+
editor: {
|
|
129
|
+
label: "Buy Button",
|
|
130
|
+
category: "commerce"
|
|
131
|
+
},
|
|
132
|
+
schema: { selectedVariantId: {
|
|
133
|
+
type: "string",
|
|
134
|
+
label: "Selected Variant ID"
|
|
135
|
+
} },
|
|
136
|
+
guideline: "Data provider for the buy button; place it on PDPs with BuyButtonButton as a child. Adds the variant the shopper picks (it reads the published VariantSelector selection), sending that SKU and its seller to the cart; the selectedVariantId prop is an optional pre-selection fallback, and it falls back to the product first variant on a variant fetch error. Cart writes flow through $actions.cart, so no CartRoot ancestor is required. See buy-button.md."
|
|
137
|
+
});
|
|
138
|
+
const BuyButtonButtonDefinition = defineComponent({
|
|
139
|
+
name: "BuyButtonButton",
|
|
140
|
+
importPath: "@vtex/faststore/components",
|
|
141
|
+
component: BuyButtonButton,
|
|
142
|
+
content: BuyButtonLabels,
|
|
143
|
+
editor: {
|
|
144
|
+
label: "Buy Button Action",
|
|
145
|
+
category: "commerce"
|
|
146
|
+
},
|
|
147
|
+
schema: {
|
|
148
|
+
availableLabel: {
|
|
149
|
+
type: "string",
|
|
150
|
+
default: "Comprar",
|
|
151
|
+
label: "Available label"
|
|
152
|
+
},
|
|
153
|
+
unavailableLabel: {
|
|
154
|
+
type: "string",
|
|
155
|
+
default: "Indisponivel",
|
|
156
|
+
label: "Unavailable label"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
actions: { cart: ["addItem"] },
|
|
160
|
+
guideline: "The add-to-cart button; must be a descendant of BuyButtonRoot. Cart writes flow through $actions.cart, so no CartRoot ancestor is required."
|
|
161
|
+
});
|
|
162
|
+
function BuyButtonRoot({ $data, selectedVariantId, children, ...props }) {
|
|
163
|
+
const productSlice = $data ?? null;
|
|
164
|
+
const publishedSelection = useReactiveVar(selectedVariantVar);
|
|
165
|
+
const activeVariantId = publishedVariantIdFor(publishedSelection, productSlice?.id ?? null) ?? selectedVariantId;
|
|
166
|
+
if (activeVariantId) return /* @__PURE__ */ jsx(Suspense, {
|
|
167
|
+
fallback: null,
|
|
168
|
+
children: /* @__PURE__ */ jsx(HotDataProvider, {
|
|
169
|
+
query: variantQuery,
|
|
170
|
+
variables: { id: activeVariantId },
|
|
171
|
+
field: "node",
|
|
172
|
+
fallbackData: productSlice,
|
|
173
|
+
children: /* @__PURE__ */ jsx(BuyButtonProvider, {
|
|
174
|
+
fallbackProductSlice: productSlice,
|
|
175
|
+
...props,
|
|
176
|
+
children
|
|
177
|
+
})
|
|
178
|
+
})
|
|
179
|
+
});
|
|
180
|
+
const contextValue = productSlice ? transformBuyButtonData(productSlice) : null;
|
|
181
|
+
return /* @__PURE__ */ jsx(BuyButtonView, {
|
|
182
|
+
contextValue,
|
|
183
|
+
...props,
|
|
184
|
+
children
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function BuyButtonProvider({ fallbackProductSlice, ...viewProps }) {
|
|
188
|
+
const override = useDataOverride(null);
|
|
189
|
+
const overrideTypename = override?.__typename;
|
|
190
|
+
let contextValue = null;
|
|
191
|
+
if (overrideTypename === "Variant") contextValue = transformVariantBuyButtonData(override);
|
|
192
|
+
else if (fallbackProductSlice) contextValue = transformBuyButtonData(fallbackProductSlice);
|
|
193
|
+
return /* @__PURE__ */ jsx(BuyButtonView, {
|
|
194
|
+
contextValue,
|
|
195
|
+
...viewProps
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function BuyButtonView({ contextValue, className, children, ...props }) {
|
|
199
|
+
return /* @__PURE__ */ jsx(BuyButtonContext, {
|
|
200
|
+
value: contextValue,
|
|
201
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
202
|
+
...props,
|
|
203
|
+
className,
|
|
204
|
+
"data-fs-buy-button": "",
|
|
205
|
+
children
|
|
206
|
+
})
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function BuyButtonButton({ availableLabel = "Comprar", unavailableLabel = "Indisponivel", className, children, onClick, $content, $actions, ...props }) {
|
|
210
|
+
const ctx = useBuyButton();
|
|
211
|
+
const [addItemPending, setAddItemPending] = useState(false);
|
|
212
|
+
const { quantity } = useProductQuantity();
|
|
213
|
+
if (!ctx) return null;
|
|
214
|
+
const { available, variantId, seller } = ctx;
|
|
215
|
+
function handleClick(e) {
|
|
216
|
+
const addItem = $actions?.cart?.addItem;
|
|
217
|
+
if (addItem) {
|
|
218
|
+
setAddItemPending(true);
|
|
219
|
+
addItem({
|
|
220
|
+
variantId,
|
|
221
|
+
seller,
|
|
222
|
+
quantity
|
|
223
|
+
}).finally(() => setAddItemPending(false));
|
|
224
|
+
}
|
|
225
|
+
onClick?.(e);
|
|
226
|
+
}
|
|
227
|
+
const isUnavailable = !available;
|
|
228
|
+
const defaultText = isUnavailable ? $content?.unavailableLabel ?? unavailableLabel : $content?.availableLabel ?? availableLabel;
|
|
229
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
230
|
+
...props,
|
|
231
|
+
className,
|
|
232
|
+
onClick: handleClick,
|
|
233
|
+
disabled: isUnavailable || addItemPending,
|
|
234
|
+
"aria-busy": addItemPending || void 0,
|
|
235
|
+
"data-fs-buy-button-button": "",
|
|
236
|
+
...isUnavailable ? { "data-fs-buy-button-unavailable": "" } : {},
|
|
237
|
+
...addItemPending ? { "data-fs-buy-button-pending": "" } : {},
|
|
238
|
+
children: children ?? defaultText
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
function BuyButtonSkeleton({ className, ...props }) {
|
|
242
|
+
return /* @__PURE__ */ jsx("div", {
|
|
243
|
+
...props,
|
|
244
|
+
className,
|
|
245
|
+
"data-fs-buy-button-skeleton": "",
|
|
246
|
+
"aria-hidden": "true",
|
|
247
|
+
children: /* @__PURE__ */ jsx("span", { "data-fs-buy-button-skeleton-line": "" })
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
BuyButtonRoot.Skeleton = BuyButtonSkeleton;
|
|
251
|
+
const BuyButton = {
|
|
252
|
+
Root: BuyButtonRoot,
|
|
253
|
+
Button: BuyButtonButton,
|
|
254
|
+
Skeleton: BuyButtonSkeleton
|
|
255
|
+
};
|
|
256
|
+
//#endregion
|
|
257
|
+
export { BuyButton, BuyButtonButton, BuyButtonButtonDefinition, BuyButtonLabels, BuyButtonRoot, BuyButtonRootDefinition, BuyButtonSkeleton, transformVariantBuyButtonData };
|
|
258
|
+
|
|
259
|
+
//# sourceMappingURL=buy-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buy-button.js","names":[],"sources":["../../../src/matter/buy-button/buy-button.tsx"],"sourcesContent":["'use client';\n\nimport { useReactiveVar } from '@apollo/client/react';\nimport { type ContentValue, defineComponent, defineContentType } from '@vtex/fs-core';\nimport type { ComponentPropsWithRef } from 'react';\nimport { createContext, Suspense, useContext, useState } from 'react';\nimport { Button } from '../../particles/button/button.js';\nimport type { ComponentActions } from '../../sdk/actions/types.js';\nimport { useDataOverride } from '../../sdk/data/data-override-context.js';\nimport { HotDataProvider } from '../../sdk/data/hot-data-provider.js';\nimport { graphql } from '../../sdk/generated/gql.js';\nimport type { VariantBuyButtonDataFragment } from '../../sdk/generated/graphql.js';\nimport { resolveDefaultSeller } from '../../sdk/seller.js';\nimport { publishedVariantIdFor, selectedVariantVar } from '../../sdk/state/variant-selector.js';\nimport { useProductQuantity } from '../product-quantity/product-quantity.js';\n\n// ---------------------------------------------------------------------------\n// GraphQL Fragment\n// ---------------------------------------------------------------------------\n\nconst fragment = /* GraphQL */ `\n fragment BuyButtonData on Query {\n productBySlug(slug: $slug) {\n id\n title\n slug\n images(first: 1) {\n edges {\n node {\n url\n altText\n }\n }\n }\n variants(first: 1) {\n edges {\n node {\n id\n sku\n availableForSale\n sellers {\n id\n isDefault\n offer {\n price { amount currencyCode }\n listPrice { amount currencyCode }\n }\n }\n }\n }\n }\n }\n }\n`;\n\n// Variant slice carrying the selected variant's availability plus its default seller, authored via\n// graphql() so HotDataProvider gets a TypedDocumentNode. Declared so codegen scans the source and\n// emits VariantBuyButtonDataFragment; the fragment is spread into variantQuery at the GraphQL layer,\n// so the variable is unused at runtime. `offer` is selected only as the same purchasability gate the\n// product transform applies — the buy button never displays price.\nconst _variantFragment = graphql(`\n fragment VariantBuyButtonData on Variant {\n __typename\n id\n availableForSale\n sellers {\n id\n isDefault\n offer {\n price { amount currencyCode }\n }\n }\n }\n`);\n\nconst variantQuery = graphql(`\n query VariantBuyButtonQuery($id: ID!) {\n node(id: $id) {\n __typename\n ... on Variant {\n ...VariantBuyButtonData\n }\n }\n }\n`);\n\n// ---------------------------------------------------------------------------\n// Raw data types (shape of the fragment result)\n// ---------------------------------------------------------------------------\n\ntype MoneyValue = {\n amount: number;\n currencyCode: string;\n};\n\ntype RawBuyButtonData = {\n id: string;\n title: string;\n slug: string;\n images: {\n edges: Array<{\n node: {\n url: string;\n altText: string | null;\n };\n }>;\n };\n variants: {\n edges: Array<{\n node: {\n id: string;\n sku: string;\n availableForSale: boolean;\n sellers: Array<{\n id: string;\n isDefault: boolean;\n offer: {\n price: MoneyValue;\n listPrice: MoneyValue;\n } | null;\n }>;\n };\n }>;\n };\n};\n\n// ---------------------------------------------------------------------------\n// Content model\n// ---------------------------------------------------------------------------\n\nexport const BuyButtonLabels = defineContentType({\n id: 'buy-button-labels',\n title: 'Buy Button Labels',\n description: 'Editorial labels for the add-to-cart button.',\n schema: {\n type: 'object',\n additionalProperties: false,\n required: ['availableLabel', 'unavailableLabel'],\n properties: {\n availableLabel: { type: 'string', minLength: 1, title: 'Available label', default: 'Comprar' },\n unavailableLabel: { type: 'string', minLength: 1, title: 'Unavailable label', default: 'Indisponivel' },\n },\n },\n});\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype BuyButtonContextData = {\n available: boolean;\n /** Identifiers passed to useCart().addItem when the button is clicked. */\n variantId: string;\n seller: string;\n};\n\ntype BuyButtonContextValue = BuyButtonContextData | null;\n\nconst BUYBUTTON_CONTEXT_UNSET = Symbol('BuyButtonContextUnset');\n\nexport type BuyButtonRootProps = ComponentPropsWithRef<'div'> & {\n $data?: RawBuyButtonData | null;\n /** Page-supplied viewed SKU; adds this variant before the shopper interacts. A published swatch\n * selection wins over it once set. */\n selectedVariantId?: string;\n};\n\nexport type BuyButtonButtonProps = ComponentPropsWithRef<'button'> & {\n availableLabel?: string;\n unavailableLabel?: string;\n /** Merchant-authored labels, sliced from the page/layout content entry; win over the label props\n * when present. Absent in a non-CMS store — the label props (and their defaults) are the fallback. */\n $content?: ContentValue<typeof BuyButtonLabels>;\n /** Injected by the compiler from `actions: { cart: ['addItem'] }`; the cart write surface. */\n $actions?: ComponentActions;\n};\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst BuyButtonContext = createContext<BuyButtonContextValue | typeof BUYBUTTON_CONTEXT_UNSET>(BUYBUTTON_CONTEXT_UNSET);\n\nfunction useBuyButton(): BuyButtonContextValue {\n const ctx = useContext(BuyButtonContext);\n if (ctx === BUYBUTTON_CONTEXT_UNSET) {\n throw new Error('BuyButton components must be used inside BuyButtonRoot.');\n }\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Transform\n// ---------------------------------------------------------------------------\n\n// Builds the add-to-cart context from a variant: the SKU (its Node id), its default seller, and its\n// availability. A variant whose resolved seller has no purchasable offer yields null (the button does\n// not render). Shared by the product-level and selected-variant transforms so the default-seller +\n// offer gate lives in one place.\nfunction buyButtonContextFromVariant(variant: {\n id: string;\n availableForSale: boolean;\n sellers: readonly { id: string; isDefault: boolean; offer: unknown }[];\n}): BuyButtonContextData | null {\n const seller = resolveDefaultSeller(variant.sellers);\n if (!seller?.offer) return null;\n\n return {\n available: variant.availableForSale,\n variantId: variant.id,\n seller: seller.id,\n };\n}\n\nfunction transformBuyButtonData(data: RawBuyButtonData): BuyButtonContextData | null {\n const edge = data.variants.edges[0];\n if (!edge) return null;\n\n return buyButtonContextFromVariant(edge.node);\n}\n\nexport function transformVariantBuyButtonData(variant: VariantBuyButtonDataFragment): BuyButtonContextData | null {\n return buyButtonContextFromVariant(variant);\n}\n\n// ---------------------------------------------------------------------------\n// Definitions\n// ---------------------------------------------------------------------------\n\nexport const BuyButtonRootDefinition = defineComponent<BuyButtonRootProps>({\n name: 'BuyButtonRoot',\n importPath: '@vtex/faststore/components',\n component: BuyButtonRoot,\n fragment,\n skeleton: BuyButtonSkeleton,\n editor: { label: 'Buy Button', category: 'commerce' },\n schema: {\n selectedVariantId: { type: 'string', label: 'Selected Variant ID' },\n },\n guideline:\n 'Data provider for the buy button; place it on PDPs with BuyButtonButton as a child. Adds the variant the shopper picks (it reads the published VariantSelector selection), sending that SKU and its seller to the cart; the selectedVariantId prop is an optional pre-selection fallback, and it falls back to the product first variant on a variant fetch error. Cart writes flow through $actions.cart, so no CartRoot ancestor is required. See buy-button.md.',\n});\n\nexport const BuyButtonButtonDefinition = defineComponent({\n name: 'BuyButtonButton',\n importPath: '@vtex/faststore/components',\n component: BuyButtonButton,\n content: BuyButtonLabels,\n editor: { label: 'Buy Button Action', category: 'commerce' },\n schema: {\n availableLabel: { type: 'string', default: 'Comprar', label: 'Available label' },\n unavailableLabel: { type: 'string', default: 'Indisponivel', label: 'Unavailable label' },\n },\n actions: { cart: ['addItem'] },\n guideline:\n 'The add-to-cart button; must be a descendant of BuyButtonRoot. Cart writes flow through $actions.cart, so no CartRoot ancestor is required.',\n});\n\n// ---------------------------------------------------------------------------\n// Implementations\n// ---------------------------------------------------------------------------\n\nexport function BuyButtonRoot({ $data, selectedVariantId, children, ...props }: BuyButtonRootProps) {\n const productSlice = $data ?? null;\n\n // Read the shopper's published variant selection so the button adds the variant the shopper picked\n // — the selected SKU, its seller, and its availability — without a page navigation, scoped to this\n // product. The explicit selectedVariantId prop is the pre-selection fallback; the live published\n // selection wins once set.\n const publishedSelection = useReactiveVar(selectedVariantVar);\n const publishedVariantId = publishedVariantIdFor(publishedSelection, productSlice?.id ?? null);\n const activeVariantId = publishedVariantId ?? selectedVariantId;\n\n if (activeVariantId) {\n return (\n <Suspense fallback={null}>\n <HotDataProvider\n query={variantQuery}\n variables={{ id: activeVariantId }}\n field=\"node\"\n fallbackData={productSlice}\n >\n <BuyButtonProvider fallbackProductSlice={productSlice} {...props}>\n {children}\n </BuyButtonProvider>\n </HotDataProvider>\n </Suspense>\n );\n }\n\n const contextValue = productSlice ? transformBuyButtonData(productSlice) : null;\n\n return (\n <BuyButtonView contextValue={contextValue} {...props}>\n {children}\n </BuyButtonView>\n );\n}\n\ntype BuyButtonProviderProps = Omit<BuyButtonRootProps, '$data' | 'selectedVariantId'> & {\n fallbackProductSlice: RawBuyButtonData | null;\n};\n\n// Reads the override written by the nested HotDataProvider: a Variant node when the variant fetch\n// succeeds, or the product slice (fallbackData) on error/null. Dispatch on __typename so the whole\n// add-to-cart context — availability, the SKU (variantId), and the seller — resolves from the\n// selected variant; always source the product path from the explicit fallback prop so a mis-passed\n// Product node id can never crash the variant transform.\nfunction BuyButtonProvider({ fallbackProductSlice, ...viewProps }: BuyButtonProviderProps) {\n const override = useDataOverride<unknown>(null);\n const overrideTypename = (override as { __typename?: string } | null)?.__typename;\n\n let contextValue: BuyButtonContextValue = null;\n if (overrideTypename === 'Variant') {\n contextValue = transformVariantBuyButtonData(override as VariantBuyButtonDataFragment);\n } else if (fallbackProductSlice) {\n contextValue = transformBuyButtonData(fallbackProductSlice);\n }\n\n return <BuyButtonView contextValue={contextValue} {...viewProps} />;\n}\n\ntype BuyButtonViewProps = Omit<BuyButtonRootProps, '$data' | 'selectedVariantId'> & {\n contextValue: BuyButtonContextValue;\n};\n\nfunction BuyButtonView({ contextValue, className, children, ...props }: BuyButtonViewProps) {\n return (\n <BuyButtonContext value={contextValue}>\n <div {...props} className={className} data-fs-buy-button=\"\">\n {children}\n </div>\n </BuyButtonContext>\n );\n}\n\nexport function BuyButtonButton({\n availableLabel = 'Comprar',\n unavailableLabel = 'Indisponivel',\n className,\n children,\n onClick,\n $content,\n $actions,\n ...props\n}: BuyButtonButtonProps) {\n const ctx = useBuyButton();\n // `addItem` is async with no optimistic response, so the button owns its pending state locally\n // (the action surface no longer exposes a shared `addItemPending`).\n const [addItemPending, setAddItemPending] = useState(false);\n const { quantity } = useProductQuantity();\n\n if (!ctx) return null;\n\n const { available, variantId, seller } = ctx;\n\n function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\n const addItem = $actions?.cart?.addItem;\n if (addItem) {\n setAddItemPending(true);\n void addItem({ variantId, seller, quantity }).finally(() => setAddItemPending(false));\n }\n onClick?.(e);\n }\n\n const isUnavailable = !available;\n const defaultText = isUnavailable\n ? ($content?.unavailableLabel ?? unavailableLabel)\n : ($content?.availableLabel ?? availableLabel);\n\n return (\n <Button\n {...props}\n className={className}\n onClick={handleClick}\n disabled={isUnavailable || addItemPending}\n aria-busy={addItemPending || undefined}\n data-fs-buy-button-button=\"\"\n {...(isUnavailable ? { 'data-fs-buy-button-unavailable': '' } : {})}\n {...(addItemPending ? { 'data-fs-buy-button-pending': '' } : {})}\n >\n {children ?? defaultText}\n </Button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Skeleton\n// ---------------------------------------------------------------------------\n\nexport function BuyButtonSkeleton({ className, ...props }: ComponentPropsWithRef<'div'>) {\n return (\n <div {...props} className={className} data-fs-buy-button-skeleton=\"\" aria-hidden=\"true\">\n <span data-fs-buy-button-skeleton-line=\"\" />\n </div>\n );\n}\n\nBuyButtonRoot.Skeleton = BuyButtonSkeleton;\n\n// ---------------------------------------------------------------------------\n// Namespace export\n// ---------------------------------------------------------------------------\n\nexport const BuyButton = {\n Root: BuyButtonRoot,\n Button: BuyButtonButton,\n Skeleton: BuyButtonSkeleton,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CartAlertIcon, CartAlertRoot, CartAlertText, CartAppliedCoupons, CartCheckoutGuard, CartContinueShopping, CartCount, CartCouponError, CartCouponForm, CartCouponRemove, CartDisclaimer, CartEmpty, CartEmptyMessage, CartError, CartFilled, CartGoCheckout, CartItemSkeleton, CartList, CartLoading, CartOpenOnAdd, CartRedirectOnAdd, CartRemoveUnavailable, CartRoot, CartTotal, CartUnavailableCount } from "./cart.js";
|
|
2
|
+
import { CartItemAvailable, CartItemDiscountPercentage, CartItemGift, CartItemImage, CartItemLineTotal, CartItemListPrice, CartItemName, CartItemPrice, CartItemProductLink, CartItemQuantity, CartItemQuantityValue, CartItemRemove, CartItemRoot, CartItemSku, CartItemUnavailable, CartItemVariant } from "../cart-item/cart-item.js";
|
|
3
|
+
//#region src/matter/cart/cart-namespace.d.ts
|
|
4
|
+
export declare const Cart: {
|
|
5
|
+
Root: typeof CartRoot;
|
|
6
|
+
List: typeof CartList;
|
|
7
|
+
ItemRoot: typeof CartItemRoot;
|
|
8
|
+
ItemImage: typeof CartItemImage;
|
|
9
|
+
ItemProductLink: typeof CartItemProductLink;
|
|
10
|
+
ItemName: typeof CartItemName;
|
|
11
|
+
ItemVariant: typeof CartItemVariant;
|
|
12
|
+
ItemSku: typeof CartItemSku;
|
|
13
|
+
ItemPrice: typeof CartItemPrice;
|
|
14
|
+
ItemListPrice: typeof CartItemListPrice;
|
|
15
|
+
ItemDiscountPercentage: typeof CartItemDiscountPercentage;
|
|
16
|
+
ItemLineTotal: typeof CartItemLineTotal;
|
|
17
|
+
ItemQuantity: typeof CartItemQuantity;
|
|
18
|
+
ItemQuantityValue: typeof CartItemQuantityValue;
|
|
19
|
+
ItemRemove: typeof CartItemRemove;
|
|
20
|
+
ItemAvailable: typeof CartItemAvailable;
|
|
21
|
+
ItemUnavailable: typeof CartItemUnavailable;
|
|
22
|
+
ItemGift: typeof CartItemGift;
|
|
23
|
+
ItemSkeleton: typeof CartItemSkeleton;
|
|
24
|
+
Total: typeof CartTotal;
|
|
25
|
+
Count: typeof CartCount;
|
|
26
|
+
Error: typeof CartError;
|
|
27
|
+
GoCheckout: typeof CartGoCheckout;
|
|
28
|
+
CheckoutGuard: typeof CartCheckoutGuard;
|
|
29
|
+
UnavailableCount: typeof CartUnavailableCount;
|
|
30
|
+
RemoveUnavailable: typeof CartRemoveUnavailable;
|
|
31
|
+
OpenOnAdd: typeof CartOpenOnAdd;
|
|
32
|
+
RedirectOnAdd: typeof CartRedirectOnAdd;
|
|
33
|
+
Loading: typeof CartLoading;
|
|
34
|
+
Empty: typeof CartEmpty;
|
|
35
|
+
EmptyMessage: typeof CartEmptyMessage;
|
|
36
|
+
ContinueShopping: typeof CartContinueShopping;
|
|
37
|
+
Filled: typeof CartFilled;
|
|
38
|
+
Disclaimer: typeof CartDisclaimer;
|
|
39
|
+
CouponForm: typeof CartCouponForm;
|
|
40
|
+
AppliedCoupons: typeof CartAppliedCoupons;
|
|
41
|
+
CouponRemove: typeof CartCouponRemove;
|
|
42
|
+
CouponError: typeof CartCouponError;
|
|
43
|
+
AlertRoot: typeof CartAlertRoot;
|
|
44
|
+
AlertIcon: typeof CartAlertIcon;
|
|
45
|
+
AlertText: typeof CartAlertText;
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
//# sourceMappingURL=cart-namespace.d.ts.map
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CartAlertIcon, CartAlertRoot, CartAlertText, CartAppliedCoupons, CartCheckoutGuard, CartContinueShopping, CartCount, CartCouponError, CartCouponForm, CartCouponRemove, CartDisclaimer, CartEmpty, CartEmptyMessage, CartError, CartFilled, CartGoCheckout, CartItemSkeleton, CartList, CartLoading, CartOpenOnAdd, CartRedirectOnAdd, CartRemoveUnavailable, CartRoot, CartTotal, CartUnavailableCount } from "./cart.js";
|
|
2
|
+
import { CartItemAvailable, CartItemDiscountPercentage, CartItemGift, CartItemImage, CartItemLineTotal, CartItemListPrice, CartItemName, CartItemPrice, CartItemProductLink, CartItemQuantity, CartItemQuantityValue, CartItemRemove, CartItemRoot, CartItemSku, CartItemUnavailable, CartItemVariant } from "../cart-item/cart-item.js";
|
|
3
|
+
//#region src/matter/cart/cart-namespace.ts
|
|
4
|
+
const Cart = {
|
|
5
|
+
Root: CartRoot,
|
|
6
|
+
List: CartList,
|
|
7
|
+
ItemRoot: CartItemRoot,
|
|
8
|
+
ItemImage: CartItemImage,
|
|
9
|
+
ItemProductLink: CartItemProductLink,
|
|
10
|
+
ItemName: CartItemName,
|
|
11
|
+
ItemVariant: CartItemVariant,
|
|
12
|
+
ItemSku: CartItemSku,
|
|
13
|
+
ItemPrice: CartItemPrice,
|
|
14
|
+
ItemListPrice: CartItemListPrice,
|
|
15
|
+
ItemDiscountPercentage: CartItemDiscountPercentage,
|
|
16
|
+
ItemLineTotal: CartItemLineTotal,
|
|
17
|
+
ItemQuantity: CartItemQuantity,
|
|
18
|
+
ItemQuantityValue: CartItemQuantityValue,
|
|
19
|
+
ItemRemove: CartItemRemove,
|
|
20
|
+
ItemAvailable: CartItemAvailable,
|
|
21
|
+
ItemUnavailable: CartItemUnavailable,
|
|
22
|
+
ItemGift: CartItemGift,
|
|
23
|
+
ItemSkeleton: CartItemSkeleton,
|
|
24
|
+
Total: CartTotal,
|
|
25
|
+
Count: CartCount,
|
|
26
|
+
Error: CartError,
|
|
27
|
+
GoCheckout: CartGoCheckout,
|
|
28
|
+
CheckoutGuard: CartCheckoutGuard,
|
|
29
|
+
UnavailableCount: CartUnavailableCount,
|
|
30
|
+
RemoveUnavailable: CartRemoveUnavailable,
|
|
31
|
+
OpenOnAdd: CartOpenOnAdd,
|
|
32
|
+
RedirectOnAdd: CartRedirectOnAdd,
|
|
33
|
+
Loading: CartLoading,
|
|
34
|
+
Empty: CartEmpty,
|
|
35
|
+
EmptyMessage: CartEmptyMessage,
|
|
36
|
+
ContinueShopping: CartContinueShopping,
|
|
37
|
+
Filled: CartFilled,
|
|
38
|
+
Disclaimer: CartDisclaimer,
|
|
39
|
+
CouponForm: CartCouponForm,
|
|
40
|
+
AppliedCoupons: CartAppliedCoupons,
|
|
41
|
+
CouponRemove: CartCouponRemove,
|
|
42
|
+
CouponError: CartCouponError,
|
|
43
|
+
AlertRoot: CartAlertRoot,
|
|
44
|
+
AlertIcon: CartAlertIcon,
|
|
45
|
+
AlertText: CartAlertText
|
|
46
|
+
};
|
|
47
|
+
//#endregion
|
|
48
|
+
export { Cart };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=cart-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-namespace.js","names":[],"sources":["../../../src/matter/cart/cart-namespace.ts"],"sourcesContent":["import {\n CartItemAvailable,\n CartItemDiscountPercentage,\n CartItemGift,\n CartItemImage,\n CartItemLineTotal,\n CartItemListPrice,\n CartItemName,\n CartItemPrice,\n CartItemProductLink,\n CartItemQuantity,\n CartItemQuantityValue,\n CartItemRemove,\n CartItemRoot,\n CartItemSku,\n CartItemUnavailable,\n CartItemVariant,\n} from '../cart-item/cart-item.js';\nimport {\n CartAlertIcon,\n CartAlertRoot,\n CartAlertText,\n CartAppliedCoupons,\n CartCheckoutGuard,\n CartContinueShopping,\n CartCount,\n CartCouponError,\n CartCouponForm,\n CartCouponRemove,\n CartDisclaimer,\n CartEmpty,\n CartEmptyMessage,\n CartError,\n CartFilled,\n CartGoCheckout,\n CartItemSkeleton,\n CartList,\n CartLoading,\n CartOpenOnAdd,\n CartRedirectOnAdd,\n CartRemoveUnavailable,\n CartRoot,\n CartTotal,\n CartUnavailableCount,\n} from './cart.js';\n\n// The `Cart.*` namespace combines the aggregate components (matter/cart) with the line-item\n// components (matter/cart-item). It lives in its own module so neither matter file imports the\n// other, keeping the read root and its per-item line template decoupled (ADR-0012 Option B).\nexport const Cart = {\n Root: CartRoot,\n List: CartList,\n ItemRoot: CartItemRoot,\n ItemImage: CartItemImage,\n ItemProductLink: CartItemProductLink,\n ItemName: CartItemName,\n ItemVariant: CartItemVariant,\n ItemSku: CartItemSku,\n ItemPrice: CartItemPrice,\n ItemListPrice: CartItemListPrice,\n ItemDiscountPercentage: CartItemDiscountPercentage,\n ItemLineTotal: CartItemLineTotal,\n ItemQuantity: CartItemQuantity,\n ItemQuantityValue: CartItemQuantityValue,\n ItemRemove: CartItemRemove,\n ItemAvailable: CartItemAvailable,\n ItemUnavailable: CartItemUnavailable,\n ItemGift: CartItemGift,\n ItemSkeleton: CartItemSkeleton,\n Total: CartTotal,\n Count: CartCount,\n Error: CartError,\n GoCheckout: CartGoCheckout,\n CheckoutGuard: CartCheckoutGuard,\n UnavailableCount: CartUnavailableCount,\n RemoveUnavailable: CartRemoveUnavailable,\n OpenOnAdd: CartOpenOnAdd,\n RedirectOnAdd: CartRedirectOnAdd,\n Loading: CartLoading,\n Empty: CartEmpty,\n EmptyMessage: CartEmptyMessage,\n ContinueShopping: CartContinueShopping,\n Filled: CartFilled,\n Disclaimer: CartDisclaimer,\n CouponForm: CartCouponForm,\n AppliedCoupons: CartAppliedCoupons,\n CouponRemove: CartCouponRemove,\n CouponError: CartCouponError,\n AlertRoot: CartAlertRoot,\n AlertIcon: CartAlertIcon,\n AlertText: CartAlertText,\n};\n"],"mappings":";;;AAiDA,MAAa,OAAO;CAClB,MAAM;CACN,MAAM;CACN,UAAU;CACV,WAAW;CACX,iBAAiB;CACjB,UAAU;CACV,aAAa;CACb,SAAS;CACT,WAAW;CACX,eAAe;CACf,wBAAwB;CACxB,eAAe;CACf,cAAc;CACd,mBAAmB;CACnB,YAAY;CACZ,eAAe;CACf,iBAAiB;CACjB,UAAU;CACV,cAAc;CACd,OAAO;CACP,OAAO;CACP,OAAO;CACP,YAAY;CACZ,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,WAAW;CACX,eAAe;CACf,SAAS;CACT,OAAO;CACP,cAAc;CACd,kBAAkB;CAClB,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,aAAa;CACb,WAAW;CACX,WAAW;CACX,WAAW;AACb"}
|