@clerk/react 6.0.0-snapshot.v20260121133427 → 6.0.0-snapshot.v20260122040150

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.
@@ -6,6 +6,9 @@ import {
6
6
  useAssertWrappedByClerkProvider,
7
7
  useIsomorphicClerkContext
8
8
  } from "./chunk-RXA3BK2T.mjs";
9
+ import {
10
+ define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default
11
+ } from "./chunk-E5QRIS4Z.mjs";
9
12
 
10
13
  // src/components/controlComponents.tsx
11
14
  import { deprecated } from "@clerk/shared/deprecated";
@@ -137,6 +140,49 @@ var MultisessionAppSupport = ({ children }) => {
137
140
  return /* @__PURE__ */ React.createElement(React.Fragment, { key: session ? session.id : "no-users" }, children);
138
141
  };
139
142
 
143
+ // src/utils/versionCheck.ts
144
+ import React2 from "react";
145
+ function parseVersion(version) {
146
+ const match = version.match(/^(\d+)\.(\d+)\.(\d+)/);
147
+ if (!match) {
148
+ return null;
149
+ }
150
+ const [, majorStr, minorStr, patchStr] = match;
151
+ return {
152
+ major: parseInt(majorStr, 10),
153
+ minor: parseInt(minorStr, 10),
154
+ patch: parseInt(patchStr, 10)
155
+ };
156
+ }
157
+ function checkVersionAgainstBounds(version, bounds) {
158
+ const { major, minor, patch } = version;
159
+ return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {
160
+ if (major !== bMajor) {
161
+ return false;
162
+ }
163
+ if (maxMinor === -1) {
164
+ return minor > minMinor || minor === minMinor && patch >= minPatch;
165
+ } else {
166
+ return minor === maxMinor && patch >= minPatch;
167
+ }
168
+ });
169
+ }
170
+ function isVersionCompatible(version, bounds) {
171
+ const parsed = parseVersion(version);
172
+ if (!parsed) {
173
+ return false;
174
+ }
175
+ return checkVersionAgainstBounds(parsed, bounds);
176
+ }
177
+ function computeReactVersionCompatibility() {
178
+ try {
179
+ return isVersionCompatible(React2.version, define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default);
180
+ } catch {
181
+ return false;
182
+ }
183
+ }
184
+ var IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();
185
+
140
186
  export {
141
187
  ClerkLoaded,
142
188
  ClerkLoading,
@@ -150,6 +196,7 @@ export {
150
196
  RedirectToOrganizationProfile,
151
197
  RedirectToCreateOrganization,
152
198
  AuthenticateWithRedirectCallback,
153
- MultisessionAppSupport
199
+ MultisessionAppSupport,
200
+ IS_REACT_SHARED_VARIANT_COMPATIBLE
154
201
  };
155
- //# sourceMappingURL=chunk-3DNOIT7T.mjs.map
202
+ //# sourceMappingURL=chunk-BD6P2PRO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/controlComponents.tsx","../src/contexts/SessionContext.tsx","../src/utils/versionCheck.ts"],"sourcesContent":["import { deprecated } from '@clerk/shared/deprecated';\nimport type { HandleOAuthCallbackParams, PendingSessionOptions, ShowWhenCondition } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { useIsomorphicClerkContext } from '../contexts/IsomorphicClerkContext';\nimport { useSessionContext } from '../contexts/SessionContext';\nimport { useAuth } from '../hooks';\nimport { useAssertWrappedByClerkProvider } from '../hooks/useAssertWrappedByClerkProvider';\nimport type { RedirectToSignInProps, RedirectToSignUpProps, RedirectToTasksProps, WithClerkProp } from '../types';\nimport { withClerk } from './withClerk';\n\nexport const ClerkLoaded = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkLoaded');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (!isomorphicClerk.loaded) {\n return null;\n }\n return children;\n};\n\nexport const ClerkLoading = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkLoading');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'loading') {\n return null;\n }\n return children;\n};\n\nexport const ClerkFailed = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkFailed');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'error') {\n return null;\n }\n return children;\n};\n\nexport const ClerkDegraded = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('ClerkDegraded');\n\n const isomorphicClerk = useIsomorphicClerkContext();\n if (isomorphicClerk.status !== 'degraded') {\n return null;\n }\n return children;\n};\n\nexport type ShowProps = React.PropsWithChildren<\n {\n fallback?: React.ReactNode;\n when: ShowWhenCondition;\n } & PendingSessionOptions\n>;\n\n/**\n * Use `<Show/>` to conditionally render content based on user authorization or sign-in state.\n * Returns `null` while auth is loading. Set `treatPendingAsSignedOut` to treat\n * pending sessions as signed out during that period.\n *\n * The `when` prop supports:\n * - `\"signed-in\"` or `\"signed-out\"` shorthands\n * - Authorization descriptors (e.g., `{ permission: \"org:billing:manage\" }`, `{ role: \"admin\" }`)\n * - A predicate function `(has) => boolean` that receives the `has` helper\n *\n * @example\n * ```tsx\n * <Show when={{ permission: \"org:billing:manage\" }} fallback={<p>Unauthorized</p>}>\n * <BillingSettings />\n * </Show>\n *\n * <Show when={{ role: \"admin\" }}>\n * <AdminPanel />\n * </Show>\n *\n * <Show when={(has) => has({ permission: \"org:read\" }) && isFeatureEnabled}>\n * <ProtectedFeature />\n * </Show>\n * ```\n *\n */\nexport const Show = ({ children, fallback, treatPendingAsSignedOut, when }: ShowProps) => {\n useAssertWrappedByClerkProvider('Show');\n\n const { has, isLoaded, userId } = useAuth({ treatPendingAsSignedOut });\n\n if (!isLoaded) {\n return null;\n }\n\n const resolvedWhen = when;\n const authorized = children;\n const unauthorized = fallback ?? null;\n\n if (resolvedWhen === 'signed-out') {\n return userId ? unauthorized : authorized;\n }\n\n if (!userId) {\n return unauthorized;\n }\n\n if (resolvedWhen === 'signed-in') {\n return authorized;\n }\n\n if (checkAuthorization(resolvedWhen, has)) {\n return authorized;\n }\n\n return unauthorized;\n};\n\nfunction checkAuthorization(\n when: Exclude<ShowWhenCondition, 'signed-in' | 'signed-out'>,\n has: NonNullable<ReturnType<typeof useAuth>['has']>,\n): boolean {\n if (typeof when === 'function') {\n return when(has);\n }\n return has(when);\n}\n\nexport const RedirectToSignIn = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignInProps>) => {\n const { client, session } = clerk;\n\n const hasSignedInSessions = (client.signedInSessions?.length ?? 0) > 0;\n\n React.useEffect(() => {\n if (session === null && hasSignedInSessions) {\n void clerk.redirectToAfterSignOut();\n } else {\n void clerk.redirectToSignIn(props);\n }\n }, []);\n\n return null;\n}, 'RedirectToSignIn');\n\nexport const RedirectToSignUp = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToSignUpProps>) => {\n React.useEffect(() => {\n void clerk.redirectToSignUp(props);\n }, []);\n\n return null;\n}, 'RedirectToSignUp');\n\nexport const RedirectToTasks = withClerk(({ clerk, ...props }: WithClerkProp<RedirectToTasksProps>) => {\n React.useEffect(() => {\n void clerk.redirectToTasks(props);\n }, []);\n\n return null;\n}, 'RedirectToTasks');\n\n/**\n * @function\n * @deprecated Use [`redirectToUserProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-user-profile) instead.\n */\nexport const RedirectToUserProfile = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToUserProfile', 'Use the `redirectToUserProfile()` method instead.');\n void clerk.redirectToUserProfile();\n }, []);\n\n return null;\n}, 'RedirectToUserProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToOrganizationProfile()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-organization-profile) instead.\n */\nexport const RedirectToOrganizationProfile = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToOrganizationProfile', 'Use the `redirectToOrganizationProfile()` method instead.');\n void clerk.redirectToOrganizationProfile();\n }, []);\n\n return null;\n}, 'RedirectToOrganizationProfile');\n\n/**\n * @function\n * @deprecated Use [`redirectToCreateOrganization()`](https://clerk.com/docs/reference/javascript/clerk#redirect-to-create-organization) instead.\n */\nexport const RedirectToCreateOrganization = withClerk(({ clerk }) => {\n React.useEffect(() => {\n deprecated('RedirectToCreateOrganization', 'Use the `redirectToCreateOrganization()` method instead.');\n void clerk.redirectToCreateOrganization();\n }, []);\n\n return null;\n}, 'RedirectToCreateOrganization');\n\nexport const AuthenticateWithRedirectCallback = withClerk(\n ({ clerk, ...handleRedirectCallbackParams }: WithClerkProp<HandleOAuthCallbackParams>) => {\n React.useEffect(() => {\n void clerk.handleRedirectCallback(handleRedirectCallbackParams);\n }, []);\n\n return null;\n },\n 'AuthenticateWithRedirectCallback',\n);\n\nexport const MultisessionAppSupport = ({ children }: React.PropsWithChildren<unknown>) => {\n useAssertWrappedByClerkProvider('MultisessionAppSupport');\n\n const session = useSessionContext();\n return <React.Fragment key={session ? session.id : 'no-users'}>{children}</React.Fragment>;\n};\n","export { SessionContext, useSessionContext } from '@clerk/shared/react';\n","import React from 'react';\n\n// Version bounds format: [major, minMinor, maxMinor, minPatch]\n// - maxMinor === -1 means \"any minor\" (caret range, e.g., ^18.0.0)\n// - maxMinor === minMinor means \"same minor only\" (tilde range, e.g., ~19.0.3)\nexport type VersionBounds = [major: number, minMinor: number, maxMinor: number, minPatch: number];\n\ndeclare const __CLERK_UI_SUPPORTED_REACT_BOUNDS__: VersionBounds[];\n\n/**\n * Parses a version string into major, minor, and patch numbers.\n * Returns null if the version string cannot be parsed.\n *\n * @example\n * parseVersion(\"18.3.1\") // { major: 18, minor: 3, patch: 1 }\n * parseVersion(\"19.0.0-rc.1\") // { major: 19, minor: 0, patch: 0 }\n * parseVersion(\"invalid\") // null\n */\nexport function parseVersion(version: string): { major: number; minor: number; patch: number } | null {\n const match = version.match(/^(\\d+)\\.(\\d+)\\.(\\d+)/);\n if (!match) {\n return null;\n }\n\n const [, majorStr, minorStr, patchStr] = match;\n return {\n major: parseInt(majorStr, 10),\n minor: parseInt(minorStr, 10),\n patch: parseInt(patchStr, 10),\n };\n}\n\n/**\n * Checks if a parsed version satisfies the given version bounds.\n *\n * @param version - The parsed version to check\n * @param bounds - Array of version bounds to check against\n * @returns true if the version satisfies any of the bounds\n */\nexport function checkVersionAgainstBounds(\n version: { major: number; minor: number; patch: number },\n bounds: VersionBounds[],\n): boolean {\n const { major, minor, patch } = version;\n\n return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {\n if (major !== bMajor) {\n return false;\n }\n\n if (maxMinor === -1) {\n // Caret range: any minor >= minMinor, with patch check for minMinor\n return minor > minMinor || (minor === minMinor && patch >= minPatch);\n } else {\n // Tilde range: specific minor only\n return minor === maxMinor && patch >= minPatch;\n }\n });\n}\n\n/**\n * Checks if a version string is compatible with the given bounds.\n * This is a convenience function that combines parsing and checking.\n *\n * @param version - The version string to check (e.g., \"18.3.1\")\n * @param bounds - Array of version bounds to check against\n * @returns true if the version is compatible, false otherwise\n */\nexport function isVersionCompatible(version: string, bounds: VersionBounds[]): boolean {\n const parsed = parseVersion(version);\n if (!parsed) {\n return false;\n }\n return checkVersionAgainstBounds(parsed, bounds);\n}\n\n/**\n * Checks if the host application's React version is compatible with @clerk/ui's shared variant.\n * The shared variant expects React to be provided via globalThis.__clerkSharedModules,\n * so we need to ensure the host's React version matches what @clerk/ui was built against.\n *\n * This function is evaluated once at module load time.\n */\nfunction computeReactVersionCompatibility(): boolean {\n try {\n return isVersionCompatible(React.version, __CLERK_UI_SUPPORTED_REACT_BOUNDS__);\n } catch {\n // If we can't determine compatibility, fall back to non-shared variant\n return false;\n }\n}\n\n/**\n * Whether the host React version is compatible with the shared @clerk/ui variant.\n * This is computed once at module load time for optimal performance.\n */\nexport const IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();\n"],"mappings":"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","names":["React"]}
package/dist/index.js CHANGED
@@ -2050,7 +2050,7 @@ if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") {
2050
2050
  }
