@clerk/elements 0.18.0 → 0.18.1-canary.v8506fdd
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-CVLZDETC.mjs → chunk-ORV6AAIP.mjs} +2 -30
- package/dist/chunk-ORV6AAIP.mjs.map +1 -0
- package/dist/react/sign-in/index.js +57 -84
- package/dist/react/sign-in/index.js.map +1 -1
- package/dist/react/sign-in/index.mjs +6 -5
- package/dist/react/sign-in/index.mjs.map +1 -1
- package/dist/react/sign-up/index.js +27 -54
- package/dist/react/sign-up/index.js.map +1 -1
- package/dist/react/sign-up/index.mjs +6 -5
- package/dist/react/sign-up/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-CVLZDETC.mjs.map +0 -1
|
@@ -68,43 +68,15 @@ var useVirtualRouter = () => {
|
|
|
68
68
|
// src/react/router/index.ts
|
|
69
69
|
import { Route, Router, useClerkRouter } from "@clerk/shared/router";
|
|
70
70
|
|
|
71
|
-
// src/react/utils/path-inference/next.tsx
|
|
72
|
-
import { useRouter } from "next/compat/router";
|
|
73
|
-
import { useParams, usePathname } from "next/navigation";
|
|
74
|
-
import React from "react";
|
|
75
|
-
|
|
76
71
|
// src/react/utils/path-inference/utils.ts
|
|
77
72
|
function removeOptionalCatchAllSegment(pathname) {
|
|
78
73
|
return pathname.replace(/\/\[\[\.\.\..*/, "");
|
|
79
74
|
}
|
|
80
75
|
|
|
81
|
-
// src/react/utils/path-inference/next.tsx
|
|
82
|
-
var usePathnameWithoutCatchAll = () => {
|
|
83
|
-
const pathRef = React.useRef();
|
|
84
|
-
const pagesRouter = useRouter();
|
|
85
|
-
if (pagesRouter) {
|
|
86
|
-
if (pathRef.current) {
|
|
87
|
-
return pathRef.current;
|
|
88
|
-
} else {
|
|
89
|
-
pathRef.current = removeOptionalCatchAllSegment(pagesRouter.pathname);
|
|
90
|
-
return pathRef.current;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
const pathname = usePathname() || "";
|
|
94
|
-
const pathParts = pathname.split("/").filter(Boolean);
|
|
95
|
-
const catchAllParams = Object.values(useParams() || {}).filter((v) => Array.isArray(v)).flat(Infinity);
|
|
96
|
-
if (pathRef.current) {
|
|
97
|
-
return pathRef.current;
|
|
98
|
-
} else {
|
|
99
|
-
pathRef.current = `/${pathParts.slice(0, pathParts.length - catchAllParams.length).join("/")}`;
|
|
100
|
-
return pathRef.current;
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
|
|
104
76
|
export {
|
|
105
77
|
useVirtualRouter,
|
|
106
78
|
Router,
|
|
107
79
|
useClerkRouter,
|
|
108
|
-
|
|
80
|
+
removeOptionalCatchAllSegment
|
|
109
81
|
};
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-ORV6AAIP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/router/virtual.ts","../src/react/router/index.ts","../src/react/utils/path-inference/utils.ts"],"sourcesContent":["'use client';\n\nimport type { ClerkHostRouter } from '@clerk/shared/router';\nimport { useSyncExternalStore } from 'react';\n\nconst DUMMY_ORIGIN = 'https://clerk.dummy';\n\n// TODO: introduce history stack?\nclass VirtualRouter implements ClerkHostRouter {\n readonly name = 'VirtualRouter';\n readonly mode = 'virtual';\n\n #url: URL;\n #listeners: Set<(url: URL) => void> = new Set();\n\n constructor(path?: string) {\n const origin = typeof window === 'undefined' ? DUMMY_ORIGIN : window.location.origin;\n\n this.#url = new URL(path ?? '/', origin);\n }\n\n push(path: string) {\n const newUrl = new URL(this.#url.toString());\n newUrl.pathname = path;\n\n this.#url = newUrl;\n this.emit();\n }\n\n replace(path: string) {\n this.push(path);\n }\n\n shallowPush(path: string) {\n this.push(path);\n }\n\n pathname() {\n return this.#url.pathname;\n }\n\n searchParams() {\n return this.#url.searchParams;\n }\n\n subscribe(listener: () => void) {\n this.#listeners.add(listener);\n\n return () => this.#listeners.delete(listener);\n }\n\n emit() {\n this.#listeners.forEach(listener => listener(this.#url));\n }\n\n getSnapshot() {\n return this.#url;\n }\n}\n\nconst virtualRouter = new VirtualRouter('/');\n\nexport const useVirtualRouter = (): ClerkHostRouter => {\n const url = useSyncExternalStore(\n virtualRouter.subscribe.bind(virtualRouter),\n virtualRouter.getSnapshot.bind(virtualRouter),\n );\n\n return {\n mode: virtualRouter.mode,\n name: virtualRouter.name,\n pathname: () => url.pathname,\n push: virtualRouter.push.bind(virtualRouter),\n replace: virtualRouter.replace.bind(virtualRouter),\n searchParams: () => url.searchParams,\n shallowPush: virtualRouter.shallowPush.bind(virtualRouter),\n };\n};\n","export { Route, Router, useClerkRouter } from '@clerk/shared/router';\nexport { useVirtualRouter } from './virtual';\n","export function removeOptionalCatchAllSegment(pathname: string) {\n return pathname.replace(/\\/\\[\\[\\.\\.\\..*/, '');\n}\n"],"mappings":";;;;;;;AAGA,SAAS,4BAA4B;AAErC,IAAM,eAAe;AALrB;AAQA,IAAM,gBAAN,MAA+C;AAAA,EAO7C,YAAY,MAAe;AAN3B,SAAS,OAAO;AAChB,SAAS,OAAO;AAEhB;AACA,mCAAsC,oBAAI,IAAI;AAG5C,UAAM,SAAS,OAAO,WAAW,cAAc,eAAe,OAAO,SAAS;AAE9E,uBAAK,MAAO,IAAI,IAAI,sBAAQ,KAAK,MAAM;AAAA,EACzC;AAAA,EAEA,KAAK,MAAc;AACjB,UAAM,SAAS,IAAI,IAAI,mBAAK,MAAK,SAAS,CAAC;AAC3C,WAAO,WAAW;AAElB,uBAAK,MAAO;AACZ,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,QAAQ,MAAc;AACpB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EAEA,YAAY,MAAc;AACxB,SAAK,KAAK,IAAI;AAAA,EAChB;AAAA,EAEA,WAAW;AACT,WAAO,mBAAK,MAAK;AAAA,EACnB;AAAA,EAEA,eAAe;AACb,WAAO,mBAAK,MAAK;AAAA,EACnB;AAAA,EAEA,UAAU,UAAsB;AAC9B,uBAAK,YAAW,IAAI,QAAQ;AAE5B,WAAO,MAAM,mBAAK,YAAW,OAAO,QAAQ;AAAA,EAC9C;AAAA,EAEA,OAAO;AACL,uBAAK,YAAW,QAAQ,cAAY,SAAS,mBAAK,KAAI,CAAC;AAAA,EACzD;AAAA,EAEA,cAAc;AACZ,WAAO,mBAAK;AAAA,EACd;AACF;AA9CE;AACA;AA+CF,IAAM,gBAAgB,IAAI,cAAc,GAAG;AAEpC,IAAM,mBAAmB,MAAuB;AACrD,QAAM,MAAM;AAAA,IACV,cAAc,UAAU,KAAK,aAAa;AAAA,IAC1C,cAAc,YAAY,KAAK,aAAa;AAAA,EAC9C;AAEA,SAAO;AAAA,IACL,MAAM,cAAc;AAAA,IACpB,MAAM,cAAc;AAAA,IACpB,UAAU,MAAM,IAAI;AAAA,IACpB,MAAM,cAAc,KAAK,KAAK,aAAa;AAAA,IAC3C,SAAS,cAAc,QAAQ,KAAK,aAAa;AAAA,IACjD,cAAc,MAAM,IAAI;AAAA,IACxB,aAAa,cAAc,YAAY,KAAK,aAAa;AAAA,EAC3D;AACF;;;AC7EA,SAAS,OAAO,QAAQ,sBAAsB;;;ACAvC,SAAS,8BAA8B,UAAkB;AAC9D,SAAO,SAAS,QAAQ,kBAAkB,EAAE;AAC9C;","names":[]}
|
|
@@ -55,11 +55,11 @@ module.exports = __toCommonJS(sign_in_exports);
|
|
|
55
55
|
var import_client_only2 = require("client-only");
|
|
56
56
|
|
|
57
57
|
// src/react/sign-in/root.tsx
|
|
58
|
-
var
|
|
59
|
-
var
|
|
58
|
+
var import_react7 = require("@clerk/shared/react");
|
|
59
|
+
var import_router5 = require("@clerk/shared/router");
|
|
60
60
|
var import_telemetry = require("@clerk/shared/telemetry");
|
|
61
|
-
var
|
|
62
|
-
var
|
|
61
|
+
var import_react8 = require("@xstate/react");
|
|
62
|
+
var import_react9 = require("react");
|
|
63
63
|
var import_xstate8 = require("xstate");
|
|
64
64
|
|
|
65
65
|
// src/utils/safe-access.ts
|
|
@@ -2326,49 +2326,21 @@ var DISPLAY_NAME2 = "ClerkElementsSubmit";
|
|
|
2326
2326
|
var Submit = import_react_form2.Submit;
|
|
2327
2327
|
Submit.displayName = DISPLAY_NAME2;
|
|
2328
2328
|
|
|
2329
|
-
// src/react/utils/path-inference/next.tsx
|
|
2330
|
-
var import_router5 = require("next/compat/router");
|
|
2331
|
-
var import_navigation = require("next/navigation");
|
|
2332
|
-
var import_react7 = __toESM(require("react"));
|
|
2333
|
-
|
|
2334
2329
|
// src/react/utils/path-inference/utils.ts
|
|
2335
2330
|
function removeOptionalCatchAllSegment(pathname) {
|
|
2336
2331
|
return pathname.replace(/\/\[\[\.\.\..*/, "");
|
|
2337
2332
|
}
|
|
2338
2333
|
|
|
2339
|
-
// src/react/utils/path-inference/next.tsx
|
|
2340
|
-
var usePathnameWithoutCatchAll = () => {
|
|
2341
|
-
const pathRef = import_react7.default.useRef();
|
|
2342
|
-
const pagesRouter = (0, import_router5.useRouter)();
|
|
2343
|
-
if (pagesRouter) {
|
|
2344
|
-
if (pathRef.current) {
|
|
2345
|
-
return pathRef.current;
|
|
2346
|
-
} else {
|
|
2347
|
-
pathRef.current = removeOptionalCatchAllSegment(pagesRouter.pathname);
|
|
2348
|
-
return pathRef.current;
|
|
2349
|
-
}
|
|
2350
|
-
}
|
|
2351
|
-
const pathname = (0, import_navigation.usePathname)() || "";
|
|
2352
|
-
const pathParts = pathname.split("/").filter(Boolean);
|
|
2353
|
-
const catchAllParams = Object.values((0, import_navigation.useParams)() || {}).filter((v) => Array.isArray(v)).flat(Infinity);
|
|
2354
|
-
if (pathRef.current) {
|
|
2355
|
-
return pathRef.current;
|
|
2356
|
-
} else {
|
|
2357
|
-
pathRef.current = `/${pathParts.slice(0, pathParts.length - catchAllParams.length).join("/")}`;
|
|
2358
|
-
return pathRef.current;
|
|
2359
|
-
}
|
|
2360
|
-
};
|
|
2361
|
-
|
|
2362
2334
|
// src/react/sign-in/root.tsx
|
|
2363
2335
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
2364
2336
|
var actor = (0, import_xstate8.createActor)(SignInRouterMachine, { inspect });
|
|
2365
2337
|
actor.start();
|
|
2366
2338
|
function SignInFlowProvider({ children, exampleMode, fallback, isRootPath }) {
|
|
2367
|
-
const clerk = (0,
|
|
2339
|
+
const clerk = (0, import_react7.useClerk)();
|
|
2368
2340
|
const router = (0, import_router3.useClerkRouter)();
|
|
2369
2341
|
const formRef = useFormStore();
|
|
2370
|
-
const isReady = (0,
|
|
2371
|
-
(0,
|
|
2342
|
+
const isReady = (0, import_react8.useSelector)(actor, (state) => state.value !== "Idle");
|
|
2343
|
+
(0, import_react9.useEffect)(() => {
|
|
2372
2344
|
if (!clerk || !router) {
|
|
2373
2345
|
return;
|
|
2374
2346
|
}
|
|
@@ -2410,9 +2382,12 @@ function SignInRoot({
|
|
|
2410
2382
|
routing = ROUTING.path
|
|
2411
2383
|
}) {
|
|
2412
2384
|
var _a;
|
|
2413
|
-
const clerk = (0,
|
|
2414
|
-
const
|
|
2385
|
+
const clerk = (0, import_react7.useClerk)();
|
|
2386
|
+
const router = (routing === ROUTING.virtual ? useVirtualRouter : import_router5.useClerkHostRouter)();
|
|
2387
|
+
const pathname = router.pathname();
|
|
2388
|
+
const inferredPath = removeOptionalCatchAllSegment(pathname);
|
|
2415
2389
|
const path = pathProp || inferredPath || SIGN_IN_DEFAULT_BASE_PATH;
|
|
2390
|
+
const isRootPath = path === pathname;
|
|
2416
2391
|
(_a = clerk.telemetry) == null ? void 0 : _a.record(
|
|
2417
2392
|
(0, import_telemetry.eventComponentMounted)("Elements_SignInRoot", {
|
|
2418
2393
|
exampleMode,
|
|
@@ -2421,8 +2396,6 @@ function SignInRoot({
|
|
|
2421
2396
|
routing
|
|
2422
2397
|
})
|
|
2423
2398
|
);
|
|
2424
|
-
const router = (routing === ROUTING.virtual ? useVirtualRouter : import_router6.useClerkHostRouter)();
|
|
2425
|
-
const isRootPath = path === router.pathname();
|
|
2426
2399
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
2427
2400
|
import_router3.Router,
|
|
2428
2401
|
{
|
|
@@ -2442,20 +2415,20 @@ function SignInRoot({
|
|
|
2442
2415
|
}
|
|
2443
2416
|
|
|
2444
2417
|
// src/react/sign-in/step.tsx
|
|
2445
|
-
var
|
|
2418
|
+
var import_react14 = require("@clerk/shared/react");
|
|
2446
2419
|
var import_telemetry2 = require("@clerk/shared/telemetry");
|
|
2447
2420
|
|
|
2448
2421
|
// src/react/sign-in/choose-session/choose-session.tsx
|
|
2449
2422
|
var import_react_slot = require("@radix-ui/react-slot");
|
|
2450
|
-
var
|
|
2423
|
+
var React7 = __toESM(require("react"));
|
|
2451
2424
|
|
|
2452
2425
|
// src/react/utils/create-context-for-dom-validation.ts
|
|
2453
|
-
var
|
|
2426
|
+
var React4 = __toESM(require("react"));
|
|
2454
2427
|
function createContextForDomValidation(displayName) {
|
|
2455
|
-
const ReactContext =
|
|
2428
|
+
const ReactContext = React4.createContext(false);
|
|
2456
2429
|
const OriginalProvider = ReactContext.Provider;
|
|
2457
2430
|
function Provider({ children }) {
|
|
2458
|
-
return
|
|
2431
|
+
return React4.createElement(
|
|
2459
2432
|
OriginalProvider,
|
|
2460
2433
|
{
|
|
2461
2434
|
value: true
|
|
@@ -2465,7 +2438,7 @@ function createContextForDomValidation(displayName) {
|
|
|
2465
2438
|
}
|
|
2466
2439
|
Provider.displayName = displayName;
|
|
2467
2440
|
function useContext6(allowMissingContext = false) {
|
|
2468
|
-
const context =
|
|
2441
|
+
const context = React4.useContext(ReactContext);
|
|
2469
2442
|
if (!allowMissingContext && !context) {
|
|
2470
2443
|
throw new Error(
|
|
2471
2444
|
`You used a hook from "${Provider.displayName}" but it's not inside a <${Provider.displayName}.Provider> component.`
|
|
@@ -2480,22 +2453,22 @@ function createContextForDomValidation(displayName) {
|
|
|
2480
2453
|
}
|
|
2481
2454
|
|
|
2482
2455
|
// src/react/utils/is-valid-component-type.ts
|
|
2483
|
-
var
|
|
2456
|
+
var React5 = __toESM(require("react"));
|
|
2484
2457
|
function isValidComponentType(child, type) {
|
|
2485
|
-
return
|
|
2458
|
+
return React5.isValidElement(child) && child.type === type;
|
|
2486
2459
|
}
|
|
2487
2460
|
|
|
2488
2461
|
// src/react/sign-in/choose-session/choose-session.hooks.ts
|
|
2489
|
-
var
|
|
2462
|
+
var React6 = __toESM(require("react"));
|
|
2490
2463
|
|
|
2491
2464
|
// src/react/hooks/use-active-tags.hook.ts
|
|
2492
|
-
var
|
|
2465
|
+
var import_react10 = require("@xstate/react");
|
|
2493
2466
|
var ActiveTagsMode = {
|
|
2494
2467
|
any: "any",
|
|
2495
2468
|
all: "all"
|
|
2496
2469
|
};
|
|
2497
2470
|
function useActiveTags(actor2, tags, mode = ActiveTagsMode.any) {
|
|
2498
|
-
const state = (0,
|
|
2471
|
+
const state = (0, import_react10.useSelector)(
|
|
2499
2472
|
actor2,
|
|
2500
2473
|
(s) => s,
|
|
2501
2474
|
(prev, next) => prev.tags === next.tags
|
|
@@ -2522,9 +2495,9 @@ function useActiveTags(actor2, tags, mode = ActiveTagsMode.any) {
|
|
|
2522
2495
|
}
|
|
2523
2496
|
|
|
2524
2497
|
// src/react/sign-in/choose-session/choose-session.hooks.ts
|
|
2525
|
-
var SignInActiveSessionContext =
|
|
2498
|
+
var SignInActiveSessionContext = React6.createContext(null);
|
|
2526
2499
|
function useSignInActiveSessionContext() {
|
|
2527
|
-
const ctx =
|
|
2500
|
+
const ctx = React6.useContext(SignInActiveSessionContext);
|
|
2528
2501
|
if (!ctx) {
|
|
2529
2502
|
throw new Error("SignInActiveSessionContext must be used within a SessionList/SignInSessionListItem");
|
|
2530
2503
|
}
|
|
@@ -2561,13 +2534,13 @@ function SignInSessionList({ asChild, children, includeCurrentSession, ...props
|
|
|
2561
2534
|
if (!children || !(sessions == null ? void 0 : sessions.length)) {
|
|
2562
2535
|
return null;
|
|
2563
2536
|
}
|
|
2564
|
-
if (
|
|
2565
|
-
return
|
|
2537
|
+
if (React7.Children.count(children) > 1) {
|
|
2538
|
+
return React7.Children.only(null);
|
|
2566
2539
|
}
|
|
2567
2540
|
if (asChild && isValidComponentType(children, SignInSessionListItem)) {
|
|
2568
2541
|
throw new Error("asChild cannot be used with SessionListItem as the direct child");
|
|
2569
2542
|
}
|
|
2570
|
-
if (!
|
|
2543
|
+
if (!React7.isValidElement(children)) {
|
|
2571
2544
|
throw new Error("children must be a valid React element");
|
|
2572
2545
|
}
|
|
2573
2546
|
const newChildren = asChild ? children.props.children : children;
|
|
@@ -2582,7 +2555,7 @@ function SignInSessionList({ asChild, children, includeCurrentSession, ...props
|
|
|
2582
2555
|
);
|
|
2583
2556
|
});
|
|
2584
2557
|
if (asChild) {
|
|
2585
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_slot.Slot, { ...props, children:
|
|
2558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react_slot.Slot, { ...props, children: React7.cloneElement(children, void 0, childrenWithCtx) });
|
|
2586
2559
|
}
|
|
2587
2560
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("ul", { ...props, children: childrenWithCtx });
|
|
2588
2561
|
}
|
|
@@ -2595,8 +2568,8 @@ function SignInSessionListItem(props) {
|
|
|
2595
2568
|
|
|
2596
2569
|
// src/react/sign-in/choose-strategy.tsx
|
|
2597
2570
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
2598
|
-
var
|
|
2599
|
-
var
|
|
2571
|
+
var import_react11 = require("@xstate/react");
|
|
2572
|
+
var React8 = __toESM(require("react"));
|
|
2600
2573
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
2601
2574
|
var SignInChooseStrategyCtx = createContextForDomValidation("SignInChooseStrategyCtx");
|
|
2602
2575
|
function SignInChooseStrategy({ asChild, children, ...props }) {
|
|
@@ -2626,7 +2599,7 @@ function SignInForgotPassword({ asChild, children, ...props }) {
|
|
|
2626
2599
|
return activeState ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SignInChooseStrategyCtx.Provider, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Comp, { ...props, children }) }) : null;
|
|
2627
2600
|
}
|
|
2628
2601
|
var SUPPORTED_STRATEGY_NAME = "SignInSupportedStrategy";
|
|
2629
|
-
var SignInSupportedStrategy =
|
|
2602
|
+
var SignInSupportedStrategy = React8.forwardRef(
|
|
2630
2603
|
({ asChild, children, name, ...rest }, forwardedRef) => {
|
|
2631
2604
|
const routerRef = SignInRouterCtx.useActorRef();
|
|
2632
2605
|
const snapshot = routerRef.getSnapshot();
|
|
@@ -2634,14 +2607,14 @@ var SignInSupportedStrategy = React9.forwardRef(
|
|
|
2634
2607
|
const supportedFirstFactors = status === "needs_first_factor" ? snapshot.context.clerk.client.signIn.supportedFirstFactors || [] : [];
|
|
2635
2608
|
const supportedSecondFactors = status === "needs_second_factor" ? snapshot.context.clerk.client.signIn.supportedSecondFactors || [] : [];
|
|
2636
2609
|
const factor = [...supportedFirstFactors, ...supportedSecondFactors].find((factor2) => name === factor2.strategy);
|
|
2637
|
-
const currentFactor = (0,
|
|
2610
|
+
const currentFactor = (0, import_react11.useSelector)(
|
|
2638
2611
|
snapshot.children[SignInRouterSystemId.firstFactor] || snapshot.children[SignInRouterSystemId.secondFactor],
|
|
2639
2612
|
(state) => {
|
|
2640
2613
|
var _a;
|
|
2641
2614
|
return (_a = state == null ? void 0 : state.context.currentFactor) == null ? void 0 : _a.strategy;
|
|
2642
2615
|
}
|
|
2643
2616
|
);
|
|
2644
|
-
const sendUpdateStrategyEvent =
|
|
2617
|
+
const sendUpdateStrategyEvent = React8.useCallback(
|
|
2645
2618
|
() => routerRef.send({ type: "STRATEGY.UPDATE", factor }),
|
|
2646
2619
|
[routerRef, factor]
|
|
2647
2620
|
);
|
|
@@ -2709,8 +2682,8 @@ function SignInStartInner(props) {
|
|
|
2709
2682
|
}
|
|
2710
2683
|
|
|
2711
2684
|
// src/react/sign-in/verifications.tsx
|
|
2712
|
-
var
|
|
2713
|
-
var
|
|
2685
|
+
var import_react12 = require("@xstate/react");
|
|
2686
|
+
var import_react13 = require("react");
|
|
2714
2687
|
|
|
2715
2688
|
// src/internals/machines/utils/strategies.ts
|
|
2716
2689
|
var matchStrategy = (current, desired) => {
|
|
@@ -2738,9 +2711,9 @@ function SignInStrategiesProvider({
|
|
|
2738
2711
|
...props
|
|
2739
2712
|
}) {
|
|
2740
2713
|
const routerRef = SignInRouterCtx.useActorRef();
|
|
2741
|
-
const current = (0,
|
|
2714
|
+
const current = (0, import_react12.useSelector)(actorRef, strategiesSelector);
|
|
2742
2715
|
const isChoosingAltStrategy = useActiveTags(routerRef, ["step:choose-strategy", "step:forgot-password"]);
|
|
2743
|
-
const isActive = (0,
|
|
2716
|
+
const isActive = (0, import_react13.useCallback)((name) => current ? matchStrategy(current, name) : false, [current]);
|
|
2744
2717
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StrategiesContext.Provider, { value: { current, preferred, isActive }, children: isChoosingAltStrategy.active ? null : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2745
2718
|
Form,
|
|
2746
2719
|
{
|
|
@@ -2758,7 +2731,7 @@ function useFactorCtx() {
|
|
|
2758
2731
|
function SignInStrategy({ children, name }) {
|
|
2759
2732
|
const { active } = useStrategy(name);
|
|
2760
2733
|
const factorCtx = useFactorCtx();
|
|
2761
|
-
(0,
|
|
2734
|
+
(0, import_react13.useEffect)(() => {
|
|
2762
2735
|
if (factorCtx) {
|
|
2763
2736
|
factorCtx.send({ type: "STRATEGY.REGISTER", factor: name });
|
|
2764
2737
|
}
|
|
@@ -2830,7 +2803,7 @@ var SIGN_IN_STEPS = {
|
|
|
2830
2803
|
};
|
|
2831
2804
|
function SignInStep(props) {
|
|
2832
2805
|
var _a;
|
|
2833
|
-
const clerk = (0,
|
|
2806
|
+
const clerk = (0, import_react14.useClerk)();
|
|
2834
2807
|
(_a = clerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry2.eventComponentMounted)("Elements_SignInStep", { name: props.name }));
|
|
2835
2808
|
switch (props.name) {
|
|
2836
2809
|
case SIGN_IN_STEPS.start:
|
|
@@ -2851,14 +2824,14 @@ function SignInStep(props) {
|
|
|
2851
2824
|
}
|
|
2852
2825
|
|
|
2853
2826
|
// src/react/sign-in/action/action.tsx
|
|
2854
|
-
var
|
|
2827
|
+
var React12 = __toESM(require("react"));
|
|
2855
2828
|
|
|
2856
2829
|
// src/react/common/index.ts
|
|
2857
2830
|
var import_client_only = require("client-only");
|
|
2858
2831
|
|
|
2859
2832
|
// src/react/sign-in/action/navigate.tsx
|
|
2860
2833
|
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
2861
|
-
var
|
|
2834
|
+
var React9 = __toESM(require("react"));
|
|
2862
2835
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
2863
2836
|
var SIGN_IN_NAVIGATE_NAME = "SignInNavigate";
|
|
2864
2837
|
var SignInNavigationEventMap = {
|
|
@@ -2867,12 +2840,12 @@ var SignInNavigationEventMap = {
|
|
|
2867
2840
|
"choose-strategy": "NAVIGATE.CHOOSE_STRATEGY",
|
|
2868
2841
|
"forgot-password": "NAVIGATE.FORGOT_PASSWORD"
|
|
2869
2842
|
};
|
|
2870
|
-
var SignInNavigate =
|
|
2843
|
+
var SignInNavigate = React9.forwardRef(
|
|
2871
2844
|
({ asChild, to, ...rest }, forwardedRef) => {
|
|
2872
2845
|
const actorRef = SignInRouterCtx.useActorRef();
|
|
2873
2846
|
const Comp = asChild ? import_react_slot3.Slot : "button";
|
|
2874
2847
|
const defaultProps = asChild ? {} : { type: "button" };
|
|
2875
|
-
const sendEvent =
|
|
2848
|
+
const sendEvent = React9.useCallback(() => {
|
|
2876
2849
|
const type = SignInNavigationEventMap[to];
|
|
2877
2850
|
if (actorRef.getSnapshot().can({ type })) {
|
|
2878
2851
|
actorRef.send({ type });
|
|
@@ -2897,11 +2870,11 @@ SignInNavigate.displayName = SIGN_IN_NAVIGATE_NAME;
|
|
|
2897
2870
|
|
|
2898
2871
|
// src/react/sign-in/action/resend.tsx
|
|
2899
2872
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
2900
|
-
var
|
|
2901
|
-
var
|
|
2873
|
+
var import_react15 = require("@xstate/react");
|
|
2874
|
+
var React10 = __toESM(require("react"));
|
|
2902
2875
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2903
2876
|
var SIGN_IN_RESEND_NAME = "SignInResend";
|
|
2904
|
-
var SignInResend =
|
|
2877
|
+
var SignInResend = React10.forwardRef(
|
|
2905
2878
|
({ asChild, fallback, ...rest }, forwardedRef) => {
|
|
2906
2879
|
const firstFactorRef = SignInFirstFactorCtx.useActorRef(true);
|
|
2907
2880
|
const secondFactorRef = SignInSecondFactorCtx.useActorRef(true);
|
|
@@ -2909,7 +2882,7 @@ var SignInResend = React11.forwardRef(
|
|
|
2909
2882
|
if (!actorRef) {
|
|
2910
2883
|
throw new Error('The resend action must be used within <SignIn.Step name="verifications">.');
|
|
2911
2884
|
}
|
|
2912
|
-
const fallbackProps = (0,
|
|
2885
|
+
const fallbackProps = (0, import_react15.useSelector)(
|
|
2913
2886
|
actorRef,
|
|
2914
2887
|
(state) => ({
|
|
2915
2888
|
resendable: state.context.resendable,
|
|
@@ -2938,16 +2911,16 @@ SignInResend.displayName = SIGN_IN_RESEND_NAME;
|
|
|
2938
2911
|
|
|
2939
2912
|
// src/react/sign-in/action/set-active-session.tsx
|
|
2940
2913
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
2941
|
-
var
|
|
2914
|
+
var React11 = __toESM(require("react"));
|
|
2942
2915
|
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2943
2916
|
var DISPLAY_NAME3 = "SignInSetActiveSession";
|
|
2944
|
-
var SignInSetActiveSession =
|
|
2917
|
+
var SignInSetActiveSession = React11.forwardRef(
|
|
2945
2918
|
({ asChild, ...rest }, forwardedRef) => {
|
|
2946
2919
|
const actorRef = SignInRouterCtx.useActorRef();
|
|
2947
2920
|
const session = useSignInActiveSessionContext();
|
|
2948
2921
|
const Comp = asChild ? import_react_slot5.Slot : "button";
|
|
2949
2922
|
const defaultProps = asChild ? {} : { type: "button" };
|
|
2950
|
-
const sendEvent =
|
|
2923
|
+
const sendEvent = React11.useCallback(() => {
|
|
2951
2924
|
const event = { type: "SESSION.SET_ACTIVE", id: session.id };
|
|
2952
2925
|
if (actorRef.getSnapshot().can(event)) {
|
|
2953
2926
|
actorRef.send(event);
|
|
@@ -2973,7 +2946,7 @@ SignInSetActiveSession.displayName = DISPLAY_NAME3;
|
|
|
2973
2946
|
// src/react/sign-in/action/action.tsx
|
|
2974
2947
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
2975
2948
|
var DISPLAY_NAME4 = "SignInAction";
|
|
2976
|
-
var SignInAction =
|
|
2949
|
+
var SignInAction = React12.forwardRef((props, forwardedRef) => {
|
|
2977
2950
|
const { submit, navigate, resend, setActiveSession, ...rest } = props;
|
|
2978
2951
|
let Comp;
|
|
2979
2952
|
if (submit) {
|
|
@@ -2998,15 +2971,15 @@ SignInAction.displayName = DISPLAY_NAME4;
|
|
|
2998
2971
|
|
|
2999
2972
|
// src/react/sign-in/passkey.tsx
|
|
3000
2973
|
var import_react_slot6 = require("@radix-ui/react-slot");
|
|
3001
|
-
var
|
|
2974
|
+
var React13 = __toESM(require("react"));
|
|
3002
2975
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
3003
2976
|
var SIGN_IN_PASSKEY_NAME = "SignInPasskey";
|
|
3004
|
-
var SignInPasskey =
|
|
2977
|
+
var SignInPasskey = React13.forwardRef(
|
|
3005
2978
|
({ asChild, ...rest }, forwardedRef) => {
|
|
3006
2979
|
const actorRef = SignInRouterCtx.useActorRef(true);
|
|
3007
2980
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
3008
2981
|
const defaultProps = asChild ? {} : { type: "button" };
|
|
3009
|
-
const sendEvent =
|
|
2982
|
+
const sendEvent = React13.useCallback(() => {
|
|
3010
2983
|
actorRef == null ? void 0 : actorRef.send({ type: "AUTHENTICATE.PASSKEY" });
|
|
3011
2984
|
}, [actorRef]);
|
|
3012
2985
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
@@ -3023,10 +2996,10 @@ var SignInPasskey = React14.forwardRef(
|
|
|
3023
2996
|
SignInPasskey.displayName = SIGN_IN_PASSKEY_NAME;
|
|
3024
2997
|
|
|
3025
2998
|
// src/react/sign-in/identifiers.tsx
|
|
3026
|
-
var
|
|
2999
|
+
var import_react16 = require("react");
|
|
3027
3000
|
function SignInSafeIdentifier({ transform }) {
|
|
3028
3001
|
const strategy = useSignInStrategy();
|
|
3029
|
-
const selector = (0,
|
|
3002
|
+
const selector = (0, import_react16.useMemo)(() => SignInSafeIdentifierSelectorForStrategy(strategy), [strategy]);
|
|
3030
3003
|
const safeIdentifier = SignInRouterCtx.useSelector(selector);
|
|
3031
3004
|
if (transform) {
|
|
3032
3005
|
return transform(safeIdentifier);
|