{"version":3,"sources":["../src/components/uiComponents.tsx","../src/utils/childrenUtils.tsx","../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"],"sourcesContent":["import type {\n  APIKeysProps,\n  CreateOrganizationProps,\n  GoogleOneTapProps,\n  OrganizationListProps,\n  OrganizationProfileProps,\n  OrganizationSwitcherProps,\n  PricingTableProps,\n  SignInProps,\n  SignUpProps,\n  TaskChooseOrganizationProps,\n  TaskResetPasswordProps,\n  TaskSetupMFAProps,\n  UserAvatarProps,\n  UserButtonProps,\n  UserProfileProps,\n  WaitlistProps,\n  Without,\n} from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { PropsWithChildren, ReactNode } from 'react';\nimport React, { createContext, createElement, useContext } from 'react';\n\nimport {\n  organizationProfileLinkRenderedError,\n  organizationProfilePageRenderedError,\n  userButtonMenuActionRenderedError,\n  userButtonMenuItemsRenderedError,\n  userButtonMenuLinkRenderedError,\n  userProfileLinkRenderedError,\n  userProfilePageRenderedError,\n} from '../errors/messages';\nimport type {\n  CustomPortalsRendererProps,\n  MountProps,\n  OrganizationProfileLinkProps,\n  OrganizationProfilePageProps,\n  UserButtonActionProps,\n  UserButtonLinkProps,\n  UserProfileLinkProps,\n  UserProfilePageProps,\n  WithClerkProp,\n} from '../types';\nimport {\n  useOrganizationProfileCustomPages,\n  useSanitizedChildren,\n  useUserButtonCustomMenuItems,\n  useUserProfileCustomPages,\n} from '../utils';\nimport { useWaitForComponentMount } from '../utils/useWaitForComponentMount';\nimport { ClerkHostRenderer } from './ClerkHostRenderer';\nimport { withClerk } from './withClerk';\n\ntype FallbackProp = {\n  /**\n   * An optional element to render while the component is mounting.\n   */\n  fallback?: ReactNode;\n};\n\ntype UserProfileExportType = typeof _UserProfile & {\n  Page: typeof UserProfilePage;\n  Link: typeof UserProfileLink;\n};\n\ntype UserButtonExportType = typeof _UserButton & {\n  UserProfilePage: typeof UserProfilePage;\n  UserProfileLink: typeof UserProfileLink;\n  MenuItems: typeof MenuItems;\n  Action: typeof MenuAction;\n  Link: typeof MenuLink;\n  /**\n   * The `<Outlet />` component can be used in conjunction with `asProvider` in order to control rendering\n   * of the `<UserButton />` without affecting its configuration or any custom pages that could be mounted\n   * @experimental This API is experimental and may change at any moment.\n   */\n  __experimental_Outlet: typeof UserButtonOutlet;\n};\n\ntype UserButtonPropsWithoutCustomPages = Without<\n  UserButtonProps,\n  'userProfileProps' | '__experimental_asStandalone'\n> & {\n  userProfileProps?: Pick<UserProfileProps, 'additionalOAuthScopes' | 'appearance' | 'apiKeysProps'>;\n  /**\n   * Adding `asProvider` will defer rendering until the `<Outlet />` component is mounted.\n   *\n   * @experimental This API is experimental and may change at any moment.\n   * @default undefined\n   */\n  __experimental_asProvider?: boolean;\n};\n\ntype OrganizationProfileExportType = typeof _OrganizationProfile & {\n  Page: typeof OrganizationProfilePage;\n  Link: typeof OrganizationProfileLink;\n};\n\ntype OrganizationSwitcherExportType = typeof _OrganizationSwitcher & {\n  OrganizationProfilePage: typeof OrganizationProfilePage;\n  OrganizationProfileLink: typeof OrganizationProfileLink;\n  /**\n   * The `<Outlet />` component can be used in conjunction with `asProvider` in order to control rendering\n   * of the `<OrganizationSwitcher />` without affecting its configuration or any custom pages that could be mounted\n   *\n   * @experimental This API is experimental and may change at any moment.\n   */\n  __experimental_Outlet: typeof OrganizationSwitcherOutlet;\n};\n\ntype OrganizationSwitcherPropsWithoutCustomPages = Without<\n  OrganizationSwitcherProps,\n  'organizationProfileProps' | '__experimental_asStandalone'\n> & {\n  organizationProfileProps?: Pick<OrganizationProfileProps, 'appearance'>;\n  /**\n   * Adding `asProvider` will defer rendering until the `<Outlet />` component is mounted.\n   *\n   * @experimental This API is experimental and may change at any moment.\n   * @default undefined\n   */\n  __experimental_asProvider?: boolean;\n};\n\nconst CustomPortalsRenderer = (props: CustomPortalsRendererProps) => {\n  return (\n    <>\n      {props?.customPagesPortals?.map((portal, index) => createElement(portal, { key: index }))}\n      {props?.customMenuItemsPortals?.map((portal, index) => createElement(portal, { key: index }))}\n    </>\n  );\n};\n\nexport const SignIn = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<SignInProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountSignIn}\n            unmount={clerk.unmountSignIn}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'SignIn', renderWhileLoading: true },\n);\n\nexport const SignUp = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<SignUpProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountSignUp}\n            unmount={clerk.unmountSignUp}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'SignUp', renderWhileLoading: true },\n);\n\nexport function UserProfilePage({ children }: PropsWithChildren<UserProfilePageProps>) {\n  logErrorInDevMode(userProfilePageRenderedError);\n  return <>{children}</>;\n}\n\nexport function UserProfileLink({ children }: PropsWithChildren<UserProfileLinkProps>) {\n  logErrorInDevMode(userProfileLinkRenderedError);\n  return <>{children}</>;\n}\n\nconst _UserProfile = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<Without<UserProfileProps, 'customPages'>> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children);\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        <ClerkHostRenderer\n          component={component}\n          mount={clerk.mountUserProfile}\n          unmount={clerk.unmountUserProfile}\n          updateProps={(clerk as any).__unstable__updateProps}\n          props={{ ...props, customPages }}\n          rootProps={rendererRootProps}\n        >\n          <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n        </ClerkHostRenderer>\n      </>\n    );\n  },\n  { component: 'UserProfile', renderWhileLoading: true },\n);\n\nexport const UserProfile: UserProfileExportType = Object.assign(_UserProfile, {\n  Page: UserProfilePage,\n  Link: UserProfileLink,\n});\n\nconst UserButtonContext = createContext<MountProps>({\n  mount: () => {},\n  unmount: () => {},\n  updateProps: () => {},\n});\n\nconst _UserButton = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<UserButtonPropsWithoutCustomPages> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const userProfileProps = { ...props.userProfileProps, customPages };\n    const { customMenuItems, customMenuItemsPortals } = useUserButtonCustomMenuItems(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const sanitizedChildren = useSanitizedChildren(props.children);\n\n    const passableProps = {\n      mount: clerk.mountUserButton,\n      unmount: clerk.unmountUserButton,\n      updateProps: (clerk as any).__unstable__updateProps,\n      props: { ...props, userProfileProps, customMenuItems },\n    };\n    const portalProps = {\n      customPagesPortals: customPagesPortals,\n      customMenuItemsPortals: customMenuItemsPortals,\n    };\n\n    return (\n      <UserButtonContext.Provider value={passableProps}>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            {...passableProps}\n            hideRootHtmlElement={!!props.__experimental_asProvider}\n            rootProps={rendererRootProps}\n          >\n            {/*This mimics the previous behaviour before asProvider existed*/}\n            {props.__experimental_asProvider ? sanitizedChildren : null}\n            <CustomPortalsRenderer {...portalProps} />\n          </ClerkHostRenderer>\n        )}\n      </UserButtonContext.Provider>\n    );\n  },\n  { component: 'UserButton', renderWhileLoading: true },\n);\n\nexport function MenuItems({ children }: PropsWithChildren) {\n  logErrorInDevMode(userButtonMenuItemsRenderedError);\n  return <>{children}</>;\n}\n\nexport function MenuAction({ children }: PropsWithChildren<UserButtonActionProps>) {\n  logErrorInDevMode(userButtonMenuActionRenderedError);\n  return <>{children}</>;\n}\n\nexport function MenuLink({ children }: PropsWithChildren<UserButtonLinkProps>) {\n  logErrorInDevMode(userButtonMenuLinkRenderedError);\n  return <>{children}</>;\n}\n\nexport function UserButtonOutlet(outletProps: Without<UserButtonProps, 'userProfileProps'>) {\n  const providerProps = useContext(UserButtonContext);\n\n  const portalProps = {\n    ...providerProps,\n    props: {\n      ...providerProps.props,\n      ...outletProps,\n    },\n  } satisfies MountProps;\n\n  return <ClerkHostRenderer {...portalProps} />;\n}\n\nexport const UserButton: UserButtonExportType = Object.assign(_UserButton, {\n  UserProfilePage,\n  UserProfileLink,\n  MenuItems,\n  Action: MenuAction,\n  Link: MenuLink,\n  __experimental_Outlet: UserButtonOutlet,\n});\n\nexport function OrganizationProfilePage({ children }: PropsWithChildren<OrganizationProfilePageProps>) {\n  logErrorInDevMode(organizationProfilePageRenderedError);\n  return <>{children}</>;\n}\n\nexport function OrganizationProfileLink({ children }: PropsWithChildren<OrganizationProfileLinkProps>) {\n  logErrorInDevMode(organizationProfileLinkRenderedError);\n  return <>{children}</>;\n}\n\nconst _OrganizationProfile = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<Without<OrganizationProfileProps, 'customPages'>> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children);\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountOrganizationProfile}\n            unmount={clerk.unmountOrganizationProfile}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={{ ...props, customPages }}\n            rootProps={rendererRootProps}\n          >\n            <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n          </ClerkHostRenderer>\n        )}\n      </>\n    );\n  },\n  { component: 'OrganizationProfile', renderWhileLoading: true },\n);\n\nexport const OrganizationProfile: OrganizationProfileExportType = Object.assign(_OrganizationProfile, {\n  Page: OrganizationProfilePage,\n  Link: OrganizationProfileLink,\n});\n\nexport const CreateOrganization = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<CreateOrganizationProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountCreateOrganization}\n            unmount={clerk.unmountCreateOrganization}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'CreateOrganization', renderWhileLoading: true },\n);\n\nconst OrganizationSwitcherContext = createContext<MountProps>({\n  mount: () => {},\n  unmount: () => {},\n  updateProps: () => {},\n});\n\nconst _OrganizationSwitcher = withClerk(\n  ({\n    clerk,\n    component,\n    fallback,\n    ...props\n  }: WithClerkProp<PropsWithChildren<OrganizationSwitcherPropsWithoutCustomPages> & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children, {\n      allowForAnyChildren: !!props.__experimental_asProvider,\n    });\n    const organizationProfileProps = { ...props.organizationProfileProps, customPages };\n    const sanitizedChildren = useSanitizedChildren(props.children);\n\n    const passableProps = {\n      mount: clerk.mountOrganizationSwitcher,\n      unmount: clerk.unmountOrganizationSwitcher,\n      updateProps: (clerk as any).__unstable__updateProps,\n      props: { ...props, organizationProfileProps },\n      rootProps: rendererRootProps,\n      component,\n    };\n\n    /**\n     * Prefetch organization list\n     */\n    clerk.__experimental_prefetchOrganizationSwitcher();\n\n    return (\n      <OrganizationSwitcherContext.Provider value={passableProps}>\n        <>\n          {shouldShowFallback && fallback}\n          {clerk.loaded && (\n            <ClerkHostRenderer\n              {...passableProps}\n              hideRootHtmlElement={!!props.__experimental_asProvider}\n            >\n              {/*This mimics the previous behaviour before asProvider existed*/}\n              {props.__experimental_asProvider ? sanitizedChildren : null}\n              <CustomPortalsRenderer customPagesPortals={customPagesPortals} />\n            </ClerkHostRenderer>\n          )}\n        </>\n      </OrganizationSwitcherContext.Provider>\n    );\n  },\n  { component: 'OrganizationSwitcher', renderWhileLoading: true },\n);\n\nexport function OrganizationSwitcherOutlet(\n  outletProps: Without<OrganizationSwitcherProps, 'organizationProfileProps'>,\n) {\n  const providerProps = useContext(OrganizationSwitcherContext);\n\n  const portalProps = {\n    ...providerProps,\n    props: {\n      ...providerProps.props,\n      ...outletProps,\n    },\n  } satisfies MountProps;\n\n  return <ClerkHostRenderer {...portalProps} />;\n}\n\nexport const OrganizationSwitcher: OrganizationSwitcherExportType = Object.assign(_OrganizationSwitcher, {\n  OrganizationProfilePage,\n  OrganizationProfileLink,\n  __experimental_Outlet: OrganizationSwitcherOutlet,\n});\n\nexport const OrganizationList = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<OrganizationListProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountOrganizationList}\n            unmount={clerk.unmountOrganizationList}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'OrganizationList', renderWhileLoading: true },\n);\n\nexport const GoogleOneTap = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<GoogleOneTapProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            open={clerk.openGoogleOneTap}\n            close={clerk.closeGoogleOneTap}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'GoogleOneTap', renderWhileLoading: true },\n);\n\nexport const Waitlist = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<WaitlistProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountWaitlist}\n            unmount={clerk.unmountWaitlist}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'Waitlist', renderWhileLoading: true },\n);\n\nexport const PricingTable = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<PricingTableProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component, {\n      // This attribute is added to the PricingTable root element after we've successfully fetched the plans asynchronously.\n      selector: '[data-component-status=\"ready\"]',\n    });\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountPricingTable}\n            unmount={clerk.unmountPricingTable}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'PricingTable', renderWhileLoading: true },\n);\n\n/**\n * @experimental This component is in early access and may change in future releases.\n */\nexport const APIKeys = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<APIKeysProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountAPIKeys}\n            unmount={clerk.unmountAPIKeys}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'ApiKeys', renderWhileLoading: true },\n);\n\nexport const UserAvatar = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<UserAvatarProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountUserAvatar}\n            unmount={clerk.unmountUserAvatar}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'UserAvatar', renderWhileLoading: true },\n);\n\nexport const TaskChooseOrganization = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskChooseOrganizationProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskChooseOrganization}\n            unmount={clerk.unmountTaskChooseOrganization}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskChooseOrganization', renderWhileLoading: true },\n);\n\nexport const TaskResetPassword = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskResetPasswordProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskResetPassword}\n            unmount={clerk.unmountTaskResetPassword}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskResetPassword', renderWhileLoading: true },\n);\n\nexport const TaskSetupMFA = withClerk(\n  ({ clerk, component, fallback, ...props }: WithClerkProp<TaskSetupMFAProps & FallbackProp>) => {\n    const mountingStatus = useWaitForComponentMount(component);\n    const shouldShowFallback = mountingStatus === 'rendering' || !clerk.loaded;\n\n    const rendererRootProps = {\n      ...(shouldShowFallback && fallback && { style: { display: 'none' } }),\n    };\n\n    return (\n      <>\n        {shouldShowFallback && fallback}\n        {clerk.loaded && (\n          <ClerkHostRenderer\n            component={component}\n            mount={clerk.mountTaskSetupMFA}\n            unmount={clerk.unmountTaskSetupMFA}\n            updateProps={(clerk as any).__unstable__updateProps}\n            props={props}\n            rootProps={rendererRootProps}\n          />\n        )}\n      </>\n    );\n  },\n  { component: 'TaskSetupMFA', renderWhileLoading: true },\n);\n","import React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\nimport { multipleChildrenInButtonComponent } from '../errors/messages';\n\nexport const assertSingleChild =\n  (children: React.ReactNode) =>\n  (\n    name:\n      | 'SignInButton'\n      | 'SignUpButton'\n      | 'SignOutButton'\n      | 'SignInWithMetamaskButton'\n      | 'CheckoutButton'\n      | 'SubscriptionDetailsButton'\n      | 'PlanDetailsButton',\n  ) => {\n    try {\n      return React.Children.only(children);\n    } catch {\n      return errorThrower.throw(multipleChildrenInButtonComponent(name));\n    }\n  };\n\nexport const normalizeWithDefaultValue = (children: React.ReactNode | undefined, defaultText: string) => {\n  if (!children) {\n    children = defaultText;\n  }\n  if (typeof children === 'string') {\n    children = <button>{children}</button>;\n  }\n  return children;\n};\n\nexport const safeExecute =\n  (cb: unknown) =>\n  (...args: any) => {\n    if (cb && typeof cb === 'function') {\n      return cb(...args);\n    }\n  };\n","export function isConstructor<T>(f: any): f is T {\n  return typeof f === 'function';\n}\n","import React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\n\nconst counts = new Map<string, number>();\n\nexport function useMaxAllowedInstancesGuard(name: string, error: string, maxCount = 1): void {\n  React.useEffect(() => {\n    const count = counts.get(name) || 0;\n    if (count == maxCount) {\n      return errorThrower.throw(error);\n    }\n    counts.set(name, count + 1);\n\n    return () => {\n      counts.set(name, (counts.get(name) || 1) - 1);\n    };\n  }, []);\n}\n\nexport function withMaxAllowedInstancesGuard<P>(\n  WrappedComponent: React.ComponentType<P>,\n  name: string,\n  error: string,\n): React.ComponentType<P> {\n  const displayName = WrappedComponent.displayName || WrappedComponent.name || name || 'Component';\n  const Hoc = (props: P) => {\n    useMaxAllowedInstancesGuard(name, error);\n    return <WrappedComponent {...(props as any)} />;\n  };\n  Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`;\n  return Hoc;\n}\n","import type React from 'react';\nimport { useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nexport type UseCustomElementPortalParams = {\n  component: React.ReactNode;\n  id: number;\n};\n\nexport type UseCustomElementPortalReturn = {\n  portal: () => React.JSX.Element;\n  mount: (node: Element) => void;\n  unmount: () => void;\n  id: number;\n};\n\n// This function takes a component as prop, and returns functions that mount and unmount\n// the given component into a given node\nexport const useCustomElementPortal = (elements: UseCustomElementPortalParams[]) => {\n  const [nodeMap, setNodeMap] = useState<Map<string, Element | null>>(new Map());\n\n  return elements.map(el => ({\n    id: el.id,\n    mount: (node: Element) => setNodeMap(prev => new Map(prev).set(String(el.id), node)),\n    unmount: () =>\n      setNodeMap(prev => {\n        const newMap = new Map(prev);\n        newMap.set(String(el.id), null);\n        return newMap;\n      }),\n    portal: () => {\n      const node = nodeMap.get(String(el.id));\n      return node ? createPortal(el.component, node) : null;\n    },\n  }));\n};\n","import type { CustomPage } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport {\n  MenuItems,\n  OrganizationProfileLink,\n  OrganizationProfilePage,\n  UserProfileLink,\n  UserProfilePage,\n} from '../components/uiComponents';\nimport { customLinkWrongProps, customPagesIgnoredComponent, customPageWrongProps } from '../errors/messages';\nimport type { UserProfilePageProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport type { UseCustomElementPortalParams, UseCustomElementPortalReturn } from './useCustomElementPortal';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserProfileCustomPages = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: UseCustomPagesOptions,\n) => {\n  const reorderItemsLabels = ['account', 'security', 'billing', 'apiKeys'];\n  return useCustomPages(\n    {\n      children,\n      reorderItemsLabels,\n      LinkComponent: UserProfileLink,\n      PageComponent: UserProfilePage,\n      MenuItemsComponent: MenuItems,\n      componentName: 'UserProfile',\n    },\n    options,\n  );\n};\n\nexport const useOrganizationProfileCustomPages = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: UseCustomPagesOptions,\n) => {\n  const reorderItemsLabels = ['general', 'members', 'billing', 'apiKeys'];\n  return useCustomPages(\n    {\n      children,\n      reorderItemsLabels,\n      LinkComponent: OrganizationProfileLink,\n      PageComponent: OrganizationProfilePage,\n      componentName: 'OrganizationProfile',\n    },\n    options,\n  );\n};\n\ntype UseCustomPagesParams = {\n  children: React.ReactNode | React.ReactNode[];\n  LinkComponent: any;\n  PageComponent: any;\n  MenuItemsComponent?: any;\n  reorderItemsLabels: string[];\n  componentName: string;\n};\n\ntype UseCustomPagesOptions = {\n  allowForAnyChildren: boolean;\n};\n\ntype CustomPageWithIdType = UserProfilePageProps & { children?: React.ReactNode };\n\n/**\n * Exclude any children that is used for identifying Custom Pages or Custom Items.\n * Passing:\n * ```tsx\n *  <UserProfile.Page/>\n *  <OrganizationProfile.Link/>\n *  <MyComponent>\n *  <UserButton.MenuItems/>\n * ```\n * Gives back\n * ```tsx\n * <MyComponent>\n * ````\n */\nexport const useSanitizedChildren = (children: React.ReactNode) => {\n  const sanitizedChildren: React.ReactNode[] = [];\n\n  const excludedComponents: any[] = [\n    OrganizationProfileLink,\n    OrganizationProfilePage,\n    MenuItems,\n    UserProfilePage,\n    UserProfileLink,\n  ];\n\n  React.Children.forEach(children, child => {\n    if (!excludedComponents.some(component => isThatComponent(child, component))) {\n      sanitizedChildren.push(child);\n    }\n  });\n\n  return sanitizedChildren;\n};\n\nconst useCustomPages = (params: UseCustomPagesParams, options?: UseCustomPagesOptions) => {\n  const { children, LinkComponent, PageComponent, MenuItemsComponent, reorderItemsLabels, componentName } = params;\n  const { allowForAnyChildren = false } = options || {};\n  const validChildren: CustomPageWithIdType[] = [];\n\n  React.Children.forEach(children, child => {\n    if (\n      !isThatComponent(child, PageComponent) &&\n      !isThatComponent(child, LinkComponent) &&\n      !isThatComponent(child, MenuItemsComponent)\n    ) {\n      if (child && !allowForAnyChildren) {\n        logErrorInDevMode(customPagesIgnoredComponent(componentName));\n      }\n      return;\n    }\n\n    const { props } = child as ReactElement;\n\n    const { children, label, url, labelIcon } = props;\n\n    if (isThatComponent(child, PageComponent)) {\n      if (isReorderItem(props, reorderItemsLabels)) {\n        // This is a reordering item\n        validChildren.push({ label });\n      } else if (isCustomPage(props)) {\n        // this is a custom page\n        validChildren.push({ label, labelIcon, children, url });\n      } else {\n        logErrorInDevMode(customPageWrongProps(componentName));\n        return;\n      }\n    }\n\n    if (isThatComponent(child, LinkComponent)) {\n      if (isExternalLink(props)) {\n        // This is an external link\n        validChildren.push({ label, labelIcon, url });\n      } else {\n        logErrorInDevMode(customLinkWrongProps(componentName));\n        return;\n      }\n    }\n  });\n\n  const customPageContents: UseCustomElementPortalParams[] = [];\n  const customPageLabelIcons: UseCustomElementPortalParams[] = [];\n  const customLinkLabelIcons: UseCustomElementPortalParams[] = [];\n\n  validChildren.forEach((cp, index) => {\n    if (isCustomPage(cp)) {\n      customPageContents.push({ component: cp.children, id: index });\n      customPageLabelIcons.push({ component: cp.labelIcon, id: index });\n      return;\n    }\n    if (isExternalLink(cp)) {\n      customLinkLabelIcons.push({ component: cp.labelIcon, id: index });\n    }\n  });\n\n  const customPageContentsPortals = useCustomElementPortal(customPageContents);\n  const customPageLabelIconsPortals = useCustomElementPortal(customPageLabelIcons);\n  const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons);\n\n  const customPages: CustomPage[] = [];\n  const customPagesPortals: React.ComponentType[] = [];\n\n  validChildren.forEach((cp, index) => {\n    if (isReorderItem(cp, reorderItemsLabels)) {\n      customPages.push({ label: cp.label });\n      return;\n    }\n    if (isCustomPage(cp)) {\n      const {\n        portal: contentPortal,\n        mount,\n        unmount,\n      } = customPageContentsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      const {\n        portal: labelPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customPageLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customPages.push({ label: cp.label, url: cp.url, mount, unmount, mountIcon, unmountIcon });\n      customPagesPortals.push(contentPortal);\n      customPagesPortals.push(labelPortal);\n      return;\n    }\n    if (isExternalLink(cp)) {\n      const {\n        portal: labelPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customLinkLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customPages.push({ label: cp.label, url: cp.url, mountIcon, unmountIcon });\n      customPagesPortals.push(labelPortal);\n      return;\n    }\n  });\n\n  return { customPages, customPagesPortals };\n};\n\nconst isReorderItem = (childProps: any, validItems: string[]): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !children && !url && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomPage = (childProps: any): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !!children && !!url && !!labelIcon && !!label;\n};\n\nconst isExternalLink = (childProps: any): boolean => {\n  const { children, label, url, labelIcon } = childProps;\n  return !children && !!url && !!labelIcon && !!label;\n};\n","import React from 'react';\n\nexport const isThatComponent = (v: any, component: React.ReactNode): v is React.ReactNode => {\n  return !!v && React.isValidElement(v) && (v as React.ReactElement)?.type === component;\n};\n","import type { CustomMenuItem } from '@clerk/shared/types';\nimport { logErrorInDevMode } from '@clerk/shared/utils';\nimport type { ReactElement } from 'react';\nimport React from 'react';\n\nimport { MenuAction, MenuItems, MenuLink, UserProfileLink, UserProfilePage } from '../components/uiComponents';\nimport {\n  customMenuItemsIgnoredComponent,\n  userButtonIgnoredComponent,\n  userButtonMenuItemLinkWrongProps,\n  userButtonMenuItemsActionWrongsProps,\n} from '../errors/messages';\nimport type { UserButtonActionProps, UserButtonLinkProps } from '../types';\nimport { isThatComponent } from './componentValidation';\nimport type { UseCustomElementPortalParams, UseCustomElementPortalReturn } from './useCustomElementPortal';\nimport { useCustomElementPortal } from './useCustomElementPortal';\n\nexport const useUserButtonCustomMenuItems = (\n  children: React.ReactNode | React.ReactNode[],\n  options?: { allowForAnyChildren?: boolean },\n) => {\n  const reorderItemsLabels = ['manageAccount', 'signOut'];\n  return useCustomMenuItems({\n    children,\n    reorderItemsLabels,\n    MenuItemsComponent: MenuItems,\n    MenuActionComponent: MenuAction,\n    MenuLinkComponent: MenuLink,\n    UserProfileLinkComponent: UserProfileLink,\n    UserProfilePageComponent: UserProfilePage,\n    allowForAnyChildren: options?.allowForAnyChildren ?? false,\n  });\n};\n\ntype UseCustomMenuItemsParams = {\n  children: React.ReactNode | React.ReactNode[];\n  MenuItemsComponent?: any;\n  MenuActionComponent?: any;\n  MenuLinkComponent?: any;\n  UserProfileLinkComponent?: any;\n  UserProfilePageComponent?: any;\n  reorderItemsLabels: string[];\n  allowForAnyChildren?: boolean;\n};\n\ntype CustomMenuItemType = UserButtonActionProps | UserButtonLinkProps;\n\nconst useCustomMenuItems = ({\n  children,\n  MenuItemsComponent,\n  MenuActionComponent,\n  MenuLinkComponent,\n  UserProfileLinkComponent,\n  UserProfilePageComponent,\n  reorderItemsLabels,\n  allowForAnyChildren = false,\n}: UseCustomMenuItemsParams) => {\n  const validChildren: CustomMenuItemType[] = [];\n  const customMenuItems: CustomMenuItem[] = [];\n  const customMenuItemsPortals: React.ComponentType[] = [];\n\n  React.Children.forEach(children, child => {\n    if (\n      !isThatComponent(child, MenuItemsComponent) &&\n      !isThatComponent(child, UserProfileLinkComponent) &&\n      !isThatComponent(child, UserProfilePageComponent)\n    ) {\n      if (child && !allowForAnyChildren) {\n        logErrorInDevMode(userButtonIgnoredComponent);\n      }\n      return;\n    }\n\n    // Ignore UserProfileLinkComponent and UserProfilePageComponent\n    if (isThatComponent(child, UserProfileLinkComponent) || isThatComponent(child, UserProfilePageComponent)) {\n      return;\n    }\n\n    // Menu items children\n    const { props } = child as ReactElement;\n\n    React.Children.forEach(props.children, child => {\n      if (!isThatComponent(child, MenuActionComponent) && !isThatComponent(child, MenuLinkComponent)) {\n        if (child) {\n          logErrorInDevMode(customMenuItemsIgnoredComponent);\n        }\n\n        return;\n      }\n\n      const { props } = child as ReactElement;\n\n      const { label, labelIcon, href, onClick, open } = props;\n\n      if (isThatComponent(child, MenuActionComponent)) {\n        if (isReorderItem(props, reorderItemsLabels)) {\n          // This is a reordering item\n          validChildren.push({ label });\n        } else if (isCustomMenuItem(props)) {\n          const baseItem = {\n            label,\n            labelIcon,\n          };\n\n          if (onClick !== undefined) {\n            validChildren.push({\n              ...baseItem,\n              onClick,\n            });\n          } else if (open !== undefined) {\n            validChildren.push({\n              ...baseItem,\n              open: open.startsWith('/') ? open : `/${open}`,\n            });\n          } else {\n            // Handle the case where neither onClick nor open is defined\n            logErrorInDevMode('Custom menu item must have either onClick or open property');\n            return;\n          }\n        } else {\n          logErrorInDevMode(userButtonMenuItemsActionWrongsProps);\n          return;\n        }\n      }\n\n      if (isThatComponent(child, MenuLinkComponent)) {\n        if (isExternalLink(props)) {\n          validChildren.push({ label, labelIcon, href });\n        } else {\n          logErrorInDevMode(userButtonMenuItemLinkWrongProps);\n          return;\n        }\n      }\n    });\n  });\n\n  const customMenuItemLabelIcons: UseCustomElementPortalParams[] = [];\n  const customLinkLabelIcons: UseCustomElementPortalParams[] = [];\n  validChildren.forEach((mi, index) => {\n    if (isCustomMenuItem(mi)) {\n      customMenuItemLabelIcons.push({ component: mi.labelIcon, id: index });\n    }\n    if (isExternalLink(mi)) {\n      customLinkLabelIcons.push({ component: mi.labelIcon, id: index });\n    }\n  });\n\n  const customMenuItemLabelIconsPortals = useCustomElementPortal(customMenuItemLabelIcons);\n  const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons);\n\n  validChildren.forEach((mi, index) => {\n    if (isReorderItem(mi, reorderItemsLabels)) {\n      customMenuItems.push({\n        label: mi.label,\n      });\n    }\n    if (isCustomMenuItem(mi)) {\n      const {\n        portal: iconPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customMenuItemLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      const menuItem: CustomMenuItem = {\n        label: mi.label,\n        mountIcon,\n        unmountIcon,\n      };\n\n      if ('onClick' in mi) {\n        menuItem.onClick = mi.onClick;\n      } else if ('open' in mi) {\n        menuItem.open = mi.open;\n      }\n      customMenuItems.push(menuItem);\n      customMenuItemsPortals.push(iconPortal);\n    }\n    if (isExternalLink(mi)) {\n      const {\n        portal: iconPortal,\n        mount: mountIcon,\n        unmount: unmountIcon,\n      } = customLinkLabelIconsPortals.find(p => p.id === index) as UseCustomElementPortalReturn;\n      customMenuItems.push({\n        label: mi.label,\n        href: mi.href,\n        mountIcon,\n        unmountIcon,\n      });\n      customMenuItemsPortals.push(iconPortal);\n    }\n  });\n\n  return { customMenuItems, customMenuItemsPortals };\n};\n\nconst isReorderItem = (childProps: any, validItems: string[]): boolean => {\n  const { children, label, onClick, labelIcon } = childProps;\n  return !children && !onClick && !labelIcon && validItems.some(v => v === label);\n};\n\nconst isCustomMenuItem = (childProps: any): childProps is UserButtonActionProps => {\n  const { label, labelIcon, onClick, open } = childProps;\n  return !!labelIcon && !!label && (typeof onClick === 'function' || typeof open === 'string');\n};\n\nconst isExternalLink = (childProps: any): childProps is UserButtonLinkProps => {\n  const { label, href, labelIcon } = childProps;\n  return !!href && !!labelIcon && !!label;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nconst createAwaitableMutationObserver = (\n  globalOptions: MutationObserverInit & {\n    isReady: (el: HTMLElement | null, selector: string) => boolean;\n  },\n) => {\n  const isReady = globalOptions?.isReady;\n\n  return (options: { selector: string; root?: HTMLElement | null; timeout?: number }) =>\n    new Promise<void>((resolve, reject) => {\n      const { root = document?.body, selector, timeout = 0 } = options;\n\n      if (!root) {\n        reject(new Error('No root element provided'));\n        return;\n      }\n\n      let elementToWatch: HTMLElement | null = root;\n      if (selector) {\n        elementToWatch = root?.querySelector(selector);\n      }\n\n      // Initial readiness check\n      if (isReady(elementToWatch, selector)) {\n        resolve();\n        return;\n      }\n\n      // Set up a MutationObserver to detect when the element has children\n      const observer = new MutationObserver(mutationsList => {\n        for (const mutation of mutationsList) {\n          if (!elementToWatch && selector) {\n            elementToWatch = root?.querySelector(selector);\n          }\n\n          if (\n            (globalOptions.childList && mutation.type === 'childList') ||\n            (globalOptions.attributes && mutation.type === 'attributes')\n          ) {\n            if (isReady(elementToWatch, selector)) {\n              observer.disconnect();\n              resolve();\n              return;\n            }\n          }\n        }\n      });\n\n      observer.observe(root, globalOptions);\n\n      // Set up an optional timeout to reject the promise if the element never gets child nodes\n      if (timeout > 0) {\n        setTimeout(() => {\n          observer.disconnect();\n          reject(new Error(`Timeout waiting for ${selector}`));\n        }, timeout);\n      }\n    });\n};\n\nconst waitForElementChildren = createAwaitableMutationObserver({\n  childList: true,\n  subtree: true,\n  isReady: (el, selector) => !!el?.childElementCount && el?.matches?.(selector) && el.childElementCount > 0,\n});\n\n/**\n * Detect when a Clerk component has mounted by watching DOM updates to an element with a `data-clerk-component=\"${component}\"` property.\n */\nexport function useWaitForComponentMount(\n  component?: string,\n  options?: { selector: string },\n): 'rendering' | 'rendered' | 'error' {\n  const watcherRef = useRef<Promise<void>>();\n  const [status, setStatus] = useState<'rendering' | 'rendered' | 'error'>('rendering');\n\n  useEffect(() => {\n    if (!component) {\n      throw new Error('Clerk: no component name provided, unable to detect mount.');\n    }\n\n    if (typeof window !== 'undefined' && !watcherRef.current) {\n      const defaultSelector = `[data-clerk-component=\"${component}\"]`;\n      const selector = options?.selector;\n      watcherRef.current = waitForElementChildren({\n        selector: selector\n          ? // Allows for `[data-clerk-component=\"xxxx\"][data-some-attribute=\"123\"] .my-class`\n            defaultSelector + selector\n          : defaultSelector,\n      })\n        .then(() => {\n          setStatus('rendered');\n        })\n        .catch(() => {\n          setStatus('error');\n        });\n    }\n  }, [component, options?.selector]);\n\n  return status;\n}\n","import { without } from '@clerk/shared/object';\nimport { isDeeplyEqual } from '@clerk/shared/react';\nimport type { PropsWithChildren } from 'react';\nimport React from 'react';\n\nimport type { MountProps, OpenProps } from '../types';\n\nconst isMountProps = (props: any): props is MountProps => {\n  return 'mount' in props;\n};\n\nconst isOpenProps = (props: any): props is OpenProps => {\n  return 'open' in props;\n};\n\nconst stripMenuItemIconHandlers = (\n  menuItems?: Array<{\n    mountIcon?: (el: HTMLDivElement) => void;\n    unmountIcon?: (el: HTMLDivElement) => void;\n    [key: string]: any;\n  }>,\n) => {\n  return menuItems?.map(({ mountIcon, unmountIcon, ...rest }) => rest);\n};\n\n// README: <ClerkHostRenderer/> should be a class pure component in order for mount and unmount\n// lifecycle props to be invoked correctly. Replacing the class component with a\n// functional component wrapped with a React.memo is not identical to the original\n// class implementation due to React intricacies such as the useEffect’s cleanup\n// seems to run AFTER unmount, while componentWillUnmount runs BEFORE.\n\n// More information can be found at https://clerk.slack.com/archives/C015S0BGH8R/p1624891993016300\n\n// The function Portal implementation is commented out for future reference.\n\n// const Portal = React.memo(({ props, mount, unmount }: MountProps) => {\n//   const portalRef = React.createRef<HTMLDivElement>();\n\n//   useEffect(() => {\n//     if (portalRef.current) {\n//       mount(portalRef.current, props);\n//     }\n//     return () => {\n//       if (portalRef.current) {\n//         unmount(portalRef.current);\n//       }\n//     };\n//   }, []);\n\n//   return <div ref={portalRef} />;\n// });\n\n// Portal.displayName = 'ClerkPortal';\n\n/**\n * Used to orchestrate mounting of Clerk components in a host React application.\n * Components are rendered into a specific DOM node using mount/unmount methods provided by the Clerk class.\n */\nexport class ClerkHostRenderer extends React.PureComponent<\n  PropsWithChildren<\n    (MountProps | OpenProps) & {\n      component?: string;\n      hideRootHtmlElement?: boolean;\n      rootProps?: JSX.IntrinsicElements['div'];\n    }\n  >\n> {\n  private rootRef = React.createRef<HTMLDivElement>();\n\n  componentDidUpdate(_prevProps: Readonly<MountProps | OpenProps>) {\n    if (!isMountProps(_prevProps) || !isMountProps(this.props)) {\n      return;\n    }\n\n    // Remove children and customPages from props before comparing\n    // children might hold circular references which deepEqual can't handle\n    // and the implementation of customPages relies on props getting new references\n    const prevProps = without(_prevProps.props, 'customPages', 'customMenuItems', 'children');\n    const newProps = without(this.props.props, 'customPages', 'customMenuItems', 'children');\n\n    // instead, we simply use the length of customPages to determine if it changed or not\n    const customPagesChanged = prevProps.customPages?.length !== newProps.customPages?.length;\n    const customMenuItemsChanged = prevProps.customMenuItems?.length !== newProps.customMenuItems?.length;\n\n    // Strip out mountIcon and unmountIcon handlers since they're always generated as new function references,\n    // which would cause unnecessary re-renders in deep equality checks\n    const prevMenuItemsWithoutHandlers = stripMenuItemIconHandlers(_prevProps.props.customMenuItems);\n    const newMenuItemsWithoutHandlers = stripMenuItemIconHandlers(this.props.props.customMenuItems);\n\n    if (\n      !isDeeplyEqual(prevProps, newProps) ||\n      !isDeeplyEqual(prevMenuItemsWithoutHandlers, newMenuItemsWithoutHandlers) ||\n      customPagesChanged ||\n      customMenuItemsChanged\n    ) {\n      if (this.rootRef.current) {\n        this.props.updateProps({ node: this.rootRef.current, props: this.props.props });\n      }\n    }\n  }\n\n  componentDidMount() {\n    if (this.rootRef.current) {\n      if (isMountProps(this.props)) {\n        this.props.mount(this.rootRef.current, this.props.props);\n      }\n\n      if (isOpenProps(this.props)) {\n        this.props.open(this.props.props);\n      }\n    }\n  }\n\n  componentWillUnmount() {\n    if (this.rootRef.current) {\n      if (isMountProps(this.props)) {\n        this.props.unmount(this.rootRef.current);\n      }\n      if (isOpenProps(this.props)) {\n        this.props.close();\n      }\n    }\n  }\n\n  render() {\n    const { hideRootHtmlElement = false } = this.props;\n    const rootAttributes = {\n      ref: this.rootRef,\n      ...this.props.rootProps,\n      ...(this.props.component && { 'data-clerk-component': this.props.component }),\n    };\n\n    return (\n      <>\n        {!hideRootHtmlElement && <div {...rootAttributes} />}\n        {this.props.children}\n      </>\n    );\n  }\n}\n"],"mappings":"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","names":["logErrorInDevMode","React","React","React","React","React","React","children","logErrorInDevMode","React","React","logErrorInDevMode","child","props","isReorderItem","isExternalLink","useState","React","React","logErrorInDevMode"]}