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