@ory/elements-react 0.0.0-pr.e3d2b7e1 → 0.0.0-pr.f1435f4

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.
Files changed (184) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/DEVELOPMENT.md +19 -4
  3. package/README.md +253 -4
  4. package/babel.config.js +10 -0
  5. package/dist/client/frontendClient.d.mts +5 -2
  6. package/dist/client/frontendClient.d.ts +5 -2
  7. package/dist/client/frontendClient.js +25 -2
  8. package/dist/client/frontendClient.js.map +1 -1
  9. package/dist/client/frontendClient.mjs +25 -2
  10. package/dist/client/frontendClient.mjs.map +1 -1
  11. package/dist/client/index.js +3 -3
  12. package/dist/index.d.mts +48 -5
  13. package/dist/index.d.ts +48 -5
  14. package/dist/index.js +807 -316
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.mjs +810 -320
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/theme/default/index.css +175 -119
  19. package/dist/theme/default/index.css.map +1 -1
  20. package/dist/theme/default/index.d.mts +31 -5
  21. package/dist/theme/default/index.d.ts +31 -5
  22. package/dist/theme/default/index.js +4012 -670
  23. package/dist/theme/default/index.js.map +1 -1
  24. package/dist/theme/default/index.mjs +4046 -629
  25. package/dist/theme/default/index.mjs.map +1 -1
  26. package/package.json +22 -15
  27. package/tailwind/generated/default-variables.css +1 -1
  28. package/tsconfig.json +3 -2
  29. package/.storybook/global.css +0 -7
  30. package/.storybook/main.ts +0 -50
  31. package/.storybook/preview-head.html +0 -15
  32. package/.storybook/preview.tsx +0 -68
  33. package/.storybook/public/InterVariable.woff2 +0 -0
  34. package/.storybook/public/inter.css +0 -8
  35. package/.stub-responses/login/1fa/all-methods/initial-form.json +0 -245
  36. package/.stub-responses/login/1fa/all-methods/missing-email.json +0 -263
  37. package/.stub-responses/login/1fa/all-methods/wrong-credentials.json +0 -252
  38. package/.stub-responses/login/1fa/code/code-input.json +0 -135
  39. package/.stub-responses/login/1fa/code/initial-form.json +0 -173
  40. package/.stub-responses/login/1fa/code/invalid-account.json +0 -182
  41. package/.stub-responses/login/1fa/code/missing-email.json +0 -182
  42. package/.stub-responses/login/1fa/code/wrong-credentials.json +0 -124
  43. package/.stub-responses/login/1fa/none/initial-form.json +0 -33
  44. package/.stub-responses/login/1fa/oidc/credential-select-password.json +0 -120
  45. package/.stub-responses/login/1fa/oidc/credential-select.json +0 -81
  46. package/.stub-responses/login/1fa/oidc/initial-form.json +0 -279
  47. package/.stub-responses/login/1fa/passkey/initial-form.json +0 -122
  48. package/.stub-responses/login/1fa/password/initial-form.json +0 -154
  49. package/.stub-responses/login/1fa/password/missing-email.json +0 -172
  50. package/.stub-responses/login/1fa/password/wrong-credentials.json +0 -163
  51. package/.stub-responses/login/1fa/webauthn/initial-form.json +0 -76
  52. package/.stub-responses/login/1fa/webauthn/invalid-account.json +0 -83
  53. package/.stub-responses/login/1fa/webauthn/show-trigger.json +0 -105
  54. package/.stub-responses/recovery/disabled/initial-form.json +0 -9
  55. package/.stub-responses/recovery/none/initial-form.json +0 -9
  56. package/.stub-responses/registration/one-step/all-methods/initial-form.json +0 -334
  57. package/.stub-responses/registration/one-step/all-methods/missing-fields.json +0 -343
  58. package/.stub-responses/registration/one-step/disabled/initial-form.json +0 -10
  59. package/.stub-responses/registration/one-step/none/initial-form.json +0 -14
  60. package/.stub-responses/registration/one-step/oidc/initial-form.json +0 -338
  61. package/.stub-responses/registration/one-step/passkey/initial-form.json +0 -177
  62. package/.stub-responses/registration/one-step/password/initial-form.json +0 -154
  63. package/.stub-responses/registration/one-step/password/missing-fields.json +0 -172
  64. package/.stub-responses/registration/one-step/password/second-step.json +0 -164
  65. package/.stub-responses/registration/one-step/webauthn/initial-form.json +0 -185
  66. package/.stub-responses/registration/two-step/all-methods/enter-password.json +0 -242
  67. package/.stub-responses/registration/two-step/all-methods/initial-form.json +0 -180
  68. package/.stub-responses/registration/two-step/all-methods/missing-fields.json +0 -189
  69. package/.stub-responses/registration/two-step/all-methods/password-validation-error.json +0 -244
  70. package/.stub-responses/registration/two-step/password/enter-password.json +0 -108
  71. package/.stub-responses/registration/two-step/password/initial-form.json +0 -134
  72. package/.stub-responses/registration/two-step/password/missing-fields.json +0 -143
  73. package/.stub-responses/registration/two-step/password/password-validation-error.json +0 -110
  74. package/.stub-responses/settings/all-methods/change-password.json +0 -381
  75. package/.stub-responses/settings/all-methods/change-trait.json +0 -377
  76. package/.stub-responses/settings/all-methods/initial-form.json +0 -368
  77. package/.stub-responses/settings/oidc/with-provider.json +0 -229
  78. package/.stub-responses/settings/passkey/initial-form.json +0 -256
  79. package/.stub-responses/settings/webauthn/initial-form.json +0 -263
  80. package/.stub-responses/verification/disabled/initial-form.json +0 -9
  81. package/.stub-responses/verification/none/initial-form.json +0 -9
  82. package/stories/components/login/1fa/all.stories.ts +0 -46
  83. package/stories/components/login/1fa/code.stories.ts +0 -64
  84. package/stories/components/login/1fa/custom.stories.tsx +0 -74
  85. package/stories/components/login/1fa/none.stories.tsx +0 -28
  86. package/stories/components/login/1fa/oidc.stories.tsx +0 -140
  87. package/stories/components/login/1fa/passkey.stories.ts +0 -28
  88. package/stories/components/login/1fa/password.stories.ts +0 -46
  89. package/stories/components/login/1fa/webauthn.stories.ts +0 -46
  90. package/stories/components/registration/one-step/all-methods.stories.ts +0 -37
  91. package/stories/components/registration/one-step/password.stories.ts +0 -37
  92. package/stories/components/registration/one-step/webauthn.stories.ts +0 -28
  93. package/stories/components/registration/two-step/all-methods.stories.ts +0 -55
  94. package/stories/components/registration/two-step/password.stories.ts +0 -55
  95. package/stories/components/settings/all.stories.ts +0 -46
  96. package/stories/components/settings/oidc.stories.ts +0 -28
  97. package/stories/components/settings/passkey.stories.ts +0 -28
  98. package/stories/components/settings/webauthn.stories.ts +0 -28
  99. package/stories/pages/error.tsx +0 -29
  100. package/stories/utils.ts +0 -20
  101. package/storybook-static/InterVariable.woff2 +0 -0
  102. package/storybook-static/assets/Color-ERTF36HU-BdkKyVuV.js +0 -1
  103. package/storybook-static/assets/DocsRenderer-CFRXHY34-YqKt61zP.js +0 -595
  104. package/storybook-static/assets/all-methods.stories-B-rqPBX2.js +0 -11
  105. package/storybook-static/assets/all-methods.stories-CmMlhzsx.js +0 -21
  106. package/storybook-static/assets/all.stories-CtQ0yCQi.js +0 -16
  107. package/storybook-static/assets/all.stories-DgIVCzcZ.js +0 -16
  108. package/storybook-static/assets/chunk-H6MOWX77-DTQOW814.js +0 -1
  109. package/storybook-static/assets/code.stories-BbEryDcA.js +0 -26
  110. package/storybook-static/assets/custom.stories-DH2zHar9.js +0 -6
  111. package/storybook-static/assets/entry-preview-CcFGVifh.js +0 -10
  112. package/storybook-static/assets/entry-preview-docs-CyY-8bLe.js +0 -54
  113. package/storybook-static/assets/iframe-C5GAfuxh.js +0 -2
  114. package/storybook-static/assets/index-BVoBHvaS.js +0 -8
  115. package/storybook-static/assets/index-CfOt2XX2.js +0 -24
  116. package/storybook-static/assets/index-DPRSEdy-.js +0 -1
  117. package/storybook-static/assets/index-DrFu-skq.js +0 -6
  118. package/storybook-static/assets/index-FeUjBnvO.js +0 -1
  119. package/storybook-static/assets/index-uubelm5h.js +0 -9
  120. package/storybook-static/assets/initial-form-DWp_1F-f.js +0 -1
  121. package/storybook-static/assets/jsx-runtime-QvZ8i92b.js +0 -9
  122. package/storybook-static/assets/none.stories-TAeRhzd5.js +0 -6
  123. package/storybook-static/assets/oidc.stories-CniWBy7t.js +0 -58
  124. package/storybook-static/assets/oidc.stories-jhWzAyoQ.js +0 -6
  125. package/storybook-static/assets/passkey.stories-CBtjoVSN.js +0 -6
  126. package/storybook-static/assets/passkey.stories-CQU2Xw_t.js +0 -6
  127. package/storybook-static/assets/password.stories-0s6cDl0o.js +0 -11
  128. package/storybook-static/assets/password.stories-B2Wtckz_.js +0 -16
  129. package/storybook-static/assets/password.stories-DX0gkWjH.js +0 -21
  130. package/storybook-static/assets/preview-BBWR9nbA.js +0 -1
  131. package/storybook-static/assets/preview-BPAmP-pY.js +0 -2
  132. package/storybook-static/assets/preview-BWzBA1C2.js +0 -396
  133. package/storybook-static/assets/preview-BXtF2ySE.js +0 -234
  134. package/storybook-static/assets/preview-Cur_8nCX.css +0 -1
  135. package/storybook-static/assets/preview-D77C14du.js +0 -34
  136. package/storybook-static/assets/preview-DCjDUH0w.js +0 -27
  137. package/storybook-static/assets/preview-DFmD0pui.js +0 -1
  138. package/storybook-static/assets/preview-DGUiP6tS.js +0 -7
  139. package/storybook-static/assets/preview-aVwhiz9X.js +0 -1
  140. package/storybook-static/assets/react-18-CtsMCmcS.js +0 -1
  141. package/storybook-static/assets/settings-BqEFC2-V.css +0 -1
  142. package/storybook-static/assets/settings-Bx4osEmB.js +0 -2304
  143. package/storybook-static/assets/webauthn.stories-BzodmV0c.js +0 -6
  144. package/storybook-static/assets/webauthn.stories-DglGm7Ys.js +0 -6
  145. package/storybook-static/assets/webauthn.stories-G9E76Wjj.js +0 -16
  146. package/storybook-static/favicon.svg +0 -1
  147. package/storybook-static/iframe.html +0 -654
  148. package/storybook-static/index.html +0 -173
  149. package/storybook-static/index.json +0 -1
  150. package/storybook-static/inter.css +0 -8
  151. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  152. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  153. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  154. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  155. package/storybook-static/preview-stats.json +0 -2344
  156. package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js +0 -3
  157. package/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt +0 -0
  158. package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js +0 -12
  159. package/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt +0 -0
  160. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js +0 -394
  161. package/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt +0 -0
  162. package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js +0 -3
  163. package/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt +0 -0
  164. package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js +0 -3
  165. package/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt +0 -0
  166. package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js +0 -3
  167. package/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt +0 -0
  168. package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js +0 -3
  169. package/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt +0 -0
  170. package/storybook-static/sb-addons/interactions-8/manager-bundle.js +0 -211
  171. package/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt +0 -0
  172. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +0 -3
  173. package/storybook-static/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
  174. package/storybook-static/sb-common-assets/favicon.svg +0 -1
  175. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  176. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  177. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  178. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  179. package/storybook-static/sb-manager/globals-module-info.js +0 -1006
  180. package/storybook-static/sb-manager/globals-runtime.js +0 -54400
  181. package/storybook-static/sb-manager/globals.js +0 -48
  182. package/storybook-static/sb-manager/runtime.js +0 -12089
  183. package/storybook-static/sb-preview/globals.js +0 -33
  184. package/storybook-static/sb-preview/runtime.js +0 -9498
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { UiNodeGroupEnum, isUiNodeInputAttributes, FlowType, Configuration, FrontendApi, handleContinueWith, handleFlowError, settingsUrl, isResponseError, loginUrl, instanceOfContinueWithRecoveryUi, recoveryUrl, verificationUrl, registrationUrl, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, isUiNodeTextAttributes, UiNodeInputAttributesTypeEnum } from '@ory/client-fetch';
2
- import { createContext, useContext, useRef, useEffect, useState, useReducer, useMemo } from 'react';
1
+ import { UiNodeGroupEnum, isUiNodeInputAttributes, isUiNodeAnchorAttributes, isUiNodeImageAttributes, isUiNodeScriptAttributes, FlowType, UiNodeInputAttributesTypeEnum, isUiNodeTextAttributes, handleContinueWith, handleFlowError, settingsUrl, isResponseError, loginUrl, recoveryUrl, verificationUrl, registrationUrl, Configuration, FrontendApi, instanceOfContinueWithRecoveryUi } from '@ory/client-fetch';
2
+ import { createContext, useContext, useState, useMemo, useReducer, useRef, useEffect } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { useIntl, IntlProvider as IntlProvider$1 } from 'react-intl';
5
- import { useForm, FormProvider, useFormContext } from 'react-hook-form';
5
+ import { useFormContext, useForm, FormProvider } from 'react-hook-form';
6
6
 
7
7
  // src/context/component.tsx
