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