@clerk/elements 0.18.0 → 0.18.1-canary.v8506fdd

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.
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Router,
3
+ removeOptionalCatchAllSegment,
3
4
  useClerkRouter,
4
- usePathnameWithoutCatchAll,
5
5
  useVirtualRouter
6
- } from "../../chunk-CVLZDETC.mjs";
6
+ } from "../../chunk-ORV6AAIP.mjs";
7
7
  import {
8
8
  Form,
9
9
  FormStoreProvider,
@@ -91,8 +91,11 @@ function SignInRoot({
91
91
  }) {
92
92
  var _a;
93
93
  const clerk = useClerk();
94
- const inferredPath = usePathnameWithoutCatchAll();
94
+ const router = (routing === ROUTING.virtual ? useVirtualRouter : useClerkHostRouter)();
95
+ const pathname = router.pathname();
96
+ const inferredPath = removeOptionalCatchAllSegment(pathname);
95
97
  const path = pathProp || inferredPath || SIGN_IN_DEFAULT_BASE_PATH;
98
+ const isRootPath = path === pathname;
96
99
  (_a = clerk.telemetry) == null ? void 0 : _a.record(
97
100
  eventComponentMounted("Elements_SignInRoot", {
98
101
  exampleMode,
@@ -101,8 +104,6 @@ function SignInRoot({
101
104
  routing
102
105
  })
103
106
  );
104
- const router = (routing === ROUTING.virtual ? useVirtualRouter : useClerkHostRouter)();
105
- const isRootPath = path === router.pathname();
106
107
  return /* @__PURE__ */ jsx(
107
108
  Router,
108
109
  {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/sign-in/index.ts","../../../src/react/sign-in/root.tsx","../../../src/react/sign-in/action/action.tsx","../../../src/react/sign-in/action/navigate.tsx","../../../src/react/sign-in/action/resend.tsx","../../../src/react/sign-in/action/set-active-session.tsx","../../../src/react/sign-in/passkey.tsx","../../../src/react/sign-in/identifiers.tsx"],"sourcesContent":["// Mark as a client-only package. This will error if you try to import it in a React Server Component.\nimport 'client-only';\n\nexport { SignInRoot as SignIn, SignInRoot as Root } from './root';\nexport { SignInStep as Step } from './step';\nexport { SignInAction as Action } from './action';\nexport { SignInPasskey as Passkey } from './passkey';\nexport { SignInSupportedStrategy as SupportedStrategy } from './choose-strategy';\nexport { SignInSessionList as SessionList, SignInSessionListItem as SessionListItem } from './choose-session';\n\nexport {\n SignInFirstFactor as FirstFactor,\n SignInSecondFactor as SecondFactor,\n SignInStrategy as Strategy,\n} from './verifications';\n\nexport { SignInSafeIdentifier as SafeIdentifier, SignInSalutation as Salutation } from './identifiers';\n","import { useClerk } from '@clerk/shared/react';\nimport { useClerkHostRouter } from '@clerk/shared/router';\nimport { eventComponentMounted } from '@clerk/shared/telemetry';\nimport { useSelector } from '@xstate/react';\nimport React, { useEffect } from 'react';\nimport { createActor } from 'xstate';\n\nimport { ROUTING, SIGN_IN_DEFAULT_BASE_PATH, SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { FormStoreProvider, useFormStore } from '~/internals/machines/form/form.context';\nimport type { SignInRouterInitEvent } from '~/internals/machines/sign-in';\nimport { SignInRouterMachine } from '~/internals/machines/sign-in';\nimport { inspect } from '~/internals/utils/inspector';\nimport { Router, useClerkRouter, useVirtualRouter } from '~/react/router';\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nimport { Form } from '../common/form';\nimport { usePathnameWithoutCatchAll } from '../utils/path-inference/next';\n\ntype SignInFlowProviderProps = {\n children: React.ReactNode;\n exampleMode?: boolean;\n /**\n * Fallback markup to render while Clerk is loading\n */\n fallback?: React.ReactNode;\n isRootPath: boolean;\n};\n\nconst actor = createActor(SignInRouterMachine, { inspect });\nactor.start();\n\nfunction SignInFlowProvider({ children, exampleMode, fallback, isRootPath }: SignInFlowProviderProps) {\n const clerk = useClerk();\n const router = useClerkRouter();\n const formRef = useFormStore();\n const isReady = useSelector(actor, state => state.value !== 'Idle');\n\n useEffect(() => {\n if (!clerk || !router) {\n return;\n }\n\n const cb = () => {\n const evt: SignInRouterInitEvent = {\n type: 'INIT',\n clerk,\n exampleMode,\n formRef,\n router,\n signUpPath: SIGN_UP_DEFAULT_BASE_PATH,\n };\n\n if (actor.getSnapshot().can(evt)) {\n actor.send(evt);\n }\n };\n\n if ('addOnLoaded' in clerk) {\n // @ts-expect-error - addOnLoaded doesn't exist on the clerk type, but it does on IsomorphicClerk, which can be hit when Elements is used standalone\n clerk.addOnLoaded(cb);\n } else {\n cb();\n }\n\n // Ensure that the latest instantiated formRef is attached to the router\n if (formRef && actor.getSnapshot().can({ type: 'RESET.STEP' })) {\n actor.send({\n type: 'FORM.ATTACH',\n formRef,\n });\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clerk, exampleMode, formRef?.id, !!router, clerk.loaded]);\n\n return (\n <SignInRouterCtx.Provider actorRef={actor}>\n {isRootPath && !isReady && fallback ? <Form>{fallback}</Form> : null}\n {clerk.loaded && isReady ? children : null}\n </SignInRouterCtx.Provider>\n );\n}\n\nexport type SignInRootProps = Omit<SignInFlowProviderProps, 'isRootPath'> & {\n /**\n * The base path for your sign-in route.\n * Will be automatically inferred in Next.js.\n * @example `/sign-in`\n */\n path?: string;\n /**\n * If you want to render Clerk Elements in e.g. a modal, use the `virtual` routing mode.\n */\n routing?: ROUTING;\n};\n\n/**\n * Root component for the sign-in flow. It sets up providers and state management for its children.\n * Must wrap all sign-in related components.\n *\n * @param {string} path - The root path the sign-in flow is mounted at. Will be automatically inferred in Next.js. You can set it to `/sign-in` for example.\n * @param {React.ReactNode} fallback - Fallback markup to render while Clerk is loading. Default: `null`\n * @param {string} routing - If you want to render Clerk Elements in e.g. a modal, use the `'virtual'` routing mode. Default: `'path'`\n *\n * @example\n * import * as SignIn from \"@clerk/elements/sign-in\"\n *\n * export default SignInPage = () => (\n * <SignIn.Root>\n * </SignIn.Root>\n * )\n */\nexport function SignInRoot({\n children,\n exampleMode = false,\n fallback = null,\n path: pathProp,\n routing = ROUTING.path,\n}: SignInRootProps): JSX.Element | null {\n const clerk = useClerk();\n const inferredPath = usePathnameWithoutCatchAll();\n const path = pathProp || inferredPath || SIGN_IN_DEFAULT_BASE_PATH;\n\n clerk.telemetry?.record(\n eventComponentMounted('Elements_SignInRoot', {\n exampleMode,\n fallback: Boolean(fallback),\n path,\n routing,\n }),\n );\n\n const router = (routing === ROUTING.virtual ? useVirtualRouter : useClerkHostRouter)();\n const isRootPath = path === router.pathname();\n\n return (\n <Router\n basePath={path}\n router={router}\n >\n <FormStoreProvider>\n <SignInFlowProvider\n exampleMode={exampleMode}\n fallback={fallback}\n isRootPath={isRootPath}\n >\n {children}\n </SignInFlowProvider>\n </FormStoreProvider>\n </Router>\n );\n}\n","import * as React from 'react';\n\nimport type { FormSubmitProps } from '~/react/common';\nimport { Submit } from '~/react/common';\n\nimport type { SignInNavigateProps } from './navigate';\nimport { SignInNavigate } from './navigate';\nimport type { SignInResendProps } from './resend';\nimport { SignInResend } from './resend';\nimport { SignInSetActiveSession } from './set-active-session';\n\nexport type SignInActionProps = { asChild?: boolean } & FormSubmitProps &\n (\n | ({\n navigate: SignInNavigateProps['to'];\n resend?: never;\n setActiveSession?: never;\n submit?: never;\n } & Omit<SignInNavigateProps, 'to'>)\n | { navigate?: never; resend?: never; setActiveSession?: never; submit: true }\n | { navigate?: never; resend?: never; setActiveSession: true; submit?: never }\n | ({ navigate?: never; resend: true; setActiveSession?: never; submit?: never } & SignInResendProps)\n );\n\nconst DISPLAY_NAME = 'SignInAction';\n\n/**\n * Perform various actions during the sign-in process. This component is used to navigate between steps, submit the form, or resend a verification codes.\n *\n * @param {boolean} [submit] - If `true`, the action will submit the form.\n * @param {string} [navigate] - The name of the step to navigate to.\n * @param {boolean} [resend] - If `true`, the action will resend the verification code for the currently active strategy, if applicable.\n * @param {Function} [fallback] - Only used when `resend` is `true`. If provided, the fallback markup will be rendered before the resend delay has expired.\n *\n * @example\n * <SignIn.Action navigate=\"start\">Go Back</SignIn.Action>\n *\n * @example\n * <SignIn.Action submit>Sign In</SignIn.Action>\n *\n * @example\n * <SignIn.Action resend>Resend</SignIn.Action>\n */\nexport const SignInAction = React.forwardRef<React.ElementRef<'button'>, SignInActionProps>((props, forwardedRef) => {\n const { submit, navigate, resend, setActiveSession, ...rest } = props;\n let Comp: React.ForwardRefExoticComponent<any> | undefined;\n\n if (submit) {\n Comp = Submit;\n } else if (navigate) {\n Comp = SignInNavigate;\n } else if (resend) {\n Comp = SignInResend;\n } else if (setActiveSession) {\n Comp = SignInSetActiveSession;\n }\n\n return Comp ? (\n <Comp\n to={navigate}\n {...rest}\n ref={forwardedRef}\n />\n ) : null;\n});\n\nSignInAction.displayName = DISPLAY_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nconst SIGN_IN_NAVIGATE_NAME = 'SignInNavigate';\nconst SignInNavigationEventMap = {\n start: 'NAVIGATE.START',\n previous: 'NAVIGATE.PREVIOUS',\n 'choose-strategy': 'NAVIGATE.CHOOSE_STRATEGY',\n 'forgot-password': 'NAVIGATE.FORGOT_PASSWORD',\n} as const;\n\nexport type SignInNavigateElementKey = keyof typeof SignInNavigationEventMap;\n\nexport type SignInNavigateElement = React.ElementRef<'button'>;\nexport type SignInNavigateProps = {\n asChild?: boolean;\n to: SignInNavigateElementKey;\n children: React.ReactNode;\n};\n\n/**\n * Renders a button which will navigate to a different step in the sign-in flow.\n *\n * @param {SignInNavigateElementKey} to - The step to navigate to.\n * @param {boolean} [asChild] - When `true`, the component will render its child and passes all props to it.\n *\n * @example\n * <Navigate to=\"choose-strategy\">\n * Choose a different sign-in method...\n * </Navigate>\n */\nexport const SignInNavigate = React.forwardRef<SignInNavigateElement, SignInNavigateProps>(\n ({ asChild, to, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef();\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n const type = SignInNavigationEventMap[to];\n\n if (actorRef.getSnapshot().can({ type })) {\n actorRef.send({ type });\n } else {\n console.warn(\n `Clerk: <SignIn.Action navigate=\"${to}\"> is an invalid navigation event. You can only navigate to: ${Object.keys(SignInNavigationEventMap).join(', ')}.`,\n );\n }\n }, [actorRef, to]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInNavigate.displayName = SIGN_IN_NAVIGATE_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport { useSelector } from '@xstate/react';\nimport * as React from 'react';\n\nimport { SignInFirstFactorCtx, SignInSecondFactorCtx } from '../verifications';\n\nexport type SignInResendElement = React.ElementRef<'button'>;\nexport type SignInResendFallbackProps = {\n resendable: boolean;\n resendableAfter: number;\n};\nexport type SignInResendProps = {\n asChild?: boolean;\n children: React.ReactNode;\n /**\n * A fallback component to render when the resend action is not available.\n * This can be a React element or a function that receives the `resendableAfter` prop.\n */\n fallback?: React.ReactNode | ((props: SignInResendFallbackProps) => React.ReactNode);\n};\n\nconst SIGN_IN_RESEND_NAME = 'SignInResend';\n\n/**\n * Resend verification codes during the sign-in process.\n * This component must be used within the <Step name=\"verifications\">.\n *\n * @note This component is not intended to be used directly. Instead, use the <Action resend> component.\n *\n * @example\n * import { Action } from '@clerk/elements/sign-in';\n * <Action resend fallback={({ resendableAfter }) => <p>Resendable in: {resendableAfter}s</p>}>Resend</Action>;\n */\nexport const SignInResend = React.forwardRef<SignInResendElement, SignInResendProps>(\n ({ asChild, fallback, ...rest }, forwardedRef) => {\n const firstFactorRef = SignInFirstFactorCtx.useActorRef(true);\n const secondFactorRef = SignInSecondFactorCtx.useActorRef(true);\n const actorRef = firstFactorRef || secondFactorRef;\n\n if (!actorRef) {\n throw new Error('The resend action must be used within <SignIn.Step name=\"verifications\">.');\n }\n\n const fallbackProps: SignInResendFallbackProps = useSelector(\n actorRef,\n state => ({\n resendable: state.context.resendable,\n resendableAfter: state.context.resendableAfter,\n }),\n (a, b) => a.resendableAfter === b.resendableAfter && a.resendable === b.resendable,\n );\n\n if (fallback && !fallbackProps.resendable) {\n return typeof fallback === 'function' ? fallback(fallbackProps) : fallback;\n }\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n disabled={!fallbackProps.resendable}\n onClick={() => actorRef.send({ type: 'RETRY' })}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInResend.displayName = SIGN_IN_RESEND_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport type { SignInRouterSessionSetActiveEvent } from '~/internals/machines/sign-in';\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nimport { useSignInActiveSessionContext } from '../choose-session/choose-session.hooks';\n\nconst DISPLAY_NAME = 'SignInSetActiveSession';\n\nexport type SignInSetActiveSessionElement = React.ElementRef<'button'>;\nexport type SignInSetActiveSessionProps = {\n asChild?: boolean;\n children: React.ReactNode;\n};\n\n/**\n * Sets the active session to the session with the provided ID.\n *\n * @param {boolean} [asChild] - When `true`, the component will render its child and passes all props to it.\n *\n * @example\n * <SignInSetActiveSession setActiveSession>\n * t*****m@clerk.dev\n * </SignInSetActiveSession>\n */\nexport const SignInSetActiveSession = React.forwardRef<SignInSetActiveSessionElement, SignInSetActiveSessionProps>(\n ({ asChild, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef();\n const session = useSignInActiveSessionContext();\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n const event: SignInRouterSessionSetActiveEvent = { type: 'SESSION.SET_ACTIVE', id: session.id };\n\n if (actorRef.getSnapshot().can(event)) {\n actorRef.send(event);\n } else {\n console.warn(\n `Clerk: <SignIn.Action setActiveSession> is an invalid event. You can only choose an active session from <SignIn.Step name=\"choose-session\">.`,\n );\n }\n }, [actorRef, session.id]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInSetActiveSession.displayName = DISPLAY_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nexport type SignInPasskeyElement = React.ElementRef<'button'>;\n\nexport type SignInPasskeyProps = {\n asChild?: boolean;\n children: React.ReactNode;\n} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;\n\nconst SIGN_IN_PASSKEY_NAME = 'SignInPasskey';\n\n/**\n * Prompt users to select a passkey from their device in order to sign in.\n * This component must be used within the <Step name=\"start\">.\n *\n * @example\n * <SignIn.Action passkey>Use Passkey instead</SignIn.Action>\n */\nexport const SignInPasskey = React.forwardRef<SignInPasskeyElement, SignInPasskeyProps>(\n ({ asChild, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef(true);\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n actorRef?.send({ type: 'AUTHENTICATE.PASSKEY' });\n }, [actorRef]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInPasskey.displayName = SIGN_IN_PASSKEY_NAME;\n","import { useMemo } from 'react';\n\nimport { SignInSafeIdentifierSelectorForStrategy, SignInSalutationSelector } from '~/internals/machines/sign-in';\n\nimport { SignInRouterCtx, useSignInStrategy } from './context';\n\n/**\n * Render an identifier that has been provided by the user during a sign-in attempt. Renders a `string` (or empty string if it can't find an identifier).\n *\n * @example\n * <SignIn.Strategy name=\"email_code\">\n * <h1>Check your email</h1>\n * <p>We've sent a code to <SignIn.SafeIdentifier />.</p>\n * </SignIn.Strategy>\n */\nexport function SignInSafeIdentifier({ transform }: { transform?: (s: string) => string }): string {\n const strategy = useSignInStrategy();\n const selector = useMemo(() => SignInSafeIdentifierSelectorForStrategy(strategy), [strategy]);\n const safeIdentifier = SignInRouterCtx.useSelector(selector);\n\n if (transform) {\n return transform(safeIdentifier);\n }\n\n return safeIdentifier;\n}\n\n/**\n * Render a salutation for the user during a sign-in attempt. It attempts to resolve these values in this specific order: First name, Last name, Identifier. Renders a `string` (or empty string if it can't find an identifier).\n *\n * @example\n * <SignIn.Strategy name=\"password\">\n * <p>Welcome back <SignIn.Salutation />!</p>\n * </SignIn.Strategy>\n */\nexport function SignInSalutation(): string {\n return SignInRouterCtx.useSelector(SignInSalutationSelector);\n}\n"],"mappings":"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","names":["React","React","jsx","Slot","useSelector","React","jsx","useSelector","Slot","Slot","React","jsx","Slot","jsx","DISPLAY_NAME","Slot","React","jsx","Slot"]}
1
+ {"version":3,"sources":["../../../src/react/sign-in/index.ts","../../../src/react/sign-in/root.tsx","../../../src/react/sign-in/action/action.tsx","../../../src/react/sign-in/action/navigate.tsx","../../../src/react/sign-in/action/resend.tsx","../../../src/react/sign-in/action/set-active-session.tsx","../../../src/react/sign-in/passkey.tsx","../../../src/react/sign-in/identifiers.tsx"],"sourcesContent":["// Mark as a client-only package. This will error if you try to import it in a React Server Component.\nimport 'client-only';\n\nexport { SignInRoot as SignIn, SignInRoot as Root } from './root';\nexport { SignInStep as Step } from './step';\nexport { SignInAction as Action } from './action';\nexport { SignInPasskey as Passkey } from './passkey';\nexport { SignInSupportedStrategy as SupportedStrategy } from './choose-strategy';\nexport { SignInSessionList as SessionList, SignInSessionListItem as SessionListItem } from './choose-session';\n\nexport {\n SignInFirstFactor as FirstFactor,\n SignInSecondFactor as SecondFactor,\n SignInStrategy as Strategy,\n} from './verifications';\n\nexport { SignInSafeIdentifier as SafeIdentifier, SignInSalutation as Salutation } from './identifiers';\n","import { useClerk } from '@clerk/shared/react';\nimport { useClerkHostRouter } from '@clerk/shared/router';\nimport { eventComponentMounted } from '@clerk/shared/telemetry';\nimport { useSelector } from '@xstate/react';\nimport React, { useEffect } from 'react';\nimport { createActor } from 'xstate';\n\nimport { ROUTING, SIGN_IN_DEFAULT_BASE_PATH, SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { FormStoreProvider, useFormStore } from '~/internals/machines/form/form.context';\nimport type { SignInRouterInitEvent } from '~/internals/machines/sign-in';\nimport { SignInRouterMachine } from '~/internals/machines/sign-in';\nimport { inspect } from '~/internals/utils/inspector';\nimport { Router, useClerkRouter, useVirtualRouter } from '~/react/router';\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nimport { Form } from '../common/form';\nimport { removeOptionalCatchAllSegment } from '../utils/path-inference/utils';\n\ntype SignInFlowProviderProps = {\n children: React.ReactNode;\n exampleMode?: boolean;\n /**\n * Fallback markup to render while Clerk is loading\n */\n fallback?: React.ReactNode;\n isRootPath: boolean;\n};\n\nconst actor = createActor(SignInRouterMachine, { inspect });\nactor.start();\n\nfunction SignInFlowProvider({ children, exampleMode, fallback, isRootPath }: SignInFlowProviderProps) {\n const clerk = useClerk();\n const router = useClerkRouter();\n const formRef = useFormStore();\n const isReady = useSelector(actor, state => state.value !== 'Idle');\n\n useEffect(() => {\n if (!clerk || !router) {\n return;\n }\n\n const cb = () => {\n const evt: SignInRouterInitEvent = {\n type: 'INIT',\n clerk,\n exampleMode,\n formRef,\n router,\n signUpPath: SIGN_UP_DEFAULT_BASE_PATH,\n };\n\n if (actor.getSnapshot().can(evt)) {\n actor.send(evt);\n }\n };\n\n if ('addOnLoaded' in clerk) {\n // @ts-expect-error - addOnLoaded doesn't exist on the clerk type, but it does on IsomorphicClerk, which can be hit when Elements is used standalone\n clerk.addOnLoaded(cb);\n } else {\n cb();\n }\n\n // Ensure that the latest instantiated formRef is attached to the router\n if (formRef && actor.getSnapshot().can({ type: 'RESET.STEP' })) {\n actor.send({\n type: 'FORM.ATTACH',\n formRef,\n });\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clerk, exampleMode, formRef?.id, !!router, clerk.loaded]);\n\n return (\n <SignInRouterCtx.Provider actorRef={actor}>\n {isRootPath && !isReady && fallback ? <Form>{fallback}</Form> : null}\n {clerk.loaded && isReady ? children : null}\n </SignInRouterCtx.Provider>\n );\n}\n\nexport type SignInRootProps = Omit<SignInFlowProviderProps, 'isRootPath'> & {\n /**\n * The base path for your sign-in route.\n * Will be automatically inferred in Next.js.\n * @example `/sign-in`\n */\n path?: string;\n /**\n * If you want to render Clerk Elements in e.g. a modal, use the `virtual` routing mode.\n */\n routing?: ROUTING;\n};\n\n/**\n * Root component for the sign-in flow. It sets up providers and state management for its children.\n * Must wrap all sign-in related components.\n *\n * @param {string} path - The root path the sign-in flow is mounted at. Will be automatically inferred in Next.js. You can set it to `/sign-in` for example.\n * @param {React.ReactNode} fallback - Fallback markup to render while Clerk is loading. Default: `null`\n * @param {string} routing - If you want to render Clerk Elements in e.g. a modal, use the `'virtual'` routing mode. Default: `'path'`\n *\n * @example\n * import * as SignIn from \"@clerk/elements/sign-in\"\n *\n * export default SignInPage = () => (\n * <SignIn.Root>\n * </SignIn.Root>\n * )\n */\nexport function SignInRoot({\n children,\n exampleMode = false,\n fallback = null,\n path: pathProp,\n routing = ROUTING.path,\n}: SignInRootProps): JSX.Element | null {\n const clerk = useClerk();\n const router = (routing === ROUTING.virtual ? useVirtualRouter : useClerkHostRouter)();\n const pathname = router.pathname();\n const inferredPath = removeOptionalCatchAllSegment(pathname);\n const path = pathProp || inferredPath || SIGN_IN_DEFAULT_BASE_PATH;\n const isRootPath = path === pathname;\n\n clerk.telemetry?.record(\n eventComponentMounted('Elements_SignInRoot', {\n exampleMode,\n fallback: Boolean(fallback),\n path,\n routing,\n }),\n );\n\n return (\n <Router\n basePath={path}\n router={router}\n >\n <FormStoreProvider>\n <SignInFlowProvider\n exampleMode={exampleMode}\n fallback={fallback}\n isRootPath={isRootPath}\n >\n {children}\n </SignInFlowProvider>\n </FormStoreProvider>\n </Router>\n );\n}\n","import * as React from 'react';\n\nimport type { FormSubmitProps } from '~/react/common';\nimport { Submit } from '~/react/common';\n\nimport type { SignInNavigateProps } from './navigate';\nimport { SignInNavigate } from './navigate';\nimport type { SignInResendProps } from './resend';\nimport { SignInResend } from './resend';\nimport { SignInSetActiveSession } from './set-active-session';\n\nexport type SignInActionProps = { asChild?: boolean } & FormSubmitProps &\n (\n | ({\n navigate: SignInNavigateProps['to'];\n resend?: never;\n setActiveSession?: never;\n submit?: never;\n } & Omit<SignInNavigateProps, 'to'>)\n | { navigate?: never; resend?: never; setActiveSession?: never; submit: true }\n | { navigate?: never; resend?: never; setActiveSession: true; submit?: never }\n | ({ navigate?: never; resend: true; setActiveSession?: never; submit?: never } & SignInResendProps)\n );\n\nconst DISPLAY_NAME = 'SignInAction';\n\n/**\n * Perform various actions during the sign-in process. This component is used to navigate between steps, submit the form, or resend a verification codes.\n *\n * @param {boolean} [submit] - If `true`, the action will submit the form.\n * @param {string} [navigate] - The name of the step to navigate to.\n * @param {boolean} [resend] - If `true`, the action will resend the verification code for the currently active strategy, if applicable.\n * @param {Function} [fallback] - Only used when `resend` is `true`. If provided, the fallback markup will be rendered before the resend delay has expired.\n *\n * @example\n * <SignIn.Action navigate=\"start\">Go Back</SignIn.Action>\n *\n * @example\n * <SignIn.Action submit>Sign In</SignIn.Action>\n *\n * @example\n * <SignIn.Action resend>Resend</SignIn.Action>\n */\nexport const SignInAction = React.forwardRef<React.ElementRef<'button'>, SignInActionProps>((props, forwardedRef) => {\n const { submit, navigate, resend, setActiveSession, ...rest } = props;\n let Comp: React.ForwardRefExoticComponent<any> | undefined;\n\n if (submit) {\n Comp = Submit;\n } else if (navigate) {\n Comp = SignInNavigate;\n } else if (resend) {\n Comp = SignInResend;\n } else if (setActiveSession) {\n Comp = SignInSetActiveSession;\n }\n\n return Comp ? (\n <Comp\n to={navigate}\n {...rest}\n ref={forwardedRef}\n />\n ) : null;\n});\n\nSignInAction.displayName = DISPLAY_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nconst SIGN_IN_NAVIGATE_NAME = 'SignInNavigate';\nconst SignInNavigationEventMap = {\n start: 'NAVIGATE.START',\n previous: 'NAVIGATE.PREVIOUS',\n 'choose-strategy': 'NAVIGATE.CHOOSE_STRATEGY',\n 'forgot-password': 'NAVIGATE.FORGOT_PASSWORD',\n} as const;\n\nexport type SignInNavigateElementKey = keyof typeof SignInNavigationEventMap;\n\nexport type SignInNavigateElement = React.ElementRef<'button'>;\nexport type SignInNavigateProps = {\n asChild?: boolean;\n to: SignInNavigateElementKey;\n children: React.ReactNode;\n};\n\n/**\n * Renders a button which will navigate to a different step in the sign-in flow.\n *\n * @param {SignInNavigateElementKey} to - The step to navigate to.\n * @param {boolean} [asChild] - When `true`, the component will render its child and passes all props to it.\n *\n * @example\n * <Navigate to=\"choose-strategy\">\n * Choose a different sign-in method...\n * </Navigate>\n */\nexport const SignInNavigate = React.forwardRef<SignInNavigateElement, SignInNavigateProps>(\n ({ asChild, to, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef();\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n const type = SignInNavigationEventMap[to];\n\n if (actorRef.getSnapshot().can({ type })) {\n actorRef.send({ type });\n } else {\n console.warn(\n `Clerk: <SignIn.Action navigate=\"${to}\"> is an invalid navigation event. You can only navigate to: ${Object.keys(SignInNavigationEventMap).join(', ')}.`,\n );\n }\n }, [actorRef, to]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInNavigate.displayName = SIGN_IN_NAVIGATE_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport { useSelector } from '@xstate/react';\nimport * as React from 'react';\n\nimport { SignInFirstFactorCtx, SignInSecondFactorCtx } from '../verifications';\n\nexport type SignInResendElement = React.ElementRef<'button'>;\nexport type SignInResendFallbackProps = {\n resendable: boolean;\n resendableAfter: number;\n};\nexport type SignInResendProps = {\n asChild?: boolean;\n children: React.ReactNode;\n /**\n * A fallback component to render when the resend action is not available.\n * This can be a React element or a function that receives the `resendableAfter` prop.\n */\n fallback?: React.ReactNode | ((props: SignInResendFallbackProps) => React.ReactNode);\n};\n\nconst SIGN_IN_RESEND_NAME = 'SignInResend';\n\n/**\n * Resend verification codes during the sign-in process.\n * This component must be used within the <Step name=\"verifications\">.\n *\n * @note This component is not intended to be used directly. Instead, use the <Action resend> component.\n *\n * @example\n * import { Action } from '@clerk/elements/sign-in';\n * <Action resend fallback={({ resendableAfter }) => <p>Resendable in: {resendableAfter}s</p>}>Resend</Action>;\n */\nexport const SignInResend = React.forwardRef<SignInResendElement, SignInResendProps>(\n ({ asChild, fallback, ...rest }, forwardedRef) => {\n const firstFactorRef = SignInFirstFactorCtx.useActorRef(true);\n const secondFactorRef = SignInSecondFactorCtx.useActorRef(true);\n const actorRef = firstFactorRef || secondFactorRef;\n\n if (!actorRef) {\n throw new Error('The resend action must be used within <SignIn.Step name=\"verifications\">.');\n }\n\n const fallbackProps: SignInResendFallbackProps = useSelector(\n actorRef,\n state => ({\n resendable: state.context.resendable,\n resendableAfter: state.context.resendableAfter,\n }),\n (a, b) => a.resendableAfter === b.resendableAfter && a.resendable === b.resendable,\n );\n\n if (fallback && !fallbackProps.resendable) {\n return typeof fallback === 'function' ? fallback(fallbackProps) : fallback;\n }\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n disabled={!fallbackProps.resendable}\n onClick={() => actorRef.send({ type: 'RETRY' })}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInResend.displayName = SIGN_IN_RESEND_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport type { SignInRouterSessionSetActiveEvent } from '~/internals/machines/sign-in';\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nimport { useSignInActiveSessionContext } from '../choose-session/choose-session.hooks';\n\nconst DISPLAY_NAME = 'SignInSetActiveSession';\n\nexport type SignInSetActiveSessionElement = React.ElementRef<'button'>;\nexport type SignInSetActiveSessionProps = {\n asChild?: boolean;\n children: React.ReactNode;\n};\n\n/**\n * Sets the active session to the session with the provided ID.\n *\n * @param {boolean} [asChild] - When `true`, the component will render its child and passes all props to it.\n *\n * @example\n * <SignInSetActiveSession setActiveSession>\n * t*****m@clerk.dev\n * </SignInSetActiveSession>\n */\nexport const SignInSetActiveSession = React.forwardRef<SignInSetActiveSessionElement, SignInSetActiveSessionProps>(\n ({ asChild, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef();\n const session = useSignInActiveSessionContext();\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n const event: SignInRouterSessionSetActiveEvent = { type: 'SESSION.SET_ACTIVE', id: session.id };\n\n if (actorRef.getSnapshot().can(event)) {\n actorRef.send(event);\n } else {\n console.warn(\n `Clerk: <SignIn.Action setActiveSession> is an invalid event. You can only choose an active session from <SignIn.Step name=\"choose-session\">.`,\n );\n }\n }, [actorRef, session.id]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInSetActiveSession.displayName = DISPLAY_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignInRouterCtx } from '~/react/sign-in/context';\n\nexport type SignInPasskeyElement = React.ElementRef<'button'>;\n\nexport type SignInPasskeyProps = {\n asChild?: boolean;\n children: React.ReactNode;\n} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;\n\nconst SIGN_IN_PASSKEY_NAME = 'SignInPasskey';\n\n/**\n * Prompt users to select a passkey from their device in order to sign in.\n * This component must be used within the <Step name=\"start\">.\n *\n * @example\n * <SignIn.Action passkey>Use Passkey instead</SignIn.Action>\n */\nexport const SignInPasskey = React.forwardRef<SignInPasskeyElement, SignInPasskeyProps>(\n ({ asChild, ...rest }, forwardedRef) => {\n const actorRef = SignInRouterCtx.useActorRef(true);\n\n const Comp = asChild ? Slot : 'button';\n const defaultProps = asChild ? {} : { type: 'button' as const };\n\n const sendEvent = React.useCallback(() => {\n actorRef?.send({ type: 'AUTHENTICATE.PASSKEY' });\n }, [actorRef]);\n\n return (\n <Comp\n {...defaultProps}\n {...rest}\n onClick={sendEvent}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignInPasskey.displayName = SIGN_IN_PASSKEY_NAME;\n","import { useMemo } from 'react';\n\nimport { SignInSafeIdentifierSelectorForStrategy, SignInSalutationSelector } from '~/internals/machines/sign-in';\n\nimport { SignInRouterCtx, useSignInStrategy } from './context';\n\n/**\n * Render an identifier that has been provided by the user during a sign-in attempt. Renders a `string` (or empty string if it can't find an identifier).\n *\n * @example\n * <SignIn.Strategy name=\"email_code\">\n * <h1>Check your email</h1>\n * <p>We've sent a code to <SignIn.SafeIdentifier />.</p>\n * </SignIn.Strategy>\n */\nexport function SignInSafeIdentifier({ transform }: { transform?: (s: string) => string }): string {\n const strategy = useSignInStrategy();\n const selector = useMemo(() => SignInSafeIdentifierSelectorForStrategy(strategy), [strategy]);\n const safeIdentifier = SignInRouterCtx.useSelector(selector);\n\n if (transform) {\n return transform(safeIdentifier);\n }\n\n return safeIdentifier;\n}\n\n/**\n * Render a salutation for the user during a sign-in attempt. It attempts to resolve these values in this specific order: First name, Last name, Identifier. Renders a `string` (or empty string if it can't find an identifier).\n *\n * @example\n * <SignIn.Strategy name=\"password\">\n * <p>Welcome back <SignIn.Salutation />!</p>\n * </SignIn.Strategy>\n */\nexport function SignInSalutation(): string {\n return SignInRouterCtx.useSelector(SignInSalutationSelector);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO;;;ACDP,SAAS,gBAAgB;AACzB,SAAS,0BAA0B;AACnC,SAAS,6BAA6B;AACtC,SAAS,mBAAmB;AAC5B,SAAgB,iBAAiB;AACjC,SAAS,mBAAmB;AAuExB,SACwC,KADxC;AAhDJ,IAAM,QAAQ,YAAY,qBAAqB,EAAE,QAAQ,CAAC;AAC1D,MAAM,MAAM;AAEZ,SAAS,mBAAmB,EAAE,UAAU,aAAa,UAAU,WAAW,GAA4B;AACpG,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,eAAe;AAC9B,QAAM,UAAU,aAAa;AAC7B,QAAM,UAAU,YAAY,OAAO,WAAS,MAAM,UAAU,MAAM;AAElE,YAAU,MAAM;AACd,QAAI,CAAC,SAAS,CAAC,QAAQ;AACrB;AAAA,IACF;AAEA,UAAM,KAAK,MAAM;AACf,YAAM,MAA6B;AAAA,QACjC,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY;AAAA,MACd;AAEA,UAAI,MAAM,YAAY,EAAE,IAAI,GAAG,GAAG;AAChC,cAAM,KAAK,GAAG;AAAA,MAChB;AAAA,IACF;AAEA,QAAI,iBAAiB,OAAO;AAE1B,YAAM,YAAY,EAAE;AAAA,IACtB,OAAO;AACL,SAAG;AAAA,IACL;AAGA,QAAI,WAAW,MAAM,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC,GAAG;AAC9D,YAAM,KAAK;AAAA,QACT,MAAM;AAAA,QACN;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EAGF,GAAG,CAAC,OAAO,aAAa,mCAAS,IAAI,CAAC,CAAC,QAAQ,MAAM,MAAM,CAAC;AAE5D,SACE,qBAAC,gBAAgB,UAAhB,EAAyB,UAAU,OACjC;AAAA,kBAAc,CAAC,WAAW,WAAW,oBAAC,QAAM,oBAAS,IAAU;AAAA,IAC/D,MAAM,UAAU,UAAU,WAAW;AAAA,KACxC;AAEJ;AA+BO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,UAAU,QAAQ;AACpB,GAAwC;AAtHxC;AAuHE,QAAM,QAAQ,SAAS;AACvB,QAAM,UAAU,YAAY,QAAQ,UAAU,mBAAmB,oBAAoB;AACrF,QAAM,WAAW,OAAO,SAAS;AACjC,QAAM,eAAe,8BAA8B,QAAQ;AAC3D,QAAM,OAAO,YAAY,gBAAgB;AACzC,QAAM,aAAa,SAAS;AAE5B,cAAM,cAAN,mBAAiB;AAAA,IACf,sBAAsB,uBAAuB;AAAA,MAC3C;AAAA,MACA,UAAU,QAAQ,QAAQ;AAAA,MAC1B;AAAA,MACA;AAAA,IACF,CAAC;AAAA;AAGH,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU;AAAA,MACV;AAAA,MAEA,8BAAC,qBACC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEC;AAAA;AAAA,MACH,GACF;AAAA;AAAA,EACF;AAEJ;;;ACvJA,YAAYA,YAAW;;;ACAvB,SAAS,YAAY;AACrB,YAAYC,YAAW;AAoDjB,gBAAAC,YAAA;AAhDN,IAAM,wBAAwB;AAC9B,IAAM,2BAA2B;AAAA,EAC/B,OAAO;AAAA,EACP,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,mBAAmB;AACrB;AAsBO,IAAM,iBAAuB;AAAA,EAClC,CAAC,EAAE,SAAS,IAAI,GAAG,KAAK,GAAG,iBAAiB;AAC1C,UAAM,WAAW,gBAAgB,YAAY;AAE7C,UAAM,OAAO,UAAU,OAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,UAAM,YAAkB,mBAAY,MAAM;AACxC,YAAM,OAAO,yBAAyB,EAAE;AAExC,UAAI,SAAS,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG;AACxC,iBAAS,KAAK,EAAE,KAAK,CAAC;AAAA,MACxB,OAAO;AACL,gBAAQ;AAAA,UACN,mCAAmC,EAAE,gEAAgE,OAAO,KAAK,wBAAwB,EAAE,KAAK,IAAI,CAAC;AAAA,QACvJ;AAAA,MACF;AAAA,IACF,GAAG,CAAC,UAAU,EAAE,CAAC;AAEjB,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;;;AC/D7B,SAAS,QAAAC,aAAY;AACrB,SAAS,eAAAC,oBAAmB;AAC5B,YAAYC,YAAW;AA0DjB,gBAAAC,YAAA;AAvCN,IAAM,sBAAsB;AAYrB,IAAM,eAAqB;AAAA,EAChC,CAAC,EAAE,SAAS,UAAU,GAAG,KAAK,GAAG,iBAAiB;AAChD,UAAM,iBAAiB,qBAAqB,YAAY,IAAI;AAC5D,UAAM,kBAAkB,sBAAsB,YAAY,IAAI;AAC9D,UAAM,WAAW,kBAAkB;AAEnC,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,2EAA2E;AAAA,IAC7F;AAEA,UAAM,gBAA2CC;AAAA,MAC/C;AAAA,MACA,YAAU;AAAA,QACR,YAAY,MAAM,QAAQ;AAAA,QAC1B,iBAAiB,MAAM,QAAQ;AAAA,MACjC;AAAA,MACA,CAAC,GAAG,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,eAAe,EAAE;AAAA,IAC1E;AAEA,QAAI,YAAY,CAAC,cAAc,YAAY;AACzC,aAAO,OAAO,aAAa,aAAa,SAAS,aAAa,IAAI;AAAA,IACpE;AAEA,UAAM,OAAO,UAAUC,QAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,UAAU,CAAC,cAAc;AAAA,QACzB,SAAS,MAAM,SAAS,KAAK,EAAE,MAAM,QAAQ,CAAC;AAAA,QAC9C,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;;;ACvE3B,SAAS,QAAAG,aAAY;AACrB,YAAYC,YAAW;AA8CjB,gBAAAC,YAAA;AAvCN,IAAM,eAAe;AAkBd,IAAM,yBAA+B;AAAA,EAC1C,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,iBAAiB;AACtC,UAAM,WAAW,gBAAgB,YAAY;AAC7C,UAAM,UAAU,8BAA8B;AAE9C,UAAM,OAAO,UAAUC,QAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,UAAM,YAAkB,mBAAY,MAAM;AACxC,YAAM,QAA2C,EAAE,MAAM,sBAAsB,IAAI,QAAQ,GAAG;AAE9F,UAAI,SAAS,YAAY,EAAE,IAAI,KAAK,GAAG;AACrC,iBAAS,KAAK,KAAK;AAAA,MACrB,OAAO;AACL,gBAAQ;AAAA,UACN;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAAG,CAAC,UAAU,QAAQ,EAAE,CAAC;AAEzB,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,uBAAuB,cAAc;;;AHCjC,gBAAAE,YAAA;AAlCJ,IAAMC,gBAAe;AAmBd,IAAM,eAAqB,kBAA0D,CAAC,OAAO,iBAAiB;AACnH,QAAM,EAAE,QAAQ,UAAU,QAAQ,kBAAkB,GAAG,KAAK,IAAI;AAChE,MAAI;AAEJ,MAAI,QAAQ;AACV,WAAO;AAAA,EACT,WAAW,UAAU;AACnB,WAAO;AAAA,EACT,WAAW,QAAQ;AACjB,WAAO;AAAA,EACT,WAAW,kBAAkB;AAC3B,WAAO;AAAA,EACT;AAEA,SAAO,OACL,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACH,GAAG;AAAA,MACJ,KAAK;AAAA;AAAA,EACP,IACE;AACN,CAAC;AAED,aAAa,cAAcC;;;AIlE3B,SAAS,QAAAC,aAAY;AACrB,YAAYC,YAAW;AAgCjB,gBAAAC,YAAA;AArBN,IAAM,uBAAuB;AAStB,IAAM,gBAAsB;AAAA,EACjC,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,iBAAiB;AACtC,UAAM,WAAW,gBAAgB,YAAY,IAAI;AAEjD,UAAM,OAAO,UAAUC,QAAO;AAC9B,UAAM,eAAe,UAAU,CAAC,IAAI,EAAE,MAAM,SAAkB;AAE9D,UAAM,YAAkB,mBAAY,MAAM;AACxC,2CAAU,KAAK,EAAE,MAAM,uBAAuB;AAAA,IAChD,GAAG,CAAC,QAAQ,CAAC;AAEb,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACH,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,KAAK;AAAA;AAAA,IACP;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;;;AC3C5B,SAAS,eAAe;AAejB,SAAS,qBAAqB,EAAE,UAAU,GAAkD;AACjG,QAAM,WAAW,kBAAkB;AACnC,QAAM,WAAW,QAAQ,MAAM,wCAAwC,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAC5F,QAAM,iBAAiB,gBAAgB,YAAY,QAAQ;AAE3D,MAAI,WAAW;AACb,WAAO,UAAU,cAAc;AAAA,EACjC;AAEA,SAAO;AACT;AAUO,SAAS,mBAA2B;AACzC,SAAO,gBAAgB,YAAY,wBAAwB;AAC7D;","names":["React","React","jsx","Slot","useSelector","React","jsx","useSelector","Slot","Slot","React","jsx","Slot","jsx","DISPLAY_NAME","Slot","React","jsx","Slot"]}
@@ -48,11 +48,11 @@ module.exports = __toCommonJS(sign_up_exports);
48
48
  var import_client_only2 = require("client-only");
49
49
 
50
50
  // src/react/sign-up/root.tsx
51
- var import_react6 = require("@clerk/shared/react");
52
- var import_router5 = require("@clerk/shared/router");
51
+ var import_react5 = require("@clerk/shared/react");
52
+ var import_router4 = require("@clerk/shared/router");
53
53
  var import_telemetry = require("@clerk/shared/telemetry");
54
- var import_react7 = require("@xstate/react");
55
- var import_react8 = require("react");
54
+ var import_react6 = require("@xstate/react");
55
+ var import_react7 = require("react");
56
56
  var import_xstate8 = require("xstate");
57
57
 
58
58
  // src/utils/safe-access.ts
@@ -2172,49 +2172,21 @@ var DISPLAY_NAME2 = "ClerkElementsSubmit";
2172
2172
  var Submit = import_react_form2.Submit;
2173
2173
  Submit.displayName = DISPLAY_NAME2;
2174
2174
 
2175
- // src/react/utils/path-inference/next.tsx
2176
- var import_router4 = require("next/compat/router");
2177
- var import_navigation = require("next/navigation");
2178
- var import_react5 = __toESM(require("react"));
2179
-
2180
2175
  // src/react/utils/path-inference/utils.ts
2181
2176
  function removeOptionalCatchAllSegment(pathname) {
2182
2177
  return pathname.replace(/\/\[\[\.\.\..*/, "");
2183
2178
  }
2184
2179
 
2185
- // src/react/utils/path-inference/next.tsx
2186
- var usePathnameWithoutCatchAll = () => {
2187
- const pathRef = import_react5.default.useRef();
2188
- const pagesRouter = (0, import_router4.useRouter)();
2189
- if (pagesRouter) {
2190
- if (pathRef.current) {
2191
- return pathRef.current;
2192
- } else {
2193
- pathRef.current = removeOptionalCatchAllSegment(pagesRouter.pathname);
2194
- return pathRef.current;
2195
- }
2196
- }
2197
- const pathname = (0, import_navigation.usePathname)() || "";
2198
- const pathParts = pathname.split("/").filter(Boolean);
2199
- const catchAllParams = Object.values((0, import_navigation.useParams)() || {}).filter((v) => Array.isArray(v)).flat(Infinity);
2200
- if (pathRef.current) {
2201
- return pathRef.current;
2202
- } else {
2203
- pathRef.current = `/${pathParts.slice(0, pathParts.length - catchAllParams.length).join("/")}`;
2204
- return pathRef.current;
2205
- }
2206
- };
2207
-
2208
2180
  // src/react/sign-up/root.tsx
2209
2181
  var import_jsx_runtime2 = require("react/jsx-runtime");
2210
2182
  var actor = (0, import_xstate8.createActor)(SignUpRouterMachine, { inspect });
2211
2183
  actor.start();
2212
2184
  function SignUpFlowProvider({ children, exampleMode, fallback, isRootPath }) {
2213
- const clerk = (0, import_react6.useClerk)();
2185
+ const clerk = (0, import_react5.useClerk)();
2214
2186
  const router = (0, import_router2.useClerkRouter)();
2215
2187
  const formRef = useFormStore();
2216
- const isReady = (0, import_react7.useSelector)(actor, (state) => state.value !== "Idle");
2217
- (0, import_react8.useEffect)(() => {
2188
+ const isReady = (0, import_react6.useSelector)(actor, (state) => state.value !== "Idle");
2189
+ (0, import_react7.useEffect)(() => {
2218
2190
  if (!clerk || !router) {
2219
2191
  return;
2220
2192
  }
@@ -2256,9 +2228,12 @@ function SignUpRoot({
2256
2228
  routing = ROUTING.path
2257
2229
  }) {
2258
2230
  var _a;
2259
- const clerk = (0, import_react6.useClerk)();
2260
- const inferredPath = usePathnameWithoutCatchAll();
2231
+ const clerk = (0, import_react5.useClerk)();
2232
+ const router = (routing === ROUTING.virtual ? useVirtualRouter : import_router4.useClerkHostRouter)();
2233
+ const pathname = router.pathname();
2234
+ const inferredPath = removeOptionalCatchAllSegment(pathname);
2261
2235
  const path = pathProp || inferredPath || SIGN_UP_DEFAULT_BASE_PATH;
2236
+ const isRootPath = path === pathname;
2262
2237
  (_a = clerk.telemetry) == null ? void 0 : _a.record(
2263
2238
  (0, import_telemetry.eventComponentMounted)("Elements_SignUpRoot", {
2264
2239
  exampleMode,
@@ -2267,8 +2242,6 @@ function SignUpRoot({
2267
2242
  routing
2268
2243
  })
2269
2244
  );
2270
- const router = (routing === ROUTING.virtual ? useVirtualRouter : import_router5.useClerkHostRouter)();
2271
- const isRootPath = path === router.pathname();
2272
2245
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2273
2246
  import_router2.Router,
2274
2247
  {
@@ -2288,17 +2261,17 @@ function SignUpRoot({
2288
2261
  }
2289
2262
 
2290
2263
  // src/react/sign-up/step.tsx
2291
- var import_react10 = require("@clerk/shared/react");
2264
+ var import_react9 = require("@clerk/shared/react");
2292
2265
  var import_telemetry2 = require("@clerk/shared/telemetry");
2293
2266
 
2294
2267
  // src/react/hooks/use-active-tags.hook.ts
2295
- var import_react9 = require("@xstate/react");
2268
+ var import_react8 = require("@xstate/react");
2296
2269
  var ActiveTagsMode = {
2297
2270
  any: "any",
2298
2271
  all: "all"
2299
2272
  };
2300
2273
  function useActiveTags(actor2, tags, mode = ActiveTagsMode.any) {
2301
- const state = (0, import_react9.useSelector)(
2274
+ const state = (0, import_react8.useSelector)(
2302
2275
  actor2,
2303
2276
  (s) => s,
2304
2277
  (prev, next) => prev.tags === next.tags
@@ -2427,7 +2400,7 @@ var SIGN_UP_STEPS = {
2427
2400
  };
2428
2401
  function SignUpStep(props) {
2429
2402
  var _a;
2430
- const clerk = (0, import_react10.useClerk)();
2403
+ const clerk = (0, import_react9.useClerk)();
2431
2404
  (_a = clerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry2.eventComponentMounted)("Elements_SignUpStep", { name: props.name }));
2432
2405
  switch (props.name) {
2433
2406
  case SIGN_UP_STEPS.start:
@@ -2446,26 +2419,26 @@ function SignUpStep(props) {
2446
2419
  }
2447
2420
 
2448
2421
  // src/react/sign-up/action/action.tsx
2449
- var React6 = __toESM(require("react"));
2422
+ var React5 = __toESM(require("react"));
2450
2423
 
2451
2424
  // src/react/common/index.ts
2452
2425
  var import_client_only = require("client-only");
2453
2426
 
2454
2427
  // src/react/sign-up/action/navigate.tsx
2455
2428
  var import_react_slot = require("@radix-ui/react-slot");
2456
- var React4 = __toESM(require("react"));
2429
+ var React3 = __toESM(require("react"));
2457
2430
  var import_jsx_runtime8 = require("react/jsx-runtime");
2458
2431
  var SIGN_UP_NAVIGATE_NAME = "SignInNavigate";
2459
2432
  var SignUpNavigationEventMap = {
2460
2433
  start: `NAVIGATE.START`,
2461
2434
  previous: `NAVIGATE.PREVIOUS`
2462
2435
  };
2463
- var SignUpNavigate = React4.forwardRef(
2436
+ var SignUpNavigate = React3.forwardRef(
2464
2437
  ({ asChild, to, ...rest }, forwardedRef) => {
2465
2438
  const actorRef = SignUpRouterCtx.useActorRef();
2466
2439
  const Comp = asChild ? import_react_slot.Slot : "button";
2467
2440
  const defaultProps = asChild ? {} : { type: "button" };
2468
- const sendEvent = React4.useCallback(() => {
2441
+ const sendEvent = React3.useCallback(() => {
2469
2442
  const type = SignUpNavigationEventMap[to];
2470
2443
  if (actorRef.getSnapshot().can({ type })) {
2471
2444
  actorRef.send({ type });
@@ -2490,17 +2463,17 @@ SignUpNavigate.displayName = SIGN_UP_NAVIGATE_NAME;
2490
2463
 
2491
2464
  // src/react/sign-up/action/resend.tsx
2492
2465
  var import_react_slot2 = require("@radix-ui/react-slot");
2493
- var import_react11 = require("@xstate/react");
2494
- var React5 = __toESM(require("react"));
2466
+ var import_react10 = require("@xstate/react");
2467
+ var React4 = __toESM(require("react"));
2495
2468
  var import_jsx_runtime9 = require("react/jsx-runtime");
2496
2469
  var SIGN_UP_RESEND_NAME = "SignUpResend";
2497
- var SignUpResend = React5.forwardRef(
2470
+ var SignUpResend = React4.forwardRef(
2498
2471
  ({ asChild, fallback, ...rest }, forwardedRef) => {
2499
2472
  const ref = SignUpVerificationCtx.useActorRef(true);
2500
2473
  if (!ref) {
2501
2474
  throw new Error('The resend action must be used within <SignUp.Step name="verifications">.');
2502
2475
  }
2503
- const fallbackProps = (0, import_react11.useSelector)(
2476
+ const fallbackProps = (0, import_react10.useSelector)(
2504
2477
  ref,
2505
2478
  (state) => ({
2506
2479
  resendable: state.context.resendable,
@@ -2529,7 +2502,7 @@ SignUpResend.displayName = SIGN_UP_RESEND_NAME;
2529
2502
 
2530
2503
  // src/react/sign-up/action/action.tsx
2531
2504
  var import_jsx_runtime10 = require("react/jsx-runtime");
2532
- var SignUpAction = React6.forwardRef((props, forwardedRef) => {
2505
+ var SignUpAction = React5.forwardRef((props, forwardedRef) => {
2533
2506
  const { submit, navigate, resend, ...rest } = props;
2534
2507
  let Comp;
2535
2508
  if (submit) {
@@ -2552,9 +2525,9 @@ SignUpAction.displayName = "SignUpAction";
2552
2525
 
2553
2526
  // src/react/sign-up/captcha.tsx
2554
2527
  var import_react_slot3 = require("@radix-ui/react-slot");
2555
- var React7 = __toESM(require("react"));
2528
+ var React6 = __toESM(require("react"));
2556
2529
  var import_jsx_runtime11 = require("react/jsx-runtime");
2557
- var SignUpCaptcha = React7.forwardRef(
2530
+ var SignUpCaptcha = React6.forwardRef(
2558
2531
  ({ asChild, children, ...rest }, forwardedRef) => {
2559
2532
  const ref = SignUpStartCtx.useActorRef(true);
2560
2533
  if (!ref) {