@enadhq/enad-react-sdk 1.0.2 → 1.1.0
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 +42 -25
- package/dist/client/_virtual/_rolldown/runtime.mjs +6 -0
- package/dist/client/adapters/index.d.ts +3 -0
- package/dist/client/adapters/index.mjs +3 -0
- package/dist/client/adapters/next-cookie-adapter.d.ts +18 -0
- package/dist/client/adapters/next-cookie-adapter.d.ts.map +1 -0
- package/dist/client/adapters/next-cookie-adapter.mjs +25 -0
- package/dist/client/adapters/next-cookie-adapter.mjs.map +1 -0
- package/dist/client/adapters/next-navigation-adapter.d.ts +9 -0
- package/dist/client/adapters/next-navigation-adapter.d.ts.map +1 -0
- package/dist/client/adapters/next-navigation-adapter.mjs +12 -0
- package/dist/client/adapters/next-navigation-adapter.mjs.map +1 -0
- package/dist/client/cart/adapters/brink.d.ts +17 -13
- package/dist/client/cart/adapters/brink.d.ts.map +1 -1
- package/dist/client/cart/adapters/brink.mjs +160 -143
- package/dist/client/cart/adapters/brink.mjs.map +1 -1
- package/dist/client/cart/adapters/index.d.ts +2 -3
- package/dist/client/cart/adapters/index.mjs +2 -5
- package/dist/client/cart/adapters/mock.d.ts +13 -9
- package/dist/client/cart/adapters/mock.d.ts.map +1 -1
- package/dist/client/cart/adapters/mock.mjs +82 -66
- package/dist/client/cart/adapters/mock.mjs.map +1 -1
- package/dist/client/cart/components/cart-drawer.d.ts +25 -15
- package/dist/client/cart/components/cart-drawer.d.ts.map +1 -1
- package/dist/client/cart/components/cart-drawer.mjs +261 -295
- package/dist/client/cart/components/cart-drawer.mjs.map +1 -1
- package/dist/client/cart/components/cart-trigger.d.ts +18 -8
- package/dist/client/cart/components/cart-trigger.d.ts.map +1 -1
- package/dist/client/cart/components/cart-trigger.mjs +23 -30
- package/dist/client/cart/components/cart-trigger.mjs.map +1 -1
- package/dist/client/cart/components/promo-code-input.d.ts +27 -14
- package/dist/client/cart/components/promo-code-input.d.ts.map +1 -1
- package/dist/client/cart/components/promo-code-input.mjs +77 -88
- package/dist/client/cart/components/promo-code-input.mjs.map +1 -1
- package/dist/client/cart/constants/session.d.ts +4 -1
- package/dist/client/cart/constants/session.d.ts.map +1 -1
- package/dist/client/cart/constants/session.mjs +4 -3
- package/dist/client/cart/constants/session.mjs.map +1 -1
- package/dist/client/cart/contexts/cart.d.ts +19 -11
- package/dist/client/cart/contexts/cart.d.ts.map +1 -1
- package/dist/client/cart/contexts/cart.mjs +30 -13
- package/dist/client/cart/contexts/cart.mjs.map +1 -1
- package/dist/client/cart/hooks/useCart.d.ts +25 -19
- package/dist/client/cart/hooks/useCart.d.ts.map +1 -1
- package/dist/client/cart/hooks/useCart.mjs +27 -21
- package/dist/client/cart/hooks/useCart.mjs.map +1 -1
- package/dist/client/cart/hooks/useCartActions.d.ts +21 -16
- package/dist/client/cart/hooks/useCartActions.d.ts.map +1 -1
- package/dist/client/cart/hooks/useCartActions.mjs +46 -45
- package/dist/client/cart/hooks/useCartActions.mjs.map +1 -1
- package/dist/client/cart/index.d.ts +8 -12
- package/dist/client/cart/index.mjs +7 -16
- package/dist/client/cart/queries/addToCartQueryFn.d.ts +12 -5
- package/dist/client/cart/queries/addToCartQueryFn.d.ts.map +1 -1
- package/dist/client/cart/queries/addToCartQueryFn.mjs +25 -24
- package/dist/client/cart/queries/addToCartQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/getCartQueryFn.d.ts +7 -3
- package/dist/client/cart/queries/getCartQueryFn.d.ts.map +1 -1
- package/dist/client/cart/queries/getCartQueryFn.mjs +34 -31
- package/dist/client/cart/queries/getCartQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/removeCartItemQueryFn.d.ts +10 -4
- package/dist/client/cart/queries/removeCartItemQueryFn.d.ts.map +1 -1
- package/dist/client/cart/queries/removeCartItemQueryFn.mjs +20 -21
- package/dist/client/cart/queries/removeCartItemQueryFn.mjs.map +1 -1
- package/dist/client/cart/queries/updateCartItemQueryFn.d.ts +12 -5
- package/dist/client/cart/queries/updateCartItemQueryFn.d.ts.map +1 -1
- package/dist/client/cart/queries/updateCartItemQueryFn.mjs +22 -24
- package/dist/client/cart/queries/updateCartItemQueryFn.mjs.map +1 -1
- package/dist/client/cart/types/adapter.d.ts +90 -87
- package/dist/client/cart/types/adapter.d.ts.map +1 -1
- package/dist/client/cart/types/adapter.mjs +11 -10
- package/dist/client/cart/types/adapter.mjs.map +1 -1
- package/dist/client/cart/types/cart.d.ts +51 -48
- package/dist/client/cart/types/cart.d.ts.map +1 -1
- package/dist/client/cart/types/cart.mjs +1 -1
- package/dist/client/cart/utils/session.d.ts +7 -4
- package/dist/client/cart/utils/session.d.ts.map +1 -1
- package/dist/client/cart/utils/session.mjs +10 -12
- package/dist/client/cart/utils/session.mjs.map +1 -1
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.ts +9 -4
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.d.ts.map +1 -1
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs +16 -23
- package/dist/client/cms/storyblok/preview/registerStoryblokBridge.mjs.map +1 -1
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.d.ts +26 -14
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.d.ts.map +1 -1
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs +65 -74
- package/dist/client/cms/storyblok/preview/storyblok-preview-syncer.mjs.map +1 -1
- package/dist/client/global/auth/cookie-adapter.d.ts +33 -0
- package/dist/client/global/auth/cookie-adapter.d.ts.map +1 -0
- package/dist/client/global/auth/cookie-adapter.mjs +28 -0
- package/dist/client/global/auth/cookie-adapter.mjs.map +1 -0
- package/dist/client/global/auth/cookie-context.d.ts +21 -0
- package/dist/client/global/auth/cookie-context.d.ts.map +1 -0
- package/dist/client/global/auth/cookie-context.mjs +24 -0
- package/dist/client/global/auth/cookie-context.mjs.map +1 -0
- package/dist/client/global/auth/navigation-adapter.d.ts +9 -0
- package/dist/client/global/auth/navigation-adapter.d.ts.map +1 -0
- package/dist/client/global/auth/navigation-adapter.mjs +13 -0
- package/dist/client/global/auth/navigation-adapter.mjs.map +1 -0
- package/dist/client/global/auth/withAuth.d.ts +5 -2
- package/dist/client/global/auth/withAuth.d.ts.map +1 -1
- package/dist/client/global/auth/withAuth.mjs +26 -22
- package/dist/client/global/auth/withAuth.mjs.map +1 -1
- package/dist/client/global/components/error-boundary.d.ts +18 -13
- package/dist/client/global/components/error-boundary.d.ts.map +1 -1
- package/dist/client/global/components/error-boundary.mjs +37 -38
- package/dist/client/global/components/error-boundary.mjs.map +1 -1
- package/dist/client/global/config/index.d.ts +12 -10
- package/dist/client/global/config/index.d.ts.map +1 -1
- package/dist/client/global/config/index.mjs +12 -31
- package/dist/client/global/config/index.mjs.map +1 -1
- package/dist/client/global/constants/tags.d.ts +16 -13
- package/dist/client/global/constants/tags.d.ts.map +1 -1
- package/dist/client/global/constants/tags.mjs +16 -15
- package/dist/client/global/constants/tags.mjs.map +1 -1
- package/dist/client/global/contexts/locale.d.ts +14 -0
- package/dist/client/global/contexts/locale.d.ts.map +1 -0
- package/dist/client/global/contexts/locale.mjs +24 -0
- package/dist/client/global/contexts/locale.mjs.map +1 -0
- package/dist/client/global/index.d.ts +8 -6
- package/dist/client/global/index.mjs +7 -7
- package/dist/client/global/providers/enad-provider.d.ts +85 -40
- package/dist/client/global/providers/enad-provider.d.ts.map +1 -1
- package/dist/client/global/providers/enad-provider.mjs +68 -34
- package/dist/client/global/providers/enad-provider.mjs.map +1 -1
- package/dist/client/icons/adapters/carbon.d.ts +12 -0
- package/dist/client/icons/adapters/carbon.d.ts.map +1 -0
- package/dist/client/icons/adapters/carbon.mjs +62 -0
- package/dist/client/icons/adapters/carbon.mjs.map +1 -0
- package/dist/client/icons/adapters/hugeicons.d.ts +11 -7
- package/dist/client/icons/adapters/hugeicons.d.ts.map +1 -1
- package/dist/client/icons/adapters/hugeicons.mjs +59 -110
- package/dist/client/icons/adapters/hugeicons.mjs.map +1 -1
- package/dist/client/icons/adapters/lucide.d.ts +10 -6
- package/dist/client/icons/adapters/lucide.d.ts.map +1 -1
- package/dist/client/icons/adapters/lucide.mjs +57 -103
- package/dist/client/icons/adapters/lucide.mjs.map +1 -1
- package/dist/client/icons/adapters/phosphor.d.ts +11 -8
- package/dist/client/icons/adapters/phosphor.d.ts.map +1 -1
- package/dist/client/icons/adapters/phosphor.mjs +64 -65
- package/dist/client/icons/adapters/phosphor.mjs.map +1 -1
- package/dist/client/icons/icon-context.d.ts +20 -9
- package/dist/client/icons/icon-context.d.ts.map +1 -1
- package/dist/client/icons/icon-context.mjs +13 -17
- package/dist/client/icons/icon-context.mjs.map +1 -1
- package/dist/client/icons/index.d.ts +7 -9
- package/dist/client/icons/index.mjs +6 -16
- package/dist/client/icons/types.d.ts +48 -45
- package/dist/client/icons/types.d.ts.map +1 -1
- package/dist/client/icons/types.mjs +1 -1
- package/dist/client/motion/config.d.ts +21 -30
- package/dist/client/motion/config.d.ts.map +1 -1
- package/dist/client/motion/config.mjs +33 -37
- package/dist/client/motion/config.mjs.map +1 -1
- package/dist/client/motion/hover.d.ts +7 -9
- package/dist/client/motion/hover.d.ts.map +1 -1
- package/dist/client/motion/hover.mjs +40 -14
- package/dist/client/motion/hover.mjs.map +1 -1
- package/dist/client/motion/index.d.ts +4 -4
- package/dist/client/motion/index.mjs +4 -13
- package/dist/client/motion/stagger.d.ts +7 -9
- package/dist/client/motion/stagger.d.ts.map +1 -1
- package/dist/client/motion/stagger.mjs +38 -12
- package/dist/client/motion/stagger.mjs.map +1 -1
- package/dist/client/node_modules/.pnpm/@swc_helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.mjs +13 -0
- package/dist/client/node_modules/.pnpm/@swc_helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_default.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/@swc_helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.mjs +34 -0
- package/dist/client/node_modules/.pnpm/@swc_helpers@0.5.15/node_modules/@swc/helpers/cjs/_interop_require_wildcard.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/app-router-headers.mjs +105 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/app-router-headers.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/forbidden.mjs +48 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/forbidden.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.mjs +39 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/hooks-server-context.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.mjs +62 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/is-next-router-error.mjs +28 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/is-next-router-error.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.mjs +156 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.react-server.mjs +71 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/navigation.react-server.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/not-found.mjs +45 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/not-found.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/readonly-url-search-params.mjs +44 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/readonly-url-search-params.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.mjs +49 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-error.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-status-code.mjs +27 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect-status-code.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect.mjs +83 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/redirect.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.mjs +39 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/static-generation-bailout.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unauthorized.mjs +49 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unauthorized.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unrecognized-action-error.mjs +38 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unrecognized-action-error.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.browser.mjs +29 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.browser.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.mjs +30 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.server.mjs +37 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/client/components/unstable-rethrow.server.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.mjs +310 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/compiled/@edge-runtime/cookies/index.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.mjs +34 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/framework/boundary-constants.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.mjs +47 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/lib/scheduler.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/action-async-storage-instance.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/action-async-storage-instance.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/action-async-storage.external.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/action-async-storage.external.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/async-local-storage.mjs +65 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/async-local-storage.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.mjs +506 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/dynamic-rendering.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.mjs +86 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/staged-rendering.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-async-storage-instance.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-async-storage-instance.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-async-storage.external.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-async-storage.external.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.mjs +18 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.mjs +186 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.mjs +66 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.mjs +66 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/dynamic-rendering-utils.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/lib/router-utils/is-postpone.mjs +20 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/lib/router-utils/is-postpone.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/cookies.mjs +185 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/cookies.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/draft-mode.mjs +169 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/draft-mode.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/headers.mjs +184 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/headers.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.mjs +52 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/request/utils.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.mjs +138 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/headers.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.mjs +32 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/reflect.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.mjs +165 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.mjs +29 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/server/web/spec-extension/cookies.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.mjs +47 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.mjs +52 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.mjs +22 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/invariant-error.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.mjs +34 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.mjs +29 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/promise-with-resolvers.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/segment.mjs +79 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/segment.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.mjs +32 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/headers.mjs +15 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/headers.mjs.map +1 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/navigation.mjs +11 -0
- package/dist/client/node_modules/.pnpm/next@16.0.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/next/navigation.mjs.map +1 -0
- package/dist/client/search/actions/searchAction.d.ts +6 -1
- package/dist/client/search/actions/searchAction.d.ts.map +1 -1
- package/dist/client/search/actions/searchAction.mjs +14 -15
- package/dist/client/search/actions/searchAction.mjs.map +1 -1
- package/dist/client/search/components/search-bar.d.ts +13 -5
- package/dist/client/search/components/search-bar.d.ts.map +1 -1
- package/dist/client/search/components/search-bar.mjs +28 -29
- package/dist/client/search/components/search-bar.mjs.map +1 -1
- package/dist/client/search/hooks/useSearch.d.ts +15 -9
- package/dist/client/search/hooks/useSearch.d.ts.map +1 -1
- package/dist/client/search/hooks/useSearch.mjs +41 -31
- package/dist/client/search/hooks/useSearch.mjs.map +1 -1
- package/dist/client/search/index.d.ts +2 -2
- package/dist/client/search/index.mjs +2 -5
- package/dist/client/storefront/blocks/accordion-block.d.ts +10 -2
- package/dist/client/storefront/blocks/accordion-block.d.ts.map +1 -1
- package/dist/client/storefront/blocks/accordion-block.mjs +30 -36
- package/dist/client/storefront/blocks/accordion-block.mjs.map +1 -1
- package/dist/client/storefront/blocks/card-image-with-caption.d.ts +11 -2
- package/dist/client/storefront/blocks/card-image-with-caption.d.ts.map +1 -1
- package/dist/client/storefront/blocks/card-image-with-caption.mjs +27 -24
- package/dist/client/storefront/blocks/card-image-with-caption.mjs.map +1 -1
- package/dist/client/storefront/blocks/card-video.d.ts +13 -2
- package/dist/client/storefront/blocks/card-video.d.ts.map +1 -1
- package/dist/client/storefront/blocks/card-video.mjs +46 -38
- package/dist/client/storefront/blocks/card-video.mjs.map +1 -1
- package/dist/client/storefront/blocks/content-with-gallery.d.ts +15 -2
- package/dist/client/storefront/blocks/content-with-gallery.d.ts.map +1 -1
- package/dist/client/storefront/blocks/content-with-gallery.mjs +67 -44
- package/dist/client/storefront/blocks/content-with-gallery.mjs.map +1 -1
- package/dist/client/storefront/blocks/content-with-image-product-data.d.ts +16 -2
- package/dist/client/storefront/blocks/content-with-image-product-data.d.ts.map +1 -1
- package/dist/client/storefront/blocks/content-with-image-product-data.mjs +65 -41
- package/dist/client/storefront/blocks/content-with-image-product-data.mjs.map +1 -1
- package/dist/client/storefront/blocks/gallery-with-caption.d.ts +12 -2
- package/dist/client/storefront/blocks/gallery-with-caption.d.ts.map +1 -1
- package/dist/client/storefront/blocks/gallery-with-caption.mjs +26 -33
- package/dist/client/storefront/blocks/gallery-with-caption.mjs.map +1 -1
- package/dist/client/storefront/blocks/gallery-with-link-blocks.d.ts +10 -2
- package/dist/client/storefront/blocks/gallery-with-link-blocks.d.ts.map +1 -1
- package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs +28 -21
- package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs.map +1 -1
- package/dist/client/storefront/blocks/gallery.d.ts +11 -2
- package/dist/client/storefront/blocks/gallery.d.ts.map +1 -1
- package/dist/client/storefront/blocks/gallery.mjs +50 -43
- package/dist/client/storefront/blocks/gallery.mjs.map +1 -1
- package/dist/client/storefront/blocks/hero.d.ts +6 -2
- package/dist/client/storefront/blocks/hero.d.ts.map +1 -1
- package/dist/client/storefront/blocks/hero.mjs +234 -326
- package/dist/client/storefront/blocks/hero.mjs.map +1 -1
- package/dist/client/storefront/blocks/image-block.d.ts +11 -2
- package/dist/client/storefront/blocks/image-block.d.ts.map +1 -1
- package/dist/client/storefront/blocks/image-block.mjs +24 -24
- package/dist/client/storefront/blocks/image-block.mjs.map +1 -1
- package/dist/client/storefront/blocks/index.d.ts +22 -20
- package/dist/client/storefront/blocks/index.mjs +21 -41
- package/dist/client/storefront/blocks/link-block-small.d.ts +11 -2
- package/dist/client/storefront/blocks/link-block-small.d.ts.map +1 -1
- package/dist/client/storefront/blocks/link-block-small.mjs +31 -32
- package/dist/client/storefront/blocks/link-block-small.mjs.map +1 -1
- package/dist/client/storefront/blocks/link-block.d.ts +6 -2
- package/dist/client/storefront/blocks/link-block.d.ts.map +1 -1
- package/dist/client/storefront/blocks/link-block.mjs +131 -142
- package/dist/client/storefront/blocks/link-block.mjs.map +1 -1
- package/dist/client/storefront/blocks/product-card-parts.d.ts +77 -0
- package/dist/client/storefront/blocks/product-card-parts.d.ts.map +1 -0
- package/dist/client/storefront/blocks/product-card-parts.mjs +112 -0
- package/dist/client/storefront/blocks/product-card-parts.mjs.map +1 -0
- package/dist/client/storefront/blocks/product-card.d.ts +6 -2
- package/dist/client/storefront/blocks/product-card.d.ts.map +1 -1
- package/dist/client/storefront/blocks/product-card.mjs +214 -214
- package/dist/client/storefront/blocks/product-card.mjs.map +1 -1
- package/dist/client/storefront/blocks/product-image.d.ts +14 -2
- package/dist/client/storefront/blocks/product-image.d.ts.map +1 -1
- package/dist/client/storefront/blocks/product-image.mjs +73 -101
- package/dist/client/storefront/blocks/product-image.mjs.map +1 -1
- package/dist/client/storefront/blocks/spacer.d.ts +8 -2
- package/dist/client/storefront/blocks/spacer.d.ts.map +1 -1
- package/dist/client/storefront/blocks/spacer.mjs +13 -8
- package/dist/client/storefront/blocks/spacer.mjs.map +1 -1
- package/dist/client/storefront/blocks/text-content-with-image.d.ts +6 -2
- package/dist/client/storefront/blocks/text-content-with-image.d.ts.map +1 -1
- package/dist/client/storefront/blocks/text-content-with-image.mjs +205 -212
- package/dist/client/storefront/blocks/text-content-with-image.mjs.map +1 -1
- package/dist/client/storefront/blocks/text-content.d.ts +6 -2
- package/dist/client/storefront/blocks/text-content.d.ts.map +1 -1
- package/dist/client/storefront/blocks/text-content.mjs +156 -141
- package/dist/client/storefront/blocks/text-content.mjs.map +1 -1
- package/dist/client/storefront/blocks/truncated-text.d.ts +11 -2
- package/dist/client/storefront/blocks/truncated-text.d.ts.map +1 -1
- package/dist/client/storefront/blocks/truncated-text.mjs +37 -31
- package/dist/client/storefront/blocks/truncated-text.mjs.map +1 -1
- package/dist/client/storefront/blocks/variable-text-content.d.ts +9 -2
- package/dist/client/storefront/blocks/variable-text-content.d.ts.map +1 -1
- package/dist/client/storefront/blocks/variable-text-content.mjs +13 -11
- package/dist/client/storefront/blocks/variable-text-content.mjs.map +1 -1
- package/dist/client/storefront/carousel/index.d.ts +2 -2
- package/dist/client/storefront/carousel/index.mjs +2 -5
- package/dist/client/storefront/carousel/swipeable-carousel.d.ts +22 -10
- package/dist/client/storefront/carousel/swipeable-carousel.d.ts.map +1 -1
- package/dist/client/storefront/carousel/swipeable-carousel.mjs +46 -76
- package/dist/client/storefront/carousel/swipeable-carousel.mjs.map +1 -1
- package/dist/client/storefront/checkout/address-form.d.ts +45 -28
- package/dist/client/storefront/checkout/address-form.d.ts.map +1 -1
- package/dist/client/storefront/checkout/address-form.mjs +110 -120
- package/dist/client/storefront/checkout/address-form.mjs.map +1 -1
- package/dist/client/storefront/checkout/cart-summary.d.ts +58 -37
- package/dist/client/storefront/checkout/cart-summary.d.ts.map +1 -1
- package/dist/client/storefront/checkout/cart-summary.mjs +156 -146
- package/dist/client/storefront/checkout/cart-summary.mjs.map +1 -1
- package/dist/client/storefront/checkout/checkout-stepper.d.ts +19 -10
- package/dist/client/storefront/checkout/checkout-stepper.d.ts.map +1 -1
- package/dist/client/storefront/checkout/checkout-stepper.mjs +38 -53
- package/dist/client/storefront/checkout/checkout-stepper.mjs.map +1 -1
- package/dist/client/storefront/checkout/index.d.ts +8 -15
- package/dist/client/storefront/checkout/index.mjs +8 -17
- package/dist/client/storefront/checkout/order-confirmation.d.ts +19 -8
- package/dist/client/storefront/checkout/order-confirmation.d.ts.map +1 -1
- package/dist/client/storefront/checkout/order-confirmation.mjs +31 -23
- package/dist/client/storefront/checkout/order-confirmation.mjs.map +1 -1
- package/dist/client/storefront/checkout/order-summary.d.ts +46 -27
- package/dist/client/storefront/checkout/order-summary.d.ts.map +1 -1
- package/dist/client/storefront/checkout/order-summary.mjs +138 -101
- package/dist/client/storefront/checkout/order-summary.mjs.map +1 -1
- package/dist/client/storefront/checkout/payment-method-selector.d.ts +26 -15
- package/dist/client/storefront/checkout/payment-method-selector.d.ts.map +1 -1
- package/dist/client/storefront/checkout/payment-method-selector.mjs +45 -57
- package/dist/client/storefront/checkout/payment-method-selector.mjs.map +1 -1
- package/dist/client/storefront/checkout/shipping-method-selector.d.ts +34 -20
- package/dist/client/storefront/checkout/shipping-method-selector.d.ts.map +1 -1
- package/dist/client/storefront/checkout/shipping-method-selector.mjs +55 -73
- package/dist/client/storefront/checkout/shipping-method-selector.mjs.map +1 -1
- package/dist/client/storefront/components/address-field-group.d.ts +45 -0
- package/dist/client/storefront/components/address-field-group.d.ts.map +1 -0
- package/dist/client/storefront/components/address-field-group.mjs +64 -0
- package/dist/client/storefront/components/address-field-group.mjs.map +1 -0
- package/dist/client/storefront/components/badge.d.ts +15 -6
- package/dist/client/storefront/components/badge.d.ts.map +1 -1
- package/dist/client/storefront/components/badge.mjs +17 -23
- package/dist/client/storefront/components/badge.mjs.map +1 -1
- package/dist/client/storefront/components/country-redirect.d.ts +38 -27
- package/dist/client/storefront/components/country-redirect.d.ts.map +1 -1
- package/dist/client/storefront/components/country-redirect.mjs +88 -112
- package/dist/client/storefront/components/country-redirect.mjs.map +1 -1
- package/dist/client/storefront/components/empty-state.d.ts +44 -33
- package/dist/client/storefront/components/empty-state.d.ts.map +1 -1
- package/dist/client/storefront/components/empty-state.mjs +51 -50
- package/dist/client/storefront/components/empty-state.mjs.map +1 -1
- package/dist/client/storefront/components/image-lightbox.d.ts +23 -11
- package/dist/client/storefront/components/image-lightbox.d.ts.map +1 -1
- package/dist/client/storefront/components/image-lightbox.mjs +251 -270
- package/dist/client/storefront/components/image-lightbox.mjs.map +1 -1
- package/dist/client/storefront/components/infinite-scroll.d.ts +55 -33
- package/dist/client/storefront/components/infinite-scroll.d.ts.map +1 -1
- package/dist/client/storefront/components/infinite-scroll.mjs +76 -78
- package/dist/client/storefront/components/infinite-scroll.mjs.map +1 -1
- package/dist/client/storefront/components/language-selector.d.ts +15 -4
- package/dist/client/storefront/components/language-selector.d.ts.map +1 -1
- package/dist/client/storefront/components/language-selector.mjs +50 -53
- package/dist/client/storefront/components/language-selector.mjs.map +1 -1
- package/dist/client/storefront/components/newsletter-signup.d.ts +25 -12
- package/dist/client/storefront/components/newsletter-signup.d.ts.map +1 -1
- package/dist/client/storefront/components/newsletter-signup.mjs +83 -77
- package/dist/client/storefront/components/newsletter-signup.mjs.map +1 -1
- package/dist/client/storefront/components/price.d.ts +26 -12
- package/dist/client/storefront/components/price.d.ts.map +1 -1
- package/dist/client/storefront/components/price.mjs +42 -41
- package/dist/client/storefront/components/price.mjs.map +1 -1
- package/dist/client/storefront/components/product-recommendations.d.ts +29 -16
- package/dist/client/storefront/components/product-recommendations.d.ts.map +1 -1
- package/dist/client/storefront/components/product-recommendations.mjs +84 -104
- package/dist/client/storefront/components/product-recommendations.mjs.map +1 -1
- package/dist/client/storefront/components/product-tabs.d.ts +18 -9
- package/dist/client/storefront/components/product-tabs.d.ts.map +1 -1
- package/dist/client/storefront/components/product-tabs.mjs +51 -59
- package/dist/client/storefront/components/product-tabs.mjs.map +1 -1
- package/dist/client/storefront/components/quick-view.d.ts +36 -22
- package/dist/client/storefront/components/quick-view.d.ts.map +1 -1
- package/dist/client/storefront/components/quick-view.mjs +148 -142
- package/dist/client/storefront/components/quick-view.mjs.map +1 -1
- package/dist/client/storefront/components/review-summary.d.ts +25 -14
- package/dist/client/storefront/components/review-summary.d.ts.map +1 -1
- package/dist/client/storefront/components/review-summary.mjs +75 -62
- package/dist/client/storefront/components/review-summary.mjs.map +1 -1
- package/dist/client/storefront/components/search-autocomplete.d.ts +38 -22
- package/dist/client/storefront/components/search-autocomplete.d.ts.map +1 -1
- package/dist/client/storefront/components/search-autocomplete.mjs +163 -179
- package/dist/client/storefront/components/search-autocomplete.mjs.map +1 -1
- package/dist/client/storefront/components/section-nav.d.ts +25 -15
- package/dist/client/storefront/components/section-nav.d.ts.map +1 -1
- package/dist/client/storefront/components/section-nav.mjs +124 -171
- package/dist/client/storefront/components/section-nav.mjs.map +1 -1
- package/dist/client/storefront/components/share-button.d.ts +32 -17
- package/dist/client/storefront/components/share-button.d.ts.map +1 -1
- package/dist/client/storefront/components/share-button.mjs +73 -91
- package/dist/client/storefront/components/share-button.mjs.map +1 -1
- package/dist/client/storefront/components/skeleton.d.ts +28 -10
- package/dist/client/storefront/components/skeleton.d.ts.map +1 -1
- package/dist/client/storefront/components/skeleton.mjs +74 -56
- package/dist/client/storefront/components/skeleton.mjs.map +1 -1
- package/dist/client/storefront/components/star-rating.d.ts +26 -11
- package/dist/client/storefront/components/star-rating.d.ts.map +1 -1
- package/dist/client/storefront/components/star-rating.mjs +154 -227
- package/dist/client/storefront/components/star-rating.mjs.map +1 -1
- package/dist/client/storefront/components/testimonial.d.ts +35 -17
- package/dist/client/storefront/components/testimonial.d.ts.map +1 -1
- package/dist/client/storefront/components/testimonial.mjs +57 -46
- package/dist/client/storefront/components/testimonial.mjs.map +1 -1
- package/dist/client/storefront/components/trust-badges.d.ts +20 -11
- package/dist/client/storefront/components/trust-badges.d.ts.map +1 -1
- package/dist/client/storefront/components/trust-badges.mjs +26 -21
- package/dist/client/storefront/components/trust-badges.mjs.map +1 -1
- package/dist/client/storefront/components/variant-selector.d.ts +28 -17
- package/dist/client/storefront/components/variant-selector.d.ts.map +1 -1
- package/dist/client/storefront/components/variant-selector.mjs +33 -31
- package/dist/client/storefront/components/variant-selector.mjs.map +1 -1
- package/dist/client/storefront/components/wishlist-toggle.d.ts +23 -10
- package/dist/client/storefront/components/wishlist-toggle.d.ts.map +1 -1
- package/dist/client/storefront/components/wishlist-toggle.mjs +28 -54
- package/dist/client/storefront/components/wishlist-toggle.mjs.map +1 -1
- package/dist/client/storefront/filters/filter-chip.d.ts +16 -6
- package/dist/client/storefront/filters/filter-chip.d.ts.map +1 -1
- package/dist/client/storefront/filters/filter-chip.mjs +17 -25
- package/dist/client/storefront/filters/filter-chip.mjs.map +1 -1
- package/dist/client/storefront/filters/filter-group.d.ts +29 -16
- package/dist/client/storefront/filters/filter-group.d.ts.map +1 -1
- package/dist/client/storefront/filters/filter-group.mjs +89 -98
- package/dist/client/storefront/filters/filter-group.mjs.map +1 -1
- package/dist/client/storefront/filters/filter-panel.d.ts +32 -19
- package/dist/client/storefront/filters/filter-panel.d.ts.map +1 -1
- package/dist/client/storefront/filters/filter-panel.mjs +104 -105
- package/dist/client/storefront/filters/filter-panel.mjs.map +1 -1
- package/dist/client/storefront/filters/index.d.ts +6 -6
- package/dist/client/storefront/filters/index.mjs +6 -13
- package/dist/client/storefront/filters/sort-select.d.ts +19 -8
- package/dist/client/storefront/filters/sort-select.d.ts.map +1 -1
- package/dist/client/storefront/filters/sort-select.mjs +35 -28
- package/dist/client/storefront/filters/sort-select.mjs.map +1 -1
- package/dist/client/storefront/filters/toggle-list-view.d.ts +12 -4
- package/dist/client/storefront/filters/toggle-list-view.d.ts.map +1 -1
- package/dist/client/storefront/filters/toggle-list-view.mjs +31 -25
- package/dist/client/storefront/filters/toggle-list-view.mjs.map +1 -1
- package/dist/client/storefront/hooks/use-section-observer.d.ts +3 -5
- package/dist/client/storefront/hooks/use-section-observer.d.ts.map +1 -1
- package/dist/client/storefront/hooks/use-section-observer.mjs +50 -41
- package/dist/client/storefront/hooks/use-section-observer.mjs.map +1 -1
- package/dist/client/storefront/index.d.ts +19 -24
- package/dist/client/storefront/index.mjs +18 -26
- package/dist/client/storefront/layout/footer.d.ts +14 -2
- package/dist/client/storefront/layout/footer.d.ts.map +1 -1
- package/dist/client/storefront/layout/footer.mjs +60 -52
- package/dist/client/storefront/layout/footer.mjs.map +1 -1
- package/dist/client/storefront/layout/header.d.ts +18 -2
- package/dist/client/storefront/layout/header.d.ts.map +1 -1
- package/dist/client/storefront/layout/header.mjs +300 -341
- package/dist/client/storefront/layout/header.mjs.map +1 -1
- package/dist/client/storefront/layout/index.d.ts +6 -5
- package/dist/client/storefront/layout/index.mjs +5 -11
- package/dist/client/storefront/layout/mobile-menu-drawer.d.ts +12 -2
- package/dist/client/storefront/layout/mobile-menu-drawer.d.ts.map +1 -1
- package/dist/client/storefront/layout/mobile-menu-drawer.mjs +78 -88
- package/dist/client/storefront/layout/mobile-menu-drawer.mjs.map +1 -1
- package/dist/client/storefront/layout/promotion-bar.d.ts +11 -2
- package/dist/client/storefront/layout/promotion-bar.d.ts.map +1 -1
- package/dist/client/storefront/layout/promotion-bar.mjs +59 -75
- package/dist/client/storefront/layout/promotion-bar.mjs.map +1 -1
- package/dist/client/storefront/primitives/breadcrumbs.d.ts +15 -7
- package/dist/client/storefront/primitives/breadcrumbs.d.ts.map +1 -1
- package/dist/client/storefront/primitives/breadcrumbs.mjs +30 -31
- package/dist/client/storefront/primitives/breadcrumbs.mjs.map +1 -1
- package/dist/client/storefront/primitives/button.d.ts +22 -9
- package/dist/client/storefront/primitives/button.d.ts.map +1 -1
- package/dist/client/storefront/primitives/button.mjs +36 -45
- package/dist/client/storefront/primitives/button.mjs.map +1 -1
- package/dist/client/storefront/primitives/checkbox.d.ts +21 -6
- package/dist/client/storefront/primitives/checkbox.d.ts.map +1 -1
- package/dist/client/storefront/primitives/checkbox.mjs +35 -19
- package/dist/client/storefront/primitives/checkbox.mjs.map +1 -1
- package/dist/client/storefront/primitives/country-select.d.ts +15 -0
- package/dist/client/storefront/primitives/country-select.d.ts.map +1 -0
- package/dist/client/storefront/primitives/country-select.mjs +33 -0
- package/dist/client/storefront/primitives/country-select.mjs.map +1 -0
- package/dist/client/storefront/primitives/download-item.d.ts +14 -5
- package/dist/client/storefront/primitives/download-item.d.ts.map +1 -1
- package/dist/client/storefront/primitives/download-item.mjs +23 -24
- package/dist/client/storefront/primitives/download-item.mjs.map +1 -1
- package/dist/client/storefront/primitives/index.d.ts +11 -10
- package/dist/client/storefront/primitives/index.mjs +11 -21
- package/dist/client/storefront/primitives/input.d.ts +36 -15
- package/dist/client/storefront/primitives/input.d.ts.map +1 -1
- package/dist/client/storefront/primitives/input.mjs +81 -112
- package/dist/client/storefront/primitives/input.mjs.map +1 -1
- package/dist/client/storefront/primitives/pagination.d.ts +14 -5
- package/dist/client/storefront/primitives/pagination.d.ts.map +1 -1
- package/dist/client/storefront/primitives/pagination.mjs +53 -80
- package/dist/client/storefront/primitives/pagination.mjs.map +1 -1
- package/dist/client/storefront/primitives/password-input.d.ts +16 -0
- package/dist/client/storefront/primitives/password-input.d.ts.map +1 -0
- package/dist/client/storefront/primitives/password-input.mjs +21 -0
- package/dist/client/storefront/primitives/password-input.mjs.map +1 -0
- package/dist/client/storefront/primitives/quick-links.d.ts +13 -6
- package/dist/client/storefront/primitives/quick-links.d.ts.map +1 -1
- package/dist/client/storefront/primitives/quick-links.mjs +18 -13
- package/dist/client/storefront/primitives/quick-links.mjs.map +1 -1
- package/dist/client/storefront/primitives/select.d.ts +27 -11
- package/dist/client/storefront/primitives/select.d.ts.map +1 -1
- package/dist/client/storefront/primitives/select.mjs +45 -31
- package/dist/client/storefront/primitives/select.mjs.map +1 -1
- package/dist/client/storefront/primitives/text-link.d.ts +13 -4
- package/dist/client/storefront/primitives/text-link.d.ts.map +1 -1
- package/dist/client/storefront/primitives/text-link.mjs +16 -6
- package/dist/client/storefront/primitives/text-link.mjs.map +1 -1
- package/dist/client/storefront/product/color-swatch.d.ts +16 -6
- package/dist/client/storefront/product/color-swatch.d.ts.map +1 -1
- package/dist/client/storefront/product/color-swatch.mjs +18 -27
- package/dist/client/storefront/product/color-swatch.mjs.map +1 -1
- package/dist/client/storefront/product/index.d.ts +5 -5
- package/dist/client/storefront/product/index.mjs +5 -11
- package/dist/client/storefront/product/material-selector.d.ts +19 -10
- package/dist/client/storefront/product/material-selector.d.ts.map +1 -1
- package/dist/client/storefront/product/material-selector.mjs +30 -30
- package/dist/client/storefront/product/material-selector.mjs.map +1 -1
- package/dist/client/storefront/product/product-usp.d.ts +10 -3
- package/dist/client/storefront/product/product-usp.d.ts.map +1 -1
- package/dist/client/storefront/product/product-usp.mjs +15 -10
- package/dist/client/storefront/product/product-usp.mjs.map +1 -1
- package/dist/client/storefront/product/quantity-picker.d.ts +18 -6
- package/dist/client/storefront/product/quantity-picker.d.ts.map +1 -1
- package/dist/client/storefront/product/quantity-picker.mjs +43 -52
- package/dist/client/storefront/product/quantity-picker.mjs.map +1 -1
- package/dist/client/storefront/types.d.ts +255 -252
- package/dist/client/storefront/types.d.ts.map +1 -1
- package/dist/client/storefront/types.mjs +13 -13
- package/dist/client/storefront/types.mjs.map +1 -1
- package/dist/client/theme/apply.d.ts +11 -7
- package/dist/client/theme/apply.d.ts.map +1 -1
- package/dist/client/theme/apply.mjs +148 -118
- package/dist/client/theme/apply.mjs.map +1 -1
- package/dist/client/theme/cli.mjs +422 -403
- package/dist/client/theme/cli.mjs.map +1 -1
- package/dist/client/theme/codec.d.ts +8 -5
- package/dist/client/theme/codec.d.ts.map +1 -1
- package/dist/client/theme/codec.mjs +80 -76
- package/dist/client/theme/codec.mjs.map +1 -1
- package/dist/client/theme/defaults.d.ts +41 -56
- package/dist/client/theme/defaults.d.ts.map +1 -1
- package/dist/client/theme/defaults.mjs +89 -153
- package/dist/client/theme/defaults.mjs.map +1 -1
- package/dist/client/theme/index.d.ts +5 -8
- package/dist/client/theme/index.mjs +5 -20
- package/dist/client/theme/scan.d.ts +11 -8
- package/dist/client/theme/scan.d.ts.map +1 -1
- package/dist/client/theme/scan.mjs +25 -22
- package/dist/client/theme/scan.mjs.map +1 -1
- package/dist/client/ui/accordion.d.ts +28 -7
- package/dist/client/ui/accordion.d.ts.map +1 -1
- package/dist/client/ui/accordion.mjs +47 -60
- package/dist/client/ui/accordion.mjs.map +1 -1
- package/dist/client/ui/alert.d.ts +25 -0
- package/dist/client/ui/alert.d.ts.map +1 -0
- package/dist/client/ui/alert.mjs +39 -0
- package/dist/client/ui/alert.mjs.map +1 -0
- package/dist/client/ui/avatar.d.ts +20 -0
- package/dist/client/ui/avatar.d.ts.map +1 -0
- package/dist/client/ui/avatar.mjs +31 -0
- package/dist/client/ui/avatar.mjs.map +1 -0
- package/dist/client/ui/breadcrumb.d.ts +37 -11
- package/dist/client/ui/breadcrumb.d.ts.map +1 -1
- package/dist/client/ui/breadcrumb.mjs +56 -90
- package/dist/client/ui/breadcrumb.mjs.map +1 -1
- package/dist/client/ui/button.d.ts +19 -8
- package/dist/client/ui/button.d.ts.map +1 -1
- package/dist/client/ui/button.mjs +46 -52
- package/dist/client/ui/button.mjs.map +1 -1
- package/dist/client/ui/card.d.ts +34 -9
- package/dist/client/ui/card.d.ts.map +1 -1
- package/dist/client/ui/card.mjs +41 -75
- package/dist/client/ui/card.mjs.map +1 -1
- package/dist/client/ui/carousel.d.ts +41 -13
- package/dist/client/ui/carousel.d.ts.map +1 -1
- package/dist/client/ui/carousel.mjs +123 -189
- package/dist/client/ui/carousel.mjs.map +1 -1
- package/dist/client/ui/checkbox.d.ts +10 -3
- package/dist/client/ui/checkbox.d.ts.map +1 -1
- package/dist/client/ui/checkbox.mjs +20 -30
- package/dist/client/ui/checkbox.mjs.map +1 -1
- package/dist/client/ui/collapsible.d.ts +15 -5
- package/dist/client/ui/collapsible.d.ts.map +1 -1
- package/dist/client/ui/collapsible.mjs +20 -30
- package/dist/client/ui/collapsible.mjs.map +1 -1
- package/dist/client/ui/dialog.d.ts +45 -0
- package/dist/client/ui/dialog.d.ts.map +1 -0
- package/dist/client/ui/dialog.mjs +77 -0
- package/dist/client/ui/dialog.mjs.map +1 -0
- package/dist/client/ui/hover-card.d.ts +20 -0
- package/dist/client/ui/hover-card.d.ts.map +1 -0
- package/dist/client/ui/hover-card.mjs +31 -0
- package/dist/client/ui/hover-card.mjs.map +1 -0
- package/dist/client/ui/input.d.ts +17 -3
- package/dist/client/ui/input.d.ts.map +1 -1
- package/dist/client/ui/input.mjs +25 -19
- package/dist/client/ui/input.mjs.map +1 -1
- package/dist/client/ui/label.d.ts +10 -3
- package/dist/client/ui/label.d.ts.map +1 -1
- package/dist/client/ui/label.mjs +13 -20
- package/dist/client/ui/label.mjs.map +1 -1
- package/dist/client/ui/mid-truncate.d.ts +21 -10
- package/dist/client/ui/mid-truncate.d.ts.map +1 -1
- package/dist/client/ui/mid-truncate.mjs +49 -22
- package/dist/client/ui/mid-truncate.mjs.map +1 -1
- package/dist/client/ui/navigation-menu.d.ts +46 -14
- package/dist/client/ui/navigation-menu.d.ts.map +1 -1
- package/dist/client/ui/navigation-menu.mjs +72 -161
- package/dist/client/ui/navigation-menu.mjs.map +1 -1
- package/dist/client/ui/pagination.d.ts +39 -12
- package/dist/client/ui/pagination.d.ts.map +1 -1
- package/dist/client/ui/pagination.mjs +72 -113
- package/dist/client/ui/pagination.mjs.map +1 -1
- package/dist/client/ui/popover.d.ts +34 -10
- package/dist/client/ui/popover.d.ts.map +1 -1
- package/dist/client/ui/popover.mjs +46 -70
- package/dist/client/ui/popover.mjs.map +1 -1
- package/dist/client/ui/progress.d.ts +13 -0
- package/dist/client/ui/progress.d.ts.map +1 -0
- package/dist/client/ui/progress.mjs +23 -0
- package/dist/client/ui/progress.mjs.map +1 -0
- package/dist/client/ui/select.d.ts +52 -15
- package/dist/client/ui/select.d.ts.map +1 -1
- package/dist/client/ui/select.mjs +91 -171
- package/dist/client/ui/select.mjs.map +1 -1
- package/dist/client/ui/separator.d.ts +12 -3
- package/dist/client/ui/separator.d.ts.map +1 -1
- package/dist/client/ui/separator.mjs +15 -24
- package/dist/client/ui/separator.mjs.map +1 -1
- package/dist/client/ui/sheet.d.ts +44 -14
- package/dist/client/ui/sheet.d.ts.map +1 -1
- package/dist/client/ui/sheet.mjs +70 -114
- package/dist/client/ui/sheet.mjs.map +1 -1
- package/dist/client/ui/simple-select.d.ts +32 -0
- package/dist/client/ui/simple-select.d.ts.map +1 -0
- package/dist/client/ui/simple-select.mjs +128 -0
- package/dist/client/ui/simple-select.mjs.map +1 -0
- package/dist/client/ui/stepper.d.ts +38 -0
- package/dist/client/ui/stepper.d.ts.map +1 -0
- package/dist/client/ui/stepper.mjs +90 -0
- package/dist/client/ui/stepper.mjs.map +1 -0
- package/dist/client/ui/tabs.d.ts +24 -0
- package/dist/client/ui/tabs.d.ts.map +1 -0
- package/dist/client/ui/tabs.mjs +38 -0
- package/dist/client/ui/tabs.mjs.map +1 -0
- package/dist/client/ui/toggle-group.d.ts +25 -8
- package/dist/client/ui/toggle-group.d.ts.map +1 -1
- package/dist/client/ui/toggle-group.mjs +44 -64
- package/dist/client/ui/toggle-group.mjs.map +1 -1
- package/dist/client/ui/toggle.d.ts +17 -7
- package/dist/client/ui/toggle.d.ts.map +1 -1
- package/dist/client/ui/toggle.mjs +34 -40
- package/dist/client/ui/toggle.mjs.map +1 -1
- package/dist/client/ui/tooltip.d.ts +24 -0
- package/dist/client/ui/tooltip.d.ts.map +1 -0
- package/dist/client/ui/tooltip.mjs +38 -0
- package/dist/client/ui/tooltip.mjs.map +1 -0
- package/dist/client/ui/utils.d.ts +6 -2
- package/dist/client/ui/utils.d.ts.map +1 -1
- package/dist/client/ui/utils.mjs +5 -4
- package/dist/client/ui/utils.mjs.map +1 -1
- package/dist/client/ui-resolver/accordion.d.ts +14 -10
- package/dist/client/ui-resolver/accordion.d.ts.map +1 -1
- package/dist/client/ui-resolver/accordion.mjs +15 -31
- package/dist/client/ui-resolver/accordion.mjs.map +1 -1
- package/dist/client/ui-resolver/alert.d.ts +13 -0
- package/dist/client/ui-resolver/alert.d.ts.map +1 -0
- package/dist/client/ui-resolver/alert.mjs +17 -0
- package/dist/client/ui-resolver/alert.mjs.map +1 -0
- package/dist/client/ui-resolver/avatar.d.ts +13 -0
- package/dist/client/ui-resolver/avatar.d.ts.map +1 -0
- package/dist/client/ui-resolver/avatar.mjs +17 -0
- package/dist/client/ui-resolver/avatar.mjs.map +1 -0
- package/dist/client/ui-resolver/breadcrumb.d.ts +16 -13
- package/dist/client/ui-resolver/breadcrumb.d.ts.map +1 -1
- package/dist/client/ui-resolver/breadcrumb.mjs +17 -49
- package/dist/client/ui-resolver/breadcrumb.mjs.map +1 -1
- package/dist/client/ui-resolver/button.d.ts +10 -11
- package/dist/client/ui-resolver/button.d.ts.map +1 -1
- package/dist/client/ui-resolver/button.mjs +11 -21
- package/dist/client/ui-resolver/button.mjs.map +1 -1
- package/dist/client/ui-resolver/card.d.ts +16 -13
- package/dist/client/ui-resolver/card.d.ts.map +1 -1
- package/dist/client/ui-resolver/card.mjs +17 -49
- package/dist/client/ui-resolver/card.mjs.map +1 -1
- package/dist/client/ui-resolver/carousel.d.ts +15 -12
- package/dist/client/ui-resolver/carousel.d.ts.map +1 -1
- package/dist/client/ui-resolver/carousel.mjs +15 -37
- package/dist/client/ui-resolver/carousel.mjs.map +1 -1
- package/dist/client/ui-resolver/checkbox.d.ts +9 -6
- package/dist/client/ui-resolver/checkbox.d.ts.map +1 -1
- package/dist/client/ui-resolver/checkbox.mjs +11 -13
- package/dist/client/ui-resolver/checkbox.mjs.map +1 -1
- package/dist/client/ui-resolver/collapsible.d.ts +12 -9
- package/dist/client/ui-resolver/collapsible.d.ts.map +1 -1
- package/dist/client/ui-resolver/collapsible.mjs +13 -25
- package/dist/client/ui-resolver/collapsible.mjs.map +1 -1
- package/dist/client/ui-resolver/context.d.ts +37 -9
- package/dist/client/ui-resolver/context.d.ts.map +1 -1
- package/dist/client/ui-resolver/context.mjs +54 -20
- package/dist/client/ui-resolver/context.mjs.map +1 -1
- package/dist/client/ui-resolver/dialog.d.ts +20 -0
- package/dist/client/ui-resolver/dialog.d.ts.map +1 -0
- package/dist/client/ui-resolver/dialog.mjs +24 -0
- package/dist/client/ui-resolver/dialog.mjs.map +1 -0
- package/dist/client/ui-resolver/hover-card.d.ts +13 -0
- package/dist/client/ui-resolver/hover-card.d.ts.map +1 -0
- package/dist/client/ui-resolver/hover-card.mjs +17 -0
- package/dist/client/ui-resolver/hover-card.mjs.map +1 -0
- package/dist/client/ui-resolver/index.d.ts +29 -19
- package/dist/client/ui-resolver/index.mjs +29 -156
- package/dist/client/ui-resolver/input.d.ts +9 -6
- package/dist/client/ui-resolver/input.d.ts.map +1 -1
- package/dist/client/ui-resolver/input.mjs +11 -13
- package/dist/client/ui-resolver/input.mjs.map +1 -1
- package/dist/client/ui-resolver/label.d.ts +9 -6
- package/dist/client/ui-resolver/label.d.ts.map +1 -1
- package/dist/client/ui-resolver/label.mjs +11 -13
- package/dist/client/ui-resolver/label.mjs.map +1 -1
- package/dist/client/ui-resolver/navigation-menu.d.ts +19 -15
- package/dist/client/ui-resolver/navigation-menu.d.ts.map +1 -1
- package/dist/client/ui-resolver/navigation-menu.mjs +20 -61
- package/dist/client/ui-resolver/navigation-menu.mjs.map +1 -1
- package/dist/client/ui-resolver/pagination.d.ts +16 -13
- package/dist/client/ui-resolver/pagination.d.ts.map +1 -1
- package/dist/client/ui-resolver/pagination.mjs +17 -49
- package/dist/client/ui-resolver/pagination.mjs.map +1 -1
- package/dist/client/ui-resolver/popover.d.ts +13 -10
- package/dist/client/ui-resolver/popover.d.ts.map +1 -1
- package/dist/client/ui-resolver/popover.mjs +14 -31
- package/dist/client/ui-resolver/popover.mjs.map +1 -1
- package/dist/client/ui-resolver/progress.d.ts +11 -0
- package/dist/client/ui-resolver/progress.d.ts.map +1 -0
- package/dist/client/ui-resolver/progress.mjs +15 -0
- package/dist/client/ui-resolver/progress.mjs.map +1 -0
- package/dist/client/ui-resolver/select.d.ts +17 -14
- package/dist/client/ui-resolver/select.d.ts.map +1 -1
- package/dist/client/ui-resolver/select.mjs +19 -56
- package/dist/client/ui-resolver/select.mjs.map +1 -1
- package/dist/client/ui-resolver/separator.d.ts +9 -6
- package/dist/client/ui-resolver/separator.d.ts.map +1 -1
- package/dist/client/ui-resolver/separator.mjs +11 -13
- package/dist/client/ui-resolver/separator.mjs.map +1 -1
- package/dist/client/ui-resolver/sheet.d.ts +17 -14
- package/dist/client/ui-resolver/sheet.d.ts.map +1 -1
- package/dist/client/ui-resolver/sheet.mjs +19 -56
- package/dist/client/ui-resolver/sheet.mjs.map +1 -1
- package/dist/client/ui-resolver/stepper.d.ts +15 -0
- package/dist/client/ui-resolver/stepper.d.ts.map +1 -0
- package/dist/client/ui-resolver/stepper.mjs +19 -0
- package/dist/client/ui-resolver/stepper.mjs.map +1 -0
- package/dist/client/ui-resolver/tabs.d.ts +14 -0
- package/dist/client/ui-resolver/tabs.d.ts.map +1 -0
- package/dist/client/ui-resolver/tabs.mjs +18 -0
- package/dist/client/ui-resolver/tabs.mjs.map +1 -0
- package/dist/client/ui-resolver/toggle-group.d.ts +10 -7
- package/dist/client/ui-resolver/toggle-group.d.ts.map +1 -1
- package/dist/client/ui-resolver/toggle-group.mjs +12 -19
- package/dist/client/ui-resolver/toggle-group.mjs.map +1 -1
- package/dist/client/ui-resolver/toggle.d.ts +10 -11
- package/dist/client/ui-resolver/toggle.d.ts.map +1 -1
- package/dist/client/ui-resolver/toggle.mjs +11 -21
- package/dist/client/ui-resolver/toggle.mjs.map +1 -1
- package/dist/client/ui-resolver/tooltip.d.ts +14 -0
- package/dist/client/ui-resolver/tooltip.d.ts.map +1 -0
- package/dist/client/ui-resolver/tooltip.mjs +18 -0
- package/dist/client/ui-resolver/tooltip.mjs.map +1 -0
- package/dist/client/user/actions/createResetPasswordLinkAction.d.ts +12 -10
- package/dist/client/user/actions/createResetPasswordLinkAction.d.ts.map +1 -1
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs +19 -26
- package/dist/client/user/actions/createResetPasswordLinkAction.mjs.map +1 -1
- package/dist/client/user/actions/getUserAction.d.ts +6 -2
- package/dist/client/user/actions/getUserAction.d.ts.map +1 -1
- package/dist/client/user/actions/getUserAction.mjs +17 -15
- package/dist/client/user/actions/getUserAction.mjs.map +1 -1
- package/dist/client/user/actions/logInUserAction.d.ts +13 -11
- package/dist/client/user/actions/logInUserAction.d.ts.map +1 -1
- package/dist/client/user/actions/logInUserAction.mjs +26 -28
- package/dist/client/user/actions/logInUserAction.mjs.map +1 -1
- package/dist/client/user/actions/logoutUserAction.d.ts +4 -1
- package/dist/client/user/actions/logoutUserAction.d.ts.map +1 -1
- package/dist/client/user/actions/logoutUserAction.mjs +7 -7
- package/dist/client/user/actions/logoutUserAction.mjs.map +1 -1
- package/dist/client/user/actions/registerOrganisationAction.d.ts +11 -6
- package/dist/client/user/actions/registerOrganisationAction.d.ts.map +1 -1
- package/dist/client/user/actions/registerOrganisationAction.mjs +11 -15
- package/dist/client/user/actions/registerOrganisationAction.mjs.map +1 -1
- package/dist/client/user/actions/registerUserAction.d.ts +16 -14
- package/dist/client/user/actions/registerUserAction.d.ts.map +1 -1
- package/dist/client/user/actions/registerUserAction.mjs +38 -36
- package/dist/client/user/actions/registerUserAction.mjs.map +1 -1
- package/dist/client/user/actions/registerUserWithoutRedirectAction.d.ts +41 -36
- package/dist/client/user/actions/registerUserWithoutRedirectAction.d.ts.map +1 -1
- package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs +56 -52
- package/dist/client/user/actions/registerUserWithoutRedirectAction.mjs.map +1 -1
- package/dist/client/user/actions/updatePasswordAction.d.ts +18 -16
- package/dist/client/user/actions/updatePasswordAction.d.ts.map +1 -1
- package/dist/client/user/actions/updatePasswordAction.mjs +27 -31
- package/dist/client/user/actions/updatePasswordAction.mjs.map +1 -1
- package/dist/client/user/api/userRoute.d.ts +4 -6
- package/dist/client/user/api/userRoute.d.ts.map +1 -1
- package/dist/client/user/api/userRoute.mjs +57 -57
- package/dist/client/user/api/userRoute.mjs.map +1 -1
- package/dist/client/user/clients/enad.d.ts +6 -2
- package/dist/client/user/clients/enad.d.ts.map +1 -1
- package/dist/client/user/clients/enad.mjs +13 -13
- package/dist/client/user/clients/enad.mjs.map +1 -1
- package/dist/client/user/components/login-form.d.ts +22 -19
- package/dist/client/user/components/login-form.d.ts.map +1 -1
- package/dist/client/user/components/login-form.mjs +117 -110
- package/dist/client/user/components/login-form.mjs.map +1 -1
- package/dist/client/user/components/reset-password-form.d.ts +19 -16
- package/dist/client/user/components/reset-password-form.d.ts.map +1 -1
- package/dist/client/user/components/reset-password-form.mjs +91 -88
- package/dist/client/user/components/reset-password-form.mjs.map +1 -1
- package/dist/client/user/components/sign-out.d.ts +11 -5
- package/dist/client/user/components/sign-out.d.ts.map +1 -1
- package/dist/client/user/components/sign-out.mjs +15 -20
- package/dist/client/user/components/sign-out.mjs.map +1 -1
- package/dist/client/user/components/signup-form.d.ts +26 -23
- package/dist/client/user/components/signup-form.d.ts.map +1 -1
- package/dist/client/user/components/signup-form.mjs +165 -180
- package/dist/client/user/components/signup-form.mjs.map +1 -1
- package/dist/client/user/components/signup-organisation-form.d.ts +55 -51
- package/dist/client/user/components/signup-organisation-form.d.ts.map +1 -1
- package/dist/client/user/components/signup-organisation-form.mjs +625 -830
- package/dist/client/user/components/signup-organisation-form.mjs.map +1 -1
- package/dist/client/user/components/update-password-form.d.ts +16 -13
- package/dist/client/user/components/update-password-form.d.ts.map +1 -1
- package/dist/client/user/components/update-password-form.mjs +69 -56
- package/dist/client/user/components/update-password-form.mjs.map +1 -1
- package/dist/client/user/hooks/index.d.ts +2 -2
- package/dist/client/user/hooks/index.mjs +2 -2
- package/dist/client/user/hooks/useUser.d.ts +12 -6
- package/dist/client/user/hooks/useUser.d.ts.map +1 -1
- package/dist/client/user/hooks/useUser.mjs +30 -27
- package/dist/client/user/hooks/useUser.mjs.map +1 -1
- package/dist/client/user/index.d.ts +9 -9
- package/dist/client/user/index.mjs +8 -17
- package/dist/client/user/types/user.d.ts +193 -190
- package/dist/client/user/types/user.d.ts.map +1 -1
- package/dist/client/user/types/user.mjs +1 -1
- package/dist/client/user/utils/userCookieService.d.ts +14 -17
- package/dist/client/user/utils/userCookieService.d.ts.map +1 -1
- package/dist/client/user/utils/userCookieService.mjs +37 -46
- package/dist/client/user/utils/userCookieService.mjs.map +1 -1
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.ts +7 -3
- package/dist/client/wishlist/actions/addItemsToWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs +11 -16
- package/dist/client/wishlist/actions/addItemsToWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.ts +7 -2
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs +11 -16
- package/dist/client/wishlist/actions/createOrGetShareTokenAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/createWishlistAction.d.ts +7 -2
- package/dist/client/wishlist/actions/createWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/createWishlistAction.mjs +11 -12
- package/dist/client/wishlist/actions/createWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.ts +7 -3
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs +11 -16
- package/dist/client/wishlist/actions/deleteItemsFromWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/deleteWishlistAction.d.ts +5 -2
- package/dist/client/wishlist/actions/deleteWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/deleteWishlistAction.mjs +11 -12
- package/dist/client/wishlist/actions/deleteWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.ts +7 -2
- package/dist/client/wishlist/actions/getSharedWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/getSharedWishlistAction.mjs +11 -16
- package/dist/client/wishlist/actions/getSharedWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.ts +7 -2
- package/dist/client/wishlist/actions/getSpecificWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs +11 -16
- package/dist/client/wishlist/actions/getSpecificWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/getUserWishlists.d.ts +8 -3
- package/dist/client/wishlist/actions/getUserWishlists.d.ts.map +1 -1
- package/dist/client/wishlist/actions/getUserWishlists.mjs +19 -21
- package/dist/client/wishlist/actions/getUserWishlists.mjs.map +1 -1
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.ts +5 -2
- package/dist/client/wishlist/actions/revokeShareTokenAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/revokeShareTokenAction.mjs +11 -16
- package/dist/client/wishlist/actions/revokeShareTokenAction.mjs.map +1 -1
- package/dist/client/wishlist/actions/updateWishlistAction.d.ts +7 -2
- package/dist/client/wishlist/actions/updateWishlistAction.d.ts.map +1 -1
- package/dist/client/wishlist/actions/updateWishlistAction.mjs +11 -16
- package/dist/client/wishlist/actions/updateWishlistAction.mjs.map +1 -1
- package/dist/client/wishlist/hooks/index.d.ts +2 -2
- package/dist/client/wishlist/hooks/index.mjs +2 -2
- package/dist/client/wishlist/hooks/useWishlist.d.ts +78 -73
- package/dist/client/wishlist/hooks/useWishlist.d.ts.map +1 -1
- package/dist/client/wishlist/hooks/useWishlist.mjs +95 -71
- package/dist/client/wishlist/hooks/useWishlist.mjs.map +1 -1
- package/dist/client/wishlist/hooks/useWishlistActions.d.ts +45 -39
- package/dist/client/wishlist/hooks/useWishlistActions.d.ts.map +1 -1
- package/dist/client/wishlist/hooks/useWishlistActions.mjs +88 -96
- package/dist/client/wishlist/hooks/useWishlistActions.mjs.map +1 -1
- package/dist/client/wishlist/index.d.ts +4 -5
- package/dist/client/wishlist/index.mjs +4 -9
- package/dist/client/wishlist/wishlist-drawer.d.ts +27 -15
- package/dist/client/wishlist/wishlist-drawer.d.ts.map +1 -1
- package/dist/client/wishlist/wishlist-drawer.mjs +175 -187
- package/dist/client/wishlist/wishlist-drawer.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +20 -11
- package/dist/client/cart/adapters/index.d.ts.map +0 -1
- package/dist/client/cart/adapters/index.mjs.map +0 -1
- package/dist/client/cart/index.d.ts.map +0 -1
- package/dist/client/cart/index.mjs.map +0 -1
- package/dist/client/cart/types/cart.mjs.map +0 -1
- package/dist/client/global/index.d.ts.map +0 -1
- package/dist/client/global/index.mjs.map +0 -1
- package/dist/client/icons/index.d.ts.map +0 -1
- package/dist/client/icons/index.mjs.map +0 -1
- package/dist/client/icons/types.mjs.map +0 -1
- package/dist/client/motion/index.d.ts.map +0 -1
- package/dist/client/motion/index.mjs.map +0 -1
- package/dist/client/search/index.d.ts.map +0 -1
- package/dist/client/search/index.mjs.map +0 -1
- package/dist/client/storefront/blocks/index.d.ts.map +0 -1
- package/dist/client/storefront/blocks/index.mjs.map +0 -1
- package/dist/client/storefront/carousel/index.d.ts.map +0 -1
- package/dist/client/storefront/carousel/index.mjs.map +0 -1
- package/dist/client/storefront/checkout/index.d.ts.map +0 -1
- package/dist/client/storefront/checkout/index.mjs.map +0 -1
- package/dist/client/storefront/filters/index.d.ts.map +0 -1
- package/dist/client/storefront/filters/index.mjs.map +0 -1
- package/dist/client/storefront/index.d.ts.map +0 -1
- package/dist/client/storefront/index.mjs.map +0 -1
- package/dist/client/storefront/layout/index.d.ts.map +0 -1
- package/dist/client/storefront/layout/index.mjs.map +0 -1
- package/dist/client/storefront/primitives/index.d.ts.map +0 -1
- package/dist/client/storefront/primitives/index.mjs.map +0 -1
- package/dist/client/storefront/product/index.d.ts.map +0 -1
- package/dist/client/storefront/product/index.mjs.map +0 -1
- package/dist/client/theme/cli.d.ts +0 -2
- package/dist/client/theme/cli.d.ts.map +0 -1
- package/dist/client/theme/index.d.ts.map +0 -1
- package/dist/client/theme/index.mjs.map +0 -1
- package/dist/client/ui-interfaces/accordion.d.ts +0 -8
- package/dist/client/ui-interfaces/accordion.d.ts.map +0 -1
- package/dist/client/ui-interfaces/accordion.mjs +0 -72
- package/dist/client/ui-interfaces/accordion.mjs.map +0 -1
- package/dist/client/ui-interfaces/breadcrumb.d.ts +0 -12
- package/dist/client/ui-interfaces/breadcrumb.d.ts.map +0 -1
- package/dist/client/ui-interfaces/breadcrumb.mjs +0 -97
- package/dist/client/ui-interfaces/breadcrumb.mjs.map +0 -1
- package/dist/client/ui-interfaces/button.d.ts +0 -11
- package/dist/client/ui-interfaces/button.d.ts.map +0 -1
- package/dist/client/ui-interfaces/button.mjs +0 -57
- package/dist/client/ui-interfaces/button.mjs.map +0 -1
- package/dist/client/ui-interfaces/card.d.ts +0 -10
- package/dist/client/ui-interfaces/card.d.ts.map +0 -1
- package/dist/client/ui-interfaces/card.mjs +0 -78
- package/dist/client/ui-interfaces/card.mjs.map +0 -1
- package/dist/client/ui-interfaces/carousel.d.ts +0 -20
- package/dist/client/ui-interfaces/carousel.d.ts.map +0 -1
- package/dist/client/ui-interfaces/carousel.mjs +0 -188
- package/dist/client/ui-interfaces/carousel.mjs.map +0 -1
- package/dist/client/ui-interfaces/checkbox.d.ts +0 -5
- package/dist/client/ui-interfaces/checkbox.d.ts.map +0 -1
- package/dist/client/ui-interfaces/checkbox.mjs +0 -30
- package/dist/client/ui-interfaces/checkbox.mjs.map +0 -1
- package/dist/client/ui-interfaces/collapsible.d.ts +0 -7
- package/dist/client/ui-interfaces/collapsible.d.ts.map +0 -1
- package/dist/client/ui-interfaces/collapsible.mjs +0 -42
- package/dist/client/ui-interfaces/collapsible.mjs.map +0 -1
- package/dist/client/ui-interfaces/index.d.ts +0 -18
- package/dist/client/ui-interfaces/index.d.ts.map +0 -1
- package/dist/client/ui-interfaces/index.mjs +0 -18
- package/dist/client/ui-interfaces/index.mjs.map +0 -1
- package/dist/client/ui-interfaces/input.d.ts +0 -7
- package/dist/client/ui-interfaces/input.d.ts.map +0 -1
- package/dist/client/ui-interfaces/input.mjs +0 -39
- package/dist/client/ui-interfaces/input.mjs.map +0 -1
- package/dist/client/ui-interfaces/label.d.ts +0 -5
- package/dist/client/ui-interfaces/label.d.ts.map +0 -1
- package/dist/client/ui-interfaces/label.mjs +0 -23
- package/dist/client/ui-interfaces/label.mjs.map +0 -1
- package/dist/client/ui-interfaces/navigation-menu.d.ts +0 -15
- package/dist/client/ui-interfaces/navigation-menu.d.ts.map +0 -1
- package/dist/client/ui-interfaces/navigation-menu.mjs +0 -163
- package/dist/client/ui-interfaces/navigation-menu.mjs.map +0 -1
- package/dist/client/ui-interfaces/pagination.d.ts +0 -14
- package/dist/client/ui-interfaces/pagination.d.ts.map +0 -1
- package/dist/client/ui-interfaces/pagination.mjs +0 -103
- package/dist/client/ui-interfaces/pagination.mjs.map +0 -1
- package/dist/client/ui-interfaces/popover.d.ts +0 -8
- package/dist/client/ui-interfaces/popover.d.ts.map +0 -1
- package/dist/client/ui-interfaces/popover.mjs +0 -50
- package/dist/client/ui-interfaces/popover.mjs.map +0 -1
- package/dist/client/ui-interfaces/select.d.ts +0 -16
- package/dist/client/ui-interfaces/select.d.ts.map +0 -1
- package/dist/client/ui-interfaces/select.mjs +0 -159
- package/dist/client/ui-interfaces/select.mjs.map +0 -1
- package/dist/client/ui-interfaces/separator.d.ts +0 -5
- package/dist/client/ui-interfaces/separator.d.ts.map +0 -1
- package/dist/client/ui-interfaces/separator.mjs +0 -28
- package/dist/client/ui-interfaces/separator.mjs.map +0 -1
- package/dist/client/ui-interfaces/sheet.d.ts +0 -14
- package/dist/client/ui-interfaces/sheet.d.ts.map +0 -1
- package/dist/client/ui-interfaces/sheet.mjs +0 -140
- package/dist/client/ui-interfaces/sheet.mjs.map +0 -1
- package/dist/client/ui-interfaces/toggle-group.d.ts +0 -10
- package/dist/client/ui-interfaces/toggle-group.d.ts.map +0 -1
- package/dist/client/ui-interfaces/toggle-group.mjs +0 -67
- package/dist/client/ui-interfaces/toggle-group.mjs.map +0 -1
- package/dist/client/ui-interfaces/toggle.d.ts +0 -10
- package/dist/client/ui-interfaces/toggle.d.ts.map +0 -1
- package/dist/client/ui-interfaces/toggle.mjs +0 -45
- package/dist/client/ui-interfaces/toggle.mjs.map +0 -1
- package/dist/client/ui-resolver/index.d.ts.map +0 -1
- package/dist/client/ui-resolver/index.mjs.map +0 -1
- package/dist/client/user/hooks/index.d.ts.map +0 -1
- package/dist/client/user/hooks/index.mjs.map +0 -1
- package/dist/client/user/index.d.ts.map +0 -1
- package/dist/client/user/index.mjs.map +0 -1
- package/dist/client/user/types/user.mjs.map +0 -1
- package/dist/client/wishlist/hooks/index.d.ts.map +0 -1
- package/dist/client/wishlist/hooks/index.mjs.map +0 -1
- package/dist/client/wishlist/index.d.ts.map +0 -1
- package/dist/client/wishlist/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
1
|
+
{"version":3,"file":"signup-organisation-form.mjs","names":[],"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\";\nimport { StorefrontInput } from \"../../storefront/primitives/input\";\nimport { StorefrontCheckbox } from \"../../storefront/primitives/checkbox\";\nimport { PasswordInput } from \"../../storefront/primitives/password-input\";\nimport { AddressFieldGroup } from \"../../storefront/components/address-field-group\";\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(),\n shipping_type: z.string(),\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(),\n country_code: z.string(),\n market: z.string(),\n store_group: z.string(),\n allow_email_notifications: z.boolean(),\n allow_phone_notifications: z.boolean(),\n allow_postal_notifications: z.boolean(),\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(),\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(),\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 SECTION_TITLE_CLASSES = `text-xl font-semibold mb-4 pb-2 border-b border-(--enad-border-color)`;\n\n// ─── Contact Person Section ──────────────────────────────────────────────────\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}\n\nfunction ContactPersonSection({ form, labels }: ContactPersonSectionProps) {\n const errors = form.formState.errors;\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <StorefrontInput\n label={labels.firstName}\n required\n error={errors.user?.first_name?.message}\n placeholder=\"John\"\n {...form.register(\"user.first_name\")}\n />\n <StorefrontInput\n label={labels.lastName}\n required\n error={errors.user?.last_name?.message}\n placeholder=\"Doe\"\n {...form.register(\"user.last_name\")}\n />\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <StorefrontInput\n label={labels.email}\n required\n type=\"email\"\n error={errors.user?.email?.message}\n placeholder=\"you@example.com\"\n {...form.register(\"user.email\")}\n />\n <StorefrontInput\n label={labels.phone}\n type=\"tel\"\n error={errors.user?.phone_number?.message}\n placeholder=\"+46 123 456 789\"\n {...form.register(\"user.phone_number\")}\n />\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <PasswordInput\n label={labels.password}\n required\n error={errors.user?.password?.message}\n placeholder=\"••••••••\"\n {...form.register(\"user.password\")}\n />\n <PasswordInput\n label={labels.confirmPassword}\n required\n error={errors.user?.confirmPassword?.message}\n placeholder=\"••••••••\"\n {...form.register(\"user.confirmPassword\")}\n />\n </div>\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-(--enad-text-primary-color)\">\n {labels.communicationPreferences}\n </p>\n <StorefrontCheckbox\n label={labels.emailNotifications}\n checked={form.watch(\"user.allow_email_notifications\")}\n onCheckedChange={(v) => form.setValue(\"user.allow_email_notifications\", v)}\n />\n <StorefrontCheckbox\n label={labels.smsNotifications}\n checked={form.watch(\"user.allow_phone_notifications\")}\n onCheckedChange={(v) => form.setValue(\"user.allow_phone_notifications\", v)}\n />\n <StorefrontCheckbox\n label={labels.postalNotifications}\n checked={form.watch(\"user.allow_postal_notifications\")}\n onCheckedChange={(v) => form.setValue(\"user.allow_postal_notifications\", v)}\n />\n </div>\n </div>\n );\n}\n\n// ─── Company Info Section ────────────────────────────────────────────────────\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 CompanyInfoSection({ form, labels }: CompanyInfoSectionProps) {\n const errors = form.formState.errors;\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <StorefrontInput\n label={labels.companyName}\n required\n error={errors.organization?.name?.message}\n placeholder=\"Company Name\"\n {...form.register(\"organization.name\")}\n />\n <div className=\"grid md:grid-cols-2 gap-4\">\n <StorefrontInput\n label={labels.orgNumber}\n required\n error={errors.organization?.organisation_number?.message}\n placeholder=\"1234567890\"\n {...form.register(\"organization.organisation_number\")}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n form.setValue(\"organization.organisation_number\", e.target.value.replace(/\\D/g, \"\"));\n }}\n />\n <StorefrontInput\n label={labels.vatNumber}\n required\n error={errors.organization?.tax_id_vat_number?.message}\n placeholder=\"SE123456789001\"\n {...form.register(\"organization.tax_id_vat_number\")}\n />\n </div>\n <div className=\"grid md:grid-cols-2 gap-4\">\n <StorefrontInput\n label={labels.companyEmail}\n required\n type=\"email\"\n error={errors.organization?.email?.message}\n placeholder=\"company@example.com\"\n {...form.register(\"organization.email\")}\n />\n <StorefrontInput\n label={labels.companyPhone}\n type=\"tel\"\n error={errors.organization?.phone?.message}\n placeholder=\"+46 123 456 789\"\n {...form.register(\"organization.phone\")}\n />\n </div>\n <StorefrontInput\n label={labels.invoiceEmail}\n type=\"email\"\n error={errors.organization?.invoice_email?.message}\n placeholder=\"invoices@example.com\"\n {...form.register(\"organization.invoice_email\")}\n />\n <div className=\"grid md:grid-cols-2 gap-4\">\n <StorefrontInput\n label={labels.contactName}\n error={errors.organization?.contact_name?.message}\n placeholder=\"Contact Person\"\n {...form.register(\"organization.contact_name\")}\n />\n <StorefrontInput\n label={labels.externalRef}\n error={errors.organization?.external_ref?.message}\n placeholder=\"External Ref\"\n {...form.register(\"organization.external_ref\")}\n />\n </div>\n </div>\n );\n}\n\n// ─── Address Sections ────────────────────────────────────────────────────────\n\ninterface AddressLabels {\n streetAddress: string;\n houseNumber: string;\n coAddress: string;\n postalCode: string;\n city: string;\n country: string;\n}\n\nfunction useAddressFields(\n form: UseFormReturn<FormData>,\n prefix: \"organization.billing_address.0\" | \"shipping_address.0\",\n) {\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\n return {\n fields: {\n streetAddress: form.register(`${prefix}.street_address`),\n houseNumber: form.register(`${prefix}.house_number`),\n coAddress: form.register(`${prefix}.co_address`),\n postalCode: form.register(`${prefix}.postal_code`),\n city: form.register(`${prefix}.city`),\n country: {\n value: form.watch(`${prefix}.country`) || \"SE\",\n onValueChange: (v: string) => form.setValue(`${prefix}.country`, v),\n },\n },\n errors: addressErrors\n ? {\n streetAddress: (addressErrors as Record<string, FieldError>).street_address?.message,\n postalCode: (addressErrors as Record<string, FieldError>).postal_code?.message,\n city: (addressErrors as Record<string, FieldError>).city?.message,\n country: (addressErrors as Record<string, FieldError>).country?.message,\n }\n : undefined,\n };\n}\n\nfunction BillingAddressSection({\n form,\n labels,\n}: {\n form: UseFormReturn<FormData>;\n labels: AddressLabels & { sectionTitle: string };\n}) {\n const { fields, errors } = useAddressFields(form, \"organization.billing_address.0\");\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <AddressFieldGroup fields={fields} errors={errors} labels={labels} />\n </div>\n );\n}\n\nfunction ShippingAddressSection({\n form,\n useBillingAsShipping,\n labels,\n}: {\n form: UseFormReturn<FormData>;\n useBillingAsShipping: boolean;\n labels: AddressLabels & { sectionTitle: string; sameBillingAsShipping: string };\n}) {\n const { fields, errors } = useAddressFields(form, \"shipping_address.0\");\n return (\n <div className=\"space-y-4\">\n <h3 className={SECTION_TITLE_CLASSES}>{labels.sectionTitle}</h3>\n <StorefrontCheckbox\n label={labels.sameBillingAsShipping}\n checked={form.watch(\"use_billing_as_shipping\")}\n onCheckedChange={(v) => form.setValue(\"use_billing_as_shipping\", v)}\n />\n {!useBillingAsShipping && (\n <AddressFieldGroup fields={fields} errors={errors} labels={labels} />\n )}\n </div>\n );\n}\n\n// ─── Auto-fill effects ───────────────────────────────────────────────────────\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\n// ─── Labels / defaults ───────────────────────────────────────────────────────\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\n// ─── Props ───────────────────────────────────────────────────────────────────\n\ninterface SignupOrganisationFormProps {\n labels?: {\n [K in keyof typeof DEFAULT_LABELS]?: 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(\n defaultLanguage: string,\n defaultMarket: string,\n defaultCountry: string,\n defaultStoreGroup: string,\n): 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\n// ─── Registration logic ──────────────────────────────────────────────────────\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.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\n// ─── Confirmation View ───────────────────────────────────────────────────────\n\nfunction ConfirmationView({ title, message }: { title: string; message: string }) {\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)\">{message}</p>\n </div>\n </main>\n );\n}\n\n// ─── Main Component ──────────────────────────────────────────────────────────\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 [confirmMode, setConfirmMode] = useState(false);\n\n const form = useForm<FormData>({\n resolver: zodResolver(formSchema),\n defaultValues: buildDefaultValues(\n defaultLanguage,\n defaultMarket,\n defaultCountry,\n defaultStoreGroup,\n ),\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 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\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 />\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 <StorefrontCheckbox\n label={\n <span>\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 </span>\n }\n checked={form.watch(\"terms_accepted\")}\n onCheckedChange={(v) => form.setValue(\"terms_accepted\", v)}\n error={form.formState.errors.terms_accepted?.message}\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=\"text-(--enad-error-color) text-sm mt-2 text-center\">\n {errors.general.join(\", \")}\n </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"],"mappings":"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"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/client/user/components/update-password-form.d.ts
|
|
2
4
|
interface UpdatePasswordFormProps {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
5
|
+
token: string;
|
|
6
|
+
labels?: {
|
|
7
|
+
title?: string;
|
|
8
|
+
subtitle?: string;
|
|
9
|
+
password?: string;
|
|
10
|
+
passwordPlaceholder?: string;
|
|
11
|
+
submit?: string;
|
|
12
|
+
updating?: string;
|
|
13
|
+
};
|
|
14
|
+
successRedirect?: string;
|
|
15
|
+
className?: string;
|
|
14
16
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
declare const UpdatePasswordForm: React.FC<UpdatePasswordFormProps>;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { UpdatePasswordForm };
|
|
17
20
|
//# sourceMappingURL=update-password-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-password-form.d.ts","
|
|
1
|
+
{"version":3,"file":"update-password-form.d.ts","names":[],"sources":["../../../../src/client/user/components/update-password-form.tsx"],"mappings":";;;UAOU,uBAAA;EACR,KAAA;EACA,MAAA;IACE,KAAA;IACA,QAAA;IACA,QAAA;IACA,mBAAA;IACA,MAAA;IACA,QAAA;EAAA;EAEF,eAAA;EACA,SAAA;AAAA;AAAA,cASW,kBAAA,EAAoB,KAAA,CAAM,EAAA,CAAG,uBAAA"}
|
|
@@ -1,60 +1,73 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { StorefrontButton } from "../../storefront/primitives/button.mjs";
|
|
3
|
+
import { StorefrontInput } from "../../storefront/primitives/input.mjs";
|
|
4
|
+
import { updatePasswordAction } from "../actions/updatePasswordAction.mjs";
|
|
3
5
|
import { useState } from "react";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/client/user/components/update-password-form.tsx
|
|
8
|
+
const UpdatePasswordForm = ({ token, labels = {}, successRedirect = "/login", className }) => {
|
|
9
|
+
const { title = "Create new password", subtitle = "Enter a new password to update your account", password: passwordLabel = "Password", passwordPlaceholder = "••••••••", submit = "Update Password", updating = "Updating..." } = labels;
|
|
10
|
+
const [errors, setErrors] = useState({});
|
|
11
|
+
const [isPending, setIsPending] = useState(false);
|
|
12
|
+
const handleSubmit = async (e) => {
|
|
13
|
+
e.preventDefault();
|
|
14
|
+
setIsPending(true);
|
|
15
|
+
setErrors({});
|
|
16
|
+
const formData = new FormData(e.currentTarget);
|
|
17
|
+
formData.set("token", token);
|
|
18
|
+
const res = await updatePasswordAction(formData, { redirectPath: successRedirect });
|
|
19
|
+
if (res?.errors) setErrors(res.errors);
|
|
20
|
+
setIsPending(false);
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ jsx("main", {
|
|
23
|
+
className: `flex items-center justify-center px-4 font-enad ${className ?? ""}`,
|
|
24
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
25
|
+
className: "w-full max-w-md bg-(--enad-surface) border border-(--enad-border-color) shadow-lg rounded-(--enad-card-radius) p-8",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ jsx("h2", {
|
|
28
|
+
className: "text-2xl font-semibold text-(--enad-text-primary-color) mb-2 text-center",
|
|
29
|
+
children: title
|
|
30
|
+
}),
|
|
31
|
+
/* @__PURE__ */ jsx("p", {
|
|
32
|
+
className: "text-(--enad-text-muted-color) text-sm text-center mb-8",
|
|
33
|
+
children: subtitle
|
|
34
|
+
}),
|
|
35
|
+
/* @__PURE__ */ jsxs("form", {
|
|
36
|
+
onSubmit: handleSubmit,
|
|
37
|
+
className: "space-y-5",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsx(StorefrontInput, {
|
|
40
|
+
type: "password",
|
|
41
|
+
id: "password",
|
|
42
|
+
name: "password",
|
|
43
|
+
required: true,
|
|
44
|
+
label: passwordLabel,
|
|
45
|
+
placeholder: passwordPlaceholder,
|
|
46
|
+
error: errors.password?.join(", ")
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ jsx(StorefrontButton, {
|
|
49
|
+
type: "submit",
|
|
50
|
+
disabled: isPending,
|
|
51
|
+
className: "w-full",
|
|
52
|
+
children: isPending ? updating : submit
|
|
53
|
+
}),
|
|
54
|
+
errors.general && /* @__PURE__ */ jsx("p", {
|
|
55
|
+
role: "alert",
|
|
56
|
+
className: "text-(--enad-error-color) text-sm mt-2 text-center",
|
|
57
|
+
children: errors.general.join(", ")
|
|
58
|
+
}),
|
|
59
|
+
errors.token && /* @__PURE__ */ jsx("p", {
|
|
60
|
+
role: "alert",
|
|
61
|
+
className: "text-(--enad-error-color) text-sm mt-2 text-center",
|
|
62
|
+
children: errors.token.join(", ")
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
]
|
|
67
|
+
})
|
|
68
|
+
});
|
|
59
69
|
};
|
|
70
|
+
//#endregion
|
|
71
|
+
export { UpdatePasswordForm };
|
|
72
|
+
|
|
60
73
|
//# sourceMappingURL=update-password-form.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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":"
|
|
1
|
+
{"version":3,"file":"update-password-form.mjs","names":[],"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":";;;;;;;AA2BA,MAAa,sBAAyD,EACpE,OACA,SAAS,EAAE,EACX,kBAAkB,UAClB,gBACI;CACJ,MAAM,EACJ,QAAQ,uBACR,WAAW,+CACX,UAAU,gBAAgB,YAC1B,sBAAsB,YACtB,SAAS,mBACT,WAAW,kBACT;CAEJ,MAAM,CAAC,QAAQ,aAAa,SAAqB,EAAE,CAAC;CACpD,MAAM,CAAC,WAAW,gBAAgB,SAAS,MAAM;CAEjD,MAAM,eAAe,OAAO,MAAkC;AAC5D,IAAE,gBAAgB;AAClB,eAAa,KAAK;AAClB,YAAU,EAAE,CAAC;EAEb,MAAM,WAAW,IAAI,SAAS,EAAE,cAAc;AAC9C,WAAS,IAAI,SAAS,MAAM;EAE5B,MAAM,MAAM,MAAM,qBAAqB,UAAU,EAAE,cAAc,iBAAiB,CAAC;AAEnF,MAAI,KAAK,OACP,WAAU,IAAI,OAAO;AAGvB,eAAa,MAAM;;AAGrB,QACE,oBAAC,QAAD;EAAM,WAAW,mDAAmD,aAAa;YAC/E,qBAAC,OAAD;GAAK,WAAU;aAAf;IACE,oBAAC,MAAD;KAAI,WAAU;eACX;KACE,CAAA;IACL,oBAAC,KAAD;KAAG,WAAU;eAA2D;KAAa,CAAA;IAErF,qBAAC,QAAD;KAAM,UAAU;KAAc,WAAU;eAAxC;MACE,oBAAC,iBAAD;OACE,MAAK;OACL,IAAG;OACH,MAAK;OACL,UAAA;OACA,OAAO;OACP,aAAa;OACb,OAAO,OAAO,UAAU,KAAK,KAAK;OAClC,CAAA;MAGF,oBAAC,kBAAD;OAAkB,MAAK;OAAS,UAAU;OAAW,WAAU;iBAC5D,YAAY,WAAW;OACP,CAAA;MAGlB,OAAO,WACN,oBAAC,KAAD;OAAG,MAAK;OAAQ,WAAU;iBACvB,OAAO,QAAQ,KAAK,KAAK;OACxB,CAAA;MAEL,OAAO,SACN,oBAAC,KAAD;OAAG,MAAK;OAAQ,WAAU;iBACvB,OAAO,MAAM,KAAK,KAAK;OACtB,CAAA;MAED;;IACH;;EACD,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { useUser } from "./useUser.js";
|
|
2
|
+
export { useUser };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { useUser } from "./useUser.mjs";
|
|
2
|
+
export { useUser };
|
|
@@ -1,12 +1,18 @@
|
|
|
1
|
+
import { EnadUser } from "../types/user.js";
|
|
2
|
+
import * as _tanstack_react_query0 from "@tanstack/react-query";
|
|
3
|
+
|
|
4
|
+
//#region src/client/user/hooks/useUser.d.ts
|
|
1
5
|
/**
|
|
2
6
|
* Hook to fetch the current authenticated user.
|
|
3
7
|
* Relies on /api/user which handles token refresh automatically.
|
|
4
8
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
declare const useUser: () => {
|
|
10
|
+
user: EnadUser | null;
|
|
11
|
+
userIsSignedIn: boolean;
|
|
12
|
+
isLoading: boolean;
|
|
13
|
+
isFetching: boolean;
|
|
14
|
+
refreshUser: (options?: _tanstack_react_query0.RefetchOptions) => Promise<_tanstack_react_query0.QueryObserverResult<EnadUser, Error>>;
|
|
11
15
|
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { useUser };
|
|
12
18
|
//# sourceMappingURL=useUser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUser.d.ts","
|
|
1
|
+
{"version":3,"file":"useUser.d.ts","names":[],"sources":["../../../../src/client/user/hooks/useUser.tsx"],"mappings":";;;;;;;;cAUa,OAAA;QAyBZ,QAAA"}
|
|
@@ -1,32 +1,35 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { getUserAction } from "../actions/getUserAction.mjs";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { useQuery } from "@tanstack/react-query";
|
|
5
|
+
//#region src/client/user/hooks/useUser.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Hook to fetch the current authenticated user.
|
|
8
|
+
* Relies on /api/user which handles token refresh automatically.
|
|
9
|
+
*/
|
|
5
10
|
const useUser = () => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
refreshUser: userQuery.refetch
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
export {
|
|
30
|
-
useUser
|
|
11
|
+
const [signedIn, setSignedIn] = useState(false);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
setSignedIn(document.cookie.includes("user_sign_in=true"));
|
|
14
|
+
}, []);
|
|
15
|
+
const userQuery = useQuery({
|
|
16
|
+
queryKey: ["user"],
|
|
17
|
+
queryFn: async () => {
|
|
18
|
+
return getUserAction();
|
|
19
|
+
},
|
|
20
|
+
staleTime: 300 * 1e3,
|
|
21
|
+
refetchOnMount: false,
|
|
22
|
+
enabled: signedIn
|
|
23
|
+
});
|
|
24
|
+
return {
|
|
25
|
+
user: userQuery.data ?? null,
|
|
26
|
+
userIsSignedIn: Boolean(userQuery.data),
|
|
27
|
+
isLoading: userQuery.isLoading,
|
|
28
|
+
isFetching: userQuery.isFetching,
|
|
29
|
+
refreshUser: userQuery.refetch
|
|
30
|
+
};
|
|
31
31
|
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { useUser };
|
|
34
|
+
|
|
32
35
|
//# sourceMappingURL=useUser.mjs.map
|
|
@@ -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: Boolean(userQuery.data),\n isLoading: userQuery.isLoading,\n isFetching: userQuery.isFetching,\n refreshUser: userQuery.refetch,\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useUser.mjs","names":[],"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":";;;;;;;;;AAUA,MAAa,gBAAgB;CAC3B,MAAM,CAAC,UAAU,eAAe,SAAS,MAAM;AAE/C,iBAAgB;AAEd,cADmB,SAAS,OAAO,SAAS,oBAAoB,CACzC;IACtB,EAAE,CAAC;CAEN,MAAM,YAAY,SAAS;EACzB,UAAU,CAAC,OAAO;EAClB,SAAS,YAAY;AACnB,UAAO,eAAe;;EAExB,WAAW,MAAS;EACpB,gBAAgB;EAChB,SAAS;EACV,CAAC;AAEF,QAAO;EACL,MAAM,UAAU,QAAQ;EACxB,gBAAgB,QAAQ,UAAU,KAAK;EACvC,WAAW,UAAU;EACrB,YAAY,UAAU;EACtB,aAAa,UAAU;EACxB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { EnadLoginRequest, EnadOrganisation, EnadOrganisationByUser, EnadResetPasswordRequest, EnadSignupRequest, EnadSignupResponse, EnadUpdateUserRequest, EnadUser, EnadUserOrganisation, EnadUserResponse } from "./types/user.js";
|
|
2
|
+
import { LoginForm } from "./components/login-form.js";
|
|
3
|
+
import { ResetPasswordForm } from "./components/reset-password-form.js";
|
|
4
|
+
import { SignOut } from "./components/sign-out.js";
|
|
5
|
+
import { SignupForm } from "./components/signup-form.js";
|
|
6
|
+
import { SignupOrganisationForm } from "./components/signup-organisation-form.js";
|
|
7
|
+
import { UpdatePasswordForm } from "./components/update-password-form.js";
|
|
8
|
+
import { useUser } from "./hooks/useUser.js";
|
|
9
|
+
export { type EnadLoginRequest, type EnadOrganisation, type EnadOrganisationByUser, type EnadResetPasswordRequest, type EnadSignupRequest, type EnadSignupResponse, type EnadUpdateUserRequest, type EnadUser, type EnadUserOrganisation, type EnadUserResponse, LoginForm, ResetPasswordForm, SignOut, SignupForm, SignupOrganisationForm, UpdatePasswordForm, useUser };
|