{"version":3,"sources":["jsdelivr-header.js","/npm/@clerk/clerk-react@5.61.3/src/index.ts","/npm/@clerk/clerk-react@5.61.3/src/polyfills.ts","/npm/@clerk/clerk-react@5.61.3/src/errors/errorThrower.ts","/npm/@clerk/clerk-react@5.61.3/src/components/uiComponents.tsx","/npm/@clerk/clerk-react@5.61.3/src/errors/messages.ts","/npm/@clerk/clerk-react@5.61.3/src/utils/childrenUtils.tsx","/npm/@clerk/clerk-react@5.61.3/src/utils/isConstructor.ts","/npm/@clerk/clerk-react@5.61.3/src/utils/useMaxAllowedInstancesGuard.tsx","/npm/@clerk/clerk-react@5.61.3/src/utils/useCustomElementPortal.tsx","/npm/@clerk/clerk-react@5.61.3/src/utils/useCustomPages.tsx","/npm/@clerk/clerk-react@5.61.3/src/utils/componentValidation.ts","/npm/@clerk/clerk-react@5.61.3/src/utils/useCustomMenuItems.tsx","/npm/@clerk/clerk-react@5.61.3/src/utils/useWaitForComponentMount.ts","/npm/@clerk/clerk-react@5.61.3/src/components/ClerkHostRenderer.tsx","/npm/@clerk/clerk-react@5.61.3/src/components/withClerk.tsx","/npm/@clerk/clerk-react@5.61.3/src/contexts/IsomorphicClerkContext.tsx","/npm/@clerk/clerk-react@5.61.3/src/hooks/useAssertWrappedByClerkProvider.ts","/npm/@clerk/clerk-react@5.61.3/src/components/controlComponents.tsx","/npm/@clerk/clerk-react@5.61.3/src/contexts/SessionContext.tsx","/npm/@clerk/clerk-react@5.61.3/src/hooks/useAuth.ts","/npm/@clerk/clerk-react@5.61.3/src/contexts/AuthContext.ts","/npm/@clerk/clerk-react@5.61.3/src/hooks/utils.ts","/npm/@clerk/clerk-react@5.61.3/src/hooks/useEmailLink.ts","/npm/@clerk/clerk-react@5.61.3/src/hooks/useSignIn.ts","/npm/@clerk/clerk-react@5.61.3/src/hooks/useSignUp.ts","/npm/@clerk/clerk-react@5.61.3/src/hooks/index.ts","/npm/@clerk/clerk-react@5.61.3/src/components/SignInButton.tsx","/npm/@clerk/clerk-react@5.61.3/src/components/SignInWithMetamaskButton.tsx","/npm/@clerk/clerk-react@5.61.3/src/components/SignOutButton.tsx","/npm/@clerk/clerk-react@5.61.3/src/components/SignUpButton.tsx","/npm/@clerk/clerk-react@5.61.3/src/contexts/ClerkProvider.tsx","/npm/@clerk/clerk-react@5.61.3/src/contexts/ClerkContextProvider.tsx","/npm/@clerk/clerk-react@5.61.3/src/isomorphicClerk.ts","/npm/@clerk/clerk-react@5.61.3/src/stateProxy.ts"],"names":[],"mappings":"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","file":"/npm/@clerk/clerk-react@5.61.3/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@clerk/clerk-react@5.61.3/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import './polyfills';\n\nimport { setClerkJsLoadingErrorPackageName } from '@clerk/shared/loadClerkJsScript';\n\nimport { setErrorThrowerOptions } from './errors/errorThrower';\n\nexport * from './components';\nexport * from './contexts';\n\nexport * from './hooks';\nexport type { BrowserClerk, ClerkProp, HeadlessBrowserClerk, ClerkProviderProps } from './types';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJsLoadingErrorPackageName(PACKAGE_NAME);\n","/**\n * Vite does not define `global` by default\n * One workaround is to use the `define` config prop\n * https://vitejs.dev/config/#define\n * We are solving this in the SDK level to reduce setup steps.\n */\nif (typeof window !== 'undefined' && !window.global) {\n  window.global = typeof global === 'undefined' ? window : global;\n}\n\nexport {};\n","import type { ErrorThrowerOptions } from '@clerk/shared/error';\nimport { buildErrorThrower } from '@clerk/shared/error';\n\nconst errorThrower = buildErrorThrower({ packageName: '@clerk/clerk-react' });\n\nexport { errorThrower };\n\n/**\n * Overrides options of the internal errorThrower (eg setting packageName prefix).\n *\n * @internal\n */\nexport function setErrorThrowerOptions(options: ErrorThrowerOptions) {\n  errorThrower.setMessages(options).setPackageName(options);\n}\n","import type {\n  APIKeysProps,\n  CreateOrganizationProps,\n  GoogleOneTapProps,\n  OrganizationListProps,\n  OrganizationProfileProps,\n  OrganizationSwitcherProps,\n  PricingTableProps,\n  SignInProps,\n  SignUpProps,\n  TaskChooseOrganizationProps,\n  TaskResetPasswordProps,\n  TaskSetupMFAProps,\n  UserAvatarProps,\n  UserButtonProps,\n  UserProfileProps,\n  WaitlistProps,\n  Without,\n} from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { PropsWithChildren, ReactNode } from 'react';\nimport React, { createContext, createElement, useContext } from 'react';\n\nimport {\n  organizationProfileLinkRenderedError,\n  organizationProfilePageRenderedError,\n  userButtonMenuActionRenderedError,\n  userButtonMenuItemsRenderedError,\n  userButtonMenuLinkRenderedError,\n  userProfileLinkRenderedError,\n  userProfilePageRenderedError,\n} from '../errors/messages';\nimport type {\n  CustomPortalsRendererProps,\n  MountProps,\n  OrganizationProfileLinkProps,\n  OrganizationProfilePageProps,\n  UserButtonActionProps,\n  UserButtonLinkProps,\n  UserProfileLinkProps,\n  UserProfilePageProps,\n  WithClerkProp,\n} from '../types';\nimport {\n  useOrganizationProfileCustomPages,\n  useSanitizedChildren,\n  useUserButtonCustomMenuItems,\n  useUserProfileCustomPages,\n} from '../utils';\nimport { useWaitForComponentMount } from '../utils/useWaitForComponentMount';\nimport { ClerkHostRenderer } from './ClerkHostRenderer';\nimport { withClerk } from './withClerk';\n\ntype FallbackProp = {\n  /**\n   * An optional element to render while the component is mounting.\n   */\n  fallback?: ReactNode;\n};\n\ntype UserProfileExportType = typeof _UserProfile & {\n  Page: typeof UserProfilePage;\n  Link: typeof UserProfileLink;\n};\n\ntype UserButtonExportType = typeof _UserButton & {\n  UserProfilePage: typeof UserProfilePage;\n  UserProfileLink: typeof UserProfileLink;\n  MenuItems: typeof MenuItems;\n  Action: typeof MenuAction;\n  Link: typeof MenuLink;\n  /**\n   * The `<Outlet />` component can be used in conjunction with `asProvider` in order to control rendering\n   * of the `<UserButton />` without affecting its configuration or any custom pages that could be mounted\n   * @experimental This API is experimental and may change at any moment.\n   */\n  __experimental_Outlet: typeof UserButtonOutlet;\n};\n\ntype UserButtonPropsWithoutCustomPages = Without<\n  UserButtonProps,\n  'userProfileProps' | '__experimental_asStandalone'\n> & {\n  userProfileProps?: Pick<UserProfileProps, 'additionalOAuthScopes' | 'appearance' | 'apiKeysProps'>;\n  /**\n   * Adding `asProvider` will defer rendering until the `<Outlet />` component is mounted.\n   *\n   * @experimental This API is experimental and may change at any moment.\n   * @default undefined\n   */\n  __experimental_asProvider?: boolean;\n};\n\ntype OrganizationProfileExportType = typeof _OrganizationProfile & {\n  Page: typeof OrganizationProfilePage;\n  Link: typeof OrganizationProfileLink;\n};\n\ntype OrganizationSwitcherExportType = typeof _OrganizationSwitcher & {\n  OrganizationProfilePage: typeof OrganizationProfilePage;\n  OrganizationProfileLink: typeof OrganizationProfileLink;\n  /**\n   * The `<Outlet />` component can be used in conjunction with `asProvider` in order to control rendering\n   * of the `<OrganizationSwitcher />` without affecting its configuration or any custom pages that could be mounted\n   *\n   * @experimental This API is experimental and may change at any moment.\n   */\n  __experimental_Outlet: typeof OrganizationSwitcherOutlet;\n};\n\ntype OrganizationSwitcherPropsWithoutCustomPages = Without<\n  OrganizationSwitcherProps,\n  'organizationProfileProps' | '__experimental_asStandalone'\n> & {\n  organizationProfileProps?: Pick<OrganizationProfileProps, 'appearance'>;\n  /**\n   * Adding `asProvider` will defer rendering until the `<Outlet />` component is mounted.\n   *\n   * @experimental This API is experimental and may change at any moment.\n   * @default undefined\n   */\n  __experimental_asProvider?: boolean;\n};\n\nconst CustomPortalsRenderer = (props: CustomPortalsRendererProps) => {\n  return (\n    <>\n      {props?.customPagesPortals?.map((portal, index) => createElement(portal, { key: index }))}\n      {props?.customMenuItemsPortals?.map((portal, index) => createElement(portal, { key: index }))}\n    </>\n  );\n};\n\nexport const SignIn = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<SignInProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountSignIn}\n            unmount={clerk.unmountSignIn}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'SignIn', renderWhileLoading: true },\n);\n\nexport const SignUp = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<SignUpProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountSignUp}\n            unmount={clerk.unmountSignUp}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'SignUp', renderWhileLoading: true },\n);\n\nexport function UserProfilePage({ children }: PropsWithChildren<UserProfilePageProps>) {\n  logErrorInDevMode(userProfilePageRenderedError);\n  return <>{children}</>;\n}\n\nexport function UserProfileLink({ children }: PropsWithChildren<UserProfileLinkProps>) {\n  logErrorInDevMode(userProfileLinkRenderedError);\n  return <>{children}</>;\n}\n\nconst _UserProfile = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<Without<UserProfileProps, 'customPages'>> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children);\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        <ClerkHostRenderer\n          component={component}\n          mount={clerk.mountUserProfile}\n          unmount={clerk.unmountUserProfile}\n          updateProps={(clerk as any).__unstable__updateProps}\n          props={{ ...props, customPages }}\n          rootProps={rendererRootProps}\n        >\n          <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n        </ClerkHostRenderer>\n      </>\n    );\n  },\n  { component: 'UserProfile', renderWhileLoading: true },\n);\n\nexport const UserProfile: UserProfileExportType = Object.assign(_UserProfile, {\n  Page: UserProfilePage,\n  Link: UserProfileLink,\n});\n\nconst UserButtonContext = createContext<MountProps>({\n  mount: () => {},\n  unmount: () => {},\n  updateProps: () => {},\n});\n\nconst _UserButton = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<UserButtonPropsWithoutCustomPages> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const userProfileProps = { ...props.userProfileProps, customPages };\n    const { customMenuItems, customMenuItemsPortals } = useUserButtonCustomMenuItems(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const sanitizedChildren = useSanitizedChildren(props.children);\n\n    const passableProps = {\n      mount: clerk.mountUserButton,\n      unmount: clerk.unmountUserButton,\n      updateProps: (clerk as any).__unstable__updateProps,\n      props: { ...props, userProfileProps, customMenuItems },\n    };\n    const portalProps = {\n      customPagesPortals: customPagesPortals,\n      customMenuItemsPortals: customMenuItemsPortals,\n    };\n\n    return (\n      <UserButtonContext.Provider value={passableProps}>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            {...passableProps}\n            hideRootHtmlElement={!!props.__experimental_asProvider}\n            rootProps={rendererRootProps}\n          >\n            {/*This mimics the previous behaviour before asProvider existed*/}\n            {props.__experimental_asProvider ? sanitizedChildren : null}\n            <CustomPortalsRenderer {...portalProps} />\n          </ClerkHostRenderer>\n        )}\n      </UserButtonContext.Provider>\n    );\n  },\n  { component: 'UserButton', renderWhileLoading: true },\n);\n\nexport function MenuItems({ children }: PropsWithChildren) {\n  logErrorInDevMode(userButtonMenuItemsRenderedError);\n  return <>{children}</>;\n}\n\nexport function MenuAction({ children }: PropsWithChildren<UserButtonActionProps>) {\n  logErrorInDevMode(userButtonMenuActionRenderedError);\n  return <>{children}</>;\n}\n\nexport function MenuLink({ children }: PropsWithChildren<UserButtonLinkProps>) {\n  logErrorInDevMode(userButtonMenuLinkRenderedError);\n  return <>{children}</>;\n}\n\nexport function UserButtonOutlet(outletProps: Without<UserButtonProps, 'userProfileProps'>) {\n  const providerProps = useContext(UserButtonContext);\n\n  const portalProps = {\n    ...providerProps,\n    props: {\n      ...providerProps.props,\n      ...outletProps,\n    },\n  } satisfies MountProps;\n\n  return <ClerkHostRenderer {...portalProps} />;\n}\n\nexport const UserButton: UserButtonExportType = Object.assign(_UserButton, {\n  UserProfilePage,\n  UserProfileLink,\n  MenuItems,\n  Action: MenuAction,\n  Link: MenuLink,\n  __experimental_Outlet: UserButtonOutlet,\n});\n\nexport function OrganizationProfilePage({ children }: PropsWithChildren<OrganizationProfilePageProps>) {\n  logErrorInDevMode(organizationProfilePageRenderedError);\n  return <>{children}</>;\n}\n\nexport function OrganizationProfileLink({ children }: PropsWithChildren<OrganizationProfileLinkProps>) {\n  logErrorInDevMode(organizationProfileLinkRenderedError);\n  return <>{children}</>;\n}\n\nconst _OrganizationProfile = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<Without<OrganizationProfileProps, 'customPages'>> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children);\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountOrganizationProfile}\n            unmount={clerk.unmountOrganizationProfile}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={{ ...props, customPages }}\n            rootProps={rendererRootProps}\n          >\n            <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n          </ClerkHostRenderer>\n        )}\n      </>\n    );\n  },\n  { component: 'OrganizationProfile', renderWhileLoading: true },\n);\n\nexport const OrganizationProfile: OrganizationProfileExportType = Object.assign(_OrganizationProfile, {\n  Page: OrganizationProfilePage,\n  Link: OrganizationProfileLink,\n});\n\nexport const CreateOrganization = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<CreateOrganizationProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountCreateOrganization}\n            unmount={clerk.unmountCreateOrganization}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'CreateOrganization', renderWhileLoading: true },\n);\n\nconst OrganizationSwitcherContext = createContext<MountProps>({\n  mount: () => {},\n  unmount: () => {},\n  updateProps: () => {},\n});\n\nconst _OrganizationSwitcher = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<OrganizationSwitcherPropsWithoutCustomPages> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const organizationProfileProps = { ...props.organizationProfileProps, customPages };\n    const sanitizedChildren = useSanitizedChildren(props.children);\n\n    const passableProps = {\n      mount: clerk.mountOrganizationSwitcher,\n      unmount: clerk.unmountOrganizationSwitcher,\n      updateProps: (clerk as any).__unstable__updateProps,\n      props: { ...props, organizationProfileProps },\n      rootProps: rendererRootProps,\n      component,\n    };\n\n    /**\n     * Prefetch organization list\n     */\n    clerk.__experimental_prefetchOrganizationSwitcher();\n\n    return (\n      <OrganizationSwitcherContext.Provider value={passableProps}>\n        <>\n          {shouldShowFallback && fallback}\n          {clerk.loaded && (\n            <ClerkHostRenderer\n              {...passableProps}\n              hideRootHtmlElement={!!props.__experimental_asProvider}\n            >\n              {/*This mimics the previous behaviour before asProvider existed*/}\n              {props.__experimental_asProvider ? sanitizedChildren : null}\n              <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n            </ClerkHostRenderer>\n          )}\n        </>\n      </OrganizationSwitcherContext.Provider>\n    );\n  },\n  { component: 'OrganizationSwitcher', renderWhileLoading: true },\n);\n\nexport function OrganizationSwitcherOutlet(\n  outletProps: Without<OrganizationSwitcherProps, 'organizationProfileProps'>,\n) {\n  const providerProps = useContext(OrganizationSwitcherContext);\n\n  const portalProps = {\n    ...providerProps,\n    props: {\n      ...providerProps.props,\n      ...outletProps,\n    },\n  } satisfies MountProps;\n\n  return <ClerkHostRenderer {...portalProps} />;\n}\n\nexport const OrganizationSwitcher: OrganizationSwitcherExportType = Object.assign(_OrganizationSwitcher, {\n  OrganizationProfilePage,\n  OrganizationProfileLink,\n  __experimental_Outlet: OrganizationSwitcherOutlet,\n});\n\nexport const OrganizationList = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<OrganizationListProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountOrganizationList}\n            unmount={clerk.unmountOrganizationList}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'OrganizationList', renderWhileLoading: true },\n);\n\nexport const GoogleOneTap = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<GoogleOneTapProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            open={clerk.openGoogleOneTap}\n            close={clerk.closeGoogleOneTap}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'GoogleOneTap', renderWhileLoading: true },\n);\n\nexport const Waitlist = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<WaitlistProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountWaitlist}\n            unmount={clerk.unmountWaitlist}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'Waitlist', renderWhileLoading: true },\n);\n\nexport const PricingTable = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<PricingTableProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component, {\n      // This attribute is added to the PricingTable root element after we've successfully fetched the plans asynchronously.\n      selector: '[data-component-status=\"ready\"]',\n    });\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountPricingTable}\n            unmount={clerk.unmountPricingTable}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'PricingTable', renderWhileLoading: true },\n);\n\n/**\n * @experimental This component is in early access and may change in future releases.\n */\nexport const APIKeys = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<APIKeysProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountAPIKeys}\n            unmount={clerk.unmountAPIKeys}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'ApiKeys', renderWhileLoading: true },\n);\n\nexport const UserAvatar = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<UserAvatarProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountUserAvatar}\n            unmount={clerk.unmountUserAvatar}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'UserAvatar', renderWhileLoading: true },\n);\n\nexport const TaskChooseOrganization = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskChooseOrganizationProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskChooseOrganization}\n            unmount={clerk.unmountTaskChooseOrganization}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskChooseOrganization', renderWhileLoading: true },\n);\n\nexport const TaskResetPassword = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskResetPasswordProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskResetPassword}\n            unmount={clerk.unmountTaskResetPassword}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskResetPassword', renderWhileLoading: true },\n);\n\nexport const TaskSetupMFA = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskSetupMFAProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskSetupMFA}\n            unmount={clerk.unmountTaskSetupMFA}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskSetupMFA', renderWhileLoading: true },\n);\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 React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\nimport { multipleChildrenInButtonComponent } from '../errors/messages';\n\nexport const assertSingleChild =\n  (children: React.ReactNode) =>\n  (\n    name:\n      | 'SignInButton'\n      | 'SignUpButton'\n      | 'SignOutButton'\n      | 'SignInWithMetamaskButton'\n      | 'CheckoutButton'\n      | 'SubscriptionDetailsButton'\n      | 'PlanDetailsButton',\n  ) => {\n    try {\n      return React.Children.only(children);\n    } catch {\n      return errorThrower.throw(multipleChildrenInButtonComponent(name));\n    }\n  };\n\nexport const normalizeWithDefaultValue = (children: React.ReactNode | undefined, defaultText: string) => {\n  if (!children) {\n    children = defaultText;\n  }\n  if (typeof children === 'string') {\n    children = <button>{children}</button>;\n  }\n  return children;\n};\n\nexport const safeExecute =\n  (cb: unknown) =>\n  (...args: any) => {\n    if (cb && typeof cb === 'function') {\n      return cb(...args);\n    }\n  };\n","export function isConstructor<T>(f: any): f is T {\n  return typeof f === 'function';\n}\n","import React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\n\nconst counts = new Map<string, number>();\n\nexport function useMaxAllowedInstancesGuard(name: string, error: string, maxCount = 1): void {\n  React.useEffect(() => {\n    const count = counts.get(name) || 0;\n    if (count == maxCount) {\n      return errorThrower.throw(error);\n    }\n    counts.set(name, count + 1);\n\n    return () => {\n      counts.set(name, (counts.get(name) || 1) - 1);\n    };\n  }, []);\n}\n\nexport function withMaxAllowedInstancesGuard<P>(\n  WrappedComponent: React.ComponentType<P>,\n  name: string,\n  error: string,\n): React.ComponentType<P> {\n  const displayName = WrappedComponent.displayName || WrappedComponent.name || name || 'Component';\n  const Hoc = (props: P) => {\n    useMaxAllowedInstancesGuard(name, error);\n    return <WrappedComponent {...(props as any)} />;\n  };\n  Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`;\n  return Hoc;\n}\n","import type React from 'react';\nimport { useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport type UseCustomElementPortalParams = {\n  component: React.ReactNode;\n  id: number;\n};\n\nexport type UseCustomElementPortalReturn = {\n  portal: () => React.JSX.Element;\n  mount: (node: Element) => void;\n  unmount: () => void;\n  id: number;\n};\n\n// This function takes a component as prop, and returns functions that mount and unmount\n// the given component into a given node\nexport const useCustomElementPortal = (elements: UseCustomElementPortalParams[]) => {\n  const [nodeMap, setNodeMap] = useState<Map<string, Element | null>>(new Map());\n\n  return elements.map(el => ({\n    id: el.id,\n    mount: (node: Element) => setNodeMap(prev => new Map(prev).set(String(el.id), node)),\n    unmount: () =>\n      setNodeMap(prev => {\n        const newMap = new Map(prev);\n        newMap.set(String(el.id), null);\n        return newMap;\n      }),\n    portal: () => {\n      const node = nodeMap.get(String(el.id));\n      return node ? createPortal(el.component, node) : null;\n    },\n  }));\n};\n","import type { CustomPage } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport {\n  MenuItems,\n  OrganizationProfileLink,\n  OrganizationProfilePage,\n  UserProfileLink,\n  UserProfilePage,\n} from '../components/uiComponents';\nimport { customLinkWrongProps, customPagesIgnoredComponent, customPageWrongProps } from '../errors/messages';\nimport type { UserProfilePageProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport type { UseCustomElementPortalParams, UseCustomElementPortalReturn } from './useCustomElementPortal';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserProfileCustomPages = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: UseCustomPagesOptions,\n) => {\n  const reorderItemsLabels = ['account', 'security', 'billing', 'apiKeys'];\n  return useCustomPages(\n    {\n      children,\n      reorderItemsLabels,\n      LinkComponent: UserProfileLink,\n      PageComponent: UserProfilePage,\n      MenuItemsComponent: MenuItems,\n      componentName: 'UserProfile',\n    },\n    options,\n  );\n};\n\nexport const useOrganizationProfileCustomPages = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: UseCustomPagesOptions,\n) => {\n  const reorderItemsLabels = ['general', 'members', 'billing', 'apiKeys'];\n  return useCustomPages(\n    {\n      children,\n      reorderItemsLabels,\n      LinkComponent: OrganizationProfileLink,\n      PageComponent: OrganizationProfilePage,\n      componentName: 'OrganizationProfile',\n    },\n    options,\n  );\n};\n\ntype UseCustomPagesParams = {\n  children: React.ReactNode | React.ReactNode[];\n  LinkComponent: any;\n  PageComponent: any;\n  MenuItemsComponent?: any;\n  reorderItemsLabels: string[];\n  componentName: string;\n};\n\ntype UseCustomPagesOptions = {\n  allowForAnyChildren: boolean;\n};\n\ntype CustomPageWithIdType = UserProfilePageProps & { children?: React.ReactNode };\n\n/**\n * Exclude any children that is used for identifying Custom Pages or Custom Items.\n * Passing:\n * ```tsx\n *  <UserProfile.Page/>\n *  <OrganizationProfile.Link/>\n *  <MyComponent>\n *  <UserButton.MenuItems/>\n * ```\n * Gives back\n * ```tsx\n * <MyComponent>\n * ````\n */\nexport const useSanitizedChildren = (children: React.ReactNode) => {\n  const sanitizedChildren: React.ReactNode[] = [];\n\n  const excludedComponents: any[] = [\n    OrganizationProfileLink,\n    OrganizationProfilePage,\n    MenuItems,\n    UserProfilePage,\n    UserProfileLink,\n  ];\n\n  React.Children.forEach(children, child => {\n    if (!excludedComponents.some(component => isThatComponent(child, component))) {\n      sanitizedChildren.push(child);\n    }\n  });\n\n  return sanitizedChildren;\n};\n\nconst useCustomPages = (params: UseCustomPagesParams, options?: UseCustomPagesOptions) => {\n  const { children, LinkComponent, PageComponent, MenuItemsComponent, reorderItemsLabels, componentName } = params;\n  const { allowForAnyChildren = false } = options || {};\n  const validChildren: CustomPageWithIdType[] = [];\n\n  React.Children.forEach(children, child => {\n    if (\n      !isThatComponent(child, PageComponent) &&\n      !isThatComponent(child, LinkComponent) &&\n      !isThatComponent(child, MenuItemsComponent)\n    ) {\n      if (child && !allowForAnyChildren) {\n        logErrorInDevMode(customPagesIgnoredComponent(componentName));\n      }\n      return;\n    }\n\n    const { props } = child as ReactElement;\n\n    const { children, label, url, labelIcon } = props;\n\n    if (isThatComponent(child, PageComponent)) {\n      if (isReorderItem(props, reorderItemsLabels)) {\n        // This is a reordering item\n        validChildren.push({ label });\n      } else if (isCustomPage(props)) {\n        // this is a custom page\n        validChildren.push({ label, labelIcon, children, url });\n      } else {\n        logErrorInDevMode(customPageWrongProps(componentName));\n        return;\n      }\n    }\n\n    if (isThatComponent(child, LinkComponent)) {\n      if (isExternalLink(props)) {\n        // This is an external link\n        validChildren.push({ label, labelIcon, url });\n      } else {\n        logErrorInDevMode(customLinkWrongProps(componentName));\n        return;\n      }\n    }\n  });\n\n  const customPageContents: UseCustomElementPortalParams[] = [];\n  const customPageLabelIcons: UseCustomElementPortalParams[] = [];\n  const customLinkLabelIcons: UseCustomElementPortalParams[] = [];\n\n  validChildren.forEach((cp, index) => {\n    if (isCustomPage(cp)) {\n      customPageContents.push({ component: cp.children, id: index });\n      customPageLabelIcons.push({ component: cp.labelIcon, id: index });\n      return;\n    }\n    if (isExternalLink(cp)) {\n      customLinkLabelIcons.push({ component: cp.labelIcon, id: index });\n    }\n  });\n\n  const customPageContentsPortals = useCustomElementPortal(customPageContents);\n  const customPageLabelIconsPortals = useCustomElementPortal(customPageLabelIcons);\n  const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons);\n\n  const customPages: CustomPage[] = [];\n  const customPagesPortals: React.ComponentType[] = [];\n\n  validChildren.forEach((cp, index) => {\n    if (isReorderItem(cp, reorderItemsLabels)) {\n      customPages.push({ label: cp.label });\n      return;\n    }\n    if (isCustomPage(cp)) {\n      const {\n        portal: contentPortal,\n        mount,\n        unmount,\n      } = customPageContentsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      const {\n        portal: labelPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customPageLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customPages.push({ label: cp.label, url: cp.url, mount, unmount, mountIcon, unmountIcon });\n      customPagesPortals.push(contentPortal);\n      customPagesPortals.push(labelPortal);\n      return;\n    }\n    if (isExternalLink(cp)) {\n      const {\n        portal: labelPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customLinkLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customPages.push({ label: cp.label, url: cp.url, mountIcon, unmountIcon });\n      customPagesPortals.push(labelPortal);\n      return;\n    }\n  });\n\n  return { customPages, customPagesPortals };\n};\n\nconst isReorderItem = (childProps: any, validItems: string[]): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !children && !url && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomPage = (childProps: any): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !!children && !!url && !!labelIcon && !!label;\n};\n\nconst isExternalLink = (childProps: any): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !children && !!url && !!labelIcon && !!label;\n};\n","import React from 'react';\n\nexport const isThatComponent = (v: any, component: React.ReactNode): v is React.ReactNode => {\n  return !!v && React.isValidElement(v) && (v as React.ReactElement)?.type === component;\n};\n","import type { CustomMenuItem } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { MenuAction, MenuItems, MenuLink, UserProfileLink, UserProfilePage } from '../components/uiComponents';\nimport {\n  customMenuItemsIgnoredComponent,\n  userButtonIgnoredComponent,\n  userButtonMenuItemLinkWrongProps,\n  userButtonMenuItemsActionWrongsProps,\n} from '../errors/messages';\nimport type { UserButtonActionProps, UserButtonLinkProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport type { UseCustomElementPortalParams, UseCustomElementPortalReturn } from './useCustomElementPortal';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserButtonCustomMenuItems = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: { allowForAnyChildren?: boolean },\n) => {\n  const reorderItemsLabels = ['manageAccount', 'signOut'];\n  return useCustomMenuItems({\n    children,\n    reorderItemsLabels,\n    MenuItemsComponent: MenuItems,\n    MenuActionComponent: MenuAction,\n    MenuLinkComponent: MenuLink,\n    UserProfileLinkComponent: UserProfileLink,\n    UserProfilePageComponent: UserProfilePage,\n    allowForAnyChildren: options?.allowForAnyChildren ?? false,\n  });\n};\n\ntype UseCustomMenuItemsParams = {\n  children: React.ReactNode | React.ReactNode[];\n  MenuItemsComponent?: any;\n  MenuActionComponent?: any;\n  MenuLinkComponent?: any;\n  UserProfileLinkComponent?: any;\n  UserProfilePageComponent?: any;\n  reorderItemsLabels: string[];\n  allowForAnyChildren?: boolean;\n};\n\ntype CustomMenuItemType = UserButtonActionProps | UserButtonLinkProps;\n\nconst useCustomMenuItems = ({\n  children,\n  MenuItemsComponent,\n  MenuActionComponent,\n  MenuLinkComponent,\n  UserProfileLinkComponent,\n  UserProfilePageComponent,\n  reorderItemsLabels,\n  allowForAnyChildren = false,\n}: UseCustomMenuItemsParams) => {\n  const validChildren: CustomMenuItemType[] = [];\n  const customMenuItems: CustomMenuItem[] = [];\n  const customMenuItemsPortals: React.ComponentType[] = [];\n\n  React.Children.forEach(children, child => {\n    if (\n      !isThatComponent(child, MenuItemsComponent) &&\n      !isThatComponent(child, UserProfileLinkComponent) &&\n      !isThatComponent(child, UserProfilePageComponent)\n    ) {\n      if (child && !allowForAnyChildren) {\n        logErrorInDevMode(userButtonIgnoredComponent);\n      }\n      return;\n    }\n\n    // Ignore UserProfileLinkComponent and UserProfilePageComponent\n    if (isThatComponent(child, UserProfileLinkComponent) || isThatComponent(child, UserProfilePageComponent)) {\n      return;\n    }\n\n    // Menu items children\n    const { props } = child as ReactElement;\n\n    React.Children.forEach(props.children, child => {\n      if (!isThatComponent(child, MenuActionComponent) && !isThatComponent(child, MenuLinkComponent)) {\n        if (child) {\n          logErrorInDevMode(customMenuItemsIgnoredComponent);\n        }\n\n        return;\n      }\n\n      const { props } = child as ReactElement;\n\n      const { label, labelIcon, href, onClick, open } = props;\n\n      if (isThatComponent(child, MenuActionComponent)) {\n        if (isReorderItem(props, reorderItemsLabels)) {\n          // This is a reordering item\n          validChildren.push({ label });\n        } else if (isCustomMenuItem(props)) {\n          const baseItem = {\n            label,\n            labelIcon,\n          };\n\n          if (onClick !== undefined) {\n            validChildren.push({\n              ...baseItem,\n              onClick,\n            });\n          } else if (open !== undefined) {\n            validChildren.push({\n              ...baseItem,\n              open: open.startsWith('/') ? open : `/${open}`,\n            });\n          } else {\n            // Handle the case where neither onClick nor open is defined\n            logErrorInDevMode('Custom menu item must have either onClick or open property');\n            return;\n          }\n        } else {\n          logErrorInDevMode(userButtonMenuItemsActionWrongsProps);\n          return;\n        }\n      }\n\n      if (isThatComponent(child, MenuLinkComponent)) {\n        if (isExternalLink(props)) {\n          validChildren.push({ label, labelIcon, href });\n        } else {\n          logErrorInDevMode(userButtonMenuItemLinkWrongProps);\n          return;\n        }\n      }\n    });\n  });\n\n  const customMenuItemLabelIcons: UseCustomElementPortalParams[] = [];\n  const customLinkLabelIcons: UseCustomElementPortalParams[] = [];\n  validChildren.forEach((mi, index) => {\n    if (isCustomMenuItem(mi)) {\n      customMenuItemLabelIcons.push({ component: mi.labelIcon, id: index });\n    }\n    if (isExternalLink(mi)) {\n      customLinkLabelIcons.push({ component: mi.labelIcon, id: index });\n    }\n  });\n\n  const customMenuItemLabelIconsPortals = useCustomElementPortal(customMenuItemLabelIcons);\n  const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons);\n\n  validChildren.forEach((mi, index) => {\n    if (isReorderItem(mi, reorderItemsLabels)) {\n      customMenuItems.push({\n        label: mi.label,\n      });\n    }\n    if (isCustomMenuItem(mi)) {\n      const {\n        portal: iconPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customMenuItemLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      const menuItem: CustomMenuItem = {\n        label: mi.label,\n        mountIcon,\n        unmountIcon,\n      };\n\n      if ('onClick' in mi) {\n        menuItem.onClick = mi.onClick;\n      } else if ('open' in mi) {\n        menuItem.open = mi.open;\n      }\n      customMenuItems.push(menuItem);\n      customMenuItemsPortals.push(iconPortal);\n    }\n    if (isExternalLink(mi)) {\n      const {\n        portal: iconPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customLinkLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customMenuItems.push({\n        label: mi.label,\n        href: mi.href,\n        mountIcon,\n        unmountIcon,\n      });\n      customMenuItemsPortals.push(iconPortal);\n    }\n  });\n\n  return { customMenuItems, customMenuItemsPortals };\n};\n\nconst isReorderItem = (childProps: any, validItems: string[]): boolean => {\n  const { children, label, onClick, labelIcon } = childProps;\n  return !children && !onClick && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomMenuItem = (childProps: any): childProps is UserButtonActionProps => {\n  const { label, labelIcon, onClick, open } = childProps;\n  return !!labelIcon && !!label && (typeof onClick === 'function' || typeof open === 'string');\n};\n\nconst isExternalLink = (childProps: any): childProps is UserButtonLinkProps => {\n  const { label, href, labelIcon } = childProps;\n  return !!href && !!labelIcon && !!label;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nconst createAwaitableMutationObserver = (\n  globalOptions: MutationObserverInit & {\n    isReady: (el: HTMLElement | null, selector: string) => boolean;\n  },\n) => {\n  const isReady = globalOptions?.isReady;\n\n  return (options: { selector: string; root?: HTMLElement | null; timeout?: number }) =>\n    new Promise<void>((resolve, reject) => {\n      const { root = document?.body, selector, timeout = 0 } = options;\n\n      if (!root) {\n        reject(new Error('No root element provided'));\n        return;\n      }\n\n      let elementToWatch: HTMLElement | null = root;\n      if (selector) {\n        elementToWatch = root?.querySelector(selector);\n      }\n\n      // Initial readiness check\n      if (isReady(elementToWatch, selector)) {\n        resolve();\n        return;\n      }\n\n      // Set up a MutationObserver to detect when the element has children\n      const observer = new MutationObserver(mutationsList => {\n        for (const mutation of mutationsList) {\n          if (!elementToWatch && selector) {\n            elementToWatch = root?.querySelector(selector);\n          }\n\n          if (\n            (globalOptions.childList && mutation.type === 'childList') ||\n            (globalOptions.attributes && mutation.type === 'attributes')\n          ) {\n            if (isReady(elementToWatch, selector)) {\n              observer.disconnect();\n              resolve();\n              return;\n            }\n          }\n        }\n      });\n\n      observer.observe(root, globalOptions);\n\n      // Set up an optional timeout to reject the promise if the element never gets child nodes\n      if (timeout > 0) {\n        setTimeout(() => {\n          observer.disconnect();\n          reject(new Error(`Timeout waiting for ${selector}`));\n        }, timeout);\n      }\n    });\n};\n\nconst waitForElementChildren = createAwaitableMutationObserver({\n  childList: true,\n  subtree: true,\n  isReady: (el, selector) => !!el?.childElementCount && el?.matches?.(selector) && el.childElementCount > 0,\n});\n\n/**\n * Detect when a Clerk component has mounted by watching DOM updates to an element with a `data-clerk-component=\"${component}\"` property.\n */\nexport function useWaitForComponentMount(\n  component?: string,\n  options?: { selector: string },\n): 'rendering' | 'rendered' | 'error' {\n  const watcherRef = useRef<Promise<void>>();\n  const [status, setStatus] = useState<'rendering' | 'rendered' | 'error'>('rendering');\n\n  useEffect(() => {\n    if (!component) {\n      throw new Error('Clerk: no component name provided, unable to detect mount.');\n    }\n\n    if (typeof window !== 'undefined' && !watcherRef.current) {\n      const defaultSelector = `[data-clerk-component=\"${component}\"]`;\n      const selector = options?.selector;\n      watcherRef.current = waitForElementChildren({\n        selector: selector\n          ? // Allows for `[data-clerk-component=\"xxxx\"][data-some-attribute=\"123\"] .my-class`\n            defaultSelector + selector\n          : defaultSelector,\n      })\n        .then(() => {\n          setStatus('rendered');\n        })\n        .catch(() => {\n          setStatus('error');\n        });\n    }\n  }, [component, options?.selector]);\n\n  return status;\n}\n","import { without } from '@clerk/shared/object';\nimport { isDeeplyEqual } from '@clerk/shared/react';\nimport type { PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { MountProps, OpenProps } from '../types';\n\nconst isMountProps = (props: any): props is MountProps => {\n  return 'mount' in props;\n};\n\nconst isOpenProps = (props: any): props is OpenProps => {\n  return 'open' in props;\n};\n\nconst stripMenuItemIconHandlers = (\n  menuItems?: Array<{\n    mountIcon?: (el: HTMLDivElement) => void;\n    unmountIcon?: (el: HTMLDivElement) => void;\n    [key: string]: any;\n  }>,\n) => {\n  return menuItems?.map(({ mountIcon, unmountIcon, ...rest }) => rest);\n};\n\n// README: <ClerkHostRenderer/> should be a class pure component in order for mount and unmount\n// lifecycle props to be invoked correctly. Replacing the class component with a\n// functional component wrapped with a React.memo is not identical to the original\n// class implementation due to React intricacies such as the useEffect’s cleanup\n// seems to run AFTER unmount, while componentWillUnmount runs BEFORE.\n\n// More information can be found at https://clerk.slack.com/archives/C015S0BGH8R/p1624891993016300\n\n// The function Portal implementation is commented out for future reference.\n\n// const Portal = React.memo(({ props, mount, unmount }: MountProps) => {\n//   const portalRef = React.createRef<HTMLDivElement>();\n\n//   useEffect(() => {\n//     if (portalRef.current) {\n//       mount(portalRef.current, props);\n//     }\n//     return () => {\n//       if (portalRef.current) {\n//         unmount(portalRef.current);\n//       }\n//     };\n//   }, []);\n\n//   return <div ref={portalRef} />;\n// });\n\n// Portal.displayName = 'ClerkPortal';\n\n/**\n * Used to orchestrate mounting of Clerk components in a host React application.\n * Components are rendered into a specific DOM node using mount/unmount methods provided by the Clerk class.\n */\nexport class ClerkHostRenderer extends React.PureComponent<\n  PropsWithChildren<\n    (MountProps | OpenProps) & {\n      component?: string;\n      hideRootHtmlElement?: boolean;\n      rootProps?: JSX.IntrinsicElements['div'];\n    }\n  >\n> {\n  private rootRef = React.createRef<HTMLDivElement>();\n\n  componentDidUpdate(_prevProps: Readonly<MountProps | OpenProps>) {\n    if (!isMountProps(_prevProps) || !isMountProps(this.props)) {\n      return;\n    }\n\n    // Remove children and customPages from props before comparing\n    // children might hold circular references which deepEqual can't handle\n    // and the implementation of customPages relies on props getting new references\n    const prevProps = without(_prevProps.props, 'customPages', 'customMenuItems', 'children');\n    const newProps = without(this.props.props, 'customPages', 'customMenuItems', 'children');\n\n    // instead, we simply use the length of customPages to determine if it changed or not\n    const customPagesChanged = prevProps.customPages?.length !== newProps.customPages?.length;\n    const customMenuItemsChanged = prevProps.customMenuItems?.length !== newProps.customMenuItems?.length;\n\n    // Strip out mountIcon and unmountIcon handlers since they're always generated as new function references,\n    // which would cause unnecessary re-renders in deep equality checks\n    const prevMenuItemsWithoutHandlers = stripMenuItemIconHandlers(_prevProps.props.customMenuItems);\n    const newMenuItemsWithoutHandlers = stripMenuItemIconHandlers(this.props.props.customMenuItems);\n\n    if (\n      !isDeeplyEqual(prevProps, newProps) ||\n      !isDeeplyEqual(prevMenuItemsWithoutHandlers, newMenuItemsWithoutHandlers) ||\n      customPagesChanged ||\n      customMenuItemsChanged\n    ) {\n      if (this.rootRef.current) {\n        this.props.updateProps({ node: this.rootRef.current, props: this.props.props });\n      }\n    }\n  }\n\n  componentDidMount() {\n    if (this.rootRef.current) {\n      if (isMountProps(this.props)) {\n        this.props.mount(this.rootRef.current, this.props.props);\n      }\n\n      if (isOpenProps(this.props)) {\n        this.props.open(this.props.props);\n      }\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.rootRef.current) {\n      if (isMountProps(this.props)) {\n        this.props.unmount(this.rootRef.current);\n      }\n      if (isOpenProps(this.props)) {\n        this.props.close();\n      }\n    }\n  }\n\n  render() {\n    const { hideRootHtmlElement = false } = this.props;\n    const rootAttributes = {\n      ref: this.rootRef,\n      ...this.props.rootProps,\n      ...(this.props.component && { 'data-clerk-component': this.props.component }),\n    };\n\n    return (\n      <>\n        {!hideRootHtmlElement && <div {...rootAttributes} />}\n        {this.props.children}\n      </>\n    );\n  }\n}\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","import { ClerkInstanceContext, useClerkInstanceContext } from '@clerk/shared/react';\n\nimport type { IsomorphicClerk } from '../isomorphicClerk';\n\nexport const IsomorphicClerkContext = ClerkInstanceContext;\nexport const useIsomorphicClerkContext = useClerkInstanceContext as unknown as () => IsomorphicClerk;\n","import { useAssertWrappedByClerkProvider as useSharedAssertWrappedByClerkProvider } from '@clerk/shared/react';\n\nimport { errorThrower } from '../errors/errorThrower';\n\nexport const useAssertWrappedByClerkProvider = (source: string): void => {\n  useSharedAssertWrappedByClerkProvider(() => {\n    errorThrower.throwMissingClerkProviderError({ source });\n  });\n};\n","import { deprecated } from '@clerk/shared/deprecated';\nimport type {\n  HandleOAuthCallbackParams,\n  PendingSessionOptions,\n  ProtectProps as _ProtectProps,\n} from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useSessionContext } from '../contexts/SessionContext';\nimport { useAuth } from '../hooks';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\nimport type { RedirectToSignInProps, RedirectToSignUpProps, RedirectToTasksProps, WithClerkProp } from '../types';\nimport { withClerk } from './withClerk';\n\nexport const SignedIn = ({ children, treatPendingAsSignedOut }: React.PropsWithChildren<PendingSessionOptions>) => {\n  useAssertWrappedByClerkProvider('SignedIn');\n\n  const { userId } = useAuth({ treatPendingAsSignedOut });\n  if (userId) {\n    return children;\n  }\n  return null;\n};\n\nexport const SignedOut = ({ children, treatPendingAsSignedOut }: React.PropsWithChildren<PendingSessionOptions>) => {\n  useAssertWrappedByClerkProvider('SignedOut');\n\n  const { userId } = useAuth({ treatPendingAsSignedOut });\n  if (userId === null) {\n    return children;\n  }\n  return null;\n};\n\nexport const ClerkLoaded = ({ children }: React.PropsWithChildren<unknown>) => {\n  useAssertWrappedByClerkProvider('ClerkLoaded');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  if (!isomorphicClerk.loaded) {\n    return null;\n  }\n  return children;\n};\n\nexport const ClerkLoading = ({ children }: React.PropsWithChildren<unknown>) => {\n  useAssertWrappedByClerkProvider('ClerkLoading');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  if (isomorphicClerk.status !== 'loading') {\n    return null;\n  }\n  return children;\n};\n\nexport const ClerkFailed = ({ children }: React.PropsWithChildren<unknown>) => {\n  useAssertWrappedByClerkProvider('ClerkFailed');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  if (isomorphicClerk.status !== 'error') {\n    return null;\n  }\n  return children;\n};\n\nexport const ClerkDegraded = ({ children }: React.PropsWithChildren<unknown>) => {\n  useAssertWrappedByClerkProvider('ClerkDegraded');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  if (isomorphicClerk.status !== 'degraded') {\n    return null;\n  }\n  return children;\n};\n\nexport type ProtectProps = React.PropsWithChildren<\n  _ProtectProps & {\n    fallback?: React.ReactNode;\n  } & PendingSessionOptions\n>;\n\n/**\n * Use `<Protect/>` in order to prevent unauthenticated or unauthorized users from accessing the children passed to the component.\n *\n * Examples:\n * ```\n * <Protect permission=\"a_permission_key\" />\n * <Protect role=\"a_role_key\" />\n * <Protect condition={(has) => has({permission:\"a_permission_key\"})} />\n * <Protect condition={(has) => has({role:\"a_role_key\"})} />\n * <Protect fallback={<p>Unauthorized</p>} />\n * ```\n */\nexport const Protect = ({ children, fallback, treatPendingAsSignedOut, ...restAuthorizedParams }: ProtectProps) => {\n  useAssertWrappedByClerkProvider('Protect');\n\n  const { isLoaded, has, userId } = useAuth({ treatPendingAsSignedOut });\n\n  /**\n   * Avoid flickering children or fallback while clerk is loading sessionId or userId\n   */\n  if (!isLoaded) {\n    return null;\n  }\n\n  /**\n   * Fallback to UI provided by user or `null` if authorization checks failed\n   */\n  const unauthorized = fallback ?? null;\n\n  const authorized = children;\n\n  if (!userId) {\n    return unauthorized;\n  }\n\n  /**\n   * Check against the results of `has` called inside the callback\n   */\n  if (typeof restAuthorizedParams.condition === 'function') {\n    if (restAuthorizedParams.condition(has)) {\n      return authorized;\n    }\n    return unauthorized;\n  }\n\n  if (\n    restAuthorizedParams.role ||\n    restAuthorizedParams.permission ||\n    restAuthorizedParams.feature ||\n    restAuthorizedParams.plan\n  ) {\n    if (has(restAuthorizedParams)) {\n      return authorized;\n    }\n    return unauthorized;\n  }\n\n  /**\n   * If neither of the authorization params are passed behave as the `<SignedIn/>`.\n   * If fallback is present render that instead of rendering nothing.\n   */\n  return authorized;\n};\n\nexport const RedirectToSignIn = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignInProps>) => {\n  const { client, session } = clerk;\n\n  const hasSignedInSessions = client.signedInSessions\n    ? client.signedInSessions.length > 0\n    : // Compat for clerk-js<5.54.0 (which was released with the `signedInSessions` property)\n      client.activeSessions && client.activeSessions.length > 0;\n\n  React.useEffect(() => {\n    if (session === null && hasSignedInSessions) {\n      void clerk.redirectToAfterSignOut();\n    } else {\n      void clerk.redirectToSignIn(props);\n    }\n  }, []);\n\n  return null;\n}, 'RedirectToSignIn');\n\nexport const RedirectToSignUp = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignUpProps>) => {\n  React.useEffect(() => {\n    void clerk.redirectToSignUp(props);\n  }, []);\n\n  return null;\n}, 'RedirectToSignUp');\n\nexport const RedirectToTasks = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToTasksProps>) => {\n  React.useEffect(() => {\n    void clerk.redirectToTasks(props);\n  }, []);\n\n  return null;\n}, 'RedirectToTasks');\n\n/**\n * @function\n * @deprecated Use [`redirectToUserProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-user-profile) instead.\n */\nexport const RedirectToUserProfile = withClerk(({ clerk }) => {\n  React.useEffect(() => {\n    deprecated('RedirectToUserProfile', 'Use the `redirectToUserProfile()` method instead.');\n    void clerk.redirectToUserProfile();\n  }, []);\n\n  return null;\n}, 'RedirectToUserProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToOrganizationProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-organization-profile) instead.\n */\nexport const RedirectToOrganizationProfile = withClerk(({ clerk }) => {\n  React.useEffect(() => {\n    deprecated('RedirectToOrganizationProfile', 'Use the `redirectToOrganizationProfile()` method instead.');\n    void clerk.redirectToOrganizationProfile();\n  }, []);\n\n  return null;\n}, 'RedirectToOrganizationProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToCreateOrganization()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-create-organization) instead.\n */\nexport const RedirectToCreateOrganization = withClerk(({ clerk }) => {\n  React.useEffect(() => {\n    deprecated('RedirectToCreateOrganization', 'Use the `redirectToCreateOrganization()` method instead.');\n    void clerk.redirectToCreateOrganization();\n  }, []);\n\n  return null;\n}, 'RedirectToCreateOrganization');\n\nexport const AuthenticateWithRedirectCallback = withClerk(\n  ({ clerk, ...handleRedirectCallbackParams }: WithClerkProp<HandleOAuthCallbackParams>) => {\n    React.useEffect(() => {\n      void clerk.handleRedirectCallback(handleRedirectCallbackParams);\n    }, []);\n\n    return null;\n  },\n  'AuthenticateWithRedirectCallback',\n);\n\nexport const MultisessionAppSupport = ({ children }: React.PropsWithChildren<unknown>) => {\n  useAssertWrappedByClerkProvider('MultisessionAppSupport');\n\n  const session = useSessionContext();\n  return <React.Fragment key={session ? session.id : 'no-users'}>{children}</React.Fragment>;\n};\n","export { SessionContext, useSessionContext } from '@clerk/shared/react';\n","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/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","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 { useClientContext } from '@clerk/shared/react';\nimport { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignInReturn } from '@clerk/shared/types';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\n/**\n * The `useSignIn()` hook provides access to the [`SignIn`](https://clerk.com/docs/reference/javascript/sign-in) object, which allows you to check the current state of a sign-in attempt and manage the sign-in flow. You can use this to create a [custom sign-in flow](!custom-flow).\n *\n * @unionReturnHeadings\n * [\"Initialization\", \"Loaded\"]\n *\n * @example\n * ### Check the current state of a sign-in\n *\n * The following example uses the `useSignIn()` hook to access the [`SignIn`](https://clerk.com/docs/reference/javascript/sign-in) object, which contains the current sign-in attempt status and methods to create a new sign-in attempt. The `isLoaded` property is used to handle the loading state.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/SignInPage.tsx' }}\n * import { useSignIn } from '@clerk/clerk-react'\n *\n * export default function SignInPage() {\n *   const { isLoaded, signIn } = useSignIn()\n *\n *   if (!isLoaded) {\n *     // Handle loading state\n *     return null\n *   }\n *\n *   return <div>The current sign-in attempt status is {signIn?.status}.</div>\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-sign-in.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n *\n * @example\n * ### Create a custom sign-in flow with `useSignIn()`\n *\n * The `useSignIn()` hook can also be used to build fully custom sign-in flows, if Clerk's prebuilt components don't meet your specific needs or if you require more control over the authentication flow. Different sign-in flows include email and password, email and phone codes, email links, and multifactor (MFA). To learn more about using the `useSignIn()` hook to create custom flows, see the [custom flow guides](https://clerk.com/docs/guides/development/custom-flows/overview).\n *\n * ```empty```\n */\nexport const useSignIn = (): UseSignInReturn => {\n  useAssertWrappedByClerkProvider('useSignIn');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  const client = useClientContext();\n\n  isomorphicClerk.telemetry?.record(eventMethodCalled('useSignIn'));\n\n  if (!client) {\n    return { isLoaded: false, signIn: undefined, setActive: undefined };\n  }\n\n  return {\n    isLoaded: true,\n    signIn: client.signIn,\n    setActive: isomorphicClerk.setActive,\n  };\n};\n","import { useClientContext } from '@clerk/shared/react';\nimport { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { UseSignUpReturn } from '@clerk/shared/types';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\n/**\n * The `useSignUp()` hook provides access to the [`SignUp`](https://clerk.com/docs/reference/javascript/sign-up) object, which allows you to check the current state of a sign-up attempt and manage the sign-up flow. You can use this to create a [custom sign-up flow](!custom-flow).\n *\n * @unionReturnHeadings\n * [\"Initialization\", \"Loaded\"]\n *\n * @example\n * ### Check the current state of a sign-up\n *\n * The following example uses the `useSignUp()` hook to access the [`SignUp`](https://clerk.com/docs/reference/javascript/sign-up) object, which contains the current sign-up attempt status and methods to create a new sign-up attempt. The `isLoaded` property is used to handle the loading state.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/SignUpPage.tsx' }}\n * import { useSignUp } from '@clerk/clerk-react'\n *\n * export default function SignUpPage() {\n *   const { isLoaded, signUp } = useSignUp()\n *\n *   if (!isLoaded) {\n *     // Handle loading state\n *     return null\n *   }\n *\n *   return <div>The current sign-up attempt status is {signUp?.status}.</div>\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-sign-up.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n *\n * @example\n * ### Create a custom sign-up flow with `useSignUp()`\n *\n * The `useSignUp()` hook can also be used to build fully custom sign-up flows, if Clerk's prebuilt components don't meet your specific needs or if you require more control over the authentication flow. Different sign-up flows include email and password, email and phone codes, email links, and multifactor (MFA). To learn more about using the `useSignUp()` hook to create custom flows, see the [custom flow guides](https://clerk.com/docs/guides/development/custom-flows/overview).\n *\n * ```empty```\n */\nexport const useSignUp = (): UseSignUpReturn => {\n  useAssertWrappedByClerkProvider('useSignUp');\n\n  const isomorphicClerk = useIsomorphicClerkContext();\n  const client = useClientContext();\n\n  isomorphicClerk.telemetry?.record(eventMethodCalled('useSignUp'));\n\n  if (!client) {\n    return { isLoaded: false, signUp: undefined, setActive: undefined };\n  }\n\n  return {\n    isLoaded: true,\n    signUp: client.signUp,\n    setActive: isomorphicClerk.setActive,\n  };\n};\n","export { useAuth } from './useAuth';\nexport { useEmailLink } from './useEmailLink';\nexport { useSignIn } from './useSignIn';\nexport { useSignUp } from './useSignUp';\nexport {\n  useClerk,\n  useOrganization,\n  useOrganizationCreationDefaults,\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';\nexport type { UseOrganizationCreationDefaultsParams, UseOrganizationCreationDefaultsReturn } from '@clerk/shared/react';\n","import type { SignInButtonProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignInButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<React.PropsWithChildren<SignInButtonProps>>) => {\n    const {\n      // @ts-expect-error - appearance is a valid prop for SignInProps & SignInButtonPropsModal\n      appearance,\n      signUpFallbackRedirectUrl,\n      forceRedirectUrl,\n      fallbackRedirectUrl,\n      signUpForceRedirectUrl,\n      mode,\n      initialValues,\n      withSignUp,\n      oauthFlow,\n      ...rest\n    } = props;\n    children = normalizeWithDefaultValue(children, 'Sign in');\n    const child = assertSingleChild(children)('SignInButton');\n\n    const clickHandler = () => {\n      const opts: SignInProps = {\n        forceRedirectUrl,\n        fallbackRedirectUrl,\n        signUpFallbackRedirectUrl,\n        signUpForceRedirectUrl,\n        initialValues,\n        withSignUp,\n        oauthFlow,\n      };\n\n      if (mode === 'modal') {\n        return clerk.openSignIn({ ...opts, appearance });\n      }\n      return clerk.redirectToSignIn({\n        ...opts,\n        signInFallbackRedirectUrl: fallbackRedirectUrl,\n        signInForceRedirectUrl: forceRedirectUrl,\n      });\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      if (child && typeof child === 'object' && 'props' in child) {\n        await safeExecute(child.props.onClick)(e);\n      }\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignInButton', renderWhileLoading: true },\n);\n","import React from 'react';\n\nimport type { SignInWithMetamaskButtonProps, WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignInWithMetamaskButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<SignInWithMetamaskButtonProps>) => {\n    const { redirectUrl, ...rest } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign in with Metamask');\n    const child = assertSingleChild(children)('SignInWithMetamaskButton');\n\n    // TODO: Properly fix this code\n    // eslint-disable-next-line @typescript-eslint/require-await\n    const clickHandler = async () => {\n      async function authenticate() {\n        await clerk.authenticateWithMetamask({ redirectUrl: redirectUrl || undefined });\n      }\n      void authenticate();\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      await safeExecute((child as any).props.onClick)(e);\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignInWithMetamask', renderWhileLoading: true },\n);\n","import type { SignOutOptions } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport type SignOutButtonProps = {\n  redirectUrl?: string;\n  signOutOptions?: SignOutOptions;\n  children?: React.ReactNode;\n};\n\nexport const SignOutButton = withClerk(\n  ({ clerk, children, ...props }: React.PropsWithChildren<WithClerkProp<SignOutButtonProps>>) => {\n    const { redirectUrl = '/', signOutOptions, ...rest } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign out');\n    const child = assertSingleChild(children)('SignOutButton');\n\n    const clickHandler = () => clerk.signOut({ redirectUrl, ...signOutOptions });\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      await safeExecute((child as any).props.onClick)(e);\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignOutButton', renderWhileLoading: true },\n);\n","import type { SignUpButtonProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignUpButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<React.PropsWithChildren<SignUpButtonProps>>) => {\n    const {\n      // @ts-expect-error - appearance is a valid prop for SignUpProps & SignUpButtonPropsModal\n      appearance,\n      // @ts-expect-error - unsafeMetadata is a valid prop for SignUpProps & SignUpButtonPropsModal\n      unsafeMetadata,\n      fallbackRedirectUrl,\n      forceRedirectUrl,\n      signInFallbackRedirectUrl,\n      signInForceRedirectUrl,\n      mode,\n      initialValues,\n      oauthFlow,\n      ...rest\n    } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign up');\n    const child = assertSingleChild(children)('SignUpButton');\n\n    const clickHandler = () => {\n      const opts: SignUpProps = {\n        fallbackRedirectUrl,\n        forceRedirectUrl,\n        signInFallbackRedirectUrl,\n        signInForceRedirectUrl,\n        initialValues,\n        oauthFlow,\n      };\n\n      if (mode === 'modal') {\n        return clerk.openSignUp({\n          ...opts,\n          appearance,\n          unsafeMetadata,\n        });\n      }\n\n      return clerk.redirectToSignUp({\n        ...opts,\n        signUpFallbackRedirectUrl: fallbackRedirectUrl,\n        signUpForceRedirectUrl: forceRedirectUrl,\n      });\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      if (child && typeof child === 'object' && 'props' in child) {\n        await safeExecute(child.props.onClick)(e);\n      }\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignUpButton', renderWhileLoading: true },\n);\n","import { isPublishableKey } from '@clerk/shared/keys';\nimport React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\nimport { multipleClerkProvidersError } from '../errors/messages';\nimport type { ClerkProviderProps } from '../types';\nimport { withMaxAllowedInstancesGuard } from '../utils';\nimport { ClerkContextProvider } from './ClerkContextProvider';\n\nfunction ClerkProviderBase(props: ClerkProviderProps) {\n  const { initialState, children, __internal_bypassMissingPublishableKey, ...restIsomorphicClerkOptions } = props;\n  const { publishableKey = '', Clerk: userInitialisedClerk } = restIsomorphicClerkOptions;\n\n  if (!userInitialisedClerk && !__internal_bypassMissingPublishableKey) {\n    if (!publishableKey) {\n      errorThrower.throwMissingPublishableKeyError();\n    } else if (publishableKey && !isPublishableKey(publishableKey)) {\n      errorThrower.throwInvalidPublishableKeyError({ key: publishableKey });\n    }\n  }\n\n  return (\n    <ClerkContextProvider\n      initialState={initialState}\n      isomorphicClerkOptions={restIsomorphicClerkOptions}\n    >\n      {children}\n    </ClerkContextProvider>\n  );\n}\n\nconst ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, 'ClerkProvider', multipleClerkProvidersError);\n\nClerkProvider.displayName = 'ClerkProvider';\n\nexport { ClerkProvider };\n","import { deriveState } from '@clerk/shared/deriveState';\nimport {\n  __experimental_CheckoutProvider as CheckoutProvider,\n  ClientContext,\n  OrganizationProvider,\n  SessionContext,\n  UserContext,\n} from '@clerk/shared/react';\nimport type { ClientResource, InitialState, Resources } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { IsomorphicClerk } from '../isomorphicClerk';\nimport type { IsomorphicClerkOptions } from '../types';\nimport { AuthContext } from './AuthContext';\nimport { IsomorphicClerkContext } from './IsomorphicClerkContext';\n\ntype ClerkContextProvider = {\n  isomorphicClerkOptions: IsomorphicClerkOptions;\n  initialState: InitialState | undefined;\n  children: React.ReactNode;\n};\n\nexport type ClerkContextProviderState = Resources;\n\nexport function ClerkContextProvider(props: ClerkContextProvider) {\n  const { isomorphicClerkOptions, initialState, children } = props;\n  const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions);\n\n  const [state, setState] = React.useState<ClerkContextProviderState>({\n    client: clerk.client as ClientResource,\n    session: clerk.session,\n    user: clerk.user,\n    organization: clerk.organization,\n  });\n\n  React.useEffect(() => {\n    return clerk.addListener(e => setState({ ...e }));\n  }, []);\n\n  const derivedState = deriveState(clerk.loaded, state, initialState);\n  const clerkCtx = React.useMemo(\n    () => ({ value: clerk }),\n    [\n      // Only update the clerk reference on status change\n      clerkStatus,\n    ],\n  );\n  const clientCtx = React.useMemo(() => ({ value: state.client }), [state.client]);\n\n  const {\n    sessionId,\n    sessionStatus,\n    sessionClaims,\n    session,\n    userId,\n    user,\n    orgId,\n    actor,\n    organization,\n    orgRole,\n    orgSlug,\n    orgPermissions,\n    factorVerificationAge,\n  } = derivedState;\n\n  const authCtx = React.useMemo(() => {\n    const value = {\n      sessionId,\n      sessionStatus,\n      sessionClaims,\n      userId,\n      actor,\n      orgId,\n      orgRole,\n      orgSlug,\n      orgPermissions,\n      factorVerificationAge,\n    };\n    return { value };\n  }, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims?.__raw]);\n\n  const sessionCtx = React.useMemo(() => ({ value: session }), [sessionId, session]);\n  const userCtx = React.useMemo(() => ({ value: user }), [userId, user]);\n  const organizationCtx = React.useMemo(() => {\n    const value = {\n      organization: organization,\n    };\n    return { value };\n  }, [orgId, organization]);\n\n  return (\n    // @ts-expect-error value passed is of type IsomorphicClerk where the context expects LoadedClerk\n    <IsomorphicClerkContext.Provider value={clerkCtx}>\n      <ClientContext.Provider value={clientCtx}>\n        <SessionContext.Provider value={sessionCtx}>\n          <OrganizationProvider {...organizationCtx.value}>\n            <AuthContext.Provider value={authCtx}>\n              <UserContext.Provider value={userCtx}>\n                <CheckoutProvider\n                  // @ts-expect-error - value is not used\n                  value={undefined}\n                >\n                  {children}\n                </CheckoutProvider>\n              </UserContext.Provider>\n            </AuthContext.Provider>\n          </OrganizationProvider>\n        </SessionContext.Provider>\n      </ClientContext.Provider>\n    </IsomorphicClerkContext.Provider>\n  );\n}\n\nconst useLoadedIsomorphicClerk = (options: IsomorphicClerkOptions) => {\n  const isomorphicClerkRef = React.useRef(IsomorphicClerk.getOrCreateInstance(options));\n  const [clerkStatus, setClerkStatus] = React.useState(isomorphicClerkRef.current.status);\n\n  React.useEffect(() => {\n    void isomorphicClerkRef.current.__unstable__updateProps({ appearance: options.appearance });\n  }, [options.appearance]);\n\n  React.useEffect(() => {\n    void isomorphicClerkRef.current.__unstable__updateProps({ options });\n  }, [options.localization]);\n\n  React.useEffect(() => {\n    isomorphicClerkRef.current.on('status', setClerkStatus);\n    return () => {\n      if (isomorphicClerkRef.current) {\n        isomorphicClerkRef.current.off('status', setClerkStatus);\n      }\n      IsomorphicClerk.clearInstance();\n    };\n  }, []);\n\n  return { isomorphicClerk: isomorphicClerkRef.current, clerkStatus };\n};\n","import { inBrowser } from '@clerk/shared/browser';\nimport { clerkEvents, createClerkEventBus } from '@clerk/shared/clerkEventBus';\nimport { loadClerkJsScript } from '@clerk/shared/loadClerkJsScript';\nimport type {\n  __internal_AttemptToEnableEnvironmentSettingParams,\n  __internal_AttemptToEnableEnvironmentSettingResult,\n  __internal_CheckoutProps,\n  __internal_EnableOrganizationsPromptProps,\n  __internal_OAuthConsentProps,\n  __internal_PlanDetailsProps,\n  __internal_SubscriptionDetailsProps,\n  __internal_UserVerificationModalProps,\n  __internal_UserVerificationProps,\n  APIKeysNamespace,\n  APIKeysProps,\n  AuthenticateWithBaseParams,\n  AuthenticateWithCoinbaseWalletParams,\n  AuthenticateWithGoogleOneTapParams,\n  AuthenticateWithMetamaskParams,\n  AuthenticateWithOKXWalletParams,\n  AuthenticateWithSolanaParams,\n  BillingNamespace,\n  Clerk,\n  ClerkAuthenticateWithWeb3Params,\n  ClerkOptions,\n  ClerkStatus,\n  ClientResource,\n  CreateOrganizationParams,\n  CreateOrganizationProps,\n  DomainOrProxyUrl,\n  GoogleOneTapProps,\n  HandleEmailLinkVerificationParams,\n  HandleOAuthCallbackParams,\n  JoinWaitlistParams,\n  ListenerCallback,\n  LoadedClerk,\n  OrganizationListProps,\n  OrganizationProfileProps,\n  OrganizationResource,\n  OrganizationSwitcherProps,\n  PricingTableProps,\n  RedirectOptions,\n  SetActiveParams,\n  SignInProps,\n  SignInRedirectOptions,\n  SignInResource,\n  SignUpProps,\n  SignUpRedirectOptions,\n  SignUpResource,\n  State,\n  TaskChooseOrganizationProps,\n  TaskResetPasswordProps,\n  TaskSetupMFAProps,\n  TasksRedirectOptions,\n  UnsubscribeCallback,\n  UserAvatarProps,\n  UserButtonProps,\n  UserProfileProps,\n  WaitlistProps,\n  WaitlistResource,\n  Without,\n} from '@clerk/shared/types';\nimport { handleValueOrFn } from '@clerk/shared/utils';\n\nimport { errorThrower } from './errors/errorThrower';\nimport { unsupportedNonBrowserDomainOrProxyUrlFunction } from './errors/messages';\nimport { StateProxy } from './stateProxy';\nimport type {\n  BrowserClerk,\n  BrowserClerkConstructor,\n  ClerkProp,\n  HeadlessBrowserClerk,\n  HeadlessBrowserClerkConstructor,\n  IsomorphicClerkOptions,\n} from './types';\nimport { isConstructor } from './utils';\n\nif (typeof globalThis.__BUILD_DISABLE_RHC__ === 'undefined') {\n  globalThis.__BUILD_DISABLE_RHC__ = false;\n}\n\nconst SDK_METADATA = {\n  name: PACKAGE_NAME,\n  version: PACKAGE_VERSION,\n  environment: process.env.NODE_ENV,\n};\n\nexport interface Global {\n  Clerk?: HeadlessBrowserClerk | BrowserClerk;\n}\n\ndeclare const global: Global;\n\ntype GenericFunction<TArgs = never> = (...args: TArgs[]) => unknown;\n\ntype MethodName<T> = {\n  [P in keyof T]: T[P] extends GenericFunction ? P : never;\n}[keyof T];\n\ntype MethodCallback = () => Promise<unknown> | unknown;\n\ntype WithVoidReturn<F extends (...args: any) => any> = (\n  ...args: Parameters<F>\n) => ReturnType<F> extends Promise<infer T> ? Promise<T | void> : ReturnType<F> | void;\ntype WithVoidReturnFunctions<T> = {\n  [K in keyof T]: T[K] extends (...args: any) => any ? WithVoidReturn<T[K]> : T[K];\n};\n\ntype IsomorphicLoadedClerk = Without<\n  WithVoidReturnFunctions<LoadedClerk>,\n  | 'client'\n  | '__internal_addNavigationListener'\n  | '__internal_getCachedResources'\n  | '__internal_reloadInitialResources'\n  | 'billing'\n  | 'apiKeys'\n  | '__internal_setActiveInProgress'\n> & {\n  client: ClientResource | undefined;\n  billing: BillingNamespace | undefined;\n  apiKeys: APIKeysNamespace | undefined;\n};\n\nexport class IsomorphicClerk implements IsomorphicLoadedClerk {\n  private readonly mode: 'browser' | 'server';\n  private readonly options: IsomorphicClerkOptions;\n  private readonly Clerk: ClerkProp;\n  private clerkjs: BrowserClerk | HeadlessBrowserClerk | null = null;\n  private preopenOneTap?: null | GoogleOneTapProps = null;\n  private preopenUserVerification?: null | __internal_UserVerificationProps = null;\n  private preopenEnableOrganizationsPrompt?: null | __internal_EnableOrganizationsPromptProps = null;\n  private preopenSignIn?: null | SignInProps = null;\n  private preopenCheckout?: null | __internal_CheckoutProps = null;\n  private preopenPlanDetails: null | __internal_PlanDetailsProps = null;\n  private preopenSubscriptionDetails: null | __internal_SubscriptionDetailsProps = null;\n  private preopenSignUp?: null | SignUpProps = null;\n  private preopenUserProfile?: null | UserProfileProps = null;\n  private preopenOrganizationProfile?: null | OrganizationProfileProps = null;\n  private preopenCreateOrganization?: null | CreateOrganizationProps = null;\n  private preOpenWaitlist?: null | WaitlistProps = null;\n  private premountSignInNodes = new Map<HTMLDivElement, SignInProps | undefined>();\n  private premountSignUpNodes = new Map<HTMLDivElement, SignUpProps | undefined>();\n  private premountUserAvatarNodes = new Map<HTMLDivElement, UserAvatarProps | undefined>();\n  private premountUserProfileNodes = new Map<HTMLDivElement, UserProfileProps | undefined>();\n  private premountUserButtonNodes = new Map<HTMLDivElement, UserButtonProps | undefined>();\n  private premountOrganizationProfileNodes = new Map<HTMLDivElement, OrganizationProfileProps | undefined>();\n  private premountCreateOrganizationNodes = new Map<HTMLDivElement, CreateOrganizationProps | undefined>();\n  private premountOrganizationSwitcherNodes = new Map<HTMLDivElement, OrganizationSwitcherProps | undefined>();\n  private premountOrganizationListNodes = new Map<HTMLDivElement, OrganizationListProps | undefined>();\n  private premountMethodCalls = new Map<MethodName<BrowserClerk>, MethodCallback>();\n  private premountWaitlistNodes = new Map<HTMLDivElement, WaitlistProps | undefined>();\n  private premountPricingTableNodes = new Map<HTMLDivElement, PricingTableProps | undefined>();\n  private premountAPIKeysNodes = new Map<HTMLDivElement, APIKeysProps | undefined>();\n  private premountOAuthConsentNodes = new Map<HTMLDivElement, __internal_OAuthConsentProps | undefined>();\n  private premountTaskChooseOrganizationNodes = new Map<HTMLDivElement, TaskChooseOrganizationProps | undefined>();\n  private premountTaskResetPasswordNodes = new Map<HTMLDivElement, TaskResetPasswordProps | undefined>();\n  private premountTaskSetupMFANodes = new Map<HTMLDivElement, TaskSetupMFAProps | undefined>();\n  // A separate Map of `addListener` method calls to handle multiple listeners.\n  private premountAddListenerCalls = new Map<\n    ListenerCallback,\n    {\n      unsubscribe: UnsubscribeCallback;\n      nativeUnsubscribe?: UnsubscribeCallback;\n    }\n  >();\n  private loadedListeners: Array<() => void> = [];\n\n  #status: ClerkStatus = 'loading';\n  #domain: DomainOrProxyUrl['domain'];\n  #proxyUrl: DomainOrProxyUrl['proxyUrl'];\n  #publishableKey: string;\n  #eventBus = createClerkEventBus();\n  #stateProxy: StateProxy;\n\n  get publishableKey(): string {\n    return this.#publishableKey;\n  }\n\n  get loaded(): boolean {\n    return this.clerkjs?.loaded || false;\n  }\n\n  get status(): ClerkStatus {\n    /**\n     * If clerk-js is not available the returned value can either be \"loading\" or \"error\".\n     */\n    if (!this.clerkjs) {\n      return this.#status;\n    }\n    return (\n      this.clerkjs?.status ||\n      /**\n       * Support older clerk-js versions.\n       * If clerk-js is available but `.status` is missing it we need to fallback to `.loaded`.\n       * Since \"degraded\" an \"error\" did not exist before,\n       * map \"loaded\" to \"ready\" and \"not loaded\" to \"loading\".\n       */\n      (this.clerkjs.loaded ? 'ready' : 'loading')\n    );\n  }\n\n  static #instance: IsomorphicClerk | null | undefined;\n\n  static getOrCreateInstance(options: IsomorphicClerkOptions) {\n    // During SSR: a new instance should be created for every request\n    // During CSR: use the cached instance for the whole lifetime of the app\n    // Also will recreate the instance if the provided Clerk instance changes\n    // This method should be idempotent in both scenarios\n    if (\n      !inBrowser() ||\n      !this.#instance ||\n      (options.Clerk && this.#instance.Clerk !== options.Clerk) ||\n      // Allow hot swapping PKs on the client\n      this.#instance.publishableKey !== options.publishableKey\n    ) {\n      this.#instance = new IsomorphicClerk(options);\n    }\n    return this.#instance;\n  }\n\n  static clearInstance() {\n    this.#instance = null;\n  }\n\n  get domain(): string {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use domain as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.#domain, new URL(window.location.href), '');\n    }\n    if (typeof this.#domain === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return this.#domain || '';\n  }\n\n  get proxyUrl(): string {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use proxy as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.#proxyUrl, new URL(window.location.href), '');\n    }\n    if (typeof this.#proxyUrl === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return this.#proxyUrl || '';\n  }\n\n  /**\n   * Accesses private options from the `Clerk` instance and defaults to\n   * `IsomorphicClerk` options when in SSR context.\n   *  @internal\n   */\n  public __internal_getOption<K extends keyof ClerkOptions>(key: K): ClerkOptions[K] | undefined {\n    return this.clerkjs?.__internal_getOption ? this.clerkjs?.__internal_getOption(key) : this.options[key];\n  }\n\n  constructor(options: IsomorphicClerkOptions) {\n    const { Clerk = null, publishableKey } = options || {};\n    this.#publishableKey = publishableKey;\n    this.#proxyUrl = options?.proxyUrl;\n    this.#domain = options?.domain;\n    this.options = options;\n    this.Clerk = Clerk;\n    this.mode = inBrowser() ? 'browser' : 'server';\n    this.#stateProxy = new StateProxy(this);\n\n    if (!this.options.sdkMetadata) {\n      this.options.sdkMetadata = SDK_METADATA;\n    }\n    this.#eventBus.emit(clerkEvents.Status, 'loading');\n    this.#eventBus.prioritizedOn(clerkEvents.Status, status => (this.#status = status));\n\n    if (this.#publishableKey) {\n      void this.loadClerkJS();\n    }\n  }\n\n  get sdkMetadata() {\n    return this.clerkjs?.sdkMetadata || this.options.sdkMetadata || undefined;\n  }\n\n  get instanceType() {\n    return this.clerkjs?.instanceType;\n  }\n\n  get frontendApi() {\n    return this.clerkjs?.frontendApi || '';\n  }\n\n  get isStandardBrowser() {\n    return this.clerkjs?.isStandardBrowser || this.options.standardBrowser || false;\n  }\n\n  get __internal_queryClient() {\n    // @ts-expect-error - __internal_queryClient is not typed\n    return this.clerkjs?.__internal_queryClient;\n  }\n\n  get isSatellite() {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use domain as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.options.isSatellite, new URL(window.location.href), false);\n    }\n    if (typeof this.options.isSatellite === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return false;\n  }\n\n  buildSignInUrl = (opts?: RedirectOptions): string | void => {\n    const callback = () => this.clerkjs?.buildSignInUrl(opts) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildSignInUrl', callback);\n    }\n  };\n\n  buildSignUpUrl = (opts?: RedirectOptions): string | void => {\n    const callback = () => this.clerkjs?.buildSignUpUrl(opts) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildSignUpUrl', callback);\n    }\n  };\n\n  buildAfterSignInUrl = (...args: Parameters<Clerk['buildAfterSignInUrl']>): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignInUrl(...args) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignInUrl', callback);\n    }\n  };\n\n  buildAfterSignUpUrl = (...args: Parameters<Clerk['buildAfterSignUpUrl']>): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignUpUrl(...args) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignUpUrl', callback);\n    }\n  };\n\n  buildAfterSignOutUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignOutUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignOutUrl', callback);\n    }\n  };\n\n  buildNewSubscriptionRedirectUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildNewSubscriptionRedirectUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildNewSubscriptionRedirectUrl', callback);\n    }\n  };\n\n  buildAfterMultiSessionSingleSignOutUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildAfterMultiSessionSingleSignOutUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterMultiSessionSingleSignOutUrl', callback);\n    }\n  };\n\n  buildUserProfileUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildUserProfileUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildUserProfileUrl', callback);\n    }\n  };\n\n  buildCreateOrganizationUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildCreateOrganizationUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildCreateOrganizationUrl', callback);\n    }\n  };\n\n  buildOrganizationProfileUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildOrganizationProfileUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildOrganizationProfileUrl', callback);\n    }\n  };\n\n  buildWaitlistUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildWaitlistUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildWaitlistUrl', callback);\n    }\n  };\n\n  buildTasksUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildTasksUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildTasksUrl', callback);\n    }\n  };\n\n  buildUrlWithAuth = (to: string): string | void => {\n    const callback = () => this.clerkjs?.buildUrlWithAuth(to) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildUrlWithAuth', callback);\n    }\n  };\n\n  handleUnauthenticated = async () => {\n    const callback = () => this.clerkjs?.handleUnauthenticated();\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('handleUnauthenticated', callback);\n    }\n  };\n\n  #waitForClerkJS(): Promise<HeadlessBrowserClerk | BrowserClerk> {\n    return new Promise<HeadlessBrowserClerk | BrowserClerk>(resolve => {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      this.addOnLoaded(() => resolve(this.clerkjs!));\n    });\n  }\n\n  async loadClerkJS(): Promise<HeadlessBrowserClerk | BrowserClerk | undefined> {\n    if (this.mode !== 'browser' || this.loaded) {\n      return;\n    }\n\n    // Store frontendAPI value on window as a fallback. This value can be used as a\n    // fallback during ClerkJS hot loading in case ClerkJS fails to find the\n    // \"data-clerk-frontend-api\" attribute on its script tag.\n\n    // This can happen when the DOM is altered completely during client rehydration.\n    // For example, in Remix with React 18 the document changes completely via `hydrateRoot(document)`.\n\n    // For more information refer to:\n    // - https://github.com/remix-run/remix/issues/2947\n    // - https://github.com/facebook/react/issues/24430\n    if (typeof window !== 'undefined') {\n      window.__clerk_publishable_key = this.#publishableKey;\n      window.__clerk_proxy_url = this.proxyUrl;\n      window.__clerk_domain = this.domain;\n    }\n\n    try {\n      if (this.Clerk) {\n        // Set a fixed Clerk version\n        let c: ClerkProp;\n\n        if (isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.Clerk)) {\n          // Construct a new Clerk object if a constructor is passed\n          c = new this.Clerk(this.#publishableKey, {\n            proxyUrl: this.proxyUrl,\n            domain: this.domain,\n          } as any);\n\n          this.beforeLoad(c);\n          await c.load(this.options);\n        } else {\n          // Otherwise use the instantiated Clerk object\n          c = this.Clerk;\n          if (!c.loaded) {\n            this.beforeLoad(c);\n            await c.load(this.options);\n          }\n        }\n\n        global.Clerk = c;\n      } else if (!__BUILD_DISABLE_RHC__) {\n        // Hot-load latest ClerkJS from Clerk CDN\n        if (!global.Clerk) {\n          await loadClerkJsScript({\n            ...this.options,\n            publishableKey: this.#publishableKey,\n            proxyUrl: this.proxyUrl,\n            domain: this.domain,\n            nonce: this.options.nonce,\n          });\n        }\n\n        if (!global.Clerk) {\n          throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n        }\n\n        this.beforeLoad(global.Clerk);\n        await global.Clerk.load(this.options);\n      }\n\n      if (global.Clerk?.loaded) {\n        return this.hydrateClerkJS(global.Clerk);\n      }\n      return;\n    } catch (err) {\n      const error = err as Error;\n      this.#eventBus.emit(clerkEvents.Status, 'error');\n      console.error(error.stack || error.message || error);\n      return;\n    }\n  }\n\n  public on: Clerk['on'] = (...args) => {\n    // Support older clerk-js versions.\n    if (this.clerkjs?.on) {\n      return this.clerkjs.on(...args);\n    } else {\n      this.#eventBus.on(...args);\n    }\n  };\n\n  public off: Clerk['off'] = (...args) => {\n    // Support older clerk-js versions.\n    if (this.clerkjs?.off) {\n      return this.clerkjs.off(...args);\n    } else {\n      this.#eventBus.off(...args);\n    }\n  };\n\n  /**\n   * @deprecated Please use `addStatusListener`. This api will be removed in the next major.\n   */\n  public addOnLoaded = (cb: () => void) => {\n    this.loadedListeners.push(cb);\n    /**\n     * When IsomorphicClerk is loaded execute the callback directly\n     */\n    if (this.loaded) {\n      this.emitLoaded();\n    }\n  };\n\n  /**\n   * @deprecated Please use `__internal_setStatus`. This api will be removed in the next major.\n   */\n  public emitLoaded = () => {\n    this.loadedListeners.forEach(cb => cb());\n    this.loadedListeners = [];\n  };\n\n  private beforeLoad = (clerkjs: BrowserClerk | HeadlessBrowserClerk | undefined) => {\n    if (!clerkjs) {\n      throw new Error('Failed to hydrate latest Clerk JS');\n    }\n  };\n\n  private hydrateClerkJS = (clerkjs: BrowserClerk | HeadlessBrowserClerk | undefined) => {\n    if (!clerkjs) {\n      throw new Error('Failed to hydrate latest Clerk JS');\n    }\n\n    this.clerkjs = clerkjs;\n\n    this.premountMethodCalls.forEach(cb => cb());\n    this.premountAddListenerCalls.forEach((listenerHandlers, listener) => {\n      listenerHandlers.nativeUnsubscribe = clerkjs.addListener(listener);\n    });\n\n    this.#eventBus.internal.retrieveListeners('status')?.forEach(listener => {\n      // Since clerkjs exists it will call `this.clerkjs.on('status', listener)`\n      this.on('status', listener, { notify: true });\n    });\n\n    // @ts-expect-error - queryClientStatus is not typed\n    this.#eventBus.internal.retrieveListeners('queryClientStatus')?.forEach(listener => {\n      // Since clerkjs exists it will call `this.clerkjs.on('queryClientStatus', listener)`\n      // @ts-expect-error - queryClientStatus is not typed\n      this.on('queryClientStatus', listener, { notify: true });\n    });\n\n    if (this.preopenSignIn !== null) {\n      clerkjs.openSignIn(this.preopenSignIn);\n    }\n\n    if (this.preopenCheckout !== null) {\n      clerkjs.__internal_openCheckout(this.preopenCheckout);\n    }\n\n    if (this.preopenPlanDetails !== null) {\n      clerkjs.__internal_openPlanDetails(this.preopenPlanDetails);\n    }\n\n    if (this.preopenSubscriptionDetails !== null) {\n      clerkjs.__internal_openSubscriptionDetails(this.preopenSubscriptionDetails);\n    }\n\n    if (this.preopenSignUp !== null) {\n      clerkjs.openSignUp(this.preopenSignUp);\n    }\n\n    if (this.preopenUserProfile !== null) {\n      clerkjs.openUserProfile(this.preopenUserProfile);\n    }\n\n    if (this.preopenUserVerification !== null) {\n      clerkjs.__internal_openReverification(this.preopenUserVerification);\n    }\n\n    if (this.preopenOneTap !== null) {\n      clerkjs.openGoogleOneTap(this.preopenOneTap);\n    }\n\n    if (this.preopenOrganizationProfile !== null) {\n      clerkjs.openOrganizationProfile(this.preopenOrganizationProfile);\n    }\n\n    if (this.preopenCreateOrganization !== null) {\n      clerkjs.openCreateOrganization(this.preopenCreateOrganization);\n    }\n\n    if (this.preOpenWaitlist !== null) {\n      clerkjs.openWaitlist(this.preOpenWaitlist);\n    }\n\n    if (this.preopenEnableOrganizationsPrompt) {\n      clerkjs.__internal_openEnableOrganizationsPrompt(this.preopenEnableOrganizationsPrompt);\n    }\n\n    this.premountSignInNodes.forEach((props, node) => {\n      clerkjs.mountSignIn(node, props);\n    });\n\n    this.premountSignUpNodes.forEach((props, node) => {\n      clerkjs.mountSignUp(node, props);\n    });\n\n    this.premountUserProfileNodes.forEach((props, node) => {\n      clerkjs.mountUserProfile(node, props);\n    });\n\n    this.premountUserAvatarNodes.forEach((props, node) => {\n      clerkjs.mountUserAvatar(node, props);\n    });\n\n    this.premountUserButtonNodes.forEach((props, node) => {\n      clerkjs.mountUserButton(node, props);\n    });\n\n    this.premountOrganizationListNodes.forEach((props, node) => {\n      clerkjs.mountOrganizationList(node, props);\n    });\n\n    this.premountWaitlistNodes.forEach((props, node) => {\n      clerkjs.mountWaitlist(node, props);\n    });\n\n    this.premountPricingTableNodes.forEach((props, node) => {\n      clerkjs.mountPricingTable(node, props);\n    });\n\n    this.premountAPIKeysNodes.forEach((props, node) => {\n      clerkjs.mountAPIKeys(node, props);\n    });\n\n    this.premountOAuthConsentNodes.forEach((props, node) => {\n      clerkjs.__internal_mountOAuthConsent(node, props);\n    });\n\n    this.premountTaskChooseOrganizationNodes.forEach((props, node) => {\n      clerkjs.mountTaskChooseOrganization(node, props);\n    });\n\n    this.premountTaskResetPasswordNodes.forEach((props, node) => {\n      clerkjs.mountTaskResetPassword(node, props);\n    });\n\n    this.premountTaskSetupMFANodes.forEach((props, node) => {\n      clerkjs.mountTaskSetupMFA(node, props);\n    });\n\n    /**\n     * Only update status in case `clerk.status` is missing. In any other case, `clerk-js` should be the orchestrator.\n     */\n    if (typeof this.clerkjs.status === 'undefined') {\n      this.#eventBus.emit(clerkEvents.Status, 'ready');\n    }\n\n    this.emitLoaded();\n    return this.clerkjs;\n  };\n\n  get version() {\n    return this.clerkjs?.version;\n  }\n\n  get client(): ClientResource | undefined {\n    if (this.clerkjs) {\n      return this.clerkjs.client;\n      // TODO: add ssr condition\n    } else {\n      return undefined;\n    }\n  }\n\n  get session() {\n    if (this.clerkjs) {\n      return this.clerkjs.session;\n    } else {\n      return undefined;\n    }\n  }\n\n  get user() {\n    if (this.clerkjs) {\n      return this.clerkjs.user;\n    } else {\n      return undefined;\n    }\n  }\n\n  get organization() {\n    if (this.clerkjs) {\n      return this.clerkjs.organization;\n    } else {\n      return undefined;\n    }\n  }\n\n  get telemetry() {\n    if (this.clerkjs) {\n      return this.clerkjs.telemetry;\n    } else {\n      return undefined;\n    }\n  }\n\n  get __unstable__environment(): any {\n    if (this.clerkjs) {\n      return (this.clerkjs as any).__unstable__environment;\n      // TODO: add ssr condition\n    } else {\n      return undefined;\n    }\n  }\n\n  get isSignedIn(): boolean {\n    if (this.clerkjs) {\n      return this.clerkjs.isSignedIn;\n    } else {\n      return false;\n    }\n  }\n\n  get billing(): BillingNamespace | undefined {\n    return this.clerkjs?.billing;\n  }\n\n  get __internal_state(): State {\n    return this.loaded && this.clerkjs ? this.clerkjs.__internal_state : this.#stateProxy;\n  }\n\n  get apiKeys(): APIKeysNamespace | undefined {\n    return this.clerkjs?.apiKeys;\n  }\n\n  __experimental_checkout = (...args: Parameters<Clerk['__experimental_checkout']>) => {\n    return this.clerkjs?.__experimental_checkout(...args);\n  };\n\n  __unstable__setEnvironment(...args: any): void {\n    if (this.clerkjs && '__unstable__setEnvironment' in this.clerkjs) {\n      (this.clerkjs as any).__unstable__setEnvironment(args);\n    } else {\n      return undefined;\n    }\n  }\n\n  // TODO @userland-errors:\n  __unstable__updateProps = async (props: any): Promise<void> => {\n    const clerkjs = await this.#waitForClerkJS();\n    // Handle case where accounts has clerk-react@4 installed, but clerk-js@3 is manually loaded\n    if (clerkjs && '__unstable__updateProps' in clerkjs) {\n      return (clerkjs as any).__unstable__updateProps(props);\n    }\n  };\n\n  /**\n   * `setActive` can be used to set the active session and/or organization.\n   */\n  setActive = (params: SetActiveParams): Promise<void> => {\n    if (this.clerkjs) {\n      return this.clerkjs.setActive(params);\n    } else {\n      return Promise.reject();\n    }\n  };\n\n  openSignIn = (props?: SignInProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openSignIn(props);\n    } else {\n      this.preopenSignIn = props;\n    }\n  };\n\n  closeSignIn = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeSignIn();\n    } else {\n      this.preopenSignIn = null;\n    }\n  };\n\n  __internal_openCheckout = (props?: __internal_CheckoutProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openCheckout(props);\n    } else {\n      this.preopenCheckout = props;\n    }\n  };\n\n  __internal_closeCheckout = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeCheckout();\n    } else {\n      this.preopenCheckout = null;\n    }\n  };\n\n  __internal_openPlanDetails = (props: __internal_PlanDetailsProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openPlanDetails(props);\n    } else {\n      this.preopenPlanDetails = props;\n    }\n  };\n\n  __internal_closePlanDetails = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closePlanDetails();\n    } else {\n      this.preopenPlanDetails = null;\n    }\n  };\n\n  __internal_openSubscriptionDetails = (props?: __internal_SubscriptionDetailsProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openSubscriptionDetails(props);\n    } else {\n      this.preopenSubscriptionDetails = props ?? null;\n    }\n  };\n\n  __internal_closeSubscriptionDetails = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeSubscriptionDetails();\n    } else {\n      this.preopenSubscriptionDetails = null;\n    }\n  };\n\n  __internal_openReverification = (props?: __internal_UserVerificationModalProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openReverification(props);\n    } else {\n      this.preopenUserVerification = props;\n    }\n  };\n\n  __internal_closeReverification = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeReverification();\n    } else {\n      this.preopenUserVerification = null;\n    }\n  };\n\n  __internal_openEnableOrganizationsPrompt = (props: __internal_EnableOrganizationsPromptProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openEnableOrganizationsPrompt(props);\n    } else {\n      this.preopenEnableOrganizationsPrompt = props;\n    }\n  };\n\n  __internal_closeEnableOrganizationsPrompt = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeEnableOrganizationsPrompt();\n    } else {\n      this.preopenEnableOrganizationsPrompt = null;\n    }\n  };\n\n  openGoogleOneTap = (props?: GoogleOneTapProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openGoogleOneTap(props);\n    } else {\n      this.preopenOneTap = props;\n    }\n  };\n\n  closeGoogleOneTap = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeGoogleOneTap();\n    } else {\n      this.preopenOneTap = null;\n    }\n  };\n\n  openUserProfile = (props?: UserProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openUserProfile(props);\n    } else {\n      this.preopenUserProfile = props;\n    }\n  };\n\n  closeUserProfile = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeUserProfile();\n    } else {\n      this.preopenUserProfile = null;\n    }\n  };\n\n  openOrganizationProfile = (props?: OrganizationProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openOrganizationProfile(props);\n    } else {\n      this.preopenOrganizationProfile = props;\n    }\n  };\n\n  closeOrganizationProfile = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeOrganizationProfile();\n    } else {\n      this.preopenOrganizationProfile = null;\n    }\n  };\n\n  openCreateOrganization = (props?: CreateOrganizationProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openCreateOrganization(props);\n    } else {\n      this.preopenCreateOrganization = props;\n    }\n  };\n\n  closeCreateOrganization = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeCreateOrganization();\n    } else {\n      this.preopenCreateOrganization = null;\n    }\n  };\n\n  openWaitlist = (props?: WaitlistProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openWaitlist(props);\n    } else {\n      this.preOpenWaitlist = props;\n    }\n  };\n\n  closeWaitlist = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeWaitlist();\n    } else {\n      this.preOpenWaitlist = null;\n    }\n  };\n\n  openSignUp = (props?: SignUpProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openSignUp(props);\n    } else {\n      this.preopenSignUp = props;\n    }\n  };\n\n  closeSignUp = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeSignUp();\n    } else {\n      this.preopenSignUp = null;\n    }\n  };\n\n  mountSignIn = (node: HTMLDivElement, props?: SignInProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountSignIn(node, props);\n    } else {\n      this.premountSignInNodes.set(node, props);\n    }\n  };\n\n  unmountSignIn = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountSignIn(node);\n    } else {\n      this.premountSignInNodes.delete(node);\n    }\n  };\n\n  mountSignUp = (node: HTMLDivElement, props?: SignUpProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountSignUp(node, props);\n    } else {\n      this.premountSignUpNodes.set(node, props);\n    }\n  };\n\n  unmountSignUp = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountSignUp(node);\n    } else {\n      this.premountSignUpNodes.delete(node);\n    }\n  };\n\n  mountUserAvatar = (node: HTMLDivElement, props?: UserAvatarProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserAvatar(node, props);\n    } else {\n      this.premountUserAvatarNodes.set(node, props);\n    }\n  };\n\n  unmountUserAvatar = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserAvatar(node);\n    } else {\n      this.premountUserAvatarNodes.delete(node);\n    }\n  };\n\n  mountUserProfile = (node: HTMLDivElement, props?: UserProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserProfile(node, props);\n    } else {\n      this.premountUserProfileNodes.set(node, props);\n    }\n  };\n\n  unmountUserProfile = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserProfile(node);\n    } else {\n      this.premountUserProfileNodes.delete(node);\n    }\n  };\n\n  mountOrganizationProfile = (node: HTMLDivElement, props?: OrganizationProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationProfile(node, props);\n    } else {\n      this.premountOrganizationProfileNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationProfile = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationProfile(node);\n    } else {\n      this.premountOrganizationProfileNodes.delete(node);\n    }\n  };\n\n  mountCreateOrganization = (node: HTMLDivElement, props?: CreateOrganizationProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountCreateOrganization(node, props);\n    } else {\n      this.premountCreateOrganizationNodes.set(node, props);\n    }\n  };\n\n  unmountCreateOrganization = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountCreateOrganization(node);\n    } else {\n      this.premountCreateOrganizationNodes.delete(node);\n    }\n  };\n\n  mountOrganizationSwitcher = (node: HTMLDivElement, props?: OrganizationSwitcherProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationSwitcher(node, props);\n    } else {\n      this.premountOrganizationSwitcherNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationSwitcher = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationSwitcher(node);\n    } else {\n      this.premountOrganizationSwitcherNodes.delete(node);\n    }\n  };\n\n  __experimental_prefetchOrganizationSwitcher = () => {\n    const callback = () => this.clerkjs?.__experimental_prefetchOrganizationSwitcher();\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('__experimental_prefetchOrganizationSwitcher', callback);\n    }\n  };\n\n  mountOrganizationList = (node: HTMLDivElement, props?: OrganizationListProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationList(node, props);\n    } else {\n      this.premountOrganizationListNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationList = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationList(node);\n    } else {\n      this.premountOrganizationListNodes.delete(node);\n    }\n  };\n\n  mountUserButton = (node: HTMLDivElement, userButtonProps?: UserButtonProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserButton(node, userButtonProps);\n    } else {\n      this.premountUserButtonNodes.set(node, userButtonProps);\n    }\n  };\n\n  unmountUserButton = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserButton(node);\n    } else {\n      this.premountUserButtonNodes.delete(node);\n    }\n  };\n\n  mountWaitlist = (node: HTMLDivElement, props?: WaitlistProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountWaitlist(node, props);\n    } else {\n      this.premountWaitlistNodes.set(node, props);\n    }\n  };\n\n  unmountWaitlist = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountWaitlist(node);\n    } else {\n      this.premountWaitlistNodes.delete(node);\n    }\n  };\n\n  mountPricingTable = (node: HTMLDivElement, props?: PricingTableProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountPricingTable(node, props);\n    } else {\n      this.premountPricingTableNodes.set(node, props);\n    }\n  };\n\n  unmountPricingTable = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountPricingTable(node);\n    } else {\n      this.premountPricingTableNodes.delete(node);\n    }\n  };\n\n  mountAPIKeys = (node: HTMLDivElement, props?: APIKeysProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountAPIKeys(node, props);\n    } else {\n      this.premountAPIKeysNodes.set(node, props);\n    }\n  };\n\n  unmountAPIKeys = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountAPIKeys(node);\n    } else {\n      this.premountAPIKeysNodes.delete(node);\n    }\n  };\n\n  __internal_mountOAuthConsent = (node: HTMLDivElement, props?: __internal_OAuthConsentProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_mountOAuthConsent(node, props);\n    } else {\n      this.premountOAuthConsentNodes.set(node, props);\n    }\n  };\n\n  __internal_unmountOAuthConsent = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_unmountOAuthConsent(node);\n    } else {\n      this.premountOAuthConsentNodes.delete(node);\n    }\n  };\n\n  mountTaskChooseOrganization = (node: HTMLDivElement, props?: TaskChooseOrganizationProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskChooseOrganization(node, props);\n    } else {\n      this.premountTaskChooseOrganizationNodes.set(node, props);\n    }\n  };\n\n  unmountTaskChooseOrganization = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskChooseOrganization(node);\n    } else {\n      this.premountTaskChooseOrganizationNodes.delete(node);\n    }\n  };\n\n  mountTaskResetPassword = (node: HTMLDivElement, props?: TaskResetPasswordProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskResetPassword(node, props);\n    } else {\n      this.premountTaskResetPasswordNodes.set(node, props);\n    }\n  };\n\n  unmountTaskResetPassword = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskResetPassword(node);\n    } else {\n      this.premountTaskResetPasswordNodes.delete(node);\n    }\n  };\n\n  mountTaskSetupMFA = (node: HTMLDivElement, props?: TaskSetupMFAProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskSetupMFA(node, props);\n    } else {\n      this.premountTaskSetupMFANodes.set(node, props);\n    }\n  };\n\n  unmountTaskSetupMFA = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskSetupMFA(node);\n    } else {\n      this.premountTaskSetupMFANodes.delete(node);\n    }\n  };\n\n  addListener = (listener: ListenerCallback): UnsubscribeCallback => {\n    if (this.clerkjs) {\n      return this.clerkjs.addListener(listener);\n    } else {\n      const unsubscribe = () => {\n        const listenerHandlers = this.premountAddListenerCalls.get(listener);\n        if (listenerHandlers) {\n          listenerHandlers.nativeUnsubscribe?.();\n          this.premountAddListenerCalls.delete(listener);\n        }\n      };\n      this.premountAddListenerCalls.set(listener, { unsubscribe, nativeUnsubscribe: undefined });\n      return unsubscribe;\n    }\n  };\n\n  navigate = (to: string) => {\n    const callback = () => this.clerkjs?.navigate(to);\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('navigate', callback);\n    }\n  };\n\n  redirectWithAuth = async (...args: Parameters<Clerk['redirectWithAuth']>) => {\n    const callback = () => this.clerkjs?.redirectWithAuth(...args);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectWithAuth', callback);\n      return;\n    }\n  };\n\n  redirectToSignIn = async (opts?: SignInRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToSignIn(opts as any);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToSignIn', callback);\n      return;\n    }\n  };\n\n  redirectToSignUp = async (opts?: SignUpRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToSignUp(opts as any);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToSignUp', callback);\n      return;\n    }\n  };\n\n  redirectToUserProfile = async () => {\n    const callback = () => this.clerkjs?.redirectToUserProfile();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToUserProfile', callback);\n      return;\n    }\n  };\n\n  redirectToAfterSignUp = (): void => {\n    const callback = () => this.clerkjs?.redirectToAfterSignUp();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignUp', callback);\n    }\n  };\n\n  redirectToAfterSignIn = () => {\n    const callback = () => this.clerkjs?.redirectToAfterSignIn();\n    if (this.clerkjs && this.loaded) {\n      callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignIn', callback);\n    }\n  };\n\n  redirectToAfterSignOut = () => {\n    const callback = () => this.clerkjs?.redirectToAfterSignOut();\n    if (this.clerkjs && this.loaded) {\n      callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignOut', callback);\n    }\n  };\n\n  redirectToOrganizationProfile = async () => {\n    const callback = () => this.clerkjs?.redirectToOrganizationProfile();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToOrganizationProfile', callback);\n      return;\n    }\n  };\n\n  redirectToCreateOrganization = async () => {\n    const callback = () => this.clerkjs?.redirectToCreateOrganization();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToCreateOrganization', callback);\n      return;\n    }\n  };\n\n  redirectToWaitlist = async () => {\n    const callback = () => this.clerkjs?.redirectToWaitlist();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToWaitlist', callback);\n      return;\n    }\n  };\n\n  redirectToTasks = async (opts?: TasksRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToTasks(opts);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToTasks', callback);\n      return;\n    }\n  };\n\n  handleRedirectCallback = async (params: HandleOAuthCallbackParams): Promise<void> => {\n    const callback = () => this.clerkjs?.handleRedirectCallback(params);\n    if (this.clerkjs && this.loaded) {\n      void callback()?.catch(() => {\n        // This error is caused when the host app is using React18\n        // and strictMode is enabled. This useEffects runs twice because\n        // the clerk-react ui components mounts, unmounts and mounts again\n        // so the clerk-js component loses its state because of the custom\n        // unmount callback we're using.\n        // This needs to be solved by tweaking the logic in uiComponents.tsx\n        // or by making handleRedirectCallback idempotent\n      });\n    } else {\n      this.premountMethodCalls.set('handleRedirectCallback', callback);\n    }\n  };\n\n  handleGoogleOneTapCallback = async (\n    signInOrUp: SignInResource | SignUpResource,\n    params: HandleOAuthCallbackParams,\n  ): Promise<void> => {\n    const callback = () => this.clerkjs?.handleGoogleOneTapCallback(signInOrUp, params);\n    if (this.clerkjs && this.loaded) {\n      void callback()?.catch(() => {\n        // This error is caused when the host app is using React18\n        // and strictMode is enabled. This useEffects runs twice because\n        // the clerk-react ui components mounts, unmounts and mounts again\n        // so the clerk-js component loses its state because of the custom\n        // unmount callback we're using.\n        // This needs to be solved by tweaking the logic in uiComponents.tsx\n        // or by making handleRedirectCallback idempotent\n      });\n    } else {\n      this.premountMethodCalls.set('handleGoogleOneTapCallback', callback);\n    }\n  };\n\n  handleEmailLinkVerification = async (params: HandleEmailLinkVerificationParams) => {\n    const callback = () => this.clerkjs?.handleEmailLinkVerification(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('handleEmailLinkVerification', callback);\n    }\n  };\n\n  authenticateWithMetamask = async (params?: AuthenticateWithMetamaskParams) => {\n    const callback = () => this.clerkjs?.authenticateWithMetamask(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithMetamask', callback);\n    }\n  };\n\n  authenticateWithCoinbaseWallet = async (params?: AuthenticateWithCoinbaseWalletParams) => {\n    const callback = () => this.clerkjs?.authenticateWithCoinbaseWallet(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithCoinbaseWallet', callback);\n    }\n  };\n\n  authenticateWithBase = async (params?: AuthenticateWithBaseParams) => {\n    const callback = () => this.clerkjs?.authenticateWithBase(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithBase', callback);\n    }\n  };\n\n  authenticateWithOKXWallet = async (params?: AuthenticateWithOKXWalletParams) => {\n    const callback = () => this.clerkjs?.authenticateWithOKXWallet(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithOKXWallet', callback);\n    }\n  };\n\n  authenticateWithSolana = async (params: AuthenticateWithSolanaParams) => {\n    const callback = () => this.clerkjs?.authenticateWithSolana(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithSolana', callback);\n    }\n  };\n\n  authenticateWithWeb3 = async (params: ClerkAuthenticateWithWeb3Params) => {\n    const callback = () => this.clerkjs?.authenticateWithWeb3(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithWeb3', callback);\n    }\n  };\n\n  authenticateWithGoogleOneTap = async (params: AuthenticateWithGoogleOneTapParams) => {\n    const clerkjs = await this.#waitForClerkJS();\n    return clerkjs.authenticateWithGoogleOneTap(params);\n  };\n\n  __internal_loadStripeJs = async () => {\n    const clerkjs = await this.#waitForClerkJS();\n    return clerkjs.__internal_loadStripeJs();\n  };\n\n  createOrganization = async (params: CreateOrganizationParams): Promise<OrganizationResource | void> => {\n    const callback = () => this.clerkjs?.createOrganization(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<OrganizationResource>;\n    } else {\n      this.premountMethodCalls.set('createOrganization', callback);\n    }\n  };\n\n  getOrganization = async (organizationId: string): Promise<OrganizationResource | void> => {\n    const callback = () => this.clerkjs?.getOrganization(organizationId);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<OrganizationResource>;\n    } else {\n      this.premountMethodCalls.set('getOrganization', callback);\n    }\n  };\n\n  joinWaitlist = async (params: JoinWaitlistParams): Promise<WaitlistResource | void> => {\n    const callback = () => this.clerkjs?.joinWaitlist(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<WaitlistResource>;\n    } else {\n      this.premountMethodCalls.set('joinWaitlist', callback);\n    }\n  };\n\n  signOut = async (...args: Parameters<Clerk['signOut']>) => {\n    const callback = () => this.clerkjs?.signOut(...args);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('signOut', callback);\n    }\n  };\n\n  __internal_attemptToEnableEnvironmentSetting = (\n    options: __internal_AttemptToEnableEnvironmentSettingParams,\n  ): __internal_AttemptToEnableEnvironmentSettingResult | void => {\n    const callback = () => this.clerkjs?.__internal_attemptToEnableEnvironmentSetting(options);\n    if (this.clerkjs && this.loaded) {\n      return callback() as __internal_AttemptToEnableEnvironmentSettingResult;\n    } else {\n      this.premountMethodCalls.set('__internal_attemptToEnableEnvironmentSetting', callback);\n    }\n  };\n}\n","import { inBrowser } from '@clerk/shared/browser';\nimport type { SignInErrors, SignUpErrors, State } from '@clerk/shared/types';\n\nimport { errorThrower } from './errors/errorThrower';\nimport type { IsomorphicClerk } from './isomorphicClerk';\n\nconst defaultSignInErrors = (): SignInErrors => ({\n  fields: {\n    identifier: null,\n    password: null,\n    code: null,\n  },\n  raw: null,\n  global: null,\n});\n\nconst defaultSignUpErrors = (): SignUpErrors => ({\n  fields: {\n    firstName: null,\n    lastName: null,\n    emailAddress: null,\n    phoneNumber: null,\n    password: null,\n    username: null,\n    code: null,\n    captcha: null,\n    legalAccepted: null,\n  },\n  raw: null,\n  global: null,\n});\n\nexport class StateProxy implements State {\n  constructor(private isomorphicClerk: IsomorphicClerk) {}\n\n  private readonly signInSignalProxy = this.buildSignInProxy();\n  private readonly signUpSignalProxy = this.buildSignUpProxy();\n\n  signInSignal() {\n    return this.signInSignalProxy;\n  }\n  signUpSignal() {\n    return this.signUpSignalProxy;\n  }\n\n  private buildSignInProxy() {\n    const gateProperty = this.gateProperty.bind(this);\n    const target = () => this.client.signIn.__internal_future;\n\n    return {\n      errors: defaultSignInErrors(),\n      fetchStatus: 'idle' as const,\n      signIn: {\n        status: 'needs_identifier' as const,\n        availableStrategies: [],\n        isTransferable: false,\n        get id() {\n          return gateProperty(target, 'id', undefined);\n        },\n        get supportedFirstFactors() {\n          return gateProperty(target, 'supportedFirstFactors', []);\n        },\n        get supportedSecondFactors() {\n          return gateProperty(target, 'supportedSecondFactors', []);\n        },\n        get secondFactorVerification() {\n          return gateProperty(target, 'secondFactorVerification', {\n            status: null,\n            error: null,\n            expireAt: null,\n            externalVerificationRedirectURL: null,\n            nonce: null,\n            attempts: null,\n            message: null,\n            strategy: null,\n            verifiedAtClient: null,\n            verifiedFromTheSameClient: () => false,\n            __internal_toSnapshot: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n            pathRoot: '',\n            reload: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n          });\n        },\n        get identifier() {\n          return gateProperty(target, 'identifier', null);\n        },\n        get createdSessionId() {\n          return gateProperty(target, 'createdSessionId', null);\n        },\n        get userData() {\n          return gateProperty(target, 'userData', {});\n        },\n        get firstFactorVerification() {\n          return gateProperty(target, 'firstFactorVerification', {\n            status: null,\n            error: null,\n            expireAt: null,\n            externalVerificationRedirectURL: null,\n            nonce: null,\n            attempts: null,\n            message: null,\n            strategy: null,\n            verifiedAtClient: null,\n            verifiedFromTheSameClient: () => false,\n            __internal_toSnapshot: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n            pathRoot: '',\n            reload: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n          });\n        },\n\n        create: this.gateMethod(target, 'create'),\n        password: this.gateMethod(target, 'password'),\n        sso: this.gateMethod(target, 'sso'),\n        finalize: this.gateMethod(target, 'finalize'),\n\n        emailCode: this.wrapMethods(() => target().emailCode, ['sendCode', 'verifyCode'] as const),\n        emailLink: this.wrapStruct(\n          () => target().emailLink,\n          ['sendLink', 'waitForVerification'] as const,\n          ['verification'] as const,\n          { verification: null },\n        ),\n        resetPasswordEmailCode: this.wrapMethods(() => target().resetPasswordEmailCode, [\n          'sendCode',\n          'verifyCode',\n          'submitPassword',\n        ] as const),\n        phoneCode: this.wrapMethods(() => target().phoneCode, ['sendCode', 'verifyCode'] as const),\n        mfa: this.wrapMethods(() => target().mfa, [\n          'sendPhoneCode',\n          'verifyPhoneCode',\n          'verifyTOTP',\n          'verifyBackupCode',\n        ] as const),\n        ticket: this.gateMethod(target, 'ticket'),\n        passkey: this.gateMethod(target, 'passkey'),\n        web3: this.gateMethod(target, 'web3'),\n      },\n    };\n  }\n\n  private buildSignUpProxy() {\n    const gateProperty = this.gateProperty.bind(this);\n    const gateMethod = this.gateMethod.bind(this);\n    const wrapMethods = this.wrapMethods.bind(this);\n    const target = () => this.client.signUp.__internal_future;\n\n    return {\n      errors: defaultSignUpErrors(),\n      fetchStatus: 'idle' as const,\n      signUp: {\n        get id() {\n          return gateProperty(target, 'id', undefined);\n        },\n        get requiredFields() {\n          return gateProperty(target, 'requiredFields', []);\n        },\n        get optionalFields() {\n          return gateProperty(target, 'optionalFields', []);\n        },\n        get missingFields() {\n          return gateProperty(target, 'missingFields', []);\n        },\n        get username() {\n          return gateProperty(target, 'username', null);\n        },\n        get firstName() {\n          return gateProperty(target, 'firstName', null);\n        },\n        get lastName() {\n          return gateProperty(target, 'lastName', null);\n        },\n        get emailAddress() {\n          return gateProperty(target, 'emailAddress', null);\n        },\n        get phoneNumber() {\n          return gateProperty(target, 'phoneNumber', null);\n        },\n        get web3Wallet() {\n          return gateProperty(target, 'web3Wallet', null);\n        },\n        get hasPassword() {\n          return gateProperty(target, 'hasPassword', false);\n        },\n        get unsafeMetadata() {\n          return gateProperty(target, 'unsafeMetadata', {});\n        },\n        get createdSessionId() {\n          return gateProperty(target, 'createdSessionId', null);\n        },\n        get createdUserId() {\n          return gateProperty(target, 'createdUserId', null);\n        },\n        get abandonAt() {\n          return gateProperty(target, 'abandonAt', null);\n        },\n        get legalAcceptedAt() {\n          return gateProperty(target, 'legalAcceptedAt', null);\n        },\n        get locale() {\n          return gateProperty(target, 'locale', null);\n        },\n        get status() {\n          return gateProperty(target, 'status', 'missing_requirements');\n        },\n        get unverifiedFields() {\n          return gateProperty(target, 'unverifiedFields', []);\n        },\n        get isTransferable() {\n          return gateProperty(target, 'isTransferable', false);\n        },\n\n        create: gateMethod(target, 'create'),\n        update: gateMethod(target, 'update'),\n        sso: gateMethod(target, 'sso'),\n        password: gateMethod(target, 'password'),\n        ticket: gateMethod(target, 'ticket'),\n        web3: gateMethod(target, 'web3'),\n        finalize: gateMethod(target, 'finalize'),\n\n        verifications: wrapMethods(() => target().verifications, [\n          'sendEmailCode',\n          'verifyEmailCode',\n          'sendPhoneCode',\n          'verifyPhoneCode',\n        ] as const),\n      },\n    };\n  }\n\n  __internal_effect(_: () => void): () => void {\n    throw new Error('__internal_effect called before Clerk is loaded');\n  }\n  __internal_computed<T>(_: (prev?: T) => T): () => T {\n    throw new Error('__internal_computed called before Clerk is loaded');\n  }\n\n  private get client() {\n    const c = this.isomorphicClerk.client;\n    if (!c) {\n      throw new Error('Clerk client not ready');\n    }\n    return c;\n  }\n\n  private gateProperty<T extends object, K extends keyof T>(getTarget: () => T, key: K, defaultValue: T[K]) {\n    return (() => {\n      if (!inBrowser() || !this.isomorphicClerk.loaded) {\n        return defaultValue;\n      }\n      const t = getTarget();\n      return t[key];\n    })();\n  }\n\n  private gateMethod<T extends object, K extends keyof T & string>(getTarget: () => T, key: K) {\n    type F = Extract<T[K], (...args: unknown[]) => unknown>;\n    return (async (...args: Parameters<F>): Promise<ReturnType<F>> => {\n      if (!inBrowser()) {\n        return errorThrower.throw(`Attempted to call a method (${key}) that is not supported on the server.`);\n      }\n      if (!this.isomorphicClerk.loaded) {\n        await new Promise<void>(resolve => this.isomorphicClerk.addOnLoaded(resolve));\n      }\n      const t = getTarget();\n      return (t[key] as (...args: Parameters<F>) => ReturnType<F>).apply(t, args);\n    }) as F;\n  }\n\n  private wrapMethods<T extends object, K extends readonly (keyof T & string)[]>(\n    getTarget: () => T,\n    keys: K,\n  ): Pick<T, K[number]> {\n    return Object.fromEntries(keys.map(k => [k, this.gateMethod(getTarget, k)])) as Pick<T, K[number]>;\n  }\n\n  private wrapStruct<T extends object, M extends readonly (keyof T)[], G extends readonly (keyof T)[]>(\n    getTarget: () => T,\n    methods: M,\n    getters: G,\n    fallbacks: Pick<T, G[number]>,\n  ): Pick<T, M[number] | G[number]> & {\n    [K in M[number]]: T[K] extends (...args: any[]) => any ? T[K] : never;\n  } & {\n    [K in G[number]]: T[K] extends (...args: any[]) => any ? never : T[K];\n  } {\n    const out: any = {};\n    for (const m of methods) {\n      out[m] = this.gateMethod(getTarget, m as any);\n    }\n    for (const g of getters) {\n      Object.defineProperty(out, g, {\n        get: () => this.gateProperty(getTarget, g as any, (fallbacks as any)[g]),\n        enumerable: true,\n      });\n    }\n    return out;\n  }\n}\n"]}