2051
2051
  var SDK_METADATA = {
2052
2052
  name: "@clerk/react",
2053
- version: "6.0.0-snapshot.v20260121133427",
2053
+ version: "6.0.0-snapshot.v20260122040150",
2054
2054
  environment: process.env.NODE_ENV
2055
2055
  };
2056
2056
  var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn;
package/dist/index.mjs CHANGED
@@ -4,6 +4,7 @@ import {
4
4
  ClerkFailed,
5
5
  ClerkLoaded,
6
6
  ClerkLoading,
7
+ IS_REACT_SHARED_VARIANT_COMPATIBLE,
7
8
  RedirectToCreateOrganization,
8
9
  RedirectToOrganizationProfile,
9
10
  RedirectToSignIn,
@@ -11,7 +12,7 @@ import {
11
12
  RedirectToTasks,
12
13
  RedirectToUserProfile,
13
14
  Show
14
- } from "./chunk-3DNOIT7T.mjs";
15
+ } from "./chunk-BD6P2PRO.mjs";
15
16
  import {
16
17
  APIKeys,
17
18
  CreateOrganization,
@@ -66,8 +67,7 @@ import {
66
67
  __privateAdd,
67
68
  __privateGet,
68
69
  __privateMethod,
69
- __privateSet,
70
- define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default
70
+ __privateSet
71
71
  } from "./chunk-E5QRIS4Z.mjs";
72
72
 
73
73
  // src/polyfills.ts
@@ -246,7 +246,7 @@ var SignUpButton = withClerk(
246
246
  );
247
247
 
248
248
  // src/contexts/ClerkProvider.tsx
249
- import React7 from "react";
249
+ import React6 from "react";
250
250
 
251
251
  // src/contexts/ClerkContextProvider.tsx
252
252
  import { deriveState } from "@clerk/shared/deriveState";
@@ -257,7 +257,7 @@ import {
257
257
  SessionContext,
258
258
  UserContext
259
259
  } from "@clerk/shared/react";
260
- import React6 from "react";
260
+ import React5 from "react";
261
261
 
262
262
  // src/isomorphicClerk.ts
263
263
  import { inBrowser as inBrowser2 } from "@clerk/shared/browser";
@@ -662,7 +662,7 @@ if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") {
662
662
  }
