@enadhq/enad-react-sdk 0.0.6 → 1.0.2
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/README.md +288 -0
- package/dist/client/cart/adapters/brink.d.ts +29 -0
- package/dist/client/cart/adapters/brink.d.ts.map +1 -0
- package/dist/client/cart/adapters/brink.mjs +154 -0
- package/dist/client/cart/adapters/brink.mjs.map +1 -0
- package/dist/client/cart/adapters/index.d.ts +3 -0
- package/dist/client/cart/adapters/index.d.ts.map +1 -0
- package/dist/client/cart/adapters/index.mjs +5 -0
- package/dist/client/cart/adapters/index.mjs.map +1 -0
- package/dist/client/cart/adapters/mock.d.ts +20 -0
- package/dist/client/cart/adapters/mock.d.ts.map +1 -0
- package/dist/client/cart/adapters/mock.mjs +76 -0
- package/dist/client/cart/adapters/mock.mjs.map +1 -0
- package/dist/client/cart/components/{cart-drawer.d.mts → cart-drawer.d.ts} +4 -6
- package/dist/client/cart/components/cart-drawer.d.ts.map +1 -0
- package/dist/client/cart/components/cart-drawer.mjs +269 -138
- package/dist/client/cart/components/cart-drawer.mjs.map +1 -1
- package/dist/client/cart/components/cart-trigger.d.ts +10 -0
- package/dist/client/cart/components/cart-trigger.d.ts.map +1 -0
- package/dist/client/cart/components/cart-trigger.mjs +26 -10
- package/dist/client/cart/components/cart-trigger.mjs.map +1 -1
- package/dist/client/cart/components/promo-code-input.d.ts +16 -0
- package/dist/client/cart/components/promo-code-input.d.ts.map +1 -0
- package/dist/client/cart/components/promo-code-input.mjs +92 -0
- package/dist/client/cart/components/promo-code-input.mjs.map +1 -0
- package/dist/client/cart/constants/session.d.ts +2 -0
- package/dist/client/cart/constants/session.d.ts.map +1 -0
- package/dist/client/cart/contexts/cart.d.ts +36 -0
- package/dist/client/cart/contexts/cart.d.ts.map +1 -0
- package/dist/client/cart/contexts/cart.mjs +14 -16
- package/dist/client/cart/contexts/cart.mjs.map +1 -1
- package/dist/client/cart/hooks/useCart.d.ts +26 -0
- package/dist/client/cart/hooks/useCart.d.ts.map +1 -0
- package/dist/client/cart/hooks/useCart.mjs +5 -6
- package/dist/client/cart/hooks/useCart.mjs.map +1 -1
- package/dist/client/cart/hooks/useCartActions.d.ts +25 -0
- package/dist/client/cart/hooks/useCartActions.d.ts.map +1 -0
- package/dist/client/cart/hooks/useCartActions.mjs +7 -16
- package/dist/client/cart/hooks/useCartActions.mjs.map +1 -1
- package/dist/client/cart/index.d.ts +12 -0
- package/dist/client/cart/index.d.ts.map +1 -0
- package/dist/client/cart/index.mjs +16 -0
- package/dist/client/cart/index.mjs.map +1 -0
- package/dist/client/cart/queries/addToCartQueryFn.d.ts +7 -0
- package/dist/client/cart/queries/addToCartQueryFn.d.ts.map +1 -0
- package/dist/client/cart/queries/addToCartQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/getCartQueryFn.d.ts +4 -0
- package/dist/client/cart/queries/getCartQueryFn.d.ts.map +1 -0
- package/dist/client/cart/queries/getCartQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/removeCartItemQueryFn.d.ts +6 -0
- package/dist/client/cart/queries/removeCartItemQueryFn.d.ts.map +1 -0
- package/dist/client/cart/queries/removeCartItemQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/updateCartItemQueryFn.d.ts +7 -0
- package/dist/client/cart/queries/updateCartItemQueryFn.d.ts.map +1 -0
- package/dist/client/cart/queries/updateCartItemQueryFn.mjs.map +1 -1
- package/dist/client/cart/types/adapter.d.ts +110 -0
- package/dist/client/cart/types/adapter.d.ts.map +1 -0
- package/dist/client/cart/types/adapter.mjs +12 -0
- package/dist/client/cart/types/adapter.mjs.map +1 -0
- package/dist/client/cart/types/{cart.d.mts → cart.d.ts} +21 -5
- package/dist/client/cart/types/cart.d.ts.map +1 -0
- package/dist/client/cart/utils/session.d.ts +5 -0
- package/dist/client/cart/utils/session.d.ts.map +1 -0
- package/dist/client/cart/utils/session.mjs +1 -1
- package/dist/client/cart/utils/session.mjs.map +1 -1
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.ts +7 -0
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.ts.map +1 -0
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs +3 -2
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs.map +1 -1
- package/dist/client/cms/storyblok/preview/{storyblok-preview-syncer.d.mts → storyblok-preview-syncer.d.ts} +4 -6
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.d.ts.map +1 -0
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs.map +1 -1
- package/dist/client/global/auth/withAuth.d.ts +5 -0
- package/dist/client/global/auth/withAuth.d.ts.map +1 -0
- package/dist/client/global/components/error-boundary.d.ts +18 -0
- package/dist/client/global/components/error-boundary.d.ts.map +1 -0
- package/dist/client/global/components/error-boundary.mjs +41 -0
- package/dist/client/global/components/error-boundary.mjs.map +1 -0
- package/dist/client/global/config/{index.d.mts → index.d.ts} +3 -3
- package/dist/client/global/config/index.d.ts.map +1 -0
- package/dist/client/global/constants/{tags.d.mts → tags.d.ts} +2 -3
- package/dist/client/global/constants/tags.d.ts.map +1 -0
- package/dist/client/global/index.d.ts +6 -0
- package/dist/client/global/index.d.ts.map +1 -0
- package/dist/client/global/index.mjs +7 -0
- package/dist/client/global/index.mjs.map +1 -0
- package/dist/client/global/providers/enad-provider.d.ts +48 -0
- package/dist/client/global/providers/enad-provider.d.ts.map +1 -0
- package/dist/client/global/providers/enad-provider.mjs +32 -3
- package/dist/client/global/providers/enad-provider.mjs.map +1 -1
- package/dist/client/icons/adapters/hugeicons.d.ts +9 -0
- package/dist/client/icons/adapters/hugeicons.d.ts.map +1 -0
- package/dist/client/icons/adapters/hugeicons.mjs +117 -0
- package/dist/client/icons/adapters/hugeicons.mjs.map +1 -0
- package/dist/client/icons/adapters/lucide.d.ts +8 -0
- package/dist/client/icons/adapters/lucide.d.ts.map +1 -0
- package/dist/client/icons/adapters/lucide.mjs +108 -0
- package/dist/client/icons/adapters/lucide.mjs.map +1 -0
- package/dist/client/icons/adapters/phosphor.d.ts +11 -0
- package/dist/client/icons/adapters/phosphor.d.ts.map +1 -0
- package/dist/client/icons/adapters/phosphor.mjs +108 -0
- package/dist/client/icons/adapters/phosphor.mjs.map +1 -0
- package/dist/client/icons/icon-context.d.ts +13 -0
- package/dist/client/icons/icon-context.d.ts.map +1 -0
- package/dist/client/icons/icon-context.mjs +27 -0
- package/dist/client/icons/icon-context.mjs.map +1 -0
- package/dist/client/icons/index.d.ts +9 -0
- package/dist/client/icons/index.d.ts.map +1 -0
- package/dist/client/icons/index.mjs +16 -0
- package/dist/client/icons/index.mjs.map +1 -0
- package/dist/client/icons/types.d.ts +60 -0
- package/dist/client/icons/types.d.ts.map +1 -0
- package/dist/client/icons/types.mjs +1 -0
- package/dist/client/icons/types.mjs.map +1 -0
- package/dist/client/motion/config.d.ts +42 -0
- package/dist/client/motion/config.d.ts.map +1 -0
- package/dist/client/motion/config.mjs +44 -0
- package/dist/client/motion/config.mjs.map +1 -0
- package/dist/client/motion/hover.d.ts +36 -0
- package/dist/client/motion/hover.d.ts.map +1 -0
- package/dist/client/motion/hover.mjs +19 -0
- package/dist/client/motion/hover.mjs.map +1 -0
- package/dist/client/motion/index.d.ts +4 -0
- package/dist/client/motion/index.d.ts.map +1 -0
- package/dist/client/motion/index.mjs +13 -0
- package/dist/client/motion/index.mjs.map +1 -0
- package/dist/client/motion/stagger.d.ts +36 -0
- package/dist/client/motion/stagger.d.ts.map +1 -0
- package/dist/client/motion/stagger.mjs +17 -0
- package/dist/client/motion/stagger.mjs.map +1 -0
- package/dist/client/search/actions/searchAction.d.ts +2 -0
- package/dist/client/search/actions/searchAction.d.ts.map +1 -0
- package/dist/client/search/actions/searchAction.mjs.map +1 -1
- package/dist/client/search/components/search-bar.d.ts +8 -0
- package/dist/client/search/components/search-bar.d.ts.map +1 -0
- package/dist/client/search/components/search-bar.mjs +33 -0
- package/dist/client/search/components/search-bar.mjs.map +1 -1
- package/dist/client/search/hooks/useSearch.d.ts +14 -0
- package/dist/client/search/hooks/useSearch.d.ts.map +1 -0
- package/dist/client/search/hooks/useSearch.mjs +1 -1
- package/dist/client/search/hooks/useSearch.mjs.map +1 -1
- package/dist/client/search/index.d.ts +2 -0
- package/dist/client/search/index.d.ts.map +1 -0
- package/dist/client/search/index.mjs +5 -0
- package/dist/client/search/index.mjs.map +1 -0
- package/dist/client/storefront/blocks/accordion-block.d.ts +4 -0
- package/dist/client/storefront/blocks/accordion-block.d.ts.map +1 -0
- package/dist/client/storefront/blocks/accordion-block.mjs +43 -0
- package/dist/client/storefront/blocks/accordion-block.mjs.map +1 -0
- package/dist/client/storefront/blocks/card-image-with-caption.d.ts +4 -0
- package/dist/client/storefront/blocks/card-image-with-caption.d.ts.map +1 -0
- package/dist/client/storefront/blocks/card-image-with-caption.mjs +27 -0
- package/dist/client/storefront/blocks/card-image-with-caption.mjs.map +1 -0
- package/dist/client/storefront/blocks/card-video.d.ts +4 -0
- package/dist/client/storefront/blocks/card-video.d.ts.map +1 -0
- package/dist/client/storefront/blocks/card-video.mjs +43 -0
- package/dist/client/storefront/blocks/card-video.mjs.map +1 -0
- package/dist/client/storefront/blocks/content-with-gallery.d.ts +4 -0
- package/dist/client/storefront/blocks/content-with-gallery.d.ts.map +1 -0
- package/dist/client/storefront/blocks/content-with-gallery.mjs +48 -0
- package/dist/client/storefront/blocks/content-with-gallery.mjs.map +1 -0
- package/dist/client/storefront/blocks/content-with-image-product-data.d.ts +4 -0
- package/dist/client/storefront/blocks/content-with-image-product-data.d.ts.map +1 -0
- package/dist/client/storefront/blocks/content-with-image-product-data.mjs +45 -0
- package/dist/client/storefront/blocks/content-with-image-product-data.mjs.map +1 -0
- package/dist/client/storefront/blocks/gallery-with-caption.d.ts +4 -0
- package/dist/client/storefront/blocks/gallery-with-caption.d.ts.map +1 -0
- package/dist/client/storefront/blocks/gallery-with-caption.mjs +36 -0
- package/dist/client/storefront/blocks/gallery-with-caption.mjs.map +1 -0
- package/dist/client/storefront/blocks/gallery-with-link-blocks.d.ts +4 -0
- package/dist/client/storefront/blocks/gallery-with-link-blocks.d.ts.map +1 -0
- package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs +24 -0
- package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs.map +1 -0
- package/dist/client/storefront/blocks/gallery.d.ts +4 -0
- package/dist/client/storefront/blocks/gallery.d.ts.map +1 -0
- package/dist/client/storefront/blocks/gallery.mjs +47 -0
- package/dist/client/storefront/blocks/gallery.mjs.map +1 -0
- package/dist/client/storefront/blocks/hero.d.ts +4 -0
- package/dist/client/storefront/blocks/hero.d.ts.map +1 -0
- package/dist/client/storefront/blocks/hero.mjs +357 -0
- package/dist/client/storefront/blocks/hero.mjs.map +1 -0
- package/dist/client/storefront/blocks/image-block.d.ts +4 -0
- package/dist/client/storefront/blocks/image-block.d.ts.map +1 -0
- package/dist/client/storefront/blocks/image-block.mjs +29 -0
- package/dist/client/storefront/blocks/image-block.mjs.map +1 -0
- package/dist/client/storefront/blocks/index.d.ts +20 -0
- package/dist/client/storefront/blocks/index.d.ts.map +1 -0
- package/dist/client/storefront/blocks/index.mjs +41 -0
- package/dist/client/storefront/blocks/index.mjs.map +1 -0
- package/dist/client/storefront/blocks/link-block-small.d.ts +4 -0
- package/dist/client/storefront/blocks/link-block-small.d.ts.map +1 -0
- package/dist/client/storefront/blocks/link-block-small.mjs +35 -0
- package/dist/client/storefront/blocks/link-block-small.mjs.map +1 -0
- package/dist/client/storefront/blocks/link-block.d.ts +4 -0
- package/dist/client/storefront/blocks/link-block.d.ts.map +1 -0
- package/dist/client/storefront/blocks/link-block.mjs +150 -0
- package/dist/client/storefront/blocks/link-block.mjs.map +1 -0
- package/dist/client/storefront/blocks/product-card.d.ts +4 -0
- package/dist/client/storefront/blocks/product-card.d.ts.map +1 -0
- package/dist/client/storefront/blocks/product-card.mjs +228 -0
- package/dist/client/storefront/blocks/product-card.mjs.map +1 -0
- package/dist/client/storefront/blocks/product-image.d.ts +4 -0
- package/dist/client/storefront/blocks/product-image.d.ts.map +1 -0
- package/dist/client/storefront/blocks/product-image.mjs +109 -0
- package/dist/client/storefront/blocks/product-image.mjs.map +1 -0
- package/dist/client/storefront/blocks/spacer.d.ts +4 -0
- package/dist/client/storefront/blocks/spacer.d.ts.map +1 -0
- package/dist/client/storefront/blocks/spacer.mjs +14 -0
- package/dist/client/storefront/blocks/spacer.mjs.map +1 -0
- package/dist/client/storefront/blocks/text-content-with-image.d.ts +4 -0
- package/dist/client/storefront/blocks/text-content-with-image.d.ts.map +1 -0
- package/dist/client/storefront/blocks/text-content-with-image.mjs +225 -0
- package/dist/client/storefront/blocks/text-content-with-image.mjs.map +1 -0
- package/dist/client/storefront/blocks/text-content.d.ts +4 -0
- package/dist/client/storefront/blocks/text-content.d.ts.map +1 -0
- package/dist/client/storefront/blocks/text-content.mjs +150 -0
- package/dist/client/storefront/blocks/text-content.mjs.map +1 -0
- package/dist/client/storefront/blocks/truncated-text.d.ts +4 -0
- package/dist/client/storefront/blocks/truncated-text.d.ts.map +1 -0
- package/dist/client/storefront/blocks/truncated-text.mjs +36 -0
- package/dist/client/storefront/blocks/truncated-text.mjs.map +1 -0
- package/dist/client/storefront/blocks/variable-text-content.d.ts +4 -0
- package/dist/client/storefront/blocks/variable-text-content.d.ts.map +1 -0
- package/dist/client/storefront/blocks/variable-text-content.mjs +15 -0
- package/dist/client/storefront/blocks/variable-text-content.mjs.map +1 -0
- package/dist/client/storefront/carousel/index.d.ts +2 -0
- package/dist/client/storefront/carousel/index.d.ts.map +1 -0
- package/dist/client/storefront/carousel/index.mjs +5 -0
- package/dist/client/storefront/carousel/index.mjs.map +1 -0
- package/dist/client/storefront/carousel/swipeable-carousel.d.ts +14 -0
- package/dist/client/storefront/carousel/swipeable-carousel.d.ts.map +1 -0
- package/dist/client/storefront/carousel/swipeable-carousel.mjs +80 -0
- package/dist/client/storefront/carousel/swipeable-carousel.mjs.map +1 -0
- package/dist/client/storefront/checkout/address-form.d.ts +31 -0
- package/dist/client/storefront/checkout/address-form.d.ts.map +1 -0
- package/dist/client/storefront/checkout/address-form.mjs +124 -0
- package/dist/client/storefront/checkout/address-form.mjs.map +1 -0
- package/dist/client/storefront/checkout/cart-summary.d.ts +40 -0
- package/dist/client/storefront/checkout/cart-summary.d.ts.map +1 -0
- package/dist/client/storefront/checkout/cart-summary.mjs +150 -0
- package/dist/client/storefront/checkout/cart-summary.mjs.map +1 -0
- package/dist/client/storefront/checkout/checkout-stepper.d.ts +13 -0
- package/dist/client/storefront/checkout/checkout-stepper.d.ts.map +1 -0
- package/dist/client/storefront/checkout/checkout-stepper.mjs +58 -0
- package/dist/client/storefront/checkout/checkout-stepper.mjs.map +1 -0
- package/dist/client/storefront/checkout/index.d.ts +15 -0
- package/dist/client/storefront/checkout/index.d.ts.map +1 -0
- package/dist/client/storefront/checkout/index.mjs +17 -0
- package/dist/client/storefront/checkout/index.mjs.map +1 -0
- package/dist/client/storefront/checkout/order-confirmation.d.ts +10 -0
- package/dist/client/storefront/checkout/order-confirmation.d.ts.map +1 -0
- package/dist/client/storefront/checkout/order-confirmation.mjs +27 -0
- package/dist/client/storefront/checkout/order-confirmation.mjs.map +1 -0
- package/dist/client/storefront/checkout/order-summary.d.ts +29 -0
- package/dist/client/storefront/checkout/order-summary.d.ts.map +1 -0
- package/dist/client/storefront/checkout/order-summary.mjs +106 -0
- package/dist/client/storefront/checkout/order-summary.mjs.map +1 -0
- package/dist/client/storefront/checkout/payment-method-selector.d.ts +18 -0
- package/dist/client/storefront/checkout/payment-method-selector.d.ts.map +1 -0
- package/dist/client/storefront/checkout/payment-method-selector.mjs +61 -0
- package/dist/client/storefront/checkout/payment-method-selector.mjs.map +1 -0
- package/dist/client/storefront/checkout/shipping-method-selector.d.ts +23 -0
- package/dist/client/storefront/checkout/shipping-method-selector.d.ts.map +1 -0
- package/dist/client/storefront/checkout/shipping-method-selector.mjs +77 -0
- package/dist/client/storefront/checkout/shipping-method-selector.mjs.map +1 -0
- package/dist/client/storefront/components/badge.d.ts +8 -0
- package/dist/client/storefront/components/badge.d.ts.map +1 -0
- package/dist/client/storefront/components/badge.mjs +28 -0
- package/dist/client/storefront/components/badge.mjs.map +1 -0
- package/dist/client/storefront/components/country-redirect.d.ts +30 -0
- package/dist/client/storefront/components/country-redirect.d.ts.map +1 -0
- package/dist/client/storefront/components/country-redirect.mjs +121 -0
- package/dist/client/storefront/components/country-redirect.mjs.map +1 -0
- package/dist/client/storefront/components/empty-state.d.ts +38 -0
- package/dist/client/storefront/components/empty-state.d.ts.map +1 -0
- package/dist/client/storefront/components/empty-state.mjs +55 -0
- package/dist/client/storefront/components/empty-state.mjs.map +1 -0
- package/dist/client/storefront/components/image-lightbox.d.ts +13 -0
- package/dist/client/storefront/components/image-lightbox.d.ts.map +1 -0
- package/dist/client/storefront/components/image-lightbox.mjs +275 -0
- package/dist/client/storefront/components/image-lightbox.mjs.map +1 -0
- package/dist/client/storefront/components/infinite-scroll.d.ts +37 -0
- package/dist/client/storefront/components/infinite-scroll.d.ts.map +1 -0
- package/dist/client/storefront/components/infinite-scroll.mjs +83 -0
- package/dist/client/storefront/components/infinite-scroll.mjs.map +1 -0
- package/dist/client/storefront/components/language-selector.d.ts +5 -0
- package/dist/client/storefront/components/language-selector.d.ts.map +1 -0
- package/dist/client/storefront/components/language-selector.mjs +58 -0
- package/dist/client/storefront/components/language-selector.mjs.map +1 -0
- package/dist/client/storefront/components/newsletter-signup.d.ts +14 -0
- package/dist/client/storefront/components/newsletter-signup.d.ts.map +1 -0
- package/dist/client/storefront/components/newsletter-signup.mjs +81 -0
- package/dist/client/storefront/components/newsletter-signup.mjs.map +1 -0
- package/dist/client/storefront/components/price.d.ts +14 -0
- package/dist/client/storefront/components/price.d.ts.map +1 -0
- package/dist/client/storefront/components/price.mjs +46 -0
- package/dist/client/storefront/components/price.mjs.map +1 -0
- package/dist/client/storefront/components/product-recommendations.d.ts +18 -0
- package/dist/client/storefront/components/product-recommendations.d.ts.map +1 -0
- package/dist/client/storefront/components/product-recommendations.mjs +108 -0
- package/dist/client/storefront/components/product-recommendations.mjs.map +1 -0
- package/dist/client/storefront/components/product-tabs.d.ts +12 -0
- package/dist/client/storefront/components/product-tabs.d.ts.map +1 -0
- package/dist/client/storefront/components/product-tabs.mjs +64 -0
- package/dist/client/storefront/components/product-tabs.mjs.map +1 -0
- package/dist/client/storefront/components/quick-view.d.ts +25 -0
- package/dist/client/storefront/components/quick-view.d.ts.map +1 -0
- package/dist/client/storefront/components/quick-view.mjs +149 -0
- package/dist/client/storefront/components/quick-view.mjs.map +1 -0
- package/dist/client/storefront/components/review-summary.d.ts +17 -0
- package/dist/client/storefront/components/review-summary.d.ts.map +1 -0
- package/dist/client/storefront/components/review-summary.mjs +66 -0
- package/dist/client/storefront/components/review-summary.mjs.map +1 -0
- package/dist/client/storefront/components/search-autocomplete.d.ts +25 -0
- package/dist/client/storefront/components/search-autocomplete.d.ts.map +1 -0
- package/dist/client/storefront/components/search-autocomplete.mjs +183 -0
- package/dist/client/storefront/components/search-autocomplete.mjs.map +1 -0
- package/dist/client/storefront/components/section-nav.d.ts +20 -0
- package/dist/client/storefront/components/section-nav.d.ts.map +1 -0
- package/dist/client/storefront/components/section-nav.mjs +175 -0
- package/dist/client/storefront/components/section-nav.mjs.map +1 -0
- package/dist/client/storefront/components/share-button.d.ts +19 -0
- package/dist/client/storefront/components/share-button.d.ts.map +1 -0
- package/dist/client/storefront/components/share-button.mjs +95 -0
- package/dist/client/storefront/components/share-button.mjs.map +1 -0
- package/dist/client/storefront/components/skeleton.d.ts +12 -0
- package/dist/client/storefront/components/skeleton.d.ts.map +1 -0
- package/dist/client/storefront/components/skeleton.mjs +70 -0
- package/dist/client/storefront/components/skeleton.mjs.map +1 -0
- package/dist/client/storefront/components/star-rating.d.ts +13 -0
- package/dist/client/storefront/components/star-rating.d.ts.map +1 -0
- package/dist/client/storefront/components/star-rating.mjs +240 -0
- package/dist/client/storefront/components/star-rating.mjs.map +1 -0
- package/dist/client/storefront/components/testimonial.d.ts +20 -0
- package/dist/client/storefront/components/testimonial.d.ts.map +1 -0
- package/dist/client/storefront/components/testimonial.mjs +53 -0
- package/dist/client/storefront/components/testimonial.mjs.map +1 -0
- package/dist/client/storefront/components/trust-badges.d.ts +14 -0
- package/dist/client/storefront/components/trust-badges.d.ts.map +1 -0
- package/dist/client/storefront/components/trust-badges.mjs +25 -0
- package/dist/client/storefront/components/trust-badges.mjs.map +1 -0
- package/dist/client/storefront/components/variant-selector.d.ts +21 -0
- package/dist/client/storefront/components/variant-selector.d.ts.map +1 -0
- package/dist/client/storefront/components/variant-selector.mjs +41 -0
- package/dist/client/storefront/components/variant-selector.mjs.map +1 -0
- package/dist/client/storefront/components/wishlist-toggle.d.ts +12 -0
- package/dist/client/storefront/components/wishlist-toggle.d.ts.map +1 -0
- package/dist/client/storefront/components/wishlist-toggle.mjs +58 -0
- package/dist/client/storefront/components/wishlist-toggle.mjs.map +1 -0
- package/dist/client/storefront/filters/filter-chip.d.ts +10 -0
- package/dist/client/storefront/filters/filter-chip.d.ts.map +1 -0
- package/dist/client/storefront/filters/filter-chip.mjs +30 -0
- package/dist/client/storefront/filters/filter-chip.mjs.map +1 -0
- package/dist/client/storefront/filters/filter-group.d.ts +22 -0
- package/dist/client/storefront/filters/filter-group.d.ts.map +1 -0
- package/dist/client/storefront/filters/filter-group.mjs +102 -0
- package/dist/client/storefront/filters/filter-group.mjs.map +1 -0
- package/dist/client/storefront/filters/filter-panel.d.ts +25 -0
- package/dist/client/storefront/filters/filter-panel.d.ts.map +1 -0
- package/dist/client/storefront/filters/filter-panel.mjs +110 -0
- package/dist/client/storefront/filters/filter-panel.mjs.map +1 -0
- package/dist/client/storefront/filters/index.d.ts +6 -0
- package/dist/client/storefront/filters/index.d.ts.map +1 -0
- package/dist/client/storefront/filters/index.mjs +13 -0
- package/dist/client/storefront/filters/index.mjs.map +1 -0
- package/dist/client/storefront/filters/sort-select.d.ts +12 -0
- package/dist/client/storefront/filters/sort-select.d.ts.map +1 -0
- package/dist/client/storefront/filters/sort-select.mjs +34 -0
- package/dist/client/storefront/filters/sort-select.mjs.map +1 -0
- package/dist/client/storefront/filters/toggle-list-view.d.ts +8 -0
- package/dist/client/storefront/filters/toggle-list-view.d.ts.map +1 -0
- package/dist/client/storefront/filters/toggle-list-view.mjs +30 -0
- package/dist/client/storefront/filters/toggle-list-view.mjs.map +1 -0
- package/dist/client/storefront/hooks/use-section-observer.d.ts +12 -0
- package/dist/client/storefront/hooks/use-section-observer.d.ts.map +1 -0
- package/dist/client/storefront/hooks/use-section-observer.mjs +46 -0
- package/dist/client/storefront/hooks/use-section-observer.mjs.map +1 -0
- package/dist/client/storefront/index.d.ts +24 -0
- package/dist/client/storefront/index.d.ts.map +1 -0
- package/dist/client/storefront/index.mjs +26 -0
- package/dist/client/storefront/index.mjs.map +1 -0
- package/dist/client/storefront/layout/footer.d.ts +4 -0
- package/dist/client/storefront/layout/footer.d.ts.map +1 -0
- package/dist/client/storefront/layout/footer.mjs +56 -0
- package/dist/client/storefront/layout/footer.mjs.map +1 -0
- package/dist/client/storefront/layout/header.d.ts +4 -0
- package/dist/client/storefront/layout/header.d.ts.map +1 -0
- package/dist/client/storefront/layout/header.mjs +367 -0
- package/dist/client/storefront/layout/header.mjs.map +1 -0
- package/dist/client/storefront/layout/index.d.ts +5 -0
- package/dist/client/storefront/layout/index.d.ts.map +1 -0
- package/dist/client/storefront/layout/index.mjs +11 -0
- package/dist/client/storefront/layout/index.mjs.map +1 -0
- package/dist/client/storefront/layout/mobile-menu-drawer.d.ts +4 -0
- package/dist/client/storefront/layout/mobile-menu-drawer.d.ts.map +1 -0
- package/dist/client/storefront/layout/mobile-menu-drawer.mjs +93 -0
- package/dist/client/storefront/layout/mobile-menu-drawer.mjs.map +1 -0
- package/dist/client/storefront/layout/promotion-bar.d.ts +4 -0
- package/dist/client/storefront/layout/promotion-bar.d.ts.map +1 -0
- package/dist/client/storefront/layout/promotion-bar.mjs +79 -0
- package/dist/client/storefront/layout/promotion-bar.mjs.map +1 -0
- package/dist/client/storefront/primitives/breadcrumbs.d.ts +12 -0
- package/dist/client/storefront/primitives/breadcrumbs.d.ts.map +1 -0
- package/dist/client/storefront/primitives/breadcrumbs.mjs +37 -0
- package/dist/client/storefront/primitives/breadcrumbs.mjs.map +1 -0
- package/dist/client/storefront/primitives/button.d.ts +12 -0
- package/dist/client/storefront/primitives/button.d.ts.map +1 -0
- package/dist/client/storefront/primitives/button.mjs +51 -0
- package/dist/client/storefront/primitives/button.mjs.map +1 -0
- package/dist/client/storefront/primitives/checkbox.d.ts +10 -0
- package/dist/client/storefront/primitives/checkbox.d.ts.map +1 -0
- package/dist/client/storefront/primitives/checkbox.mjs +23 -0
- package/dist/client/storefront/primitives/checkbox.mjs.map +1 -0
- package/dist/client/storefront/primitives/download-item.d.ts +9 -0
- package/dist/client/storefront/primitives/download-item.d.ts.map +1 -0
- package/dist/client/storefront/primitives/download-item.mjs +28 -0
- package/dist/client/storefront/primitives/download-item.mjs.map +1 -0
- package/dist/client/storefront/primitives/index.d.ts +10 -0
- package/dist/client/storefront/primitives/index.d.ts.map +1 -0
- package/dist/client/storefront/primitives/index.mjs +21 -0
- package/dist/client/storefront/primitives/index.mjs.map +1 -0
- package/dist/client/storefront/primitives/input.d.ts +18 -0
- package/dist/client/storefront/primitives/input.d.ts.map +1 -0
- package/dist/client/storefront/primitives/input.mjs +118 -0
- package/dist/client/storefront/primitives/input.mjs.map +1 -0
- package/dist/client/storefront/primitives/pagination.d.ts +9 -0
- package/dist/client/storefront/primitives/pagination.d.ts.map +1 -0
- package/dist/client/storefront/primitives/pagination.mjs +86 -0
- package/dist/client/storefront/primitives/pagination.mjs.map +1 -0
- package/dist/client/storefront/primitives/quick-links.d.ts +11 -0
- package/dist/client/storefront/primitives/quick-links.d.ts.map +1 -0
- package/dist/client/storefront/primitives/quick-links.mjs +17 -0
- package/dist/client/storefront/primitives/quick-links.mjs.map +1 -0
- package/dist/client/storefront/primitives/select.d.ts +16 -0
- package/dist/client/storefront/primitives/select.d.ts.map +1 -0
- package/dist/client/storefront/primitives/select.mjs +35 -0
- package/dist/client/storefront/primitives/select.mjs.map +1 -0
- package/dist/client/storefront/primitives/text-link.d.ts +7 -0
- package/dist/client/storefront/primitives/text-link.d.ts.map +1 -0
- package/dist/client/storefront/primitives/text-link.mjs +10 -0
- package/dist/client/storefront/primitives/text-link.mjs.map +1 -0
- package/dist/client/storefront/product/color-swatch.d.ts +10 -0
- package/dist/client/storefront/product/color-swatch.d.ts.map +1 -0
- package/dist/client/storefront/product/color-swatch.mjs +32 -0
- package/dist/client/storefront/product/color-swatch.mjs.map +1 -0
- package/dist/client/storefront/product/index.d.ts +5 -0
- package/dist/client/storefront/product/index.d.ts.map +1 -0
- package/dist/client/storefront/product/index.mjs +11 -0
- package/dist/client/storefront/product/index.mjs.map +1 -0
- package/dist/client/storefront/product/material-selector.d.ts +15 -0
- package/dist/client/storefront/product/material-selector.d.ts.map +1 -0
- package/dist/client/storefront/product/material-selector.mjs +35 -0
- package/dist/client/storefront/product/material-selector.mjs.map +1 -0
- package/dist/client/storefront/product/product-usp.d.ts +7 -0
- package/dist/client/storefront/product/product-usp.d.ts.map +1 -0
- package/dist/client/storefront/product/product-usp.mjs +14 -0
- package/dist/client/storefront/product/product-usp.mjs.map +1 -0
- package/dist/client/storefront/product/quantity-picker.d.ts +10 -0
- package/dist/client/storefront/product/quantity-picker.d.ts.map +1 -0
- package/dist/client/storefront/product/quantity-picker.mjs +56 -0
- package/dist/client/storefront/product/quantity-picker.mjs.map +1 -0
- package/dist/client/storefront/types.d.ts +284 -0
- package/dist/client/storefront/types.d.ts.map +1 -0
- package/dist/client/storefront/types.mjs +20 -0
- package/dist/client/storefront/types.mjs.map +1 -0
- package/dist/client/theme/apply.d.ts +17 -0
- package/dist/client/theme/apply.d.ts.map +1 -0
- package/dist/client/theme/apply.mjs +133 -0
- package/dist/client/theme/apply.mjs.map +1 -0
- package/dist/client/theme/cli.d.ts +2 -0
- package/dist/client/theme/cli.d.ts.map +1 -0
- package/dist/client/theme/cli.mjs +453 -0
- package/dist/client/theme/cli.mjs.map +1 -0
- package/dist/client/theme/codec.d.ts +28 -0
- package/dist/client/theme/codec.d.ts.map +1 -0
- package/dist/client/theme/codec.mjs +88 -0
- package/dist/client/theme/codec.mjs.map +1 -0
- package/dist/client/theme/defaults.d.ts +64 -0
- package/dist/client/theme/defaults.d.ts.map +1 -0
- package/dist/client/theme/defaults.mjs +158 -0
- package/dist/client/theme/defaults.mjs.map +1 -0
- package/dist/client/theme/index.d.ts +8 -0
- package/dist/client/theme/index.d.ts.map +1 -0
- package/dist/client/theme/index.mjs +20 -0
- package/dist/client/theme/index.mjs.map +1 -0
- package/dist/client/theme/scan.d.ts +16 -0
- package/dist/client/theme/scan.d.ts.map +1 -0
- package/dist/client/theme/scan.mjs +25 -0
- package/dist/client/theme/scan.mjs.map +1 -0
- package/dist/client/ui/accordion.d.ts +8 -0
- package/dist/client/ui/accordion.d.ts.map +1 -0
- package/dist/client/ui/accordion.mjs +66 -0
- package/dist/client/ui/accordion.mjs.map +1 -0
- package/dist/client/ui/breadcrumb.d.ts +12 -0
- package/dist/client/ui/breadcrumb.d.ts.map +1 -0
- package/dist/client/ui/breadcrumb.mjs +104 -0
- package/dist/client/ui/breadcrumb.mjs.map +1 -0
- package/dist/client/ui/button.d.ts +11 -0
- package/dist/client/ui/button.d.ts.map +1 -0
- package/dist/client/ui/button.mjs +57 -0
- package/dist/client/ui/button.mjs.map +1 -0
- package/dist/client/ui/card.d.ts +10 -0
- package/dist/client/ui/card.d.ts.map +1 -0
- package/dist/client/ui/card.mjs +91 -0
- package/dist/client/ui/card.mjs.map +1 -0
- package/dist/client/ui/carousel.d.ts +20 -0
- package/dist/client/ui/carousel.d.ts.map +1 -0
- package/dist/client/ui/carousel.mjs +202 -0
- package/dist/client/ui/carousel.mjs.map +1 -0
- package/dist/client/ui/checkbox.d.ts +5 -0
- package/dist/client/ui/checkbox.d.ts.map +1 -0
- package/dist/client/ui/checkbox.mjs +34 -0
- package/dist/client/ui/checkbox.mjs.map +1 -0
- package/dist/client/ui/collapsible.d.ts +6 -0
- package/dist/client/ui/collapsible.d.ts.map +1 -0
- package/dist/client/ui/collapsible.mjs +36 -0
- package/dist/client/ui/collapsible.mjs.map +1 -0
- package/dist/client/ui/input.d.ts +4 -0
- package/dist/client/ui/input.d.ts.map +1 -0
- package/dist/client/ui/input.mjs +22 -0
- package/dist/client/ui/input.mjs.map +1 -0
- package/dist/client/ui/label.d.ts +5 -0
- package/dist/client/ui/label.d.ts.map +1 -0
- package/dist/client/ui/label.mjs +23 -0
- package/dist/client/ui/label.mjs.map +1 -0
- package/dist/client/ui/mid-truncate.d.ts +27 -0
- package/dist/client/ui/mid-truncate.d.ts.map +1 -0
- package/dist/client/ui/mid-truncate.mjs +25 -0
- package/dist/client/ui/mid-truncate.mjs.map +1 -0
- package/dist/client/ui/navigation-menu.d.ts +15 -0
- package/dist/client/ui/navigation-menu.d.ts.map +1 -0
- package/dist/client/ui/navigation-menu.mjs +172 -0
- package/dist/client/ui/navigation-menu.mjs.map +1 -0
- package/dist/client/ui/pagination.d.ts +14 -0
- package/dist/client/ui/pagination.d.ts.map +1 -0
- package/dist/client/ui/pagination.mjs +124 -0
- package/dist/client/ui/pagination.mjs.map +1 -0
- package/dist/client/ui/popover.d.ts +11 -0
- package/dist/client/ui/popover.d.ts.map +1 -0
- package/dist/client/ui/popover.mjs +82 -0
- package/dist/client/ui/popover.mjs.map +1 -0
- package/dist/client/ui/select.d.ts +16 -0
- package/dist/client/ui/select.d.ts.map +1 -0
- package/dist/client/ui/select.mjs +183 -0
- package/dist/client/ui/select.mjs.map +1 -0
- package/dist/client/ui/separator.d.ts +5 -0
- package/dist/client/ui/separator.d.ts.map +1 -0
- package/dist/client/ui/separator.mjs +27 -0
- package/dist/client/ui/separator.mjs.map +1 -0
- package/dist/client/ui/sheet.d.ts +15 -0
- package/dist/client/ui/sheet.d.ts.map +1 -0
- package/dist/client/ui/sheet.mjs +130 -0
- package/dist/client/ui/sheet.mjs.map +1 -0
- package/dist/client/ui/toggle-group.d.ts +10 -0
- package/dist/client/ui/toggle-group.d.ts.map +1 -0
- package/dist/client/ui/toggle-group.mjs +69 -0
- package/dist/client/ui/toggle-group.mjs.map +1 -0
- package/dist/client/ui/toggle.d.ts +10 -0
- package/dist/client/ui/toggle.d.ts.map +1 -0
- package/dist/client/ui/toggle.mjs +44 -0
- package/dist/client/ui/toggle.mjs.map +1 -0
- package/dist/client/ui/utils.d.ts +3 -0
- package/dist/client/ui/utils.d.ts.map +1 -0
- package/dist/client/ui/utils.mjs +9 -0
- package/dist/client/ui/utils.mjs.map +1 -0
- package/dist/client/ui-interfaces/accordion.d.ts +8 -0
- package/dist/client/ui-interfaces/accordion.d.ts.map +1 -0
- package/dist/client/ui-interfaces/accordion.mjs +72 -0
- package/dist/client/ui-interfaces/accordion.mjs.map +1 -0
- package/dist/client/ui-interfaces/breadcrumb.d.ts +12 -0
- package/dist/client/ui-interfaces/breadcrumb.d.ts.map +1 -0
- package/dist/client/ui-interfaces/breadcrumb.mjs +97 -0
- package/dist/client/ui-interfaces/breadcrumb.mjs.map +1 -0
- package/dist/client/ui-interfaces/button.d.ts +11 -0
- package/dist/client/ui-interfaces/button.d.ts.map +1 -0
- package/dist/client/ui-interfaces/button.mjs +57 -0
- package/dist/client/ui-interfaces/button.mjs.map +1 -0
- package/dist/client/ui-interfaces/card.d.ts +10 -0
- package/dist/client/ui-interfaces/card.d.ts.map +1 -0
- package/dist/client/ui-interfaces/card.mjs +78 -0
- package/dist/client/ui-interfaces/card.mjs.map +1 -0
- package/dist/client/ui-interfaces/carousel.d.ts +20 -0
- package/dist/client/ui-interfaces/carousel.d.ts.map +1 -0
- package/dist/client/ui-interfaces/carousel.mjs +188 -0
- package/dist/client/ui-interfaces/carousel.mjs.map +1 -0
- package/dist/client/ui-interfaces/checkbox.d.ts +5 -0
- package/dist/client/ui-interfaces/checkbox.d.ts.map +1 -0
- package/dist/client/ui-interfaces/checkbox.mjs +30 -0
- package/dist/client/ui-interfaces/checkbox.mjs.map +1 -0
- package/dist/client/ui-interfaces/collapsible.d.ts +7 -0
- package/dist/client/ui-interfaces/collapsible.d.ts.map +1 -0
- package/dist/client/ui-interfaces/collapsible.mjs +42 -0
- package/dist/client/ui-interfaces/collapsible.mjs.map +1 -0
- package/dist/client/ui-interfaces/index.d.ts +18 -0
- package/dist/client/ui-interfaces/index.d.ts.map +1 -0
- package/dist/client/ui-interfaces/index.mjs +18 -0
- package/dist/client/ui-interfaces/index.mjs.map +1 -0
- package/dist/client/ui-interfaces/input.d.ts +7 -0
- package/dist/client/ui-interfaces/input.d.ts.map +1 -0
- package/dist/client/ui-interfaces/input.mjs +39 -0
- package/dist/client/ui-interfaces/input.mjs.map +1 -0
- package/dist/client/ui-interfaces/label.d.ts +5 -0
- package/dist/client/ui-interfaces/label.d.ts.map +1 -0
- package/dist/client/ui-interfaces/label.mjs +23 -0
- package/dist/client/ui-interfaces/label.mjs.map +1 -0
- package/dist/client/ui-interfaces/navigation-menu.d.ts +15 -0
- package/dist/client/ui-interfaces/navigation-menu.d.ts.map +1 -0
- package/dist/client/ui-interfaces/navigation-menu.mjs +163 -0
- package/dist/client/ui-interfaces/navigation-menu.mjs.map +1 -0
- package/dist/client/ui-interfaces/pagination.d.ts +14 -0
- package/dist/client/ui-interfaces/pagination.d.ts.map +1 -0
- package/dist/client/ui-interfaces/pagination.mjs +103 -0
- package/dist/client/ui-interfaces/pagination.mjs.map +1 -0
- package/dist/client/ui-interfaces/popover.d.ts +8 -0
- package/dist/client/ui-interfaces/popover.d.ts.map +1 -0
- package/dist/client/ui-interfaces/popover.mjs +50 -0
- package/dist/client/ui-interfaces/popover.mjs.map +1 -0
- package/dist/client/ui-interfaces/select.d.ts +16 -0
- package/dist/client/ui-interfaces/select.d.ts.map +1 -0
- package/dist/client/ui-interfaces/select.mjs +159 -0
- package/dist/client/ui-interfaces/select.mjs.map +1 -0
- package/dist/client/ui-interfaces/separator.d.ts +5 -0
- package/dist/client/ui-interfaces/separator.d.ts.map +1 -0
- package/dist/client/ui-interfaces/separator.mjs +28 -0
- package/dist/client/ui-interfaces/separator.mjs.map +1 -0
- package/dist/client/ui-interfaces/sheet.d.ts +14 -0
- package/dist/client/ui-interfaces/sheet.d.ts.map +1 -0
- package/dist/client/ui-interfaces/sheet.mjs +140 -0
- package/dist/client/ui-interfaces/sheet.mjs.map +1 -0
- package/dist/client/ui-interfaces/toggle-group.d.ts +10 -0
- package/dist/client/ui-interfaces/toggle-group.d.ts.map +1 -0
- package/dist/client/ui-interfaces/toggle-group.mjs +67 -0
- package/dist/client/ui-interfaces/toggle-group.mjs.map +1 -0
- package/dist/client/ui-interfaces/toggle.d.ts +10 -0
- package/dist/client/ui-interfaces/toggle.d.ts.map +1 -0
- package/dist/client/ui-interfaces/toggle.mjs +45 -0
- package/dist/client/ui-interfaces/toggle.mjs.map +1 -0
- package/dist/client/ui-resolver/accordion.d.ts +11 -0
- package/dist/client/ui-resolver/accordion.d.ts.map +1 -0
- package/dist/client/ui-resolver/accordion.mjs +35 -0
- package/dist/client/ui-resolver/accordion.mjs.map +1 -0
- package/dist/client/ui-resolver/breadcrumb.d.ts +14 -0
- package/dist/client/ui-resolver/breadcrumb.d.ts.map +1 -0
- package/dist/client/ui-resolver/breadcrumb.mjs +53 -0
- package/dist/client/ui-resolver/breadcrumb.mjs.map +1 -0
- package/dist/client/ui-resolver/button.d.ts +12 -0
- package/dist/client/ui-resolver/button.d.ts.map +1 -0
- package/dist/client/ui-resolver/button.mjs +25 -0
- package/dist/client/ui-resolver/button.mjs.map +1 -0
- package/dist/client/ui-resolver/card.d.ts +14 -0
- package/dist/client/ui-resolver/card.d.ts.map +1 -0
- package/dist/client/ui-resolver/card.mjs +53 -0
- package/dist/client/ui-resolver/card.mjs.map +1 -0
- package/dist/client/ui-resolver/carousel.d.ts +13 -0
- package/dist/client/ui-resolver/carousel.d.ts.map +1 -0
- package/dist/client/ui-resolver/carousel.mjs +41 -0
- package/dist/client/ui-resolver/carousel.mjs.map +1 -0
- package/dist/client/ui-resolver/checkbox.d.ts +8 -0
- package/dist/client/ui-resolver/checkbox.d.ts.map +1 -0
- package/dist/client/ui-resolver/checkbox.mjs +17 -0
- package/dist/client/ui-resolver/checkbox.mjs.map +1 -0
- package/dist/client/ui-resolver/collapsible.d.ts +10 -0
- package/dist/client/ui-resolver/collapsible.d.ts.map +1 -0
- package/dist/client/ui-resolver/collapsible.mjs +29 -0
- package/dist/client/ui-resolver/collapsible.mjs.map +1 -0
- package/dist/client/ui-resolver/context.d.ts +10 -0
- package/dist/client/ui-resolver/context.d.ts.map +1 -0
- package/dist/client/ui-resolver/context.mjs +28 -0
- package/dist/client/ui-resolver/context.mjs.map +1 -0
- package/dist/client/ui-resolver/index.d.ts +19 -0
- package/dist/client/ui-resolver/index.d.ts.map +1 -0
- package/dist/client/ui-resolver/index.mjs +156 -0
- package/dist/client/ui-resolver/index.mjs.map +1 -0
- package/dist/client/ui-resolver/input.d.ts +8 -0
- package/dist/client/ui-resolver/input.d.ts.map +1 -0
- package/dist/client/ui-resolver/input.mjs +17 -0
- package/dist/client/ui-resolver/input.mjs.map +1 -0
- package/dist/client/ui-resolver/label.d.ts +8 -0
- package/dist/client/ui-resolver/label.d.ts.map +1 -0
- package/dist/client/ui-resolver/label.mjs +17 -0
- package/dist/client/ui-resolver/label.mjs.map +1 -0
- package/dist/client/ui-resolver/navigation-menu.d.ts +16 -0
- package/dist/client/ui-resolver/navigation-menu.d.ts.map +1 -0
- package/dist/client/ui-resolver/navigation-menu.mjs +64 -0
- package/dist/client/ui-resolver/navigation-menu.mjs.map +1 -0
- package/dist/client/ui-resolver/pagination.d.ts +14 -0
- package/dist/client/ui-resolver/pagination.d.ts.map +1 -0
- package/dist/client/ui-resolver/pagination.mjs +53 -0
- package/dist/client/ui-resolver/pagination.mjs.map +1 -0
- package/dist/client/ui-resolver/popover.d.ts +11 -0
- package/dist/client/ui-resolver/popover.d.ts.map +1 -0
- package/dist/client/ui-resolver/popover.mjs +35 -0
- package/dist/client/ui-resolver/popover.mjs.map +1 -0
- package/dist/client/ui-resolver/select.d.ts +15 -0
- package/dist/client/ui-resolver/select.d.ts.map +1 -0
- package/dist/client/ui-resolver/select.mjs +59 -0
- package/dist/client/ui-resolver/select.mjs.map +1 -0
- package/dist/client/ui-resolver/separator.d.ts +8 -0
- package/dist/client/ui-resolver/separator.d.ts.map +1 -0
- package/dist/client/ui-resolver/separator.mjs +17 -0
- package/dist/client/ui-resolver/separator.mjs.map +1 -0
- package/dist/client/ui-resolver/sheet.d.ts +15 -0
- package/dist/client/ui-resolver/sheet.d.ts.map +1 -0
- package/dist/client/ui-resolver/sheet.mjs +59 -0
- package/dist/client/ui-resolver/sheet.mjs.map +1 -0
- package/dist/client/ui-resolver/toggle-group.d.ts +9 -0
- package/dist/client/ui-resolver/toggle-group.d.ts.map +1 -0
- package/dist/client/ui-resolver/toggle-group.mjs +23 -0
- package/dist/client/ui-resolver/toggle-group.mjs.map +1 -0
- package/dist/client/ui-resolver/toggle.d.ts +12 -0
- package/dist/client/ui-resolver/toggle.d.ts.map +1 -0
- package/dist/client/ui-resolver/toggle.mjs +25 -0
- package/dist/client/ui-resolver/toggle.mjs.map +1 -0
- package/dist/client/user/actions/createResetPasswordLinkAction.d.ts +14 -0
- package/dist/client/user/actions/createResetPasswordLinkAction.d.ts.map +1 -0
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs +1 -1
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs.map +1 -1
- package/dist/client/user/actions/getUserAction.d.ts +3 -0
- package/dist/client/user/actions/getUserAction.d.ts.map +1 -0
- package/dist/client/user/actions/getUserAction.mjs.map +1 -1
- package/dist/client/user/actions/{logInUserAction.d.mts → logInUserAction.d.ts} +3 -3
- package/dist/client/user/actions/logInUserAction.d.ts.map +1 -0
- package/dist/client/user/actions/logoutUserAction.d.ts +2 -0
- package/dist/client/user/actions/logoutUserAction.d.ts.map +1 -0
- package/dist/client/user/actions/registerOrganisationAction.d.ts +9 -0
- package/dist/client/user/actions/registerOrganisationAction.d.ts.map +1 -0
- package/dist/client/user/actions/registerOrganisationAction.mjs.map +1 -1
- package/dist/client/user/actions/{registerUserAction.d.mts → registerUserAction.d.ts} +3 -3
- package/dist/client/user/actions/registerUserAction.d.ts.map +1 -0
- package/dist/client/user/actions/registerUserAction.mjs +1 -1
- package/dist/client/user/actions/registerUserAction.mjs.map +1 -1
- package/dist/client/user/actions/{registerUserWithoutRedirectAction.d.mts → registerUserWithoutRedirectAction.d.ts} +3 -6
- package/dist/client/user/actions/registerUserWithoutRedirectAction.d.ts.map +1 -0
- package/dist/client/user/actions/{updatePasswordAction.d.mts → updatePasswordAction.d.ts} +3 -3
- package/dist/client/user/actions/updatePasswordAction.d.ts.map +1 -0
- package/dist/client/user/actions/updatePasswordAction.mjs +1 -1
- package/dist/client/user/actions/updatePasswordAction.mjs.map +1 -1
- package/dist/client/user/api/userRoute.d.ts +7 -0
- package/dist/client/user/api/userRoute.d.ts.map +1 -0
- package/dist/client/user/clients/enad.d.ts +4 -0
- package/dist/client/user/clients/enad.d.ts.map +1 -0
- package/dist/client/user/components/login-form.d.ts +23 -0
- package/dist/client/user/components/login-form.d.ts.map +1 -0
- package/dist/client/user/components/login-form.mjs +77 -73
- package/dist/client/user/components/login-form.mjs.map +1 -1
- package/dist/client/user/components/reset-password-form.d.ts +20 -0
- package/dist/client/user/components/reset-password-form.d.ts.map +1 -0
- package/dist/client/user/components/reset-password-form.mjs +57 -50
- package/dist/client/user/components/reset-password-form.mjs.map +1 -1
- package/dist/client/user/components/sign-out.d.ts +8 -0
- package/dist/client/user/components/sign-out.d.ts.map +1 -0
- package/dist/client/user/components/sign-out.mjs +6 -3
- package/dist/client/user/components/sign-out.mjs.map +1 -1
- package/dist/client/user/components/signup-form.d.ts +27 -0
- package/dist/client/user/components/signup-form.d.ts.map +1 -0
- package/dist/client/user/components/signup-form.mjs +153 -120
- package/dist/client/user/components/signup-form.mjs.map +1 -1
- package/dist/client/user/components/signup-organisation-form.d.ts +55 -0
- package/dist/client/user/components/signup-organisation-form.d.ts.map +1 -0
- package/dist/client/user/components/signup-organisation-form.mjs +713 -662
- package/dist/client/user/components/signup-organisation-form.mjs.map +1 -1
- package/dist/client/user/components/update-password-form.d.ts +17 -0
- package/dist/client/user/components/update-password-form.d.ts.map +1 -0
- package/dist/client/user/components/update-password-form.mjs +26 -35
- package/dist/client/user/components/update-password-form.mjs.map +1 -1
- package/dist/client/user/hooks/index.d.ts +2 -0
- package/dist/client/user/hooks/index.d.ts.map +1 -0
- package/dist/client/user/hooks/useUser.d.ts +12 -0
- package/dist/client/user/hooks/useUser.d.ts.map +1 -0
- package/dist/client/user/hooks/useUser.mjs +1 -1
- package/dist/client/user/hooks/useUser.mjs.map +1 -1
- package/dist/client/user/index.d.ts +9 -0
- package/dist/client/user/index.d.ts.map +1 -0
- package/dist/client/user/index.mjs +17 -0
- package/dist/client/user/index.mjs.map +1 -0
- package/dist/client/user/types/{user.d.mts → user.d.ts} +25 -26
- package/dist/client/user/types/user.d.ts.map +1 -0
- package/dist/client/user/utils/{userCookieService.d.mts → userCookieService.d.ts} +2 -3
- package/dist/client/user/utils/userCookieService.d.ts.map +1 -0
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.ts +5 -0
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.ts +3 -0
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/createWishlistAction.d.ts +3 -0
- package/dist/client/wishlist/actions/createWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/createWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.ts +5 -0
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/deleteWishlistAction.d.ts +4 -0
- package/dist/client/wishlist/actions/deleteWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.ts +3 -0
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/getSharedWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.ts +3 -0
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/getUserWishlists.d.ts +4 -0
- package/dist/client/wishlist/actions/getUserWishlists.d.ts.map +1 -0
- package/dist/client/wishlist/actions/getUserWishlists.mjs.map +1 -1
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.ts +4 -0
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/updateWishlistAction.d.ts +3 -0
- package/dist/client/wishlist/actions/updateWishlistAction.d.ts.map +1 -0
- package/dist/client/wishlist/actions/updateWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/hooks/index.d.ts +2 -0
- package/dist/client/wishlist/hooks/index.d.ts.map +1 -0
- package/dist/client/wishlist/hooks/useWishlist.d.ts +95 -0
- package/dist/client/wishlist/hooks/useWishlist.d.ts.map +1 -0
- package/dist/client/wishlist/hooks/useWishlist.mjs +14 -4
- package/dist/client/wishlist/hooks/useWishlist.mjs.map +1 -1
- package/dist/client/wishlist/hooks/useWishlistActions.d.ts +44 -0
- package/dist/client/wishlist/hooks/useWishlistActions.d.ts.map +1 -0
- package/dist/client/wishlist/hooks/useWishlistActions.mjs.map +1 -1
- package/dist/client/wishlist/index.d.ts +5 -0
- package/dist/client/wishlist/index.d.ts.map +1 -0
- package/dist/client/wishlist/index.mjs +9 -0
- package/dist/client/wishlist/index.mjs.map +1 -0
- package/dist/client/wishlist/wishlist-drawer.d.ts +17 -0
- package/dist/client/wishlist/wishlist-drawer.d.ts.map +1 -0
- package/dist/client/wishlist/wishlist-drawer.mjs +189 -170
- package/dist/client/wishlist/wishlist-drawer.mjs.map +1 -1
- package/dist/styles.css +1 -958
- package/package.json +107 -33
- package/dist/client/cart/components/cart-trigger.d.mts +0 -5
- package/dist/client/cart/constants/session.d.mts +0 -3
- package/dist/client/cart/contexts/cart.d.mts +0 -27
- package/dist/client/cart/hooks/useCart.d.mts +0 -29
- package/dist/client/cart/hooks/useCartActions.d.mts +0 -26
- package/dist/client/cart/queries/addToCartQueryFn.d.mts +0 -10
- package/dist/client/cart/queries/getCartQueryFn.d.mts +0 -7
- package/dist/client/cart/queries/removeCartItemQueryFn.d.mts +0 -9
- package/dist/client/cart/queries/updateCartItemQueryFn.d.mts +0 -10
- package/dist/client/cart/utils/session.d.mts +0 -6
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.mts +0 -6
- package/dist/client/global/auth/withAuth.d.mts +0 -6
- package/dist/client/global/providers/enad-provider.d.mts +0 -23
- package/dist/client/search/actions/searchAction.d.mts +0 -5
- package/dist/client/search/components/search-bar.d.mts +0 -2
- package/dist/client/search/hooks/useSearch.d.mts +0 -18
- package/dist/client/user/actions/createResetPasswordLinkAction.d.mts +0 -14
- package/dist/client/user/actions/getUserAction.d.mts +0 -5
- package/dist/client/user/actions/logoutUserAction.d.mts +0 -3
- package/dist/client/user/actions/registerOrganisationAction.d.mts +0 -12
- package/dist/client/user/api/userRoute.d.mts +0 -9
- package/dist/client/user/clients/enad.d.mts +0 -6
- package/dist/client/user/components/login-form.d.mts +0 -20
- package/dist/client/user/components/reset-password-form.d.mts +0 -15
- package/dist/client/user/components/sign-out.d.mts +0 -5
- package/dist/client/user/components/signup-form.d.mts +0 -15
- package/dist/client/user/components/signup-organisation-form.d.mts +0 -20
- package/dist/client/user/components/update-password-form.d.mts +0 -11
- package/dist/client/user/hooks/index.d.mts +0 -3
- package/dist/client/user/hooks/useUser.d.mts +0 -16
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.mts +0 -7
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.mts +0 -6
- package/dist/client/wishlist/actions/createWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.mts +0 -7
- package/dist/client/wishlist/actions/deleteWishlistAction.d.mts +0 -5
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/actions/getUserWishlists.d.mts +0 -7
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.mts +0 -5
- package/dist/client/wishlist/actions/updateWishlistAction.d.mts +0 -6
- package/dist/client/wishlist/hooks/index.d.mts +0 -3
- package/dist/client/wishlist/hooks/useWishlist.d.mts +0 -98
- package/dist/client/wishlist/hooks/useWishlistActions.d.mts +0 -48
- package/dist/client/wishlist/wishlist-drawer.d.mts +0 -19
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../ui-resolver/collapsible";
|
|
5
|
+
import { cn } from "../../ui/utils";
|
|
6
|
+
function TruncatedText({ html, visibleLines = 4, labels, className }) {
|
|
7
|
+
const [isOpen, setIsOpen] = React.useState(false);
|
|
8
|
+
return /* @__PURE__ */ jsxs(Collapsible, { open: isOpen, onOpenChange: setIsOpen, className: cn("w-full", className), children: [
|
|
9
|
+
!isOpen && /* @__PURE__ */ jsx(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: "prose prose-sm max-w-none",
|
|
13
|
+
style: {
|
|
14
|
+
display: "-webkit-box",
|
|
15
|
+
WebkitLineClamp: visibleLines,
|
|
16
|
+
WebkitBoxOrient: "vertical",
|
|
17
|
+
overflow: "hidden"
|
|
18
|
+
},
|
|
19
|
+
dangerouslySetInnerHTML: { __html: html }
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
/* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", { className: "prose prose-sm max-w-none", dangerouslySetInnerHTML: { __html: html } }) }),
|
|
23
|
+
/* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
24
|
+
"button",
|
|
25
|
+
{
|
|
26
|
+
type: "button",
|
|
27
|
+
className: "mt-2 text-sm font-medium text-foreground underline underline-offset-4 transition-colors hover:text-muted-foreground",
|
|
28
|
+
children: isOpen ? labels?.showLess ?? "Show less" : labels?.showMore ?? "Read more"
|
|
29
|
+
}
|
|
30
|
+
) })
|
|
31
|
+
] });
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
TruncatedText
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=truncated-text.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/blocks/truncated-text.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"../../ui-resolver/collapsible\";\nimport { cn } from \"../../ui/utils\";\nimport type { TruncatedTextProps } from \"../types\";\n\nfunction TruncatedText({ html, visibleLines = 4, labels, className }: TruncatedTextProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <Collapsible open={isOpen} onOpenChange={setIsOpen} className={cn(\"w-full\", className)}>\n {/* Clamped preview */}\n {!isOpen && (\n <div\n className=\"prose prose-sm max-w-none\"\n style={{\n display: \"-webkit-box\",\n WebkitLineClamp: visibleLines,\n WebkitBoxOrient: \"vertical\",\n overflow: \"hidden\",\n }}\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )}\n\n {/* Full content */}\n <CollapsibleContent>\n <div className=\"prose prose-sm max-w-none\" dangerouslySetInnerHTML={{ __html: html }} />\n </CollapsibleContent>\n\n <CollapsibleTrigger asChild>\n <button\n type=\"button\"\n className=\"mt-2 text-sm font-medium text-foreground underline underline-offset-4 transition-colors hover:text-muted-foreground\"\n >\n {isOpen ? (labels?.showLess ?? \"Show less\") : (labels?.showMore ?? \"Read more\")}\n </button>\n </CollapsibleTrigger>\n </Collapsible>\n );\n}\n\nexport { TruncatedText, type TruncatedTextProps };\n"],"mappings":";AAWI,SAGI,KAHJ;AATJ,YAAY,WAAW;AACvB,SAAS,aAAa,oBAAoB,0BAA0B;AACpE,SAAS,UAAU;AAGnB,SAAS,cAAc,EAAE,MAAM,eAAe,GAAG,QAAQ,UAAU,GAAuB;AACxF,QAAM,CAAC,QAAQ,SAAS,IAAI,MAAM,SAAS,KAAK;AAEhD,SACE,qBAAC,eAAY,MAAM,QAAQ,cAAc,WAAW,WAAW,GAAG,UAAU,SAAS,GAElF;AAAA,KAAC,UACA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,SAAS;AAAA,UACT,iBAAiB;AAAA,UACjB,iBAAiB;AAAA,UACjB,UAAU;AAAA,QACZ;AAAA,QACA,yBAAyB,EAAE,QAAQ,KAAK;AAAA;AAAA,IAC1C;AAAA,IAIF,oBAAC,sBACC,8BAAC,SAAI,WAAU,6BAA4B,yBAAyB,EAAE,QAAQ,KAAK,GAAG,GACxF;AAAA,IAEA,oBAAC,sBAAmB,SAAO,MACzB;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAU;AAAA,QAET,mBAAU,QAAQ,YAAY,cAAgB,QAAQ,YAAY;AAAA;AAAA,IACrE,GACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { VariableTextContentProps } from "../types";
|
|
2
|
+
declare function VariableTextContent({ html, className }: VariableTextContentProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export { VariableTextContent, type VariableTextContentProps };
|
|
4
|
+
//# sourceMappingURL=variable-text-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-text-content.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/blocks/variable-text-content.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAExD,iBAAS,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,wBAAwB,2CASzE;AAED,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../ui/utils";
|
|
3
|
+
function VariableTextContent({ html, className }) {
|
|
4
|
+
return /* @__PURE__ */ jsx("section", { className: cn("px-4 py-12 md:px-8", className), children: /* @__PURE__ */ jsx(
|
|
5
|
+
"div",
|
|
6
|
+
{
|
|
7
|
+
className: "prose prose-lg mx-auto max-w-3xl xl:prose-xl",
|
|
8
|
+
dangerouslySetInnerHTML: { __html: html }
|
|
9
|
+
}
|
|
10
|
+
) });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
VariableTextContent
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=variable-text-content.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/blocks/variable-text-content.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cn } from \"../../ui/utils\"\nimport type { VariableTextContentProps } from \"../types\"\n\nfunction VariableTextContent({ html, className }: VariableTextContentProps) {\n return (\n <section className={cn(\"px-4 py-12 md:px-8\", className)}>\n <div\n className=\"prose prose-lg mx-auto max-w-3xl xl:prose-xl\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </section>\n )\n}\n\nexport { VariableTextContent, type VariableTextContentProps }\n"],"mappings":"AAOM;AANN,SAAS,UAAU;AAGnB,SAAS,oBAAoB,EAAE,MAAM,UAAU,GAA6B;AAC1E,SACE,oBAAC,aAAQ,WAAW,GAAG,sBAAsB,SAAS,GACpD;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,yBAAyB,EAAE,QAAQ,KAAK;AAAA;AAAA,EAC1C,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/carousel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/carousel/index.ts"],"sourcesContent":["export { SwipeableCarousel, type SwipeableCarouselProps } from \"./swipeable-carousel\"\n"],"mappings":"AAAA,SAAS,yBAAsD;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface SwipeableCarouselProps {
|
|
3
|
+
items: React.ReactNode[];
|
|
4
|
+
className?: string;
|
|
5
|
+
/** 'inset' — arrows float over the image edges; 'outset' — arrows sit outside the image bounds */
|
|
6
|
+
arrows?: "inset" | "outset";
|
|
7
|
+
showDots?: boolean;
|
|
8
|
+
dotsClassName?: string;
|
|
9
|
+
activeSlide?: number;
|
|
10
|
+
onSlideChange?: (index: number) => void;
|
|
11
|
+
}
|
|
12
|
+
declare function SwipeableCarousel({ items, className, arrows, showDots, dotsClassName, activeSlide, onSlideChange, }: SwipeableCarouselProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export { SwipeableCarousel, type SwipeableCarouselProps };
|
|
14
|
+
//# sourceMappingURL=swipeable-carousel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swipeable-carousel.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/carousel/swipeable-carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAW9B,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kGAAkG;IAClG,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,SAAS,EACT,MAAM,EACN,QAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,GACd,EAAE,sBAAsB,kDAwExB;AAED,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import {
|
|
5
|
+
Carousel,
|
|
6
|
+
CarouselContent,
|
|
7
|
+
CarouselItem,
|
|
8
|
+
CarouselPrevious,
|
|
9
|
+
CarouselNext
|
|
10
|
+
} from "../../ui-resolver/carousel";
|
|
11
|
+
import { cn } from "../../ui/utils";
|
|
12
|
+
function SwipeableCarousel({
|
|
13
|
+
items,
|
|
14
|
+
className,
|
|
15
|
+
arrows,
|
|
16
|
+
showDots = true,
|
|
17
|
+
dotsClassName,
|
|
18
|
+
activeSlide,
|
|
19
|
+
onSlideChange
|
|
20
|
+
}) {
|
|
21
|
+
const [api, setApi] = React.useState();
|
|
22
|
+
const [current, setCurrent] = React.useState(0);
|
|
23
|
+
const [count, setCount] = React.useState(0);
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
if (!api) return;
|
|
26
|
+
setCount(api.scrollSnapList().length);
|
|
27
|
+
setCurrent(api.selectedScrollSnap());
|
|
28
|
+
api.on("select", () => {
|
|
29
|
+
const idx = api.selectedScrollSnap();
|
|
30
|
+
setCurrent(idx);
|
|
31
|
+
onSlideChange?.(idx);
|
|
32
|
+
});
|
|
33
|
+
}, [api, onSlideChange]);
|
|
34
|
+
React.useEffect(() => {
|
|
35
|
+
if (!api || activeSlide === void 0) return;
|
|
36
|
+
if (api.selectedScrollSnap() !== activeSlide) {
|
|
37
|
+
api.scrollTo(activeSlide);
|
|
38
|
+
}
|
|
39
|
+
}, [api, activeSlide]);
|
|
40
|
+
if (items.length === 0) return null;
|
|
41
|
+
const singleItem = items.length === 1;
|
|
42
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("relative", arrows === "outset" && "mx-12", className), children: [
|
|
43
|
+
/* @__PURE__ */ jsxs(Carousel, { setApi, opts: { loop: !singleItem }, children: [
|
|
44
|
+
/* @__PURE__ */ jsx(CarouselContent, { children: items.map((item, index) => /* @__PURE__ */ jsx(CarouselItem, { children: item }, index)) }),
|
|
45
|
+
arrows && !singleItem && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
46
|
+
/* @__PURE__ */ jsx(
|
|
47
|
+
CarouselPrevious,
|
|
48
|
+
{
|
|
49
|
+
className: arrows === "inset" ? "left-3 -translate-x-0" : void 0
|
|
50
|
+
}
|
|
51
|
+
),
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
CarouselNext,
|
|
54
|
+
{
|
|
55
|
+
className: arrows === "inset" ? "right-3 translate-x-0" : void 0
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] })
|
|
59
|
+
] }),
|
|
60
|
+
showDots && !singleItem && count > 1 && /* @__PURE__ */ jsx("div", { className: cn("absolute inset-x-0 bottom-3 z-10 flex items-center justify-center gap-1.5", dotsClassName), role: "tablist", children: Array.from({ length: count }).map((_, index) => /* @__PURE__ */ jsx(
|
|
61
|
+
"button",
|
|
62
|
+
{
|
|
63
|
+
type: "button",
|
|
64
|
+
role: "tab",
|
|
65
|
+
"aria-selected": index === current,
|
|
66
|
+
"aria-label": `Go to slide ${index + 1}`,
|
|
67
|
+
onClick: () => api?.scrollTo(index),
|
|
68
|
+
className: cn(
|
|
69
|
+
"size-2 rounded-full transition-all shadow-sm",
|
|
70
|
+
index === current ? "bg-primary" : "bg-background/70 hover:bg-background/90"
|
|
71
|
+
)
|
|
72
|
+
},
|
|
73
|
+
index
|
|
74
|
+
)) })
|
|
75
|
+
] });
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
SwipeableCarousel
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=swipeable-carousel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/carousel/swipeable-carousel.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n type CarouselApi,\n} from \"../../ui-resolver/carousel\"\nimport { cn } from \"../../ui/utils\"\n\ninterface SwipeableCarouselProps {\n items: React.ReactNode[]\n className?: string\n /** 'inset' — arrows float over the image edges; 'outset' — arrows sit outside the image bounds */\n arrows?: \"inset\" | \"outset\"\n showDots?: boolean\n dotsClassName?: string\n activeSlide?: number\n onSlideChange?: (index: number) => void\n}\n\nfunction SwipeableCarousel({\n items,\n className,\n arrows,\n showDots = true,\n dotsClassName,\n activeSlide,\n onSlideChange,\n}: SwipeableCarouselProps) {\n const [api, setApi] = React.useState<CarouselApi>()\n const [current, setCurrent] = React.useState(0)\n const [count, setCount] = React.useState(0)\n\n React.useEffect(() => {\n if (!api) return\n\n setCount(api.scrollSnapList().length)\n setCurrent(api.selectedScrollSnap())\n\n api.on(\"select\", () => {\n const idx = api.selectedScrollSnap()\n setCurrent(idx)\n onSlideChange?.(idx)\n })\n }, [api, onSlideChange])\n\n React.useEffect(() => {\n if (!api || activeSlide === undefined) return\n if (api.selectedScrollSnap() !== activeSlide) {\n api.scrollTo(activeSlide)\n }\n }, [api, activeSlide])\n\n if (items.length === 0) return null\n\n const singleItem = items.length === 1\n\n return (\n <div className={cn(\"relative\", arrows === \"outset\" && \"mx-12\", className)}>\n <Carousel setApi={setApi} opts={{ loop: !singleItem }}>\n <CarouselContent>\n {items.map((item, index) => (\n <CarouselItem key={index}>{item}</CarouselItem>\n ))}\n </CarouselContent>\n\n {arrows && !singleItem && (\n <>\n <CarouselPrevious\n className={arrows === \"inset\" ? \"left-3 -translate-x-0\" : undefined}\n />\n <CarouselNext\n className={arrows === \"inset\" ? \"right-3 translate-x-0\" : undefined}\n />\n </>\n )}\n </Carousel>\n\n {showDots && !singleItem && count > 1 && (\n <div className={cn(\"absolute inset-x-0 bottom-3 z-10 flex items-center justify-center gap-1.5\", dotsClassName)} role=\"tablist\">\n {Array.from({ length: count }).map((_, index) => (\n <button\n key={index}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === current}\n aria-label={`Go to slide ${index + 1}`}\n onClick={() => api?.scrollTo(index)}\n className={cn(\n \"size-2 rounded-full transition-all shadow-sm\",\n index === current\n ? \"bg-primary\"\n : \"bg-background/70 hover:bg-background/90\"\n )}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n\nexport { SwipeableCarousel, type SwipeableCarouselProps }\n"],"mappings":";AAkEY,SAKF,UALE,KAKF,YALE;AAhEZ,YAAY,WAAW;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,UAAU;AAanB,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,QAAM,CAAC,KAAK,MAAM,IAAI,MAAM,SAAsB;AAClD,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAS,CAAC;AAC9C,QAAM,CAAC,OAAO,QAAQ,IAAI,MAAM,SAAS,CAAC;AAE1C,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,IAAK;AAEV,aAAS,IAAI,eAAe,EAAE,MAAM;AACpC,eAAW,IAAI,mBAAmB,CAAC;AAEnC,QAAI,GAAG,UAAU,MAAM;AACrB,YAAM,MAAM,IAAI,mBAAmB;AACnC,iBAAW,GAAG;AACd,sBAAgB,GAAG;AAAA,IACrB,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,aAAa,CAAC;AAEvB,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,OAAO,gBAAgB,OAAW;AACvC,QAAI,IAAI,mBAAmB,MAAM,aAAa;AAC5C,UAAI,SAAS,WAAW;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,KAAK,WAAW,CAAC;AAErB,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,QAAM,aAAa,MAAM,WAAW;AAEpC,SACE,qBAAC,SAAI,WAAW,GAAG,YAAY,WAAW,YAAY,SAAS,SAAS,GACtE;AAAA,yBAAC,YAAS,QAAgB,MAAM,EAAE,MAAM,CAAC,WAAW,GAClD;AAAA,0BAAC,mBACE,gBAAM,IAAI,CAAC,MAAM,UAChB,oBAAC,gBAA0B,kBAAR,KAAa,CACjC,GACH;AAAA,MAEC,UAAU,CAAC,cACV,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,WAAW,UAAU,0BAA0B;AAAA;AAAA,QAC5D;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,WAAW,UAAU,0BAA0B;AAAA;AAAA,QAC5D;AAAA,SACF;AAAA,OAEJ;AAAA,IAEC,YAAY,CAAC,cAAc,QAAQ,KAClC,oBAAC,SAAI,WAAW,GAAG,6EAA6E,aAAa,GAAG,MAAK,WAClH,gBAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,UACrC;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,iBAAe,UAAU;AAAA,QACzB,cAAY,eAAe,QAAQ,CAAC;AAAA,QACpC,SAAS,MAAM,KAAK,SAAS,KAAK;AAAA,QAClC,WAAW;AAAA,UACT;AAAA,UACA,UAAU,UACN,eACA;AAAA,QACN;AAAA;AAAA,MAXK;AAAA,IAYP,CACD,GACH;AAAA,KAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface AddressData {
|
|
2
|
+
firstName: string;
|
|
3
|
+
lastName: string;
|
|
4
|
+
company?: string;
|
|
5
|
+
address1: string;
|
|
6
|
+
address2?: string;
|
|
7
|
+
city: string;
|
|
8
|
+
postalCode: string;
|
|
9
|
+
region?: string;
|
|
10
|
+
country: string;
|
|
11
|
+
phone?: string;
|
|
12
|
+
email?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AddressFormProps {
|
|
15
|
+
value: Partial<AddressData>;
|
|
16
|
+
onChange: (field: keyof AddressData, value: string) => void;
|
|
17
|
+
onSubmit?: () => void;
|
|
18
|
+
errors?: Partial<Record<keyof AddressData, string>>;
|
|
19
|
+
countries?: {
|
|
20
|
+
code: string;
|
|
21
|
+
name: string;
|
|
22
|
+
}[];
|
|
23
|
+
showCompany?: boolean;
|
|
24
|
+
showRegion?: boolean;
|
|
25
|
+
showPhone?: boolean;
|
|
26
|
+
showEmail?: boolean;
|
|
27
|
+
className?: string;
|
|
28
|
+
labels?: Partial<Record<keyof AddressData, string>>;
|
|
29
|
+
}
|
|
30
|
+
export declare function AddressForm({ value, onChange, onSubmit, errors, countries, showCompany, showRegion, showPhone, showEmail, className, labels, }: AddressFormProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=address-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address-form.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/checkout/address-form.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAW,EACX,SAAc,EACd,WAAmB,EACnB,UAAiB,EACjB,SAAiB,EACjB,SAAiB,EACjB,SAAS,EACT,MAAW,GACZ,EAAE,gBAAgB,2CAiHlB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../ui/utils";
|
|
4
|
+
import { Input } from "../../ui-resolver/input";
|
|
5
|
+
import { Label } from "../../ui-resolver/label";
|
|
6
|
+
import {
|
|
7
|
+
Select,
|
|
8
|
+
SelectContent,
|
|
9
|
+
SelectItem,
|
|
10
|
+
SelectTrigger,
|
|
11
|
+
SelectValue
|
|
12
|
+
} from "../../ui-resolver/select";
|
|
13
|
+
function AddressForm({
|
|
14
|
+
value,
|
|
15
|
+
onChange,
|
|
16
|
+
onSubmit,
|
|
17
|
+
errors = {},
|
|
18
|
+
countries = [],
|
|
19
|
+
showCompany = false,
|
|
20
|
+
showRegion = true,
|
|
21
|
+
showPhone = false,
|
|
22
|
+
showEmail = false,
|
|
23
|
+
className,
|
|
24
|
+
labels = {}
|
|
25
|
+
}) {
|
|
26
|
+
const l = {
|
|
27
|
+
firstName: labels.firstName ?? "First name",
|
|
28
|
+
lastName: labels.lastName ?? "Last name",
|
|
29
|
+
company: labels.company ?? "Company",
|
|
30
|
+
address1: labels.address1 ?? "Address",
|
|
31
|
+
address2: labels.address2 ?? "Apartment, suite, etc.",
|
|
32
|
+
city: labels.city ?? "City",
|
|
33
|
+
postalCode: labels.postalCode ?? "Postal code",
|
|
34
|
+
region: labels.region ?? "Region / State",
|
|
35
|
+
country: labels.country ?? "Country",
|
|
36
|
+
phone: labels.phone ?? "Phone",
|
|
37
|
+
email: labels.email ?? "Email"
|
|
38
|
+
};
|
|
39
|
+
const requiredFields = /* @__PURE__ */ new Set([
|
|
40
|
+
"firstName",
|
|
41
|
+
"lastName",
|
|
42
|
+
"address1",
|
|
43
|
+
"city",
|
|
44
|
+
"postalCode",
|
|
45
|
+
"country"
|
|
46
|
+
]);
|
|
47
|
+
function field(name, label, opts) {
|
|
48
|
+
const { type = "text", span = "half" } = opts ?? {};
|
|
49
|
+
const isRequired = requiredFields.has(name);
|
|
50
|
+
return /* @__PURE__ */ jsxs("div", { className: cn(span === "full" ? "col-span-2" : "col-span-1"), children: [
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
Label,
|
|
53
|
+
{
|
|
54
|
+
htmlFor: `address-${name}`,
|
|
55
|
+
className: "text-sm font-medium text-(--enad-text-primary-color)",
|
|
56
|
+
children: label
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
Input,
|
|
61
|
+
{
|
|
62
|
+
id: `address-${name}`,
|
|
63
|
+
type,
|
|
64
|
+
value: value[name] ?? "",
|
|
65
|
+
onChange: (e) => onChange(name, e.target.value),
|
|
66
|
+
"aria-invalid": !!errors[name],
|
|
67
|
+
"aria-required": isRequired || void 0,
|
|
68
|
+
"aria-describedby": errors[name] ? `address-${name}-error` : void 0,
|
|
69
|
+
className: "mt-1"
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
errors[name] && /* @__PURE__ */ jsx("p", { id: `address-${name}-error`, className: "mt-1 text-xs text-(--enad-error-color)", children: errors[name] })
|
|
73
|
+
] }, name);
|
|
74
|
+
}
|
|
75
|
+
return /* @__PURE__ */ jsxs(
|
|
76
|
+
"form",
|
|
77
|
+
{
|
|
78
|
+
onSubmit: (e) => {
|
|
79
|
+
e.preventDefault();
|
|
80
|
+
onSubmit?.();
|
|
81
|
+
},
|
|
82
|
+
className: cn("font-enad grid grid-cols-2 gap-4", className),
|
|
83
|
+
children: [
|
|
84
|
+
field("firstName", l.firstName),
|
|
85
|
+
field("lastName", l.lastName),
|
|
86
|
+
showCompany && field("company", l.company, { span: "full" }),
|
|
87
|
+
field("address1", l.address1, { span: "full" }),
|
|
88
|
+
field("address2", l.address2, { span: "full" }),
|
|
89
|
+
field("city", l.city),
|
|
90
|
+
field("postalCode", l.postalCode),
|
|
91
|
+
showRegion && field("region", l.region),
|
|
92
|
+
/* @__PURE__ */ jsxs("div", { className: "col-span-1", children: [
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
Label,
|
|
95
|
+
{
|
|
96
|
+
htmlFor: "address-country",
|
|
97
|
+
className: "text-sm font-medium text-(--enad-text-primary-color)",
|
|
98
|
+
children: l.country
|
|
99
|
+
}
|
|
100
|
+
),
|
|
101
|
+
countries.length > 0 ? /* @__PURE__ */ jsxs(Select, { value: value.country ?? "", onValueChange: (v) => onChange("country", v), children: [
|
|
102
|
+
/* @__PURE__ */ jsx(SelectTrigger, { id: "address-country", className: "mt-1", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: l.country }) }),
|
|
103
|
+
/* @__PURE__ */ jsx(SelectContent, { children: countries.map((c) => /* @__PURE__ */ jsx(SelectItem, { value: c.code, children: c.name }, c.code)) })
|
|
104
|
+
] }) : /* @__PURE__ */ jsx(
|
|
105
|
+
Input,
|
|
106
|
+
{
|
|
107
|
+
id: "address-country",
|
|
108
|
+
value: value.country ?? "",
|
|
109
|
+
onChange: (e) => onChange("country", e.target.value),
|
|
110
|
+
className: "mt-1"
|
|
111
|
+
}
|
|
112
|
+
),
|
|
113
|
+
errors.country && /* @__PURE__ */ jsx("p", { className: "mt-1 text-xs text-(--enad-error-color)", children: errors.country })
|
|
114
|
+
] }),
|
|
115
|
+
showPhone && field("phone", l.phone, { type: "tel" }),
|
|
116
|
+
showEmail && field("email", l.email, { type: "email" })
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
AddressForm
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=address-form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/checkout/address-form.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../ui/utils\";\nimport { Input } from \"../../ui-resolver/input\";\nimport { Label } from \"../../ui-resolver/label\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../ui-resolver/select\";\n\nexport interface AddressData {\n firstName: string;\n lastName: string;\n company?: string;\n address1: string;\n address2?: string;\n city: string;\n postalCode: string;\n region?: string;\n country: string;\n phone?: string;\n email?: string;\n}\n\nexport interface AddressFormProps {\n value: Partial<AddressData>;\n onChange: (field: keyof AddressData, value: string) => void;\n onSubmit?: () => void;\n errors?: Partial<Record<keyof AddressData, string>>;\n countries?: { code: string; name: string }[];\n showCompany?: boolean;\n showRegion?: boolean;\n showPhone?: boolean;\n showEmail?: boolean;\n className?: string;\n labels?: Partial<Record<keyof AddressData, string>>;\n}\n\nexport function AddressForm({\n value,\n onChange,\n onSubmit,\n errors = {},\n countries = [],\n showCompany = false,\n showRegion = true,\n showPhone = false,\n showEmail = false,\n className,\n labels = {},\n}: AddressFormProps) {\n const l = {\n firstName: labels.firstName ?? \"First name\",\n lastName: labels.lastName ?? \"Last name\",\n company: labels.company ?? \"Company\",\n address1: labels.address1 ?? \"Address\",\n address2: labels.address2 ?? \"Apartment, suite, etc.\",\n city: labels.city ?? \"City\",\n postalCode: labels.postalCode ?? \"Postal code\",\n region: labels.region ?? \"Region / State\",\n country: labels.country ?? \"Country\",\n phone: labels.phone ?? \"Phone\",\n email: labels.email ?? \"Email\",\n };\n\n const requiredFields = new Set<keyof AddressData>([\n \"firstName\",\n \"lastName\",\n \"address1\",\n \"city\",\n \"postalCode\",\n \"country\",\n ]);\n\n function field(\n name: keyof AddressData,\n label: string,\n opts?: { type?: string; span?: \"full\" | \"half\" },\n ) {\n const { type = \"text\", span = \"half\" } = opts ?? {};\n const isRequired = requiredFields.has(name);\n return (\n <div className={cn(span === \"full\" ? \"col-span-2\" : \"col-span-1\")} key={name}>\n <Label\n htmlFor={`address-${name}`}\n className=\"text-sm font-medium text-(--enad-text-primary-color)\"\n >\n {label}\n </Label>\n <Input\n id={`address-${name}`}\n type={type}\n value={value[name] ?? \"\"}\n onChange={(e) => onChange(name, e.target.value)}\n aria-invalid={!!errors[name]}\n aria-required={isRequired || undefined}\n aria-describedby={errors[name] ? `address-${name}-error` : undefined}\n className=\"mt-1\"\n />\n {errors[name] && (\n <p id={`address-${name}-error`} className=\"mt-1 text-xs text-(--enad-error-color)\">\n {errors[name]}\n </p>\n )}\n </div>\n );\n }\n\n return (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n onSubmit?.();\n }}\n className={cn(\"font-enad grid grid-cols-2 gap-4\", className)}\n >\n {field(\"firstName\", l.firstName)}\n {field(\"lastName\", l.lastName)}\n {showCompany && field(\"company\", l.company, { span: \"full\" })}\n {field(\"address1\", l.address1, { span: \"full\" })}\n {field(\"address2\", l.address2, { span: \"full\" })}\n {field(\"city\", l.city)}\n {field(\"postalCode\", l.postalCode)}\n {showRegion && field(\"region\", l.region)}\n\n {/* Country select */}\n <div className=\"col-span-1\">\n <Label\n htmlFor=\"address-country\"\n className=\"text-sm font-medium text-(--enad-text-primary-color)\"\n >\n {l.country}\n </Label>\n {countries.length > 0 ? (\n <Select value={value.country ?? \"\"} onValueChange={(v) => onChange(\"country\", v)}>\n <SelectTrigger id=\"address-country\" className=\"mt-1\">\n <SelectValue placeholder={l.country} />\n </SelectTrigger>\n <SelectContent>\n {countries.map((c) => (\n <SelectItem key={c.code} value={c.code}>\n {c.name}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n ) : (\n <Input\n id=\"address-country\"\n value={value.country ?? \"\"}\n onChange={(e) => onChange(\"country\", e.target.value)}\n className=\"mt-1\"\n />\n )}\n {errors.country && (\n <p className=\"mt-1 text-xs text-(--enad-error-color)\">{errors.country}</p>\n )}\n </div>\n\n {showPhone && field(\"phone\", l.phone, { type: \"tel\" })}\n {showEmail && field(\"email\", l.email, { type: \"email\" })}\n </form>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface CartLineItem {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
variant?: string;
|
|
5
|
+
imageUrl?: string;
|
|
6
|
+
price: number;
|
|
7
|
+
originalPrice?: number;
|
|
8
|
+
quantity: number;
|
|
9
|
+
maxQuantity?: number;
|
|
10
|
+
currency?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface CartSummaryProps {
|
|
13
|
+
items: CartLineItem[];
|
|
14
|
+
subtotal: number;
|
|
15
|
+
tax?: number;
|
|
16
|
+
shipping?: number;
|
|
17
|
+
total: number;
|
|
18
|
+
currency?: string;
|
|
19
|
+
locale?: string;
|
|
20
|
+
onQuantityChange?: (itemId: string, quantity: number) => void;
|
|
21
|
+
onRemoveItem?: (itemId: string) => void;
|
|
22
|
+
onPromoApply?: (code: string) => void;
|
|
23
|
+
promoCode?: string;
|
|
24
|
+
promoError?: string;
|
|
25
|
+
promoDiscount?: number;
|
|
26
|
+
className?: string;
|
|
27
|
+
labels?: {
|
|
28
|
+
subtotal?: string;
|
|
29
|
+
tax?: string;
|
|
30
|
+
shipping?: string;
|
|
31
|
+
total?: string;
|
|
32
|
+
discount?: string;
|
|
33
|
+
promoPlaceholder?: string;
|
|
34
|
+
promoApply?: string;
|
|
35
|
+
freeShipping?: string;
|
|
36
|
+
remove?: string;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare function CartSummary({ items, subtotal, tax, shipping, total, currency, locale, onQuantityChange, onRemoveItem, onPromoApply, promoCode: initialPromo, promoError, promoDiscount, className, labels, }: CartSummaryProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
//# sourceMappingURL=cart-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cart-summary.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/checkout/cart-summary.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,QAAQ,EACR,KAAK,EACL,QAAgB,EAChB,MAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,SAAS,EAAE,YAAiB,EAC5B,UAAU,EACV,aAAa,EACb,SAAS,EACT,MAAW,GACZ,EAAE,gBAAgB,2CAkJlB"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { cn } from "../../ui/utils";
|
|
5
|
+
import { useIcon } from "../../icons/icon-context";
|
|
6
|
+
import { Price } from "../components/price";
|
|
7
|
+
import { QuantityPicker } from "../product/quantity-picker";
|
|
8
|
+
import { Button } from "../../ui-resolver/button";
|
|
9
|
+
import { Input } from "../../ui-resolver/input";
|
|
10
|
+
function CartSummary({
|
|
11
|
+
items,
|
|
12
|
+
subtotal,
|
|
13
|
+
tax,
|
|
14
|
+
shipping,
|
|
15
|
+
total,
|
|
16
|
+
currency = "SEK",
|
|
17
|
+
locale = "sv-SE",
|
|
18
|
+
onQuantityChange,
|
|
19
|
+
onRemoveItem,
|
|
20
|
+
onPromoApply,
|
|
21
|
+
promoCode: initialPromo = "",
|
|
22
|
+
promoError,
|
|
23
|
+
promoDiscount,
|
|
24
|
+
className,
|
|
25
|
+
labels = {}
|
|
26
|
+
}) {
|
|
27
|
+
const {
|
|
28
|
+
subtotal: subtotalLabel = "Subtotal",
|
|
29
|
+
tax: taxLabel = "Tax",
|
|
30
|
+
shipping: shippingLabel = "Shipping",
|
|
31
|
+
total: totalLabel = "Total",
|
|
32
|
+
discount: discountLabel = "Discount",
|
|
33
|
+
promoPlaceholder = "Promo code",
|
|
34
|
+
promoApply = "Apply",
|
|
35
|
+
freeShipping = "Free",
|
|
36
|
+
remove: removeLabel = "Remove"
|
|
37
|
+
} = labels;
|
|
38
|
+
const [promoInput, setPromoInput] = React.useState(initialPromo);
|
|
39
|
+
const CloseIcon = useIcon("close");
|
|
40
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("font-enad space-y-4", className), children: [
|
|
41
|
+
/* @__PURE__ */ jsx("ul", { className: "divide-y divide-(--enad-border-color)", children: items.map((item) => /* @__PURE__ */ jsxs("li", { className: "flex gap-4 py-4 first:pt-0 last:pb-0", children: [
|
|
42
|
+
item.imageUrl && /* @__PURE__ */ jsx(
|
|
43
|
+
"img",
|
|
44
|
+
{
|
|
45
|
+
src: item.imageUrl,
|
|
46
|
+
alt: item.name,
|
|
47
|
+
className: "size-16 shrink-0 rounded-(--enad-card-radius) object-cover"
|
|
48
|
+
}
|
|
49
|
+
),
|
|
50
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col gap-1", children: [
|
|
51
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-2", children: [
|
|
52
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
53
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-medium text-(--enad-text-primary-color)", children: item.name }),
|
|
54
|
+
item.variant && /* @__PURE__ */ jsx("p", { className: "text-xs text-(--enad-text-muted-color)", children: item.variant })
|
|
55
|
+
] }),
|
|
56
|
+
/* @__PURE__ */ jsx(
|
|
57
|
+
Price,
|
|
58
|
+
{
|
|
59
|
+
amount: item.price * item.quantity,
|
|
60
|
+
original: item.originalPrice ? item.originalPrice * item.quantity : void 0,
|
|
61
|
+
currency: item.currency ?? currency,
|
|
62
|
+
locale,
|
|
63
|
+
className: "text-sm font-medium"
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
] }),
|
|
67
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
68
|
+
onQuantityChange && /* @__PURE__ */ jsx(
|
|
69
|
+
QuantityPicker,
|
|
70
|
+
{
|
|
71
|
+
value: item.quantity,
|
|
72
|
+
onChange: (qty) => onQuantityChange(item.id, qty),
|
|
73
|
+
min: 1,
|
|
74
|
+
max: item.maxQuantity
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
onRemoveItem && /* @__PURE__ */ jsx(
|
|
78
|
+
"button",
|
|
79
|
+
{
|
|
80
|
+
type: "button",
|
|
81
|
+
onClick: () => onRemoveItem(item.id),
|
|
82
|
+
className: "rounded-sm text-xs text-(--enad-text-muted-color) hover:text-(--enad-error-color) transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-none",
|
|
83
|
+
"aria-label": `${removeLabel} ${item.name}`,
|
|
84
|
+
children: /* @__PURE__ */ jsx(CloseIcon, { className: "size-4" })
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
] })
|
|
88
|
+
] })
|
|
89
|
+
] }, item.id)) }),
|
|
90
|
+
onPromoApply && /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
91
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
93
|
+
Input,
|
|
94
|
+
{
|
|
95
|
+
value: promoInput,
|
|
96
|
+
onChange: (e) => setPromoInput(e.target.value),
|
|
97
|
+
onKeyDown: (e) => {
|
|
98
|
+
if (e.key === "Enter" && promoInput.trim()) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
onPromoApply(promoInput);
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
placeholder: promoPlaceholder,
|
|
104
|
+
className: "flex-1",
|
|
105
|
+
"aria-label": promoPlaceholder
|
|
106
|
+
}
|
|
107
|
+
),
|
|
108
|
+
/* @__PURE__ */ jsx(
|
|
109
|
+
Button,
|
|
110
|
+
{
|
|
111
|
+
variant: "outline",
|
|
112
|
+
onClick: () => onPromoApply(promoInput),
|
|
113
|
+
disabled: !promoInput.trim(),
|
|
114
|
+
children: promoApply
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
] }),
|
|
118
|
+
promoError && /* @__PURE__ */ jsx("p", { className: "text-xs text-(--enad-error-color)", children: promoError })
|
|
119
|
+
] }),
|
|
120
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2 border-t border-(--enad-border-color) pt-4", children: [
|
|
121
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
122
|
+
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: subtotalLabel }),
|
|
123
|
+
/* @__PURE__ */ jsx(Price, { amount: subtotal, currency, locale })
|
|
124
|
+
] }),
|
|
125
|
+
promoDiscount != null && promoDiscount > 0 && /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
126
|
+
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: discountLabel }),
|
|
127
|
+
/* @__PURE__ */ jsxs("span", { className: "text-(--enad-error-color)", children: [
|
|
128
|
+
"-",
|
|
129
|
+
/* @__PURE__ */ jsx(Price, { amount: promoDiscount, currency, locale })
|
|
130
|
+
] })
|
|
131
|
+
] }),
|
|
132
|
+
tax != null && /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
133
|
+
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: taxLabel }),
|
|
134
|
+
/* @__PURE__ */ jsx(Price, { amount: tax, currency, locale })
|
|
135
|
+
] }),
|
|
136
|
+
shipping != null && /* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
137
|
+
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-muted-color)", children: shippingLabel }),
|
|
138
|
+
shipping === 0 ? /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-(--enad-text-primary-color)", children: freeShipping }) : /* @__PURE__ */ jsx(Price, { amount: shipping, currency, locale })
|
|
139
|
+
] }),
|
|
140
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between border-t border-(--enad-border-color) pt-2 text-base font-semibold", children: [
|
|
141
|
+
/* @__PURE__ */ jsx("span", { className: "text-(--enad-text-primary-color)", children: totalLabel }),
|
|
142
|
+
/* @__PURE__ */ jsx(Price, { amount: total, currency, locale })
|
|
143
|
+
] })
|
|
144
|
+
] })
|
|
145
|
+
] });
|
|
146
|
+
}
|
|
147
|
+
export {
|
|
148
|
+
CartSummary
|
|
149
|
+
};
|
|
150
|
+
//# sourceMappingURL=cart-summary.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/storefront/checkout/cart-summary.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../ui/utils\";\nimport { useIcon } from \"../../icons/icon-context\";\nimport { Price } from \"../components/price\";\nimport { QuantityPicker } from \"../product/quantity-picker\";\nimport { Button } from \"../../ui-resolver/button\";\nimport { Input } from \"../../ui-resolver/input\";\n\nexport interface CartLineItem {\n id: string;\n name: string;\n variant?: string;\n imageUrl?: string;\n price: number;\n originalPrice?: number;\n quantity: number;\n maxQuantity?: number;\n currency?: string;\n}\n\nexport interface CartSummaryProps {\n items: CartLineItem[];\n subtotal: number;\n tax?: number;\n shipping?: number;\n total: number;\n currency?: string;\n locale?: string;\n onQuantityChange?: (itemId: string, quantity: number) => void;\n onRemoveItem?: (itemId: string) => void;\n onPromoApply?: (code: string) => void;\n promoCode?: string;\n promoError?: string;\n promoDiscount?: number;\n className?: string;\n labels?: {\n subtotal?: string;\n tax?: string;\n shipping?: string;\n total?: string;\n discount?: string;\n promoPlaceholder?: string;\n promoApply?: string;\n freeShipping?: string;\n remove?: string;\n };\n}\n\nexport function CartSummary({\n items,\n subtotal,\n tax,\n shipping,\n total,\n currency = \"SEK\",\n locale = \"sv-SE\",\n onQuantityChange,\n onRemoveItem,\n onPromoApply,\n promoCode: initialPromo = \"\",\n promoError,\n promoDiscount,\n className,\n labels = {},\n}: CartSummaryProps) {\n const {\n subtotal: subtotalLabel = \"Subtotal\",\n tax: taxLabel = \"Tax\",\n shipping: shippingLabel = \"Shipping\",\n total: totalLabel = \"Total\",\n discount: discountLabel = \"Discount\",\n promoPlaceholder = \"Promo code\",\n promoApply = \"Apply\",\n freeShipping = \"Free\",\n remove: removeLabel = \"Remove\",\n } = labels;\n\n const [promoInput, setPromoInput] = React.useState(initialPromo);\n const CloseIcon = useIcon(\"close\");\n\n return (\n <div className={cn(\"font-enad space-y-4\", className)}>\n {/* Line items */}\n <ul className=\"divide-y divide-(--enad-border-color)\">\n {items.map((item) => (\n <li key={item.id} className=\"flex gap-4 py-4 first:pt-0 last:pb-0\">\n {item.imageUrl && (\n <img\n src={item.imageUrl}\n alt={item.name}\n className=\"size-16 shrink-0 rounded-(--enad-card-radius) object-cover\"\n />\n )}\n\n <div className=\"flex flex-1 flex-col gap-1\">\n <div className=\"flex items-start justify-between gap-2\">\n <div>\n <p className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n {item.name}\n </p>\n {item.variant && (\n <p className=\"text-xs text-(--enad-text-muted-color)\">{item.variant}</p>\n )}\n </div>\n <Price\n amount={item.price * item.quantity}\n original={item.originalPrice ? item.originalPrice * item.quantity : undefined}\n currency={item.currency ?? currency}\n locale={locale}\n className=\"text-sm font-medium\"\n />\n </div>\n\n <div className=\"flex items-center gap-3\">\n {onQuantityChange && (\n <QuantityPicker\n value={item.quantity}\n onChange={(qty) => onQuantityChange(item.id, qty)}\n min={1}\n max={item.maxQuantity}\n />\n )}\n {onRemoveItem && (\n <button\n type=\"button\"\n onClick={() => onRemoveItem(item.id)}\n className=\"rounded-sm text-xs text-(--enad-text-muted-color) hover:text-(--enad-error-color) transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-none\"\n aria-label={`${removeLabel} ${item.name}`}\n >\n <CloseIcon className=\"size-4\" />\n </button>\n )}\n </div>\n </div>\n </li>\n ))}\n </ul>\n\n {/* Promo code */}\n {onPromoApply && (\n <div className=\"space-y-1\">\n <div className=\"flex gap-2\">\n <Input\n value={promoInput}\n onChange={(e) => setPromoInput(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && promoInput.trim()) {\n e.preventDefault();\n onPromoApply(promoInput);\n }\n }}\n placeholder={promoPlaceholder}\n className=\"flex-1\"\n aria-label={promoPlaceholder}\n />\n <Button\n variant=\"outline\"\n onClick={() => onPromoApply(promoInput)}\n disabled={!promoInput.trim()}\n >\n {promoApply}\n </Button>\n </div>\n {promoError && <p className=\"text-xs text-(--enad-error-color)\">{promoError}</p>}\n </div>\n )}\n\n {/* Totals */}\n <div className=\"space-y-2 border-t border-(--enad-border-color) pt-4\">\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{subtotalLabel}</span>\n <Price amount={subtotal} currency={currency} locale={locale} />\n </div>\n\n {promoDiscount != null && promoDiscount > 0 && (\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{discountLabel}</span>\n <span className=\"text-(--enad-error-color)\">\n -<Price amount={promoDiscount} currency={currency} locale={locale} />\n </span>\n </div>\n )}\n\n {tax != null && (\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{taxLabel}</span>\n <Price amount={tax} currency={currency} locale={locale} />\n </div>\n )}\n\n {shipping != null && (\n <div className=\"flex justify-between text-sm\">\n <span className=\"text-(--enad-text-muted-color)\">{shippingLabel}</span>\n {shipping === 0 ? (\n <span className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n {freeShipping}\n </span>\n ) : (\n <Price amount={shipping} currency={currency} locale={locale} />\n )}\n </div>\n )}\n\n <div className=\"flex justify-between border-t border-(--enad-border-color) pt-2 text-base font-semibold\">\n <span className=\"text-(--enad-text-primary-color)\">{totalLabel}</span>\n <Price amount={total} currency={currency} locale={locale} />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";AAyFc,cASE,YATF;AAvFd,YAAY,WAAW;AACvB,SAAS,UAAU;AACnB,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,SAAS,sBAAsB;AAC/B,SAAS,cAAc;AACvB,SAAS,aAAa;AA0Cf,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,CAAC;AACZ,GAAqB;AACnB,QAAM;AAAA,IACJ,UAAU,gBAAgB;AAAA,IAC1B,KAAK,WAAW;AAAA,IAChB,UAAU,gBAAgB;AAAA,IAC1B,OAAO,aAAa;AAAA,IACpB,UAAU,gBAAgB;AAAA,IAC1B,mBAAmB;AAAA,IACnB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,QAAQ,cAAc;AAAA,EACxB,IAAI;AAEJ,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,YAAY;AAC/D,QAAM,YAAY,QAAQ,OAAO;AAEjC,SACE,qBAAC,SAAI,WAAW,GAAG,uBAAuB,SAAS,GAEjD;AAAA,wBAAC,QAAG,WAAU,yCACX,gBAAM,IAAI,CAAC,SACV,qBAAC,QAAiB,WAAU,wCACzB;AAAA,WAAK,YACJ;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,KAAK;AAAA,UACV,KAAK,KAAK;AAAA,UACV,WAAU;AAAA;AAAA,MACZ;AAAA,MAGF,qBAAC,SAAI,WAAU,8BACb;AAAA,6BAAC,SAAI,WAAU,0CACb;AAAA,+BAAC,SACC;AAAA,gCAAC,OAAE,WAAU,wDACV,eAAK,MACR;AAAA,YACC,KAAK,WACJ,oBAAC,OAAE,WAAU,0CAA0C,eAAK,SAAQ;AAAA,aAExE;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,QAAQ,KAAK,QAAQ,KAAK;AAAA,cAC1B,UAAU,KAAK,gBAAgB,KAAK,gBAAgB,KAAK,WAAW;AAAA,cACpE,UAAU,KAAK,YAAY;AAAA,cAC3B;AAAA,cACA,WAAU;AAAA;AAAA,UACZ;AAAA,WACF;AAAA,QAEA,qBAAC,SAAI,WAAU,2BACZ;AAAA,8BACC;AAAA,YAAC;AAAA;AAAA,cACC,OAAO,KAAK;AAAA,cACZ,UAAU,CAAC,QAAQ,iBAAiB,KAAK,IAAI,GAAG;AAAA,cAChD,KAAK;AAAA,cACL,KAAK,KAAK;AAAA;AAAA,UACZ;AAAA,UAED,gBACC;AAAA,YAAC;AAAA;AAAA,cACC,MAAK;AAAA,cACL,SAAS,MAAM,aAAa,KAAK,EAAE;AAAA,cACnC,WAAU;AAAA,cACV,cAAY,GAAG,WAAW,IAAI,KAAK,IAAI;AAAA,cAEvC,8BAAC,aAAU,WAAU,UAAS;AAAA;AAAA,UAChC;AAAA,WAEJ;AAAA,SACF;AAAA,SAhDO,KAAK,EAiDd,CACD,GACH;AAAA,IAGC,gBACC,qBAAC,SAAI,WAAU,aACb;AAAA,2BAAC,SAAI,WAAU,cACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO;AAAA,YACP,UAAU,CAAC,MAAM,cAAc,EAAE,OAAO,KAAK;AAAA,YAC7C,WAAW,CAAC,MAAM;AAChB,kBAAI,EAAE,QAAQ,WAAW,WAAW,KAAK,GAAG;AAC1C,kBAAE,eAAe;AACjB,6BAAa,UAAU;AAAA,cACzB;AAAA,YACF;AAAA,YACA,aAAa;AAAA,YACb,WAAU;AAAA,YACV,cAAY;AAAA;AAAA,QACd;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,SAAQ;AAAA,YACR,SAAS,MAAM,aAAa,UAAU;AAAA,YACtC,UAAU,CAAC,WAAW,KAAK;AAAA,YAE1B;AAAA;AAAA,QACH;AAAA,SACF;AAAA,MACC,cAAc,oBAAC,OAAE,WAAU,qCAAqC,sBAAW;AAAA,OAC9E;AAAA,IAIF,qBAAC,SAAI,WAAU,wDACb;AAAA,2BAAC,SAAI,WAAU,gCACb;AAAA,4BAAC,UAAK,WAAU,kCAAkC,yBAAc;AAAA,QAChE,oBAAC,SAAM,QAAQ,UAAU,UAAoB,QAAgB;AAAA,SAC/D;AAAA,MAEC,iBAAiB,QAAQ,gBAAgB,KACxC,qBAAC,SAAI,WAAU,gCACb;AAAA,4BAAC,UAAK,WAAU,kCAAkC,yBAAc;AAAA,QAChE,qBAAC,UAAK,WAAU,6BAA4B;AAAA;AAAA,UACzC,oBAAC,SAAM,QAAQ,eAAe,UAAoB,QAAgB;AAAA,WACrE;AAAA,SACF;AAAA,MAGD,OAAO,QACN,qBAAC,SAAI,WAAU,gCACb;AAAA,4BAAC,UAAK,WAAU,kCAAkC,oBAAS;AAAA,QAC3D,oBAAC,SAAM,QAAQ,KAAK,UAAoB,QAAgB;AAAA,SAC1D;AAAA,MAGD,YAAY,QACX,qBAAC,SAAI,WAAU,gCACb;AAAA,4BAAC,UAAK,WAAU,kCAAkC,yBAAc;AAAA,QAC/D,aAAa,IACZ,oBAAC,UAAK,WAAU,wDACb,wBACH,IAEA,oBAAC,SAAM,QAAQ,UAAU,UAAoB,QAAgB;AAAA,SAEjE;AAAA,MAGF,qBAAC,SAAI,WAAU,2FACb;AAAA,4BAAC,UAAK,WAAU,oCAAoC,sBAAW;AAAA,QAC/D,oBAAC,SAAM,QAAQ,OAAO,UAAoB,QAAgB;AAAA,SAC5D;AAAA,OACF;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export type StepStatus = "completed" | "active" | "upcoming";
|
|
2
|
+
export interface CheckoutStep {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
status: StepStatus;
|
|
6
|
+
}
|
|
7
|
+
export interface CheckoutStepperProps {
|
|
8
|
+
steps: CheckoutStep[];
|
|
9
|
+
onStepClick?: (stepId: string) => void;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function CheckoutStepper({ steps, onStepClick, className }: CheckoutStepperProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
//# sourceMappingURL=checkout-stepper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-stepper.d.ts","sourceRoot":"","sources":["../../../../src/client/storefront/checkout/checkout-stepper.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CA0DtF"}
|