@clerk/react 6.0.0-snapshot.v20251215212157 → 6.0.0-snapshot.v20251216175437

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-FDDR7URL.mjs";
4
+ } from "./chunk-J32KHXBI.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-EMTY23UX.mjs.map
169
+ //# sourceMappingURL=chunk-4F7CSI4T.mjs.map
@@ -214,7 +214,6 @@ import {
214
214
  } from "@clerk/shared/react";
215
215
 
216
216
  // src/components/withClerk.tsx
217
- import { usePortalRoot } from "@clerk/shared/react";
218
217
  import React2 from "react";
219
218
  var withClerk = (Component, displayNameOrOptions) => {
220
219
  const passedDisplayedName = typeof displayNameOrOptions === "string" ? displayNameOrOptions : displayNameOrOptions == null ? void 0 : displayNameOrOptions.component;
@@ -224,14 +223,12 @@ var withClerk = (Component, displayNameOrOptions) => {
224
223
  const HOC = (props) => {
225
224
  useAssertWrappedByClerkProvider(displayName || "withClerk");
226
225
  const clerk = useIsomorphicClerkContext();
227
- const getContainer = usePortalRoot();
228
226
  if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) {
229
227
  return null;
230
228
  }
231
229
  return /* @__PURE__ */ React2.createElement(
232
230
  Component,
233
231
  {
234
- getContainer,
235
232
  ...props,
236
233
  component: displayName,
237
234
  clerk
@@ -282,4 +279,4 @@ export {
282
279
  __experimental_PaymentElementProvider,
283
280
  __experimental_PaymentElement
284
281
  };
285
- //# sourceMappingURL=chunk-FDDR7URL.mjs.map
282
+ //# sourceMappingURL=chunk-J32KHXBI.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 { 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"]}
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"]}
@@ -15,7 +15,7 @@ import {
15
15
  userProfileLinkRenderedError,
16
16
  userProfilePageRenderedError,
17
17
  withClerk
18
- } from "./chunk-FDDR7URL.mjs";
18
+ } from "./chunk-J32KHXBI.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-JPHCBAWH.mjs.map
1033
+ //# sourceMappingURL=chunk-YKGYOPLG.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_react23.__experimental_CheckoutProvider,
35
- PaymentElement: () => import_react23.__experimental_PaymentElement,
36
- PaymentElementProvider: () => import_react23.__experimental_PaymentElementProvider,
34
+ CheckoutProvider: () => import_react22.__experimental_CheckoutProvider,
35
+ PaymentElement: () => import_react22.__experimental_PaymentElement,
36
+ PaymentElementProvider: () => import_react22.__experimental_PaymentElementProvider,
37
37
  PlanDetailsButton: () => PlanDetailsButton,
38
38
  SubscriptionDetailsButton: () => SubscriptionDetailsButton,
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
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
47
47
  });
48
48
  module.exports = __toCommonJS(experimental_exports);
49
49
 
50
50
  // src/components/CheckoutButton.tsx
51
- var import_react20 = __toESM(require("react"));
51
+ var import_react19 = __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_react18 = __toESM(require("react"));
245
+ var import_react17 = __toESM(require("react"));
246
246
 
247
247
  // src/components/uiComponents.tsx
248
248
  var import_utils2 = require("@clerk/shared/utils");
249
- var import_react16 = __toESM(require("react"));
249
+ var import_react15 = __toESM(require("react"));
250
250
 
251
251
  // src/utils/useWaitForComponentMount.ts
252
252
  var import_react11 = require("react");
@@ -389,8 +389,7 @@ var ClerkHostRenderer = class extends import_react13.default.PureComponent {
389
389
  };
390
390
 
391
391
  // src/components/withClerk.tsx
392
- var import_react14 = require("@clerk/shared/react");
393
- var import_react15 = __toESM(require("react"));
392
+ var import_react14 = __toESM(require("react"));
394
393
  var withClerk = (Component, displayNameOrOptions) => {
395
394
  const passedDisplayedName = typeof displayNameOrOptions === "string" ? displayNameOrOptions : displayNameOrOptions == null ? void 0 : displayNameOrOptions.component;
396
395
  const displayName = passedDisplayedName || Component.displayName || Component.name || "Component";
@@ -399,14 +398,12 @@ var withClerk = (Component, displayNameOrOptions) => {
399
398
  const HOC = (props) => {
400
399
  useAssertWrappedByClerkProvider(displayName || "withClerk");
401
400
  const clerk = useIsomorphicClerkContext();
402
- const getContainer = (0, import_react14.usePortalRoot)();
403
401
  if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) {
404
402
  return null;
405
403
  }
406
- return /* @__PURE__ */ import_react15.default.createElement(
404
+ return /* @__PURE__ */ import_react14.default.createElement(
407
405
  Component,
408
406
  {
409
- getContainer,
410
407
  ...props,
411
408
  component: displayName,
412
409
  clerk
@@ -420,7 +417,7 @@ var withClerk = (Component, displayNameOrOptions) => {
420
417
  // src/components/uiComponents.tsx
421
418
  var CustomPortalsRenderer = (props) => {
422
419
  var _a, _b;
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 })));
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 })));
424
421
  };
