@easyyo/ory.elements-react
Version:
Ory Elements React - a collection of React components for authentication UIs.
904 lines (853 loc) • 388 kB
JavaScript
"use client"
// src/theme/default/assets/ory-badge-horizontal.svg
import * as React from "react";
import { jsx, jsxs } from "react/jsx-runtime";
var SvgOryBadgeHorizontal = (props) => {
var _a, _b;
return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: [
/* @__PURE__ */ jsx("path", { fill: "currentColor", d: "M18.007 8h-1.71l2.007-3.996L16.296 0h1.711l1.145 2.301L20.327 0H22z" }),
/* @__PURE__ */ jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M12.902 4.86a2.47 2.47 0 0 0 1.796-2.365v-.038C14.687 1.097 13.592 0 12.245 0H9.037v1.44l1.208 1.985H9.04V8h1.51V4.949h.633L13.04 8h1.775zm-.876-1.431h.223c.52 0 .943-.427.943-.953a.95.95 0 0 0-.943-.952h-1.39zM4 0a4 4 0 1 0-.001 7.999A4 4 0 0 0 4 0M1.524 4a2.476 2.476 0 1 0 4.952 0 2.476 2.476 0 0 0-4.952 0", clipRule: "evenodd" })
] });
};
var ory_badge_horizontal_default = SvgOryBadgeHorizontal;
// src/theme/default/assets/ory-badge-vertical.svg
import * as React2 from "react";
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
var SvgOryBadgeVertical = (props) => {
var _a, _b;
return /* @__PURE__ */ jsxs2("svg", { xmlns: "http://www.w3.org/2000/svg", width: (props == null ? void 0 : props.width) ? props.width : (_a = props == null ? void 0 : props.size) != null ? _a : 20, height: (props == null ? void 0 : props.height) ? props.height : (_b = props == null ? void 0 : props.size) != null ? _b : 20, fill: "none", ...props, children: [
/* @__PURE__ */ jsx2("path", { fill: "currentColor", d: "M8 3.993v1.71L4.004 3.697 0 5.704V3.993l2.301-1.145L0 1.673V0z" }),
/* @__PURE__ */ jsx2("path", { fill: "currentColor", fillRule: "evenodd", d: "M4.86 9.099a2.47 2.47 0 0 0-2.365-1.797h-.038C1.097 7.313 0 8.408 0 9.755v3.208h1.44l1.985-1.208v1.204H8v-1.51H4.949v-.633L8 8.96V7.185zm-1.431.875v-.223a.95.95 0 0 0-.953-.943.95.95 0 0 0-.952.943v1.39zM0 18a4 4 0 1 0 8 0 4 4 0 0 0-8 0m4 2.476a2.476 2.476 0 1 0 0-4.952 2.476 2.476 0 0 0 0 4.952", clipRule: "evenodd" })
] });
};
var ory_badge_vertical_default = SvgOryBadgeVertical;
// src/theme/default/components/card/badge.tsx
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
function Badge() {
return /* @__PURE__ */ jsxs3("div", { className: "absolute border border-ory-border-default bg-ory-background-default p-2 font-bold text-ory-foreground-default max-sm:bottom-0 max-sm:left-8 max-sm:translate-y-full max-sm:rounded-b-branding max-sm:py-[7px] sm:top-8 sm:right-0 sm:translate-x-full sm:rounded-r-branding sm:pl-[7px]", children: [
/* @__PURE__ */ jsx3(ory_badge_horizontal_default, { width: 22, height: 8, className: "sm:hidden" }),
/* @__PURE__ */ jsx3(ory_badge_vertical_default, { width: 8, height: 22, className: "max-sm:hidden" })
] });
}
// src/theme/default/components/card/content.tsx
function DefaultCardContent({ children }) {
return children;
}
// src/theme/default/components/card/footer.tsx
import { FlowType as FlowType11 } from "@ory/client-fetch";
import {
useComponents as useComponents3,
useOryConfiguration as useOryConfiguration2,
useOryFlow as useOryFlow3
} from "@ory/elements-react";
import { useIntl as useIntl9 } from "react-intl";
// src/components/card/two-step/state-select-method.tsx
import {
isUiNodeScriptAttributes as isUiNodeScriptAttributes6,
UiNodeGroupEnum as UiNodeGroupEnum14
} from "@ory/client-fetch";
// src/context/component.tsx
import {
isUiNodeInputAttributes,
UiNodeGroupEnum
} from "@ory/client-fetch";
import { createContext, useContext } from "react";
import { jsx as jsx4 } from "react/jsx-runtime";
var ComponentContext = createContext({
components: null,
// fine because we throw an error if it's not provided
nodeSorter: () => 0,
groupSorter: () => 0
});
var defaultGroupOrder = [
UiNodeGroupEnum.Default,
UiNodeGroupEnum.Profile,
UiNodeGroupEnum.Password,
UiNodeGroupEnum.Oidc,
UiNodeGroupEnum.Code,
UiNodeGroupEnum.LookupSecret,
UiNodeGroupEnum.Passkey,
UiNodeGroupEnum.Webauthn,
UiNodeGroupEnum.Totp
];
// src/context/flow-context.tsx
import {
createContext as createContext2,
useContext as useContext2,
useState as useState2
} from "react";
// src/context/form-state.ts
import { FlowType as FlowType2 } from "@ory/client-fetch";
import { useReducer, useState } from "react";
// src/components/card/two-step/utils.ts
import { FlowType, UiNodeGroupEnum as UiNodeGroupEnum3 } from "@ory/client-fetch";
// src/theme/default/utils/form.ts
function isGroupImmediateSubmit(group) {
return group === "code";
}
// src/util/ui/index.ts
import {
isUiNodeInputAttributes as isUiNodeInputAttributes2,
isUiNodeScriptAttributes
} from "@ory/client-fetch";
import { UiNodeGroupEnum as UiNodeGroupEnum2 } from "@ory/client-fetch";
import { useMemo } from "react";
function triggerToFunction(trigger) {
if (typeof window === "undefined") {
console.debug(
"The Ory SDK is missing a required function: window is undefined."
);
return void 0;
}
const typedWindow = window;
if (!(trigger in typedWindow) || !typedWindow[trigger]) {
console.debug(`The Ory SDK is missing a required function: ${trigger}.`);
return void 0;
}
const triggerFn = typedWindow[trigger];
if (typeof triggerFn !== "function") {
console.debug(
`The Ory SDK is missing a required function: ${trigger}. It is not a function.`
);
return void 0;
}
return triggerFn;
}
function nodesToAuthMethodGroups(nodes, excludeAuthMethods = []) {
var _a;
const groups = {};
for (const node of nodes) {
if (node.type === "script") {
continue;
}
const groupNodes = (_a = groups[node.group]) != null ? _a : [];
groupNodes.push(node);
groups[node.group] = groupNodes;
}
return Object.values(UiNodeGroupEnum2).filter((group) => {
var _a2;
return (_a2 = groups[group]) == null ? void 0 : _a2.length;
}).filter(
(group) => ![
UiNodeGroupEnum2.Default,
UiNodeGroupEnum2.IdentifierFirst,
UiNodeGroupEnum2.Profile,
UiNodeGroupEnum2.Captcha,
...excludeAuthMethods
].includes(group)
);
}
var findNode = (nodes, opt) => nodes.find((n) => {
return n.attributes.node_type === opt.node_type && (opt.group instanceof RegExp ? n.group.match(opt.group) : n.group === opt.group) && (opt.name && n.attributes.node_type === "input" ? opt.name instanceof RegExp ? n.attributes.name.match(opt.name) : n.attributes.name === opt.name : !opt.name) && (opt.type && n.attributes.node_type === "input" ? opt.type instanceof RegExp ? n.attributes.type.match(opt.type) : n.attributes.type === opt.type : !opt.type);
});
function isNodeVisible(node) {
if (isUiNodeScriptAttributes(node.attributes)) {
return false;
} else if (isUiNodeInputAttributes2(node.attributes)) {
if (node.attributes.type === "hidden") {
return false;
}
}
return true;
}
function useNodeGroupsWithVisibleNodes(nodes) {
return useMemo(() => {
var _a, _b;
const groups = {};
const groupRetained = {};
for (const node of nodes) {
const groupNodes = (_a = groups[node.group]) != null ? _a : [];
const groupCount = (_b = groupRetained[node.group]) != null ? _b : 0;
groupNodes.push(node);
groups[node.group] = groupNodes;
if (!isNodeVisible(node)) {
continue;
}
groupRetained[node.group] = groupCount + 1;
}
const finalGroups = {};
for (const [group, count] of Object.entries(groupRetained)) {
if (count > 0) {
finalGroups[group] = groups[group];
}
}
return finalGroups;
}, [nodes]);
}
// src/context/flow-context.tsx
import { jsx as jsx5 } from "react/jsx-runtime";
var OryFlowContext = createContext2(null);
// src/context/config.tsx
import { createContext as createContext3, useContext as useContext3, useRef } from "react";
// src/client/config.ts
function isProduction() {
var _a, _b;
return ["production", "prod"].indexOf(
(_b = (_a = process.env.VERCEL_ENV) != null ? _a : process.env.NODE_ENV) != null ? _b : ""
) > -1;
}
// src/util/client.ts
import {
Configuration,
FrontendApi
} from "@ory/client-fetch";
function frontendClient(sdkUrl, opts = {}) {
const config = new Configuration({
...opts,
basePath: sdkUrl,
credentials: "include",
headers: {
Accept: "application/json",
...opts.headers
}
});
return new FrontendApi(config);
}
// src/context/config.tsx
import { jsx as jsx6 } from "react/jsx-runtime";
var defaultProject = {
name: "Ory",
registration_enabled: true,
verification_enabled: true,
recovery_enabled: true,
recovery_ui_url: "/ui/recovery",
registration_ui_url: "/ui/registration",
verification_ui_url: "/ui/verification",
login_ui_url: "/ui/login",
settings_ui_url: "/ui/settings",
default_redirect_url: "/ui/welcome",
error_ui_url: "/ui/error",
default_locale: "en",
locale_behavior: "force_default"
};
var OryConfigurationContext = createContext3({
sdk: computeSdkConfig({}),
project: defaultProject
});
function computeSdkConfig(config) {
if ((config == null ? void 0 : config.url) && typeof config.url === "string") {
return {
url: config.url.replace(/\/$/, ""),
options: config.options || {}
};
}
return {
url: getSDKUrl(),
options: (config == null ? void 0 : config.options) || {}
};
}
function getSDKUrl() {
var _a;
if (typeof process !== "undefined" && process.versions && process.versions.node) {
if (isProduction()) {
const sdkUrl = (_a = process.env["NEXT_PUBLIC_ORY_SDK_URL"]) != null ? _a : process.env["ORY_SDK_URL"];
if (!sdkUrl) {
throw new Error(
"Unable to determine SDK URL. Please set NEXT_PUBLIC_ORY_SDK_URL and/or ORY_SDK_URL in production environments."
);
}
return sdkUrl.replace(/\/$/, "");
} else {
if (process.env["__NEXT_PRIVATE_ORIGIN"]) {
return process.env["__NEXT_PRIVATE_ORIGIN"].replace(/\/$/, "");
} else if (process.env["VERCEL_URL"]) {
return `https://${process.env["VERCEL_URL"]}`.replace(/\/$/, "");
}
}
}
if (typeof window !== "undefined") {
return window.location.origin;
}
throw new Error(
"Unable to determine SDK URL. Please set NEXT_PUBLIC_ORY_SDK_URL and/or ORY_SDK_URL or supply the sdk.url parameter in the Ory configuration."
);
}
// src/context/intl-context.tsx
import { useContext as useContext4 } from "react";
import { IntlProvider as OriginalIntlProvider, IntlContext } from "react-intl";
// src/components/form/form.tsx
import {
FlowType as FlowType9,
isUiNodeAnchorAttributes,
isUiNodeImageAttributes,
isUiNodeInputAttributes as isUiNodeInputAttributes4,
isUiNodeScriptAttributes as isUiNodeScriptAttributes2
} from "@ory/client-fetch";
import { useFormContext as useFormContext2 } from "react-hook-form";
import { useIntl } from "react-intl";
// src/components/form/useOryFormSubmit.ts
import {
FlowType as FlowType8,
UiNodeGroupEnum as UiNodeGroupEnum5
} from "@ory/client-fetch";
import { useFormContext } from "react-hook-form";
// src/util/onSubmitLogin.ts
import {
FlowType as FlowType3,
loginUrl
} from "@ory/client-fetch";
// src/util/sdk-helpers/error.ts
import {
ResponseError,
FetchError
} from "@ory/client-fetch";
// src/util/sdk-helpers/utils.ts
import { FetchError as FetchError2, ResponseError as ResponseError2 } from "@ory/client-fetch";
// src/util/onSubmitRecovery.ts
import {
FlowType as FlowType4,
handleContinueWith,
instanceOfContinueWithRecoveryUi,
recoveryUrl
} from "@ory/client-fetch";
// src/util/onSubmitRegistration.ts
import {
FlowType as FlowType5,
handleContinueWith as handleContinueWith2,
registrationUrl
} from "@ory/client-fetch";
// src/util/onSubmitSettings.ts
import {
FlowType as FlowType6,
handleContinueWith as handleContinueWith3,
isResponseError as isResponseError2,
loginUrl as loginUrl2,
settingsUrl
} from "@ory/client-fetch";
// src/util/onSubmitVerification.ts
import {
FlowType as FlowType7,
verificationUrl as verificationUrl2
} from "@ory/client-fetch";
// src/components/form/form-helpers.ts
import { isUiNodeInputAttributes as isUiNodeInputAttributes3 } from "@ory/client-fetch";
// src/components/form/form.tsx
import { jsx as jsx7 } from "react/jsx-runtime";
// src/components/form/messages.tsx
import { jsx as jsx8 } from "react/jsx-runtime";
// src/components/form/social.tsx
import {
getNodeId,
UiNodeGroupEnum as UiNodeGroupEnum7
} from "@ory/client-fetch";
import { useFormContext as useFormContext3 } from "react-hook-form";
// src/components/form/form-provider.tsx
import { UiNodeGroupEnum as UiNodeGroupEnum6 } from "@ory/client-fetch";
import { FormProvider, useForm } from "react-hook-form";
// src/components/form/form-resolver.ts
import { isUiNodeInputAttributes as isUiNodeInputAttributes5 } from "@ory/client-fetch";
// src/components/form/form-provider.tsx
import { jsx as jsx9 } from "react/jsx-runtime";
// src/components/form/social.tsx
import { jsx as jsx10 } from "react/jsx-runtime";
// src/components/form/settings-section.tsx
import { useFormContext as useFormContext4 } from "react-hook-form";
import { jsx as jsx11 } from "react/jsx-runtime";
// src/components/generic/divider.tsx
import { UiNodeGroupEnum as UiNodeGroupEnum8 } from "@ory/client-fetch";
import { jsx as jsx12 } from "react/jsx-runtime";
// src/components/generic/page-header.tsx
import { jsx as jsx13 } from "react/jsx-runtime";
// src/components/settings/settings-card.tsx
import {
getNodeId as getNodeId2,
isUiNodeScriptAttributes as isUiNodeScriptAttributes4,
UiNodeGroupEnum as UiNodeGroupEnum11
} from "@ory/client-fetch";
import { useEffect as useEffect2 } from "react";
import { useIntl as useIntl7 } from "react-intl";
import { Toaster } from "sonner";
// src/util/showToast.tsx
import { toast as sonnerToast } from "sonner";
import { jsx as jsx14 } from "react/jsx-runtime";
// src/components/form/nodes/input.tsx
import {
UiNodeGroupEnum as UiNodeGroupEnum9,
UiNodeInputAttributesTypeEnum
} from "@ory/client-fetch";
import { useEffect, useRef as useRef2 } from "react";
import { useFormContext as useFormContext5 } from "react-hook-form";
import { jsx as jsx15 } from "react/jsx-runtime";
// src/components/form/nodes/node.tsx
import {
isUiNodeAnchorAttributes as isUiNodeAnchorAttributes2,
isUiNodeImageAttributes as isUiNodeImageAttributes2,
isUiNodeInputAttributes as isUiNodeInputAttributes6,
isUiNodeScriptAttributes as isUiNodeScriptAttributes3,
isUiNodeTextAttributes,
UiNodeGroupEnum as UiNodeGroupEnum10
} from "@ory/client-fetch";
import { jsx as jsx16 } from "react/jsx-runtime";
// src/components/settings/oidc-settings.tsx
import { useIntl as useIntl2 } from "react-intl";
import { useFormContext as useFormContext6 } from "react-hook-form";
import { Fragment, jsx as jsx17, jsxs as jsxs4 } from "react/jsx-runtime";
// src/components/settings/passkey-settings.tsx
import { useFormContext as useFormContext7 } from "react-hook-form";
import { useIntl as useIntl3 } from "react-intl";
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs5 } from "react/jsx-runtime";
// src/components/settings/recovery-codes-settings.tsx
import { useIntl as useIntl4 } from "react-intl";
import { useFormContext as useFormContext8 } from "react-hook-form";
import { Fragment as Fragment3, jsx as jsx19, jsxs as jsxs6 } from "react/jsx-runtime";
// src/components/settings/totp-settings.tsx
import { useFormContext as useFormContext9 } from "react-hook-form";
import { useIntl as useIntl5 } from "react-intl";
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
// src/components/settings/webauthn-settings.tsx
import { useFormContext as useFormContext10 } from "react-hook-form";
import { useIntl as useIntl6 } from "react-intl";
import { Fragment as Fragment5, jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
// src/components/settings/settings-card.tsx
import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
// src/util/i18n/index.ts
var uiTextToFormattedMessage = ({ id, context = {}, text }, intl) => {
const contextInjectedMessage = Object.entries(context).reduce(
(accumulator, [key, value]) => {
if (Array.isArray(value)) {
return {
...accumulator,
[key]: value,
[key + "_list"]: intl.formatList(value)
};
} else if (key.endsWith("_unix")) {
if (typeof value === "number") {
return {
...accumulator,
[key]: intl.formatDate(new Date(value * 1e3)),
[key + "_since"]: intl.formatDateTimeRange(
new Date(value),
/* @__PURE__ */ new Date()
),
[key + "_since_minutes"]: Math.ceil(
(value - (/* @__PURE__ */ new Date()).getTime() / 1e3) / 60
).toFixed(0),
[key + "_until"]: intl.formatDateTimeRange(
/* @__PURE__ */ new Date(),
new Date(value)
),
[key + "_until_minutes"]: Math.ceil(
((/* @__PURE__ */ new Date()).getTime() / 1e3 - value) / 60
).toFixed(0)
};
}
} else if (key === "property") {
return {
...accumulator,
[key]: intl.formatMessage({
id: `property.${value}`,
defaultMessage: value
})
};
}
return {
...accumulator,
[key]: value
};
},
{}
);
return intl.formatMessage(
{
id: `identities.messages.${id}`,
defaultMessage: text
},
contextInjectedMessage
);
};
// src/locales/en.json
var en_default = {
"consent.action-accept": "Allow",
"consent.action-reject": "Deny",
"consent.description": "Only grant permissions if you trust this site or app. You do not need to accept all permissions.",
"consent.privacy-policy-label": "Privacy Policy",
"consent.remember-label": "Remember this decision for next time. The application will not be able to ask for additional permissions without your consent.",
"consent.remember-tooltip": "remember my decision",
"consent.requested-permissions-label": "The application requests access to the following permissions:",
"consent.terms-of-service-label": "Terms of Service",
"error.back-button": "Go Back",
"error.description": "An error occurred with the following message:",
"error.support-email-link": "If the problem persists, please contact <a>{contactSupportEmail}</a>",
"error.title": "An error occurred",
"error.title-internal-server-error": "Internal Server Error",
"error.title-not-found": "404 - Page not found",
"identities.messages.1010001": "Sign in",
"identities.messages.1010002": "Sign in with {provider}",
"identities.messages.1010003": "Please confirm this action by verifying that it is you.",
"identities.messages.1010004": "Please complete the second authentication challenge.",
"identities.messages.1010005": "Verify",
"identities.messages.1010006": "Authentication code",
"identities.messages.1010007": "Backup recovery code",
"identities.messages.1010008": "Continue with hardware key",
"identities.messages.1010009": "Continue",
"identities.messages.1010010": "Continue",
"identities.messages.1010011": "Sign in with hardware key",
"identities.messages.1010012": "Prepare your WebAuthn device (e.g. security key, biometrics scanner, ...) and press continue.",
"identities.messages.1010013": "Continue",
"identities.messages.1010014": "A code was sent to the address you provided. If you didn't receive it, please check the spelling of the address and try again.",
"identities.messages.1010015": "Send sign in code",
"identities.messages.1010016": 'You tried to sign in with "{duplicateIdentifier}", but that email is already used by another account. Sign in to your account with one of the options below to add your account "{duplicateIdentifier}" at "{provider}" as another way to sign in.',
"identities.messages.1010017": "Sign in and link",
"identities.messages.1010018": "Confirm with {provider}",
"identities.messages.1010019": "Request code to continue",
"identities.messages.1010021": "Sign in with passkey",
"identities.messages.1010022": "Sign in with password",
"identities.messages.1010023": "Send code to {address}",
"identities.messages.1040001": "Sign up",
"identities.messages.1040002": "Sign up with {provider}",
"identities.messages.1040003": "Continue",
"identities.messages.1040004": "Sign up with security key",
"identities.messages.1040005": "A code has been sent to the address(es) you provided. If you have not received a message, check the spelling of the address and retry the registration.",
"identities.messages.1040006": "Send sign up code",
"identities.messages.1040007": "Sign up with passkey",
"identities.messages.1040008": "Back",
"identities.messages.1040009": "Please choose a credential to authenticate yourself with.",
"identities.messages.1050001": "Your changes have been saved!",
"identities.messages.1050002": "Link {provider}",
"identities.messages.1050003": "Unlink {provider}",
"identities.messages.1050004": "Unlink TOTP Authenticator App",
"identities.messages.1050005": "Authenticator app QR code",
"identities.messages.1050006": "{secret}",
"identities.messages.1050007": "Reveal backup recovery codes",
"identities.messages.1050008": "Enable",
"identities.messages.1050009": "{secret}",
"identities.messages.1050010": "These are your back up recovery codes. Please keep them in a safe place!",
"identities.messages.1050011": "Confirm backup recovery codes",
"identities.messages.1050012": "Add security key",
"identities.messages.1050013": "Name of the security key",
"identities.messages.1050014": "Secret was used at {used_at, date, long}",
"identities.messages.1050015": "{secrets_list}",
"identities.messages.1050016": "Disable this method",
"identities.messages.1050017": "Authenticator Secret",
"identities.messages.1050018": 'Remove security key "{display_name}"',
"identities.messages.1050019": "Add passkey",
"identities.messages.1050020": 'Remove passkey "{display_name}"',
"identities.messages.1060001": "You successfully recovered your account. Please change your password or set up an alternative login method (e.g. social sign in) within the next {privileged_session_expires_at_unix_until_minutes} minutes.",
"identities.messages.1060002": "An email containing a recovery link has been sent to the email address you provided. If you have not received an email, check the spelling of the address and make sure to use the address you registered with.",
"identities.messages.1060003": "An email containing a recovery code has been sent to the email address you provided. If you have not received an email, check the spelling of the address and make sure to use the address you registered with.",
"identities.messages.1070001": "Password",
"identities.messages.1070002": "{title}",
"identities.messages.1070003": "Save",
"identities.messages.1070004": "ID",
"identities.messages.1070005": "Submit",
"identities.messages.1070006": "Verify code",
"identities.messages.1070007": "Email",
"identities.messages.1070008": "Resend code",
"identities.messages.1070009": "Continue",
"identities.messages.1070010": "Recovery code",
"identities.messages.1070011": "Verification code",
"identities.messages.1070012": "Registration code",
"identities.messages.1070013": "Login code",
"identities.messages.1070014": "Login and link credential",
"identities.messages.1070015": "Please complete the captcha challenge to continue.",
"identities.messages.1080001": "An email containing a verification link has been sent to the email address you provided. If you have not received an email, check the spelling of the address and make sure to use the address you registered with.",
"identities.messages.1080002": "You successfully verified your email address.",
"identities.messages.1080003": "An email containing a verification code has been sent to the email address you provided. If you have not received an email, check the spelling of the address and make sure to use the address you registered with.",
"identities.messages.4000001": "{reason}",
"identities.messages.4000002": "Please enter the {property} and try again.",
"identities.messages.4000003": "length must be >= {min_length}, but got {actual_length}",
"identities.messages.4000004": 'does not match pattern "{pattern}"',
"identities.messages.4000005": "The password can not be used because {reason}.",
"identities.messages.4000006": "The provided credentials are invalid, check for spelling mistakes in your password or username, email address, or phone number.",
"identities.messages.4000007": "An account with the same identifier (email, phone, username, ...) exists already.",
"identities.messages.4000008": "The provided authentication code is invalid, please try again.",
"identities.messages.4000009": "Could not find any login identifiers. Did you forget to set them? This could also be caused by a server misconfiguration.",
"identities.messages.4000010": "Account not active yet. Did you forget to verify your email address?",
"identities.messages.4000011": "You have no TOTP device set up.",
"identities.messages.4000012": "This backup recovery code has already been used.",
"identities.messages.4000013": "You have no WebAuthn device set up.",
"identities.messages.4000014": "You have no backup recovery codes set up.",
"identities.messages.4000015": "This account does not exist or has no security key set up.",
"identities.messages.4000016": "The backup recovery code is not valid.",
"identities.messages.4000017": "length must be <= {max_length}, but got {actual_length}",
"identities.messages.4000018": "must be >= {minimum} but found {actual}",
"identities.messages.4000019": "must be > {minimum} but found {actual}",
"identities.messages.4000020": "must be <= {maximum} but found {actual}",
"identities.messages.4000021": "must be < {maximum} but found {actual}",
"identities.messages.4000022": "{actual} not multipleOf {base}",
"identities.messages.4000023": "maximum {max_items} items allowed, but found {actual_items} items",
"identities.messages.4000024": "minimum {min_items} items allowed, but found {actual_items} items",
"identities.messages.4000025": "items at index {index_a} and {index_b} are equal",
"identities.messages.4000026": "expected {allowed_types_list}, but got {actual_type}",
"identities.messages.4000027": "An account with the same identifier (email, phone, username, ...) exists already. Please sign in to your existing account to link your social profile.",
"identities.messages.4000028": "You tried signing in with {credential_identifier_hint} which is already in use by another account. You can sign in using {available_credential_types_list}. You can sign in using one of the following social sign in providers: {Available_oidc_providers_list}.",
"identities.messages.4000029": "must be equal to constant {expected}",
"identities.messages.4000030": "const failed",
"identities.messages.4000031": "The password can not be used because it is too similar to the identifier.",
"identities.messages.4000032": "The password must be at least {min_length} characters long, but got {actual_length}.",
"identities.messages.4000033": "The password must be at most {max_length} characters long, but got {actual_length}.",
"identities.messages.4000034": "The password has been found in data breaches and must no longer be used.",
"identities.messages.4000035": "This account does not exist or has not setup sign in with code.",
"identities.messages.4000036": "The provided traits do not match the traits previously associated with this flow.",
"identities.messages.4000037": "This account does not exist or has no login method configured.",
"identities.messages.4000038": "Captcha verification failed, please try again.",
"identities.messages.4010001": "The login flow expired {expired_at_unix_since_minutes} minutes ago, please try again.",
"identities.messages.4010002": "Could not find a strategy to log you in with. Did you fill out the form correctly?",
"identities.messages.4010003": "Could not find a strategy to sign you up with. Did you fill out the form correctly?",
"identities.messages.4010004": "Could not find a strategy to update your settings. Did you fill out the form correctly?",
"identities.messages.4010005": "Could not find a strategy to recover your account with. Did you fill out the form correctly?",
"identities.messages.4010006": "Could not find a strategy to verify your account with. Did you fill out the form correctly?",
"identities.messages.4010007": "The request was already completed successfully and can not be retried.",
"identities.messages.4010008": "The login code is invalid or has already been used. Please try again.",
"identities.messages.4010009": "Linked credentials do not match.",
"identities.messages.4010010": "The address you entered does not match any known addresses in the current account.",
"identities.messages.4040001": "The registration flow expired {expired_at_unix_since_minutes} minutes ago, please try again.",
"identities.messages.4040002": "The request was already completed successfully and can not be retried.",
"identities.messages.4040003": "The registration code is invalid or has already been used. Please try again.",
"identities.messages.4050001": "The settings flow expired {expired_at_unix_since_minutes} minutes ago, please try again.",
"identities.messages.4060001": "The request was already completed successfully and can not be retried.",
"identities.messages.4060002": "The recovery flow reached a failure state and must be retried.",
"identities.messages.4060004": "The recovery token is invalid or has already been used. Please retry the flow.",
"identities.messages.4060005": "The recovery flow expired {expired_at_unix_since_minutes} minutes ago, please try again.",
"identities.messages.4060006": "The recovery code is invalid or has already been used. Please try again.",
"identities.messages.4070001": "The verification token is invalid or has already been used. Please retry the flow.",
"identities.messages.4070002": "The request was already completed successfully and can not be retried.",
"identities.messages.4070003": "The verification flow reached a failure state and must be retried.",
"identities.messages.4070005": "The verification flow expired {expired_at_unix_since_minutes} minutes ago, please try again.",
"identities.messages.4070006": "The verification code is invalid or has already been used. Please try again.",
"identities.messages.5000001": "{reason}",
"login.cancel-button": "Cancel",
"login.cancel-label": "Not the right account?",
"login.forgot-password": "Forgot password?",
"login.logged-in-as-label": "You are using:",
"login.logout-button": "Logout",
"login.logout-label": "Something's not working?",
"login.registration-button": "Sign up",
"login.registration-label": "Don't have an account?",
"login.subtitle-oauth2": "To authenticate {clientName}",
"login.title": "Sign in",
"login.subtitle": "Sign in with {parts}",
"login.title-aal2": "Second factor authentication",
"login.subtitle-aal2": "Choose a way to complete your second factor authentication",
"login.code.subtitle": "A verification code will be sent by email",
"login.webauthn.subtitle": "Please prepare your WebAuthN device",
"login.totp.subtitle": "Please enter the code generated by your Authenticator App",
"login.lookup_secret.subtitle": "Please enter one of your 8-digit backup recovery codes",
"login.title-refresh": "Reauthenticate",
"login.subtitle-refresh": "Confirm your identity with {parts}",
"login.2fa.go-back": "Something isn't working?",
"login.2fa.go-back.link": "Go back",
"login.2fa.method.go-back": "Choose another method",
"logout.accept-button": "Yes",
"logout.reject-button": "No",
"logout.title": "Do you wish to log out?",
"recovery.login-button": "Sign in",
"recovery.login-label": "Remember your credentials?",
"recovery.title": "Recover your account",
"recovery.subtitle": "Enter the email address associated with your account to receive a one-time access code",
"registration.login-button": "Sign in",
"registration.login-label": "Already have an account?",
"registration.subtitle-oauth2": "To authenticate {clientName}",
"registration.title": "Register an account",
"registration.subtitle": "Sign up with {parts}",
"settings.navigation-back-button": "Back",
"settings.navigation-backup-codes": "2FA Backup Codes",
"settings.navigation-logout": "Logout",
"settings.navigation-oidc": "Social Sign In",
"settings.navigation-password": "Password",
"settings.navigation-profile": "Profile",
"settings.navigation-totp": "Authenticator App",
"settings.navigation-webauthn": "Hardware Tokens",
"settings.navigation-passkey": "Passkeys",
"settings.subtitle-instructions": "Here you can manage settings related to your account. Keep in mind that certain actions require you to re-authenticate.",
"settings.subtitle": "Update your account settings",
"settings.title-lookup-secret": "Manage 2FA Backup Recovery Codes",
"settings.title-navigation": "Account Settings",
"settings.title-oidc": "Social Sign In",
"settings.title-password": "Change Password",
"settings.title-profile": "Profile Settings",
"settings.title-totp": "Manage 2FA TOTP Authenticator App",
"settings.title-webauthn": "Manage Hardware Tokens",
"settings.title-passkey": "Manage Passkeys",
"settings.title": "Account Settings",
"settings.navigation.title": "Account Settings",
"settings.password.title": "Change Password",
"settings.password.description": "Modify your password",
"settings.profile.title": "Profile Settings",
"settings.profile.description": "Update your profile information",
"settings.webauthn.title": "Manage Hardware Tokens",
"settings.webauthn.description": "Manage your hardware token settings",
"settings.messages.toast-title.success": "Settings updated",
"settings.messages.toast-title.error": "Could not update settings",
"verification.registration-button": "Sign up",
"verification.registration-label": "Don't have an account?",
"verification.title": "Verify your account",
"verification.subtitle": "Enter the email address associated with your account to verify it",
"verification.back-button": "Back",
"two-step.password.title": "Password",
"two-step.password.description": "Enter your password associated with your account",
"two-step.code.title": "Email code",
"two-step.code.description": "A verification code will be sent to your email",
"two-step.webauthn.title": "Security key",
"two-step.webauthn.description": "Use your security key to authenticate",
"two-step.passkey.title": "Passkey (recommended)",
"two-step.passkey.description": "Use your device's for fingerprint or face recognition",
"two-step.passkey.description.error": "Could not load the necessary libraries to use your Passkey. Please try again later.",
"two-step.totp.title": "Use your Authenticator App (TOTP)",
"two-step.totp.description": "Use a 6-digit one-time code from your authenticator app",
"two-step.lookup_secret.title": "Backup recovery code",
"two-step.lookup_secret.description": "Use up one of your 8-digit backup codes to authenticate",
"identities.messages.1010020": "",
"input.placeholder": "Enter your {placeholder}",
"card.header.parts.oidc": "a social provider",
"card.header.parts.password.registration": "your {identifierLabel} and a password",
"card.header.parts.password.login": "your {identifierLabel} and password",
"card.header.parts.code": "a one-time code",
"card.header.parts.passkey": "a Passkey",
"card.header.parts.webauthn": "a security key",
"card.header.parts.totp": "your authenticator app",
"card.header.parts.lookup_secret": "a backup recovery code",
"card.header.parts.identifier-first": "your {identifierLabel}",
"card.header.description.login": "Sign in with {identifierLabel}",
"card.header.description.registration": "Sign up with {identifierLabel}",
"misc.or": "or",
"forms.label.forgot-password": "Forgot Password?",
"forms.label.recover-account": "Recover Account",
"settings.totp.title": "Authenticator App",
"settings.totp.description": "Add a TOTP Authenticator App to your account to improve your account security. Popular Authenticator Apps are LastPass and Google Authenticator",
"settings.totp.info.not-linked": "To enable scan the QR code with your authenticator and enter the code.",
"settings.totp.info.linked": "You currently have an authenticator app connected.",
"settings.lookup_secret.title": "Backup Recovery Codes (second factor)",
"settings.lookup_secret.description": "Recovery codes are a secure backup for 2FA, allowing you to regain access to your account if you lose your 2FA device.",
"settings.oidc.title": "Connected accounts",
"settings.oidc.description": "Connect a social login provider with your account.",
"settings.oidc.info": "Connected accounts from these providers can be used to login to your account",
"settings.webauthn.info": "Hardware Tokens are used for second-factor authentication or as first-factor with Passkeys",
"settings.passkey.title": "Manage Passkeys",
"settings.passkey.description": "Manage your passkey settings",
"settings.passkey.info": "Manage your passkey settings",
"card.footer.select-another-method": "Select another method",
"account-linking.title": "Link account",
"property.password": "password",
"property.email": "email",
"property.phone": "phone",
"property.username": "username",
"property.identifier": "identifier",
"property.code": "code",
"consent.title": "Authorize {party}",
"consent.subtitle": "A third party application wants to access information associated with your account {identifier}.",
"consent.scope.openid.title": "Identity",
"consent.scope.openid.description": "Allows the application to verify your identity. This is required for authentication and a trusted login experience.",
"consent.scope.offline_access.title": "Offline Access",
"consent.scope.offline_access.description": "Allows this application to keep you signed in even when you're not actively using it.",
"consent.scope.profile.title": "Profile Information",
"consent.scope.profile.description": "Allows access to your basic profile details, including your username, first name, and last name.",
"consent.scope.email.title": "Email Address",
"consent.scope.email.description": "Retrieve your email address and its verification status.",
"consent.scope.address.title": "Physical Address",
"consent.scope.address.description": "Access your postal address.",
"consent.scope.phone.title": "Phone Number",
"consent.scope.phone.description": "Retrieve your phone number and its verification status.",
"error.title.what-happened": "What happened?",
"error.title.what-can-i-do": "What can I do?",
"error.instructions": "Please try again in a few minutes or contact the website operator.",
"error.footer.text": "When reporting this error, please include the following information:",
"error.footer.copy": "Copy",
"error.action.go-back": "Go back"
};
// src/locales/de.json
var de_default = {
"consent.action-accept": "Zustimmen",
"consent.action-reject": "Ablehnen",
"consent.description": "Geben Sie nur Berechtigungen frei, wenn Sie dieser Website oder App vertrauen. Sie m\xFCssen nicht alle Berechtigungen akzeptieren.",
"consent.privacy-policy-label": "Datenschutzrichtlinie",
"consent.remember-label": "Diese Entscheidung f\xFCr das n\xE4chste Mal merken. Die Anwendung wird keine zus\xE4tzlichen Berechtigungen ohne Ihre Zustimmung anfordern k\xF6nnen.",
"consent.remember-tooltip": "meine Entscheidung merken",
"consent.requested-permissions-label": "Die Anwendung ben\xF6tigt Zugriff auf folgende Berechtigungen:",
"consent.terms-of-service-label": "Nutzungsbedingungen",
"error.back-button": "Zur\xFCck",
"error.description": "Es ist ein Fehler aufgetreten mit folgender Nachricht:",
"error.support-email-link": "Wenn das Problem bestehen bleibt, kontaktieren Sie bitte <a>{contactSupportEmail}</a>",
"error.title": "Ein Fehler ist aufgetreten",
"error.title-internal-server-error": "Interner Serverfehler",
"error.title-not-found": "404 - Seite nicht gefunden",
"identities.messages.1010001": "Anmelden",
"identities.messages.1010002": "Mit {provider} anmelden",
"identities.messages.1010003": "Bitte best\xE4tigen Sie diese Aktion, indem Sie \xFCberpr\xFCfen, dass Sie es sind.",
"identities.messages.1010004": "Bitte schlie\xDFen Sie die zweite Authentifizierungspr\xFCfung ab.",
"identities.messages.1010005": "Verifizieren",
"identities.messages.1010006": "Authentifizierungscode",
"identities.messages.1010007": "Backup-Wiederherstellungscode",
"identities.messages.1010008": "Mit Sicherheitsschl\xFCssel fortfahren",
"identities.messages.1010009": "Weiter",
"identities.messages.1010010": "Weiter",
"identities.messages.1010011": "Mit Sicherheitsschl\xFCssel fortfahren",
"identities.messages.1010012": "Bereiten Sie Ihr WebAuthn-Ger\xE4t vor (z. B. Sicherheitsschl\xFCssel, biometrischer Scanner, ...) und dr\xFCcken Sie auf Weiter.",
"identities.messages.1010013": "Weiter",
"identities.messages.1010014": "Eine E-Mail mit einem Code wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und versuchen Sie erneut, sich anzumelden.",
"identities.messages.1010015": "Mit Code anmelden",
"identities.messages.1040001": "Registrieren",
"identities.messages.1040002": "Mit {provider} registrieren",
"identities.messages.1040003": "Fortfahren",
"identities.messages.1040004": "Mit Sicherheitsschl\xFCssel registrieren",
"identities.messages.1040005": "Eine E-Mail mit einem Code wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und versuchen Sie erneut, sich zu registrieren.",
"identities.messages.1040006": "Mit Code registrieren",
"identities.messages.1050001": "Ihre \xC4nderungen wurden gespeichert!",
"identities.messages.1050002": "{provider} verkn\xFCpfen",
"identities.messages.1050003": "{provider} entkn\xFCpfen",
"identities.messages.1050004": "Authentifizierungs-App entkn\xFCpfen",
"identities.messages.1050005": "Authentifizierungs-App QR-Code",
"identities.messages.1050006": "{secret}",
"identities.messages.1050007": "Backup-Wiederherstellungscodes anzeigen",
"identities.messages.1050008": "Neue Backup-Wiederherstellungscodes generieren",
"identities.messages.1050009": "{secret}",
"identities.messages.1050010": "Dies sind Ihre Backup-Wiederherstellungscodes. Bewahren Sie diese an einem sicheren Ort auf!",
"identities.messages.1050011": "Backup-Wiederherstellungscode best\xE4tigen",
"identities.messages.1050012": "Sicherheitsschl\xFCssel hinzuf\xFCgen",
"identities.messages.1050013": "Name des Sicherheitsschl\xFCssels",
"identities.messages.1050014": "<del>Verwendet</del>",
"identities.messages.1050015": "{secrets_list}",
"identities.messages.1050016": "Diese Methode deaktivieren",
"identities.messages.1050017": "Dies ist Ihr Authentifizierungs-App-Geheimnis. Verwenden Sie es, wenn Sie den QR-Code nicht scannen k\xF6nnen.",
"identities.messages.1050018": 'Sicherheitsschl\xFCssel "{display_name}" entfernen',
"identities.messages.1060001": "Sie haben Ihr Konto erfolgreich wiederhergestellt. Bitte \xE4ndern Sie Ihr Passwort oder richten Sie eine alternative Anmeldemethode ein (z. B. Anmeldung \xFCber Social-Login) innerhalb der n\xE4chsten {privileged_session_expires_at_unix_until_minutes} Minuten ein.",
"identities.messages.1060002": "Eine E-Mail mit einem Wiederherstellungslink wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und stellen Sie sicher, dass Sie die Adresse verwendet haben, mit der Sie sich registriert haben.",
"identities.messages.1060003": "Eine E-Mail mit einem Wiederherstellungscode wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und stellen Sie sicher, dass Sie die Adresse verwendet haben, mit der Sie sich registriert haben.",
"identities.messages.1070001": "Passwort",
"identities.messages.1070002": "{title}",
"identities.messages.1070003": "Speichern",
"identities.messages.1070004": "ID",
"identities.messages.1070005": "Absenden",
"identities.messages.1070006": "Verifizierungscode",
"identities.messages.1070007": "E-Mail",
"identities.messages.1070008": "Code erneut senden",
"identities.messages.1070009": "Weiter",
"identities.messages.1070010": "Wiederherstellungscode",
"identities.messages.1070011": "Verifikationscode",
"identities.messages.1070012": "Registrierungscode",
"identities.messages.1070013": "Anmeldecode",
"identities.messages.1080001": "Eine E-Mail mit einem Best\xE4tigungslink wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und stellen Sie sicher, dass Sie die Adresse verwendet haben, mit der Sie sich registriert haben.",
"identities.messages.1080002": "Sie haben Ihre E-Mail-Adresse erfolgreich best\xE4tigt.",
"identities.messages.1080003": "Eine E-Mail mit einem Best\xE4tigungscode wurde an die von Ihnen angegebene E-Mail-Adresse gesendet. Falls Sie keine E-Mail erhalten haben, \xFCberpr\xFCfen Sie bitte die Schreibweise der Adresse und stellen Sie sicher, dass Sie die Adresse verwendet haben, mit der Sie sich registriert haben.",
"identities.messages.4000001": "{reason}",
"identities.messages.4000002": "Das Feld {property} muss ausgef\xFCllt werden.",
"identities.messages.4000003": "Die L\xE4nge muss >= {min_length} sein, {actual_length} erhalten.",
"identities.messages.4000004": 'entspricht nicht dem Muster "{pattern}"',
"identities.messages.4000005": "Das Passwort kann nicht verwendet werden, weil {reason}.",
"identities.messages.4000006": "Die bereitgestellten Anmeldedaten sind ung\xFCltig. \xDCberpr\xFCfen Sie auf Rechtschreibfehler in Ihrem Passwort, Benutzernamen, E-Mail-Adresse oder Telefonnummer.",
"identities.messages.4000007": "Ein Konto mit demselben Identifikator (E-Mail, Telefon, Benutzername, ...) existiert bereits.",
"identities.messages.4000008": "Der bereitgestellte Authentifizierungscode ist ung\xFCltig. Bitte versuchen Sie es erneut.",
"identities.messages.4000009": "Es konnten keine Anmeldeidentifikatoren gefunden werden. Haben Sie vergessen, diese festzulegen? Dies k\xF6nnte auch durch eine Serverfehlkonfiguration verursacht werden.",
"identities.messages.4000010": "Konto ist noch nicht aktiv. Haben Sie vergessen, Ihre E-Mail-Adresse zu best\xE4tigen?",
"identities.messages.4000011": "Sie haben kein TOTP-Ger\xE4t eingerichtet.",
"identities.messages.4000012": "Dieser Backup-Wiederherstellungscode wurde bereits verwendet.",
"identities.messages.4000013": "Sie haben kein WebAuthn-Ger\xE4t eingerichtet.",
"identities.messages.4000014": "Sie haben keine Backup-Wiederherstellungscodes eingerichtet.",
"identities.messages.4000015": "Dieses Konto existiert nicht oder hat keinen Sicherheitsschl\xFCssel eingerichtet.",
"identities.messages.4000016": "Der Backup-Wiederherstellungscode ist ung\xFCltig.",
"identities.messages.4000017": "Die L\xE4nge muss <= {max_length} sein, {actual_length} erhalten.",
"identities.messages.4000018": "muss >= {minimum} sein, {actual} gefunden.",
"identities.messages.4000019": "muss > {minimum} sein, {actual} gefunden.",
"identities.messages.4000020": "muss <= {maximum} sein, {actual} gefunden.",
"identities.messages.4000021": "muss < {maximum} sein, {actual} gefunden.",
"identities.messages.4000022": "{actual} ist nicht ein Vielfaches von {base}",
"identities.messages.4000023": "maximal {max_items} Elemente erlaubt, {actual_items} Elemente gefunden.",
"identities.messages.4000024": "mindestens {min_items} Elemente erforderlich, {actual_items} Elemente gefunden.",
"identities.messages.4000025": "Elemente an Index {index_a} und {index_b} sind gleich.",
"identities.messages.4000026": "erwartete {allowed_types_list}, {actual_type} gefunden.",
"identities.messages.4000027": "Ein Konto mit demselben Identifikator (E-Mail, Telefon, Benutzername, ...) existiert bereits. Bitte melden Sie sich in Ihrem bestehenden Konto an und verkn\xFCpfen Sie Ihren Social-Login auf der Einstellungsseite.",
"identities.messages.4000028": "Sie haben versucht, sich mit {credential_identifier_hint} anzumelden, das bereits von einem anderen Konto verwendet wird. Sie k\xF6nnen sich mit {available_credential_types_list} anmelden. Sie k\xF6nnen sich mit einem der folgenden Social-Logins anmelden: {Available_oidc_providers_list}.",
"identities.messages.4000029": "muss gleich der Konstanten {expected} sein.",
"identities.messages.4000030": "const fehlgeschlagen",
"identities.messages.4000031": "Das Passwort kann nicht verwendet werden, da es zu \xE4hnlich dem Identifikator ist.",
"identities.messages.4000032": "Das Passwort muss mindesten