@ory/elements-react 1.0.0-next.30 → 1.0.0-next.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -40,6 +40,9 @@ var defaultNodeOrder = [
40
40
  "default",
41
41
  "profile",
42
42
  "password",
43
+ // CAPTCHA is below password because otherwise the password input field
44
+ // would be above the captcha. Somehow, we sort the password sign up button somewhere else to be always at the bottom.
45
+ "captcha",
43
46
  "passkey",
44
47
  "code",
45
48
  "webauthn"
@@ -48,6 +51,11 @@ function defaultNodeSorter(a, b) {
48
51
  var _a, _b;
49
52
  const aGroupWeight = (_a = defaultNodeOrder.indexOf(a.group)) != null ? _a : 999;
50
53
  const bGroupWeight = (_b = defaultNodeOrder.indexOf(b.group)) != null ? _b : 999;
54
+ if (b.group === "captcha" && clientFetch.isUiNodeInputAttributes(a.attributes) && a.attributes.type === "submit") {
55
+ return aGroupWeight - (bGroupWeight - 2);
56
+ } else if (a.group === "captcha" && clientFetch.isUiNodeInputAttributes(b.attributes) && b.attributes.type === "submit") {
57
+ return aGroupWeight - 2 - bGroupWeight;
58
+ }
51
59
  return aGroupWeight - bGroupWeight;
52
60
  }
53
61
  var defaultGroupOrder = [
@@ -85,22 +93,23 @@ function OryComponentProvider({
85
93
  }
86
94
  );
87
95
  }
88
- function isChoosingMethod(uiNodes) {
89
- return uiNodes.some(
96
+ function isChoosingMethod(flow) {
97
+ return flow.flow.ui.nodes.some(
90
98
  (node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
91
- ) || uiNodes.some(
99
+ ) || flow.flow.ui.nodes.some(
92
100
  (node) => node.group === clientFetch.UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
93
- );
101
+ ) || flow.flowType === clientFetch.FlowType.Login && flow.flow.requested_aal === "aal2";
94
102
  }
95
103
  function filterOidcOut(nodes) {
96
104
  return nodes.filter((node) => node.group !== clientFetch.UiNodeGroupEnum.Oidc);
97
105
  }
98
106
  function getFinalNodes(uniqueGroups, selectedGroup) {
99
- var _a, _b, _c;
107
+ var _a, _b, _c, _d;
100
108
  const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
101
109
  return [
102
110
  ...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
103
- ...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : []
111
+ ...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
112
+ ...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
104
113
  ].flat().filter(
105
114
  (node) => "type" in node.attributes && node.attributes.type === "hidden"
106
115
  ).concat(selectedNodes);
@@ -172,6 +181,7 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
172
181
  clientFetch.UiNodeGroupEnum.Default,
173
182
  clientFetch.UiNodeGroupEnum.IdentifierFirst,
174
183
  clientFetch.UiNodeGroupEnum.Profile,
184
+ clientFetch.UiNodeGroupEnum.Captcha,
175
185
  ...excludeAuthMethods
176
186
  ].includes(group)
177
187
  );
@@ -200,6 +210,9 @@ function useNodesGroups(nodes) {
200
210
  entries
201
211
  };
202
212
  }
213
+ var findNode = (nodes, opt) => nodes.find((n) => {
214
+ 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
+ });
203
216
 
204
217
  // src/context/form-state.ts
205
218
  function findMethodWithMessage(nodes) {
@@ -223,7 +236,7 @@ function parseStateFromFlow(flow) {
223
236
  return { current: "method_active", method: methodWithMessage.group };
224
237
  } else if (flow.flow.active && !["default", "identifier_first", "oidc"].includes(flow.flow.active)) {
225
238
  return { current: "method_active", method: flow.flow.active };
226
- } else if (isChoosingMethod(flow.flow.ui.nodes)) {
239
+ } else if (isChoosingMethod(flow)) {
227
240
  const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
228
241
  if (authMethods.length === 1 && authMethods[0] !== "code") {
229
242
  return { current: "method_active", method: authMethods[0] };
@@ -815,10 +828,10 @@ function useOryFormSubmit(onAfterSubmit) {
815
828
  return onSubmit;
816
829
  }
817
830
  function OryForm({ children, onAfterSubmit }) {
818
- var _a;
819
831
  const { Form } = useComponents();
820
832
  const flowContainer = useOryFlow();
821
833
  const methods = reactHookForm.useFormContext();
834
+ const { Message } = useComponents();
822
835
  const intl = reactIntl.useIntl();
823
836
  const onSubmit = useOryFormSubmit(onAfterSubmit);
824
837
  const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
@@ -833,11 +846,22 @@ function OryForm({ children, onAfterSubmit }) {
833
846
  }
834
847
  return false;
835
848
  });
836
- if (!hasMethods && ((_a = flowContainer.flow.ui.messages) != null ? _a : []).length === 0) {
837
- return intl.formatMessage({
838
- id: `identities.messages.${5000002}`,
839
- defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
840
- });
849
+ if (!hasMethods) {
850
+ const m = {
851
+ id: 5000002,
852
+ text: intl.formatMessage({
853
+ id: `identities.messages.${5000002}`,
854
+ defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
855
+ }),
856
+ type: "error"
857
+ };
858
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
859
+ /* @__PURE__ */ jsxRuntime.jsx(Message.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(Message.Content, { message: m }, m.id) }),
860
+ /* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
861
+ ] });
862
+ }
863
+ if (flowContainer.flowType === clientFetch.FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
864
+ methods.setValue("method", "code");
841
865
  }
842
866
  return /* @__PURE__ */ jsxRuntime.jsx(
843
867
  Form.Root,
@@ -952,6 +976,9 @@ var NodeInput = ({
952
976
  };
953
977
  var Node = ({ node, onClick }) => {
954
978
  const { Node: Node2 } = useComponents();
979
+ if (node.group === clientFetch.UiNodeGroupEnum.Captcha) {
980
+ return /* @__PURE__ */ jsxRuntime.jsx(Node2.Captcha, { node });
981
+ }
955
982
  if (clientFetch.isUiNodeImageAttributes(node.attributes)) {
956
983
  return /* @__PURE__ */ jsxRuntime.jsx(Node2.Image, { node, attributes: node.attributes });
957
984
  } else if (clientFetch.isUiNodeTextAttributes(node.attributes)) {
@@ -1019,27 +1046,48 @@ function isUINodeGroupEnum(method) {
1019
1046
  return Object.values(clientFetch.UiNodeGroupEnum).includes(method);
1020
1047
  }
1021
1048
  function OryTwoStepCard() {
1022
- const {
1023
- flow: { ui },
1024
- flowType,
1025
- formState,
1026
- dispatchFormState
1027
- } = useOryFlow();
1049
+ var _a, _b, _c, _d, _e;
1028
1050
  const { Form, Card } = useComponents();
1051
+ const { flow, flowType, formState, dispatchFormState } = useOryFlow();
1052
+ const { ui } = flow;
1029
1053
  const nodeSorter = useNodeSorter();
1030
1054
  const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
1031
1055
  const uniqueGroups = useNodesGroups(ui.nodes);
1032
- const options = Object.values(clientFetch.UiNodeGroupEnum).filter((group) => {
1033
- var _a;
1034
- return (_a = uniqueGroups.groups[group]) == null ? void 0 : _a.length;
1035
- }).filter(
1036
- (group) => ![
1037
- clientFetch.UiNodeGroupEnum.Oidc,
1038
- clientFetch.UiNodeGroupEnum.Default,
1039
- clientFetch.UiNodeGroupEnum.IdentifierFirst,
1040
- clientFetch.UiNodeGroupEnum.Profile
1041
- ].includes(group)
1056
+ const options = Object.fromEntries(
1057
+ Object.values(clientFetch.UiNodeGroupEnum).filter((group) => {
1058
+ var _a2;
1059
+ return (_a2 = uniqueGroups.groups[group]) == null ? void 0 : _a2.length;
1060
+ }).filter(
1061
+ (group) => ![
1062
+ clientFetch.UiNodeGroupEnum.Oidc,
1063
+ clientFetch.UiNodeGroupEnum.Default,
1064
+ clientFetch.UiNodeGroupEnum.IdentifierFirst,
1065
+ clientFetch.UiNodeGroupEnum.Profile,
1066
+ clientFetch.UiNodeGroupEnum.Captcha
1067
+ ].includes(group)
1068
+ ).map((g) => [g, {}])
1042
1069
  );
1070
+ if (clientFetch.UiNodeGroupEnum.Code in options) {
1071
+ let identifier = (_b = (_a = findNode(ui.nodes, {
1072
+ group: "identifier_first",
1073
+ node_type: "input",
1074
+ name: "identifier"
1075
+ })) == null ? void 0 : _a.attributes) == null ? void 0 : _b.value;
1076
+ identifier || (identifier = (_d = (_c = findNode(ui.nodes, {
1077
+ group: "code",
1078
+ node_type: "input",
1079
+ name: "address"
1080
+ })) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
1081
+ if (identifier) {
1082
+ options[clientFetch.UiNodeGroupEnum.Code] = {
1083
+ title: {
1084
+ id: "identities.messages.1010023",
1085
+ values: { address: identifier }
1086
+ }
1087
+ };
1088
+ }
1089
+ }
1090
+ const hasError = Boolean((_e = ui.messages) == null ? void 0 : _e.some((m) => m.type === "error"));
1043
1091
  const nonOidcNodes = filterOidcOut(ui.nodes);
1044
1092
  const finalNodes = formState.current === "method_active" ? getFinalNodes(uniqueGroups.groups, formState.method) : [];
1045
1093
  const handleAfterFormSubmit = (method) => {
@@ -1058,7 +1106,7 @@ function OryTwoStepCard() {
1058
1106
  return /* @__PURE__ */ jsxRuntime.jsxs(OryCard, { children: [
1059
1107
  /* @__PURE__ */ jsxRuntime.jsx(OryCardHeader, {}),
1060
1108
  /* @__PURE__ */ jsxRuntime.jsxs(OryCardContent, { children: [
1061
- /* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
1109
+ hasError ? /* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}) : void 0,
1062
1110
  showOidc && /* @__PURE__ */ jsxRuntime.jsx(OryFormSocialButtonsForm, {}),
1063
1111
  /* @__PURE__ */ jsxRuntime.jsxs(OryForm, { onAfterSubmit: handleAfterFormSubmit, children: [
1064
1112
  /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
@@ -1077,7 +1125,8 @@ function OryTwoStepCard() {
1077
1125
  method: group
1078
1126
  })
1079
1127
  }
1080
- )
1128
+ ),
1129
+ ui.nodes.filter((n) => n.group === clientFetch.UiNodeGroupEnum.Captcha).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
1081
1130
  ] }),
1082
1131
  formState.current === "method_active" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1083
1132
  ui.nodes.filter((n) => n.type === "script").map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)),
@@ -1091,21 +1140,26 @@ function OryTwoStepCard() {
1091
1140
  }
1092
1141
  function AuthMethodList({ options, setSelectedGroup }) {
1093
1142
  const { Card } = useComponents();
1094
- const { setValue } = reactHookForm.useFormContext();
1095
- const handleClick = (group) => {
1143
+ const { setValue, getValues } = reactHookForm.useFormContext();
1144
+ const handleClick = (group, options2) => {
1145
+ var _a, _b, _c, _d;
1096
1146
  if (isGroupImmediateSubmit(group)) {
1147
+ if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
1148
+ setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
1149
+ }
1097
1150
  setValue("method", group);
1098
1151
  } else {
1099
1152
  setSelectedGroup(group);
1100
1153
  }
1101
1154
  };
1102
- return /* @__PURE__ */ jsxRuntime.jsx(Card.AuthMethodListContainer, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
1155
+ return /* @__PURE__ */ jsxRuntime.jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsxRuntime.jsx(
1103
1156
  Card.AuthMethodListItem,
1104
1157
  {
1105
- group: option,
1106
- onClick: () => handleClick(option)
1158
+ group,
1159
+ title: options2.title,
1160
+ onClick: () => handleClick(group, options2)
1107
1161
  },
1108
- option
1162
+ group
1109
1163
  )) });
1110
1164
  }
1111
1165
  function OryFormGroups({ groups }) {
@@ -1703,9 +1757,9 @@ var en_default = {
1703
1757
  "identities.messages.1010005": "Verify",
1704
1758
  "identities.messages.1010006": "Authentication code",
1705
1759
  "identities.messages.1010007": "Backup recovery code",
1706
- "identities.messages.1010008": "Sign in with hardware key",
1707
- "identities.messages.1010009": "Use Authenticator",
1708
- "identities.messages.1010010": "Use backup recovery code",
1760
+ "identities.messages.1010008": "Continue with hardware key",
1761
+ "identities.messages.1010009": "Continue",
1762
+ "identities.messages.1010010": "Continue",
1709
1763
  "identities.messages.1010011": "Sign in with hardware key",
1710
1764
  "identities.messages.1010012": "Prepare your WebAuthn device (e.g. security key, biometrics scanner, ...) and press continue.",
1711
1765
  "identities.messages.1010013": "Continue",
@@ -1842,9 +1896,17 @@ var en_default = {
1842
1896
  "login.subtitle-oauth2": "To authenticate {clientName}",
1843
1897
  "login.title": "Sign in",
1844
1898
  "login.subtitle": "Sign in with {parts}",
1845
- "login.title-aal2": "Two-Factor Authentication",
1899
+ "login.title-aal2": "Second factor authentication",
1900
+ "login.subtitle-aal2": "Choose a way to complete your second factor authentication",
1901
+ "login.code.subtitle": "A verification code will be sent by email",
1902
+ "login.webauthn.subtitle": "Please prepare your WebAuthN device",
1903
+ "login.totp.subtitle": "Please enter the code generated by your Authenticator App",
1904
+ "login.lookup_secret.subtitle": "Please enter one of your 8-digit backup recovery codes",
1846
1905
  "login.title-refresh": "Reauthenticate",
1847
1906
  "login.subtitle-refresh": "Confirm your identity with {parts}",
1907
+ "login.2fa.go-back": "Something isn't working?",
1908
+ "login.2fa.go-back.link": "Go back",
1909
+ "login.2fa.method.go-back": "Choose another method",
1848
1910
  "logout.accept-button": "Yes",
1849
1911
  "logout.reject-button": "No",
1850
1912
  "logout.title": "Do you wish to log out?",
@@ -1893,10 +1955,14 @@ var en_default = {
1893
1955
  "two-step.password.description": "Enter your password associated with your account",
1894
1956
  "two-step.code.title": "Email code",
1895
1957
  "two-step.code.description": "A verification code will be sent to your email",
1896
- "two-step.webauthn.title": "Security Key",
1958
+ "two-step.webauthn.title": "Security key",
1897
1959
  "two-step.webauthn.description": "Use your security key to authenticate",
1898
1960
  "two-step.passkey.title": "Passkey (recommended)",
1899
1961
  "two-step.passkey.description": "Use your device's for fingerprint or face recognition",
1962
+ "two-step.totp.title": "Use your Authenticator App (TOTP)",
1963
+ "two-step.totp.description": "Use a 6-digit one-time code from your authenticator app",
1964
+ "two-step.lookup_secret.title": "Backup recovery code",
1965
+ "two-step.lookup_secret.description": "Use up one of your 8-digit backup codes to authenticate",
1900
1966
  "identities.messages.1010020": "",
1901
1967
  "input.placeholder": "Enter your {placeholder}",
1902
1968
  "card.header.parts.oidc": "a social provider",
@@ -1956,9 +2022,9 @@ var de_default = {
1956
2022
  "identities.messages.1010005": "Verifizieren",
1957
2023
  "identities.messages.1010006": "Authentifizierungscode",
1958
2024
  "identities.messages.1010007": "Backup-Wiederherstellungscode",
1959
- "identities.messages.1010008": "Sicherheitsschl\xFCssel verwenden",
1960
- "identities.messages.1010009": "Authentifizierungs-App verwenden",
1961
- "identities.messages.1010010": "Backup-Wiederherstellungscode verwenden",
2025
+ "identities.messages.1010008": "Mit Sicherheitsschl\xFCssel fortfahren",
2026
+ "identities.messages.1010009": "Weiter",
2027
+ "identities.messages.1010010": "Weiter",
1962
2028
  "identities.messages.1010011": "Mit Sicherheitsschl\xFCssel fortfahren",
1963
2029
  "identities.messages.1010012": "Bereiten Sie Ihr WebAuthn-Ger\xE4t vor (z. B. Sicherheitsschl\xFCssel, biometrischer Scanner, ...) und dr\xFCcken Sie auf Weiter.",
1964
2030
  "identities.messages.1010013": "Weiter",
@@ -2074,8 +2140,16 @@ var de_default = {
2074
2140
  "login.registration-label": "Sie haben noch kein Konto?",
2075
2141
  "login.subtitle-oauth2": "Zur Authentifizierung bei {clientName}",
2076
2142
  "login.title": "Anmelden",
2077
- "login.title-aal2": "Zwei-Faktor-Authentifizierung",
2143
+ "login.title-aal2": "Zweitfaktor-Authentifizierung",
2144
+ "login.subtitle-aal2": "W\xE4hlen Sie eine Methode zur Best\xE4tigung Ihrer Zwei-Faktor-Authentifizierung",
2145
+ "login.code.subtitle": "Ein Best\xE4tigungscode wird per E-Mail gesendet",
2146
+ "login.webauthn.subtitle": "Bitte bereiten Sie Ihr WebAuthN-Ger\xE4t vor",
2147
+ "login.totp.subtitle": "Bitte geben Sie den Code aus Ihrer Authenticator-App ein",
2148
+ "login.lookup_secret.subtitle": "Bitte geben Sie einen Ihrer 8-stelligen Backup-Wiederherstellungscodes ein",
2078
2149
  "login.title-refresh": "Best\xE4tigen Sie, dass Sie es sind",
2150
+ "login.2fa.go-back": "Funktioniert etwas nicht?",
2151
+ "login.2fa.go-back.link": "Zur\xFCck",
2152
+ "login.2fa.method.go-back": "Eine andere Methode w\xE4hlen",
2079
2153
  "logout.accept-button": "Ja",
2080
2154
  "logout.reject-button": "Nein",
2081
2155
  "logout.title": "M\xF6chten Sie sich abmelden?",
@@ -2096,8 +2170,12 @@ var de_default = {
2096
2170
  "two-step.passkey.title": "Passwort (empfohlen)",
2097
2171
  "two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
2098
2172
  "two-step.password.title": "Passwort",
2099
- "two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
2100
2173
  "two-step.webauthn.title": "Sicherheitsschl\xFCssel",
2174
+ "two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
2175
+ "two-step.totp.title": "Verwenden Sie Ihre Authenticator-App (TOTP)",
2176
+ "two-step.totp.description": "Verwenden Sie einen 6-stelligen Einmal-Code aus Ihrer Authenticator-App",
2177
+ "two-step.lookup_secret.title": "Backup-Wiederherstellungscode",
2178
+ "two-step.lookup_secret.description": "Verwenden Sie einen Ihrer 8-stelligen Backup-Codes, um sich zu authentifizieren",
2101
2179
  "identities.messages.1070014": "Login- und Link-Zugangsdaten",
2102
2180
  "identities.messages.1070015": "Bitte schlie\xDFen Sie die Captcha-Challenge ab, um fortzufahren.",
2103
2181
  "identities.messages.4000038": "Die Captcha-\xDCberpr\xFCfung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
@@ -2209,9 +2287,9 @@ var es_default = {
2209
2287
  "identities.messages.1010005": "Verificar",
2210
2288
  "identities.messages.1010006": "C\xF3digo de autenticaci\xF3n",
2211
2289
  "identities.messages.1010007": "C\xF3digo de recuperaci\xF3n de respaldo",
2212
- "identities.messages.1010008": "Usar llave de seguridad",
2213
- "identities.messages.1010009": "Usar Autenticador",
2214
- "identities.messages.1010010": "Usar c\xF3digo de recuperaci\xF3n de respaldo",
2290
+ "identities.messages.1010008": "Continuar con la llave de hardware",
2291
+ "identities.messages.1010009": "Continuar",
2292
+ "identities.messages.1010010": "Continuar",
2215
2293
  "identities.messages.1010011": "Continuar con llave de seguridad",
2216
2294
  "identities.messages.1010012": "Prepare su dispositivo WebAuthn (por ejemplo, llave de seguridad, esc\xE1ner biom\xE9trico, ...) y presione continuar.",
2217
2295
  "identities.messages.1010013": "Continuar",
@@ -2327,8 +2405,16 @@ var es_default = {
2327
2405
  "login.registration-label": "\xBFNo tiene una cuenta?",
2328
2406
  "login.subtitle-oauth2": "Para autenticar a {clientName}",
2329
2407
  "login.title": "Iniciar sesi\xF3n",
2330
- "login.title-aal2": "Autenticaci\xF3n de Dos Factores",
2408
+ "login.title-aal2": "Autenticaci\xF3n de dos factores",
2409
+ "login.subtitle-aal2": "Elija una forma de completar su autenticaci\xF3n de segundo factor",
2410
+ "login.code.subtitle": "Se enviar\xE1 un c\xF3digo de verificaci\xF3n por correo electr\xF3nico",
2411
+ "login.webauthn.subtitle": "Por favor, prepare su dispositivo WebAuthN",
2412
+ "login.totp.subtitle": "Ingrese el c\xF3digo generado por su aplicaci\xF3n de autenticaci\xF3n",
2413
+ "login.lookup_secret.subtitle": "Ingrese uno de sus c\xF3digos de recuperaci\xF3n de respaldo de 8 d\xEDgitos",
2331
2414
  "login.title-refresh": "Confirme que es usted",
2415
+ "login.2fa.go-back": "\xBFAlgo no funciona?",
2416
+ "login.2fa.go-back.link": "Volver",
2417
+ "login.2fa.method.go-back": "Elegir otro m\xE9todo",
2332
2418
  "logout.accept-button": "S\xED",
2333
2419
  "logout.reject-button": "No",
2334
2420
  "logout.title": "\xBFDesea cerrar sesi\xF3n?",
@@ -2360,8 +2446,12 @@ var es_default = {
2360
2446
  "two-step.passkey.title": "Clave de acceso (recomendada)",
2361
2447
  "two-step.password.description": "Ingrese la contrase\xF1a asociada con su cuenta",
2362
2448
  "two-step.password.title": "Contrase\xF1a",
2363
- "two-step.webauthn.description": "Utiliza tu llave de seguridad para autenticarte",
2364
2449
  "two-step.webauthn.title": "Clave de Seguridad",
2450
+ "two-step.webauthn.description": "Utilice su llave de seguridad para autenticase",
2451
+ "two-step.totp.title": "Utilice su aplicaci\xF3n de autenticaci\xF3n (TOTP)",
2452
+ "two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
2453
+ "two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
2454
+ "two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
2365
2455
  "identities.messages.1010016": "",
2366
2456
  "identities.messages.1010017": "",
2367
2457
  "identities.messages.1010018": "",
@@ -2462,9 +2552,9 @@ var fr_default = {
2462
2552
  "identities.messages.1010005": "V\xE9rifier",
2463
2553
  "identities.messages.1010006": "Code d'authentification",
2464
2554
  "identities.messages.1010007": "Code de r\xE9cup\xE9ration de secours",
2465
- "identities.messages.1010008": "Utiliser une cl\xE9 de s\xE9curit\xE9",
2466
- "identities.messages.1010009": "Utiliser un authentificateur",
2467
- "identities.messages.1010010": "Utiliser un code de r\xE9cup\xE9ration de secours",
2555
+ "identities.messages.1010008": "Continuer avec la cl\xE9 mat\xE9rielle",
2556
+ "identities.messages.1010009": "Continuer",
2557
+ "identities.messages.1010010": "Continuer",
2468
2558
  "identities.messages.1010011": "Continuer avec la cl\xE9 de s\xE9curit\xE9",
2469
2559
  "identities.messages.1010012": "Pr\xE9parez votre appareil WebAuthn (par exemple, une cl\xE9 de s\xE9curit\xE9, un scanner biom\xE9trique, ...) et appuyez sur Continuer.",
2470
2560
  "identities.messages.1010013": "Continuer",
@@ -2581,7 +2671,15 @@ var fr_default = {
2581
2671
  "login.subtitle-oauth2": "Pour vous authentifier sur {clientName}",
2582
2672
  "login.title": "Se connecter",
2583
2673
  "login.title-aal2": "Authentification \xE0 deux facteurs",
2674
+ "login.subtitle-aal2": "Choisissez une m\xE9thode pour compl\xE9ter votre authentification \xE0 deux facteurs",
2675
+ "login.code.subtitle": "Un code de v\xE9rification sera envoy\xE9 par e-mail",
2676
+ "login.webauthn.subtitle": "Veuillez pr\xE9parer votre dispositif WebAuthN",
2677
+ "login.totp.subtitle": "Veuillez saisir le code g\xE9n\xE9r\xE9 par votre application d'authentification",
2678
+ "login.lookup_secret.subtitle": "Veuillez saisir l'un de vos codes de r\xE9cup\xE9ration de secours \xE0 8 chiffres",
2584
2679
  "login.title-refresh": "Confirmez que c'est bien vous",
2680
+ "login.2fa.go-back": "Quelque chose ne fonctionne pas ?",
2681
+ "login.2fa.go-back.link": "Retour",
2682
+ "login.2fa.method.go-back": "Choisir une autre m\xE9thode",
2585
2683
  "logout.accept-button": "Oui",
2586
2684
  "logout.reject-button": "Non",
2587
2685
  "logout.title": "Souhaitez-vous vous d\xE9connecter ?",
@@ -2613,8 +2711,12 @@ var fr_default = {
2613
2711
  "two-step.passkey.title": "Cl\xE9 de passe (recommand\xE9e)",
2614
2712
  "two-step.password.description": "Entrez votre mot de passe associ\xE9 \xE0 votre compte",
2615
2713
  "two-step.password.title": "Mot de passe",
2616
- "two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
2617
2714
  "two-step.webauthn.title": "Cl\xE9 de S\xE9curit\xE9",
2715
+ "two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
2716
+ "two-step.totp.title": "Utilisez votre application d'authentification (TOTP)",
2717
+ "two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
2718
+ "two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
2719
+ "two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
2618
2720
  "identities.messages.1010023": "",
2619
2721
  "identities.messages.1070015": "",
2620
2722
  "identities.messages.4000038": "",
@@ -2715,9 +2817,9 @@ var nl_default = {
2715
2817
  "identities.messages.1010005": "Verifi\xEBren",
2716
2818
  "identities.messages.1010006": "Verificatiecode",
2717
2819
  "identities.messages.1010007": "Back-up herstelcode",
2718
- "identities.messages.1010008": "Beveiligingssleutel gebruiken",
2719
- "identities.messages.1010009": "Authenticator gebruiken",
2720
- "identities.messages.1010010": "Back-up herstelcode gebruiken",
2820
+ "identities.messages.1010008": "Ga verder met hardware-sleutel",
2821
+ "identities.messages.1010009": "Doorgaan",
2822
+ "identities.messages.1010010": "Doorgaan",
2721
2823
  "identities.messages.1010011": "Doorgaan met beveiligingssleutel",
2722
2824
  "identities.messages.1010012": "Bereid uw WebAuthn-apparaat voor (bijv. beveiligingssleutel, biometrische scanner, ...) en druk op doorgaan.",
2723
2825
  "identities.messages.1010013": "Doorgaan",
@@ -2833,8 +2935,16 @@ var nl_default = {
2833
2935
  "login.registration-label": "Heb je nog geen account?",
2834
2936
  "login.subtitle-oauth2": "Om te authenticeren bij {clientName}",
2835
2937
  "login.title": "Inloggen",
2836
- "login.title-aal2": "Twee-Factor Authenticatie",
2938
+ "login.title-aal2": "Tweefactorauthenticatie",
2939
+ "login.subtitle-aal2": "Kies een manier om uw tweefactorauthenticatie te voltooien",
2940
+ "login.code.subtitle": "Er wordt een verificatiecode per e-mail verzonden",
2941
+ "login.webauthn.subtitle": "Bereid uw WebAuthN-apparaat voor",
2942
+ "login.totp.subtitle": "Voer de code in die door uw Authenticator-app is gegenereerd",
2943
+ "login.lookup_secret.subtitle": "Voer een van uw 8-cijferige back-up herstelcodes in",
2837
2944
  "login.title-refresh": "Bevestig dat jij het bent",
2945
+ "login.2fa.go-back": "Werkt er iets niet?",
2946
+ "login.2fa.go-back.link": "Ga terug",
2947
+ "login.2fa.method.go-back": "Kies een andere methode",
2838
2948
  "logout.accept-button": "Ja",
2839
2949
  "logout.reject-button": "Nee",
2840
2950
  "logout.title": "Wil je uitloggen?",
@@ -2866,8 +2976,12 @@ var nl_default = {
2866
2976
  "two-step.passkey.title": "Toegangscode (aanbevolen)",
2867
2977
  "two-step.password.description": "Voer uw wachtwoord in dat is gekoppeld aan uw account",
2868
2978
  "two-step.password.title": "Wachtwoord",
2869
- "two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
2870
2979
  "two-step.webauthn.title": "Beveiligingssleutel",
2980
+ "two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
2981
+ "two-step.totp.title": "Gebruik uw Authenticator-app (TOTP)",
2982
+ "two-step.totp.description": "Gebruik een 6-cijferige eenmalige code van uw authenticator-app",
2983
+ "two-step.lookup_secret.title": "Herstelcode",
2984
+ "two-step.lookup_secret.description": "Gebruik een van uw 8-cijferige back-upcodes om te authenticeren",
2871
2985
  "identities.messages.1010023": "",
2872
2986
  "identities.messages.1070014": "",
2873
2987
  "identities.messages.1070015": "",
@@ -2968,9 +3082,9 @@ var pl_default = {
2968
3082
  "identities.messages.1010005": "Zweryifkuj",
2969
3083
  "identities.messages.1010006": "Kod autentykacyjny",
2970
3084
  "identities.messages.1010007": "Zapasowe kody odzyskiwania",
2971
- "identities.messages.1010008": "U\u017Cyj klucza bezpiecze\u0144stwa",
2972
- "identities.messages.1010009": "U\u017Cyj Autentykatora",
2973
- "identities.messages.1010010": "U\u017Cyj zapasowych kod\xF3w odzyskiwania",
3085
+ "identities.messages.1010008": "Kontynuuj z kluczem sprz\u0119towym",
3086
+ "identities.messages.1010009": "Kontynuuj",
3087
+ "identities.messages.1010010": "Kontynuuj",
2974
3088
  "identities.messages.1010011": "Kontynuuj za pomoc\u0105 klucza bezpiecze\u0144stwa",
2975
3089
  "identities.messages.1010012": "Przygotuj swoje urz\u0105dzenie WebAuthn (np. klucz bezpiecze\u0144stwa, czytnik biometryczny, ...) a nast\u0119pnie kliknij kontynuuj.",
2976
3090
  "identities.messages.1010013": "Kontynuuj",
@@ -3086,8 +3200,16 @@ var pl_default = {
3086
3200
  "login.registration-label": "Nie posiadasz konta?",
3087
3201
  "login.subtitle-oauth2": "Do autentykacji {clientName}",
3088
3202
  "login.title": "Zaloguj si\u0119",
3089
- "login.title-aal2": "Autentykacja Dwu-Etapowa",
3203
+ "login.title-aal2": "Uwierzytelnianie dwusk\u0142adnikowe",
3204
+ "login.subtitle-aal2": "Wybierz spos\xF3b, aby zako\u0144czy\u0107 uwierzytelnianie dwusk\u0142adnikowe",
3205
+ "login.code.subtitle": "Kod weryfikacyjny zostanie wys\u0142any e-mailem",
3206
+ "login.webauthn.subtitle": "Prosz\u0119 przygotowa\u0107 urz\u0105dzenie WebAuthN",
3207
+ "login.totp.subtitle": "Prosz\u0119 wprowadzi\u0107 kod wygenerowany przez Twoj\u0105 aplikacj\u0119 uwierzytelniaj\u0105c\u0105",
3208
+ "login.lookup_secret.subtitle": "Prosz\u0119 wprowadzi\u0107 jeden z Twoich 8-cyfrowych kod\xF3w odzyskiwania zapasowego",
3090
3209
  "login.title-refresh": "Potwierd\u017A \u017Ce to Ty",
3210
+ "login.2fa.go-back": "Co\u015B nie dzia\u0142a?",
3211
+ "login.2fa.go-back.link": "Wr\xF3\u0107",
3212
+ "login.2fa.method.go-back": "Wybierz inn\u0105 metod\u0119",
3091
3213
  "logout.accept-button": "Tak",
3092
3214
  "logout.reject-button": "Nie",
3093
3215
  "logout.title": "Czy chcesz si\u0119 wylogowa\u0107?",
@@ -3119,8 +3241,12 @@ var pl_default = {
3119
3241
  "two-step.passkey.title": "Klucz dost\u0119pu (zalecany)",
3120
3242
  "two-step.password.description": "Wprowad\u017A has\u0142o powi\u0105zane z twoim kontem",
3121
3243
  "two-step.password.title": "Has\u0142o",
3122
- "two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
3123
3244
  "two-step.webauthn.title": "Klucz bezpiecze\u0144stwa",
3245
+ "two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
3246
+ "two-step.totp.title": "U\u017Cyj swojej aplikacji uwierzytelniaj\u0105cej (TOTP)",
3247
+ "two-step.totp.description": "U\u017Cyj 6-cyfrowego jednorazowego kodu z Twojej aplikacji uwierzytelniaj\u0105cej",
3248
+ "two-step.lookup_secret.title": "Kod odzyskiwania zapasowego",
3249
+ "two-step.lookup_secret.description": "U\u017Cyj jednego z Twoich 8-cyfrowych kod\xF3w zapasowych, aby si\u0119 uwierzytelni\u0107",
3124
3250
  "identities.messages.1010016": "",
3125
3251
  "identities.messages.1010017": "",
3126
3252
  "identities.messages.1010018": "",
@@ -3221,9 +3347,9 @@ var pt_default = {
3221
3347
  "identities.messages.1010005": "Verificar",
3222
3348
  "identities.messages.1010006": "C\xF3digo de Autentica\xE7\xE3o",
3223
3349
  "identities.messages.1010007": "C\xF3digo de Recupera\xE7\xE3o de Backup",
3224
- "identities.messages.1010008": "Usar chave de seguran\xE7a",
3225
- "identities.messages.1010009": "Usar o Autenticador",
3226
- "identities.messages.1010010": "Usar c\xF3digo de recupera\xE7\xE3o de backup",
3350
+ "identities.messages.1010008": "Continuar com chave de hardware",
3351
+ "identities.messages.1010009": "Continuar",
3352
+ "identities.messages.1010010": "Continuar",
3227
3353
  "identities.messages.1010011": "Continuar com a chave de seguran\xE7a",
3228
3354
  "identities.messages.1010012": "Prepare o seu dispositivo WebAuthn (por exemplo, chave de seguran\xE7a, scanner biom\xE9trico, ...) e pressione continuar.",
3229
3355
  "identities.messages.1010013": "Continuar",
@@ -3339,8 +3465,16 @@ var pt_default = {
3339
3465
  "login.registration-label": "N\xE3o tem uma conta?",
3340
3466
  "login.subtitle-oauth2": "Para autenticar {clientName}",
3341
3467
  "login.title": "Entrar",
3342
- "login.title-aal2": "Autentica\xE7\xE3o de Dois Fatores",
3468
+ "login.title-aal2": "Autentica\xE7\xE3o de dois fatores",
3469
+ "login.subtitle-aal2": "Escolha uma forma de completar sua autentica\xE7\xE3o de segundo fator",
3470
+ "login.code.subtitle": "Um c\xF3digo de verifica\xE7\xE3o ser\xE1 enviado por e-mail",
3471
+ "login.webauthn.subtitle": "Por favor, prepare seu dispositivo WebAuthN",
3472
+ "login.totp.subtitle": "Digite o c\xF3digo gerado pelo seu aplicativo autenticador",
3473
+ "login.lookup_secret.subtitle": "Digite um dos seus c\xF3digos de recupera\xE7\xE3o de 8 d\xEDgitos",
3343
3474
  "login.title-refresh": "Confirme que \xE9 voc\xEA",
3475
+ "login.2fa.go-back": "Algo n\xE3o est\xE1 funcionando?",
3476
+ "login.2fa.go-back.link": "Voltar",
3477
+ "login.2fa.method.go-back": "Escolher outro m\xE9todo",
3344
3478
  "logout.accept-button": "Sim",
3345
3479
  "logout.reject-button": "N\xE3o",
3346
3480
  "logout.title": "Deseja sair?",
@@ -3372,8 +3506,12 @@ var pt_default = {
3372
3506
  "two-step.passkey.title": "Chave de acesso (recomendado)",
3373
3507
  "two-step.password.description": "Insira a sua senha associada \xE0 sua conta",
3374
3508
  "two-step.password.title": "Senha",
3375
- "two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
3376
3509
  "two-step.webauthn.title": "Chave de Seguran\xE7a",
3510
+ "two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
3511
+ "two-step.totp.title": "Use seu aplicativo autenticador (TOTP)",
3512
+ "two-step.totp.description": "Use um c\xF3digo \xFAnico de 6 d\xEDgitos do seu aplicativo autenticador",
3513
+ "two-step.lookup_secret.title": "C\xF3digo de recupera\xE7\xE3o de backup",
3514
+ "two-step.lookup_secret.description": "Use um dos seus c\xF3digos de backup de 8 d\xEDgitos para autenticar",
3377
3515
  "identities.messages.1010016": "",
3378
3516
  "identities.messages.1010017": "",
3379
3517
  "identities.messages.1010018": "",
@@ -3474,9 +3612,9 @@ var sv_default = {
3474
3612
  "identities.messages.1010005": "Verifiera",
3475
3613
  "identities.messages.1010006": "Autentiseringskod",
3476
3614
  "identities.messages.1010007": "\xC5terst\xE4llningskod f\xF6r backup",
3477
- "identities.messages.1010008": "Anv\xE4nd s\xE4kerhetsnyckel",
3478
- "identities.messages.1010009": "Anv\xE4nd autentiserings-app",
3479
- "identities.messages.1010010": "Anv\xE4nd reserv\xE5terst\xE4llningskod",
3615
+ "identities.messages.1010008": "Forts\xE4tt med s\xE4kerhetsnyckel",
3616
+ "identities.messages.1010009": "Forts\xE4tt",
3617
+ "identities.messages.1010010": "Forts\xE4tt",
3480
3618
  "identities.messages.1010011": "Forts\xE4tt med s\xE4kerhetsnyckel",
3481
3619
  "identities.messages.1010012": "F\xF6rbered din WebAuthn-enhet (t.ex. s\xE4kerhetsnyckel, biometriska skanner, ...) och tryck p\xE5 forts\xE4tt.",
3482
3620
  "identities.messages.1010013": "Forts\xE4tt",
@@ -3611,7 +3749,15 @@ var sv_default = {
3611
3749
  "login.subtitle-oauth2": "Att autentisera {clientName}",
3612
3750
  "login.title": "Logga in",
3613
3751
  "login.title-aal2": "Tv\xE5faktorsautentisering",
3752
+ "login.subtitle-aal2": "V\xE4lj ett s\xE4tt att slutf\xF6ra din tv\xE5faktorsautentisering",
3753
+ "login.code.subtitle": "En verifieringskod kommer att skickas via e-post",
3754
+ "login.webauthn.subtitle": "F\xF6rbered din WebAuthN-enhet",
3755
+ "login.totp.subtitle": "Ange koden som genererats av din autentiseringsapp",
3756
+ "login.lookup_secret.subtitle": "Ange en av dina 8-siffriga \xE5terst\xE4llningskoder",
3614
3757
  "login.title-refresh": "Bekr\xE4fta att det \xE4r du",
3758
+ "login.2fa.go-back": "N\xE5got fungerar inte?",
3759
+ "login.2fa.go-back.link": "G\xE5 tillbaka",
3760
+ "login.2fa.method.go-back": "V\xE4lj en annan metod",
3615
3761
  "logout.accept-button": "Ja",
3616
3762
  "logout.reject-button": "Nej",
3617
3763
  "logout.title": "Vill du logga ut?",
@@ -3643,8 +3789,12 @@ var sv_default = {
3643
3789
  "two-step.passkey.title": "Passerkod (rekommenderad)",
3644
3790
  "two-step.password.description": "Ange ditt l\xF6senord kopplat till ditt konto",
3645
3791
  "two-step.password.title": "L\xF6senord",
3646
- "two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
3647
3792
  "two-step.webauthn.title": "S\xE4kerhetsnyckel",
3793
+ "two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
3794
+ "two-step.totp.title": "Anv\xE4nd din autentiseringsapp (TOTP)",
3795
+ "two-step.totp.description": "Anv\xE4nd en 6-siffrig eng\xE5ngskod fr\xE5n din autentiseringsapp",
3796
+ "two-step.lookup_secret.title": "Reserv\xE5terst\xE4llningskod",
3797
+ "two-step.lookup_secret.description": "Anv\xE4nd en av dina 8-siffriga reservkoder f\xF6r att autentisera",
3648
3798
  "identities.messages.4000037": "Detta konto finns inte eller har ingen inloggningsmetod konfigurerad.",
3649
3799
  "identities.messages.4000038": "Captcha-verifiering misslyckades, f\xF6rs\xF6k igen.",
3650
3800
  "identities.messages.1010020": "",