@ory/elements-react 0.0.0-pr.6b3fe62 → 0.0.0-pr.6ecad3e0
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 +96 -0
- package/README.md +253 -4
- package/dist/index.d.mts +58 -25
- package/dist/index.d.ts +58 -25
- package/dist/index.js +457 -325
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +458 -326
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +12 -6
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.js +3368 -3200
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +3411 -3240
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +6 -5
- package/tsconfig.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UiNodeGroupEnum, isUiNodeInputAttributes, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, FlowType,
|
|
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
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';
|
|
@@ -48,13 +48,18 @@ var defaultNodeOrder = [
|
|
|
48
48
|
];
|
|
49
49
|
function defaultNodeSorter(a, b) {
|
|
50
50
|
var _a, _b;
|
|
51
|
+
const aIsCaptcha = a.group === "captcha";
|
|
52
|
+
const bIsCaptcha = b.group === "captcha";
|
|
53
|
+
const aIsSubmit = isUiNodeInputAttributes(a.attributes) && a.attributes.type === "submit";
|
|
54
|
+
const bIsSubmit = isUiNodeInputAttributes(b.attributes) && b.attributes.type === "submit";
|
|
55
|
+
if (aIsCaptcha && bIsSubmit) {
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
if (bIsCaptcha && aIsSubmit) {
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
51
61
|
const aGroupWeight = (_a = defaultNodeOrder.indexOf(a.group)) != null ? _a : 999;
|
|
52
62
|
const bGroupWeight = (_b = defaultNodeOrder.indexOf(b.group)) != null ? _b : 999;
|
|
53
|
-
if (b.group === "captcha" && isUiNodeInputAttributes(a.attributes) && a.attributes.type === "submit") {
|
|
54
|
-
return aGroupWeight - (bGroupWeight - 2);
|
|
55
|
-
} else if (a.group === "captcha" && isUiNodeInputAttributes(b.attributes) && b.attributes.type === "submit") {
|
|
56
|
-
return aGroupWeight - 2 - bGroupWeight;
|
|
57
|
-
}
|
|
58
63
|
return aGroupWeight - bGroupWeight;
|
|
59
64
|
}
|
|
60
65
|
var defaultGroupOrder = [
|
|
@@ -92,28 +97,10 @@ function OryComponentProvider({
|
|
|
92
97
|
}
|
|
93
98
|
);
|
|
94
99
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
100
|
-
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
101
|
-
}
|
|
102
|
-
function removeSsoNodes(nodes) {
|
|
103
|
-
return nodes.filter(
|
|
104
|
-
(node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml)
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
108
|
-
var _a, _b, _c, _d;
|
|
109
|
-
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
110
|
-
return [
|
|
111
|
-
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
112
|
-
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
113
|
-
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
114
|
-
].flat().filter(
|
|
115
|
-
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
116
|
-
).concat(selectedNodes);
|
|
100
|
+
|
|
101
|
+
// src/theme/default/utils/form.ts
|
|
102
|
+
function isGroupImmediateSubmit(group) {
|
|
103
|
+
return group === "code";
|
|
117
104
|
}
|
|
118
105
|
function triggerToWindowCall(trigger) {
|
|
119
106
|
if (!trigger) {
|
|
@@ -190,21 +177,29 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
190
177
|
function useNodesGroups(nodes, { omit } = {}) {
|
|
191
178
|
const groupSorter = useGroupSorter();
|
|
192
179
|
const groups = useMemo(() => {
|
|
193
|
-
var _a;
|
|
180
|
+
var _a, _b;
|
|
194
181
|
const groups2 = {};
|
|
182
|
+
const groupRetained = {};
|
|
195
183
|
for (const node of nodes) {
|
|
184
|
+
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
185
|
+
groupNodes.push(node);
|
|
186
|
+
groups2[node.group] = groupNodes;
|
|
196
187
|
if ((omit == null ? void 0 : omit.includes("script")) && isUiNodeScriptAttributes(node.attributes)) {
|
|
197
188
|
continue;
|
|
198
189
|
}
|
|
199
190
|
if ((omit == null ? void 0 : omit.includes("input_hidden")) && isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
200
191
|
continue;
|
|
201
192
|
}
|
|
202
|
-
|
|
203
|
-
groupNodes.push(node);
|
|
204
|
-
groups2[node.group] = groupNodes;
|
|
193
|
+
groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
|
|
205
194
|
}
|
|
206
|
-
|
|
207
|
-
|
|
195
|
+
const finalGroups = {};
|
|
196
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
197
|
+
if (count > 0) {
|
|
198
|
+
finalGroups[group] = groups2[group];
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return finalGroups;
|
|
202
|
+
}, [nodes, omit]);
|
|
208
203
|
const entries = useMemo(
|
|
209
204
|
() => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
|
|
210
205
|
[groups, groupSorter]
|
|
@@ -217,6 +212,93 @@ function useNodesGroups(nodes, { omit } = {}) {
|
|
|
217
212
|
var findNode = (nodes, opt) => nodes.find((n) => {
|
|
218
213
|
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);
|
|
219
214
|
});
|
|
215
|
+
function useFunctionalNodes(nodes) {
|
|
216
|
+
return nodes.filter(
|
|
217
|
+
({ group }) => [
|
|
218
|
+
UiNodeGroupEnum.Default,
|
|
219
|
+
UiNodeGroupEnum.IdentifierFirst,
|
|
220
|
+
UiNodeGroupEnum.Profile,
|
|
221
|
+
UiNodeGroupEnum.Captcha
|
|
222
|
+
].includes(group)
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
function isUiNodeGroupEnum(method) {
|
|
226
|
+
return Object.values(UiNodeGroupEnum).includes(method);
|
|
227
|
+
}
|
|
228
|
+
function isSingleSignOnNode(node) {
|
|
229
|
+
return node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml;
|
|
230
|
+
}
|
|
231
|
+
function hasSingleSignOnNodes(nodes) {
|
|
232
|
+
return nodes.some(isSingleSignOnNode);
|
|
233
|
+
}
|
|
234
|
+
function withoutSingleSignOnNodes(nodes) {
|
|
235
|
+
return nodes.filter((node) => !isSingleSignOnNode(node));
|
|
236
|
+
}
|
|
237
|
+
function isNodeVisible(node) {
|
|
238
|
+
if (isUiNodeScriptAttributes(node.attributes)) {
|
|
239
|
+
return false;
|
|
240
|
+
} else if (isUiNodeInputAttributes(node.attributes)) {
|
|
241
|
+
if (node.attributes.type === "hidden") {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
function useNodeGroupsWithVisibleNodes(nodes) {
|
|
248
|
+
return useMemo(() => {
|
|
249
|
+
var _a, _b;
|
|
250
|
+
const groups = {};
|
|
251
|
+
const groupRetained = {};
|
|
252
|
+
for (const node of nodes) {
|
|
253
|
+
const groupNodes = (_a = groups[node.group]) != null ? _a : [];
|
|
254
|
+
const groupCount = (_b = groupRetained[node.group]) != null ? _b : 0;
|
|
255
|
+
groupNodes.push(node);
|
|
256
|
+
groups[node.group] = groupNodes;
|
|
257
|
+
if (!isNodeVisible(node)) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
groupRetained[node.group] = groupCount + 1;
|
|
261
|
+
}
|
|
262
|
+
const finalGroups = {};
|
|
263
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
264
|
+
if (count > 0) {
|
|
265
|
+
finalGroups[group] = groups[group];
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return finalGroups;
|
|
269
|
+
}, [nodes]);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// src/components/card/two-step/utils.ts
|
|
273
|
+
function isChoosingMethod(flow) {
|
|
274
|
+
return flow.flow.ui.nodes.some(
|
|
275
|
+
(node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
|
|
276
|
+
) || flow.flow.ui.nodes.some(
|
|
277
|
+
(node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
278
|
+
) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
279
|
+
}
|
|
280
|
+
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
281
|
+
var _a, _b, _c, _d;
|
|
282
|
+
const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
|
|
283
|
+
return [
|
|
284
|
+
...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
|
|
285
|
+
...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
|
|
286
|
+
...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
|
|
287
|
+
].flat().filter(
|
|
288
|
+
(node) => "type" in node.attributes && node.attributes.type === "hidden"
|
|
289
|
+
).concat(selectedNodes);
|
|
290
|
+
}
|
|
291
|
+
var handleAfterFormSubmit = (dispatchFormState) => (method) => {
|
|
292
|
+
if (typeof method !== "string" || !isUiNodeGroupEnum(method)) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
if (isGroupImmediateSubmit(method)) {
|
|
296
|
+
dispatchFormState({
|
|
297
|
+
type: "action_select_method",
|
|
298
|
+
method
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
};
|
|
220
302
|
|
|
221
303
|
// src/context/form-state.ts
|
|
222
304
|
function findMethodWithMessage(nodes) {
|
|
@@ -482,15 +564,11 @@ function OryCardContent({ children }) {
|
|
|
482
564
|
const { Card } = useComponents();
|
|
483
565
|
return /* @__PURE__ */ jsx(Card.Content, { children });
|
|
484
566
|
}
|
|
485
|
-
|
|
486
|
-
// src/theme/default/utils/form.ts
|
|
487
|
-
function isGroupImmediateSubmit(group) {
|
|
488
|
-
return group === "code";
|
|
489
|
-
}
|
|
490
567
|
function frontendClient(sdkUrl, opts = {}) {
|
|
491
568
|
const config = new Configuration({
|
|
492
569
|
...opts,
|
|
493
570
|
basePath: sdkUrl,
|
|
571
|
+
credentials: "include",
|
|
494
572
|
headers: {
|
|
495
573
|
Accept: "application/json",
|
|
496
574
|
...opts.headers
|
|
@@ -884,6 +962,9 @@ function OryForm({
|
|
|
884
962
|
const onSubmit = useOryFormSubmit(onAfterSubmit);
|
|
885
963
|
const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
|
|
886
964
|
if (isUiNodeInputAttributes(node.attributes)) {
|
|
965
|
+
if (node.attributes.type === "hidden") {
|
|
966
|
+
return false;
|
|
967
|
+
}
|
|
887
968
|
return node.attributes.name !== "csrf_token";
|
|
888
969
|
} else if (isUiNodeAnchorAttributes(node.attributes)) {
|
|
889
970
|
return true;
|
|
@@ -903,12 +984,9 @@ function OryForm({
|
|
|
903
984
|
}),
|
|
904
985
|
type: "error"
|
|
905
986
|
};
|
|
906
|
-
return /* @__PURE__ */
|
|
907
|
-
/* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }),
|
|
908
|
-
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
909
|
-
] });
|
|
987
|
+
return /* @__PURE__ */ jsx("div", { "data-testid": dataTestId, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }) });
|
|
910
988
|
}
|
|
911
|
-
if (flowContainer.flowType === FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
989
|
+
if ((flowContainer.flowType === FlowType.Login || flowContainer.flowType === FlowType.Registration) && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
|
|
912
990
|
methods.setValue("method", "code");
|
|
913
991
|
}
|
|
914
992
|
return /* @__PURE__ */ jsx(
|
|
@@ -962,10 +1040,7 @@ var NodeInput = ({
|
|
|
962
1040
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
963
1041
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
964
1042
|
const setFormValue = () => {
|
|
965
|
-
if (isResendNode || isScreenSelectionNode || node.group === UiNodeGroupEnum.Oauth2Consent) {
|
|
966
|
-
return;
|
|
967
|
-
}
|
|
968
|
-
if (attrs.value !== void 0) {
|
|
1043
|
+
if (attrs.value && !(isResendNode || isScreenSelectionNode || node.group === UiNodeGroupEnum.Oauth2Consent)) {
|
|
969
1044
|
setValue(attrs.name, attrs.value);
|
|
970
1045
|
}
|
|
971
1046
|
};
|
|
@@ -1109,7 +1184,7 @@ function OryFormOidcButtons() {
|
|
|
1109
1184
|
if (filteredNodes.length === 0) {
|
|
1110
1185
|
return null;
|
|
1111
1186
|
}
|
|
1112
|
-
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node
|
|
1187
|
+
return /* @__PURE__ */ jsx(Form.OidcRoot, { nodes: filteredNodes, children: filteredNodes.map((node) => /* @__PURE__ */ jsx(
|
|
1113
1188
|
Node2.OidcButton,
|
|
1114
1189
|
{
|
|
1115
1190
|
node,
|
|
@@ -1122,7 +1197,7 @@ function OryFormOidcButtons() {
|
|
|
1122
1197
|
setValue("method", node.group);
|
|
1123
1198
|
}
|
|
1124
1199
|
},
|
|
1125
|
-
|
|
1200
|
+
getNodeId(node)
|
|
1126
1201
|
)) });
|
|
1127
1202
|
}
|
|
1128
1203
|
function OryFormSocialButtonsForm() {
|
|
@@ -1137,24 +1212,104 @@ function OryFormSocialButtonsForm() {
|
|
|
1137
1212
|
}
|
|
1138
1213
|
return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
|
|
1139
1214
|
}
|
|
1140
|
-
function
|
|
1141
|
-
|
|
1215
|
+
function OryTwoStepCardStateMethodActive({
|
|
1216
|
+
formState
|
|
1217
|
+
}) {
|
|
1218
|
+
const { Form } = useComponents();
|
|
1219
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1220
|
+
const { ui } = flow;
|
|
1221
|
+
const nodeSorter = useNodeSorter();
|
|
1222
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1223
|
+
const groupsToShow = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1224
|
+
const finalNodes = getFinalNodes(groupsToShow, formState.method);
|
|
1225
|
+
const selectedMethodIsSocial = formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml;
|
|
1226
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1227
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1228
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1229
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1230
|
+
selectedMethodIsSocial && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1231
|
+
/* @__PURE__ */ jsx(
|
|
1232
|
+
OryForm,
|
|
1233
|
+
{
|
|
1234
|
+
"data-testid": `ory/form/methods/local`,
|
|
1235
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1236
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1237
|
+
ui.nodes.filter(
|
|
1238
|
+
(n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Default || n.group === UiNodeGroupEnum.Profile
|
|
1239
|
+
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1240
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1241
|
+
] })
|
|
1242
|
+
}
|
|
1243
|
+
)
|
|
1244
|
+
] }),
|
|
1245
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1246
|
+
] });
|
|
1142
1247
|
}
|
|
1143
|
-
function
|
|
1144
|
-
var _a, _b, _c, _d;
|
|
1248
|
+
function OryTwoStepCardStateProvideIdentifier() {
|
|
1145
1249
|
const { Form, Card } = useComponents();
|
|
1146
|
-
const {
|
|
1147
|
-
const { ui } = flow;
|
|
1250
|
+
const { flowType, flow, dispatchFormState } = useOryFlow();
|
|
1148
1251
|
const nodeSorter = useNodeSorter();
|
|
1149
1252
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1150
|
-
const
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
const
|
|
1253
|
+
const nonSsoNodes = withoutSingleSignOnNodes(flow.ui.nodes).sort(sortNodes);
|
|
1254
|
+
const hasSso = flow.ui.nodes.filter(isNodeVisible).some(
|
|
1255
|
+
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1256
|
+
);
|
|
1257
|
+
const showSsoDivider = hasSso && nonSsoNodes.some(isNodeVisible);
|
|
1258
|
+
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1259
|
+
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1260
|
+
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1261
|
+
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1262
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1263
|
+
/* @__PURE__ */ jsx(
|
|
1264
|
+
OryForm,
|
|
1265
|
+
{
|
|
1266
|
+
"data-testid": `ory/form/methods/local`,
|
|
1267
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1268
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1269
|
+
showSsoDivider && /* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1270
|
+
nonSsoNodes.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1271
|
+
] })
|
|
1272
|
+
}
|
|
1273
|
+
)
|
|
1274
|
+
] }),
|
|
1275
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1276
|
+
] });
|
|
1277
|
+
}
|
|
1278
|
+
function AuthMethodList({
|
|
1279
|
+
options,
|
|
1280
|
+
setSelectedGroup
|
|
1281
|
+
}) {
|
|
1282
|
+
const { Card } = useComponents();
|
|
1283
|
+
const { setValue, getValues } = useFormContext();
|
|
1284
|
+
if (Object.entries(options).length === 0) {
|
|
1285
|
+
return null;
|
|
1286
|
+
}
|
|
1287
|
+
const handleClick = (group, options2) => {
|
|
1288
|
+
var _a, _b, _c, _d;
|
|
1289
|
+
if (isGroupImmediateSubmit(group)) {
|
|
1290
|
+
if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
|
|
1291
|
+
setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
|
|
1292
|
+
}
|
|
1293
|
+
setValue("method", group);
|
|
1294
|
+
} else {
|
|
1295
|
+
setSelectedGroup(group);
|
|
1296
|
+
}
|
|
1297
|
+
};
|
|
1298
|
+
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1299
|
+
Card.AuthMethodListItem,
|
|
1300
|
+
{
|
|
1301
|
+
group,
|
|
1302
|
+
title: options2.title,
|
|
1303
|
+
onClick: () => handleClick(group, options2)
|
|
1304
|
+
},
|
|
1305
|
+
group
|
|
1306
|
+
)) });
|
|
1307
|
+
}
|
|
1308
|
+
function toAuthMethodPickerOptions(visibleGroups) {
|
|
1309
|
+
return Object.fromEntries(
|
|
1155
1310
|
Object.values(UiNodeGroupEnum).filter((group) => {
|
|
1156
|
-
var
|
|
1157
|
-
return (
|
|
1311
|
+
var _a;
|
|
1312
|
+
return (_a = visibleGroups[group]) == null ? void 0 : _a.length;
|
|
1158
1313
|
}).filter(
|
|
1159
1314
|
(group) => ![
|
|
1160
1315
|
UiNodeGroupEnum.Oidc,
|
|
@@ -1166,16 +1321,18 @@ function OryTwoStepCard() {
|
|
|
1166
1321
|
].includes(group)
|
|
1167
1322
|
).map((g) => [g, {}])
|
|
1168
1323
|
);
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
);
|
|
1324
|
+
}
|
|
1325
|
+
function OryTwoStepCardStateSelectMethod() {
|
|
1326
|
+
var _a, _b, _c, _d;
|
|
1327
|
+
const { Form, Card, Message } = useComponents();
|
|
1328
|
+
const { flow, flowType, dispatchFormState } = useOryFlow();
|
|
1329
|
+
const { ui } = flow;
|
|
1330
|
+
const intl = useIntl();
|
|
1331
|
+
const nodeSorter = useNodeSorter();
|
|
1332
|
+
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1333
|
+
const visibleGroups = useNodeGroupsWithVisibleNodes(ui.nodes);
|
|
1334
|
+
const authMethodBlocks = toAuthMethodPickerOptions(visibleGroups);
|
|
1335
|
+
const authMethodAdditionalNodes = useFunctionalNodes(ui.nodes);
|
|
1179
1336
|
if (UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1180
1337
|
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1181
1338
|
group: "identifier_first",
|
|
@@ -1196,99 +1353,58 @@ function OryTwoStepCard() {
|
|
|
1196
1353
|
};
|
|
1197
1354
|
}
|
|
1198
1355
|
}
|
|
1199
|
-
const
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
}
|
|
1205
|
-
|
|
1206
|
-
dispatchFormState({
|
|
1207
|
-
type: "action_select_method",
|
|
1208
|
-
method
|
|
1209
|
-
});
|
|
1210
|
-
}
|
|
1356
|
+
const noMethods = {
|
|
1357
|
+
id: 5000002,
|
|
1358
|
+
text: intl.formatMessage({
|
|
1359
|
+
id: `identities.messages.5000002`,
|
|
1360
|
+
defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
|
|
1361
|
+
}),
|
|
1362
|
+
type: "error"
|
|
1211
1363
|
};
|
|
1212
|
-
const hasSso = ui.nodes.some(
|
|
1213
|
-
(node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
|
|
1214
|
-
);
|
|
1215
|
-
const showSso = !(formState.current === "method_active" && !(formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml));
|
|
1216
|
-
const showSsoDivider = hasSso && nonSsoNodes.filter((n) => {
|
|
1217
|
-
if (isUiNodeInputAttributes(n.attributes)) {
|
|
1218
|
-
return n.attributes.type !== UiNodeInputAttributesTypeEnum.Hidden;
|
|
1219
|
-
} else if (isUiNodeScriptAttributes(n.attributes)) {
|
|
1220
|
-
return false;
|
|
1221
|
-
}
|
|
1222
|
-
return true;
|
|
1223
|
-
}).length > 0;
|
|
1224
1364
|
return /* @__PURE__ */ jsxs(OryCard, { children: [
|
|
1225
1365
|
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1226
1366
|
/* @__PURE__ */ jsxs(OryCardContent, { children: [
|
|
1227
1367
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1228
|
-
|
|
1229
|
-
/* @__PURE__ */
|
|
1368
|
+
/* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
|
|
1369
|
+
Object.entries(authMethodBlocks).length > 0 ? /* @__PURE__ */ jsx(
|
|
1230
1370
|
OryForm,
|
|
1231
1371
|
{
|
|
1232
1372
|
"data-testid": `ory/form/methods/local`,
|
|
1233
|
-
onAfterSubmit: handleAfterFormSubmit,
|
|
1234
|
-
children: [
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
})
|
|
1249
|
-
}
|
|
1250
|
-
),
|
|
1251
|
-
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1252
|
-
] }),
|
|
1253
|
-
formState.current === "method_active" && /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1254
|
-
ui.nodes.filter(
|
|
1255
|
-
(n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Captcha
|
|
1256
|
-
).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
|
|
1257
|
-
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1258
|
-
] }),
|
|
1259
|
-
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1260
|
-
]
|
|
1373
|
+
onAfterSubmit: handleAfterFormSubmit(dispatchFormState),
|
|
1374
|
+
children: /* @__PURE__ */ jsxs(Form.Group, { children: [
|
|
1375
|
+
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1376
|
+
/* @__PURE__ */ jsx(
|
|
1377
|
+
AuthMethodList,
|
|
1378
|
+
{
|
|
1379
|
+
options: authMethodBlocks,
|
|
1380
|
+
setSelectedGroup: (group) => dispatchFormState({
|
|
1381
|
+
type: "action_select_method",
|
|
1382
|
+
method: group
|
|
1383
|
+
})
|
|
1384
|
+
}
|
|
1385
|
+
),
|
|
1386
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
|
|
1387
|
+
] })
|
|
1261
1388
|
}
|
|
1262
|
-
)
|
|
1263
|
-
] })
|
|
1389
|
+
) : !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) }) })
|
|
1390
|
+
] }),
|
|
1391
|
+
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1264
1392
|
] });
|
|
1265
1393
|
}
|
|
1266
|
-
function
|
|
1267
|
-
const {
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1394
|
+
function OryTwoStepCard() {
|
|
1395
|
+
const { formState } = useOryFlow();
|
|
1396
|
+
switch (formState.current) {
|
|
1397
|
+
case "provide_identifier":
|
|
1398
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateProvideIdentifier, {});
|
|
1399
|
+
case "select_method":
|
|
1400
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateSelectMethod, {});
|
|
1401
|
+
case "method_active":
|
|
1402
|
+
return /* @__PURE__ */ jsx(OryTwoStepCardStateMethodActive, { formState });
|
|
1271
1403
|
}
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
|
|
1277
|
-
}
|
|
1278
|
-
setValue("method", group);
|
|
1279
|
-
} else {
|
|
1280
|
-
setSelectedGroup(group);
|
|
1281
|
-
}
|
|
1282
|
-
};
|
|
1283
|
-
return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
|
|
1284
|
-
Card.AuthMethodListItem,
|
|
1285
|
-
{
|
|
1286
|
-
group,
|
|
1287
|
-
title: options2.title,
|
|
1288
|
-
onClick: () => handleClick(group, options2)
|
|
1289
|
-
},
|
|
1290
|
-
group
|
|
1291
|
-
)) });
|
|
1404
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1405
|
+
"unknown form state: ",
|
|
1406
|
+
formState.current
|
|
1407
|
+
] });
|
|
1292
1408
|
}
|
|
1293
1409
|
function OryFormGroups({ groups }) {
|
|
1294
1410
|
const {
|
|
@@ -1298,8 +1414,8 @@ function OryFormGroups({ groups }) {
|
|
|
1298
1414
|
const { flowType } = useOryFlow();
|
|
1299
1415
|
const { Form } = useComponents();
|
|
1300
1416
|
const nodes = ui.nodes.filter((node) => groups.indexOf(node.group) > -1).sort((a, b) => nodeSorter(a, b, { flowType }));
|
|
1301
|
-
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node
|
|
1302
|
-
return /* @__PURE__ */ jsx(Node, { node },
|
|
1417
|
+
return /* @__PURE__ */ jsx(Form.Group, { children: nodes.map((node) => {
|
|
1418
|
+
return /* @__PURE__ */ jsx(Node, { node }, getNodeId(node));
|
|
1303
1419
|
}) });
|
|
1304
1420
|
}
|
|
1305
1421
|
function OryFormSection({
|
|
@@ -1335,7 +1451,7 @@ function OryConsentCard() {
|
|
|
1335
1451
|
/* @__PURE__ */ jsx(OryCardHeader, {}),
|
|
1336
1452
|
/* @__PURE__ */ jsx(OryCardContent, { children: /* @__PURE__ */ jsxs(OryForm, { children: [
|
|
1337
1453
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1338
|
-
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node
|
|
1454
|
+
/* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) }),
|
|
1339
1455
|
/* @__PURE__ */ jsx(Card.Divider, {}),
|
|
1340
1456
|
/* @__PURE__ */ jsx(OryCardFooter, {})
|
|
1341
1457
|
] }) })
|
|
@@ -1706,7 +1822,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1706
1822
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1707
1823
|
children: [
|
|
1708
1824
|
/* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
1709
|
-
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node
|
|
1825
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1710
1826
|
]
|
|
1711
1827
|
}
|
|
1712
1828
|
);
|
|
@@ -1724,7 +1840,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1724
1840
|
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1725
1841
|
}
|
|
1726
1842
|
),
|
|
1727
|
-
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node
|
|
1843
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1728
1844
|
]
|
|
1729
1845
|
}
|
|
1730
1846
|
);
|
|
@@ -1737,7 +1853,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1737
1853
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1738
1854
|
children: [
|
|
1739
1855
|
/* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
1740
|
-
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node
|
|
1856
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1741
1857
|
]
|
|
1742
1858
|
}
|
|
1743
1859
|
);
|
|
@@ -1750,7 +1866,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1750
1866
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1751
1867
|
children: [
|
|
1752
1868
|
/* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
1753
|
-
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node
|
|
1869
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1754
1870
|
]
|
|
1755
1871
|
}
|
|
1756
1872
|
);
|
|
@@ -1763,7 +1879,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1763
1879
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1764
1880
|
children: [
|
|
1765
1881
|
/* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
1766
|
-
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node
|
|
1882
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1767
1883
|
]
|
|
1768
1884
|
}
|
|
1769
1885
|
);
|
|
@@ -1784,16 +1900,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1784
1900
|
id: `settings.${group}.description`
|
|
1785
1901
|
}),
|
|
1786
1902
|
children: [
|
|
1787
|
-
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node
|
|
1903
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))),
|
|
1788
1904
|
nodes.filter(
|
|
1789
1905
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1790
|
-
).map((node
|
|
1906
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node)))
|
|
1791
1907
|
]
|
|
1792
1908
|
}
|
|
1793
1909
|
),
|
|
1794
1910
|
/* @__PURE__ */ jsx(Card.SettingsSectionFooter, { children: nodes.filter(
|
|
1795
1911
|
(node) => "type" in node.attributes && node.attributes.type === "submit"
|
|
1796
|
-
).map((node
|
|
1912
|
+
).map((node) => /* @__PURE__ */ jsx(Node, { node }, getNodeId(node))) })
|
|
1797
1913
|
]
|
|
1798
1914
|
}
|
|
1799
1915
|
);
|
|
@@ -1807,7 +1923,7 @@ function OrySettingsCard() {
|
|
|
1807
1923
|
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1808
1924
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1809
1925
|
/* @__PURE__ */ jsx(OryCardValidationMessages, {}),
|
|
1810
|
-
scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n })),
|
|
1926
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n }, getNodeId(n))),
|
|
1811
1927
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1812
1928
|
if (group === UiNodeGroupEnum.Default) {
|
|
1813
1929
|
return null;
|
|
@@ -2114,9 +2230,11 @@ var en_default = {
|
|
|
2114
2230
|
"card.header.parts.oidc": "a social provider",
|
|
2115
2231
|
"card.header.parts.password.registration": "your {identifierLabel} and a password",
|
|
2116
2232
|
"card.header.parts.password.login": "your {identifierLabel} and password",
|
|
2117
|
-
"card.header.parts.code": "a code sent to
|
|
2233
|
+
"card.header.parts.code": "a code sent to you",
|
|
2118
2234
|
"card.header.parts.passkey": "a Passkey",
|
|
2119
2235
|
"card.header.parts.webauthn": "a security key",
|
|
2236
|
+
"card.header.parts.totp": "your authenticator app",
|
|
2237
|
+
"card.header.parts.lookup_secret": "a backup recovery code",
|
|
2120
2238
|
"card.header.parts.identifier-first": "your {identifierLabel}",
|
|
2121
2239
|
"card.header.description.login": "Sign in with {identifierLabel}",
|
|
2122
2240
|
"card.header.description.registration": "Sign up with {identifierLabel}",
|
|
@@ -2349,28 +2467,30 @@ var de_default = {
|
|
|
2349
2467
|
"login.cancel-label": "Nicht das richtige Konto?",
|
|
2350
2468
|
"identities.messages.1010023": "Code an {address} senden",
|
|
2351
2469
|
"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.",
|
|
2352
|
-
"identities.messages.1010017": "",
|
|
2353
|
-
"identities.messages.1010018": "",
|
|
2354
|
-
"identities.messages.1010019": "",
|
|
2470
|
+
"identities.messages.1010017": "Anmelden und verbinden",
|
|
2471
|
+
"identities.messages.1010018": "Mit {provider} best\xE4tigen",
|
|
2472
|
+
"identities.messages.1010019": "Code senden um fortzufahren",
|
|
2355
2473
|
"identities.messages.1010020": "",
|
|
2356
|
-
"identities.messages.1010021": "",
|
|
2357
|
-
"identities.messages.1010022": "",
|
|
2358
|
-
"identities.messages.1040007": "",
|
|
2359
|
-
"identities.messages.1040008": "",
|
|
2360
|
-
"identities.messages.1040009": "",
|
|
2474
|
+
"identities.messages.1010021": "Mit Paskey anmelden",
|
|
2475
|
+
"identities.messages.1010022": "Mit Passwort anmelden",
|
|
2476
|
+
"identities.messages.1040007": "Mit Passkey registrieren",
|
|
2477
|
+
"identities.messages.1040008": "Zur\xFCck",
|
|
2478
|
+
"identities.messages.1040009": "Bitte w\xE4hlen Sie eine Authentifizierungsmethode, um fortzufahren.",
|
|
2361
2479
|
"identities.messages.1050019": "Passkey hinzuf\xFCgen",
|
|
2362
|
-
"identities.messages.1050020": "",
|
|
2363
|
-
"identities.messages.4000037": "",
|
|
2364
|
-
"identities.messages.4010009": "",
|
|
2365
|
-
"identities.messages.4010010": "",
|
|
2480
|
+
"identities.messages.1050020": 'Passkey "{display_name}" entfernen',
|
|
2481
|
+
"identities.messages.4000037": "F\xFCr die eingegebenen Daten existiert kein Account",
|
|
2482
|
+
"identities.messages.4010009": "Die Authentifizierungsmethode stimmt nicht mit der vorherigen Authentifizierungsmethode \xFCberein. Bitte versuchen Sie es erneut.",
|
|
2483
|
+
"identities.messages.4010010": "Die eingegebene Adresse stimmt nicht mit der Adresse \xFCberein, die Sie bei der Registrierung angegeben haben. Bitte versuchen Sie es erneut.",
|
|
2366
2484
|
"input.placeholder": "{placeholder} eingeben",
|
|
2367
|
-
"card.header.parts.code": "
|
|
2485
|
+
"card.header.parts.code": "ein an Sie gesendeter Code",
|
|
2368
2486
|
"card.header.parts.identifier-first": "Ihr {identifierLabel}",
|
|
2369
2487
|
"card.header.parts.oidc": "ein sozialer Anbieter",
|
|
2370
2488
|
"card.header.parts.passkey": "ein Passkey",
|
|
2371
2489
|
"card.header.parts.password.login": "Ihrer {identifierLabel} und Ihrem Passwort",
|
|
2372
2490
|
"card.header.parts.password.registration": "Ihrer {identifierLabel} und einem Passwort",
|
|
2373
2491
|
"card.header.parts.webauthn": "ein Sicherheitsschl\xFCssel",
|
|
2492
|
+
"card.header.parts.totp": "deine Authentifikator-App",
|
|
2493
|
+
"card.header.parts.lookup_secret": "ein Backup-Wiederherstellungscode",
|
|
2374
2494
|
"recovery.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um einen einmaligen Zugangscode zu erhalten",
|
|
2375
2495
|
"verification.subtitle": "Geben Sie die mit Ihrem Konto verkn\xFCpfte E-Mail-Adresse ein, um es zu best\xE4tigen",
|
|
2376
2496
|
"card.header.description.login": "Melden Sie sich mit {identifierLabel} an",
|
|
@@ -2463,7 +2583,6 @@ var es_default = {
|
|
|
2463
2583
|
"error.back-button": "Regresar",
|
|
2464
2584
|
"error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
|
|
2465
2585
|
"error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
|
|
2466
|
-
"error.title": "",
|
|
2467
2586
|
"error.title-internal-server-error": "Error Interno del Servidor",
|
|
2468
2587
|
"error.title-not-found": "404 - P\xE1gina no encontrada",
|
|
2469
2588
|
"identities.messages.1010001": "Iniciar sesi\xF3n",
|
|
@@ -2638,45 +2757,6 @@ var es_default = {
|
|
|
2638
2757
|
"two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
|
|
2639
2758
|
"two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
|
|
2640
2759
|
"two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
|
|
2641
|
-
"identities.messages.1010016": "",
|
|
2642
|
-
"identities.messages.1010017": "",
|
|
2643
|
-
"identities.messages.1010018": "",
|
|
2644
|
-
"identities.messages.1010019": "",
|
|
2645
|
-
"identities.messages.1010020": "",
|
|
2646
|
-
"identities.messages.1010021": "",
|
|
2647
|
-
"identities.messages.1010022": "",
|
|
2648
|
-
"identities.messages.1010023": "",
|
|
2649
|
-
"identities.messages.1040007": "",
|
|
2650
|
-
"identities.messages.1040008": "",
|
|
2651
|
-
"identities.messages.1040009": "",
|
|
2652
|
-
"identities.messages.1050019": "",
|
|
2653
|
-
"identities.messages.1050020": "",
|
|
2654
|
-
"identities.messages.1070014": "",
|
|
2655
|
-
"identities.messages.1070015": "",
|
|
2656
|
-
"identities.messages.4000037": "",
|
|
2657
|
-
"identities.messages.4000038": "",
|
|
2658
|
-
"identities.messages.4010009": "",
|
|
2659
|
-
"identities.messages.4010010": "",
|
|
2660
|
-
"login.cancel-button": "",
|
|
2661
|
-
"login.cancel-label": "",
|
|
2662
|
-
"input.placeholder": "",
|
|
2663
|
-
"card.header.description.login": "",
|
|
2664
|
-
"card.header.description.registration": "",
|
|
2665
|
-
"card.header.parts.code": "",
|
|
2666
|
-
"card.header.parts.identifier-first": "",
|
|
2667
|
-
"card.header.parts.oidc": "",
|
|
2668
|
-
"card.header.parts.passkey": "",
|
|
2669
|
-
"card.header.parts.password.login": "",
|
|
2670
|
-
"card.header.parts.password.registration": "",
|
|
2671
|
-
"card.header.parts.webauthn": "",
|
|
2672
|
-
"forms.label.forgot-password": "",
|
|
2673
|
-
"login.subtitle": "",
|
|
2674
|
-
"login.subtitle-refresh": "",
|
|
2675
|
-
"misc.or": "",
|
|
2676
|
-
"recovery.subtitle": "",
|
|
2677
|
-
"registration.subtitle": "",
|
|
2678
|
-
"settings.subtitle": "",
|
|
2679
|
-
"verification.subtitle": "",
|
|
2680
2760
|
"settings.totp.info.linked": "Actualmente tienes una aplicaci\xF3n de autenticaci\xF3n conectada.",
|
|
2681
2761
|
"settings.totp.info.not-linked": "Para habilitar, escanea el c\xF3digo QR con tu autenticador e ingresa el c\xF3digo.",
|
|
2682
2762
|
"settings.totp.title": "Aplicaci\xF3n Autenticadora",
|
|
@@ -2694,25 +2774,6 @@ var es_default = {
|
|
|
2694
2774
|
"settings.profile.title": "Configuraci\xF3n de Perfil",
|
|
2695
2775
|
"settings.webauthn.description": "Administra la configuraci\xF3n de tu token de hardware",
|
|
2696
2776
|
"settings.webauthn.title": "Gestionar Tokens de Hardware",
|
|
2697
|
-
"settings.oidc.info": "",
|
|
2698
|
-
"settings.passkey.info": "",
|
|
2699
|
-
"settings.title-lookup-secret": "",
|
|
2700
|
-
"settings.title-navigation": "",
|
|
2701
|
-
"settings.title-oidc": "",
|
|
2702
|
-
"settings.title-passkey": "",
|
|
2703
|
-
"settings.title-password": "",
|
|
2704
|
-
"settings.title-profile": "",
|
|
2705
|
-
"settings.title-totp": "",
|
|
2706
|
-
"settings.title-webauthn": "",
|
|
2707
|
-
"settings.webauthn.info": "",
|
|
2708
|
-
"card.footer.select-another-method": "",
|
|
2709
|
-
"account-linking.title": "",
|
|
2710
|
-
"property.code": "",
|
|
2711
|
-
"property.email": "",
|
|
2712
|
-
"property.identifier": "",
|
|
2713
|
-
"property.password": "",
|
|
2714
|
-
"property.phone": "",
|
|
2715
|
-
"property.username": "",
|
|
2716
2777
|
"consent.title": "Autorizar {party}",
|
|
2717
2778
|
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2718
2779
|
"consent.scope.openid.title": "Identidad",
|
|
@@ -2727,12 +2788,73 @@ var es_default = {
|
|
|
2727
2788
|
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2728
2789
|
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
2729
2790
|
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
2730
|
-
"error.
|
|
2731
|
-
"
|
|
2732
|
-
"
|
|
2733
|
-
"
|
|
2734
|
-
"
|
|
2735
|
-
"
|
|
2791
|
+
"error.title": "Ocurri\xF3 un error",
|
|
2792
|
+
"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.',
|
|
2793
|
+
"identities.messages.1010017": "Iniciar sesi\xF3n y vincular",
|
|
2794
|
+
"identities.messages.1010018": "Confirmar con {provider}",
|
|
2795
|
+
"identities.messages.1010019": "Solicitar c\xF3digo para continuar",
|
|
2796
|
+
"identities.messages.1010021": "Iniciar sesi\xF3n con clave de acceso",
|
|
2797
|
+
"identities.messages.1010022": "Iniciar sesi\xF3n con contrase\xF1a",
|
|
2798
|
+
"identities.messages.1010023": "Enviar c\xF3digo a {address}",
|
|
2799
|
+
"identities.messages.1040007": "Registrarse con clave de acceso",
|
|
2800
|
+
"identities.messages.1040008": "Atr\xE1s",
|
|
2801
|
+
"identities.messages.1040009": "Por favor, elige una credencial para autenticarte.",
|
|
2802
|
+
"identities.messages.1050019": "Agregar clave de acceso",
|
|
2803
|
+
"identities.messages.1070014": "Iniciar sesi\xF3n y vincular credencial",
|
|
2804
|
+
"identities.messages.1070015": "Por favor, completa el desaf\xEDo captcha para continuar.",
|
|
2805
|
+
"identities.messages.4000037": "Esta cuenta no existe o no tiene ning\xFAn m\xE9todo de inicio de sesi\xF3n configurado.",
|
|
2806
|
+
"identities.messages.4000038": "Fall\xF3 la verificaci\xF3n de Captcha, por favor intenta de nuevo.",
|
|
2807
|
+
"identities.messages.4010009": "Las credenciales vinculadas no coinciden.",
|
|
2808
|
+
"identities.messages.4010010": "La direcci\xF3n que ingresaste no coincide con ninguna direcci\xF3n conocida en la cuenta actual.",
|
|
2809
|
+
"login.cancel-button": "Cancelar",
|
|
2810
|
+
"login.cancel-label": "\xBFNo es la cuenta correcta?",
|
|
2811
|
+
"login.subtitle": "Iniciar sesi\xF3n con {parts}",
|
|
2812
|
+
"login.subtitle-refresh": "Confirma tu identidad con {parts}",
|
|
2813
|
+
"recovery.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para recibir un c\xF3digo de acceso \xFAnico",
|
|
2814
|
+
"registration.subtitle": "Registrarse con {parts}",
|
|
2815
|
+
"settings.subtitle": "Actualiza la configuraci\xF3n de tu cuenta",
|
|
2816
|
+
"settings.title-lookup-secret": "Administrar c\xF3digos de recuperaci\xF3n de respaldo 2FA",
|
|
2817
|
+
"settings.title-navigation": "Configuraci\xF3n de la cuenta",
|
|
2818
|
+
"settings.title-oidc": "Inicio de sesi\xF3n social",
|
|
2819
|
+
"settings.title-password": "Cambiar contrase\xF1a",
|
|
2820
|
+
"settings.title-profile": "Configuraci\xF3n del perfil",
|
|
2821
|
+
"settings.title-totp": "Administrar la aplicaci\xF3n de autenticaci\xF3n 2FA TOTP",
|
|
2822
|
+
"settings.title-webauthn": "Administrar tokens de hardware",
|
|
2823
|
+
"settings.title-passkey": "Administrar claves de acceso",
|
|
2824
|
+
"verification.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para verificarla",
|
|
2825
|
+
"input.placeholder": "Ingresa tu {placeholder}",
|
|
2826
|
+
"card.header.parts.oidc": "un proveedor social",
|
|
2827
|
+
"card.header.parts.password.registration": "tu {identifierLabel} y una contrase\xF1a",
|
|
2828
|
+
"card.header.parts.password.login": "tu {identifierLabel} y contrase\xF1a",
|
|
2829
|
+
"card.header.parts.code": "un c\xF3digo enviado a tu correo electr\xF3nico",
|
|
2830
|
+
"card.header.parts.passkey": "una clave de acceso",
|
|
2831
|
+
"card.header.parts.webauthn": "una clave de seguridad",
|
|
2832
|
+
"card.header.parts.totp": "su aplicaci\xF3n de autenticaci\xF3n",
|
|
2833
|
+
"card.header.parts.lookup_secret": "un c\xF3digo de recuperaci\xF3n de copia de seguridad",
|
|
2834
|
+
"card.header.parts.identifier-first": "tu {identifierLabel}",
|
|
2835
|
+
"card.header.description.login": "Iniciar sesi\xF3n con {identifierLabel}",
|
|
2836
|
+
"card.header.description.registration": "Registrarse con {identifierLabel}",
|
|
2837
|
+
"misc.or": "o",
|
|
2838
|
+
"forms.label.forgot-password": "\xBFOlvidaste tu contrase\xF1a?",
|
|
2839
|
+
"settings.oidc.info": "Las cuentas conectadas de estos proveedores se pueden utilizar para iniciar sesi\xF3n en tu cuenta",
|
|
2840
|
+
"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",
|
|
2841
|
+
"settings.passkey.info": "Administra la configuraci\xF3n de tus claves de acceso",
|
|
2842
|
+
"card.footer.select-another-method": "Seleccionar otro m\xE9todo",
|
|
2843
|
+
"account-linking.title": "Vincular cuenta",
|
|
2844
|
+
"property.password": "contrase\xF1a",
|
|
2845
|
+
"property.email": "correo electr\xF3nico",
|
|
2846
|
+
"property.phone": "tel\xE9fono",
|
|
2847
|
+
"property.username": "nombre de usuario",
|
|
2848
|
+
"property.identifier": "identificador",
|
|
2849
|
+
"property.code": "c\xF3digo",
|
|
2850
|
+
"error.title.what-happened": "\xBFQu\xE9 pas\xF3?",
|
|
2851
|
+
"error.title.what-can-i-do": "\xBFQu\xE9 puedo hacer?",
|
|
2852
|
+
"error.instructions": "Por favor, int\xE9ntalo de nuevo en unos minutos o contacta al operador del sitio web.",
|
|
2853
|
+
"error.footer.text": "Al informar este error, incluye la siguiente informaci\xF3n:",
|
|
2854
|
+
"error.footer.copy": "Copiar",
|
|
2855
|
+
"error.action.go-back": "Regresar",
|
|
2856
|
+
"identities.messages.1010020": "",
|
|
2857
|
+
"identities.messages.1050020": 'Eliminar passkey "{display_name}"'
|
|
2736
2858
|
};
|
|
2737
2859
|
|
|
2738
2860
|
// src/locales/fr.json
|
|
@@ -2923,81 +3045,10 @@ var fr_default = {
|
|
|
2923
3045
|
"two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
|
|
2924
3046
|
"two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
|
|
2925
3047
|
"two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
|
|
2926
|
-
"identities.messages.1010023": "",
|
|
2927
|
-
"identities.messages.1070015": "",
|
|
2928
|
-
"identities.messages.4000038": "",
|
|
2929
|
-
"login.cancel-button": "",
|
|
2930
|
-
"login.cancel-label": "",
|
|
2931
|
-
"identities.messages.1010016": "",
|
|
2932
|
-
"identities.messages.1010017": "",
|
|
2933
|
-
"identities.messages.1010018": "",
|
|
2934
|
-
"identities.messages.1010019": "",
|
|
2935
|
-
"identities.messages.1010020": "",
|
|
2936
|
-
"identities.messages.1010021": "",
|
|
2937
|
-
"identities.messages.1010022": "",
|
|
2938
|
-
"identities.messages.1040007": "",
|
|
2939
|
-
"identities.messages.1040008": "",
|
|
2940
|
-
"identities.messages.1040009": "",
|
|
2941
|
-
"identities.messages.1050019": "",
|
|
2942
|
-
"identities.messages.1050020": "",
|
|
2943
|
-
"identities.messages.1070014": "",
|
|
2944
|
-
"identities.messages.4000037": "",
|
|
2945
|
-
"identities.messages.4010009": "",
|
|
2946
|
-
"identities.messages.4010010": "",
|
|
2947
|
-
"input.placeholder": "",
|
|
2948
|
-
"card.header.description.login": "",
|
|
2949
|
-
"card.header.description.registration": "",
|
|
2950
|
-
"card.header.parts.code": "",
|
|
2951
|
-
"card.header.parts.identifier-first": "",
|
|
2952
|
-
"card.header.parts.oidc": "",
|
|
2953
|
-
"card.header.parts.passkey": "",
|
|
2954
|
-
"card.header.parts.password.login": "",
|
|
2955
|
-
"card.header.parts.password.registration": "",
|
|
2956
|
-
"card.header.parts.webauthn": "",
|
|
2957
|
-
"forms.label.forgot-password": "",
|
|
2958
|
-
"login.subtitle": "",
|
|
2959
|
-
"login.subtitle-refresh": "",
|
|
2960
|
-
"misc.or": "",
|
|
2961
|
-
"recovery.subtitle": "",
|
|
2962
|
-
"registration.subtitle": "",
|
|
2963
|
-
"settings.subtitle": "",
|
|
2964
|
-
"verification.subtitle": "",
|
|
2965
3048
|
"settings.totp.info.linked": "Vous avez actuellement une application d'authentification connect\xE9e.",
|
|
2966
3049
|
"settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.",
|
|
2967
3050
|
"settings.totp.title": "Application d'authentification",
|
|
2968
3051
|
"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.",
|
|
2969
|
-
"settings.lookup_secret.description": "",
|
|
2970
|
-
"settings.lookup_secret.title": "",
|
|
2971
|
-
"settings.navigation.title": "",
|
|
2972
|
-
"settings.oidc.description": "",
|
|
2973
|
-
"settings.oidc.info": "",
|
|
2974
|
-
"settings.oidc.title": "",
|
|
2975
|
-
"settings.passkey.description": "",
|
|
2976
|
-
"settings.passkey.info": "",
|
|
2977
|
-
"settings.passkey.title": "",
|
|
2978
|
-
"settings.password.description": "",
|
|
2979
|
-
"settings.password.title": "",
|
|
2980
|
-
"settings.profile.description": "",
|
|
2981
|
-
"settings.profile.title": "",
|
|
2982
|
-
"settings.title-lookup-secret": "",
|
|
2983
|
-
"settings.title-navigation": "",
|
|
2984
|
-
"settings.title-oidc": "",
|
|
2985
|
-
"settings.title-passkey": "",
|
|
2986
|
-
"settings.title-password": "",
|
|
2987
|
-
"settings.title-profile": "",
|
|
2988
|
-
"settings.title-totp": "",
|
|
2989
|
-
"settings.title-webauthn": "",
|
|
2990
|
-
"settings.webauthn.description": "",
|
|
2991
|
-
"settings.webauthn.info": "",
|
|
2992
|
-
"settings.webauthn.title": "",
|
|
2993
|
-
"card.footer.select-another-method": "",
|
|
2994
|
-
"account-linking.title": "",
|
|
2995
|
-
"property.code": "",
|
|
2996
|
-
"property.email": "",
|
|
2997
|
-
"property.identifier": "",
|
|
2998
|
-
"property.password": "",
|
|
2999
|
-
"property.phone": "",
|
|
3000
|
-
"property.username": "",
|
|
3001
3052
|
"consent.title": "Autoriser {party}",
|
|
3002
3053
|
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
3003
3054
|
"consent.scope.openid.title": "Identit\xE9",
|
|
@@ -3012,12 +3063,85 @@ var fr_default = {
|
|
|
3012
3063
|
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
3013
3064
|
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
3014
3065
|
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
3015
|
-
"
|
|
3016
|
-
"
|
|
3017
|
-
"
|
|
3018
|
-
"
|
|
3019
|
-
"
|
|
3020
|
-
"
|
|
3066
|
+
"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.",
|
|
3067
|
+
"identities.messages.1010017": "Se connecter et lier",
|
|
3068
|
+
"identities.messages.1010018": "Confirmer avec {provider}",
|
|
3069
|
+
"identities.messages.1010019": "Demander un code pour continuer",
|
|
3070
|
+
"identities.messages.1010021": "Se connecter avec une cl\xE9 d'acc\xE8s",
|
|
3071
|
+
"identities.messages.1010022": "Se connecter avec un mot de passe",
|
|
3072
|
+
"identities.messages.1010023": "Envoyer le code \xE0 {address}",
|
|
3073
|
+
"identities.messages.1040007": "S'inscrire avec une cl\xE9 d'acc\xE8s",
|
|
3074
|
+
"identities.messages.1040008": "Retour",
|
|
3075
|
+
"identities.messages.1040009": "Veuillez choisir une identification pour vous authentifier.",
|
|
3076
|
+
"identities.messages.1050019": "Ajouter une cl\xE9 d'acc\xE8s",
|
|
3077
|
+
"identities.messages.1050020": "Supprimer la cl\xE9 d'acc\xE8s \xAB {display_name} \xBB",
|
|
3078
|
+
"identities.messages.1070014": "Se connecter et lier l'identification",
|
|
3079
|
+
"identities.messages.1070015": "Veuillez compl\xE9ter le d\xE9fi captcha pour continuer.",
|
|
3080
|
+
"identities.messages.4000037": "Ce compte n'existe pas ou n'a aucune m\xE9thode de connexion configur\xE9e.",
|
|
3081
|
+
"identities.messages.4000038": "La v\xE9rification Captcha a \xE9chou\xE9, veuillez r\xE9essayer.",
|
|
3082
|
+
"identities.messages.4010009": "Les identifications li\xE9es ne correspondent pas.",
|
|
3083
|
+
"identities.messages.4010010": "L'adresse que vous avez saisie ne correspond \xE0 aucune adresse connue dans le compte actuel.",
|
|
3084
|
+
"login.cancel-button": "Annuler",
|
|
3085
|
+
"login.cancel-label": "Ce n'est pas le bon compte\xA0?",
|
|
3086
|
+
"login.subtitle": "Se connecter avec {parts}",
|
|
3087
|
+
"login.subtitle-refresh": "Confirmez votre identit\xE9 avec {parts}",
|
|
3088
|
+
"recovery.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour recevoir un code d'acc\xE8s unique",
|
|
3089
|
+
"registration.subtitle": "S'inscrire avec {parts}",
|
|
3090
|
+
"settings.subtitle": "Mettre \xE0 jour les param\xE8tres de votre compte",
|
|
3091
|
+
"settings.title-lookup-secret": "G\xE9rer les codes de r\xE9cup\xE9ration de sauvegarde 2FA",
|
|
3092
|
+
"settings.title-navigation": "Param\xE8tres du compte",
|
|
3093
|
+
"settings.title-oidc": "Connexion via les r\xE9seaux sociaux",
|
|
3094
|
+
"settings.title-password": "Changer le mot de passe",
|
|
3095
|
+
"settings.title-profile": "Param\xE8tres du profil",
|
|
3096
|
+
"settings.title-totp": "G\xE9rer l'application d'authentification 2FA TOTP",
|
|
3097
|
+
"settings.title-webauthn": "G\xE9rer les jetons mat\xE9riels",
|
|
3098
|
+
"settings.title-passkey": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3099
|
+
"settings.navigation.title": "Param\xE8tres du compte",
|
|
3100
|
+
"settings.password.title": "Changer le mot de passe",
|
|
3101
|
+
"settings.password.description": "Modifier votre mot de passe",
|
|
3102
|
+
"settings.profile.title": "Param\xE8tres du profil",
|
|
3103
|
+
"settings.profile.description": "Mettre \xE0 jour les informations de votre profil",
|
|
3104
|
+
"settings.webauthn.title": "G\xE9rer les jetons mat\xE9riels",
|
|
3105
|
+
"settings.webauthn.description": "G\xE9rer les param\xE8tres de votre jeton mat\xE9riel",
|
|
3106
|
+
"verification.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour la v\xE9rifier",
|
|
3107
|
+
"input.placeholder": "Saisissez votre {placeholder}",
|
|
3108
|
+
"card.header.parts.oidc": "un fournisseur de r\xE9seaux sociaux",
|
|
3109
|
+
"card.header.parts.password.registration": "votre {identifierLabel} et un mot de passe",
|
|
3110
|
+
"card.header.parts.password.login": "votre {identifierLabel} et votre mot de passe",
|
|
3111
|
+
"card.header.parts.passkey": "une cl\xE9 d'acc\xE8s",
|
|
3112
|
+
"card.header.parts.webauthn": "une cl\xE9 de s\xE9curit\xE9",
|
|
3113
|
+
"card.header.parts.identifier-first": "votre {identifierLabel}",
|
|
3114
|
+
"card.header.parts.code": "un code qui vous a \xE9t\xE9 envoy\xE9",
|
|
3115
|
+
"card.header.parts.totp": "votre application d'authentification",
|
|
3116
|
+
"card.header.parts.lookup_secret": "un code de r\xE9cup\xE9ration de secours",
|
|
3117
|
+
"card.header.description.login": "Se connecter avec {identifierLabel}",
|
|
3118
|
+
"card.header.description.registration": "S'inscrire avec {identifierLabel}",
|
|
3119
|
+
"misc.or": "ou",
|
|
3120
|
+
"forms.label.forgot-password": "Mot de passe oubli\xE9?",
|
|
3121
|
+
"settings.lookup_secret.title": "Codes de r\xE9cup\xE9ration de sauvegarde (second facteur)",
|
|
3122
|
+
"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.",
|
|
3123
|
+
"settings.oidc.title": "Comptes connect\xE9s",
|
|
3124
|
+
"settings.oidc.description": "Connectez un fournisseur de connexion sociale \xE0 votre compte.",
|
|
3125
|
+
"settings.oidc.info": "Les comptes connect\xE9s de ces fournisseurs peuvent \xEAtre utilis\xE9s pour vous connecter \xE0 votre compte",
|
|
3126
|
+
"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",
|
|
3127
|
+
"settings.passkey.title": "G\xE9rer les cl\xE9s d'acc\xE8s",
|
|
3128
|
+
"settings.passkey.description": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3129
|
+
"settings.passkey.info": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
|
|
3130
|
+
"card.footer.select-another-method": "S\xE9lectionner une autre m\xE9thode",
|
|
3131
|
+
"account-linking.title": "Lier le compte",
|
|
3132
|
+
"property.password": "mot de passe",
|
|
3133
|
+
"property.email": "e-mail",
|
|
3134
|
+
"property.phone": "t\xE9l\xE9phone",
|
|
3135
|
+
"property.username": "nom d'utilisateur",
|
|
3136
|
+
"property.identifier": "identifiant",
|
|
3137
|
+
"property.code": "code",
|
|
3138
|
+
"error.title.what-happened": "Que s'est-il pass\xE9?",
|
|
3139
|
+
"error.title.what-can-i-do": "Que puis-je faire?",
|
|
3140
|
+
"error.instructions": "Veuillez r\xE9essayer dans quelques minutes ou contacter l'op\xE9rateur du site Web.",
|
|
3141
|
+
"error.footer.text": "Lorsque vous signalez cette erreur, veuillez inclure les informations suivantes:",
|
|
3142
|
+
"error.footer.copy": "Copier",
|
|
3143
|
+
"error.action.go-back": "Retour",
|
|
3144
|
+
"identities.messages.1010020": ""
|
|
3021
3145
|
};
|
|
3022
3146
|
|
|
3023
3147
|
// src/locales/nl.json
|
|
@@ -3232,7 +3356,9 @@ var nl_default = {
|
|
|
3232
3356
|
"input.placeholder": "",
|
|
3233
3357
|
"card.header.description.login": "",
|
|
3234
3358
|
"card.header.description.registration": "",
|
|
3235
|
-
"card.header.parts.code": "",
|
|
3359
|
+
"card.header.parts.code": "een code die naar je is verzonden",
|
|
3360
|
+
"card.header.parts.totp": "je authenticator-app",
|
|
3361
|
+
"card.header.parts.lookup_secret": "een backup herstelcode",
|
|
3236
3362
|
"card.header.parts.identifier-first": "",
|
|
3237
3363
|
"card.header.parts.oidc": "",
|
|
3238
3364
|
"card.header.parts.passkey": "",
|
|
@@ -3517,13 +3643,15 @@ var pl_default = {
|
|
|
3517
3643
|
"input.placeholder": "",
|
|
3518
3644
|
"card.header.description.login": "",
|
|
3519
3645
|
"card.header.description.registration": "",
|
|
3520
|
-
"card.header.parts.code": "",
|
|
3521
3646
|
"card.header.parts.identifier-first": "",
|
|
3522
3647
|
"card.header.parts.oidc": "",
|
|
3523
3648
|
"card.header.parts.passkey": "",
|
|
3524
3649
|
"card.header.parts.password.login": "",
|
|
3525
3650
|
"card.header.parts.password.registration": "",
|
|
3526
3651
|
"card.header.parts.webauthn": "",
|
|
3652
|
+
"card.header.parts.code": "kod wys\u0142any do Ciebie",
|
|
3653
|
+
"card.header.parts.totp": "Twoja aplikacja uwierzytelniaj\u0105ca",
|
|
3654
|
+
"card.header.parts.lookup_secret": "kod odzyskiwania kopii zapasowej",
|
|
3527
3655
|
"forms.label.forgot-password": "",
|
|
3528
3656
|
"login.subtitle": "",
|
|
3529
3657
|
"login.subtitle-refresh": "",
|
|
@@ -3802,7 +3930,9 @@ var pt_default = {
|
|
|
3802
3930
|
"input.placeholder": "",
|
|
3803
3931
|
"card.header.description.login": "",
|
|
3804
3932
|
"card.header.description.registration": "",
|
|
3805
|
-
"card.header.parts.code": "",
|
|
3933
|
+
"card.header.parts.code": "um c\xF3digo enviado para voc\xEA",
|
|
3934
|
+
"card.header.parts.totp": "seu aplicativo autenticador",
|
|
3935
|
+
"card.header.parts.lookup_secret": "um c\xF3digo de recupera\xE7\xE3o de backup",
|
|
3806
3936
|
"card.header.parts.identifier-first": "",
|
|
3807
3937
|
"card.header.parts.oidc": "",
|
|
3808
3938
|
"card.header.parts.passkey": "",
|
|
@@ -4087,7 +4217,9 @@ var sv_default = {
|
|
|
4087
4217
|
"input.placeholder": "Ange din {placeholder}",
|
|
4088
4218
|
"card.header.description.login": "Logga in med {identifierLabel}",
|
|
4089
4219
|
"card.header.description.registration": "Registrera dig med {identifierLabel}",
|
|
4090
|
-
"card.header.parts.code": "en kod skickad till
|
|
4220
|
+
"card.header.parts.code": "en kod skickad till dig",
|
|
4221
|
+
"card.header.parts.totp": "din autentiseringsapp",
|
|
4222
|
+
"card.header.parts.lookup_secret": "en s\xE4kerhetskopieringskod",
|
|
4091
4223
|
"card.header.parts.identifier-first": "din {identifierLabel}",
|
|
4092
4224
|
"card.header.parts.oidc": "en social leverant\xF6r",
|
|
4093
4225
|
"card.header.parts.passkey": "en Passkey",
|