@clerk/react 6.1.1-snapshot.v20260311230607 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","<define:__CLERK_UI_SUPPORTED_REACT_BOUNDS__>","../src/polyfills.ts","../../ui/register/index.mjs","../src/errors/errorThrower.ts","../src/components/uiComponents.tsx","../src/errors/messages.ts","../src/utils/childrenUtils.tsx","../src/utils/envVariables.ts","../src/utils/isConstructor.ts","../src/utils/useMaxAllowedInstancesGuard.tsx","../src/utils/useCustomElementPortal.tsx","../src/utils/useCustomPages.tsx","../src/utils/componentValidation.ts","../src/utils/useCustomMenuItems.tsx","../src/utils/useWaitForComponentMount.ts","../src/components/ClerkHostRenderer.tsx","../src/components/withClerk.tsx","../src/contexts/IsomorphicClerkContext.tsx","../src/hooks/useAssertWrappedByClerkProvider.ts","../src/components/controlComponents.tsx","../src/hooks/useAuth.ts","../src/hooks/useAuthBase.tsx","../src/hooks/utils.ts","../src/hooks/useEmailLink.ts","../src/hooks/useClerkSignal.ts","../src/hooks/index.ts","../src/components/SignInButton.tsx","../src/components/SignInWithMetamaskButton.tsx","../src/components/SignOutButton.tsx","../src/components/SignUpButton.tsx","../src/components/HandleSSOCallback.tsx","../src/contexts/ClerkProvider.tsx","../src/isomorphicClerk.ts","../src/stateProxy.ts","../src/utils/versionCheck.ts","../src/contexts/index.ts"],"sourcesContent":["import './polyfills';\nimport './types/appearance';\n// Register React on the global shared modules registry.\n// This enables @clerk/ui's shared variant to use the host app's React\n// instead of bundling its own copy, reducing overall bundle size.\nimport '@clerk/ui/register';\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 { getToken } from '@clerk/shared/getToken';\nexport type {\n BrowserClerk,\n BrowserClerkConstructor,\n ClerkProp,\n HeadlessBrowserClerk,\n HeadlessBrowserClerkConstructor,\n IsomorphicClerkOptions,\n} from '@clerk/shared/types';\nexport type { ClerkProviderProps } from './types';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJSLoadingErrorPackageName(PACKAGE_NAME);\n","[[18,0,-1,0],[19,0,0,3],[19,1,1,4],[19,2,2,3],[19,3,3,0]]","/**\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","/**\n * Register React dependencies for sharing with @clerk/ui's shared variant.\n *\n * Import this module BEFORE loading the ui.shared.browser.js bundle:\n *\n * ```js\n * import '@clerk/ui/register';\n * // Now load clerk-js which will load ui.shared.browser.js\n * ```\n *\n * This enables @clerk/ui to use the host app's React instead of bundling its own,\n * reducing the overall bundle size.\n */\n\nimport * as react from 'react';\nimport * as reactDom from 'react-dom';\nimport * as reactDomClient from 'react-dom/client';\nimport * as jsxRuntime from 'react/jsx-runtime';\n\n// Only register if not already registered to avoid overwriting with potentially\n// different React versions in complex module resolution scenarios.\nif (globalThis.__clerkSharedModules) {\n // Warn if the already-registered React version differs from this import.\n // This could indicate multiple React versions in the bundle, which may cause issues.\n const existingVersion = globalThis.__clerkSharedModules.react?.version;\n if (existingVersion && existingVersion !== react.version) {\n console.warn(\n `[@clerk/ui/register] React version mismatch detected. ` +\n `Already registered: ${existingVersion}, current import: ${react.version}. ` +\n `This may cause issues with the shared @clerk/ui variant.`,\n );\n }\n} else {\n globalThis.__clerkSharedModules = {\n react,\n 'react-dom': reactDom,\n 'react-dom/client': reactDomClient,\n 'react/jsx-runtime': jsxRuntime,\n };\n}\n","import type { ErrorThrowerOptions } from '@clerk/shared/error';\nimport { buildErrorThrower } from '@clerk/shared/error';\n\nconst errorThrower = buildErrorThrower({ packageName: '@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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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","import { getEnvVariable } from '@clerk/shared/getEnvVariable';\n\nimport type { IsomorphicClerkOptions } from '../types';\n\n/**\n * Gets an environment variable value, checking for Vite's VITE_ prefix first.\n * This allows React SDK users with Vite to use VITE_CLERK_* env vars\n * (which Vite exposes client-side) without manual configuration.\n *\n * Note: Empty string values are treated as \"not set\" and will fall through to\n * the next env var in the chain. This is intentional since empty values are\n * typically invalid for these options.\n *\n * @param name - The environment variable name without prefix (e.g., 'CLERK_PUBLISHABLE_KEY')\n * @returns The value of the environment variable, or empty string if not found\n */\nconst getEnvVar = (name: string): string => {\n // Check for Vite-prefixed env var first (client-side exposed)\n // Then fall back to unprefixed version (for SSR, Node.js, etc.)\n // Note: Uses || so empty string falls through to the next check\n return getEnvVariable(`VITE_${name}`) || getEnvVariable(name);\n};\n\n/**\n * Helper to get env fallback only when the option is undefined.\n * We check for undefined specifically (not falsy) to avoid conflicting with framework SDKs\n * that may pass an empty string when their env var is not set.\n *\n * Returns the env var value only if it's non-empty, otherwise returns undefined\n * to preserve the original behavior when no env var is set.\n */\nconst withEnvFallback = (value: string | undefined, envVarName: string): string | undefined => {\n if (value !== undefined) {\n return value;\n }\n const envValue = getEnvVar(envVarName);\n return envValue || undefined;\n};\n\n/**\n * Merges ClerkProvider options with environment variable fallbacks.\n * This supports Vite users who set VITE_CLERK_* or CLERK_* env vars.\n * Passed-in options always take priority over environment variables.\n *\n * Supported environment variables:\n * - VITE_CLERK_PUBLISHABLE_KEY / CLERK_PUBLISHABLE_KEY\n *\n * @param options - The options passed to ClerkProvider\n * @returns Options with environment variable fallbacks applied\n */\nexport const mergeWithEnv = (options: IsomorphicClerkOptions): IsomorphicClerkOptions => {\n // Get env fallback values (undefined if not set)\n const publishableKey = withEnvFallback(options.publishableKey, 'CLERK_PUBLISHABLE_KEY');\n\n // Only add publishableKey to result if it has a defined value\n // URL fallbacks removed due to compatibility issues with @clerk/react-router\n return {\n ...options,\n ...(publishableKey !== undefined && { publishableKey }),\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: P,\n name: string,\n error: string,\n): P & { displayName: string } {\n // @ts-expect-error - simplified types to preserve generics in P\n const displayName = WrappedComponent.displayName || WrappedComponent.name || name || 'Component';\n const Hoc = (props: P) => {\n useMaxAllowedInstancesGuard(name, error);\n // @ts-expect-error - simplified types to preserve generics in P\n return <WrappedComponent {...(props as any)} />;\n };\n Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`;\n // @ts-expect-error - simplified types to preserve generics in P\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 { usePortalRoot } from '@clerk/shared/react';\nimport type { LoadedClerk, Without } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\n\nexport const withClerk = <P extends { clerk: LoadedClerk; component?: string }>(\n Component: React.ComponentType<P>,\n displayNameOrOptions?: string | { component: string; renderWhileLoading?: boolean },\n) => {\n const passedDisplayedName =\n typeof displayNameOrOptions === 'string' ? displayNameOrOptions : displayNameOrOptions?.component;\n const displayName = passedDisplayedName || Component.displayName || Component.name || 'Component';\n Component.displayName = displayName;\n\n const options = typeof displayNameOrOptions === 'string' ? undefined : displayNameOrOptions;\n\n const HOC = (props: Without<P, 'clerk'>) => {\n useAssertWrappedByClerkProvider(displayName || 'withClerk');\n\n const clerk = useIsomorphicClerkContext();\n const getContainer = usePortalRoot();\n\n if (!clerk.loaded && !options?.renderWhileLoading) {\n return null;\n }\n\n return (\n <Component\n getContainer={getContainer}\n {...(props as P)}\n component={displayName}\n clerk={clerk}\n />\n );\n };\n HOC.displayName = `withClerk(${displayName})`;\n return HOC;\n};\n","import { useClerkInstanceContext } from '@clerk/shared/react';\n\nimport type { IsomorphicClerk } from '../isomorphicClerk';\n\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 { __internal_useSessionBase } from '@clerk/shared/react';\nimport type { HandleOAuthCallbackParams, PendingSessionOptions, ShowWhenCondition } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAuth } from '../hooks';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\nimport type { RedirectToSignInProps, RedirectToSignUpProps, RedirectToTasksProps, WithClerkProp } from '../types';\nimport { withClerk } from './withClerk';\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 ShowProps = React.PropsWithChildren<\n {\n fallback?: React.ReactNode;\n when: ShowWhenCondition;\n } & PendingSessionOptions\n>;\n\n/**\n * Use `<Show/>` to conditionally render content based on user authorization or sign-in state.\n * Returns `null` while auth is loading. Set `treatPendingAsSignedOut` to treat\n * pending sessions as signed out during that period.\n *\n * The `when` prop supports:\n * - `\"signed-in\"` or `\"signed-out\"` shorthands\n * - Authorization descriptors (e.g., `{ permission: \"org:billing:manage\" }`, `{ role: \"admin\" }`)\n * - A predicate function `(has) => boolean` that receives the `has` helper\n *\n * @example\n * ```tsx\n * <Show when={{ permission: \"org:billing:manage\" }} fallback={<p>Unauthorized</p>}>\n * <BillingSettings />\n * </Show>\n *\n * <Show when={{ role: \"admin\" }}>\n * <AdminPanel />\n * </Show>\n *\n * <Show when={(has) => has({ permission: \"org:read\" }) && isFeatureEnabled}>\n * <ProtectedFeature />\n * </Show>\n * ```\n *\n */\nexport const Show = ({ children, fallback, treatPendingAsSignedOut, when }: ShowProps) => {\n useAssertWrappedByClerkProvider('Show');\n\n const { has, isLoaded, userId } = useAuth({ treatPendingAsSignedOut });\n\n if (!isLoaded) {\n return null;\n }\n\n const resolvedWhen = when;\n const authorized = children;\n const unauthorized = fallback ?? null;\n\n if (resolvedWhen === 'signed-out') {\n return userId ? unauthorized : authorized;\n }\n\n if (!userId) {\n return unauthorized;\n }\n\n if (resolvedWhen === 'signed-in') {\n return authorized;\n }\n\n if (checkAuthorization(resolvedWhen, has)) {\n return authorized;\n }\n\n return unauthorized;\n};\n\nfunction checkAuthorization(\n when: Exclude<ShowWhenCondition, 'signed-in' | 'signed-out'>,\n has: NonNullable<ReturnType<typeof useAuth>['has']>,\n): boolean {\n if (typeof when === 'function') {\n return when(has);\n }\n return has(when);\n}\n\nexport const RedirectToSignIn = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignInProps>) => {\n const { client, session } = clerk;\n\n const hasSignedInSessions = (client.signedInSessions?.length ?? 0) > 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 = __internal_useSessionBase();\n return <React.Fragment key={session ? session.id : 'no-users'}>{children}</React.Fragment>;\n};\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 { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { errorThrower } from '../errors/errorThrower';\nimport { invalidStateError } from '../errors/messages';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\nimport { useAuthBase } from './useAuthBase';\nimport { createGetToken, createSignOut } from './utils';\n\n/**\n * @inline\n */\ntype UseAuthOptions = 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 [options] - An object containing options for the `useAuth()` hook. `treatPendingAsSignedOut` is a boolean that indicates whether pending sessions are considered as signed out or not. Defaults to `true`.\n *\n * @function\n *\n * @example\n *\n * The following example demonstrates how to use the `useAuth()` hook to access the current auth state, like whether the user is signed in or not. It also includes a basic example for using the `getToken()` method to retrieve a session token for fetching data from an external resource.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/ExternalDataPage.tsx' }}\n * import { useAuth } from '@clerk/react'\n *\n * export default function ExternalDataPage() {\n * const { userId, sessionId, getToken, isLoaded, isSignedIn } = useAuth()\n *\n * const fetchExternalData = async () => {\n * const token = await getToken()\n *\n * // Fetch data from an external API\n * const response = await fetch('https://api.example.com/data', {\n * headers: {\n * Authorization: `Bearer ${token}`,\n * },\n * })\n *\n * return response.json()\n * }\n *\n * if (!isLoaded) {\n * return <div>Loading...</div>\n * }\n *\n * if (!isSignedIn) {\n * return <div>Sign in to view this page</div>\n * }\n *\n * return (\n * <div>\n * <p>\n * Hello, {userId}! Your current active session is {sessionId}.\n * </p>\n * <button onClick={fetchExternalData}>Fetch Data</button>\n * </div>\n * )\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-auth.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n */\nexport const useAuth = (options: UseAuthOptions = {}): UseAuthReturn => {\n useAssertWrappedByClerkProvider('useAuth');\n\n const { treatPendingAsSignedOut } = options ?? {};\n const authState = useAuthBase();\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 ...authState,\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 { deriveState, type DeriveStateReturnType } from '@clerk/shared/deriveState';\nimport { useClerkInstanceContext, useInitialStateContext } from '@clerk/shared/react';\nimport type {\n ActClaim,\n InitialState,\n JwtPayload,\n OrganizationCustomPermissionKey,\n OrganizationCustomRoleKey,\n Resources,\n SessionStatusClaim,\n} from '@clerk/shared/types';\nimport { useCallback, useMemo, useSyncExternalStore } from 'react';\n\ntype AuthStateValue = {\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 defaultDerivedInitialState = {\n actor: undefined,\n factorVerificationAge: null,\n orgId: undefined,\n orgPermissions: undefined,\n orgRole: undefined,\n orgSlug: undefined,\n sessionClaims: undefined,\n sessionId: undefined,\n sessionStatus: undefined,\n userId: undefined,\n};\n\nexport function useAuthBase(): AuthStateValue {\n const clerk = useClerkInstanceContext();\n const initialState = useInitialStateContext();\n const getInitialState = useCallback(() => initialState, [initialState]);\n\n const state = useSyncExternalStore(\n useCallback(callback => clerk.addListener(callback, { skipInitialEmit: true }), [clerk]),\n useCallback(() => {\n if (!clerk.loaded || !clerk.__internal_lastEmittedResources) {\n return getInitialState();\n }\n\n return clerk.__internal_lastEmittedResources;\n }, [clerk, getInitialState]),\n getInitialState,\n );\n\n const authState = useMemo(() => {\n if (!state) {\n return defaultDerivedInitialState;\n }\n const fullState = isInitialState(state)\n ? deriveState(false, {} as Resources, state)\n : deriveState(true, state, undefined);\n return authStateFromFull(fullState);\n }, [state]);\n\n return authState;\n}\n\nfunction authStateFromFull(derivedState: DeriveStateReturnType) {\n return {\n sessionId: derivedState.sessionId,\n sessionStatus: derivedState.sessionStatus,\n sessionClaims: derivedState.sessionClaims,\n userId: derivedState.userId,\n actor: derivedState.actor,\n orgId: derivedState.orgId,\n orgRole: derivedState.orgRole,\n orgSlug: derivedState.orgSlug,\n orgPermissions: derivedState.orgPermissions,\n factorVerificationAge: derivedState.factorVerificationAge,\n };\n}\n\nfunction isInitialState(state: Resources | InitialState): state is InitialState {\n return !('client' in state);\n}\n","import { inBrowser } from '@clerk/shared/browser';\nimport { ClerkRuntimeError } from '@clerk/shared/error';\n\nimport 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 if (!inBrowser()) {\n throw new ClerkRuntimeError(\n 'useAuth().getToken() can only be used in browser environments. To access auth data server-side, see the Auth object reference doc: https://clerk.com/docs/reference/backend/types/auth-object',\n {\n code: 'clerk_runtime_not_browser',\n },\n );\n }\n\n await clerkLoaded(isomorphicClerk);\n if (!isomorphicClerk.session) {\n return null;\n }\n return isomorphicClerk.session.getToken(options);\n };\n};\n\n/**\n * @internal\n */\nexport const createSignOut = (isomorphicClerk: IsomorphicClerk) => {\n return async (...args: any) => {\n await clerkLoaded(isomorphicClerk);\n return isomorphicClerk.signOut(...args);\n };\n};\n","import type {\n CreateEmailLinkFlowReturn,\n EmailAddressResource,\n SignInResource,\n SignInStartEmailLinkFlowParams,\n SignUpResource,\n StartEmailLinkFlowParams,\n} from '@clerk/shared/types';\nimport React from 'react';\n\ntype EmailLinkable = SignUpResource | EmailAddressResource | SignInResource;\ntype UseEmailLinkSignInReturn = CreateEmailLinkFlowReturn<SignInStartEmailLinkFlowParams, SignInResource>;\ntype UseEmailLinkSignUpReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, SignUpResource>;\ntype UseEmailLinkEmailAddressReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, EmailAddressResource>;\n\nfunction useEmailLink(resource: SignInResource): UseEmailLinkSignInReturn;\nfunction useEmailLink(resource: SignUpResource): UseEmailLinkSignUpReturn;\nfunction useEmailLink(resource: EmailAddressResource): UseEmailLinkEmailAddressReturn;\nfunction useEmailLink(\n resource: EmailLinkable,\n): UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn {\n const { startEmailLinkFlow, cancelEmailLinkFlow } = React.useMemo(() => resource.createEmailLinkFlow(), [resource]);\n\n React.useEffect(() => {\n return cancelEmailLinkFlow;\n }, []);\n\n return {\n startEmailLinkFlow,\n cancelEmailLinkFlow,\n } as UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn;\n}\n\nexport { useEmailLink };\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { SignInSignalValue, SignUpSignalValue, WaitlistSignalValue } from '@clerk/shared/types';\nimport { useCallback, useSyncExternalStore } from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\nfunction useClerkSignal(signal: 'signIn'): SignInSignalValue;\nfunction useClerkSignal(signal: 'signUp'): SignUpSignalValue;\nfunction useClerkSignal(signal: 'waitlist'): WaitlistSignalValue;\nfunction useClerkSignal(\n signal: 'signIn' | 'signUp' | 'waitlist',\n): SignInSignalValue | SignUpSignalValue | WaitlistSignalValue {\n useAssertWrappedByClerkProvider('useClerkSignal');\n\n const clerk = useIsomorphicClerkContext();\n\n switch (signal) {\n case 'signIn':\n clerk.telemetry?.record(eventMethodCalled('useSignIn', { apiVersion: '2025-11' }));\n break;\n case 'signUp':\n clerk.telemetry?.record(eventMethodCalled('useSignUp', { apiVersion: '2025-11' }));\n break;\n case 'waitlist':\n clerk.telemetry?.record(eventMethodCalled('useWaitlist', { apiVersion: '2025-11' }));\n break;\n default:\n break;\n }\n\n const subscribe = useCallback(\n (callback: () => void) => {\n if (!clerk.loaded) {\n return () => {};\n }\n\n return clerk.__internal_state.__internal_effect(() => {\n switch (signal) {\n case 'signIn':\n clerk.__internal_state.signInSignal();\n break;\n case 'signUp':\n clerk.__internal_state.signUpSignal();\n break;\n case 'waitlist':\n clerk.__internal_state.waitlistSignal();\n break;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n callback();\n });\n },\n [clerk, clerk.loaded, clerk.__internal_state],\n );\n const getSnapshot = useCallback(() => {\n switch (signal) {\n case 'signIn':\n return clerk.__internal_state.signInSignal() as SignInSignalValue;\n case 'signUp':\n return clerk.__internal_state.signUpSignal() as SignUpSignalValue;\n case 'waitlist':\n return clerk.__internal_state.waitlistSignal() as WaitlistSignalValue;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n }, [clerk.__internal_state]);\n\n const value = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return value;\n}\n\n/**\n * This hook allows you to access the Signal-based `SignIn` resource.\n *\n * @example\n * import { useSignIn } from \"@clerk/react\";\n *\n * function SignInForm() {\n * const { signIn, errors, fetchStatus } = useSignInSignal();\n * //\n * }\n */\nexport function useSignIn() {\n return useClerkSignal('signIn');\n}\n\n/**\n * This hook allows you to access the Signal-based `SignUp` resource.\n *\n * @example\n * import { useSignUp } from \"@clerk/react\";\n *\n * function SignUpForm() {\n * const { signUp, errors, fetchStatus } = useSignUpSignal();\n * //\n * }\n */\nexport function useSignUp() {\n return useClerkSignal('signUp');\n}\n\n/**\n * This hook allows you to access the Signal-based `Waitlist` resource.\n *\n * @example\n * import { useWaitlist } from \"@clerk/react\";\n *\n * function WaitlistForm() {\n * const { waitlist, errors, fetchStatus } = useWaitlist();\n * //\n * }\n */\nexport function useWaitlist() {\n return useClerkSignal('waitlist');\n}\n","export { useAuth } from './useAuth';\nexport { useEmailLink } from './useEmailLink';\nexport { useSignIn, useSignUp, useWaitlist } from './useClerkSignal';\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';\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 getContainer,\n component,\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, getContainer });\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, getContainer, component, ...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, getContainer, component, ...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 getContainer,\n component,\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 getContainer,\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 type { SetActiveNavigate } from '@clerk/shared/types';\nimport React, { type ReactNode, useEffect, useRef } from 'react';\n\nimport { useClerk, useSignIn, useSignUp } from '../hooks';\n\nexport interface HandleSSOCallbackProps {\n /**\n * Called when the SSO callback is complete and a session has been created.\n */\n navigateToApp: (...params: Parameters<SetActiveNavigate>) => void;\n /**\n * Called when a sign-in requires additional verification, or a sign-up is transfered to a sign-in that requires\n * additional verification.\n */\n navigateToSignIn: () => void;\n /**\n * Called when a sign-in is transfered to a sign-up that requires additional verification.\n */\n navigateToSignUp: () => void;\n}\n\n/**\n * Use this component when building custom UI to handle the SSO callback and navigate to the appropriate page based on\n * the status of the sign-in or sign-up. By default, this component might render a captcha element to handle captchas\n * when required by the Clerk API.\n *\n * @example\n * ```tsx\n * import { HandleSSOCallback } from '@clerk/react';\n * import { useNavigate } from 'react-router';\n *\n * export default function Page() {\n * const navigate = useNavigate();\n *\n * return (\n * <HandleSSOCallback\n * navigateToApp={({ session, decorateUrl }) => {\n * if (session?.currentTask) {\n * const destination = decorateUrl(`/onboarding/${session?.currentTask.key}`);\n * if (destination.startsWith('http')) {\n * window.location.href = destination;\n * return;\n * }\n * navigate(destination);\n * return;\n * }\n *\n * const destination = decorateUrl('/dashboard');\n * if (destination.startsWith('http')) {\n * window.location.href = destination;\n * return;\n * }\n * navigate(destination);\n * }}\n * navigateToSignIn={() => {\n * navigate('/sign-in');\n * }}\n * navigateToSignUp={() => {\n * navigate('/sign-up');\n * }}\n * />\n * );\n * }\n * ```\n */\nexport function HandleSSOCallback(props: HandleSSOCallbackProps): ReactNode {\n const { navigateToApp, navigateToSignIn, navigateToSignUp } = props;\n const clerk = useClerk();\n const { signIn } = useSignIn();\n const { signUp } = useSignUp();\n const hasRun = useRef(false);\n\n useEffect(() => {\n (async () => {\n if (!clerk.loaded || hasRun.current) {\n return;\n }\n // Prevent re-running this effect if the page is re-rendered during session activation (such as on Next.js).\n hasRun.current = true;\n\n // If this was a sign-in, and it's complete, there's nothing else to do.\n // Note: We perform a cast here to prevent TypeScript from narrowing the type of signIn.status. TypeScript\n // doesn't understand that the status can be mutated during the execution of this function.\n if ((signIn.status as string) === 'complete') {\n await signIn.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n\n // If the sign-up used an existing account, transfer it to a sign-in.\n if (signUp.isTransferable) {\n await signIn.create({ transfer: true });\n if (signIn.status === 'complete') {\n await signIn.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n // The sign-in requires additional verification, so we need to navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n if (\n signIn.status === 'needs_first_factor' &&\n !signIn.supportedFirstFactors?.every(f => f.strategy === 'enterprise_sso')\n ) {\n // The sign-in requires the use of a configured first factor, so navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n // If the sign-in used an external account not associated with an existing user, create a sign-up.\n if (signIn.isTransferable) {\n await signUp.create({ transfer: true });\n if (signUp.status === 'complete') {\n await signUp.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n return navigateToSignUp();\n }\n\n if (signUp.status === 'complete') {\n await signUp.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n\n if (signIn.status === 'needs_second_factor' || signIn.status === 'needs_new_password') {\n // The sign-in requires a MFA token or a new password, so navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n // The external account used to sign-in or sign-up was already associated with an existing user and active\n // session on this client, so activate the session and navigate to the application.\n if (signIn.existingSession || signUp.existingSession) {\n const sessionId = signIn.existingSession?.sessionId || signUp.existingSession?.sessionId;\n if (sessionId) {\n // Because we're activating a session that's not the result of a sign-in or sign-up, we need to use the\n // Clerk `setActive` API instead of the `finalize` API.\n await clerk.setActive({\n session: sessionId,\n navigate: async (...params) => {\n return navigateToApp(...params);\n },\n });\n return;\n }\n }\n })();\n }, [clerk, clerk.loaded, signIn, signUp]);\n\n return (\n <div>\n {/* Because a sign-in transferred to a sign-up might require captcha verification, make sure to render the\n captcha element. */}\n <div id='clerk-captcha' />\n </div>\n );\n}\n","import { ClerkContextProvider } from '@clerk/shared/react';\nimport type { Ui } from '@clerk/ui/internal';\nimport React from 'react';\n\nimport { multipleClerkProvidersError } from '../errors/messages';\nimport { IsomorphicClerk } from '../isomorphicClerk';\nimport type { ClerkProviderProps, IsomorphicClerkOptions } from '../types';\nimport { mergeWithEnv, withMaxAllowedInstancesGuard } from '../utils';\nimport { IS_REACT_SHARED_VARIANT_COMPATIBLE } from '../utils/versionCheck';\n\nfunction ClerkProviderBase<TUi extends Ui>(props: ClerkProviderProps<TUi>) {\n const { initialState, children, ...restIsomorphicClerkOptions } = props;\n\n // Merge options with environment variable fallbacks (supports Vite's VITE_CLERK_* env vars)\n const mergedOptions = mergeWithEnv(restIsomorphicClerkOptions as unknown as IsomorphicClerkOptions);\n const { isomorphicClerk, clerkStatus } = useLoadedIsomorphicClerk(mergedOptions);\n\n return (\n <ClerkContextProvider\n initialState={initialState}\n // @ts-expect-error - Fixme!\n clerk={isomorphicClerk}\n clerkStatus={clerkStatus}\n >\n {children}\n </ClerkContextProvider>\n );\n}\n\nconst ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, 'ClerkProvider', multipleClerkProvidersError);\n\nClerkProvider.displayName = 'ClerkProvider';\n\nexport { ClerkProvider };\n\n// Default clerkUIVariant based on React version compatibility.\n// Computed once at module level for optimal performance.\nconst DEFAULT_CLERK_UI_VARIANT = IS_REACT_SHARED_VARIANT_COMPATIBLE ? ('shared' as const) : ('' as const);\n\nconst useLoadedIsomorphicClerk = (mergedOptions: IsomorphicClerkOptions) => {\n // Merge default clerkUIVariant with user options.\n // User-provided options spread last to allow explicit overrides.\n // The shared variant expects React to be provided via globalThis.__clerkSharedModules\n // (set up by @clerk/ui/register import), which reduces bundle size.\n const optionsWithDefaults = React.useMemo(\n () => ({\n clerkUIVariant: DEFAULT_CLERK_UI_VARIANT,\n ...mergedOptions,\n }),\n [mergedOptions],\n );\n const isomorphicClerkRef = React.useRef(IsomorphicClerk.getOrCreateInstance(optionsWithDefaults));\n const [clerkStatus, setClerkStatus] = React.useState(isomorphicClerkRef.current.status);\n\n React.useEffect(() => {\n void isomorphicClerkRef.current.__internal_updateProps({ appearance: mergedOptions.appearance });\n }, [mergedOptions.appearance]);\n\n React.useEffect(() => {\n void isomorphicClerkRef.current.__internal_updateProps({ options: mergedOptions });\n }, [mergedOptions.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, loadClerkUIScript } 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 ListenerOptions,\n LoadedClerk,\n OrganizationListProps,\n OrganizationProfileProps,\n OrganizationResource,\n OrganizationSwitcherProps,\n PricingTableProps,\n RedirectOptions,\n Resources,\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 type { ClerkUIConstructor } from '@clerk/shared/ui';\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 __internal_ClerkUICtor?: ClerkUIConstructor;\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 options?: ListenerOptions;\n handlers: {\n unsubscribe: UnsubscribeCallback;\n nativeUnsubscribe?: UnsubscribeCallback;\n };\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 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 this.#publishableKey = options?.publishableKey;\n this.#proxyUrl = options?.proxyUrl;\n this.#domain = options?.domain;\n this.options = options;\n this.Clerk = options?.Clerk || null;\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 // TODO: Please check into refactoring the type logic here, the experimental type interface is using type Autocomplete<U extends T, T = string> = U | (T & Record<never, never>);\n // so we are casting options.experimental.runtimeEnvironment to avoid changing Autocomplete to use an intersection (&) instead of a union (|), as this could cause problems in other parts of the codebase if not also refactored.\n\n if (\n this.#publishableKey &&\n (this.options.experimental as { runtimeEnvironment?: string } | undefined)?.runtimeEnvironment === 'headless' &&\n this.options.Clerk\n ) {\n void this.loadHeadlessClerk();\n } else if (this.#publishableKey) {\n void this.getEntryChunks();\n }\n }\n\n /**\n * Initialize Clerk for headless/React Native environments where a Clerk instance is provided directly.\n * Only handles Clerk construction and loading — post-load wiring is shared via replayInterceptedInvocations.\n */\n private loadHeadlessClerk(): void {\n const clerk = isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.options.Clerk)\n ? new this.options.Clerk(this.#publishableKey, { proxyUrl: this.proxyUrl, domain: this.domain })\n : this.options.Clerk;\n\n if (!clerk) {\n this.#eventBus.emit(clerkEvents.Status, 'error');\n return;\n }\n\n const onLoaded = () => {\n this.replayInterceptedInvocations(clerk);\n };\n\n if (!clerk.loaded) {\n clerk\n .load(this.options)\n .then(() => onLoaded())\n .catch(err => {\n if (__DEV__) {\n console.error('Clerk: Failed to load:', err);\n }\n this.#eventBus.emit(clerkEvents.Status, 'error');\n this.emitLoaded();\n });\n } else {\n onLoaded();\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 getEntryChunks(): Promise<void> {\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 // 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 // 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 const clerk = await this.getClerkJsEntryChunk();\n\n if (!clerk.loaded) {\n this.beforeLoad(clerk);\n // Load UI when:\n // - standard browser and no pre-created Clerk instance (normal CDN path), OR\n // - a bundled ClerkUI was provided via the ui prop (e.g. chrome-extension, even with standardBrowser: false)\n const shouldLoadUi =\n (this.options.standardBrowser !== false && !this.options.Clerk) || !!this.options.ui?.ClerkUI;\n const ClerkUI = shouldLoadUi ? await this.getClerkUIEntryChunk() : undefined;\n await clerk.load({ ...this.options, ui: { ...this.options.ui, ClerkUI } });\n }\n if (clerk.loaded) {\n this.replayInterceptedInvocations(clerk);\n }\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 private async getClerkJsEntryChunk(): Promise<HeadlessBrowserClerk | BrowserClerk> {\n // Hotload bundle\n if ((!this.options.Clerk || this.options.__internal_clerkJSUrl) && !__BUILD_DISABLE_RHC__) {\n // the UMD script sets the global.Clerk instance\n // we do not want to await here as we\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 // Otherwise, set global.Clerk to the bundled ctor or instance\n if (this.options.Clerk && !this.options.__internal_clerkJSUrl) {\n global.Clerk = isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.options.Clerk)\n ? new this.options.Clerk(this.#publishableKey, { proxyUrl: this.proxyUrl, domain: this.domain })\n : this.options.Clerk;\n }\n\n if (!global.Clerk) {\n // TODO @nikos: somehow throw if clerk ui failed to load but it was not headless\n throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n }\n\n return global.Clerk;\n }\n\n private async getClerkUIEntryChunk(): Promise<ClerkUIConstructor | undefined> {\n // Support bundled UI via ui.ClerkUI prop\n const uiProp = (this.options as { ui?: { __brand?: string; ClerkUI?: ClerkUIConstructor } }).ui;\n const hasInternalUrl = !!this.options.__internal_clerkUIUrl;\n if (uiProp?.ClerkUI && !hasInternalUrl) {\n return uiProp.ClerkUI;\n }\n\n // Skip CDN prefetch when ui prop is passed (bundled UI) or prefetchUI is false\n if ((uiProp || this.options.prefetchUI === false) && !hasInternalUrl) {\n return undefined;\n }\n\n await loadClerkUIScript({\n ...this.options,\n publishableKey: this.#publishableKey,\n proxyUrl: this.proxyUrl,\n domain: this.domain,\n nonce: this.options.nonce,\n });\n\n if (!global.__internal_ClerkUICtor) {\n throw new Error('Failed to download latest Clerk UI. Contact support@clerk.com.');\n }\n\n return global.__internal_ClerkUICtor;\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 replayInterceptedInvocations = (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((listenerExtras, listener) => {\n listenerExtras.handlers.nativeUnsubscribe = clerkjs.addListener(listener, listenerExtras.options);\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 __internal_environment(): any {\n if (this.clerkjs) {\n return (this.clerkjs as any).__internal_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.loaded && this.clerkjs\n ? this.clerkjs.__experimental_checkout(...args)\n : this.#stateProxy.checkoutSignal(...args);\n };\n\n __internal_setEnvironment(...args: any): void {\n if (this.clerkjs && '__internal_setEnvironment' in this.clerkjs) {\n (this.clerkjs as any).__internal_setEnvironment(args);\n } else {\n return undefined;\n }\n }\n\n // TODO @userland-errors:\n __internal_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 && '__internal_updateProps' in clerkjs) {\n return (clerkjs as any).__internal_updateProps(props);\n }\n };\n\n get __internal_lastEmittedResources(): Resources | undefined {\n return this.clerkjs?.__internal_lastEmittedResources;\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, options?: ListenerOptions): UnsubscribeCallback => {\n if (this.clerkjs) {\n return this.clerkjs.addListener(listener, options);\n } else {\n const unsubscribe = () => {\n const listenerExtras = this.premountAddListenerCalls.get(listener);\n if (listenerExtras?.handlers) {\n listenerExtras?.handlers.nativeUnsubscribe?.();\n this.premountAddListenerCalls.delete(listener);\n }\n };\n this.premountAddListenerCalls.set(listener, { options, handlers: { 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 {\n BillingSubscriptionPlanPeriod,\n CheckoutSignalValue,\n Clerk,\n ForPayerType,\n SignInErrors,\n SignUpErrors,\n SignUpVerificationResource,\n State,\n VerificationResource,\n WaitlistErrors,\n WaitlistResource,\n} 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\nconst defaultWaitlistErrors = (): WaitlistErrors => ({\n fields: {\n emailAddress: null,\n },\n raw: null,\n global: null,\n});\n\nconst defaultVerificationResource = (): VerificationResource => ({\n pathRoot: '',\n\n attempts: null,\n error: null,\n expireAt: null,\n externalVerificationRedirectURL: null,\n nonce: null,\n message: null,\n status: null,\n strategy: null,\n verifiedAtClient: null,\n verifiedFromTheSameClient() {\n return false;\n },\n reload() {\n throw new Error('reload() called before Clerk is loaded');\n },\n __internal_toSnapshot() {\n return {\n object: 'verification',\n id: '',\n attempts: null,\n error: { code: '', message: '' },\n expire_at: null,\n externalVerificationRedirectURL: null,\n nonce: null,\n message: null,\n status: null,\n strategy: null,\n verified_at_client: null,\n };\n },\n});\n\nconst defaultSignUpVerificationResource = (): SignUpVerificationResource => ({\n ...defaultVerificationResource(),\n supportedStrategies: [],\n nextAction: '',\n reload() {\n throw new Error('reload() called before Clerk is loaded');\n },\n __internal_toSnapshot() {\n return {\n ...defaultVerificationResource().__internal_toSnapshot(),\n next_action: this.nextAction,\n supported_strategies: this.supportedStrategies,\n };\n },\n});\n\ntype CheckoutSignalProps = {\n for?: ForPayerType;\n planPeriod: BillingSubscriptionPlanPeriod;\n planId: string;\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 private readonly waitlistSignalProxy = this.buildWaitlistProxy();\n\n signInSignal() {\n return this.signInSignalProxy;\n }\n signUpSignal() {\n return this.signUpSignalProxy;\n }\n waitlistSignal() {\n return this.waitlistSignalProxy;\n }\n\n get __internal_waitlist() {\n return this.state.__internal_waitlist;\n }\n\n checkoutSignal(params: CheckoutSignalProps) {\n return this.buildCheckoutProxy(params);\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 get isTransferable() {\n return gateProperty(target, 'isTransferable', false);\n },\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 get canBeDiscarded() {\n return gateProperty(target, 'canBeDiscarded', false);\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 reset: this.gateMethod(target, 'reset'),\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 resetPasswordPhoneCode: this.wrapMethods(() => target().resetPasswordPhoneCode, [\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 'sendEmailCode',\n 'verifyEmailCode',\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 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 get canBeDiscarded() {\n return gateProperty(target, 'canBeDiscarded', 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 reset: gateMethod(target, 'reset'),\n\n verifications: this.wrapStruct(\n () => target().verifications,\n [\n 'sendEmailCode',\n 'verifyEmailCode',\n 'sendEmailLink',\n 'waitForEmailLinkVerification',\n 'sendPhoneCode',\n 'verifyPhoneCode',\n ] as const,\n ['emailAddress', 'phoneNumber', 'web3Wallet', 'externalAccount', 'emailLinkVerification'] as const,\n {\n emailAddress: defaultSignUpVerificationResource(),\n phoneNumber: defaultSignUpVerificationResource(),\n web3Wallet: defaultSignUpVerificationResource(),\n externalAccount: defaultSignUpVerificationResource(),\n emailLinkVerification: null,\n },\n ),\n },\n };\n }\n\n private buildWaitlistProxy() {\n const gateProperty = this.gateProperty.bind(this);\n const gateMethod = this.gateMethod.bind(this);\n const target = (): WaitlistResource => {\n return this.state.__internal_waitlist;\n };\n\n return {\n errors: defaultWaitlistErrors(),\n fetchStatus: 'idle' as const,\n waitlist: {\n pathRoot: '/waitlist',\n get id() {\n return gateProperty(target, 'id', '');\n },\n get createdAt() {\n return gateProperty(target, 'createdAt', null);\n },\n get updatedAt() {\n return gateProperty(target, 'updatedAt', null);\n },\n\n join: gateMethod(target, 'join'),\n reload: gateMethod(target, 'reload'),\n },\n };\n }\n\n private buildCheckoutProxy(params: CheckoutSignalProps): CheckoutSignalValue {\n const gateProperty = this.gateProperty.bind(this);\n const targetCheckout = () => this.checkout(params);\n const target = () => targetCheckout().checkout;\n\n return {\n errors: {\n raw: null,\n global: null,\n },\n fetchStatus: 'idle' as const,\n checkout: {\n get status() {\n return gateProperty(target, 'status', 'needs_initialization') as 'needs_initialization';\n },\n get externalClientSecret() {\n return gateProperty(target, 'externalClientSecret', null) as null;\n },\n get externalGatewayId() {\n return gateProperty(target, 'externalGatewayId', null) as null;\n },\n get paymentMethod() {\n return gateProperty(target, 'paymentMethod', null) as null;\n },\n get plan() {\n return gateProperty(target, 'plan', null) as null;\n },\n get planPeriod() {\n return gateProperty(target, 'planPeriod', null) as null;\n },\n get totals() {\n return gateProperty(target, 'totals', null) as null;\n },\n get isImmediatePlanChange() {\n return gateProperty(target, 'isImmediatePlanChange', false) as null;\n },\n get freeTrialEndsAt() {\n return gateProperty(target, 'freeTrialEndsAt', null) as null;\n },\n get payer() {\n return gateProperty(target, 'payer', null) as null;\n },\n get planPeriodStart() {\n return gateProperty(target, 'planPeriodStart', null) as null;\n },\n get needsPaymentMethod() {\n return gateProperty(target, 'needsPaymentMethod', null) as null;\n },\n\n start: this.gateMethod<ReturnType<typeof target>, 'start'>(target, 'start'),\n confirm: this.gateMethod<ReturnType<typeof target>, 'confirm'>(target, 'confirm'),\n finalize: this.gateMethod<ReturnType<typeof target>, 'finalize'>(target, 'finalize'),\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 state() {\n const s = this.isomorphicClerk.__internal_state;\n if (!s) {\n throw new Error('Clerk state not ready');\n }\n return s;\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 get checkout(): Clerk['__experimental_checkout'] {\n const c = this.isomorphicClerk.__experimental_checkout as Clerk['__experimental_checkout'];\n if (!c) {\n throw new Error('Clerk checkout 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","import { isVersionCompatible, type VersionBounds } from '@clerk/shared/versionCheck';\nimport React from 'react';\n\nexport {\n checkVersionAgainstBounds,\n isVersionCompatible,\n parseVersion,\n type VersionBounds,\n} from '@clerk/shared/versionCheck';\n\ndeclare const __CLERK_UI_SUPPORTED_REACT_BOUNDS__: VersionBounds[];\n\n/**\n * Checks if the host application's React version is compatible with @clerk/ui's shared variant.\n * The shared variant expects React to be provided via globalThis.__clerkSharedModules,\n * so we need to ensure the host's React version matches what @clerk/ui was built against.\n *\n * This function is evaluated once at module load time.\n */\nfunction computeReactVersionCompatibility(): boolean {\n try {\n return isVersionCompatible(React.version, __CLERK_UI_SUPPORTED_REACT_BOUNDS__);\n } catch {\n // If we can't determine compatibility, fall back to non-shared variant\n return false;\n }\n}\n\n/**\n * Whether the host React version is compatible with the shared @clerk/ui variant.\n * This is computed once at module load time for optimal performance.\n */\nexport const IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();\n","export { ClerkProvider } from './ClerkProvider';\nexport { UNSAFE_PortalProvider } from '@clerk/shared/react';\n"],"mappings":"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","names":["import_loadClerkJsScript","import_utils","import_react","React","import_react","React","import_react","import_react","import_react","React","React","children","import_utils","import_react","_a","React","child","props","isReorderItem","isExternalLink","import_react","_a","import_react","React","_a","import_react","import_react","import_react","useSharedAssertWrappedByClerkProvider","React","_a","React","import_react","import_react","import_react","import_error","_a","getToken","import_react","React","import_telemetry","import_react","_a","import_react","_a","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","_a","React","import_react","import_browser","import_utils","import_browser","_a","import_react","import_versionCheck","React","React","React","import_react"]}
1
+ {"version":3,"sources":["../src/index.ts","<define:__CLERK_UI_SUPPORTED_REACT_BOUNDS__>","../src/polyfills.ts","../../ui/register/index.mjs","../src/errors/errorThrower.ts","../src/components/uiComponents.tsx","../src/errors/messages.ts","../src/utils/childrenUtils.tsx","../src/utils/envVariables.ts","../src/utils/isConstructor.ts","../src/utils/useMaxAllowedInstancesGuard.tsx","../src/utils/useCustomElementPortal.tsx","../src/utils/useCustomPages.tsx","../src/utils/componentValidation.ts","../src/utils/useCustomMenuItems.tsx","../src/utils/useWaitForComponentMount.ts","../src/components/ClerkHostRenderer.tsx","../src/components/withClerk.tsx","../src/contexts/IsomorphicClerkContext.tsx","../src/hooks/useAssertWrappedByClerkProvider.ts","../src/components/controlComponents.tsx","../src/hooks/useAuth.ts","../src/hooks/useAuthBase.tsx","../src/hooks/utils.ts","../src/hooks/useEmailLink.ts","../src/hooks/useClerkSignal.ts","../src/hooks/index.ts","../src/components/SignInButton.tsx","../src/components/SignInWithMetamaskButton.tsx","../src/components/SignOutButton.tsx","../src/components/SignUpButton.tsx","../src/components/HandleSSOCallback.tsx","../src/contexts/ClerkProvider.tsx","../src/isomorphicClerk.ts","../src/stateProxy.ts","../src/utils/versionCheck.ts","../src/contexts/index.ts"],"sourcesContent":["import './polyfills';\nimport './types/appearance';\n// Register React on the global shared modules registry.\n// This enables @clerk/ui's shared variant to use the host app's React\n// instead of bundling its own copy, reducing overall bundle size.\nimport '@clerk/ui/register';\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 { getToken } from '@clerk/shared/getToken';\nexport type {\n BrowserClerk,\n BrowserClerkConstructor,\n ClerkProp,\n HeadlessBrowserClerk,\n HeadlessBrowserClerkConstructor,\n IsomorphicClerkOptions,\n} from '@clerk/shared/types';\nexport type { ClerkProviderProps } from './types';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJSLoadingErrorPackageName(PACKAGE_NAME);\n","[[18,0,-1,0],[19,0,0,3],[19,1,1,4],[19,2,2,3],[19,3,3,0]]","/**\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","/**\n * Register React dependencies for sharing with @clerk/ui's shared variant.\n *\n * Import this module BEFORE loading the ui.shared.browser.js bundle:\n *\n * ```js\n * import '@clerk/ui/register';\n * // Now load clerk-js which will load ui.shared.browser.js\n * ```\n *\n * This enables @clerk/ui to use the host app's React instead of bundling its own,\n * reducing the overall bundle size.\n */\n\nimport * as react from 'react';\nimport * as reactDom from 'react-dom';\nimport * as reactDomClient from 'react-dom/client';\nimport * as jsxRuntime from 'react/jsx-runtime';\n\n// Only register if not already registered to avoid overwriting with potentially\n// different React versions in complex module resolution scenarios.\nif (globalThis.__clerkSharedModules) {\n // Warn if the already-registered React version differs from this import.\n // This could indicate multiple React versions in the bundle, which may cause issues.\n const existingVersion = globalThis.__clerkSharedModules.react?.version;\n if (existingVersion && existingVersion !== react.version) {\n console.warn(\n `[@clerk/ui/register] React version mismatch detected. ` +\n `Already registered: ${existingVersion}, current import: ${react.version}. ` +\n `This may cause issues with the shared @clerk/ui variant.`,\n );\n }\n} else {\n globalThis.__clerkSharedModules = {\n react,\n 'react-dom': reactDom,\n 'react-dom/client': reactDomClient,\n 'react/jsx-runtime': jsxRuntime,\n };\n}\n","import type { ErrorThrowerOptions } from '@clerk/shared/error';\nimport { buildErrorThrower } from '@clerk/shared/error';\n\nconst errorThrower = buildErrorThrower({ packageName: '@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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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).__internal_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","import { getEnvVariable } from '@clerk/shared/getEnvVariable';\n\nimport type { IsomorphicClerkOptions } from '../types';\n\n/**\n * Gets an environment variable value, checking for Vite's VITE_ prefix first.\n * This allows React SDK users with Vite to use VITE_CLERK_* env vars\n * (which Vite exposes client-side) without manual configuration.\n *\n * Note: Empty string values are treated as \"not set\" and will fall through to\n * the next env var in the chain. This is intentional since empty values are\n * typically invalid for these options.\n *\n * @param name - The environment variable name without prefix (e.g., 'CLERK_PUBLISHABLE_KEY')\n * @returns The value of the environment variable, or empty string if not found\n */\nconst getEnvVar = (name: string): string => {\n // Check for Vite-prefixed env var first (client-side exposed)\n // Then fall back to unprefixed version (for SSR, Node.js, etc.)\n // Note: Uses || so empty string falls through to the next check\n return getEnvVariable(`VITE_${name}`) || getEnvVariable(name);\n};\n\n/**\n * Helper to get env fallback only when the option is undefined.\n * We check for undefined specifically (not falsy) to avoid conflicting with framework SDKs\n * that may pass an empty string when their env var is not set.\n *\n * Returns the env var value only if it's non-empty, otherwise returns undefined\n * to preserve the original behavior when no env var is set.\n */\nconst withEnvFallback = (value: string | undefined, envVarName: string): string | undefined => {\n if (value !== undefined) {\n return value;\n }\n const envValue = getEnvVar(envVarName);\n return envValue || undefined;\n};\n\n/**\n * Merges ClerkProvider options with environment variable fallbacks.\n * This supports Vite users who set VITE_CLERK_* or CLERK_* env vars.\n * Passed-in options always take priority over environment variables.\n *\n * Supported environment variables:\n * - VITE_CLERK_PUBLISHABLE_KEY / CLERK_PUBLISHABLE_KEY\n *\n * @param options - The options passed to ClerkProvider\n * @returns Options with environment variable fallbacks applied\n */\nexport const mergeWithEnv = (options: IsomorphicClerkOptions): IsomorphicClerkOptions => {\n // Get env fallback values (undefined if not set)\n const publishableKey = withEnvFallback(options.publishableKey, 'CLERK_PUBLISHABLE_KEY');\n\n // Only add publishableKey to result if it has a defined value\n // URL fallbacks removed due to compatibility issues with @clerk/react-router\n return {\n ...options,\n ...(publishableKey !== undefined && { publishableKey }),\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: P,\n name: string,\n error: string,\n): P & { displayName: string } {\n // @ts-expect-error - simplified types to preserve generics in P\n const displayName = WrappedComponent.displayName || WrappedComponent.name || name || 'Component';\n const Hoc = (props: P) => {\n useMaxAllowedInstancesGuard(name, error);\n // @ts-expect-error - simplified types to preserve generics in P\n return <WrappedComponent {...(props as any)} />;\n };\n Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`;\n // @ts-expect-error - simplified types to preserve generics in P\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 { usePortalRoot } from '@clerk/shared/react';\nimport type { LoadedClerk, Without } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\n\nexport const withClerk = <P extends { clerk: LoadedClerk; component?: string }>(\n Component: React.ComponentType<P>,\n displayNameOrOptions?: string | { component: string; renderWhileLoading?: boolean },\n) => {\n const passedDisplayedName =\n typeof displayNameOrOptions === 'string' ? displayNameOrOptions : displayNameOrOptions?.component;\n const displayName = passedDisplayedName || Component.displayName || Component.name || 'Component';\n Component.displayName = displayName;\n\n const options = typeof displayNameOrOptions === 'string' ? undefined : displayNameOrOptions;\n\n const HOC = (props: Without<P, 'clerk'>) => {\n useAssertWrappedByClerkProvider(displayName || 'withClerk');\n\n const clerk = useIsomorphicClerkContext();\n const getContainer = usePortalRoot();\n\n if (!clerk.loaded && !options?.renderWhileLoading) {\n return null;\n }\n\n return (\n <Component\n getContainer={getContainer}\n {...(props as P)}\n component={displayName}\n clerk={clerk}\n />\n );\n };\n HOC.displayName = `withClerk(${displayName})`;\n return HOC;\n};\n","import { useClerkInstanceContext } from '@clerk/shared/react';\n\nimport type { IsomorphicClerk } from '../isomorphicClerk';\n\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 { __internal_useSessionBase } from '@clerk/shared/react';\nimport type { HandleOAuthCallbackParams, PendingSessionOptions, ShowWhenCondition } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAuth } from '../hooks';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\nimport type { RedirectToSignInProps, RedirectToSignUpProps, RedirectToTasksProps, WithClerkProp } from '../types';\nimport { withClerk } from './withClerk';\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 ShowProps = React.PropsWithChildren<\n {\n fallback?: React.ReactNode;\n when: ShowWhenCondition;\n } & PendingSessionOptions\n>;\n\n/**\n * Use `<Show/>` to conditionally render content based on user authorization or sign-in state.\n * Returns `null` while auth is loading. Set `treatPendingAsSignedOut` to treat\n * pending sessions as signed out during that period.\n *\n * The `when` prop supports:\n * - `\"signed-in\"` or `\"signed-out\"` shorthands\n * - Authorization descriptors (e.g., `{ permission: \"org:billing:manage\" }`, `{ role: \"admin\" }`)\n * - A predicate function `(has) => boolean` that receives the `has` helper\n *\n * @example\n * ```tsx\n * <Show when={{ permission: \"org:billing:manage\" }} fallback={<p>Unauthorized</p>}>\n * <BillingSettings />\n * </Show>\n *\n * <Show when={{ role: \"admin\" }}>\n * <AdminPanel />\n * </Show>\n *\n * <Show when={(has) => has({ permission: \"org:read\" }) && isFeatureEnabled}>\n * <ProtectedFeature />\n * </Show>\n * ```\n *\n */\nexport const Show = ({ children, fallback, treatPendingAsSignedOut, when }: ShowProps) => {\n useAssertWrappedByClerkProvider('Show');\n\n const { has, isLoaded, userId } = useAuth({ treatPendingAsSignedOut });\n\n if (!isLoaded) {\n return null;\n }\n\n const resolvedWhen = when;\n const authorized = children;\n const unauthorized = fallback ?? null;\n\n if (resolvedWhen === 'signed-out') {\n return userId ? unauthorized : authorized;\n }\n\n if (!userId) {\n return unauthorized;\n }\n\n if (resolvedWhen === 'signed-in') {\n return authorized;\n }\n\n if (checkAuthorization(resolvedWhen, has)) {\n return authorized;\n }\n\n return unauthorized;\n};\n\nfunction checkAuthorization(\n when: Exclude<ShowWhenCondition, 'signed-in' | 'signed-out'>,\n has: NonNullable<ReturnType<typeof useAuth>['has']>,\n): boolean {\n if (typeof when === 'function') {\n return when(has);\n }\n return has(when);\n}\n\nexport const RedirectToSignIn = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignInProps>) => {\n const { client, session } = clerk;\n\n const hasSignedInSessions = (client.signedInSessions?.length ?? 0) > 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/objects/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/objects/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/objects/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 = __internal_useSessionBase();\n return <React.Fragment key={session ? session.id : 'no-users'}>{children}</React.Fragment>;\n};\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 { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { errorThrower } from '../errors/errorThrower';\nimport { invalidStateError } from '../errors/messages';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\nimport { useAuthBase } from './useAuthBase';\nimport { createGetToken, createSignOut } from './utils';\n\n/**\n * @inline\n */\ntype UseAuthOptions = 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 [options] - An object containing options for the `useAuth()` hook. `treatPendingAsSignedOut` is a boolean that indicates whether pending sessions are considered as signed out or not. Defaults to `true`.\n *\n * @function\n *\n * @example\n *\n * The following example demonstrates how to use the `useAuth()` hook to access the current auth state, like whether the user is signed in or not. It also includes a basic example for using the `getToken()` method to retrieve a session token for fetching data from an external resource.\n *\n * <Tabs items='React,Next.js'>\n * <Tab>\n *\n * ```tsx {{ filename: 'src/pages/ExternalDataPage.tsx' }}\n * import { useAuth } from '@clerk/react'\n *\n * export default function ExternalDataPage() {\n * const { userId, sessionId, getToken, isLoaded, isSignedIn } = useAuth()\n *\n * const fetchExternalData = async () => {\n * const token = await getToken()\n *\n * // Fetch data from an external API\n * const response = await fetch('https://api.example.com/data', {\n * headers: {\n * Authorization: `Bearer ${token}`,\n * },\n * })\n *\n * return response.json()\n * }\n *\n * if (!isLoaded) {\n * return <div>Loading...</div>\n * }\n *\n * if (!isSignedIn) {\n * return <div>Sign in to view this page</div>\n * }\n *\n * return (\n * <div>\n * <p>\n * Hello, {userId}! Your current active session is {sessionId}.\n * </p>\n * <button onClick={fetchExternalData}>Fetch Data</button>\n * </div>\n * )\n * }\n * ```\n *\n * </Tab>\n * <Tab>\n *\n * {@include ../../docs/use-auth.md#nextjs-01}\n *\n * </Tab>\n * </Tabs>\n */\nexport const useAuth = (options: UseAuthOptions = {}): UseAuthReturn => {\n useAssertWrappedByClerkProvider('useAuth');\n\n const { treatPendingAsSignedOut } = options ?? {};\n const authState = useAuthBase();\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 ...authState,\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 { deriveState, type DeriveStateReturnType } from '@clerk/shared/deriveState';\nimport { useClerkInstanceContext, useInitialStateContext } from '@clerk/shared/react';\nimport type {\n ActClaim,\n InitialState,\n JwtPayload,\n OrganizationCustomPermissionKey,\n OrganizationCustomRoleKey,\n Resources,\n SessionStatusClaim,\n} from '@clerk/shared/types';\nimport { useCallback, useMemo, useSyncExternalStore } from 'react';\n\ntype AuthStateValue = {\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 defaultDerivedInitialState = {\n actor: undefined,\n factorVerificationAge: null,\n orgId: undefined,\n orgPermissions: undefined,\n orgRole: undefined,\n orgSlug: undefined,\n sessionClaims: undefined,\n sessionId: undefined,\n sessionStatus: undefined,\n userId: undefined,\n};\n\nexport function useAuthBase(): AuthStateValue {\n const clerk = useClerkInstanceContext();\n const initialState = useInitialStateContext();\n const getInitialState = useCallback(() => initialState, [initialState]);\n\n const state = useSyncExternalStore(\n useCallback(callback => clerk.addListener(callback, { skipInitialEmit: true }), [clerk]),\n useCallback(() => {\n if (!clerk.loaded || !clerk.__internal_lastEmittedResources) {\n return getInitialState();\n }\n\n return clerk.__internal_lastEmittedResources;\n }, [clerk, getInitialState]),\n getInitialState,\n );\n\n const authState = useMemo(() => {\n if (!state) {\n return defaultDerivedInitialState;\n }\n const fullState = isInitialState(state)\n ? deriveState(false, {} as Resources, state)\n : deriveState(true, state, undefined);\n return authStateFromFull(fullState);\n }, [state]);\n\n return authState;\n}\n\nfunction authStateFromFull(derivedState: DeriveStateReturnType) {\n return {\n sessionId: derivedState.sessionId,\n sessionStatus: derivedState.sessionStatus,\n sessionClaims: derivedState.sessionClaims,\n userId: derivedState.userId,\n actor: derivedState.actor,\n orgId: derivedState.orgId,\n orgRole: derivedState.orgRole,\n orgSlug: derivedState.orgSlug,\n orgPermissions: derivedState.orgPermissions,\n factorVerificationAge: derivedState.factorVerificationAge,\n };\n}\n\nfunction isInitialState(state: Resources | InitialState): state is InitialState {\n return !('client' in state);\n}\n","import { inBrowser } from '@clerk/shared/browser';\nimport { ClerkRuntimeError } from '@clerk/shared/error';\n\nimport 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 if (!inBrowser()) {\n throw new ClerkRuntimeError(\n 'useAuth().getToken() can only be used in browser environments. To access auth data server-side, see the Auth object reference doc: https://clerk.com/docs/reference/backend/types/auth-object',\n {\n code: 'clerk_runtime_not_browser',\n },\n );\n }\n\n await clerkLoaded(isomorphicClerk);\n if (!isomorphicClerk.session) {\n return null;\n }\n return isomorphicClerk.session.getToken(options);\n };\n};\n\n/**\n * @internal\n */\nexport const createSignOut = (isomorphicClerk: IsomorphicClerk) => {\n return async (...args: any) => {\n await clerkLoaded(isomorphicClerk);\n return isomorphicClerk.signOut(...args);\n };\n};\n","import type {\n CreateEmailLinkFlowReturn,\n EmailAddressResource,\n SignInResource,\n SignInStartEmailLinkFlowParams,\n SignUpResource,\n StartEmailLinkFlowParams,\n} from '@clerk/shared/types';\nimport React from 'react';\n\ntype EmailLinkable = SignUpResource | EmailAddressResource | SignInResource;\ntype UseEmailLinkSignInReturn = CreateEmailLinkFlowReturn<SignInStartEmailLinkFlowParams, SignInResource>;\ntype UseEmailLinkSignUpReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, SignUpResource>;\ntype UseEmailLinkEmailAddressReturn = CreateEmailLinkFlowReturn<StartEmailLinkFlowParams, EmailAddressResource>;\n\nfunction useEmailLink(resource: SignInResource): UseEmailLinkSignInReturn;\nfunction useEmailLink(resource: SignUpResource): UseEmailLinkSignUpReturn;\nfunction useEmailLink(resource: EmailAddressResource): UseEmailLinkEmailAddressReturn;\nfunction useEmailLink(\n resource: EmailLinkable,\n): UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn {\n const { startEmailLinkFlow, cancelEmailLinkFlow } = React.useMemo(() => resource.createEmailLinkFlow(), [resource]);\n\n React.useEffect(() => {\n return cancelEmailLinkFlow;\n }, []);\n\n return {\n startEmailLinkFlow,\n cancelEmailLinkFlow,\n } as UseEmailLinkSignInReturn | UseEmailLinkSignUpReturn | UseEmailLinkEmailAddressReturn;\n}\n\nexport { useEmailLink };\n","import { eventMethodCalled } from '@clerk/shared/telemetry';\nimport type { SignInSignalValue, SignUpSignalValue, WaitlistSignalValue } from '@clerk/shared/types';\nimport { useCallback, useSyncExternalStore } from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useAssertWrappedByClerkProvider } from './useAssertWrappedByClerkProvider';\n\nfunction useClerkSignal(signal: 'signIn'): SignInSignalValue;\nfunction useClerkSignal(signal: 'signUp'): SignUpSignalValue;\nfunction useClerkSignal(signal: 'waitlist'): WaitlistSignalValue;\nfunction useClerkSignal(\n signal: 'signIn' | 'signUp' | 'waitlist',\n): SignInSignalValue | SignUpSignalValue | WaitlistSignalValue {\n useAssertWrappedByClerkProvider('useClerkSignal');\n\n const clerk = useIsomorphicClerkContext();\n\n switch (signal) {\n case 'signIn':\n clerk.telemetry?.record(eventMethodCalled('useSignIn', { apiVersion: '2025-11' }));\n break;\n case 'signUp':\n clerk.telemetry?.record(eventMethodCalled('useSignUp', { apiVersion: '2025-11' }));\n break;\n case 'waitlist':\n clerk.telemetry?.record(eventMethodCalled('useWaitlist', { apiVersion: '2025-11' }));\n break;\n default:\n break;\n }\n\n const subscribe = useCallback(\n (callback: () => void) => {\n if (!clerk.loaded) {\n return () => {};\n }\n\n return clerk.__internal_state.__internal_effect(() => {\n switch (signal) {\n case 'signIn':\n clerk.__internal_state.signInSignal();\n break;\n case 'signUp':\n clerk.__internal_state.signUpSignal();\n break;\n case 'waitlist':\n clerk.__internal_state.waitlistSignal();\n break;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n callback();\n });\n },\n [clerk, clerk.loaded, clerk.__internal_state],\n );\n const getSnapshot = useCallback(() => {\n switch (signal) {\n case 'signIn':\n return clerk.__internal_state.signInSignal() as SignInSignalValue;\n case 'signUp':\n return clerk.__internal_state.signUpSignal() as SignUpSignalValue;\n case 'waitlist':\n return clerk.__internal_state.waitlistSignal() as WaitlistSignalValue;\n default:\n throw new Error(`Unknown signal: ${signal}`);\n }\n }, [clerk.__internal_state]);\n\n const value = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\n return value;\n}\n\n/**\n * This hook allows you to access the Signal-based `SignIn` resource.\n *\n * @example\n * import { useSignIn } from \"@clerk/react\";\n *\n * function SignInForm() {\n * const { signIn, errors, fetchStatus } = useSignInSignal();\n * //\n * }\n */\nexport function useSignIn() {\n return useClerkSignal('signIn');\n}\n\n/**\n * This hook allows you to access the Signal-based `SignUp` resource.\n *\n * @example\n * import { useSignUp } from \"@clerk/react\";\n *\n * function SignUpForm() {\n * const { signUp, errors, fetchStatus } = useSignUpSignal();\n * //\n * }\n */\nexport function useSignUp() {\n return useClerkSignal('signUp');\n}\n\n/**\n * This hook allows you to access the Signal-based `Waitlist` resource.\n *\n * @example\n * import { useWaitlist } from \"@clerk/react\";\n *\n * function WaitlistForm() {\n * const { waitlist, errors, fetchStatus } = useWaitlist();\n * //\n * }\n */\nexport function useWaitlist() {\n return useClerkSignal('waitlist');\n}\n","export { useAuth } from './useAuth';\nexport { useEmailLink } from './useEmailLink';\nexport { useSignIn, useSignUp, useWaitlist } from './useClerkSignal';\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';\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 getContainer,\n component,\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, getContainer });\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, getContainer, component, ...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, getContainer, component, ...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 getContainer,\n component,\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 getContainer,\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 type { SetActiveNavigate } from '@clerk/shared/types';\nimport React, { type ReactNode, useEffect, useRef } from 'react';\n\nimport { useClerk, useSignIn, useSignUp } from '../hooks';\n\nexport interface HandleSSOCallbackProps {\n /**\n * Called when the SSO callback is complete and a session has been created.\n */\n navigateToApp: (...params: Parameters<SetActiveNavigate>) => void;\n /**\n * Called when a sign-in requires additional verification, or a sign-up is transfered to a sign-in that requires\n * additional verification.\n */\n navigateToSignIn: () => void;\n /**\n * Called when a sign-in is transfered to a sign-up that requires additional verification.\n */\n navigateToSignUp: () => void;\n}\n\n/**\n * Use this component when building custom UI to handle the SSO callback and navigate to the appropriate page based on\n * the status of the sign-in or sign-up. By default, this component might render a captcha element to handle captchas\n * when required by the Clerk API.\n *\n * @example\n * ```tsx\n * import { HandleSSOCallback } from '@clerk/react';\n * import { useNavigate } from 'react-router';\n *\n * export default function Page() {\n * const navigate = useNavigate();\n *\n * return (\n * <HandleSSOCallback\n * navigateToApp={({ session, decorateUrl }) => {\n * if (session?.currentTask) {\n * const destination = decorateUrl(`/onboarding/${session?.currentTask.key}`);\n * if (destination.startsWith('http')) {\n * window.location.href = destination;\n * return;\n * }\n * navigate(destination);\n * return;\n * }\n *\n * const destination = decorateUrl('/dashboard');\n * if (destination.startsWith('http')) {\n * window.location.href = destination;\n * return;\n * }\n * navigate(destination);\n * }}\n * navigateToSignIn={() => {\n * navigate('/sign-in');\n * }}\n * navigateToSignUp={() => {\n * navigate('/sign-up');\n * }}\n * />\n * );\n * }\n * ```\n */\nexport function HandleSSOCallback(props: HandleSSOCallbackProps): ReactNode {\n const { navigateToApp, navigateToSignIn, navigateToSignUp } = props;\n const clerk = useClerk();\n const { signIn } = useSignIn();\n const { signUp } = useSignUp();\n const hasRun = useRef(false);\n\n useEffect(() => {\n (async () => {\n if (!clerk.loaded || hasRun.current) {\n return;\n }\n // Prevent re-running this effect if the page is re-rendered during session activation (such as on Next.js).\n hasRun.current = true;\n\n // If this was a sign-in, and it's complete, there's nothing else to do.\n // Note: We perform a cast here to prevent TypeScript from narrowing the type of signIn.status. TypeScript\n // doesn't understand that the status can be mutated during the execution of this function.\n if ((signIn.status as string) === 'complete') {\n await signIn.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n\n // If the sign-up used an existing account, transfer it to a sign-in.\n if (signUp.isTransferable) {\n await signIn.create({ transfer: true });\n if (signIn.status === 'complete') {\n await signIn.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n // The sign-in requires additional verification, so we need to navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n if (\n signIn.status === 'needs_first_factor' &&\n !signIn.supportedFirstFactors?.every(f => f.strategy === 'enterprise_sso')\n ) {\n // The sign-in requires the use of a configured first factor, so navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n // If the sign-in used an external account not associated with an existing user, create a sign-up.\n if (signIn.isTransferable) {\n await signUp.create({ transfer: true });\n if (signUp.status === 'complete') {\n await signUp.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n return navigateToSignUp();\n }\n\n if (signUp.status === 'complete') {\n await signUp.finalize({\n navigate: async (...params) => {\n navigateToApp(...params);\n },\n });\n return;\n }\n\n if (signIn.status === 'needs_second_factor' || signIn.status === 'needs_new_password') {\n // The sign-in requires a MFA token or a new password, so navigate to the sign-in page.\n return navigateToSignIn();\n }\n\n // The external account used to sign-in or sign-up was already associated with an existing user and active\n // session on this client, so activate the session and navigate to the application.\n if (signIn.existingSession || signUp.existingSession) {\n const sessionId = signIn.existingSession?.sessionId || signUp.existingSession?.sessionId;\n if (sessionId) {\n // Because we're activating a session that's not the result of a sign-in or sign-up, we need to use the\n // Clerk `setActive` API instead of the `finalize` API.\n await clerk.setActive({\n session: sessionId,\n navigate: async (...params) => {\n return navigateToApp(...params);\n },\n });\n return;\n }\n }\n })();\n }, [clerk, clerk.loaded, signIn, signUp]);\n\n return (\n <div>\n {/* Because a sign-in transferred to a sign-up might require captcha verification, make sure to render the\n captcha element. */}\n <div id='clerk-captcha' />\n </div>\n );\n}\n","import { ClerkContextProvider } from '@clerk/shared/react';\nimport type { Ui } from '@clerk/ui/internal';\nimport React from 'react';\n\nimport { multipleClerkProvidersError } from '../errors/messages';\nimport { IsomorphicClerk } from '../isomorphicClerk';\nimport type { ClerkProviderProps, IsomorphicClerkOptions } from '../types';\nimport { mergeWithEnv, withMaxAllowedInstancesGuard } from '../utils';\nimport { IS_REACT_SHARED_VARIANT_COMPATIBLE } from '../utils/versionCheck';\n\nfunction ClerkProviderBase<TUi extends Ui>(props: ClerkProviderProps<TUi>) {\n const { initialState, children, ...restIsomorphicClerkOptions } = props;\n\n // Merge options with environment variable fallbacks (supports Vite's VITE_CLERK_* env vars)\n const mergedOptions = mergeWithEnv(restIsomorphicClerkOptions as unknown as IsomorphicClerkOptions);\n const { isomorphicClerk, clerkStatus } = useLoadedIsomorphicClerk(mergedOptions);\n\n return (\n <ClerkContextProvider\n initialState={initialState}\n // @ts-expect-error - Fixme!\n clerk={isomorphicClerk}\n clerkStatus={clerkStatus}\n >\n {children}\n </ClerkContextProvider>\n );\n}\n\nconst ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, 'ClerkProvider', multipleClerkProvidersError);\n\nClerkProvider.displayName = 'ClerkProvider';\n\nexport { ClerkProvider };\n\n// Default clerkUIVariant based on React version compatibility.\n// Computed once at module level for optimal performance.\nconst DEFAULT_CLERK_UI_VARIANT = IS_REACT_SHARED_VARIANT_COMPATIBLE ? ('shared' as const) : ('' as const);\n\nconst useLoadedIsomorphicClerk = (mergedOptions: IsomorphicClerkOptions) => {\n // Merge default clerkUIVariant with user options.\n // User-provided options spread last to allow explicit overrides.\n // The shared variant expects React to be provided via globalThis.__clerkSharedModules\n // (set up by @clerk/ui/register import), which reduces bundle size.\n const optionsWithDefaults = React.useMemo(\n () => ({\n clerkUIVariant: DEFAULT_CLERK_UI_VARIANT,\n ...mergedOptions,\n }),\n [mergedOptions],\n );\n const isomorphicClerkRef = React.useRef(IsomorphicClerk.getOrCreateInstance(optionsWithDefaults));\n const [clerkStatus, setClerkStatus] = React.useState(isomorphicClerkRef.current.status);\n\n React.useEffect(() => {\n void isomorphicClerkRef.current.__internal_updateProps({ appearance: mergedOptions.appearance });\n }, [mergedOptions.appearance]);\n\n React.useEffect(() => {\n void isomorphicClerkRef.current.__internal_updateProps({ options: mergedOptions });\n }, [mergedOptions.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, loadClerkUIScript } 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 ListenerOptions,\n LoadedClerk,\n OrganizationListProps,\n OrganizationProfileProps,\n OrganizationResource,\n OrganizationSwitcherProps,\n PricingTableProps,\n RedirectOptions,\n Resources,\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 type { ClerkUIConstructor } from '@clerk/shared/ui';\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 __internal_ClerkUICtor?: ClerkUIConstructor;\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 options?: ListenerOptions;\n handlers: {\n unsubscribe: UnsubscribeCallback;\n nativeUnsubscribe?: UnsubscribeCallback;\n };\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 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 this.#publishableKey = options?.publishableKey;\n this.#proxyUrl = options?.proxyUrl;\n this.#domain = options?.domain;\n this.options = options;\n this.Clerk = options?.Clerk || null;\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 // TODO: Please check into refactoring the type logic here, the experimental type interface is using type Autocomplete<U extends T, T = string> = U | (T & Record<never, never>);\n // so we are casting options.experimental.runtimeEnvironment to avoid changing Autocomplete to use an intersection (&) instead of a union (|), as this could cause problems in other parts of the codebase if not also refactored.\n\n if (\n this.#publishableKey &&\n (this.options.experimental as { runtimeEnvironment?: string } | undefined)?.runtimeEnvironment === 'headless' &&\n this.options.Clerk\n ) {\n void this.loadHeadlessClerk();\n } else if (this.#publishableKey) {\n void this.getEntryChunks();\n }\n }\n\n /**\n * Initialize Clerk for headless/React Native environments where a Clerk instance is provided directly.\n * Only handles Clerk construction and loading — post-load wiring is shared via replayInterceptedInvocations.\n */\n private loadHeadlessClerk(): void {\n const clerk = isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.options.Clerk)\n ? new this.options.Clerk(this.#publishableKey, { proxyUrl: this.proxyUrl, domain: this.domain })\n : this.options.Clerk;\n\n if (!clerk) {\n this.#eventBus.emit(clerkEvents.Status, 'error');\n return;\n }\n\n const onLoaded = () => {\n this.replayInterceptedInvocations(clerk);\n };\n\n if (!clerk.loaded) {\n clerk\n .load(this.options)\n .then(() => onLoaded())\n .catch(err => {\n if (__DEV__) {\n console.error('Clerk: Failed to load:', err);\n }\n this.#eventBus.emit(clerkEvents.Status, 'error');\n this.emitLoaded();\n });\n } else {\n onLoaded();\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 getEntryChunks(): Promise<void> {\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 // 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 // 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 const clerk = await this.getClerkJsEntryChunk();\n\n if (!clerk.loaded) {\n this.beforeLoad(clerk);\n // Load UI when:\n // - standard browser and no pre-created Clerk instance (normal CDN path), OR\n // - a bundled ClerkUI was provided via the ui prop (e.g. chrome-extension, even with standardBrowser: false)\n const shouldLoadUi =\n (this.options.standardBrowser !== false && !this.options.Clerk) || !!this.options.ui?.ClerkUI;\n const ClerkUI = shouldLoadUi ? await this.getClerkUIEntryChunk() : undefined;\n await clerk.load({ ...this.options, ui: { ...this.options.ui, ClerkUI } });\n }\n if (clerk.loaded) {\n this.replayInterceptedInvocations(clerk);\n }\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 private async getClerkJsEntryChunk(): Promise<HeadlessBrowserClerk | BrowserClerk> {\n // Hotload bundle\n if ((!this.options.Clerk || this.options.__internal_clerkJSUrl) && !__BUILD_DISABLE_RHC__) {\n // the UMD script sets the global.Clerk instance\n // we do not want to await here as we\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 // Otherwise, set global.Clerk to the bundled ctor or instance\n if (this.options.Clerk && !this.options.__internal_clerkJSUrl) {\n global.Clerk = isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.options.Clerk)\n ? new this.options.Clerk(this.#publishableKey, { proxyUrl: this.proxyUrl, domain: this.domain })\n : this.options.Clerk;\n }\n\n if (!global.Clerk) {\n // TODO @nikos: somehow throw if clerk ui failed to load but it was not headless\n throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n }\n\n return global.Clerk;\n }\n\n private async getClerkUIEntryChunk(): Promise<ClerkUIConstructor | undefined> {\n // Support bundled UI via ui.ClerkUI prop\n const uiProp = (this.options as { ui?: { __brand?: string; ClerkUI?: ClerkUIConstructor } }).ui;\n const hasInternalUrl = !!this.options.__internal_clerkUIUrl;\n if (uiProp?.ClerkUI && !hasInternalUrl) {\n return uiProp.ClerkUI;\n }\n\n // Skip CDN prefetch when ui prop is passed (bundled UI) or prefetchUI is false\n if ((uiProp || this.options.prefetchUI === false) && !hasInternalUrl) {\n return undefined;\n }\n\n await loadClerkUIScript({\n ...this.options,\n publishableKey: this.#publishableKey,\n proxyUrl: this.proxyUrl,\n domain: this.domain,\n nonce: this.options.nonce,\n });\n\n if (!global.__internal_ClerkUICtor) {\n throw new Error('Failed to download latest Clerk UI. Contact support@clerk.com.');\n }\n\n return global.__internal_ClerkUICtor;\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 replayInterceptedInvocations = (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((listenerExtras, listener) => {\n listenerExtras.handlers.nativeUnsubscribe = clerkjs.addListener(listener, listenerExtras.options);\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 __internal_environment(): any {\n if (this.clerkjs) {\n return (this.clerkjs as any).__internal_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.loaded && this.clerkjs\n ? this.clerkjs.__experimental_checkout(...args)\n : this.#stateProxy.checkoutSignal(...args);\n };\n\n __internal_setEnvironment(...args: any): void {\n if (this.clerkjs && '__internal_setEnvironment' in this.clerkjs) {\n (this.clerkjs as any).__internal_setEnvironment(args);\n } else {\n return undefined;\n }\n }\n\n // TODO @userland-errors:\n __internal_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 && '__internal_updateProps' in clerkjs) {\n return (clerkjs as any).__internal_updateProps(props);\n }\n };\n\n get __internal_lastEmittedResources(): Resources | undefined {\n return this.clerkjs?.__internal_lastEmittedResources;\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, options?: ListenerOptions): UnsubscribeCallback => {\n if (this.clerkjs) {\n return this.clerkjs.addListener(listener, options);\n } else {\n const unsubscribe = () => {\n const listenerExtras = this.premountAddListenerCalls.get(listener);\n if (listenerExtras?.handlers) {\n listenerExtras?.handlers.nativeUnsubscribe?.();\n this.premountAddListenerCalls.delete(listener);\n }\n };\n this.premountAddListenerCalls.set(listener, { options, handlers: { 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 {\n BillingSubscriptionPlanPeriod,\n CheckoutSignalValue,\n Clerk,\n ForPayerType,\n SignInErrors,\n SignUpErrors,\n SignUpVerificationResource,\n State,\n VerificationResource,\n WaitlistErrors,\n WaitlistResource,\n} 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\nconst defaultWaitlistErrors = (): WaitlistErrors => ({\n fields: {\n emailAddress: null,\n },\n raw: null,\n global: null,\n});\n\nconst defaultVerificationResource = (): VerificationResource => ({\n pathRoot: '',\n\n attempts: null,\n error: null,\n expireAt: null,\n externalVerificationRedirectURL: null,\n nonce: null,\n message: null,\n status: null,\n strategy: null,\n verifiedAtClient: null,\n verifiedFromTheSameClient() {\n return false;\n },\n reload() {\n throw new Error('reload() called before Clerk is loaded');\n },\n __internal_toSnapshot() {\n return {\n object: 'verification',\n id: '',\n attempts: null,\n error: { code: '', message: '' },\n expire_at: null,\n externalVerificationRedirectURL: null,\n nonce: null,\n message: null,\n status: null,\n strategy: null,\n verified_at_client: null,\n };\n },\n});\n\nconst defaultSignUpVerificationResource = (): SignUpVerificationResource => ({\n ...defaultVerificationResource(),\n supportedStrategies: [],\n nextAction: '',\n reload() {\n throw new Error('reload() called before Clerk is loaded');\n },\n __internal_toSnapshot() {\n return {\n ...defaultVerificationResource().__internal_toSnapshot(),\n next_action: this.nextAction,\n supported_strategies: this.supportedStrategies,\n };\n },\n});\n\ntype CheckoutSignalProps = {\n for?: ForPayerType;\n planPeriod: BillingSubscriptionPlanPeriod;\n planId: string;\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 private readonly waitlistSignalProxy = this.buildWaitlistProxy();\n\n signInSignal() {\n return this.signInSignalProxy;\n }\n signUpSignal() {\n return this.signUpSignalProxy;\n }\n waitlistSignal() {\n return this.waitlistSignalProxy;\n }\n\n get __internal_waitlist() {\n return this.state.__internal_waitlist;\n }\n\n checkoutSignal(params: CheckoutSignalProps) {\n return this.buildCheckoutProxy(params);\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 get isTransferable() {\n return gateProperty(target, 'isTransferable', false);\n },\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 get canBeDiscarded() {\n return gateProperty(target, 'canBeDiscarded', false);\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 reset: this.gateMethod(target, 'reset'),\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 resetPasswordPhoneCode: this.wrapMethods(() => target().resetPasswordPhoneCode, [\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 'sendEmailCode',\n 'verifyEmailCode',\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 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 get canBeDiscarded() {\n return gateProperty(target, 'canBeDiscarded', 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 reset: gateMethod(target, 'reset'),\n\n verifications: this.wrapStruct(\n () => target().verifications,\n [\n 'sendEmailCode',\n 'verifyEmailCode',\n 'sendEmailLink',\n 'waitForEmailLinkVerification',\n 'sendPhoneCode',\n 'verifyPhoneCode',\n ] as const,\n ['emailAddress', 'phoneNumber', 'web3Wallet', 'externalAccount', 'emailLinkVerification'] as const,\n {\n emailAddress: defaultSignUpVerificationResource(),\n phoneNumber: defaultSignUpVerificationResource(),\n web3Wallet: defaultSignUpVerificationResource(),\n externalAccount: defaultSignUpVerificationResource(),\n emailLinkVerification: null,\n },\n ),\n },\n };\n }\n\n private buildWaitlistProxy() {\n const gateProperty = this.gateProperty.bind(this);\n const gateMethod = this.gateMethod.bind(this);\n const target = (): WaitlistResource => {\n return this.state.__internal_waitlist;\n };\n\n return {\n errors: defaultWaitlistErrors(),\n fetchStatus: 'idle' as const,\n waitlist: {\n pathRoot: '/waitlist',\n get id() {\n return gateProperty(target, 'id', '');\n },\n get createdAt() {\n return gateProperty(target, 'createdAt', null);\n },\n get updatedAt() {\n return gateProperty(target, 'updatedAt', null);\n },\n\n join: gateMethod(target, 'join'),\n reload: gateMethod(target, 'reload'),\n },\n };\n }\n\n private buildCheckoutProxy(params: CheckoutSignalProps): CheckoutSignalValue {\n const gateProperty = this.gateProperty.bind(this);\n const targetCheckout = () => this.checkout(params);\n const target = () => targetCheckout().checkout;\n\n return {\n errors: {\n raw: null,\n global: null,\n },\n fetchStatus: 'idle' as const,\n checkout: {\n get status() {\n return gateProperty(target, 'status', 'needs_initialization') as 'needs_initialization';\n },\n get externalClientSecret() {\n return gateProperty(target, 'externalClientSecret', null) as null;\n },\n get externalGatewayId() {\n return gateProperty(target, 'externalGatewayId', null) as null;\n },\n get paymentMethod() {\n return gateProperty(target, 'paymentMethod', null) as null;\n },\n get plan() {\n return gateProperty(target, 'plan', null) as null;\n },\n get planPeriod() {\n return gateProperty(target, 'planPeriod', null) as null;\n },\n get totals() {\n return gateProperty(target, 'totals', null) as null;\n },\n get isImmediatePlanChange() {\n return gateProperty(target, 'isImmediatePlanChange', false) as null;\n },\n get freeTrialEndsAt() {\n return gateProperty(target, 'freeTrialEndsAt', null) as null;\n },\n get payer() {\n return gateProperty(target, 'payer', null) as null;\n },\n get planPeriodStart() {\n return gateProperty(target, 'planPeriodStart', null) as null;\n },\n get needsPaymentMethod() {\n return gateProperty(target, 'needsPaymentMethod', null) as null;\n },\n\n start: this.gateMethod<ReturnType<typeof target>, 'start'>(target, 'start'),\n confirm: this.gateMethod<ReturnType<typeof target>, 'confirm'>(target, 'confirm'),\n finalize: this.gateMethod<ReturnType<typeof target>, 'finalize'>(target, 'finalize'),\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 state() {\n const s = this.isomorphicClerk.__internal_state;\n if (!s) {\n throw new Error('Clerk state not ready');\n }\n return s;\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 get checkout(): Clerk['__experimental_checkout'] {\n const c = this.isomorphicClerk.__experimental_checkout as Clerk['__experimental_checkout'];\n if (!c) {\n throw new Error('Clerk checkout 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","import { isVersionCompatible, type VersionBounds } from '@clerk/shared/versionCheck';\nimport React from 'react';\n\nexport {\n checkVersionAgainstBounds,\n isVersionCompatible,\n parseVersion,\n type VersionBounds,\n} from '@clerk/shared/versionCheck';\n\ndeclare const __CLERK_UI_SUPPORTED_REACT_BOUNDS__: VersionBounds[];\n\n/**\n * Checks if the host application's React version is compatible with @clerk/ui's shared variant.\n * The shared variant expects React to be provided via globalThis.__clerkSharedModules,\n * so we need to ensure the host's React version matches what @clerk/ui was built against.\n *\n * This function is evaluated once at module load time.\n */\nfunction computeReactVersionCompatibility(): boolean {\n try {\n return isVersionCompatible(React.version, __CLERK_UI_SUPPORTED_REACT_BOUNDS__);\n } catch {\n // If we can't determine compatibility, fall back to non-shared variant\n return false;\n }\n}\n\n/**\n * Whether the host React version is compatible with the shared @clerk/ui variant.\n * This is computed once at module load time for optimal performance.\n */\nexport const IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();\n","export { ClerkProvider } from './ClerkProvider';\nexport { UNSAFE_PortalProvider } from '@clerk/shared/react';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,sDAAC,CAAC,IAAG,GAAE,IAAG,CAAC,GAAE,CAAC,IAAG,GAAE,GAAE,CAAC,GAAE,CAAC,IAAG,GAAE,GAAE,CAAC,GAAE,CAAC,IAAG,GAAE,GAAE,CAAC,GAAE,CAAC,IAAG,GAAE,GAAE,CAAC,CAAC;;;ACMxD,IAAI,OAAO,WAAW,eAAe,CAAC,OAAO,QAAQ;AACnD,SAAO,SAAS,OAAO,WAAW,cAAc,SAAS;AAC3D;;;ACMA,YAAuB;AACvB,eAA0B;AAC1B,qBAAgC;AAChC,iBAA4B;AAjB5B;AAqBA,IAAI,WAAW,sBAAsB;AAGnC,QAAM,mBAAkB,gBAAW,qBAAqB,UAAhC,mBAAuC;AAC/D,MAAI,mBAAmB,oBAA0B,eAAS;AACxD,YAAQ;AAAA,MACN,6EACyB,eAAe,qBAA2B,aAAO;AAAA,IAE5E;AAAA,EACF;AACF,OAAO;AACL,aAAW,uBAAuB;AAAA,IAChC;AAAA,IACA,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EACvB;AACF;;;AHhCA,IAAAA,4BAAkD;;;AINlD,mBAAkC;AAElC,IAAM,mBAAe,gCAAkB,EAAE,aAAa,eAAe,CAAC;AAS/D,SAAS,uBAAuB,SAA8B;AACnE,eAAa,YAAY,OAAO,EAAE,eAAe,OAAO;AAC1D;;;ACKA,IAAAC,gBAAkC;AAElC,IAAAC,iBAAgE;;;ACnBzD,IAAM,8BACX;AAEK,IAAM,oCAAoC,CAAC,SAChD,kDAAkD,IAAI;AAEjD,IAAM,oBACX;AAEK,IAAM,gDACX;AAEK,IAAM,+BACX;AACK,IAAM,+BACX;AAEK,IAAM,uCACX;AACK,IAAM,uCACX;AAEK,IAAM,8BAA8B,CAAC,kBAC1C,IAAI,aAAa,wBAAwB,aAAa,iBAAiB,aAAa;AAE/E,IAAM,uBAAuB,CAAC,kBACnC,mBAAmB,aAAa;AAE3B,IAAM,uBAAuB,CAAC,kBACnC,mBAAmB,aAAa;AAW3B,IAAM,6BAA6B;AAEnC,IAAM,kCACX;AAEK,IAAM,mCACX;AAEK,IAAM,oCACX;AAEK,IAAM,kCACX;AAEK,IAAM,mCACX;AAEK,IAAM,uCACX;;;AC5DF,mBAAkB;AAKX,IAAM,oBACX,CAAC,aACD,CACE,SAQG;AACH,MAAI;AACF,WAAO,aAAAC,QAAM,SAAS,KAAK,QAAQ;AAAA,EACrC,QAAQ;AACN,WAAO,aAAa,MAAM,kCAAkC,IAAI,CAAC;AAAA,EACnE;AACF;AAEK,IAAM,4BAA4B,CAAC,UAAuC,gBAAwB;AACvG,MAAI,CAAC,UAAU;AACb,eAAW;AAAA,EACb;AACA,MAAI,OAAO,aAAa,UAAU;AAChC,eAAW,6BAAAA,QAAA,cAAC,gBAAQ,QAAS;AAAA,EAC/B;AACA,SAAO;AACT;AAEO,IAAM,cACX,CAAC,OACD,IAAI,SAAc;AAChB,MAAI,MAAM,OAAO,OAAO,YAAY;AAClC,WAAO,GAAG,GAAG,IAAI;AAAA,EACnB;AACF;;;ACxCF,4BAA+B;AAgB/B,IAAM,YAAY,CAAC,SAAyB;AAI1C,aAAO,sCAAe,QAAQ,IAAI,EAAE,SAAK,sCAAe,IAAI;AAC9D;AAUA,IAAM,kBAAkB,CAAC,OAA2B,eAA2C;AAC7F,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AACA,QAAM,WAAW,UAAU,UAAU;AACrC,SAAO,YAAY;AACrB;AAaO,IAAM,eAAe,CAAC,YAA4D;AAEvF,QAAM,iBAAiB,gBAAgB,QAAQ,gBAAgB,uBAAuB;AAItF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,mBAAmB,UAAa,EAAE,eAAe;AAAA,EACvD;AACF;;;AC5DO,SAAS,cAAiB,GAAgB;AAC/C,SAAO,OAAO,MAAM;AACtB;;;ACFA,IAAAC,gBAAkB;AAIlB,IAAM,SAAS,oBAAI,IAAoB;AAEhC,SAAS,4BAA4B,MAAc,OAAe,WAAW,GAAS;AAC3F,gBAAAC,QAAM,UAAU,MAAM;AACpB,UAAM,QAAQ,OAAO,IAAI,IAAI,KAAK;AAClC,QAAI,SAAS,UAAU;AACrB,aAAO,aAAa,MAAM,KAAK;AAAA,IACjC;AACA,WAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,WAAO,MAAM;AACX,aAAO,IAAI,OAAO,OAAO,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,IAC9C;AAAA,EACF,GAAG,CAAC,CAAC;AACP;AAEO,SAAS,6BACd,kBACA,MACA,OAC6B;AAE7B,QAAM,cAAc,iBAAiB,eAAe,iBAAiB,QAAQ,QAAQ;AACrF,QAAM,MAAM,CAAC,UAAa;AACxB,gCAA4B,MAAM,KAAK;AAEvC,WAAO,8BAAAA,QAAA,cAAC,oBAAkB,GAAI,OAAe;AAAA,EAC/C;AACA,MAAI,cAAc,gCAAgC,WAAW;AAE7D,SAAO;AACT;;;AClCA,IAAAC,gBAAyB;AACzB,uBAA6B;AAgBtB,IAAM,yBAAyB,CAAC,aAA6C;AAClF,QAAM,CAAC,SAAS,UAAU,QAAI,wBAAsC,oBAAI,IAAI,CAAC;AAE7E,SAAO,SAAS,IAAI,SAAO;AAAA,IACzB,IAAI,GAAG;AAAA,IACP,OAAO,CAAC,SAAkB,WAAW,UAAQ,IAAI,IAAI,IAAI,EAAE,IAAI,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AAAA,IACnF,SAAS,MACP,WAAW,UAAQ;AACjB,YAAM,SAAS,IAAI,IAAI,IAAI;AAC3B,aAAO,IAAI,OAAO,GAAG,EAAE,GAAG,IAAI;AAC9B,aAAO;AAAA,IACT,CAAC;AAAA,IACH,QAAQ,MAAM;AACZ,YAAM,OAAO,QAAQ,IAAI,OAAO,GAAG,EAAE,CAAC;AACtC,aAAO,WAAO,+BAAa,GAAG,WAAW,IAAI,IAAI;AAAA,IACnD;AAAA,EACF,EAAE;AACJ;;;AClCA,mBAAkC;AAElC,IAAAC,gBAAkB;;;ACHlB,IAAAC,gBAAkB;AAEX,IAAM,kBAAkB,CAAC,GAAQ,cAAqD;AAC3F,SAAO,CAAC,CAAC,KAAK,cAAAC,QAAM,eAAe,CAAC,MAAM,uBAA0B,UAAS;AAC/E;;;ADcO,IAAM,4BAA4B,CACvC,UACA,YACG;AACH,QAAM,qBAAqB,CAAC,WAAW,YAAY,WAAW,SAAS;AACvE,SAAO;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,eAAe;AAAA,MACf,oBAAoB;AAAA,MACpB,eAAe;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AACF;AAEO,IAAM,oCAAoC,CAC/C,UACA,YACG;AACH,QAAM,qBAAqB,CAAC,WAAW,WAAW,WAAW,SAAS;AACtE,SAAO;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf,eAAe;AAAA,MACf,eAAe;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AACF;AA+BO,IAAM,uBAAuB,CAAC,aAA8B;AACjE,QAAM,oBAAuC,CAAC;AAE9C,QAAM,qBAA4B;AAAA,IAChC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,gBAAAC,QAAM,SAAS,QAAQ,UAAU,WAAS;AACxC,QAAI,CAAC,mBAAmB,KAAK,eAAa,gBAAgB,OAAO,SAAS,CAAC,GAAG;AAC5E,wBAAkB,KAAK,KAAK;AAAA,IAC9B;AAAA,EACF,CAAC;AAED,SAAO;AACT;AAEA,IAAM,iBAAiB,CAAC,QAA8B,YAAoC;AACxF,QAAM,EAAE,UAAU,eAAe,eAAe,oBAAoB,oBAAoB,cAAc,IAAI;AAC1G,QAAM,EAAE,sBAAsB,MAAM,IAAI,WAAW,CAAC;AACpD,QAAM,gBAAwC,CAAC;AAE/C,gBAAAA,QAAM,SAAS,QAAQ,UAAU,WAAS;AACxC,QACE,CAAC,gBAAgB,OAAO,aAAa,KACrC,CAAC,gBAAgB,OAAO,aAAa,KACrC,CAAC,gBAAgB,OAAO,kBAAkB,GAC1C;AACA,UAAI,SAAS,CAAC,qBAAqB;AACjC,4CAAkB,4BAA4B,aAAa,CAAC;AAAA,MAC9D;AACA;AAAA,IACF;AAEA,UAAM,EAAE,MAAM,IAAI;AAElB,UAAM,EAAE,UAAAC,WAAU,OAAO,KAAK,UAAU,IAAI;AAE5C,QAAI,gBAAgB,OAAO,aAAa,GAAG;AACzC,UAAI,cAAc,OAAO,kBAAkB,GAAG;AAE5C,sBAAc,KAAK,EAAE,MAAM,CAAC;AAAA,MAC9B,WAAW,aAAa,KAAK,GAAG;AAE9B,sBAAc,KAAK,EAAE,OAAO,WAAW,UAAAA,WAAU,IAAI,CAAC;AAAA,MACxD,OAAO;AACL,4CAAkB,qBAAqB,aAAa,CAAC;AACrD;AAAA,MACF;AAAA,IACF;AAEA,QAAI,gBAAgB,OAAO,aAAa,GAAG;AACzC,UAAI,eAAe,KAAK,GAAG;AAEzB,sBAAc,KAAK,EAAE,OAAO,WAAW,IAAI,CAAC;AAAA,MAC9C,OAAO;AACL,4CAAkB,qBAAqB,aAAa,CAAC;AACrD;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,QAAM,qBAAqD,CAAC;AAC5D,QAAM,uBAAuD,CAAC;AAC9D,QAAM,uBAAuD,CAAC;AAE9D,gBAAc,QAAQ,CAAC,IAAI,UAAU;AACnC,QAAI,aAAa,EAAE,GAAG;AACpB,yBAAmB,KAAK,EAAE,WAAW,GAAG,UAAU,IAAI,MAAM,CAAC;AAC7D,2BAAqB,KAAK,EAAE,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC;AAChE;AAAA,IACF;AACA,QAAI,eAAe,EAAE,GAAG;AACtB,2BAAqB,KAAK,EAAE,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC;AAAA,IAClE;AAAA,EACF,CAAC;AAED,QAAM,4BAA4B,uBAAuB,kBAAkB;AAC3E,QAAM,8BAA8B,uBAAuB,oBAAoB;AAC/E,QAAM,8BAA8B,uBAAuB,oBAAoB;AAE/E,QAAM,cAA4B,CAAC;AACnC,QAAM,qBAA4C,CAAC;AAEnD,gBAAc,QAAQ,CAAC,IAAI,UAAU;AACnC,QAAI,cAAc,IAAI,kBAAkB,GAAG;AACzC,kBAAY,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;AACpC;AAAA,IACF;AACA,QAAI,aAAa,EAAE,GAAG;AACpB,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,MACF,IAAI,0BAA0B,KAAK,OAAK,EAAE,OAAO,KAAK;AACtD,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,IAAI,4BAA4B,KAAK,OAAK,EAAE,OAAO,KAAK;AACxD,kBAAY,KAAK,EAAE,OAAO,GAAG,OAAO,KAAK,GAAG,KAAK,OAAO,SAAS,WAAW,YAAY,CAAC;AACzF,yBAAmB,KAAK,aAAa;AACrC,yBAAmB,KAAK,WAAW;AACnC;AAAA,IACF;AACA,QAAI,eAAe,EAAE,GAAG;AACtB,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,IAAI,4BAA4B,KAAK,OAAK,EAAE,OAAO,KAAK;AACxD,kBAAY,KAAK,EAAE,OAAO,GAAG,OAAO,KAAK,GAAG,KAAK,WAAW,YAAY,CAAC;AACzE,yBAAmB,KAAK,WAAW;AACnC;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,EAAE,aAAa,mBAAmB;AAC3C;AAEA,IAAM,gBAAgB,CAAC,YAAiB,eAAkC;AACxE,QAAM,EAAE,UAAU,OAAO,KAAK,UAAU,IAAI;AAC5C,SAAO,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,WAAW,KAAK,OAAK,MAAM,KAAK;AAC5E;AAEA,IAAM,eAAe,CAAC,eAA6B;AACjD,QAAM,EAAE,UAAU,OAAO,KAAK,UAAU,IAAI;AAC5C,SAAO,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AACjD;AAEA,IAAM,iBAAiB,CAAC,eAA6B;AACnD,QAAM,EAAE,UAAU,OAAO,KAAK,UAAU,IAAI;AAC5C,SAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC;AAChD;;;AEzNA,IAAAC,gBAAkC;AAElC,IAAAC,gBAAkB;AAcX,IAAM,+BAA+B,CAC1C,UACA,YACG;AApBL,MAAAC;AAqBE,QAAM,qBAAqB,CAAC,iBAAiB,SAAS;AACtD,SAAO,mBAAmB;AAAA,IACxB;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,0BAA0B;AAAA,IAC1B,0BAA0B;AAAA,IAC1B,sBAAqBA,MAAA,mCAAS,wBAAT,OAAAA,MAAgC;AAAA,EACvD,CAAC;AACH;AAeA,IAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AACxB,MAAgC;AAC9B,QAAM,gBAAsC,CAAC;AAC7C,QAAM,kBAAoC,CAAC;AAC3C,QAAM,yBAAgD,CAAC;AAEvD,gBAAAC,QAAM,SAAS,QAAQ,UAAU,WAAS;AACxC,QACE,CAAC,gBAAgB,OAAO,kBAAkB,KAC1C,CAAC,gBAAgB,OAAO,wBAAwB,KAChD,CAAC,gBAAgB,OAAO,wBAAwB,GAChD;AACA,UAAI,SAAS,CAAC,qBAAqB;AACjC,6CAAkB,0BAA0B;AAAA,MAC9C;AACA;AAAA,IACF;AAGA,QAAI,gBAAgB,OAAO,wBAAwB,KAAK,gBAAgB,OAAO,wBAAwB,GAAG;AACxG;AAAA,IACF;AAGA,UAAM,EAAE,MAAM,IAAI;AAElB,kBAAAA,QAAM,SAAS,QAAQ,MAAM,UAAU,CAAAC,WAAS;AAC9C,UAAI,CAAC,gBAAgBA,QAAO,mBAAmB,KAAK,CAAC,gBAAgBA,QAAO,iBAAiB,GAAG;AAC9F,YAAIA,QAAO;AACT,+CAAkB,+BAA+B;AAAA,QACnD;AAEA;AAAA,MACF;AAEA,YAAM,EAAE,OAAAC,OAAM,IAAID;AAElB,YAAM,EAAE,OAAO,WAAW,MAAM,SAAS,KAAK,IAAIC;AAElD,UAAI,gBAAgBD,QAAO,mBAAmB,GAAG;AAC/C,YAAIE,eAAcD,QAAO,kBAAkB,GAAG;AAE5C,wBAAc,KAAK,EAAE,MAAM,CAAC;AAAA,QAC9B,WAAW,iBAAiBA,MAAK,GAAG;AAClC,gBAAM,WAAW;AAAA,YACf;AAAA,YACA;AAAA,UACF;AAEA,cAAI,YAAY,QAAW;AACzB,0BAAc,KAAK;AAAA,cACjB,GAAG;AAAA,cACH;AAAA,YACF,CAAC;AAAA,UACH,WAAW,SAAS,QAAW;AAC7B,0BAAc,KAAK;AAAA,cACjB,GAAG;AAAA,cACH,MAAM,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI,IAAI;AAAA,YAC9C,CAAC;AAAA,UACH,OAAO;AAEL,iDAAkB,4DAA4D;AAC9E;AAAA,UACF;AAAA,QACF,OAAO;AACL,+CAAkB,oCAAoC;AACtD;AAAA,QACF;AAAA,MACF;AAEA,UAAI,gBAAgBD,QAAO,iBAAiB,GAAG;AAC7C,YAAIG,gBAAeF,MAAK,GAAG;AACzB,wBAAc,KAAK,EAAE,OAAO,WAAW,KAAK,CAAC;AAAA,QAC/C,OAAO;AACL,+CAAkB,gCAAgC;AAClD;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,QAAM,2BAA2D,CAAC;AAClE,QAAM,uBAAuD,CAAC;AAC9D,gBAAc,QAAQ,CAAC,IAAI,UAAU;AACnC,QAAI,iBAAiB,EAAE,GAAG;AACxB,+BAAyB,KAAK,EAAE,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC;AAAA,IACtE;AACA,QAAIE,gBAAe,EAAE,GAAG;AACtB,2BAAqB,KAAK,EAAE,WAAW,GAAG,WAAW,IAAI,MAAM,CAAC;AAAA,IAClE;AAAA,EACF,CAAC;AAED,QAAM,kCAAkC,uBAAuB,wBAAwB;AACvF,QAAM,8BAA8B,uBAAuB,oBAAoB;AAE/E,gBAAc,QAAQ,CAAC,IAAI,UAAU;AACnC,QAAID,eAAc,IAAI,kBAAkB,GAAG;AACzC,sBAAgB,KAAK;AAAA,QACnB,OAAO,GAAG;AAAA,MACZ,CAAC;AAAA,IACH;AACA,QAAI,iBAAiB,EAAE,GAAG;AACxB,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,IAAI,gCAAgC,KAAK,OAAK,EAAE,OAAO,KAAK;AAC5D,YAAM,WAA2B;AAAA,QAC/B,OAAO,GAAG;AAAA,QACV;AAAA,QACA;AAAA,MACF;AAEA,UAAI,aAAa,IAAI;AACnB,iBAAS,UAAU,GAAG;AAAA,MACxB,WAAW,UAAU,IAAI;AACvB,iBAAS,OAAO,GAAG;AAAA,MACrB;AACA,sBAAgB,KAAK,QAAQ;AAC7B,6BAAuB,KAAK,UAAU;AAAA,IACxC;AACA,QAAIC,gBAAe,EAAE,GAAG;AACtB,YAAM;AAAA,QACJ,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,MACX,IAAI,4BAA4B,KAAK,OAAK,EAAE,OAAO,KAAK;AACxD,sBAAgB,KAAK;AAAA,QACnB,OAAO,GAAG;AAAA,QACV,MAAM,GAAG;AAAA,QACT;AAAA,QACA;AAAA,MACF,CAAC;AACD,6BAAuB,KAAK,UAAU;AAAA,IACxC;AAAA,EACF,CAAC;AAED,SAAO,EAAE,iBAAiB,uBAAuB;AACnD;AAEA,IAAMD,iBAAgB,CAAC,YAAiB,eAAkC;AACxE,QAAM,EAAE,UAAU,OAAO,SAAS,UAAU,IAAI;AAChD,SAAO,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,WAAW,KAAK,OAAK,MAAM,KAAK;AAChF;AAEA,IAAM,mBAAmB,CAAC,eAAyD;AACjF,QAAM,EAAE,OAAO,WAAW,SAAS,KAAK,IAAI;AAC5C,SAAO,CAAC,CAAC,aAAa,CAAC,CAAC,UAAU,OAAO,YAAY,cAAc,OAAO,SAAS;AACrF;AAEA,IAAMC,kBAAiB,CAAC,eAAuD;AAC7E,QAAM,EAAE,OAAO,MAAM,UAAU,IAAI;AACnC,SAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;AACpC;;;AChNA,IAAAC,gBAA4C;AAE5C,IAAM,kCAAkC,CACtC,kBAGG;AACH,QAAM,UAAU,+CAAe;AAE/B,SAAO,CAAC,YACN,IAAI,QAAc,CAAC,SAAS,WAAW;AACrC,UAAM,EAAE,OAAO,qCAAU,MAAM,UAAU,UAAU,EAAE,IAAI;AAEzD,QAAI,CAAC,MAAM;AACT,aAAO,IAAI,MAAM,0BAA0B,CAAC;AAC5C;AAAA,IACF;AAEA,QAAI,iBAAqC;AACzC,QAAI,UAAU;AACZ,uBAAiB,6BAAM,cAAc;AAAA,IACvC;AAGA,QAAI,QAAQ,gBAAgB,QAAQ,GAAG;AACrC,cAAQ;AACR;AAAA,IACF;AAGA,UAAM,WAAW,IAAI,iBAAiB,mBAAiB;AACrD,iBAAW,YAAY,eAAe;AACpC,YAAI,CAAC,kBAAkB,UAAU;AAC/B,2BAAiB,6BAAM,cAAc;AAAA,QACvC;AAEA,YACG,cAAc,aAAa,SAAS,SAAS,eAC7C,cAAc,cAAc,SAAS,SAAS,cAC/C;AACA,cAAI,QAAQ,gBAAgB,QAAQ,GAAG;AACrC,qBAAS,WAAW;AACpB,oBAAQ;AACR;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,aAAS,QAAQ,MAAM,aAAa;AAGpC,QAAI,UAAU,GAAG;AACf,iBAAW,MAAM;AACf,iBAAS,WAAW;AACpB,eAAO,IAAI,MAAM,uBAAuB,QAAQ,EAAE,CAAC;AAAA,MACrD,GAAG,OAAO;AAAA,IACZ;AAAA,EACF,CAAC;AACL;AAEA,IAAM,yBAAyB,gCAAgC;AAAA,EAC7D,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS,CAAC,IAAI,aAAU;AAhE1B,QAAAC;AAgE6B,YAAC,EAAC,yBAAI,wBAAqBA,MAAA,yBAAI,YAAJ,gBAAAA,IAAA,SAAc,cAAa,GAAG,oBAAoB;AAAA;AAC1G,CAAC;AAKM,SAAS,yBACd,WACA,SACoC;AACpC,QAAM,iBAAa,sBAAsB;AACzC,QAAM,CAAC,QAAQ,SAAS,QAAI,wBAA6C,WAAW;AAEpF,+BAAU,MAAM;AACd,QAAI,CAAC,WAAW;AACd,YAAM,IAAI,MAAM,4DAA4D;AAAA,IAC9E;AAEA,QAAI,OAAO,WAAW,eAAe,CAAC,WAAW,SAAS;AACxD,YAAM,kBAAkB,0BAA0B,SAAS;AAC3D,YAAM,WAAW,mCAAS;AAC1B,iBAAW,UAAU,uBAAuB;AAAA,QAC1C,UAAU;AAAA;AAAA,UAEN,kBAAkB;AAAA,YAClB;AAAA,MACN,CAAC,EACE,KAAK,MAAM;AACV,kBAAU,UAAU;AAAA,MACtB,CAAC,EACA,MAAM,MAAM;AACX,kBAAU,OAAO;AAAA,MACnB,CAAC;AAAA,IACL;AAAA,EACF,GAAG,CAAC,WAAW,mCAAS,QAAQ,CAAC;AAEjC,SAAO;AACT;;;ACrGA,oBAAwB;AACxB,IAAAC,gBAA8B;AAE9B,IAAAA,gBAAkB;AAIlB,IAAM,eAAe,CAAC,UAAoC;AACxD,SAAO,WAAW;AACpB;AAEA,IAAM,cAAc,CAAC,UAAmC;AACtD,SAAO,UAAU;AACnB;AAEA,IAAM,4BAA4B,CAChC,cAKG;AACH,SAAO,uCAAW,IAAI,CAAC,EAAE,WAAW,aAAa,GAAG,KAAK,MAAM;AACjE;AAmCO,IAAM,oBAAN,cAAgC,cAAAC,QAAM,cAQ3C;AAAA,EARK;AAAA;AASL,SAAQ,UAAU,cAAAA,QAAM,UAA0B;AAAA;AAAA,EAElD,mBAAmB,YAA8C;AArEnE,QAAAC,KAAA;AAsEI,QAAI,CAAC,aAAa,UAAU,KAAK,CAAC,aAAa,KAAK,KAAK,GAAG;AAC1D;AAAA,IACF;AAKA,UAAM,gBAAY,uBAAQ,WAAW,OAAO,eAAe,mBAAmB,UAAU;AACxF,UAAM,eAAW,uBAAQ,KAAK,MAAM,OAAO,eAAe,mBAAmB,UAAU;AAGvF,UAAM,uBAAqBA,MAAA,UAAU,gBAAV,gBAAAA,IAAuB,cAAW,cAAS,gBAAT,mBAAsB;AACnF,UAAM,2BAAyB,eAAU,oBAAV,mBAA2B,cAAW,cAAS,oBAAT,mBAA0B;AAI/F,UAAM,+BAA+B,0BAA0B,WAAW,MAAM,eAAe;AAC/F,UAAM,8BAA8B,0BAA0B,KAAK,MAAM,MAAM,eAAe;AAE9F,QACE,KAAC,6BAAc,WAAW,QAAQ,KAClC,KAAC,6BAAc,8BAA8B,2BAA2B,KACxE,sBACA,wBACA;AACA,UAAI,KAAK,QAAQ,SAAS;AACxB,aAAK,MAAM,YAAY,EAAE,MAAM,KAAK,QAAQ,SAAS,OAAO,KAAK,MAAM,MAAM,CAAC;AAAA,MAChF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,oBAAoB;AAClB,QAAI,KAAK,QAAQ,SAAS;AACxB,UAAI,aAAa,KAAK,KAAK,GAAG;AAC5B,aAAK,MAAM,MAAM,KAAK,QAAQ,SAAS,KAAK,MAAM,KAAK;AAAA,MACzD;AAEA,UAAI,YAAY,KAAK,KAAK,GAAG;AAC3B,aAAK,MAAM,KAAK,KAAK,MAAM,KAAK;AAAA,MAClC;AAAA,IACF;AAAA,EACF;AAAA,EAEA,uBAAuB;AACrB,QAAI,KAAK,QAAQ,SAAS;AACxB,UAAI,aAAa,KAAK,KAAK,GAAG;AAC5B,aAAK,MAAM,QAAQ,KAAK,QAAQ,OAAO;AAAA,MACzC;AACA,UAAI,YAAY,KAAK,KAAK,GAAG;AAC3B,aAAK,MAAM,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,UAAM,EAAE,sBAAsB,MAAM,IAAI,KAAK;AAC7C,UAAM,iBAAiB;AAAA,MACrB,KAAK,KAAK;AAAA,MACV,GAAG,KAAK,MAAM;AAAA,MACd,GAAI,KAAK,MAAM,aAAa,EAAE,wBAAwB,KAAK,MAAM,UAAU;AAAA,IAC7E;AAEA,WACE,8BAAAD,QAAA,4BAAAA,QAAA,gBACG,CAAC,uBAAuB,8BAAAA,QAAA,cAAC,SAAK,GAAG,gBAAgB,GACjD,KAAK,MAAM,QACd;AAAA,EAEJ;AACF;;;AC3IA,IAAAE,iBAA8B;AAE9B,IAAAA,iBAAkB;;;ACFlB,IAAAC,iBAAwC;AAIjC,IAAM,4BAA4B;;;ACJzC,IAAAC,iBAAyF;AAIlF,IAAM,kCAAkC,CAAC,WAAyB;AACvE,qBAAAC,iCAAsC,MAAM;AAC1C,iBAAa,+BAA+B,EAAE,OAAO,CAAC;AAAA,EACxD,CAAC;AACH;;;AFDO,IAAM,YAAY,CACvB,WACA,yBACG;AACH,QAAM,sBACJ,OAAO,yBAAyB,WAAW,uBAAuB,6DAAsB;AAC1F,QAAM,cAAc,uBAAuB,UAAU,eAAe,UAAU,QAAQ;AACtF,YAAU,cAAc;AAExB,QAAM,UAAU,OAAO,yBAAyB,WAAW,SAAY;AAEvE,QAAM,MAAM,CAAC,UAA+B;AAC1C,oCAAgC,eAAe,WAAW;AAE1D,UAAM,QAAQ,0BAA0B;AACxC,UAAM,mBAAe,8BAAc;AAEnC,QAAI,CAAC,MAAM,UAAU,EAAC,mCAAS,qBAAoB;AACjD,aAAO;AAAA,IACT;AAEA,WACE,+BAAAC,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAI;AAAA,QACL,WAAW;AAAA,QACX;AAAA;AAAA,IACF;AAAA,EAEJ;AACA,MAAI,cAAc,aAAa,WAAW;AAC1C,SAAO;AACT;;;AZqFA,IAAM,wBAAwB,CAAC,UAAsC;AA5HrE,MAAAC,KAAA;AA6HE,SACE,+BAAAC,QAAA,6BAAAA,QAAA,iBACGD,MAAA,+BAAO,uBAAP,gBAAAA,IAA2B,IAAI,CAAC,QAAQ,cAAU,8BAAc,QAAQ,EAAE,KAAK,MAAM,CAAC,KACtF,oCAAO,2BAAP,mBAA+B,IAAI,CAAC,QAAQ,cAAU,8BAAc,QAAQ,EAAE,KAAK,MAAM,CAAC,EAC7F;AAEJ;AAEO,IAAM,SAAS;AAAA,EACpB,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAiD;AACvF,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAC,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,UAAU,oBAAoB,KAAK;AAClD;AAEO,IAAM,SAAS;AAAA,EACpB,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAiD;AACvF,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,UAAU,oBAAoB,KAAK;AAClD;AAEO,SAAS,gBAAgB,EAAE,SAAS,GAA4C;AACrF,uCAAkB,4BAA4B;AAC9C,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEO,SAAS,gBAAgB,EAAE,SAAS,GAA4C;AACrF,uCAAkB,4BAA4B;AAC9C,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEA,IAAM,eAAe;AAAA,EACnB,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MAAiG;AAC/F,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,UAAM,EAAE,aAAa,mBAAmB,IAAI,0BAA0B,MAAM,QAAQ;AACpF,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACvB,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B,OAAO,EAAE,GAAG,OAAO,YAAY;AAAA,QAC/B,WAAW;AAAA;AAAA,MAEX,+BAAAA,QAAA,cAAC,yBAAsB,oBAAwC;AAAA,IACjE,CACF;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,eAAe,oBAAoB,KAAK;AACvD;AAEO,IAAM,cAAqC,OAAO,OAAO,cAAc;AAAA,EAC5E,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,IAAM,wBAAoB,8BAA0B;AAAA,EAClD,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,aAAa,MAAM;AAAA,EAAC;AACtB,CAAC;AAED,IAAM,cAAc;AAAA,EAClB,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MAA0F;AACxF,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,UAAM,EAAE,aAAa,mBAAmB,IAAI,0BAA0B,MAAM,UAAU;AAAA,MACpF,qBAAqB,CAAC,CAAC,MAAM;AAAA,IAC/B,CAAC;AACD,UAAM,mBAAmB,EAAE,GAAG,MAAM,kBAAkB,YAAY;AAClE,UAAM,EAAE,iBAAiB,uBAAuB,IAAI,6BAA6B,MAAM,UAAU;AAAA,MAC/F,qBAAqB,CAAC,CAAC,MAAM;AAAA,IAC/B,CAAC;AACD,UAAM,oBAAoB,qBAAqB,MAAM,QAAQ;AAE7D,UAAM,gBAAgB;AAAA,MACpB,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,aAAc,MAAc;AAAA,MAC5B,OAAO,EAAE,GAAG,OAAO,kBAAkB,gBAAgB;AAAA,IACvD;AACA,UAAM,cAAc;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AAEA,WACE,+BAAAA,QAAA,cAAC,kBAAkB,UAAlB,EAA2B,OAAO,iBAChC,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAG;AAAA,QACJ,qBAAqB,CAAC,CAAC,MAAM;AAAA,QAC7B,WAAW;AAAA;AAAA,MAGV,MAAM,4BAA4B,oBAAoB;AAAA,MACvD,+BAAAA,QAAA,cAAC,yBAAuB,GAAG,aAAa;AAAA,IAC1C,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,cAAc,oBAAoB,KAAK;AACtD;AAEO,SAAS,UAAU,EAAE,SAAS,GAAsB;AACzD,uCAAkB,gCAAgC;AAClD,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEO,SAAS,WAAW,EAAE,SAAS,GAA6C;AACjF,uCAAkB,iCAAiC;AACnD,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEO,SAAS,SAAS,EAAE,SAAS,GAA2C;AAC7E,uCAAkB,+BAA+B;AACjD,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEO,SAAS,iBAAiB,aAA2D;AAC1F,QAAM,oBAAgB,2BAAW,iBAAiB;AAElD,QAAM,cAAc;AAAA,IAClB,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,cAAc;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAEA,SAAO,+BAAAA,QAAA,cAAC,qBAAmB,GAAG,aAAa;AAC7C;AAEO,IAAM,aAAmC,OAAO,OAAO,aAAa;AAAA,EACzE;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,uBAAuB;AACzB,CAAC;AAEM,SAAS,wBAAwB,EAAE,SAAS,GAAoD;AACrG,uCAAkB,oCAAoC;AACtD,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEO,SAAS,wBAAwB,EAAE,SAAS,GAAoD;AACrG,uCAAkB,oCAAoC;AACtD,SAAO,+BAAAA,QAAA,6BAAAA,QAAA,gBAAG,QAAS;AACrB;AAEA,IAAM,uBAAuB;AAAA,EAC3B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MAAyG;AACvG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,UAAM,EAAE,aAAa,mBAAmB,IAAI,kCAAkC,MAAM,QAAQ;AAC5F,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B,OAAO,EAAE,GAAG,OAAO,YAAY;AAAA,QAC/B,WAAW;AAAA;AAAA,MAEX,+BAAAA,QAAA,cAAC,yBAAsB,oBAAwC;AAAA,IACjE,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,uBAAuB,oBAAoB,KAAK;AAC/D;AAEO,IAAM,sBAAqD,OAAO,OAAO,sBAAsB;AAAA,EACpG,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAEM,IAAM,qBAAqB;AAAA,EAChC,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAA6D;AACnG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,sBAAsB,oBAAoB,KAAK;AAC9D;AAEA,IAAM,kCAA8B,8BAA0B;AAAA,EAC5D,OAAO,MAAM;AAAA,EAAC;AAAA,EACd,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,aAAa,MAAM;AAAA,EAAC;AACtB,CAAC;AAED,IAAM,wBAAwB;AAAA,EAC5B,CAAC;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,MAAoG;AAClG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,UAAM,EAAE,aAAa,mBAAmB,IAAI,kCAAkC,MAAM,UAAU;AAAA,MAC5F,qBAAqB,CAAC,CAAC,MAAM;AAAA,IAC/B,CAAC;AACD,UAAM,2BAA2B,EAAE,GAAG,MAAM,0BAA0B,YAAY;AAClF,UAAM,oBAAoB,qBAAqB,MAAM,QAAQ;AAE7D,UAAM,gBAAgB;AAAA,MACpB,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,aAAc,MAAc;AAAA,MAC5B,OAAO,EAAE,GAAG,OAAO,yBAAyB;AAAA,MAC5C,WAAW;AAAA,MACX;AAAA,IACF;AAKA,UAAM,4CAA4C;AAElD,WACE,+BAAAA,QAAA,cAAC,4BAA4B,UAA5B,EAAqC,OAAO,iBAC3C,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,qBAAqB,CAAC,CAAC,MAAM;AAAA;AAAA,MAG5B,MAAM,4BAA4B,oBAAoB;AAAA,MACvD,+BAAAA,QAAA,cAAC,yBAAsB,oBAAwC;AAAA,IACjE,CAEJ,CACF;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,wBAAwB,oBAAoB,KAAK;AAChE;AAEO,SAAS,2BACd,aACA;AACA,QAAM,oBAAgB,2BAAW,2BAA2B;AAE5D,QAAM,cAAc;AAAA,IAClB,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,cAAc;AAAA,MACjB,GAAG;AAAA,IACL;AAAA,EACF;AAEA,SAAO,+BAAAA,QAAA,cAAC,qBAAmB,GAAG,aAAa;AAC7C;AAEO,IAAM,uBAAuD,OAAO,OAAO,uBAAuB;AAAA,EACvG;AAAA,EACA;AAAA,EACA,uBAAuB;AACzB,CAAC;AAEM,IAAM,mBAAmB;AAAA,EAC9B,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAA2D;AACjG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,oBAAoB,oBAAoB,KAAK;AAC5D;AAEO,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAuD;AAC7F,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,gBAAgB,oBAAoB,KAAK;AACxD;AAEO,IAAM,WAAW;AAAA,EACtB,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAmD;AACzF,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,YAAY,oBAAoB,KAAK;AACpD;AAEO,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAuD;AAC7F,UAAM,iBAAiB,yBAAyB,WAAW;AAAA;AAAA,MAEzD,UAAU;AAAA,IACZ,CAAC;AACD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,gBAAgB,oBAAoB,KAAK;AACxD;AAKO,IAAM,UAAU;AAAA,EACrB,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAkD;AACxF,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,WAAW,oBAAoB,KAAK;AACnD;AAEO,IAAM,aAAa;AAAA,EACxB,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAqD;AAC3F,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,cAAc,oBAAoB,KAAK;AACtD;AAEO,IAAM,yBAAyB;AAAA,EACpC,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAiE;AACvG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,0BAA0B,oBAAoB,KAAK;AAClE;AAEO,IAAM,oBAAoB;AAAA,EAC/B,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAA4D;AAClG,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,qBAAqB,oBAAoB,KAAK;AAC7D;AAEO,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,GAAG,MAAM,MAAuD;AAC7F,UAAM,iBAAiB,yBAAyB,SAAS;AACzD,UAAM,qBAAqB,mBAAmB,eAAe,CAAC,MAAM;AAEpE,UAAM,oBAAoB;AAAA,MACxB,GAAI,sBAAsB,YAAY,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE;AAAA,IACrE;AAEA,WACE,+BAAAA,QAAA,6BAAAA,QAAA,gBACG,sBAAsB,UACtB,MAAM,UACL,+BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,OAAO,MAAM;AAAA,QACb,SAAS,MAAM;AAAA,QACf,aAAc,MAAc;AAAA,QAC5B;AAAA,QACA,WAAW;AAAA;AAAA,IACb,CAEJ;AAAA,EAEJ;AAAA,EACA,EAAE,WAAW,gBAAgB,oBAAoB,KAAK;AACxD;;;AenvBA,wBAA2B;AAC3B,IAAAC,iBAA0C;AAE1C,IAAAA,iBAAkB;;;ACHlB,2BAA2D;AAC3D,uBAAkC;AASlC,IAAAC,iBAA4B;;;ACV5B,yBAAwD;AACxD,IAAAC,iBAAgE;AAUhE,IAAAA,iBAA2D;AAepD,IAAM,6BAA6B;AAAA,EACxC,OAAO;AAAA,EACP,uBAAuB;AAAA,EACvB,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,SAAS;AAAA,EACT,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,SAAS,cAA8B;AAC5C,QAAM,YAAQ,wCAAwB;AACtC,QAAM,mBAAe,uCAAuB;AAC5C,QAAM,sBAAkB,4BAAY,MAAM,cAAc,CAAC,YAAY,CAAC;AAEtE,QAAM,YAAQ;AAAA,QACZ,4BAAY,cAAY,MAAM,YAAY,UAAU,EAAE,iBAAiB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AAAA,QACvF,4BAAY,MAAM;AAChB,UAAI,CAAC,MAAM,UAAU,CAAC,MAAM,iCAAiC;AAC3D,eAAO,gBAAgB;AAAA,MACzB;AAEA,aAAO,MAAM;AAAA,IACf,GAAG,CAAC,OAAO,eAAe,CAAC;AAAA,IAC3B;AAAA,EACF;AAEA,QAAM,gBAAY,wBAAQ,MAAM;AAC9B,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AACA,UAAM,YAAY,eAAe,KAAK,QAClC,gCAAY,OAAO,CAAC,GAAgB,KAAK,QACzC,gCAAY,MAAM,OAAO,MAAS;AACtC,WAAO,kBAAkB,SAAS;AAAA,EACpC,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO;AACT;AAEA,SAAS,kBAAkB,cAAqC;AAC9D,SAAO;AAAA,IACL,WAAW,aAAa;AAAA,IACxB,eAAe,aAAa;AAAA,IAC5B,eAAe,aAAa;AAAA,IAC5B,QAAQ,aAAa;AAAA,IACrB,OAAO,aAAa;AAAA,IACpB,OAAO,aAAa;AAAA,IACpB,SAAS,aAAa;AAAA,IACtB,SAAS,aAAa;AAAA,IACtB,gBAAgB,aAAa;AAAA,IAC7B,uBAAuB,aAAa;AAAA,EACtC;AACF;AAEA,SAAS,eAAe,OAAwD;AAC9E,SAAO,EAAE,YAAY;AACvB;;;ACtFA,qBAA0B;AAC1B,IAAAC,gBAAkC;AAOlC,IAAM,cAAc,CAAC,oBAAqC;AACxD,SAAO,IAAI,QAAc,aAAW;AAClC,UAAM,UAAU,CAAC,WAAmB;AAClC,UAAI,CAAC,SAAS,UAAU,EAAE,SAAS,MAAM,GAAG;AAC1C,gBAAQ;AACR,wBAAgB,IAAI,UAAU,OAAO;AAAA,MACvC;AAAA,IACF;AAGA,oBAAgB,GAAG,UAAU,SAAS,EAAE,QAAQ,KAAK,CAAC;AAAA,EACxD,CAAC;AACH;AAKO,IAAM,iBAAiB,CAAC,oBAAqC;AAClE,SAAO,OAAO,YAAiB;AAC7B,QAAI,KAAC,0BAAU,GAAG;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,UACE,MAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,UAAM,YAAY,eAAe;AACjC,QAAI,CAAC,gBAAgB,SAAS;AAC5B,aAAO;AAAA,IACT;AACA,WAAO,gBAAgB,QAAQ,SAAS,OAAO;AAAA,EACjD;AACF;AAKO,IAAM,gBAAgB,CAAC,oBAAqC;AACjE,SAAO,UAAU,SAAc;AAC7B,UAAM,YAAY,eAAe;AACjC,WAAO,gBAAgB,QAAQ,GAAG,IAAI;AAAA,EACxC;AACF;;;AF0CO,IAAM,UAAU,CAAC,UAA0B,CAAC,MAAqB;AA9FxE,MAAAC;AA+FE,kCAAgC,SAAS;AAEzC,QAAM,EAAE,wBAAwB,IAAI,4BAAW,CAAC;AAChD,QAAM,YAAY,YAAY;AAE9B,QAAM,kBAAkB,0BAA0B;AAClD,QAAMC,gBAAqB,4BAAY,eAAe,eAAe,GAAG,CAAC,eAAe,CAAC;AACzF,QAAM,cAAmB,4BAAY,cAAc,eAAe,GAAG,CAAC,eAAe,CAAC;AAEtF,GAAAD,MAAA,gBAAgB,cAAhB,gBAAAA,IAA2B,WAAO,oCAAkB,WAAW,EAAE,wBAAwB,CAAC;AAE1F,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,UAAAC;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,IACF;AAAA,EACF;AACF;AA4BO,SAAS,eACd,YACA,EAAE,0BAA0B,KAAK,IAA2B,CAAC,GAC9C;AACf,QAAM,EAAE,QAAQ,OAAO,SAAS,KAAK,SAAS,UAAAA,WAAU,gBAAgB,uBAAuB,cAAc,IAC3G,kCAAc,CAAC;AAEjB,QAAM,iBAAa;AAAA,IACjB,CAAC,WAAmE;AAClE,UAAI,KAAK;AACP,eAAO,IAAI,MAAM;AAAA,MACnB;AACA,iBAAO,+CAAyB;AAAA,QAC9B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAY,+CAA0C,QAAkB;AAAA,QACxE,QAAS,+CAA0C,QAAkB;AAAA,MACvE,CAAC,EAAE,MAAM;AAAA,IACX;AAAA,IACA,CAAC,KAAK,QAAQ,OAAO,SAAS,gBAAgB,uBAAuB,aAAa;AAAA,EACpF;AAEA,QAAM,cAAU,uCAAiB;AAAA,IAC/B,YAAY;AAAA,MACV,GAAG;AAAA,MACH,UAAAA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACP;AAAA,IACA,SAAS;AAAA,MACP;AAAA,IACF;AAAA,EACF,CAAC;AAED,MAAI,CAAC,SAAS;AACZ,WAAO,aAAa,MAAM,iBAAiB;AAAA,EAC7C;AAEA,SAAO;AACT;;;AGlLA,IAAAC,iBAAkB;AAUlB,SAAS,aACP,UACsF;AACtF,QAAM,EAAE,oBAAoB,oBAAoB,IAAI,eAAAC,QAAM,QAAQ,MAAM,SAAS,oBAAoB,GAAG,CAAC,QAAQ,CAAC;AAElH,iBAAAA,QAAM,UAAU,MAAM;AACpB,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AC/BA,IAAAC,oBAAkC;AAElC,IAAAC,iBAAkD;AAQlD,SAAS,eACP,QAC6D;AAZ/D,MAAAC,KAAA;AAaE,kCAAgC,gBAAgB;AAEhD,QAAM,QAAQ,0BAA0B;AAExC,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,OAAAA,MAAA,MAAM,cAAN,gBAAAA,IAAiB,WAAO,qCAAkB,aAAa,EAAE,YAAY,UAAU,CAAC;AAChF;AAAA,IACF,KAAK;AACH,kBAAM,cAAN,mBAAiB,WAAO,qCAAkB,aAAa,EAAE,YAAY,UAAU,CAAC;AAChF;AAAA,IACF,KAAK;AACH,kBAAM,cAAN,mBAAiB,WAAO,qCAAkB,eAAe,EAAE,YAAY,UAAU,CAAC;AAClF;AAAA,IACF;AACE;AAAA,EACJ;AAEA,QAAM,gBAAY;AAAA,IAChB,CAAC,aAAyB;AACxB,UAAI,CAAC,MAAM,QAAQ;AACjB,eAAO,MAAM;AAAA,QAAC;AAAA,MAChB;AAEA,aAAO,MAAM,iBAAiB,kBAAkB,MAAM;AACpD,gBAAQ,QAAQ;AAAA,UACd,KAAK;AACH,kBAAM,iBAAiB,aAAa;AACpC;AAAA,UACF,KAAK;AACH,kBAAM,iBAAiB,aAAa;AACpC;AAAA,UACF,KAAK;AACH,kBAAM,iBAAiB,eAAe;AACtC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,mBAAmB,MAAM,EAAE;AAAA,QAC/C;AACA,iBAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO,MAAM,QAAQ,MAAM,gBAAgB;AAAA,EAC9C;AACA,QAAM,kBAAc,4BAAY,MAAM;AACpC,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,eAAO,MAAM,iBAAiB,aAAa;AAAA,MAC7C,KAAK;AACH,eAAO,MAAM,iBAAiB,aAAa;AAAA,MAC7C,KAAK;AACH,eAAO,MAAM,iBAAiB,eAAe;AAAA,MAC/C;AACE,cAAM,IAAI,MAAM,mBAAmB,MAAM,EAAE;AAAA,IAC/C;AAAA,EACF,GAAG,CAAC,MAAM,gBAAgB,CAAC;AAE3B,QAAM,YAAQ,qCAAqB,WAAW,aAAa,WAAW;AAEtE,SAAO;AACT;AAaO,SAAS,YAAY;AAC1B,SAAO,eAAe,QAAQ;AAChC;AAaO,SAAS,YAAY;AAC1B,SAAO,eAAe,QAAQ;AAChC;AAaO,SAAS,cAAc;AAC5B,SAAO,eAAe,UAAU;AAClC;;;AClHA,IAAAC,iBAcO;;;ANNA,IAAM,cAAc,CAAC,EAAE,SAAS,MAAwC;AAC7E,kCAAgC,aAAa;AAE7C,QAAM,kBAAkB,0BAA0B;AAClD,MAAI,CAAC,gBAAgB,QAAQ;AAC3B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,IAAM,eAAe,CAAC,EAAE,SAAS,MAAwC;AAC9E,kCAAgC,cAAc;AAE9C,QAAM,kBAAkB,0BAA0B;AAClD,MAAI,gBAAgB,WAAW,WAAW;AACxC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,IAAM,cAAc,CAAC,EAAE,SAAS,MAAwC;AAC7E,kCAAgC,aAAa;AAE7C,QAAM,kBAAkB,0BAA0B;AAClD,MAAI,gBAAgB,WAAW,SAAS;AACtC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,IAAM,gBAAgB,CAAC,EAAE,SAAS,MAAwC;AAC/E,kCAAgC,eAAe;AAE/C,QAAM,kBAAkB,0BAA0B;AAClD,MAAI,gBAAgB,WAAW,YAAY;AACzC,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAmCO,IAAM,OAAO,CAAC,EAAE,UAAU,UAAU,yBAAyB,KAAK,MAAiB;AACxF,kCAAgC,MAAM;AAEtC,QAAM,EAAE,KAAK,UAAU,OAAO,IAAI,QAAQ,EAAE,wBAAwB,CAAC;AAErE,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,QAAM,eAAe;AACrB,QAAM,aAAa;AACnB,QAAM,eAAe,8BAAY;AAEjC,MAAI,iBAAiB,cAAc;AACjC,WAAO,SAAS,eAAe;AAAA,EACjC;AAEA,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AAEA,MAAI,mBAAmB,cAAc,GAAG,GAAG;AACzC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,mBACP,MACA,KACS;AACT,MAAI,OAAO,SAAS,YAAY;AAC9B,WAAO,KAAK,GAAG;AAAA,EACjB;AACA,SAAO,IAAI,IAAI;AACjB;AAEO,IAAM,mBAAmB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,MAA4C;AA9HzG,MAAAC,KAAA;AA+HE,QAAM,EAAE,QAAQ,QAAQ,IAAI;AAE5B,QAAM,wBAAuB,MAAAA,MAAA,OAAO,qBAAP,gBAAAA,IAAyB,WAAzB,YAAmC,KAAK;AAErE,iBAAAC,QAAM,UAAU,MAAM;AACpB,QAAI,YAAY,QAAQ,qBAAqB;AAC3C,WAAK,MAAM,uBAAuB;AAAA,IACpC,OAAO;AACL,WAAK,MAAM,iBAAiB,KAAK;AAAA,IACnC;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,kBAAkB;AAEd,IAAM,mBAAmB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,MAA4C;AACvG,iBAAAA,QAAM,UAAU,MAAM;AACpB,SAAK,MAAM,iBAAiB,KAAK;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,kBAAkB;AAEd,IAAM,kBAAkB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,MAA2C;AACrG,iBAAAA,QAAM,UAAU,MAAM;AACpB,SAAK,MAAM,gBAAgB,KAAK;AAAA,EAClC,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,iBAAiB;AAMb,IAAM,wBAAwB,UAAU,CAAC,EAAE,MAAM,MAAM;AAC5D,iBAAAA,QAAM,UAAU,MAAM;AACpB,sCAAW,yBAAyB,mDAAmD;AACvF,SAAK,MAAM,sBAAsB;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,uBAAuB;AAMnB,IAAM,gCAAgC,UAAU,CAAC,EAAE,MAAM,MAAM;AACpE,iBAAAA,QAAM,UAAU,MAAM;AACpB,sCAAW,iCAAiC,2DAA2D;AACvG,SAAK,MAAM,8BAA8B;AAAA,EAC3C,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,+BAA+B;AAM3B,IAAM,+BAA+B,UAAU,CAAC,EAAE,MAAM,MAAM;AACnE,iBAAAA,QAAM,UAAU,MAAM;AACpB,sCAAW,gCAAgC,0DAA0D;AACrG,SAAK,MAAM,6BAA6B;AAAA,EAC1C,GAAG,CAAC,CAAC;AAEL,SAAO;AACT,GAAG,8BAA8B;AAE1B,IAAM,mCAAmC;AAAA,EAC9C,CAAC,EAAE,OAAO,GAAG,6BAA6B,MAAgD;AACxF,mBAAAA,QAAM,UAAU,MAAM;AACpB,WAAK,MAAM,uBAAuB,4BAA4B;AAAA,IAChE,GAAG,CAAC,CAAC;AAEL,WAAO;AAAA,EACT;AAAA,EACA;AACF;;;AO7MA,IAAAC,iBAAkB;AAMX,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,UAAU,GAAG,MAAM,MAAiE;AAC5F,UAAM;AAAA;AAAA,MAEJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AACJ,eAAW,0BAA0B,UAAU,SAAS;AACxD,UAAM,QAAQ,kBAAkB,QAAQ,EAAE,cAAc;AAExD,UAAM,eAAe,MAAM;AACzB,YAAM,OAAoB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,SAAS,SAAS;AACpB,eAAO,MAAM,WAAW,EAAE,GAAG,MAAM,YAAY,aAAa,CAAC;AAAA,MAC/D;AACA,aAAO,MAAM,iBAAiB;AAAA,QAC5B,GAAG;AAAA,QACH,2BAA2B;AAAA,QAC3B,wBAAwB;AAAA,MAC1B,CAAC;AAAA,IACH;AAEA,UAAM,2BAAoD,OAAM,MAAK;AACnE,UAAI,SAAS,OAAO,UAAU,YAAY,WAAW,OAAO;AAC1D,cAAM,YAAY,MAAM,MAAM,OAAO,EAAE,CAAC;AAAA,MAC1C;AACA,aAAO,aAAa;AAAA,IACtB;AAEA,UAAM,aAAa,EAAE,GAAG,MAAM,SAAS,yBAAyB;AAChE,WAAO,eAAAC,QAAM,aAAa,OAAsC,UAAU;AAAA,EAC5E;AAAA,EACA,EAAE,WAAW,gBAAgB,oBAAoB,KAAK;AACxD;;;AC3DA,IAAAC,iBAAkB;AAMX,IAAM,2BAA2B;AAAA,EACtC,CAAC,EAAE,OAAO,UAAU,GAAG,MAAM,MAAoD;AAC/E,UAAM,EAAE,aAAa,cAAc,WAAW,GAAG,KAAK,IAAI;AAE1D,eAAW,0BAA0B,UAAU,uBAAuB;AACtE,UAAM,QAAQ,kBAAkB,QAAQ,EAAE,0BAA0B;AAIpE,UAAM,eAAe,YAAY;AAC/B,qBAAe,eAAe;AAC5B,cAAM,MAAM,yBAAyB,EAAE,aAAa,eAAe,OAAU,CAAC;AAAA,MAChF;AACA,WAAK,aAAa;AAAA,IACpB;AAEA,UAAM,2BAAoD,OAAM,MAAK;AACnE,YAAM,YAAa,MAAc,MAAM,OAAO,EAAE,CAAC;AACjD,aAAO,aAAa;AAAA,IACtB;AAEA,UAAM,aAAa,EAAE,GAAG,MAAM,SAAS,yBAAyB;AAChE,WAAO,eAAAC,QAAM,aAAa,OAAsC,UAAU;AAAA,EAC5E;AAAA,EACA,EAAE,WAAW,sBAAsB,oBAAoB,KAAK;AAC9D;;;AC9BA,IAAAC,iBAAkB;AAYX,IAAM,gBAAgB;AAAA,EAC3B,CAAC,EAAE,OAAO,UAAU,GAAG,MAAM,MAAkE;AAC7F,UAAM,EAAE,cAAc,KAAK,gBAAgB,cAAc,WAAW,GAAG,KAAK,IAAI;AAEhF,eAAW,0BAA0B,UAAU,UAAU;AACzD,UAAM,QAAQ,kBAAkB,QAAQ,EAAE,eAAe;AAEzD,UAAM,eAAe,MAAM,MAAM,QAAQ,EAAE,aAAa,GAAG,eAAe,CAAC;AAC3E,UAAM,2BAAoD,OAAM,MAAK;AACnE,YAAM,YAAa,MAAc,MAAM,OAAO,EAAE,CAAC;AACjD,aAAO,aAAa;AAAA,IACtB;AAEA,UAAM,aAAa,EAAE,GAAG,MAAM,SAAS,yBAAyB;AAChE,WAAO,eAAAC,QAAM,aAAa,OAAsC,UAAU;AAAA,EAC5E;AAAA,EACA,EAAE,WAAW,iBAAiB,oBAAoB,KAAK;AACzD;;;AC7BA,IAAAC,iBAAkB;AAMX,IAAM,eAAe;AAAA,EAC1B,CAAC,EAAE,OAAO,UAAU,GAAG,MAAM,MAAiE;AAC5F,UAAM;AAAA;AAAA,MAEJ;AAAA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI;AAEJ,eAAW,0BAA0B,UAAU,SAAS;AACxD,UAAM,QAAQ,kBAAkB,QAAQ,EAAE,cAAc;AAExD,UAAM,eAAe,MAAM;AACzB,YAAM,OAAoB;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,SAAS,SAAS;AACpB,eAAO,MAAM,WAAW;AAAA,UACtB,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAEA,aAAO,MAAM,iBAAiB;AAAA,QAC5B,GAAG;AAAA,QACH,2BAA2B;AAAA,QAC3B,wBAAwB;AAAA,MAC1B,CAAC;AAAA,IACH;AAEA,UAAM,2BAAoD,OAAM,MAAK;AACnE,UAAI,SAAS,OAAO,UAAU,YAAY,WAAW,OAAO;AAC1D,cAAM,YAAY,MAAM,MAAM,OAAO,EAAE,CAAC;AAAA,MAC1C;AACA,aAAO,aAAa;AAAA,IACtB;AAEA,UAAM,aAAa,EAAE,GAAG,MAAM,SAAS,yBAAyB;AAChE,WAAO,eAAAC,QAAM,aAAa,OAAsC,UAAU;AAAA,EAC5E;AAAA,EACA,EAAE,WAAW,gBAAgB,oBAAoB,KAAK;AACxD;;;ACjEA,IAAAC,iBAAyD;AAgElD,SAAS,kBAAkB,OAA0C;AAC1E,QAAM,EAAE,eAAe,kBAAkB,iBAAiB,IAAI;AAC9D,QAAM,YAAQ,yBAAS;AACvB,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,EAAE,OAAO,IAAI,UAAU;AAC7B,QAAM,aAAS,uBAAO,KAAK;AAE3B,gCAAU,MAAM;AACd,KAAC,YAAY;AAzEjB,UAAAC,KAAA;AA0EM,UAAI,CAAC,MAAM,UAAU,OAAO,SAAS;AACnC;AAAA,MACF;AAEA,aAAO,UAAU;AAKjB,UAAK,OAAO,WAAsB,YAAY;AAC5C,cAAM,OAAO,SAAS;AAAA,UACpB,UAAU,UAAU,WAAW;AAC7B,0BAAc,GAAG,MAAM;AAAA,UACzB;AAAA,QACF,CAAC;AACD;AAAA,MACF;AAGA,UAAI,OAAO,gBAAgB;AACzB,cAAM,OAAO,OAAO,EAAE,UAAU,KAAK,CAAC;AACtC,YAAI,OAAO,WAAW,YAAY;AAChC,gBAAM,OAAO,SAAS;AAAA,YACpB,UAAU,UAAU,WAAW;AAC7B,4BAAc,GAAG,MAAM;AAAA,YACzB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAEA,eAAO,iBAAiB;AAAA,MAC1B;AAEA,UACE,OAAO,WAAW,wBAClB,GAACA,MAAA,OAAO,0BAAP,gBAAAA,IAA8B,MAAM,OAAK,EAAE,aAAa,oBACzD;AAEA,eAAO,iBAAiB;AAAA,MAC1B;AAGA,UAAI,OAAO,gBAAgB;AACzB,cAAM,OAAO,OAAO,EAAE,UAAU,KAAK,CAAC;AACtC,YAAI,OAAO,WAAW,YAAY;AAChC,gBAAM,OAAO,SAAS;AAAA,YACpB,UAAU,UAAU,WAAW;AAC7B,4BAAc,GAAG,MAAM;AAAA,YACzB;AAAA,UACF,CAAC;AACD;AAAA,QACF;AACA,eAAO,iBAAiB;AAAA,MAC1B;AAEA,UAAI,OAAO,WAAW,YAAY;AAChC,cAAM,OAAO,SAAS;AAAA,UACpB,UAAU,UAAU,WAAW;AAC7B,0BAAc,GAAG,MAAM;AAAA,UACzB;AAAA,QACF,CAAC;AACD;AAAA,MACF;AAEA,UAAI,OAAO,WAAW,yBAAyB,OAAO,WAAW,sBAAsB;AAErF,eAAO,iBAAiB;AAAA,MAC1B;AAIA,UAAI,OAAO,mBAAmB,OAAO,iBAAiB;AACpD,cAAM,cAAY,YAAO,oBAAP,mBAAwB,gBAAa,YAAO,oBAAP,mBAAwB;AAC/E,YAAI,WAAW;AAGb,gBAAM,MAAM,UAAU;AAAA,YACpB,SAAS;AAAA,YACT,UAAU,UAAU,WAAW;AAC7B,qBAAO,cAAc,GAAG,MAAM;AAAA,YAChC;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,MACF;AAAA,IACF,GAAG;AAAA,EACL,GAAG,CAAC,OAAO,MAAM,QAAQ,QAAQ,MAAM,CAAC;AAExC,SACE,+BAAAC,QAAA,cAAC,aAGC,+BAAAA,QAAA,cAAC,SAAI,IAAG,iBAAgB,CAC1B;AAEJ;;;ACzKA,IAAAC,iBAAqC;AAErC,IAAAA,iBAAkB;;;ACFlB,IAAAC,kBAA0B;AAC1B,2BAAiD;AACjD,+BAAqD;AA+DrD,IAAAC,iBAAgC;;;ACjEhC,IAAAC,kBAA0B;AAkB1B,IAAM,sBAAsB,OAAqB;AAAA,EAC/C,QAAQ;AAAA,IACN,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,MAAM;AAAA,EACR;AAAA,EACA,KAAK;AAAA,EACL,QAAQ;AACV;AAEA,IAAM,sBAAsB,OAAqB;AAAA,EAC/C,QAAQ;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,IACd,aAAa;AAAA,IACb,UAAU;AAAA,IACV,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,IACT,eAAe;AAAA,EACjB;AAAA,EACA,KAAK;AAAA,EACL,QAAQ;AACV;AAEA,IAAM,wBAAwB,OAAuB;AAAA,EACnD,QAAQ;AAAA,IACN,cAAc;AAAA,EAChB;AAAA,EACA,KAAK;AAAA,EACL,QAAQ;AACV;AAEA,IAAM,8BAA8B,OAA6B;AAAA,EAC/D,UAAU;AAAA,EAEV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,iCAAiC;AAAA,EACjC,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,4BAA4B;AAC1B,WAAO;AAAA,EACT;AAAA,EACA,SAAS;AACP,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AAAA,EACA,wBAAwB;AACtB,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,OAAO,EAAE,MAAM,IAAI,SAAS,GAAG;AAAA,MAC/B,WAAW;AAAA,MACX,iCAAiC;AAAA,MACjC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,oBAAoB;AAAA,IACtB;AAAA,EACF;AACF;AAEA,IAAM,oCAAoC,OAAmC;AAAA,EAC3E,GAAG,4BAA4B;AAAA,EAC/B,qBAAqB,CAAC;AAAA,EACtB,YAAY;AAAA,EACZ,SAAS;AACP,UAAM,IAAI,MAAM,wCAAwC;AAAA,EAC1D;AAAA,EACA,wBAAwB;AACtB,WAAO;AAAA,MACL,GAAG,4BAA4B,EAAE,sBAAsB;AAAA,MACvD,aAAa,KAAK;AAAA,MAClB,sBAAsB,KAAK;AAAA,IAC7B;AAAA,EACF;AACF;AAQO,IAAM,aAAN,MAAkC;AAAA,EACvC,YAAoB,iBAAkC;AAAlC;AAEpB,SAAiB,oBAAoB,KAAK,iBAAiB;AAC3D,SAAiB,oBAAoB,KAAK,iBAAiB;AAC3D,SAAiB,sBAAsB,KAAK,mBAAmB;AAAA,EAJR;AAAA,EAMvD,eAAe;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EACA,eAAe;AACb,WAAO,KAAK;AAAA,EACd;AAAA,EACA,iBAAiB;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,sBAAsB;AACxB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,eAAe,QAA6B;AAC1C,WAAO,KAAK,mBAAmB,MAAM;AAAA,EACvC;AAAA,EAEQ,mBAAmB;AACzB,UAAM,eAAe,KAAK,aAAa,KAAK,IAAI;AAChD,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO;AAExC,WAAO;AAAA,MACL,QAAQ,oBAAoB;AAAA,MAC5B,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,QAAQ;AAAA,QACR,qBAAqB,CAAC;AAAA,QACtB,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,KAAK;AAAA,QACrD;AAAA,QACA,IAAI,KAAK;AACP,iBAAO,aAAa,QAAQ,MAAM,MAAS;AAAA,QAC7C;AAAA,QACA,IAAI,wBAAwB;AAC1B,iBAAO,aAAa,QAAQ,yBAAyB,CAAC,CAAC;AAAA,QACzD;AAAA,QACA,IAAI,yBAAyB;AAC3B,iBAAO,aAAa,QAAQ,0BAA0B,CAAC,CAAC;AAAA,QAC1D;AAAA,QACA,IAAI,2BAA2B;AAC7B,iBAAO,aAAa,QAAQ,4BAA4B;AAAA,YACtD,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,UAAU;AAAA,YACV,iCAAiC;AAAA,YACjC,OAAO;AAAA,YACP,UAAU;AAAA,YACV,SAAS;AAAA,YACT,UAAU;AAAA,YACV,kBAAkB;AAAA,YAClB,2BAA2B,MAAM;AAAA,YACjC,uBAAuB,MAAM;AAC3B,oBAAM,IAAI,MAAM,qDAAqD;AAAA,YACvE;AAAA,YACA,UAAU;AAAA,YACV,QAAQ,MAAM;AACZ,oBAAM,IAAI,MAAM,qDAAqD;AAAA,YACvE;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,IAAI,aAAa;AACf,iBAAO,aAAa,QAAQ,cAAc,IAAI;AAAA,QAChD;AAAA,QACA,IAAI,mBAAmB;AACrB,iBAAO,aAAa,QAAQ,oBAAoB,IAAI;AAAA,QACtD;AAAA,QACA,IAAI,WAAW;AACb,iBAAO,aAAa,QAAQ,YAAY,CAAC,CAAC;AAAA,QAC5C;AAAA,QACA,IAAI,0BAA0B;AAC5B,iBAAO,aAAa,QAAQ,2BAA2B;AAAA,YACrD,QAAQ;AAAA,YACR,OAAO;AAAA,YACP,UAAU;AAAA,YACV,iCAAiC;AAAA,YACjC,OAAO;AAAA,YACP,UAAU;AAAA,YACV,SAAS;AAAA,YACT,UAAU;AAAA,YACV,kBAAkB;AAAA,YAClB,2BAA2B,MAAM;AAAA,YACjC,uBAAuB,MAAM;AAC3B,oBAAM,IAAI,MAAM,qDAAqD;AAAA,YACvE;AAAA,YACA,UAAU;AAAA,YACV,QAAQ,MAAM;AACZ,oBAAM,IAAI,MAAM,qDAAqD;AAAA,YACvE;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,KAAK;AAAA,QACrD;AAAA,QAEA,QAAQ,KAAK,WAAW,QAAQ,QAAQ;AAAA,QACxC,UAAU,KAAK,WAAW,QAAQ,UAAU;AAAA,QAC5C,KAAK,KAAK,WAAW,QAAQ,KAAK;AAAA,QAClC,UAAU,KAAK,WAAW,QAAQ,UAAU;AAAA,QAC5C,OAAO,KAAK,WAAW,QAAQ,OAAO;AAAA,QAEtC,WAAW,KAAK,YAAY,MAAM,OAAO,EAAE,WAAW,CAAC,YAAY,YAAY,CAAU;AAAA,QACzF,WAAW,KAAK;AAAA,UACd,MAAM,OAAO,EAAE;AAAA,UACf,CAAC,YAAY,qBAAqB;AAAA,UAClC,CAAC,cAAc;AAAA,UACf,EAAE,cAAc,KAAK;AAAA,QACvB;AAAA,QACA,wBAAwB,KAAK,YAAY,MAAM,OAAO,EAAE,wBAAwB;AAAA,UAC9E;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAU;AAAA,QACV,wBAAwB,KAAK,YAAY,MAAM,OAAO,EAAE,wBAAwB;AAAA,UAC9E;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAU;AAAA,QACV,WAAW,KAAK,YAAY,MAAM,OAAO,EAAE,WAAW,CAAC,YAAY,YAAY,CAAU;AAAA,QACzF,KAAK,KAAK,YAAY,MAAM,OAAO,EAAE,KAAK;AAAA,UACxC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAU;AAAA,QACV,QAAQ,KAAK,WAAW,QAAQ,QAAQ;AAAA,QACxC,SAAS,KAAK,WAAW,QAAQ,SAAS;AAAA,QAC1C,MAAM,KAAK,WAAW,QAAQ,MAAM;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,mBAAmB;AACzB,UAAM,eAAe,KAAK,aAAa,KAAK,IAAI;AAChD,UAAM,aAAa,KAAK,WAAW,KAAK,IAAI;AAC5C,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO;AAExC,WAAO;AAAA,MACL,QAAQ,oBAAoB;AAAA,MAC5B,aAAa;AAAA,MACb,QAAQ;AAAA,QACN,IAAI,KAAK;AACP,iBAAO,aAAa,QAAQ,MAAM,MAAS;AAAA,QAC7C;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,CAAC,CAAC;AAAA,QAClD;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,CAAC,CAAC;AAAA,QAClD;AAAA,QACA,IAAI,gBAAgB;AAClB,iBAAO,aAAa,QAAQ,iBAAiB,CAAC,CAAC;AAAA,QACjD;AAAA,QACA,IAAI,WAAW;AACb,iBAAO,aAAa,QAAQ,YAAY,IAAI;AAAA,QAC9C;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,QAAQ,aAAa,IAAI;AAAA,QAC/C;AAAA,QACA,IAAI,WAAW;AACb,iBAAO,aAAa,QAAQ,YAAY,IAAI;AAAA,QAC9C;AAAA,QACA,IAAI,eAAe;AACjB,iBAAO,aAAa,QAAQ,gBAAgB,IAAI;AAAA,QAClD;AAAA,QACA,IAAI,cAAc;AAChB,iBAAO,aAAa,QAAQ,eAAe,IAAI;AAAA,QACjD;AAAA,QACA,IAAI,aAAa;AACf,iBAAO,aAAa,QAAQ,cAAc,IAAI;AAAA,QAChD;AAAA,QACA,IAAI,cAAc;AAChB,iBAAO,aAAa,QAAQ,eAAe,KAAK;AAAA,QAClD;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,CAAC,CAAC;AAAA,QAClD;AAAA,QACA,IAAI,mBAAmB;AACrB,iBAAO,aAAa,QAAQ,oBAAoB,IAAI;AAAA,QACtD;AAAA,QACA,IAAI,gBAAgB;AAClB,iBAAO,aAAa,QAAQ,iBAAiB,IAAI;AAAA,QACnD;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,QAAQ,aAAa,IAAI;AAAA,QAC/C;AAAA,QACA,IAAI,kBAAkB;AACpB,iBAAO,aAAa,QAAQ,mBAAmB,IAAI;AAAA,QACrD;AAAA,QACA,IAAI,SAAS;AACX,iBAAO,aAAa,QAAQ,UAAU,IAAI;AAAA,QAC5C;AAAA,QACA,IAAI,SAAS;AACX,iBAAO,aAAa,QAAQ,UAAU,sBAAsB;AAAA,QAC9D;AAAA,QACA,IAAI,mBAAmB;AACrB,iBAAO,aAAa,QAAQ,oBAAoB,CAAC,CAAC;AAAA,QACpD;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,KAAK;AAAA,QACrD;AAAA,QACA,IAAI,iBAAiB;AACnB,iBAAO,aAAa,QAAQ,kBAAkB,KAAK;AAAA,QACrD;AAAA,QAEA,QAAQ,WAAW,QAAQ,QAAQ;AAAA,QACnC,QAAQ,WAAW,QAAQ,QAAQ;AAAA,QACnC,KAAK,WAAW,QAAQ,KAAK;AAAA,QAC7B,UAAU,WAAW,QAAQ,UAAU;AAAA,QACvC,QAAQ,WAAW,QAAQ,QAAQ;AAAA,QACnC,MAAM,WAAW,QAAQ,MAAM;AAAA,QAC/B,UAAU,WAAW,QAAQ,UAAU;AAAA,QACvC,OAAO,WAAW,QAAQ,OAAO;AAAA,QAEjC,eAAe,KAAK;AAAA,UAClB,MAAM,OAAO,EAAE;AAAA,UACf;AAAA,YACE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,CAAC,gBAAgB,eAAe,cAAc,mBAAmB,uBAAuB;AAAA,UACxF;AAAA,YACE,cAAc,kCAAkC;AAAA,YAChD,aAAa,kCAAkC;AAAA,YAC/C,YAAY,kCAAkC;AAAA,YAC9C,iBAAiB,kCAAkC;AAAA,YACnD,uBAAuB;AAAA,UACzB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,qBAAqB;AAC3B,UAAM,eAAe,KAAK,aAAa,KAAK,IAAI;AAChD,UAAM,aAAa,KAAK,WAAW,KAAK,IAAI;AAC5C,UAAM,SAAS,MAAwB;AACrC,aAAO,KAAK,MAAM;AAAA,IACpB;AAEA,WAAO;AAAA,MACL,QAAQ,sBAAsB;AAAA,MAC9B,aAAa;AAAA,MACb,UAAU;AAAA,QACR,UAAU;AAAA,QACV,IAAI,KAAK;AACP,iBAAO,aAAa,QAAQ,MAAM,EAAE;AAAA,QACtC;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,QAAQ,aAAa,IAAI;AAAA,QAC/C;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,aAAa,QAAQ,aAAa,IAAI;AAAA,QAC/C;AAAA,QAEA,MAAM,WAAW,QAAQ,MAAM;AAAA,QAC/B,QAAQ,WAAW,QAAQ,QAAQ;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAAA,EAEQ,mBAAmB,QAAkD;AAC3E,UAAM,eAAe,KAAK,aAAa,KAAK,IAAI;AAChD,UAAM,iBAAiB,MAAM,KAAK,SAAS,MAAM;AACjD,UAAM,SAAS,MAAM,eAAe,EAAE;AAEtC,WAAO;AAAA,MACL,QAAQ;AAAA,QACN,KAAK;AAAA,QACL,QAAQ;AAAA,MACV;AAAA,MACA,aAAa;AAAA,MACb,UAAU;AAAA,QACR,IAAI,SAAS;AACX,iBAAO,aAAa,QAAQ,UAAU,sBAAsB;AAAA,QAC9D;AAAA,QACA,IAAI,uBAAuB;AACzB,iBAAO,aAAa,QAAQ,wBAAwB,IAAI;AAAA,QAC1D;AAAA,QACA,IAAI,oBAAoB;AACtB,iBAAO,aAAa,QAAQ,qBAAqB,IAAI;AAAA,QACvD;AAAA,QACA,IAAI,gBAAgB;AAClB,iBAAO,aAAa,QAAQ,iBAAiB,IAAI;AAAA,QACnD;AAAA,QACA,IAAI,OAAO;AACT,iBAAO,aAAa,QAAQ,QAAQ,IAAI;AAAA,QAC1C;AAAA,QACA,IAAI,aAAa;AACf,iBAAO,aAAa,QAAQ,cAAc,IAAI;AAAA,QAChD;AAAA,QACA,IAAI,SAAS;AACX,iBAAO,aAAa,QAAQ,UAAU,IAAI;AAAA,QAC5C;AAAA,QACA,IAAI,wBAAwB;AAC1B,iBAAO,aAAa,QAAQ,yBAAyB,KAAK;AAAA,QAC5D;AAAA,QACA,IAAI,kBAAkB;AACpB,iBAAO,aAAa,QAAQ,mBAAmB,IAAI;AAAA,QACrD;AAAA,QACA,IAAI,QAAQ;AACV,iBAAO,aAAa,QAAQ,SAAS,IAAI;AAAA,QAC3C;AAAA,QACA,IAAI,kBAAkB;AACpB,iBAAO,aAAa,QAAQ,mBAAmB,IAAI;AAAA,QACrD;AAAA,QACA,IAAI,qBAAqB;AACvB,iBAAO,aAAa,QAAQ,sBAAsB,IAAI;AAAA,QACxD;AAAA,QAEA,OAAO,KAAK,WAA+C,QAAQ,OAAO;AAAA,QAC1E,SAAS,KAAK,WAAiD,QAAQ,SAAS;AAAA,QAChF,UAAU,KAAK,WAAkD,QAAQ,UAAU;AAAA,MACrF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,kBAAkB,GAA2B;AAC3C,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AAAA,EACA,oBAAuB,GAA6B;AAClD,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAAA,EAEA,IAAY,QAAQ;AAClB,UAAM,IAAI,KAAK,gBAAgB;AAC/B,QAAI,CAAC,GAAG;AACN,YAAM,IAAI,MAAM,uBAAuB;AAAA,IACzC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAY,SAAS;AACnB,UAAM,IAAI,KAAK,gBAAgB;AAC/B,QAAI,CAAC,GAAG;AACN,YAAM,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAY,WAA6C;AACvD,UAAM,IAAI,KAAK,gBAAgB;AAC/B,QAAI,CAAC,GAAG;AACN,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC5C;AACA,WAAO;AAAA,EACT;AAAA,EAEQ,aAAkD,WAAoB,KAAQ,cAAoB;AACxG,YAAQ,MAAM;AACZ,UAAI,KAAC,2BAAU,KAAK,CAAC,KAAK,gBAAgB,QAAQ;AAChD,eAAO;AAAA,MACT;AACA,YAAM,IAAI,UAAU;AACpB,aAAO,EAAE,GAAG;AAAA,IACd,GAAG;AAAA,EACL;AAAA,EAEQ,WAAyD,WAAoB,KAAQ;AAE3F,YAAQ,UAAU,SAAgD;AAChE,UAAI,KAAC,2BAAU,GAAG;AAChB,eAAO,aAAa,MAAM,+BAA+B,GAAG,wCAAwC;AAAA,MACtG;AACA,UAAI,CAAC,KAAK,gBAAgB,QAAQ;AAChC,cAAM,IAAI,QAAc,aAAW,KAAK,gBAAgB,YAAY,OAAO,CAAC;AAAA,MAC9E;AACA,YAAM,IAAI,UAAU;AACpB,aAAQ,EAAE,GAAG,EAAgD,MAAM,GAAG,IAAI;AAAA,IAC5E;AAAA,EACF;AAAA,EAEQ,YACN,WACA,MACoB;AACpB,WAAO,OAAO,YAAY,KAAK,IAAI,OAAK,CAAC,GAAG,KAAK,WAAW,WAAW,CAAC,CAAC,CAAC,CAAC;AAAA,EAC7E;AAAA,EAEQ,WACN,WACA,SACA,SACA,WAKA;AACA,UAAM,MAAW,CAAC;AAClB,eAAW,KAAK,SAAS;AACvB,UAAI,CAAC,IAAI,KAAK,WAAW,WAAW,CAAQ;AAAA,IAC9C;AACA,eAAW,KAAK,SAAS;AACvB,aAAO,eAAe,KAAK,GAAG;AAAA,QAC5B,KAAK,MAAM,KAAK,aAAa,WAAW,GAAW,UAAkB,CAAC,CAAC;AAAA,QACvE,YAAY;AAAA,MACd,CAAC;AAAA,IACH;AACA,WAAO;AAAA,EACT;AACF;;;AD3bA,IAAI,OAAO,WAAW,0BAA0B,aAAa;AAC3D,aAAW,wBAAwB;AACrC;AAEA,IAAM,eAAe;AAAA,EACnB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa,QAAQ,IAAI;AAC3B;AAxFA;AA+HO,IAAM,mBAAN,MAAM,iBAAiD;AAAA,EAwI5D,YAAY,SAAiC;AAxIxC;AAIL,SAAQ,UAAsD;AAC9D,SAAQ,gBAA2C;AACnD,SAAQ,0BAAoE;AAC5E,SAAQ,mCAAsF;AAC9F,SAAQ,gBAAqC;AAC7C,SAAQ,kBAAoD;AAC5D,SAAQ,qBAAyD;AACjE,SAAQ,6BAAyE;AACjF,SAAQ,gBAAqC;AAC7C,SAAQ,qBAA+C;AACvD,SAAQ,6BAA+D;AACvE,SAAQ,4BAA6D;AACrE,SAAQ,kBAAyC;AACjD,SAAQ,sBAAsB,oBAAI,IAA6C;AAC/E,SAAQ,sBAAsB,oBAAI,IAA6C;AAC/E,SAAQ,0BAA0B,oBAAI,IAAiD;AACvF,SAAQ,2BAA2B,oBAAI,IAAkD;AACzF,SAAQ,0BAA0B,oBAAI,IAAiD;AACvF,SAAQ,mCAAmC,oBAAI,IAA0D;AACzG,SAAQ,kCAAkC,oBAAI,IAAyD;AACvG,SAAQ,oCAAoC,oBAAI,IAA2D;AAC3G,SAAQ,gCAAgC,oBAAI,IAAuD;AACnG,SAAQ,sBAAsB,oBAAI,IAA8C;AAChF,SAAQ,wBAAwB,oBAAI,IAA+C;AACnF,SAAQ,4BAA4B,oBAAI,IAAmD;AAC3F,SAAQ,uBAAuB,oBAAI,IAA8C;AACjF,SAAQ,4BAA4B,oBAAI,IAA8D;AACtG,SAAQ,sCAAsC,oBAAI,IAA6D;AAC/G,SAAQ,iCAAiC,oBAAI,IAAwD;AACrG,SAAQ,4BAA4B,oBAAI,IAAmD;AAE3F;AAAA,SAAQ,2BAA2B,oBAAI,IASrC;AACF,SAAQ,kBAAqC,CAAC;AAE9C,gCAAuB;AACvB;AACA;AACA;AACA,sCAAY,0CAAoB;AAChC;AAoLA,0BAAiB,CAAC,SAA0C;AAC1D,YAAM,WAAW,MAAG;AAxWxB,YAAAC;AAwW2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,eAAe,UAAS;AAAA;AAC7D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,kBAAkB,QAAQ;AAAA,MACzD;AAAA,IACF;AAEA,0BAAiB,CAAC,SAA0C;AAC1D,YAAM,WAAW,MAAG;AAjXxB,YAAAA;AAiX2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,eAAe,UAAS;AAAA;AAC7D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,kBAAkB,QAAQ;AAAA,MACzD;AAAA,IACF;AAEA,+BAAsB,IAAI,SAAkE;AAC1F,YAAM,WAAW,MAAG;AA1XxB,YAAAA;AA0X2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,oBAAoB,GAAG,UAAS;AAAA;AACrE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,uBAAuB,QAAQ;AAAA,MAC9D;AAAA,IACF;AAEA,+BAAsB,IAAI,SAAkE;AAC1F,YAAM,WAAW,MAAG;AAnYxB,YAAAA;AAmY2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,oBAAoB,GAAG,UAAS;AAAA;AACrE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,uBAAuB,QAAQ;AAAA,MAC9D;AAAA,IACF;AAEA,gCAAuB,MAAqB;AAC1C,YAAM,WAAW,MAAG;AA5YxB,YAAAA;AA4Y2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,2BAA0B;AAAA;AAC/D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,wBAAwB,QAAQ;AAAA,MAC/D;AAAA,IACF;AAEA,2CAAkC,MAAqB;AACrD,YAAM,WAAW,MAAG;AArZxB,YAAAA;AAqZ2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,sCAAqC;AAAA;AAC1E,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,mCAAmC,QAAQ;AAAA,MAC1E;AAAA,IACF;AAEA,kDAAyC,MAAqB;AAC5D,YAAM,WAAW,MAAG;AA9ZxB,YAAAA;AA8Z2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,6CAA4C;AAAA;AACjF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,0CAA0C,QAAQ;AAAA,MACjF;AAAA,IACF;AAEA,+BAAsB,MAAqB;AACzC,YAAM,WAAW,MAAG;AAvaxB,YAAAA;AAua2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,0BAAyB;AAAA;AAC9D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,uBAAuB,QAAQ;AAAA,MAC9D;AAAA,IACF;AAEA,sCAA6B,MAAqB;AAChD,YAAM,WAAW,MAAG;AAhbxB,YAAAA;AAgb2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,iCAAgC;AAAA;AACrE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,8BAA8B,QAAQ;AAAA,MACrE;AAAA,IACF;AAEA,uCAA8B,MAAqB;AACjD,YAAM,WAAW,MAAG;AAzbxB,YAAAA;AAyb2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,kCAAiC;AAAA;AACtE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,+BAA+B,QAAQ;AAAA,MACtE;AAAA,IACF;AAEA,4BAAmB,MAAqB;AACtC,YAAM,WAAW,MAAG;AAlcxB,YAAAA;AAkc2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,uBAAsB;AAAA;AAC3D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,oBAAoB,QAAQ;AAAA,MAC3D;AAAA,IACF;AAEA,yBAAgB,MAAqB;AACnC,YAAM,WAAW,MAAG;AA3cxB,YAAAA;AA2c2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,oBAAmB;AAAA;AACxD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,iBAAiB,QAAQ;AAAA,MACxD;AAAA,IACF;AAEA,4BAAmB,CAAC,OAA8B;AAChD,YAAM,WAAW,MAAG;AApdxB,YAAAA;AAod2B,iBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,iBAAiB,QAAO;AAAA;AAC7D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,oBAAoB,QAAQ;AAAA,MAC3D;AAAA,IACF;AAEA,iCAAwB,YAAY;AAClC,YAAM,WAAW,MAAG;AA7dxB,YAAAA;AA6d2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,oBAAoB,IAAI,yBAAyB,QAAQ;AAAA,MAChE;AAAA,IACF;AA6GA,SAAO,KAAkB,IAAI,SAAS;AAhlBxC,UAAAA;AAklBI,WAAIA,MAAA,KAAK,YAAL,gBAAAA,IAAc,IAAI;AACpB,eAAO,KAAK,QAAQ,GAAG,GAAG,IAAI;AAAA,MAChC,OAAO;AACL,2BAAK,WAAU,GAAG,GAAG,IAAI;AAAA,MAC3B;AAAA,IACF;AAEA,SAAO,MAAoB,IAAI,SAAS;AAzlB1C,UAAAA;AA2lBI,WAAIA,MAAA,KAAK,YAAL,gBAAAA,IAAc,KAAK;AACrB,eAAO,KAAK,QAAQ,IAAI,GAAG,IAAI;AAAA,MACjC,OAAO;AACL,2BAAK,WAAU,IAAI,GAAG,IAAI;AAAA,MAC5B;AAAA,IACF;AAKA;AAAA;AAAA;AAAA,SAAO,cAAc,CAAC,OAAmB;AACvC,WAAK,gBAAgB,KAAK,EAAE;AAI5B,UAAI,KAAK,QAAQ;AACf,aAAK,WAAW;AAAA,MAClB;AAAA,IACF;AAKA;AAAA;AAAA;AAAA,SAAO,aAAa,MAAM;AACxB,WAAK,gBAAgB,QAAQ,QAAM,GAAG,CAAC;AACvC,WAAK,kBAAkB,CAAC;AAAA,IAC1B;AAEA,SAAQ,aAAa,CAAC,YAA6D;AACjF,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAAA,IACF;AAEA,SAAQ,+BAA+B,CAAC,YAA6D;AA7nBvG,UAAAA,KAAA;AA8nBI,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,WAAK,UAAU;AAEf,WAAK,oBAAoB,QAAQ,QAAM,GAAG,CAAC;AAC3C,WAAK,yBAAyB,QAAQ,CAAC,gBAAgB,aAAa;AAClE,uBAAe,SAAS,oBAAoB,QAAQ,YAAY,UAAU,eAAe,OAAO;AAAA,MAClG,CAAC;AAED,OAAAA,MAAA,mBAAK,WAAU,SAAS,kBAAkB,QAAQ,MAAlD,gBAAAA,IAAqD,QAAQ,cAAY;AAEvE,aAAK,GAAG,UAAU,UAAU,EAAE,QAAQ,KAAK,CAAC;AAAA,MAC9C;AAGA,+BAAK,WAAU,SAAS,kBAAkB,mBAAmB,MAA7D,mBAAgE,QAAQ,cAAY;AAGlF,aAAK,GAAG,qBAAqB,UAAU,EAAE,QAAQ,KAAK,CAAC;AAAA,MACzD;AAEA,UAAI,KAAK,kBAAkB,MAAM;AAC/B,gBAAQ,WAAW,KAAK,aAAa;AAAA,MACvC;AAEA,UAAI,KAAK,oBAAoB,MAAM;AACjC,gBAAQ,wBAAwB,KAAK,eAAe;AAAA,MACtD;AAEA,UAAI,KAAK,uBAAuB,MAAM;AACpC,gBAAQ,2BAA2B,KAAK,kBAAkB;AAAA,MAC5D;AAEA,UAAI,KAAK,+BAA+B,MAAM;AAC5C,gBAAQ,mCAAmC,KAAK,0BAA0B;AAAA,MAC5E;AAEA,UAAI,KAAK,kBAAkB,MAAM;AAC/B,gBAAQ,WAAW,KAAK,aAAa;AAAA,MACvC;AAEA,UAAI,KAAK,uBAAuB,MAAM;AACpC,gBAAQ,gBAAgB,KAAK,kBAAkB;AAAA,MACjD;AAEA,UAAI,KAAK,4BAA4B,MAAM;AACzC,gBAAQ,8BAA8B,KAAK,uBAAuB;AAAA,MACpE;AAEA,UAAI,KAAK,kBAAkB,MAAM;AAC/B,gBAAQ,iBAAiB,KAAK,aAAa;AAAA,MAC7C;AAEA,UAAI,KAAK,+BAA+B,MAAM;AAC5C,gBAAQ,wBAAwB,KAAK,0BAA0B;AAAA,MACjE;AAEA,UAAI,KAAK,8BAA8B,MAAM;AAC3C,gBAAQ,uBAAuB,KAAK,yBAAyB;AAAA,MAC/D;AAEA,UAAI,KAAK,oBAAoB,MAAM;AACjC,gBAAQ,aAAa,KAAK,eAAe;AAAA,MAC3C;AAEA,UAAI,KAAK,kCAAkC;AACzC,gBAAQ,yCAAyC,KAAK,gCAAgC;AAAA,MACxF;AAEA,WAAK,oBAAoB,QAAQ,CAAC,OAAO,SAAS;AAChD,gBAAQ,YAAY,MAAM,KAAK;AAAA,MACjC,CAAC;AAED,WAAK,oBAAoB,QAAQ,CAAC,OAAO,SAAS;AAChD,gBAAQ,YAAY,MAAM,KAAK;AAAA,MACjC,CAAC;AAED,WAAK,yBAAyB,QAAQ,CAAC,OAAO,SAAS;AACrD,gBAAQ,iBAAiB,MAAM,KAAK;AAAA,MACtC,CAAC;AAED,WAAK,wBAAwB,QAAQ,CAAC,OAAO,SAAS;AACpD,gBAAQ,gBAAgB,MAAM,KAAK;AAAA,MACrC,CAAC;AAED,WAAK,wBAAwB,QAAQ,CAAC,OAAO,SAAS;AACpD,gBAAQ,gBAAgB,MAAM,KAAK;AAAA,MACrC,CAAC;AAED,WAAK,8BAA8B,QAAQ,CAAC,OAAO,SAAS;AAC1D,gBAAQ,sBAAsB,MAAM,KAAK;AAAA,MAC3C,CAAC;AAED,WAAK,sBAAsB,QAAQ,CAAC,OAAO,SAAS;AAClD,gBAAQ,cAAc,MAAM,KAAK;AAAA,MACnC,CAAC;AAED,WAAK,0BAA0B,QAAQ,CAAC,OAAO,SAAS;AACtD,gBAAQ,kBAAkB,MAAM,KAAK;AAAA,MACvC,CAAC;AAED,WAAK,qBAAqB,QAAQ,CAAC,OAAO,SAAS;AACjD,gBAAQ,aAAa,MAAM,KAAK;AAAA,MAClC,CAAC;AAED,WAAK,0BAA0B,QAAQ,CAAC,OAAO,SAAS;AACtD,gBAAQ,6BAA6B,MAAM,KAAK;AAAA,MAClD,CAAC;AAED,WAAK,oCAAoC,QAAQ,CAAC,OAAO,SAAS;AAChE,gBAAQ,4BAA4B,MAAM,KAAK;AAAA,MACjD,CAAC;AAED,WAAK,+BAA+B,QAAQ,CAAC,OAAO,SAAS;AAC3D,gBAAQ,uBAAuB,MAAM,KAAK;AAAA,MAC5C,CAAC;AAED,WAAK,0BAA0B,QAAQ,CAAC,OAAO,SAAS;AACtD,gBAAQ,kBAAkB,MAAM,KAAK;AAAA,MACvC,CAAC;AAKD,UAAI,OAAO,KAAK,QAAQ,WAAW,aAAa;AAC9C,2BAAK,WAAU,KAAK,iCAAY,QAAQ,OAAO;AAAA,MACjD;AAEA,WAAK,WAAW;AAChB,aAAO,KAAK;AAAA,IACd;AA4EA,mCAA0B,IAAI,SAAuD;AACnF,aAAO,KAAK,UAAU,KAAK,UACvB,KAAK,QAAQ,wBAAwB,GAAG,IAAI,IAC5C,mBAAK,aAAY,eAAe,GAAG,IAAI;AAAA,IAC7C;AAWA;AAAA,kCAAyB,OAAO,UAA8B;AAC5D,YAAM,UAAU,MAAM,sBAAK,+CAAL;AAEtB,UAAI,WAAW,4BAA4B,SAAS;AAClD,eAAQ,QAAgB,uBAAuB,KAAK;AAAA,MACtD;AAAA,IACF;AASA;AAAA;AAAA;AAAA,qBAAY,CAAC,WAA2C;AACtD,UAAI,KAAK,SAAS;AAChB,eAAO,KAAK,QAAQ,UAAU,MAAM;AAAA,MACtC,OAAO;AACL,eAAO,QAAQ,OAAO;AAAA,MACxB;AAAA,IACF;AAEA,sBAAa,CAAC,UAAwB;AACpC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,WAAW,KAAK;AAAA,MAC/B,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,uBAAc,MAAM;AAClB,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,YAAY;AAAA,MAC3B,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,mCAA0B,CAAC,UAAqC;AAC9D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,wBAAwB,KAAK;AAAA,MAC5C,OAAO;AACL,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,oCAA2B,MAAM;AAC/B,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,yBAAyB;AAAA,MACxC,OAAO;AACL,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,sCAA6B,CAAC,UAAuC;AACnE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,2BAA2B,KAAK;AAAA,MAC/C,OAAO;AACL,aAAK,qBAAqB;AAAA,MAC5B;AAAA,IACF;AAEA,uCAA8B,MAAM;AAClC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,4BAA4B;AAAA,MAC3C,OAAO;AACL,aAAK,qBAAqB;AAAA,MAC5B;AAAA,IACF;AAEA,8CAAqC,CAAC,UAAgD;AACpF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,mCAAmC,KAAK;AAAA,MACvD,OAAO;AACL,aAAK,6BAA6B,wBAAS;AAAA,MAC7C;AAAA,IACF;AAEA,+CAAsC,MAAM;AAC1C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,oCAAoC;AAAA,MACnD,OAAO;AACL,aAAK,6BAA6B;AAAA,MACpC;AAAA,IACF;AAEA,yCAAgC,CAAC,UAAkD;AACjF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,8BAA8B,KAAK;AAAA,MAClD,OAAO;AACL,aAAK,0BAA0B;AAAA,MACjC;AAAA,IACF;AAEA,0CAAiC,MAAM;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,+BAA+B;AAAA,MAC9C,OAAO;AACL,aAAK,0BAA0B;AAAA,MACjC;AAAA,IACF;AAEA,oDAA2C,CAAC,UAAqD;AAC/F,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,yCAAyC,KAAK;AAAA,MAC7D,OAAO;AACL,aAAK,mCAAmC;AAAA,MAC1C;AAAA,IACF;AAEA,qDAA4C,MAAM;AAChD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,0CAA0C;AAAA,MACzD,OAAO;AACL,aAAK,mCAAmC;AAAA,MAC1C;AAAA,IACF;AAEA,4BAAmB,CAAC,UAA8B;AAChD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,iBAAiB,KAAK;AAAA,MACrC,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,6BAAoB,MAAM;AACxB,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,kBAAkB;AAAA,MACjC,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,2BAAkB,CAAC,UAA6B;AAC9C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,gBAAgB,KAAK;AAAA,MACpC,OAAO;AACL,aAAK,qBAAqB;AAAA,MAC5B;AAAA,IACF;AAEA,4BAAmB,MAAM;AACvB,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,iBAAiB;AAAA,MAChC,OAAO;AACL,aAAK,qBAAqB;AAAA,MAC5B;AAAA,IACF;AAEA,mCAA0B,CAAC,UAAqC;AAC9D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,wBAAwB,KAAK;AAAA,MAC5C,OAAO;AACL,aAAK,6BAA6B;AAAA,MACpC;AAAA,IACF;AAEA,oCAA2B,MAAM;AAC/B,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,yBAAyB;AAAA,MACxC,OAAO;AACL,aAAK,6BAA6B;AAAA,MACpC;AAAA,IACF;AAEA,kCAAyB,CAAC,UAAoC;AAC5D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,uBAAuB,KAAK;AAAA,MAC3C,OAAO;AACL,aAAK,4BAA4B;AAAA,MACnC;AAAA,IACF;AAEA,mCAA0B,MAAM;AAC9B,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,wBAAwB;AAAA,MACvC,OAAO;AACL,aAAK,4BAA4B;AAAA,MACnC;AAAA,IACF;AAEA,wBAAe,CAAC,UAA0B;AACxC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,aAAa,KAAK;AAAA,MACjC,OAAO;AACL,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,yBAAgB,MAAM;AACpB,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,cAAc;AAAA,MAC7B,OAAO;AACL,aAAK,kBAAkB;AAAA,MACzB;AAAA,IACF;AAEA,sBAAa,CAAC,UAAwB;AACpC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,WAAW,KAAK;AAAA,MAC/B,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,uBAAc,MAAM;AAClB,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,YAAY;AAAA,MAC3B,OAAO;AACL,aAAK,gBAAgB;AAAA,MACvB;AAAA,IACF;AAEA,uBAAc,CAAC,MAAsB,UAAwB;AAC3D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,YAAY,MAAM,KAAK;AAAA,MACtC,OAAO;AACL,aAAK,oBAAoB,IAAI,MAAM,KAAK;AAAA,MAC1C;AAAA,IACF;AAEA,yBAAgB,CAAC,SAAyB;AACxC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,cAAc,IAAI;AAAA,MACjC,OAAO;AACL,aAAK,oBAAoB,OAAO,IAAI;AAAA,MACtC;AAAA,IACF;AAEA,uBAAc,CAAC,MAAsB,UAAwB;AAC3D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,YAAY,MAAM,KAAK;AAAA,MACtC,OAAO;AACL,aAAK,oBAAoB,IAAI,MAAM,KAAK;AAAA,MAC1C;AAAA,IACF;AAEA,yBAAgB,CAAC,SAAyB;AACxC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,cAAc,IAAI;AAAA,MACjC,OAAO;AACL,aAAK,oBAAoB,OAAO,IAAI;AAAA,MACtC;AAAA,IACF;AAEA,2BAAkB,CAAC,MAAsB,UAA4B;AACnE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,gBAAgB,MAAM,KAAK;AAAA,MAC1C,OAAO;AACL,aAAK,wBAAwB,IAAI,MAAM,KAAK;AAAA,MAC9C;AAAA,IACF;AAEA,6BAAoB,CAAC,SAAyB;AAC5C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,kBAAkB,IAAI;AAAA,MACrC,OAAO;AACL,aAAK,wBAAwB,OAAO,IAAI;AAAA,MAC1C;AAAA,IACF;AAEA,4BAAmB,CAAC,MAAsB,UAA6B;AACrE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,iBAAiB,MAAM,KAAK;AAAA,MAC3C,OAAO;AACL,aAAK,yBAAyB,IAAI,MAAM,KAAK;AAAA,MAC/C;AAAA,IACF;AAEA,8BAAqB,CAAC,SAAyB;AAC7C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,mBAAmB,IAAI;AAAA,MACtC,OAAO;AACL,aAAK,yBAAyB,OAAO,IAAI;AAAA,MAC3C;AAAA,IACF;AAEA,oCAA2B,CAAC,MAAsB,UAAqC;AACrF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,yBAAyB,MAAM,KAAK;AAAA,MACnD,OAAO;AACL,aAAK,iCAAiC,IAAI,MAAM,KAAK;AAAA,MACvD;AAAA,IACF;AAEA,sCAA6B,CAAC,SAAyB;AACrD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,2BAA2B,IAAI;AAAA,MAC9C,OAAO;AACL,aAAK,iCAAiC,OAAO,IAAI;AAAA,MACnD;AAAA,IACF;AAEA,mCAA0B,CAAC,MAAsB,UAAoC;AACnF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,wBAAwB,MAAM,KAAK;AAAA,MAClD,OAAO;AACL,aAAK,gCAAgC,IAAI,MAAM,KAAK;AAAA,MACtD;AAAA,IACF;AAEA,qCAA4B,CAAC,SAAyB;AACpD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,0BAA0B,IAAI;AAAA,MAC7C,OAAO;AACL,aAAK,gCAAgC,OAAO,IAAI;AAAA,MAClD;AAAA,IACF;AAEA,qCAA4B,CAAC,MAAsB,UAAsC;AACvF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,0BAA0B,MAAM,KAAK;AAAA,MACpD,OAAO;AACL,aAAK,kCAAkC,IAAI,MAAM,KAAK;AAAA,MACxD;AAAA,IACF;AAEA,uCAA8B,CAAC,SAAyB;AACtD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,4BAA4B,IAAI;AAAA,MAC/C,OAAO;AACL,aAAK,kCAAkC,OAAO,IAAI;AAAA,MACpD;AAAA,IACF;AAEA,uDAA8C,MAAM;AAClD,YAAM,WAAW,MAAG;AArqCxB,YAAAA;AAqqC2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,oBAAoB,IAAI,+CAA+C,QAAQ;AAAA,MACtF;AAAA,IACF;AAEA,iCAAwB,CAAC,MAAsB,UAAkC;AAC/E,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,sBAAsB,MAAM,KAAK;AAAA,MAChD,OAAO;AACL,aAAK,8BAA8B,IAAI,MAAM,KAAK;AAAA,MACpD;AAAA,IACF;AAEA,mCAA0B,CAAC,SAAyB;AAClD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,wBAAwB,IAAI;AAAA,MAC3C,OAAO;AACL,aAAK,8BAA8B,OAAO,IAAI;AAAA,MAChD;AAAA,IACF;AAEA,2BAAkB,CAAC,MAAsB,oBAAsC;AAC7E,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,gBAAgB,MAAM,eAAe;AAAA,MACpD,OAAO;AACL,aAAK,wBAAwB,IAAI,MAAM,eAAe;AAAA,MACxD;AAAA,IACF;AAEA,6BAAoB,CAAC,SAAyB;AAC5C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,kBAAkB,IAAI;AAAA,MACrC,OAAO;AACL,aAAK,wBAAwB,OAAO,IAAI;AAAA,MAC1C;AAAA,IACF;AAEA,yBAAgB,CAAC,MAAsB,UAA0B;AAC/D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,cAAc,MAAM,KAAK;AAAA,MACxC,OAAO;AACL,aAAK,sBAAsB,IAAI,MAAM,KAAK;AAAA,MAC5C;AAAA,IACF;AAEA,2BAAkB,CAAC,SAAyB;AAC1C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,gBAAgB,IAAI;AAAA,MACnC,OAAO;AACL,aAAK,sBAAsB,OAAO,IAAI;AAAA,MACxC;AAAA,IACF;AAEA,6BAAoB,CAAC,MAAsB,UAA8B;AACvE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,kBAAkB,MAAM,KAAK;AAAA,MAC5C,OAAO;AACL,aAAK,0BAA0B,IAAI,MAAM,KAAK;AAAA,MAChD;AAAA,IACF;AAEA,+BAAsB,CAAC,SAAyB;AAC9C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,oBAAoB,IAAI;AAAA,MACvC,OAAO;AACL,aAAK,0BAA0B,OAAO,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,wBAAe,CAAC,MAAsB,UAA+B;AACnE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,aAAa,MAAM,KAAK;AAAA,MACvC,OAAO;AACL,aAAK,qBAAqB,IAAI,MAAM,KAAK;AAAA,MAC3C;AAAA,IACF;AAEA,0BAAiB,CAAC,SAA+B;AAC/C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,eAAe,IAAI;AAAA,MAClC,OAAO;AACL,aAAK,qBAAqB,OAAO,IAAI;AAAA,MACvC;AAAA,IACF;AAEA,wCAA+B,CAAC,MAAsB,UAAyC;AAC7F,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,6BAA6B,MAAM,KAAK;AAAA,MACvD,OAAO;AACL,aAAK,0BAA0B,IAAI,MAAM,KAAK;AAAA,MAChD;AAAA,IACF;AAEA,0CAAiC,CAAC,SAAyB;AACzD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,+BAA+B,IAAI;AAAA,MAClD,OAAO;AACL,aAAK,0BAA0B,OAAO,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,uCAA8B,CAAC,MAAsB,UAA8C;AACjG,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,4BAA4B,MAAM,KAAK;AAAA,MACtD,OAAO;AACL,aAAK,oCAAoC,IAAI,MAAM,KAAK;AAAA,MAC1D;AAAA,IACF;AAEA,yCAAgC,CAAC,SAA+B;AAC9D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,8BAA8B,IAAI;AAAA,MACjD,OAAO;AACL,aAAK,oCAAoC,OAAO,IAAI;AAAA,MACtD;AAAA,IACF;AAEA,kCAAyB,CAAC,MAAsB,UAAyC;AACvF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,uBAAuB,MAAM,KAAK;AAAA,MACjD,OAAO;AACL,aAAK,+BAA+B,IAAI,MAAM,KAAK;AAAA,MACrD;AAAA,IACF;AAEA,oCAA2B,CAAC,SAA+B;AACzD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,yBAAyB,IAAI;AAAA,MAC5C,OAAO;AACL,aAAK,+BAA+B,OAAO,IAAI;AAAA,MACjD;AAAA,IACF;AAEA,6BAAoB,CAAC,MAAsB,UAAoC;AAC7E,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,kBAAkB,MAAM,KAAK;AAAA,MAC5C,OAAO;AACL,aAAK,0BAA0B,IAAI,MAAM,KAAK;AAAA,MAChD;AAAA,IACF;AAEA,+BAAsB,CAAC,SAA+B;AACpD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,QAAQ,oBAAoB,IAAI;AAAA,MACvC,OAAO;AACL,aAAK,0BAA0B,OAAO,IAAI;AAAA,MAC5C;AAAA,IACF;AAEA,uBAAc,CAAC,UAA4B,YAAmD;AAC5F,UAAI,KAAK,SAAS;AAChB,eAAO,KAAK,QAAQ,YAAY,UAAU,OAAO;AAAA,MACnD,OAAO;AACL,cAAM,cAAc,MAAM;AAj0ChC,cAAAA,KAAA;AAk0CQ,gBAAM,iBAAiB,KAAK,yBAAyB,IAAI,QAAQ;AACjE,cAAI,iDAAgB,UAAU;AAC5B,qDAAAA,MAAA,eAAgB,UAAS,sBAAzB,wBAAAA;AACA,iBAAK,yBAAyB,OAAO,QAAQ;AAAA,UAC/C;AAAA,QACF;AACA,aAAK,yBAAyB,IAAI,UAAU,EAAE,SAAS,UAAU,EAAE,aAAa,mBAAmB,OAAU,EAAE,CAAC;AAChH,eAAO;AAAA,MACT;AAAA,IACF;AAEA,oBAAW,CAAC,OAAe;AACzB,YAAM,WAAW,MAAG;AA90CxB,YAAAA;AA80C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,SAAS;AAAA;AAC9C,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,aAAK,SAAS;AAAA,MAChB,OAAO;AACL,aAAK,oBAAoB,IAAI,YAAY,QAAQ;AAAA,MACnD;AAAA,IACF;AAEA,4BAAmB,UAAU,SAAgD;AAC3E,YAAM,WAAW,MAAG;AAv1CxB,YAAAA;AAu1C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,iBAAiB,GAAG;AAAA;AACzD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,oBAAoB,QAAQ;AACzD;AAAA,MACF;AAAA,IACF;AAEA,4BAAmB,OAAO,SAAiC;AACzD,YAAM,WAAW,MAAG;AAj2CxB,YAAAA;AAi2C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,iBAAiB;AAAA;AACtD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,oBAAoB,QAAQ;AACzD;AAAA,MACF;AAAA,IACF;AAEA,4BAAmB,OAAO,SAAiC;AACzD,YAAM,WAAW,MAAG;AA32CxB,YAAAA;AA22C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,iBAAiB;AAAA;AACtD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,oBAAoB,QAAQ;AACzD;AAAA,MACF;AAAA,IACF;AAEA,iCAAwB,YAAY;AAClC,YAAM,WAAW,MAAG;AAr3CxB,YAAAA;AAq3C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,yBAAyB,QAAQ;AAC9D;AAAA,MACF;AAAA,IACF;AAEA,iCAAwB,MAAY;AAClC,YAAM,WAAW,MAAG;AA/3CxB,YAAAA;AA+3C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,yBAAyB,QAAQ;AAAA,MAChE;AAAA,IACF;AAEA,iCAAwB,MAAM;AAC5B,YAAM,WAAW,MAAG;AAx4CxB,YAAAA;AAw4C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,iBAAS;AAAA,MACX,OAAO;AACL,aAAK,oBAAoB,IAAI,yBAAyB,QAAQ;AAAA,MAChE;AAAA,IACF;AAEA,kCAAyB,MAAM;AAC7B,YAAM,WAAW,MAAG;AAj5CxB,YAAAA;AAi5C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,iBAAS;AAAA,MACX,OAAO;AACL,aAAK,oBAAoB,IAAI,0BAA0B,QAAQ;AAAA,MACjE;AAAA,IACF;AAEA,yCAAgC,YAAY;AAC1C,YAAM,WAAW,MAAG;AA15CxB,YAAAA;AA05C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,iCAAiC,QAAQ;AACtE;AAAA,MACF;AAAA,IACF;AAEA,wCAA+B,YAAY;AACzC,YAAM,WAAW,MAAG;AAp6CxB,YAAAA;AAo6C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,gCAAgC,QAAQ;AACrE;AAAA,MACF;AAAA,IACF;AAEA,8BAAqB,YAAY;AAC/B,YAAM,WAAW,MAAG;AA96CxB,YAAAA;AA86C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AACrC,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,sBAAsB,QAAQ;AAC3D;AAAA,MACF;AAAA,IACF;AAEA,2BAAkB,OAAO,SAAgC;AACvD,YAAM,WAAW,MAAG;AAx7CxB,YAAAA;AAw7C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,gBAAgB;AAAA;AACrD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,mBAAmB,QAAQ;AACxD;AAAA,MACF;AAAA,IACF;AAEA,kCAAyB,OAAO,WAAqD;AAj8CvF,UAAAA;AAk8CI,YAAM,WAAW,MAAG;AAl8CxB,YAAAA;AAk8C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,uBAAuB;AAAA;AAC5D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAKA,MAAA,SAAS,MAAT,gBAAAA,IAAY,MAAM,MAAM;AAAA,QAQ7B;AAAA,MACF,OAAO;AACL,aAAK,oBAAoB,IAAI,0BAA0B,QAAQ;AAAA,MACjE;AAAA,IACF;AAEA,sCAA6B,OAC3B,YACA,WACkB;AAr9CtB,UAAAA;AAs9CI,YAAM,WAAW,MAAG;AAt9CxB,YAAAA;AAs9C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,2BAA2B,YAAY;AAAA;AAC5E,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAKA,MAAA,SAAS,MAAT,gBAAAA,IAAY,MAAM,MAAM;AAAA,QAQ7B;AAAA,MACF,OAAO;AACL,aAAK,oBAAoB,IAAI,8BAA8B,QAAQ;AAAA,MACrE;AAAA,IACF;AAEA,uCAA8B,OAAO,WAA8C;AACjF,YAAM,WAAW,MAAG;AAv+CxB,YAAAA;AAu+C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,4BAA4B;AAAA;AACjE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,+BAA+B,QAAQ;AAAA,MACtE;AAAA,IACF;AAEA,oCAA2B,OAAO,WAA4C;AAC5E,YAAM,WAAW,MAAG;AAh/CxB,YAAAA;AAg/C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,yBAAyB;AAAA;AAC9D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,4BAA4B,QAAQ;AAAA,MACnE;AAAA,IACF;AAEA,0CAAiC,OAAO,WAAkD;AACxF,YAAM,WAAW,MAAG;AAz/CxB,YAAAA;AAy/C2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,+BAA+B;AAAA;AACpE,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,kCAAkC,QAAQ;AAAA,MACzE;AAAA,IACF;AAEA,gCAAuB,OAAO,WAAwC;AACpE,YAAM,WAAW,MAAG;AAlgDxB,YAAAA;AAkgD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,qBAAqB;AAAA;AAC1D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,wBAAwB,QAAQ;AAAA,MAC/D;AAAA,IACF;AAEA,qCAA4B,OAAO,WAA6C;AAC9E,YAAM,WAAW,MAAG;AA3gDxB,YAAAA;AA2gD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,0BAA0B;AAAA;AAC/D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,6BAA6B,QAAQ;AAAA,MACpE;AAAA,IACF;AAEA,kCAAyB,OAAO,WAAyC;AACvE,YAAM,WAAW,MAAG;AAphDxB,YAAAA;AAohD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,uBAAuB;AAAA;AAC5D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,0BAA0B,QAAQ;AAAA,MACjE;AAAA,IACF;AAEA,gCAAuB,OAAO,WAA4C;AACxE,YAAM,WAAW,MAAG;AA7hDxB,YAAAA;AA6hD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,qBAAqB;AAAA;AAC1D,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,wBAAwB,QAAQ;AAAA,MAC/D;AAAA,IACF;AAEA,wCAA+B,OAAO,WAA+C;AACnF,YAAM,UAAU,MAAM,sBAAK,+CAAL;AACtB,aAAO,QAAQ,6BAA6B,MAAM;AAAA,IACpD;AAEA,mCAA0B,YAAY;AACpC,YAAM,UAAU,MAAM,sBAAK,+CAAL;AACtB,aAAO,QAAQ,wBAAwB;AAAA,IACzC;AAEA,8BAAqB,OAAO,WAA2E;AACrG,YAAM,WAAW,MAAG;AAhjDxB,YAAAA;AAgjD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,mBAAmB;AAAA;AACxD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,sBAAsB,QAAQ;AAAA,MAC7D;AAAA,IACF;AAEA,2BAAkB,OAAO,mBAAiE;AACxF,YAAM,WAAW,MAAG;AAzjDxB,YAAAA;AAyjD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,gBAAgB;AAAA;AACrD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,mBAAmB,QAAQ;AAAA,MAC1D;AAAA,IACF;AAEA,wBAAe,OAAO,WAAiE;AACrF,YAAM,WAAW,MAAG;AAlkDxB,YAAAA;AAkkD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,aAAa;AAAA;AAClD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,gBAAgB,QAAQ;AAAA,MACvD;AAAA,IACF;AAEA,mBAAU,UAAU,SAAuC;AACzD,YAAM,WAAW,MAAG;AA3kDxB,YAAAA;AA2kD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,QAAQ,GAAG;AAAA;AAChD,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,WAAW,QAAQ;AAAA,MAClD;AAAA,IACF;AAEA,wDAA+C,CAC7C,YAC8D;AAC9D,YAAM,WAAW,MAAG;AAtlDxB,YAAAA;AAslD2B,gBAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAc,6CAA6C;AAAA;AAClF,UAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,eAAO,SAAS;AAAA,MAClB,OAAO;AACL,aAAK,oBAAoB,IAAI,gDAAgD,QAAQ;AAAA,MACvF;AAAA,IACF;AA5lDF,QAAAA;AAwQI,uBAAK,iBAAkB,mCAAS;AAChC,uBAAK,WAAY,mCAAS;AAC1B,uBAAK,SAAU,mCAAS;AACxB,SAAK,UAAU;AACf,SAAK,SAAQ,mCAAS,UAAS;AAC/B,SAAK,WAAO,2BAAU,IAAI,YAAY;AACtC,uBAAK,aAAc,IAAI,WAAW,IAAI;AAEtC,QAAI,CAAC,KAAK,QAAQ,aAAa;AAC7B,WAAK,QAAQ,cAAc;AAAA,IAC7B;AACA,uBAAK,WAAU,KAAK,iCAAY,QAAQ,SAAS;AACjD,uBAAK,WAAU,cAAc,iCAAY,QAAQ,YAAW,mBAAK,SAAU,OAAO;AAKlF,QACE,mBAAK,sBACJA,MAAA,KAAK,QAAQ,iBAAb,gBAAAA,IAA2E,wBAAuB,cACnG,KAAK,QAAQ,OACb;AACA,WAAK,KAAK,kBAAkB;AAAA,IAC9B,WAAW,mBAAK,kBAAiB;AAC/B,WAAK,KAAK,eAAe;AAAA,IAC3B;AAAA,EACF;AAAA,EA9GA,IAAI,iBAAyB;AAC3B,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAAkB;AAxLxB,QAAAA;AAyLI,aAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc,WAAU;AAAA,EACjC;AAAA,EAEA,IAAI,SAAsB;AA5L5B,QAAAA;AAgMI,QAAI,CAAC,KAAK,SAAS;AACjB,aAAO,mBAAK;AAAA,IACd;AACA,aACEA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOb,KAAK,QAAQ,SAAS,UAAU;AAAA,EAErC;AAAA,EAIA,OAAO,oBAAoB,SAAiC;AAK1D,QACE,KAAC,2BAAU,KACX,CAAC,mBAAK,cACL,QAAQ,SAAS,mBAAK,WAAU,UAAU,QAAQ;AAAA,IAEnD,mBAAK,WAAU,mBAAmB,QAAQ,gBAC1C;AACA,yBAAK,WAAY,IAAI,iBAAgB,OAAO;AAAA,IAC9C;AACA,WAAO,mBAAK;AAAA,EACd;AAAA,EAEA,OAAO,gBAAgB;AACrB,uBAAK,WAAY;AAAA,EACnB;AAAA,EAEA,IAAI,SAAiB;AAGnB,QAAI,OAAO,WAAW,eAAe,OAAO,UAAU;AACpD,iBAAO,gCAAgB,mBAAK,UAAS,IAAI,IAAI,OAAO,SAAS,IAAI,GAAG,EAAE;AAAA,IACxE;AACA,QAAI,OAAO,mBAAK,aAAY,YAAY;AACtC,aAAO,aAAa,MAAM,6CAA6C;AAAA,IACzE;AACA,WAAO,mBAAK,YAAW;AAAA,EACzB;AAAA,EAEA,IAAI,WAAmB;AAGrB,QAAI,OAAO,WAAW,eAAe,OAAO,UAAU;AACpD,iBAAO,gCAAgB,mBAAK,YAAW,IAAI,IAAI,OAAO,SAAS,IAAI,GAAG,EAAE;AAAA,IAC1E;AACA,QAAI,OAAO,mBAAK,eAAc,YAAY;AACxC,aAAO,aAAa,MAAM,6CAA6C;AAAA,IACzE;AACA,WAAO,mBAAK,cAAa;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,qBAAmD,KAAqC;AAnQjG,QAAAA,KAAA;AAoQI,aAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc,yBAAuB,UAAK,YAAL,mBAAc,qBAAqB,OAAO,KAAK,QAAQ,GAAG;AAAA,EACxG;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCQ,oBAA0B;AAChC,UAAM,QAAQ,cAAyE,KAAK,QAAQ,KAAK,IACrG,IAAI,KAAK,QAAQ,MAAM,mBAAK,kBAAiB,EAAE,UAAU,KAAK,UAAU,QAAQ,KAAK,OAAO,CAAC,IAC7F,KAAK,QAAQ;AAEjB,QAAI,CAAC,OAAO;AACV,yBAAK,WAAU,KAAK,iCAAY,QAAQ,OAAO;AAC/C;AAAA,IACF;AAEA,UAAM,WAAW,MAAM;AACrB,WAAK,6BAA6B,KAAK;AAAA,IACzC;AAEA,QAAI,CAAC,MAAM,QAAQ;AACjB,YACG,KAAK,KAAK,OAAO,EACjB,KAAK,MAAM,SAAS,CAAC,EACrB,MAAM,SAAO;AACZ,YAAI,OAAS;AACX,kBAAQ,MAAM,0BAA0B,GAAG;AAAA,QAC7C;AACA,2BAAK,WAAU,KAAK,iCAAY,QAAQ,OAAO;AAC/C,aAAK,WAAW;AAAA,MAClB,CAAC;AAAA,IACL,OAAO;AACL,eAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,IAAI,cAAc;AAtUpB,QAAAA;AAuUI,aAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc,gBAAe,KAAK,QAAQ,eAAe;AAAA,EAClE;AAAA,EAEA,IAAI,eAAe;AA1UrB,QAAAA;AA2UI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAAA,EAEA,IAAI,cAAc;AA9UpB,QAAAA;AA+UI,aAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc,gBAAe;AAAA,EACtC;AAAA,EAEA,IAAI,oBAAoB;AAlV1B,QAAAA;AAmVI,aAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc,sBAAqB,KAAK,QAAQ,mBAAmB;AAAA,EAC5E;AAAA,EAEA,IAAI,yBAAyB;AAtV/B,QAAAA;AAwVI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAAA,EAEA,IAAI,cAAc;AAGhB,QAAI,OAAO,WAAW,eAAe,OAAO,UAAU;AACpD,iBAAO,gCAAgB,KAAK,QAAQ,aAAa,IAAI,IAAI,OAAO,SAAS,IAAI,GAAG,KAAK;AAAA,IACvF;AACA,QAAI,OAAO,KAAK,QAAQ,gBAAgB,YAAY;AAClD,aAAO,aAAa,MAAM,6CAA6C;AAAA,IACzE;AACA,WAAO;AAAA,EACT;AAAA,EAuIA,MAAM,iBAAgC;AA5exC,QAAAA;AA6eI,QAAI,KAAK,SAAS,aAAa,KAAK,QAAQ;AAC1C;AAAA,IACF;AAUA,QAAI,OAAO,WAAW,aAAa;AACjC,aAAO,0BAA0B,mBAAK;AACtC,aAAO,oBAAoB,KAAK;AAChC,aAAO,iBAAiB,KAAK;AAAA,IAC/B;AAEA,QAAI;AACF,YAAM,QAAQ,MAAM,KAAK,qBAAqB;AAE9C,UAAI,CAAC,MAAM,QAAQ;AACjB,aAAK,WAAW,KAAK;AAIrB,cAAM,eACH,KAAK,QAAQ,oBAAoB,SAAS,CAAC,KAAK,QAAQ,SAAU,CAAC,GAACA,MAAA,KAAK,QAAQ,OAAb,gBAAAA,IAAiB;AACxF,cAAM,UAAU,eAAe,MAAM,KAAK,qBAAqB,IAAI;AACnE,cAAM,MAAM,KAAK,EAAE,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,KAAK,QAAQ,IAAI,QAAQ,EAAE,CAAC;AAAA,MAC3E;AACA,UAAI,MAAM,QAAQ;AAChB,aAAK,6BAA6B,KAAK;AAAA,MACzC;AAAA,IACF,SAAS,KAAK;AACZ,YAAM,QAAQ;AACd,yBAAK,WAAU,KAAK,iCAAY,QAAQ,OAAO;AAC/C,cAAQ,MAAM,MAAM,SAAS,MAAM,WAAW,KAAK;AACnD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAc,uBAAqE;AAEjF,SAAK,CAAC,KAAK,QAAQ,SAAS,KAAK,QAAQ,0BAA0B,CAAC,uBAAuB;AAGzF,gBAAM,4CAAkB;AAAA,QACtB,GAAG,KAAK;AAAA,QACR,gBAAgB,mBAAK;AAAA,QACrB,UAAU,KAAK;AAAA,QACf,QAAQ,KAAK;AAAA,QACb,OAAO,KAAK,QAAQ;AAAA,MACtB,CAAC;AAAA,IACH;AAGA,QAAI,KAAK,QAAQ,SAAS,CAAC,KAAK,QAAQ,uBAAuB;AAC7D,aAAO,QAAQ,cAAyE,KAAK,QAAQ,KAAK,IACtG,IAAI,KAAK,QAAQ,MAAM,mBAAK,kBAAiB,EAAE,UAAU,KAAK,UAAU,QAAQ,KAAK,OAAO,CAAC,IAC7F,KAAK,QAAQ;AAAA,IACnB;AAEA,QAAI,CAAC,OAAO,OAAO;AAEjB,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACjF;AAEA,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAc,uBAAgE;AAE5E,UAAM,SAAU,KAAK,QAAwE;AAC7F,UAAM,iBAAiB,CAAC,CAAC,KAAK,QAAQ;AACtC,SAAI,iCAAQ,YAAW,CAAC,gBAAgB;AACtC,aAAO,OAAO;AAAA,IAChB;AAGA,SAAK,UAAU,KAAK,QAAQ,eAAe,UAAU,CAAC,gBAAgB;AACpE,aAAO;AAAA,IACT;AAEA,cAAM,4CAAkB;AAAA,MACtB,GAAG,KAAK;AAAA,MACR,gBAAgB,mBAAK;AAAA,MACrB,UAAU,KAAK;AAAA,MACf,QAAQ,KAAK;AAAA,MACb,OAAO,KAAK,QAAQ;AAAA,IACtB,CAAC;AAED,QAAI,CAAC,OAAO,wBAAwB;AAClC,YAAM,IAAI,MAAM,gEAAgE;AAAA,IAClF;AAEA,WAAO,OAAO;AAAA,EAChB;AAAA,EAsLA,IAAI,UAAU;AApwBhB,QAAAA;AAqwBI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAAA,EAEA,IAAI,SAAqC;AACvC,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IAEtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,UAAU;AACZ,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IACtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,OAAO;AACT,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IACtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,eAAe;AACjB,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IACtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,YAAY;AACd,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IACtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,yBAA8B;AAChC,QAAI,KAAK,SAAS;AAChB,aAAQ,KAAK,QAAgB;AAAA,IAE/B,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,aAAsB;AACxB,QAAI,KAAK,SAAS;AAChB,aAAO,KAAK,QAAQ;AAAA,IACtB,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAEA,IAAI,UAAwC;AAl0B9C,QAAAA;AAm0BI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAAA,EAEA,IAAI,mBAA0B;AAC5B,WAAO,KAAK,UAAU,KAAK,UAAU,KAAK,QAAQ,mBAAmB,mBAAK;AAAA,EAC5E;AAAA,EAEA,IAAI,UAAwC;AA10B9C,QAAAA;AA20BI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAAA,EAQA,6BAA6B,MAAiB;AAC5C,QAAI,KAAK,WAAW,+BAA+B,KAAK,SAAS;AAC/D,MAAC,KAAK,QAAgB,0BAA0B,IAAI;AAAA,IACtD,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AAAA,EAWA,IAAI,kCAAyD;AAr2B/D,QAAAA;AAs2BI,YAAOA,MAAA,KAAK,YAAL,gBAAAA,IAAc;AAAA,EACvB;AAsvBF;AA/6CE;AACA;AACA;AACA;AACA;AACA;AA4BO;AAhFF;AAsWL,oBAAe,WAAiD;AAC9D,SAAO,IAAI,QAA6C,aAAW;AAEjE,SAAK,YAAY,MAAM,QAAQ,KAAK,OAAQ,CAAC;AAAA,EAC/C,CAAC;AACH;AA3RA,aAhFW,kBAgFJ;AAhFF,IAAM,kBAAN;;;AE/HP,0BAAwD;AACxD,IAAAC,iBAAkB;AAElB,IAAAC,uBAKO;AAWP,SAAS,mCAA4C;AACnD,MAAI;AACF,eAAO,yCAAoB,eAAAC,QAAM,SAAS,8CAAmC;AAAA,EAC/E,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAMO,IAAM,qCAAqC,iCAAiC;;;AHtBnF,SAAS,kBAAkC,OAAgC;AACzE,QAAM,EAAE,cAAc,UAAU,GAAG,2BAA2B,IAAI;AAGlE,QAAM,gBAAgB,aAAa,0BAA+D;AAClG,QAAM,EAAE,iBAAiB,YAAY,IAAI,yBAAyB,aAAa;AAE/E,SACE,+BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MAEA,OAAO;AAAA,MACP;AAAA;AAAA,IAEC;AAAA,EACH;AAEJ;AAEA,IAAM,gBAAgB,6BAA6B,mBAAmB,iBAAiB,2BAA2B;AAElH,cAAc,cAAc;AAM5B,IAAM,2BAA2B,qCAAsC,WAAsB;AAE7F,IAAM,2BAA2B,CAAC,kBAA0C;AAK1E,QAAM,sBAAsB,eAAAC,QAAM;AAAA,IAChC,OAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,GAAG;AAAA,IACL;AAAA,IACA,CAAC,aAAa;AAAA,EAChB;AACA,QAAM,qBAAqB,eAAAA,QAAM,OAAO,gBAAgB,oBAAoB,mBAAmB,CAAC;AAChG,QAAM,CAAC,aAAa,cAAc,IAAI,eAAAA,QAAM,SAAS,mBAAmB,QAAQ,MAAM;AAEtF,iBAAAA,QAAM,UAAU,MAAM;AACpB,SAAK,mBAAmB,QAAQ,uBAAuB,EAAE,YAAY,cAAc,WAAW,CAAC;AAAA,EACjG,GAAG,CAAC,cAAc,UAAU,CAAC;AAE7B,iBAAAA,QAAM,UAAU,MAAM;AACpB,SAAK,mBAAmB,QAAQ,uBAAuB,EAAE,SAAS,cAAc,CAAC;AAAA,EACnF,GAAG,CAAC,cAAc,YAAY,CAAC;AAE/B,iBAAAA,QAAM,UAAU,MAAM;AACpB,uBAAmB,QAAQ,GAAG,UAAU,cAAc;AACtD,WAAO,MAAM;AACX,UAAI,mBAAmB,SAAS;AAC9B,2BAAmB,QAAQ,IAAI,UAAU,cAAc;AAAA,MACzD;AACA,sBAAgB,cAAc;AAAA,IAChC;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,iBAAiB,mBAAmB,SAAS,YAAY;AACpE;;;AIxEA,IAAAC,iBAAsC;;;ApCctC,sBAAyB;AAWzB,uBAAuB,EAAE,aAAa,eAAa,CAAC;AAAA,IACpD,6DAAkC,cAAY;","names":["import_loadClerkJsScript","import_utils","import_react","React","import_react","React","import_react","import_react","import_react","React","React","children","import_utils","import_react","_a","React","child","props","isReorderItem","isExternalLink","import_react","_a","import_react","React","_a","import_react","import_react","import_react","useSharedAssertWrappedByClerkProvider","React","_a","React","import_react","import_react","import_react","import_error","_a","getToken","import_react","React","import_telemetry","import_react","_a","import_react","_a","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","_a","React","import_react","import_browser","import_utils","import_browser","_a","import_react","import_versionCheck","React","React","React","import_react"]}