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