@ory/elements-react 0.0.0-pr.4a28a8f → 0.0.0-pr.7af5f16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/dist/client/frontendClient.d.mts +5 -2
- package/dist/client/frontendClient.d.ts +5 -2
- package/dist/client/frontendClient.js +25 -2
- package/dist/client/frontendClient.js.map +1 -1
- package/dist/client/frontendClient.mjs +25 -2
- package/dist/client/frontendClient.mjs.map +1 -1
- package/dist/client/index.js +3 -3
- package/dist/index.d.mts +30 -5
- package/dist/index.d.ts +30 -5
- package/dist/index.js +304 -69
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +304 -70
- package/dist/index.mjs.map +1 -1
- package/dist/theme/default/index.css +48 -4
- package/dist/theme/default/index.css.map +1 -1
- package/dist/theme/default/index.d.mts +15 -3
- package/dist/theme/default/index.d.ts +15 -3
- package/dist/theme/default/index.js +1078 -533
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +999 -441
- package/dist/theme/default/index.mjs.map +1 -1
- package/package.json +16 -15
- package/tailwind/generated/default-variables.css +1 -1
- package/tsconfig.json +1 -1
package/dist/index.js
CHANGED
|
@@ -189,21 +189,32 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
189
189
|
].includes(group)
|
|
190
190
|
);
|
|
191
191
|
}
|
|
192
|
-
function useNodesGroups(nodes) {
|
|
192
|
+
function useNodesGroups(nodes, { omit } = {}) {
|
|
193
193
|
const groupSorter = useGroupSorter();
|
|
194
194
|
const groups = react.useMemo(() => {
|
|
195
|
-
var _a;
|
|
195
|
+
var _a, _b;
|
|
196
196
|
const groups2 = {};
|
|
197
|
+
const groupRetained = {};
|
|
197
198
|
for (const node of nodes) {
|
|
198
|
-
if (node.type === "script") {
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
199
|
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
202
200
|
groupNodes.push(node);
|
|
203
201
|
groups2[node.group] = groupNodes;
|
|
202
|
+
if ((omit == null ? void 0 : omit.includes("script")) && clientFetch.isUiNodeScriptAttributes(node.attributes)) {
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if ((omit == null ? void 0 : omit.includes("input_hidden")) && clientFetch.isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
groupRetained[node.group] = ((_b = groupRetained[node.group]) != null ? _b : 0) + 1;
|
|
209
|
+
}
|
|
210
|
+
const finalGroups = {};
|
|
211
|
+
for (const [group, count] of Object.entries(groupRetained)) {
|
|
212
|
+
if (count > 0) {
|
|
213
|
+
finalGroups[group] = groups2[group];
|
|
214
|
+
}
|
|
204
215
|
}
|
|
205
|
-
return
|
|
206
|
-
}, [nodes]);
|
|
216
|
+
return finalGroups;
|
|
217
|
+
}, [nodes, omit]);
|
|
207
218
|
const entries = react.useMemo(
|
|
208
219
|
() => Object.entries(groups).sort(([a], [b]) => groupSorter(a, b)),
|
|
209
220
|
[groups, groupSorter]
|
|
@@ -263,6 +274,8 @@ function parseStateFromFlow(flow) {
|
|
|
263
274
|
break;
|
|
264
275
|
case clientFetch.FlowType.Settings:
|
|
265
276
|
return { current: "settings" };
|
|
277
|
+
case clientFetch.FlowType.OAuth2Consent:
|
|
278
|
+
return { current: "method_active", method: "oauth2_consent" };
|
|
266
279
|
}
|
|
267
280
|
console.warn(
|
|
268
281
|
`[Ory/Elements React] Encountered an unknown form state on ${flow.flowType} flow with ID ${flow.flow.id}`
|
|
@@ -376,6 +389,22 @@ function computeDefaultValues(nodes) {
|
|
|
376
389
|
if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
|
|
377
390
|
return acc;
|
|
378
391
|
}
|
|
392
|
+
if (attrs.name.startsWith("grant_scope")) {
|
|
393
|
+
const scope = attrs.value;
|
|
394
|
+
if (Array.isArray(acc.grant_scope)) {
|
|
395
|
+
return {
|
|
396
|
+
...acc,
|
|
397
|
+
// We want to have all scopes accepted by default, so that the user has to actively uncheck them.
|
|
398
|
+
grant_scope: [...acc.grant_scope, scope]
|
|
399
|
+
};
|
|
400
|
+
} else if (!acc.grant_scope) {
|
|
401
|
+
return {
|
|
402
|
+
...acc,
|
|
403
|
+
grant_scope: [scope]
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
return acc;
|
|
407
|
+
}
|
|
379
408
|
return unrollTrait(
|
|
380
409
|
{
|
|
381
410
|
name: attrs.name,
|
|
@@ -825,6 +854,19 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
825
854
|
});
|
|
826
855
|
break;
|
|
827
856
|
}
|
|
857
|
+
case clientFetch.FlowType.OAuth2Consent: {
|
|
858
|
+
const response = await fetch(flowContainer.flow.ui.action, {
|
|
859
|
+
method: "POST",
|
|
860
|
+
body: JSON.stringify(data),
|
|
861
|
+
headers: {
|
|
862
|
+
"Content-Type": "application/json"
|
|
863
|
+
}
|
|
864
|
+
});
|
|
865
|
+
const oauth2Success = await response.json();
|
|
866
|
+
if (oauth2Success.redirect_to && typeof oauth2Success.redirect_to === "string") {
|
|
867
|
+
onRedirect(oauth2Success.redirect_to);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
828
870
|
}
|
|
829
871
|
if ("password" in data) {
|
|
830
872
|
methods.setValue("password", "");
|
|
@@ -839,7 +881,11 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
839
881
|
};
|
|
840
882
|
return onSubmit;
|
|
841
883
|
}
|
|
842
|
-
function OryForm({
|
|
884
|
+
function OryForm({
|
|
885
|
+
children,
|
|
886
|
+
onAfterSubmit,
|
|
887
|
+
"data-testid": dataTestId
|
|
888
|
+
}) {
|
|
843
889
|
const { Form } = useComponents();
|
|
844
890
|
const flowContainer = useOryFlow();
|
|
845
891
|
const methods = reactHookForm.useFormContext();
|
|
@@ -867,7 +913,7 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
867
913
|
}),
|
|
868
914
|
type: "error"
|
|
869
915
|
};
|
|
870
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
916
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-8", "data-testid": dataTestId, children: [
|
|
871
917
|
/* @__PURE__ */ jsxRuntime.jsx(Message.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(Message.Content, { message: m }, m.id) }),
|
|
872
918
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
873
919
|
] });
|
|
@@ -878,6 +924,7 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
878
924
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
879
925
|
Form.Root,
|
|
880
926
|
{
|
|
927
|
+
"data-testid": dataTestId,
|
|
881
928
|
action: flowContainer.flow.ui.action,
|
|
882
929
|
method: flowContainer.flow.ui.method,
|
|
883
930
|
onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
|
|
@@ -912,7 +959,7 @@ var NodeInput = ({
|
|
|
912
959
|
}) => {
|
|
913
960
|
var _a;
|
|
914
961
|
const { Node: Node2 } = useComponents();
|
|
915
|
-
const { setValue } = reactHookForm.useFormContext();
|
|
962
|
+
const { setValue, watch } = reactHookForm.useFormContext();
|
|
916
963
|
const {
|
|
917
964
|
onloadTrigger,
|
|
918
965
|
onclickTrigger,
|
|
@@ -925,7 +972,10 @@ var NodeInput = ({
|
|
|
925
972
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
926
973
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
927
974
|
const setFormValue = () => {
|
|
928
|
-
if (
|
|
975
|
+
if (isResendNode || isScreenSelectionNode || node.group === clientFetch.UiNodeGroupEnum.Oauth2Consent) {
|
|
976
|
+
return;
|
|
977
|
+
}
|
|
978
|
+
if (attrs.value !== void 0) {
|
|
929
979
|
setValue(attrs.name, attrs.value);
|
|
930
980
|
}
|
|
931
981
|
};
|
|
@@ -950,6 +1000,19 @@ var NodeInput = ({
|
|
|
950
1000
|
};
|
|
951
1001
|
const isSocial = (attrs.name === "provider" || attrs.name === "link") && (node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml);
|
|
952
1002
|
const isPinCodeInput = attrs.name === "code" && node.group === "code" || attrs.name === "totp_code" && node.group === "totp";
|
|
1003
|
+
const handleScopeChange = (checked) => {
|
|
1004
|
+
const scopes = watch("grant_scope");
|
|
1005
|
+
if (Array.isArray(scopes)) {
|
|
1006
|
+
if (checked) {
|
|
1007
|
+
setValue("grant_scope", Array.from(/* @__PURE__ */ new Set([...scopes, attrs.value])));
|
|
1008
|
+
} else {
|
|
1009
|
+
setValue(
|
|
1010
|
+
"grant_scope",
|
|
1011
|
+
scopes.filter((scope) => scope !== attrs.value)
|
|
1012
|
+
);
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
};
|
|
953
1016
|
switch (attributes.type) {
|
|
954
1017
|
case clientFetch.UiNodeInputAttributesTypeEnum.Submit:
|
|
955
1018
|
case clientFetch.UiNodeInputAttributesTypeEnum.Button:
|
|
@@ -959,6 +1022,9 @@ var NodeInput = ({
|
|
|
959
1022
|
if (isResendNode || isScreenSelectionNode) {
|
|
960
1023
|
return null;
|
|
961
1024
|
}
|
|
1025
|
+
if (node.group === "oauth2_consent") {
|
|
1026
|
+
return null;
|
|
1027
|
+
}
|
|
962
1028
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
963
1029
|
Node2.Label,
|
|
964
1030
|
{
|
|
@@ -970,6 +1036,21 @@ var NodeInput = ({
|
|
|
970
1036
|
case clientFetch.UiNodeInputAttributesTypeEnum.DatetimeLocal:
|
|
971
1037
|
throw new Error("Not implemented");
|
|
972
1038
|
case clientFetch.UiNodeInputAttributesTypeEnum.Checkbox:
|
|
1039
|
+
if (node.group === "oauth2_consent" && node.attributes.node_type === "input") {
|
|
1040
|
+
switch (node.attributes.name) {
|
|
1041
|
+
case "grant_scope":
|
|
1042
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1043
|
+
Node2.ConsentScopeCheckbox,
|
|
1044
|
+
{
|
|
1045
|
+
attributes: attrs,
|
|
1046
|
+
node,
|
|
1047
|
+
onCheckedChange: handleScopeChange
|
|
1048
|
+
}
|
|
1049
|
+
);
|
|
1050
|
+
default:
|
|
1051
|
+
return null;
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
973
1054
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
974
1055
|
Node2.Label,
|
|
975
1056
|
{
|
|
@@ -1058,11 +1139,13 @@ function OryFormSocialButtonsForm() {
|
|
|
1058
1139
|
const {
|
|
1059
1140
|
flow: { ui }
|
|
1060
1141
|
} = useOryFlow();
|
|
1061
|
-
const filteredNodes = ui.nodes.filter(
|
|
1142
|
+
const filteredNodes = ui.nodes.filter(
|
|
1143
|
+
(node) => node.group === clientFetch.UiNodeGroupEnum.Saml || node.group === clientFetch.UiNodeGroupEnum.Oidc
|
|
1144
|
+
);
|
|
1062
1145
|
if (filteredNodes.length === 0) {
|
|
1063
1146
|
return null;
|
|
1064
1147
|
}
|
|
1065
|
-
return /* @__PURE__ */ jsxRuntime.jsx(OryFormProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(OryForm, { children: /* @__PURE__ */ jsxRuntime.jsx(OryFormOidcButtons, {}) }) });
|
|
1148
|
+
return /* @__PURE__ */ jsxRuntime.jsx(OryFormProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsxRuntime.jsx(OryFormOidcButtons, {}) }) });
|
|
1066
1149
|
}
|
|
1067
1150
|
function isUINodeGroupEnum(method) {
|
|
1068
1151
|
return Object.values(clientFetch.UiNodeGroupEnum).includes(method);
|
|
@@ -1074,11 +1157,14 @@ function OryTwoStepCard() {
|
|
|
1074
1157
|
const { ui } = flow;
|
|
1075
1158
|
const nodeSorter = useNodeSorter();
|
|
1076
1159
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1077
|
-
const
|
|
1078
|
-
|
|
1160
|
+
const groupsToShow = useNodesGroups(ui.nodes, {
|
|
1161
|
+
// We only want to render groups that have visible elements.
|
|
1162
|
+
omit: ["script", "input_hidden"]
|
|
1163
|
+
});
|
|
1164
|
+
const authMethodBlocks = Object.fromEntries(
|
|
1079
1165
|
Object.values(clientFetch.UiNodeGroupEnum).filter((group) => {
|
|
1080
1166
|
var _a2;
|
|
1081
|
-
return (_a2 =
|
|
1167
|
+
return (_a2 = groupsToShow.groups[group]) == null ? void 0 : _a2.length;
|
|
1082
1168
|
}).filter(
|
|
1083
1169
|
(group) => ![
|
|
1084
1170
|
clientFetch.UiNodeGroupEnum.Oidc,
|
|
@@ -1090,7 +1176,17 @@ function OryTwoStepCard() {
|
|
|
1090
1176
|
].includes(group)
|
|
1091
1177
|
).map((g) => [g, {}])
|
|
1092
1178
|
);
|
|
1093
|
-
|
|
1179
|
+
const authMethodAdditionalNodes = ui.nodes.filter(
|
|
1180
|
+
({ group }) => [
|
|
1181
|
+
clientFetch.UiNodeGroupEnum.Oidc,
|
|
1182
|
+
clientFetch.UiNodeGroupEnum.Saml,
|
|
1183
|
+
clientFetch.UiNodeGroupEnum.Default,
|
|
1184
|
+
clientFetch.UiNodeGroupEnum.IdentifierFirst,
|
|
1185
|
+
clientFetch.UiNodeGroupEnum.Profile,
|
|
1186
|
+
clientFetch.UiNodeGroupEnum.Captcha
|
|
1187
|
+
].includes(group)
|
|
1188
|
+
);
|
|
1189
|
+
if (clientFetch.UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1094
1190
|
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1095
1191
|
group: "identifier_first",
|
|
1096
1192
|
node_type: "input",
|
|
@@ -1102,7 +1198,7 @@ function OryTwoStepCard() {
|
|
|
1102
1198
|
name: "address"
|
|
1103
1199
|
})) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
|
|
1104
1200
|
if (identifier) {
|
|
1105
|
-
|
|
1201
|
+
authMethodBlocks[clientFetch.UiNodeGroupEnum.Code] = {
|
|
1106
1202
|
title: {
|
|
1107
1203
|
id: "identities.messages.1010023",
|
|
1108
1204
|
values: { address: identifier }
|
|
@@ -1111,7 +1207,7 @@ function OryTwoStepCard() {
|
|
|
1111
1207
|
}
|
|
1112
1208
|
}
|
|
1113
1209
|
const nonSsoNodes = removeSsoNodes(ui.nodes);
|
|
1114
|
-
const finalNodes = formState.current === "method_active" ? getFinalNodes(
|
|
1210
|
+
const finalNodes = formState.current === "method_active" ? getFinalNodes(groupsToShow.groups, formState.method) : [];
|
|
1115
1211
|
const handleAfterFormSubmit = (method) => {
|
|
1116
1212
|
if (typeof method !== "string" || !isUINodeGroupEnum(method)) {
|
|
1117
1213
|
return;
|
|
@@ -1140,39 +1236,49 @@ function OryTwoStepCard() {
|
|
|
1140
1236
|
/* @__PURE__ */ jsxRuntime.jsxs(OryCardContent, { children: [
|
|
1141
1237
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
|
|
1142
1238
|
showSso && /* @__PURE__ */ jsxRuntime.jsx(OryFormSocialButtonsForm, {}),
|
|
1143
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1239
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1240
|
+
OryForm,
|
|
1241
|
+
{
|
|
1242
|
+
"data-testid": `ory/form/methods/local`,
|
|
1243
|
+
onAfterSubmit: handleAfterFormSubmit,
|
|
1244
|
+
children: [
|
|
1245
|
+
formState.current === "provide_identifier" && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1246
|
+
showSsoDivider && /* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1247
|
+
nonSsoNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1248
|
+
] }),
|
|
1249
|
+
formState.current === "select_method" && Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1250
|
+
Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1251
|
+
Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1252
|
+
AuthMethodList,
|
|
1253
|
+
{
|
|
1254
|
+
options: authMethodBlocks,
|
|
1255
|
+
setSelectedGroup: (group) => dispatchFormState({
|
|
1256
|
+
type: "action_select_method",
|
|
1257
|
+
method: group
|
|
1258
|
+
})
|
|
1259
|
+
}
|
|
1260
|
+
),
|
|
1261
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1262
|
+
] }),
|
|
1263
|
+
formState.current === "method_active" && finalNodes.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1264
|
+
ui.nodes.filter(
|
|
1265
|
+
(n) => clientFetch.isUiNodeScriptAttributes(n.attributes) || n.group === clientFetch.UiNodeGroupEnum.Captcha || n.group === clientFetch.UiNodeGroupEnum.Default || n.group === clientFetch.UiNodeGroupEnum.Profile
|
|
1266
|
+
).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)),
|
|
1267
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1268
|
+
] }),
|
|
1269
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
1270
|
+
]
|
|
1271
|
+
}
|
|
1272
|
+
)
|
|
1170
1273
|
] })
|
|
1171
1274
|
] });
|
|
1172
1275
|
}
|
|
1173
1276
|
function AuthMethodList({ options, setSelectedGroup }) {
|
|
1174
1277
|
const { Card } = useComponents();
|
|
1175
1278
|
const { setValue, getValues } = reactHookForm.useFormContext();
|
|
1279
|
+
if (Object.entries(options).length === 0) {
|
|
1280
|
+
return null;
|
|
1281
|
+
}
|
|
1176
1282
|
const handleClick = (group, options2) => {
|
|
1177
1283
|
var _a, _b, _c, _d;
|
|
1178
1284
|
if (isGroupImmediateSubmit(group)) {
|
|
@@ -1232,6 +1338,19 @@ function OryFormSectionInner({
|
|
|
1232
1338
|
}
|
|
1233
1339
|
);
|
|
1234
1340
|
}
|
|
1341
|
+
function OryConsentCard() {
|
|
1342
|
+
const { Form, Card } = useComponents();
|
|
1343
|
+
const flow = useOryFlow();
|
|
1344
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(OryCard, { children: [
|
|
1345
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardHeader, {}),
|
|
1346
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(OryForm, { children: [
|
|
1347
|
+
/* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1348
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form.Group, { children: flow.flow.ui.nodes.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)) }),
|
|
1349
|
+
/* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1350
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
1351
|
+
] }) })
|
|
1352
|
+
] });
|
|
1353
|
+
}
|
|
1235
1354
|
function OryFormGroupDivider() {
|
|
1236
1355
|
const { Card } = useComponents();
|
|
1237
1356
|
const {
|
|
@@ -1585,16 +1704,19 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1585
1704
|
const { Card } = useComponents();
|
|
1586
1705
|
const intl = reactIntl.useIntl();
|
|
1587
1706
|
const { flow } = useOryFlow();
|
|
1588
|
-
const
|
|
1707
|
+
const groupedNodes = useNodesGroups(flow.ui.nodes, {
|
|
1708
|
+
// Script nodes are already handled by the parent component.
|
|
1709
|
+
omit: ["script"]
|
|
1710
|
+
});
|
|
1589
1711
|
if (group === clientFetch.UiNodeGroupEnum.Totp) {
|
|
1590
1712
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1591
1713
|
OryFormSection,
|
|
1592
1714
|
{
|
|
1593
|
-
nodes:
|
|
1715
|
+
nodes: groupedNodes.groups.totp,
|
|
1594
1716
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1595
1717
|
children: [
|
|
1596
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsTotp, { nodes: (_a =
|
|
1597
|
-
(_b =
|
|
1718
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
1719
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1598
1720
|
]
|
|
1599
1721
|
}
|
|
1600
1722
|
);
|
|
@@ -1603,16 +1725,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1603
1725
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1604
1726
|
OryFormSection,
|
|
1605
1727
|
{
|
|
1606
|
-
nodes:
|
|
1728
|
+
nodes: groupedNodes.groups.lookup_secret,
|
|
1607
1729
|
"data-testid": "ory/screen/settings/group/lookup_secret",
|
|
1608
1730
|
children: [
|
|
1609
1731
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1610
1732
|
OrySettingsRecoveryCodes,
|
|
1611
1733
|
{
|
|
1612
|
-
nodes: (_c =
|
|
1734
|
+
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1613
1735
|
}
|
|
1614
1736
|
),
|
|
1615
|
-
(_d =
|
|
1737
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1616
1738
|
]
|
|
1617
1739
|
}
|
|
1618
1740
|
);
|
|
@@ -1621,11 +1743,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1621
1743
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1622
1744
|
OryFormSection,
|
|
1623
1745
|
{
|
|
1624
|
-
nodes:
|
|
1746
|
+
nodes: groupedNodes.groups.oidc,
|
|
1625
1747
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1626
1748
|
children: [
|
|
1627
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsOidc, { nodes: (_e =
|
|
1628
|
-
(_f =
|
|
1749
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
1750
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1629
1751
|
]
|
|
1630
1752
|
}
|
|
1631
1753
|
);
|
|
@@ -1634,11 +1756,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1634
1756
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1635
1757
|
OryFormSection,
|
|
1636
1758
|
{
|
|
1637
|
-
nodes:
|
|
1759
|
+
nodes: groupedNodes.groups.webauthn,
|
|
1638
1760
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1639
1761
|
children: [
|
|
1640
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsWebauthn, { nodes: (_g =
|
|
1641
|
-
(_h =
|
|
1762
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
1763
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1642
1764
|
]
|
|
1643
1765
|
}
|
|
1644
1766
|
);
|
|
@@ -1647,11 +1769,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1647
1769
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1648
1770
|
OryFormSection,
|
|
1649
1771
|
{
|
|
1650
|
-
nodes:
|
|
1772
|
+
nodes: groupedNodes.groups.passkey,
|
|
1651
1773
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1652
1774
|
children: [
|
|
1653
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsPasskey, { nodes: (_i =
|
|
1654
|
-
(_j =
|
|
1775
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
1776
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1655
1777
|
]
|
|
1656
1778
|
}
|
|
1657
1779
|
);
|
|
@@ -1672,7 +1794,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1672
1794
|
id: `settings.${group}.description`
|
|
1673
1795
|
}),
|
|
1674
1796
|
children: [
|
|
1675
|
-
(_k =
|
|
1797
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)),
|
|
1676
1798
|
nodes.filter(
|
|
1677
1799
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1678
1800
|
).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
@@ -1686,16 +1808,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1686
1808
|
}
|
|
1687
1809
|
);
|
|
1688
1810
|
}
|
|
1689
|
-
var
|
|
1690
|
-
(node) =>
|
|
1811
|
+
var onlyScriptNodes = (nodes) => nodes.filter(
|
|
1812
|
+
(node) => clientFetch.isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
|
|
1691
1813
|
);
|
|
1692
1814
|
function OrySettingsCard() {
|
|
1693
1815
|
const { flow } = useOryFlow();
|
|
1694
|
-
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
1695
|
-
const
|
|
1816
|
+
const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
|
|
1817
|
+
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1696
1818
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1697
1819
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
|
|
1698
|
-
|
|
1820
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node: n })),
|
|
1699
1821
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1700
1822
|
if (group === clientFetch.UiNodeGroupEnum.Default) {
|
|
1701
1823
|
return null;
|
|
@@ -2031,6 +2153,20 @@ var en_default = {
|
|
|
2031
2153
|
"property.username": "username",
|
|
2032
2154
|
"property.identifier": "identifier",
|
|
2033
2155
|
"property.code": "code",
|
|
2156
|
+
"consent.title": "Authorize {party}",
|
|
2157
|
+
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
|
|
2158
|
+
"consent.scope.openid.title": "Identity",
|
|
2159
|
+
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
|
|
2160
|
+
"consent.scope.offline_access.title": "Offline Access",
|
|
2161
|
+
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
|
|
2162
|
+
"consent.scope.profile.title": "Profile Information",
|
|
2163
|
+
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
|
|
2164
|
+
"consent.scope.email.title": "Email Address",
|
|
2165
|
+
"consent.scope.email.description": "Retrieve your email address and its verification status.",
|
|
2166
|
+
"consent.scope.address.title": "Physical Address",
|
|
2167
|
+
"consent.scope.address.description": "Access your postal address.",
|
|
2168
|
+
"consent.scope.phone.title": "Phone Number",
|
|
2169
|
+
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
|
|
2034
2170
|
"error.title.what-happened": "What happened?",
|
|
2035
2171
|
"error.title.what-can-i-do": "What can I do?",
|
|
2036
2172
|
"error.instructions": "Please try again in a few minutes or contact the website operator.",
|
|
@@ -2207,7 +2343,7 @@ var de_default = {
|
|
|
2207
2343
|
"two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
|
|
2208
2344
|
"two-step.code.title": "E-Mail-Code",
|
|
2209
2345
|
"two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
|
|
2210
|
-
"two-step.passkey.title": "
|
|
2346
|
+
"two-step.passkey.title": "Passkey (empfohlen)",
|
|
2211
2347
|
"two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
|
|
2212
2348
|
"two-step.password.title": "Passwort",
|
|
2213
2349
|
"two-step.webauthn.title": "Sicherheitsschl\xFCssel",
|
|
@@ -2302,6 +2438,20 @@ var de_default = {
|
|
|
2302
2438
|
"property.phone": "Telefon",
|
|
2303
2439
|
"property.code": "Code",
|
|
2304
2440
|
"property.username": "Benutzername",
|
|
2441
|
+
"consent.title": "Autorisieren {party}",
|
|
2442
|
+
"consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
|
|
2443
|
+
"consent.scope.openid.title": "Identit\xE4t",
|
|
2444
|
+
"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.",
|
|
2445
|
+
"consent.scope.offline_access.title": "Offline-Zugriff",
|
|
2446
|
+
"consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
|
|
2447
|
+
"consent.scope.profile.title": "Profilinformationen",
|
|
2448
|
+
"consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
|
|
2449
|
+
"consent.scope.email.title": "E-Mail-Adresse",
|
|
2450
|
+
"consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
|
|
2451
|
+
"consent.scope.address.title": "Physische Adresse",
|
|
2452
|
+
"consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
|
|
2453
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
2454
|
+
"consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
|
|
2305
2455
|
"error.title.what-happened": "Was ist passiert?",
|
|
2306
2456
|
"error.footer.copy": "Kopieren",
|
|
2307
2457
|
"error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
|
|
@@ -2573,6 +2723,20 @@ var es_default = {
|
|
|
2573
2723
|
"property.password": "",
|
|
2574
2724
|
"property.phone": "",
|
|
2575
2725
|
"property.username": "",
|
|
2726
|
+
"consent.title": "Autorizar {party}",
|
|
2727
|
+
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2728
|
+
"consent.scope.openid.title": "Identidad",
|
|
2729
|
+
"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.",
|
|
2730
|
+
"consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
|
|
2731
|
+
"consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
|
|
2732
|
+
"consent.scope.profile.title": "Informaci\xF3n del perfil",
|
|
2733
|
+
"consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
|
|
2734
|
+
"consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
|
|
2735
|
+
"consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
|
|
2736
|
+
"consent.scope.address.title": "Direcci\xF3n f\xEDsica",
|
|
2737
|
+
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2738
|
+
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
2739
|
+
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
2576
2740
|
"error.action.go-back": "",
|
|
2577
2741
|
"error.footer.copy": "",
|
|
2578
2742
|
"error.footer.text": "",
|
|
@@ -2844,6 +3008,20 @@ var fr_default = {
|
|
|
2844
3008
|
"property.password": "",
|
|
2845
3009
|
"property.phone": "",
|
|
2846
3010
|
"property.username": "",
|
|
3011
|
+
"consent.title": "Autoriser {party}",
|
|
3012
|
+
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
3013
|
+
"consent.scope.openid.title": "Identit\xE9",
|
|
3014
|
+
"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.",
|
|
3015
|
+
"consent.scope.offline_access.title": "Acc\xE8s hors ligne",
|
|
3016
|
+
"consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
|
|
3017
|
+
"consent.scope.profile.title": "Informations de profil",
|
|
3018
|
+
"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.",
|
|
3019
|
+
"consent.scope.email.title": "Adresse e-mail",
|
|
3020
|
+
"consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
|
|
3021
|
+
"consent.scope.address.title": "Adresse physique",
|
|
3022
|
+
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
3023
|
+
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
3024
|
+
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
2847
3025
|
"error.action.go-back": "",
|
|
2848
3026
|
"error.footer.copy": "",
|
|
2849
3027
|
"error.footer.text": "",
|
|
@@ -3115,6 +3293,20 @@ var nl_default = {
|
|
|
3115
3293
|
"property.password": "",
|
|
3116
3294
|
"property.phone": "",
|
|
3117
3295
|
"property.username": "",
|
|
3296
|
+
"consent.title": "Autoriseren {party}",
|
|
3297
|
+
"consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
|
|
3298
|
+
"consent.scope.openid.title": "Identiteit",
|
|
3299
|
+
"consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
|
|
3300
|
+
"consent.scope.offline_access.title": "Offline toegang",
|
|
3301
|
+
"consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
|
|
3302
|
+
"consent.scope.profile.title": "Profielinformatie",
|
|
3303
|
+
"consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
|
|
3304
|
+
"consent.scope.email.title": "E-mailadres",
|
|
3305
|
+
"consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
|
|
3306
|
+
"consent.scope.address.title": "Fysiek adres",
|
|
3307
|
+
"consent.scope.address.description": "Toegang tot uw postadres.",
|
|
3308
|
+
"consent.scope.phone.title": "Telefoonnummer",
|
|
3309
|
+
"consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
|
|
3118
3310
|
"error.action.go-back": "",
|
|
3119
3311
|
"error.footer.copy": "",
|
|
3120
3312
|
"error.footer.text": "",
|
|
@@ -3386,6 +3578,20 @@ var pl_default = {
|
|
|
3386
3578
|
"property.phone": "",
|
|
3387
3579
|
"property.username": "",
|
|
3388
3580
|
"property.identifier": "",
|
|
3581
|
+
"consent.title": "Autoryzuj {party}",
|
|
3582
|
+
"consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
|
|
3583
|
+
"consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
|
|
3584
|
+
"consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
|
|
3585
|
+
"consent.scope.offline_access.title": "Dost\u0119p offline",
|
|
3586
|
+
"consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
|
|
3587
|
+
"consent.scope.profile.title": "Informacje profilowe",
|
|
3588
|
+
"consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
|
|
3589
|
+
"consent.scope.email.title": "Adres e-mail",
|
|
3590
|
+
"consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
|
|
3591
|
+
"consent.scope.address.title": "Adres fizyczny",
|
|
3592
|
+
"consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
|
|
3593
|
+
"consent.scope.phone.title": "Numer telefonu",
|
|
3594
|
+
"consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
|
|
3389
3595
|
"error.action.go-back": "",
|
|
3390
3596
|
"error.footer.copy": "",
|
|
3391
3597
|
"error.footer.text": "",
|
|
@@ -3657,6 +3863,20 @@ var pt_default = {
|
|
|
3657
3863
|
"property.password": "",
|
|
3658
3864
|
"property.phone": "",
|
|
3659
3865
|
"property.username": "",
|
|
3866
|
+
"consent.title": "Autorizar {party}",
|
|
3867
|
+
"consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
|
|
3868
|
+
"consent.scope.openid.title": "Identidade",
|
|
3869
|
+
"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.",
|
|
3870
|
+
"consent.scope.offline_access.title": "Acesso Offline",
|
|
3871
|
+
"consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
|
|
3872
|
+
"consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
|
|
3873
|
+
"consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
|
|
3874
|
+
"consent.scope.email.title": "Endere\xE7o de E-mail",
|
|
3875
|
+
"consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
|
|
3876
|
+
"consent.scope.address.title": "Endere\xE7o F\xEDsico",
|
|
3877
|
+
"consent.scope.address.description": "Acesse seu endere\xE7o postal.",
|
|
3878
|
+
"consent.scope.phone.title": "N\xFAmero de Telefone",
|
|
3879
|
+
"consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
|
|
3660
3880
|
"error.action.go-back": "",
|
|
3661
3881
|
"error.footer.copy": "",
|
|
3662
3882
|
"error.footer.text": "",
|
|
@@ -3928,6 +4148,20 @@ var sv_default = {
|
|
|
3928
4148
|
"property.username": "anv\xE4ndarnamn",
|
|
3929
4149
|
"property.identifier": "identifier",
|
|
3930
4150
|
"property.code": "kod",
|
|
4151
|
+
"consent.title": "Auktorisera {party}",
|
|
4152
|
+
"consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
|
|
4153
|
+
"consent.scope.openid.title": "Identitet",
|
|
4154
|
+
"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.",
|
|
4155
|
+
"consent.scope.offline_access.title": "Offline-\xE5tkomst",
|
|
4156
|
+
"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.",
|
|
4157
|
+
"consent.scope.profile.title": "Profilinformation",
|
|
4158
|
+
"consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
|
|
4159
|
+
"consent.scope.email.title": "E-postadress",
|
|
4160
|
+
"consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
|
|
4161
|
+
"consent.scope.address.title": "Fysisk adress",
|
|
4162
|
+
"consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
|
|
4163
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
4164
|
+
"consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
|
|
3931
4165
|
"error.action.go-back": "",
|
|
3932
4166
|
"error.footer.copy": "",
|
|
3933
4167
|
"error.footer.text": "",
|
|
@@ -3954,6 +4188,7 @@ exports.OryCardContent = OryCardContent;
|
|
|
3954
4188
|
exports.OryCardFooter = OryCardFooter;
|
|
3955
4189
|
exports.OryCardHeader = OryCardHeader;
|
|
3956
4190
|
exports.OryCardValidationMessages = OryCardValidationMessages;
|
|
4191
|
+
exports.OryConsentCard = OryConsentCard;
|
|
3957
4192
|
exports.OryForm = OryForm;
|
|
3958
4193
|
exports.OryFormGroupDivider = OryFormGroupDivider;
|
|
3959
4194
|
exports.OryFormGroups = OryFormGroups;
|