@clerk/elements 0.17.1 → 0.17.2-canary.vf875463

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.
@@ -3,7 +3,7 @@ import {
3
3
  useClerkRouter,
4
4
  usePathnameWithoutCatchAll,
5
5
  useVirtualRouter
6
- } from "../../chunk-WIS4KGWZ.mjs";
6
+ } from "../../chunk-PEFF57AS.mjs";
7
7
  import {
8
8
  CAPTCHA_ELEMENT_ID,
9
9
  ClerkElementsError,
@@ -32,7 +32,7 @@ import {
32
32
  sendToLoading,
33
33
  shouldUseVirtualRouting,
34
34
  useFormStore
35
- } from "../../chunk-S3AGKY4R.mjs";
35
+ } from "../../chunk-ZRCYOFRG.mjs";
36
36
 
37
37
  // src/react/sign-up/index.ts
38
38
  import "client-only";
@@ -887,15 +887,15 @@ var SignUpRouterMachine = setup4({
887
887
  },
888
888
  raiseNext: raise2({ type: "NEXT" }),
889
889
  setActive: ({ context, event }, params) => {
890
+ var _a;
890
891
  if (context.exampleMode) {
891
892
  return;
892
893
  }
893
894
  const session = (params == null ? void 0 : params.sessionId) || (params == null ? void 0 : params.useLastActiveSession) && context.clerk.client.lastActiveSessionId || ((event == null ? void 0 : event.resource) || context.clerk.client.signUp).createdSessionId;
894
- const beforeEmit = () => {
895
- var _a, _b;
896
- return (_b = context.router) == null ? void 0 : _b.push(((_a = context.router) == null ? void 0 : _a.searchParams().get("redirect_url")) || context.clerk.buildAfterSignUpUrl());
897
- };
898
- void context.clerk.setActive({ session, beforeEmit });
895
+ void context.clerk.setActive({
896
+ session,
897
+ redirectUrl: ((_a = context.router) == null ? void 0 : _a.searchParams().get("redirect_url")) || context.clerk.buildAfterSignUpUrl()
898
+ });
899
899
  },
900
900
  delayedReset: raise2({ type: "RESET" }, { delay: 3e3 }),
901
901
  // Reset machine after 3s delay.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/sign-up/index.ts","../../../src/react/sign-up/root.tsx","../../../src/internals/machines/sign-up/continue.machine.ts","../../../src/internals/machines/sign-up/utils/fields-to-params.ts","../../../src/internals/machines/sign-up/router.machine.ts","../../../src/internals/machines/sign-up/start.machine.ts","../../../src/internals/machines/sign-up/verification.machine.ts","../../../src/internals/machines/sign-up/verification.types.ts","../../../src/react/sign-up/action/action.tsx","../../../src/react/sign-up/action/navigate.tsx","../../../src/react/sign-up/action/resend.tsx","../../../src/react/sign-up/captcha.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 { SignUpRoot as SignUp, SignUpRoot as Root } from './root';\nexport { SignUpStep as Step } from './step';\nexport { SignUpAction as Action } from './action';\nexport { SignUpStrategy as Strategy } from './verifications';\nexport { SignUpCaptcha as Captcha } from './captcha';\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 { 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 { SignUpRouterInitEvent } from '~/internals/machines/sign-up';\nimport { SignUpRouterMachine } from '~/internals/machines/sign-up';\nimport { inspect } from '~/internals/utils/inspector';\nimport { Router, useClerkRouter, useVirtualRouter } from '~/react/router';\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nimport { Form } from '../common/form';\nimport { usePathnameWithoutCatchAll } from '../utils/path-inference/next';\n\ntype SignUpFlowProviderProps = {\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(SignUpRouterMachine, { inspect });\nactor.start();\n\nfunction SignUpFlowProvider({ children, exampleMode, fallback, isRootPath }: SignUpFlowProviderProps) {\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: SignUpRouterInitEvent = {\n type: 'INIT',\n clerk,\n exampleMode,\n formRef,\n router,\n signInPath: SIGN_IN_DEFAULT_BASE_PATH,\n };\n\n if (actor.getSnapshot().can(evt)) {\n actor.send(evt);\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\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clerk, exampleMode, formRef?.id, !!router, clerk.loaded]);\n\n return (\n <SignUpRouterCtx.Provider actorRef={actor}>\n {isRootPath && !isReady && fallback ? <Form>{fallback}</Form> : null}\n {clerk.loaded && isReady ? children : null}\n </SignUpRouterCtx.Provider>\n );\n}\n\nexport type SignUpRootProps = Omit<SignUpFlowProviderProps, 'isRootPath'> & {\n /**\n * The base path for your sign-up route.\n * Will be automatically inferred in Next.js.\n * @example `/sign-up`\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-up flow. It sets up providers and state management for its children.\n * Must wrap all sign-up related components.\n *\n * @param {string} path - The root path the sign-up flow is mounted at. Will be automatically inferred in Next.js. You can set it to `/sign-up` 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 SignUp from \"@clerk/elements/sign-up\"\n *\n * export default SignUpPage = () => (\n * <SignUp.Root>\n * </SignUp.Root>\n * )\n */\nexport function SignUpRoot({\n children,\n exampleMode = false,\n fallback = null,\n path: pathProp,\n routing = ROUTING.path,\n}: SignUpRootProps): JSX.Element | null {\n const clerk = useClerk();\n const inferredPath = usePathnameWithoutCatchAll();\n const path = pathProp || inferredPath || SIGN_UP_DEFAULT_BASE_PATH;\n\n clerk.telemetry?.record(\n eventComponentMounted('Elements_SignUpRoot', {\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 <SignUpFlowProvider\n exampleMode={exampleMode}\n fallback={fallback}\n isRootPath={isRootPath}\n >\n {children}\n </SignUpFlowProvider>\n </FormStoreProvider>\n </Router>\n );\n}\n","import { snakeToCamel } from '@clerk/shared/underscore';\nimport type { SignUpResource } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { fromPromise, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport type { FormDefaultValues, FormFields } from '~/internals/machines/form';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignUpContinueSchema } from './continue.types';\nimport type { SignInRouterMachineActorRef } from './router.types';\n\nexport type TSignUpContinueMachine = typeof SignUpContinueMachine;\n\nexport const SignUpContinueMachineId = 'SignUpContinue';\n\nexport const SignUpContinueMachine = setup({\n actors: {\n attempt: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; fields: FormFields }>(\n ({ input: { fields, parent } }) => {\n const params = fieldsToSignUpParams(fields);\n return parent.getSnapshot().context.clerk.client.signUp.update(params);\n },\n ),\n },\n actions: {\n setFormErrors: ({ context, event }) => {\n assertActorEventError(event);\n context.formRef.send({\n type: 'ERRORS.SET',\n error: event.error,\n });\n },\n markFormAsProgressive: ({ context }) => {\n const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n\n const missing = signUp.missingFields.map(snakeToCamel);\n const optional = signUp.optionalFields.map(snakeToCamel);\n const required = signUp.requiredFields.map(snakeToCamel);\n\n const progressiveFieldValues: FormDefaultValues = new Map();\n\n for (const key of required.concat(optional) as (keyof SignUpResource)[]) {\n if (key in signUp) {\n // @ts-expect-error - TS doesn't understand that key is a valid key of SignUpResource\n progressiveFieldValues.set(key, signUp[key]);\n }\n }\n\n context.formRef.send({\n type: 'MARK_AS_PROGRESSIVE',\n missing,\n optional,\n required,\n defaultValues: progressiveFieldValues,\n });\n },\n unmarkFormAsProgressive: ({ context }) => context.formRef.send({ type: 'UNMARK_AS_PROGRESSIVE' }),\n sendToNext: ({ context, event }) =>\n context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n sendToLoading,\n },\n types: {} as SignUpContinueSchema,\n}).createMachine({\n id: SignUpContinueMachineId,\n context: ({ input }) => ({\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n formRef: input.formRef,\n parent: input.parent,\n loadingStep: 'continue',\n }),\n entry: 'markFormAsProgressive',\n onDone: {\n actions: 'unmarkFormAsProgressive',\n },\n initial: 'Pending',\n states: {\n Pending: {\n tags: ['state:pending'],\n description: 'Waiting for user input',\n on: {\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attempt',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n fields: context.formRef.getSnapshot().context.fields,\n }),\n onDone: {\n actions: ['sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n});\n","import type { SignUpCreateParams, SignUpUpdateParams } from '@clerk/types';\n\nimport type { FormFields } from '~/internals/machines/form';\n\nconst SignUpAdditionalKeys = ['firstName', 'lastName', 'emailAddress', 'username', 'password', 'phoneNumber'] as const;\n\ntype SignUpAdditionalKeys = (typeof SignUpAdditionalKeys)[number];\n\nconst signUpKeys = new Set<SignUpAdditionalKeys>(SignUpAdditionalKeys);\n\nfunction isSignUpParam<T extends SignUpAdditionalKeys>(key: string): key is T {\n return signUpKeys.has(key as T);\n}\n\nexport function fieldsToSignUpParams<T extends SignUpCreateParams | SignUpUpdateParams>(\n fields: FormFields,\n): Pick<T, SignUpAdditionalKeys> {\n const params: SignUpUpdateParams = {};\n\n fields.forEach(({ value }, key) => {\n if (isSignUpParam(key) && value !== undefined) {\n params[key] = value as string;\n }\n });\n\n return params;\n}\n","import { joinURL } from '@clerk/shared/url';\nimport type { SignUpStatus, VerificationStatus } from '@clerk/types';\nimport type { NonReducibleUnknown } from 'xstate';\nimport { and, assign, enqueueActions, log, not, or, raise, sendTo, setup } from 'xstate';\n\nimport {\n ERROR_CODES,\n ROUTING,\n SEARCH_PARAMS,\n SIGN_IN_DEFAULT_BASE_PATH,\n SIGN_UP_DEFAULT_BASE_PATH,\n SIGN_UP_MODES,\n SSO_CALLBACK_PATH_ROUTE,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport { ThirdPartyMachine, ThirdPartyMachineId } from '~/internals/machines/third-party';\nimport { shouldUseVirtualRouting } from '~/internals/machines/utils/next';\n\nimport { SignUpContinueMachine } from './continue.machine';\nimport type {\n SignUpRouterContext,\n SignUpRouterEvents,\n SignUpRouterNextEvent,\n SignUpRouterSchema,\n} from './router.types';\nimport { SignUpStartMachine } from './start.machine';\nimport { SignUpVerificationMachine } from './verification.machine';\n\nexport const SignUpRouterMachineId = 'SignUpRouter';\nexport type TSignUpRouterMachine = typeof SignUpRouterMachine;\n\nconst isCurrentPath =\n (path: `/${string}`) =>\n ({ context }: { context: SignUpRouterContext }, _params?: NonReducibleUnknown) =>\n context.router?.match(path) ?? false;\n\nconst needsStatus =\n (status: SignUpStatus) =>\n ({ context, event }: { context: SignUpRouterContext; event?: SignUpRouterEvents }, _?: NonReducibleUnknown) =>\n (event as SignUpRouterNextEvent)?.resource?.status === status || context.clerk?.client?.signUp?.status === status;\n\nexport const SignUpRouterMachine = setup({\n actors: {\n continueMachine: SignUpContinueMachine,\n startMachine: SignUpStartMachine,\n thirdPartyMachine: ThirdPartyMachine,\n verificationMachine: SignUpVerificationMachine,\n },\n actions: {\n clearFormErrors: sendTo(({ context }) => context.formRef, { type: 'ERRORS.CLEAR' }),\n logUnknownError: snapshot => console.error('Unknown error:', snapshot),\n navigateInternal: ({ context }, { path, force = false }: { path: string; force?: boolean }) => {\n if (!context.router) {\n return;\n }\n if (!force && shouldUseVirtualRouting()) {\n return;\n }\n if (context.exampleMode) {\n return;\n }\n\n const resolvedPath = joinURL(context.router.basePath, path);\n if (resolvedPath === context.router.pathname()) {\n return;\n }\n\n context.router.shallowPush(resolvedPath);\n },\n navigateExternal: ({ context }, { path }: { path: string }) => context.router?.push(path),\n raiseNext: raise({ type: 'NEXT' }),\n setActive: ({ context, event }, params?: { sessionId?: string; useLastActiveSession?: boolean }) => {\n if (context.exampleMode) {\n return;\n }\n\n const session =\n params?.sessionId ||\n (params?.useLastActiveSession && context.clerk.client.lastActiveSessionId) ||\n ((event as SignUpRouterNextEvent)?.resource || context.clerk.client.signUp).createdSessionId;\n\n const beforeEmit = () =>\n context.router?.push(context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl());\n void context.clerk.setActive({ session, beforeEmit });\n },\n delayedReset: raise({ type: 'RESET' }, { delay: 3000 }), // Reset machine after 3s delay.\n setError: assign({\n error: (_, { error }: { error?: ClerkElementsError }) => {\n if (error) {\n return error;\n }\n return new ClerkElementsRuntimeError('Unknown error');\n },\n }),\n setFormOAuthErrors: ({ context }) => {\n const errorOrig = context.clerk.client.signIn.firstFactorVerification.error;\n\n if (!errorOrig) {\n return;\n }\n\n let error: ClerkElementsError;\n\n switch (errorOrig.code) {\n case ERROR_CODES.NOT_ALLOWED_TO_SIGN_UP:\n case ERROR_CODES.OAUTH_ACCESS_DENIED:\n case ERROR_CODES.NOT_ALLOWED_ACCESS:\n case ERROR_CODES.SAML_USER_ATTRIBUTE_MISSING:\n case ERROR_CODES.OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML:\n case ERROR_CODES.USER_LOCKED:\n error = new ClerkElementsError(errorOrig.code, errorOrig.longMessage!);\n break;\n default:\n error = new ClerkElementsError(\n 'unable_to_complete',\n 'Unable to complete action at this time. If the problem persists please contact support.',\n );\n }\n\n context.formRef.send({\n type: 'ERRORS.SET',\n error,\n });\n },\n transfer: ({ context }) => context.router?.push(context.clerk.buildSignInUrl()),\n },\n guards: {\n areFieldsMissing: ({ context }) => context.clerk?.client?.signUp?.missingFields?.length > 0,\n areFieldsUnverified: ({ context }) => context.clerk?.client?.signUp?.unverifiedFields?.length > 0,\n\n hasAuthenticatedViaClerkJS: ({ context }) =>\n Boolean(context.clerk.client.signUp.status === null && context.clerk.client.lastActiveSessionId),\n hasCreatedSession: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.createdSession)),\n hasClerkStatus: ({ context }, params?: { status: VerificationStatus }) => {\n const value = context.router?.searchParams().get(SEARCH_PARAMS.status);\n if (!params) {\n return Boolean(value);\n }\n return value === params.status;\n },\n hasClerkTransfer: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.transfer)),\n hasResource: ({ context }) => Boolean(context.clerk.client.signUp),\n hasTicket: ({ context }) => Boolean(context.ticket),\n\n isLoggedInAndSingleSession: and(['isLoggedIn', 'isSingleSessionMode', not('isExampleMode')]),\n isStatusAbandoned: needsStatus('abandoned'),\n isStatusComplete: ({ context, event }) => {\n const resource = (event as SignUpRouterNextEvent)?.resource;\n const signUp = context.clerk?.client?.signUp;\n\n return (\n (resource?.status === 'complete' && Boolean(resource?.createdSessionId)) ||\n (signUp?.status === 'complete' && Boolean(signUp?.createdSessionId))\n );\n },\n isStatusMissingRequirements: needsStatus('missing_requirements'),\n\n isLoggedIn: or(['isStatusComplete', ({ context }) => Boolean(context.clerk.user)]),\n isSingleSessionMode: ({ context }) => Boolean(context.clerk?.__unstable__environment?.authConfig.singleSessionMode),\n isRestricted: ({ context }) =>\n context.clerk?.__unstable__environment?.userSettings.signUp.mode === SIGN_UP_MODES.RESTRICTED,\n isRestrictedWithoutTicket: and(['isRestricted', not('hasTicket')]),\n isExampleMode: ({ context }) => Boolean(context.exampleMode),\n isMissingRequiredFields: and(['isStatusMissingRequirements', 'areFieldsMissing']),\n isMissingRequiredUnverifiedFields: and(['isStatusMissingRequirements', 'areFieldsUnverified']),\n\n needsIdentifier: or(['statusNeedsIdentifier', isCurrentPath('/')]),\n needsContinue: and(['statusNeedsContinue', isCurrentPath('/continue')]),\n needsVerification: and(['statusNeedsVerification', isCurrentPath('/verify')]),\n needsCallback: isCurrentPath(SSO_CALLBACK_PATH_ROUTE),\n\n statusNeedsIdentifier: or([not('hasResource'), 'isStatusAbandoned']),\n statusNeedsContinue: or(['isMissingRequiredFields']),\n statusNeedsVerification: or(['isMissingRequiredUnverifiedFields', and(['areFieldsMissing', 'hasClerkStatus'])]),\n },\n delays: {\n 'TIMEOUT.POLLING': 300_000, // 5 minutes\n },\n types: {} as SignUpRouterSchema,\n}).createMachine({\n id: SignUpRouterMachineId,\n // @ts-expect-error - Set in INIT event\n context: {},\n initial: 'Idle',\n on: {\n 'AUTHENTICATE.OAUTH': {\n actions: sendTo(ThirdPartyMachineId, ({ context, event }) => ({\n type: 'REDIRECT',\n params: {\n strategy: event.strategy,\n redirectUrl: `${\n context.router?.mode === ROUTING.virtual\n ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n : context.router?.basePath\n }${SSO_CALLBACK_PATH_ROUTE}`,\n redirectUrlComplete:\n context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n },\n })),\n },\n 'AUTHENTICATE.SAML': {\n actions: sendTo(ThirdPartyMachineId, ({ context }) => ({\n type: 'REDIRECT',\n params: {\n strategy: 'saml',\n emailAddress: context.formRef.getSnapshot().context.fields.get('emailAddress')?.value,\n redirectUrl: `${\n context.router?.mode === ROUTING.virtual\n ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n : context.router?.basePath\n }${SSO_CALLBACK_PATH_ROUTE}`,\n redirectUrlComplete:\n context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n },\n })),\n },\n 'AUTHENTICATE.WEB3': {\n actions: sendTo('start', ({ event }) => event),\n },\n 'FORM.ATTACH': {\n description: 'Attach/re-attach the form to the router.',\n actions: enqueueActions(({ enqueue, event }) => {\n enqueue.assign({\n formRef: event.formRef,\n });\n\n // Reset the current step, to reset the form reference.\n enqueue.raise({ type: 'RESET.STEP' });\n }),\n },\n 'NAVIGATE.PREVIOUS': '.Hist',\n 'NAVIGATE.START': '.Start',\n LOADING: {\n actions: assign(({ event }) => ({\n loading: {\n isLoading: event.isLoading,\n step: event.step,\n strategy: event.strategy,\n action: event.action,\n },\n })),\n },\n RESET: '.Idle',\n },\n states: {\n Idle: {\n on: {\n INIT: {\n actions: assign(({ event }) => {\n const searchParams = event.router?.searchParams();\n\n return {\n clerk: event.clerk,\n router: event.router,\n signInPath: event.signInPath || SIGN_IN_DEFAULT_BASE_PATH,\n loading: {\n isLoading: false,\n },\n exampleMode: event.exampleMode || false,\n formRef: event.formRef,\n ticket:\n searchParams?.get(SEARCH_PARAMS.ticket) ||\n searchParams?.get(SEARCH_PARAMS.invitationToken) ||\n undefined,\n };\n }),\n target: 'Init',\n },\n },\n },\n Init: {\n entry: enqueueActions(({ context, enqueue, self }) => {\n if (!self.getSnapshot().children[ThirdPartyMachineId]) {\n enqueue.spawnChild('thirdPartyMachine', {\n id: ThirdPartyMachineId,\n systemId: ThirdPartyMachineId,\n input: {\n basePath: context.router?.basePath ?? SIGN_UP_DEFAULT_BASE_PATH,\n flow: 'signUp',\n formRef: context.formRef,\n parent: self,\n },\n });\n }\n }),\n always: [\n {\n guard: 'isLoggedInAndSingleSession',\n actions: [\n log('Already logged in'),\n {\n type: 'navigateExternal',\n params: ({ context }) => ({\n path: context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n }),\n },\n ],\n },\n {\n guard: 'needsCallback',\n target: 'Callback',\n },\n {\n guard: 'hasTicket',\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n target: 'Start',\n },\n {\n guard: 'needsVerification',\n actions: { type: 'navigateInternal', params: { force: true, path: '/verify' } },\n target: 'Verification',\n },\n {\n guard: or(['needsContinue', 'hasClerkTransfer']),\n actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n target: 'Continue',\n },\n {\n guard: 'isRestrictedWithoutTicket',\n target: 'Restricted',\n },\n {\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n target: 'Start',\n },\n ],\n },\n Start: {\n tags: ['step:start'],\n exit: 'clearFormErrors',\n invoke: {\n id: 'start',\n src: 'startMachine',\n input: ({ context, self }) => ({\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n ticket: context.ticket,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n on: {\n 'RESET.STEP': {\n actions: enqueueActions(({ enqueue, context }) => {\n enqueue('clearFormErrors');\n enqueue.sendTo('start', { type: 'SET_FORM', formRef: context.formRef });\n }),\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: and(['hasTicket', 'statusNeedsContinue']),\n actions: { type: 'navigateInternal', params: { path: '/' } },\n target: 'Start',\n reenter: true,\n },\n {\n guard: 'statusNeedsVerification',\n target: 'Verification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n ],\n },\n },\n Continue: {\n tags: ['step:continue'],\n invoke: {\n id: 'continue',\n src: 'continueMachine',\n input: ({ context, self }) => ({\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n on: {\n 'RESET.STEP': {\n target: 'Continue',\n reenter: true,\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: 'statusNeedsVerification',\n target: 'Verification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n },\n ],\n },\n },\n Verification: {\n tags: ['step:verification'],\n invoke: {\n id: 'verification',\n src: 'verificationMachine',\n input: ({ context, self }) => ({\n attributes: context.clerk.__unstable__environment?.userSettings.attributes,\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n resource: context.clerk.client.signUp,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n always: [\n {\n guard: 'hasCreatedSession',\n actions: [\n ({ context }) => ({\n type: 'setActive',\n params: { sessionId: context.router?.searchParams().get(SEARCH_PARAMS.createdSession) },\n }),\n 'delayedReset',\n ],\n },\n {\n guard: { type: 'hasClerkStatus', params: { status: 'verified' } },\n actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n },\n {\n guard: { type: 'hasClerkStatus', params: { status: 'expired' } },\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n },\n ],\n on: {\n 'RESET.STEP': {\n target: 'Verification',\n reenter: true,\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n ],\n },\n },\n Callback: {\n tags: ['step:callback'],\n entry: sendTo(ThirdPartyMachineId, { type: 'CALLBACK' }),\n on: {\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n description: 'Handle a case where the user has already been authenticated via ClerkJS',\n guard: 'hasAuthenticatedViaClerkJS',\n actions: [{ type: 'setActive', params: { useLastActiveSession: true } }, 'delayedReset'],\n },\n {\n guard: 'statusNeedsVerification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n target: 'Verification',\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n {\n actions: { type: 'navigateInternal', params: { path: '/' } },\n target: 'Start',\n },\n ],\n },\n },\n Restricted: {\n tags: ['step:restricted'],\n on: {\n NEXT: 'Start',\n },\n },\n Error: {\n tags: ['step:error'],\n on: {\n NEXT: {\n target: 'Start',\n actions: 'clearFormErrors',\n },\n },\n },\n Hist: {\n type: 'history',\n exit: 'clearFormErrors',\n },\n },\n});\n","import type { SignUpResource, Web3Strategy } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { and, assertEvent, assign, enqueueActions, fromPromise, not, sendTo, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { FormFields } from '~/internals/machines/form';\nimport type { SetFormEvent } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { ThirdPartyMachine } from '~/internals/machines/third-party';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport type { SignUpStartSchema } from './start.types';\n\nconst DISABLEABLE_FIELDS = ['emailAddress', 'phoneNumber'] as const;\n\nexport type TSignUpStartMachine = typeof SignUpStartMachine;\n\nexport const SignUpStartMachineId = 'SignUpStart';\n\ntype AttemptParams = { strategy: 'ticket'; ticket: string } | { strategy?: never; ticket?: never };\ntype PrefillFieldsKeys = keyof Pick<\n SignUpResource,\n 'username' | 'firstName' | 'lastName' | 'emailAddress' | 'phoneNumber'\n>;\nconst PREFILL_FIELDS: PrefillFieldsKeys[] = ['firstName', 'lastName', 'emailAddress', 'username', 'phoneNumber'];\n\nexport const SignUpStartMachine = setup({\n actors: {\n attempt: fromPromise<\n SignUpResource,\n { parent: SignInRouterMachineActorRef; fields: FormFields; params?: AttemptParams }\n >(({ input: { fields, parent, params } }) => {\n const fieldParams = fieldsToSignUpParams(fields);\n return parent.getSnapshot().context.clerk.client.signUp.create({ ...fieldParams, ...params });\n }),\n attemptWeb3: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; strategy: Web3Strategy }>(\n ({ input: { parent, strategy } }) => {\n if (strategy === 'web3_metamask_signature') {\n return parent.getSnapshot().context.clerk.client.signUp.authenticateWithMetamask();\n }\n if (strategy === 'web3_coinbase_wallet_signature') {\n return parent.getSnapshot().context.clerk.client.signUp.authenticateWithCoinbaseWallet();\n }\n throw new ClerkElementsRuntimeError(`Unsupported Web3 strategy: ${strategy}`);\n },\n ),\n thirdParty: ThirdPartyMachine,\n },\n actions: {\n sendToNext: ({ context, event }) =>\n context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n sendToLoading,\n setFormRef: assign(({ event }) => {\n return {\n formRef: (event as unknown as SetFormEvent).formRef,\n };\n }),\n setFormDisabledTicketFields: enqueueActions(({ context, enqueue }) => {\n if (!context.ticket) {\n return;\n }\n\n const currentFields = context.formRef.getSnapshot().context.fields;\n\n for (const name of DISABLEABLE_FIELDS) {\n if (currentFields.has(name)) {\n enqueue.sendTo(context.formRef, { type: 'FIELD.DISABLE', field: { name } });\n }\n }\n }),\n setFormErrors: sendTo(\n ({ context }) => context.formRef,\n ({ event }) => {\n assertActorEventError(event);\n return {\n type: 'ERRORS.SET',\n error: event.error,\n };\n },\n ),\n setDefaultFormValues: ({ context }) => {\n const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n const prefilledDefaultValues = new Map();\n\n for (const key of PREFILL_FIELDS) {\n if (key in signUp) {\n prefilledDefaultValues.set(key, signUp[key]);\n }\n }\n\n context.formRef.send({\n type: 'PREFILL_DEFAULT_VALUES',\n defaultValues: prefilledDefaultValues,\n });\n },\n },\n guards: {\n isMissingRequirements: ({ context }) =>\n context.parent.getSnapshot().context.clerk?.client?.signUp?.status === 'missing_requirements',\n hasTicket: ({ context }) => Boolean(context.ticket),\n isExampleMode: ({ context }) => Boolean(context.parent.getSnapshot().context.exampleMode),\n },\n types: {} as SignUpStartSchema,\n}).createMachine({\n id: SignUpStartMachineId,\n context: ({ input }) => ({\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n formRef: input.formRef,\n parent: input.parent,\n loadingStep: 'start',\n ticket: input.ticket,\n }),\n entry: 'setDefaultFormValues',\n initial: 'Init',\n on: {\n SET_FORM: {\n actions: 'setFormRef',\n },\n },\n states: {\n Init: {\n description:\n 'Handle ticket, if present; Else, default to Pending state. Per tickets, `Attempting` makes a `signUp.create` request allowing for an incomplete sign up to contain progressively filled fields on the Start step.',\n always: [\n {\n guard: and(['hasTicket', 'isMissingRequirements']),\n target: 'Pending',\n },\n {\n guard: 'hasTicket',\n target: 'Attempting',\n },\n {\n target: 'Pending',\n },\n ],\n },\n Pending: {\n tags: ['state:pending'],\n description: 'Waiting for user input',\n on: {\n SUBMIT: {\n guard: not('isExampleMode'),\n target: 'Attempting',\n reenter: true,\n },\n 'AUTHENTICATE.WEB3': {\n guard: not('isExampleMode'),\n target: 'AttemptingWeb3',\n reenter: true,\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptCreate',\n src: 'attempt',\n input: ({ context }) => {\n // Standard fields\n const defaultParams = {\n fields: context.formRef.getSnapshot().context.fields,\n parent: context.parent,\n };\n\n // Handle ticket-specific flows\n const params: AttemptParams = context.ticket\n ? {\n strategy: 'ticket',\n ticket: context.ticket,\n }\n : {};\n\n return { ...defaultParams, params };\n },\n onDone: {\n actions: ['setFormDisabledTicketFields', 'sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormDisabledTicketFields', 'setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n AttemptingWeb3: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptCreateWeb3',\n src: 'attemptWeb3',\n input: ({ context, event }) => {\n assertEvent(event, 'AUTHENTICATE.WEB3');\n return {\n parent: context.parent,\n strategy: event.strategy,\n };\n },\n onDone: {\n actions: ['sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n});\n","import { Poller } from '@clerk/shared/poller';\nimport type {\n AttemptVerificationParams,\n Attribute,\n PrepareVerificationParams,\n SignUpResource,\n SignUpVerifiableField,\n SignUpVerificationsResource,\n VerificationStrategy,\n} from '@clerk/types';\nimport type { Writable } from 'type-fest';\nimport { and, assign, enqueueActions, fromCallback, fromPromise, log, raise, sendParent, sendTo, setup } from 'xstate';\n\nimport {\n MAGIC_LINK_VERIFY_PATH_ROUTE,\n RESENDABLE_COUNTDOWN_DEFAULT,\n SIGN_UP_DEFAULT_BASE_PATH,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { WithParams } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport {\n type SignUpVerificationContext,\n SignUpVerificationDelays,\n type SignUpVerificationEmailLinkFailedEvent,\n type SignUpVerificationEvents,\n type SignUpVerificationSchema,\n} from './verification.types';\n\nexport type SignUpVerificationsResourceKey = keyof SignUpVerificationsResource;\nexport type TSignUpVerificationMachine = typeof SignUpVerificationMachine;\n\nexport type StartSignUpEmailLinkFlowEvents = { type: 'STOP' };\nexport type StartSignUpEmailLinkFlowInput = {\n parent: SignInRouterMachineActorRef;\n};\n\nexport const SignUpVerificationMachineId = 'SignUpVerification';\n\nconst shouldVerify = (field: SignUpVerifiableField, strategy?: VerificationStrategy) => {\n const guards: Writable<Parameters<typeof and<SignUpVerificationContext, SignUpVerificationEvents, any>>[0]> = [\n {\n type: 'isFieldUnverified',\n params: {\n field,\n },\n },\n ];\n\n if (strategy) {\n guards.push({\n type: 'isStrategyEnabled',\n params: {\n attribute: field,\n strategy,\n },\n });\n }\n\n return and(guards);\n};\n\nexport type PrepareVerificationInput = {\n parent: SignInRouterMachineActorRef;\n} & WithParams<PrepareVerificationParams>;\nexport type AttemptVerificationInput = {\n parent: SignInRouterMachineActorRef;\n} & WithParams<AttemptVerificationParams>;\n\nexport const SignUpVerificationMachine = setup({\n actors: {\n prepare: fromPromise<SignUpResource, PrepareVerificationInput>(({ input: { params, parent } }) => {\n const clerk = parent.getSnapshot().context.clerk;\n\n if (params.strategy === 'email_link' && params.redirectUrl) {\n params.redirectUrl = clerk.buildUrlWithAuth(params.redirectUrl);\n }\n\n return clerk.client.signUp.prepareVerification(params);\n }),\n attempt: fromPromise<SignUpResource, AttemptVerificationInput>(async ({ input: { params, parent } }) =>\n parent.getSnapshot().context.clerk.client.signUp.attemptVerification(params),\n ),\n attemptEmailLinkVerification: fromCallback<StartSignUpEmailLinkFlowEvents, StartSignUpEmailLinkFlowInput>(\n ({ receive, sendBack, input: { parent } }) => {\n const { run, stop } = Poller();\n\n const clerk = parent.getSnapshot().context.clerk;\n\n void run(async () =>\n clerk.client.signUp\n .reload()\n .then(resource => {\n const signInStatus = resource.status;\n const verificationStatus = resource.verifications.emailAddress.status;\n\n // Short-circuit if the sign-up resource is already complete\n if (signInStatus === 'complete') {\n return sendBack({ type: 'EMAIL_LINK.VERIFIED', resource });\n }\n\n switch (verificationStatus) {\n case 'verified':\n case 'transferable':\n case 'expired': {\n sendBack({ type: `EMAIL_LINK.${verificationStatus.toUpperCase()}`, resource });\n break;\n }\n case 'failed': {\n sendBack({\n type: 'EMAIL_LINK.FAILED',\n error: new ClerkElementsError('email-link-verification-failed', 'Email verification failed'),\n resource,\n });\n break;\n }\n // case 'unverified':\n default:\n return;\n }\n\n stop();\n })\n .catch(error => {\n stop();\n new ClerkElementsRuntimeError(error);\n }),\n );\n\n receive(event => {\n if (event.type === 'STOP') {\n stop();\n }\n });\n\n return () => stop();\n },\n ),\n },\n actions: {\n resendableTick: assign(({ context }) => ({\n resendable: context.resendableAfter === 1,\n resendableAfter: context.resendableAfter > 1 ? context.resendableAfter - 1 : context.resendableAfter,\n })),\n resendableReset: assign({\n resendable: false,\n resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n }),\n sendToLoading,\n setFormErrors: sendTo(\n ({ context }) => context.formRef,\n ({ event }) => {\n assertActorEventError(event);\n return {\n type: 'ERRORS.SET',\n error: event.error,\n };\n },\n ),\n },\n guards: {\n isComplete: ({ context }) => context.resource.status === 'complete',\n isFieldUnverified: ({ context, event }, { field }: { field: SignUpVerifiableField }) => {\n let resource = context.resource;\n\n if (event?.type === 'NEXT' && event.resource) {\n resource = event.resource;\n }\n\n return resource.unverifiedFields.includes(field);\n },\n isResendable: ({ context }) => context.resendable || context.resendableAfter === 0,\n isStrategyEnabled: (\n { context },\n { attribute, strategy }: { attribute: Attribute; strategy: VerificationStrategy },\n ) => Boolean(context.attributes?.[attribute].verifications.includes(strategy)),\n shouldVerifyPhoneCode: shouldVerify('phone_number'),\n shouldVerifyEmailLink: shouldVerify('email_address', 'email_link'),\n shouldVerifyEmailCode: shouldVerify('email_address', 'email_code'),\n },\n delays: SignUpVerificationDelays,\n types: {} as SignUpVerificationSchema,\n}).createMachine({\n id: SignUpVerificationMachineId,\n initial: 'Init',\n context: ({ input }) => ({\n attributes: input.attributes,\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n loadingStep: 'verifications',\n formRef: input.formRef,\n parent: input.parent,\n resendable: false,\n resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n resource: input.resource,\n }),\n on: {\n NEXT: [\n {\n guard: 'isComplete',\n actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n },\n {\n description: 'Validate via phone number',\n guard: 'shouldVerifyPhoneCode',\n target: '.PhoneCode',\n },\n {\n description: 'Validate via email link',\n guard: 'shouldVerifyEmailLink',\n target: '.EmailLink',\n },\n {\n description: 'Verify via email code',\n guard: 'shouldVerifyEmailCode',\n target: '.EmailCode',\n },\n {\n actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n },\n ],\n },\n states: {\n Init: {\n always: [\n {\n description: 'Validate via phone number',\n guard: 'shouldVerifyPhoneCode',\n target: 'PhoneCode',\n },\n {\n description: 'Validate via email link',\n guard: 'shouldVerifyEmailLink',\n target: 'EmailLink',\n },\n {\n description: 'Verify via email code',\n guard: 'shouldVerifyEmailCode',\n target: 'EmailCode',\n },\n {\n actions: sendParent(({ context }) => ({ type: 'NEXT', resource: context.resource })),\n },\n ],\n },\n EmailLink: {\n tags: ['verification:method:email', 'verification:category:link', 'verification:email_link'],\n initial: 'Preparing',\n on: {\n RETRY: '.Preparing',\n 'EMAIL_LINK.RESTART': {\n target: '.Attempting',\n reenter: true,\n },\n 'EMAIL_LINK.FAILED': {\n actions: [\n {\n type: 'setFormErrors',\n params: ({ event }: { event: SignUpVerificationEmailLinkFailedEvent }) => ({ error: event.error }),\n },\n assign({ resource: ({ event }) => event.resource }),\n ],\n target: '.Pending',\n },\n 'EMAIL_LINK.*': {\n actions: enqueueActions(({ enqueue, event }) => {\n if (event.type === 'EMAIL_LINK.RESTART') {\n return;\n }\n\n enqueue.assign({ resource: event.resource });\n enqueue.raise({ type: 'NEXT', resource: event.resource });\n }),\n },\n },\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'prepareEmailLinkVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_link',\n redirectUrl: `${context.basePath}${MAGIC_LINK_VERIFY_PATH_ROUTE}`,\n },\n }),\n onDone: {\n target: 'Attempting',\n actions: assign({ resource: ({ event }) => event.output }),\n },\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n description: 'Placeholder for allowing resending of email link',\n tags: ['state:pending'],\n on: {\n NEXT: 'Preparing',\n },\n },\n Attempting: {\n tags: ['state:attempting'],\n invoke: {\n id: 'attemptEmailLinkVerification',\n src: 'attemptEmailLinkVerification',\n input: ({ context }) => ({\n parent: context.parent,\n }),\n },\n after: {\n emailLinkTimeout: {\n description: 'Timeout after 5 minutes',\n target: 'Pending',\n actions: sendTo(({ context }) => context.formRef, {\n type: 'ERRORS.SET',\n error: new ClerkElementsError('verify-email-link-timeout', 'Email link verification timed out'),\n }),\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n },\n },\n EmailCode: {\n tags: ['verification:method:email', 'verification:category:code', 'verification:email_code'],\n initial: 'Preparing',\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'prepareEmailAddressCodeVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_code',\n },\n }),\n onDone: [\n {\n guard: 'shouldVerifyEmailCode',\n target: 'Pending',\n },\n {\n actions: [\n assign({ resource: ({ event }) => event.output }),\n raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n ],\n },\n ],\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n tags: ['state:pending'],\n on: {\n RETRY: 'Preparing',\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptEmailAddressCodeVerification',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_code',\n code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n },\n }),\n onDone: {\n actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n },\n PhoneCode: {\n tags: ['verification:method:phone', 'verification:category:code', 'verification:phone_code'],\n initial: 'Preparing',\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'preparePhoneCodeVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'phone_code',\n },\n }),\n onDone: [\n {\n guard: 'shouldVerifyPhoneCode',\n target: 'Pending',\n actions: assign({ resource: ({ event }) => event.output }),\n },\n {\n actions: [\n assign({ resource: ({ event }) => event.output }),\n raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n ],\n },\n ],\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n tags: ['state:pending'],\n on: {\n RETRY: 'Preparing',\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptPhoneNumberVerification',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'phone_code',\n code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n },\n }),\n onDone: {\n actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n },\n },\n});\n","import type { ClerkAPIResponseError } from '@clerk/shared/error';\nimport type { Attributes, SignUpResource } from '@clerk/types';\nimport type { ActorRefFrom, DoneActorEvent, ErrorActorEvent } from 'xstate';\n\nimport type { FormMachine } from '~/internals/machines/form';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\n\n// ---------------------------------- Tags ---------------------------------- //\n\nexport type SignUpVerificationStateTags = 'state:preparing' | 'state:pending' | 'state:attempting' | 'state:loading';\n\nexport type SignUpVerificationVerificationCategoryTags = 'verification:category:code' | 'verification:category:link';\nexport type SignUpVerificationVerificationMethodTags = 'verification:method:email' | 'verification:method:phone';\nexport type SignUpVerificationVerificationTypeTags =\n | 'verification:email_link'\n | 'verification:email_code'\n | 'verification:phone_code';\n\nexport type SignUpVerificationVerificationTags =\n | SignUpVerificationVerificationCategoryTags\n | SignUpVerificationVerificationMethodTags\n | SignUpVerificationVerificationTypeTags;\n\nexport type SignUpVerificationTags = SignUpVerificationStateTags | SignUpVerificationVerificationTags;\nexport type SignUpVerificationFriendlyTags = 'code' | 'email_link' | 'email_code' | 'phone_code';\n\n// ---------------------------------- Events ---------------------------------- //\n\nexport type SignUpVerificationSubmitEvent = { type: 'SUBMIT'; action: 'submit' };\nexport type SignUpVerificationNextEvent = { type: 'NEXT'; resource?: SignUpResource };\nexport type SignUpVerificationRetryEvent = { type: 'RETRY' };\n\nexport type SignUpVerificationEmailLinkVerifiedEvent = { type: 'EMAIL_LINK.VERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkUnverifiedEvent = { type: 'EMAIL_LINK.UNVERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkExpiredEvent = { type: 'EMAIL_LINK.EXPIRED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkTransferrableEvent = {\n type: 'EMAIL_LINK.TRANSFERRABLE';\n resource: SignUpResource;\n};\nexport type SignUpVerificationEmailLinkRestartEvent = { type: 'EMAIL_LINK.RESTART' };\nexport type SignUpVerificationEmailLinkFailedEvent = {\n type: 'EMAIL_LINK.FAILED';\n resource: SignUpResource;\n error: Error;\n};\n\nexport type SignUpVerificationEmailLinkEvent =\n | SignUpVerificationEmailLinkVerifiedEvent\n | SignUpVerificationEmailLinkUnverifiedEvent\n | SignUpVerificationEmailLinkExpiredEvent\n | SignUpVerificationEmailLinkRestartEvent\n | SignUpVerificationEmailLinkFailedEvent;\n\nexport type SignUpVerificationEvents =\n | DoneActorEvent\n | ErrorActorEvent\n | SignUpVerificationRetryEvent\n | SignUpVerificationSubmitEvent\n | SignUpVerificationNextEvent\n | SignUpVerificationEmailLinkEvent;\n\n// ---------------------------------- Input ---------------------------------- //\n\nexport type SignUpVerificationInput = {\n attributes: Attributes | undefined;\n basePath?: string;\n formRef: ActorRefFrom<typeof FormMachine>;\n parent: SignInRouterMachineActorRef;\n resource: SignUpResource;\n};\n\n// ---------------------------------- Delays ---------------------------------- //\n\nexport const SignUpVerificationDelays = {\n emailLinkTimeout: 300_000, // 5 minutes\n resendableTimeout: 1_000, // 1 second\n} as const;\n\nexport type SignUpVerificationDelays = keyof typeof SignUpVerificationDelays;\n\n// ---------------------------------- Context ---------------------------------- //\n\nexport interface SignUpVerificationContext {\n attributes: Attributes | undefined;\n basePath: string;\n resource: SignUpResource;\n error?: Error | ClerkAPIResponseError;\n formRef: ActorRefFrom<typeof FormMachine>;\n parent: SignInRouterMachineActorRef;\n loadingStep: 'verifications';\n resendable: boolean;\n resendableAfter: number;\n}\n\n// ---------------------------------- Schema ---------------------------------- //\n\nexport interface SignUpVerificationSchema {\n context: SignUpVerificationContext;\n delays: SignUpVerificationDelays;\n input: SignUpVerificationInput;\n events: SignUpVerificationEvents;\n tags: SignUpVerificationTags;\n}\n","import * as React from 'react';\n\nimport type { FormSubmitProps } from '~/react/common';\nimport { Submit } from '~/react/common';\n\nimport type { SignUpNavigateProps } from './navigate';\nimport { SignUpNavigate } from './navigate';\nimport type { SignUpResendProps } from './resend';\nimport { SignUpResend } from './resend';\n\nexport type SignUpActionProps = { asChild?: boolean } & FormSubmitProps &\n (\n | ({\n navigate: SignUpNavigateProps['to'];\n resend?: never;\n submit?: never;\n } & Omit<SignUpNavigateProps, 'to'>)\n | { navigate?: never; resend?: never; submit: true }\n | ({ navigate?: never; resend: true; submit?: never } & SignUpResendProps)\n );\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 * <SignUp.Action navigate=\"start\">Go Back</SignUp.Action>\n *\n * @example\n * <SignUp.Action submit>Sign Up</SignUp.Action>\n *\n * @example\n * <SignUp.Action resend>Resend</SignUp.Action>\n */\n\nexport const SignUpAction = React.forwardRef<React.ElementRef<'button'>, SignUpActionProps>((props, forwardedRef) => {\n const { submit, navigate, resend, ...rest } = props;\n let Comp: React.ForwardRefExoticComponent<any> | undefined;\n\n if (submit) {\n Comp = Submit;\n } else if (navigate) {\n Comp = SignUpNavigate;\n } else if (resend) {\n Comp = SignUpResend;\n }\n\n return Comp ? (\n <Comp\n to={navigate}\n {...rest}\n ref={forwardedRef}\n />\n ) : null;\n});\n\nSignUpAction.displayName = 'SignUpAction';\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nconst SIGN_UP_NAVIGATE_NAME = 'SignInNavigate';\nconst SignUpNavigationEventMap = {\n start: `NAVIGATE.START`,\n previous: `NAVIGATE.PREVIOUS`,\n} as const;\n\nexport type SignUpNavigateElementKey = keyof typeof SignUpNavigationEventMap;\n\nexport type SignUpNavigateElement = React.ElementRef<'button'>;\nexport type SignUpNavigateProps = {\n asChild?: boolean;\n to: SignUpNavigateElementKey;\n children: React.ReactNode;\n};\n\n/**\n * Renders a button which will navigate to a different step in the sign-up flow.\n *\n * @param {SignUpNavigateElementKey} 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=\"start\">\n * Start over...\n * </Navigate>\n */\nexport const SignUpNavigate = React.forwardRef<SignUpNavigateElement, SignUpNavigateProps>(\n ({ asChild, to, ...rest }, forwardedRef) => {\n const actorRef = SignUpRouterCtx.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 = SignUpNavigationEventMap[to];\n\n if (actorRef.getSnapshot().can({ type })) {\n actorRef.send({ type });\n } else {\n console.warn(\n `Clerk: <SignUp.Action navigate=\"${to}\"> is an invalid navigation event. You can only navigate to: ${Object.keys(SignUpNavigationEventMap).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\nSignUpNavigate.displayName = SIGN_UP_NAVIGATE_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport { useSelector } from '@xstate/react';\nimport * as React from 'react';\n\nimport { SignUpVerificationCtx } from '../verifications';\n\nexport type SignUpResendElement = React.ElementRef<'button'>;\nexport type SignUpResendFallbackProps = {\n resendable: boolean;\n resendableAfter: number;\n};\nexport type SignUpResendProps = {\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: SignUpResendFallbackProps) => React.ReactNode);\n};\n\nconst SIGN_UP_RESEND_NAME = 'SignUpResend';\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 SignUpResend = React.forwardRef<SignUpResendElement, SignUpResendProps>(\n ({ asChild, fallback, ...rest }, forwardedRef) => {\n const ref = SignUpVerificationCtx.useActorRef(true);\n\n if (!ref) {\n throw new Error('The resend action must be used within <SignUp.Step name=\"verifications\">.');\n }\n\n const fallbackProps: SignUpResendFallbackProps = useSelector(\n ref,\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={() => ref.send({ type: 'RETRY' })}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignUpResend.displayName = SIGN_UP_RESEND_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { CAPTCHA_ELEMENT_ID } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\n\nimport { SignUpStartCtx } from './start';\n\nexport type SignUpCaptchaElement = React.ElementRef<'div'>;\n\ntype CaptchaElementProps = Omit<\n React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>,\n 'id' | 'children'\n>;\n\nexport type SignUpCaptchaProps =\n | ({\n asChild: true;\n /* Must only be a self-closing element/component */\n children: React.ReactElement;\n } & CaptchaElementProps)\n | ({ asChild?: false; children?: undefined } & CaptchaElementProps);\n\n/**\n * The `<SignUp.Captcha>` component is used to render the Cloudflare Turnstile widget. It must be used within the `<SignUp.Step name=\"start\">` component.\n *\n * If utilizing the `asChild` prop, the component must be a self-closing element or component. Any children passed to the immediate child component of <SignUp.Captcha> will be ignored.\n *\n * @param {boolean} [asChild] - If true, `<Captcha />` will render as its child element, passing along any necessary props.\n *\n * @example\n * <SignUp.Root>\n * <SignUp.Step name=\"start\">\n * <SignUp.Captcha />\n * <Clerk.Action submit>Sign Up</Clerk.Action>\n * </SignUp.Step>\n * </SignUp.Root>\n *\n * @example\n * <SignUp.Root>\n * <SignUp.Step name=\"start\">\n * <SignUp.Captcha asChild>\n * <aside/>\n * </SignUp.Captcha>\n * <Clerk.Action submit>Sign Up</Clerk.Action>\n * </SignUp.Step>\n * </SignUp.Root>\n */\n\nexport const SignUpCaptcha = React.forwardRef<SignUpCaptchaElement, SignUpCaptchaProps>(\n ({ asChild, children, ...rest }, forwardedRef) => {\n const ref = SignUpStartCtx.useActorRef(true);\n\n if (!ref) {\n throw new ClerkElementsRuntimeError('<Captcha> must be used within the <SignUp.Step name=\"start\"> component.');\n }\n\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n id={CAPTCHA_ELEMENT_ID}\n {...rest}\n ref={forwardedRef}\n />\n );\n },\n);\n"],"mappings":"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","names":["and","assign","enqueueActions","log","not","raise","sendTo","setup","fromPromise","setup","setup","fromPromise","and","assign","enqueueActions","fromPromise","sendTo","setup","and","setup","fromPromise","assign","sendTo","enqueueActions","setup","sendTo","raise","assign","and","not","enqueueActions","log","React","jsx","Slot","useSelector","React","jsx","useSelector","Slot","jsx","Slot","React","jsx","Slot"]}
1
+ {"version":3,"sources":["../../../src/react/sign-up/index.ts","../../../src/react/sign-up/root.tsx","../../../src/internals/machines/sign-up/continue.machine.ts","../../../src/internals/machines/sign-up/utils/fields-to-params.ts","../../../src/internals/machines/sign-up/router.machine.ts","../../../src/internals/machines/sign-up/start.machine.ts","../../../src/internals/machines/sign-up/verification.machine.ts","../../../src/internals/machines/sign-up/verification.types.ts","../../../src/react/sign-up/action/action.tsx","../../../src/react/sign-up/action/navigate.tsx","../../../src/react/sign-up/action/resend.tsx","../../../src/react/sign-up/captcha.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 { SignUpRoot as SignUp, SignUpRoot as Root } from './root';\nexport { SignUpStep as Step } from './step';\nexport { SignUpAction as Action } from './action';\nexport { SignUpStrategy as Strategy } from './verifications';\nexport { SignUpCaptcha as Captcha } from './captcha';\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 { 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 { SignUpRouterInitEvent } from '~/internals/machines/sign-up';\nimport { SignUpRouterMachine } from '~/internals/machines/sign-up';\nimport { inspect } from '~/internals/utils/inspector';\nimport { Router, useClerkRouter, useVirtualRouter } from '~/react/router';\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nimport { Form } from '../common/form';\nimport { usePathnameWithoutCatchAll } from '../utils/path-inference/next';\n\ntype SignUpFlowProviderProps = {\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(SignUpRouterMachine, { inspect });\nactor.start();\n\nfunction SignUpFlowProvider({ children, exampleMode, fallback, isRootPath }: SignUpFlowProviderProps) {\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: SignUpRouterInitEvent = {\n type: 'INIT',\n clerk,\n exampleMode,\n formRef,\n router,\n signInPath: SIGN_IN_DEFAULT_BASE_PATH,\n };\n\n if (actor.getSnapshot().can(evt)) {\n actor.send(evt);\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\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clerk, exampleMode, formRef?.id, !!router, clerk.loaded]);\n\n return (\n <SignUpRouterCtx.Provider actorRef={actor}>\n {isRootPath && !isReady && fallback ? <Form>{fallback}</Form> : null}\n {clerk.loaded && isReady ? children : null}\n </SignUpRouterCtx.Provider>\n );\n}\n\nexport type SignUpRootProps = Omit<SignUpFlowProviderProps, 'isRootPath'> & {\n /**\n * The base path for your sign-up route.\n * Will be automatically inferred in Next.js.\n * @example `/sign-up`\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-up flow. It sets up providers and state management for its children.\n * Must wrap all sign-up related components.\n *\n * @param {string} path - The root path the sign-up flow is mounted at. Will be automatically inferred in Next.js. You can set it to `/sign-up` 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 SignUp from \"@clerk/elements/sign-up\"\n *\n * export default SignUpPage = () => (\n * <SignUp.Root>\n * </SignUp.Root>\n * )\n */\nexport function SignUpRoot({\n children,\n exampleMode = false,\n fallback = null,\n path: pathProp,\n routing = ROUTING.path,\n}: SignUpRootProps): JSX.Element | null {\n const clerk = useClerk();\n const inferredPath = usePathnameWithoutCatchAll();\n const path = pathProp || inferredPath || SIGN_UP_DEFAULT_BASE_PATH;\n\n clerk.telemetry?.record(\n eventComponentMounted('Elements_SignUpRoot', {\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 <SignUpFlowProvider\n exampleMode={exampleMode}\n fallback={fallback}\n isRootPath={isRootPath}\n >\n {children}\n </SignUpFlowProvider>\n </FormStoreProvider>\n </Router>\n );\n}\n","import { snakeToCamel } from '@clerk/shared/underscore';\nimport type { SignUpResource } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { fromPromise, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport type { FormDefaultValues, FormFields } from '~/internals/machines/form';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignUpContinueSchema } from './continue.types';\nimport type { SignInRouterMachineActorRef } from './router.types';\n\nexport type TSignUpContinueMachine = typeof SignUpContinueMachine;\n\nexport const SignUpContinueMachineId = 'SignUpContinue';\n\nexport const SignUpContinueMachine = setup({\n actors: {\n attempt: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; fields: FormFields }>(\n ({ input: { fields, parent } }) => {\n const params = fieldsToSignUpParams(fields);\n return parent.getSnapshot().context.clerk.client.signUp.update(params);\n },\n ),\n },\n actions: {\n setFormErrors: ({ context, event }) => {\n assertActorEventError(event);\n context.formRef.send({\n type: 'ERRORS.SET',\n error: event.error,\n });\n },\n markFormAsProgressive: ({ context }) => {\n const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n\n const missing = signUp.missingFields.map(snakeToCamel);\n const optional = signUp.optionalFields.map(snakeToCamel);\n const required = signUp.requiredFields.map(snakeToCamel);\n\n const progressiveFieldValues: FormDefaultValues = new Map();\n\n for (const key of required.concat(optional) as (keyof SignUpResource)[]) {\n if (key in signUp) {\n // @ts-expect-error - TS doesn't understand that key is a valid key of SignUpResource\n progressiveFieldValues.set(key, signUp[key]);\n }\n }\n\n context.formRef.send({\n type: 'MARK_AS_PROGRESSIVE',\n missing,\n optional,\n required,\n defaultValues: progressiveFieldValues,\n });\n },\n unmarkFormAsProgressive: ({ context }) => context.formRef.send({ type: 'UNMARK_AS_PROGRESSIVE' }),\n sendToNext: ({ context, event }) =>\n context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n sendToLoading,\n },\n types: {} as SignUpContinueSchema,\n}).createMachine({\n id: SignUpContinueMachineId,\n context: ({ input }) => ({\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n formRef: input.formRef,\n parent: input.parent,\n loadingStep: 'continue',\n }),\n entry: 'markFormAsProgressive',\n onDone: {\n actions: 'unmarkFormAsProgressive',\n },\n initial: 'Pending',\n states: {\n Pending: {\n tags: ['state:pending'],\n description: 'Waiting for user input',\n on: {\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attempt',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n fields: context.formRef.getSnapshot().context.fields,\n }),\n onDone: {\n actions: ['sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n});\n","import type { SignUpCreateParams, SignUpUpdateParams } from '@clerk/types';\n\nimport type { FormFields } from '~/internals/machines/form';\n\nconst SignUpAdditionalKeys = ['firstName', 'lastName', 'emailAddress', 'username', 'password', 'phoneNumber'] as const;\n\ntype SignUpAdditionalKeys = (typeof SignUpAdditionalKeys)[number];\n\nconst signUpKeys = new Set<SignUpAdditionalKeys>(SignUpAdditionalKeys);\n\nfunction isSignUpParam<T extends SignUpAdditionalKeys>(key: string): key is T {\n return signUpKeys.has(key as T);\n}\n\nexport function fieldsToSignUpParams<T extends SignUpCreateParams | SignUpUpdateParams>(\n fields: FormFields,\n): Pick<T, SignUpAdditionalKeys> {\n const params: SignUpUpdateParams = {};\n\n fields.forEach(({ value }, key) => {\n if (isSignUpParam(key) && value !== undefined) {\n params[key] = value as string;\n }\n });\n\n return params;\n}\n","import { joinURL } from '@clerk/shared/url';\nimport type { SignUpStatus, VerificationStatus } from '@clerk/types';\nimport type { NonReducibleUnknown } from 'xstate';\nimport { and, assign, enqueueActions, log, not, or, raise, sendTo, setup } from 'xstate';\n\nimport {\n ERROR_CODES,\n ROUTING,\n SEARCH_PARAMS,\n SIGN_IN_DEFAULT_BASE_PATH,\n SIGN_UP_DEFAULT_BASE_PATH,\n SIGN_UP_MODES,\n SSO_CALLBACK_PATH_ROUTE,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport { ThirdPartyMachine, ThirdPartyMachineId } from '~/internals/machines/third-party';\nimport { shouldUseVirtualRouting } from '~/internals/machines/utils/next';\n\nimport { SignUpContinueMachine } from './continue.machine';\nimport type {\n SignUpRouterContext,\n SignUpRouterEvents,\n SignUpRouterNextEvent,\n SignUpRouterSchema,\n} from './router.types';\nimport { SignUpStartMachine } from './start.machine';\nimport { SignUpVerificationMachine } from './verification.machine';\n\nexport const SignUpRouterMachineId = 'SignUpRouter';\nexport type TSignUpRouterMachine = typeof SignUpRouterMachine;\n\nconst isCurrentPath =\n (path: `/${string}`) =>\n ({ context }: { context: SignUpRouterContext }, _params?: NonReducibleUnknown) =>\n context.router?.match(path) ?? false;\n\nconst needsStatus =\n (status: SignUpStatus) =>\n ({ context, event }: { context: SignUpRouterContext; event?: SignUpRouterEvents }, _?: NonReducibleUnknown) =>\n (event as SignUpRouterNextEvent)?.resource?.status === status || context.clerk?.client?.signUp?.status === status;\n\nexport const SignUpRouterMachine = setup({\n actors: {\n continueMachine: SignUpContinueMachine,\n startMachine: SignUpStartMachine,\n thirdPartyMachine: ThirdPartyMachine,\n verificationMachine: SignUpVerificationMachine,\n },\n actions: {\n clearFormErrors: sendTo(({ context }) => context.formRef, { type: 'ERRORS.CLEAR' }),\n logUnknownError: snapshot => console.error('Unknown error:', snapshot),\n navigateInternal: ({ context }, { path, force = false }: { path: string; force?: boolean }) => {\n if (!context.router) {\n return;\n }\n if (!force && shouldUseVirtualRouting()) {\n return;\n }\n if (context.exampleMode) {\n return;\n }\n\n const resolvedPath = joinURL(context.router.basePath, path);\n if (resolvedPath === context.router.pathname()) {\n return;\n }\n\n context.router.shallowPush(resolvedPath);\n },\n navigateExternal: ({ context }, { path }: { path: string }) => context.router?.push(path),\n raiseNext: raise({ type: 'NEXT' }),\n setActive: ({ context, event }, params?: { sessionId?: string; useLastActiveSession?: boolean }) => {\n if (context.exampleMode) {\n return;\n }\n\n const session =\n params?.sessionId ||\n (params?.useLastActiveSession && context.clerk.client.lastActiveSessionId) ||\n ((event as SignUpRouterNextEvent)?.resource || context.clerk.client.signUp).createdSessionId;\n\n void context.clerk.setActive({\n session,\n redirectUrl: context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n });\n },\n delayedReset: raise({ type: 'RESET' }, { delay: 3000 }), // Reset machine after 3s delay.\n setError: assign({\n error: (_, { error }: { error?: ClerkElementsError }) => {\n if (error) {\n return error;\n }\n return new ClerkElementsRuntimeError('Unknown error');\n },\n }),\n setFormOAuthErrors: ({ context }) => {\n const errorOrig = context.clerk.client.signIn.firstFactorVerification.error;\n\n if (!errorOrig) {\n return;\n }\n\n let error: ClerkElementsError;\n\n switch (errorOrig.code) {\n case ERROR_CODES.NOT_ALLOWED_TO_SIGN_UP:\n case ERROR_CODES.OAUTH_ACCESS_DENIED:\n case ERROR_CODES.NOT_ALLOWED_ACCESS:\n case ERROR_CODES.SAML_USER_ATTRIBUTE_MISSING:\n case ERROR_CODES.OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML:\n case ERROR_CODES.USER_LOCKED:\n error = new ClerkElementsError(errorOrig.code, errorOrig.longMessage!);\n break;\n default:\n error = new ClerkElementsError(\n 'unable_to_complete',\n 'Unable to complete action at this time. If the problem persists please contact support.',\n );\n }\n\n context.formRef.send({\n type: 'ERRORS.SET',\n error,\n });\n },\n transfer: ({ context }) => context.router?.push(context.clerk.buildSignInUrl()),\n },\n guards: {\n areFieldsMissing: ({ context }) => context.clerk?.client?.signUp?.missingFields?.length > 0,\n areFieldsUnverified: ({ context }) => context.clerk?.client?.signUp?.unverifiedFields?.length > 0,\n\n hasAuthenticatedViaClerkJS: ({ context }) =>\n Boolean(context.clerk.client.signUp.status === null && context.clerk.client.lastActiveSessionId),\n hasCreatedSession: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.createdSession)),\n hasClerkStatus: ({ context }, params?: { status: VerificationStatus }) => {\n const value = context.router?.searchParams().get(SEARCH_PARAMS.status);\n if (!params) {\n return Boolean(value);\n }\n return value === params.status;\n },\n hasClerkTransfer: ({ context }) => Boolean(context.router?.searchParams().get(SEARCH_PARAMS.transfer)),\n hasResource: ({ context }) => Boolean(context.clerk.client.signUp),\n hasTicket: ({ context }) => Boolean(context.ticket),\n\n isLoggedInAndSingleSession: and(['isLoggedIn', 'isSingleSessionMode', not('isExampleMode')]),\n isStatusAbandoned: needsStatus('abandoned'),\n isStatusComplete: ({ context, event }) => {\n const resource = (event as SignUpRouterNextEvent)?.resource;\n const signUp = context.clerk?.client?.signUp;\n\n return (\n (resource?.status === 'complete' && Boolean(resource?.createdSessionId)) ||\n (signUp?.status === 'complete' && Boolean(signUp?.createdSessionId))\n );\n },\n isStatusMissingRequirements: needsStatus('missing_requirements'),\n\n isLoggedIn: or(['isStatusComplete', ({ context }) => Boolean(context.clerk.user)]),\n isSingleSessionMode: ({ context }) => Boolean(context.clerk?.__unstable__environment?.authConfig.singleSessionMode),\n isRestricted: ({ context }) =>\n context.clerk?.__unstable__environment?.userSettings.signUp.mode === SIGN_UP_MODES.RESTRICTED,\n isRestrictedWithoutTicket: and(['isRestricted', not('hasTicket')]),\n isExampleMode: ({ context }) => Boolean(context.exampleMode),\n isMissingRequiredFields: and(['isStatusMissingRequirements', 'areFieldsMissing']),\n isMissingRequiredUnverifiedFields: and(['isStatusMissingRequirements', 'areFieldsUnverified']),\n\n needsIdentifier: or(['statusNeedsIdentifier', isCurrentPath('/')]),\n needsContinue: and(['statusNeedsContinue', isCurrentPath('/continue')]),\n needsVerification: and(['statusNeedsVerification', isCurrentPath('/verify')]),\n needsCallback: isCurrentPath(SSO_CALLBACK_PATH_ROUTE),\n\n statusNeedsIdentifier: or([not('hasResource'), 'isStatusAbandoned']),\n statusNeedsContinue: or(['isMissingRequiredFields']),\n statusNeedsVerification: or(['isMissingRequiredUnverifiedFields', and(['areFieldsMissing', 'hasClerkStatus'])]),\n },\n delays: {\n 'TIMEOUT.POLLING': 300_000, // 5 minutes\n },\n types: {} as SignUpRouterSchema,\n}).createMachine({\n id: SignUpRouterMachineId,\n // @ts-expect-error - Set in INIT event\n context: {},\n initial: 'Idle',\n on: {\n 'AUTHENTICATE.OAUTH': {\n actions: sendTo(ThirdPartyMachineId, ({ context, event }) => ({\n type: 'REDIRECT',\n params: {\n strategy: event.strategy,\n redirectUrl: `${\n context.router?.mode === ROUTING.virtual\n ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n : context.router?.basePath\n }${SSO_CALLBACK_PATH_ROUTE}`,\n redirectUrlComplete:\n context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n },\n })),\n },\n 'AUTHENTICATE.SAML': {\n actions: sendTo(ThirdPartyMachineId, ({ context }) => ({\n type: 'REDIRECT',\n params: {\n strategy: 'saml',\n emailAddress: context.formRef.getSnapshot().context.fields.get('emailAddress')?.value,\n redirectUrl: `${\n context.router?.mode === ROUTING.virtual\n ? context.clerk.__unstable__environment?.displayConfig.signUpUrl\n : context.router?.basePath\n }${SSO_CALLBACK_PATH_ROUTE}`,\n redirectUrlComplete:\n context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n },\n })),\n },\n 'AUTHENTICATE.WEB3': {\n actions: sendTo('start', ({ event }) => event),\n },\n 'FORM.ATTACH': {\n description: 'Attach/re-attach the form to the router.',\n actions: enqueueActions(({ enqueue, event }) => {\n enqueue.assign({\n formRef: event.formRef,\n });\n\n // Reset the current step, to reset the form reference.\n enqueue.raise({ type: 'RESET.STEP' });\n }),\n },\n 'NAVIGATE.PREVIOUS': '.Hist',\n 'NAVIGATE.START': '.Start',\n LOADING: {\n actions: assign(({ event }) => ({\n loading: {\n isLoading: event.isLoading,\n step: event.step,\n strategy: event.strategy,\n action: event.action,\n },\n })),\n },\n RESET: '.Idle',\n },\n states: {\n Idle: {\n on: {\n INIT: {\n actions: assign(({ event }) => {\n const searchParams = event.router?.searchParams();\n\n return {\n clerk: event.clerk,\n router: event.router,\n signInPath: event.signInPath || SIGN_IN_DEFAULT_BASE_PATH,\n loading: {\n isLoading: false,\n },\n exampleMode: event.exampleMode || false,\n formRef: event.formRef,\n ticket:\n searchParams?.get(SEARCH_PARAMS.ticket) ||\n searchParams?.get(SEARCH_PARAMS.invitationToken) ||\n undefined,\n };\n }),\n target: 'Init',\n },\n },\n },\n Init: {\n entry: enqueueActions(({ context, enqueue, self }) => {\n if (!self.getSnapshot().children[ThirdPartyMachineId]) {\n enqueue.spawnChild('thirdPartyMachine', {\n id: ThirdPartyMachineId,\n systemId: ThirdPartyMachineId,\n input: {\n basePath: context.router?.basePath ?? SIGN_UP_DEFAULT_BASE_PATH,\n flow: 'signUp',\n formRef: context.formRef,\n parent: self,\n },\n });\n }\n }),\n always: [\n {\n guard: 'isLoggedInAndSingleSession',\n actions: [\n log('Already logged in'),\n {\n type: 'navigateExternal',\n params: ({ context }) => ({\n path: context.router?.searchParams().get('redirect_url') || context.clerk.buildAfterSignUpUrl(),\n }),\n },\n ],\n },\n {\n guard: 'needsCallback',\n target: 'Callback',\n },\n {\n guard: 'hasTicket',\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n target: 'Start',\n },\n {\n guard: 'needsVerification',\n actions: { type: 'navigateInternal', params: { force: true, path: '/verify' } },\n target: 'Verification',\n },\n {\n guard: or(['needsContinue', 'hasClerkTransfer']),\n actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n target: 'Continue',\n },\n {\n guard: 'isRestrictedWithoutTicket',\n target: 'Restricted',\n },\n {\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n target: 'Start',\n },\n ],\n },\n Start: {\n tags: ['step:start'],\n exit: 'clearFormErrors',\n invoke: {\n id: 'start',\n src: 'startMachine',\n input: ({ context, self }) => ({\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n ticket: context.ticket,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n on: {\n 'RESET.STEP': {\n actions: enqueueActions(({ enqueue, context }) => {\n enqueue('clearFormErrors');\n enqueue.sendTo('start', { type: 'SET_FORM', formRef: context.formRef });\n }),\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: and(['hasTicket', 'statusNeedsContinue']),\n actions: { type: 'navigateInternal', params: { path: '/' } },\n target: 'Start',\n reenter: true,\n },\n {\n guard: 'statusNeedsVerification',\n target: 'Verification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n ],\n },\n },\n Continue: {\n tags: ['step:continue'],\n invoke: {\n id: 'continue',\n src: 'continueMachine',\n input: ({ context, self }) => ({\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n on: {\n 'RESET.STEP': {\n target: 'Continue',\n reenter: true,\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: 'statusNeedsVerification',\n target: 'Verification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n },\n ],\n },\n },\n Verification: {\n tags: ['step:verification'],\n invoke: {\n id: 'verification',\n src: 'verificationMachine',\n input: ({ context, self }) => ({\n attributes: context.clerk.__unstable__environment?.userSettings.attributes,\n basePath: context.router?.basePath,\n formRef: context.formRef,\n parent: self,\n resource: context.clerk.client.signUp,\n }),\n onDone: {\n actions: 'raiseNext',\n },\n },\n always: [\n {\n guard: 'hasCreatedSession',\n actions: [\n ({ context }) => ({\n type: 'setActive',\n params: { sessionId: context.router?.searchParams().get(SEARCH_PARAMS.createdSession) },\n }),\n 'delayedReset',\n ],\n },\n {\n guard: { type: 'hasClerkStatus', params: { status: 'verified' } },\n actions: { type: 'navigateInternal', params: { force: true, path: '/continue' } },\n },\n {\n guard: { type: 'hasClerkStatus', params: { status: 'expired' } },\n actions: { type: 'navigateInternal', params: { force: true, path: '/' } },\n },\n ],\n on: {\n 'RESET.STEP': {\n target: 'Verification',\n reenter: true,\n },\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n ],\n },\n },\n Callback: {\n tags: ['step:callback'],\n entry: sendTo(ThirdPartyMachineId, { type: 'CALLBACK' }),\n on: {\n NEXT: [\n {\n guard: 'isStatusComplete',\n actions: ['setActive', 'delayedReset'],\n },\n {\n description: 'Handle a case where the user has already been authenticated via ClerkJS',\n guard: 'hasAuthenticatedViaClerkJS',\n actions: [{ type: 'setActive', params: { useLastActiveSession: true } }, 'delayedReset'],\n },\n {\n guard: 'statusNeedsVerification',\n actions: { type: 'navigateInternal', params: { path: '/verify' } },\n target: 'Verification',\n },\n {\n guard: 'statusNeedsContinue',\n actions: { type: 'navigateInternal', params: { path: '/continue' } },\n target: 'Continue',\n },\n {\n actions: { type: 'navigateInternal', params: { path: '/' } },\n target: 'Start',\n },\n ],\n },\n },\n Restricted: {\n tags: ['step:restricted'],\n on: {\n NEXT: 'Start',\n },\n },\n Error: {\n tags: ['step:error'],\n on: {\n NEXT: {\n target: 'Start',\n actions: 'clearFormErrors',\n },\n },\n },\n Hist: {\n type: 'history',\n exit: 'clearFormErrors',\n },\n },\n});\n","import type { SignUpResource, Web3Strategy } from '@clerk/types';\nimport type { DoneActorEvent } from 'xstate';\nimport { and, assertEvent, assign, enqueueActions, fromPromise, not, sendTo, setup } from 'xstate';\n\nimport { SIGN_UP_DEFAULT_BASE_PATH } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { FormFields } from '~/internals/machines/form';\nimport type { SetFormEvent } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { fieldsToSignUpParams } from '~/internals/machines/sign-up/utils';\nimport { ThirdPartyMachine } from '~/internals/machines/third-party';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport type { SignUpStartSchema } from './start.types';\n\nconst DISABLEABLE_FIELDS = ['emailAddress', 'phoneNumber'] as const;\n\nexport type TSignUpStartMachine = typeof SignUpStartMachine;\n\nexport const SignUpStartMachineId = 'SignUpStart';\n\ntype AttemptParams = { strategy: 'ticket'; ticket: string } | { strategy?: never; ticket?: never };\ntype PrefillFieldsKeys = keyof Pick<\n SignUpResource,\n 'username' | 'firstName' | 'lastName' | 'emailAddress' | 'phoneNumber'\n>;\nconst PREFILL_FIELDS: PrefillFieldsKeys[] = ['firstName', 'lastName', 'emailAddress', 'username', 'phoneNumber'];\n\nexport const SignUpStartMachine = setup({\n actors: {\n attempt: fromPromise<\n SignUpResource,\n { parent: SignInRouterMachineActorRef; fields: FormFields; params?: AttemptParams }\n >(({ input: { fields, parent, params } }) => {\n const fieldParams = fieldsToSignUpParams(fields);\n return parent.getSnapshot().context.clerk.client.signUp.create({ ...fieldParams, ...params });\n }),\n attemptWeb3: fromPromise<SignUpResource, { parent: SignInRouterMachineActorRef; strategy: Web3Strategy }>(\n ({ input: { parent, strategy } }) => {\n if (strategy === 'web3_metamask_signature') {\n return parent.getSnapshot().context.clerk.client.signUp.authenticateWithMetamask();\n }\n if (strategy === 'web3_coinbase_wallet_signature') {\n return parent.getSnapshot().context.clerk.client.signUp.authenticateWithCoinbaseWallet();\n }\n throw new ClerkElementsRuntimeError(`Unsupported Web3 strategy: ${strategy}`);\n },\n ),\n thirdParty: ThirdPartyMachine,\n },\n actions: {\n sendToNext: ({ context, event }) =>\n context.parent.send({ type: 'NEXT', resource: (event as unknown as DoneActorEvent<SignUpResource>).output }),\n sendToLoading,\n setFormRef: assign(({ event }) => {\n return {\n formRef: (event as unknown as SetFormEvent).formRef,\n };\n }),\n setFormDisabledTicketFields: enqueueActions(({ context, enqueue }) => {\n if (!context.ticket) {\n return;\n }\n\n const currentFields = context.formRef.getSnapshot().context.fields;\n\n for (const name of DISABLEABLE_FIELDS) {\n if (currentFields.has(name)) {\n enqueue.sendTo(context.formRef, { type: 'FIELD.DISABLE', field: { name } });\n }\n }\n }),\n setFormErrors: sendTo(\n ({ context }) => context.formRef,\n ({ event }) => {\n assertActorEventError(event);\n return {\n type: 'ERRORS.SET',\n error: event.error,\n };\n },\n ),\n setDefaultFormValues: ({ context }) => {\n const signUp = context.parent.getSnapshot().context.clerk.client.signUp;\n const prefilledDefaultValues = new Map();\n\n for (const key of PREFILL_FIELDS) {\n if (key in signUp) {\n prefilledDefaultValues.set(key, signUp[key]);\n }\n }\n\n context.formRef.send({\n type: 'PREFILL_DEFAULT_VALUES',\n defaultValues: prefilledDefaultValues,\n });\n },\n },\n guards: {\n isMissingRequirements: ({ context }) =>\n context.parent.getSnapshot().context.clerk?.client?.signUp?.status === 'missing_requirements',\n hasTicket: ({ context }) => Boolean(context.ticket),\n isExampleMode: ({ context }) => Boolean(context.parent.getSnapshot().context.exampleMode),\n },\n types: {} as SignUpStartSchema,\n}).createMachine({\n id: SignUpStartMachineId,\n context: ({ input }) => ({\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n formRef: input.formRef,\n parent: input.parent,\n loadingStep: 'start',\n ticket: input.ticket,\n }),\n entry: 'setDefaultFormValues',\n initial: 'Init',\n on: {\n SET_FORM: {\n actions: 'setFormRef',\n },\n },\n states: {\n Init: {\n description:\n 'Handle ticket, if present; Else, default to Pending state. Per tickets, `Attempting` makes a `signUp.create` request allowing for an incomplete sign up to contain progressively filled fields on the Start step.',\n always: [\n {\n guard: and(['hasTicket', 'isMissingRequirements']),\n target: 'Pending',\n },\n {\n guard: 'hasTicket',\n target: 'Attempting',\n },\n {\n target: 'Pending',\n },\n ],\n },\n Pending: {\n tags: ['state:pending'],\n description: 'Waiting for user input',\n on: {\n SUBMIT: {\n guard: not('isExampleMode'),\n target: 'Attempting',\n reenter: true,\n },\n 'AUTHENTICATE.WEB3': {\n guard: not('isExampleMode'),\n target: 'AttemptingWeb3',\n reenter: true,\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptCreate',\n src: 'attempt',\n input: ({ context }) => {\n // Standard fields\n const defaultParams = {\n fields: context.formRef.getSnapshot().context.fields,\n parent: context.parent,\n };\n\n // Handle ticket-specific flows\n const params: AttemptParams = context.ticket\n ? {\n strategy: 'ticket',\n ticket: context.ticket,\n }\n : {};\n\n return { ...defaultParams, params };\n },\n onDone: {\n actions: ['setFormDisabledTicketFields', 'sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormDisabledTicketFields', 'setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n AttemptingWeb3: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptCreateWeb3',\n src: 'attemptWeb3',\n input: ({ context, event }) => {\n assertEvent(event, 'AUTHENTICATE.WEB3');\n return {\n parent: context.parent,\n strategy: event.strategy,\n };\n },\n onDone: {\n actions: ['sendToNext', 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n});\n","import { Poller } from '@clerk/shared/poller';\nimport type {\n AttemptVerificationParams,\n Attribute,\n PrepareVerificationParams,\n SignUpResource,\n SignUpVerifiableField,\n SignUpVerificationsResource,\n VerificationStrategy,\n} from '@clerk/types';\nimport type { Writable } from 'type-fest';\nimport { and, assign, enqueueActions, fromCallback, fromPromise, log, raise, sendParent, sendTo, setup } from 'xstate';\n\nimport {\n MAGIC_LINK_VERIFY_PATH_ROUTE,\n RESENDABLE_COUNTDOWN_DEFAULT,\n SIGN_UP_DEFAULT_BASE_PATH,\n} from '~/internals/constants';\nimport { ClerkElementsError, ClerkElementsRuntimeError } from '~/internals/errors';\nimport type { WithParams } from '~/internals/machines/shared';\nimport { sendToLoading } from '~/internals/machines/shared';\nimport { assertActorEventError } from '~/internals/machines/utils/assert';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\nimport {\n type SignUpVerificationContext,\n SignUpVerificationDelays,\n type SignUpVerificationEmailLinkFailedEvent,\n type SignUpVerificationEvents,\n type SignUpVerificationSchema,\n} from './verification.types';\n\nexport type SignUpVerificationsResourceKey = keyof SignUpVerificationsResource;\nexport type TSignUpVerificationMachine = typeof SignUpVerificationMachine;\n\nexport type StartSignUpEmailLinkFlowEvents = { type: 'STOP' };\nexport type StartSignUpEmailLinkFlowInput = {\n parent: SignInRouterMachineActorRef;\n};\n\nexport const SignUpVerificationMachineId = 'SignUpVerification';\n\nconst shouldVerify = (field: SignUpVerifiableField, strategy?: VerificationStrategy) => {\n const guards: Writable<Parameters<typeof and<SignUpVerificationContext, SignUpVerificationEvents, any>>[0]> = [\n {\n type: 'isFieldUnverified',\n params: {\n field,\n },\n },\n ];\n\n if (strategy) {\n guards.push({\n type: 'isStrategyEnabled',\n params: {\n attribute: field,\n strategy,\n },\n });\n }\n\n return and(guards);\n};\n\nexport type PrepareVerificationInput = {\n parent: SignInRouterMachineActorRef;\n} & WithParams<PrepareVerificationParams>;\nexport type AttemptVerificationInput = {\n parent: SignInRouterMachineActorRef;\n} & WithParams<AttemptVerificationParams>;\n\nexport const SignUpVerificationMachine = setup({\n actors: {\n prepare: fromPromise<SignUpResource, PrepareVerificationInput>(({ input: { params, parent } }) => {\n const clerk = parent.getSnapshot().context.clerk;\n\n if (params.strategy === 'email_link' && params.redirectUrl) {\n params.redirectUrl = clerk.buildUrlWithAuth(params.redirectUrl);\n }\n\n return clerk.client.signUp.prepareVerification(params);\n }),\n attempt: fromPromise<SignUpResource, AttemptVerificationInput>(async ({ input: { params, parent } }) =>\n parent.getSnapshot().context.clerk.client.signUp.attemptVerification(params),\n ),\n attemptEmailLinkVerification: fromCallback<StartSignUpEmailLinkFlowEvents, StartSignUpEmailLinkFlowInput>(\n ({ receive, sendBack, input: { parent } }) => {\n const { run, stop } = Poller();\n\n const clerk = parent.getSnapshot().context.clerk;\n\n void run(async () =>\n clerk.client.signUp\n .reload()\n .then(resource => {\n const signInStatus = resource.status;\n const verificationStatus = resource.verifications.emailAddress.status;\n\n // Short-circuit if the sign-up resource is already complete\n if (signInStatus === 'complete') {\n return sendBack({ type: 'EMAIL_LINK.VERIFIED', resource });\n }\n\n switch (verificationStatus) {\n case 'verified':\n case 'transferable':\n case 'expired': {\n sendBack({ type: `EMAIL_LINK.${verificationStatus.toUpperCase()}`, resource });\n break;\n }\n case 'failed': {\n sendBack({\n type: 'EMAIL_LINK.FAILED',\n error: new ClerkElementsError('email-link-verification-failed', 'Email verification failed'),\n resource,\n });\n break;\n }\n // case 'unverified':\n default:\n return;\n }\n\n stop();\n })\n .catch(error => {\n stop();\n new ClerkElementsRuntimeError(error);\n }),\n );\n\n receive(event => {\n if (event.type === 'STOP') {\n stop();\n }\n });\n\n return () => stop();\n },\n ),\n },\n actions: {\n resendableTick: assign(({ context }) => ({\n resendable: context.resendableAfter === 1,\n resendableAfter: context.resendableAfter > 1 ? context.resendableAfter - 1 : context.resendableAfter,\n })),\n resendableReset: assign({\n resendable: false,\n resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n }),\n sendToLoading,\n setFormErrors: sendTo(\n ({ context }) => context.formRef,\n ({ event }) => {\n assertActorEventError(event);\n return {\n type: 'ERRORS.SET',\n error: event.error,\n };\n },\n ),\n },\n guards: {\n isComplete: ({ context }) => context.resource.status === 'complete',\n isFieldUnverified: ({ context, event }, { field }: { field: SignUpVerifiableField }) => {\n let resource = context.resource;\n\n if (event?.type === 'NEXT' && event.resource) {\n resource = event.resource;\n }\n\n return resource.unverifiedFields.includes(field);\n },\n isResendable: ({ context }) => context.resendable || context.resendableAfter === 0,\n isStrategyEnabled: (\n { context },\n { attribute, strategy }: { attribute: Attribute; strategy: VerificationStrategy },\n ) => Boolean(context.attributes?.[attribute].verifications.includes(strategy)),\n shouldVerifyPhoneCode: shouldVerify('phone_number'),\n shouldVerifyEmailLink: shouldVerify('email_address', 'email_link'),\n shouldVerifyEmailCode: shouldVerify('email_address', 'email_code'),\n },\n delays: SignUpVerificationDelays,\n types: {} as SignUpVerificationSchema,\n}).createMachine({\n id: SignUpVerificationMachineId,\n initial: 'Init',\n context: ({ input }) => ({\n attributes: input.attributes,\n basePath: input.basePath || SIGN_UP_DEFAULT_BASE_PATH,\n loadingStep: 'verifications',\n formRef: input.formRef,\n parent: input.parent,\n resendable: false,\n resendableAfter: RESENDABLE_COUNTDOWN_DEFAULT,\n resource: input.resource,\n }),\n on: {\n NEXT: [\n {\n guard: 'isComplete',\n actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n },\n {\n description: 'Validate via phone number',\n guard: 'shouldVerifyPhoneCode',\n target: '.PhoneCode',\n },\n {\n description: 'Validate via email link',\n guard: 'shouldVerifyEmailLink',\n target: '.EmailLink',\n },\n {\n description: 'Verify via email code',\n guard: 'shouldVerifyEmailCode',\n target: '.EmailCode',\n },\n {\n actions: sendParent(({ event }) => ({ type: 'NEXT', resource: event.resource })),\n },\n ],\n },\n states: {\n Init: {\n always: [\n {\n description: 'Validate via phone number',\n guard: 'shouldVerifyPhoneCode',\n target: 'PhoneCode',\n },\n {\n description: 'Validate via email link',\n guard: 'shouldVerifyEmailLink',\n target: 'EmailLink',\n },\n {\n description: 'Verify via email code',\n guard: 'shouldVerifyEmailCode',\n target: 'EmailCode',\n },\n {\n actions: sendParent(({ context }) => ({ type: 'NEXT', resource: context.resource })),\n },\n ],\n },\n EmailLink: {\n tags: ['verification:method:email', 'verification:category:link', 'verification:email_link'],\n initial: 'Preparing',\n on: {\n RETRY: '.Preparing',\n 'EMAIL_LINK.RESTART': {\n target: '.Attempting',\n reenter: true,\n },\n 'EMAIL_LINK.FAILED': {\n actions: [\n {\n type: 'setFormErrors',\n params: ({ event }: { event: SignUpVerificationEmailLinkFailedEvent }) => ({ error: event.error }),\n },\n assign({ resource: ({ event }) => event.resource }),\n ],\n target: '.Pending',\n },\n 'EMAIL_LINK.*': {\n actions: enqueueActions(({ enqueue, event }) => {\n if (event.type === 'EMAIL_LINK.RESTART') {\n return;\n }\n\n enqueue.assign({ resource: event.resource });\n enqueue.raise({ type: 'NEXT', resource: event.resource });\n }),\n },\n },\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'prepareEmailLinkVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_link',\n redirectUrl: `${context.basePath}${MAGIC_LINK_VERIFY_PATH_ROUTE}`,\n },\n }),\n onDone: {\n target: 'Attempting',\n actions: assign({ resource: ({ event }) => event.output }),\n },\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n description: 'Placeholder for allowing resending of email link',\n tags: ['state:pending'],\n on: {\n NEXT: 'Preparing',\n },\n },\n Attempting: {\n tags: ['state:attempting'],\n invoke: {\n id: 'attemptEmailLinkVerification',\n src: 'attemptEmailLinkVerification',\n input: ({ context }) => ({\n parent: context.parent,\n }),\n },\n after: {\n emailLinkTimeout: {\n description: 'Timeout after 5 minutes',\n target: 'Pending',\n actions: sendTo(({ context }) => context.formRef, {\n type: 'ERRORS.SET',\n error: new ClerkElementsError('verify-email-link-timeout', 'Email link verification timed out'),\n }),\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n },\n },\n EmailCode: {\n tags: ['verification:method:email', 'verification:category:code', 'verification:email_code'],\n initial: 'Preparing',\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'prepareEmailAddressCodeVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_code',\n },\n }),\n onDone: [\n {\n guard: 'shouldVerifyEmailCode',\n target: 'Pending',\n },\n {\n actions: [\n assign({ resource: ({ event }) => event.output }),\n raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n ],\n },\n ],\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n tags: ['state:pending'],\n on: {\n RETRY: 'Preparing',\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptEmailAddressCodeVerification',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'email_code',\n code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n },\n }),\n onDone: {\n actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n },\n PhoneCode: {\n tags: ['verification:method:phone', 'verification:category:code', 'verification:phone_code'],\n initial: 'Preparing',\n states: {\n Preparing: {\n tags: ['state:preparing', 'state:loading'],\n exit: 'resendableReset',\n invoke: {\n id: 'preparePhoneCodeVerification',\n src: 'prepare',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'phone_code',\n },\n }),\n onDone: [\n {\n guard: 'shouldVerifyPhoneCode',\n target: 'Pending',\n actions: assign({ resource: ({ event }) => event.output }),\n },\n {\n actions: [\n assign({ resource: ({ event }) => event.output }),\n raise(({ event }) => ({ type: 'NEXT', resource: event.output })),\n ],\n },\n ],\n onError: {\n actions: 'setFormErrors',\n target: 'Pending',\n },\n },\n },\n Pending: {\n tags: ['state:pending'],\n on: {\n RETRY: 'Preparing',\n SUBMIT: {\n target: 'Attempting',\n reenter: true,\n },\n },\n initial: 'NotResendable',\n states: {\n Resendable: {\n description: 'Waiting for user to retry',\n },\n NotResendable: {\n description: 'Handle countdowns',\n on: {\n RETRY: {\n actions: log(({ context }) => `Not retriable; Try again in ${context.resendableAfter}s`),\n },\n },\n after: {\n resendableTimeout: [\n {\n description: 'Set as retriable if countdown is 0',\n guard: 'isResendable',\n actions: 'resendableTick',\n target: 'Resendable',\n },\n {\n description: 'Continue countdown if not retriable',\n actions: 'resendableTick',\n target: 'NotResendable',\n reenter: true,\n },\n ],\n },\n },\n },\n },\n Attempting: {\n tags: ['state:attempting', 'state:loading'],\n entry: 'sendToLoading',\n invoke: {\n id: 'attemptPhoneNumberVerification',\n src: 'attempt',\n input: ({ context }) => ({\n parent: context.parent,\n params: {\n strategy: 'phone_code',\n code: (context.formRef.getSnapshot().context.fields.get('code')?.value as string) || '',\n },\n }),\n onDone: {\n actions: [raise(({ event }) => ({ type: 'NEXT', resource: event.output })), 'sendToLoading'],\n },\n onError: {\n actions: ['setFormErrors', 'sendToLoading'],\n target: 'Pending',\n },\n },\n },\n },\n },\n },\n});\n","import type { ClerkAPIResponseError } from '@clerk/shared/error';\nimport type { Attributes, SignUpResource } from '@clerk/types';\nimport type { ActorRefFrom, DoneActorEvent, ErrorActorEvent } from 'xstate';\n\nimport type { FormMachine } from '~/internals/machines/form';\n\nimport type { SignInRouterMachineActorRef } from './router.types';\n\n// ---------------------------------- Tags ---------------------------------- //\n\nexport type SignUpVerificationStateTags = 'state:preparing' | 'state:pending' | 'state:attempting' | 'state:loading';\n\nexport type SignUpVerificationVerificationCategoryTags = 'verification:category:code' | 'verification:category:link';\nexport type SignUpVerificationVerificationMethodTags = 'verification:method:email' | 'verification:method:phone';\nexport type SignUpVerificationVerificationTypeTags =\n | 'verification:email_link'\n | 'verification:email_code'\n | 'verification:phone_code';\n\nexport type SignUpVerificationVerificationTags =\n | SignUpVerificationVerificationCategoryTags\n | SignUpVerificationVerificationMethodTags\n | SignUpVerificationVerificationTypeTags;\n\nexport type SignUpVerificationTags = SignUpVerificationStateTags | SignUpVerificationVerificationTags;\nexport type SignUpVerificationFriendlyTags = 'code' | 'email_link' | 'email_code' | 'phone_code';\n\n// ---------------------------------- Events ---------------------------------- //\n\nexport type SignUpVerificationSubmitEvent = { type: 'SUBMIT'; action: 'submit' };\nexport type SignUpVerificationNextEvent = { type: 'NEXT'; resource?: SignUpResource };\nexport type SignUpVerificationRetryEvent = { type: 'RETRY' };\n\nexport type SignUpVerificationEmailLinkVerifiedEvent = { type: 'EMAIL_LINK.VERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkUnverifiedEvent = { type: 'EMAIL_LINK.UNVERIFIED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkExpiredEvent = { type: 'EMAIL_LINK.EXPIRED'; resource: SignUpResource };\nexport type SignUpVerificationEmailLinkTransferrableEvent = {\n type: 'EMAIL_LINK.TRANSFERRABLE';\n resource: SignUpResource;\n};\nexport type SignUpVerificationEmailLinkRestartEvent = { type: 'EMAIL_LINK.RESTART' };\nexport type SignUpVerificationEmailLinkFailedEvent = {\n type: 'EMAIL_LINK.FAILED';\n resource: SignUpResource;\n error: Error;\n};\n\nexport type SignUpVerificationEmailLinkEvent =\n | SignUpVerificationEmailLinkVerifiedEvent\n | SignUpVerificationEmailLinkUnverifiedEvent\n | SignUpVerificationEmailLinkExpiredEvent\n | SignUpVerificationEmailLinkRestartEvent\n | SignUpVerificationEmailLinkFailedEvent;\n\nexport type SignUpVerificationEvents =\n | DoneActorEvent\n | ErrorActorEvent\n | SignUpVerificationRetryEvent\n | SignUpVerificationSubmitEvent\n | SignUpVerificationNextEvent\n | SignUpVerificationEmailLinkEvent;\n\n// ---------------------------------- Input ---------------------------------- //\n\nexport type SignUpVerificationInput = {\n attributes: Attributes | undefined;\n basePath?: string;\n formRef: ActorRefFrom<typeof FormMachine>;\n parent: SignInRouterMachineActorRef;\n resource: SignUpResource;\n};\n\n// ---------------------------------- Delays ---------------------------------- //\n\nexport const SignUpVerificationDelays = {\n emailLinkTimeout: 300_000, // 5 minutes\n resendableTimeout: 1_000, // 1 second\n} as const;\n\nexport type SignUpVerificationDelays = keyof typeof SignUpVerificationDelays;\n\n// ---------------------------------- Context ---------------------------------- //\n\nexport interface SignUpVerificationContext {\n attributes: Attributes | undefined;\n basePath: string;\n resource: SignUpResource;\n error?: Error | ClerkAPIResponseError;\n formRef: ActorRefFrom<typeof FormMachine>;\n parent: SignInRouterMachineActorRef;\n loadingStep: 'verifications';\n resendable: boolean;\n resendableAfter: number;\n}\n\n// ---------------------------------- Schema ---------------------------------- //\n\nexport interface SignUpVerificationSchema {\n context: SignUpVerificationContext;\n delays: SignUpVerificationDelays;\n input: SignUpVerificationInput;\n events: SignUpVerificationEvents;\n tags: SignUpVerificationTags;\n}\n","import * as React from 'react';\n\nimport type { FormSubmitProps } from '~/react/common';\nimport { Submit } from '~/react/common';\n\nimport type { SignUpNavigateProps } from './navigate';\nimport { SignUpNavigate } from './navigate';\nimport type { SignUpResendProps } from './resend';\nimport { SignUpResend } from './resend';\n\nexport type SignUpActionProps = { asChild?: boolean } & FormSubmitProps &\n (\n | ({\n navigate: SignUpNavigateProps['to'];\n resend?: never;\n submit?: never;\n } & Omit<SignUpNavigateProps, 'to'>)\n | { navigate?: never; resend?: never; submit: true }\n | ({ navigate?: never; resend: true; submit?: never } & SignUpResendProps)\n );\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 * <SignUp.Action navigate=\"start\">Go Back</SignUp.Action>\n *\n * @example\n * <SignUp.Action submit>Sign Up</SignUp.Action>\n *\n * @example\n * <SignUp.Action resend>Resend</SignUp.Action>\n */\n\nexport const SignUpAction = React.forwardRef<React.ElementRef<'button'>, SignUpActionProps>((props, forwardedRef) => {\n const { submit, navigate, resend, ...rest } = props;\n let Comp: React.ForwardRefExoticComponent<any> | undefined;\n\n if (submit) {\n Comp = Submit;\n } else if (navigate) {\n Comp = SignUpNavigate;\n } else if (resend) {\n Comp = SignUpResend;\n }\n\n return Comp ? (\n <Comp\n to={navigate}\n {...rest}\n ref={forwardedRef}\n />\n ) : null;\n});\n\nSignUpAction.displayName = 'SignUpAction';\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { SignUpRouterCtx } from '~/react/sign-up/context';\n\nconst SIGN_UP_NAVIGATE_NAME = 'SignInNavigate';\nconst SignUpNavigationEventMap = {\n start: `NAVIGATE.START`,\n previous: `NAVIGATE.PREVIOUS`,\n} as const;\n\nexport type SignUpNavigateElementKey = keyof typeof SignUpNavigationEventMap;\n\nexport type SignUpNavigateElement = React.ElementRef<'button'>;\nexport type SignUpNavigateProps = {\n asChild?: boolean;\n to: SignUpNavigateElementKey;\n children: React.ReactNode;\n};\n\n/**\n * Renders a button which will navigate to a different step in the sign-up flow.\n *\n * @param {SignUpNavigateElementKey} 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=\"start\">\n * Start over...\n * </Navigate>\n */\nexport const SignUpNavigate = React.forwardRef<SignUpNavigateElement, SignUpNavigateProps>(\n ({ asChild, to, ...rest }, forwardedRef) => {\n const actorRef = SignUpRouterCtx.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 = SignUpNavigationEventMap[to];\n\n if (actorRef.getSnapshot().can({ type })) {\n actorRef.send({ type });\n } else {\n console.warn(\n `Clerk: <SignUp.Action navigate=\"${to}\"> is an invalid navigation event. You can only navigate to: ${Object.keys(SignUpNavigationEventMap).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\nSignUpNavigate.displayName = SIGN_UP_NAVIGATE_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport { useSelector } from '@xstate/react';\nimport * as React from 'react';\n\nimport { SignUpVerificationCtx } from '../verifications';\n\nexport type SignUpResendElement = React.ElementRef<'button'>;\nexport type SignUpResendFallbackProps = {\n resendable: boolean;\n resendableAfter: number;\n};\nexport type SignUpResendProps = {\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: SignUpResendFallbackProps) => React.ReactNode);\n};\n\nconst SIGN_UP_RESEND_NAME = 'SignUpResend';\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 SignUpResend = React.forwardRef<SignUpResendElement, SignUpResendProps>(\n ({ asChild, fallback, ...rest }, forwardedRef) => {\n const ref = SignUpVerificationCtx.useActorRef(true);\n\n if (!ref) {\n throw new Error('The resend action must be used within <SignUp.Step name=\"verifications\">.');\n }\n\n const fallbackProps: SignUpResendFallbackProps = useSelector(\n ref,\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={() => ref.send({ type: 'RETRY' })}\n ref={forwardedRef}\n />\n );\n },\n);\n\nSignUpResend.displayName = SIGN_UP_RESEND_NAME;\n","import { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\n\nimport { CAPTCHA_ELEMENT_ID } from '~/internals/constants';\nimport { ClerkElementsRuntimeError } from '~/internals/errors';\n\nimport { SignUpStartCtx } from './start';\n\nexport type SignUpCaptchaElement = React.ElementRef<'div'>;\n\ntype CaptchaElementProps = Omit<\n React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>,\n 'id' | 'children'\n>;\n\nexport type SignUpCaptchaProps =\n | ({\n asChild: true;\n /* Must only be a self-closing element/component */\n children: React.ReactElement;\n } & CaptchaElementProps)\n | ({ asChild?: false; children?: undefined } & CaptchaElementProps);\n\n/**\n * The `<SignUp.Captcha>` component is used to render the Cloudflare Turnstile widget. It must be used within the `<SignUp.Step name=\"start\">` component.\n *\n * If utilizing the `asChild` prop, the component must be a self-closing element or component. Any children passed to the immediate child component of <SignUp.Captcha> will be ignored.\n *\n * @param {boolean} [asChild] - If true, `<Captcha />` will render as its child element, passing along any necessary props.\n *\n * @example\n * <SignUp.Root>\n * <SignUp.Step name=\"start\">\n * <SignUp.Captcha />\n * <Clerk.Action submit>Sign Up</Clerk.Action>\n * </SignUp.Step>\n * </SignUp.Root>\n *\n * @example\n * <SignUp.Root>\n * <SignUp.Step name=\"start\">\n * <SignUp.Captcha asChild>\n * <aside/>\n * </SignUp.Captcha>\n * <Clerk.Action submit>Sign Up</Clerk.Action>\n * </SignUp.Step>\n * </SignUp.Root>\n */\n\nexport const SignUpCaptcha = React.forwardRef<SignUpCaptchaElement, SignUpCaptchaProps>(\n ({ asChild, children, ...rest }, forwardedRef) => {\n const ref = SignUpStartCtx.useActorRef(true);\n\n if (!ref) {\n throw new ClerkElementsRuntimeError('<Captcha> must be used within the <SignUp.Step name=\"start\"> component.');\n }\n\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n id={CAPTCHA_ELEMENT_ID}\n {...rest}\n ref={forwardedRef}\n />\n );\n },\n);\n"],"mappings":"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","names":["and","assign","enqueueActions","log","not","raise","sendTo","setup","fromPromise","setup","setup","fromPromise","and","assign","enqueueActions","fromPromise","sendTo","setup","and","setup","fromPromise","assign","sendTo","enqueueActions","setup","sendTo","raise","assign","and","not","enqueueActions","log","React","jsx","Slot","useSelector","React","jsx","useSelector","Slot","jsx","Slot","React","jsx","Slot"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerk/elements",
3
- "version": "0.17.1",
3
+ "version": "0.17.2-canary.vf875463",
4
4
  "description": "Clerk Elements",
5
5
  "keywords": [
6
6
  "clerk",
@@ -71,8 +71,8 @@
71
71
  "test:cache:clear": "jest --clearCache --useStderr"
72
72
  },
73
73
  "dependencies": {
74
- "@clerk/shared": "2.10.1",
75
- "@clerk/types": "^4.28.0",
74
+ "@clerk/shared": "2.10.2-canary.vf875463",
75
+ "@clerk/types": "4.29.0-canary.vf875463",
76
76
  "@radix-ui/react-form": "^0.1.0",
77
77
  "@radix-ui/react-slot": "^1.1.0",
78
78
  "@xstate/react": "^4.1.1",
@@ -80,7 +80,7 @@
80
80
  "xstate": "^5.15.0"
81
81
  },
82
82
  "devDependencies": {
83
- "@clerk/clerk-react": "5.13.1",
83
+ "@clerk/clerk-react": "5.13.2-canary.vf875463",
84
84
  "@clerk/eslint-config-custom": "*",
85
85
  "@statelyai/inspect": "^0.4.0",
86
86
  "@types/node": "^18.19.33",