8
8
  var ComponentContext = createContext({
@@ -34,10 +34,14 @@ function useGroupSorter() {
34
34
  }
35
35
  var defaultNodeOrder = [
36
36
  "oidc",
37
+ "saml",
37
38
  "identifier_first",
38
39
  "default",
39
40
  "profile",
40
41
  "password",
42
+ // CAPTCHA is below password because otherwise the password input field
43
+ // would be above the captcha. Somehow, we sort the password sign up button somewhere else to be always at the bottom.
44
+ "captcha",
41
45
  "passkey",
42
46
  "code",
43
47
  "webauthn"
@@ -46,6 +50,11 @@ function defaultNodeSorter(a, b) {
46
50
  var _a, _b;
47
51
  const aGroupWeight = (_a = defaultNodeOrder.indexOf(a.group)) != null ? _a : 999;
48
52
  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
+ }
49
58
  return aGroupWeight - bGroupWeight;
50
59
  }
51
60
  var defaultGroupOrder = [
@@ -83,22 +92,25 @@ function OryComponentProvider({
83
92
  }
84
93
  );
85
94
  }
86
- function isChoosingMethod(uiNodes) {
87
- return uiNodes.some(
95
+ function isChoosingMethod(flow) {
96
+ return flow.flow.ui.nodes.some(
88
97
  (node) => "name" in node.attributes && node.attributes.name === "screen" && "value" in node.attributes && node.attributes.value === "previous"
89
- ) || uiNodes.some(
98
+ ) || flow.flow.ui.nodes.some(
90
99
  (node) => node.group === UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
91
- );
100
+ ) || flow.flowType === FlowType.Login && flow.flow.requested_aal === "aal2";
92
101
  }
93
- function filterOidcOut(nodes) {
94
- return nodes.filter((node) => node.group !== UiNodeGroupEnum.Oidc);
102
+ function removeSsoNodes(nodes) {
103
+ return nodes.filter(
104
+ (node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml)
105
+ );
95
106
  }
96
107
  function getFinalNodes(uniqueGroups, selectedGroup) {
97
- var _a, _b, _c;
108
+ var _a, _b, _c, _d;
98
109
  const selectedNodes = selectedGroup ? (_a = uniqueGroups[selectedGroup]) != null ? _a : [] : [];
99
110
  return [
100
111
  ...(_b = uniqueGroups == null ? void 0 : uniqueGroups.identifier_first) != null ? _b : [],
101
- ...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : []
112
+ ...(_c = uniqueGroups == null ? void 0 : uniqueGroups.default) != null ? _c : [],
113
+ ...(_d = uniqueGroups == null ? void 0 : uniqueGroups.captcha) != null ? _d : []
102
114
  ].flat().filter(
103
115
  (node) => "type" in node.attributes && node.attributes.type === "hidden"
104
116
  ).concat(selectedNodes);
@@ -170,25 +182,37 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
170
182
  UiNodeGroupEnum.Default,
171
183
  UiNodeGroupEnum.IdentifierFirst,
172
184
  UiNodeGroupEnum.Profile,
185
+ UiNodeGroupEnum.Captcha,
173
186
  ...excludeAuthMethods
174
187
  ].includes(group)
175
188
  );
176
189
  }
177
- function useNodesGroups(nodes) {
190
+ function useNodesGroups(nodes, { omit } = {}) {
178
191
  const groupSorter = useGroupSorter();
179
192
  const groups = useMemo(() => {
180
- var _a;
193
+ var _a, _b;
181
194
  const groups2 = {};
195
+ const groupRetained = {};
182
196
  for (const node of nodes) {
183
- if (node.type === "script") {
184
- continue;
185
- }
186
197
  const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
187
198
  groupNodes.push(node);
188
199
  groups2[node.group] = groupNodes;
200
+ if ((omit == null ? void 0 : omit.includes("script")) && isUiNodeScriptAttributes(node.attributes)) {
201
+ continue;
202
+ }
203
+ if ((omit == null ? void 0 : omit.includes("input_hidden")) && isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
204
+ continue;
205
+ }
206
+ groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
207
+ }
208
+ const finalGroups = {};
209
+ for (const [group, count] of Object.entries(groupRetained)) {
210
+ if (count > 0) {
211
+ finalGroups[group] = groups2[group];
212
+ }
189
213
  }
190
- return groups2;
191
- }, [nodes]);
214
+ return finalGroups;
215
+ }, [nodes, omit]);
192
216
  const entries = useMemo(
193
217
  () => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
194
218
  [groups, groupSorter]
@@ -198,6 +222,9 @@ function useNodesGroups(nodes) {
198
222
  entries
199
223
  };
200
224
  }
225
+ var findNode = (nodes, opt) => nodes.find((n) => {
226
+ 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);
227
+ });
201
228
 
202
229
  // src/context/form-state.ts
203
230
  function findMethodWithMessage(nodes) {
@@ -219,9 +246,11 @@ function parseStateFromFlow(flow) {
219
246
  return { current: "method_active", method: "code" };
220
247
  } else if (methodWithMessage) {
221
248
  return { current: "method_active", method: methodWithMessage.group };
222
- } else if (flow.flow.active && !["default", "identifier_first", "oidc"].includes(flow.flow.active)) {
249
+ } else if (flow.flow.active && !["default", "identifier_first", "oidc", "saml"].includes(
250
+ flow.flow.active
251
+ )) {
223
252
  return { current: "method_active", method: flow.flow.active };
224
- } else if (isChoosingMethod(flow.flow.ui.nodes)) {
253
+ } else if (isChoosingMethod(flow)) {
225
254
  const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
226
255
  if (authMethods.length === 1 && authMethods[0] !== "code") {
227
256
  return { current: "method_active", method: authMethods[0] };
@@ -243,23 +272,32 @@ function parseStateFromFlow(flow) {
243
272
  break;
244
273
  case FlowType.Settings:
245
274
  return { current: "settings" };
275
+ case FlowType.OAuth2Consent:
276
+ return { current: "method_active", method: "oauth2_consent" };
246
277
  }
247
278
  console.warn(
248
279
  `[Ory/Elements React] Encountered an unknown form state on ${flow.flowType} flow with ID ${flow.flow.id}`
249
280
  );
250
281
  throw new Error("Unknown form state");
251
282
  }
252
- function formStateReducer(state, action) {
253
- switch (action.type) {
254
- case "action_flow_update":
255
- return parseStateFromFlow(action.flow);
256
- case "action_select_method":
257
- return { current: "method_active", method: action.method };
258
- }
259
- return state;
260
- }
261
283
  function useFormStateReducer(flow) {
262
- return useReducer(formStateReducer, parseStateFromFlow(flow));
284
+ const action = parseStateFromFlow(flow);
285
+ const [selectedMethod, setSelectedMethod] = useState();
286
+ const formStateReducer = (state, action2) => {
287
+ switch (action2.type) {
288
+ case "action_flow_update": {
289
+ if (selectedMethod)
290
+ return { current: "method_active", method: selectedMethod };
291
+ return parseStateFromFlow(action2.flow);
292
+ }
293
+ case "action_select_method": {
294
+ setSelectedMethod(action2.method);
295
+ return { current: "method_active", method: action2.method };
296
+ }
297
+ }
298
+ return state;
299
+ };
300
+ return useReducer(formStateReducer, action);
263
301
  }
264
302
  function useOryFlow() {
265
303
  const ctx = useContext(OryFlowContext);
@@ -349,6 +387,22 @@ function computeDefaultValues(nodes) {
349
387
  if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
350
388
  return acc;
351
389
  }
390
+ if (attrs.name.startsWith("grant_scope")) {
391
+ const scope = attrs.value;
392
+ if (Array.isArray(acc.grant_scope)) {
393
+ return {
394
+ ...acc,
395
+ // We want to have all scopes accepted by default, so that the user has to actively uncheck them.
396
+ grant_scope: [...acc.grant_scope, scope]
397
+ };
398
+ } else if (!acc.grant_scope) {
399
+ return {
400
+ ...acc,
401
+ grant_scope: [scope]
402
+ };
403
+ }
404
+ return acc;
405
+ }
352
406
  return unrollTrait(
353
407
  {
354
408
  name: attrs.name,
@@ -780,7 +834,7 @@ function useOryFormSubmit(onAfterSubmit) {
780
834
  if ("lookup_secret_confirm" in submitData || "lookup_secret_reveal" in submitData || "lookup_secret_regenerate" in submitData || "lookup_secret_disable" in submitData) {
781
835
  submitData.method = "lookup_secret";
782
836
  }
783
- if (submitData.method === "oidc" && submitData.link && supportsSelectAccountPrompt.includes(submitData.link)) {
837
+ if (submitData.method === UiNodeGroupEnum.Oidc && submitData.link && supportsSelectAccountPrompt.includes(submitData.link)) {
784
838
  submitData.upstream_parameters = {
785
839
  prompt: "select_account"
786
840
  };
@@ -798,6 +852,19 @@ function useOryFormSubmit(onAfterSubmit) {
798
852
  });
799
853
  break;
800
854
  }
855
+ case FlowType.OAuth2Consent: {
856
+ const response = await fetch(flowContainer.flow.ui.action, {
857
+ method: "POST",
858
+ body: JSON.stringify(data),
859
+ headers: {
860
+ "Content-Type": "application/json"
861
+ }
862
+ });
863
+ const oauth2Success = await response.json();
864
+ if (oauth2Success.redirect_to && typeof oauth2Success.redirect_to === "string") {
865
+ onRedirect(oauth2Success.redirect_to);
866
+ }
867
+ }
801
868
  }
802
869
  if ("password" in data) {
803
870
  methods.setValue("password", "");
@@ -812,11 +879,15 @@ function useOryFormSubmit(onAfterSubmit) {
812
879
  };
813
880
  return onSubmit;
814
881
  }
815
- function OryForm({ children, onAfterSubmit }) {
816
- var _a;
882
+ function OryForm({
883
+ children,
884
+ onAfterSubmit,
885
+ "data-testid": dataTestId
886
+ }) {
817
887
  const { Form } = useComponents();
818
888
  const flowContainer = useOryFlow();
819
889
  const methods = useFormContext();
890
+ const { Message } = useComponents();
820
891
  const intl = useIntl();
821
892
  const onSubmit = useOryFormSubmit(onAfterSubmit);
822
893
  const hasMethods = flowContainer.flow.ui.nodes.some((node) => {
@@ -831,15 +902,24 @@ function OryForm({ children, onAfterSubmit }) {
831
902
  }
832
903
  return false;
833
904
  });
834
- if (!hasMethods && ((_a = flowContainer.flow.ui.messages) != null ? _a : []).length === 0) {
835
- return intl.formatMessage({
836
- id: `identities.messages.${5000002}`,
837
- defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
838
- });
905
+ if (!hasMethods) {
906
+ const m = {
907
+ id: 5000002,
908
+ text: intl.formatMessage({
909
+ id: `identities.messages.${5000002}`,
910
+ defaultMessage: "No authentication methods are available for this request. Please contact the site or app owner."
911
+ }),
912
+ type: "error"
913
+ };
914
+ return /* @__PURE__ */ jsx("div", { "data-testid": dataTestId, children: /* @__PURE__ */ jsx(Message.Root, { children: /* @__PURE__ */ jsx(Message.Content, { message: m }, m.id) }) });
915
+ }
916
+ if (flowContainer.flowType === FlowType.Login && flowContainer.formState.current === "method_active" && flowContainer.formState.method === "code") {
917
+ methods.setValue("method", "code");
839
918
  }
840
919
  return /* @__PURE__ */ jsx(
841
920
  Form.Root,
842
921
  {
922
+ "data-testid": dataTestId,
843
923
  action: flowContainer.flow.ui.action,
844
924
  method: flowContainer.flow.ui.method,
845
925
  onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
@@ -847,7 +927,15 @@ function OryForm({ children, onAfterSubmit }) {
847
927
  }
848
928
  );
849
929
  }
850
- var messageIdsToHide = [1040009, 1060003, 1080003, 1010014, 1040005, 1010016];
930
+ var messageIdsToHide = [
931
+ 1040009,
932
+ 1060003,
933
+ 1080003,
934
+ 1010004,
935
+ 1010014,
936
+ 1040005,
937
+ 1010016
938
+ ];
851
939
  function OryCardValidationMessages({ ...props }) {
852
940
  var _a;
853
941
  const { flow } = useOryFlow();
@@ -866,7 +954,7 @@ var NodeInput = ({
866
954
  }) => {
867
955
  var _a;
868
956
  const { Node: Node2 } = useComponents();
869
- const { setValue } = useFormContext();
957
+ const { setValue, watch } = useFormContext();
870
958
  const {
871
959
  onloadTrigger,
872
960
  onclickTrigger,
@@ -878,15 +966,9 @@ var NodeInput = ({
878
966
  } = attributes;
879
967
  const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
880
968
  const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
881
- const setFormValue = () => {
882
- if (attrs.value && !(isResendNode || isScreenSelectionNode)) {
883
- setValue(attrs.name, attrs.value);
884
- }
885
- };
886
969
  const hasRun = useRef(false);
887
970
  useEffect(
888
971
  () => {
889
- setFormValue();
890
972
  if (!hasRun.current && onloadTrigger) {
891
973
  hasRun.current = true;
892
974
  triggerToWindowCall(onloadTrigger);
@@ -897,13 +979,25 @@ var NodeInput = ({
897
979
  []
898
980
  );
899
981
  const handleClick = () => {
900
- setFormValue();
901
982
  if (onclickTrigger) {
902
983
  triggerToWindowCall(onclickTrigger);
903
984
  }
904
985
  };
905
- const isSocial = (attrs.name === "provider" || attrs.name === "link") && node.group === "oidc";
986
+ const isSocial = (attrs.name === "provider" || attrs.name === "link") && (node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml);
906
987
  const isPinCodeInput = attrs.name === "code" && node.group === "code" || attrs.name === "totp_code" && node.group === "totp";
988
+ const handleScopeChange = (checked) => {
989
+ const scopes = watch("grant_scope");
990
+ if (Array.isArray(scopes)) {
991
+ if (checked) {
992
+ setValue("grant_scope", Array.from(/* @__PURE__ */ new Set([...scopes, attrs.value])));
993
+ } else {
994
+ setValue(
995
+ "grant_scope",
996
+ scopes.filter((scope) => scope !== attrs.value)
997
+ );
998
+ }
999
+ }
1000
+ };
907
1001
  switch (attributes.type) {
908
1002
  case UiNodeInputAttributesTypeEnum.Submit:
909
1003
  case UiNodeInputAttributesTypeEnum.Button:
@@ -913,6 +1007,9 @@ var NodeInput = ({
913
1007
  if (isResendNode || isScreenSelectionNode) {
914
1008
  return null;
915
1009
  }
1010
+ if (node.group === "oauth2_consent") {
1011
+ return null;
1012
+ }
916
1013
  return /* @__PURE__ */ jsx(
917
1014
  Node2.Label,
918
1015
  {
@@ -924,6 +1021,21 @@ var NodeInput = ({
924
1021
  case UiNodeInputAttributesTypeEnum.DatetimeLocal:
925
1022
  throw new Error("Not implemented");
926
1023
  case UiNodeInputAttributesTypeEnum.Checkbox:
1024
+ if (node.group === "oauth2_consent" && node.attributes.node_type === "input") {
1025
+ switch (node.attributes.name) {
1026
+ case "grant_scope":
1027
+ return /* @__PURE__ */ jsx(
1028
+ Node2.ConsentScopeCheckbox,
1029
+ {
1030
+ attributes: attrs,
1031
+ node,
1032
+ onCheckedChange: handleScopeChange
1033
+ }
1034
+ );
1035
+ default:
1036
+ return null;
1037
+ }
1038
+ }
927
1039
  return /* @__PURE__ */ jsx(
928
1040
  Node2.Label,
929
1041
  {
@@ -950,6 +1062,9 @@ var NodeInput = ({
950
1062
  };
951
1063
  var Node = ({ node, onClick }) => {
952
1064
  const { Node: Node2 } = useComponents();
1065
+ if (node.group === UiNodeGroupEnum.Captcha) {
1066
+ return /* @__PURE__ */ jsx(Node2.Captcha, { node });
1067
+ }
953
1068
  if (isUiNodeImageAttributes(node.attributes)) {
954
1069
  return /* @__PURE__ */ jsx(Node2.Image, { node, attributes: node.attributes });
955
1070
  } else if (isUiNodeTextAttributes(node.attributes)) {
@@ -982,7 +1097,9 @@ function OryFormOidcButtons() {
982
1097
  flow: { ui }
983
1098
  } = useOryFlow();
984
1099
  const { setValue } = useFormContext();
985
- const filteredNodes = ui.nodes.filter((node) => node.group === "oidc");
1100
+ const filteredNodes = ui.nodes.filter(
1101
+ (node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
1102
+ );
986
1103
  const { Form, Node: Node2 } = useComponents();
987
1104
  if (filteredNodes.length === 0) {
988
1105
  return null;
@@ -997,7 +1114,7 @@ function OryFormOidcButtons() {
997
1114
  "provider",
998
1115
  node.attributes.value
999
1116
  );
1000
- setValue("method", "oidc");
1117
+ setValue("method", node.group);
1001
1118
  }
1002
1119
  },
1003
1120
  k
@@ -1007,39 +1124,75 @@ function OryFormSocialButtonsForm() {
1007
1124
  const {
1008
1125
  flow: { ui }
1009
1126
  } = useOryFlow();
1010
- const filteredNodes = ui.nodes.filter((node) => node.group === "oidc");
1127
+ const filteredNodes = ui.nodes.filter(
1128
+ (node) => node.group === UiNodeGroupEnum.Saml || node.group === UiNodeGroupEnum.Oidc
1129
+ );
1011
1130
  if (filteredNodes.length === 0) {
1012
1131
  return null;
1013
1132
  }
1014
- return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
1133
+ return /* @__PURE__ */ jsx(OryFormProvider, { children: /* @__PURE__ */ jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsx(OryFormOidcButtons, {}) }) });
1015
1134
  }
1016
1135
  function isUINodeGroupEnum(method) {
1017
1136
  return Object.values(UiNodeGroupEnum).includes(method);
1018
1137
  }
1019
1138
  function OryTwoStepCard() {
1020
- const {
1021
- flow: { ui },
1022
- flowType,
1023
- formState,
1024
- dispatchFormState
1025
- } = useOryFlow();
1139
+ var _a, _b, _c, _d;
1026
1140
  const { Form, Card } = useComponents();
1141
+ const { flow, flowType, formState, dispatchFormState } = useOryFlow();
1142
+ const { ui } = flow;
1027
1143
  const nodeSorter = useNodeSorter();
1028
1144
  const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
1029
- const uniqueGroups = useNodesGroups(ui.nodes);
1030
- const options = Object.values(UiNodeGroupEnum).filter((group) => {
1031
- var _a;
1032
- return (_a = uniqueGroups.groups[group]) == null ? void 0 : _a.length;
1033
- }).filter(
1034
- (group) => ![
1145
+ const groupsToShow = useNodesGroups(ui.nodes, {
1146
+ // We only want to render groups that have visible elements.
1147
+ omit: ["script", "input_hidden"]
1148
+ });
1149
+ const authMethodBlocks = Object.fromEntries(
1150
+ Object.values(UiNodeGroupEnum).filter((group) => {
1151
+ var _a2;
1152
+ return (_a2 = groupsToShow.groups[group]) == null ? void 0 : _a2.length;
1153
+ }).filter(
1154
+ (group) => ![
1155
+ UiNodeGroupEnum.Oidc,
1156
+ UiNodeGroupEnum.Saml,
1157
+ UiNodeGroupEnum.Default,
1158
+ UiNodeGroupEnum.IdentifierFirst,
1159
+ UiNodeGroupEnum.Profile,
1160
+ UiNodeGroupEnum.Captcha
1161
+ ].includes(group)
1162
+ ).map((g) => [g, {}])
1163
+ );
1164
+ const authMethodAdditionalNodes = ui.nodes.filter(
1165
+ ({ group }) => [
1035
1166
  UiNodeGroupEnum.Oidc,
1167
+ UiNodeGroupEnum.Saml,
1036
1168
  UiNodeGroupEnum.Default,
1037
1169
  UiNodeGroupEnum.IdentifierFirst,
1038
- UiNodeGroupEnum.Profile
1170
+ UiNodeGroupEnum.Profile,
1171
+ UiNodeGroupEnum.Captcha
1039
1172
  ].includes(group)
1040
1173
  );
1041
- const nonOidcNodes = filterOidcOut(ui.nodes);
1042
- const finalNodes = formState.current === "method_active" ? getFinalNodes(uniqueGroups.groups, formState.method) : [];
1174
+ if (UiNodeGroupEnum.Code in authMethodBlocks) {
1175
+ let identifier = (_b = (_a = findNode(ui.nodes, {
1176
+ group: "identifier_first",
1177
+ node_type: "input",
1178
+ name: "identifier"
1179
+ })) == null ? void 0 : _a.attributes) == null ? void 0 : _b.value;
1180
+ identifier || (identifier = (_d = (_c = findNode(ui.nodes, {
1181
+ group: "code",
1182
+ node_type: "input",
1183
+ name: "address"
1184
+ })) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
1185
+ if (identifier) {
1186
+ authMethodBlocks[UiNodeGroupEnum.Code] = {
1187
+ title: {
1188
+ id: "identities.messages.1010023",
1189
+ values: { address: identifier }
1190
+ }
1191
+ };
1192
+ }
1193
+ }
1194
+ const nonSsoNodes = removeSsoNodes(ui.nodes);
1195
+ const finalNodes = formState.current === "method_active" ? getFinalNodes(groupsToShow.groups, formState.method) : [];
1043
1196
  const handleAfterFormSubmit = (method) => {
1044
1197
  if (typeof method !== "string" || !isUINodeGroupEnum(method)) {
1045
1198
  return;
@@ -1051,60 +1204,123 @@ function OryTwoStepCard() {
1051
1204
  });
1052
1205
  }
1053
1206
  };
1054
- const hasOidc = ui.nodes.some((node) => node.group === UiNodeGroupEnum.Oidc);
1055
- const showOidc = !(formState.current === "method_active" && formState.method !== "oidc");
1056
- return /* @__PURE__ */ jsxs(OryCard, { children: [
1057
- /* @__PURE__ */ jsx(OryCardHeader, {}),
1058
- /* @__PURE__ */ jsxs(OryCardContent, { children: [
1059
- /* @__PURE__ */ jsx(OryCardValidationMessages, {}),
1060
- showOidc && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
1061
- /* @__PURE__ */ jsxs(OryForm, { onAfterSubmit: handleAfterFormSubmit, children: [
1062
- /* @__PURE__ */ jsxs(Form.Group, { children: [
1063
- formState.current === "provide_identifier" && /* @__PURE__ */ jsxs(Fragment, { children: [
1064
- hasOidc && /* @__PURE__ */ jsx(Card.Divider, {}),
1065
- nonOidcNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1066
- ] }),
1067
- formState.current === "select_method" && /* @__PURE__ */ jsxs(Fragment, { children: [
1068
- /* @__PURE__ */ jsx(Card.Divider, {}),
1069
- /* @__PURE__ */ jsx(
1070
- AuthMethodList,
1071
- {
1072
- options,
1073
- setSelectedGroup: (group) => dispatchFormState({
1074
- type: "action_select_method",
1075
- method: group
1076
- })
1077
- }
1078
- )
1079
- ] }),
1080
- formState.current === "method_active" && /* @__PURE__ */ jsxs(Fragment, { children: [
1081
- ui.nodes.filter((n) => n.type === "script").map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
1082
- finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1083
- ] })
1207
+ const hasSso = ui.nodes.some(
1208
+ (node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
1209
+ );
1210
+ const showSso = !(formState.current === "method_active" && !(formState.method === UiNodeGroupEnum.Oidc || formState.method === UiNodeGroupEnum.Saml));
1211
+ const showSsoDivider = hasSso && nonSsoNodes.some((n) => {
1212
+ if (isUiNodeInputAttributes(n.attributes)) {
1213
+ return n.attributes.type !== UiNodeInputAttributesTypeEnum.Hidden;
1214
+ } else if (isUiNodeScriptAttributes(n.attributes)) {
1215
+ return false;
1216
+ }
1217
+ return true;
1218
+ });
1219
+ switch (formState.current) {
1220
+ case "provide_identifier":
1221
+ return /* @__PURE__ */ jsxs(OryCard, { children: [
1222
+ /* @__PURE__ */ jsx(OryCardHeader, {}),
1223
+ /* @__PURE__ */ jsxs(OryCardContent, { children: [
1224
+ /* @__PURE__ */ jsx(OryCardValidationMessages, {}),
1225
+ showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
1226
+ /* @__PURE__ */ jsx(
1227
+ OryForm,
1228
+ {
1229
+ "data-testid": `ory/form/methods/local`,
1230
+ onAfterSubmit: handleAfterFormSubmit,
1231
+ children: /* @__PURE__ */ jsxs(Form.Group, { children: [
1232
+ showSsoDivider && /* @__PURE__ */ jsx(Card.Divider, {}),
1233
+ nonSsoNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1234
+ ] })
1235
+ }
1236
+ )
1237
+ ] }),
1238
+ /* @__PURE__ */ jsx(OryCardFooter, {})
1239
+ ] });
1240
+ case "select_method":
1241
+ return /* @__PURE__ */ jsxs(OryCard, { children: [
1242
+ /* @__PURE__ */ jsx(OryCardHeader, {}),
1243
+ /* @__PURE__ */ jsxs(OryCardContent, { children: [
1244
+ /* @__PURE__ */ jsx(OryCardValidationMessages, {}),
1245
+ showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
1246
+ Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsx(
1247
+ OryForm,
1248
+ {
1249
+ "data-testid": `ory/form/methods/local`,
1250
+ onAfterSubmit: handleAfterFormSubmit,
1251
+ children: /* @__PURE__ */ jsxs(Form.Group, { children: [
1252
+ /* @__PURE__ */ jsx(Card.Divider, {}),
1253
+ /* @__PURE__ */ jsx(
1254
+ AuthMethodList,
1255
+ {
1256
+ options: authMethodBlocks,
1257
+ setSelectedGroup: (group) => dispatchFormState({
1258
+ type: "action_select_method",
1259
+ method: group
1260
+ })
1261
+ }
1262
+ ),
1263
+ authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1264
+ ] })
1265
+ }
1266
+ )
1084
1267
  ] }),
1085
1268
  /* @__PURE__ */ jsx(OryCardFooter, {})
1086
- ] })
1087
- ] })
1269
+ ] });
1270
+ case "method_active":
1271
+ return /* @__PURE__ */ jsxs(OryCard, { children: [
1272
+ /* @__PURE__ */ jsx(OryCardHeader, {}),
1273
+ /* @__PURE__ */ jsxs(OryCardContent, { children: [
1274
+ /* @__PURE__ */ jsx(OryCardValidationMessages, {}),
1275
+ showSso && /* @__PURE__ */ jsx(OryFormSocialButtonsForm, {}),
1276
+ /* @__PURE__ */ jsx(
1277
+ OryForm,
1278
+ {
1279
+ "data-testid": `ory/form/methods/local`,
1280
+ onAfterSubmit: handleAfterFormSubmit,
1281
+ children: /* @__PURE__ */ jsxs(Form.Group, { children: [
1282
+ ui.nodes.filter(
1283
+ (n) => isUiNodeScriptAttributes(n.attributes) || n.group === UiNodeGroupEnum.Captcha || n.group === UiNodeGroupEnum.Default || n.group === UiNodeGroupEnum.Profile
1284
+ ).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
1285
+ finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1286
+ ] })
1287
+ }
1288
+ )
1289
+ ] }),
1290
+ /* @__PURE__ */ jsx(OryCardFooter, {})
1291
+ ] });
1292
+ }
1293
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1294
+ "unknown form state: ",
1295
+ formState.current
1088
1296
  ] });
1089
1297
  }
1090
1298
  function AuthMethodList({ options, setSelectedGroup }) {
1091
1299
  const { Card } = useComponents();
1092
- const { setValue } = useFormContext();
1093
- const handleClick = (group) => {
1300
+ const { setValue, getValues } = useFormContext();
1301
+ if (Object.entries(options).length === 0) {
1302
+ return null;
1303
+ }
1304
+ const handleClick = (group, options2) => {
1305
+ var _a, _b, _c, _d;
1094
1306
  if (isGroupImmediateSubmit(group)) {
1307
+ if (group === "code" && !getValues("identifier") && ((_b = (_a = options2 == null ? void 0 : options2.title) == null ? void 0 : _a.values) == null ? void 0 : _b.address)) {
1308
+ setValue("identifier", (_d = (_c = options2 == null ? void 0 : options2.title) == null ? void 0 : _c.values) == null ? void 0 : _d.address);
1309
+ }
1095
1310
  setValue("method", group);
1096
1311
  } else {
1097
1312
  setSelectedGroup(group);
1098
1313
  }
1099
1314
  };
1100
- return options.map((option) => /* @__PURE__ */ jsx(
1315
+ return /* @__PURE__ */ jsx(Card.AuthMethodListContainer, { children: Object.entries(options).map(([group, options2]) => /* @__PURE__ */ jsx(
1101
1316
  Card.AuthMethodListItem,
1102
1317
  {
1103
- group: option,
1104
- onClick: () => handleClick(option)
1318
+ group,
1319
+ title: options2.title,
1320
+ onClick: () => handleClick(group, options2)
1105
1321
  },
1106
- option
1107
- ));
1322
+ group
1323
+ )) });
1108
1324
  }
1109
1325
  function OryFormGroups({ groups }) {
1110
1326
  const {
@@ -1144,14 +1360,29 @@ function OryFormSectionInner({
1144
1360
  }
1145
1361
  );
1146
1362
  }
1363
+ function OryConsentCard() {
1364
+ const { Form, Card } = useComponents();
1365
+ const flow = useOryFlow();
1366
+ return /* @__PURE__ */ jsxs(OryCard, { children: [
1367
+ /* @__PURE__ */ jsx(OryCardHeader, {}),
1368
+ /* @__PURE__ */ jsx(OryCardContent, { children: /* @__PURE__ */ jsxs(OryForm, { children: [
1369
+ /* @__PURE__ */ jsx(Card.Divider, {}),
1370
+ /* @__PURE__ */ jsx(Form.Group, { children: flow.flow.ui.nodes.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)) }),
1371
+ /* @__PURE__ */ jsx(Card.Divider, {}),
1372
+ /* @__PURE__ */ jsx(OryCardFooter, {})
1373
+ ] }) })
1374
+ ] });
1375
+ }
1147
1376
  function OryFormGroupDivider() {
1148
1377
  const { Card } = useComponents();
1149
1378
  const {
1150
1379
  flow: { ui }
1151
1380
  } = useOryFlow();
1152
- const filteredNodes = ui.nodes.filter((node) => node.group === "oidc");
1381
+ const filteredNodes = ui.nodes.filter(
1382
+ (node) => node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml
1383
+ );
1153
1384
  const otherNodes = ui.nodes.filter(
1154
- (node) => node.group !== "oidc" && node.group !== "default"
1385
+ (node) => !(node.group === UiNodeGroupEnum.Oidc || node.group === UiNodeGroupEnum.Saml) && node.group !== "default"
1155
1386
  );
1156
1387
  if (filteredNodes.length > 0 && otherNodes.length > 0) {
1157
1388
  return /* @__PURE__ */ jsx(Card.Divider, {});
@@ -1177,7 +1408,7 @@ function OrySettingsOidc({ nodes }) {
1177
1408
  onClick: () => {
1178
1409
  if (node.attributes.node_type === "input") {
1179
1410
  setValue("link", node.attributes.value);
1180
- setValue("method", "oidc");
1411
+ setValue("method", node.group);
1181
1412
  }
1182
1413
  }
1183
1414
  }));
@@ -1186,7 +1417,7 @@ function OrySettingsOidc({ nodes }) {
1186
1417
  onClick: () => {
1187
1418
  if (node.attributes.node_type === "input") {
1188
1419
  setValue("unlink", node.attributes.value);
1189
- setValue("method", "oidc");
1420
+ setValue("method", node.group);
1190
1421
  }
1191
1422
  }
1192
1423
  }));
@@ -1495,16 +1726,19 @@ function SettingsSectionContent({ group, nodes }) {
1495
1726
  const { Card } = useComponents();
1496
1727
  const intl = useIntl();
1497
1728
  const { flow } = useOryFlow();
1498
- const uniqueGroups = useNodesGroups(flow.ui.nodes);
1729
+ const groupedNodes = useNodesGroups(flow.ui.nodes, {
1730
+ // Script nodes are already handled by the parent component.
1731
+ omit: ["script"]
1732
+ });
1499
1733
  if (group === UiNodeGroupEnum.Totp) {
1500
1734
  return /* @__PURE__ */ jsxs(
1501
1735
  OryFormSection,
1502
1736
  {
1503
- nodes: uniqueGroups.groups.totp,
1737
+ nodes: groupedNodes.groups.totp,
1504
1738
  "data-testid": "ory/screen/settings/group/totp",
1505
1739
  children: [
1506
- /* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = uniqueGroups.groups.totp) != null ? _a : [] }),
1507
- (_b = uniqueGroups.groups.default) == null ? void 0 : _b.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1740
+ /* @__PURE__ */ jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
1741
+ (_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1508
1742
  ]
1509
1743
  }
1510
1744
  );
@@ -1513,16 +1747,16 @@ function SettingsSectionContent({ group, nodes }) {
1513
1747
  return /* @__PURE__ */ jsxs(
1514
1748
  OryFormSection,
1515
1749
  {
1516
- nodes: uniqueGroups.groups.lookup_secret,
1750
+ nodes: groupedNodes.groups.lookup_secret,
1517
1751
  "data-testid": "ory/screen/settings/group/lookup_secret",
1518
1752
  children: [
1519
1753
  /* @__PURE__ */ jsx(
1520
1754
  OrySettingsRecoveryCodes,
1521
1755
  {
1522
- nodes: (_c = uniqueGroups.groups.lookup_secret) != null ? _c : []
1756
+ nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
1523
1757
  }
1524
1758
  ),
1525
- (_d = uniqueGroups.groups.default) == null ? void 0 : _d.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1759
+ (_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1526
1760
  ]
1527
1761
  }
1528
1762
  );
@@ -1531,11 +1765,11 @@ function SettingsSectionContent({ group, nodes }) {
1531
1765
  return /* @__PURE__ */ jsxs(
1532
1766
  OryFormSection,
1533
1767
  {
1534
- nodes: uniqueGroups.groups.oidc,
1768
+ nodes: groupedNodes.groups.oidc,
1535
1769
  "data-testid": "ory/screen/settings/group/oidc",
1536
1770
  children: [
1537
- /* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = uniqueGroups.groups.oidc) != null ? _e : [] }),
1538
- (_f = uniqueGroups.groups.default) == null ? void 0 : _f.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1771
+ /* @__PURE__ */ jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
1772
+ (_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1539
1773
  ]
1540
1774
  }
1541
1775
  );
@@ -1544,11 +1778,11 @@ function SettingsSectionContent({ group, nodes }) {
1544
1778
  return /* @__PURE__ */ jsxs(
1545
1779
  OryFormSection,
1546
1780
  {
1547
- nodes: uniqueGroups.groups.webauthn,
1781
+ nodes: groupedNodes.groups.webauthn,
1548
1782
  "data-testid": "ory/screen/settings/group/webauthn",
1549
1783
  children: [
1550
- /* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = uniqueGroups.groups.webauthn) != null ? _g : [] }),
1551
- (_h = uniqueGroups.groups.default) == null ? void 0 : _h.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1784
+ /* @__PURE__ */ jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
1785
+ (_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1552
1786
  ]
1553
1787
  }
1554
1788
  );
@@ -1557,11 +1791,11 @@ function SettingsSectionContent({ group, nodes }) {
1557
1791
  return /* @__PURE__ */ jsxs(
1558
1792
  OryFormSection,
1559
1793
  {
1560
- nodes: uniqueGroups.groups.passkey,
1794
+ nodes: groupedNodes.groups.passkey,
1561
1795
  "data-testid": "ory/screen/settings/group/passkey",
1562
1796
  children: [
1563
- /* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = uniqueGroups.groups.passkey) != null ? _i : [] }),
1564
- (_j = uniqueGroups.groups.default) == null ? void 0 : _j.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1797
+ /* @__PURE__ */ jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
1798
+ (_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
1565
1799
  ]
1566
1800
  }
1567
1801
  );
@@ -1582,7 +1816,7 @@ function SettingsSectionContent({ group, nodes }) {
1582
1816
  id: `settings.${group}.description`
1583
1817
  }),
1584
1818
  children: [
1585
- (_k = uniqueGroups.groups.default) == null ? void 0 : _k.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
1819
+ (_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k)),
1586
1820
  nodes.filter(
1587
1821
  (node) => "type" in node.attributes && node.attributes.type !== "submit"
1588
1822
  ).map((node, k) => /* @__PURE__ */ jsx(Node, { node }, k))
@@ -1596,16 +1830,16 @@ function SettingsSectionContent({ group, nodes }) {
1596
1830
  }
1597
1831
  );
1598
1832
  }
1599
- var getScriptNode = (nodes) => nodes.find(
1600
- (node) => "id" in node.attributes && node.attributes.id === "webauthn_script"
1833
+ var onlyScriptNodes = (nodes) => nodes.filter(
1834
+ (node) => isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
1601
1835
  );
1602
1836
  function OrySettingsCard() {
1603
1837
  const { flow } = useOryFlow();
1604
- const uniqueGroups = useNodesGroups(flow.ui.nodes);
1605
- const scriptNode = getScriptNode(flow.ui.nodes);
1838
+ const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
1839
+ const scriptNodes = onlyScriptNodes(flow.ui.nodes);
1606
1840
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1607
1841
  /* @__PURE__ */ jsx(OryCardValidationMessages, {}),
1608
- scriptNode && /* @__PURE__ */ jsx(Node, { node: scriptNode }),
1842
+ scriptNodes.map((n) => /* @__PURE__ */ jsx(Node, { node: n })),
1609
1843
  uniqueGroups.entries.map(([group, nodes]) => {
1610
1844
  if (group === UiNodeGroupEnum.Default) {
1611
1845
  return null;
@@ -1701,9 +1935,9 @@ var en_default = {
1701
1935
  "identities.messages.1010005": "Verify",
1702
1936
  "identities.messages.1010006": "Authentication code",
1703
1937
  "identities.messages.1010007": "Backup recovery code",
1704
- "identities.messages.1010008": "Sign in with hardware key",
1705
- "identities.messages.1010009": "Use Authenticator",
1706
- "identities.messages.1010010": "Use backup recovery code",
1938
+ "identities.messages.1010008": "Continue with hardware key",
1939
+ "identities.messages.1010009": "Continue",
1940
+ "identities.messages.1010010": "Continue",
1707
1941
  "identities.messages.1010011": "Sign in with hardware key",
1708
1942
  "identities.messages.1010012": "Prepare your WebAuthn device (e.g. security key, biometrics scanner, ...) and press continue.",
1709
1943
  "identities.messages.1010013": "Continue",
@@ -1840,9 +2074,17 @@ var en_default = {
1840
2074
  "login.subtitle-oauth2": "To authenticate {clientName}",
1841
2075
  "login.title": "Sign in",
1842
2076
  "login.subtitle": "Sign in with {parts}",
1843
- "login.title-aal2": "Two-Factor Authentication",
2077
+ "login.title-aal2": "Second factor authentication",
2078
+ "login.subtitle-aal2": "Choose a way to complete your second factor authentication",
2079
+ "login.code.subtitle": "A verification code will be sent by email",
2080
+ "login.webauthn.subtitle": "Please prepare your WebAuthN device",
2081
+ "login.totp.subtitle": "Please enter the code generated by your Authenticator App",
2082
+ "login.lookup_secret.subtitle": "Please enter one of your 8-digit backup recovery codes",
1844
2083
  "login.title-refresh": "Reauthenticate",
1845
2084
  "login.subtitle-refresh": "Confirm your identity with {parts}",
2085
+ "login.2fa.go-back": "Something isn't working?",
2086
+ "login.2fa.go-back.link": "Go back",
2087
+ "login.2fa.method.go-back": "Choose another method",
1846
2088
  "logout.accept-button": "Yes",
1847
2089
  "logout.reject-button": "No",
1848
2090
  "logout.title": "Do you wish to log out?",
@@ -1891,10 +2133,14 @@ var en_default = {
1891
2133
  "two-step.password.description": "Enter your password associated with your account",
1892
2134
  "two-step.code.title": "Email code",
1893
2135
  "two-step.code.description": "A verification code will be sent to your email",
1894
- "two-step.webauthn.title": "Security Key",
2136
+ "two-step.webauthn.title": "Security key",
1895
2137
  "two-step.webauthn.description": "Use your security key to authenticate",
1896
2138
  "two-step.passkey.title": "Passkey (recommended)",
1897
2139
  "two-step.passkey.description": "Use your device's for fingerprint or face recognition",
2140
+ "two-step.totp.title": "Use your Authenticator App (TOTP)",
2141
+ "two-step.totp.description": "Use a 6-digit one-time code from your authenticator app",
2142
+ "two-step.lookup_secret.title": "Backup recovery code",
2143
+ "two-step.lookup_secret.description": "Use up one of your 8-digit backup codes to authenticate",
1898
2144
  "identities.messages.1010020": "",
1899
2145
  "input.placeholder": "Enter your {placeholder}",
1900
2146
  "card.header.parts.oidc": "a social provider",
@@ -1928,7 +2174,27 @@ var en_default = {
1928
2174
  "property.phone": "phone",
1929
2175
  "property.username": "username",
1930
2176
  "property.identifier": "identifier",
1931
- "property.code": "code"
2177
+ "property.code": "code",
2178
+ "consent.title": "Authorize {party}",
2179
+ "consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
2180
+ "consent.scope.openid.title": "Identity",
2181
+ "consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
2182
+ "consent.scope.offline_access.title": "Offline Access",
2183
+ "consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
2184
+ "consent.scope.profile.title": "Profile Information",
2185
+ "consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
2186
+ "consent.scope.email.title": "Email Address",
2187
+ "consent.scope.email.description": "Retrieve your email address and its verification status.",
2188
+ "consent.scope.address.title": "Physical Address",
2189
+ "consent.scope.address.description": "Access your postal address.",
2190
+ "consent.scope.phone.title": "Phone Number",
2191
+ "consent.scope.phone.description": "Retrieve your phone number and its verification status.",
2192
+ "error.title.what-happened": "What happened?",
2193
+ "error.title.what-can-i-do": "What can I do?",
2194
+ "error.instructions": "Please try again in a few minutes or contact the website operator.",
2195
+ "error.footer.text": "When reporting this error, please include the following information:",
2196
+ "error.footer.copy": "Copy",
2197
+ "error.action.go-back": "Go back"
1932
2198
  };
1933
2199
 
1934
2200
  // src/locales/de.json
@@ -1954,9 +2220,9 @@ var de_default = {
1954
2220
  "identities.messages.1010005": "Verifizieren",
1955
2221
  "identities.messages.1010006": "Authentifizierungscode",
1956
2222
  "identities.messages.1010007": "Backup-Wiederherstellungscode",
1957
- "identities.messages.1010008": "Sicherheitsschl\xFCssel verwenden",
1958
- "identities.messages.1010009": "Authentifizierungs-App verwenden",
1959
- "identities.messages.1010010": "Backup-Wiederherstellungscode verwenden",
2223
+ "identities.messages.1010008": "Mit Sicherheitsschl\xFCssel fortfahren",
2224
+ "identities.messages.1010009": "Weiter",
2225
+ "identities.messages.1010010": "Weiter",
1960
2226
  "identities.messages.1010011": "Mit Sicherheitsschl\xFCssel fortfahren",
1961
2227
  "identities.messages.1010012": "Bereiten Sie Ihr WebAuthn-Ger\xE4t vor (z. B. Sicherheitsschl\xFCssel, biometrischer Scanner, ...) und dr\xFCcken Sie auf Weiter.",
1962
2228
  "identities.messages.1010013": "Weiter",
@@ -2072,8 +2338,16 @@ var de_default = {
2072
2338
  "login.registration-label": "Sie haben noch kein Konto?",
2073
2339
  "login.subtitle-oauth2": "Zur Authentifizierung bei {clientName}",
2074
2340
  "login.title": "Anmelden",
2075
- "login.title-aal2": "Zwei-Faktor-Authentifizierung",
2341
+ "login.title-aal2": "Zweitfaktor-Authentifizierung",
2342
+ "login.subtitle-aal2": "W\xE4hlen Sie eine Methode zur Best\xE4tigung Ihrer Zwei-Faktor-Authentifizierung",
2343
+ "login.code.subtitle": "Ein Best\xE4tigungscode wird per E-Mail gesendet",
2344
+ "login.webauthn.subtitle": "Bitte bereiten Sie Ihr WebAuthN-Ger\xE4t vor",
2345
+ "login.totp.subtitle": "Bitte geben Sie den Code aus Ihrer Authenticator-App ein",
2346
+ "login.lookup_secret.subtitle": "Bitte geben Sie einen Ihrer 8-stelligen Backup-Wiederherstellungscodes ein",
2076
2347
  "login.title-refresh": "Best\xE4tigen Sie, dass Sie es sind",
2348
+ "login.2fa.go-back": "Funktioniert etwas nicht?",
2349
+ "login.2fa.go-back.link": "Zur\xFCck",
2350
+ "login.2fa.method.go-back": "Eine andere Methode w\xE4hlen",
2077
2351
  "logout.accept-button": "Ja",
2078
2352
  "logout.reject-button": "Nein",
2079
2353
  "logout.title": "M\xF6chten Sie sich abmelden?",
@@ -2091,11 +2365,15 @@ var de_default = {
2091
2365
  "two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
2092
2366
  "two-step.code.title": "E-Mail-Code",
2093
2367
  "two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
2094
- "two-step.passkey.title": "Passwort (empfohlen)",
2368
+ "two-step.passkey.title": "Passkey (empfohlen)",
2095
2369
  "two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
2096
2370
  "two-step.password.title": "Passwort",
2097
- "two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
2098
2371
  "two-step.webauthn.title": "Sicherheitsschl\xFCssel",
2372
+ "two-step.webauthn.description": "Verwenden Sie Ihren Sicherheitsschl\xFCssel zur Authentifizierung",
2373
+ "two-step.totp.title": "Verwenden Sie Ihre Authenticator-App (TOTP)",
2374
+ "two-step.totp.description": "Verwenden Sie einen 6-stelligen Einmal-Code aus Ihrer Authenticator-App",
2375
+ "two-step.lookup_secret.title": "Backup-Wiederherstellungscode",
2376
+ "two-step.lookup_secret.description": "Verwenden Sie einen Ihrer 8-stelligen Backup-Codes, um sich zu authentifizieren",
2099
2377
  "identities.messages.1070014": "Login- und Link-Zugangsdaten",
2100
2378
  "identities.messages.1070015": "Bitte schlie\xDFen Sie die Captcha-Challenge ab, um fortzufahren.",
2101
2379
  "identities.messages.4000038": "Die Captcha-\xDCberpr\xFCfung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",
@@ -2103,20 +2381,20 @@ var de_default = {
2103
2381
  "login.cancel-label": "Nicht das richtige Konto?",
2104
2382
  "identities.messages.1010023": "Code an {address} senden",
2105
2383
  "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.",
2106
- "identities.messages.1010017": "",
2107
- "identities.messages.1010018": "",
2108
- "identities.messages.1010019": "",
2384
+ "identities.messages.1010017": "Anmelden und verbinden",
2385
+ "identities.messages.1010018": "Mit {provider} best\xE4tigen",
2386
+ "identities.messages.1010019": "Code senden um fortzufahren",
2109
2387
  "identities.messages.1010020": "",
2110
- "identities.messages.1010021": "",
2111
- "identities.messages.1010022": "",
2112
- "identities.messages.1040007": "",
2113
- "identities.messages.1040008": "",
2114
- "identities.messages.1040009": "",
2388
+ "identities.messages.1010021": "Mit Paskey anmelden",
2389
+ "identities.messages.1010022": "Mit Passwort anmelden",
2390
+ "identities.messages.1040007": "Mit Passkey registrieren",
2391
+ "identities.messages.1040008": "Zur\xFCck",
2392
+ "identities.messages.1040009": "Bitte w\xE4hlen Sie eine Authentifizierungsmethode, um fortzufahren.",
2115
2393
  "identities.messages.1050019": "Passkey hinzuf\xFCgen",
2116
- "identities.messages.1050020": "",
2117
- "identities.messages.4000037": "",
2118
- "identities.messages.4010009": "",
2119
- "identities.messages.4010010": "",
2394
+ "identities.messages.1050020": 'Passkey "{display_name}" entfernen',
2395
+ "identities.messages.4000037": "F\xFCr die eingegebenen Daten existiert kein Account",
2396
+ "identities.messages.4010009": "Die Authentifizierungsmethode stimmt nicht mit der vorherigen Authentifizierungsmethode \xFCberein. Bitte versuchen Sie es erneut.",
2397
+ "identities.messages.4010010": "Die eingegebene Adresse stimmt nicht mit der Adresse \xFCberein, die Sie bei der Registrierung angegeben haben. Bitte versuchen Sie es erneut.",
2120
2398
  "input.placeholder": "{placeholder} eingeben",
2121
2399
  "card.header.parts.code": "einem Code per E-Mail",
2122
2400
  "card.header.parts.identifier-first": "Ihr {identifierLabel}",
@@ -2181,7 +2459,27 @@ var de_default = {
2181
2459
  "property.password": "Passwort",
2182
2460
  "property.phone": "Telefon",
2183
2461
  "property.code": "Code",
2184
- "property.username": "Benutzername"
2462
+ "property.username": "Benutzername",
2463
+ "consent.title": "Autorisieren {party}",
2464
+ "consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
2465
+ "consent.scope.openid.title": "Identit\xE4t",
2466
+ "consent.scope.openid.description": "Erm\xF6glicht der Anwendung, Ihre Identit\xE4t zu \xFCberpr\xFCfen. Dies ist f\xFCr die Authentifizierung und eine vertrauensw\xFCrdige Login-Erfahrung erforderlich.",
2467
+ "consent.scope.offline_access.title": "Offline-Zugriff",
2468
+ "consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
2469
+ "consent.scope.profile.title": "Profilinformationen",
2470
+ "consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
2471
+ "consent.scope.email.title": "E-Mail-Adresse",
2472
+ "consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
2473
+ "consent.scope.address.title": "Physische Adresse",
2474
+ "consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
2475
+ "consent.scope.phone.title": "Telefonnummer",
2476
+ "consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
2477
+ "error.title.what-happened": "Was ist passiert?",
2478
+ "error.footer.copy": "Kopieren",
2479
+ "error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
2480
+ "error.instructions": "Bitte versuchen Sie es in wenigen Minuten erneut oder wenden Sie sich an den Website-Betreiber.",
2481
+ "error.title.what-can-i-do": "Was kann ich tun?",
2482
+ "error.action.go-back": "Zur\xFCck"
2185
2483
  };
2186
2484
 
2187
2485
  // src/locales/es.json
@@ -2197,7 +2495,6 @@ var es_default = {
2197
2495
  "error.back-button": "Regresar",
2198
2496
  "error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
2199
2497
  "error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
2200
- "error.title": "Ocurri\xF3 un error",
2201
2498
  "error.title-internal-server-error": "Error Interno del Servidor",
2202
2499
  "error.title-not-found": "404 - P\xE1gina no encontrada",
2203
2500
  "identities.messages.1010001": "Iniciar sesi\xF3n",
@@ -2207,9 +2504,9 @@ var es_default = {
2207
2504
  "identities.messages.1010005": "Verificar",
2208
2505
  "identities.messages.1010006": "C\xF3digo de autenticaci\xF3n",
2209
2506
  "identities.messages.1010007": "C\xF3digo de recuperaci\xF3n de respaldo",
2210
- "identities.messages.1010008": "Usar llave de seguridad",
2211
- "identities.messages.1010009": "Usar Autenticador",
2212
- "identities.messages.1010010": "Usar c\xF3digo de recuperaci\xF3n de respaldo",
2507
+ "identities.messages.1010008": "Continuar con la llave de hardware",
2508
+ "identities.messages.1010009": "Continuar",
2509
+ "identities.messages.1010010": "Continuar",
2213
2510
  "identities.messages.1010011": "Continuar con llave de seguridad",
2214
2511
  "identities.messages.1010012": "Prepare su dispositivo WebAuthn (por ejemplo, llave de seguridad, esc\xE1ner biom\xE9trico, ...) y presione continuar.",
2215
2512
  "identities.messages.1010013": "Continuar",
@@ -2325,8 +2622,16 @@ var es_default = {
2325
2622
  "login.registration-label": "\xBFNo tiene una cuenta?",
2326
2623
  "login.subtitle-oauth2": "Para autenticar a {clientName}",
2327
2624
  "login.title": "Iniciar sesi\xF3n",
2328
- "login.title-aal2": "Autenticaci\xF3n de Dos Factores",
2625
+ "login.title-aal2": "Autenticaci\xF3n de dos factores",
2626
+ "login.subtitle-aal2": "Elija una forma de completar su autenticaci\xF3n de segundo factor",
2627
+ "login.code.subtitle": "Se enviar\xE1 un c\xF3digo de verificaci\xF3n por correo electr\xF3nico",
2628
+ "login.webauthn.subtitle": "Por favor, prepare su dispositivo WebAuthN",
2629
+ "login.totp.subtitle": "Ingrese el c\xF3digo generado por su aplicaci\xF3n de autenticaci\xF3n",
2630
+ "login.lookup_secret.subtitle": "Ingrese uno de sus c\xF3digos de recuperaci\xF3n de respaldo de 8 d\xEDgitos",
2329
2631
  "login.title-refresh": "Confirme que es usted",
2632
+ "login.2fa.go-back": "\xBFAlgo no funciona?",
2633
+ "login.2fa.go-back.link": "Volver",
2634
+ "login.2fa.method.go-back": "Elegir otro m\xE9todo",
2330
2635
  "logout.accept-button": "S\xED",
2331
2636
  "logout.reject-button": "No",
2332
2637
  "logout.title": "\xBFDesea cerrar sesi\xF3n?",
@@ -2358,47 +2663,12 @@ var es_default = {
2358
2663
  "two-step.passkey.title": "Clave de acceso (recomendada)",
2359
2664
  "two-step.password.description": "Ingrese la contrase\xF1a asociada con su cuenta",
2360
2665
  "two-step.password.title": "Contrase\xF1a",
2361
- "two-step.webauthn.description": "Utiliza tu llave de seguridad para autenticarte",
2362
2666
  "two-step.webauthn.title": "Clave de Seguridad",
2363
- "identities.messages.1010016": "",
2364
- "identities.messages.1010017": "",
2365
- "identities.messages.1010018": "",
2366
- "identities.messages.1010019": "",
2367
- "identities.messages.1010020": "",
2368
- "identities.messages.1010021": "",
2369
- "identities.messages.1010022": "",
2370
- "identities.messages.1010023": "",
2371
- "identities.messages.1040007": "",
2372
- "identities.messages.1040008": "",
2373
- "identities.messages.1040009": "",
2374
- "identities.messages.1050019": "",
2375
- "identities.messages.1050020": "",
2376
- "identities.messages.1070014": "",
2377
- "identities.messages.1070015": "",
2378
- "identities.messages.4000037": "",
2379
- "identities.messages.4000038": "",
2380
- "identities.messages.4010009": "",
2381
- "identities.messages.4010010": "",
2382
- "login.cancel-button": "",
2383
- "login.cancel-label": "",
2384
- "input.placeholder": "",
2385
- "card.header.description.login": "",
2386
- "card.header.description.registration": "",
2387
- "card.header.parts.code": "",
2388
- "card.header.parts.identifier-first": "",
2389
- "card.header.parts.oidc": "",
2390
- "card.header.parts.passkey": "",
2391
- "card.header.parts.password.login": "",
2392
- "card.header.parts.password.registration": "",
2393
- "card.header.parts.webauthn": "",
2394
- "forms.label.forgot-password": "",
2395
- "login.subtitle": "",
2396
- "login.subtitle-refresh": "",
2397
- "misc.or": "",
2398
- "recovery.subtitle": "",
2399
- "registration.subtitle": "",
2400
- "settings.subtitle": "",
2401
- "verification.subtitle": "",
2667
+ "two-step.webauthn.description": "Utilice su llave de seguridad para autenticase",
2668
+ "two-step.totp.title": "Utilice su aplicaci\xF3n de autenticaci\xF3n (TOTP)",
2669
+ "two-step.totp.description": "Utilice un c\xF3digo de un solo uso de 6 d\xEDgitos de su aplicaci\xF3n de autenticaci\xF3n",
2670
+ "two-step.lookup_secret.title": "C\xF3digo de recuperaci\xF3n de respaldo",
2671
+ "two-step.lookup_secret.description": "Utilice uno de sus c\xF3digos de respaldo de 8 d\xEDgitos para autenticarse",
2402
2672
  "settings.totp.info.linked": "Actualmente tienes una aplicaci\xF3n de autenticaci\xF3n conectada.",
2403
2673
  "settings.totp.info.not-linked": "Para habilitar, escanea el c\xF3digo QR con tu autenticador e ingresa el c\xF3digo.",
2404
2674
  "settings.totp.title": "Aplicaci\xF3n Autenticadora",
@@ -2416,25 +2686,85 @@ var es_default = {
2416
2686
  "settings.profile.title": "Configuraci\xF3n de Perfil",
2417
2687
  "settings.webauthn.description": "Administra la configuraci\xF3n de tu token de hardware",
2418
2688
  "settings.webauthn.title": "Gestionar Tokens de Hardware",
2419
- "settings.oidc.info": "",
2420
- "settings.passkey.info": "",
2421
- "settings.title-lookup-secret": "",
2422
- "settings.title-navigation": "",
2423
- "settings.title-oidc": "",
2424
- "settings.title-passkey": "",
2425
- "settings.title-password": "",
2426
- "settings.title-profile": "",
2427
- "settings.title-totp": "",
2428
- "settings.title-webauthn": "",
2429
- "settings.webauthn.info": "",
2430
- "card.footer.select-another-method": "",
2431
- "account-linking.title": "",
2432
- "property.code": "",
2433
- "property.email": "",
2434
- "property.identifier": "",
2435
- "property.password": "",
2436
- "property.phone": "",
2437
- "property.username": ""
2689
+ "consent.title": "Autorizar {party}",
2690
+ "consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
2691
+ "consent.scope.openid.title": "Identidad",
2692
+ "consent.scope.openid.description": "Permite que la aplicaci\xF3n verifique su identidad. Esto es necesario para la autenticaci\xF3n y una experiencia de inicio de sesi\xF3n confiable.",
2693
+ "consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
2694
+ "consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
2695
+ "consent.scope.profile.title": "Informaci\xF3n del perfil",
2696
+ "consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
2697
+ "consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
2698
+ "consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
2699
+ "consent.scope.address.title": "Direcci\xF3n f\xEDsica",
2700
+ "consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
2701
+ "consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
2702
+ "consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
2703
+ "error.title": "Ocurri\xF3 un error",
2704
+ "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.',
2705
+ "identities.messages.1010017": "Iniciar sesi\xF3n y vincular",
2706
+ "identities.messages.1010018": "Confirmar con {provider}",
2707
+ "identities.messages.1010019": "Solicitar c\xF3digo para continuar",
2708
+ "identities.messages.1010021": "Iniciar sesi\xF3n con clave de acceso",
2709
+ "identities.messages.1010022": "Iniciar sesi\xF3n con contrase\xF1a",
2710
+ "identities.messages.1010023": "Enviar c\xF3digo a {address}",
2711
+ "identities.messages.1040007": "Registrarse con clave de acceso",
2712
+ "identities.messages.1040008": "Atr\xE1s",
2713
+ "identities.messages.1040009": "Por favor, elige una credencial para autenticarte.",
2714
+ "identities.messages.1050019": "Agregar clave de acceso",
2715
+ "identities.messages.1070014": "Iniciar sesi\xF3n y vincular credencial",
2716
+ "identities.messages.1070015": "Por favor, completa el desaf\xEDo captcha para continuar.",
2717
+ "identities.messages.4000037": "Esta cuenta no existe o no tiene ning\xFAn m\xE9todo de inicio de sesi\xF3n configurado.",
2718
+ "identities.messages.4000038": "Fall\xF3 la verificaci\xF3n de Captcha, por favor intenta de nuevo.",
2719
+ "identities.messages.4010009": "Las credenciales vinculadas no coinciden.",
2720
+ "identities.messages.4010010": "La direcci\xF3n que ingresaste no coincide con ninguna direcci\xF3n conocida en la cuenta actual.",
2721
+ "login.cancel-button": "Cancelar",
2722
+ "login.cancel-label": "\xBFNo es la cuenta correcta?",
2723
+ "login.subtitle": "Iniciar sesi\xF3n con {parts}",
2724
+ "login.subtitle-refresh": "Confirma tu identidad con {parts}",
2725
+ "recovery.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para recibir un c\xF3digo de acceso \xFAnico",
2726
+ "registration.subtitle": "Registrarse con {parts}",
2727
+ "settings.subtitle": "Actualiza la configuraci\xF3n de tu cuenta",
2728
+ "settings.title-lookup-secret": "Administrar c\xF3digos de recuperaci\xF3n de respaldo 2FA",
2729
+ "settings.title-navigation": "Configuraci\xF3n de la cuenta",
2730
+ "settings.title-oidc": "Inicio de sesi\xF3n social",
2731
+ "settings.title-password": "Cambiar contrase\xF1a",
2732
+ "settings.title-profile": "Configuraci\xF3n del perfil",
2733
+ "settings.title-totp": "Administrar la aplicaci\xF3n de autenticaci\xF3n 2FA TOTP",
2734
+ "settings.title-webauthn": "Administrar tokens de hardware",
2735
+ "settings.title-passkey": "Administrar claves de acceso",
2736
+ "verification.subtitle": "Ingresa la direcci\xF3n de correo electr\xF3nico asociada con tu cuenta para verificarla",
2737
+ "input.placeholder": "Ingresa tu {placeholder}",
2738
+ "card.header.parts.oidc": "un proveedor social",
2739
+ "card.header.parts.password.registration": "tu {identifierLabel} y una contrase\xF1a",
2740
+ "card.header.parts.password.login": "tu {identifierLabel} y contrase\xF1a",
2741
+ "card.header.parts.code": "un c\xF3digo enviado a tu correo electr\xF3nico",
2742
+ "card.header.parts.passkey": "una clave de acceso",
2743
+ "card.header.parts.webauthn": "una clave de seguridad",
2744
+ "card.header.parts.identifier-first": "tu {identifierLabel}",
2745
+ "card.header.description.login": "Iniciar sesi\xF3n con {identifierLabel}",
2746
+ "card.header.description.registration": "Registrarse con {identifierLabel}",
2747
+ "misc.or": "o",
2748
+ "forms.label.forgot-password": "\xBFOlvidaste tu contrase\xF1a?",
2749
+ "settings.oidc.info": "Las cuentas conectadas de estos proveedores se pueden utilizar para iniciar sesi\xF3n en tu cuenta",
2750
+ "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",
2751
+ "settings.passkey.info": "Administra la configuraci\xF3n de tus claves de acceso",
2752
+ "card.footer.select-another-method": "Seleccionar otro m\xE9todo",
2753
+ "account-linking.title": "Vincular cuenta",
2754
+ "property.password": "contrase\xF1a",
2755
+ "property.email": "correo electr\xF3nico",
2756
+ "property.phone": "tel\xE9fono",
2757
+ "property.username": "nombre de usuario",
2758
+ "property.identifier": "identificador",
2759
+ "property.code": "c\xF3digo",
2760
+ "error.title.what-happened": "\xBFQu\xE9 pas\xF3?",
2761
+ "error.title.what-can-i-do": "\xBFQu\xE9 puedo hacer?",
2762
+ "error.instructions": "Por favor, int\xE9ntalo de nuevo en unos minutos o contacta al operador del sitio web.",
2763
+ "error.footer.text": "Al informar este error, incluye la siguiente informaci\xF3n:",
2764
+ "error.footer.copy": "Copiar",
2765
+ "error.action.go-back": "Regresar",
2766
+ "identities.messages.1010020": "",
2767
+ "identities.messages.1050020": 'Eliminar passkey "{display_name}"'
2438
2768
  };
2439
2769
 
2440
2770
  // src/locales/fr.json
@@ -2460,9 +2790,9 @@ var fr_default = {
2460
2790
  "identities.messages.1010005": "V\xE9rifier",
2461
2791
  "identities.messages.1010006": "Code d'authentification",
2462
2792
  "identities.messages.1010007": "Code de r\xE9cup\xE9ration de secours",
2463
- "identities.messages.1010008": "Utiliser une cl\xE9 de s\xE9curit\xE9",
2464
- "identities.messages.1010009": "Utiliser un authentificateur",
2465
- "identities.messages.1010010": "Utiliser un code de r\xE9cup\xE9ration de secours",
2793
+ "identities.messages.1010008": "Continuer avec la cl\xE9 mat\xE9rielle",
2794
+ "identities.messages.1010009": "Continuer",
2795
+ "identities.messages.1010010": "Continuer",
2466
2796
  "identities.messages.1010011": "Continuer avec la cl\xE9 de s\xE9curit\xE9",
2467
2797
  "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.",
2468
2798
  "identities.messages.1010013": "Continuer",
@@ -2579,7 +2909,15 @@ var fr_default = {
2579
2909
  "login.subtitle-oauth2": "Pour vous authentifier sur {clientName}",
2580
2910
  "login.title": "Se connecter",
2581
2911
  "login.title-aal2": "Authentification \xE0 deux facteurs",
2912
+ "login.subtitle-aal2": "Choisissez une m\xE9thode pour compl\xE9ter votre authentification \xE0 deux facteurs",
2913
+ "login.code.subtitle": "Un code de v\xE9rification sera envoy\xE9 par e-mail",
2914
+ "login.webauthn.subtitle": "Veuillez pr\xE9parer votre dispositif WebAuthN",
2915
+ "login.totp.subtitle": "Veuillez saisir le code g\xE9n\xE9r\xE9 par votre application d'authentification",
2916
+ "login.lookup_secret.subtitle": "Veuillez saisir l'un de vos codes de r\xE9cup\xE9ration de secours \xE0 8 chiffres",
2582
2917
  "login.title-refresh": "Confirmez que c'est bien vous",
2918
+ "login.2fa.go-back": "Quelque chose ne fonctionne pas ?",
2919
+ "login.2fa.go-back.link": "Retour",
2920
+ "login.2fa.method.go-back": "Choisir une autre m\xE9thode",
2583
2921
  "logout.accept-button": "Oui",
2584
2922
  "logout.reject-button": "Non",
2585
2923
  "logout.title": "Souhaitez-vous vous d\xE9connecter ?",
@@ -2611,83 +2949,107 @@ var fr_default = {
2611
2949
  "two-step.passkey.title": "Cl\xE9 de passe (recommand\xE9e)",
2612
2950
  "two-step.password.description": "Entrez votre mot de passe associ\xE9 \xE0 votre compte",
2613
2951
  "two-step.password.title": "Mot de passe",
2614
- "two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
2615
2952
  "two-step.webauthn.title": "Cl\xE9 de S\xE9curit\xE9",
2616
- "identities.messages.1010023": "",
2617
- "identities.messages.1070015": "",
2618
- "identities.messages.4000038": "",
2619
- "login.cancel-button": "",
2620
- "login.cancel-label": "",
2621
- "identities.messages.1010016": "",
2622
- "identities.messages.1010017": "",
2623
- "identities.messages.1010018": "",
2624
- "identities.messages.1010019": "",
2625
- "identities.messages.1010020": "",
2626
- "identities.messages.1010021": "",
2627
- "identities.messages.1010022": "",
2628
- "identities.messages.1040007": "",
2629
- "identities.messages.1040008": "",
2630
- "identities.messages.1040009": "",
2631
- "identities.messages.1050019": "",
2632
- "identities.messages.1050020": "",
2633
- "identities.messages.1070014": "",
2634
- "identities.messages.4000037": "",
2635
- "identities.messages.4010009": "",
2636
- "identities.messages.4010010": "",
2637
- "input.placeholder": "",
2638
- "card.header.description.login": "",
2639
- "card.header.description.registration": "",
2640
- "card.header.parts.code": "",
2641
- "card.header.parts.identifier-first": "",
2642
- "card.header.parts.oidc": "",
2643
- "card.header.parts.passkey": "",
2644
- "card.header.parts.password.login": "",
2645
- "card.header.parts.password.registration": "",
2646
- "card.header.parts.webauthn": "",
2647
- "forms.label.forgot-password": "",
2648
- "login.subtitle": "",
2649
- "login.subtitle-refresh": "",
2650
- "misc.or": "",
2651
- "recovery.subtitle": "",
2652
- "registration.subtitle": "",
2653
- "settings.subtitle": "",
2654
- "verification.subtitle": "",
2953
+ "two-step.webauthn.description": "Utilisez votre cl\xE9 de s\xE9curit\xE9 pour vous authentifier",
2954
+ "two-step.totp.title": "Utilisez votre application d'authentification (TOTP)",
2955
+ "two-step.totp.description": "Utilisez un code \xE0 usage unique \xE0 6 chiffres provenant de votre application d'authentification",
2956
+ "two-step.lookup_secret.title": "Code de r\xE9cup\xE9ration de secours",
2957
+ "two-step.lookup_secret.description": "Utilisez l'un de vos codes de secours \xE0 8 chiffres pour vous authentifier",
2655
2958
  "settings.totp.info.linked": "Vous avez actuellement une application d'authentification connect\xE9e.",
2656
2959
  "settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.",
2657
2960
  "settings.totp.title": "Application d'authentification",
2658
2961
  "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.",
2659
- "settings.lookup_secret.description": "",
2660
- "settings.lookup_secret.title": "",
2661
- "settings.navigation.title": "",
2662
- "settings.oidc.description": "",
2663
- "settings.oidc.info": "",
2664
- "settings.oidc.title": "",
2665
- "settings.passkey.description": "",
2666
- "settings.passkey.info": "",
2667
- "settings.passkey.title": "",
2668
- "settings.password.description": "",
2669
- "settings.password.title": "",
2670
- "settings.profile.description": "",
2671
- "settings.profile.title": "",
2672
- "settings.title-lookup-secret": "",
2673
- "settings.title-navigation": "",
2674
- "settings.title-oidc": "",
2675
- "settings.title-passkey": "",
2676
- "settings.title-password": "",
2677
- "settings.title-profile": "",
2678
- "settings.title-totp": "",
2679
- "settings.title-webauthn": "",
2680
- "settings.webauthn.description": "",
2681
- "settings.webauthn.info": "",
2682
- "settings.webauthn.title": "",
2683
- "card.footer.select-another-method": "",
2684
- "account-linking.title": "",
2685
- "property.code": "",
2686
- "property.email": "",
2687
- "property.identifier": "",
2688
- "property.password": "",
2689
- "property.phone": "",
2690
- "property.username": ""
2962
+ "consent.title": "Autoriser {party}",
2963
+ "consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
2964
+ "consent.scope.openid.title": "Identit\xE9",
2965
+ "consent.scope.openid.description": "Permet \xE0 l'application de v\xE9rifier votre identit\xE9. Cela est n\xE9cessaire pour l'authentification et une exp\xE9rience de connexion fiable.",
2966
+ "consent.scope.offline_access.title": "Acc\xE8s hors ligne",
2967
+ "consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
2968
+ "consent.scope.profile.title": "Informations de profil",
2969
+ "consent.scope.profile.description": "Permet l'acc\xE8s aux d\xE9tails de base de votre profil, y compris votre nom d'utilisateur, pr\xE9nom et nom.",
2970
+ "consent.scope.email.title": "Adresse e-mail",
2971
+ "consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
2972
+ "consent.scope.address.title": "Adresse physique",
2973
+ "consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
2974
+ "consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
2975
+ "consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
2976
+ "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.",
2977
+ "identities.messages.1010017": "Se connecter et lier",
2978
+ "identities.messages.1010018": "Confirmer avec {provider}",
2979
+ "identities.messages.1010019": "Demander un code pour continuer",
2980
+ "identities.messages.1010021": "Se connecter avec une cl\xE9 d'acc\xE8s",
2981
+ "identities.messages.1010022": "Se connecter avec un mot de passe",
2982
+ "identities.messages.1010023": "Envoyer le code \xE0 {address}",
2983
+ "identities.messages.1040007": "S'inscrire avec une cl\xE9 d'acc\xE8s",
2984
+ "identities.messages.1040008": "Retour",
2985
+ "identities.messages.1040009": "Veuillez choisir une identification pour vous authentifier.",
2986
+ "identities.messages.1050019": "Ajouter une cl\xE9 d'acc\xE8s",
2987
+ "identities.messages.1050020": "Supprimer la cl\xE9 d'acc\xE8s \xAB {display_name} \xBB",
2988
+ "identities.messages.1070014": "Se connecter et lier l'identification",
2989
+ "identities.messages.1070015": "Veuillez compl\xE9ter le d\xE9fi captcha pour continuer.",
2990
+ "identities.messages.4000037": "Ce compte n'existe pas ou n'a aucune m\xE9thode de connexion configur\xE9e.",
2991
+ "identities.messages.4000038": "La v\xE9rification Captcha a \xE9chou\xE9, veuillez r\xE9essayer.",
2992
+ "identities.messages.4010009": "Les identifications li\xE9es ne correspondent pas.",
2993
+ "identities.messages.4010010": "L'adresse que vous avez saisie ne correspond \xE0 aucune adresse connue dans le compte actuel.",
2994
+ "login.cancel-button": "Annuler",
2995
+ "login.cancel-label": "Ce n'est pas le bon compte\xA0?",
2996
+ "login.subtitle": "Se connecter avec {parts}",
2997
+ "login.subtitle-refresh": "Confirmez votre identit\xE9 avec {parts}",
2998
+ "recovery.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour recevoir un code d'acc\xE8s unique",
2999
+ "registration.subtitle": "S'inscrire avec {parts}",
3000
+ "settings.subtitle": "Mettre \xE0 jour les param\xE8tres de votre compte",
3001
+ "settings.title-lookup-secret": "G\xE9rer les codes de r\xE9cup\xE9ration de sauvegarde 2FA",
3002
+ "settings.title-navigation": "Param\xE8tres du compte",
3003
+ "settings.title-oidc": "Connexion via les r\xE9seaux sociaux",
3004
+ "settings.title-password": "Changer le mot de passe",
3005
+ "settings.title-profile": "Param\xE8tres du profil",
3006
+ "settings.title-totp": "G\xE9rer l'application d'authentification 2FA TOTP",
3007
+ "settings.title-webauthn": "G\xE9rer les jetons mat\xE9riels",
3008
+ "settings.title-passkey": "G\xE9rer les cl\xE9s d'acc\xE8s",
3009
+ "settings.navigation.title": "Param\xE8tres du compte",
3010
+ "settings.password.title": "Changer le mot de passe",
3011
+ "settings.password.description": "Modifier votre mot de passe",
3012
+ "settings.profile.title": "Param\xE8tres du profil",
3013
+ "settings.profile.description": "Mettre \xE0 jour les informations de votre profil",
3014
+ "settings.webauthn.title": "G\xE9rer les jetons mat\xE9riels",
3015
+ "settings.webauthn.description": "G\xE9rer les param\xE8tres de votre jeton mat\xE9riel",
3016
+ "verification.subtitle": "Saisissez l'adresse e-mail associ\xE9e \xE0 votre compte pour la v\xE9rifier",
3017
+ "input.placeholder": "Saisissez votre {placeholder}",
3018
+ "card.header.parts.oidc": "un fournisseur de r\xE9seaux sociaux",
3019
+ "card.header.parts.password.registration": "votre {identifierLabel} et un mot de passe",
3020
+ "card.header.parts.password.login": "votre {identifierLabel} et votre mot de passe",
3021
+ "card.header.parts.code": "un code envoy\xE9 \xE0 votre adresse e-mail",
3022
+ "card.header.parts.passkey": "une cl\xE9 d'acc\xE8s",
3023
+ "card.header.parts.webauthn": "une cl\xE9 de s\xE9curit\xE9",
3024
+ "card.header.parts.identifier-first": "votre {identifierLabel}",
3025
+ "card.header.description.login": "Se connecter avec {identifierLabel}",
3026
+ "card.header.description.registration": "S'inscrire avec {identifierLabel}",
3027
+ "misc.or": "ou",
3028
+ "forms.label.forgot-password": "Mot de passe oubli\xE9?",
3029
+ "settings.lookup_secret.title": "Codes de r\xE9cup\xE9ration de sauvegarde (second facteur)",
3030
+ "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.",
3031
+ "settings.oidc.title": "Comptes connect\xE9s",
3032
+ "settings.oidc.description": "Connectez un fournisseur de connexion sociale \xE0 votre compte.",
3033
+ "settings.oidc.info": "Les comptes connect\xE9s de ces fournisseurs peuvent \xEAtre utilis\xE9s pour vous connecter \xE0 votre compte",
3034
+ "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",
3035
+ "settings.passkey.title": "G\xE9rer les cl\xE9s d'acc\xE8s",
3036
+ "settings.passkey.description": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
3037
+ "settings.passkey.info": "G\xE9rer les param\xE8tres de vos cl\xE9s d'acc\xE8s",
3038
+ "card.footer.select-another-method": "S\xE9lectionner une autre m\xE9thode",
3039
+ "account-linking.title": "Lier le compte",
3040
+ "property.password": "mot de passe",
3041
+ "property.email": "e-mail",
3042
+ "property.phone": "t\xE9l\xE9phone",
3043
+ "property.username": "nom d'utilisateur",
3044
+ "property.identifier": "identifiant",
3045
+ "property.code": "code",
3046
+ "error.title.what-happened": "Que s'est-il pass\xE9?",
3047
+ "error.title.what-can-i-do": "Que puis-je faire?",
3048
+ "error.instructions": "Veuillez r\xE9essayer dans quelques minutes ou contacter l'op\xE9rateur du site Web.",
3049
+ "error.footer.text": "Lorsque vous signalez cette erreur, veuillez inclure les informations suivantes:",
3050
+ "error.footer.copy": "Copier",
3051
+ "error.action.go-back": "Retour",
3052
+ "identities.messages.1010020": ""
2691
3053
  };
2692
3054
 
2693
3055
  // src/locales/nl.json
@@ -2713,9 +3075,9 @@ var nl_default = {
2713
3075
  "identities.messages.1010005": "Verifi\xEBren",
2714
3076
  "identities.messages.1010006": "Verificatiecode",
2715
3077
  "identities.messages.1010007": "Back-up herstelcode",
2716
- "identities.messages.1010008": "Beveiligingssleutel gebruiken",
2717
- "identities.messages.1010009": "Authenticator gebruiken",
2718
- "identities.messages.1010010": "Back-up herstelcode gebruiken",
3078
+ "identities.messages.1010008": "Ga verder met hardware-sleutel",
3079
+ "identities.messages.1010009": "Doorgaan",
3080
+ "identities.messages.1010010": "Doorgaan",
2719
3081
  "identities.messages.1010011": "Doorgaan met beveiligingssleutel",
2720
3082
  "identities.messages.1010012": "Bereid uw WebAuthn-apparaat voor (bijv. beveiligingssleutel, biometrische scanner, ...) en druk op doorgaan.",
2721
3083
  "identities.messages.1010013": "Doorgaan",
@@ -2831,8 +3193,16 @@ var nl_default = {
2831
3193
  "login.registration-label": "Heb je nog geen account?",
2832
3194
  "login.subtitle-oauth2": "Om te authenticeren bij {clientName}",
2833
3195
  "login.title": "Inloggen",
2834
- "login.title-aal2": "Twee-Factor Authenticatie",
3196
+ "login.title-aal2": "Tweefactorauthenticatie",
3197
+ "login.subtitle-aal2": "Kies een manier om uw tweefactorauthenticatie te voltooien",
3198
+ "login.code.subtitle": "Er wordt een verificatiecode per e-mail verzonden",
3199
+ "login.webauthn.subtitle": "Bereid uw WebAuthN-apparaat voor",
3200
+ "login.totp.subtitle": "Voer de code in die door uw Authenticator-app is gegenereerd",
3201
+ "login.lookup_secret.subtitle": "Voer een van uw 8-cijferige back-up herstelcodes in",
2835
3202
  "login.title-refresh": "Bevestig dat jij het bent",
3203
+ "login.2fa.go-back": "Werkt er iets niet?",
3204
+ "login.2fa.go-back.link": "Ga terug",
3205
+ "login.2fa.method.go-back": "Kies een andere methode",
2836
3206
  "logout.accept-button": "Ja",
2837
3207
  "logout.reject-button": "Nee",
2838
3208
  "logout.title": "Wil je uitloggen?",
@@ -2864,8 +3234,12 @@ var nl_default = {
2864
3234
  "two-step.passkey.title": "Toegangscode (aanbevolen)",
2865
3235
  "two-step.password.description": "Voer uw wachtwoord in dat is gekoppeld aan uw account",
2866
3236
  "two-step.password.title": "Wachtwoord",
2867
- "two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
2868
3237
  "two-step.webauthn.title": "Beveiligingssleutel",
3238
+ "two-step.webauthn.description": "Gebruik uw beveiligingssleutel om te verifi\xEBren",
3239
+ "two-step.totp.title": "Gebruik uw Authenticator-app (TOTP)",
3240
+ "two-step.totp.description": "Gebruik een 6-cijferige eenmalige code van uw authenticator-app",
3241
+ "two-step.lookup_secret.title": "Herstelcode",
3242
+ "two-step.lookup_secret.description": "Gebruik een van uw 8-cijferige back-upcodes om te authenticeren",
2869
3243
  "identities.messages.1010023": "",
2870
3244
  "identities.messages.1070014": "",
2871
3245
  "identities.messages.1070015": "",
@@ -2940,7 +3314,27 @@ var nl_default = {
2940
3314
  "property.identifier": "",
2941
3315
  "property.password": "",
2942
3316
  "property.phone": "",
2943
- "property.username": ""
3317
+ "property.username": "",
3318
+ "consent.title": "Autoriseren {party}",
3319
+ "consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
3320
+ "consent.scope.openid.title": "Identiteit",
3321
+ "consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
3322
+ "consent.scope.offline_access.title": "Offline toegang",
3323
+ "consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
3324
+ "consent.scope.profile.title": "Profielinformatie",
3325
+ "consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
3326
+ "consent.scope.email.title": "E-mailadres",
3327
+ "consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
3328
+ "consent.scope.address.title": "Fysiek adres",
3329
+ "consent.scope.address.description": "Toegang tot uw postadres.",
3330
+ "consent.scope.phone.title": "Telefoonnummer",
3331
+ "consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
3332
+ "error.action.go-back": "",
3333
+ "error.footer.copy": "",
3334
+ "error.footer.text": "",
3335
+ "error.title.what-can-i-do": "",
3336
+ "error.title.what-happened": "",
3337
+ "error.instructions": ""
2944
3338
  };
2945
3339
 
2946
3340
  // src/locales/pl.json
@@ -2966,9 +3360,9 @@ var pl_default = {
2966
3360
  "identities.messages.1010005": "Zweryifkuj",
2967
3361
  "identities.messages.1010006": "Kod autentykacyjny",
2968
3362
  "identities.messages.1010007": "Zapasowe kody odzyskiwania",
2969
- "identities.messages.1010008": "U\u017Cyj klucza bezpiecze\u0144stwa",
2970
- "identities.messages.1010009": "U\u017Cyj Autentykatora",
2971
- "identities.messages.1010010": "U\u017Cyj zapasowych kod\xF3w odzyskiwania",
3363
+ "identities.messages.1010008": "Kontynuuj z kluczem sprz\u0119towym",
3364
+ "identities.messages.1010009": "Kontynuuj",
3365
+ "identities.messages.1010010": "Kontynuuj",
2972
3366
  "identities.messages.1010011": "Kontynuuj za pomoc\u0105 klucza bezpiecze\u0144stwa",
2973
3367
  "identities.messages.1010012": "Przygotuj swoje urz\u0105dzenie WebAuthn (np. klucz bezpiecze\u0144stwa, czytnik biometryczny, ...) a nast\u0119pnie kliknij kontynuuj.",
2974
3368
  "identities.messages.1010013": "Kontynuuj",
@@ -3084,8 +3478,16 @@ var pl_default = {
3084
3478
  "login.registration-label": "Nie posiadasz konta?",
3085
3479
  "login.subtitle-oauth2": "Do autentykacji {clientName}",
3086
3480
  "login.title": "Zaloguj si\u0119",
3087
- "login.title-aal2": "Autentykacja Dwu-Etapowa",
3481
+ "login.title-aal2": "Uwierzytelnianie dwusk\u0142adnikowe",
3482
+ "login.subtitle-aal2": "Wybierz spos\xF3b, aby zako\u0144czy\u0107 uwierzytelnianie dwusk\u0142adnikowe",
3483
+ "login.code.subtitle": "Kod weryfikacyjny zostanie wys\u0142any e-mailem",
3484
+ "login.webauthn.subtitle": "Prosz\u0119 przygotowa\u0107 urz\u0105dzenie WebAuthN",
3485
+ "login.totp.subtitle": "Prosz\u0119 wprowadzi\u0107 kod wygenerowany przez Twoj\u0105 aplikacj\u0119 uwierzytelniaj\u0105c\u0105",
3486
+ "login.lookup_secret.subtitle": "Prosz\u0119 wprowadzi\u0107 jeden z Twoich 8-cyfrowych kod\xF3w odzyskiwania zapasowego",
3088
3487
  "login.title-refresh": "Potwierd\u017A \u017Ce to Ty",
3488
+ "login.2fa.go-back": "Co\u015B nie dzia\u0142a?",
3489
+ "login.2fa.go-back.link": "Wr\xF3\u0107",
3490
+ "login.2fa.method.go-back": "Wybierz inn\u0105 metod\u0119",
3089
3491
  "logout.accept-button": "Tak",
3090
3492
  "logout.reject-button": "Nie",
3091
3493
  "logout.title": "Czy chcesz si\u0119 wylogowa\u0107?",
@@ -3117,8 +3519,12 @@ var pl_default = {
3117
3519
  "two-step.passkey.title": "Klucz dost\u0119pu (zalecany)",
3118
3520
  "two-step.password.description": "Wprowad\u017A has\u0142o powi\u0105zane z twoim kontem",
3119
3521
  "two-step.password.title": "Has\u0142o",
3120
- "two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
3121
3522
  "two-step.webauthn.title": "Klucz bezpiecze\u0144stwa",
3523
+ "two-step.webauthn.description": "U\u017Cyj swojego klucza bezpiecze\u0144stwa do uwierzytelnienia",
3524
+ "two-step.totp.title": "U\u017Cyj swojej aplikacji uwierzytelniaj\u0105cej (TOTP)",
3525
+ "two-step.totp.description": "U\u017Cyj 6-cyfrowego jednorazowego kodu z Twojej aplikacji uwierzytelniaj\u0105cej",
3526
+ "two-step.lookup_secret.title": "Kod odzyskiwania zapasowego",
3527
+ "two-step.lookup_secret.description": "U\u017Cyj jednego z Twoich 8-cyfrowych kod\xF3w zapasowych, aby si\u0119 uwierzytelni\u0107",
3122
3528
  "identities.messages.1010016": "",
3123
3529
  "identities.messages.1010017": "",
3124
3530
  "identities.messages.1010018": "",
@@ -3193,7 +3599,27 @@ var pl_default = {
3193
3599
  "property.password": "",
3194
3600
  "property.phone": "",
3195
3601
  "property.username": "",
3196
- "property.identifier": ""
3602
+ "property.identifier": "",
3603
+ "consent.title": "Autoryzuj {party}",
3604
+ "consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
3605
+ "consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
3606
+ "consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
3607
+ "consent.scope.offline_access.title": "Dost\u0119p offline",
3608
+ "consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
3609
+ "consent.scope.profile.title": "Informacje profilowe",
3610
+ "consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
3611
+ "consent.scope.email.title": "Adres e-mail",
3612
+ "consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
3613
+ "consent.scope.address.title": "Adres fizyczny",
3614
+ "consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
3615
+ "consent.scope.phone.title": "Numer telefonu",
3616
+ "consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
3617
+ "error.action.go-back": "",
3618
+ "error.footer.copy": "",
3619
+ "error.footer.text": "",
3620
+ "error.title.what-can-i-do": "",
3621
+ "error.title.what-happened": "",
3622
+ "error.instructions": ""
3197
3623
  };
3198
3624
 
3199
3625
  // src/locales/pt.json
@@ -3219,9 +3645,9 @@ var pt_default = {
3219
3645
  "identities.messages.1010005": "Verificar",
3220
3646
  "identities.messages.1010006": "C\xF3digo de Autentica\xE7\xE3o",
3221
3647
  "identities.messages.1010007": "C\xF3digo de Recupera\xE7\xE3o de Backup",
3222
- "identities.messages.1010008": "Usar chave de seguran\xE7a",
3223
- "identities.messages.1010009": "Usar o Autenticador",
3224
- "identities.messages.1010010": "Usar c\xF3digo de recupera\xE7\xE3o de backup",
3648
+ "identities.messages.1010008": "Continuar com chave de hardware",
3649
+ "identities.messages.1010009": "Continuar",
3650
+ "identities.messages.1010010": "Continuar",
3225
3651
  "identities.messages.1010011": "Continuar com a chave de seguran\xE7a",
3226
3652
  "identities.messages.1010012": "Prepare o seu dispositivo WebAuthn (por exemplo, chave de seguran\xE7a, scanner biom\xE9trico, ...) e pressione continuar.",
3227
3653
  "identities.messages.1010013": "Continuar",
@@ -3337,8 +3763,16 @@ var pt_default = {
3337
3763
  "login.registration-label": "N\xE3o tem uma conta?",
3338
3764
  "login.subtitle-oauth2": "Para autenticar {clientName}",
3339
3765
  "login.title": "Entrar",
3340
- "login.title-aal2": "Autentica\xE7\xE3o de Dois Fatores",
3766
+ "login.title-aal2": "Autentica\xE7\xE3o de dois fatores",
3767
+ "login.subtitle-aal2": "Escolha uma forma de completar sua autentica\xE7\xE3o de segundo fator",
3768
+ "login.code.subtitle": "Um c\xF3digo de verifica\xE7\xE3o ser\xE1 enviado por e-mail",
3769
+ "login.webauthn.subtitle": "Por favor, prepare seu dispositivo WebAuthN",
3770
+ "login.totp.subtitle": "Digite o c\xF3digo gerado pelo seu aplicativo autenticador",
3771
+ "login.lookup_secret.subtitle": "Digite um dos seus c\xF3digos de recupera\xE7\xE3o de 8 d\xEDgitos",
3341
3772
  "login.title-refresh": "Confirme que \xE9 voc\xEA",
3773
+ "login.2fa.go-back": "Algo n\xE3o est\xE1 funcionando?",
3774
+ "login.2fa.go-back.link": "Voltar",
3775
+ "login.2fa.method.go-back": "Escolher outro m\xE9todo",
3342
3776
  "logout.accept-button": "Sim",
3343
3777
  "logout.reject-button": "N\xE3o",
3344
3778
  "logout.title": "Deseja sair?",
@@ -3370,8 +3804,12 @@ var pt_default = {
3370
3804
  "two-step.passkey.title": "Chave de acesso (recomendado)",
3371
3805
  "two-step.password.description": "Insira a sua senha associada \xE0 sua conta",
3372
3806
  "two-step.password.title": "Senha",
3373
- "two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
3374
3807
  "two-step.webauthn.title": "Chave de Seguran\xE7a",
3808
+ "two-step.webauthn.description": "Use sua chave de seguran\xE7a para autenticar",
3809
+ "two-step.totp.title": "Use seu aplicativo autenticador (TOTP)",
3810
+ "two-step.totp.description": "Use um c\xF3digo \xFAnico de 6 d\xEDgitos do seu aplicativo autenticador",
3811
+ "two-step.lookup_secret.title": "C\xF3digo de recupera\xE7\xE3o de backup",
3812
+ "two-step.lookup_secret.description": "Use um dos seus c\xF3digos de backup de 8 d\xEDgitos para autenticar",
3375
3813
  "identities.messages.1010016": "",
3376
3814
  "identities.messages.1010017": "",
3377
3815
  "identities.messages.1010018": "",
@@ -3446,7 +3884,27 @@ var pt_default = {
3446
3884
  "property.identifier": "",
3447
3885
  "property.password": "",
3448
3886
  "property.phone": "",
3449
- "property.username": ""
3887
+ "property.username": "",
3888
+ "consent.title": "Autorizar {party}",
3889
+ "consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
3890
+ "consent.scope.openid.title": "Identidade",
3891
+ "consent.scope.openid.description": "Permite que a aplica\xE7\xE3o verifique sua identidade. Isso \xE9 necess\xE1rio para a autentica\xE7\xE3o e uma experi\xEAncia de login confi\xE1vel.",
3892
+ "consent.scope.offline_access.title": "Acesso Offline",
3893
+ "consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
3894
+ "consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
3895
+ "consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
3896
+ "consent.scope.email.title": "Endere\xE7o de E-mail",
3897
+ "consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
3898
+ "consent.scope.address.title": "Endere\xE7o F\xEDsico",
3899
+ "consent.scope.address.description": "Acesse seu endere\xE7o postal.",
3900
+ "consent.scope.phone.title": "N\xFAmero de Telefone",
3901
+ "consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
3902
+ "error.action.go-back": "",
3903
+ "error.footer.copy": "",
3904
+ "error.footer.text": "",
3905
+ "error.title.what-can-i-do": "",
3906
+ "error.title.what-happened": "",
3907
+ "error.instructions": ""
3450
3908
  };
3451
3909
 
3452
3910
  // src/locales/sv.json
@@ -3472,9 +3930,9 @@ var sv_default = {
3472
3930
  "identities.messages.1010005": "Verifiera",
3473
3931
  "identities.messages.1010006": "Autentiseringskod",
3474
3932
  "identities.messages.1010007": "\xC5terst\xE4llningskod f\xF6r backup",
3475
- "identities.messages.1010008": "Anv\xE4nd s\xE4kerhetsnyckel",
3476
- "identities.messages.1010009": "Anv\xE4nd autentiserings-app",
3477
- "identities.messages.1010010": "Anv\xE4nd reserv\xE5terst\xE4llningskod",
3933
+ "identities.messages.1010008": "Forts\xE4tt med s\xE4kerhetsnyckel",
3934
+ "identities.messages.1010009": "Forts\xE4tt",
3935
+ "identities.messages.1010010": "Forts\xE4tt",
3478
3936
  "identities.messages.1010011": "Forts\xE4tt med s\xE4kerhetsnyckel",
3479
3937
  "identities.messages.1010012": "F\xF6rbered din WebAuthn-enhet (t.ex. s\xE4kerhetsnyckel, biometriska skanner, ...) och tryck p\xE5 forts\xE4tt.",
3480
3938
  "identities.messages.1010013": "Forts\xE4tt",
@@ -3609,7 +4067,15 @@ var sv_default = {
3609
4067
  "login.subtitle-oauth2": "Att autentisera {clientName}",
3610
4068
  "login.title": "Logga in",
3611
4069
  "login.title-aal2": "Tv\xE5faktorsautentisering",
4070
+ "login.subtitle-aal2": "V\xE4lj ett s\xE4tt att slutf\xF6ra din tv\xE5faktorsautentisering",
4071
+ "login.code.subtitle": "En verifieringskod kommer att skickas via e-post",
4072
+ "login.webauthn.subtitle": "F\xF6rbered din WebAuthN-enhet",
4073
+ "login.totp.subtitle": "Ange koden som genererats av din autentiseringsapp",
4074
+ "login.lookup_secret.subtitle": "Ange en av dina 8-siffriga \xE5terst\xE4llningskoder",
3612
4075
  "login.title-refresh": "Bekr\xE4fta att det \xE4r du",
4076
+ "login.2fa.go-back": "N\xE5got fungerar inte?",
4077
+ "login.2fa.go-back.link": "G\xE5 tillbaka",
4078
+ "login.2fa.method.go-back": "V\xE4lj en annan metod",
3613
4079
  "logout.accept-button": "Ja",
3614
4080
  "logout.reject-button": "Nej",
3615
4081
  "logout.title": "Vill du logga ut?",
@@ -3641,8 +4107,12 @@ var sv_default = {
3641
4107
  "two-step.passkey.title": "Passerkod (rekommenderad)",
3642
4108
  "two-step.password.description": "Ange ditt l\xF6senord kopplat till ditt konto",
3643
4109
  "two-step.password.title": "L\xF6senord",
3644
- "two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
3645
4110
  "two-step.webauthn.title": "S\xE4kerhetsnyckel",
4111
+ "two-step.webauthn.description": "Anv\xE4nd din s\xE4kerhetsnyckel f\xF6r att autentisera",
4112
+ "two-step.totp.title": "Anv\xE4nd din autentiseringsapp (TOTP)",
4113
+ "two-step.totp.description": "Anv\xE4nd en 6-siffrig eng\xE5ngskod fr\xE5n din autentiseringsapp",
4114
+ "two-step.lookup_secret.title": "Reserv\xE5terst\xE4llningskod",
4115
+ "two-step.lookup_secret.description": "Anv\xE4nd en av dina 8-siffriga reservkoder f\xF6r att autentisera",
3646
4116
  "identities.messages.4000037": "Detta konto finns inte eller har ingen inloggningsmetod konfigurerad.",
3647
4117
  "identities.messages.4000038": "Captcha-verifiering misslyckades, f\xF6rs\xF6k igen.",
3648
4118
  "identities.messages.1010020": "",
@@ -3699,7 +4169,27 @@ var sv_default = {
3699
4169
  "property.phone": "telefon",
3700
4170
  "property.username": "anv\xE4ndarnamn",
3701
4171
  "property.identifier": "identifier",
3702
- "property.code": "kod"
4172
+ "property.code": "kod",
4173
+ "consent.title": "Auktorisera {party}",
4174
+ "consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
4175
+ "consent.scope.openid.title": "Identitet",
4176
+ "consent.scope.openid.description": "G\xF6r det m\xF6jligt f\xF6r applikationen att verifiera din identitet. Detta kr\xE4vs f\xF6r autentisering och en p\xE5litlig inloggningsupplevelse.",
4177
+ "consent.scope.offline_access.title": "Offline-\xE5tkomst",
4178
+ "consent.scope.offline_access.description": "G\xF6r det m\xF6jligt f\xF6r denna applikation att h\xE5lla dig inloggad \xE4ven n\xE4r du inte aktivt anv\xE4nder den.",
4179
+ "consent.scope.profile.title": "Profilinformation",
4180
+ "consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
4181
+ "consent.scope.email.title": "E-postadress",
4182
+ "consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
4183
+ "consent.scope.address.title": "Fysisk adress",
4184
+ "consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
4185
+ "consent.scope.phone.title": "Telefonnummer",
4186
+ "consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
4187
+ "error.action.go-back": "",
4188
+ "error.footer.copy": "",
4189
+ "error.footer.text": "",
4190
+ "error.title.what-can-i-do": "",
4191
+ "error.title.what-happened": "",
4192
+ "error.instructions": ""
3703
4193
  };
3704
4194
 
3705
4195
  // src/locales/index.ts
@@ -3714,6 +4204,6 @@ var OryLocales = {
3714
4204
  sv: sv_default
3715
4205
  };
3716
4206
 
3717
- export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
4207
+ export { HeadlessPageHeader, OryCard, OryCardContent, OryCardFooter, OryCardHeader, OryCardValidationMessages, OryConsentCard, OryForm, OryFormGroupDivider, OryFormGroups, OryFormOidcButtons, OryFormSection, OryFormSocialButtonsForm, OryLocales, OryProvider, OrySettingsCard, OryTwoStepCard, messageTestId, uiTextToFormattedMessage, useComponents, useNodeSorter, useOryFlow };
3718
4208
  //# sourceMappingURL=index.mjs.map
3719
4209
  //# sourceMappingURL=index.mjs.map