663
663
  var SDK_METADATA = {
664
664
  name: "@clerk/react",
665
- version: "6.0.0-snapshot.v20260121133427",
665
+ version: "6.0.0-snapshot.v20260122040150",
666
666
  environment: process.env.NODE_ENV
667
667
  };
668
668
  var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn;
@@ -1976,71 +1976,28 @@ waitForClerkJS_fn = function() {
1976
1976
  __privateAdd(_IsomorphicClerk, _instance);
1977
1977
  var IsomorphicClerk = _IsomorphicClerk;
1978
1978
 
1979
- // src/utils/versionCheck.ts
1980
- import React5 from "react";
1981
- function parseVersion(version2) {
1982
- const match = version2.match(/^(\d+)\.(\d+)\.(\d+)/);
1983
- if (!match) {
1984
- return null;
1985
- }
1986
- const [, majorStr, minorStr, patchStr] = match;
1987
- return {
1988
- major: parseInt(majorStr, 10),
1989
- minor: parseInt(minorStr, 10),
1990
- patch: parseInt(patchStr, 10)
1991
- };
1992
- }
1993
- function checkVersionAgainstBounds(version2, bounds) {
1994
- const { major, minor, patch } = version2;
1995
- return bounds.some(([bMajor, minMinor, maxMinor, minPatch]) => {
1996
- if (major !== bMajor) {
1997
- return false;
1998
- }
1999
- if (maxMinor === -1) {
2000
- return minor > minMinor || minor === minMinor && patch >= minPatch;
2001
- } else {
2002
- return minor === maxMinor && patch >= minPatch;
2003
- }
2004
- });
2005
- }
2006
- function isVersionCompatible(version2, bounds) {
2007
- const parsed = parseVersion(version2);
2008
- if (!parsed) {
2009
- return false;
2010
- }
2011
- return checkVersionAgainstBounds(parsed, bounds);
2012
- }
2013
- function computeReactVersionCompatibility() {
2014
- try {
2015
- return isVersionCompatible(React5.version, define_CLERK_UI_SUPPORTED_REACT_BOUNDS_default);
2016
- } catch {
2017
- return false;
2018
- }
2019
- }
2020
- var IS_REACT_SHARED_VARIANT_COMPATIBLE = computeReactVersionCompatibility();
2021
-
2022
1979
  // src/contexts/ClerkContextProvider.tsx
2023
1980
  function ClerkContextProvider(props) {
2024
1981
  const { isomorphicClerkOptions, initialState, children } = props;
2025
1982
  const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions);
2026
- const [state, setState] = React6.useState({
1983
+ const [state, setState] = React5.useState({
2027
1984
  client: clerk.client,
2028
1985
  session: clerk.session,
2029
1986
  user: clerk.user,
2030
1987
  organization: clerk.organization
2031
1988
  });
2032
- React6.useEffect(() => {
1989
+ React5.useEffect(() => {
2033
1990
  return clerk.addListener((e) => setState({ ...e }));
2034
1991
  }, []);
2035
1992
  const derivedState = deriveState(clerk.loaded, state, initialState);
2036
- const clerkCtx = React6.useMemo(
1993
+ const clerkCtx = React5.useMemo(
2037
1994
  () => ({ value: clerk }),
2038
1995
  [
2039
1996
  // Only update the clerk reference on status change
2040
1997
  clerkStatus
2041
1998
  ]
2042
1999
  );
2043
- const clientCtx = React6.useMemo(() => ({ value: state.client }), [state.client]);
2000
+ const clientCtx = React5.useMemo(() => ({ value: state.client }), [state.client]);
2044
2001
  const {
2045
2002
  sessionId,
2046
2003
  sessionStatus,
@@ -2056,7 +2013,7 @@ function ClerkContextProvider(props) {
2056
2013
  orgPermissions,
2057
2014
  factorVerificationAge
2058
2015
  } = derivedState;
2059
- const authCtx = React6.useMemo(() => {
2016
+ const authCtx = React5.useMemo(() => {
2060
2017
  const value = {
2061
2018
  sessionId,
2062
2019
  sessionStatus,
@@ -2071,9 +2028,9 @@ function ClerkContextProvider(props) {
2071
2028
  };
2072
2029
  return { value };
2073
2030
  }, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims == null ? void 0 : sessionClaims.__raw]);
2074
- const sessionCtx = React6.useMemo(() => ({ value: session }), [sessionId, session]);
2075
- const userCtx = React6.useMemo(() => ({ value: user }), [userId, user]);
2076
- const organizationCtx = React6.useMemo(() => {
2031
+ const sessionCtx = React5.useMemo(() => ({ value: session }), [sessionId, session]);
2032
+ const userCtx = React5.useMemo(() => ({ value: user }), [userId, user]);
2033
+ const organizationCtx = React5.useMemo(() => {
2077
2034
  const value = {
2078
2035
  organization
2079
2036
  };
@@ -2081,7 +2038,7 @@ function ClerkContextProvider(props) {
2081
2038
  }, [orgId, organization]);
2082
2039
  return (
2083
2040
  // @ts-expect-error value passed is of type IsomorphicClerk where the context expects LoadedClerk
2084
- /* @__PURE__ */ React6.createElement(IsomorphicClerkContext.Provider, { value: clerkCtx }, /* @__PURE__ */ React6.createElement(ClientContext.Provider, { value: clientCtx }, /* @__PURE__ */ React6.createElement(SessionContext.Provider, { value: sessionCtx }, /* @__PURE__ */ React6.createElement(OrganizationProvider, { ...organizationCtx.value }, /* @__PURE__ */ React6.createElement(AuthContext.Provider, { value: authCtx }, /* @__PURE__ */ React6.createElement(UserContext.Provider, { value: userCtx }, /* @__PURE__ */ React6.createElement(
2041
+ /* @__PURE__ */ React5.createElement(IsomorphicClerkContext.Provider, { value: clerkCtx }, /* @__PURE__ */ React5.createElement(ClientContext.Provider, { value: clientCtx }, /* @__PURE__ */ React5.createElement(SessionContext.Provider, { value: sessionCtx }, /* @__PURE__ */ React5.createElement(OrganizationProvider, { ...organizationCtx.value }, /* @__PURE__ */ React5.createElement(AuthContext.Provider, { value: authCtx }, /* @__PURE__ */ React5.createElement(UserContext.Provider, { value: userCtx }, /* @__PURE__ */ React5.createElement(
2085
2042
  CheckoutProvider,
2086
2043
  {
2087
2044
  value: void 0
@@ -2092,22 +2049,22 @@ function ClerkContextProvider(props) {
2092
2049
  }
2093
2050
  var DEFAULT_CLERK_UI_VARIANT = IS_REACT_SHARED_VARIANT_COMPATIBLE ? "shared" : "";
2094
2051
  var useLoadedIsomorphicClerk = (options) => {
2095
- const optionsWithDefaults = React6.useMemo(
2052
+ const optionsWithDefaults = React5.useMemo(
2096
2053
  () => ({
2097
2054
  clerkUiVariant: DEFAULT_CLERK_UI_VARIANT,
2098
2055
  ...options
2099
2056
  }),
2100
2057
  [options]
2101
2058
  );
2102
- const isomorphicClerkRef = React6.useRef(IsomorphicClerk.getOrCreateInstance(optionsWithDefaults));
2103
- const [clerkStatus, setClerkStatus] = React6.useState(isomorphicClerkRef.current.status);
2104
- React6.useEffect(() => {
2059
+ const isomorphicClerkRef = React5.useRef(IsomorphicClerk.getOrCreateInstance(optionsWithDefaults));
2060
+ const [clerkStatus, setClerkStatus] = React5.useState(isomorphicClerkRef.current.status);
2061
+ React5.useEffect(() => {
2105
2062
  void isomorphicClerkRef.current.__internal_updateProps({ appearance: options.appearance });
2106
2063
  }, [options.appearance]);
2107
- React6.useEffect(() => {
2064
+ React5.useEffect(() => {
2108
2065
  void isomorphicClerkRef.current.__internal_updateProps({ options });
2109
2066
  }, [options.localization]);
2110
- React6.useEffect(() => {
2067
+ React5.useEffect(() => {
2111
2068
  isomorphicClerkRef.current.on("status", setClerkStatus);
2112
2069
  return () => {
2113
2070
  if (isomorphicClerkRef.current) {
@@ -2123,7 +2080,7 @@ var useLoadedIsomorphicClerk = (options) => {
2123
2080
  function ClerkProviderBase(props) {
2124
2081
  const { initialState, children, ...restIsomorphicClerkOptions } = props;
2125
2082
  const isomorphicClerkOptions = restIsomorphicClerkOptions;
2126
- return /* @__PURE__ */ React7.createElement(
2083
+ return /* @__PURE__ */ React6.createElement(
2127
2084
  ClerkContextProvider,
2128
2085
  {
2129
2086
  initialState,