@ory/elements-react 1.0.0-next.17 → 1.0.0-next.18
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/CHANGELOG.md +23 -0
- package/api-report/elements-react-client.api.json +144 -16
- package/api-report/elements-react-client.api.md +19 -8
- package/api-report/elements-react-theme.api.json +47 -0
- package/api-report/elements-react-theme.api.md +5 -2
- package/api-report/elements-react.api.json +7 -3
- package/api-report/elements-react.api.md +4 -2
- package/api-report/temp/elements-react-client.api.md +19 -8
- package/api-report/temp/elements-react-theme.api.md +5 -2
- package/api-report/temp/elements-react.api.md +4 -2
- package/dist/client/config.d.mts +21 -0
- package/dist/client/config.d.ts +21 -0
- package/dist/client/config.js +77 -0
- package/dist/client/config.js.map +1 -0
- package/dist/client/config.mjs +51 -0
- package/dist/client/config.mjs.map +1 -0
- package/dist/client/frontendClient.d.mts +3 -1
- package/dist/client/frontendClient.d.ts +3 -1
- package/dist/client/frontendClient.js +14 -2
- package/dist/client/frontendClient.js.map +1 -1
- package/dist/client/frontendClient.mjs +14 -2
- package/dist/client/frontendClient.mjs.map +1 -1
- package/dist/client/index.d.mts +3 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.js +4 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +5 -0
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/session-provider.d.mts +62 -0
- package/dist/client/session-provider.d.ts +62 -0
- package/dist/client/session-provider.js +96 -0
- package/dist/client/session-provider.js.map +1 -0
- package/dist/client/session-provider.mjs +71 -0
- package/dist/client/session-provider.mjs.map +1 -0
- package/dist/client/useSession.d.mts +22 -31
- package/dist/client/useSession.d.ts +22 -31
- package/dist/client/useSession.js +7 -49
- package/dist/client/useSession.js.map +1 -1
- package/dist/client/useSession.mjs +8 -49
- package/dist/client/useSession.mjs.map +1 -1
- package/dist/index.d.mts +5 -4
- package/dist/index.d.ts +5 -4
- package/dist/index.js +46 -24
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +49 -27
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +358 -251
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +4 -2
- package/dist/theme/default/index.d.ts +4 -2
- package/dist/theme/default/index.js +605 -531
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +536 -463
- package/dist/theme/default/index.mjs.map +1 -1
- package/jest.config.ts +1 -1
- package/package.json +2 -1
- package/postcss.config.ts +1 -0
- package/tailwind.config.ts +14 -13
- package/tsconfig.json +4 -3
- package/variables-processed.json +385 -187
- package/.eslintrc.js +0 -63
|
@@ -19,61 +19,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
20
|
var useSession_exports = {};
|
|
21
21
|
__export(useSession_exports, {
|
|
22
|
-
sessionStore: () => sessionStore,
|
|
23
22
|
useSession: () => useSession
|
|
24
23
|
});
|
|
25
24
|
module.exports = __toCommonJS(useSession_exports);
|
|
26
25
|
var import_react = require("react");
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
session: void 0,
|
|
35
|
-
setSession: (session) => set({ session }),
|
|
36
|
-
error: void 0,
|
|
37
|
-
setError: (error) => set({ error })
|
|
38
|
-
}))
|
|
39
|
-
);
|
|
40
|
-
const useSession = (config) => {
|
|
41
|
-
const store = (0, import_zustand.useStore)(sessionStore);
|
|
42
|
-
const fetchSession = (0, import_react.useCallback)(async () => {
|
|
43
|
-
var _a;
|
|
44
|
-
const { session, isLoading, setSession, setIsLoading, setError } = sessionStore.getState();
|
|
45
|
-
if (!!session || isLoading) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
setIsLoading(true);
|
|
49
|
-
try {
|
|
50
|
-
const sessionData = await (0, import_frontendClient.frontendClient)(
|
|
51
|
-
(_a = config == null ? void 0 : config.sdk.url) != null ? _a : window.location.protocol + "//" + window.location.host
|
|
52
|
-
).toSession();
|
|
53
|
-
setSession(sessionData);
|
|
54
|
-
} catch (e) {
|
|
55
|
-
setError(e instanceof Error ? e.message : "Unknown error occurred");
|
|
56
|
-
if (!(config == null ? void 0 : config.sdk.url)) {
|
|
57
|
-
console.error(
|
|
58
|
-
"Could not fetch session. Make sure you have set the SDK URL in the config."
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
} finally {
|
|
62
|
-
setIsLoading(false);
|
|
63
|
-
}
|
|
64
|
-
}, [config == null ? void 0 : config.sdk.url]);
|
|
65
|
-
(0, import_react.useEffect)(() => {
|
|
66
|
-
void fetchSession();
|
|
67
|
-
}, [fetchSession]);
|
|
68
|
-
return {
|
|
69
|
-
session: store.session,
|
|
70
|
-
error: store.error,
|
|
71
|
-
isLoading: store.isLoading
|
|
72
|
-
};
|
|
73
|
-
};
|
|
26
|
+
var import_session_provider = require("./session-provider");
|
|
27
|
+
function useSession() {
|
|
28
|
+
if (!import_session_provider.SessionContext) {
|
|
29
|
+
throw new Error("[Ory/Elements] useSession must be used on the client");
|
|
30
|
+
}
|
|
31
|
+
return (0, import_react.useContext)(import_session_provider.SessionContext);
|
|
32
|
+
}
|
|
74
33
|
// Annotate the CommonJS export names for ESM import in node:
|
|
75
34
|
0 && (module.exports = {
|
|
76
|
-
sessionStore,
|
|
77
35
|
useSession
|
|
78
36
|
});
|
|
79
37
|
//# sourceMappingURL=useSession.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/useSession.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/client/useSession.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\n\nimport { useContext } from \"react\"\nimport { SessionContext } from \"./session-provider\"\n\n/**\n * A hook to get the current session from the Ory Network.\n *\n * Usage:\n * ```ts\n * const session = useSession()\n *\n * if (session.state == \"loading\") {\n * return <div>Loading...</div>\n * }\n *\n * if (session.state == \"authenticated\") {\n * return <div>Session: {session.session.id}</div>\n * }\n * ```\n *\n * :::note\n * This is a client-side hook and must be used within a React component.\n * On the server, you can use the getServerSession function from `@ory/nextjs`\n * and hydrate SessionProvider with the session.\n * :::\n *\n * @returns The current session, and error or loading state.\n */\n\nexport function useSession() {\n if (!SessionContext) {\n throw new Error(\"[Ory/Elements] useSession must be used on the client\")\n }\n return useContext(SessionContext)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAA2B;AAC3B,8BAA+B;AA2BxB,SAAS,aAAa;AAC3B,MAAI,CAAC,wCAAgB;AACnB,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,aAAO,yBAAW,sCAAc;AAClC;","names":[]}
|
|
@@ -1,54 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
session: void 0,
|
|
11
|
-
setSession: (session) => set({ session }),
|
|
12
|
-
error: void 0,
|
|
13
|
-
setError: (error) => set({ error })
|
|
14
|
-
}))
|
|
15
|
-
);
|
|
16
|
-
const useSession = (config) => {
|
|
17
|
-
const store = useStore(sessionStore);
|
|
18
|
-
const fetchSession = useCallback(async () => {
|
|
19
|
-
var _a;
|
|
20
|
-
const { session, isLoading, setSession, setIsLoading, setError } = sessionStore.getState();
|
|
21
|
-
if (!!session || isLoading) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
setIsLoading(true);
|
|
25
|
-
try {
|
|
26
|
-
const sessionData = await frontendClient(
|
|
27
|
-
(_a = config == null ? void 0 : config.sdk.url) != null ? _a : window.location.protocol + "//" + window.location.host
|
|
28
|
-
).toSession();
|
|
29
|
-
setSession(sessionData);
|
|
30
|
-
} catch (e) {
|
|
31
|
-
setError(e instanceof Error ? e.message : "Unknown error occurred");
|
|
32
|
-
if (!(config == null ? void 0 : config.sdk.url)) {
|
|
33
|
-
console.error(
|
|
34
|
-
"Could not fetch session. Make sure you have set the SDK URL in the config."
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
} finally {
|
|
38
|
-
setIsLoading(false);
|
|
39
|
-
}
|
|
40
|
-
}, [config == null ? void 0 : config.sdk.url]);
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
void fetchSession();
|
|
43
|
-
}, [fetchSession]);
|
|
44
|
-
return {
|
|
45
|
-
session: store.session,
|
|
46
|
-
error: store.error,
|
|
47
|
-
isLoading: store.isLoading
|
|
48
|
-
};
|
|
49
|
-
};
|
|
2
|
+
import { useContext } from "react";
|
|
3
|
+
import { SessionContext } from "./session-provider";
|
|
4
|
+
function useSession() {
|
|
5
|
+
if (!SessionContext) {
|
|
6
|
+
throw new Error("[Ory/Elements] useSession must be used on the client");
|
|
7
|
+
}
|
|
8
|
+
return useContext(SessionContext);
|
|
9
|
+
}
|
|
50
10
|
export {
|
|
51
|
-
sessionStore,
|
|
52
11
|
useSession
|
|
53
12
|
};
|
|
54
13
|
//# sourceMappingURL=useSession.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/useSession.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/client/useSession.ts"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\"use client\"\n\nimport { useContext } from \"react\"\nimport { SessionContext } from \"./session-provider\"\n\n/**\n * A hook to get the current session from the Ory Network.\n *\n * Usage:\n * ```ts\n * const session = useSession()\n *\n * if (session.state == \"loading\") {\n * return <div>Loading...</div>\n * }\n *\n * if (session.state == \"authenticated\") {\n * return <div>Session: {session.session.id}</div>\n * }\n * ```\n *\n * :::note\n * This is a client-side hook and must be used within a React component.\n * On the server, you can use the getServerSession function from `@ory/nextjs`\n * and hydrate SessionProvider with the session.\n * :::\n *\n * @returns The current session, and error or loading state.\n */\n\nexport function useSession() {\n if (!SessionContext) {\n throw new Error(\"[Ory/Elements] useSession must be used on the client\")\n }\n return useContext(SessionContext)\n}\n"],"mappings":";AAIA,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AA2BxB,SAAS,aAAa;AAC3B,MAAI,CAAC,gBAAgB;AACnB,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACxE;AACA,SAAO,WAAW,cAAc;AAClC;","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -7,8 +7,7 @@ import { IntlShape } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
declare const buttonStyles: (props?: ({
|
|
9
9
|
intent?: "primary" | "secondary" | null | undefined;
|
|
10
|
-
|
|
11
|
-
defaultVariants?: "intent" | "size" | null | undefined;
|
|
10
|
+
defaultVariants?: "intent" | null | undefined;
|
|
12
11
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
12
|
type ButtonVariants = VariantProps<typeof buttonStyles>;
|
|
14
13
|
|
|
@@ -57,7 +56,9 @@ type OryFormSectionContentProps = PropsWithChildren<{
|
|
|
57
56
|
title?: string;
|
|
58
57
|
description?: string;
|
|
59
58
|
}>;
|
|
60
|
-
type OryFormSectionFooterProps = PropsWithChildren
|
|
59
|
+
type OryFormSectionFooterProps = PropsWithChildren<{
|
|
60
|
+
text?: string;
|
|
61
|
+
}>;
|
|
61
62
|
|
|
62
63
|
type OryCardHeaderProps = Record<string, never>;
|
|
63
64
|
declare function OryCardHeader(): react_jsx_runtime.JSX.Element;
|
|
@@ -266,7 +267,7 @@ type OryFlowComponents = {
|
|
|
266
267
|
/**
|
|
267
268
|
* The SettingsSectionFooter component is rendered around the footer of each section of the settings.
|
|
268
269
|
*/
|
|
269
|
-
SettingsSectionFooter: ComponentType<
|
|
270
|
+
SettingsSectionFooter: ComponentType<OryFormSectionFooterProps>;
|
|
270
271
|
};
|
|
271
272
|
Form: {
|
|
272
273
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,7 @@ import { IntlShape } from 'react-intl';
|
|
|
7
7
|
|
|
8
8
|
declare const buttonStyles: (props?: ({
|
|
9
9
|
intent?: "primary" | "secondary" | null | undefined;
|
|
10
|
-
|
|
11
|
-
defaultVariants?: "intent" | "size" | null | undefined;
|
|
10
|
+
defaultVariants?: "intent" | null | undefined;
|
|
12
11
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
13
12
|
type ButtonVariants = VariantProps<typeof buttonStyles>;
|
|
14
13
|
|
|
@@ -57,7 +56,9 @@ type OryFormSectionContentProps = PropsWithChildren<{
|
|
|
57
56
|
title?: string;
|
|
58
57
|
description?: string;
|
|
59
58
|
}>;
|
|
60
|
-
type OryFormSectionFooterProps = PropsWithChildren
|
|
59
|
+
type OryFormSectionFooterProps = PropsWithChildren<{
|
|
60
|
+
text?: string;
|
|
61
|
+
}>;
|
|
61
62
|
|
|
62
63
|
type OryCardHeaderProps = Record<string, never>;
|
|
63
64
|
declare function OryCardHeader(): react_jsx_runtime.JSX.Element;
|
|
@@ -266,7 +267,7 @@ type OryFlowComponents = {
|
|
|
266
267
|
/**
|
|
267
268
|
* The SettingsSectionFooter component is rendered around the footer of each section of the settings.
|
|
268
269
|
*/
|
|
269
|
-
SettingsSectionFooter: ComponentType<
|
|
270
|
+
SettingsSectionFooter: ComponentType<OryFormSectionFooterProps>;
|
|
270
271
|
};
|
|
271
272
|
Form: {
|
|
272
273
|
/**
|
package/dist/index.js
CHANGED
|
@@ -2259,7 +2259,8 @@ async function onSubmitLogin({ config, flow }, {
|
|
|
2259
2259
|
updateLoginFlowBody: body
|
|
2260
2260
|
}).then(() => {
|
|
2261
2261
|
var _a2;
|
|
2262
|
-
window.location.href =
|
|
2262
|
+
window.location.href = // eslint-disable-next-line promise/always-return
|
|
2263
|
+
(_a2 = flow.return_to) != null ? _a2 : config.sdk.url + "/self-service/login/browser";
|
|
2263
2264
|
}).catch(
|
|
2264
2265
|
clientFetch.handleFlowError({
|
|
2265
2266
|
onRestartFlow: () => {
|
|
@@ -2467,6 +2468,9 @@ function computeDefaultValues(nodes) {
|
|
|
2467
2468
|
return nodes.reduce((acc, node) => {
|
|
2468
2469
|
const attrs = node.attributes;
|
|
2469
2470
|
if (clientFetch.isUiNodeInputAttributes(attrs)) {
|
|
2471
|
+
if (attrs.type === "checkbox" && typeof attrs.value === "undefined") {
|
|
2472
|
+
attrs.value = false;
|
|
2473
|
+
}
|
|
2470
2474
|
if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
|
|
2471
2475
|
return acc;
|
|
2472
2476
|
}
|
|
@@ -2519,19 +2523,19 @@ function triggerToWindowCall(trigger) {
|
|
|
2519
2523
|
}
|
|
2520
2524
|
function triggerToFunction(trigger) {
|
|
2521
2525
|
if (typeof window === "undefined") {
|
|
2522
|
-
console.
|
|
2526
|
+
console.debug(
|
|
2523
2527
|
"The Ory SDK is missing a required function: window is undefined."
|
|
2524
2528
|
);
|
|
2525
2529
|
return void 0;
|
|
2526
2530
|
}
|
|
2527
2531
|
const typedWindow = window;
|
|
2528
2532
|
if (!(trigger in typedWindow) || !typedWindow[trigger]) {
|
|
2529
|
-
console.
|
|
2533
|
+
console.debug(`The Ory SDK is missing a required function: ${trigger}.`);
|
|
2530
2534
|
return void 0;
|
|
2531
2535
|
}
|
|
2532
2536
|
const triggerFn = typedWindow[trigger];
|
|
2533
2537
|
if (typeof triggerFn !== "function") {
|
|
2534
|
-
console.
|
|
2538
|
+
console.debug(
|
|
2535
2539
|
`The Ory SDK is missing a required function: ${trigger}. It is not a function.`
|
|
2536
2540
|
);
|
|
2537
2541
|
return void 0;
|
|
@@ -3105,7 +3109,12 @@ function OrySettingsOidc({ nodes }) {
|
|
|
3105
3109
|
)
|
|
3106
3110
|
}
|
|
3107
3111
|
),
|
|
3108
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3112
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3113
|
+
Card.SettingsSectionFooter,
|
|
3114
|
+
{
|
|
3115
|
+
text: intl.formatMessage({ id: "settings.oidc.info" })
|
|
3116
|
+
}
|
|
3117
|
+
)
|
|
3109
3118
|
] });
|
|
3110
3119
|
}
|
|
3111
3120
|
var getTriggerNode = (nodes) => nodes.find(
|
|
@@ -3162,7 +3171,12 @@ function OrySettingsPasskey({ nodes }) {
|
|
|
3162
3171
|
]
|
|
3163
3172
|
}
|
|
3164
3173
|
),
|
|
3165
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3174
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3175
|
+
Card.SettingsSectionFooter,
|
|
3176
|
+
{
|
|
3177
|
+
text: intl.formatMessage({ id: "settings.passkey.info" })
|
|
3178
|
+
}
|
|
3179
|
+
)
|
|
3166
3180
|
] });
|
|
3167
3181
|
}
|
|
3168
3182
|
var getRegenerateNode = (nodes) => nodes.find(
|
|
@@ -3247,16 +3261,19 @@ function OrySettingsTotp({ nodes }) {
|
|
|
3247
3261
|
children: content
|
|
3248
3262
|
}
|
|
3249
3263
|
),
|
|
3250
|
-
/* @__PURE__ */ jsxRuntime.
|
|
3251
|
-
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3258
|
-
|
|
3259
|
-
|
|
3264
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3265
|
+
Card.SettingsSectionFooter,
|
|
3266
|
+
{
|
|
3267
|
+
text: totpUnlink ? intl.formatMessage({ id: "settings.totp.info.linked" }) : intl.formatMessage({ id: "settings.totp.info.not-linked" }),
|
|
3268
|
+
children: totpLinkButton && /* @__PURE__ */ jsxRuntime.jsx(
|
|
3269
|
+
Node2.Button,
|
|
3270
|
+
{
|
|
3271
|
+
node: totpLinkButton,
|
|
3272
|
+
attributes: totpLinkButton.attributes
|
|
3273
|
+
}
|
|
3274
|
+
)
|
|
3275
|
+
}
|
|
3276
|
+
)
|
|
3260
3277
|
] });
|
|
3261
3278
|
}
|
|
3262
3279
|
var getInputNode = (nodes) => nodes.find(
|
|
@@ -3268,9 +3285,6 @@ var getTriggerNode2 = (nodes) => nodes.find(
|
|
|
3268
3285
|
var getRemoveButtons = (nodes) => nodes.filter(
|
|
3269
3286
|
(node) => "name" in node.attributes && node.attributes.name === "webauthn_remove"
|
|
3270
3287
|
);
|
|
3271
|
-
var getScriptNode = (nodes) => nodes.find(
|
|
3272
|
-
(node) => "id" in node.attributes && node.attributes.id === "webauthn_script"
|
|
3273
|
-
);
|
|
3274
3288
|
var getRegisterNode = (nodes) => nodes.find(
|
|
3275
3289
|
(node) => "name" in node.attributes && node.attributes.name === "webauthn_register"
|
|
3276
3290
|
);
|
|
@@ -3283,7 +3297,6 @@ function OrySettingsWebauthn({ nodes }) {
|
|
|
3283
3297
|
const triggerButton = getTriggerNode2(nodes);
|
|
3284
3298
|
const inputNode = getInputNode(nodes);
|
|
3285
3299
|
const removeButtons = getRemoveButtons(nodes);
|
|
3286
|
-
const scriptNode = getScriptNode(nodes);
|
|
3287
3300
|
const registerNode = getRegisterNode(nodes);
|
|
3288
3301
|
if (!inputNode || !triggerButton) {
|
|
3289
3302
|
return null;
|
|
@@ -3306,8 +3319,6 @@ function OrySettingsWebauthn({ nodes }) {
|
|
|
3306
3319
|
}),
|
|
3307
3320
|
children: [
|
|
3308
3321
|
(_a = groups.default) == null ? void 0 : _a.map((node, i) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, `webauthn-default-${i}`)),
|
|
3309
|
-
scriptNode && /* @__PURE__ */ jsxRuntime.jsx(Node, { node: scriptNode }),
|
|
3310
|
-
registerNode && /* @__PURE__ */ jsxRuntime.jsx(Node, { node: registerNode }),
|
|
3311
3322
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3312
3323
|
Form.WebauthnSettings,
|
|
3313
3324
|
{
|
|
@@ -3319,11 +3330,17 @@ function OrySettingsWebauthn({ nodes }) {
|
|
|
3319
3330
|
},
|
|
3320
3331
|
removeButtons
|
|
3321
3332
|
}
|
|
3322
|
-
)
|
|
3333
|
+
),
|
|
3334
|
+
registerNode && /* @__PURE__ */ jsxRuntime.jsx(Node, { node: registerNode })
|
|
3323
3335
|
]
|
|
3324
3336
|
}
|
|
3325
3337
|
),
|
|
3326
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3338
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3339
|
+
Card.SettingsSectionFooter,
|
|
3340
|
+
{
|
|
3341
|
+
text: intl.formatMessage({ id: "settings.webauthn.info" })
|
|
3342
|
+
}
|
|
3343
|
+
)
|
|
3327
3344
|
] });
|
|
3328
3345
|
}
|
|
3329
3346
|
function SettingsSectionContent({ group, nodes }) {
|
|
@@ -3375,11 +3392,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
3375
3392
|
).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)) })
|
|
3376
3393
|
] });
|
|
3377
3394
|
}
|
|
3395
|
+
var getScriptNode = (nodes) => nodes.find(
|
|
3396
|
+
(node) => "id" in node.attributes && node.attributes.id === "webauthn_script"
|
|
3397
|
+
);
|
|
3378
3398
|
function OrySettingsCard() {
|
|
3379
3399
|
const { flow } = useOryFlow();
|
|
3380
3400
|
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
3401
|
+
const scriptNode = getScriptNode(flow.ui.nodes);
|
|
3381
3402
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
3382
3403
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
|
|
3404
|
+
scriptNode && /* @__PURE__ */ jsxRuntime.jsx(Node, { node: scriptNode }),
|
|
3383
3405
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
3384
3406
|
if (group === clientFetch.UiNodeGroupEnum.Default) {
|
|
3385
3407
|
return null;
|