@ory/elements-react 0.0.0-pr.3a98de9 → 0.0.0-pr.6b3fe62
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 +98 -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 +31 -5
- package/dist/index.d.ts +31 -5
- package/dist/index.js +400 -98
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +403 -102
- 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 +31 -5
- package/dist/theme/default/index.d.ts +31 -5
- package/dist/theme/default/index.js +3519 -470
- package/dist/theme/default/index.js.map +1 -1
- package/dist/theme/default/index.mjs +3510 -389
- 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
|
@@ -36,6 +36,7 @@ function useGroupSorter() {
|
|
|
36
36
|
}
|
|
37
37
|
var defaultNodeOrder = [
|
|
38
38
|
"oidc",
|
|
39
|
+
"saml",
|
|
39
40
|
"identifier_first",
|
|
40
41
|
"default",
|
|
41
42
|
"profile",
|
|
@@ -100,8 +101,10 @@ function isChoosingMethod(flow) {
|
|
|
100
101
|
(node) => node.group === clientFetch.UiNodeGroupEnum.IdentifierFirst && "name" in node.attributes && node.attributes.name === "identifier" && node.attributes.type === "hidden"
|
|
101
102
|
) || flow.flowType === clientFetch.FlowType.Login && flow.flow.requested_aal === "aal2";
|
|
102
103
|
}
|
|
103
|
-
function
|
|
104
|
-
return nodes.filter(
|
|
104
|
+
function removeSsoNodes(nodes) {
|
|
105
|
+
return nodes.filter(
|
|
106
|
+
(node) => !(node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml)
|
|
107
|
+
);
|
|
105
108
|
}
|
|
106
109
|
function getFinalNodes(uniqueGroups, selectedGroup) {
|
|
107
110
|
var _a, _b, _c, _d;
|
|
@@ -186,13 +189,16 @@ function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
|
|
|
186
189
|
].includes(group)
|
|
187
190
|
);
|
|
188
191
|
}
|
|
189
|
-
function useNodesGroups(nodes) {
|
|
192
|
+
function useNodesGroups(nodes, { omit } = {}) {
|
|
190
193
|
const groupSorter = useGroupSorter();
|
|
191
194
|
const groups = react.useMemo(() => {
|
|
192
195
|
var _a;
|
|
193
196
|
const groups2 = {};
|
|
194
197
|
for (const node of nodes) {
|
|
195
|
-
if (
|
|
198
|
+
if ((omit == null ? void 0 : omit.includes("script")) && clientFetch.isUiNodeScriptAttributes(node.attributes)) {
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
if ((omit == null ? void 0 : omit.includes("input_hidden")) && clientFetch.isUiNodeInputAttributes(node.attributes) && node.attributes.type === "hidden") {
|
|
196
202
|
continue;
|
|
197
203
|
}
|
|
198
204
|
const groupNodes = (_a = groups2[node.group]) != null ? _a : [];
|
|
@@ -234,7 +240,9 @@ function parseStateFromFlow(flow) {
|
|
|
234
240
|
return { current: "method_active", method: "code" };
|
|
235
241
|
} else if (methodWithMessage) {
|
|
236
242
|
return { current: "method_active", method: methodWithMessage.group };
|
|
237
|
-
} else if (flow.flow.active && !["default", "identifier_first", "oidc"].includes(
|
|
243
|
+
} else if (flow.flow.active && !["default", "identifier_first", "oidc", "saml"].includes(
|
|
244
|
+
flow.flow.active
|
|
245
|
+
)) {
|
|
238
246
|
return { current: "method_active", method: flow.flow.active };
|
|
239
247
|
} else if (isChoosingMethod(flow)) {
|
|
240
248
|
const authMethods = nodesToAuthMethodGroups(flow.flow.ui.nodes);
|
|
@@ -258,23 +266,32 @@ function parseStateFromFlow(flow) {
|
|
|
258
266
|
break;
|
|
259
267
|
case clientFetch.FlowType.Settings:
|
|
260
268
|
return { current: "settings" };
|
|
269
|
+
case clientFetch.FlowType.OAuth2Consent:
|
|
270
|
+
return { current: "method_active", method: "oauth2_consent" };
|
|
261
271
|
}
|
|
262
272
|
console.warn(
|
|
263
273
|
`[Ory/Elements React] Encountered an unknown form state on ${flow.flowType} flow with ID ${flow.flow.id}`
|
|
264
274
|
);
|
|
265
275
|
throw new Error("Unknown form state");
|
|
266
276
|
}
|
|
267
|
-
function formStateReducer(state, action) {
|
|
268
|
-
switch (action.type) {
|
|
269
|
-
case "action_flow_update":
|
|
270
|
-
return parseStateFromFlow(action.flow);
|
|
271
|
-
case "action_select_method":
|
|
272
|
-
return { current: "method_active", method: action.method };
|
|
273
|
-
}
|
|
274
|
-
return state;
|
|
275
|
-
}
|
|
276
277
|
function useFormStateReducer(flow) {
|
|
277
|
-
|
|
278
|
+
const action = parseStateFromFlow(flow);
|
|
279
|
+
const [selectedMethod, setSelectedMethod] = react.useState();
|
|
280
|
+
const formStateReducer = (state, action2) => {
|
|
281
|
+
switch (action2.type) {
|
|
282
|
+
case "action_flow_update": {
|
|
283
|
+
if (selectedMethod)
|
|
284
|
+
return { current: "method_active", method: selectedMethod };
|
|
285
|
+
return parseStateFromFlow(action2.flow);
|
|
286
|
+
}
|
|
287
|
+
case "action_select_method": {
|
|
288
|
+
setSelectedMethod(action2.method);
|
|
289
|
+
return { current: "method_active", method: action2.method };
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return state;
|
|
293
|
+
};
|
|
294
|
+
return react.useReducer(formStateReducer, action);
|
|
278
295
|
}
|
|
279
296
|
function useOryFlow() {
|
|
280
297
|
const ctx = react.useContext(OryFlowContext);
|
|
@@ -364,6 +381,22 @@ function computeDefaultValues(nodes) {
|
|
|
364
381
|
if (attrs.name === "method" || attrs.type === "submit" || typeof attrs.value === "undefined") {
|
|
365
382
|
return acc;
|
|
366
383
|
}
|
|
384
|
+
if (attrs.name.startsWith("grant_scope")) {
|
|
385
|
+
const scope = attrs.value;
|
|
386
|
+
if (Array.isArray(acc.grant_scope)) {
|
|
387
|
+
return {
|
|
388
|
+
...acc,
|
|
389
|
+
// We want to have all scopes accepted by default, so that the user has to actively uncheck them.
|
|
390
|
+
grant_scope: [...acc.grant_scope, scope]
|
|
391
|
+
};
|
|
392
|
+
} else if (!acc.grant_scope) {
|
|
393
|
+
return {
|
|
394
|
+
...acc,
|
|
395
|
+
grant_scope: [scope]
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
return acc;
|
|
399
|
+
}
|
|
367
400
|
return unrollTrait(
|
|
368
401
|
{
|
|
369
402
|
name: attrs.name,
|
|
@@ -795,7 +828,7 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
795
828
|
if ("lookup_secret_confirm" in submitData || "lookup_secret_reveal" in submitData || "lookup_secret_regenerate" in submitData || "lookup_secret_disable" in submitData) {
|
|
796
829
|
submitData.method = "lookup_secret";
|
|
797
830
|
}
|
|
798
|
-
if (submitData.method ===
|
|
831
|
+
if (submitData.method === clientFetch.UiNodeGroupEnum.Oidc && submitData.link && supportsSelectAccountPrompt.includes(submitData.link)) {
|
|
799
832
|
submitData.upstream_parameters = {
|
|
800
833
|
prompt: "select_account"
|
|
801
834
|
};
|
|
@@ -813,6 +846,19 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
813
846
|
});
|
|
814
847
|
break;
|
|
815
848
|
}
|
|
849
|
+
case clientFetch.FlowType.OAuth2Consent: {
|
|
850
|
+
const response = await fetch(flowContainer.flow.ui.action, {
|
|
851
|
+
method: "POST",
|
|
852
|
+
body: JSON.stringify(data),
|
|
853
|
+
headers: {
|
|
854
|
+
"Content-Type": "application/json"
|
|
855
|
+
}
|
|
856
|
+
});
|
|
857
|
+
const oauth2Success = await response.json();
|
|
858
|
+
if (oauth2Success.redirect_to && typeof oauth2Success.redirect_to === "string") {
|
|
859
|
+
onRedirect(oauth2Success.redirect_to);
|
|
860
|
+
}
|
|
861
|
+
}
|
|
816
862
|
}
|
|
817
863
|
if ("password" in data) {
|
|
818
864
|
methods.setValue("password", "");
|
|
@@ -827,7 +873,11 @@ function useOryFormSubmit(onAfterSubmit) {
|
|
|
827
873
|
};
|
|
828
874
|
return onSubmit;
|
|
829
875
|
}
|
|
830
|
-
function OryForm({
|
|
876
|
+
function OryForm({
|
|
877
|
+
children,
|
|
878
|
+
onAfterSubmit,
|
|
879
|
+
"data-testid": dataTestId
|
|
880
|
+
}) {
|
|
831
881
|
const { Form } = useComponents();
|
|
832
882
|
const flowContainer = useOryFlow();
|
|
833
883
|
const methods = reactHookForm.useFormContext();
|
|
@@ -855,7 +905,7 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
855
905
|
}),
|
|
856
906
|
type: "error"
|
|
857
907
|
};
|
|
858
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
908
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-testid": dataTestId, children: [
|
|
859
909
|
/* @__PURE__ */ jsxRuntime.jsx(Message.Root, { children: /* @__PURE__ */ jsxRuntime.jsx(Message.Content, { message: m }, m.id) }),
|
|
860
910
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
861
911
|
] });
|
|
@@ -866,6 +916,7 @@ function OryForm({ children, onAfterSubmit }) {
|
|
|
866
916
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
867
917
|
Form.Root,
|
|
868
918
|
{
|
|
919
|
+
"data-testid": dataTestId,
|
|
869
920
|
action: flowContainer.flow.ui.action,
|
|
870
921
|
method: flowContainer.flow.ui.method,
|
|
871
922
|
onSubmit: (e) => void methods.handleSubmit(onSubmit)(e),
|
|
@@ -900,7 +951,7 @@ var NodeInput = ({
|
|
|
900
951
|
}) => {
|
|
901
952
|
var _a;
|
|
902
953
|
const { Node: Node2 } = useComponents();
|
|
903
|
-
const { setValue } = reactHookForm.useFormContext();
|
|
954
|
+
const { setValue, watch } = reactHookForm.useFormContext();
|
|
904
955
|
const {
|
|
905
956
|
onloadTrigger,
|
|
906
957
|
onclickTrigger,
|
|
@@ -913,7 +964,10 @@ var NodeInput = ({
|
|
|
913
964
|
const isResendNode = ((_a = node.meta.label) == null ? void 0 : _a.id) === 1070008;
|
|
914
965
|
const isScreenSelectionNode = "name" in node.attributes && node.attributes.name === "screen";
|
|
915
966
|
const setFormValue = () => {
|
|
916
|
-
if (
|
|
967
|
+
if (isResendNode || isScreenSelectionNode || node.group === clientFetch.UiNodeGroupEnum.Oauth2Consent) {
|
|
968
|
+
return;
|
|
969
|
+
}
|
|
970
|
+
if (attrs.value !== void 0) {
|
|
917
971
|
setValue(attrs.name, attrs.value);
|
|
918
972
|
}
|
|
919
973
|
};
|
|
@@ -936,8 +990,21 @@ var NodeInput = ({
|
|
|
936
990
|
triggerToWindowCall(onclickTrigger);
|
|
937
991
|
}
|
|
938
992
|
};
|
|
939
|
-
const isSocial = (attrs.name === "provider" || attrs.name === "link") && node.group ===
|
|
993
|
+
const isSocial = (attrs.name === "provider" || attrs.name === "link") && (node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml);
|
|
940
994
|
const isPinCodeInput = attrs.name === "code" && node.group === "code" || attrs.name === "totp_code" && node.group === "totp";
|
|
995
|
+
const handleScopeChange = (checked) => {
|
|
996
|
+
const scopes = watch("grant_scope");
|
|
997
|
+
if (Array.isArray(scopes)) {
|
|
998
|
+
if (checked) {
|
|
999
|
+
setValue("grant_scope", Array.from(/* @__PURE__ */ new Set([...scopes, attrs.value])));
|
|
1000
|
+
} else {
|
|
1001
|
+
setValue(
|
|
1002
|
+
"grant_scope",
|
|
1003
|
+
scopes.filter((scope) => scope !== attrs.value)
|
|
1004
|
+
);
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
};
|
|
941
1008
|
switch (attributes.type) {
|
|
942
1009
|
case clientFetch.UiNodeInputAttributesTypeEnum.Submit:
|
|
943
1010
|
case clientFetch.UiNodeInputAttributesTypeEnum.Button:
|
|
@@ -947,6 +1014,9 @@ var NodeInput = ({
|
|
|
947
1014
|
if (isResendNode || isScreenSelectionNode) {
|
|
948
1015
|
return null;
|
|
949
1016
|
}
|
|
1017
|
+
if (node.group === "oauth2_consent") {
|
|
1018
|
+
return null;
|
|
1019
|
+
}
|
|
950
1020
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
951
1021
|
Node2.Label,
|
|
952
1022
|
{
|
|
@@ -958,6 +1028,21 @@ var NodeInput = ({
|
|
|
958
1028
|
case clientFetch.UiNodeInputAttributesTypeEnum.DatetimeLocal:
|
|
959
1029
|
throw new Error("Not implemented");
|
|
960
1030
|
case clientFetch.UiNodeInputAttributesTypeEnum.Checkbox:
|
|
1031
|
+
if (node.group === "oauth2_consent" && node.attributes.node_type === "input") {
|
|
1032
|
+
switch (node.attributes.name) {
|
|
1033
|
+
case "grant_scope":
|
|
1034
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1035
|
+
Node2.ConsentScopeCheckbox,
|
|
1036
|
+
{
|
|
1037
|
+
attributes: attrs,
|
|
1038
|
+
node,
|
|
1039
|
+
onCheckedChange: handleScopeChange
|
|
1040
|
+
}
|
|
1041
|
+
);
|
|
1042
|
+
default:
|
|
1043
|
+
return null;
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
961
1046
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
962
1047
|
Node2.Label,
|
|
963
1048
|
{
|
|
@@ -1019,7 +1104,9 @@ function OryFormOidcButtons() {
|
|
|
1019
1104
|
flow: { ui }
|
|
1020
1105
|
} = useOryFlow();
|
|
1021
1106
|
const { setValue } = reactHookForm.useFormContext();
|
|
1022
|
-
const filteredNodes = ui.nodes.filter(
|
|
1107
|
+
const filteredNodes = ui.nodes.filter(
|
|
1108
|
+
(node) => node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml
|
|
1109
|
+
);
|
|
1023
1110
|
const { Form, Node: Node2 } = useComponents();
|
|
1024
1111
|
if (filteredNodes.length === 0) {
|
|
1025
1112
|
return null;
|
|
@@ -1034,7 +1121,7 @@ function OryFormOidcButtons() {
|
|
|
1034
1121
|
"provider",
|
|
1035
1122
|
node.attributes.value
|
|
1036
1123
|
);
|
|
1037
|
-
setValue("method",
|
|
1124
|
+
setValue("method", node.group);
|
|
1038
1125
|
}
|
|
1039
1126
|
},
|
|
1040
1127
|
k
|
|
@@ -1044,11 +1131,13 @@ function OryFormSocialButtonsForm() {
|
|
|
1044
1131
|
const {
|
|
1045
1132
|
flow: { ui }
|
|
1046
1133
|
} = useOryFlow();
|
|
1047
|
-
const filteredNodes = ui.nodes.filter(
|
|
1134
|
+
const filteredNodes = ui.nodes.filter(
|
|
1135
|
+
(node) => node.group === clientFetch.UiNodeGroupEnum.Saml || node.group === clientFetch.UiNodeGroupEnum.Oidc
|
|
1136
|
+
);
|
|
1048
1137
|
if (filteredNodes.length === 0) {
|
|
1049
1138
|
return null;
|
|
1050
1139
|
}
|
|
1051
|
-
return /* @__PURE__ */ jsxRuntime.jsx(OryFormProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(OryForm, { children: /* @__PURE__ */ jsxRuntime.jsx(OryFormOidcButtons, {}) }) });
|
|
1140
|
+
return /* @__PURE__ */ jsxRuntime.jsx(OryFormProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(OryForm, { "data-testid": `ory/form/methods/oidc-saml`, children: /* @__PURE__ */ jsxRuntime.jsx(OryFormOidcButtons, {}) }) });
|
|
1052
1141
|
}
|
|
1053
1142
|
function isUINodeGroupEnum(method) {
|
|
1054
1143
|
return Object.values(clientFetch.UiNodeGroupEnum).includes(method);
|
|
@@ -1060,14 +1149,18 @@ function OryTwoStepCard() {
|
|
|
1060
1149
|
const { ui } = flow;
|
|
1061
1150
|
const nodeSorter = useNodeSorter();
|
|
1062
1151
|
const sortNodes = (a, b) => nodeSorter(a, b, { flowType });
|
|
1063
|
-
const
|
|
1064
|
-
|
|
1152
|
+
const groupsToShow = useNodesGroups(ui.nodes, {
|
|
1153
|
+
// We only want to render groups that have visible elements.
|
|
1154
|
+
omit: ["script", "input_hidden"]
|
|
1155
|
+
});
|
|
1156
|
+
const authMethodBlocks = Object.fromEntries(
|
|
1065
1157
|
Object.values(clientFetch.UiNodeGroupEnum).filter((group) => {
|
|
1066
1158
|
var _a2;
|
|
1067
|
-
return (_a2 =
|
|
1159
|
+
return (_a2 = groupsToShow.groups[group]) == null ? void 0 : _a2.length;
|
|
1068
1160
|
}).filter(
|
|
1069
1161
|
(group) => ![
|
|
1070
1162
|
clientFetch.UiNodeGroupEnum.Oidc,
|
|
1163
|
+
clientFetch.UiNodeGroupEnum.Saml,
|
|
1071
1164
|
clientFetch.UiNodeGroupEnum.Default,
|
|
1072
1165
|
clientFetch.UiNodeGroupEnum.IdentifierFirst,
|
|
1073
1166
|
clientFetch.UiNodeGroupEnum.Profile,
|
|
@@ -1075,7 +1168,17 @@ function OryTwoStepCard() {
|
|
|
1075
1168
|
].includes(group)
|
|
1076
1169
|
).map((g) => [g, {}])
|
|
1077
1170
|
);
|
|
1078
|
-
|
|
1171
|
+
const authMethodAdditionalNodes = ui.nodes.filter(
|
|
1172
|
+
({ group }) => [
|
|
1173
|
+
clientFetch.UiNodeGroupEnum.Oidc,
|
|
1174
|
+
clientFetch.UiNodeGroupEnum.Saml,
|
|
1175
|
+
clientFetch.UiNodeGroupEnum.Default,
|
|
1176
|
+
clientFetch.UiNodeGroupEnum.IdentifierFirst,
|
|
1177
|
+
clientFetch.UiNodeGroupEnum.Profile,
|
|
1178
|
+
clientFetch.UiNodeGroupEnum.Captcha
|
|
1179
|
+
].includes(group)
|
|
1180
|
+
);
|
|
1181
|
+
if (clientFetch.UiNodeGroupEnum.Code in authMethodBlocks) {
|
|
1079
1182
|
let identifier = (_b = (_a = findNode(ui.nodes, {
|
|
1080
1183
|
group: "identifier_first",
|
|
1081
1184
|
node_type: "input",
|
|
@@ -1087,7 +1190,7 @@ function OryTwoStepCard() {
|
|
|
1087
1190
|
name: "address"
|
|
1088
1191
|
})) == null ? void 0 : _c.attributes) == null ? void 0 : _d.value);
|
|
1089
1192
|
if (identifier) {
|
|
1090
|
-
|
|
1193
|
+
authMethodBlocks[clientFetch.UiNodeGroupEnum.Code] = {
|
|
1091
1194
|
title: {
|
|
1092
1195
|
id: "identities.messages.1010023",
|
|
1093
1196
|
values: { address: identifier }
|
|
@@ -1095,8 +1198,8 @@ function OryTwoStepCard() {
|
|
|
1095
1198
|
};
|
|
1096
1199
|
}
|
|
1097
1200
|
}
|
|
1098
|
-
const
|
|
1099
|
-
const finalNodes = formState.current === "method_active" ? getFinalNodes(
|
|
1201
|
+
const nonSsoNodes = removeSsoNodes(ui.nodes);
|
|
1202
|
+
const finalNodes = formState.current === "method_active" ? getFinalNodes(groupsToShow.groups, formState.method) : [];
|
|
1100
1203
|
const handleAfterFormSubmit = (method) => {
|
|
1101
1204
|
if (typeof method !== "string" || !isUINodeGroupEnum(method)) {
|
|
1102
1205
|
return;
|
|
@@ -1108,46 +1211,66 @@ function OryTwoStepCard() {
|
|
|
1108
1211
|
});
|
|
1109
1212
|
}
|
|
1110
1213
|
};
|
|
1111
|
-
const
|
|
1112
|
-
|
|
1214
|
+
const hasSso = ui.nodes.some(
|
|
1215
|
+
(node) => node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml
|
|
1216
|
+
);
|
|
1217
|
+
const showSso = !(formState.current === "method_active" && !(formState.method === clientFetch.UiNodeGroupEnum.Oidc || formState.method === clientFetch.UiNodeGroupEnum.Saml));
|
|
1218
|
+
const showSsoDivider = hasSso && nonSsoNodes.filter((n) => {
|
|
1219
|
+
if (clientFetch.isUiNodeInputAttributes(n.attributes)) {
|
|
1220
|
+
return n.attributes.type !== clientFetch.UiNodeInputAttributesTypeEnum.Hidden;
|
|
1221
|
+
} else if (clientFetch.isUiNodeScriptAttributes(n.attributes)) {
|
|
1222
|
+
return false;
|
|
1223
|
+
}
|
|
1224
|
+
return true;
|
|
1225
|
+
}).length > 0;
|
|
1113
1226
|
return /* @__PURE__ */ jsxRuntime.jsxs(OryCard, { children: [
|
|
1114
1227
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardHeader, {}),
|
|
1115
1228
|
/* @__PURE__ */ jsxRuntime.jsxs(OryCardContent, { children: [
|
|
1116
1229
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
|
|
1117
|
-
|
|
1118
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1230
|
+
showSso && /* @__PURE__ */ jsxRuntime.jsx(OryFormSocialButtonsForm, {}),
|
|
1231
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1232
|
+
OryForm,
|
|
1233
|
+
{
|
|
1234
|
+
"data-testid": `ory/form/methods/local`,
|
|
1235
|
+
onAfterSubmit: handleAfterFormSubmit,
|
|
1236
|
+
children: [
|
|
1237
|
+
formState.current === "provide_identifier" && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1238
|
+
showSsoDivider && /* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1239
|
+
nonSsoNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1240
|
+
] }),
|
|
1241
|
+
formState.current === "select_method" && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1242
|
+
Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1243
|
+
Object.entries(authMethodBlocks).length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1244
|
+
AuthMethodList,
|
|
1245
|
+
{
|
|
1246
|
+
options: authMethodBlocks,
|
|
1247
|
+
setSelectedGroup: (group) => dispatchFormState({
|
|
1248
|
+
type: "action_select_method",
|
|
1249
|
+
method: group
|
|
1250
|
+
})
|
|
1251
|
+
}
|
|
1252
|
+
),
|
|
1253
|
+
authMethodAdditionalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1254
|
+
] }),
|
|
1255
|
+
formState.current === "method_active" && /* @__PURE__ */ jsxRuntime.jsxs(Form.Group, { children: [
|
|
1256
|
+
ui.nodes.filter(
|
|
1257
|
+
(n) => clientFetch.isUiNodeScriptAttributes(n.attributes) || n.group === clientFetch.UiNodeGroupEnum.Captcha
|
|
1258
|
+
).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)),
|
|
1259
|
+
finalNodes.sort(sortNodes).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1260
|
+
] }),
|
|
1261
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
1262
|
+
]
|
|
1263
|
+
}
|
|
1264
|
+
)
|
|
1145
1265
|
] })
|
|
1146
1266
|
] });
|
|
1147
1267
|
}
|
|
1148
1268
|
function AuthMethodList({ options, setSelectedGroup }) {
|
|
1149
1269
|
const { Card } = useComponents();
|
|
1150
1270
|
const { setValue, getValues } = reactHookForm.useFormContext();
|
|
1271
|
+
if (Object.entries(options).length === 0) {
|
|
1272
|
+
return null;
|
|
1273
|
+
}
|
|
1151
1274
|
const handleClick = (group, options2) => {
|
|
1152
1275
|
var _a, _b, _c, _d;
|
|
1153
1276
|
if (isGroupImmediateSubmit(group)) {
|
|
@@ -1207,14 +1330,29 @@ function OryFormSectionInner({
|
|
|
1207
1330
|
}
|
|
1208
1331
|
);
|
|
1209
1332
|
}
|
|
1333
|
+
function OryConsentCard() {
|
|
1334
|
+
const { Form, Card } = useComponents();
|
|
1335
|
+
const flow = useOryFlow();
|
|
1336
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(OryCard, { children: [
|
|
1337
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardHeader, {}),
|
|
1338
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(OryForm, { children: [
|
|
1339
|
+
/* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1340
|
+
/* @__PURE__ */ jsxRuntime.jsx(Form.Group, { children: flow.flow.ui.nodes.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)) }),
|
|
1341
|
+
/* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {}),
|
|
1342
|
+
/* @__PURE__ */ jsxRuntime.jsx(OryCardFooter, {})
|
|
1343
|
+
] }) })
|
|
1344
|
+
] });
|
|
1345
|
+
}
|
|
1210
1346
|
function OryFormGroupDivider() {
|
|
1211
1347
|
const { Card } = useComponents();
|
|
1212
1348
|
const {
|
|
1213
1349
|
flow: { ui }
|
|
1214
1350
|
} = useOryFlow();
|
|
1215
|
-
const filteredNodes = ui.nodes.filter(
|
|
1351
|
+
const filteredNodes = ui.nodes.filter(
|
|
1352
|
+
(node) => node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml
|
|
1353
|
+
);
|
|
1216
1354
|
const otherNodes = ui.nodes.filter(
|
|
1217
|
-
(node) => node.group
|
|
1355
|
+
(node) => !(node.group === clientFetch.UiNodeGroupEnum.Oidc || node.group === clientFetch.UiNodeGroupEnum.Saml) && node.group !== "default"
|
|
1218
1356
|
);
|
|
1219
1357
|
if (filteredNodes.length > 0 && otherNodes.length > 0) {
|
|
1220
1358
|
return /* @__PURE__ */ jsxRuntime.jsx(Card.Divider, {});
|
|
@@ -1240,7 +1378,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1240
1378
|
onClick: () => {
|
|
1241
1379
|
if (node.attributes.node_type === "input") {
|
|
1242
1380
|
setValue("link", node.attributes.value);
|
|
1243
|
-
setValue("method",
|
|
1381
|
+
setValue("method", node.group);
|
|
1244
1382
|
}
|
|
1245
1383
|
}
|
|
1246
1384
|
}));
|
|
@@ -1249,7 +1387,7 @@ function OrySettingsOidc({ nodes }) {
|
|
|
1249
1387
|
onClick: () => {
|
|
1250
1388
|
if (node.attributes.node_type === "input") {
|
|
1251
1389
|
setValue("unlink", node.attributes.value);
|
|
1252
|
-
setValue("method",
|
|
1390
|
+
setValue("method", node.group);
|
|
1253
1391
|
}
|
|
1254
1392
|
}
|
|
1255
1393
|
}));
|
|
@@ -1558,16 +1696,19 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1558
1696
|
const { Card } = useComponents();
|
|
1559
1697
|
const intl = reactIntl.useIntl();
|
|
1560
1698
|
const { flow } = useOryFlow();
|
|
1561
|
-
const
|
|
1699
|
+
const groupedNodes = useNodesGroups(flow.ui.nodes, {
|
|
1700
|
+
// Script nodes are already handled by the parent component.
|
|
1701
|
+
omit: ["script"]
|
|
1702
|
+
});
|
|
1562
1703
|
if (group === clientFetch.UiNodeGroupEnum.Totp) {
|
|
1563
1704
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1564
1705
|
OryFormSection,
|
|
1565
1706
|
{
|
|
1566
|
-
nodes:
|
|
1707
|
+
nodes: groupedNodes.groups.totp,
|
|
1567
1708
|
"data-testid": "ory/screen/settings/group/totp",
|
|
1568
1709
|
children: [
|
|
1569
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsTotp, { nodes: (_a =
|
|
1570
|
-
(_b =
|
|
1710
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsTotp, { nodes: (_a = groupedNodes.groups.totp) != null ? _a : [] }),
|
|
1711
|
+
(_b = groupedNodes.groups.default) == null ? void 0 : _b.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1571
1712
|
]
|
|
1572
1713
|
}
|
|
1573
1714
|
);
|
|
@@ -1576,16 +1717,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1576
1717
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1577
1718
|
OryFormSection,
|
|
1578
1719
|
{
|
|
1579
|
-
nodes:
|
|
1720
|
+
nodes: groupedNodes.groups.lookup_secret,
|
|
1580
1721
|
"data-testid": "ory/screen/settings/group/lookup_secret",
|
|
1581
1722
|
children: [
|
|
1582
1723
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1583
1724
|
OrySettingsRecoveryCodes,
|
|
1584
1725
|
{
|
|
1585
|
-
nodes: (_c =
|
|
1726
|
+
nodes: (_c = groupedNodes.groups.lookup_secret) != null ? _c : []
|
|
1586
1727
|
}
|
|
1587
1728
|
),
|
|
1588
|
-
(_d =
|
|
1729
|
+
(_d = groupedNodes.groups.default) == null ? void 0 : _d.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1589
1730
|
]
|
|
1590
1731
|
}
|
|
1591
1732
|
);
|
|
@@ -1594,11 +1735,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1594
1735
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1595
1736
|
OryFormSection,
|
|
1596
1737
|
{
|
|
1597
|
-
nodes:
|
|
1738
|
+
nodes: groupedNodes.groups.oidc,
|
|
1598
1739
|
"data-testid": "ory/screen/settings/group/oidc",
|
|
1599
1740
|
children: [
|
|
1600
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsOidc, { nodes: (_e =
|
|
1601
|
-
(_f =
|
|
1741
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsOidc, { nodes: (_e = groupedNodes.groups.oidc) != null ? _e : [] }),
|
|
1742
|
+
(_f = groupedNodes.groups.default) == null ? void 0 : _f.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1602
1743
|
]
|
|
1603
1744
|
}
|
|
1604
1745
|
);
|
|
@@ -1607,11 +1748,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1607
1748
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1608
1749
|
OryFormSection,
|
|
1609
1750
|
{
|
|
1610
|
-
nodes:
|
|
1751
|
+
nodes: groupedNodes.groups.webauthn,
|
|
1611
1752
|
"data-testid": "ory/screen/settings/group/webauthn",
|
|
1612
1753
|
children: [
|
|
1613
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsWebauthn, { nodes: (_g =
|
|
1614
|
-
(_h =
|
|
1754
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsWebauthn, { nodes: (_g = groupedNodes.groups.webauthn) != null ? _g : [] }),
|
|
1755
|
+
(_h = groupedNodes.groups.default) == null ? void 0 : _h.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1615
1756
|
]
|
|
1616
1757
|
}
|
|
1617
1758
|
);
|
|
@@ -1620,11 +1761,11 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1620
1761
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1621
1762
|
OryFormSection,
|
|
1622
1763
|
{
|
|
1623
|
-
nodes:
|
|
1764
|
+
nodes: groupedNodes.groups.passkey,
|
|
1624
1765
|
"data-testid": "ory/screen/settings/group/passkey",
|
|
1625
1766
|
children: [
|
|
1626
|
-
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsPasskey, { nodes: (_i =
|
|
1627
|
-
(_j =
|
|
1767
|
+
/* @__PURE__ */ jsxRuntime.jsx(OrySettingsPasskey, { nodes: (_i = groupedNodes.groups.passkey) != null ? _i : [] }),
|
|
1768
|
+
(_j = groupedNodes.groups.default) == null ? void 0 : _j.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
1628
1769
|
]
|
|
1629
1770
|
}
|
|
1630
1771
|
);
|
|
@@ -1645,7 +1786,7 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1645
1786
|
id: `settings.${group}.description`
|
|
1646
1787
|
}),
|
|
1647
1788
|
children: [
|
|
1648
|
-
(_k =
|
|
1789
|
+
(_k = groupedNodes.groups.default) == null ? void 0 : _k.map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k)),
|
|
1649
1790
|
nodes.filter(
|
|
1650
1791
|
(node) => "type" in node.attributes && node.attributes.type !== "submit"
|
|
1651
1792
|
).map((node, k) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node }, k))
|
|
@@ -1659,16 +1800,16 @@ function SettingsSectionContent({ group, nodes }) {
|
|
|
1659
1800
|
}
|
|
1660
1801
|
);
|
|
1661
1802
|
}
|
|
1662
|
-
var
|
|
1663
|
-
(node) =>
|
|
1803
|
+
var onlyScriptNodes = (nodes) => nodes.filter(
|
|
1804
|
+
(node) => clientFetch.isUiNodeScriptAttributes(node.attributes) && node.attributes.id === "webauthn_script"
|
|
1664
1805
|
);
|
|
1665
1806
|
function OrySettingsCard() {
|
|
1666
1807
|
const { flow } = useOryFlow();
|
|
1667
|
-
const uniqueGroups = useNodesGroups(flow.ui.nodes);
|
|
1668
|
-
const
|
|
1808
|
+
const uniqueGroups = useNodesGroups(flow.ui.nodes, { omit: ["script"] });
|
|
1809
|
+
const scriptNodes = onlyScriptNodes(flow.ui.nodes);
|
|
1669
1810
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1670
1811
|
/* @__PURE__ */ jsxRuntime.jsx(OryCardValidationMessages, {}),
|
|
1671
|
-
|
|
1812
|
+
scriptNodes.map((n) => /* @__PURE__ */ jsxRuntime.jsx(Node, { node: n })),
|
|
1672
1813
|
uniqueGroups.entries.map(([group, nodes]) => {
|
|
1673
1814
|
if (group === clientFetch.UiNodeGroupEnum.Default) {
|
|
1674
1815
|
return null;
|
|
@@ -2003,7 +2144,27 @@ var en_default = {
|
|
|
2003
2144
|
"property.phone": "phone",
|
|
2004
2145
|
"property.username": "username",
|
|
2005
2146
|
"property.identifier": "identifier",
|
|
2006
|
-
"property.code": "code"
|
|
2147
|
+
"property.code": "code",
|
|
2148
|
+
"consent.title": "Authorize {party}",
|
|
2149
|
+
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
|
|
2150
|
+
"consent.scope.openid.title": "Identity",
|
|
2151
|
+
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
|
|
2152
|
+
"consent.scope.offline_access.title": "Offline Access",
|
|
2153
|
+
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
|
|
2154
|
+
"consent.scope.profile.title": "Profile Information",
|
|
2155
|
+
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
|
|
2156
|
+
"consent.scope.email.title": "Email Address",
|
|
2157
|
+
"consent.scope.email.description": "Retrieve your email address and its verification status.",
|
|
2158
|
+
"consent.scope.address.title": "Physical Address",
|
|
2159
|
+
"consent.scope.address.description": "Access your postal address.",
|
|
2160
|
+
"consent.scope.phone.title": "Phone Number",
|
|
2161
|
+
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
|
|
2162
|
+
"error.title.what-happened": "What happened?",
|
|
2163
|
+
"error.title.what-can-i-do": "What can I do?",
|
|
2164
|
+
"error.instructions": "Please try again in a few minutes or contact the website operator.",
|
|
2165
|
+
"error.footer.text": "When reporting this error, please include the following information:",
|
|
2166
|
+
"error.footer.copy": "Copy",
|
|
2167
|
+
"error.action.go-back": "Go back"
|
|
2007
2168
|
};
|
|
2008
2169
|
|
|
2009
2170
|
// src/locales/de.json
|
|
@@ -2174,7 +2335,7 @@ var de_default = {
|
|
|
2174
2335
|
"two-step.code.description": "Ein Best\xE4tigungscode wird an Ihre E-Mail gesendet.",
|
|
2175
2336
|
"two-step.code.title": "E-Mail-Code",
|
|
2176
2337
|
"two-step.passkey.description": "Verwenden Sie die Fingerabdruck- oder Gesichtserkennung Ihres Ger\xE4ts",
|
|
2177
|
-
"two-step.passkey.title": "
|
|
2338
|
+
"two-step.passkey.title": "Passkey (empfohlen)",
|
|
2178
2339
|
"two-step.password.description": "Geben Sie Ihr Passwort ein, das mit Ihrem Konto verkn\xFCpft ist",
|
|
2179
2340
|
"two-step.password.title": "Passwort",
|
|
2180
2341
|
"two-step.webauthn.title": "Sicherheitsschl\xFCssel",
|
|
@@ -2268,7 +2429,27 @@ var de_default = {
|
|
|
2268
2429
|
"property.password": "Passwort",
|
|
2269
2430
|
"property.phone": "Telefon",
|
|
2270
2431
|
"property.code": "Code",
|
|
2271
|
-
"property.username": "Benutzername"
|
|
2432
|
+
"property.username": "Benutzername",
|
|
2433
|
+
"consent.title": "Autorisieren {party}",
|
|
2434
|
+
"consent.subtitle": "Eine Drittanbieteranwendung m\xF6chte auf Informationen zugreifen, die mit Ihrem Konto {identifier} verkn\xFCpft sind.",
|
|
2435
|
+
"consent.scope.openid.title": "Identit\xE4t",
|
|
2436
|
+
"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.",
|
|
2437
|
+
"consent.scope.offline_access.title": "Offline-Zugriff",
|
|
2438
|
+
"consent.scope.offline_access.description": "Erm\xF6glicht dieser Anwendung, Sie angemeldet zu lassen, auch wenn Sie sie nicht aktiv nutzen.",
|
|
2439
|
+
"consent.scope.profile.title": "Profilinformationen",
|
|
2440
|
+
"consent.scope.profile.description": "Erm\xF6glicht den Zugriff auf Ihre grundlegenden Profildetails, einschlie\xDFlich Ihres Benutzernamens, Vornamens und Nachnamens.",
|
|
2441
|
+
"consent.scope.email.title": "E-Mail-Adresse",
|
|
2442
|
+
"consent.scope.email.description": "Erm\xF6glicht den Abruf Ihrer E-Mail-Adresse und deren \xDCberpr\xFCfungsstatus.",
|
|
2443
|
+
"consent.scope.address.title": "Physische Adresse",
|
|
2444
|
+
"consent.scope.address.description": "Erm\xF6glicht den Zugriff auf Ihre Postanschrift.",
|
|
2445
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
2446
|
+
"consent.scope.phone.description": "Erm\xF6glicht den Abruf Ihrer Telefonnummer und deren \xDCberpr\xFCfungsstatus.",
|
|
2447
|
+
"error.title.what-happened": "Was ist passiert?",
|
|
2448
|
+
"error.footer.copy": "Kopieren",
|
|
2449
|
+
"error.footer.text": "Bitte f\xFCgen Sie bei der Meldung dieses Fehlers die folgenden Informationen hinzu:",
|
|
2450
|
+
"error.instructions": "Bitte versuchen Sie es in wenigen Minuten erneut oder wenden Sie sich an den Website-Betreiber.",
|
|
2451
|
+
"error.title.what-can-i-do": "Was kann ich tun?",
|
|
2452
|
+
"error.action.go-back": "Zur\xFCck"
|
|
2272
2453
|
};
|
|
2273
2454
|
|
|
2274
2455
|
// src/locales/es.json
|
|
@@ -2284,7 +2465,7 @@ var es_default = {
|
|
|
2284
2465
|
"error.back-button": "Regresar",
|
|
2285
2466
|
"error.description": "Ocurri\xF3 un error con el siguiente mensaje:",
|
|
2286
2467
|
"error.support-email-link": "Si el problema persiste, por favor contacte a <a>{contactSupportEmail}</a>",
|
|
2287
|
-
"error.title": "
|
|
2468
|
+
"error.title": "",
|
|
2288
2469
|
"error.title-internal-server-error": "Error Interno del Servidor",
|
|
2289
2470
|
"error.title-not-found": "404 - P\xE1gina no encontrada",
|
|
2290
2471
|
"identities.messages.1010001": "Iniciar sesi\xF3n",
|
|
@@ -2533,7 +2714,27 @@ var es_default = {
|
|
|
2533
2714
|
"property.identifier": "",
|
|
2534
2715
|
"property.password": "",
|
|
2535
2716
|
"property.phone": "",
|
|
2536
|
-
"property.username": ""
|
|
2717
|
+
"property.username": "",
|
|
2718
|
+
"consent.title": "Autorizar {party}",
|
|
2719
|
+
"consent.subtitle": "Una aplicaci\xF3n de terceros quiere acceder a la informaci\xF3n asociada a su cuenta {identifier}.",
|
|
2720
|
+
"consent.scope.openid.title": "Identidad",
|
|
2721
|
+
"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.",
|
|
2722
|
+
"consent.scope.offline_access.title": "Acceso sin conexi\xF3n",
|
|
2723
|
+
"consent.scope.offline_access.description": "Permite que esta aplicaci\xF3n le mantenga conectado incluso cuando no la est\xE9 utilizando activamente.",
|
|
2724
|
+
"consent.scope.profile.title": "Informaci\xF3n del perfil",
|
|
2725
|
+
"consent.scope.profile.description": "Permite el acceso a los detalles b\xE1sicos de su perfil, incluyendo su nombre de usuario, nombre y apellido.",
|
|
2726
|
+
"consent.scope.email.title": "Direcci\xF3n de correo electr\xF3nico",
|
|
2727
|
+
"consent.scope.email.description": "Recupere su direcci\xF3n de correo electr\xF3nico y su estado de verificaci\xF3n.",
|
|
2728
|
+
"consent.scope.address.title": "Direcci\xF3n f\xEDsica",
|
|
2729
|
+
"consent.scope.address.description": "Acceda a su direcci\xF3n postal.",
|
|
2730
|
+
"consent.scope.phone.title": "N\xFAmero de tel\xE9fono",
|
|
2731
|
+
"consent.scope.phone.description": "Recupere su n\xFAmero de tel\xE9fono y su estado de verificaci\xF3n.",
|
|
2732
|
+
"error.action.go-back": "",
|
|
2733
|
+
"error.footer.copy": "",
|
|
2734
|
+
"error.footer.text": "",
|
|
2735
|
+
"error.instructions": "",
|
|
2736
|
+
"error.title.what-can-i-do": "",
|
|
2737
|
+
"error.title.what-happened": ""
|
|
2537
2738
|
};
|
|
2538
2739
|
|
|
2539
2740
|
// src/locales/fr.json
|
|
@@ -2798,7 +2999,27 @@ var fr_default = {
|
|
|
2798
2999
|
"property.identifier": "",
|
|
2799
3000
|
"property.password": "",
|
|
2800
3001
|
"property.phone": "",
|
|
2801
|
-
"property.username": ""
|
|
3002
|
+
"property.username": "",
|
|
3003
|
+
"consent.title": "Autoriser {party}",
|
|
3004
|
+
"consent.subtitle": "Une application tierce souhaite acc\xE9der aux informations associ\xE9es \xE0 votre compte {identifier}.",
|
|
3005
|
+
"consent.scope.openid.title": "Identit\xE9",
|
|
3006
|
+
"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.",
|
|
3007
|
+
"consent.scope.offline_access.title": "Acc\xE8s hors ligne",
|
|
3008
|
+
"consent.scope.offline_access.description": "Permet \xE0 cette application de vous maintenir connect\xE9 m\xEAme lorsque vous ne l'utilisez pas activement.",
|
|
3009
|
+
"consent.scope.profile.title": "Informations de profil",
|
|
3010
|
+
"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.",
|
|
3011
|
+
"consent.scope.email.title": "Adresse e-mail",
|
|
3012
|
+
"consent.scope.email.description": "R\xE9cup\xE8re votre adresse e-mail et son statut de v\xE9rification.",
|
|
3013
|
+
"consent.scope.address.title": "Adresse physique",
|
|
3014
|
+
"consent.scope.address.description": "Acc\xE8de \xE0 votre adresse postale.",
|
|
3015
|
+
"consent.scope.phone.title": "Num\xE9ro de t\xE9l\xE9phone",
|
|
3016
|
+
"consent.scope.phone.description": "R\xE9cup\xE8re votre num\xE9ro de t\xE9l\xE9phone et son statut de v\xE9rification.",
|
|
3017
|
+
"error.action.go-back": "",
|
|
3018
|
+
"error.footer.copy": "",
|
|
3019
|
+
"error.footer.text": "",
|
|
3020
|
+
"error.title.what-can-i-do": "",
|
|
3021
|
+
"error.title.what-happened": "",
|
|
3022
|
+
"error.instructions": ""
|
|
2802
3023
|
};
|
|
2803
3024
|
|
|
2804
3025
|
// src/locales/nl.json
|
|
@@ -3063,7 +3284,27 @@ var nl_default = {
|
|
|
3063
3284
|
"property.identifier": "",
|
|
3064
3285
|
"property.password": "",
|
|
3065
3286
|
"property.phone": "",
|
|
3066
|
-
"property.username": ""
|
|
3287
|
+
"property.username": "",
|
|
3288
|
+
"consent.title": "Autoriseren {party}",
|
|
3289
|
+
"consent.subtitle": "Een derde partij applicatie wil toegang tot informatie die aan uw account {identifier} is gekoppeld.",
|
|
3290
|
+
"consent.scope.openid.title": "Identiteit",
|
|
3291
|
+
"consent.scope.openid.description": "Stelt de applicatie in staat uw identiteit te verifi\xEBren. Dit is vereist voor authenticatie en een betrouwbare inlogervaring.",
|
|
3292
|
+
"consent.scope.offline_access.title": "Offline toegang",
|
|
3293
|
+
"consent.scope.offline_access.description": "Stelt deze applicatie in staat u ingelogd te houden, zelfs wanneer u deze niet actief gebruikt.",
|
|
3294
|
+
"consent.scope.profile.title": "Profielinformatie",
|
|
3295
|
+
"consent.scope.profile.description": "Geeft toegang tot uw basisprofielgegevens, inclusief uw gebruikersnaam, voornaam en achternaam.",
|
|
3296
|
+
"consent.scope.email.title": "E-mailadres",
|
|
3297
|
+
"consent.scope.email.description": "Haal uw e-mailadres en de verificatiestatus ervan op.",
|
|
3298
|
+
"consent.scope.address.title": "Fysiek adres",
|
|
3299
|
+
"consent.scope.address.description": "Toegang tot uw postadres.",
|
|
3300
|
+
"consent.scope.phone.title": "Telefoonnummer",
|
|
3301
|
+
"consent.scope.phone.description": "Haal uw telefoonnummer en de verificatiestatus ervan op.",
|
|
3302
|
+
"error.action.go-back": "",
|
|
3303
|
+
"error.footer.copy": "",
|
|
3304
|
+
"error.footer.text": "",
|
|
3305
|
+
"error.title.what-can-i-do": "",
|
|
3306
|
+
"error.title.what-happened": "",
|
|
3307
|
+
"error.instructions": ""
|
|
3067
3308
|
};
|
|
3068
3309
|
|
|
3069
3310
|
// src/locales/pl.json
|
|
@@ -3328,7 +3569,27 @@ var pl_default = {
|
|
|
3328
3569
|
"property.password": "",
|
|
3329
3570
|
"property.phone": "",
|
|
3330
3571
|
"property.username": "",
|
|
3331
|
-
"property.identifier": ""
|
|
3572
|
+
"property.identifier": "",
|
|
3573
|
+
"consent.title": "Autoryzuj {party}",
|
|
3574
|
+
"consent.subtitle": "Aplikacja trzeciej strony chce uzyska\u0107 dost\u0119p do informacji powi\u0105zanych z Twoim kontem {identifier}.",
|
|
3575
|
+
"consent.scope.openid.title": "To\u017Csamo\u015B\u0107",
|
|
3576
|
+
"consent.scope.openid.description": "Pozwala aplikacji zweryfikowa\u0107 Twoj\u0105 to\u017Csamo\u015B\u0107. Jest to wymagane do uwierzytelniania i zapewnienia zaufanej sesji logowania.",
|
|
3577
|
+
"consent.scope.offline_access.title": "Dost\u0119p offline",
|
|
3578
|
+
"consent.scope.offline_access.description": "Pozwala aplikacji utrzyma\u0107 Twoje logowanie, nawet gdy nie korzystasz z niej aktywnie.",
|
|
3579
|
+
"consent.scope.profile.title": "Informacje profilowe",
|
|
3580
|
+
"consent.scope.profile.description": "Pozwala na dost\u0119p do podstawowych danych profilowych, w tym nazwy u\u017Cytkownika, imienia i nazwiska.",
|
|
3581
|
+
"consent.scope.email.title": "Adres e-mail",
|
|
3582
|
+
"consent.scope.email.description": "Pobierz sw\xF3j adres e-mail oraz status jego weryfikacji.",
|
|
3583
|
+
"consent.scope.address.title": "Adres fizyczny",
|
|
3584
|
+
"consent.scope.address.description": "Dost\u0119p do Twojego adresu pocztowego.",
|
|
3585
|
+
"consent.scope.phone.title": "Numer telefonu",
|
|
3586
|
+
"consent.scope.phone.description": "Pobierz sw\xF3j numer telefonu oraz status jego weryfikacji.",
|
|
3587
|
+
"error.action.go-back": "",
|
|
3588
|
+
"error.footer.copy": "",
|
|
3589
|
+
"error.footer.text": "",
|
|
3590
|
+
"error.title.what-can-i-do": "",
|
|
3591
|
+
"error.title.what-happened": "",
|
|
3592
|
+
"error.instructions": ""
|
|
3332
3593
|
};
|
|
3333
3594
|
|
|
3334
3595
|
// src/locales/pt.json
|
|
@@ -3593,7 +3854,27 @@ var pt_default = {
|
|
|
3593
3854
|
"property.identifier": "",
|
|
3594
3855
|
"property.password": "",
|
|
3595
3856
|
"property.phone": "",
|
|
3596
|
-
"property.username": ""
|
|
3857
|
+
"property.username": "",
|
|
3858
|
+
"consent.title": "Autorizar {party}",
|
|
3859
|
+
"consent.subtitle": "Um aplicativo de terceiros deseja acessar as informa\xE7\xF5es associadas \xE0 sua conta {identifier}.",
|
|
3860
|
+
"consent.scope.openid.title": "Identidade",
|
|
3861
|
+
"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.",
|
|
3862
|
+
"consent.scope.offline_access.title": "Acesso Offline",
|
|
3863
|
+
"consent.scope.offline_access.description": "Permite que este aplicativo mantenha voc\xEA conectado mesmo quando n\xE3o estiver usando-o ativamente.",
|
|
3864
|
+
"consent.scope.profile.title": "Informa\xE7\xF5es do Perfil",
|
|
3865
|
+
"consent.scope.profile.description": "Permite o acesso aos detalhes b\xE1sicos do seu perfil, incluindo seu nome de usu\xE1rio, primeiro nome e sobrenome.",
|
|
3866
|
+
"consent.scope.email.title": "Endere\xE7o de E-mail",
|
|
3867
|
+
"consent.scope.email.description": "Recupere seu endere\xE7o de e-mail e seu status de verifica\xE7\xE3o.",
|
|
3868
|
+
"consent.scope.address.title": "Endere\xE7o F\xEDsico",
|
|
3869
|
+
"consent.scope.address.description": "Acesse seu endere\xE7o postal.",
|
|
3870
|
+
"consent.scope.phone.title": "N\xFAmero de Telefone",
|
|
3871
|
+
"consent.scope.phone.description": "Recupere seu n\xFAmero de telefone e seu status de verifica\xE7\xE3o.",
|
|
3872
|
+
"error.action.go-back": "",
|
|
3873
|
+
"error.footer.copy": "",
|
|
3874
|
+
"error.footer.text": "",
|
|
3875
|
+
"error.title.what-can-i-do": "",
|
|
3876
|
+
"error.title.what-happened": "",
|
|
3877
|
+
"error.instructions": ""
|
|
3597
3878
|
};
|
|
3598
3879
|
|
|
3599
3880
|
// src/locales/sv.json
|
|
@@ -3858,7 +4139,27 @@ var sv_default = {
|
|
|
3858
4139
|
"property.phone": "telefon",
|
|
3859
4140
|
"property.username": "anv\xE4ndarnamn",
|
|
3860
4141
|
"property.identifier": "identifier",
|
|
3861
|
-
"property.code": "kod"
|
|
4142
|
+
"property.code": "kod",
|
|
4143
|
+
"consent.title": "Auktorisera {party}",
|
|
4144
|
+
"consent.subtitle": "En tredjepartsapplikation vill f\xE5 tillg\xE5ng till information kopplad till ditt konto {identifier}.",
|
|
4145
|
+
"consent.scope.openid.title": "Identitet",
|
|
4146
|
+
"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.",
|
|
4147
|
+
"consent.scope.offline_access.title": "Offline-\xE5tkomst",
|
|
4148
|
+
"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.",
|
|
4149
|
+
"consent.scope.profile.title": "Profilinformation",
|
|
4150
|
+
"consent.scope.profile.description": "Ger tillg\xE5ng till dina grundl\xE4ggande profiluppgifter, inklusive ditt anv\xE4ndarnamn, f\xF6rnamn och efternamn.",
|
|
4151
|
+
"consent.scope.email.title": "E-postadress",
|
|
4152
|
+
"consent.scope.email.description": "H\xE4mta din e-postadress och dess verifieringsstatus.",
|
|
4153
|
+
"consent.scope.address.title": "Fysisk adress",
|
|
4154
|
+
"consent.scope.address.description": "F\xE5 \xE5tkomst till din postadress.",
|
|
4155
|
+
"consent.scope.phone.title": "Telefonnummer",
|
|
4156
|
+
"consent.scope.phone.description": "H\xE4mta ditt telefonnummer och dess verifieringsstatus.",
|
|
4157
|
+
"error.action.go-back": "",
|
|
4158
|
+
"error.footer.copy": "",
|
|
4159
|
+
"error.footer.text": "",
|
|
4160
|
+
"error.title.what-can-i-do": "",
|
|
4161
|
+
"error.title.what-happened": "",
|
|
4162
|
+
"error.instructions": ""
|
|
3862
4163
|
};
|
|
3863
4164
|
|
|
3864
4165
|
// src/locales/index.ts
|
|
@@ -3879,6 +4180,7 @@ exports.OryCardContent = OryCardContent;
|
|
|
3879
4180
|
exports.OryCardFooter = OryCardFooter;
|
|
3880
4181
|
exports.OryCardHeader = OryCardHeader;
|
|
3881
4182
|
exports.OryCardValidationMessages = OryCardValidationMessages;
|
|
4183
|
+
exports.OryConsentCard = OryConsentCard;
|
|
3882
4184
|
exports.OryForm = OryForm;
|
|
3883
4185
|
exports.OryFormGroupDivider = OryFormGroupDivider;
|
|
3884
4186
|
exports.OryFormGroups = OryFormGroups;
|