@clerk/react 6.0.0-snapshot.v20251211120550 → 6.0.0-snapshot.v20251215203425

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  useAuth,
3
3
  withClerk
4
- } from "./chunk-J32KHXBI.mjs";
4
+ } from "./chunk-FDDR7URL.mjs";
5
5
  import {
6
6
  useAssertWrappedByClerkProvider,
7
7
  useIsomorphicClerkContext
@@ -166,4 +166,4 @@ export {
166
166
  AuthenticateWithRedirectCallback,
167
167
  MultisessionAppSupport
168
168
  };
169
- //# sourceMappingURL=chunk-4F7CSI4T.mjs.map
169
+ //# sourceMappingURL=chunk-EMTY23UX.mjs.map
@@ -214,6 +214,7 @@ import {
214
214
  } from "@clerk/shared/react";
215
215
 
216
216
  // src/components/withClerk.tsx
217
+ import { usePortalRoot } from "@clerk/shared/react";
217
218
  import React2 from "react";
218
219
  var withClerk = (Component, displayNameOrOptions) => {
219
220
  const passedDisplayedName = typeof displayNameOrOptions === "string" ? displayNameOrOptions : displayNameOrOptions == null ? void 0 : displayNameOrOptions.component;
@@ -223,12 +224,14 @@ var withClerk = (Component, displayNameOrOptions) => {
223
224
  const HOC = (props) => {
224
225
  useAssertWrappedByClerkProvider(displayName || "withClerk");
225
226
  const clerk = useIsomorphicClerkContext();
227
+ const getContainer = usePortalRoot();
226
228
  if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) {
227
229
  return null;
228
230
  }
229
231
  return /* @__PURE__ */ React2.createElement(
230
232
  Component,
231
233
  {
234
+ getContainer,
232
235
  ...props,
233
236
  component: displayName,
234
237
  clerk
@@ -279,4 +282,4 @@ export {
279
282
  __experimental_PaymentElementProvider,
280
283
  __experimental_PaymentElement
281
284
  };
282
- //# sourceMappingURL=chunk-J32KHXBI.mjs.map
285
+ //# sourceMappingURL=chunk-FDDR7URL.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useAuth.ts","../src/contexts/AuthContext.ts","../src/errors/messages.ts","../src/hooks/utils.ts","../src/hooks/useEmailLink.ts","../src/hooks/useClerkSignal.ts","../src/hooks/index.ts","../src/components/withClerk.tsx"],"sourcesContent":["import { createCheckAuthorization, resolveAuthState } from '@clerk/shared/authorization';\nimport { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type {\n CheckAuthorizationWithCustomPermissions,\n GetToken,\n JwtPayload,\n PendingSessionOptions,\n SignOut,\n UseAuthReturn,\n} from '@clerk/shared/types';\nimport { useCallback } from 'react';\n\nimport { useAuthContext } from '../contexts/AuthContext';\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { errorThrower } from '../errors/errorThrower';\nimport { invalidStateError } from '../errors/messages';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\nimport { createGetToken, createSignOut } from './utils';\n\n/**\n * @inline\n */\ntype UseAuthOptions = Record<string, any> | PendingSessionOptions | undefined | null;\n\n/**\n * The `useAuth()` hook provides access to the current user's authentication state and methods to manage the active session.\n *\n * > [!NOTE]\n * > To access auth data server-side, see the [`Auth` object reference doc](https://clerk.com/docs/reference/backend/types/auth-object).\n *\n * <If sdk=\"nextjs\">\n * By default, Next.js opts all routes into static rendering. If you need to opt a route or routes into dynamic rendering because you need to access the authentication data at request time, you can create a boundary by passing the `dynamic` prop to `<ClerkProvider>`. See the [guide on rendering modes](https://clerk.com/docs/guides/development/rendering-modes) for more information, including code examples.\n * </If>\n *\n * @unionReturnHeadings\n * [\"Initialization\", \"Signed out\", \"Signed in (no active organization)\", \"Signed in (with active organization)\"]\n *\n * @param [initialAuthStateOrOptions] - An object containing the initial authentication state or options for the `useAuth()` hook. If not provided, the hook will attempt to derive the state from the context. `treatPendingAsSignedOut` is a boolean that indicates whether pending sessions are considered as signed out or not. Defaults to `true`.\n *\n * @function\n *\n * @example\n *\n * The following example demonstrates how to use the `useAuth()` hook to access the current auth state, like whether the user is signed in or not. It also includes a basic example for using the `getToken()` method to retrieve a session token for fetching data from an external resource.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/ExternalDataPage.tsx' }}\n * import { useAuth } from '@clerk/react'\n *\n * export default function ExternalDataPage() {\n * const { userId, sessionId, getToken, isLoaded, isSignedIn } = useAuth()\n *\n * const fetchExternalData = async () => {\n * const token = await getToken()\n *\n * // Fetch data from an external API\n * const response = await fetch('https://api.example.com/data', {\n * headers: {\n * Authorization: `Bearer ${token}`,\n * },\n * })\n *\n * return response.json()\n * }\n *\n * if (!isLoaded) {\n * return <div>Loading...</div>\n * }\n *\n * if (!isSignedIn) {\n * return <div>Sign in to view this page</div>\n * }\n *\n * return (\n * <div>\n * <p>\n * Hello, {userId}! Your current active session is {sessionId}.\n * </p>\n * <button onClick={fetchExternalData}>Fetch Data</button>\n * </div>\n * )\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-auth.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n */\nexport const useAuth = (initialAuthStateOrOptions: UseAuthOptions = {}): UseAuthReturn => {\n useAssertWrappedByClerkProvider('useAuth');\n\n const { treatPendingAsSignedOut, ...rest } = initialAuthStateOrOptions ?? {};\n const initialAuthState = rest as any;\n\n const authContextFromHook = useAuthContext();\n let authContext = authContextFromHook;\n\n if (authContext.sessionId === undefined && authContext.userId === undefined) {\n authContext = initialAuthState != null ? initialAuthState : {};\n }\n\n const isomorphicClerk = useIsomorphicClerkContext();\n const getToken: GetToken = useCallback(createGetToken(isomorphicClerk), [isomorphicClerk]);\n const signOut: SignOut = useCallback(createSignOut(isomorphicClerk), [isomorphicClerk]);\n\n isomorphicClerk.telemetry?.record(eventMethodCalled('useAuth', { treatPendingAsSignedOut }));\n\n return useDerivedAuth(\n {\n ...authContext,\n getToken,\n signOut,\n },\n {\n treatPendingAsSignedOut,\n },\n );\n};\n\n/**\n * A hook that derives and returns authentication state and utility functions based on the provided auth object.\n *\n * @param authObject - An object containing authentication-related properties and functions.\n *\n * @returns A derived authentication state with helper methods. If the authentication state is invalid, an error is thrown.\n *\n * @remarks\n * This hook inspects session, user, and organization information to determine the current authentication state.\n * It returns an object that includes various properties such as whether the state is loaded, if a user is signed in,\n * session and user identifiers, Organization Roles, and a `has` function for authorization checks.\n * Additionally, it provides `signOut` and `getToken` functions if applicable.\n *\n * @example\n * ```tsx\n * const {\n * isLoaded,\n * isSignedIn,\n * userId,\n * orgId,\n * has,\n * signOut,\n * getToken\n * } = useDerivedAuth(authObject);\n * ```\n */\nexport function useDerivedAuth(\n authObject: any,\n { treatPendingAsSignedOut = true }: PendingSessionOptions = {},\n): UseAuthReturn {\n const { userId, orgId, orgRole, has, signOut, getToken, orgPermissions, factorVerificationAge, sessionClaims } =\n authObject ?? {};\n\n const derivedHas = useCallback(\n (params: Parameters<CheckAuthorizationWithCustomPermissions>[0]) => {\n if (has) {\n return has(params);\n }\n return createCheckAuthorization({\n userId,\n orgId,\n orgRole,\n orgPermissions,\n factorVerificationAge,\n features: ((sessionClaims as JwtPayload | undefined)?.fea as string) || '',\n plans: ((sessionClaims as JwtPayload | undefined)?.pla as string) || '',\n })(params);\n },\n [has, userId, orgId, orgRole, orgPermissions, factorVerificationAge, sessionClaims],\n );\n\n const payload = resolveAuthState({\n authObject: {\n ...authObject,\n getToken,\n signOut,\n has: derivedHas,\n },\n options: {\n treatPendingAsSignedOut,\n },\n });\n\n if (!payload) {\n return errorThrower.throw(invalidStateError);\n }\n\n return payload;\n}\n","import { createContextAndHook } from '@clerk/shared/react';\nimport type {\n ActClaim,\n JwtPayload,\n OrganizationCustomPermissionKey,\n OrganizationCustomRoleKey,\n SessionStatusClaim,\n} from '@clerk/shared/types';\n\nexport type AuthContextValue = {\n userId: string | null | undefined;\n sessionId: string | null | undefined;\n sessionStatus: SessionStatusClaim | null | undefined;\n sessionClaims: JwtPayload | null | undefined;\n actor: ActClaim | null | undefined;\n orgId: string | null | undefined;\n orgRole: OrganizationCustomRoleKey | null | undefined;\n orgSlug: string | null | undefined;\n orgPermissions: OrganizationCustomPermissionKey[] | null | undefined;\n factorVerificationAge: [number, number] | null;\n};\n\nexport const [AuthContext, useAuthContext] = createContextAndHook<AuthContextValue>('AuthContext');\n","export const noClerkProviderError = 'You must wrap your application in a <ClerkProvider> component.';\n\nexport const multipleClerkProvidersError =\n \"You've added multiple <ClerkProvider> components in your React component tree. Wrap your components in a single <ClerkProvider>.\";\n\nexport const multipleChildrenInButtonComponent = (name: string) =>\n `You've passed multiple children components to <${name}/>. You can only pass a single child component or text.`;\n\nexport const invalidStateError =\n 'Invalid state. Feel free to submit a bug or reach out to support here: https://clerk.com/support';\n\nexport const unsupportedNonBrowserDomainOrProxyUrlFunction =\n 'Unsupported usage of isSatellite, domain or proxyUrl. The usage of isSatellite, domain or proxyUrl as function is not supported in non-browser environments.';\n\nexport const userProfilePageRenderedError =\n '<UserProfile.Page /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.';\nexport const userProfileLinkRenderedError =\n '<UserProfile.Link /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.';\n\nexport const organizationProfilePageRenderedError =\n '<OrganizationProfile.Page /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.';\nexport const organizationProfileLinkRenderedError =\n '<OrganizationProfile.Link /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.';\n\nexport const customPagesIgnoredComponent = (componentName: string) =>\n `<${componentName} /> can only accept <${componentName}.Page /> and <${componentName}.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`;\n\nexport const customPageWrongProps = (componentName: string) =>\n `Missing props. <${componentName}.Page /> component requires the following props: url, label, labelIcon, alongside with children to be rendered inside the page.`;\n\nexport const customLinkWrongProps = (componentName: string) =>\n `Missing props. <${componentName}.Link /> component requires the following props: url, label and labelIcon.`;\n\nexport const useAuthHasRequiresRoleOrPermission =\n 'Missing parameters. `has` from `useAuth` requires a permission or role key to be passed. Example usage: `has({permission: \"org:posts:edit\"`';\n\nexport const noPathProvidedError = (componentName: string) =>\n `The <${componentName}/> component uses path-based routing by default unless a different routing strategy is provided using the \\`routing\\` prop. When path-based routing is used, you need to provide the path where the component is mounted on by using the \\`path\\` prop. Example: <${componentName} path={'/my-path'} />`;\n\nexport const incompatibleRoutingWithPathProvidedError = (componentName: string) =>\n `The \\`path\\` prop will only be respected when the Clerk component uses path-based routing. To resolve this error, pass \\`routing='path'\\` to the <${componentName}/> component, or drop the \\`path\\` prop to switch to hash-based routing. For more details please refer to our docs: https://clerk.com/docs`;\n\nexport const userButtonIgnoredComponent = `<UserButton /> can only accept <UserButton.UserProfilePage />, <UserButton.UserProfileLink /> and <UserButton.MenuItems /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`;\n\nexport const customMenuItemsIgnoredComponent =\n '<UserButton.MenuItems /> component can only accept <UserButton.Action /> and <UserButton.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.';\n\nexport const userButtonMenuItemsRenderedError =\n '<UserButton.MenuItems /> component needs to be a direct child of `<UserButton />`.';\n\nexport const userButtonMenuActionRenderedError =\n '<UserButton.Action /> component needs to be a direct child of `<UserButton.MenuItems />`.';\n\nexport const userButtonMenuLinkRenderedError =\n '<UserButton.Link /> component needs to be a direct child of `<UserButton.MenuItems />`.';\n\nexport const userButtonMenuItemLinkWrongProps =\n 'Missing props. <UserButton.Link /> component requires the following props: href, label and labelIcon.';\n\nexport const userButtonMenuItemsActionWrongsProps =\n 'Missing props. <UserButton.Action /> component requires the following props: label.';\n","import type { IsomorphicClerk } from '../isomorphicClerk';\n\n/**\n * @internal\n */\nconst clerkLoaded = (isomorphicClerk: IsomorphicClerk) => {\n return new Promise<void>(resolve => {\n const handler = (status: string) => {\n if (['ready', 'degraded'].includes(status)) {\n resolve();\n isomorphicClerk.off('status', handler);\n }\n };\n\n // Register the event listener\n isomorphicClerk.on('status', handler, { notify: true });\n });\n};\n\n/**\n * @internal\n */\nexport const createGetToken = (isomorphicClerk: IsomorphicClerk) => {\n return async (options: any) => {\n await clerkLoaded(isomorphicClerk);\n if (!isomorphicClerk.session) {\n return null;\n }\n return isomorphicClerk.session.getToken(options);\n };\n};\n\n/**\n * @internal\n */\nexport const createSignOut = (isomorphicClerk: IsomorphicClerk) => {\n return async (...args: any) => {\n await clerkLoaded(isomorphicClerk);\n return isomorphicClerk.signOut(...args);\n };\n};\n","import type {\n CreateEmailLinkFlowReturn,\n EmailAddressResource,\n SignInResource,\n SignInStartEmailLinkFlowParams,\n SignUpResource,\n StartEmailLinkFlowParams,\n} from '@clerk/shared/types';\nimport React from 'react';\n\ntype EmailLinkable = SignUpResource | EmailAddressResource | SignInResource;\ntype UseEmailLinkSignInReturn = CreateEmailLinkFlowReturn<SignInStartEmailLinkFlowParams, SignInResource>;\ntype UseEmailLinkSignUpReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, SignUpResource>;\ntype UseEmailLinkEmailAddressReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, EmailAddressResource>;\n\nfunction useEmailLink(resource: SignInResource): UseEmailLinkSignInReturn;\nfunction useEmailLink(resource: SignUpResource): UseEmailLinkSignUpReturn;\nfunction useEmailLink(resource: EmailAddressResource): UseEmailLinkEmailAddressReturn;\nfunction useEmailLink(\n resource: EmailLinkable,\n): UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn {\n const { startEmailLinkFlow, cancelEmailLinkFlow } = React.useMemo(() => resource.createEmailLinkFlow(), [resource]);\n\n React.useEffect(() => {\n return cancelEmailLinkFlow;\n }, []);\n\n return {\n startEmailLinkFlow,\n cancelEmailLinkFlow,\n } as UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn;\n}\n\nexport { useEmailLink };\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { SignInSignalValue, SignUpSignalValue } from '@clerk/shared/types';\nimport { useCallback, useSyncExternalStore } from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\nfunction useClerkSignal(signal: 'signIn'): SignInSignalValue;\nfunction useClerkSignal(signal: 'signUp'): SignUpSignalValue;\nfunction useClerkSignal(signal: 'signIn' | 'signUp'): SignInSignalValue | SignUpSignalValue {\n useAssertWrappedByClerkProvider('useClerkSignal');\n\n const clerk = useIsomorphicClerkContext();\n\n switch (signal) {\n case 'signIn':\n clerk.telemetry?.record(eventMethodCalled('useSignIn', { apiVersion: '2025-11' }));\n break;\n case 'signUp':\n clerk.telemetry?.record(eventMethodCalled('useSignUp', { apiVersion: '2025-11' }));\n break;\n default:\n break;\n }\n\n const subscribe = useCallback(\n (callback: () => void) => {\n if (!clerk.loaded) {\n return () => {};\n }\n\n return clerk.__internal_state.__internal_effect(() => {\n switch (signal) {\n case 'signIn':\n clerk.__internal_state.signInSignal();\n break;\n case 'signUp':\n clerk.__internal_state.signUpSignal();\n break;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n callback();\n });\n },\n [clerk, clerk.loaded, clerk.__internal_state],\n );\n const getSnapshot = useCallback(() => {\n switch (signal) {\n case 'signIn':\n return clerk.__internal_state.signInSignal() as SignInSignalValue;\n case 'signUp':\n return clerk.__internal_state.signUpSignal() as SignUpSignalValue;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n }, [clerk.__internal_state]);\n\n const value = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return value;\n}\n\n/**\n * This hook allows you to access the Signal-based `SignIn` resource.\n *\n * @example\n * import { useSignInSignal } from \"@clerk/react/experimental\";\n *\n * function SignInForm() {\n * const { signIn, errors, fetchStatus } = useSignInSignal();\n * //\n * }\n *\n * @experimental This experimental API is subject to change.\n */\nexport function useSignIn() {\n return useClerkSignal('signIn');\n}\n\n/**\n * This hook allows you to access the Signal-based `SignUp` resource.\n *\n * @example\n * import { useSignUpSignal } from \"@clerk/react/experimental\";\n *\n * function SignUpForm() {\n * const { signUp, errors, fetchStatus } = useSignUpSignal();\n * //\n * }\n *\n * @experimental This experimental API is subject to change.\n */\nexport function useSignUp() {\n return useClerkSignal('signUp');\n}\n","export { useAuth } from './useAuth';\nexport { useEmailLink } from './useEmailLink';\nexport { useSignIn, useSignUp } from './useClerkSignal';\nexport {\n useClerk,\n useOrganization,\n useOrganizationList,\n useSessionList,\n useUser,\n useSession,\n useReverification,\n __experimental_useCheckout,\n __experimental_CheckoutProvider,\n __experimental_usePaymentElement,\n __experimental_PaymentElementProvider,\n __experimental_PaymentElement,\n} from '@clerk/shared/react';\n","import type { LoadedClerk, Without } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\n\nexport const withClerk = <P extends { clerk: LoadedClerk; component?: string }>(\n Component: React.ComponentType<P>,\n displayNameOrOptions?: string | { component: string; renderWhileLoading?: boolean },\n) => {\n const passedDisplayedName =\n typeof displayNameOrOptions === 'string' ? displayNameOrOptions : displayNameOrOptions?.component;\n const displayName = passedDisplayedName || Component.displayName || Component.name || 'Component';\n Component.displayName = displayName;\n\n const options = typeof displayNameOrOptions === 'string' ? undefined : displayNameOrOptions;\n\n const HOC = (props: Without<P, 'clerk'>) => {\n useAssertWrappedByClerkProvider(displayName || 'withClerk');\n\n const clerk = useIsomorphicClerkContext();\n\n if (!clerk.loaded && !options?.renderWhileLoading) {\n return null;\n }\n\n return (\n <Component\n {...(props as P)}\n component={displayName}\n clerk={clerk}\n />\n );\n };\n HOC.displayName = `withClerk(${displayName})`;\n return HOC;\n};\n"],"mappings":"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","names":["eventMethodCalled","useCallback","eventMethodCalled","useCallback","React","React"]}
1
+ {"version":3,"sources":["../src/hooks/useAuth.ts","../src/contexts/AuthContext.ts","../src/errors/messages.ts","../src/hooks/utils.ts","../src/hooks/useEmailLink.ts","../src/hooks/useClerkSignal.ts","../src/hooks/index.ts","../src/components/withClerk.tsx"],"sourcesContent":["import { createCheckAuthorization, resolveAuthState } from '@clerk/shared/authorization';\nimport { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type {\n CheckAuthorizationWithCustomPermissions,\n GetToken,\n JwtPayload,\n PendingSessionOptions,\n SignOut,\n UseAuthReturn,\n} from '@clerk/shared/types';\nimport { useCallback } from 'react';\n\nimport { useAuthContext } from '../contexts/AuthContext';\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { errorThrower } from '../errors/errorThrower';\nimport { invalidStateError } from '../errors/messages';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\nimport { createGetToken, createSignOut } from './utils';\n\n/**\n * @inline\n */\ntype UseAuthOptions = Record<string, any> | PendingSessionOptions | undefined | null;\n\n/**\n * The `useAuth()` hook provides access to the current user's authentication state and methods to manage the active session.\n *\n * > [!NOTE]\n * > To access auth data server-side, see the [`Auth` object reference doc](https://clerk.com/docs/reference/backend/types/auth-object).\n *\n * <If sdk=\"nextjs\">\n * By default, Next.js opts all routes into static rendering. If you need to opt a route or routes into dynamic rendering because you need to access the authentication data at request time, you can create a boundary by passing the `dynamic` prop to `<ClerkProvider>`. See the [guide on rendering modes](https://clerk.com/docs/guides/development/rendering-modes) for more information, including code examples.\n * </If>\n *\n * @unionReturnHeadings\n * [\"Initialization\", \"Signed out\", \"Signed in (no active organization)\", \"Signed in (with active organization)\"]\n *\n * @param [initialAuthStateOrOptions] - An object containing the initial authentication state or options for the `useAuth()` hook. If not provided, the hook will attempt to derive the state from the context. `treatPendingAsSignedOut` is a boolean that indicates whether pending sessions are considered as signed out or not. Defaults to `true`.\n *\n * @function\n *\n * @example\n *\n * The following example demonstrates how to use the `useAuth()` hook to access the current auth state, like whether the user is signed in or not. It also includes a basic example for using the `getToken()` method to retrieve a session token for fetching data from an external resource.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/ExternalDataPage.tsx' }}\n * import { useAuth } from '@clerk/react'\n *\n * export default function ExternalDataPage() {\n * const { userId, sessionId, getToken, isLoaded, isSignedIn } = useAuth()\n *\n * const fetchExternalData = async () => {\n * const token = await getToken()\n *\n * // Fetch data from an external API\n * const response = await fetch('https://api.example.com/data', {\n * headers: {\n * Authorization: `Bearer ${token}`,\n * },\n * })\n *\n * return response.json()\n * }\n *\n * if (!isLoaded) {\n * return <div>Loading...</div>\n * }\n *\n * if (!isSignedIn) {\n * return <div>Sign in to view this page</div>\n * }\n *\n * return (\n * <div>\n * <p>\n * Hello, {userId}! Your current active session is {sessionId}.\n * </p>\n * <button onClick={fetchExternalData}>Fetch Data</button>\n * </div>\n * )\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-auth.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n */\nexport const useAuth = (initialAuthStateOrOptions: UseAuthOptions = {}): UseAuthReturn => {\n useAssertWrappedByClerkProvider('useAuth');\n\n const { treatPendingAsSignedOut, ...rest } = initialAuthStateOrOptions ?? {};\n const initialAuthState = rest as any;\n\n const authContextFromHook = useAuthContext();\n let authContext = authContextFromHook;\n\n if (authContext.sessionId === undefined && authContext.userId === undefined) {\n authContext = initialAuthState != null ? initialAuthState : {};\n }\n\n const isomorphicClerk = useIsomorphicClerkContext();\n const getToken: GetToken = useCallback(createGetToken(isomorphicClerk), [isomorphicClerk]);\n const signOut: SignOut = useCallback(createSignOut(isomorphicClerk), [isomorphicClerk]);\n\n isomorphicClerk.telemetry?.record(eventMethodCalled('useAuth', { treatPendingAsSignedOut }));\n\n return useDerivedAuth(\n {\n ...authContext,\n getToken,\n signOut,\n },\n {\n treatPendingAsSignedOut,\n },\n );\n};\n\n/**\n * A hook that derives and returns authentication state and utility functions based on the provided auth object.\n *\n * @param authObject - An object containing authentication-related properties and functions.\n *\n * @returns A derived authentication state with helper methods. If the authentication state is invalid, an error is thrown.\n *\n * @remarks\n * This hook inspects session, user, and organization information to determine the current authentication state.\n * It returns an object that includes various properties such as whether the state is loaded, if a user is signed in,\n * session and user identifiers, Organization Roles, and a `has` function for authorization checks.\n * Additionally, it provides `signOut` and `getToken` functions if applicable.\n *\n * @example\n * ```tsx\n * const {\n * isLoaded,\n * isSignedIn,\n * userId,\n * orgId,\n * has,\n * signOut,\n * getToken\n * } = useDerivedAuth(authObject);\n * ```\n */\nexport function useDerivedAuth(\n authObject: any,\n { treatPendingAsSignedOut = true }: PendingSessionOptions = {},\n): UseAuthReturn {\n const { userId, orgId, orgRole, has, signOut, getToken, orgPermissions, factorVerificationAge, sessionClaims } =\n authObject ?? {};\n\n const derivedHas = useCallback(\n (params: Parameters<CheckAuthorizationWithCustomPermissions>[0]) => {\n if (has) {\n return has(params);\n }\n return createCheckAuthorization({\n userId,\n orgId,\n orgRole,\n orgPermissions,\n factorVerificationAge,\n features: ((sessionClaims as JwtPayload | undefined)?.fea as string) || '',\n plans: ((sessionClaims as JwtPayload | undefined)?.pla as string) || '',\n })(params);\n },\n [has, userId, orgId, orgRole, orgPermissions, factorVerificationAge, sessionClaims],\n );\n\n const payload = resolveAuthState({\n authObject: {\n ...authObject,\n getToken,\n signOut,\n has: derivedHas,\n },\n options: {\n treatPendingAsSignedOut,\n },\n });\n\n if (!payload) {\n return errorThrower.throw(invalidStateError);\n }\n\n return payload;\n}\n","import { createContextAndHook } from '@clerk/shared/react';\nimport type {\n ActClaim,\n JwtPayload,\n OrganizationCustomPermissionKey,\n OrganizationCustomRoleKey,\n SessionStatusClaim,\n} from '@clerk/shared/types';\n\nexport type AuthContextValue = {\n userId: string | null | undefined;\n sessionId: string | null | undefined;\n sessionStatus: SessionStatusClaim | null | undefined;\n sessionClaims: JwtPayload | null | undefined;\n actor: ActClaim | null | undefined;\n orgId: string | null | undefined;\n orgRole: OrganizationCustomRoleKey | null | undefined;\n orgSlug: string | null | undefined;\n orgPermissions: OrganizationCustomPermissionKey[] | null | undefined;\n factorVerificationAge: [number, number] | null;\n};\n\nexport const [AuthContext, useAuthContext] = createContextAndHook<AuthContextValue>('AuthContext');\n","export const noClerkProviderError = 'You must wrap your application in a <ClerkProvider> component.';\n\nexport const multipleClerkProvidersError =\n \"You've added multiple <ClerkProvider> components in your React component tree. Wrap your components in a single <ClerkProvider>.\";\n\nexport const multipleChildrenInButtonComponent = (name: string) =>\n `You've passed multiple children components to <${name}/>. You can only pass a single child component or text.`;\n\nexport const invalidStateError =\n 'Invalid state. Feel free to submit a bug or reach out to support here: https://clerk.com/support';\n\nexport const unsupportedNonBrowserDomainOrProxyUrlFunction =\n 'Unsupported usage of isSatellite, domain or proxyUrl. The usage of isSatellite, domain or proxyUrl as function is not supported in non-browser environments.';\n\nexport const userProfilePageRenderedError =\n '<UserProfile.Page /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.';\nexport const userProfileLinkRenderedError =\n '<UserProfile.Link /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.';\n\nexport const organizationProfilePageRenderedError =\n '<OrganizationProfile.Page /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.';\nexport const organizationProfileLinkRenderedError =\n '<OrganizationProfile.Link /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.';\n\nexport const customPagesIgnoredComponent = (componentName: string) =>\n `<${componentName} /> can only accept <${componentName}.Page /> and <${componentName}.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`;\n\nexport const customPageWrongProps = (componentName: string) =>\n `Missing props. <${componentName}.Page /> component requires the following props: url, label, labelIcon, alongside with children to be rendered inside the page.`;\n\nexport const customLinkWrongProps = (componentName: string) =>\n `Missing props. <${componentName}.Link /> component requires the following props: url, label and labelIcon.`;\n\nexport const useAuthHasRequiresRoleOrPermission =\n 'Missing parameters. `has` from `useAuth` requires a permission or role key to be passed. Example usage: `has({permission: \"org:posts:edit\"`';\n\nexport const noPathProvidedError = (componentName: string) =>\n `The <${componentName}/> component uses path-based routing by default unless a different routing strategy is provided using the \\`routing\\` prop. When path-based routing is used, you need to provide the path where the component is mounted on by using the \\`path\\` prop. Example: <${componentName} path={'/my-path'} />`;\n\nexport const incompatibleRoutingWithPathProvidedError = (componentName: string) =>\n `The \\`path\\` prop will only be respected when the Clerk component uses path-based routing. To resolve this error, pass \\`routing='path'\\` to the <${componentName}/> component, or drop the \\`path\\` prop to switch to hash-based routing. For more details please refer to our docs: https://clerk.com/docs`;\n\nexport const userButtonIgnoredComponent = `<UserButton /> can only accept <UserButton.UserProfilePage />, <UserButton.UserProfileLink /> and <UserButton.MenuItems /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`;\n\nexport const customMenuItemsIgnoredComponent =\n '<UserButton.MenuItems /> component can only accept <UserButton.Action /> and <UserButton.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.';\n\nexport const userButtonMenuItemsRenderedError =\n '<UserButton.MenuItems /> component needs to be a direct child of `<UserButton />`.';\n\nexport const userButtonMenuActionRenderedError =\n '<UserButton.Action /> component needs to be a direct child of `<UserButton.MenuItems />`.';\n\nexport const userButtonMenuLinkRenderedError =\n '<UserButton.Link /> component needs to be a direct child of `<UserButton.MenuItems />`.';\n\nexport const userButtonMenuItemLinkWrongProps =\n 'Missing props. <UserButton.Link /> component requires the following props: href, label and labelIcon.';\n\nexport const userButtonMenuItemsActionWrongsProps =\n 'Missing props. <UserButton.Action /> component requires the following props: label.';\n","import type { IsomorphicClerk } from '../isomorphicClerk';\n\n/**\n * @internal\n */\nconst clerkLoaded = (isomorphicClerk: IsomorphicClerk) => {\n return new Promise<void>(resolve => {\n const handler = (status: string) => {\n if (['ready', 'degraded'].includes(status)) {\n resolve();\n isomorphicClerk.off('status', handler);\n }\n };\n\n // Register the event listener\n isomorphicClerk.on('status', handler, { notify: true });\n });\n};\n\n/**\n * @internal\n */\nexport const createGetToken = (isomorphicClerk: IsomorphicClerk) => {\n return async (options: any) => {\n await clerkLoaded(isomorphicClerk);\n if (!isomorphicClerk.session) {\n return null;\n }\n return isomorphicClerk.session.getToken(options);\n };\n};\n\n/**\n * @internal\n */\nexport const createSignOut = (isomorphicClerk: IsomorphicClerk) => {\n return async (...args: any) => {\n await clerkLoaded(isomorphicClerk);\n return isomorphicClerk.signOut(...args);\n };\n};\n","import type {\n CreateEmailLinkFlowReturn,\n EmailAddressResource,\n SignInResource,\n SignInStartEmailLinkFlowParams,\n SignUpResource,\n StartEmailLinkFlowParams,\n} from '@clerk/shared/types';\nimport React from 'react';\n\ntype EmailLinkable = SignUpResource | EmailAddressResource | SignInResource;\ntype UseEmailLinkSignInReturn = CreateEmailLinkFlowReturn<SignInStartEmailLinkFlowParams, SignInResource>;\ntype UseEmailLinkSignUpReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, SignUpResource>;\ntype UseEmailLinkEmailAddressReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, EmailAddressResource>;\n\nfunction useEmailLink(resource: SignInResource): UseEmailLinkSignInReturn;\nfunction useEmailLink(resource: SignUpResource): UseEmailLinkSignUpReturn;\nfunction useEmailLink(resource: EmailAddressResource): UseEmailLinkEmailAddressReturn;\nfunction useEmailLink(\n resource: EmailLinkable,\n): UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn {\n const { startEmailLinkFlow, cancelEmailLinkFlow } = React.useMemo(() => resource.createEmailLinkFlow(), [resource]);\n\n React.useEffect(() => {\n return cancelEmailLinkFlow;\n }, []);\n\n return {\n startEmailLinkFlow,\n cancelEmailLinkFlow,\n } as UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn;\n}\n\nexport { useEmailLink };\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { SignInSignalValue, SignUpSignalValue } from '@clerk/shared/types';\nimport { useCallback, useSyncExternalStore } from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\nfunction useClerkSignal(signal: 'signIn'): SignInSignalValue;\nfunction useClerkSignal(signal: 'signUp'): SignUpSignalValue;\nfunction useClerkSignal(signal: 'signIn' | 'signUp'): SignInSignalValue | SignUpSignalValue {\n useAssertWrappedByClerkProvider('useClerkSignal');\n\n const clerk = useIsomorphicClerkContext();\n\n switch (signal) {\n case 'signIn':\n clerk.telemetry?.record(eventMethodCalled('useSignIn', { apiVersion: '2025-11' }));\n break;\n case 'signUp':\n clerk.telemetry?.record(eventMethodCalled('useSignUp', { apiVersion: '2025-11' }));\n break;\n default:\n break;\n }\n\n const subscribe = useCallback(\n (callback: () => void) => {\n if (!clerk.loaded) {\n return () => {};\n }\n\n return clerk.__internal_state.__internal_effect(() => {\n switch (signal) {\n case 'signIn':\n clerk.__internal_state.signInSignal();\n break;\n case 'signUp':\n clerk.__internal_state.signUpSignal();\n break;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n callback();\n });\n },\n [clerk, clerk.loaded, clerk.__internal_state],\n );\n const getSnapshot = useCallback(() => {\n switch (signal) {\n case 'signIn':\n return clerk.__internal_state.signInSignal() as SignInSignalValue;\n case 'signUp':\n return clerk.__internal_state.signUpSignal() as SignUpSignalValue;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n }, [clerk.__internal_state]);\n\n const value = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return value;\n}\n\n/**\n * This hook allows you to access the Signal-based `SignIn` resource.\n *\n * @example\n * import { useSignInSignal } from \"@clerk/react/experimental\";\n *\n * function SignInForm() {\n * const { signIn, errors, fetchStatus } = useSignInSignal();\n * //\n * }\n *\n * @experimental This experimental API is subject to change.\n */\nexport function useSignIn() {\n return useClerkSignal('signIn');\n}\n\n/**\n * This hook allows you to access the Signal-based `SignUp` resource.\n *\n * @example\n * import { useSignUpSignal } from \"@clerk/react/experimental\";\n *\n * function SignUpForm() {\n * const { signUp, errors, fetchStatus } = useSignUpSignal();\n * //\n * }\n *\n * @experimental This experimental API is subject to change.\n */\nexport function useSignUp() {\n return useClerkSignal('signUp');\n}\n","export { useAuth } from './useAuth';\nexport { useEmailLink } from './useEmailLink';\nexport { useSignIn, useSignUp } from './useClerkSignal';\nexport {\n useClerk,\n useOrganization,\n useOrganizationList,\n useSessionList,\n useUser,\n useSession,\n useReverification,\n __experimental_useCheckout,\n __experimental_CheckoutProvider,\n __experimental_usePaymentElement,\n __experimental_PaymentElementProvider,\n __experimental_PaymentElement,\n} from '@clerk/shared/react';\n","import { usePortalRoot } from '@clerk/shared/react';\nimport type { LoadedClerk, Without } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\n\nexport const withClerk = <P extends { clerk: LoadedClerk; component?: string }>(\n Component: React.ComponentType<P>,\n displayNameOrOptions?: string | { component: string; renderWhileLoading?: boolean },\n) => {\n const passedDisplayedName =\n typeof displayNameOrOptions === 'string' ? displayNameOrOptions : displayNameOrOptions?.component;\n const displayName = passedDisplayedName || Component.displayName || Component.name || 'Component';\n Component.displayName = displayName;\n\n const options = typeof displayNameOrOptions === 'string' ? undefined : displayNameOrOptions;\n\n const HOC = (props: Without<P, 'clerk'>) => {\n useAssertWrappedByClerkProvider(displayName || 'withClerk');\n\n const clerk = useIsomorphicClerkContext();\n const getContainer = usePortalRoot();\n\n if (!clerk.loaded && !options?.renderWhileLoading) {\n return null;\n }\n\n return (\n <Component\n getContainer={getContainer}\n {...(props as P)}\n component={displayName}\n clerk={clerk}\n />\n );\n };\n HOC.displayName = `withClerk(${displayName})`;\n return HOC;\n};\n"],"mappings":";;;;;;;AAAA,SAAS,0BAA0B,wBAAwB;AAC3D,SAAS,yBAAyB;AASlC,SAAS,mBAAmB;;;ACV5B,SAAS,4BAA4B;AAsB9B,IAAM,CAAC,aAAa,cAAc,IAAI,qBAAuC,aAAa;;;ACpB1F,IAAM,8BACX;AAEK,IAAM,oCAAoC,CAAC,SAChD,kDAAkD,IAAI;AAEjD,IAAM,oBACX;AAEK,IAAM,gDACX;AAEK,IAAM,+BACX;AACK,IAAM,+BACX;AAEK,IAAM,uCACX;AACK,IAAM,uCACX;AAEK,IAAM,8BAA8B,CAAC,kBAC1C,IAAI,aAAa,wBAAwB,aAAa,iBAAiB,aAAa;AAE/E,IAAM,uBAAuB,CAAC,kBACnC,mBAAmB,aAAa;AAE3B,IAAM,uBAAuB,CAAC,kBACnC,mBAAmB,aAAa;AAK3B,IAAM,sBAAsB,CAAC,kBAClC,QAAQ,aAAa,qQAAqQ,aAAa;AAElS,IAAM,2CAA2C,CAAC,kBACvD,qJAAqJ,aAAa;AAE7J,IAAM,6BAA6B;AAEnC,IAAM,kCACX;AAEK,IAAM,mCACX;AAEK,IAAM,oCACX;AAEK,IAAM,kCACX;AAEK,IAAM,mCACX;AAEK,IAAM,uCACX;;;ACvDF,IAAM,cAAc,CAAC,oBAAqC;AACxD,SAAO,IAAI,QAAc,aAAW;AAClC,UAAM,UAAU,CAAC,WAAmB;AAClC,UAAI,CAAC,SAAS,UAAU,EAAE,SAAS,MAAM,GAAG;AAC1C,gBAAQ;AACR,wBAAgB,IAAI,UAAU,OAAO;AAAA,MACvC;AAAA,IACF;AAGA,oBAAgB,GAAG,UAAU,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EACxD,CAAC;AACH;AAKO,IAAM,iBAAiB,CAAC,oBAAqC;AAClE,SAAO,OAAO,YAAiB;AAC7B,UAAM,YAAY,eAAe;AACjC,QAAI,CAAC,gBAAgB,SAAS;AAC5B,aAAO;AAAA,IACT;AACA,WAAO,gBAAgB,QAAQ,SAAS,OAAO;AAAA,EACjD;AACF;AAKO,IAAM,gBAAgB,CAAC,oBAAqC;AACjE,SAAO,UAAU,SAAc;AAC7B,UAAM,YAAY,eAAe;AACjC,WAAO,gBAAgB,QAAQ,GAAG,IAAI;AAAA,EACxC;AACF;;;AHsDO,IAAM,UAAU,CAAC,4BAA4C,CAAC,MAAqB;AA9F1F;AA+FE,kCAAgC,SAAS;AAEzC,QAAM,EAAE,yBAAyB,GAAG,KAAK,IAAI,gEAA6B,CAAC;AAC3E,QAAM,mBAAmB;AAEzB,QAAM,sBAAsB,eAAe;AAC3C,MAAI,cAAc;AAElB,MAAI,YAAY,cAAc,UAAa,YAAY,WAAW,QAAW;AAC3E,kBAAc,oBAAoB,OAAO,mBAAmB,CAAC;AAAA,EAC/D;AAEA,QAAM,kBAAkB,0BAA0B;AAClD,QAAM,WAAqB,YAAY,eAAe,eAAe,GAAG,CAAC,eAAe,CAAC;AACzF,QAAM,UAAmB,YAAY,cAAc,eAAe,GAAG,CAAC,eAAe,CAAC;AAEtF,wBAAgB,cAAhB,mBAA2B,OAAO,kBAAkB,WAAW,EAAE,wBAAwB,CAAC;AAE1F,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,IACF;AAAA,EACF;AACF;AA4BO,SAAS,eACd,YACA,EAAE,0BAA0B,KAAK,IAA2B,CAAC,GAC9C;AACf,QAAM,EAAE,QAAQ,OAAO,SAAS,KAAK,SAAS,UAAU,gBAAgB,uBAAuB,cAAc,IAC3G,kCAAc,CAAC;AAEjB,QAAM,aAAa;AAAA,IACjB,CAAC,WAAmE;AAClE,UAAI,KAAK;AACP,eAAO,IAAI,MAAM;AAAA,MACnB;AACA,aAAO,yBAAyB;AAAA,QAC9B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAY,+CAA0C,QAAkB;AAAA,QACxE,QAAS,+CAA0C,QAAkB;AAAA,MACvE,CAAC,EAAE,MAAM;AAAA,IACX;AAAA,IACA,CAAC,KAAK,QAAQ,OAAO,SAAS,gBAAgB,uBAAuB,aAAa;AAAA,EACpF;AAEA,QAAM,UAAU,iBAAiB;AAAA,IAC/B,YAAY;AAAA,MACV,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,CAAC,SAAS;AACZ,WAAO,aAAa,MAAM,iBAAiB;AAAA,EAC7C;AAEA,SAAO;AACT;;;AIzLA,OAAO,WAAW;AAUlB,SAAS,aACP,UACsF;AACtF,QAAM,EAAE,oBAAoB,oBAAoB,IAAI,MAAM,QAAQ,MAAM,SAAS,oBAAoB,GAAG,CAAC,QAAQ,CAAC;AAElH,QAAM,UAAU,MAAM;AACpB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AC/BA,SAAS,qBAAAA,0BAAyB;AAElC,SAAS,eAAAC,cAAa,4BAA4B;AAOlD,SAAS,eAAe,QAAoE;AAT5F;AAUE,kCAAgC,gBAAgB;AAEhD,QAAM,QAAQ,0BAA0B;AAExC,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,kBAAM,cAAN,mBAAiB,OAAOC,mBAAkB,aAAa,EAAE,YAAY,UAAU,CAAC;AAChF;AAAA,IACF,KAAK;AACH,kBAAM,cAAN,mBAAiB,OAAOA,mBAAkB,aAAa,EAAE,YAAY,UAAU,CAAC;AAChF;AAAA,IACF;AACE;AAAA,EACJ;AAEA,QAAM,YAAYC;AAAA,IAChB,CAAC,aAAyB;AACxB,UAAI,CAAC,MAAM,QAAQ;AACjB,eAAO,MAAM;AAAA,QAAC;AAAA,MAChB;AAEA,aAAO,MAAM,iBAAiB,kBAAkB,MAAM;AACpD,gBAAQ,QAAQ;AAAA,UACd,KAAK;AACH,kBAAM,iBAAiB,aAAa;AACpC;AAAA,UACF,KAAK;AACH,kBAAM,iBAAiB,aAAa;AACpC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,mBAAmB,MAAM,EAAE;AAAA,QAC/C;AACA,iBAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO,MAAM,QAAQ,MAAM,gBAAgB;AAAA,EAC9C;AACA,QAAM,cAAcA,aAAY,MAAM;AACpC,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,eAAO,MAAM,iBAAiB,aAAa;AAAA,MAC7C,KAAK;AACH,eAAO,MAAM,iBAAiB,aAAa;AAAA,MAC7C;AACE,cAAM,IAAI,MAAM,mBAAmB,MAAM,EAAE;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,MAAM,gBAAgB,CAAC;AAE3B,QAAM,QAAQ,qBAAqB,WAAW,aAAa,WAAW;AAEtE,SAAO;AACT;AAeO,SAAS,YAAY;AAC1B,SAAO,eAAe,QAAQ;AAChC;AAeO,SAAS,YAAY;AAC1B,SAAO,eAAe,QAAQ;AAChC;;;AC5FA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;AChBP,SAAS,qBAAqB;AAE9B,OAAOC,YAAW;AAKX,IAAM,YAAY,CACvB,WACA,yBACG;AACH,QAAM,sBACJ,OAAO,yBAAyB,WAAW,uBAAuB,6DAAsB;AAC1F,QAAM,cAAc,uBAAuB,UAAU,eAAe,UAAU,QAAQ;AACtF,YAAU,cAAc;AAExB,QAAM,UAAU,OAAO,yBAAyB,WAAW,SAAY;AAEvE,QAAM,MAAM,CAAC,UAA+B;AAC1C,oCAAgC,eAAe,WAAW;AAE1D,UAAM,QAAQ,0BAA0B;AACxC,UAAM,eAAe,cAAc;AAEnC,QAAI,CAAC,MAAM,UAAU,EAAC,mCAAS,qBAAoB;AACjD,aAAO;AAAA,IACT;AAEA,WACE,gBAAAC,OAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAI;AAAA,QACL,WAAW;AAAA,QACX;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,cAAc,aAAa,WAAW;AAC1C,SAAO;AACT;","names":["eventMethodCalled","useCallback","eventMethodCalled","useCallback","React","React"]}
@@ -15,7 +15,7 @@ import {
15
15
  userProfileLinkRenderedError,
16
16
  userProfilePageRenderedError,
17
17
  withClerk
18
- } from "./chunk-J32KHXBI.mjs";
18
+ } from "./chunk-FDDR7URL.mjs";
19
19
  import {
20
20
  errorThrower
21
21
  } from "./chunk-MB46WFKC.mjs";
@@ -1030,4 +1030,4 @@ export {
1030
1030
  TaskChooseOrganization,
1031
1031
  TaskResetPassword
1032
1032
  };
1033
- //# sourceMappingURL=chunk-YKGYOPLG.mjs.map
1033
+ //# sourceMappingURL=chunk-JPHCBAWH.mjs.map
@@ -31,24 +31,24 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var experimental_exports = {};
32
32
  __export(experimental_exports, {
33
33
  CheckoutButton: () => CheckoutButton,
34
- CheckoutProvider: () => import_react22.__experimental_CheckoutProvider,
35
- PaymentElement: () => import_react22.__experimental_PaymentElement,
36
- PaymentElementProvider: () => import_react22.__experimental_PaymentElementProvider,
34
+ CheckoutProvider: () => import_react23.__experimental_CheckoutProvider,
35
+ PaymentElement: () => import_react23.__experimental_PaymentElement,
36
+ PaymentElementProvider: () => import_react23.__experimental_PaymentElementProvider,
37
37
  PlanDetailsButton: () => PlanDetailsButton,
38
38
  SubscriptionDetailsButton: () => SubscriptionDetailsButton,
39
- useAPIKeys: () => import_react22.__experimental_useAPIKeys,
40
- useCheckout: () => import_react22.__experimental_useCheckout,
41
- usePaymentAttempts: () => import_react22.__experimental_usePaymentAttempts,
42
- usePaymentElement: () => import_react22.__experimental_usePaymentElement,
43
- usePaymentMethods: () => import_react22.__experimental_usePaymentMethods,
44
- usePlans: () => import_react22.__experimental_usePlans,
45
- useStatements: () => import_react22.__experimental_useStatements,
46
- useSubscription: () => import_react22.__experimental_useSubscription
39
+ useAPIKeys: () => import_react23.__experimental_useAPIKeys,
40
+ useCheckout: () => import_react23.__experimental_useCheckout,
41
+ usePaymentAttempts: () => import_react23.__experimental_usePaymentAttempts,
42
+ usePaymentElement: () => import_react23.__experimental_usePaymentElement,
43
+ usePaymentMethods: () => import_react23.__experimental_usePaymentMethods,
44
+ usePlans: () => import_react23.__experimental_usePlans,
45
+ useStatements: () => import_react23.__experimental_useStatements,
46
+ useSubscription: () => import_react23.__experimental_useSubscription
47
47
  });
48
48
  module.exports = __toCommonJS(experimental_exports);
49
49
 
50
50
  // src/components/CheckoutButton.tsx
51
- var import_react19 = __toESM(require("react"));
51
+ var import_react20 = __toESM(require("react"));
52
52
 
53
53
  // src/hooks/useAuth.ts
54
54
  var import_authorization = require("@clerk/shared/authorization");
@@ -242,11 +242,11 @@ var useCustomElementPortal = (elements) => {
242
242
 
243
243
  // src/utils/useCustomPages.tsx
244
244
  var import_utils4 = require("@clerk/shared/utils");
245
- var import_react17 = __toESM(require("react"));
245
+ var import_react18 = __toESM(require("react"));
246
246
 
247
247
  // src/components/uiComponents.tsx
248
248
  var import_utils2 = require("@clerk/shared/utils");
249
- var import_react15 = __toESM(require("react"));
249
+ var import_react16 = __toESM(require("react"));
250
250
 
251
251
  // src/utils/useWaitForComponentMount.ts
252
252
  var import_react11 = require("react");
@@ -389,7 +389,8 @@ var ClerkHostRenderer = class extends import_react13.default.PureComponent {
389
389
  };
390
390
 
391
391
  // src/components/withClerk.tsx
392
- var import_react14 = __toESM(require("react"));
392
+ var import_react14 = require("@clerk/shared/react");
393
+ var import_react15 = __toESM(require("react"));
393
394
  var withClerk = (Component, displayNameOrOptions) => {
394
395
  const passedDisplayedName = typeof displayNameOrOptions === "string" ? displayNameOrOptions : displayNameOrOptions == null ? void 0 : displayNameOrOptions.component;
395
396
  const displayName = passedDisplayedName || Component.displayName || Component.name || "Component";
@@ -398,12 +399,14 @@ var withClerk = (Component, displayNameOrOptions) => {
398
399
  const HOC = (props) => {
399
400
  useAssertWrappedByClerkProvider(displayName || "withClerk");
400
401
  const clerk = useIsomorphicClerkContext();
402
+ const getContainer = (0, import_react14.usePortalRoot)();
401
403
  if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) {
402
404
  return null;
403
405
  }
404
- return /* @__PURE__ */ import_react14.default.createElement(
406
+ return /* @__PURE__ */ import_react15.default.createElement(
405
407
  Component,
406
408
  {
409
+ getContainer,
407
410
  ...props,
408
411
  component: displayName,
409
412
  clerk
@@ -417,7 +420,7 @@ var withClerk = (Component, displayNameOrOptions) => {
417
420
  // src/components/uiComponents.tsx
418
421
  var CustomPortalsRenderer = (props) => {
419
422
  var _a, _b;
420
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, (_a = props == null ? void 0 : props.customPagesPortals) == null ? void 0 : _a.map((portal, index) => (0, import_react15.createElement)(portal, { key: index })), (_b = props == null ? void 0 : props.customMenuItemsPortals) == null ? void 0 : _b.map((portal, index) => (0, import_react15.createElement)(portal, { key: index })));
423
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, (_a = props == null ? void 0 : props.customPagesPortals) == null ? void 0 : _a.map((portal, index) => (0, import_react16.createElement)(portal, { key: index })), (_b = props == null ? void 0 : props.customMenuItemsPortals) == null ? void 0 : _b.map((portal, index) => (0, import_react16.createElement)(portal, { key: index })));
421
424
  };
422
425
  var SignIn = withClerk(
423
426
  ({ clerk, component, fallback, ...props }) => {
@@ -426,7 +429,7 @@ var SignIn = withClerk(
426
429
  const rendererRootProps = {
427
430
  ...shouldShowFallback && fallback && { style: { display: "none" } }
428
431
  };
429
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
432
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
430
433
  ClerkHostRenderer,
431
434
  {
432
435
  component,
@@ -447,7 +450,7 @@ var SignUp = withClerk(
447
450
  const rendererRootProps = {
448
451
  ...shouldShowFallback && fallback && { style: { display: "none" } }
449
452
  };
450
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
453
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
451
454
  ClerkHostRenderer,
452
455
  {
453
456
  component,
@@ -463,11 +466,11 @@ var SignUp = withClerk(
463
466
  );
464
467
  function UserProfilePage({ children }) {
465
468
  (0, import_utils2.logErrorInDevMode)(userProfilePageRenderedError);
466
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
469
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
467
470
  }
468
471
  function UserProfileLink({ children }) {
469
472
  (0, import_utils2.logErrorInDevMode)(userProfileLinkRenderedError);
470
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
473
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
471
474
  }
472
475
  var _UserProfile = withClerk(
473
476
  ({
@@ -482,7 +485,7 @@ var _UserProfile = withClerk(
482
485
  ...shouldShowFallback && fallback && { style: { display: "none" } }
483
486
  };
484
487
  const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children);
485
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, /* @__PURE__ */ import_react15.default.createElement(
488
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, /* @__PURE__ */ import_react16.default.createElement(
486
489
  ClerkHostRenderer,
487
490
  {
488
491
  component,
@@ -492,7 +495,7 @@ var _UserProfile = withClerk(
492
495
  props: { ...props, customPages },
493
496
  rootProps: rendererRootProps
494
497
  },
495
- /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
498
+ /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
496
499
  ));
497
500
  },
498
501
  { component: "UserProfile", renderWhileLoading: true }
@@ -501,7 +504,7 @@ var UserProfile = Object.assign(_UserProfile, {
501
504
  Page: UserProfilePage,
502
505
  Link: UserProfileLink
503
506
  });
504
- var UserButtonContext = (0, import_react15.createContext)({
507
+ var UserButtonContext = (0, import_react16.createContext)({
505
508
  mount: () => {
506
509
  },
507
510
  unmount: () => {
@@ -539,7 +542,7 @@ var _UserButton = withClerk(
539
542
  customPagesPortals,
540
543
  customMenuItemsPortals
541
544
  };
542
- return /* @__PURE__ */ import_react15.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
545
+ return /* @__PURE__ */ import_react16.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
543
546
  ClerkHostRenderer,
544
547
  {
545
548
  component,
@@ -548,25 +551,25 @@ var _UserButton = withClerk(
548
551
  rootProps: rendererRootProps
549
552
  },
550
553
  props.__experimental_asProvider ? sanitizedChildren : null,
551
- /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { ...portalProps })
554
+ /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { ...portalProps })
552
555
  ));
553
556
  },
554
557
  { component: "UserButton", renderWhileLoading: true }
555
558
  );
556
559
  function MenuItems({ children }) {
557
560
  (0, import_utils2.logErrorInDevMode)(userButtonMenuItemsRenderedError);
558
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
561
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
559
562
  }
560
563
  function MenuAction({ children }) {
561
564
  (0, import_utils2.logErrorInDevMode)(userButtonMenuActionRenderedError);
562
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
565
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
563
566
  }
564
567
  function MenuLink({ children }) {
565
568
  (0, import_utils2.logErrorInDevMode)(userButtonMenuLinkRenderedError);
566
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
569
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
567
570
  }
568
571
  function UserButtonOutlet(outletProps) {
569
- const providerProps = (0, import_react15.useContext)(UserButtonContext);
572
+ const providerProps = (0, import_react16.useContext)(UserButtonContext);
570
573
  const portalProps = {
571
574
  ...providerProps,
572
575
  props: {
@@ -574,7 +577,7 @@ function UserButtonOutlet(outletProps) {
574
577
  ...outletProps
575
578
  }
576
579
  };
577
- return /* @__PURE__ */ import_react15.default.createElement(ClerkHostRenderer, { ...portalProps });
580
+ return /* @__PURE__ */ import_react16.default.createElement(ClerkHostRenderer, { ...portalProps });
578
581
  }
579
582
  var UserButton = Object.assign(_UserButton, {
580
583
  UserProfilePage,
@@ -586,11 +589,11 @@ var UserButton = Object.assign(_UserButton, {
586
589
  });
587
590
  function OrganizationProfilePage({ children }) {
588
591
  (0, import_utils2.logErrorInDevMode)(organizationProfilePageRenderedError);
589
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
592
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
590
593
  }
591
594
  function OrganizationProfileLink({ children }) {
592
595
  (0, import_utils2.logErrorInDevMode)(organizationProfileLinkRenderedError);
593
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
596
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
594
597
  }
595
598
  var _OrganizationProfile = withClerk(
596
599
  ({
@@ -605,7 +608,7 @@ var _OrganizationProfile = withClerk(
605
608
  ...shouldShowFallback && fallback && { style: { display: "none" } }
606
609
  };
607
610
  const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children);
608
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
611
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
609
612
  ClerkHostRenderer,
610
613
  {
611
614
  component,
@@ -615,7 +618,7 @@ var _OrganizationProfile = withClerk(
615
618
  props: { ...props, customPages },
616
619
  rootProps: rendererRootProps
617
620
  },
618
- /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
621
+ /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
619
622
  ));
620
623
  },
621
624
  { component: "OrganizationProfile", renderWhileLoading: true }
@@ -631,7 +634,7 @@ var CreateOrganization = withClerk(
631
634
  const rendererRootProps = {
632
635
  ...shouldShowFallback && fallback && { style: { display: "none" } }
633
636
  };
634
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
637
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
635
638
  ClerkHostRenderer,
636
639
  {
637
640
  component,
@@ -645,7 +648,7 @@ var CreateOrganization = withClerk(
645
648
  },
646
649
  { component: "CreateOrganization", renderWhileLoading: true }
647
650
  );
648
- var OrganizationSwitcherContext = (0, import_react15.createContext)({
651
+ var OrganizationSwitcherContext = (0, import_react16.createContext)({
649
652
  mount: () => {
650
653
  },
651
654
  unmount: () => {
@@ -679,20 +682,20 @@ var _OrganizationSwitcher = withClerk(
679
682
  component
680
683
  };
681
684
  clerk.__experimental_prefetchOrganizationSwitcher();
682
- return /* @__PURE__ */ import_react15.default.createElement(OrganizationSwitcherContext.Provider, { value: passableProps }, /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
685
+ return /* @__PURE__ */ import_react16.default.createElement(OrganizationSwitcherContext.Provider, { value: passableProps }, /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
683
686
  ClerkHostRenderer,
684
687
  {
685
688
  ...passableProps,
686
689
  hideRootHtmlElement: !!props.__experimental_asProvider
687
690
  },
688
691
  props.__experimental_asProvider ? sanitizedChildren : null,
689
- /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
692
+ /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
690
693
  )));
691
694
  },
692
695
  { component: "OrganizationSwitcher", renderWhileLoading: true }
693
696
  );
694
697
  function OrganizationSwitcherOutlet(outletProps) {
695
- const providerProps = (0, import_react15.useContext)(OrganizationSwitcherContext);
698
+ const providerProps = (0, import_react16.useContext)(OrganizationSwitcherContext);
696
699
  const portalProps = {
697
700
  ...providerProps,
698
701
  props: {
@@ -700,7 +703,7 @@ function OrganizationSwitcherOutlet(outletProps) {
700
703
  ...outletProps
701
704
  }
702
705
  };
703
- return /* @__PURE__ */ import_react15.default.createElement(ClerkHostRenderer, { ...portalProps });
706
+ return /* @__PURE__ */ import_react16.default.createElement(ClerkHostRenderer, { ...portalProps });
704
707
  }
705
708
  var OrganizationSwitcher = Object.assign(_OrganizationSwitcher, {
706
709
  OrganizationProfilePage,
@@ -714,7 +717,7 @@ var OrganizationList = withClerk(
714
717
  const rendererRootProps = {
715
718
  ...shouldShowFallback && fallback && { style: { display: "none" } }
716
719
  };
717
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
720
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
718
721
  ClerkHostRenderer,
719
722
  {
720
723
  component,
@@ -735,7 +738,7 @@ var GoogleOneTap = withClerk(
735
738
  const rendererRootProps = {
736
739
  ...shouldShowFallback && fallback && { style: { display: "none" } }
737
740
  };
738
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
741
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
739
742
  ClerkHostRenderer,
740
743
  {
741
744
  component,
@@ -756,7 +759,7 @@ var Waitlist = withClerk(
756
759
  const rendererRootProps = {
757
760
  ...shouldShowFallback && fallback && { style: { display: "none" } }
758
761
  };
759
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
762
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
760
763
  ClerkHostRenderer,
761
764
  {
762
765
  component,
@@ -780,7 +783,7 @@ var PricingTable = withClerk(
780
783
  const rendererRootProps = {
781
784
  ...shouldShowFallback && fallback && { style: { display: "none" } }
782
785
  };
783
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
786
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
784
787
  ClerkHostRenderer,
785
788
  {
786
789
  component,
@@ -801,7 +804,7 @@ var APIKeys = withClerk(
801
804
  const rendererRootProps = {
802
805
  ...shouldShowFallback && fallback && { style: { display: "none" } }
803
806
  };
804
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
807
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
805
808
  ClerkHostRenderer,
806
809
  {
807
810
  component,
@@ -822,7 +825,7 @@ var UserAvatar = withClerk(
822
825
  const rendererRootProps = {
823
826
  ...shouldShowFallback && fallback && { style: { display: "none" } }
824
827
  };
825
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
828
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
826
829
  ClerkHostRenderer,
827
830
  {
828
831
  component,
@@ -843,7 +846,7 @@ var TaskChooseOrganization = withClerk(
843
846
  const rendererRootProps = {
844
847
  ...shouldShowFallback && fallback && { style: { display: "none" } }
845
848
  };
846
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
849
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
847
850
  ClerkHostRenderer,
848
851
  {
849
852
  component,
@@ -864,7 +867,7 @@ var TaskResetPassword = withClerk(
864
867
  const rendererRootProps = {
865
868
  ...shouldShowFallback && fallback && { style: { display: "none" } }
866
869
  };
867
- return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
870
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
868
871
  ClerkHostRenderer,
869
872
  {
870
873
  component,
@@ -880,9 +883,9 @@ var TaskResetPassword = withClerk(
880
883
  );
881
884
 
882
885
  // src/utils/componentValidation.ts
883
- var import_react16 = __toESM(require("react"));
886
+ var import_react17 = __toESM(require("react"));
884
887
  var isThatComponent = (v, component) => {
885
- return !!v && import_react16.default.isValidElement(v) && (v == null ? void 0 : v.type) === component;
888
+ return !!v && import_react17.default.isValidElement(v) && (v == null ? void 0 : v.type) === component;
886
889
  };
887
890
 
888
891
  // src/utils/useCustomPages.tsx
@@ -922,7 +925,7 @@ var useSanitizedChildren = (children) => {
922
925
  UserProfilePage,
923
926
  UserProfileLink
924
927
  ];
925
- import_react17.default.Children.forEach(children, (child) => {
928
+ import_react18.default.Children.forEach(children, (child) => {
926
929
  if (!excludedComponents.some((component) => isThatComponent(child, component))) {
927
930
  sanitizedChildren.push(child);
928
931
  }
@@ -933,7 +936,7 @@ var useCustomPages = (params, options) => {
933
936
  const { children, LinkComponent, PageComponent, MenuItemsComponent, reorderItemsLabels, componentName } = params;
934
937
  const { allowForAnyChildren = false } = options || {};
935
938
  const validChildren = [];
936
- import_react17.default.Children.forEach(children, (child) => {
939
+ import_react18.default.Children.forEach(children, (child) => {
937
940
  if (!isThatComponent(child, PageComponent) && !isThatComponent(child, LinkComponent) && !isThatComponent(child, MenuItemsComponent)) {
938
941
  if (child && !allowForAnyChildren) {
939
942
  (0, import_utils4.logErrorInDevMode)(customPagesIgnoredComponent(componentName));
@@ -1028,7 +1031,7 @@ var isExternalLink = (childProps) => {
1028
1031
 
1029
1032
  // src/utils/useCustomMenuItems.tsx
1030
1033
  var import_utils5 = require("@clerk/shared/utils");
1031
- var import_react18 = __toESM(require("react"));
1034
+ var import_react19 = __toESM(require("react"));
1032
1035
  var useUserButtonCustomMenuItems = (children, options) => {
1033
1036
  var _a;
1034
1037
  const reorderItemsLabels = ["manageAccount", "signOut"];
@@ -1056,7 +1059,7 @@ var useCustomMenuItems = ({
1056
1059
  const validChildren = [];
1057
1060
  const customMenuItems = [];
1058
1061
  const customMenuItemsPortals = [];
1059
- import_react18.default.Children.forEach(children, (child) => {
1062
+ import_react19.default.Children.forEach(children, (child) => {
1060
1063
  if (!isThatComponent(child, MenuItemsComponent) && !isThatComponent(child, UserProfileLinkComponent) && !isThatComponent(child, UserProfilePageComponent)) {
1061
1064
  if (child && !allowForAnyChildren) {
1062
1065
  (0, import_utils5.logErrorInDevMode)(userButtonIgnoredComponent);
@@ -1067,7 +1070,7 @@ var useCustomMenuItems = ({
1067
1070
  return;
1068
1071
  }
1069
1072
  const { props } = child;
1070
- import_react18.default.Children.forEach(props.children, (child2) => {
1073
+ import_react19.default.Children.forEach(props.children, (child2) => {
1071
1074
  if (!isThatComponent(child2, MenuActionComponent) && !isThatComponent(child2, MenuLinkComponent)) {
1072
1075
  if (child2) {
1073
1076
  (0, import_utils5.logErrorInDevMode)(customMenuItemsIgnoredComponent);
@@ -1223,13 +1226,13 @@ var CheckoutButton = withClerk(
1223
1226
  return clickHandler();
1224
1227
  };
1225
1228
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1226
- return import_react19.default.cloneElement(child, childProps);
1229
+ return import_react20.default.cloneElement(child, childProps);
1227
1230
  },
1228
1231
  { component: "CheckoutButton", renderWhileLoading: true }
1229
1232
  );
1230
1233
 
1231
1234
  // src/components/PlanDetailsButton.tsx
1232
- var import_react20 = __toESM(require("react"));
1235
+ var import_react21 = __toESM(require("react"));
1233
1236
  var PlanDetailsButton = withClerk(
1234
1237
  ({ clerk, children, ...props }) => {
1235
1238
  const { plan, planId, initialPlanPeriod, planDetailsProps, ...rest } = props;
@@ -1253,13 +1256,13 @@ var PlanDetailsButton = withClerk(
1253
1256
  return clickHandler();
1254
1257
  };
1255
1258
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1256
- return import_react20.default.cloneElement(child, childProps);
1259
+ return import_react21.default.cloneElement(child, childProps);
1257
1260
  },
1258
1261
  { component: "PlanDetailsButton", renderWhileLoading: true }
1259
1262
  );
1260
1263
 
1261
1264
  // src/components/SubscriptionDetailsButton.tsx
1262
- var import_react21 = __toESM(require("react"));
1265
+ var import_react22 = __toESM(require("react"));
1263
1266
  var SubscriptionDetailsButton = withClerk(
1264
1267
  ({
1265
1268
  clerk,
@@ -1297,13 +1300,13 @@ var SubscriptionDetailsButton = withClerk(
1297
1300
  return clickHandler();
1298
1301
  };
1299
1302
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1300
- return import_react21.default.cloneElement(child, childProps);
1303
+ return import_react22.default.cloneElement(child, childProps);
1301
1304
  },
1302
1305
  { component: "SubscriptionDetailsButton", renderWhileLoading: true }
1303
1306
  );
1304
1307
 
1305
1308
  // src/experimental.ts
1306
- var import_react22 = require("@clerk/shared/react");
1309
+ var import_react23 = require("@clerk/shared/react");
1307
1310
  // Annotate the CommonJS export names for ESM import in node:
1308
1311
  0 && (module.exports = {
1309
1312
  CheckoutButton,