@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/user/components/signup-organisation-form.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n OrganisationBillingAddress,\n OrganisationShippingAddress,\n RegisterOrganisationRequest,\n} from \"@enadhq/enad-ts-sdk\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport * as z from \"zod\"\nimport { registerOrganisationAction } from \"../actions/registerOrganisationAction\"\nimport { registerUserWithoutRedirectAction } from \"../actions/registerUserWithoutRedirectAction\"\n\n// Address schema\nconst addressSchema = z.object({\n street_address: z.string().min(1, \"Street address is required\"),\n house_number: z.string().optional(),\n city: z.string().min(1, \"City is required\"),\n postal_code: z.string().min(1, \"Postal code is required\"),\n country: z.string().min(1, \"Country is required\"),\n state_province: z.string().optional(),\n phone: z.string().optional(),\n co_address: z.string().optional(),\n name: z.string().optional(),\n is_default: z.boolean().default(true),\n shipping_type: z.string().default(\"standard\"),\n})\n\n// User schema\nconst userSchema = z\n .object({\n first_name: z.string().trim().min(1, \"First name is required\"),\n last_name: z.string().trim().min(1, \"Last name is required\"),\n email: z.string().email(\"Invalid email address\").min(1, \"Email is required\"),\n password: z\n .string()\n .min(10, \"Password must be at least 10 characters\")\n .regex(/\\d/, \"Password must contain a number\"),\n confirmPassword: z.string(),\n phone_number: z.string().optional(),\n language: z.string().default(\"SV\"),\n country_code: z.string().default(\"SE\"),\n market: z.string().default(\"SE\"),\n store_group: z.string().default(\"default\"),\n allow_email_notifications: z.boolean().default(false),\n allow_phone_notifications: z.boolean().default(false),\n allow_postal_notifications: z.boolean().default(false),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: \"Passwords do not match\",\n path: [\"confirmPassword\"],\n })\n\n// Organisation schema\nconst organizationSchema = z.object({\n name: z.string().min(1, \"Organization name is required\"),\n organisation_number: z.string().min(1, \"Organization number is required\"),\n tax_id_vat_number: z.string().min(1, \"Tax ID/VAT number is required\"),\n contact_name: z.string().optional(),\n email: z.string().email(\"Invalid email address\").min(1, \"Email is required\"),\n invoice_email: z.string().email(\"Invalid email address\").optional(),\n phone: z.string().optional(),\n external_ref: z.string().optional(),\n attribute: z.string().optional(),\n credit_check: z.boolean().default(false),\n custom_fields: z.record(z.string(), z.any()).optional(),\n billing_address: z.array(addressSchema).min(1),\n})\n\n// Combined form schema\nconst formSchema = z.object({\n user: userSchema,\n organization: organizationSchema,\n shipping_address: z.array(addressSchema).min(1),\n use_billing_as_shipping: z.boolean().default(false),\n terms_accepted: z.boolean().refine((val) => val === true, {\n message: \"You must accept the terms and conditions\",\n }),\n})\n\ntype FormData = z.infer<typeof formSchema>\n\ninterface SignupOrganisationFormProps {\n title?: string\n subtitle?: string\n submitText?: string\n extraLink?: {\n href: string\n text: string\n }\n successRedirect?: string\n organisationStatus?: \"active\" | \"pending\"\n defaultMarket?: string\n defaultLanguage?: string\n defaultCountry?: string\n defaultStoreGroup?: string\n}\n\nexport const SignupOrganisationForm: React.FC<SignupOrganisationFormProps> = ({\n title = \"Create your organisation account\",\n subtitle = \"Sign up to get started\",\n submitText = \"Sign Up\",\n extraLink = { href: \"/login\", text: \"Already have an account? Sign in\" },\n organisationStatus = \"active\",\n defaultMarket = \"SE\",\n defaultLanguage = \"SV\",\n defaultCountry = \"SE\",\n defaultStoreGroup = \"default\",\n}) => {\n const [errors, setErrors] = useState<Record<string, string[]>>({})\n const [isPending, setIsPending] = useState(false)\n const [showPassword, setShowPassword] = useState(false)\n const [showConfirmPassword, setShowConfirmPassword] = useState(false)\n const [confirmMode, setConfirmMode] = useState(false)\n\n const form = useForm<FormData>({\n resolver: zodResolver(formSchema),\n defaultValues: {\n user: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n password: \"\",\n confirmPassword: \"\",\n phone_number: \"\",\n language: defaultLanguage,\n market: defaultMarket,\n country_code: defaultCountry,\n store_group: defaultStoreGroup,\n allow_email_notifications: false,\n allow_phone_notifications: false,\n allow_postal_notifications: false,\n },\n organization: {\n name: \"\",\n organisation_number: \"\",\n tax_id_vat_number: \"\",\n contact_name: \"\",\n email: \"\",\n invoice_email: \"\",\n phone: \"\",\n external_ref: \"\",\n attribute: \"\",\n credit_check: false,\n custom_fields: {},\n billing_address: [\n {\n street_address: \"\",\n house_number: \"\",\n city: \"\",\n postal_code: \"\",\n country: defaultCountry,\n state_province: \"\",\n phone: \"\",\n co_address: \"\",\n name: \"\",\n is_default: true,\n shipping_type: \"standard\",\n },\n ],\n },\n shipping_address: [\n {\n street_address: \"\",\n house_number: \"\",\n city: \"\",\n postal_code: \"\",\n country: defaultCountry,\n state_province: \"\",\n phone: \"\",\n co_address: \"\",\n name: \"\",\n is_default: true,\n shipping_type: \"standard\",\n },\n ],\n use_billing_as_shipping: false,\n terms_accepted: false,\n },\n })\n\n const { watch, setValue } = form\n const useBillingAsShipping = watch(\"use_billing_as_shipping\")\n const billingAddress = watch(\"organization.billing_address.0\")\n const contactEmail = watch(\"user.email\")\n const contactPhone = watch(\"user.phone_number\")\n const orgNumber = watch(\"organization.organisation_number\")\n const invoiceCountry = watch(\"organization.billing_address.0.country\")\n\n // Keep track of last autofilled values\n const lastAutoOrgEmail = useRef<string | null>(null)\n const lastAutoInvoiceEmail = useRef<string | null>(null)\n const lastAutoOrgPhone = useRef<string | null>(null)\n const lastAutoVat = useRef<string | null>(null)\n\n // Update shipping address when billing address changes\n useEffect(() => {\n if (useBillingAsShipping && billingAddress) {\n setValue(\"shipping_address.0\", billingAddress)\n }\n }, [useBillingAsShipping, billingAddress, setValue])\n\n // Autofill organization email and invoice email from contact email\n useEffect(() => {\n if (!contactEmail) return\n\n const currentOrgEmail = form.getValues(\"organization.email\")\n if (!currentOrgEmail || currentOrgEmail === lastAutoOrgEmail.current) {\n setValue(\"organization.email\", contactEmail)\n lastAutoOrgEmail.current = contactEmail\n }\n\n const currentInvoiceEmail = form.getValues(\"organization.invoice_email\")\n if (!currentInvoiceEmail || currentInvoiceEmail === lastAutoInvoiceEmail.current) {\n setValue(\"organization.invoice_email\", contactEmail)\n lastAutoInvoiceEmail.current = contactEmail\n }\n }, [contactEmail, setValue, form])\n\n // Autofill organization phone from contact phone\n useEffect(() => {\n if (!contactPhone) return\n\n const currentOrgPhone = form.getValues(\"organization.phone\")\n if (!currentOrgPhone || currentOrgPhone === lastAutoOrgPhone.current) {\n setValue(\"organization.phone\", contactPhone)\n lastAutoOrgPhone.current = contactPhone\n }\n }, [contactPhone, setValue, form])\n\n // Autofill VAT number based on organisation number and invoice country\n useEffect(() => {\n const currentOrgNumber = form.getValues(\"organization.organisation_number\")\n const currentCountry = (form.getValues(\"organization.billing_address.0.country\") || \"\")\n .toString()\n .toUpperCase()\n const currentVat = form.getValues(\"organization.tax_id_vat_number\")\n\n if (!currentOrgNumber) {\n if (!currentVat || currentVat === lastAutoVat.current) {\n setValue(\"organization.tax_id_vat_number\", \"\")\n lastAutoVat.current = \"\"\n }\n return\n }\n\n const computedVat = currentCountry === \"SE\" ? `SE${currentOrgNumber}01` : currentOrgNumber\n\n if (!currentVat || currentVat === lastAutoVat.current) {\n setValue(\"organization.tax_id_vat_number\", computedVat)\n lastAutoVat.current = computedVat\n }\n }, [orgNumber, invoiceCountry, setValue, form])\n\n const onSubmit = async (values: FormData) => {\n setIsPending(true)\n setErrors({})\n\n try {\n // First register the user\n const userResult = await registerUserWithoutRedirectAction({\n firstName: values.user.first_name,\n lastName: values.user.last_name,\n email: values.user.email,\n password: values.user.password,\n phone_number: values.user.phone_number,\n language: values.user.language,\n country_code: values.user.country_code,\n market: values.user.market,\n store_group: values.user.store_group,\n allow_email_notifications: values.user.allow_email_notifications,\n allow_phone_notifications: values.user.allow_phone_notifications,\n allow_postal_notifications: values.user.allow_postal_notifications,\n status: organisationStatus,\n })\n\n if (userResult?.errors) {\n setErrors(userResult.errors)\n setIsPending(false)\n return\n }\n \n const userId = userResult?.data.id\n if (!userId) {\n setErrors({ general: [\"User registration failed. Please try again.\"] })\n setIsPending(false)\n return\n }\n\n // Then register the organisation\n const organisationData: RegisterOrganisationRequest = {\n billing_address: values.organization\n .billing_address as Partial<OrganisationBillingAddress>[],\n shipping_address: values.shipping_address as Partial<OrganisationShippingAddress>[],\n contact_name: values.organization.contact_name,\n credit_check: values.organization.credit_check,\n custom_fields: values.organization.custom_fields,\n email: values.organization.email.toLowerCase(),\n external_ref: values.organization.external_ref,\n invoice_email: values.organization.invoice_email?.toLowerCase(),\n name: values.organization.name,\n organisation_number: values.organization.organisation_number,\n phone: values.organization.phone,\n tax_id_vat_number: values.organization.tax_id_vat_number,\n user_id: userId,\n attribute_ids: values.organization.attribute ? [values.organization.attribute] : [],\n status: organisationStatus as \"active\" | \"pending\" | \"inactive\" | undefined,\n }\n\n const orgResult = await registerOrganisationAction(organisationData)\n\n if (orgResult?.error) {\n setErrors({ general: [orgResult.error] })\n setIsPending(false)\n return\n }\n\n // Success - show confirmation or redirect\n setConfirmMode(true)\n } catch (error) {\n console.error(\"Registration error:\", error)\n setErrors({ general: [\"Failed to register. Please try again.\"] })\n } finally {\n setIsPending(false)\n }\n }\n\n const inputBaseClasses = `\n w-full px-4 py-2.5\n border border-(--enad-border-color) \n rounded-(--enad-border-radius)\n focus:ring-2 focus:ring-(--enad-button-bg)\n focus:border-(--enad-button-bg)\n outline-none transition\n bg-(--enad-background)\n text-(--enad-text-primary-color)\n `\n\n const buttonBaseClasses = `\n w-full py-2.5\n bg-(--enad-button-bg)\n hover:bg-(--enad-button-hover-bg)\n text-(--enad-button-color)\n font-medium rounded-(--enad-border-radius)\n transition shadow-sm hover:shadow\n disabled:opacity-50 disabled:cursor-not-allowed\n `\n\n const labelClasses = `block text-sm font-medium text-(--enad-text-primary-color) mb-1`\n const errorClasses = `text-(--enad-error-color) text-sm mt-1`\n const sectionTitleClasses = `text-xl font-semibold mb-4 pb-2 border-b border-(--enad-border-color)`\n\n if (confirmMode) {\n return (\n <main className=\"flex items-center justify-center px-4\">\n <div className=\"w-full max-w-md bg-(--enad-surface) shadow-lg p-8 border border-(--enad-border-color) rounded-(--enad-border-radius)\">\n <h2 className=\"text-2xl font-semibold mb-2 text-center text-(--enad-text-primary-color)\">\n Verify your email\n </h2>\n <p className=\"text-sm text-center text-(--enad-text-muted-color)\">\n Please check your email to verify your account.\n </p>\n </div>\n </main>\n )\n }\n\n return (\n <main className=\"flex items-center justify-center px-4 py-8\">\n <div className=\"w-full max-w-4xl bg-(--enad-surface) shadow-lg p-8 border border-(--enad-border-color) rounded-(--enad-border-radius)\">\n <h2 className=\"text-2xl font-semibold mb-2 text-center text-(--enad-text-primary-color)\">\n {title}\n </h2>\n <p className=\"text-sm mb-8 text-center text-(--enad-text-muted-color)\">{subtitle}</p>\n\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-8\">\n {/* Contact Person Section */}\n <div className=\"space-y-4\">\n <h3 className={sectionTitleClasses}>Contact Person</h3>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n First Name <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"user.first_name\")}\n className={inputBaseClasses}\n placeholder=\"John\"\n />\n {form.formState.errors.user?.first_name && (\n <p className={errorClasses}>{form.formState.errors.user.first_name.message}</p>\n )}\n </div>\n <div>\n <label className={labelClasses}>\n Last Name <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"user.last_name\")}\n className={inputBaseClasses}\n placeholder=\"Doe\"\n />\n {form.formState.errors.user?.last_name && (\n <p className={errorClasses}>{form.formState.errors.user.last_name.message}</p>\n )}\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Email <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n type=\"email\"\n {...form.register(\"user.email\")}\n className={inputBaseClasses}\n placeholder=\"you@example.com\"\n />\n {form.formState.errors.user?.email && (\n <p className={errorClasses}>{form.formState.errors.user.email.message}</p>\n )}\n </div>\n <div>\n <label className={labelClasses}>Phone Number</label>\n <input\n type=\"tel\"\n {...form.register(\"user.phone_number\")}\n className={inputBaseClasses}\n placeholder=\"+46 123 456 789\"\n />\n {form.formState.errors.user?.phone_number && (\n <p className={errorClasses}>{form.formState.errors.user.phone_number.message}</p>\n )}\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Password <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <div className=\"relative\">\n <input\n type={showPassword ? \"text\" : \"password\"}\n {...form.register(\"user.password\")}\n className={inputBaseClasses + \" pr-10\"}\n placeholder=\"••••••••\"\n />\n <button\n type=\"button\"\n onClick={() => setShowPassword(!showPassword)}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 text-(--enad-text-muted-color)\"\n >\n {showPassword ? \"Hide\" : \"Show\"}\n </button>\n </div>\n {form.formState.errors.user?.password && (\n <p className={errorClasses}>{form.formState.errors.user.password.message}</p>\n )}\n </div>\n <div>\n <label className={labelClasses}>\n Confirm Password <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <div className=\"relative\">\n <input\n type={showConfirmPassword ? \"text\" : \"password\"}\n {...form.register(\"user.confirmPassword\")}\n className={inputBaseClasses + \" pr-10\"}\n placeholder=\"••••••••\"\n />\n <button\n type=\"button\"\n onClick={() => setShowConfirmPassword(!showConfirmPassword)}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 text-(--enad-text-muted-color)\"\n >\n {showConfirmPassword ? \"Hide\" : \"Show\"}\n </button>\n </div>\n {form.formState.errors.user?.confirmPassword && (\n <p className={errorClasses}>\n {form.formState.errors.user.confirmPassword.message}\n </p>\n )}\n </div>\n </div>\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n Communication Preferences\n </p>\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n {...form.register(\"user.allow_email_notifications\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm text-(--enad-text-primary-color)\">\n Accept email notifications\n </label>\n </div>\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n {...form.register(\"user.allow_phone_notifications\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm text-(--enad-text-primary-color)\">\n Accept SMS notifications\n </label>\n </div>\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n {...form.register(\"user.allow_postal_notifications\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm text-(--enad-text-primary-color)\">\n Accept postal notifications\n </label>\n </div>\n </div>\n </div>\n\n {/* Company Information Section */}\n <div className=\"space-y-4\">\n <h3 className={sectionTitleClasses}>Company Information</h3>\n <div>\n <label className={labelClasses}>\n Company Name <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.name\")}\n className={inputBaseClasses}\n placeholder=\"Company Name\"\n />\n {form.formState.errors.organization?.name && (\n <p className={errorClasses}>{form.formState.errors.organization.name.message}</p>\n )}\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Organisation Number <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.organisation_number\")}\n className={inputBaseClasses}\n placeholder=\"1234567890\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n form.setValue(\n \"organization.organisation_number\",\n e.target.value.replace(/\\D/g, \"\")\n )\n }}\n />\n {form.formState.errors.organization?.organisation_number && (\n <p className={errorClasses}>\n {form.formState.errors.organization.organisation_number.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>\n Tax ID/VAT Number <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.tax_id_vat_number\")}\n className={inputBaseClasses}\n placeholder=\"SE123456789001\"\n />\n {form.formState.errors.organization?.tax_id_vat_number && (\n <p className={errorClasses}>\n {form.formState.errors.organization.tax_id_vat_number.message}\n </p>\n )}\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Company Email <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n type=\"email\"\n {...form.register(\"organization.email\")}\n className={inputBaseClasses}\n placeholder=\"company@example.com\"\n />\n {form.formState.errors.organization?.email && (\n <p className={errorClasses}>{form.formState.errors.organization.email.message}</p>\n )}\n </div>\n <div>\n <label className={labelClasses}>Company Phone</label>\n <input\n type=\"tel\"\n {...form.register(\"organization.phone\")}\n className={inputBaseClasses}\n placeholder=\"+46 123 456 789\"\n />\n {form.formState.errors.organization?.phone && (\n <p className={errorClasses}>{form.formState.errors.organization.phone.message}</p>\n )}\n </div>\n </div>\n <div>\n <label className={labelClasses}>Invoice Email</label>\n <input\n type=\"email\"\n {...form.register(\"organization.invoice_email\")}\n className={inputBaseClasses}\n placeholder=\"invoices@example.com\"\n />\n {form.formState.errors.organization?.invoice_email && (\n <p className={errorClasses}>\n {form.formState.errors.organization.invoice_email.message}\n </p>\n )}\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>Contact Name</label>\n <input\n {...form.register(\"organization.contact_name\")}\n className={inputBaseClasses}\n placeholder=\"Contact Person\"\n />\n {form.formState.errors.organization?.contact_name && (\n <p className={errorClasses}>\n {form.formState.errors.organization.contact_name.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>External Reference</label>\n <input\n {...form.register(\"organization.external_ref\")}\n className={inputBaseClasses}\n placeholder=\"External Ref\"\n />\n {form.formState.errors.organization?.external_ref && (\n <p className={errorClasses}>\n {form.formState.errors.organization.external_ref.message}\n </p>\n )}\n </div>\n </div>\n </div>\n\n {/* Billing Address Section */}\n <div className=\"space-y-4\">\n <h3 className={sectionTitleClasses}>Billing Address</h3>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Street Address <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.billing_address.0.street_address\")}\n className={inputBaseClasses}\n placeholder=\"Street Address\"\n />\n {form.formState.errors.organization?.billing_address?.[0]?.street_address && (\n <p className={errorClasses}>\n {form.formState.errors.organization.billing_address[0]?.street_address?.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>House Number</label>\n <input\n {...form.register(\"organization.billing_address.0.house_number\")}\n className={inputBaseClasses}\n placeholder=\"123\"\n />\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>Co Address</label>\n <input\n {...form.register(\"organization.billing_address.0.co_address\")}\n className={inputBaseClasses}\n placeholder=\"Co Address\"\n />\n </div>\n <div>\n <label className={labelClasses}>\n Postal Code <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.billing_address.0.postal_code\")}\n className={inputBaseClasses}\n placeholder=\"12345\"\n />\n {form.formState.errors.organization?.billing_address?.[0]?.postal_code && (\n <p className={errorClasses}>\n {form.formState.errors.organization.billing_address[0]?.postal_code?.message}\n </p>\n )}\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n City <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"organization.billing_address.0.city\")}\n className={inputBaseClasses}\n placeholder=\"City\"\n />\n {form.formState.errors.organization?.billing_address?.[0]?.city && (\n <p className={errorClasses}>\n {form.formState.errors.organization.billing_address[0]?.city?.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>\n Country <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <select\n {...form.register(\"organization.billing_address.0.country\")}\n className={inputBaseClasses}\n >\n <option value=\"SE\">Sweden</option>\n <option value=\"NO\">Norway</option>\n <option value=\"DK\">Denmark</option>\n <option value=\"FI\">Finland</option>\n </select>\n {form.formState.errors.organization?.billing_address?.[0]?.country && (\n <p className={errorClasses}>\n {form.formState.errors.organization.billing_address[0]?.country?.message}\n </p>\n )}\n </div>\n </div>\n </div>\n\n {/* Shipping Address Section */}\n <div className=\"space-y-4\">\n <h3 className={sectionTitleClasses}>Shipping Address</h3>\n <div className=\"flex items-center gap-2 mb-4\">\n <input\n type=\"checkbox\"\n {...form.register(\"use_billing_as_shipping\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n Same address as billing address\n </label>\n </div>\n {!useBillingAsShipping && (\n <>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n Street Address <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"shipping_address.0.street_address\")}\n className={inputBaseClasses}\n placeholder=\"Street Address\"\n />\n {form.formState.errors.shipping_address?.[0]?.street_address && (\n <p className={errorClasses}>\n {form.formState.errors.shipping_address[0]?.street_address?.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>House Number</label>\n <input\n {...form.register(\"shipping_address.0.house_number\")}\n className={inputBaseClasses}\n placeholder=\"123\"\n />\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>Co Address</label>\n <input\n {...form.register(\"shipping_address.0.co_address\")}\n className={inputBaseClasses}\n placeholder=\"Co Address\"\n />\n </div>\n <div>\n <label className={labelClasses}>\n Postal Code <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"shipping_address.0.postal_code\")}\n className={inputBaseClasses}\n placeholder=\"12345\"\n />\n {form.formState.errors.shipping_address?.[0]?.postal_code && (\n <p className={errorClasses}>\n {form.formState.errors.shipping_address[0]?.postal_code?.message}\n </p>\n )}\n </div>\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={labelClasses}>\n City <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <input\n {...form.register(\"shipping_address.0.city\")}\n className={inputBaseClasses}\n placeholder=\"City\"\n />\n {form.formState.errors.shipping_address?.[0]?.city && (\n <p className={errorClasses}>\n {form.formState.errors.shipping_address[0]?.city?.message}\n </p>\n )}\n </div>\n <div>\n <label className={labelClasses}>\n Country <span className=\"text-(--enad-error-color)\">*</span>\n </label>\n <select\n {...form.register(\"shipping_address.0.country\")}\n className={inputBaseClasses}\n >\n <option value=\"SE\">Sweden</option>\n <option value=\"NO\">Norway</option>\n <option value=\"DK\">Denmark</option>\n <option value=\"FI\">Finland</option>\n </select>\n {form.formState.errors.shipping_address?.[0]?.country && (\n <p className={errorClasses}>\n {form.formState.errors.shipping_address[0]?.country?.message}\n </p>\n )}\n </div>\n </div>\n </>\n )}\n </div>\n\n {/* Terms and Conditions */}\n <div className=\"flex items-center gap-2\">\n <input type=\"checkbox\" {...form.register(\"terms_accepted\")} className=\"h-4 w-4\" />\n <label className=\"text-sm text-(--enad-text-primary-color)\">\n I accept the{\" \"}\n <a\n href=\"/terms\"\n target=\"_blank\"\n className=\"text-(--enad-link-color) hover:text-(--enad-link-hover-color) hover:underline\"\n >\n terms and conditions\n </a>\n </label>\n </div>\n {form.formState.errors.terms_accepted && (\n <p className={errorClasses}>{form.formState.errors.terms_accepted.message}</p>\n )}\n\n {/* Submit Button */}\n <button type=\"submit\" disabled={isPending} className={buttonBaseClasses}>\n {isPending ? \"Signing up...\" : submitText}\n </button>\n\n {/* General errors */}\n {errors.general && (\n <p className={errorClasses + \" mt-2 text-center\"}>{errors.general.join(\", \")}</p>\n )}\n </form>\n\n {/* Extra Link */}\n {extraLink && (\n <p className=\"text-sm text-(--enad-text-muted-color) text-center mt-6\">\n <a\n href={extraLink.href}\n className=\"text-(--enad-link-color) hover:text-(--enad-link-hover-color) font-medium\"\n >\n {extraLink.text}\n </a>\n </p>\n )}\n </div>\n </main>\n )\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/user/components/signup-organisation-form.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n type OrganisationBillingAddress,\n type OrganisationShippingAddress,\n type RegisterOrganisationRequest,\n} from \"@enadhq/enad-ts-sdk\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport React, { useEffect, useRef, useState } from \"react\"\nimport { type FieldError, type UseFormReturn, useForm } from \"react-hook-form\"\nimport * as z from \"zod\"\nimport { registerOrganisationAction } from \"../actions/registerOrganisationAction\"\nimport { registerUserWithoutRedirectAction } from \"../actions/registerUserWithoutRedirectAction\"\nimport { StorefrontButton } from \"../../storefront/primitives/button\"\n\nconst addressSchema = z.object({\n street_address: z.string().min(1, \"Street address is required\"),\n house_number: z.string().optional(),\n city: z.string().min(1, \"City is required\"),\n postal_code: z.string().min(1, \"Postal code is required\"),\n country: z.string().min(1, \"Country is required\"),\n state_province: z.string().optional(),\n phone: z.string().optional(),\n co_address: z.string().optional(),\n name: z.string().optional(),\n is_default: z.boolean().default(true),\n shipping_type: z.string().default(\"standard\"),\n})\n\nconst userSchema = z\n .object({\n first_name: z.string().trim().min(1, \"First name is required\"),\n last_name: z.string().trim().min(1, \"Last name is required\"),\n email: z.string().email(\"Invalid email address\").min(1, \"Email is required\"),\n password: z\n .string()\n .min(10, \"Password must be at least 10 characters\")\n .regex(/\\d/, \"Password must contain a number\"),\n confirmPassword: z.string(),\n phone_number: z.string().optional(),\n language: z.string().default(\"SV\"),\n country_code: z.string().default(\"SE\"),\n market: z.string().default(\"SE\"),\n store_group: z.string().default(\"default\"),\n allow_email_notifications: z.boolean().default(false),\n allow_phone_notifications: z.boolean().default(false),\n allow_postal_notifications: z.boolean().default(false),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: \"Passwords do not match\",\n path: [\"confirmPassword\"],\n })\n\nconst organizationSchema = z.object({\n name: z.string().min(1, \"Organization name is required\"),\n organisation_number: z.string().min(1, \"Organization number is required\"),\n tax_id_vat_number: z.string().min(1, \"Tax ID/VAT number is required\"),\n contact_name: z.string().optional(),\n email: z.string().email(\"Invalid email address\").min(1, \"Email is required\"),\n invoice_email: z.string().email(\"Invalid email address\").optional(),\n phone: z.string().optional(),\n external_ref: z.string().optional(),\n attribute: z.string().optional(),\n credit_check: z.boolean().default(false),\n custom_fields: z.record(z.string(), z.any()).optional(),\n billing_address: z.array(addressSchema).min(1),\n})\n\nconst formSchema = z.object({\n user: userSchema,\n organization: organizationSchema,\n shipping_address: z.array(addressSchema).min(1),\n use_billing_as_shipping: z.boolean().default(false),\n terms_accepted: z.boolean().refine((val) => val === true, {\n message: \"You must accept the terms and conditions\",\n }),\n})\n\ntype FormData = z.infer<typeof formSchema>\n\nconst INPUT_BASE_CLASSES = `\n w-full px-4 py-2.5\n border border-(--enad-border-color)\n rounded-[var(--enad-input-radius)]\n focus:ring-2 focus:ring-(--enad-button-bg)\n focus:border-(--enad-button-bg)\n outline-none transition\n bg-(--enad-background)\n text-(--enad-text-primary-color)\n`\nconst LABEL_CLASSES = `block text-sm font-medium text-(--enad-text-primary-color) mb-1`\nconst ERROR_CLASSES = `text-(--enad-error-color) text-sm mt-1`\nconst SECTION_TITLE_CLASSES = `text-xl font-semibold mb-4 pb-2 border-b border-(--enad-border-color)`\n\nfunction ariaError(error: FieldError | undefined, id: string): string | undefined {\n return error ? id : undefined\n}\n\ninterface FormFieldProps {\n label: string\n required?: boolean\n errorId?: string\n error?: FieldError\n children: React.ReactNode\n}\n\nfunction FormField({ label, required, errorId, error, children }: FormFieldProps) {\n return (\n <div>\n <label className={LABEL_CLASSES}>\n {label}{required && <span className=\"text-(--enad-error-color)\"> *</span>}\n </label>\n {children}\n {error && (\n <p id={errorId} role=\"alert\" className={ERROR_CLASSES}>{error.message}</p>\n )}\n </div>\n )\n}\n\ninterface ConfirmationViewProps {\n title: string\n message: string\n}\n\nfunction ConfirmationView({ title, message }: ConfirmationViewProps) {\n return (\n <main className=\"flex items-center justify-center px-4\">\n <div className=\"w-full max-w-md bg-(--enad-surface) shadow-lg p-8 border border-(--enad-border-color) rounded-(--enad-card-radius)\">\n <h2 className=\"text-2xl font-semibold mb-2 text-center text-(--enad-text-primary-color)\">\n {title}\n </h2>\n <p className=\"text-sm text-center text-(--enad-text-muted-color)\">\n {message}\n </p>\n </div>\n </main>\n )\n}\n\ninterface ContactNameFieldsProps {\n form: UseFormReturn<FormData>\n firstNameLabel: string\n lastNameLabel: string\n}\n\nfunction ContactNameFields({ form, firstNameLabel, lastNameLabel }: ContactNameFieldsProps) {\n const errors = form.formState.errors\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={firstNameLabel} required errorId=\"user-firstName-error\" error={errors.user?.first_name}>\n <input\n {...form.register(\"user.first_name\")}\n aria-describedby={ariaError(errors.user?.first_name, \"user-firstName-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"John\"\n />\n </FormField>\n <FormField label={lastNameLabel} required errorId=\"user-lastName-error\" error={errors.user?.last_name}>\n <input\n {...form.register(\"user.last_name\")}\n aria-describedby={ariaError(errors.user?.last_name, \"user-lastName-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"Doe\"\n />\n </FormField>\n </div>\n )\n}\n\ninterface ContactEmailPhoneFieldsProps {\n form: UseFormReturn<FormData>\n emailLabel: string\n phoneLabel: string\n}\n\nfunction ContactEmailPhoneFields({ form, emailLabel, phoneLabel }: ContactEmailPhoneFieldsProps) {\n const errors = form.formState.errors\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={emailLabel} required errorId=\"user-email-error\" error={errors.user?.email}>\n <input\n type=\"email\"\n {...form.register(\"user.email\")}\n aria-describedby={ariaError(errors.user?.email, \"user-email-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"you@example.com\"\n />\n </FormField>\n <FormField label={phoneLabel} errorId=\"user-phone-error\" error={errors.user?.phone_number}>\n <input\n type=\"tel\"\n {...form.register(\"user.phone_number\")}\n aria-describedby={ariaError(errors.user?.phone_number, \"user-phone-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"+46 123 456 789\"\n />\n </FormField>\n </div>\n )\n}\n\ninterface ContactPasswordFieldsProps {\n form: UseFormReturn<FormData>\n passwordLabel: string\n confirmPasswordLabel: string\n showPassword: boolean\n showConfirmPassword: boolean\n onTogglePassword: () => void\n onToggleConfirmPassword: () => void\n}\n\nfunction ContactPasswordFields({\n form, passwordLabel, confirmPasswordLabel,\n showPassword, showConfirmPassword,\n onTogglePassword, onToggleConfirmPassword,\n}: ContactPasswordFieldsProps) {\n const errors = form.formState.errors\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={passwordLabel} required errorId=\"user-password-error\" error={errors.user?.password}>\n <div className=\"relative\">\n <input\n type={showPassword ? \"text\" : \"password\"}\n {...form.register(\"user.password\")}\n aria-describedby={ariaError(errors.user?.password, \"user-password-error\")}\n className={`${INPUT_BASE_CLASSES} pr-10`}\n placeholder=\"••••••••\"\n />\n <button\n type=\"button\"\n onClick={onTogglePassword}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 text-(--enad-text-muted-color)\"\n >\n {showPassword ? \"Hide\" : \"Show\"}\n </button>\n </div>\n </FormField>\n <FormField label={confirmPasswordLabel} required errorId=\"user-confirmPassword-error\" error={errors.user?.confirmPassword}>\n <div className=\"relative\">\n <input\n type={showConfirmPassword ? \"text\" : \"password\"}\n {...form.register(\"user.confirmPassword\")}\n aria-describedby={ariaError(errors.user?.confirmPassword, \"user-confirmPassword-error\")}\n className={`${INPUT_BASE_CLASSES} pr-10`}\n placeholder=\"••••••••\"\n />\n <button\n type=\"button\"\n onClick={onToggleConfirmPassword}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 text-(--enad-text-muted-color)\"\n >\n {showConfirmPassword ? \"Hide\" : \"Show\"}\n </button>\n </div>\n </FormField>\n </div>\n )\n}\n\ninterface CommunicationPrefsFieldsProps {\n form: UseFormReturn<FormData>\n communicationPreferences: string\n emailNotifications: string\n smsNotifications: string\n postalNotifications: string\n}\n\nfunction CommunicationPrefsFields({\n form, communicationPreferences, emailNotifications, smsNotifications, postalNotifications,\n}: CommunicationPrefsFieldsProps) {\n return (\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n {communicationPreferences}\n </p>\n <div className=\"flex items-center gap-2\">\n <input type=\"checkbox\" {...form.register(\"user.allow_email_notifications\")} className=\"h-4 w-4\" />\n <label className=\"text-sm text-(--enad-text-primary-color)\">{emailNotifications}</label>\n </div>\n <div className=\"flex items-center gap-2\">\n <input type=\"checkbox\" {...form.register(\"user.allow_phone_notifications\")} className=\"h-4 w-4\" />\n <label className=\"text-sm text-(--enad-text-primary-color)\">{smsNotifications}</label>\n </div>\n <div className=\"flex items-center gap-2\">\n <input type=\"checkbox\" {...form.register(\"user.allow_postal_notifications\")} className=\"h-4 w-4\" />\n <label className=\"text-sm text-(--enad-text-primary-color)\">{postalNotifications}</label>\n </div>\n </div>\n )\n}\n\ninterface ContactPersonSectionProps {\n form: UseFormReturn<FormData>\n labels: {\n sectionTitle: string\n firstName: string\n lastName: string\n email: string\n phone: string\n password: string\n confirmPassword: string\n communicationPreferences: string\n emailNotifications: string\n smsNotifications: string\n postalNotifications: string\n }\n showPassword: boolean\n showConfirmPassword: boolean\n onTogglePassword: () => void\n onToggleConfirmPassword: () => void\n}\n\nfunction ContactPersonSection({\n form, labels,\n showPassword, showConfirmPassword,\n onTogglePassword, onToggleConfirmPassword,\n}: ContactPersonSectionProps) {\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <ContactNameFields form={form} firstNameLabel={labels.firstName} lastNameLabel={labels.lastName} />\n <ContactEmailPhoneFields form={form} emailLabel={labels.email} phoneLabel={labels.phone} />\n <ContactPasswordFields\n form={form}\n passwordLabel={labels.password}\n confirmPasswordLabel={labels.confirmPassword}\n showPassword={showPassword}\n showConfirmPassword={showConfirmPassword}\n onTogglePassword={onTogglePassword}\n onToggleConfirmPassword={onToggleConfirmPassword}\n />\n <CommunicationPrefsFields\n form={form}\n communicationPreferences={labels.communicationPreferences}\n emailNotifications={labels.emailNotifications}\n smsNotifications={labels.smsNotifications}\n postalNotifications={labels.postalNotifications}\n />\n </div>\n )\n}\n\ninterface CompanyInfoSectionProps {\n form: UseFormReturn<FormData>\n labels: {\n sectionTitle: string\n companyName: string\n orgNumber: string\n vatNumber: string\n companyEmail: string\n companyPhone: string\n invoiceEmail: string\n contactName: string\n externalRef: string\n }\n}\n\nfunction CompanyIdentityFields({ form, labels }: { form: UseFormReturn<FormData>; labels: { companyName: string; orgNumber: string; vatNumber: string } }) {\n const errors = form.formState.errors\n return (\n <>\n <FormField label={labels.companyName} required errorId=\"org-name-error\" error={errors.organization?.name}>\n <input\n {...form.register(\"organization.name\")}\n aria-describedby={ariaError(errors.organization?.name, \"org-name-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"Company Name\"\n />\n </FormField>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={labels.orgNumber} required errorId=\"org-number-error\" error={errors.organization?.organisation_number}>\n <input\n {...form.register(\"organization.organisation_number\")}\n aria-describedby={ariaError(errors.organization?.organisation_number, \"org-number-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"1234567890\"\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n form.setValue(\"organization.organisation_number\", e.target.value.replace(/\\D/g, \"\"))\n }}\n />\n </FormField>\n <FormField label={labels.vatNumber} required errorId=\"org-vat-error\" error={errors.organization?.tax_id_vat_number}>\n <input\n {...form.register(\"organization.tax_id_vat_number\")}\n aria-describedby={ariaError(errors.organization?.tax_id_vat_number, \"org-vat-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"SE123456789001\"\n />\n </FormField>\n </div>\n </>\n )\n}\n\nfunction CompanyContactFields({ form, labels }: { form: UseFormReturn<FormData>; labels: { companyEmail: string; companyPhone: string; invoiceEmail: string } }) {\n const errors = form.formState.errors\n return (\n <>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={labels.companyEmail} required errorId=\"org-email-error\" error={errors.organization?.email}>\n <input\n type=\"email\"\n {...form.register(\"organization.email\")}\n aria-describedby={ariaError(errors.organization?.email, \"org-email-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"company@example.com\"\n />\n </FormField>\n <FormField label={labels.companyPhone} errorId=\"org-phone-error\" error={errors.organization?.phone}>\n <input\n type=\"tel\"\n {...form.register(\"organization.phone\")}\n aria-describedby={ariaError(errors.organization?.phone, \"org-phone-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"+46 123 456 789\"\n />\n </FormField>\n </div>\n <FormField label={labels.invoiceEmail} errorId=\"org-invoiceEmail-error\" error={errors.organization?.invoice_email}>\n <input\n type=\"email\"\n {...form.register(\"organization.invoice_email\")}\n aria-describedby={ariaError(errors.organization?.invoice_email, \"org-invoiceEmail-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"invoices@example.com\"\n />\n </FormField>\n </>\n )\n}\n\nfunction CompanyExtraFields({ form, labels }: { form: UseFormReturn<FormData>; labels: { contactName: string; externalRef: string } }) {\n const errors = form.formState.errors\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={labels.contactName} errorId=\"org-contactName-error\" error={errors.organization?.contact_name}>\n <input\n {...form.register(\"organization.contact_name\")}\n aria-describedby={ariaError(errors.organization?.contact_name, \"org-contactName-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"Contact Person\"\n />\n </FormField>\n <FormField label={labels.externalRef} errorId=\"org-externalRef-error\" error={errors.organization?.external_ref}>\n <input\n {...form.register(\"organization.external_ref\")}\n aria-describedby={ariaError(errors.organization?.external_ref, \"org-externalRef-error\")}\n className={INPUT_BASE_CLASSES}\n placeholder=\"External Ref\"\n />\n </FormField>\n </div>\n )\n}\n\nfunction CompanyInfoSection({ form, labels }: CompanyInfoSectionProps) {\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <CompanyIdentityFields form={form} labels={labels} />\n <CompanyContactFields form={form} labels={labels} />\n <CompanyExtraFields form={form} labels={labels} />\n </div>\n )\n}\n\ninterface AddressLabels {\n streetAddress: string\n houseNumber: string\n coAddress: string\n postalCode: string\n city: string\n country: string\n}\n\ninterface AddressFieldsProps {\n form: UseFormReturn<FormData>\n prefix: \"organization.billing_address.0\" | \"shipping_address.0\"\n idPrefix: string\n labels: AddressLabels\n}\n\nfunction AddressStreetRow({ form, prefix, idPrefix, labels, addressErrors }: AddressFieldsProps & { addressErrors: Record<string, FieldError> | undefined }) {\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={labels.streetAddress} required errorId={`${idPrefix}-street-error`} error={addressErrors?.street_address}>\n <input\n {...form.register(`${prefix}.street_address`)}\n aria-describedby={ariaError(addressErrors?.street_address, `${idPrefix}-street-error`)}\n className={INPUT_BASE_CLASSES}\n placeholder=\"Street Address\"\n />\n </FormField>\n <div>\n <label className={LABEL_CLASSES}>{labels.houseNumber}</label>\n <input\n {...form.register(`${prefix}.house_number`)}\n className={INPUT_BASE_CLASSES}\n placeholder=\"123\"\n />\n </div>\n </div>\n )\n}\n\nfunction AddressPostalRow({ form, prefix, idPrefix, labels, addressErrors }: AddressFieldsProps & { addressErrors: Record<string, FieldError> | undefined }) {\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <div>\n <label className={LABEL_CLASSES}>{labels.coAddress}</label>\n <input\n {...form.register(`${prefix}.co_address`)}\n className={INPUT_BASE_CLASSES}\n placeholder=\"Co Address\"\n />\n </div>\n <FormField label={labels.postalCode} required errorId={`${idPrefix}-postal-error`} error={addressErrors?.postal_code}>\n <input\n {...form.register(`${prefix}.postal_code`)}\n aria-describedby={ariaError(addressErrors?.postal_code, `${idPrefix}-postal-error`)}\n className={INPUT_BASE_CLASSES}\n placeholder=\"12345\"\n />\n </FormField>\n </div>\n )\n}\n\nfunction AddressCityRow({ form, prefix, idPrefix, labels, addressErrors }: AddressFieldsProps & { addressErrors: Record<string, FieldError> | undefined }) {\n return (\n <div className=\"grid md:grid-cols-2 gap-4\">\n <FormField label={labels.city} required errorId={`${idPrefix}-city-error`} error={addressErrors?.city}>\n <input\n {...form.register(`${prefix}.city`)}\n aria-describedby={ariaError(addressErrors?.city, `${idPrefix}-city-error`)}\n className={INPUT_BASE_CLASSES}\n placeholder=\"City\"\n />\n </FormField>\n <FormField label={labels.country} required errorId={`${idPrefix}-country-error`} error={addressErrors?.country}>\n <select\n {...form.register(`${prefix}.country`)}\n aria-describedby={ariaError(addressErrors?.country, `${idPrefix}-country-error`)}\n className={INPUT_BASE_CLASSES}\n >\n <option value=\"SE\">Sweden</option>\n <option value=\"NO\">Norway</option>\n <option value=\"DK\">Denmark</option>\n <option value=\"FI\">Finland</option>\n </select>\n </FormField>\n </div>\n )\n}\n\nfunction AddressFields({ form, prefix, idPrefix, labels }: AddressFieldsProps) {\n const isBilling = prefix === \"organization.billing_address.0\"\n const addressErrors = isBilling\n ? form.formState.errors.organization?.billing_address?.[0]\n : form.formState.errors.shipping_address?.[0]\n const rowProps = { form, prefix, idPrefix, labels, addressErrors } as AddressFieldsProps & { addressErrors: Record<string, FieldError> | undefined }\n return (\n <>\n <AddressStreetRow {...rowProps} />\n <AddressPostalRow {...rowProps} />\n <AddressCityRow {...rowProps} />\n </>\n )\n}\n\nfunction BillingAddressSection({ form, labels }: { form: UseFormReturn<FormData>; labels: AddressLabels & { sectionTitle: string } }) {\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <AddressFields\n form={form}\n prefix=\"organization.billing_address.0\"\n idPrefix=\"billing\"\n labels={labels}\n />\n </div>\n )\n}\n\nfunction ShippingAddressSection({ form, useBillingAsShipping, labels }: { form: UseFormReturn<FormData>; useBillingAsShipping: boolean; labels: AddressLabels & { sectionTitle: string; sameBillingAsShipping: string } }) {\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <div className=\"flex items-center gap-2 mb-4\">\n <input\n type=\"checkbox\"\n {...form.register(\"use_billing_as_shipping\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n {labels.sameBillingAsShipping}\n </label>\n </div>\n {!useBillingAsShipping && (\n <AddressFields\n form={form}\n prefix=\"shipping_address.0\"\n idPrefix=\"shipping\"\n labels={labels}\n />\n )}\n </div>\n )\n}\n\nfunction useAutoFillEffects(form: UseFormReturn<FormData>) {\n const { watch, setValue } = form\n const useBillingAsShipping = watch(\"use_billing_as_shipping\")\n const billingAddress = watch(\"organization.billing_address.0\")\n const contactEmail = watch(\"user.email\")\n const contactPhone = watch(\"user.phone_number\")\n const orgNumber = watch(\"organization.organisation_number\")\n const invoiceCountry = watch(\"organization.billing_address.0.country\")\n\n const lastAutoOrgEmail = useRef<string | null>(null)\n const lastAutoInvoiceEmail = useRef<string | null>(null)\n const lastAutoOrgPhone = useRef<string | null>(null)\n const lastAutoVat = useRef<string | null>(null)\n\n useEffect(() => {\n if (useBillingAsShipping && billingAddress) {\n setValue(\"shipping_address.0\", billingAddress)\n }\n }, [useBillingAsShipping, billingAddress, setValue])\n\n useEffect(() => {\n if (!contactEmail) return\n const currentOrgEmail = form.getValues(\"organization.email\")\n if (!currentOrgEmail || currentOrgEmail === lastAutoOrgEmail.current) {\n setValue(\"organization.email\", contactEmail)\n lastAutoOrgEmail.current = contactEmail\n }\n const currentInvoiceEmail = form.getValues(\"organization.invoice_email\")\n if (!currentInvoiceEmail || currentInvoiceEmail === lastAutoInvoiceEmail.current) {\n setValue(\"organization.invoice_email\", contactEmail)\n lastAutoInvoiceEmail.current = contactEmail\n }\n }, [contactEmail, setValue, form])\n\n useEffect(() => {\n if (!contactPhone) return\n const currentOrgPhone = form.getValues(\"organization.phone\")\n if (!currentOrgPhone || currentOrgPhone === lastAutoOrgPhone.current) {\n setValue(\"organization.phone\", contactPhone)\n lastAutoOrgPhone.current = contactPhone\n }\n }, [contactPhone, setValue, form])\n\n useEffect(() => {\n const currentOrgNumber = form.getValues(\"organization.organisation_number\")\n const currentCountry = (form.getValues(\"organization.billing_address.0.country\") || \"\")\n .toString()\n .toUpperCase()\n const currentVat = form.getValues(\"organization.tax_id_vat_number\")\n if (!currentOrgNumber) {\n if (!currentVat || currentVat === lastAutoVat.current) {\n setValue(\"organization.tax_id_vat_number\", \"\")\n lastAutoVat.current = \"\"\n }\n return\n }\n const computedVat = currentCountry === \"SE\" ? `SE${currentOrgNumber}01` : currentOrgNumber\n if (!currentVat || currentVat === lastAutoVat.current) {\n setValue(\"organization.tax_id_vat_number\", computedVat)\n lastAutoVat.current = computedVat\n }\n }, [orgNumber, invoiceCountry, setValue, form])\n\n return { useBillingAsShipping }\n}\n\nconst DEFAULT_LABELS = {\n title: \"Create your organisation account\",\n subtitle: \"Sign up to get started\",\n submit: \"Sign Up\",\n signingUp: \"Signing up...\",\n contactPersonSection: \"Contact Person\",\n companyInfoSection: \"Company Information\",\n billingAddressSection: \"Billing Address\",\n shippingAddressSection: \"Shipping Address\",\n firstName: \"First Name\",\n lastName: \"Last Name\",\n email: \"Email\",\n phoneNumber: \"Phone Number\",\n password: \"Password\",\n confirmPassword: \"Confirm Password\",\n companyName: \"Company Name\",\n organisationNumber: \"Organisation Number\",\n taxIdVatNumber: \"Tax ID/VAT Number\",\n companyEmail: \"Company Email\",\n companyPhone: \"Company Phone\",\n invoiceEmail: \"Invoice Email\",\n contactName: \"Contact Name\",\n externalRef: \"External Reference\",\n streetAddress: \"Street Address\",\n houseNumber: \"House Number\",\n coAddress: \"Co Address\",\n postalCode: \"Postal Code\",\n city: \"City\",\n country: \"Country\",\n sameBillingAsShipping: \"Same address as billing address\",\n emailNotifications: \"Accept email notifications\",\n smsNotifications: \"Accept SMS notifications\",\n postalNotifications: \"Accept postal notifications\",\n communicationPreferences: \"Communication Preferences\",\n acceptTerms: \"I accept the\",\n termsLinkText: \"terms and conditions\",\n verifyEmailTitle: \"Verify your email\",\n verifyEmailMessage: \"Please check your email to verify your account.\",\n} as const\n\ntype ResolvedLabels = typeof DEFAULT_LABELS\n\nfunction resolveLabels(labels: NonNullable<SignupOrganisationFormProps[\"labels\"]>): ResolvedLabels {\n return { ...DEFAULT_LABELS, ...labels } as ResolvedLabels\n}\n\ninterface SignupOrganisationFormProps {\n labels?: {\n title?: string\n subtitle?: string\n submit?: string\n signingUp?: string\n contactPersonSection?: string\n companyInfoSection?: string\n billingAddressSection?: string\n shippingAddressSection?: string\n firstName?: string\n lastName?: string\n email?: string\n phoneNumber?: string\n password?: string\n confirmPassword?: string\n companyName?: string\n organisationNumber?: string\n taxIdVatNumber?: string\n companyEmail?: string\n companyPhone?: string\n invoiceEmail?: string\n contactName?: string\n externalRef?: string\n streetAddress?: string\n houseNumber?: string\n coAddress?: string\n postalCode?: string\n city?: string\n country?: string\n sameBillingAsShipping?: string\n emailNotifications?: string\n smsNotifications?: string\n postalNotifications?: string\n communicationPreferences?: string\n acceptTerms?: string\n termsLinkText?: string\n verifyEmailTitle?: string\n verifyEmailMessage?: string\n }\n extraLink?: {\n href: string\n text: string\n }\n successRedirect?: string\n organisationStatus?: \"active\" | \"pending\"\n defaultMarket?: string\n defaultLanguage?: string\n defaultCountry?: string\n defaultStoreGroup?: string\n}\n\nfunction buildDefaultValues(defaultLanguage: string, defaultMarket: string, defaultCountry: string, defaultStoreGroup: string): FormData {\n const emptyAddress = {\n street_address: \"\",\n house_number: \"\",\n city: \"\",\n postal_code: \"\",\n country: defaultCountry,\n state_province: \"\",\n phone: \"\",\n co_address: \"\",\n name: \"\",\n is_default: true as const,\n shipping_type: \"standard\",\n }\n return {\n user: {\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n password: \"\",\n confirmPassword: \"\",\n phone_number: \"\",\n language: defaultLanguage,\n market: defaultMarket,\n country_code: defaultCountry,\n store_group: defaultStoreGroup,\n allow_email_notifications: false,\n allow_phone_notifications: false,\n allow_postal_notifications: false,\n },\n organization: {\n name: \"\",\n organisation_number: \"\",\n tax_id_vat_number: \"\",\n contact_name: \"\",\n email: \"\",\n invoice_email: \"\",\n phone: \"\",\n external_ref: \"\",\n attribute: \"\",\n credit_check: false,\n custom_fields: {},\n billing_address: [emptyAddress],\n },\n shipping_address: [{ ...emptyAddress }],\n use_billing_as_shipping: false,\n terms_accepted: false,\n }\n}\n\nasync function submitRegistration(\n values: FormData,\n organisationStatus: \"active\" | \"pending\",\n setErrors: (errors: Record<string, string[]>) => void,\n): Promise<boolean> {\n const userResult = await registerUserWithoutRedirectAction({\n firstName: values.user.first_name,\n lastName: values.user.last_name,\n email: values.user.email,\n password: values.user.password,\n phone_number: values.user.phone_number,\n language: values.user.language,\n country_code: values.user.country_code,\n market: values.user.market,\n store_group: values.user.store_group,\n allow_email_notifications: values.user.allow_email_notifications,\n allow_phone_notifications: values.user.allow_phone_notifications,\n allow_postal_notifications: values.user.allow_postal_notifications,\n status: organisationStatus,\n })\n if (userResult?.errors) {\n setErrors(userResult.errors)\n return false\n }\n const userId = userResult?.data.id\n if (!userId) {\n setErrors({ general: [\"User registration failed. Please try again.\"] })\n return false\n }\n const organisationData: RegisterOrganisationRequest = {\n billing_address: values.organization\n .billing_address as Partial<OrganisationBillingAddress>[],\n shipping_address: values.shipping_address as Partial<OrganisationShippingAddress>[],\n contact_name: values.organization.contact_name,\n credit_check: values.organization.credit_check,\n custom_fields: values.organization.custom_fields,\n email: values.organization.email.toLowerCase(),\n external_ref: values.organization.external_ref,\n invoice_email: values.organization.invoice_email?.toLowerCase(),\n name: values.organization.name,\n organisation_number: values.organization.organisation_number,\n phone: values.organization.phone,\n tax_id_vat_number: values.organization.tax_id_vat_number,\n user_id: userId,\n attribute_ids: values.organization.attribute ? [values.organization.attribute] : [],\n status: organisationStatus as \"active\" | \"pending\" | \"inactive\" | undefined,\n }\n const orgResult = await registerOrganisationAction(organisationData)\n if (orgResult?.error) {\n setErrors({ general: [orgResult.error] })\n return false\n }\n return true\n}\n\ninterface FormBodyProps {\n form: UseFormReturn<FormData>\n l: ResolvedLabels\n isPending: boolean\n showPassword: boolean\n showConfirmPassword: boolean\n setShowPassword: (v: boolean) => void\n setShowConfirmPassword: (v: boolean) => void\n useBillingAsShipping: boolean\n errors: Record<string, string[]>\n onSubmit: (values: FormData) => Promise<void>\n extraLink: { href: string; text: string }\n}\n\nfunction FormBody({\n form, l, isPending,\n showPassword, showConfirmPassword,\n setShowPassword, setShowConfirmPassword,\n useBillingAsShipping, errors, onSubmit, extraLink,\n}: FormBodyProps) {\n const addressLabels = {\n streetAddress: l.streetAddress,\n houseNumber: l.houseNumber,\n coAddress: l.coAddress,\n postalCode: l.postalCode,\n city: l.city,\n country: l.country,\n }\n return (\n <main className=\"flex items-center justify-center px-4 py-8\">\n <div className=\"w-full max-w-4xl bg-(--enad-surface) shadow-lg p-8 border border-(--enad-border-color) rounded-(--enad-card-radius)\">\n <h2 className=\"text-2xl font-semibold mb-2 text-center text-(--enad-text-primary-color)\">\n {l.title}\n </h2>\n <p className=\"text-sm mb-8 text-center text-(--enad-text-muted-color)\">{l.subtitle}</p>\n <form onSubmit={form.handleSubmit(onSubmit)} className=\"space-y-8\">\n <ContactPersonSection\n form={form}\n labels={{\n sectionTitle: l.contactPersonSection,\n firstName: l.firstName,\n lastName: l.lastName,\n email: l.email,\n phone: l.phoneNumber,\n password: l.password,\n confirmPassword: l.confirmPassword,\n communicationPreferences: l.communicationPreferences,\n emailNotifications: l.emailNotifications,\n smsNotifications: l.smsNotifications,\n postalNotifications: l.postalNotifications,\n }}\n showPassword={showPassword}\n showConfirmPassword={showConfirmPassword}\n onTogglePassword={() => setShowPassword(!showPassword)}\n onToggleConfirmPassword={() => setShowConfirmPassword(!showConfirmPassword)}\n />\n <CompanyInfoSection\n form={form}\n labels={{\n sectionTitle: l.companyInfoSection,\n companyName: l.companyName,\n orgNumber: l.organisationNumber,\n vatNumber: l.taxIdVatNumber,\n companyEmail: l.companyEmail,\n companyPhone: l.companyPhone,\n invoiceEmail: l.invoiceEmail,\n contactName: l.contactName,\n externalRef: l.externalRef,\n }}\n />\n <BillingAddressSection\n form={form}\n labels={{ sectionTitle: l.billingAddressSection, ...addressLabels }}\n />\n <ShippingAddressSection\n form={form}\n useBillingAsShipping={useBillingAsShipping}\n labels={{\n sectionTitle: l.shippingAddressSection,\n sameBillingAsShipping: l.sameBillingAsShipping,\n ...addressLabels,\n }}\n />\n <div className=\"flex items-center gap-2\">\n <input\n type=\"checkbox\"\n {...form.register(\"terms_accepted\")}\n aria-describedby={ariaError(form.formState.errors.terms_accepted, \"terms-error\")}\n className=\"h-4 w-4\"\n />\n <label className=\"text-sm text-(--enad-text-primary-color)\">\n {l.acceptTerms}{\" \"}\n <a\n href=\"/terms\"\n target=\"_blank\"\n className=\"text-(--enad-link-color) hover:text-(--enad-link-hover-color) hover:underline\"\n >\n {l.termsLinkText}\n </a>\n </label>\n </div>\n {form.formState.errors.terms_accepted && (\n <p id=\"terms-error\" role=\"alert\" className={ERROR_CLASSES}>{form.formState.errors.terms_accepted.message}</p>\n )}\n <StorefrontButton type=\"submit\" disabled={isPending} className=\"w-full\">\n {isPending ? l.signingUp : l.submit}\n </StorefrontButton>\n {errors.general && (\n <p role=\"alert\" className={ERROR_CLASSES + \" mt-2 text-center\"}>{errors.general.join(\", \")}</p>\n )}\n </form>\n {extraLink && (\n <p className=\"text-sm text-(--enad-text-muted-color) text-center mt-6\">\n <a\n href={extraLink.href}\n className=\"text-(--enad-link-color) hover:text-(--enad-link-hover-color) font-medium\"\n >\n {extraLink.text}\n </a>\n </p>\n )}\n </div>\n </main>\n )\n}\n\nexport const SignupOrganisationForm: React.FC<SignupOrganisationFormProps> = ({\n labels = {},\n extraLink = { href: \"/login\", text: \"Already have an account? Sign in\" },\n organisationStatus = \"active\",\n defaultMarket = \"SE\",\n defaultLanguage = \"SV\",\n defaultCountry = \"SE\",\n defaultStoreGroup = \"default\",\n}) => {\n const l = resolveLabels(labels)\n const [errors, setErrors] = useState<Record<string, string[]>>({})\n const [isPending, setIsPending] = useState(false)\n const [showPassword, setShowPassword] = useState(false)\n const [showConfirmPassword, setShowConfirmPassword] = useState(false)\n const [confirmMode, setConfirmMode] = useState(false)\n\n const form = useForm<FormData>({\n resolver: zodResolver(formSchema),\n defaultValues: buildDefaultValues(defaultLanguage, defaultMarket, defaultCountry, defaultStoreGroup),\n })\n\n const { useBillingAsShipping } = useAutoFillEffects(form)\n\n const onSubmit = async (values: FormData) => {\n setIsPending(true)\n setErrors({})\n try {\n const success = await submitRegistration(values, organisationStatus, setErrors)\n if (success) {\n setConfirmMode(true)\n }\n } catch (error) {\n console.error(\"Registration error:\", error)\n setErrors({ general: [\"Failed to register. Please try again.\"] })\n } finally {\n setIsPending(false)\n }\n }\n\n if (confirmMode) {\n return <ConfirmationView title={l.verifyEmailTitle} message={l.verifyEmailMessage} />\n }\n\n return (\n <FormBody\n form={form}\n l={l}\n isPending={isPending}\n showPassword={showPassword}\n showConfirmPassword={showConfirmPassword}\n setShowPassword={setShowPassword}\n setShowConfirmPassword={setShowConfirmPassword}\n useBillingAsShipping={useBillingAsShipping}\n errors={errors}\n onSubmit={onSubmit}\n extraLink={extraLink}\n />\n )\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface UpdatePasswordFormProps {
|
|
3
|
+
token: string;
|
|
4
|
+
labels?: {
|
|
5
|
+
title?: string;
|
|
6
|
+
subtitle?: string;
|
|
7
|
+
password?: string;
|
|
8
|
+
passwordPlaceholder?: string;
|
|
9
|
+
submit?: string;
|
|
10
|
+
updating?: string;
|
|
11
|
+
};
|
|
12
|
+
successRedirect?: string;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const UpdatePasswordForm: React.FC<UpdatePasswordFormProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=update-password-form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-password-form.d.ts","sourceRoot":"","sources":["../../../../src/client/user/components/update-password-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmC,MAAM,OAAO,CAAA;AAKvD,UAAU,uBAAuB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA0EhE,CAAA"}
|
|
@@ -2,15 +2,24 @@
|
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { updatePasswordAction } from "../actions/updatePasswordAction";
|
|
5
|
+
import { StorefrontInput } from "../../storefront/primitives/input";
|
|
6
|
+
import { StorefrontButton } from "../../storefront/primitives/button";
|
|
5
7
|
const UpdatePasswordForm = ({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
token,
|
|
9
|
+
labels = {},
|
|
10
|
+
successRedirect = "/login",
|
|
11
|
+
className
|
|
10
12
|
}) => {
|
|
13
|
+
const {
|
|
14
|
+
title = "Create new password",
|
|
15
|
+
subtitle = "Enter a new password to update your account",
|
|
16
|
+
password: passwordLabel = "Password",
|
|
17
|
+
passwordPlaceholder = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",
|
|
18
|
+
submit = "Update Password",
|
|
19
|
+
updating = "Updating..."
|
|
20
|
+
} = labels;
|
|
11
21
|
const [errors, setErrors] = useState({});
|
|
12
22
|
const [isPending, setIsPending] = useState(false);
|
|
13
|
-
const token = "e";
|
|
14
23
|
const handleSubmit = async (e) => {
|
|
15
24
|
e.preventDefault();
|
|
16
25
|
setIsPending(true);
|
|
@@ -23,43 +32,25 @@ const UpdatePasswordForm = ({
|
|
|
23
32
|
}
|
|
24
33
|
setIsPending(false);
|
|
25
34
|
};
|
|
26
|
-
return /* @__PURE__ */ jsx("main", { className:
|
|
35
|
+
return /* @__PURE__ */ jsx("main", { className: `flex items-center justify-center px-4 font-enad ${className ?? ""}`, children: /* @__PURE__ */ jsxs("div", { className: "w-full max-w-md bg-(--enad-surface) border border-(--enad-border-color) shadow-lg rounded-(--enad-card-radius) p-8", children: [
|
|
27
36
|
/* @__PURE__ */ jsx("h2", { className: "text-2xl font-semibold text-(--enad-text-primary-color) mb-2 text-center", children: title }),
|
|
28
37
|
/* @__PURE__ */ jsx("p", { className: "text-(--enad-text-muted-color) text-sm text-center mb-8", children: subtitle }),
|
|
29
38
|
/* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "space-y-5", children: [
|
|
30
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
31
|
-
/* @__PURE__ */ jsx(
|
|
32
|
-
"label",
|
|
33
|
-
{
|
|
34
|
-
htmlFor: "password",
|
|
35
|
-
className: "block text-sm font-medium text-(--enad-text-primary-color) mb-1",
|
|
36
|
-
children: "Password"
|
|
37
|
-
}
|
|
38
|
-
),
|
|
39
|
-
/* @__PURE__ */ jsx(
|
|
40
|
-
"input",
|
|
41
|
-
{
|
|
42
|
-
type: "password",
|
|
43
|
-
id: "password",
|
|
44
|
-
name: "password",
|
|
45
|
-
required: true,
|
|
46
|
-
placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",
|
|
47
|
-
className: "w-full px-4 py-2.5 border border-(--enad-border-color) rounded-(--enad-border-radius) focus:ring-2 focus:ring-(--enad-button-bg) focus:border-(--enad-button-bg) outline-none transition"
|
|
48
|
-
}
|
|
49
|
-
),
|
|
50
|
-
errors.password && /* @__PURE__ */ jsx("p", { className: "text-(--enad-error-color) text-sm mt-1", children: errors.password.join(", ") })
|
|
51
|
-
] }),
|
|
52
39
|
/* @__PURE__ */ jsx(
|
|
53
|
-
|
|
40
|
+
StorefrontInput,
|
|
54
41
|
{
|
|
55
|
-
type: "
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
42
|
+
type: "password",
|
|
43
|
+
id: "password",
|
|
44
|
+
name: "password",
|
|
45
|
+
required: true,
|
|
46
|
+
label: passwordLabel,
|
|
47
|
+
placeholder: passwordPlaceholder,
|
|
48
|
+
error: errors.password?.join(", ")
|
|
59
49
|
}
|
|
60
50
|
),
|
|
61
|
-
|
|
62
|
-
errors.
|
|
51
|
+
/* @__PURE__ */ jsx(StorefrontButton, { type: "submit", disabled: isPending, className: "w-full", children: isPending ? updating : submit }),
|
|
52
|
+
errors.general && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-(--enad-error-color) text-sm mt-2 text-center", children: errors.general.join(", ") }),
|
|
53
|
+
errors.token && /* @__PURE__ */ jsx("p", { role: "alert", className: "text-(--enad-error-color) text-sm mt-2 text-center", children: errors.token.join(", ") })
|
|
63
54
|
] })
|
|
64
55
|
] }) });
|
|
65
56
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/user/components/update-password-form.tsx"],"sourcesContent":["\"use client\"\n\nimport React, { useState, FormEvent } from \"react\"\nimport { updatePasswordAction } from \"../actions/updatePasswordAction\"\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/user/components/update-password-form.tsx"],"sourcesContent":["\"use client\"\n\nimport React, { useState, type FormEvent } from \"react\"\nimport { updatePasswordAction } from \"../actions/updatePasswordAction\"\nimport { StorefrontInput } from \"../../storefront/primitives/input\"\nimport { StorefrontButton } from \"../../storefront/primitives/button\"\n\ninterface UpdatePasswordFormProps {\n token: string\n labels?: {\n title?: string\n subtitle?: string\n password?: string\n passwordPlaceholder?: string\n submit?: string\n updating?: string\n }\n successRedirect?: string\n className?: string\n}\n\ninterface FormErrors {\n password?: string[]\n token?: string[]\n general?: string[]\n}\n\nexport const UpdatePasswordForm: React.FC<UpdatePasswordFormProps> = ({\n token,\n labels = {},\n successRedirect = \"/login\",\n className,\n}) => {\n const {\n title = \"Create new password\",\n subtitle = \"Enter a new password to update your account\",\n password: passwordLabel = \"Password\",\n passwordPlaceholder = \"••••••••\",\n submit = \"Update Password\",\n updating = \"Updating...\",\n } = labels\n\n const [errors, setErrors] = useState<FormErrors>({})\n const [isPending, setIsPending] = useState(false)\n\n const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n setIsPending(true)\n setErrors({})\n\n const formData = new FormData(e.currentTarget)\n formData.set(\"token\", token)\n\n const res = await updatePasswordAction(formData, { redirectPath: successRedirect })\n\n if (res?.errors) {\n setErrors(res.errors)\n }\n\n setIsPending(false)\n }\n\n return (\n <main className={`flex items-center justify-center px-4 font-enad ${className ?? \"\"}`}>\n <div className=\"w-full max-w-md bg-(--enad-surface) border border-(--enad-border-color) shadow-lg rounded-(--enad-card-radius) p-8\">\n <h2 className=\"text-2xl font-semibold text-(--enad-text-primary-color) mb-2 text-center\">\n {title}\n </h2>\n <p className=\"text-(--enad-text-muted-color) text-sm text-center mb-8\">{subtitle}</p>\n\n <form onSubmit={handleSubmit} className=\"space-y-5\">\n <StorefrontInput\n type=\"password\"\n id=\"password\"\n name=\"password\"\n required\n label={passwordLabel}\n placeholder={passwordPlaceholder}\n error={errors.password?.join(\", \")}\n />\n\n {/* Submit */}\n <StorefrontButton type=\"submit\" disabled={isPending} className=\"w-full\">\n {isPending ? updating : submit}\n </StorefrontButton>\n\n {/* General errors */}\n {errors.general && (\n <p role=\"alert\" className=\"text-(--enad-error-color) text-sm mt-2 text-center\">\n {errors.general.join(\", \")}\n </p>\n )}\n {errors.token && (\n <p role=\"alert\" className=\"text-(--enad-error-color) text-sm mt-2 text-center\">\n {errors.token.join(\", \")}\n </p>\n )}\n </form>\n </div>\n </main>\n )\n}\n"],"mappings":";AAiEQ,cAKA,YALA;AA/DR,SAAgB,gBAAgC;AAChD,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AAsB1B,MAAM,qBAAwD,CAAC;AAAA,EACpE;AAAA,EACA,SAAS,CAAC;AAAA,EACV,kBAAkB;AAAA,EAClB;AACF,MAAM;AACJ,QAAM;AAAA,IACJ,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,UAAU,gBAAgB;AAAA,IAC1B,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT,WAAW;AAAA,EACb,IAAI;AAEJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAqB,CAAC,CAAC;AACnD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,eAAe,OAAO,MAAkC;AAC5D,MAAE,eAAe;AACjB,iBAAa,IAAI;AACjB,cAAU,CAAC,CAAC;AAEZ,UAAM,WAAW,IAAI,SAAS,EAAE,aAAa;AAC7C,aAAS,IAAI,SAAS,KAAK;AAE3B,UAAM,MAAM,MAAM,qBAAqB,UAAU,EAAE,cAAc,gBAAgB,CAAC;AAElF,QAAI,KAAK,QAAQ;AACf,gBAAU,IAAI,MAAM;AAAA,IACtB;AAEA,iBAAa,KAAK;AAAA,EACpB;AAEA,SACE,oBAAC,UAAK,WAAW,mDAAmD,aAAa,EAAE,IACjF,+BAAC,SAAI,WAAU,sHACb;AAAA,wBAAC,QAAG,WAAU,4EACX,iBACH;AAAA,IACA,oBAAC,OAAE,WAAU,2DAA2D,oBAAS;AAAA,IAEjF,qBAAC,UAAK,UAAU,cAAc,WAAU,aACtC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAG;AAAA,UACH,MAAK;AAAA,UACL,UAAQ;AAAA,UACR,OAAO;AAAA,UACP,aAAa;AAAA,UACb,OAAO,OAAO,UAAU,KAAK,IAAI;AAAA;AAAA,MACnC;AAAA,MAGA,oBAAC,oBAAiB,MAAK,UAAS,UAAU,WAAW,WAAU,UAC5D,sBAAY,WAAW,QAC1B;AAAA,MAGC,OAAO,WACN,oBAAC,OAAE,MAAK,SAAQ,WAAU,sDACvB,iBAAO,QAAQ,KAAK,IAAI,GAC3B;AAAA,MAED,OAAO,SACN,oBAAC,OAAE,MAAK,SAAQ,WAAU,sDACvB,iBAAO,MAAM,KAAK,IAAI,GACzB;AAAA,OAEJ;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/user/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to fetch the current authenticated user.
|
|
3
|
+
* Relies on /api/user which handles token refresh automatically.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useUser: () => {
|
|
6
|
+
user: import("..").EnadUser | null;
|
|
7
|
+
userIsSignedIn: boolean;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
isFetching: boolean;
|
|
10
|
+
refreshUser: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("..").EnadUser, Error>>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUser.d.ts","sourceRoot":"","sources":["../../../../src/client/user/hooks/useUser.tsx"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,OAAO;;;;;;CAyBnB,CAAA"}
|
|
@@ -20,7 +20,7 @@ const useUser = () => {
|
|
|
20
20
|
});
|
|
21
21
|
return {
|
|
22
22
|
user: userQuery.data ?? null,
|
|
23
|
-
userIsSignedIn:
|
|
23
|
+
userIsSignedIn: Boolean(userQuery.data),
|
|
24
24
|
isLoading: userQuery.isLoading,
|
|
25
25
|
isFetching: userQuery.isFetching,
|
|
26
26
|
refreshUser: userQuery.refetch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/client/user/hooks/useUser.tsx"],"sourcesContent":["\"use client\"\n\nimport { useQuery } from \"@tanstack/react-query\"\nimport { useEffect, useState } from \"react\"\nimport { getUserAction } from \"../actions/getUserAction\"\n\n/**\n * Hook to fetch the current authenticated user.\n * Relies on /api/user which handles token refresh automatically.\n */\nexport const useUser = () => {\n const [signedIn, setSignedIn] = useState(false)\n\n useEffect(() => {\n const isSignedIn = document.cookie.includes(\"user_sign_in=true\")\n setSignedIn(isSignedIn)\n }, [])\n\n const userQuery = useQuery({\n queryKey: [\"user\"],\n queryFn: async () => {\n return getUserAction()\n },\n staleTime: 5 * 60 * 1000, // Cache user for 5 minutes\n refetchOnMount: false,\n enabled: signedIn,\n })\n\n return {\n user: userQuery.data ?? null,\n userIsSignedIn:
|
|
1
|
+
{"version":3,"sources":["../../../../src/client/user/hooks/useUser.tsx"],"sourcesContent":["\"use client\"\n\nimport { useQuery } from \"@tanstack/react-query\"\nimport { useEffect, useState } from \"react\"\nimport { getUserAction } from \"../actions/getUserAction\"\n\n/**\n * Hook to fetch the current authenticated user.\n * Relies on /api/user which handles token refresh automatically.\n */\nexport const useUser = () => {\n const [signedIn, setSignedIn] = useState(false)\n\n useEffect(() => {\n const isSignedIn = document.cookie.includes(\"user_sign_in=true\")\n setSignedIn(isSignedIn)\n }, [])\n\n const userQuery = useQuery({\n queryKey: [\"user\"],\n queryFn: async () => {\n return getUserAction()\n },\n staleTime: 5 * 60 * 1000, // Cache user for 5 minutes\n refetchOnMount: false,\n enabled: signedIn,\n })\n\n return {\n user: userQuery.data ?? null,\n userIsSignedIn: Boolean(userQuery.data),\n isLoading: userQuery.isLoading,\n isFetching: userQuery.isFetching,\n refreshUser: userQuery.refetch,\n }\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AACzB,SAAS,WAAW,gBAAgB;AACpC,SAAS,qBAAqB;AAMvB,MAAM,UAAU,MAAM;AAC3B,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,YAAU,MAAM;AACd,UAAM,aAAa,SAAS,OAAO,SAAS,mBAAmB;AAC/D,gBAAY,UAAU;AAAA,EACxB,GAAG,CAAC,CAAC;AAEL,QAAM,YAAY,SAAS;AAAA,IACzB,UAAU,CAAC,MAAM;AAAA,IACjB,SAAS,YAAY;AACnB,aAAO,cAAc;AAAA,IACvB;AAAA,IACA,WAAW,IAAI,KAAK;AAAA;AAAA,IACpB,gBAAgB;AAAA,IAChB,SAAS;AAAA,EACX,CAAC;AAED,SAAO;AAAA,IACL,MAAM,UAAU,QAAQ;AAAA,IACxB,gBAAgB,QAAQ,UAAU,IAAI;AAAA,IACtC,WAAW,UAAU;AAAA,IACrB,YAAY,UAAU;AAAA,IACtB,aAAa,UAAU;AAAA,EACzB;AACF;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { LoginForm } from "./components/login-form";
|
|
2
|
+
export { SignupForm } from "./components/signup-form";
|
|
3
|
+
export { SignupOrganisationForm } from "./components/signup-organisation-form";
|
|
4
|
+
export { ResetPasswordForm } from "./components/reset-password-form";
|
|
5
|
+
export { UpdatePasswordForm } from "./components/update-password-form";
|
|
6
|
+
export { SignOut } from "./components/sign-out";
|
|
7
|
+
export { useUser } from "./hooks/useUser";
|
|
8
|
+
export type { EnadUser, EnadUserResponse, EnadSignupResponse, EnadLoginRequest, EnadSignupRequest, EnadUpdateUserRequest, EnadResetPasswordRequest, EnadOrganisation, EnadOrganisationByUser, EnadUserOrganisation, } from "./types/user";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,YAAY,EACV,QAAQ,EACR,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LoginForm } from "./components/login-form";
|
|
2
|
+
import { SignupForm } from "./components/signup-form";
|
|
3
|
+
import { SignupOrganisationForm } from "./components/signup-organisation-form";
|
|
4
|
+
import { ResetPasswordForm } from "./components/reset-password-form";
|
|
5
|
+
import { UpdatePasswordForm } from "./components/update-password-form";
|
|
6
|
+
import { SignOut } from "./components/sign-out";
|
|
7
|
+
import { useUser } from "./hooks/useUser";
|
|
8
|
+
export {
|
|
9
|
+
LoginForm,
|
|
10
|
+
ResetPasswordForm,
|
|
11
|
+
SignOut,
|
|
12
|
+
SignupForm,
|
|
13
|
+
SignupOrganisationForm,
|
|
14
|
+
UpdatePasswordForm,
|
|
15
|
+
useUser
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/client/user/index.ts"],"sourcesContent":["export { LoginForm } from \"./components/login-form\"\nexport { SignupForm } from \"./components/signup-form\"\nexport { SignupOrganisationForm } from \"./components/signup-organisation-form\"\nexport { ResetPasswordForm } from \"./components/reset-password-form\"\nexport { UpdatePasswordForm } from \"./components/update-password-form\"\nexport { SignOut } from \"./components/sign-out\"\nexport { useUser } from \"./hooks/useUser\"\nexport type {\n EnadUser,\n EnadUserResponse,\n EnadSignupResponse,\n EnadLoginRequest,\n EnadSignupRequest,\n EnadUpdateUserRequest,\n EnadResetPasswordRequest,\n EnadOrganisation,\n EnadOrganisationByUser,\n EnadUserOrganisation,\n} from \"./types/user\"\n"],"mappings":"AAAA,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,eAAe;AACxB,SAAS,eAAe;","names":[]}
|