@ory/elements-react 0.0.0-pr.3a98de9 → 0.0.0-pr.5cdcf132
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 +162 -0
- package/README.md +253 -4
- package/dist/client/frontendClient.d.mts +5 -2
- package/dist/client/frontendClient.d.ts +5 -2
- package/dist/client/frontendClient.js +25 -2
- package/dist/client/frontendClient.js.map +1 -1
- package/dist/client/frontendClient.mjs +25 -2
- package/dist/client/frontendClient.mjs.map +1 -1
- package/dist/client/index.js +3 -3
- package/dist/index.d.mts +43 -11
- package/dist/index.d.ts +43 -11
- package/dist/index.js +739 -311
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +742 -315
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +60 -10
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +31 -5
- package/dist/theme/default/index.d.ts +31 -5
- package/dist/theme/default/index.js +4043 -866
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +4097 -845
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +17 -15
- package/tailwind/generated/default-variables.css +1 -1
- package/tsconfig.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UiNodeGroupEnum, isUiNodeInputAttributes, FlowType,
|
|
2
|
-
import { createContext, useContext,
|
|
1
|
+
import { UiNodeGroupEnum, isUiNodeInputAttributes, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, FlowType, getNodeId, isUiNodeTextAttributes, UiNodeInputAttributesTypeEnum, handleContinueWith, handleFlowError, settingsUrl, isResponseError, loginUrl, recoveryUrl, verificationUrl, registrationUrl, Configuration, FrontendApi, instanceOfContinueWithRecoveryUi } from '@ory/client-fetch';
|
|
2
|
+
import { createContext, useContext, useState, useMemo, useReducer, useRef, useEffect } from 'react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useIntl, IntlProvider as IntlProvider$1 } from 'react-intl';
|
|
5
|
-
import { useForm, FormProvider
|
|
5
|
+
import { useFormContext, useForm, FormProvider } from 'react-hook-form';
|
|
6
6
|
|
|
7
7
|
// src/context/component.tsx
|
|
8
8
|
var ComponentContext = createContext({
|
|
@@ -34,6 +34,7 @@ function useGroupSorter() {
|
|
|
34
34
|
}
|
|
35
35
|
var defaultNodeOrder = [
|
|
36
36
|
"oidc",
|
|
37
|
+
"saml",
|
|
37
38
|
"identifier_first",
|
|
38
39
|
"default",
|
|
39
40
|
"profile",
|
|
@@ -91,26 +92,10 @@ function OryComponentProvider({
|
|
|
91
92
|
}
|
|
92
93
|
);
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
99
|
-
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
100
|
-
}
|
|
101
|
-
function filterOidcOut(nodes) {
|
|
102
|
-
return nodes.filter((node) => node.group !== UiNodeGroupEnum.Oidc);
|
|
103
|
-
}
|
|
104
|
-
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
105
|
-
var _a, _b, _c, _d;
|
|
106
|
-
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
107
|
-
return [
|
|
108
|
-
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
109
|
-
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
110
|
-
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
111
|
-
].flat().filter(
|
|
112
|
-
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
113
|
-
).concat(selectedNodes);
|
|
95
|
+
|
|
96
|
+
// src/theme/default/utils/form.ts
|
|
97
|
+
function isGroupImmediateSubmit(group) {
|
|
98
|
+
return group === "code";
|
|
114
99
|
}
|
|
115
100
|
function triggerToWindowCall(trigger) {
|
|
116
101
|
if (!trigger) {
|
|
@@ -184,21 +169,32 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
184
169
|
].includes(group)
|
|
185
170
|
);
|
|
186
171
|
}
|
|
187
|
-
function useNodesGroups(nodes) {
|
|
172
|
+
function useNodesGroups(nodes, { omit } = {}) {
|
|
188
173
|
const groupSorter = useGroupSorter();
|
|
189
174
|
const groups = useMemo(() => {
|
|
190
|
-
var _a;
|
|
175
|
+
var _a, _b;
|
|
191
176
|
const groups2 = {};
|
|
177
|
+
const groupRetained = {};
|
|
192
178
|
for (const node of nodes) {
|
|
193
|
-
if (node.type === "script") {
|
|
194
|
-
continue;
|
|
195
|
-
}
|
|
196
179
|
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
197
180
|
groupNodes.push(node);
|
|
198
181
|
groups2[node.group] = groupNodes;
|
|
182
|
+
if ((omit == null ? void 0 : omit.includes("script")) && isUiNodeScriptAttributes(node.attributes)) {
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if ((omit == null ? void 0 : omit.includes("input_hidden")) && isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
|
|
199
189
|
}
|
|
200
|
-
|
|
201
|
-
|
|
190
|
+
const finalGroups = {};
|
|
191
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
192
|
+
if (count > 0) {
|
|
193
|
+
finalGroups[group] = groups2[group];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return finalGroups;
|
|
197
|
+
}, [nodes, omit]);
|
|
202
198
|
const entries = useMemo(
|
|
203
199
|
() => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
|
|
204
200
|
[groups, groupSorter]
|
|
@@ -211,6 +207,93 @@ function useNodesGroups(nodes) {
|
|
|
211
207
|
var findNode = (nodes, opt) => nodes.find((n) => {
|
|
212
208
|
return n.attributes.node_type === opt.node_type && (opt.group instanceof RegExp ? n.group.match(opt.group) : n.group === opt.group) && (opt.name && n.attributes.node_type === "input" ? opt.name instanceof RegExp ? n.attributes.name.match(opt.name) : n.attributes.name === opt.name : !opt.name);
|
|
213
209
|
});
|
|
210
|
+
function useFunctionalNodes(nodes) {
|
|
211
|
+
return nodes.filter(
|
|
212
|
+
({ group }) => [
|
|
213
|
+
UiNodeGroupEnum.Default,
|
|
214
|
+
UiNodeGroupEnum.IdentifierFirst,
|
|
215
|
+
UiNodeGroupEnum.Profile,
|
|
216
|
+
UiNodeGroupEnum.Captcha
|
|
217
|
+
].includes(group)
|
|
218
|
+
);
|
|
219
|
+
}
|
|
220
|
+
function isUiNodeGroupEnum(method) {
|
|
221
|
+
return Object.values(UiNodeGroupEnum).includes(method);
|
|
222
|
+
}
|
|
223
|
+
function isSingleSignOnNode(node) {
|
|
224
|
+
return node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml;
|
|
225
|
+
}
|
|
226
|
+
function hasSingleSignOnNodes(nodes) {
|
|
227
|
+
return nodes.some(isSingleSignOnNode);
|
|
228
|
+
}
|
|
229
|
+
function withoutSingleSignOnNodes(nodes) {
|
|
230
|
+
return nodes.filter((node) => !isSingleSignOnNode(node));
|
|
231
|
+
}
|
|
232
|
+
function isNodeVisible(node) {
|
|
233
|
+
if (isUiNodeScriptAttributes(node.attributes)) {
|
|
234
|
+
return false;
|
|
235
|
+
} else if (isUiNodeInputAttributes(node.attributes)) {
|
|
236
|
+
if (node.attributes.type === "hidden") {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
function useNodeGroupsWithVisibleNodes(nodes) {
|
|
243
|
+
return useMemo(() => {
|
|
244
|
+
var _a, _b;
|
|
245
|
+
const groups = {};
|
|
246
|
+
const groupRetained = {};
|
|
247
|
+
for (const node of nodes) {
|
|
248
|
+
const groupNodes = (_a = groups[node.group]) != null ? _a : [];
|
|
249
|
+
const groupCount = (_b = groupRetained[node.group]) != null ? _b : 0;
|
|
250
|
+
groupNodes.push(node);
|
|
251
|
+
groups[node.group] = groupNodes;
|
|
252
|
+
if (!isNodeVisible(node)) {
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
groupRetained[node.group] = groupCount + 1;
|
|
256
|
+
}
|
|
257
|
+
const finalGroups = {};
|
|
258
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
259
|
+
if (count > 0) {
|
|
260
|
+
finalGroups[group] = groups[group];
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return finalGroups;
|
|
264
|
+
}, [nodes]);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// src/components/card/two-step/utils.ts
|
|
268
|
+
function isChoosingMethod(flow) {
|
|
269
|
+
return flow.flow.ui.nodes.some(
|
|
270
|
+
(node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
|
|
271
|
+
) || flow.flow.ui.nodes.some(
|
|
272
|
+
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
273
|
+
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
274
|
+
}
|
|
275
|
+
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
276
|
+
var _a, _b, _c, _d;
|
|
277
|
+
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
278
|
+
return [
|
|
279
|
+
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
280
|
+
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
281
|
+
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
282
|
+
].flat().filter(
|
|
283
|
+
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
284
|
+
).concat(selectedNodes);
|
|
285
|
+
}
|
|
286
|
+
var handleAfterFormSubmit = (dispatchFormState) => (method) => {
|
|
287
|
+
if (typeof method !== "string" || !isUiNodeGroupEnum(method)) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
if (isGroupImmediateSubmit(method)) {
|
|
291
|
+
dispatchFormState({
|
|
292
|
+
type: "action_select_method",
|
|
293
|
+
method
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
};
|
|
214
297
|
|
|
215
298
|
// src/context/form-state.ts
|
|
216
299
|
function findMethodWithMessage(nodes) {
|
|
@@ -232,7 +315,9 @@ function parseStateFromFlow(flow) {
|
|
|
232
315
|
return { current: "method_active", method: "code" };
|
|
233
316
|
} else if (methodWithMessage) {
|
|
234
317
|
return { current: "method_active", method: methodWithMessage.group };
|
|
235
|
-
} else if (flow.flow.active && !["default", "identifier_first", "oidc"].includes(
|
|
318
|
+
} else if (flow.flow.active && !["default", "identifier_first", "oidc", "saml"].includes(
|
|
319
|
+
flow.flow.active
|
|
320
|
+
)) {
|
|
236
321
|
return { current: "method_active", method: flow.flow.active };
|
|
237
322
|
} else if (isChoosingMethod(flow)) {
|
|
238
323
|
const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
|
|
@@ -256,23 +341,32 @@ function parseStateFromFlow(flow) {
|
|
|
256
341
|
break;
|
|
257
342
|
case FlowType.Settings:
|
|
258
343
|
return { current: "settings" };
|
|
344
|
+
case FlowType.OAuth2Consent:
|
|
345
|
+
return { current: "method_active", method: "oauth2_consent" };
|
|
259
346
|
}
|
|
260
347
|
console.warn(
|
|
261
348
|
`[Ory/Elements React] Encountered an unknown form state on ${flow.flowType} flow with ID ${flow.flow.id}`
|
|
262
349
|
);
|
|
263
350
|
throw new Error("Unknown form state");
|
|
264
351
|
}
|
|
265
|
-
function formStateReducer(state, action) {
|
|
266
|
-
switch (action.type) {
|
|
267
|
-
case "action_flow_update":
|
|
268
|
-
return parseStateFromFlow(action.flow);
|
|
269
|
-
case "action_select_method":
|
|
270
|
-
return { current: "method_active", method: action.method };
|
|
271
|
-
}
|
|
272
|
-
return state;
|
|
273
|
-
}
|
|
274
352
|
function useFormStateReducer(flow) {
|
|
275
|
-
|
|
353
|
+
const action = parseStateFromFlow(flow);
|
|
354
|
+
const [selectedMethod, setSelectedMethod] = useState();
|
|
355
|
+
const formStateReducer = (state, action2) => {
|
|
356
|
+
switch (action2.type) {
|
|
357
|
+
case "action_flow_update": {
|
|
358
|
+
if (selectedMethod)
|
|
359
|
+
return { current: "method_active", method: selectedMethod };
|
|
360
|
+
return parseStateFromFlow(action2.flow);
|
|
361
|
+
}
|
|
362
|
+
case "action_select_method": {
|
|
363
|
+
setSelectedMethod(action2.method);
|
|
364
|
+
return { current: "method_active", method: action2.method };
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return state;
|
|
368
|
+
};
|
|
369
|
+
return useReducer(formStateReducer, action);
|
|
276
370
|
}
|
|
277
371
|
function useOryFlow() {
|
|
278
372
|
const ctx = useContext(OryFlowContext);
|
|
@@ -362,6 +456,22 @@ function computeDefaultValues(nodes) {
|
|
|
362
456
|
if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
|
|
363
457
|
return acc;
|
|
364
458
|
}
|
|
459
|
+
if (attrs.name.startsWith("grant_scope")) {
|
|
460
|
+
const scope = attrs.value;
|
|
461
|
+
if (Array.isArray(acc.grant_scope)) {
|
|
462
|
+
return {
|
|
463
|
+
...acc,
|
|
464
|
+
// We want to have all scopes accepted by default, so that the user has to actively uncheck them.
|
|
465
|
+
grant_scope: [...acc.grant_scope, scope]
|
|
466
|
+
};
|
|
467
|
+
} else if (!acc.grant_scope) {
|
|
468
|
+
return {
|
|
469
|
+
...acc,
|
|
470
|
+
grant_scope: [scope]
|
|
471
|
+
};
|
|
472
|
+
}
|
|
473
|
+
return acc;
|
|
474
|
+
}
|
|
365
475
|
return unrollTrait(
|
|
366
476
|
{
|
|
367
477
|
name: attrs.name,
|
|
@@ -449,11 +559,6 @@ function OryCardContent({ children }) {
|
|
|
449
559
|
const { Card } = useComponents();
|
|
450
560
|
return /* @__PURE__ */ jsx(Card.Content, { children });
|
|
451
561
|
}
|
|
452
|
-
|
|
453
|
-
// src/theme/default/utils/form.ts
|
|
454
|
-
function isGroupImmediateSubmit(group) {
|
|
455
|
-
return group === "code";
|
|
456
|
-
}
|
|
457
562
|
function frontendClient(sdkUrl, opts = {}) {
|
|
458
563
|
const config = new Configuration({
|
|
459
564
|
...opts,
|
|
@@ -793,7 +898,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
793
898
|
if ("lookup_secret_confirm" in submitData || "lookup_secret_reveal" in submitData || "lookup_secret_regenerate" in submitData || "lookup_secret_disable" in submitData) {
|
|
794
899
|
submitData.method = "lookup_secret";
|
|
795
900
|
}
|
|
796
|
-
if (submitData.method ===
|
|
901
|
+
if (submitData.method === UiNodeGroupEnum.Oidc && submitData.link && supportsSelectAccountPrompt.includes(submitData.link)) {
|
|
797
902
|
submitData.upstream_parameters = {
|
|
798
903
|
prompt: "select_account"
|
|
799
904
|
};
|
|
@@ -811,6 +916,19 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
811
916
|
});
|
|
812
917
|
break;
|
|
813
918
|
}
|
|
919
|
+
case FlowType.OAuth2Consent: {
|
|
920
|
+
const response = await fetch(flowContainer.flow.ui.action, {
|
|
921
|
+
method: "POST",
|
|
922
|
+
body: JSON.stringify(data),
|
|
923
|
+
headers: {
|
|
924
|
+
"Content-Type": "application/json"
|
|
925
|
+
}
|
|
926
|
+
});
|
|
927
|
+
const oauth2Success = await response.json();
|
|
928
|
+
if (oauth2Success.redirect_to && typeof oauth2Success.redirect_to === "string") {
|
|
929
|
+
onRedirect(oauth2Success.redirect_to);
|
|
930
|
+
}
|
|
931
|
+
}
|
|
814
932
|
}
|
|
815
933
|
if ("password" in data) {
|
|
816
934
|
methods.setValue("password", "");
|
|
@@ -825,7 +943,11 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
825
943
|
};
|
|
826
944
|
return onSubmit;
|
|
827
945
|
}
|
|
828
|
-
function OryForm({
|
|
946
|
+
function OryForm({
|
|
947
|
+
children,
|
|
948
|
+
onAfterSubmit,
|
|
949
|
+
"data-testid": dataTestId
|
|
950
|
+
}) {
|
|
829
951
|
const { Form } = useComponents();
|
|
830
952
|
const flowContainer = useOryFlow();
|
|
831
953
|
const methods = useFormContext();
|
|
@@ -834,6 +956,9 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
834
956
|
const onSubmit = useOryFormSubmit(onAfterSubmit);
|
|
835
957
|
const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
|
|
836
958
|
if (isUiNodeInputAttributes(node.attributes)) {
|
|
959
|
+
if (node.attributes.type === "hidden") {
|
|
960
|
+
return false;
|
|
961
|
+
}
|
|
837
962
|
return node.attributes.name !== "csrf_token";
|
|
838
963
|
} else if (isUiNodeAnchorAttributes(node.attributes)) {
|
|
839
964
|
return true;
|
|
@@ -853,17 +978,15 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
853
978
|
}),
|
|
854
979
|
type: "error"
|
|
855
980
|
};
|
|
856
|
-
return /* @__PURE__ */
|
|
857
|
-
/* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }),
|
|
858
|
-
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
859
|
-
] });
|
|
981
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": dataTestId, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }) });
|
|
860
982
|
}
|
|
861
|
-
if (flowContainer.flowType === FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
983
|
+
if ((flowContainer.flowType === FlowType.Login || flowContainer.flowType === FlowType.Registration) && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
862
984
|
methods.setValue("method", "code");
|
|
863
985
|
}
|
|
864
986
|
return /* @__PURE__ */ jsx(
|
|
865
987
|
Form.Root,
|
|
866
988
|
{
|
|
989
|
+
"data-testid": dataTestId,
|
|
867
990
|
action: flowContainer.flow.ui.action,
|
|
868
991
|
method: flowContainer.flow.ui.method,
|
|
869
992
|
onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
|
|
@@ -898,7 +1021,7 @@ var NodeInput = ({
|
|
|
898
1021
|
}) => {
|
|
899
1022
|
var _a;
|
|
900
1023
|
const { Node: Node2 } = useComponents();
|
|
901
|
-
const { setValue } = useFormContext();
|
|
1024
|
+
const { setValue, watch } = useFormContext();
|
|
902
1025
|
const {
|
|
903
1026
|
onloadTrigger,
|
|
904
1027
|
onclickTrigger,
|
|
@@ -911,7 +1034,7 @@ var NodeInput = ({
|
|
|
911
1034
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
912
1035
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
913
1036
|
const setFormValue = () => {
|
|
914
|
-
if (attrs.value && !(isResendNode || isScreenSelectionNode)) {
|
|
1037
|
+
if (attrs.value && !(isResendNode || isScreenSelectionNode || node.group === UiNodeGroupEnum.Oauth2Consent)) {
|
|
915
1038
|
setValue(attrs.name, attrs.value);
|
|
916
1039
|
}
|
|
917
1040
|
};
|
|
@@ -934,8 +1057,21 @@ var NodeInput = ({
|
|
|
934
1057
|
triggerToWindowCall(onclickTrigger);
|
|
935
1058
|
}
|
|
936
1059
|
};
|
|
937
|
-
const isSocial = (attrs.name === "provider" || attrs.name === "link") && node.group ===
|
|
1060
|
+
const isSocial = (attrs.name === "provider" || attrs.name === "link") && (node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml);
|
|
938
1061
|
const isPinCodeInput = attrs.name === "code" && node.group === "code" || attrs.name === "totp_code" && node.group === "totp";
|
|
1062
|
+
const handleScopeChange = (checked) => {
|
|
1063
|
+
const scopes = watch("grant_scope");
|
|
1064
|
+
if (Array.isArray(scopes)) {
|
|
1065
|
+
if (checked) {
|
|
1066
|
+
setValue("grant_scope", Array.from(/* @__PURE__ */ new Set([...scopes, attrs.value])));
|
|
1067
|
+
} else {
|
|
1068
|
+
setValue(
|
|
1069
|
+
"grant_scope",
|
|
1070
|
+
scopes.filter((scope) => scope !== attrs.value)
|
|
1071
|
+
);
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
};
|
|
939
1075
|
switch (attributes.type) {
|
|
940
1076
|
case UiNodeInputAttributesTypeEnum.Submit:
|
|
941
1077
|
case UiNodeInputAttributesTypeEnum.Button:
|
|
@@ -945,6 +1081,9 @@ var NodeInput = ({
|
|
|
945
1081
|
if (isResendNode || isScreenSelectionNode) {
|
|
946
1082
|
return null;
|
|
947
1083
|
}
|
|
1084
|
+
if (node.group === "oauth2_consent") {
|
|
1085
|
+
return null;
|
|
1086
|
+
}
|
|
948
1087
|
return /* @__PURE__ */ jsx(
|
|
949
1088
|
Node2.Label,
|
|
950
1089
|
{
|
|
@@ -956,6 +1095,21 @@ var NodeInput = ({
|
|
|
956
1095
|
case UiNodeInputAttributesTypeEnum.DatetimeLocal:
|
|
957
1096
|
throw new Error("Not implemented");
|
|
958
1097
|
case UiNodeInputAttributesTypeEnum.Checkbox:
|
|
1098
|
+
if (node.group === "oauth2_consent" && node.attributes.node_type === "input") {
|
|
1099
|
+
switch (node.attributes.name) {
|
|
1100
|
+
case "grant_scope":
|
|
1101
|
+
return /* @__PURE__ */ jsx(
|
|
1102
|
+
Node2.ConsentScopeCheckbox,
|
|
1103
|
+
{
|
|
1104
|
+
attributes: attrs,
|
|
1105
|
+
node,
|
|
1106
|
+
onCheckedChange: handleScopeChange
|
|
1107
|
+
}
|
|
1108
|
+
);
|
|
1109
|
+
default:
|
|
1110
|
+
return null;
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
959
1113
|
return /* @__PURE__ */ jsx(
|
|
960
1114
|
Node2.Label,
|
|
961
1115
|
{
|
|
@@ -1017,12 +1171,14 @@ function OryFormOidcButtons() {
|
|
|
1017
1171
|
flow: { ui }
|
|
1018
1172
|
} = useOryFlow();
|
|
1019
1173
|
const { setValue } = useFormContext();
|
|
1020
|
-
const filteredNodes = ui.nodes.filter(
|
|
1174
|
+
const filteredNodes = ui.nodes.filter(
|
|
1175
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1176
|
+
);
|
|
1021
1177
|
const { Form, Node: Node2 } = useComponents();
|
|
1022
1178
|
if (filteredNodes.length === 0) {
|
|
1023
1179
|
return null;
|
|
1024
1180
|
}
|
|
1025
|
-
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node
|
|
1181
|
+
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node) => /* @__PURE__ */ jsx(
|
|
1026
1182
|
Node2.OidcButton,
|
|
1027
1183
|
{
|
|
1028
1184
|
node,
|
|
@@ -1032,40 +1188,126 @@ function OryFormOidcButtons() {
|
|
|
1032
1188
|
"provider",
|
|
1033
1189
|
node.attributes.value
|
|
1034
1190
|
);
|
|
1035
|
-
setValue("method",
|
|
1191
|
+
setValue("method", node.group);
|
|
1036
1192
|
}
|
|
1037
1193
|
},
|
|
1038
|
-
|
|
1194
|
+
getNodeId(node)
|
|
1039
1195
|
)) });
|
|
1040
1196
|
}
|
|
1041
1197
|
function OryFormSocialButtonsForm() {
|
|
1042
1198
|
const {
|
|
1043
1199
|
flow: { ui }
|
|
1044
1200
|
} = useOryFlow();
|
|
1045
|
-
const filteredNodes = ui.nodes.filter(
|
|
1201
|
+
const filteredNodes = ui.nodes.filter(
|
|
1202
|
+
(node) => node.group === UiNodeGroupEnum.Saml || node.group === UiNodeGroupEnum.Oidc
|
|
1203
|
+
);
|
|
1046
1204
|
if (filteredNodes.length === 0) {
|
|
1047
1205
|
return null;
|
|
1048
1206
|
}
|
|
1049
|
-
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1207
|
+
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1050
1208
|
}
|
|
1051
|
-
function
|
|
1052
|
-
|
|
1209
|
+
function OryTwoStepCardStateMethodActive({
|
|
1210
|
+
formState
|
|
1211
|
+
}) {
|
|
1212
|
+
const { Form } = useComponents();
|
|
1213
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1214
|
+
const { ui } = flow;
|
|
1215
|
+
const nodeSorter = useNodeSorter();
|
|
1216
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1217
|
+
const groupsToShow = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1218
|
+
const finalNodes = getFinalNodes(groupsToShow, formState.method);
|
|
1219
|
+
const selectedMethodIsSocial = formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml;
|
|
1220
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1221
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1222
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1223
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1224
|
+
selectedMethodIsSocial && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1225
|
+
/* @__PURE__ */ jsx(
|
|
1226
|
+
OryForm,
|
|
1227
|
+
{
|
|
1228
|
+
"data-testid": `ory/form/methods/local`,
|
|
1229
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1230
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1231
|
+
ui.nodes.filter(
|
|
1232
|
+
(n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Captcha || n.group === UiNodeGroupEnum.Default || n.group === UiNodeGroupEnum.Profile
|
|
1233
|
+
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1234
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1235
|
+
] })
|
|
1236
|
+
}
|
|
1237
|
+
)
|
|
1238
|
+
] }),
|
|
1239
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1240
|
+
] });
|
|
1053
1241
|
}
|
|
1054
|
-
function
|
|
1055
|
-
var _a, _b, _c, _d;
|
|
1242
|
+
function OryTwoStepCardStateProvideIdentifier() {
|
|
1056
1243
|
const { Form, Card } = useComponents();
|
|
1057
|
-
const {
|
|
1058
|
-
const { ui } = flow;
|
|
1244
|
+
const { flowType, flow, dispatchFormState } = useOryFlow();
|
|
1059
1245
|
const nodeSorter = useNodeSorter();
|
|
1060
1246
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1061
|
-
const
|
|
1062
|
-
const
|
|
1247
|
+
const nonSsoNodes = withoutSingleSignOnNodes(flow.ui.nodes).sort(sortNodes);
|
|
1248
|
+
const hasSso = flow.ui.nodes.filter(isNodeVisible).some(
|
|
1249
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1250
|
+
);
|
|
1251
|
+
const showSsoDivider = hasSso && nonSsoNodes.some(isNodeVisible);
|
|
1252
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1253
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1254
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1255
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1256
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1257
|
+
/* @__PURE__ */ jsx(
|
|
1258
|
+
OryForm,
|
|
1259
|
+
{
|
|
1260
|
+
"data-testid": `ory/form/methods/local`,
|
|
1261
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1262
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1263
|
+
showSsoDivider && /* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1264
|
+
nonSsoNodes.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1265
|
+
] })
|
|
1266
|
+
}
|
|
1267
|
+
)
|
|
1268
|
+
] }),
|
|
1269
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1270
|
+
] });
|
|
1271
|
+
}
|
|
1272
|
+
function AuthMethodList({
|
|
1273
|
+
options,
|
|
1274
|
+
setSelectedGroup
|
|
1275
|
+
}) {
|
|
1276
|
+
const { Card } = useComponents();
|
|
1277
|
+
const { setValue, getValues } = useFormContext();
|
|
1278
|
+
if (Object.entries(options).length === 0) {
|
|
1279
|
+
return null;
|
|
1280
|
+
}
|
|
1281
|
+
const handleClick = (group, options2) => {
|
|
1282
|
+
var _a, _b, _c, _d;
|
|
1283
|
+
if (isGroupImmediateSubmit(group)) {
|
|
1284
|
+
if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
|
|
1285
|
+
setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
|
|
1286
|
+
}
|
|
1287
|
+
setValue("method", group);
|
|
1288
|
+
} else {
|
|
1289
|
+
setSelectedGroup(group);
|
|
1290
|
+
}
|
|
1291
|
+
};
|
|
1292
|
+
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1293
|
+
Card.AuthMethodListItem,
|
|
1294
|
+
{
|
|
1295
|
+
group,
|
|
1296
|
+
title: options2.title,
|
|
1297
|
+
onClick: () => handleClick(group, options2)
|
|
1298
|
+
},
|
|
1299
|
+
group
|
|
1300
|
+
)) });
|
|
1301
|
+
}
|
|
1302
|
+
function toAuthMethodPickerOptions(visibleGroups) {
|
|
1303
|
+
return Object.fromEntries(
|
|
1063
1304
|
Object.values(UiNodeGroupEnum).filter((group) => {
|
|
1064
|
-
var
|
|
1065
|
-
return (
|
|
1305
|
+
var _a;
|
|
1306
|
+
return (_a = visibleGroups[group]) == null ? void 0 : _a.length;
|
|
1066
1307
|
}).filter(
|
|
1067
1308
|
(group) => ![
|
|
1068
1309
|
UiNodeGroupEnum.Oidc,
|
|
1310
|
+
UiNodeGroupEnum.Saml,
|
|
1069
1311
|
UiNodeGroupEnum.Default,
|
|
1070
1312
|
UiNodeGroupEnum.IdentifierFirst,
|
|
1071
1313
|
UiNodeGroupEnum.Profile,
|
|
@@ -1073,7 +1315,19 @@ function OryTwoStepCard() {
|
|
|
1073
1315
|
].includes(group)
|
|
1074
1316
|
).map((g) => [g, {}])
|
|
1075
1317
|
);
|
|
1076
|
-
|
|
1318
|
+
}
|
|
1319
|
+
function OryTwoStepCardStateSelectMethod() {
|
|
1320
|
+
var _a, _b, _c, _d;
|
|
1321
|
+
const { Form, Card, Message } = useComponents();
|
|
1322
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1323
|
+
const { ui } = flow;
|
|
1324
|
+
const intl = useIntl();
|
|
1325
|
+
const nodeSorter = useNodeSorter();
|
|
1326
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1327
|
+
const visibleGroups = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1328
|
+
const authMethodBlocks = toAuthMethodPickerOptions(visibleGroups);
|
|
1329
|
+
const authMethodAdditionalNodes = useFunctionalNodes(ui.nodes);
|
|
1330
|
+
if (UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1077
1331
|
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1078
1332
|
group: "identifier_first",
|
|
1079
1333
|
node_type: "input",
|
|
@@ -1085,7 +1339,7 @@ function OryTwoStepCard() {
|
|
|
1085
1339
|
name: "address"
|
|
1086
1340
|
})) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
|
|
1087
1341
|
if (identifier) {
|
|
1088
|
-
|
|
1342
|
+
authMethodBlocks[UiNodeGroupEnum.Code] = {
|
|
1089
1343
|
title: {
|
|
1090
1344
|
id: "identities.messages.1010023",
|
|
1091
1345
|
values: { address: identifier }
|
|
@@ -1093,79 +1347,58 @@ function OryTwoStepCard() {
|
|
|
1093
1347
|
};
|
|
1094
1348
|
}
|
|
1095
1349
|
}
|
|
1096
|
-
const
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
}
|
|
1102
|
-
|
|
1103
|
-
dispatchFormState({
|
|
1104
|
-
type: "action_select_method",
|
|
1105
|
-
method
|
|
1106
|
-
});
|
|
1107
|
-
}
|
|
1350
|
+
const noMethods = {
|
|
1351
|
+
id: 5000002,
|
|
1352
|
+
text: intl.formatMessage({
|
|
1353
|
+
id: `identities.messages.5000002`,
|
|
1354
|
+
defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
|
|
1355
|
+
}),
|
|
1356
|
+
type: "error"
|
|
1108
1357
|
};
|
|
1109
|
-
const hasOidc = ui.nodes.some((node) => node.group === UiNodeGroupEnum.Oidc);
|
|
1110
|
-
const showOidc = !(formState.current === "method_active" && formState.method !== "oidc");
|
|
1111
1358
|
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1112
1359
|
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1113
1360
|
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1114
1361
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1115
|
-
|
|
1116
|
-
/* @__PURE__ */
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
formState.current === "select_method" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1362
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1363
|
+
Object.entries(authMethodBlocks).length > 0 ? /* @__PURE__ */ jsx(
|
|
1364
|
+
OryForm,
|
|
1365
|
+
{
|
|
1366
|
+
"data-testid": `ory/form/methods/local`,
|
|
1367
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1368
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1123
1369
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1124
1370
|
/* @__PURE__ */ jsx(
|
|
1125
1371
|
AuthMethodList,
|
|
1126
1372
|
{
|
|
1127
|
-
options,
|
|
1373
|
+
options: authMethodBlocks,
|
|
1128
1374
|
setSelectedGroup: (group) => dispatchFormState({
|
|
1129
1375
|
type: "action_select_method",
|
|
1130
1376
|
method: group
|
|
1131
1377
|
})
|
|
1132
1378
|
}
|
|
1133
1379
|
),
|
|
1134
|
-
|
|
1135
|
-
] }),
|
|
1136
|
-
formState.current === "method_active" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1137
|
-
ui.nodes.filter((n) => n.type === "script").map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1138
|
-
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1380
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1139
1381
|
] })
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1382
|
+
}
|
|
1383
|
+
) : !hasSingleSignOnNodes(ui.nodes) && /* @__PURE__ */ jsx("div", { "data-testid": `ory/form/methods/local`, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: noMethods }, noMethods.id) }) })
|
|
1384
|
+
] }),
|
|
1385
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1144
1386
|
] });
|
|
1145
1387
|
}
|
|
1146
|
-
function
|
|
1147
|
-
const {
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
};
|
|
1160
|
-
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1161
|
-
Card.AuthMethodListItem,
|
|
1162
|
-
{
|
|
1163
|
-
group,
|
|
1164
|
-
title: options2.title,
|
|
1165
|
-
onClick: () => handleClick(group, options2)
|
|
1166
|
-
},
|
|
1167
|
-
group
|
|
1168
|
-
)) });
|
|
1388
|
+
function OryTwoStepCard() {
|
|
1389
|
+
const { formState } = useOryFlow();
|
|
1390
|
+
switch (formState.current) {
|
|
1391
|
+
case "provide_identifier":
|
|
1392
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateProvideIdentifier, {});
|
|
1393
|
+
case "select_method":
|
|
1394
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateSelectMethod, {});
|
|
1395
|
+
case "method_active":
|
|
1396
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateMethodActive, { formState });
|
|
1397
|
+
}
|
|
1398
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1399
|
+
"unknown form state: ",
|
|
1400
|
+
formState.current
|
|
1401
|
+
] });
|
|
1169
1402
|
}
|
|
1170
1403
|
function OryFormGroups({ groups }) {
|
|
1171
1404
|
const {
|
|
@@ -1175,8 +1408,8 @@ function OryFormGroups({ groups }) {
|
|
|
1175
1408
|
const { flowType } = useOryFlow();
|
|
1176
1409
|
const { Form } = useComponents();
|
|
1177
1410
|
const nodes = ui.nodes.filter((node) => groups.indexOf(node.group) > -1).sort((a, b) => nodeSorter(a, b, { flowType }));
|
|
1178
|
-
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node
|
|
1179
|
-
return /* @__PURE__ */ jsx(Node, { node },
|
|
1411
|
+
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node) => {
|
|
1412
|
+
return /* @__PURE__ */ jsx(Node, { node }, getNodeId(node));
|
|
1180
1413
|
}) });
|
|
1181
1414
|
}
|
|
1182
1415
|
function OryFormSection({
|
|
@@ -1205,14 +1438,29 @@ function OryFormSectionInner({
|
|
|
1205
1438
|
}
|
|
1206
1439
|
);
|
|
1207
1440
|
}
|
|
1441
|
+
function OryConsentCard() {
|
|
1442
|
+
const { Form, Card } = useComponents();
|
|
1443
|
+
const flow = useOryFlow();
|
|
1444
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1445
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1446
|
+
/* @__PURE__ */ jsx(OryCardContent, { children: /* @__PURE__ */ jsxs(OryForm, { children: [
|
|
1447
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1448
|
+
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) }),
|
|
1449
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1450
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1451
|
+
] }) })
|
|
1452
|
+
] });
|
|
1453
|
+
}
|
|
1208
1454
|
function OryFormGroupDivider() {
|
|
1209
1455
|
const { Card } = useComponents();
|
|
1210
1456
|
const {
|
|
1211
1457
|
flow: { ui }
|
|
1212
1458
|
} = useOryFlow();
|
|
1213
|
-
const filteredNodes = ui.nodes.filter(
|
|
1459
|
+
const filteredNodes = ui.nodes.filter(
|
|
1460
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1461
|
+
);
|
|
1214
1462
|
const otherNodes = ui.nodes.filter(
|
|
1215
|
-
(node) => node.group
|
|
1463
|
+
(node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml) && node.group !== "default"
|
|
1216
1464
|
);
|
|
1217
1465
|
if (filteredNodes.length > 0 && otherNodes.length > 0) {
|
|
1218
1466
|
return /* @__PURE__ */ jsx(Card.Divider, {});
|
|
@@ -1238,7 +1486,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1238
1486
|
onClick: () => {
|
|
1239
1487
|
if (node.attributes.node_type === "input") {
|
|
1240
1488
|
setValue("link", node.attributes.value);
|
|
1241
|
-
setValue("method",
|
|
1489
|
+
setValue("method", node.group);
|
|
1242
1490
|
}
|
|
1243
1491
|
}
|
|
1244
1492
|
}));
|
|
@@ -1247,7 +1495,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1247
1495
|
onClick: () => {
|
|
1248
1496
|
if (node.attributes.node_type === "input") {
|
|
1249
1497
|
setValue("unlink", node.attributes.value);
|
|
1250
|
-
setValue("method",
|
|
1498
|
+
setValue("method", node.group);
|
|
1251
1499
|
}
|
|
1252
1500
|
}
|
|
1253
1501
|
}));
|
|
@@ -1556,16 +1804,19 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1556
1804
|
const { Card } = useComponents();
|
|
1557
1805
|
const intl = useIntl();
|
|
1558
1806
|
const { flow } = useOryFlow();
|
|
1559
|
-
const
|
|
1807
|
+
const groupedNodes = useNodesGroups(flow.ui.nodes, {
|
|
1808
|
+
// Script nodes are already handled by the parent component.
|
|
1809
|
+
omit: ["script"]
|
|
1810
|
+
});
|
|
1560
1811
|
if (group === UiNodeGroupEnum.Totp) {
|
|
1561
1812
|
return /* @__PURE__ */ jsxs(
|
|
1562
1813
|
OryFormSection,
|
|
1563
1814
|
{
|
|
1564
|
-
nodes:
|
|
1815
|
+
nodes: groupedNodes.groups.totp,
|
|
1565
1816
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1566
1817
|
children: [
|
|
1567
|
-
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a =
|
|
1568
|
-
(_b =
|
|
1818
|
+
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
1819
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1569
1820
|
]
|
|
1570
1821
|
}
|
|
1571
1822
|
);
|
|
@@ -1574,16 +1825,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1574
1825
|
return /* @__PURE__ */ jsxs(
|
|
1575
1826
|
OryFormSection,
|
|
1576
1827
|
{
|
|
1577
|
-
nodes:
|
|
1828
|
+
nodes: groupedNodes.groups.lookup_secret,
|
|
1578
1829
|
"data-testid": "ory/screen/settings/group/lookup_secret",
|
|
1579
1830
|
children: [
|
|
1580
1831
|
/* @__PURE__ */ jsx(
|
|
1581
1832
|
OrySettingsRecoveryCodes,
|
|
1582
1833
|
{
|
|
1583
|
-
nodes: (_c =
|
|
1834
|
+
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1584
1835
|
}
|
|
1585
1836
|
),
|
|
1586
|
-
(_d =
|
|
1837
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1587
1838
|
]
|
|
1588
1839
|
}
|
|
1589
1840
|
);
|
|
@@ -1592,11 +1843,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1592
1843
|
return /* @__PURE__ */ jsxs(
|
|
1593
1844
|
OryFormSection,
|
|
1594
1845
|
{
|
|
1595
|
-
nodes:
|
|
1846
|
+
nodes: groupedNodes.groups.oidc,
|
|
1596
1847
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1597
1848
|
children: [
|
|
1598
|
-
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e =
|
|
1599
|
-
(_f =
|
|
1849
|
+
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
1850
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1600
1851
|
]
|
|
1601
1852
|
}
|
|
1602
1853
|
);
|
|
@@ -1605,11 +1856,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1605
1856
|
return /* @__PURE__ */ jsxs(
|
|
1606
1857
|
OryFormSection,
|
|
1607
1858
|
{
|
|
1608
|
-
nodes:
|
|
1859
|
+
nodes: groupedNodes.groups.webauthn,
|
|
1609
1860
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1610
1861
|
children: [
|
|
1611
|
-
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g =
|
|
1612
|
-
(_h =
|
|
1862
|
+
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
1863
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1613
1864
|
]
|
|
1614
1865
|
}
|
|
1615
1866
|
);
|
|
@@ -1618,11 +1869,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1618
1869
|
return /* @__PURE__ */ jsxs(
|
|
1619
1870
|
OryFormSection,
|
|
1620
1871
|
{
|
|
1621
|
-
nodes:
|
|
1872
|
+
nodes: groupedNodes.groups.passkey,
|
|
1622
1873
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1623
1874
|
children: [
|
|
1624
|
-
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i =
|
|
1625
|
-
(_j =
|
|
1875
|
+
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
1876
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1626
1877
|
]
|
|
1627
1878
|
}
|
|
1628
1879
|
);
|
|
@@ -1643,30 +1894,30 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1643
1894
|
id: `settings.${group}.description`
|
|
1644
1895
|
}),
|
|
1645
1896
|
children: [
|
|
1646
|
-
(_k =
|
|
1897
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))),
|
|
1647
1898
|
nodes.filter(
|
|
1648
1899
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1649
|
-
).map((node
|
|
1900
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1650
1901
|
]
|
|
1651
1902
|
}
|
|
1652
1903
|
),
|
|
1653
1904
|
/* @__PURE__ */ jsx(Card.SettingsSectionFooter, { children: nodes.filter(
|
|
1654
1905
|
(node) => "type" in node.attributes && node.attributes.type === "submit"
|
|
1655
|
-
).map((node
|
|
1906
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) })
|
|
1656
1907
|
]
|
|
1657
1908
|
}
|
|
1658
1909
|
);
|
|
1659
1910
|
}
|
|
1660
|
-
var
|
|
1661
|
-
(node) =>
|
|
1911
|
+
var onlyScriptNodes = (nodes) => nodes.filter(
|
|
1912
|
+
(node) => isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
|
|
1662
1913
|
);
|
|
1663
1914
|
function OrySettingsCard() {
|
|
1664
1915
|
const { flow } = useOryFlow();
|
|
1665
|
-
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
1666
|
-
const
|
|
1916
|
+
const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
|
|
1917
|
+
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1667
1918
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1668
1919
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1669
|
-
|
|
1920
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n }, getNodeId(n))),
|
|
1670
1921
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1671
1922
|
if (group === UiNodeGroupEnum.Default) {
|
|
1672
1923
|
return null;
|
|
@@ -1973,9 +2224,11 @@ var en_default = {
|
|
|
1973
2224
|
"card.header.parts.oidc": "a social provider",
|
|
1974
2225
|
"card.header.parts.password.registration": "your {identifierLabel} and a password",
|
|
1975
2226
|
"card.header.parts.password.login": "your {identifierLabel} and password",
|
|
1976
|
-
"card.header.parts.code": "a code sent to
|
|
2227
|
+
"card.header.parts.code": "a code sent to you",
|
|
1977
2228
|
"card.header.parts.passkey": "a Passkey",
|
|
1978
2229
|
"card.header.parts.webauthn": "a security key",
|
|
2230
|
+
"card.header.parts.totp": "your authenticator app",
|
|
2231
|
+
"card.header.parts.lookup_secret": "a backup recovery code",
|
|
1979
2232
|
"card.header.parts.identifier-first": "your {identifierLabel}",
|
|
1980
2233
|
"card.header.description.login": "Sign in with {identifierLabel}",
|
|
1981
2234
|
"card.header.description.registration": "Sign up with {identifierLabel}",
|
|
@@ -2001,7 +2254,27 @@ var en_default = {
|
|
|
2001
2254
|
"property.phone": "phone",
|
|
2002
2255
|
"property.username": "username",
|
|
2003
2256
|
"property.identifier": "identifier",
|
|
2004
|
-
"property.code": "code"
|
|
2257
|
+
"property.code": "code",
|
|
2258
|
+
"consent.title": "Authorize {party}",
|
|
2259
|
+
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
|
|
2260
|
+
"consent.scope.openid.title": "Identity",
|
|
2261
|
+
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
|
|
2262
|
+
"consent.scope.offline_access.title": "Offline Access",
|
|
2263
|
+
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
|
|
2264
|
+
"consent.scope.profile.title": "Profile Information",
|
|
2265
|
+
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
|
|
2266
|
+
"consent.scope.email.title": "Email Address",
|
|
2267
|
+
"consent.scope.email.description": "Retrieve your email address and its verification status.",
|
|
2268
|
+
"consent.scope.address.title": "Physical Address",
|
|
2269
|
+
"consent.scope.address.description": "Access your postal address.",
|
|
2270
|
+
"consent.scope.phone.title": "Phone Number",
|
|
2271
|
+
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
|
|
2272
|
+
"error.title.what-happened": "What happened?",
|
|
2273
|
+
"error.title.what-can-i-do": "What can I do?",
|
|
2274
|
+
"error.instructions": "Please try again in a few minutes or contact the website operator.",
|
|
2275
|
+
"error.footer.text": "When reporting this error, please include the following information:",
|
|
2276
|
+
"error.footer.copy": "Copy",
|
|
2277
|
+
"error.action.go-back": "Go back"
|
|
2005
2278
|
};
|
|
2006
2279
|
|
|
2007
2280
|
// src/locales/de.json
|
|
@@ -2172,7 +2445,7 @@ var de_default = {
|
|
|
2172
2445
|
"two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
|
|
2173
2446
|
"two-step.code.title": "E-Mail-Code",
|
|
2174
2447
|
"two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
|
|
2175
|
-
"two-step.passkey.title": "
|
|
2448
|
+
"two-step.passkey.title": "Passkey (empfohlen)",
|
|
2176
2449
|
"two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
|
|
2177
2450
|
"two-step.password.title": "Passwort",
|
|
2178
2451
|
"two-step.webauthn.title": "Sicherheitsschl\xFCssel",
|
|
@@ -2188,28 +2461,30 @@ var de_default = {
|
|
|
2188
2461
|
"login.cancel-label": "Nicht das richtige Konto?",
|
|
2189
2462
|
"identities.messages.1010023": "Code an {address} senden",
|
|
2190
2463
|
"identities.messages.1010016": "Sie haben versucht, sich mit \u201E{duplicateIdentifier}\u201C anzumelden, aber diese E-Mail-Adresse wird bereits von einem anderen Konto verwendet. \nMelden Sie sich mit einer der folgenden Optionen bei Ihrem Konto an, um Ihr Konto \u201E{duplicateIdentifier}\u201C bei \u201E{provider}\u201C als weitere Anmeldem\xF6glichkeit hinzuzuf\xFCgen.",
|
|
2191
|
-
"identities.messages.1010017": "",
|
|
2192
|
-
"identities.messages.1010018": "",
|
|
2193
|
-
"identities.messages.1010019": "",
|
|
2464
|
+
"identities.messages.1010017": "Anmelden und verbinden",
|
|
2465
|
+
"identities.messages.1010018": "Mit {provider} best\xE4tigen",
|
|
2466
|
+
"identities.messages.1010019": "Code senden um fortzufahren",
|
|
2194
2467
|
"identities.messages.1010020": "",
|
|
2195
|
-
"identities.messages.1010021": "",
|
|
2196
|
-
"identities.messages.1010022": "",
|
|
2197
|
-
"identities.messages.1040007": "",
|
|
2198
|
-
"identities.messages.1040008": "",
|
|
2199
|
-
"identities.messages.1040009": "",
|
|
2468
|
+
"identities.messages.1010021": "Mit Paskey anmelden",
|
|
2469
|
+
"identities.messages.1010022": "Mit Passwort anmelden",
|
|
2470
|
+
"identities.messages.1040007": "Mit Passkey registrieren",
|
|
2471
|
+
"identities.messages.1040008": "Zur\xFCck",
|
|
2472
|
+
"identities.messages.1040009": "Bitte w\xE4hlen Sie eine Authentifizierungsmethode, um fortzufahren.",
|
|
2200
2473
|
"identities.messages.1050019": "Passkey hinzuf\xFCgen",
|
|
2201
|
-
"identities.messages.1050020": "",
|
|
2202
|
-
"identities.messages.4000037": "",
|
|
2203
|
-
"identities.messages.4010009": "",
|
|
2204
|
-
"identities.messages.4010010": "",
|
|
2474
|
+
"identities.messages.1050020": 'Passkey "{display_name}" entfernen',
|
|
2475
|
+
"identities.messages.4000037": "F\xFCr die eingegebenen Daten existiert kein Account",
|
|
2476
|
+
"identities.messages.4010009": "Die Authentifizierungsmethode stimmt nicht mit der vorherigen Authentifizierungsmethode \xFCberein. Bitte versuchen Sie es erneut.",
|
|
2477
|
+
"identities.messages.4010010": "Die eingegebene Adresse stimmt nicht mit der Adresse \xFCberein, die Sie bei der Registrierung angegeben haben. Bitte versuchen Sie es erneut.",
|
|
2205
2478
|
"input.placeholder": "{placeholder} eingeben",
|
|
2206
|
-
"card.header.parts.code": "
|
|
2479
|
+
"card.header.parts.code": "ein an Sie gesendeter Code",
|
|
2207
2480
|
"card.header.parts.identifier-first": "Ihr {identifierLabel}",
|
|
2208
2481
|
"card.header.parts.oidc": "ein sozialer Anbieter",
|
|
2209
2482
|
"card.header.parts.passkey": "ein Passkey",
|
|
2210
2483
|
"card.header.parts.password.login": "Ihrer {identifierLabel} und Ihrem Passwort",
|
|
2211
2484
|
"card.header.parts.password.registration": "Ihrer {identifierLabel} und einem Passwort",
|
|
2212
2485
|
"card.header.parts.webauthn": "ein Sicherheitsschl\xFCssel",
|
|
2486
|
+
"card.header.parts.totp": "deine Authentifikator-App",
|
|
2487
|
+
"card.header.parts.lookup_secret": "ein Backup-Wiederherstellungscode",
|
|
2213
2488
|
"recovery.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um einen einmaligen Zugangscode zu erhalten",
|
|
2214
2489
|
"verification.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um es zu best\xE4tigen",
|
|
2215
2490
|
"card.header.description.login": "Melden Sie sich mit {identifierLabel} an",
|
|
@@ -2266,7 +2541,27 @@ var de_default = {
|
|
|
2266
2541
|
"property.password": "Passwort",
|
|
2267
2542
|
"property.phone": "Telefon",
|
|
2268
2543
|
"property.code": "Code",
|
|
2269
|
-
"property.username": "Benutzername"
|
|
2544
|
+
"property.username": "Benutzername",
|
|
2545
|
+
"consent.title": "Autorisieren {party}",
|
|
2546
|
+
"consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
|
|
2547
|
+
"consent.scope.openid.title": "Identit\xE4t",
|
|
2548
|
+
"consent.scope.openid.description": "Erm\xF6glicht der Anwendung, Ihre Identit\xE4t zu \xFCberpr\xFCfen. Dies ist f\xFCr die Authentifizierung und eine vertrauensw\xFCrdige Login-Erfahrung erforderlich.",
|
|
2549
|
+
"consent.scope.offline_access.title": "Offline-Zugriff",
|
|
2550
|
+
"consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
|
|
2551
|
+
"consent.scope.profile.title": "Profilinformationen",
|
|
2552
|
+
"consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
|
|
2553
|
+
"consent.scope.email.title": "E-Mail-Adresse",
|
|
2554
|
+
"consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
|
|
2555
|
+
"consent.scope.address.title": "Physische Adresse",
|
|
2556
|
+
"consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
|
|
2557
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
2558
|
+
"consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
|
|
2559
|
+
"error.title.what-happened": "Was ist passiert?",
|
|
2560
|
+
"error.footer.copy": "Kopieren",
|
|
2561
|
+
"error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
|
|
2562
|
+
"error.instructions": "Bitte versuchen Sie es in wenigen Minuten erneut oder wenden Sie sich an den Website-Betreiber.",
|
|
2563
|
+
"error.title.what-can-i-do": "Was kann ich tun?",
|
|
2564
|
+
"error.action.go-back": "Zur\xFCck"
|
|
2270
2565
|
};
|
|
2271
2566
|
|
|
2272
2567
|
// src/locales/es.json
|
|
@@ -2282,7 +2577,6 @@ var es_default = {
|
|
|
2282
2577
|
"error.back-button": "Regresar",
|
|
2283
2578
|
"error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
|
|
2284
2579
|
"error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
|
|
2285
|
-
"error.title": "Ocurri\xF3 un error",
|
|
2286
2580
|
"error.title-internal-server-error": "Error Interno del Servidor",
|
|
2287
2581
|
"error.title-not-found": "404 - P\xE1gina no encontrada",
|
|
2288
2582
|
"identities.messages.1010001": "Iniciar sesi\xF3n",
|
|
@@ -2457,45 +2751,6 @@ var es_default = {
|
|
|
2457
2751
|
"two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
|
|
2458
2752
|
"two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
|
|
2459
2753
|
"two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
|
|
2460
|
-
"identities.messages.1010016": "",
|
|
2461
|
-
"identities.messages.1010017": "",
|
|
2462
|
-
"identities.messages.1010018": "",
|
|
2463
|
-
"identities.messages.1010019": "",
|
|
2464
|
-
"identities.messages.1010020": "",
|
|
2465
|
-
"identities.messages.1010021": "",
|
|
2466
|
-
"identities.messages.1010022": "",
|
|
2467
|
-
"identities.messages.1010023": "",
|
|
2468
|
-
"identities.messages.1040007": "",
|
|
2469
|
-
"identities.messages.1040008": "",
|
|
2470
|
-
"identities.messages.1040009": "",
|
|
2471
|
-
"identities.messages.1050019": "",
|
|
2472
|
-
"identities.messages.1050020": "",
|
|
2473
|
-
"identities.messages.1070014": "",
|
|
2474
|
-
"identities.messages.1070015": "",
|
|
2475
|
-
"identities.messages.4000037": "",
|
|
2476
|
-
"identities.messages.4000038": "",
|
|
2477
|
-
"identities.messages.4010009": "",
|
|
2478
|
-
"identities.messages.4010010": "",
|
|
2479
|
-
"login.cancel-button": "",
|
|
2480
|
-
"login.cancel-label": "",
|
|
2481
|
-
"input.placeholder": "",
|
|
2482
|
-
"card.header.description.login": "",
|
|
2483
|
-
"card.header.description.registration": "",
|
|
2484
|
-
"card.header.parts.code": "",
|
|
2485
|
-
"card.header.parts.identifier-first": "",
|
|
2486
|
-
"card.header.parts.oidc": "",
|
|
2487
|
-
"card.header.parts.passkey": "",
|
|
2488
|
-
"card.header.parts.password.login": "",
|
|
2489
|
-
"card.header.parts.password.registration": "",
|
|
2490
|
-
"card.header.parts.webauthn": "",
|
|
2491
|
-
"forms.label.forgot-password": "",
|
|
2492
|
-
"login.subtitle": "",
|
|
2493
|
-
"login.subtitle-refresh": "",
|
|
2494
|
-
"misc.or": "",
|
|
2495
|
-
"recovery.subtitle": "",
|
|
2496
|
-
"registration.subtitle": "",
|
|
2497
|
-
"settings.subtitle": "",
|
|
2498
|
-
"verification.subtitle": "",
|
|
2499
2754
|
"settings.totp.info.linked": "Actualmente tienes una aplicaci\xF3n de autenticaci\xF3n conectada.",
|
|
2500
2755
|
"settings.totp.info.not-linked": "Para habilitar, escanea el c\xF3digo QR con tu autenticador e ingresa el c\xF3digo.",
|
|
2501
2756
|
"settings.totp.title": "Aplicaci\xF3n Autenticadora",
|
|
@@ -2513,25 +2768,87 @@ var es_default = {
|
|
|
2513
2768
|
"settings.profile.title": "Configuraci\xF3n de Perfil",
|
|
2514
2769
|
"settings.webauthn.description": "Administra la configuraci\xF3n de tu token de hardware",
|
|
2515
2770
|
"settings.webauthn.title": "Gestionar Tokens de Hardware",
|
|
2516
|
-
"
|
|
2517
|
-
"
|
|
2518
|
-
"
|
|
2519
|
-
"
|
|
2520
|
-
"
|
|
2521
|
-
"
|
|
2522
|
-
"
|
|
2523
|
-
"
|
|
2524
|
-
"
|
|
2525
|
-
"
|
|
2526
|
-
"
|
|
2527
|
-
"
|
|
2528
|
-
"
|
|
2529
|
-
"
|
|
2530
|
-
"
|
|
2531
|
-
"
|
|
2532
|
-
"
|
|
2533
|
-
"
|
|
2534
|
-
"
|
|
2771
|
+
"consent.title": "Autorizar {party}",
|
|
2772
|
+
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2773
|
+
"consent.scope.openid.title": "Identidad",
|
|
2774
|
+
"consent.scope.openid.description": "Permite que la aplicaci\xF3n verifique su identidad. Esto es necesario para la autenticaci\xF3n y una experiencia de inicio de sesi\xF3n confiable.",
|
|
2775
|
+
"consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
|
|
2776
|
+
"consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
|
|
2777
|
+
"consent.scope.profile.title": "Informaci\xF3n del perfil",
|
|
2778
|
+
"consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
|
|
2779
|
+
"consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
|
|
2780
|
+
"consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
|
|
2781
|
+
"consent.scope.address.title": "Direcci\xF3n f\xEDsica",
|
|
2782
|
+
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2783
|
+
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
2784
|
+
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
2785
|
+
"error.title": "Ocurri\xF3 un error",
|
|
2786
|
+
"identities.messages.1010016": 'Intentaste iniciar sesi\xF3n con "{duplicateIdentifier}", pero ese correo electr\xF3nico ya est\xE1 en uso por otra cuenta. Inicia sesi\xF3n en tu cuenta con una de las opciones a continuaci\xF3n para agregar tu cuenta "{duplicateIdentifier}" en "{provider}" como otra forma de iniciar sesi\xF3n.',
|
|
2787
|
+
"identities.messages.1010017": "Iniciar sesi\xF3n y vincular",
|
|
2788
|
+
"identities.messages.1010018": "Confirmar con {provider}",
|
|
2789
|
+
"identities.messages.1010019": "Solicitar c\xF3digo para continuar",
|
|
2790
|
+
"identities.messages.1010021": "Iniciar sesi\xF3n con clave de acceso",
|
|
2791
|
+
"identities.messages.1010022": "Iniciar sesi\xF3n con contrase\xF1a",
|
|
2792
|
+
"identities.messages.1010023": "Enviar c\xF3digo a {address}",
|
|
2793
|
+
"identities.messages.1040007": "Registrarse con clave de acceso",
|
|
2794
|
+
"identities.messages.1040008": "Atr\xE1s",
|
|
2795
|
+
"identities.messages.1040009": "Por favor, elige una credencial para autenticarte.",
|
|
2796
|
+
"identities.messages.1050019": "Agregar clave de acceso",
|
|
2797
|
+
"identities.messages.1070014": "Iniciar sesi\xF3n y vincular credencial",
|
|
2798
|
+
"identities.messages.1070015": "Por favor, completa el desaf\xEDo captcha para continuar.",
|
|
2799
|
+
"identities.messages.4000037": "Esta cuenta no existe o no tiene ning\xFAn m\xE9todo de inicio de sesi\xF3n configurado.",
|
|
2800
|
+
"identities.messages.4000038": "Fall\xF3 la verificaci\xF3n de Captcha, por favor intenta de nuevo.",
|
|
2801
|
+
"identities.messages.4010009": "Las credenciales vinculadas no coinciden.",
|
|
2802
|
+
"identities.messages.4010010": "La direcci\xF3n que ingresaste no coincide con ninguna direcci\xF3n conocida en la cuenta actual.",
|
|
2803
|
+
"login.cancel-button": "Cancelar",
|
|
2804
|
+
"login.cancel-label": "\xBFNo es la cuenta correcta?",
|
|
2805
|
+
"login.subtitle": "Iniciar sesi\xF3n con {parts}",
|
|
2806
|
+
"login.subtitle-refresh": "Confirma tu identidad con {parts}",
|
|
2807
|
+
"recovery.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para recibir un c\xF3digo de acceso \xFAnico",
|
|
2808
|
+
"registration.subtitle": "Registrarse con {parts}",
|
|
2809
|
+
"settings.subtitle": "Actualiza la configuraci\xF3n de tu cuenta",
|
|
2810
|
+
"settings.title-lookup-secret": "Administrar c\xF3digos de recuperaci\xF3n de respaldo 2FA",
|
|
2811
|
+
"settings.title-navigation": "Configuraci\xF3n de la cuenta",
|
|
2812
|
+
"settings.title-oidc": "Inicio de sesi\xF3n social",
|
|
2813
|
+
"settings.title-password": "Cambiar contrase\xF1a",
|
|
2814
|
+
"settings.title-profile": "Configuraci\xF3n del perfil",
|
|
2815
|
+
"settings.title-totp": "Administrar la aplicaci\xF3n de autenticaci\xF3n 2FA TOTP",
|
|
2816
|
+
"settings.title-webauthn": "Administrar tokens de hardware",
|
|
2817
|
+
"settings.title-passkey": "Administrar claves de acceso",
|
|
2818
|
+
"verification.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para verificarla",
|
|
2819
|
+
"input.placeholder": "Ingresa tu {placeholder}",
|
|
2820
|
+
"card.header.parts.oidc": "un proveedor social",
|
|
2821
|
+
"card.header.parts.password.registration": "tu {identifierLabel} y una contrase\xF1a",
|
|
2822
|
+
"card.header.parts.password.login": "tu {identifierLabel} y contrase\xF1a",
|
|
2823
|
+
"card.header.parts.code": "un c\xF3digo enviado a tu correo electr\xF3nico",
|
|
2824
|
+
"card.header.parts.passkey": "una clave de acceso",
|
|
2825
|
+
"card.header.parts.webauthn": "una clave de seguridad",
|
|
2826
|
+
"card.header.parts.totp": "su aplicaci\xF3n de autenticaci\xF3n",
|
|
2827
|
+
"card.header.parts.lookup_secret": "un c\xF3digo de recuperaci\xF3n de copia de seguridad",
|
|
2828
|
+
"card.header.parts.identifier-first": "tu {identifierLabel}",
|
|
2829
|
+
"card.header.description.login": "Iniciar sesi\xF3n con {identifierLabel}",
|
|
2830
|
+
"card.header.description.registration": "Registrarse con {identifierLabel}",
|
|
2831
|
+
"misc.or": "o",
|
|
2832
|
+
"forms.label.forgot-password": "\xBFOlvidaste tu contrase\xF1a?",
|
|
2833
|
+
"settings.oidc.info": "Las cuentas conectadas de estos proveedores se pueden utilizar para iniciar sesi\xF3n en tu cuenta",
|
|
2834
|
+
"settings.webauthn.info": "Los tokens de hardware se utilizan para la autenticaci\xF3n de segundo factor o como primer factor con las claves de acceso",
|
|
2835
|
+
"settings.passkey.info": "Administra la configuraci\xF3n de tus claves de acceso",
|
|
2836
|
+
"card.footer.select-another-method": "Seleccionar otro m\xE9todo",
|
|
2837
|
+
"account-linking.title": "Vincular cuenta",
|
|
2838
|
+
"property.password": "contrase\xF1a",
|
|
2839
|
+
"property.email": "correo electr\xF3nico",
|
|
2840
|
+
"property.phone": "tel\xE9fono",
|
|
2841
|
+
"property.username": "nombre de usuario",
|
|
2842
|
+
"property.identifier": "identificador",
|
|
2843
|
+
"property.code": "c\xF3digo",
|
|
2844
|
+
"error.title.what-happened": "\xBFQu\xE9 pas\xF3?",
|
|
2845
|
+
"error.title.what-can-i-do": "\xBFQu\xE9 puedo hacer?",
|
|
2846
|
+
"error.instructions": "Por favor, int\xE9ntalo de nuevo en unos minutos o contacta al operador del sitio web.",
|
|
2847
|
+
"error.footer.text": "Al informar este error, incluye la siguiente informaci\xF3n:",
|
|
2848
|
+
"error.footer.copy": "Copiar",
|
|
2849
|
+
"error.action.go-back": "Regresar",
|
|
2850
|
+
"identities.messages.1010020": "",
|
|
2851
|
+
"identities.messages.1050020": 'Eliminar passkey "{display_name}"'
|
|
2535
2852
|
};
|
|
2536
2853
|
|
|
2537
2854
|
// src/locales/fr.json
|
|
@@ -2722,81 +3039,103 @@ var fr_default = {
|
|
|
2722
3039
|
"two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
|
|
2723
3040
|
"two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
|
|
2724
3041
|
"two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
|
|
2725
|
-
"identities.messages.1010023": "",
|
|
2726
|
-
"identities.messages.1070015": "",
|
|
2727
|
-
"identities.messages.4000038": "",
|
|
2728
|
-
"login.cancel-button": "",
|
|
2729
|
-
"login.cancel-label": "",
|
|
2730
|
-
"identities.messages.1010016": "",
|
|
2731
|
-
"identities.messages.1010017": "",
|
|
2732
|
-
"identities.messages.1010018": "",
|
|
2733
|
-
"identities.messages.1010019": "",
|
|
2734
|
-
"identities.messages.1010020": "",
|
|
2735
|
-
"identities.messages.1010021": "",
|
|
2736
|
-
"identities.messages.1010022": "",
|
|
2737
|
-
"identities.messages.1040007": "",
|
|
2738
|
-
"identities.messages.1040008": "",
|
|
2739
|
-
"identities.messages.1040009": "",
|
|
2740
|
-
"identities.messages.1050019": "",
|
|
2741
|
-
"identities.messages.1050020": "",
|
|
2742
|
-
"identities.messages.1070014": "",
|
|
2743
|
-
"identities.messages.4000037": "",
|
|
2744
|
-
"identities.messages.4010009": "",
|
|
2745
|
-
"identities.messages.4010010": "",
|
|
2746
|
-
"input.placeholder": "",
|
|
2747
|
-
"card.header.description.login": "",
|
|
2748
|
-
"card.header.description.registration": "",
|
|
2749
|
-
"card.header.parts.code": "",
|
|
2750
|
-
"card.header.parts.identifier-first": "",
|
|
2751
|
-
"card.header.parts.oidc": "",
|
|
2752
|
-
"card.header.parts.passkey": "",
|
|
2753
|
-
"card.header.parts.password.login": "",
|
|
2754
|
-
"card.header.parts.password.registration": "",
|
|
2755
|
-
"card.header.parts.webauthn": "",
|
|
2756
|
-
"forms.label.forgot-password": "",
|
|
2757
|
-
"login.subtitle": "",
|
|
2758
|
-
"login.subtitle-refresh": "",
|
|
2759
|
-
"misc.or": "",
|
|
2760
|
-
"recovery.subtitle": "",
|
|
2761
|
-
"registration.subtitle": "",
|
|
2762
|
-
"settings.subtitle": "",
|
|
2763
|
-
"verification.subtitle": "",
|
|
2764
3042
|
"settings.totp.info.linked": "Vous avez actuellement une application d'authentification connect\xE9e.",
|
|
2765
3043
|
"settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.",
|
|
2766
3044
|
"settings.totp.title": "Application d'authentification",
|
|
2767
3045
|
"settings.totp.description": "Ajoutez une application d'authentification TOTP \xE0 votre compte pour am\xE9liorer la s\xE9curit\xE9 de votre compte. Les applications d'authentification populaires sont LastPass et Google Authenticator.",
|
|
2768
|
-
"
|
|
2769
|
-
"
|
|
2770
|
-
"
|
|
2771
|
-
"
|
|
2772
|
-
"
|
|
2773
|
-
"
|
|
2774
|
-
"
|
|
2775
|
-
"
|
|
2776
|
-
"
|
|
2777
|
-
"
|
|
2778
|
-
"
|
|
2779
|
-
"
|
|
2780
|
-
"
|
|
2781
|
-
"
|
|
2782
|
-
"
|
|
2783
|
-
"
|
|
2784
|
-
"
|
|
2785
|
-
"
|
|
2786
|
-
"
|
|
2787
|
-
"
|
|
2788
|
-
"
|
|
2789
|
-
"
|
|
2790
|
-
"
|
|
2791
|
-
"
|
|
2792
|
-
"
|
|
2793
|
-
"
|
|
2794
|
-
"
|
|
2795
|
-
"
|
|
2796
|
-
"
|
|
2797
|
-
"
|
|
2798
|
-
"
|
|
2799
|
-
"
|
|
3046
|
+
"consent.title": "Autoriser {party}",
|
|
3047
|
+
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
3048
|
+
"consent.scope.openid.title": "Identit\xE9",
|
|
3049
|
+
"consent.scope.openid.description": "Permet \xE0 l'application de v\xE9rifier votre identit\xE9. Cela est n\xE9cessaire pour l'authentification et une exp\xE9rience de connexion fiable.",
|
|
3050
|
+
"consent.scope.offline_access.title": "Acc\xE8s hors ligne",
|
|
3051
|
+
"consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
|
|
3052
|
+
"consent.scope.profile.title": "Informations de profil",
|
|
3053
|
+
"consent.scope.profile.description": "Permet l'acc\xE8s aux d\xE9tails de base de votre profil, y compris votre nom d'utilisateur, pr\xE9nom et nom.",
|
|
3054
|
+
"consent.scope.email.title": "Adresse e-mail",
|
|
3055
|
+
"consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
|
|
3056
|
+
"consent.scope.address.title": "Adresse physique",
|
|
3057
|
+
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
3058
|
+
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
3059
|
+
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
3060
|
+
"identities.messages.1010016": "Vous avez essay\xE9 de vous connecter avec \xAB {duplicateIdentifier} \xBB, mais cet e-mail est d\xE9j\xE0 utilis\xE9 par un autre compte. Connectez-vous \xE0 votre compte avec l'une des options ci-dessous pour ajouter votre compte \xAB {duplicateIdentifier} \xBB sur \xAB {provider} \xBB comme autre moyen de vous connecter.",
|
|
3061
|
+
"identities.messages.1010017": "Se connecter et lier",
|
|
3062
|
+
"identities.messages.1010018": "Confirmer avec {provider}",
|
|
3063
|
+
"identities.messages.1010019": "Demander un code pour continuer",
|
|
3064
|
+
"identities.messages.1010021": "Se connecter avec une cl\xE9 d'acc\xE8s",
|
|
3065
|
+
"identities.messages.1010022": "Se connecter avec un mot de passe",
|
|
3066
|
+
"identities.messages.1010023": "Envoyer le code \xE0 {address}",
|
|
3067
|
+
"identities.messages.1040007": "S'inscrire avec une cl\xE9 d'acc\xE8s",
|
|
3068
|
+
"identities.messages.1040008": "Retour",
|
|
3069
|
+
"identities.messages.1040009": "Veuillez choisir une identification pour vous authentifier.",
|
|
3070
|
+
"identities.messages.1050019": "Ajouter une cl\xE9 d'acc\xE8s",
|
|
3071
|
+
"identities.messages.1050020": "Supprimer la cl\xE9 d'acc\xE8s \xAB {display_name} \xBB",
|
|
3072
|
+
"identities.messages.1070014": "Se connecter et lier l'identification",
|
|
3073
|
+
"identities.messages.1070015": "Veuillez compl\xE9ter le d\xE9fi captcha pour continuer.",
|
|
3074
|
+
"identities.messages.4000037": "Ce compte n'existe pas ou n'a aucune m\xE9thode de connexion configur\xE9e.",
|
|
3075
|
+
"identities.messages.4000038": "La v\xE9rification Captcha a \xE9chou\xE9, veuillez r\xE9essayer.",
|
|
3076
|
+
"identities.messages.4010009": "Les identifications li\xE9es ne correspondent pas.",
|
|
3077
|
+
"identities.messages.4010010": "L'adresse que vous avez saisie ne correspond \xE0 aucune adresse connue dans le compte actuel.",
|
|
3078
|
+
"login.cancel-button": "Annuler",
|
|
3079
|
+
"login.cancel-label": "Ce n'est pas le bon compte\xA0?",
|
|
3080
|
+
"login.subtitle": "Se connecter avec {parts}",
|
|
3081
|
+
"login.subtitle-refresh": "Confirmez votre identit\xE9 avec {parts}",
|
|
3082
|
+
"recovery.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour recevoir un code d'acc\xE8s unique",
|
|
3083
|
+
"registration.subtitle": "S'inscrire avec {parts}",
|
|
3084
|
+
"settings.subtitle": "Mettre \xE0 jour les param\xE8tres de votre compte",
|
|
3085
|
+
"settings.title-lookup-secret": "G\xE9rer les codes de r\xE9cup\xE9ration de sauvegarde 2FA",
|
|
3086
|
+
"settings.title-navigation": "Param\xE8tres du compte",
|
|
3087
|
+
"settings.title-oidc": "Connexion via les r\xE9seaux sociaux",
|
|
3088
|
+
"settings.title-password": "Changer le mot de passe",
|
|
3089
|
+
"settings.title-profile": "Param\xE8tres du profil",
|
|
3090
|
+
"settings.title-totp": "G\xE9rer l'application d'authentification 2FA TOTP",
|
|
3091
|
+
"settings.title-webauthn": "G\xE9rer les jetons mat\xE9riels",
|
|
3092
|
+
"settings.title-passkey": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3093
|
+
"settings.navigation.title": "Param\xE8tres du compte",
|
|
3094
|
+
"settings.password.title": "Changer le mot de passe",
|
|
3095
|
+
"settings.password.description": "Modifier votre mot de passe",
|
|
3096
|
+
"settings.profile.title": "Param\xE8tres du profil",
|
|
3097
|
+
"settings.profile.description": "Mettre \xE0 jour les informations de votre profil",
|
|
3098
|
+
"settings.webauthn.title": "G\xE9rer les jetons mat\xE9riels",
|
|
3099
|
+
"settings.webauthn.description": "G\xE9rer les param\xE8tres de votre jeton mat\xE9riel",
|
|
3100
|
+
"verification.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour la v\xE9rifier",
|
|
3101
|
+
"input.placeholder": "Saisissez votre {placeholder}",
|
|
3102
|
+
"card.header.parts.oidc": "un fournisseur de r\xE9seaux sociaux",
|
|
3103
|
+
"card.header.parts.password.registration": "votre {identifierLabel} et un mot de passe",
|
|
3104
|
+
"card.header.parts.password.login": "votre {identifierLabel} et votre mot de passe",
|
|
3105
|
+
"card.header.parts.passkey": "une cl\xE9 d'acc\xE8s",
|
|
3106
|
+
"card.header.parts.webauthn": "une cl\xE9 de s\xE9curit\xE9",
|
|
3107
|
+
"card.header.parts.identifier-first": "votre {identifierLabel}",
|
|
3108
|
+
"card.header.parts.code": "un code qui vous a \xE9t\xE9 envoy\xE9",
|
|
3109
|
+
"card.header.parts.totp": "votre application d'authentification",
|
|
3110
|
+
"card.header.parts.lookup_secret": "un code de r\xE9cup\xE9ration de secours",
|
|
3111
|
+
"card.header.description.login": "Se connecter avec {identifierLabel}",
|
|
3112
|
+
"card.header.description.registration": "S'inscrire avec {identifierLabel}",
|
|
3113
|
+
"misc.or": "ou",
|
|
3114
|
+
"forms.label.forgot-password": "Mot de passe oubli\xE9?",
|
|
3115
|
+
"settings.lookup_secret.title": "Codes de r\xE9cup\xE9ration de sauvegarde (second facteur)",
|
|
3116
|
+
"settings.lookup_secret.description": "Les codes de r\xE9cup\xE9ration sont une sauvegarde s\xE9curis\xE9e pour l'authentification \xE0 deux facteurs (2FA), vous permettant de retrouver l'acc\xE8s \xE0 votre compte si vous perdez votre appareil 2FA.",
|
|
3117
|
+
"settings.oidc.title": "Comptes connect\xE9s",
|
|
3118
|
+
"settings.oidc.description": "Connectez un fournisseur de connexion sociale \xE0 votre compte.",
|
|
3119
|
+
"settings.oidc.info": "Les comptes connect\xE9s de ces fournisseurs peuvent \xEAtre utilis\xE9s pour vous connecter \xE0 votre compte",
|
|
3120
|
+
"settings.webauthn.info": "Les jetons mat\xE9riels sont utilis\xE9s pour l'authentification \xE0 deux facteurs ou comme premier facteur avec les cl\xE9s d'acc\xE8s",
|
|
3121
|
+
"settings.passkey.title": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3122
|
+
"settings.passkey.description": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3123
|
+
"settings.passkey.info": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3124
|
+
"card.footer.select-another-method": "S\xE9lectionner une autre m\xE9thode",
|
|
3125
|
+
"account-linking.title": "Lier le compte",
|
|
3126
|
+
"property.password": "mot de passe",
|
|
3127
|
+
"property.email": "e-mail",
|
|
3128
|
+
"property.phone": "t\xE9l\xE9phone",
|
|
3129
|
+
"property.username": "nom d'utilisateur",
|
|
3130
|
+
"property.identifier": "identifiant",
|
|
3131
|
+
"property.code": "code",
|
|
3132
|
+
"error.title.what-happened": "Que s'est-il pass\xE9?",
|
|
3133
|
+
"error.title.what-can-i-do": "Que puis-je faire?",
|
|
3134
|
+
"error.instructions": "Veuillez r\xE9essayer dans quelques minutes ou contacter l'op\xE9rateur du site Web.",
|
|
3135
|
+
"error.footer.text": "Lorsque vous signalez cette erreur, veuillez inclure les informations suivantes:",
|
|
3136
|
+
"error.footer.copy": "Copier",
|
|
3137
|
+
"error.action.go-back": "Retour",
|
|
3138
|
+
"identities.messages.1010020": ""
|
|
2800
3139
|
};
|
|
2801
3140
|
|
|
2802
3141
|
// src/locales/nl.json
|
|
@@ -3011,7 +3350,9 @@ var nl_default = {
|
|
|
3011
3350
|
"input.placeholder": "",
|
|
3012
3351
|
"card.header.description.login": "",
|
|
3013
3352
|
"card.header.description.registration": "",
|
|
3014
|
-
"card.header.parts.code": "",
|
|
3353
|
+
"card.header.parts.code": "een code die naar je is verzonden",
|
|
3354
|
+
"card.header.parts.totp": "je authenticator-app",
|
|
3355
|
+
"card.header.parts.lookup_secret": "een backup herstelcode",
|
|
3015
3356
|
"card.header.parts.identifier-first": "",
|
|
3016
3357
|
"card.header.parts.oidc": "",
|
|
3017
3358
|
"card.header.parts.passkey": "",
|
|
@@ -3061,7 +3402,27 @@ var nl_default = {
|
|
|
3061
3402
|
"property.identifier": "",
|
|
3062
3403
|
"property.password": "",
|
|
3063
3404
|
"property.phone": "",
|
|
3064
|
-
"property.username": ""
|
|
3405
|
+
"property.username": "",
|
|
3406
|
+
"consent.title": "Autoriseren {party}",
|
|
3407
|
+
"consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
|
|
3408
|
+
"consent.scope.openid.title": "Identiteit",
|
|
3409
|
+
"consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
|
|
3410
|
+
"consent.scope.offline_access.title": "Offline toegang",
|
|
3411
|
+
"consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
|
|
3412
|
+
"consent.scope.profile.title": "Profielinformatie",
|
|
3413
|
+
"consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
|
|
3414
|
+
"consent.scope.email.title": "E-mailadres",
|
|
3415
|
+
"consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
|
|
3416
|
+
"consent.scope.address.title": "Fysiek adres",
|
|
3417
|
+
"consent.scope.address.description": "Toegang tot uw postadres.",
|
|
3418
|
+
"consent.scope.phone.title": "Telefoonnummer",
|
|
3419
|
+
"consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
|
|
3420
|
+
"error.action.go-back": "",
|
|
3421
|
+
"error.footer.copy": "",
|
|
3422
|
+
"error.footer.text": "",
|
|
3423
|
+
"error.title.what-can-i-do": "",
|
|
3424
|
+
"error.title.what-happened": "",
|
|
3425
|
+
"error.instructions": ""
|
|
3065
3426
|
};
|
|
3066
3427
|
|
|
3067
3428
|
// src/locales/pl.json
|
|
@@ -3276,13 +3637,15 @@ var pl_default = {
|
|
|
3276
3637
|
"input.placeholder": "",
|
|
3277
3638
|
"card.header.description.login": "",
|
|
3278
3639
|
"card.header.description.registration": "",
|
|
3279
|
-
"card.header.parts.code": "",
|
|
3280
3640
|
"card.header.parts.identifier-first": "",
|
|
3281
3641
|
"card.header.parts.oidc": "",
|
|
3282
3642
|
"card.header.parts.passkey": "",
|
|
3283
3643
|
"card.header.parts.password.login": "",
|
|
3284
3644
|
"card.header.parts.password.registration": "",
|
|
3285
3645
|
"card.header.parts.webauthn": "",
|
|
3646
|
+
"card.header.parts.code": "kod wys\u0142any do Ciebie",
|
|
3647
|
+
"card.header.parts.totp": "Twoja aplikacja uwierzytelniaj\u0105ca",
|
|
3648
|
+
"card.header.parts.lookup_secret": "kod odzyskiwania kopii zapasowej",
|
|
3286
3649
|
"forms.label.forgot-password": "",
|
|
3287
3650
|
"login.subtitle": "",
|
|
3288
3651
|
"login.subtitle-refresh": "",
|
|
@@ -3326,7 +3689,27 @@ var pl_default = {
|
|
|
3326
3689
|
"property.password": "",
|
|
3327
3690
|
"property.phone": "",
|
|
3328
3691
|
"property.username": "",
|
|
3329
|
-
"property.identifier": ""
|
|
3692
|
+
"property.identifier": "",
|
|
3693
|
+
"consent.title": "Autoryzuj {party}",
|
|
3694
|
+
"consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
|
|
3695
|
+
"consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
|
|
3696
|
+
"consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
|
|
3697
|
+
"consent.scope.offline_access.title": "Dost\u0119p offline",
|
|
3698
|
+
"consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
|
|
3699
|
+
"consent.scope.profile.title": "Informacje profilowe",
|
|
3700
|
+
"consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
|
|
3701
|
+
"consent.scope.email.title": "Adres e-mail",
|
|
3702
|
+
"consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
|
|
3703
|
+
"consent.scope.address.title": "Adres fizyczny",
|
|
3704
|
+
"consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
|
|
3705
|
+
"consent.scope.phone.title": "Numer telefonu",
|
|
3706
|
+
"consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
|
|
3707
|
+
"error.action.go-back": "",
|
|
3708
|
+
"error.footer.copy": "",
|
|
3709
|
+
"error.footer.text": "",
|
|
3710
|
+
"error.title.what-can-i-do": "",
|
|
3711
|
+
"error.title.what-happened": "",
|
|
3712
|
+
"error.instructions": ""
|
|
3330
3713
|
};
|
|
3331
3714
|
|
|
3332
3715
|
// src/locales/pt.json
|
|
@@ -3541,7 +3924,9 @@ var pt_default = {
|
|
|
3541
3924
|
"input.placeholder": "",
|
|
3542
3925
|
"card.header.description.login": "",
|
|
3543
3926
|
"card.header.description.registration": "",
|
|
3544
|
-
"card.header.parts.code": "",
|
|
3927
|
+
"card.header.parts.code": "um c\xF3digo enviado para voc\xEA",
|
|
3928
|
+
"card.header.parts.totp": "seu aplicativo autenticador",
|
|
3929
|
+
"card.header.parts.lookup_secret": "um c\xF3digo de recupera\xE7\xE3o de backup",
|
|
3545
3930
|
"card.header.parts.identifier-first": "",
|
|
3546
3931
|
"card.header.parts.oidc": "",
|
|
3547
3932
|
"card.header.parts.passkey": "",
|
|
@@ -3591,7 +3976,27 @@ var pt_default = {
|
|
|
3591
3976
|
"property.identifier": "",
|
|
3592
3977
|
"property.password": "",
|
|
3593
3978
|
"property.phone": "",
|
|
3594
|
-
"property.username": ""
|
|
3979
|
+
"property.username": "",
|
|
3980
|
+
"consent.title": "Autorizar {party}",
|
|
3981
|
+
"consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
|
|
3982
|
+
"consent.scope.openid.title": "Identidade",
|
|
3983
|
+
"consent.scope.openid.description": "Permite que a aplica\xE7\xE3o verifique sua identidade. Isso \xE9 necess\xE1rio para a autentica\xE7\xE3o e uma experi\xEAncia de login confi\xE1vel.",
|
|
3984
|
+
"consent.scope.offline_access.title": "Acesso Offline",
|
|
3985
|
+
"consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
|
|
3986
|
+
"consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
|
|
3987
|
+
"consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
|
|
3988
|
+
"consent.scope.email.title": "Endere\xE7o de E-mail",
|
|
3989
|
+
"consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
|
|
3990
|
+
"consent.scope.address.title": "Endere\xE7o F\xEDsico",
|
|
3991
|
+
"consent.scope.address.description": "Acesse seu endere\xE7o postal.",
|
|
3992
|
+
"consent.scope.phone.title": "N\xFAmero de Telefone",
|
|
3993
|
+
"consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
|
|
3994
|
+
"error.action.go-back": "",
|
|
3995
|
+
"error.footer.copy": "",
|
|
3996
|
+
"error.footer.text": "",
|
|
3997
|
+
"error.title.what-can-i-do": "",
|
|
3998
|
+
"error.title.what-happened": "",
|
|
3999
|
+
"error.instructions": ""
|
|
3595
4000
|
};
|
|
3596
4001
|
|
|
3597
4002
|
// src/locales/sv.json
|
|
@@ -3806,7 +4211,9 @@ var sv_default = {
|
|
|
3806
4211
|
"input.placeholder": "Ange din {placeholder}",
|
|
3807
4212
|
"card.header.description.login": "Logga in med {identifierLabel}",
|
|
3808
4213
|
"card.header.description.registration": "Registrera dig med {identifierLabel}",
|
|
3809
|
-
"card.header.parts.code": "en kod skickad till
|
|
4214
|
+
"card.header.parts.code": "en kod skickad till dig",
|
|
4215
|
+
"card.header.parts.totp": "din autentiseringsapp",
|
|
4216
|
+
"card.header.parts.lookup_secret": "en s\xE4kerhetskopieringskod",
|
|
3810
4217
|
"card.header.parts.identifier-first": "din {identifierLabel}",
|
|
3811
4218
|
"card.header.parts.oidc": "en social leverant\xF6r",
|
|
3812
4219
|
"card.header.parts.passkey": "en Passkey",
|
|
@@ -3856,7 +4263,27 @@ var sv_default = {
|
|
|
3856
4263
|
"property.phone": "telefon",
|
|
3857
4264
|
"property.username": "anv\xE4ndarnamn",
|
|
3858
4265
|
"property.identifier": "identifier",
|
|
3859
|
-
"property.code": "kod"
|
|
4266
|
+
"property.code": "kod",
|
|
4267
|
+
"consent.title": "Auktorisera {party}",
|
|
4268
|
+
"consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
|
|
4269
|
+
"consent.scope.openid.title": "Identitet",
|
|
4270
|
+
"consent.scope.openid.description": "G\xF6r det m\xF6jligt f\xF6r applikationen att verifiera din identitet. Detta kr\xE4vs f\xF6r autentisering och en p\xE5litlig inloggningsupplevelse.",
|
|
4271
|
+
"consent.scope.offline_access.title": "Offline-\xE5tkomst",
|
|
4272
|
+
"consent.scope.offline_access.description": "G\xF6r det m\xF6jligt f\xF6r denna applikation att h\xE5lla dig inloggad \xE4ven n\xE4r du inte aktivt anv\xE4nder den.",
|
|
4273
|
+
"consent.scope.profile.title": "Profilinformation",
|
|
4274
|
+
"consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
|
|
4275
|
+
"consent.scope.email.title": "E-postadress",
|
|
4276
|
+
"consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
|
|
4277
|
+
"consent.scope.address.title": "Fysisk adress",
|
|
4278
|
+
"consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
|
|
4279
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
4280
|
+
"consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
|
|
4281
|
+
"error.action.go-back": "",
|
|
4282
|
+
"error.footer.copy": "",
|
|
4283
|
+
"error.footer.text": "",
|
|
4284
|
+
"error.title.what-can-i-do": "",
|
|
4285
|
+
"error.title.what-happened": "",
|
|
4286
|
+
"error.instructions": ""
|
|
3860
4287
|
};
|
|
3861
4288
|
|
|
3862
4289
|
// src/locales/index.ts
|
|
@@ -3871,6 +4298,6 @@ var OryLocales = {
|
|
|
3871
4298
|
sv: sv_default
|
|
3872
4299
|
};
|
|
3873
4300
|
|
|
3874
|
-
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
|
|
4301
|
+
export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryConsentCard, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
|
|
3875
4302
|
//# sourceMappingURL=index.mjs.map
|
|
3876
4303
|
//# sourceMappingURL=index.mjs.map
|