425
422
  var SignIn = withClerk(
426
423
  ({ clerk, component, fallback, ...props }) => {
@@ -429,7 +426,7 @@ var SignIn = withClerk(
429
426
  const rendererRootProps = {
430
427
  ...shouldShowFallback && fallback && { style: { display: "none" } }
431
428
  };
432
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
429
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
433
430
  ClerkHostRenderer,
434
431
  {
435
432
  component,
@@ -450,7 +447,7 @@ var SignUp = withClerk(
450
447
  const rendererRootProps = {
451
448
  ...shouldShowFallback && fallback && { style: { display: "none" } }
452
449
  };
453
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
450
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
454
451
  ClerkHostRenderer,
455
452
  {
456
453
  component,
@@ -466,11 +463,11 @@ var SignUp = withClerk(
466
463
  );
467
464
  function UserProfilePage({ children }) {
468
465
  (0, import_utils2.logErrorInDevMode)(userProfilePageRenderedError);
469
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
466
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
470
467
  }
471
468
  function UserProfileLink({ children }) {
472
469
  (0, import_utils2.logErrorInDevMode)(userProfileLinkRenderedError);
473
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
470
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
474
471
  }
475
472
  var _UserProfile = withClerk(
476
473
  ({
@@ -485,7 +482,7 @@ var _UserProfile = withClerk(
485
482
  ...shouldShowFallback && fallback && { style: { display: "none" } }
486
483
  };
487
484
  const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children);
488
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, /* @__PURE__ */ import_react16.default.createElement(
485
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, /* @__PURE__ */ import_react15.default.createElement(
489
486
  ClerkHostRenderer,
490
487
  {
491
488
  component,
@@ -495,7 +492,7 @@ var _UserProfile = withClerk(
495
492
  props: { ...props, customPages },
496
493
  rootProps: rendererRootProps
497
494
  },
498
- /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
495
+ /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
499
496
  ));
500
497
  },
501
498
  { component: "UserProfile", renderWhileLoading: true }
@@ -504,7 +501,7 @@ var UserProfile = Object.assign(_UserProfile, {
504
501
  Page: UserProfilePage,
505
502
  Link: UserProfileLink
506
503
  });
507
- var UserButtonContext = (0, import_react16.createContext)({
504
+ var UserButtonContext = (0, import_react15.createContext)({
508
505
  mount: () => {
509
506
  },
510
507
  unmount: () => {
@@ -542,7 +539,7 @@ var _UserButton = withClerk(
542
539
  customPagesPortals,
543
540
  customMenuItemsPortals
544
541
  };
545
- return /* @__PURE__ */ import_react16.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
542
+ return /* @__PURE__ */ import_react15.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
546
543
  ClerkHostRenderer,
547
544
  {
548
545
  component,
@@ -551,25 +548,25 @@ var _UserButton = withClerk(
551
548
  rootProps: rendererRootProps
552
549
  },
553
550
  props.__experimental_asProvider ? sanitizedChildren : null,
554
- /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { ...portalProps })
551
+ /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { ...portalProps })
555
552
  ));
556
553
  },
557
554
  { component: "UserButton", renderWhileLoading: true }
558
555
  );
559
556
  function MenuItems({ children }) {
560
557
  (0, import_utils2.logErrorInDevMode)(userButtonMenuItemsRenderedError);
561
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
558
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
562
559
  }
563
560
  function MenuAction({ children }) {
564
561
  (0, import_utils2.logErrorInDevMode)(userButtonMenuActionRenderedError);
565
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
562
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
566
563
  }
567
564
  function MenuLink({ children }) {
568
565
  (0, import_utils2.logErrorInDevMode)(userButtonMenuLinkRenderedError);
569
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
566
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
570
567
  }
571
568
  function UserButtonOutlet(outletProps) {
572
- const providerProps = (0, import_react16.useContext)(UserButtonContext);
569
+ const providerProps = (0, import_react15.useContext)(UserButtonContext);
573
570
  const portalProps = {
574
571
  ...providerProps,
575
572
  props: {
@@ -577,7 +574,7 @@ function UserButtonOutlet(outletProps) {
577
574
  ...outletProps
578
575
  }
579
576
  };
580
- return /* @__PURE__ */ import_react16.default.createElement(ClerkHostRenderer, { ...portalProps });
577
+ return /* @__PURE__ */ import_react15.default.createElement(ClerkHostRenderer, { ...portalProps });
581
578
  }
582
579
  var UserButton = Object.assign(_UserButton, {
583
580
  UserProfilePage,
@@ -589,11 +586,11 @@ var UserButton = Object.assign(_UserButton, {
589
586
  });
590
587
  function OrganizationProfilePage({ children }) {
591
588
  (0, import_utils2.logErrorInDevMode)(organizationProfilePageRenderedError);
592
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
589
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
593
590
  }
594
591
  function OrganizationProfileLink({ children }) {
595
592
  (0, import_utils2.logErrorInDevMode)(organizationProfileLinkRenderedError);
596
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, children);
593
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, children);
597
594
  }
598
595
  var _OrganizationProfile = withClerk(
599
596
  ({
@@ -608,7 +605,7 @@ var _OrganizationProfile = withClerk(
608
605
  ...shouldShowFallback && fallback && { style: { display: "none" } }
609
606
  };
610
607
  const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children);
611
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
608
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
612
609
  ClerkHostRenderer,
613
610
  {
614
611
  component,
@@ -618,7 +615,7 @@ var _OrganizationProfile = withClerk(
618
615
  props: { ...props, customPages },
619
616
  rootProps: rendererRootProps
620
617
  },
621
- /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
618
+ /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
622
619
  ));
623
620
  },
624
621
  { component: "OrganizationProfile", renderWhileLoading: true }
@@ -634,7 +631,7 @@ var CreateOrganization = withClerk(
634
631
  const rendererRootProps = {
635
632
  ...shouldShowFallback && fallback && { style: { display: "none" } }
636
633
  };
637
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
634
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
638
635
  ClerkHostRenderer,
639
636
  {
640
637
  component,
@@ -648,7 +645,7 @@ var CreateOrganization = withClerk(
648
645
  },
649
646
  { component: "CreateOrganization", renderWhileLoading: true }
650
647
  );
651
- var OrganizationSwitcherContext = (0, import_react16.createContext)({
648
+ var OrganizationSwitcherContext = (0, import_react15.createContext)({
652
649
  mount: () => {
653
650
  },
654
651
  unmount: () => {
@@ -682,20 +679,20 @@ var _OrganizationSwitcher = withClerk(
682
679
  component
683
680
  };
684
681
  clerk.__experimental_prefetchOrganizationSwitcher();
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(
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(
686
683
  ClerkHostRenderer,
687
684
  {
688
685
  ...passableProps,
689
686
  hideRootHtmlElement: !!props.__experimental_asProvider
690
687
  },
691
688
  props.__experimental_asProvider ? sanitizedChildren : null,
692
- /* @__PURE__ */ import_react16.default.createElement(CustomPortalsRenderer, { customPagesPortals })
689
+ /* @__PURE__ */ import_react15.default.createElement(CustomPortalsRenderer, { customPagesPortals })
693
690
  )));
694
691
  },
695
692
  { component: "OrganizationSwitcher", renderWhileLoading: true }
696
693
  );
697
694
  function OrganizationSwitcherOutlet(outletProps) {
698
- const providerProps = (0, import_react16.useContext)(OrganizationSwitcherContext);
695
+ const providerProps = (0, import_react15.useContext)(OrganizationSwitcherContext);
699
696
  const portalProps = {
700
697
  ...providerProps,
701
698
  props: {
@@ -703,7 +700,7 @@ function OrganizationSwitcherOutlet(outletProps) {
703
700
  ...outletProps
704
701
  }
705
702
  };
706
- return /* @__PURE__ */ import_react16.default.createElement(ClerkHostRenderer, { ...portalProps });
703
+ return /* @__PURE__ */ import_react15.default.createElement(ClerkHostRenderer, { ...portalProps });
707
704
  }
708
705
  var OrganizationSwitcher = Object.assign(_OrganizationSwitcher, {
709
706
  OrganizationProfilePage,
@@ -717,7 +714,7 @@ var OrganizationList = withClerk(
717
714
  const rendererRootProps = {
718
715
  ...shouldShowFallback && fallback && { style: { display: "none" } }
719
716
  };
720
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
717
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
721
718
  ClerkHostRenderer,
722
719
  {
723
720
  component,
@@ -738,7 +735,7 @@ var GoogleOneTap = withClerk(
738
735
  const rendererRootProps = {
739
736
  ...shouldShowFallback && fallback && { style: { display: "none" } }
740
737
  };
741
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
738
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
742
739
  ClerkHostRenderer,
743
740
  {
744
741
  component,
@@ -759,7 +756,7 @@ var Waitlist = withClerk(
759
756
  const rendererRootProps = {
760
757
  ...shouldShowFallback && fallback && { style: { display: "none" } }
761
758
  };
762
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
759
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
763
760
  ClerkHostRenderer,
764
761
  {
765
762
  component,
@@ -783,7 +780,7 @@ var PricingTable = withClerk(
783
780
  const rendererRootProps = {
784
781
  ...shouldShowFallback && fallback && { style: { display: "none" } }
785
782
  };
786
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
783
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
787
784
  ClerkHostRenderer,
788
785
  {
789
786
  component,
@@ -804,7 +801,7 @@ var APIKeys = withClerk(
804
801
  const rendererRootProps = {
805
802
  ...shouldShowFallback && fallback && { style: { display: "none" } }
806
803
  };
807
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
804
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
808
805
  ClerkHostRenderer,
809
806
  {
810
807
  component,
@@ -825,7 +822,7 @@ var UserAvatar = withClerk(
825
822
  const rendererRootProps = {
826
823
  ...shouldShowFallback && fallback && { style: { display: "none" } }
827
824
  };
828
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
825
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
829
826
  ClerkHostRenderer,
830
827
  {
831
828
  component,
@@ -846,7 +843,7 @@ var TaskChooseOrganization = withClerk(
846
843
  const rendererRootProps = {
847
844
  ...shouldShowFallback && fallback && { style: { display: "none" } }
848
845
  };
849
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
846
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
850
847
  ClerkHostRenderer,
851
848
  {
852
849
  component,
@@ -867,7 +864,7 @@ var TaskResetPassword = withClerk(
867
864
  const rendererRootProps = {
868
865
  ...shouldShowFallback && fallback && { style: { display: "none" } }
869
866
  };
870
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react16.default.createElement(
867
+ return /* @__PURE__ */ import_react15.default.createElement(import_react15.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && /* @__PURE__ */ import_react15.default.createElement(
871
868
  ClerkHostRenderer,
872
869
  {
873
870
  component,
@@ -883,9 +880,9 @@ var TaskResetPassword = withClerk(
883
880
  );
884
881
 
885
882
  // src/utils/componentValidation.ts
886
- var import_react17 = __toESM(require("react"));
883
+ var import_react16 = __toESM(require("react"));
887
884
  var isThatComponent = (v, component) => {
888
- return !!v && import_react17.default.isValidElement(v) && (v == null ? void 0 : v.type) === component;
885
+ return !!v && import_react16.default.isValidElement(v) && (v == null ? void 0 : v.type) === component;
889
886
  };
890
887
 
891
888
  // src/utils/useCustomPages.tsx
@@ -925,7 +922,7 @@ var useSanitizedChildren = (children) => {
925
922
  UserProfilePage,
926
923
  UserProfileLink
927
924
  ];
928
- import_react18.default.Children.forEach(children, (child) => {
925
+ import_react17.default.Children.forEach(children, (child) => {
929
926
  if (!excludedComponents.some((component) => isThatComponent(child, component))) {
930
927
  sanitizedChildren.push(child);
931
928
  }
@@ -936,7 +933,7 @@ var useCustomPages = (params, options) => {
936
933
  const { children, LinkComponent, PageComponent, MenuItemsComponent, reorderItemsLabels, componentName } = params;
937
934
  const { allowForAnyChildren = false } = options || {};
938
935
  const validChildren = [];
939
- import_react18.default.Children.forEach(children, (child) => {
936
+ import_react17.default.Children.forEach(children, (child) => {
940
937
  if (!isThatComponent(child, PageComponent) && !isThatComponent(child, LinkComponent) && !isThatComponent(child, MenuItemsComponent)) {
941
938
  if (child && !allowForAnyChildren) {
942
939
  (0, import_utils4.logErrorInDevMode)(customPagesIgnoredComponent(componentName));
@@ -1031,7 +1028,7 @@ var isExternalLink = (childProps) => {
1031
1028
 
1032
1029
  // src/utils/useCustomMenuItems.tsx
1033
1030
  var import_utils5 = require("@clerk/shared/utils");
1034
- var import_react19 = __toESM(require("react"));
1031
+ var import_react18 = __toESM(require("react"));
1035
1032
  var useUserButtonCustomMenuItems = (children, options) => {
1036
1033
  var _a;
1037
1034
  const reorderItemsLabels = ["manageAccount", "signOut"];
@@ -1059,7 +1056,7 @@ var useCustomMenuItems = ({
1059
1056
  const validChildren = [];
1060
1057
  const customMenuItems = [];
1061
1058
  const customMenuItemsPortals = [];
1062
- import_react19.default.Children.forEach(children, (child) => {
1059
+ import_react18.default.Children.forEach(children, (child) => {
1063
1060
  if (!isThatComponent(child, MenuItemsComponent) && !isThatComponent(child, UserProfileLinkComponent) && !isThatComponent(child, UserProfilePageComponent)) {
1064
1061
  if (child && !allowForAnyChildren) {
1065
1062
  (0, import_utils5.logErrorInDevMode)(userButtonIgnoredComponent);
@@ -1070,7 +1067,7 @@ var useCustomMenuItems = ({
1070
1067
  return;
1071
1068
  }
1072
1069
  const { props } = child;
1073
- import_react19.default.Children.forEach(props.children, (child2) => {
1070
+ import_react18.default.Children.forEach(props.children, (child2) => {
1074
1071
  if (!isThatComponent(child2, MenuActionComponent) && !isThatComponent(child2, MenuLinkComponent)) {
1075
1072
  if (child2) {
1076
1073
  (0, import_utils5.logErrorInDevMode)(customMenuItemsIgnoredComponent);
@@ -1226,13 +1223,13 @@ var CheckoutButton = withClerk(
1226
1223
  return clickHandler();
1227
1224
  };
1228
1225
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1229
- return import_react20.default.cloneElement(child, childProps);
1226
+ return import_react19.default.cloneElement(child, childProps);
1230
1227
  },
1231
1228
  { component: "CheckoutButton", renderWhileLoading: true }
1232
1229
  );
1233
1230
 
1234
1231
  // src/components/PlanDetailsButton.tsx
1235
- var import_react21 = __toESM(require("react"));
1232
+ var import_react20 = __toESM(require("react"));
1236
1233
  var PlanDetailsButton = withClerk(
1237
1234
  ({ clerk, children, ...props }) => {
1238
1235
  const { plan, planId, initialPlanPeriod, planDetailsProps, ...rest } = props;
@@ -1256,13 +1253,13 @@ var PlanDetailsButton = withClerk(
1256
1253
  return clickHandler();
1257
1254
  };
1258
1255
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1259
- return import_react21.default.cloneElement(child, childProps);
1256
+ return import_react20.default.cloneElement(child, childProps);
1260
1257
  },
1261
1258
  { component: "PlanDetailsButton", renderWhileLoading: true }
1262
1259
  );
1263
1260
 
1264
1261
  // src/components/SubscriptionDetailsButton.tsx
1265
- var import_react22 = __toESM(require("react"));
1262
+ var import_react21 = __toESM(require("react"));
1266
1263
  var SubscriptionDetailsButton = withClerk(
1267
1264
  ({
1268
1265
  clerk,
@@ -1300,13 +1297,13 @@ var SubscriptionDetailsButton = withClerk(
1300
1297
  return clickHandler();
1301
1298
  };
1302
1299
  const childProps = { ...rest, onClick: wrappedChildClickHandler };
1303
- return import_react22.default.cloneElement(child, childProps);
1300
+ return import_react21.default.cloneElement(child, childProps);
1304
1301
  },
1305
1302
  { component: "SubscriptionDetailsButton", renderWhileLoading: true }
1306
1303
  );
1307
1304
 
1308
1305
  // src/experimental.ts
1309
- var import_react23 = require("@clerk/shared/react");
1306
+ var import_react22 = require("@clerk/shared/react");
1310
1307
  // Annotate the CommonJS export names for ESM import in node:
1311
1308
  0 && (module.exports = {
1312
1309
  CheckoutButton,