@ory/elements-react 1.0.0-next.27 → 1.0.0-next.29

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/theme/default/index.ts","../../../src/theme/default/assets/ory-badge-horizontal.svg","../../../src/theme/default/assets/ory-badge-vertical.svg","../../../src/theme/default/components/card/badge.tsx","../../../src/theme/default/components/card/content.tsx","../../../src/theme/default/components/card/footer.tsx","../../../src/theme/default/utils/url.ts","../../../src/theme/default/components/card/header.tsx","../../../src/theme/default/utils/constructCardHeader.ts","../../../src/theme/default/components/card/current-identifier-button.tsx","../../../src/theme/default/assets/icons/arrow-left.svg","../../../src/theme/default/utils/attributes.ts","../../../src/theme/default/components/card/logo.tsx","../../../src/theme/default/components/card/layout.tsx","../../../src/theme/default/components/card/index.tsx","../../../src/theme/default/utils/cn.ts","../../../src/theme/default/components/form/index.tsx","../../../src/theme/default/components/form/social.tsx","../../../src/theme/default/provider-logos/apple.svg","../../../src/theme/default/provider-logos/auth0.svg","../../../src/theme/default/provider-logos/discord.svg","../../../src/theme/default/provider-logos/facebook.svg","../../../src/theme/default/provider-logos/generic.svg","../../../src/theme/default/provider-logos/github.svg","../../../src/theme/default/provider-logos/gitlab.svg","../../../src/theme/default/provider-logos/google.svg","../../../src/theme/default/provider-logos/linkedin.svg","../../../src/theme/default/provider-logos/microsoft.svg","../../../src/theme/default/provider-logos/slack.svg","../../../src/theme/default/provider-logos/spotify.svg","../../../src/theme/default/provider-logos/yandex.svg","../../../src/theme/default/provider-logos/index.ts","../../../src/theme/default/components/form/spinner.tsx","../../../src/theme/default/components/card/auth-methods.tsx","../../../src/theme/default/assets/icons/code.svg","../../../src/theme/default/assets/icons/passkey.svg","../../../src/theme/default/assets/icons/password.svg","../../../src/theme/default/assets/icons/webauthn.svg","../../../src/theme/default/utils/form.ts","../../../src/theme/default/components/form/button.tsx","../../../src/theme/default/components/form/checkbox.tsx","../../../src/theme/default/components/ui/checkbox-label.tsx","../../../src/util/i18n/index.ts","../../../src/theme/default/components/form/group-container.tsx","../../../src/theme/default/components/form/horizontal-divider.tsx","../../../src/theme/default/components/form/image.tsx","../../../src/theme/default/components/form/input.tsx","../../../src/theme/default/components/form/label.tsx","../../../src/theme/default/components/form/link-button.tsx","../../../src/theme/default/components/form/pin-code-input.tsx","../../../src/theme/default/components/form/shadcn/otp-input.tsx","../../../src/theme/default/components/form/section.tsx","../../../src/theme/default/components/form/text.tsx","../../../src/theme/default/components/generic/page-header.tsx","../../../src/theme/default/components/ui/user-menu.tsx","../../../src/util/client.ts","../../../src/theme/default/assets/icons/logout.svg","../../../src/theme/default/assets/icons/settings.svg","../../../src/theme/default/utils/user.ts","../../../src/theme/default/components/ui/dropdown-menu.tsx","../../../src/theme/default/components/ui/user-avater.tsx","../../../src/theme/default/assets/icons/user.svg","../../../src/theme/default/assets/icons/trash.svg","../../../src/theme/default/components/settings/settings-oidc.tsx","../../../src/theme/default/components/settings/settings-passkey.tsx","../../../src/theme/default/assets/icons/download.svg","../../../src/theme/default/assets/icons/eye.svg","../../../src/theme/default/assets/icons/refresh.svg","../../../src/theme/default/components/settings/settings-recovery-codes.tsx","../../../src/theme/default/components/settings/settings-totp.tsx","../../../src/theme/default/assets/icons/qrcode.svg","../../../src/theme/default/components/settings/settings-webauthn.tsx","../../../src/theme/default/assets/icons/key.svg","../../../src/theme/default/components/default-components.tsx","../../../src/theme/default/flows/error.tsx","../../../src/theme/default/flows/login.tsx","../../../src/theme/default/flows/recovery.tsx","../../../src/theme/default/flows/registration.tsx","../../../src/theme/default/flows/settings.tsx","../../../src/theme/default/flows/verification.tsx"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport \"./global.css\"\nexport * from \"./components\"\nexport * from \"./flows\"\n","import * as React from \"react\";\nconst SvgOryBadgeHorizontal = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path fill=\"#0F172A\" d=\"M18.007 8h-1.71l2.007-3.996L16.296 0h1.711l1.145 2.301L20.327 0H22z\" /><path fill=\"#0F172A\" 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\" /></svg>;\nexport default SvgOryBadgeHorizontal;","import * as React from \"react\";\nconst SvgOryBadgeVertical = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path fill=\"#0F172A\" d=\"M8 3.993v1.71L4.004 3.697 0 5.704V3.993l2.301-1.145L0 1.673V0z\" /><path fill=\"#0F172A\" 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\" /></svg>;\nexport default SvgOryBadgeVertical;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport OryLogoHorizontal from \"../../assets/ory-badge-horizontal.svg\"\nimport OryLogoVertical from \"../../assets/ory-badge-vertical.svg\"\n\nexport function Badge() {\n return (\n <div className=\"absolute bg-ory-background-default p-2 font-bold max-sm:bottom-0 max-sm:left-8 max-sm:translate-y-full max-sm:rounded-b-branding sm:right-0 sm:top-8 sm:translate-x-full sm:rounded-r-branding border-ory-border-default border max-sm:py-[7px] sm:pl-[7px]\">\n <OryLogoHorizontal width={22} height={8} className=\"sm:hidden\" />\n <OryLogoVertical width={8} height={22} className=\"max-sm:hidden\" />\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardContentProps } from \"@ory/elements-react\"\n\nexport function DefaultCardContent({ children }: OryCardContentProps) {\n return children\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, UiNode, UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { initFlowUrl } from \"../../utils/url\"\n\nexport function DefaultCardFooter() {\n const { flowType } = useOryFlow()\n switch (flowType) {\n case FlowType.Login:\n return <LoginCardFooter />\n case FlowType.Registration:\n return <RegistrationCardFooter />\n case FlowType.Recovery:\n return <RecoveryCardFooter />\n case FlowType.Verification:\n return <VerificationCardFooter />\n default:\n return null\n }\n}\n\nexport function getReturnToQueryParam(flow: { return_to?: string }) {\n if (flow.return_to) {\n return flow.return_to\n }\n if (typeof window !== \"undefined\") {\n const searchParams = new URLSearchParams(window.location.search)\n return searchParams.get(\"return_to\")\n }\n}\n\nfunction LoginCardFooter() {\n const { config, formState, flow } = useOryFlow()\n const intl = useIntl()\n\n if (\n !config.project.registration_enabled ||\n formState.current !== \"provide_identifier\"\n ) {\n // The two-step login flow does not support the \"navigation\" between steps, so we don't have\n // anything to render on the footer in those steps\n return null\n }\n\n return (\n <span className=\"font-normal leading-normal antialiased text-interface-foreground-default-primary\">\n {intl.formatMessage({\n id: \"login.registration-label\",\n defaultMessage: \"No account?\",\n })}{\" \"}\n <a\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n href={initFlowUrl(config.sdk.url, \"registration\", flow)}\n data-testid={\"ory/screen/registration/action/login\"}\n >\n {intl.formatMessage({\n id: \"login.registration-button\",\n defaultMessage: \"Sign up\",\n })}\n </a>\n </span>\n )\n}\n\nfunction findScreenSelectionButton(\n nodes: UiNode[],\n): { attributes: UiNodeInputAttributes } | undefined {\n return nodes.find(\n (node) =>\n node.attributes.node_type === \"input\" &&\n node.attributes.type === \"submit\" &&\n node.attributes.name === \"screen\",\n ) as { attributes: UiNodeInputAttributes }\n}\n\nfunction RegistrationCardFooter() {\n const intl = useIntl()\n const { config, flow, formState } = useOryFlow()\n const { setValue } = useFormContext()\n\n if (formState.current === \"select_method\") {\n return null\n }\n const screenSelectionNode = findScreenSelectionButton(flow.ui.nodes)\n\n function handleScreenSelection() {\n setValue(\"method\", \"profile\")\n if (screenSelectionNode) {\n setValue(\"screen\", \"credential-selection\")\n }\n }\n\n return (\n <span className=\"font-normal leading-normal antialiased\">\n {formState.current === \"method_active\" ? (\n <>\n {screenSelectionNode && (\n <button\n className=\"font-medium text-button-link-brand-brand hover:text-button-link-brand-brand-hover\"\n type=\"submit\"\n onClick={handleScreenSelection}\n >\n {intl.formatMessage({\n id: \"card.footer.select-another-method\",\n defaultMessage: \"Select another method\",\n })}\n </button>\n )}\n </>\n ) : (\n <>\n {intl.formatMessage({\n id: \"registration.login-label\",\n defaultMessage: \"Already have an account?\",\n })}{\" \"}\n <a\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n href={initFlowUrl(config.sdk.url, \"login\", flow)}\n data-testid={\"ory/screen/registration/action/login\"}\n >\n {intl.formatMessage({\n id: \"registration.login-button\",\n defaultMessage: \"Sign in\",\n })}\n </a>\n </>\n )}\n </span>\n )\n}\n\nfunction RecoveryCardFooter() {\n return null\n}\n\nfunction VerificationCardFooter() {\n return null\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function restartFlowUrl(\n flow: { request_url?: string; return_to?: string },\n fallback: string,\n) {\n return flow.request_url || appendReturnTo(fallback, flow.return_to)\n}\n\nexport function initFlowUrl(\n sdkUrl: string,\n flowType: string,\n flow: {\n return_to?: string\n oauth2_login_challenge?: string\n },\n) {\n const result = `${sdkUrl}/self-service/${flowType}/browser`\n const qs = new URLSearchParams()\n\n if (flow.oauth2_login_challenge) {\n qs.set(\"login_challenge\", flow.oauth2_login_challenge)\n }\n if (flow.return_to) {\n qs.set(\"return_to\", flow.return_to)\n } else if (typeof window !== \"undefined\") {\n const searchParams = new URLSearchParams(window.location.search)\n if (searchParams.has(\"return_to\")) {\n qs.set(\"return_to\", searchParams.get(\"return_to\") || \"\")\n }\n }\n\n if (qs.toString().length === 0) {\n return result\n }\n\n return result + \"?\" + qs.toString()\n}\n\nfunction appendReturnTo(url: string, returnTo?: string) {\n if (!returnTo) {\n return url\n }\n\n const urlObj = new URL(url)\n urlObj.searchParams.set(\"return_to\", returnTo)\n return urlObj.toString()\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useComponents, useOryFlow } from \"@ory/elements-react\"\nimport { useCardHeaderText } from \"../../utils/constructCardHeader\"\nimport { DefaultCurrentIdentifierButton } from \"./current-identifier-button\"\n\nfunction InnerCardHeader({ title, text }: { title: string; text?: string }) {\n const { Card } = useComponents()\n return (\n <header className=\"flex flex-col gap-8 antialiased\">\n <Card.Logo />\n <div className=\"flex flex-col gap-2\">\n <h2 className=\"text-lg font-semibold leading-normal text-interface-foreground-default-primary\">\n {title}\n </h2>\n <p className=\"leading-normal text-interface-foreground-default-secondary\">\n {text}\n </p>\n <DefaultCurrentIdentifierButton />\n </div>\n </header>\n )\n}\n\nexport function DefaultCardHeader() {\n const context = useOryFlow()\n const { title, description } = useCardHeaderText(context.flow.ui, context)\n\n return <InnerCardHeader title={title} text={description} />\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FlowType,\n isUiNodeInputAttributes,\n UiContainer,\n} from \"@ory/client-fetch\"\nimport { useIntl } from \"react-intl\"\n\nfunction joinWithCommaOr(list: string[], orText = \"or\"): string {\n if (list.length === 0) {\n return \".\"\n } else if (list.length === 1) {\n return list[0]\n } else {\n const last = list.pop()\n return `${list.join(\", \")} ${orText} ${last}`\n }\n}\n\ntype opts =\n | {\n flowType: FlowType.Login\n flow: {\n refresh?: boolean\n }\n }\n | {\n flowType:\n | FlowType.Error\n | FlowType.Registration\n | FlowType.Verification\n | FlowType.Recovery\n | FlowType.Settings\n }\n\n/**\n * Constructs a title and a description for the card header.\n *\n * The title is a title suitable for the current flow, e.g. \"Sign in\" or \"Update your account\".\n *\n * The description for a login & registration flow, is a collection of the labels of the input fields.\n * For example, if the user has a password and an email address, the description will be \"Sign in with your email and password\".\n * And for registration, the listed options depend on the project configuration.\n *\n * For verification, recovery and settings flows, the description is a generic one, e.g. \"Enter the email address associated with your account to verify it\".\n *\n *\n * @param nodes - the UI nodes of the current flow\n * @param opts - can be a flow object, only needed for the refresh login flow\n * @returns a title and a description for the card header\n */\nexport function useCardHeaderText(\n container: UiContainer,\n opts: opts,\n): { title: string; description: string } {\n const nodes = container.nodes\n const intl = useIntl()\n switch (opts.flowType) {\n case FlowType.Recovery:\n if (\n nodes.find(\n (node) =>\n \"name\" in node.attributes && node.attributes.name === \"code\",\n )\n ) {\n return {\n title: intl.formatMessage({\n id: \"recovery.title\",\n }),\n description: intl.formatMessage({\n id: \"identities.messages.1060003\",\n }),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"recovery.title\",\n }),\n description: intl.formatMessage({\n id: \"recovery.subtitle\",\n }),\n }\n case FlowType.Settings:\n return {\n title: intl.formatMessage({\n id: \"settings.title\",\n }),\n description: intl.formatMessage({\n id: \"settings.subtitle\",\n }),\n }\n case FlowType.Verification:\n if (\n nodes.find(\n (node) =>\n \"name\" in node.attributes && node.attributes.name === \"code\",\n )\n ) {\n return {\n title: intl.formatMessage({\n id: \"verification.title\",\n }),\n description: intl.formatMessage({\n id: \"identities.messages.1080003\",\n }),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"verification.title\",\n }),\n description: intl.formatMessage({\n id: \"verification.subtitle\",\n }),\n }\n case FlowType.Login: {\n // account linking\n const accountLinkingMessage = container.messages?.find(\n (m) => m.id === 1010016,\n )\n if (accountLinkingMessage) {\n return {\n title: intl.formatMessage({\n id: \"account-linking.title\",\n }),\n description: intl.formatMessage(\n {\n id: \"identities.messages.1010016\",\n },\n accountLinkingMessage.context as Record<string, string>,\n ),\n }\n }\n }\n }\n\n const parts = []\n\n if (nodes.find((node) => node.group === \"password\")) {\n switch (opts.flowType) {\n case FlowType.Registration:\n parts.push(\n intl.formatMessage(\n { id: \"card.header.parts.password.registration\" },\n // TODO: make this generic for other labels\n { identifierLabel: \"email\" },\n ),\n )\n break\n default:\n parts.push(\n intl.formatMessage(\n { id: \"card.header.parts.password.login\" },\n // TODO: make this generic for other labels\n { identifierLabel: \"email\" },\n ),\n )\n }\n }\n\n if (nodes.find((node) => node.group === \"oidc\")) {\n parts.push(\n intl.formatMessage({\n id: \"card.header.parts.oidc\",\n }),\n )\n }\n\n if (nodes.find((node) => node.group === \"code\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.code\" }))\n }\n\n if (nodes.find((node) => node.group === \"passkey\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.passkey\" }))\n }\n\n if (nodes.find((node) => node.group === \"webauthn\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.webauthn\" }))\n }\n\n if (nodes.find((node) => node.group === \"identifier_first\")) {\n const identifier = nodes.find(\n (node) =>\n isUiNodeInputAttributes(node.attributes) &&\n node.attributes.name.startsWith(\"identifier\") &&\n node.attributes.type !== \"hidden\",\n )\n\n if (identifier) {\n parts.push(\n intl.formatMessage(\n {\n id: \"card.header.parts.identifier-first\",\n },\n {\n identifierLabel: identifier.meta.label?.text,\n },\n ),\n )\n }\n }\n\n switch (opts.flowType) {\n case FlowType.Login:\n if (opts.flow.refresh) {\n return {\n title: intl.formatMessage({\n id: \"login.title-refresh\",\n }),\n description: intl.formatMessage(\n {\n id: \"login.subtitle-refresh\",\n },\n {\n parts: joinWithCommaOr(parts),\n },\n ),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"login.title\",\n }),\n description:\n parts.length > 0\n ? intl.formatMessage(\n {\n id: \"login.subtitle\",\n },\n {\n parts: joinWithCommaOr(\n parts,\n intl.formatMessage({ id: \"misc.or\" }),\n ),\n },\n )\n : \"\",\n }\n case FlowType.Registration:\n return {\n title: intl.formatMessage({\n id: \"registration.title\",\n }),\n description:\n parts.length > 0\n ? intl.formatMessage(\n {\n id: \"registration.subtitle\",\n },\n {\n parts: joinWithCommaOr(\n parts,\n intl.formatMessage({ id: \"misc.or\" }),\n ),\n },\n )\n : \"\",\n }\n }\n\n // TODO: This should not happen, as the switch is exhaustive, but typescript doesn't think so\n return {\n title: \"Error\",\n description: \"An error occurred\",\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, UiNode } from \"@ory/client-fetch\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport IconArrowLeft from \"../../assets/icons/arrow-left.svg\"\nimport { omit } from \"../../utils/attributes\"\nimport { restartFlowUrl } from \"../../utils/url\"\n\nexport function DefaultCurrentIdentifierButton() {\n const { flow, flowType, config, formState } = useOryFlow()\n const ui = flow.ui\n\n if (formState.current === \"provide_identifier\") {\n return null\n }\n\n const nodeBackButton = getBackButtonNode(flowType, ui.nodes)\n\n if (\n nodeBackButton?.attributes.node_type !== \"input\" ||\n !nodeBackButton.attributes.value\n ) {\n return null\n }\n\n const initFlowUrl = restartFlowUrl(\n flow,\n `${config.sdk.url}/self-service/${flowType}/browser`,\n )\n\n const attributes = omit(nodeBackButton.attributes, [\n \"autocomplete\",\n \"node_type\",\n \"maxlength\",\n ])\n\n return (\n <a\n className={\n \"group inline-flex max-w-full cursor-pointer items-center gap-1 self-start rounded-identifier border px-[11px] py-[5px] transition-colors \" +\n \"border-button-identifier-border-border-default bg-button-identifier-background-default hover:border-button-identifier-border-border-hover hover:bg-button-identifier-background-hover\"\n }\n {...attributes}\n href={initFlowUrl}\n title={`Adjust ${nodeBackButton?.attributes.value}`}\n data-testid={\"ory/screen/login/action/restart\"}\n >\n <span className=\"inline-flex min-h-5 items-center gap-2 overflow-hidden text-ellipsis\">\n <IconArrowLeft\n size={16}\n stroke=\"1\"\n className=\"shrink-0 text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover\"\n />\n <span className=\"overflow-hidden text-ellipsis text-nowrap text-sm font-medium text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover\">\n {nodeBackButton?.attributes.value}\n </span>\n </span>\n </a>\n )\n}\n\nexport function getBackButtonNode(\n flowType: FlowType,\n nodes: UiNode[],\n): UiNode | undefined {\n let nodeBackButton: UiNode | undefined\n switch (flowType) {\n case FlowType.Login:\n nodeBackButton = nodes.find(\n (node) =>\n \"name\" in node.attributes &&\n node.attributes.name === \"identifier\" &&\n [\"default\", \"identifier_first\"].includes(node.group),\n )\n break\n case FlowType.Registration:\n nodeBackButton = guessRegistrationBackButton(nodes)\n break\n case FlowType.Recovery:\n case FlowType.Verification:\n // Re-use the email node for displaying the email\n nodeBackButton = nodes.find(\n (n) => \"name\" in n.attributes && n.attributes.name === \"email\",\n )\n break\n }\n return nodeBackButton\n}\n\nconst backButtonCandiates = [\n \"traits.email\",\n \"traits.username\",\n \"traits.phone_number\",\n]\n/**\n * Guesses the back button for registration flows\n *\n * This is based on the list above, and the first node that matches the criteria is returned.\n *\n * The list is most likely not exhaustive yet, and may need to be updated in the future.\n *\n */\nfunction guessRegistrationBackButton(uiNodes: UiNode[]): UiNode | undefined {\n return uiNodes.find(\n (node) =>\n \"name\" in node.attributes &&\n backButtonCandiates.includes(node.attributes.name) &&\n node.group === \"default\",\n )\n}\n","import * as React from \"react\";\nconst SvgArrowLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 25\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 12.325h14m-14 0 6 6m-6-6 6-6\" /></svg>;\nexport default SvgArrowLeft;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function omit<OBJ extends object>(\n obj: OBJ,\n keys: (keyof OBJ)[],\n): Omit<typeof obj, (typeof keys)[number]> {\n const ret = { ...obj }\n for (const key of keys) {\n delete ret[key]\n }\n return ret\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useOryFlow } from \"@ory/elements-react\"\n\nexport function DefaultCardLogo() {\n const flow = useOryFlow()\n\n if (flow.config.logoUrl) {\n return <img src={flow.config.logoUrl} width={100} height={36} alt=\"Logo\" />\n }\n\n return (\n <h1 className=\"text-xl font-semibold leading-normal text-interface-foreground-default-primary\">\n {flow.config.name}\n </h1>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PropsWithChildren } from \"react\"\n\nexport function DefaultCardLayout({ children }: PropsWithChildren) {\n return (\n <main className=\"p-4 pb-8 flex items-center justify-center flex-col gap-8 min-h-screen\">\n {children}\n </main>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardProps } from \"@ory/elements-react\"\nimport { Badge } from \"./badge\"\nimport { DefaultCardContent } from \"./content\"\nimport { DefaultCardFooter } from \"./footer\"\nimport { DefaultCardHeader } from \"./header\"\nimport { DefaultCardLogo } from \"./logo\"\nimport { DefaultCurrentIdentifierButton } from \"./current-identifier-button\"\nimport { DefaultCardLayout } from \"./layout\"\n\nexport function DefaultCard({ children }: OryCardProps) {\n return (\n <div className=\"flex flex-1 sm:items-center justify-center font-sans items-start w-full sm:w-[480px] sm:max-w-[480px]\">\n <div className=\"relative grid grid-cols-1 gap-8 sm:rounded-cards sm:border border-form-border-default bg-form-background-default px-8 py-12 sm:px-12 sm:py-14 border-b w-full\">\n {children}\n <Badge />\n </div>\n </div>\n )\n}\n\nexport {\n DefaultCardContent,\n DefaultCardFooter,\n DefaultCardHeader,\n DefaultCardLogo,\n DefaultCardLayout,\n DefaultCurrentIdentifierButton,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PropsWithChildren } from \"react\"\nimport { cn } from \"../../utils/cn\"\nimport { useIntl } from \"react-intl\"\nimport {\n messageTestId,\n OryFormRootProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { OryMessageContentProps } from \"@ory/elements-react\"\nimport { FlowType } from \"@ory/client-fetch\"\n\nexport function DefaultFormContainer({\n children,\n onSubmit,\n action,\n method,\n}: PropsWithChildren<OryFormRootProps>) {\n return (\n <form\n onSubmit={onSubmit}\n noValidate\n action={action}\n method={method}\n className={\"grid gap-8\"}\n >\n {children}\n </form>\n )\n}\n\nexport function DefaultMessageContainer({ children }: PropsWithChildren) {\n const { flowType } = useOryFlow()\n if (!children || (Array.isArray(children) && children.length === 0)) {\n return null\n }\n\n return (\n <section\n className={cn(\n flowType === FlowType.Settings ? \"text-center\" : \"text-left\",\n )}\n >\n {children}\n </section>\n )\n}\n\nexport function DefaultMessage({ message }: OryMessageContentProps) {\n const intl = useIntl()\n return (\n <span\n className={cn(\n \"leading-normal\",\n message.type === \"error\" &&\n \"text-interface-foreground-validation-danger\",\n message.type === \"info\" &&\n \"text-interface-foreground-default-secondary\",\n message.type === \"success\" &&\n \"text-interface-foreground-validation-success\",\n )}\n {...messageTestId(message)}\n >\n {uiTextToFormattedMessage(message, intl)}\n </span>\n )\n}\n\nexport { DefaultButtonSocial } from \"./social\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFormOidcRootProps,\n OryNodeOidcButtonProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport defaultLogos from \"../../provider-logos\"\nimport { cn } from \"../../utils/cn\"\nimport { useIntl } from \"react-intl\"\nimport { ElementType, useEffect, useState } from \"react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"./spinner\"\n\nexport function extractProvider(\n context: object | undefined,\n): string | undefined {\n if (\n context &&\n typeof context === \"object\" &&\n \"provider\" in context &&\n typeof context.provider === \"string\"\n ) {\n return context.provider\n }\n return undefined\n}\n\ntype DefaultSocialButtonProps = OryNodeOidcButtonProps & {\n showLabel?: boolean\n logos?: Record<string, ElementType>\n}\n\nexport function DefaultButtonSocial({\n attributes,\n node,\n onClick,\n showLabel: _showLabel,\n logos: providedLogos,\n}: DefaultSocialButtonProps) {\n const logos = { ...defaultLogos, ...providedLogos }\n const {\n node_type: _ignoredNodeType,\n type: _ignoredType,\n name: _ignoredName,\n ...props\n } = attributes\n const {\n flow: { ui },\n } = useOryFlow()\n const [clicked, setClicked] = useState(false)\n const intl = useIntl()\n const {\n formState: { isSubmitting },\n } = useFormContext()\n\n const oidcNodeCount =\n ui.nodes.filter((node) => node.group === \"oidc\").length ?? 0\n\n // Ideally, kratos would return the provider name in the context\n // At the moment it only returns the label (misleadingly named `provider`).\n // But changing that would be a breaking change.\n // So we have to extract the provider name from the id, which sometimes might contain a - followed by a unique ID.\n // TODO(kratos): Add provider to the context\n const Logo = logos[(attributes.value as string).split(\"-\")[0]]\n\n const showLabel =\n _showLabel ?? (oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0)\n\n const provider = extractProvider(node.meta.label?.context) ?? \"\"\n\n const localOnClick = () => {\n setClicked(true)\n onClick?.()\n }\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n return (\n <button\n className=\"gap-3 border border-button-social-border-default bg-button-social-background-default hover:bg-button-social-background-hover transition-colors rounded-buttons flex items-center justify-center px-4 py-[13px] loading:bg-button-social-background-disabled loading:border-button-social-border-disabled loading:text-button-social-foreground-disabled hover:text-button-social-foreground-hover\"\n value={attributes.value}\n type=\"submit\"\n name=\"provider\"\n data-testid={`ory/form/node/input/${attributes.name}`}\n {...props}\n onClick={localOnClick}\n data-loading={clicked}\n disabled={isSubmitting}\n >\n <span className=\"size-5 relative\">\n {!clicked ? (\n Logo ? (\n <Logo size={20} />\n ) : (\n <span className=\"flex aspect-square items-center justify-center rounded-[999px] border text-xs\">\n {provider.slice(0, 2)}\n </span>\n )\n ) : (\n <Spinner className=\"size-5\" />\n )}\n </span>\n {showLabel && node.meta.label ? (\n <span className=\"grow text-left font-medium leading-none text-button-social-foreground-default\">\n {uiTextToFormattedMessage(node.meta.label, intl)}\n </span>\n ) : null}\n </button>\n )\n}\n\n/**\n * Returns a variant of DefaultButtonSocial that can use your own logos\n *\n * @param logos - a record of provider names and their respective logos\n * @returns a variant of DefaultButtonSocial that uses the provided logos\n */\nDefaultButtonSocial.WithLogos =\n (logos: Record<string, ElementType>) => (props: DefaultSocialButtonProps) => (\n <DefaultButtonSocial {...props} logos={logos} />\n )\n\nexport function DefaultSocialButtonContainer({\n children,\n nodes,\n}: OryFormOidcRootProps) {\n return (\n <div\n className={cn(\"grid gap-3\", {\n // needed because tailwind is not compiling dynamic classes\n \"grid-cols-1\": nodes.length % 4 <= 2,\n \"grid-cols-3\": nodes.length % 3 === 0,\n \"grid-cols-4\": nodes.length > 1 && nodes.length % 4 === 0,\n })}\n >\n {children}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgApple = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#283544\" d=\"M27.734 11.55c-.134.078-3.317 1.724-3.317 5.374.15 4.162 4.017 5.621 4.083 5.621-.066.078-.584 1.988-2.116 3.991C25.167 28.261 23.817 30 21.767 30c-1.95 0-2.65-1.15-4.9-1.15-2.416 0-3.1 1.15-4.95 1.15-2.05 0-3.5-1.832-4.782-3.541-1.667-2.236-3.083-5.746-3.133-9.116-.034-1.786.334-3.54 1.266-5.032 1.317-2.081 3.667-3.494 6.233-3.54 1.966-.063 3.716 1.257 4.916 1.257 1.15 0 3.3-1.258 5.733-1.258 1.05.001 3.85.296 5.584 2.78M16.25 8.414c-.35-1.631.616-3.262 1.516-4.302C18.917 2.854 20.734 2 22.3 2c.1 1.63-.534 3.23-1.666 4.395-1.017 1.258-2.767 2.205-4.383 2.019\" /></svg>;\nexport default SvgApple;","import * as React from \"react\";\nconst SvgAuth0 = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#eb5424\" d=\"M49.012 51.774 42.514 32l17.008-12.22h-21.02L32.005 0h21.032l6.506 19.78c3.767 11.468-.118 24.52-10.53 31.993zm-34.023 0L31.998 64l17.015-12.226-17.008-12.22zm-10.516-32c-3.976 12.1.64 24.917 10.5 32.007v-.007L21.482 32 4.474 19.774l21.025.007L31.998 0H10.972z\" /></svg>;\nexport default SvgAuth0;","import * as React from \"react\";\nconst SvgDiscord = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path d=\"M2 11.6c0-3.36 0-5.04.654-6.324a6 6 0 0 1 2.622-2.622C6.56 2 8.24 2 11.6 2h8.8c3.36 0 5.04 0 6.324.654a6 6 0 0 1 2.622 2.622C30 6.56 30 8.24 30 11.6v8.8c0 3.36 0 5.04-.654 6.324a6 6 0 0 1-2.622 2.622C25.44 30 23.76 30 20.4 30h-8.8c-3.36 0-5.04 0-6.324-.654a6 6 0 0 1-2.622-2.622C2 25.44 2 23.76 2 20.4z\" /><path fill=\"#5865F2\" d=\"M23.636 9.34A18.8 18.8 0 0 0 19.097 8c-.195.332-.424.779-.581 1.134a17.7 17.7 0 0 0-5.03 0A12 12 0 0 0 12.897 8a18.7 18.7 0 0 0-4.542 1.343c-2.872 4.078-3.65 8.055-3.262 11.975a18.6 18.6 0 0 0 5.567 2.68c.448-.58.848-1.195 1.192-1.844a12 12 0 0 1-1.877-.859 9 9 0 0 0 .46-.342c3.62 1.59 7.553 1.59 11.13 0q.225.178.46.342c-.595.337-1.225.626-1.88.86q.516.974 1.191 1.845a18.6 18.6 0 0 0 5.57-2.682c.457-4.544-.78-8.484-3.27-11.978m-11.29 9.567c-1.087 0-1.978-.953-1.978-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116.002 1.16-.872 2.113-1.978 2.113m7.308 0c-1.086 0-1.977-.953-1.977-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116 0 1.16-.872 2.113-1.978 2.113\" /></svg>;\nexport default SvgDiscord;","import * as React from \"react\";\nconst SvgFacebook = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"url(#facebook_svg__a)\" /><path fill=\"#fff\" d=\"m21.214 20.282.622-3.952h-3.89v-2.563c0-1.081.542-2.136 2.284-2.136H22V8.267S20.395 8 18.86 8c-3.205 0-5.298 1.893-5.298 5.318v3.012H10v3.952h3.562v9.552q1.073.165 2.191.166 1.12 0 2.192-.166v-9.552z\" /><defs><linearGradient id=\"facebook_svg__a\" x1={16} x2={16} y1={2} y2={29.917} gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#18ACFE\" /><stop offset={1} stopColor=\"#0163E0\" /></linearGradient></defs></svg>;\nexport default SvgFacebook;","import * as React from \"react\";\nconst SvgGeneric = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} className=\"generic_svg__icon generic_svg__icon-tabler generic_svg__icon-tabler-brand-oauth\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"none\" d=\"M0 0h24v24H0z\" /><path d=\"M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0\" /><path d=\"M12.556 6c.65 0 1.235.373 1.508.947l2.839 7.848a1.646 1.646 0 0 1-1.01 2.108 1.673 1.673 0 0 1-2.068-.851L13.365 15h-2.73l-.398.905A1.67 1.67 0 0 1 8.26 16.95l-.153-.047a1.647 1.647 0 0 1-1.056-1.956l2.824-7.852a1.66 1.66 0 0 1 1.409-1.087z\" /></svg>;\nexport default SvgGeneric;","import * as React from \"react\";\nconst SvgGithub = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path d=\"M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12\" /></svg>;\nexport default SvgGithub;","import * as React from \"react\";\nconst SvgGitlab = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#E24329\" d=\"m22.708 10.691-.031-.072-3.015-7.167a.74.74 0 0 0-.31-.34.87.87 0 0 0-.923.045.73.73 0 0 0-.268.37L16.125 9.2H7.881L5.845 3.527a.72.72 0 0 0-.268-.371.87.87 0 0 0-.923-.045.74.74 0 0 0-.31.34l-3.021 7.164-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132 2.272 1.567 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.567 4.62-3.151.012-.009c.968-.666 1.671-1.6 2.006-2.661a4.67 4.67 0 0 0-.15-3.226\" /><path fill=\"#FC6D26\" d=\"m22.708 10.691-.031-.072a10.7 10.7 0 0 0-4.055 1.66L12 16.839l4.218 2.904 4.621-3.152.012-.008c.969-.666 1.674-1.601 2.008-2.664a4.67 4.67 0 0 0-.15-3.228\" /><path fill=\"#FCA326\" d=\"m7.781 19.743 2.273 1.566 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.566S14.255 18.389 12 16.839c-2.255 1.55-4.219 2.904-4.219 2.904\" /><path fill=\"#FC6D26\" d=\"M5.376 12.279a10.7 10.7 0 0 0-4.053-1.664l-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132L12 16.836z\" /></svg>;\nexport default SvgGitlab;","import * as React from \"react\";\nconst SvgGoogle = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#4285F4\" d=\"M30.001 16.31c0-1.15-.095-1.99-.301-2.861H16.287v5.195h7.873c-.159 1.291-1.016 3.236-2.92 4.542l-.027.174 4.24 3.22.294.029c2.699-2.443 4.254-6.036 4.254-10.298\" /><path fill=\"#34A853\" d=\"M16.286 30c3.857 0 7.095-1.244 9.46-3.391l-4.507-3.423c-1.207.825-2.826 1.4-4.953 1.4A8.58 8.58 0 0 1 8.16 18.77l-.167.014-4.41 3.344-.058.157C5.874 26.858 10.7 30 16.286 30\" /><path fill=\"#FBBC05\" d=\"M8.16 18.769a8.5 8.5 0 0 1-.476-2.77c0-.964.174-1.897.46-2.768l-.008-.185-4.465-3.399-.146.068A13.8 13.8 0 0 0 2.001 16c0 2.256.556 4.387 1.524 6.284z\" /><path fill=\"#EB4335\" d=\"M16.286 7.413c2.683 0 4.492 1.136 5.524 2.085l4.032-3.858C23.366 3.384 20.143 2 16.286 2 10.7 2 5.874 5.142 3.524 9.715l4.62 3.516c1.158-3.375 4.365-5.818 8.142-5.818\" /></svg>;\nexport default SvgGoogle;","import * as React from \"react\";\nconst SvgLinkedin = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><rect width={28} height={28} x={2} y={2} fill=\"#1275B1\" rx={14} /><path fill=\"#fff\" d=\"M12.619 9.692c0 .935-.81 1.692-1.81 1.692C9.81 11.384 9 10.627 9 9.692S9.81 8 10.81 8c.999 0 1.809.758 1.809 1.692M9.247 12.628h3.093V22H9.247zM17.32 12.628h-3.093V22h3.093v-4.795c0-1.107.378-2.22 1.886-2.22 1.705 0 1.695 1.45 1.687 2.572-.01 1.467.014 2.965.014 4.443H24v-4.946c-.026-3.159-.85-4.614-3.557-4.614-1.608 0-2.604.73-3.123 1.39z\" /></svg>;\nexport default SvgLinkedin;","import * as React from \"react\";\nconst SvgMicrosoft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 23 23\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#F35325\" d=\"M1 1h10v10H1z\" /><path fill=\"#81BC06\" d=\"M12 1h10v10H12z\" /><path fill=\"#05A6F0\" d=\"M1 12h10v10H1z\" /><path fill=\"#FFBA08\" d=\"M12 12h10v10H12z\" /></svg>;\nexport default SvgMicrosoft;","import * as React from \"react\";\nconst SvgSlack = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#2EB67D\" d=\"M26.5 15a2.5 2.5 0 1 0-2.5-2.5V15zm-7 0a2.5 2.5 0 0 0 2.5-2.5v-7a2.5 2.5 0 0 0-5 0v7a2.5 2.5 0 0 0 2.5 2.5\" /><path fill=\"#E01E5A\" d=\"M5.5 17A2.5 2.5 0 1 0 8 19.5V17zm7 0a2.5 2.5 0 0 0-2.5 2.5v7a2.5 2.5 0 0 0 5 0v-7a2.5 2.5 0 0 0-2.5-2.5\" /><path fill=\"#ECB22E\" d=\"M17 26.5a2.5 2.5 0 1 0 2.5-2.5H17zm0-7a2.5 2.5 0 0 0 2.5 2.5h7a2.5 2.5 0 0 0 0-5h-7a2.5 2.5 0 0 0-2.5 2.5\" /><path fill=\"#36C5F0\" d=\"M15 5.5A2.5 2.5 0 1 0 12.5 8H15zm0 7a2.5 2.5 0 0 0-2.5-2.5h-7a2.5 2.5 0 0 0 0 5h7a2.5 2.5 0 0 0 2.5-2.5\" /></svg>;\nexport default SvgSlack;","import * as React from \"react\";\nconst SvgSpotify = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"#1ED760\" /><path fill=\"#fff\" d=\"M22.364 21.623c-.239.38-.75.486-1.148.258-3.141-1.822-7.08-2.232-11.736-1.23-.446.091-.893-.167-.988-.592a.786.786 0 0 1 .621-.94c5.087-1.11 9.456-.639 12.964 1.41a.77.77 0 0 1 .287 1.094m1.627-3.461c-.303.47-.941.607-1.435.334-3.588-2.11-9.058-2.718-13.299-1.488-.558.152-1.132-.137-1.292-.653-.16-.531.144-1.078.702-1.23 4.848-1.396 10.875-.728 15.005 1.686.462.273.622.88.319 1.35m.143-3.613c-4.305-2.43-11.4-2.657-15.515-1.473-.654.197-1.355-.152-1.563-.79-.207-.622.176-1.29.83-1.487 4.72-1.366 12.565-1.093 17.508 1.7.59.334.781 1.063.43 1.625-.334.576-1.1.774-1.69.425\" /></svg>;\nexport default SvgSpotify;","import * as React from \"react\";\nconst SvgYandex = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"#fff\" /><path fill=\"#FC3F1D\" d=\"M21 25h-3.143V9.435h-1.402c-2.572 0-3.922 1.294-3.922 3.211 0 2.175.935 3.185 2.857 4.48l1.584 1.063L12.403 25H9l4.104-6.086c-2.363-1.684-3.688-3.316-3.688-6.087C9.416 9.357 11.83 7 16.429 7H21z\" /></svg>;\nexport default SvgYandex;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport apple from \"./apple.svg\"\nimport auth0 from \"./auth0.svg\"\nimport discord from \"./discord.svg\"\nimport facebook from \"./facebook.svg\"\nimport generic from \"./generic.svg\"\nimport github from \"./github.svg\"\nimport gitlab from \"./gitlab.svg\"\nimport google from \"./google.svg\"\nimport linkedin from \"./linkedin.svg\"\nimport microsoft from \"./microsoft.svg\"\nimport slack from \"./slack.svg\"\nimport spotify from \"./spotify.svg\"\nimport yandex from \"./yandex.svg\"\n\nconst logos: Record<string, typeof apple> = {\n apple,\n auth0,\n discord,\n facebook,\n generic,\n github,\n gitlab,\n google,\n linkedin,\n microsoft,\n slack,\n spotify,\n yandex,\n}\nexport default logos\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { cn } from \"../../utils/cn\"\n\nexport function Spinner({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\n \"absolute pointer-events-none inset-0 m-auto size-8 animate-spin\",\n className,\n )}\n viewBox=\"0 0 34 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_2572_1748)\">\n <path\n d=\"M23.364 10.6362C22.1053 9.37751 20.5016 8.52034 18.7558 8.17307C17.01 7.82581 15.2004 8.00404 13.5559 8.68523C11.9113 9.36641 10.5057 10.52 9.51678 12C8.52784 13.4801 8 15.2201 8 17.0001C8 18.7802 8.52784 20.5202 9.51678 22.0003C10.5057 23.4803 11.9113 24.6339 13.5559 25.3151C15.2004 25.9962 17.01 26.1745 18.7558 25.8272C20.5016 25.4799 22.1053 24.6228 23.364 23.3641\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2572_1748\">\n <rect\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n transform=\"translate(17 0.029541) rotate(45)\"\n />\n </clipPath>\n </defs>\n </svg>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardAuthMethodListItemProps } from \"@ory/elements-react\"\nimport { useIntl } from \"react-intl\"\nimport code from \"../../assets/icons/code.svg\"\nimport passkey from \"../../assets/icons/passkey.svg\"\nimport password from \"../../assets/icons/password.svg\"\nimport webauthn from \"../../assets/icons/webauthn.svg\"\nimport { isGroupImmediateSubmit } from \"../../utils/form\"\n\nconst iconsMap: Record<string, typeof code> = {\n code,\n passkey,\n password,\n webauthn,\n}\n\n// TODO: create a next specific component with Image for this\nexport function DefaultAuthMethodListItem({\n onClick,\n group,\n}: OryCardAuthMethodListItemProps) {\n const intl = useIntl()\n const Icon = iconsMap[group] || null\n\n return (\n <div className=\"w-full rounded px-2 py-1 hover:bg-interface-background-default-primary-hover\">\n <button\n className=\"flex cursor-pointer gap-3 py-2 text-left items-start\"\n onClick={onClick}\n type={isGroupImmediateSubmit(group) ? \"submit\" : \"button\"}\n data-testid={`ory/form/auth-picker/${group}`}\n aria-label={`Authenticate with ${group}`}\n >\n <span className=\"mt-1\">\n {Icon && (\n <Icon\n size={16}\n className=\"text-interface-foreground-brand-primary\"\n />\n )}\n </span>\n <span className=\"flex-1 leading-normal inline-flex flex-col\">\n <span className=\"text-interface-foreground-default-primary\">\n {intl.formatMessage({ id: `two-step.${group}.title` })}\n </span>\n <span className=\"text-interface-foreground-default-secondary\">\n {intl.formatMessage({ id: `two-step.${group}.description` })}\n </span>\n </span>\n </button>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgCode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 15 13\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12\" /></svg>;\nexport default SvgCode;","import * as React from \"react\";\nconst SvgPasskey = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 13 14\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633\" /></svg>;\nexport default SvgPasskey;","import * as React from \"react\";\nconst SvgPassword = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 4\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667\" /></svg>;\nexport default SvgPassword;","import * as React from \"react\";\nconst SvgWebauthn = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0\" /></svg>;\nexport default SvgWebauthn;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isGroupImmediateSubmit(group: string) {\n // TODO: Other methods might also benefit from this.\n return group === \"code\"\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeButtonProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { cva, VariantProps } from \"class-variance-authority\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { Spinner } from \"./spinner\"\nimport { useEffect, useState } from \"react\"\n\nconst buttonStyles = cva(\n [\n \"relative flex justify-center gap-3 overflow-hidden rounded-buttons leading-none ring-1 ring-inset font-medium\",\n \"disabled:cursor-not-allowed loading:cursor-wait loading:before:pointer-events-none\",\n \"transition-colors duration-100 ease-linear\",\n \"p-4 max-w-[488px]\",\n ],\n {\n variants: {\n intent: {\n primary: [\n \"bg-button-primary-background-default text-button-primary-foreground-default ring-button-primary-border-default\",\n \"hover:bg-button-primary-background-hover hover:text-button-primary-foreground-hover hover:ring-button-primary-border-hover\",\n \"disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled\",\n \"loading:bg-button-primary-background-default loading:text-button-primary-foreground-default loading:ring-button-primary-border-default\",\n \"loading:before:absolute loading:before:inset-0 loading:before:bg-button-primary-background-default loading:before:opacity-80 loading:before:content-['']\",\n \"disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled\",\n ],\n secondary: [\n \"bg-button-secondary-background-default text-button-secondary-foreground-default ring-button-secondary-border-default\",\n \"hover:bg-button-secondary-background-hover hover:text-button-secondary-foreground-hover hover:ring-button-secondary-border-hover\",\n \"disabled:bg-button-secondary-background-disabled disabled:text-button-secondary-foreground-disabled disabled:ring-button-secondary-border-disabled\",\n \"loading:bg-button-secondary-background-default loading:text-button-secondary-foreground-default loading:ring-button-secondary-border-default\",\n \"loading:before:absolute loading:before:inset-0 loading:before:bg-button-secondary-background-default loading:before:opacity-80 loading:before:content-['']\",\n ],\n },\n defaultVariants: {\n intent: \"primary\",\n },\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonStyles>\n\nexport const DefaultButton = ({\n attributes,\n node,\n onClick,\n}: OryNodeButtonProps) => {\n const {\n type,\n name,\n value,\n // Button does not support these attributes, so we skip them\n autocomplete: _ignoredAutocomplete,\n label: _ignoredLabel,\n node_type: _ignoredNodeType,\n // End of skipped attributes\n ...rest\n } = attributes\n const [clicked, setClicked] = useState(false)\n const intl = useIntl()\n const label = getNodeLabel(node)\n const {\n formState: { isSubmitting },\n setValue,\n } = useFormContext()\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n const isPrimary =\n attributes.name === \"method\" ||\n attributes.name.includes(\"passkey\") ||\n attributes.name.includes(\"webauthn\") ||\n attributes.name.includes(\"lookup_secret\")\n\n return (\n <button\n {...rest}\n value={value}\n name={name}\n type={type === \"button\" ? \"button\" : \"submit\"} // TODO\n onClick={(e) => {\n onClick?.(e)\n setClicked(true)\n\n if (type !== \"button\") {\n setValue(name, value)\n }\n }}\n className={buttonStyles({\n intent: isPrimary ? \"primary\" : \"secondary\",\n })}\n disabled={rest.disabled ?? isSubmitting}\n data-loading={clicked}\n >\n {clicked ? <Spinner /> : null}\n {label ? <span>{uiTextToFormattedMessage(label, intl)}</span> : \"\"}\n </button>\n )\n}\n\nDefaultButton.displayName = \"DefaultButton\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n messageTestId,\n OryNodeInputProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { useForm } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\nimport { CheckboxLabel } from \"../ui/checkbox-label\"\n\nfunction CheckboxSVG() {\n return (\n <svg\n className=\"absolute hidden size-4 peer-checked:block fill-checkbox-foreground-checked\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.6464 5.14645C11.8417 4.95118 12.1583 4.95118 12.3536 5.14645C12.5338 5.32669 12.5477 5.6103 12.3951 5.80645L12.3536 5.85355L7.35355 10.8536C7.17331 11.0338 6.8897 11.0477 6.69355 10.8951L6.64645 10.8536L4.14645 8.35355C3.95118 8.15829 3.95118 7.84171 4.14645 7.64645C4.32669 7.4662 4.6103 7.45234 4.80645 7.60485L4.85355 7.64645L7 9.7925L11.6464 5.14645Z\"\n />\n </svg>\n )\n}\n\nexport const DefaultCheckbox = ({\n attributes: initialAttributes,\n node,\n}: OryNodeInputProps) => {\n const {\n value,\n name,\n // Button does not support these attributes, so we skip them\n autocomplete: _autocomplete,\n onclick: _onclick,\n maxlength: _max,\n // End of skipped attributes\n ...attributes\n } = initialAttributes\n\n const intl = useIntl()\n const label = getNodeLabel(node)\n const { register } = useForm()\n const hasError = node.messages.some((m) => m.type === \"error\")\n\n return (\n <label className=\"flex items-start gap-3 self-stretch antialiased\">\n <span className=\"flex h-5 items-center\">\n <input\n {...attributes}\n value={1}\n defaultChecked={Boolean(value)}\n type=\"checkbox\"\n className={cn(\n \"peer size-4 border appearance-none rounded-forms bg-checkbox-background-default border-checkbox-border-checkbox-border-default checked:bg-checkbox-background-checked checked:border-checkbox-border-checkbox-border-checked\",\n hasError && \"border-interface-border-validation-danger\",\n )}\n {...register(name, { value })}\n />\n <CheckboxSVG />\n </span>\n <span className=\"flex flex-col\">\n <span className=\"font-normal leading-tight text-interface-foreground-default-primary\">\n <CheckboxLabel label={label} />\n </span>\n {node.messages.map((message) => (\n <span\n key={message.id}\n className={cn(\n \"mt-1\",\n message.type === \"error\"\n ? \"text-interface-foreground-validation-danger\"\n : \"text-interface-foreground-default-secondary\",\n )}\n {...messageTestId(message)}\n >\n {uiTextToFormattedMessage(message, intl)}\n </span>\n ))}\n </span>\n </label>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { useIntl } from \"react-intl\"\nimport { uiTextToFormattedMessage } from \"../../../../util\"\n\ntype CheckboxLabelProps = {\n label?: UiText\n}\n\nconst linkRegex = /\\[([^\\]]+)\\]\\(([^)]+)\\)/g\n\nexport function computeLabelElements(labelText: string) {\n const elements = []\n let lastIndex = 0\n\n // Use matchAll to find all markdown links\n for (const match of labelText.matchAll(linkRegex)) {\n const linkText = match[1]\n const url = match[2]\n const matchStart = match.index\n if (typeof matchStart === \"undefined\") {\n // Some types seem to be wrong somewhere, eslint complains that matchStart can be undefined, but it can't?\n // So we just skip this match, if it is undefined\n continue\n }\n\n // Push the text before the match\n if (matchStart > lastIndex) {\n elements.push(labelText.slice(lastIndex, matchStart))\n }\n\n // Push the <a> tag for the markdown link\n elements.push(\n <a\n key={matchStart}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-button-link-brand-brand hover:text-button-link-brand-brand-hover underline\"\n >\n {linkText}\n </a>,\n )\n\n // Update lastIndex to the end of the current match\n lastIndex = matchStart + match[0].length\n }\n\n // Push any remaining text after the last match\n if (lastIndex < labelText.length) {\n elements.push(labelText.slice(lastIndex))\n }\n return elements\n}\n\nexport function CheckboxLabel({ label }: CheckboxLabelProps) {\n const intl = useIntl()\n if (!label) {\n return null\n }\n\n const labelText = uiTextToFormattedMessage(label, intl)\n\n return <>{computeLabelElements(labelText)}</>\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { IntlShape } from \"react-intl\"\n\n/**\n * Converts a UiText to a FormattedMessage.\n * The UiText contains the id of the message and the context.\n * The context is used to inject values into the message from Ory, e.g. a timestamp.\n * For example a UI Node from Ory might look like this:\n *\n * \\{\n * \"type\":\"input\",\n * \"group\":\"default\",\n * \"attributes\": \\{\n * \"name\":\"traits.email\",\n * \"type\":\"email\",\n * \"required\":true,\n * \"autocomplete\":\"email\",\n * \"disabled\":false,\n * \"node_type\":\"input\"\n * \\},\n * \"messages\":[],\n * \"meta\": \\{\n * \"label\": \\{\n * \"id\":1070002,\n * \"text\":\"E-Mail\",\n * \"type\":\"info\",\n * \"context\":\\{\n * \"title\":\"E-Mail\"\n * \\},\n * \\}\n * \\}\n * \\}\n *\n * The context has the key \"title\" which matches the formatter template name \"\\{title\\}\"\n * An example translation file would look like this:\n * \\{\n * \"identities.messages.1070002\": \"\\{title\\}\"\n * \\}\n *\n * The formatter would then take the meta.label.id and look for the translation with the key matching the id.\n * It would then replace the template \"\\{title\\}\" with the value from the context with the key \"title\".\n *\n * @param uiText - The UiText is part of the UiNode object sent by Kratos when performing a flow.\n * @param intl - The intl object from react-intl\n */\nexport const uiTextToFormattedMessage = (\n { id, context = {}, text }: Omit<UiText, \"type\">,\n intl: IntlShape,\n) => {\n const contextInjectedMessage = Object.entries(context).reduce(\n (accumulator, [key, value]) => {\n // context might provide an array of objects instead of a single object\n // for example when looking up a recovery code\n if (Array.isArray(value)) {\n return {\n ...accumulator,\n [key]: value,\n [key + \"_list\"]: intl.formatList<string>(value),\n }\n } else if (key.endsWith(\"_unix\")) {\n if (typeof value === \"number\") {\n return {\n ...accumulator,\n [key]: intl.formatDate(new Date(value * 1000)),\n [key + \"_since\"]: intl.formatDateTimeRange(\n new Date(value),\n new Date(),\n ),\n [key + \"_since_minutes\"]: Math.ceil(\n (value - new Date().getTime() / 1000) / 60,\n ).toFixed(0),\n [key + \"_until\"]: intl.formatDateTimeRange(\n new Date(),\n new Date(value),\n ),\n [key + \"_until_minutes\"]: Math.ceil(\n (new Date().getTime() / 1000 - value) / 60,\n ).toFixed(0),\n }\n }\n } else if (key === \"property\") {\n return {\n ...accumulator,\n [key]: intl.formatMessage({\n id: `property.${value}`,\n defaultMessage: value,\n }),\n }\n }\n return {\n ...accumulator,\n [key]: value as string | number,\n }\n },\n {},\n )\n\n return intl.formatMessage(\n {\n id: `identities.messages.${id}`,\n defaultMessage: text,\n },\n contextInjectedMessage,\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryFormGroupProps } from \"@ory/elements-react\"\n\nexport function DefaultGroupContainer({ children }: OryFormGroupProps) {\n return <div className=\"grid grid-cols-1 gap-8\">{children}</div>\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function DefaultHorizontalDivider() {\n return <hr className=\"border-interface-border-default-primary\" />\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryNodeImageProps } from \"@ory/elements-react\"\n\nexport function DefaultImage({ attributes }: OryNodeImageProps) {\n return (\n <figure>\n <img {...attributes} />\n </figure>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeInputProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultInput = ({\n node,\n attributes,\n onClick,\n}: OryNodeInputProps) => {\n const label = getNodeLabel(node)\n const { register } = useFormContext()\n const {\n value,\n autocomplete,\n name,\n maxlength,\n node_type: _,\n ...rest\n } = attributes\n const intl = useIntl()\n const { flowType } = useOryFlow()\n\n const formattedLabel = label\n ? intl.formatMessage(\n {\n id: \"input.placeholder\",\n defaultMessage: \"Enter your {placeholder}\",\n },\n {\n placeholder: uiTextToFormattedMessage(label, intl),\n },\n )\n : \"\"\n\n return (\n <input\n {...rest}\n onClick={onClick}\n maxLength={maxlength}\n autoComplete={autocomplete}\n placeholder={formattedLabel}\n data-testid={`ory/form/node/input/${name}`}\n className={cn(\n \"antialiased rounded-forms border leading-tight transition-colors placeholder:h-[20px] placeholder:text-input-foreground-tertiary focus-visible:outline-none focus:ring-0\",\n \"bg-input-background-default border-input-border-default text-input-foreground-primary\",\n \"disabled:bg-input-background-disabled disabled:border-input-border-disabled disabled:text-input-foreground-disabled\",\n \"focus:border-input-border-focus focus-visible:border-input-border-focus\",\n \"hover:bg-input-background-hover hover:border-input-border-hover\",\n \"px-4 py-[13px]\",\n // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.\n flowType === FlowType.Settings && \"max-w-[488px]\",\n )}\n {...register(name, { value })}\n />\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FlowType,\n getNodeLabel,\n instanceOfUiText,\n UiNode,\n} from \"@ory/client-fetch\"\nimport {\n OryNodeLabelProps,\n messageTestId,\n uiTextToFormattedMessage,\n useComponents,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { initFlowUrl } from \"../../utils/url\"\n\nfunction findResendNode(nodes: UiNode[]) {\n return nodes.find(\n (n) =>\n \"name\" in n.attributes &&\n ((n.attributes.name === \"email\" && n.attributes.type === \"submit\") ||\n n.attributes.name === \"resend\"),\n )\n}\n\nexport function DefaultLabel({\n node,\n children,\n attributes,\n ...rest\n}: OryNodeLabelProps) {\n const intl = useIntl()\n const label = getNodeLabel(node)\n const { Message } = useComponents()\n const { config, flowType, flow } = useOryFlow()\n const { setValue, formState } = useFormContext()\n\n const isPassword = attributes.type === \"password\"\n\n const resendNode = findResendNode(flow.ui.nodes)\n\n const handleResend = () => {\n if (resendNode?.attributes && \"name\" in resendNode.attributes) {\n setValue(resendNode.attributes.name, resendNode.attributes.value)\n }\n }\n\n const fieldError = formState.errors[attributes.name]\n return (\n <div className=\"flex flex-col gap-1 antialiased\">\n {label && (\n <span className=\"inline-flex justify-between\">\n <label\n {...messageTestId(label)}\n className=\"leading-normal text-input-foreground-primary\"\n htmlFor={attributes.name}\n data-testid={`ory/form/node/input/label/${attributes.name}`}\n {...rest}\n >\n {uiTextToFormattedMessage(label, intl)}\n </label>\n {isPassword &&\n config.project.recovery_enabled &&\n flowType === FlowType.Login && (\n // TODO: make it possible to override with a custom component\n <a\n href={initFlowUrl(config.sdk.url, \"recovery\", flow)}\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n >\n {intl.formatMessage({\n id: \"forms.label.forgot-password\",\n defaultMessage: \"Forgot password?\",\n })}\n </a>\n )}\n {resendNode?.attributes.node_type === \"input\" && (\n <button\n type=\"submit\"\n name={resendNode.attributes.name}\n value={resendNode.attributes.value}\n onClick={handleResend}\n className=\"cursor-pointer text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n >\n {intl.formatMessage({ id: \"identities.messages.1070008\" })}\n </button>\n )}\n </span>\n )}\n {children}\n {node.messages.map((message) => (\n <Message.Content key={message.id} message={message} />\n ))}\n {fieldError && instanceOfUiText(fieldError) && (\n <Message.Content message={fieldError} />\n )}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeAnchorProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { forwardRef } from \"react\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultLinkButton = forwardRef<\n HTMLAnchorElement,\n OryNodeAnchorProps\n>(({ attributes, node }, ref) => {\n const intl = useIntl()\n const label = getNodeLabel(node)\n return (\n <a\n {...attributes}\n ref={ref}\n title={label ? uiTextToFormattedMessage(label, intl) : \"\"}\n data-testid={`ory/form/node/link/${attributes.id}`}\n className={cn(\n \"antialiased rounded cursor-pointer text-center border gap-3 leading-none bg-button-primary-background-default hover:bg-button-primary-background-hover transition-colors text-button-primary-foreground-default hover:text-button-primary-foreground-hover p-4 font-medium\",\n )}\n >\n {label ? uiTextToFormattedMessage(label, intl) : \"\"}\n </a>\n )\n})\n\nDefaultLinkButton.displayName = \"DefaultLinkButton\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { useFormContext } from \"react-hook-form\"\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"./shadcn/otp-input\"\nimport { OryNodeInputProps, useOryFlow } from \"@ory/elements-react\"\nimport { FlowType } from \"@ory/client-fetch\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultPinCodeInput = ({ attributes }: OryNodeInputProps) => {\n const { setValue, watch } = useFormContext()\n const { maxlength, name } = attributes\n const elements = maxlength ?? 6\n const { flowType } = useOryFlow()\n\n const handleInputChange = (v: string) => {\n setValue(name, v)\n }\n\n const value = watch(name) as string\n\n return (\n <InputOTP\n maxLength={maxlength ?? 6}\n onChange={handleInputChange}\n name={name}\n value={value}\n >\n <InputOTPGroup\n className={cn(\n \"w-full flex gap-2 justify-stretch\",\n // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.\n flowType === FlowType.Settings && \"max-w-[488px]\",\n )}\n >\n {[...Array(elements)].map((_, index) => (\n <InputOTPSlot index={index} key={index} />\n ))}\n </InputOTPGroup>\n </InputOTP>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { cn } from \"../../../utils/cn\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport * as React from \"react\"\n\n// This file is a copy from https://ui.shadcn.com/docs/components/input-otp\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n \"rounded-forms border border-solid bg-input-background-default py-[15px] text-center focus-visible:outline-none w-full\",\n \"relative flex items-center justify-center transition-all leading-none\",\n isActive ? \"border-input-border-focus\" : \"border-input-border-default\",\n className,\n )}\n {...props}\n >\n <span className=\"inline-block size-4\">{char}</span>\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-interface-background-brand-primary duration-700\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot }\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFormSectionContentProps,\n OryFormSectionFooterProps,\n OryFormSectionProps,\n} from \"@ory/elements-react\"\nimport { cn } from \"../../utils/cn\"\n\nconst DefaultFormSection = ({\n children,\n nodes: _nodes,\n ...rest\n}: OryFormSectionProps) => {\n return (\n <form\n className=\"flex w-full max-w-screen-sm flex-col md:max-w-[712px] lg:max-w-[802px] xl:max-w-[896px] px-4\"\n {...rest}\n >\n {children}\n </form>\n )\n}\n\nconst DefaultFormSectionContent = ({\n title,\n description,\n children,\n}: OryFormSectionContentProps) => {\n return (\n <div className=\"flex flex-col gap-8 rounded-t-cards border border-b-0 border-interface-border-default-primary bg-interface-background-default-primary px-6 py-8\">\n <div className=\"flex flex-col gap-2\">\n <h3 className=\"font-medium text-interface-foreground-default-primary\">\n {title}\n </h3>\n <span className=\"text-interface-foreground-default-secondary\">\n {description}\n </span>\n </div>\n {children}\n </div>\n )\n}\n\nconst DefaultFormSectionFooter = ({\n children,\n text,\n}: OryFormSectionFooterProps) => {\n return (\n <div\n className={cn(\n \"flex min-h-[72px] items-center justify-between gap-2 rounded-b-cards border border-interface-border-default-primary bg-interface-background-default-secondary px-6 py-4 text-interface-foreground-default-tertiary\",\n )}\n >\n <span>{text}</span>\n {children}\n </div>\n )\n}\n\nexport {\n DefaultFormSection,\n DefaultFormSectionContent,\n DefaultFormSectionFooter,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { OryNodeTextProps, uiTextToFormattedMessage } from \"@ory/elements-react\"\nimport { useIntl } from \"react-intl\"\n\nexport function DefaultText({ node, attributes }: OryNodeTextProps) {\n const intl = useIntl()\n return (\n <>\n <p data-testid={`ory/form/node/text/${attributes.id}/label`}>\n {node.meta.label ? uiTextToFormattedMessage(node.meta.label, intl) : \"\"}\n </p>\n {(\n attributes.text.context as {\n secrets: UiText[]\n }\n ).secrets?.map((text: UiText, index) => (\n <pre\n data-testid={`ory/form/node/text/lookup_secret_codes/text`}\n key={index}\n >\n <code>{text ? uiTextToFormattedMessage(text, intl) : \"\"}</code>\n </pre>\n ))}\n </>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryPageHeaderProps, useComponents } from \"@ory/elements-react\"\nimport { UserMenu } from \"../ui/user-menu\"\nimport { useSession } from \"@ory/elements-react/client\"\n\nexport const DefaultPageHeader = (_props: OryPageHeaderProps) => {\n const { Card } = useComponents()\n const { session } = useSession()\n\n return (\n <div className=\"mt-16 flex max-w-screen-sm w-full md:max-w-[712px] lg:max-w-[802px] xl:max-w-[896px] flex-col gap-3 px-4\">\n <div className=\"flex flex-col gap-12\">\n <div className=\"flex max-h-10 flex-1 justify-between gap-2\">\n <div className=\"relative h-10 flex-1\">\n <Card.Logo />\n </div>\n <UserMenu session={session} />\n </div>\n </div>\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LogoutFlow, Session } from \"@ory/client-fetch\"\nimport { DropdownMenuLabel } from \"@radix-ui/react-dropdown-menu\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport { frontendClient } from \"../../../../util/client\"\nimport IconLogout from \"../../assets/icons/logout.svg\"\nimport IconSettings from \"../../assets/icons/settings.svg\"\nimport { getUserInitials } from \"../../utils/user\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { UserAvatar } from \"./user-avater\"\n\ntype UserMenuProps = {\n session: Session | null\n logoutFlow?: LogoutFlow\n}\n\nexport const UserMenu = ({ session }: UserMenuProps) => {\n const { config } = useOryFlow()\n const initials = getUserInitials(session)\n const [logoutFlow, setLogoutFlow] = useState<LogoutFlow | undefined>()\n\n const fetchLogoutFlow = useCallback(async () => {\n const flow = await frontendClient(config.sdk.url).createBrowserLogoutFlow()\n setLogoutFlow(flow)\n }, [config.sdk.url])\n\n useEffect(() => {\n void fetchLogoutFlow()\n }, [fetchLogoutFlow])\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <UserAvatar initials={initials} />\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel className=\"flex gap-3 px-5 py-4.5\">\n <UserAvatar disabled initials={initials} />\n <div className=\"flex flex-col justify-center text-sm leading-tight\">\n <div className=\"text-interface-foreground-default-primary leading-tight font-medium\">\n {initials.primary}\n </div>\n {initials.secondary && (\n <div className=\"text-interface-foreground-default-tertiary leading-tight\">\n {initials.secondary}\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n <DropdownMenuItem asChild>\n <a href=\"/settings\">\n <IconSettings size={16} /> User settings\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem asChild disabled={!logoutFlow?.logout_url}>\n <a href={logoutFlow?.logout_url}>\n <IconLogout size={16} /> Logout\n </a>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Configuration,\n ConfigurationParameters,\n FrontendApi,\n} from \"@ory/client-fetch\"\n\nexport function frontendClient(\n sdkUrl: string,\n opts: Partial<ConfigurationParameters> = {},\n) {\n const config = new Configuration({\n ...opts,\n basePath: sdkUrl,\n headers: {\n Accept: \"application/json\",\n ...opts.headers,\n },\n })\n return new FrontendApi(config)\n}\n","import * as React from \"react\";\nconst SvgLogout = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9.333 5.334V4A1.333 1.333 0 0 0 8 2.667H3.333A1.333 1.333 0 0 0 2 4v8a1.333 1.333 0 0 0 1.333 1.334H8A1.333 1.333 0 0 0 9.333 12v-1.333M4.667 8H14m0 0-2-2m2 2-2 2\" /></svg>;\nexport default SvgLogout;","import * as React from \"react\";\nconst SvgSettings = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><g stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M6.883 2.878c.284-1.17 1.95-1.17 2.234 0a1.15 1.15 0 0 0 1.715.71c1.029-.626 2.207.551 1.58 1.58a1.148 1.148 0 0 0 .71 1.715c1.17.284 1.17 1.95 0 2.234a1.15 1.15 0 0 0-.71 1.715c.626 1.029-.551 2.207-1.58 1.58a1.148 1.148 0 0 0-1.715.71c-.284 1.17-1.95 1.17-2.234 0a1.15 1.15 0 0 0-1.715-.71c-1.029.626-2.207-.551-1.58-1.58a1.15 1.15 0 0 0-.71-1.715c-1.17-.284-1.17-1.95 0-2.234a1.15 1.15 0 0 0 .71-1.715c-.626-1.029.551-2.207 1.58-1.58.667.405 1.531.047 1.715-.71\" /><path d=\"M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0\" /></g></svg>;\nexport default SvgSettings;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Session } from \"@ory/client-fetch\"\n\nexport type UserInitials = {\n primary: string\n secondary?: string\n avatar?: string\n}\n\nfunction isTraitsIndexable(\n traits: unknown,\n): traits is Record<string, string | Record<string, string>> {\n return typeof traits === \"object\" && traits !== null\n}\n\nexport const getUserInitials = (session: Session | null): UserInitials => {\n const avatar = \"\"\n let primary = \"\"\n let secondary = \"\"\n\n if (\n !session?.identity?.traits ||\n !isTraitsIndexable(session.identity.traits)\n ) {\n return {\n primary,\n secondary,\n avatar,\n }\n }\n\n const traits = session.identity?.traits\n\n if (traits.email && typeof traits.email === \"string\") {\n secondary = traits.email\n }\n\n if (traits.name) {\n if (typeof traits.name === \"string\") {\n primary = traits.name\n }\n\n if (\n typeof traits.name === \"object\" &&\n traits.name &&\n traits.name.first &&\n traits.name.last\n ) {\n primary = traits.name.first + \" \" + traits.name.last\n }\n }\n\n if (primary === \"\") {\n primary = secondary\n secondary = \"\"\n }\n\n return {\n primary,\n secondary,\n avatar,\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\n\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { cn } from \"../../utils/cn\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuContent = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Content>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 16, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n align=\"end\"\n className={cn(\n \"z-50 min-w-[19rem] overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"border border-interface-border-default-primary bg-interface-background-default-primary rounded-cards\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Item>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center outline-none transition-colors data-[disabled]:pointer-events-none\",\n \"px-8 py-3 lg:py-4.5 text-sm gap-6\",\n \"first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover\",\n \"text-button-secondary-foreground-default bg-button-secondary-background-default\",\n \"hover:text-button-secondary-foreground-hover hover:bg-button-secondary-background-hover\",\n \"data-[disabled]:text-button-secondary-foreground-disabled data-[disabled]:bg-button-secondary-background-disabled\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuLabel = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Label>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\"\nimport { UserInitials } from \"../../utils/user\"\nimport IconUser from \"../../assets/icons/user.svg\"\n\ntype UserAvatarProps = {\n initials: UserInitials\n} & ComponentPropsWithoutRef<\"button\">\n\nexport const UserAvatar = forwardRef<HTMLButtonElement, UserAvatarProps>(\n ({ initials, ...rest }, ref) => {\n return (\n <button\n ref={ref}\n className=\"relative flex size-10 items-center justify-center overflow-hidden rounded-[999px] bg-button-primary-background-default hover:bg-button-primary-background-hover\"\n {...rest}\n >\n <div className=\"relative flex size-full items-center justify-center\">\n {initials.avatar ? (\n <img\n src={initials.avatar}\n alt={initials.primary}\n className=\"w-full object-contain\"\n />\n ) : (\n <IconUser\n size={24}\n className=\"text-button-primary-foreground-default\"\n />\n )}\n </div>\n </button>\n )\n },\n)\nUserAvatar.displayName = \"UserAvatar\"\n","import * as React from \"react\";\nconst SvgUser = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2M8 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0\" /></svg>;\nexport default SvgUser;","import * as React from \"react\";\nconst SvgTrash = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 7h16m-10 4v6m4-6v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\" /></svg>;\nexport default SvgTrash;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OrySettingsOidcProps } from \"@ory/elements-react\"\nimport { DefaultButtonSocial, extractProvider } from \"../form/social\"\nimport { UiNode, UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport logos from \"../../provider-logos\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\nimport { useEffect, useState } from \"react\"\n\nexport function DefaultSettingsOidc({\n linkButtons,\n unlinkButtons,\n}: OrySettingsOidcProps) {\n const hasLinkButtons = linkButtons.length > 0\n const hasUnlinkButtons = unlinkButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n {hasLinkButtons && (\n <div className=\"grid items-start gap-3 grid-cols-1 sm:grid-cols-2 md:grid-cols-3\">\n {linkButtons.map((button) => {\n const attrs = button.attributes as UiNodeInputAttributes\n\n return (\n <DefaultButtonSocial\n showLabel\n key={attrs.value}\n node={button}\n attributes={attrs}\n onClick={button.onClick}\n />\n )\n })}\n </div>\n )}\n {hasUnlinkButtons && hasLinkButtons ? <DefaultHorizontalDivider /> : null}\n {unlinkButtons.map((button) => {\n if (button.attributes.node_type !== \"input\") {\n return null\n }\n return <UnlinkRow key={button.attributes.value} button={button} />\n })}\n </div>\n )\n}\n\ntype UnlinkRowProps = {\n button: UiNode & { onClick: () => void }\n}\n\nfunction UnlinkRow({ button }: UnlinkRowProps) {\n const [clicked, setClicked] = useState(false)\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const attrs = button.attributes as UiNodeInputAttributes\n const provider = extractProvider(button.meta.label?.context) ?? \"\"\n const Logo = attrs.value in logos ? logos[attrs.value] : logos.generic\n\n const localOnClick = () => {\n setClicked(true)\n button.onClick()\n }\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n return (\n <div key={attrs.value} className=\"flex justify-between\">\n <div className=\"flex items-center gap-6\">\n <Logo size={32} />\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {provider}\n </p>\n </div>\n <button\n {...attrs}\n type=\"submit\"\n onClick={localOnClick}\n disabled={isSubmitting}\n className=\"relative\"\n title={`Unlink ${provider}`}\n >\n {clicked ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsPasskeyProps, useComponents } from \"@ory/elements-react\"\nimport Passkey from \"../../assets/icons/passkey.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsPasskey({\n triggerButton,\n removeButtons,\n}: OrySettingsPasskeyProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const { Node } = useComponents()\n\n const hasRemoveButtons = removeButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n <div className=\"flex max-w-[60%] items-end gap-3\">\n {triggerButton && (\n <Node.Button\n node={triggerButton}\n attributes={triggerButton.attributes as UiNodeInputAttributes}\n onClick={triggerButton.onClick}\n />\n )}\n </div>\n {hasRemoveButtons ? (\n <div className=\"flex flex-col gap-8\">\n <DefaultHorizontalDivider />\n <div className=\"flex flex-col gap-2\">\n {removeButtons.map((node, i) => {\n const context = node.meta.label?.context ?? {}\n const addedAt =\n \"added_at\" in context ? (context.added_at as string) : null\n const displayName =\n \"display_name\" in context\n ? (context.display_name as string)\n : null\n const keyId =\n \"value\" in node.attributes ? node.attributes.value : null\n\n return (\n <div\n className=\"flex justify-between gap-6 md:items-center\"\n key={`passkey-remove-button-${i}`}\n >\n <div className=\"flex gap-2 items-center flex-1\">\n <Passkey\n size={32}\n className=\"text-interface-foreground-default-primary\"\n />\n <div className=\"flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4\">\n <div className=\"flex-1 flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {displayName}\n </p>\n <span className=\"text-sm text-interface-foreground-default-tertiary hidden sm:block\">\n {keyId}\n </span>\n </div>\n {addedAt && (\n <p className=\"text-sm text-interface-foreground-default-tertiary\">\n {new Intl.DateTimeFormat(undefined, {\n dateStyle: \"long\",\n }).format(new Date(addedAt))}\n </p>\n )}\n </div>\n </div>\n <button\n {...(node.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n onClick={node.onClick}\n disabled={isSubmitting}\n className=\"relative\"\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgDownload = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5m0 0 5-5m-5 5V4\" /></svg>;\nexport default SvgDownload;","import * as React from \"react\";\nconst SvgEye = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><g strokeLinecap=\"round\" strokeLinejoin=\"round\"><path stroke=\"currentColor\" d=\"M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0\" /><path stroke=\"#64748B\" d=\"M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6\" /></g></svg>;\nexport default SvgEye;","import * as React from \"react\";\nconst SvgRefresh = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4\" /></svg>;\nexport default SvgRefresh;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsRecoveryCodesProps } from \"@ory/elements-react\"\nimport Download from \"../../assets/icons/download.svg\"\nimport Eye from \"../../assets/icons/eye.svg\"\nimport Refresh from \"../../assets/icons/refresh.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\n\nexport function DefaultSettingsRecoveryCodes({\n codes,\n regnerateButton,\n revealButton,\n onRegenerate,\n onReveal,\n}: OrySettingsRecoveryCodesProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const onDownload = () => {\n const element = document.createElement(\"a\")\n const file = new Blob([codes.join(\"\\n\")], {\n type: \"text/plain\",\n })\n element.href = URL.createObjectURL(file)\n element.download = \"recovery-codes.txt\"\n document.body.appendChild(element)\n element.click()\n }\n\n const hasCodes = codes.length >= 1\n\n return (\n <div className=\"flex flex-col gap-8\">\n {codes.length > 0 && <DefaultHorizontalDivider />}\n <div className=\"flex gap-4 justify-between\">\n <span className=\"text-interface-foreground-default-tertiary\">\n {revealButton && \"Reveal recovery codes\"}\n </span>\n <div className=\"flex gap-2\">\n {regnerateButton && codes.length > 0 && (\n <button\n {...(regnerateButton.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n className=\"ml-auto\"\n onClick={onRegenerate}\n disabled={isSubmitting}\n data-loading={isSubmitting}\n >\n <Refresh\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n )}\n {revealButton && (\n <>\n <button\n {...(revealButton.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n className=\"ml-auto\"\n onClick={onReveal}\n title=\"Reveal recovery codes\"\n >\n <Eye\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n </>\n )}\n {hasCodes && (\n <button\n onClick={onDownload}\n type=\"button\"\n className=\"ml-auto\"\n data-testid=\"ory/screen/settings/group/recovery_code/download\"\n title=\"Download recovery codes\"\n >\n <Download\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n )}\n </div>\n </div>\n {hasCodes ? (\n <div className=\"rounded-general p-6 bg-interface-background-default-secondary border-interface-border-default-primary\">\n <div\n className=\"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 flex-wrap gap-4 text-sm text-interface-foreground-default-primary\"\n data-testid=\"ory/screen/settings/group/recovery_code/codes\"\n >\n {codes.map((code) => (\n <p key={code}>{code}</p>\n ))}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n UiNodeImageAttributes,\n UiNodeInputAttributes,\n UiNodeTextAttributes,\n} from \"@ory/client-fetch\"\nimport { OrySettingsTotpProps, useComponents } from \"@ory/elements-react\"\nimport QrCode from \"../../assets/icons/qrcode.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsTotp({\n totpImage,\n totpInput,\n totpSecret,\n totpUnlink,\n onUnlink,\n}: OrySettingsTotpProps) {\n const { Node, Card } = useComponents()\n const {\n formState: { isSubmitting },\n } = useFormContext()\n if (totpUnlink) {\n const {\n type,\n autocomplete: _ignoredAutocomplete,\n label: _ignoredLabel,\n node_type: _ignoredNodeType,\n ...buttonAttrs\n } = totpUnlink.attributes as UiNodeInputAttributes\n\n return (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2\">\n <div className=\"col-span-full\">\n <Card.Divider />\n </div>\n <div className=\"col-span-full flex items-center gap-6\">\n <div className=\"aspect-square size-8 \">\n <QrCode size={32} />\n </div>\n <div className=\"mr-auto flex flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-primary\">\n Authenticator app\n </p>\n </div>\n <button\n type={type === \"button\" ? \"button\" : \"submit\"}\n {...buttonAttrs}\n onClick={onUnlink}\n disabled={isSubmitting}\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n </div>\n )\n }\n\n if (totpImage && totpSecret && totpInput) {\n return (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2\">\n <div className=\"col-span-full\">\n <DefaultHorizontalDivider />\n </div>\n <div className=\"flex justify-center rounded-cards bg-interface-background-default-secondary p-8\">\n <div className=\"aspect-square h-44 rounded bg-[white]\">\n <div className=\"-m-3 antialiased mix-blend-multiply\">\n <Node.Image\n node={totpImage}\n attributes={{\n ...(totpImage.attributes as UiNodeImageAttributes),\n }}\n />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-6\">\n <Node.Label\n node={totpSecret}\n attributes={totpSecret.attributes as UiNodeInputAttributes}\n >\n <Node.Input\n node={totpSecret}\n attributes={{\n disabled: true,\n name: \"totp_secret_key\",\n node_type: \"input\",\n type: \"text\",\n value: (totpSecret.attributes as UiNodeTextAttributes).text\n .text,\n }}\n />\n </Node.Label>\n <Node.Label\n attributes={totpInput.attributes as UiNodeInputAttributes}\n node={totpInput}\n >\n <Node.CodeInput\n node={totpInput}\n attributes={totpInput.attributes as UiNodeInputAttributes}\n />\n </Node.Label>\n </div>\n </div>\n )\n }\n}\n","import * as React from \"react\";\nconst SvgQrcode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9.333 22.667v.013m0-13.346v.013m13.333-.013v.013m0 9.32h-4v4m8-4v.013m-8 7.987h4m0-4h4v4m-21.333-20a1.333 1.333 0 0 1 1.333-1.333H12a1.333 1.333 0 0 1 1.333 1.333V12A1.334 1.334 0 0 1 12 13.334H6.666A1.334 1.334 0 0 1 5.333 12zm13.333 0A1.333 1.333 0 0 1 20 5.334h5.333a1.333 1.333 0 0 1 1.333 1.333V12a1.333 1.333 0 0 1-1.333 1.334H20A1.333 1.333 0 0 1 18.666 12zM5.333 20a1.333 1.333 0 0 1 1.333-1.333H12A1.333 1.333 0 0 1 13.333 20v5.334A1.333 1.333 0 0 1 12 26.667H6.666a1.333 1.333 0 0 1-1.333-1.334z\" /></svg>;\nexport default SvgQrcode;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsWebauthnProps, useComponents } from \"@ory/elements-react\"\nimport Key from \"../../assets/icons/key.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsWebauthn({\n nameInput,\n triggerButton,\n removeButtons,\n}: OrySettingsWebauthnProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const { Node, Card } = useComponents()\n const hasRemoveButtons = removeButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n <div className=\"flex md:max-w-96 sm:items-end gap-3 flex-col sm:flex-row\">\n <div className=\"flex-1\">\n <Node.Label\n node={nameInput}\n attributes={nameInput.attributes as UiNodeInputAttributes}\n >\n <Node.Input\n node={nameInput}\n attributes={nameInput.attributes as UiNodeInputAttributes}\n />\n </Node.Label>\n </div>\n {triggerButton ? (\n <Node.Button\n node={triggerButton}\n attributes={triggerButton.attributes as UiNodeInputAttributes}\n onClick={triggerButton.onClick}\n />\n ) : null}\n </div>\n {hasRemoveButtons ? (\n <div className=\"flex flex-col gap-8\">\n <Card.Divider />\n <div className=\"flex flex-col gap-4\">\n {removeButtons.map((node, i) => {\n const context = node.meta.label?.context ?? {}\n const addedAt =\n \"added_at\" in context ? (context.added_at as string) : null\n const displayName =\n \"display_name\" in context\n ? (context.display_name as string)\n : null\n const keyId =\n \"value\" in node.attributes ? node.attributes.value : null\n\n return (\n <div\n className=\"flex justify-between gap-6 md:items-center\"\n key={`webauthn-remove-button-${i}`}\n >\n <div className=\"flex gap-2 items-center flex-1\">\n <Key\n size={32}\n className=\"text-interface-foreground-default-primary\"\n />\n <div className=\"flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4\">\n <div className=\"flex-1 flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {displayName}\n </p>\n <span className=\"text-sm text-interface-foreground-default-tertiary hidden sm:block\">\n {keyId}\n </span>\n </div>\n {addedAt && (\n <p className=\"text-sm text-interface-foreground-default-tertiary\">\n {new Intl.DateTimeFormat(undefined, {\n dateStyle: \"long\",\n }).format(new Date(addedAt))}\n </p>\n )}\n </div>\n </div>\n <button\n {...(node.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n onClick={node.onClick}\n disabled={isSubmitting}\n className=\"relative\"\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgKey = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20 12h.013m2.06-6.876 4.803 4.803a3.836 3.836 0 0 1 0 5.425l-3.524 3.524a3.835 3.835 0 0 1-5.425 0l-.402-.401-8.744 8.744a2.67 2.67 0 0 1-1.652.77L6.896 28H5.333a1.334 1.334 0 0 1-1.324-1.177L4 26.667v-1.563c0-.626.22-1.232.623-1.712l.158-.173.552-.552H8V20h2.667v-2.667l2.858-2.858-.401-.402a3.835 3.835 0 0 1 0-5.425l3.524-3.524a3.835 3.835 0 0 1 5.425 0\" /></svg>;\nexport default SvgKey;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFlowComponentOverrides,\n OryFlowComponents,\n} from \"@ory/elements-react\"\nimport {\n DefaultCard,\n DefaultCardContent,\n DefaultCardFooter,\n DefaultCardHeader,\n DefaultCardLogo,\n} from \"./card\"\nimport { DefaultAuthMethodListItem } from \"./card/auth-methods\"\nimport {\n DefaultFormContainer,\n DefaultMessage,\n DefaultMessageContainer,\n} from \"./form\"\nimport { DefaultButton } from \"./form/button\"\nimport { DefaultCheckbox } from \"./form/checkbox\"\nimport { DefaultGroupContainer } from \"./form/group-container\"\nimport { DefaultHorizontalDivider } from \"./form/horizontal-divider\"\nimport { DefaultImage } from \"./form/image\"\nimport { DefaultInput } from \"./form/input\"\nimport { DefaultLabel } from \"./form/label\"\nimport { DefaultLinkButton } from \"./form/link-button\"\nimport { DefaultPinCodeInput } from \"./form/pin-code-input\"\nimport {\n DefaultFormSection,\n DefaultFormSectionContent,\n DefaultFormSectionFooter,\n} from \"./form/section\"\nimport {\n DefaultButtonSocial,\n DefaultSocialButtonContainer,\n} from \"./form/social\"\nimport { DefaultText } from \"./form/text\"\nimport { DefaultPageHeader } from \"./generic/page-header\"\nimport { DefaultSettingsOidc } from \"./settings/settings-oidc\"\nimport { DefaultSettingsPasskey } from \"./settings/settings-passkey\"\nimport { DefaultSettingsRecoveryCodes } from \"./settings/settings-recovery-codes\"\nimport { DefaultSettingsTotp } from \"./settings/settings-totp\"\nimport { DefaultSettingsWebauthn } from \"./settings/settings-webauthn\"\n\nexport function getOryComponents(\n overrides?: OryFlowComponentOverrides,\n): OryFlowComponents {\n // Yes, this could probably be easier by using lodash or a custom merge function.\n // But, this makes it very explicit what can be overridden, and does not introduce issues with merging nested fields.\n return {\n Card: {\n Root: overrides?.Card?.Root ?? DefaultCard,\n Footer: overrides?.Card?.Footer ?? DefaultCardFooter,\n Header: overrides?.Card?.Header ?? DefaultCardHeader,\n Content: overrides?.Card?.Content ?? DefaultCardContent,\n Logo: overrides?.Card?.Logo ?? DefaultCardLogo,\n Divider: overrides?.Card?.Divider ?? DefaultHorizontalDivider,\n AuthMethodListItem:\n overrides?.Card?.AuthMethodListItem ?? DefaultAuthMethodListItem,\n SettingsSection: overrides?.Card?.SettingsSection ?? DefaultFormSection,\n SettingsSectionContent:\n overrides?.Card?.SettingsSectionContent ?? DefaultFormSectionContent,\n SettingsSectionFooter:\n overrides?.Card?.SettingsSectionFooter ?? DefaultFormSectionFooter,\n },\n Node: {\n Button: overrides?.Node?.Button ?? DefaultButton,\n OidcButton: overrides?.Node?.OidcButton ?? DefaultButtonSocial,\n Input: overrides?.Node?.Input ?? DefaultInput,\n CodeInput: overrides?.Node?.CodeInput ?? DefaultPinCodeInput,\n Image: overrides?.Node?.Image ?? DefaultImage,\n Label: overrides?.Node?.Label ?? DefaultLabel,\n Checkbox: overrides?.Node?.Checkbox ?? DefaultCheckbox,\n Text: overrides?.Node?.Text ?? DefaultText,\n Anchor: overrides?.Node?.Anchor ?? DefaultLinkButton,\n },\n Form: {\n Root: overrides?.Form?.Root ?? DefaultFormContainer,\n Group: overrides?.Form?.Group ?? DefaultGroupContainer,\n OidcRoot: overrides?.Form?.OidcRoot ?? DefaultSocialButtonContainer,\n RecoveryCodesSettings:\n overrides?.Form?.RecoveryCodesSettings ?? DefaultSettingsRecoveryCodes,\n TotpSettings: overrides?.Form?.TotpSettings ?? DefaultSettingsTotp,\n OidcSettings: overrides?.Form?.OidcSettings ?? DefaultSettingsOidc,\n WebauthnSettings:\n overrides?.Form?.WebauthnSettings ?? DefaultSettingsWebauthn,\n PasskeySettings:\n overrides?.Form?.PasskeySettings ?? DefaultSettingsPasskey,\n },\n Message: {\n Root: overrides?.Message?.Root ?? DefaultMessageContainer,\n Content: overrides?.Message?.Content ?? DefaultMessage,\n },\n Page: {\n Header: overrides?.Page?.Header ?? DefaultPageHeader,\n },\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowError } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\n\nexport type ErrorFlowContextProps = {\n error: FlowError\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Error({\n error,\n children,\n}: PropsWithChildren<ErrorFlowContextProps>) {\n return (\n <div data-testid={\"ory/screen/error/raw\"}>\n {JSON.stringify(error) || children}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, LoginFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type LoginFlowContextProps = {\n flow: LoginFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Login({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<LoginFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Login}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, RecoveryFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type RecoveryFlowContextProps = {\n flow: RecoveryFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Recovery({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<RecoveryFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Recovery}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, RegistrationFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\ntype RegistrationFlowContextProps = {\n flow: RegistrationFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Registration({\n flow,\n children,\n components: flowOverrideComponents,\n config,\n}: PropsWithChildren<RegistrationFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Registration}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, SettingsFlow } from \"@ory/client-fetch\"\nimport {\n HeadlessPageHeader,\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OrySettingsCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type SettingsFlowContextProps = {\n flow: SettingsFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Settings({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<SettingsFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Settings}\n components={components}\n >\n {children ?? (\n <>\n <HeadlessPageHeader />\n <OrySettingsCard />\n </>\n )}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, VerificationFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type VerificationFlowContextProps = {\n flow: VerificationFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Verification({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<VerificationFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Verification}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n"],"mappings":"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","names":["Error","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_elements_react","import_client_fetch","import_react_intl","import_client_fetch","import_elements_react","React","import_jsx_runtime","import_jsx_runtime","initFlowUrl","import_jsx_runtime","import_elements_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react_intl","import_elements_react","import_client_fetch","import_elements_react","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react_intl","import_react_hook_form","import_jsx_runtime","import_jsx_runtime","logos","node","import_jsx_runtime","import_react_intl","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_react_intl","uiTextToFormattedMessage","import_jsx_runtime","uiTextToFormattedMessage","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_jsx_runtime","import_client_fetch","import_elements_react","import_react","import_react_intl","import_jsx_runtime","import_react_hook_form","React","import_jsx_runtime","import_elements_react","import_client_fetch","import_jsx_runtime","import_jsx_runtime","import_elements_react","import_react_intl","import_jsx_runtime","import_elements_react","import_react","import_elements_react","import_client_fetch","React","import_jsx_runtime","React","import_jsx_runtime","import_react","import_jsx_runtime","import_react","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_client","import_jsx_runtime","React","import_jsx_runtime","import_react_hook_form","import_react","import_jsx_runtime","import_elements_react","import_react_hook_form","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_elements_react","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_elements_react","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_jsx_runtime","Error","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../../src/theme/default/index.ts","../../../src/theme/default/assets/ory-badge-horizontal.svg","../../../src/theme/default/assets/ory-badge-vertical.svg","../../../src/theme/default/components/card/badge.tsx","../../../src/theme/default/components/card/content.tsx","../../../src/theme/default/components/card/footer.tsx","../../../src/theme/default/utils/url.ts","../../../src/theme/default/components/card/header.tsx","../../../src/theme/default/utils/constructCardHeader.ts","../../../src/theme/default/components/card/current-identifier-button.tsx","../../../src/theme/default/assets/icons/arrow-left.svg","../../../src/theme/default/utils/attributes.ts","../../../src/theme/default/components/card/logo.tsx","../../../src/theme/default/components/card/layout.tsx","../../../src/theme/default/components/card/index.tsx","../../../src/theme/default/utils/cn.ts","../../../src/theme/default/components/form/index.tsx","../../../src/theme/default/components/form/social.tsx","../../../src/theme/default/provider-logos/apple.svg","../../../src/theme/default/provider-logos/auth0.svg","../../../src/theme/default/provider-logos/discord.svg","../../../src/theme/default/provider-logos/facebook.svg","../../../src/theme/default/provider-logos/generic.svg","../../../src/theme/default/provider-logos/github.svg","../../../src/theme/default/provider-logos/gitlab.svg","../../../src/theme/default/provider-logos/google.svg","../../../src/theme/default/provider-logos/linkedin.svg","../../../src/theme/default/provider-logos/microsoft.svg","../../../src/theme/default/provider-logos/slack.svg","../../../src/theme/default/provider-logos/spotify.svg","../../../src/theme/default/provider-logos/yandex.svg","../../../src/theme/default/provider-logos/index.ts","../../../src/theme/default/components/form/spinner.tsx","../../../src/theme/default/components/card/auth-method-list-item.tsx","../../../src/theme/default/assets/icons/code.svg","../../../src/theme/default/assets/icons/passkey.svg","../../../src/theme/default/assets/icons/password.svg","../../../src/theme/default/assets/icons/webauthn.svg","../../../src/theme/default/utils/form.ts","../../../src/theme/default/components/form/button.tsx","../../../src/theme/default/components/form/checkbox.tsx","../../../src/theme/default/components/ui/checkbox-label.tsx","../../../src/util/i18n/index.ts","../../../src/theme/default/components/form/group-container.tsx","../../../src/theme/default/components/form/horizontal-divider.tsx","../../../src/theme/default/components/form/image.tsx","../../../src/theme/default/components/form/input.tsx","../../../src/theme/default/components/form/label.tsx","../../../src/theme/default/components/form/link-button.tsx","../../../src/theme/default/components/form/pin-code-input.tsx","../../../src/theme/default/components/form/shadcn/otp-input.tsx","../../../src/theme/default/components/form/section.tsx","../../../src/theme/default/components/form/text.tsx","../../../src/theme/default/components/generic/page-header.tsx","../../../src/theme/default/components/ui/user-menu.tsx","../../../src/util/client.ts","../../../src/theme/default/assets/icons/logout.svg","../../../src/theme/default/assets/icons/settings.svg","../../../src/theme/default/utils/user.ts","../../../src/theme/default/components/ui/dropdown-menu.tsx","../../../src/theme/default/components/ui/user-avater.tsx","../../../src/theme/default/assets/icons/user.svg","../../../src/theme/default/components/settings/settings-oidc.tsx","../../../src/theme/default/assets/icons/trash.svg","../../../src/theme/default/components/settings/settings-passkey.tsx","../../../src/theme/default/assets/icons/download.svg","../../../src/theme/default/assets/icons/eye.svg","../../../src/theme/default/assets/icons/refresh.svg","../../../src/theme/default/components/settings/settings-recovery-codes.tsx","../../../src/theme/default/components/settings/settings-totp.tsx","../../../src/theme/default/assets/icons/qrcode.svg","../../../src/theme/default/components/settings/settings-webauthn.tsx","../../../src/theme/default/assets/icons/key.svg","../../../src/theme/default/components/card/auth-method-list-container.tsx","../../../src/theme/default/components/default-components.tsx","../../../src/theme/default/flows/error.tsx","../../../src/theme/default/flows/login.tsx","../../../src/theme/default/flows/recovery.tsx","../../../src/theme/default/flows/registration.tsx","../../../src/theme/default/flows/settings.tsx","../../../src/theme/default/flows/verification.tsx"],"sourcesContent":["// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport \"./global.css\"\nexport * from \"./components\"\nexport * from \"./flows\"\n","import * as React from \"react\";\nconst SvgOryBadgeHorizontal = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path fill=\"#0F172A\" d=\"M18.007 8h-1.71l2.007-3.996L16.296 0h1.711l1.145 2.301L20.327 0H22z\" /><path fill=\"#0F172A\" 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\" /></svg>;\nexport default SvgOryBadgeHorizontal;","import * as React from \"react\";\nconst SvgOryBadgeVertical = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path fill=\"#0F172A\" d=\"M8 3.993v1.71L4.004 3.697 0 5.704V3.993l2.301-1.145L0 1.673V0z\" /><path fill=\"#0F172A\" 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\" /></svg>;\nexport default SvgOryBadgeVertical;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport OryLogoHorizontal from \"../../assets/ory-badge-horizontal.svg\"\nimport OryLogoVertical from \"../../assets/ory-badge-vertical.svg\"\n\nexport function Badge() {\n return (\n <div className=\"absolute bg-ory-background-default p-2 font-bold max-sm:bottom-0 max-sm:left-8 max-sm:translate-y-full max-sm:rounded-b-branding sm:right-0 sm:top-8 sm:translate-x-full sm:rounded-r-branding border-ory-border-default border max-sm:py-[7px] sm:pl-[7px]\">\n <OryLogoHorizontal width={22} height={8} className=\"sm:hidden\" />\n <OryLogoVertical width={8} height={22} className=\"max-sm:hidden\" />\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardContentProps } from \"@ory/elements-react\"\n\nexport function DefaultCardContent({ children }: OryCardContentProps) {\n return children\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, UiNode, UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { initFlowUrl } from \"../../utils/url\"\n\nexport function DefaultCardFooter() {\n const { flowType } = useOryFlow()\n switch (flowType) {\n case FlowType.Login:\n return <LoginCardFooter />\n case FlowType.Registration:\n return <RegistrationCardFooter />\n case FlowType.Recovery:\n return <RecoveryCardFooter />\n case FlowType.Verification:\n return <VerificationCardFooter />\n default:\n return null\n }\n}\n\nexport function getReturnToQueryParam(flow: { return_to?: string }) {\n if (flow.return_to) {\n return flow.return_to\n }\n if (typeof window !== \"undefined\") {\n const searchParams = new URLSearchParams(window.location.search)\n return searchParams.get(\"return_to\")\n }\n}\n\nfunction LoginCardFooter() {\n const { config, formState, flow } = useOryFlow()\n const intl = useIntl()\n\n if (\n !config.project.registration_enabled ||\n formState.current !== \"provide_identifier\"\n ) {\n // The two-step login flow does not support the \"navigation\" between steps, so we don't have\n // anything to render on the footer in those steps\n return null\n }\n\n return (\n <span className=\"font-normal leading-normal antialiased text-interface-foreground-default-primary\">\n {intl.formatMessage({\n id: \"login.registration-label\",\n defaultMessage: \"No account?\",\n })}{\" \"}\n <a\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n href={initFlowUrl(config.sdk.url, \"registration\", flow)}\n data-testid={\"ory/screen/registration/action/login\"}\n >\n {intl.formatMessage({\n id: \"login.registration-button\",\n defaultMessage: \"Sign up\",\n })}\n </a>\n </span>\n )\n}\n\nfunction findScreenSelectionButton(\n nodes: UiNode[],\n): { attributes: UiNodeInputAttributes } | undefined {\n return nodes.find(\n (node) =>\n node.attributes.node_type === \"input\" &&\n node.attributes.type === \"submit\" &&\n node.attributes.name === \"screen\",\n ) as { attributes: UiNodeInputAttributes }\n}\n\nfunction RegistrationCardFooter() {\n const intl = useIntl()\n const { config, flow, formState } = useOryFlow()\n const { setValue } = useFormContext()\n\n if (formState.current === \"select_method\") {\n return null\n }\n const screenSelectionNode = findScreenSelectionButton(flow.ui.nodes)\n\n function handleScreenSelection() {\n setValue(\"method\", \"profile\")\n if (screenSelectionNode) {\n setValue(\"screen\", \"credential-selection\")\n }\n }\n\n return (\n <span className=\"font-normal leading-normal antialiased\">\n {formState.current === \"method_active\" ? (\n <>\n {screenSelectionNode && (\n <button\n className=\"font-medium text-button-link-brand-brand hover:text-button-link-brand-brand-hover\"\n type=\"submit\"\n onClick={handleScreenSelection}\n >\n {intl.formatMessage({\n id: \"card.footer.select-another-method\",\n defaultMessage: \"Select another method\",\n })}\n </button>\n )}\n </>\n ) : (\n <>\n {intl.formatMessage({\n id: \"registration.login-label\",\n defaultMessage: \"Already have an account?\",\n })}{\" \"}\n <a\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n href={initFlowUrl(config.sdk.url, \"login\", flow)}\n data-testid={\"ory/screen/registration/action/login\"}\n >\n {intl.formatMessage({\n id: \"registration.login-button\",\n defaultMessage: \"Sign in\",\n })}\n </a>\n </>\n )}\n </span>\n )\n}\n\nfunction RecoveryCardFooter() {\n return null\n}\n\nfunction VerificationCardFooter() {\n return null\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function restartFlowUrl(\n flow: { request_url?: string; return_to?: string },\n fallback: string,\n) {\n return flow.request_url || appendReturnTo(fallback, flow.return_to)\n}\n\nexport function initFlowUrl(\n sdkUrl: string,\n flowType: string,\n flow: {\n return_to?: string\n oauth2_login_challenge?: string\n },\n) {\n const result = `${sdkUrl}/self-service/${flowType}/browser`\n const qs = new URLSearchParams()\n\n if (flow.oauth2_login_challenge) {\n qs.set(\"login_challenge\", flow.oauth2_login_challenge)\n }\n if (flow.return_to) {\n qs.set(\"return_to\", flow.return_to)\n } else if (typeof window !== \"undefined\") {\n const searchParams = new URLSearchParams(window.location.search)\n if (searchParams.has(\"return_to\")) {\n qs.set(\"return_to\", searchParams.get(\"return_to\") || \"\")\n }\n }\n\n if (qs.toString().length === 0) {\n return result\n }\n\n return result + \"?\" + qs.toString()\n}\n\nfunction appendReturnTo(url: string, returnTo?: string) {\n if (!returnTo) {\n return url\n }\n\n const urlObj = new URL(url)\n urlObj.searchParams.set(\"return_to\", returnTo)\n return urlObj.toString()\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useComponents, useOryFlow } from \"@ory/elements-react\"\nimport { useCardHeaderText } from \"../../utils/constructCardHeader\"\nimport { DefaultCurrentIdentifierButton } from \"./current-identifier-button\"\n\nfunction InnerCardHeader({ title, text }: { title: string; text?: string }) {\n const { Card } = useComponents()\n return (\n <header className=\"flex flex-col gap-8 antialiased\">\n <Card.Logo />\n <div className=\"flex flex-col gap-2\">\n <h2 className=\"text-lg font-semibold leading-normal text-interface-foreground-default-primary\">\n {title}\n </h2>\n <p className=\"leading-normal text-interface-foreground-default-secondary\">\n {text}\n </p>\n <DefaultCurrentIdentifierButton />\n </div>\n </header>\n )\n}\n\nexport function DefaultCardHeader() {\n const context = useOryFlow()\n const { title, description } = useCardHeaderText(context.flow.ui, context)\n\n return <InnerCardHeader title={title} text={description} />\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FlowType,\n isUiNodeInputAttributes,\n UiContainer,\n} from \"@ory/client-fetch\"\nimport { useIntl } from \"react-intl\"\n\nfunction joinWithCommaOr(list: string[], orText = \"or\"): string {\n if (list.length === 0) {\n return \".\"\n } else if (list.length === 1) {\n return list[0]\n } else {\n const last = list.pop()\n return `${list.join(\", \")} ${orText} ${last}`\n }\n}\n\ntype opts =\n | {\n flowType: FlowType.Login\n flow: {\n refresh?: boolean\n }\n }\n | {\n flowType:\n | FlowType.Error\n | FlowType.Registration\n | FlowType.Verification\n | FlowType.Recovery\n | FlowType.Settings\n }\n\n/**\n * Constructs a title and a description for the card header.\n *\n * The title is a title suitable for the current flow, e.g. \"Sign in\" or \"Update your account\".\n *\n * The description for a login & registration flow, is a collection of the labels of the input fields.\n * For example, if the user has a password and an email address, the description will be \"Sign in with your email and password\".\n * And for registration, the listed options depend on the project configuration.\n *\n * For verification, recovery and settings flows, the description is a generic one, e.g. \"Enter the email address associated with your account to verify it\".\n *\n *\n * @param nodes - the UI nodes of the current flow\n * @param opts - can be a flow object, only needed for the refresh login flow\n * @returns a title and a description for the card header\n */\nexport function useCardHeaderText(\n container: UiContainer,\n opts: opts,\n): { title: string; description: string } {\n const nodes = container.nodes\n const intl = useIntl()\n switch (opts.flowType) {\n case FlowType.Recovery:\n if (\n nodes.find(\n (node) =>\n \"name\" in node.attributes && node.attributes.name === \"code\",\n )\n ) {\n return {\n title: intl.formatMessage({\n id: \"recovery.title\",\n }),\n description: intl.formatMessage({\n id: \"identities.messages.1060003\",\n }),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"recovery.title\",\n }),\n description: intl.formatMessage({\n id: \"recovery.subtitle\",\n }),\n }\n case FlowType.Settings:\n return {\n title: intl.formatMessage({\n id: \"settings.title\",\n }),\n description: intl.formatMessage({\n id: \"settings.subtitle\",\n }),\n }\n case FlowType.Verification:\n if (\n nodes.find(\n (node) =>\n \"name\" in node.attributes && node.attributes.name === \"code\",\n )\n ) {\n return {\n title: intl.formatMessage({\n id: \"verification.title\",\n }),\n description: intl.formatMessage({\n id: \"identities.messages.1080003\",\n }),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"verification.title\",\n }),\n description: intl.formatMessage({\n id: \"verification.subtitle\",\n }),\n }\n case FlowType.Login: {\n // account linking\n const accountLinkingMessage = container.messages?.find(\n (m) => m.id === 1010016,\n )\n if (accountLinkingMessage) {\n return {\n title: intl.formatMessage({\n id: \"account-linking.title\",\n }),\n description: intl.formatMessage(\n {\n id: \"identities.messages.1010016\",\n },\n accountLinkingMessage.context as Record<string, string>,\n ),\n }\n }\n }\n }\n\n const parts = []\n\n if (nodes.find((node) => node.group === \"password\")) {\n switch (opts.flowType) {\n case FlowType.Registration:\n parts.push(\n intl.formatMessage(\n { id: \"card.header.parts.password.registration\" },\n // TODO: make this generic for other labels\n { identifierLabel: \"email\" },\n ),\n )\n break\n default:\n parts.push(\n intl.formatMessage(\n { id: \"card.header.parts.password.login\" },\n // TODO: make this generic for other labels\n { identifierLabel: \"email\" },\n ),\n )\n }\n }\n\n if (nodes.find((node) => node.group === \"oidc\")) {\n parts.push(\n intl.formatMessage({\n id: \"card.header.parts.oidc\",\n }),\n )\n }\n\n if (nodes.find((node) => node.group === \"code\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.code\" }))\n }\n\n if (nodes.find((node) => node.group === \"passkey\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.passkey\" }))\n }\n\n if (nodes.find((node) => node.group === \"webauthn\")) {\n parts.push(intl.formatMessage({ id: \"card.header.parts.webauthn\" }))\n }\n\n if (nodes.find((node) => node.group === \"identifier_first\")) {\n const identifier = nodes.find(\n (node) =>\n isUiNodeInputAttributes(node.attributes) &&\n node.attributes.name.startsWith(\"identifier\") &&\n node.attributes.type !== \"hidden\",\n )\n\n if (identifier) {\n parts.push(\n intl.formatMessage(\n {\n id: \"card.header.parts.identifier-first\",\n },\n {\n identifierLabel: identifier.meta.label?.text,\n },\n ),\n )\n }\n }\n\n switch (opts.flowType) {\n case FlowType.Login:\n if (opts.flow.refresh) {\n return {\n title: intl.formatMessage({\n id: \"login.title-refresh\",\n }),\n description: intl.formatMessage(\n {\n id: \"login.subtitle-refresh\",\n },\n {\n parts: joinWithCommaOr(parts),\n },\n ),\n }\n }\n return {\n title: intl.formatMessage({\n id: \"login.title\",\n }),\n description:\n parts.length > 0\n ? intl.formatMessage(\n {\n id: \"login.subtitle\",\n },\n {\n parts: joinWithCommaOr(\n parts,\n intl.formatMessage({ id: \"misc.or\" }),\n ),\n },\n )\n : \"\",\n }\n case FlowType.Registration:\n return {\n title: intl.formatMessage({\n id: \"registration.title\",\n }),\n description:\n parts.length > 0\n ? intl.formatMessage(\n {\n id: \"registration.subtitle\",\n },\n {\n parts: joinWithCommaOr(\n parts,\n intl.formatMessage({ id: \"misc.or\" }),\n ),\n },\n )\n : \"\",\n }\n }\n\n // TODO: This should not happen, as the switch is exhaustive, but typescript doesn't think so\n return {\n title: \"Error\",\n description: \"An error occurred\",\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, UiNode } from \"@ory/client-fetch\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport IconArrowLeft from \"../../assets/icons/arrow-left.svg\"\nimport { omit } from \"../../utils/attributes\"\nimport { restartFlowUrl } from \"../../utils/url\"\n\nexport function DefaultCurrentIdentifierButton() {\n const { flow, flowType, config, formState } = useOryFlow()\n const ui = flow.ui\n\n if (formState.current === \"provide_identifier\") {\n return null\n }\n\n const nodeBackButton = getBackButtonNode(flowType, ui.nodes)\n\n if (\n nodeBackButton?.attributes.node_type !== \"input\" ||\n !nodeBackButton.attributes.value\n ) {\n return null\n }\n\n const initFlowUrl = restartFlowUrl(\n flow,\n `${config.sdk.url}/self-service/${flowType}/browser`,\n )\n\n const attributes = omit(nodeBackButton.attributes, [\n \"autocomplete\",\n \"node_type\",\n \"maxlength\",\n ])\n\n return (\n <a\n className={\n \"group inline-flex max-w-full cursor-pointer items-center gap-1 self-start rounded-identifier border px-[11px] py-[5px] transition-colors \" +\n \"border-button-identifier-border-border-default bg-button-identifier-background-default hover:border-button-identifier-border-border-hover hover:bg-button-identifier-background-hover\"\n }\n {...attributes}\n href={initFlowUrl}\n title={`Adjust ${nodeBackButton?.attributes.value}`}\n data-testid={\"ory/screen/login/action/restart\"}\n >\n <span className=\"inline-flex min-h-5 items-center gap-2 overflow-hidden text-ellipsis\">\n <IconArrowLeft\n size={16}\n stroke=\"1\"\n className=\"shrink-0 text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover\"\n />\n <span className=\"overflow-hidden text-ellipsis text-nowrap text-sm font-medium text-button-identifier-foreground-default group-hover:text-button-identifier-foreground-hover\">\n {nodeBackButton?.attributes.value}\n </span>\n </span>\n </a>\n )\n}\n\nexport function getBackButtonNode(\n flowType: FlowType,\n nodes: UiNode[],\n): UiNode | undefined {\n let nodeBackButton: UiNode | undefined\n switch (flowType) {\n case FlowType.Login:\n nodeBackButton = nodes.find(\n (node) =>\n \"name\" in node.attributes &&\n node.attributes.name === \"identifier\" &&\n [\"default\", \"identifier_first\"].includes(node.group),\n )\n break\n case FlowType.Registration:\n nodeBackButton = guessRegistrationBackButton(nodes)\n break\n case FlowType.Recovery:\n case FlowType.Verification:\n // Re-use the email node for displaying the email\n nodeBackButton = nodes.find(\n (n) => \"name\" in n.attributes && n.attributes.name === \"email\",\n )\n break\n }\n return nodeBackButton\n}\n\nconst backButtonCandiates = [\n \"traits.email\",\n \"traits.username\",\n \"traits.phone_number\",\n]\n/**\n * Guesses the back button for registration flows\n *\n * This is based on the list above, and the first node that matches the criteria is returned.\n *\n * The list is most likely not exhaustive yet, and may need to be updated in the future.\n *\n */\nfunction guessRegistrationBackButton(uiNodes: UiNode[]): UiNode | undefined {\n return uiNodes.find(\n (node) =>\n \"name\" in node.attributes &&\n backButtonCandiates.includes(node.attributes.name) &&\n node.group === \"default\",\n )\n}\n","import * as React from \"react\";\nconst SvgArrowLeft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 25\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 12.325h14m-14 0 6 6m-6-6 6-6\" /></svg>;\nexport default SvgArrowLeft;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function omit<OBJ extends object>(\n obj: OBJ,\n keys: (keyof OBJ)[],\n): Omit<typeof obj, (typeof keys)[number]> {\n const ret = { ...obj }\n for (const key of keys) {\n delete ret[key]\n }\n return ret\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useOryFlow } from \"@ory/elements-react\"\n\nexport function DefaultCardLogo() {\n const flow = useOryFlow()\n\n if (flow.config.logoUrl) {\n return <img src={flow.config.logoUrl} width={100} height={36} alt=\"Logo\" />\n }\n\n return (\n <h1 className=\"text-xl font-semibold leading-normal text-interface-foreground-default-primary\">\n {flow.config.name}\n </h1>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PropsWithChildren } from \"react\"\n\nexport function DefaultCardLayout({ children }: PropsWithChildren) {\n return (\n <main className=\"p-4 pb-8 flex items-center justify-center flex-col gap-8 min-h-screen\">\n {children}\n </main>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardProps } from \"@ory/elements-react\"\nimport { Badge } from \"./badge\"\nimport { DefaultCardContent } from \"./content\"\nimport { DefaultCardFooter } from \"./footer\"\nimport { DefaultCardHeader } from \"./header\"\nimport { DefaultCardLogo } from \"./logo\"\nimport { DefaultCurrentIdentifierButton } from \"./current-identifier-button\"\nimport { DefaultCardLayout } from \"./layout\"\n\nexport function DefaultCard({ children }: OryCardProps) {\n return (\n <div className=\"flex flex-1 sm:items-center justify-center font-sans items-start w-full sm:w-[480px] sm:max-w-[480px]\">\n <div className=\"relative grid grid-cols-1 gap-8 sm:rounded-cards sm:border border-form-border-default bg-form-background-default px-8 py-12 sm:px-12 sm:py-14 border-b w-full\">\n {children}\n <Badge />\n </div>\n </div>\n )\n}\n\nexport {\n DefaultCardContent,\n DefaultCardFooter,\n DefaultCardHeader,\n DefaultCardLogo,\n DefaultCardLayout,\n DefaultCurrentIdentifierButton,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PropsWithChildren } from \"react\"\nimport { cn } from \"../../utils/cn\"\nimport { useIntl } from \"react-intl\"\nimport {\n messageTestId,\n OryFormRootProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { OryMessageContentProps } from \"@ory/elements-react\"\nimport { FlowType } from \"@ory/client-fetch\"\n\nexport function DefaultFormContainer({\n children,\n onSubmit,\n action,\n method,\n}: PropsWithChildren<OryFormRootProps>) {\n return (\n <form\n onSubmit={onSubmit}\n noValidate\n action={action}\n method={method}\n className={\"grid gap-8\"}\n >\n {children}\n </form>\n )\n}\n\nexport function DefaultMessageContainer({ children }: PropsWithChildren) {\n const { flowType } = useOryFlow()\n if (!children || (Array.isArray(children) && children.length === 0)) {\n return null\n }\n\n return (\n <section\n className={cn(\n flowType === FlowType.Settings ? \"text-center\" : \"text-left\",\n )}\n >\n {children}\n </section>\n )\n}\n\nexport function DefaultMessage({ message }: OryMessageContentProps) {\n const intl = useIntl()\n return (\n <span\n className={cn(\n \"leading-normal\",\n message.type === \"error\" &&\n \"text-interface-foreground-validation-danger\",\n message.type === \"info\" &&\n \"text-interface-foreground-default-secondary\",\n message.type === \"success\" &&\n \"text-interface-foreground-validation-success\",\n )}\n {...messageTestId(message)}\n >\n {uiTextToFormattedMessage(message, intl)}\n </span>\n )\n}\n\nexport { DefaultButtonSocial } from \"./social\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFormOidcRootProps,\n OryNodeOidcButtonProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport defaultLogos from \"../../provider-logos\"\nimport { cn } from \"../../utils/cn\"\nimport { useIntl } from \"react-intl\"\nimport { ElementType, useEffect, useState } from \"react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"./spinner\"\n\nexport function extractProvider(\n context: object | undefined,\n): string | undefined {\n if (\n context &&\n typeof context === \"object\" &&\n \"provider\" in context &&\n typeof context.provider === \"string\"\n ) {\n return context.provider\n }\n return undefined\n}\n\ntype DefaultSocialButtonProps = OryNodeOidcButtonProps & {\n showLabel?: boolean\n logos?: Record<string, ElementType>\n}\n\nexport function DefaultButtonSocial({\n attributes,\n node,\n onClick,\n showLabel: _showLabel,\n logos: providedLogos,\n}: DefaultSocialButtonProps) {\n const logos = { ...defaultLogos, ...providedLogos }\n const {\n node_type: _ignoredNodeType,\n type: _ignoredType,\n name: _ignoredName,\n ...props\n } = attributes\n const {\n flow: { ui },\n } = useOryFlow()\n const [clicked, setClicked] = useState(false)\n const intl = useIntl()\n const {\n formState: { isSubmitting },\n } = useFormContext()\n\n const oidcNodeCount =\n ui.nodes.filter((node) => node.group === \"oidc\").length ?? 0\n\n // Ideally, kratos would return the provider name in the context\n // At the moment it only returns the label (misleadingly named `provider`).\n // But changing that would be a breaking change.\n // So we have to extract the provider name from the id, which sometimes might contain a - followed by a unique ID.\n // TODO(kratos): Add provider to the context\n const Logo = logos[(attributes.value as string).split(\"-\")[0]]\n\n const showLabel =\n _showLabel ?? (oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0)\n\n const provider = extractProvider(node.meta.label?.context) ?? \"\"\n\n const localOnClick = () => {\n setClicked(true)\n onClick?.()\n }\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n return (\n <button\n className=\"gap-3 border border-button-social-border-default bg-button-social-background-default hover:bg-button-social-background-hover transition-colors rounded-buttons flex items-center justify-center px-4 py-[13px] loading:bg-button-social-background-disabled loading:border-button-social-border-disabled loading:text-button-social-foreground-disabled hover:text-button-social-foreground-hover\"\n value={attributes.value}\n type=\"submit\"\n name=\"provider\"\n data-testid={`ory/form/node/input/${attributes.name}`}\n {...props}\n onClick={localOnClick}\n data-loading={clicked}\n disabled={isSubmitting}\n >\n <span className=\"size-5 relative\">\n {!clicked ? (\n Logo ? (\n <Logo size={20} />\n ) : (\n <span className=\"flex aspect-square items-center justify-center rounded-[999px] border text-xs\">\n {provider.slice(0, 2)}\n </span>\n )\n ) : (\n <Spinner className=\"size-5\" />\n )}\n </span>\n {showLabel && node.meta.label ? (\n <span className=\"grow text-left font-medium leading-none text-button-social-foreground-default\">\n {uiTextToFormattedMessage(node.meta.label, intl)}\n </span>\n ) : null}\n </button>\n )\n}\n\n/**\n * Returns a variant of DefaultButtonSocial that can use your own logos\n *\n * @param logos - a record of provider names and their respective logos\n * @returns a variant of DefaultButtonSocial that uses the provided logos\n */\nDefaultButtonSocial.WithLogos =\n (logos: Record<string, ElementType>) => (props: DefaultSocialButtonProps) => (\n <DefaultButtonSocial {...props} logos={logos} />\n )\n\nexport function DefaultSocialButtonContainer({\n children,\n nodes,\n}: OryFormOidcRootProps) {\n return (\n <div\n className={cn(\"grid gap-3\", {\n // needed because tailwind is not compiling dynamic classes\n \"grid-cols-1\": nodes.length % 4 <= 2,\n \"grid-cols-3\": nodes.length % 3 === 0,\n \"grid-cols-4\": nodes.length > 1 && nodes.length % 4 === 0,\n })}\n >\n {children}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgApple = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#283544\" d=\"M27.734 11.55c-.134.078-3.317 1.724-3.317 5.374.15 4.162 4.017 5.621 4.083 5.621-.066.078-.584 1.988-2.116 3.991C25.167 28.261 23.817 30 21.767 30c-1.95 0-2.65-1.15-4.9-1.15-2.416 0-3.1 1.15-4.95 1.15-2.05 0-3.5-1.832-4.782-3.541-1.667-2.236-3.083-5.746-3.133-9.116-.034-1.786.334-3.54 1.266-5.032 1.317-2.081 3.667-3.494 6.233-3.54 1.966-.063 3.716 1.257 4.916 1.257 1.15 0 3.3-1.258 5.733-1.258 1.05.001 3.85.296 5.584 2.78M16.25 8.414c-.35-1.631.616-3.262 1.516-4.302C18.917 2.854 20.734 2 22.3 2c.1 1.63-.534 3.23-1.666 4.395-1.017 1.258-2.767 2.205-4.383 2.019\" /></svg>;\nexport default SvgApple;","import * as React from \"react\";\nconst SvgAuth0 = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#eb5424\" d=\"M49.012 51.774 42.514 32l17.008-12.22h-21.02L32.005 0h21.032l6.506 19.78c3.767 11.468-.118 24.52-10.53 31.993zm-34.023 0L31.998 64l17.015-12.226-17.008-12.22zm-10.516-32c-3.976 12.1.64 24.917 10.5 32.007v-.007L21.482 32 4.474 19.774l21.025.007L31.998 0H10.972z\" /></svg>;\nexport default SvgAuth0;","import * as React from \"react\";\nconst SvgDiscord = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path d=\"M2 11.6c0-3.36 0-5.04.654-6.324a6 6 0 0 1 2.622-2.622C6.56 2 8.24 2 11.6 2h8.8c3.36 0 5.04 0 6.324.654a6 6 0 0 1 2.622 2.622C30 6.56 30 8.24 30 11.6v8.8c0 3.36 0 5.04-.654 6.324a6 6 0 0 1-2.622 2.622C25.44 30 23.76 30 20.4 30h-8.8c-3.36 0-5.04 0-6.324-.654a6 6 0 0 1-2.622-2.622C2 25.44 2 23.76 2 20.4z\" /><path fill=\"#5865F2\" d=\"M23.636 9.34A18.8 18.8 0 0 0 19.097 8c-.195.332-.424.779-.581 1.134a17.7 17.7 0 0 0-5.03 0A12 12 0 0 0 12.897 8a18.7 18.7 0 0 0-4.542 1.343c-2.872 4.078-3.65 8.055-3.262 11.975a18.6 18.6 0 0 0 5.567 2.68c.448-.58.848-1.195 1.192-1.844a12 12 0 0 1-1.877-.859 9 9 0 0 0 .46-.342c3.62 1.59 7.553 1.59 11.13 0q.225.178.46.342c-.595.337-1.225.626-1.88.86q.516.974 1.191 1.845a18.6 18.6 0 0 0 5.57-2.682c.457-4.544-.78-8.484-3.27-11.978m-11.29 9.567c-1.087 0-1.978-.953-1.978-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116.002 1.16-.872 2.113-1.978 2.113m7.308 0c-1.086 0-1.977-.953-1.977-2.113s.872-2.116 1.977-2.116c1.106 0 1.997.953 1.978 2.116 0 1.16-.872 2.113-1.978 2.113\" /></svg>;\nexport default SvgDiscord;","import * as React from \"react\";\nconst SvgFacebook = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"url(#facebook_svg__a)\" /><path fill=\"#fff\" d=\"m21.214 20.282.622-3.952h-3.89v-2.563c0-1.081.542-2.136 2.284-2.136H22V8.267S20.395 8 18.86 8c-3.205 0-5.298 1.893-5.298 5.318v3.012H10v3.952h3.562v9.552q1.073.165 2.191.166 1.12 0 2.192-.166v-9.552z\" /><defs><linearGradient id=\"facebook_svg__a\" x1={16} x2={16} y1={2} y2={29.917} gradientUnits=\"userSpaceOnUse\"><stop stopColor=\"#18ACFE\" /><stop offset={1} stopColor=\"#0163E0\" /></linearGradient></defs></svg>;\nexport default SvgFacebook;","import * as React from \"react\";\nconst SvgGeneric = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} className=\"generic_svg__icon generic_svg__icon-tabler generic_svg__icon-tabler-brand-oauth\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"none\" d=\"M0 0h24v24H0z\" /><path d=\"M2 12a10 10 0 1 0 20 0 10 10 0 1 0-20 0\" /><path d=\"M12.556 6c.65 0 1.235.373 1.508.947l2.839 7.848a1.646 1.646 0 0 1-1.01 2.108 1.673 1.673 0 0 1-2.068-.851L13.365 15h-2.73l-.398.905A1.67 1.67 0 0 1 8.26 16.95l-.153-.047a1.647 1.647 0 0 1-1.056-1.956l2.824-7.852a1.66 1.66 0 0 1 1.409-1.087z\" /></svg>;\nexport default SvgGeneric;","import * as React from \"react\";\nconst SvgGithub = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path d=\"M12 0C5.374 0 0 5.373 0 12c0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576C20.566 21.797 24 17.3 24 12c0-6.627-5.373-12-12-12\" /></svg>;\nexport default SvgGithub;","import * as React from \"react\";\nconst SvgGitlab = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#E24329\" d=\"m22.708 10.691-.031-.072-3.015-7.167a.74.74 0 0 0-.31-.34.87.87 0 0 0-.923.045.73.73 0 0 0-.268.37L16.125 9.2H7.881L5.845 3.527a.72.72 0 0 0-.268-.371.87.87 0 0 0-.923-.045.74.74 0 0 0-.31.34l-3.021 7.164-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132 2.272 1.567 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.567 4.62-3.151.012-.009c.968-.666 1.671-1.6 2.006-2.661a4.67 4.67 0 0 0-.15-3.226\" /><path fill=\"#FC6D26\" d=\"m22.708 10.691-.031-.072a10.7 10.7 0 0 0-4.055 1.66L12 16.839l4.218 2.904 4.621-3.152.012-.008c.969-.666 1.674-1.601 2.008-2.664a4.67 4.67 0 0 0-.15-3.228\" /><path fill=\"#FCA326\" d=\"m7.781 19.743 2.273 1.566 1.384.952c.162.112.36.172.563.172s.401-.06.563-.172l1.384-.952 2.273-1.566S14.255 18.389 12 16.839c-2.255 1.55-4.219 2.904-4.219 2.904\" /><path fill=\"#FC6D26\" d=\"M5.376 12.279a10.7 10.7 0 0 0-4.053-1.664l-.03.072a4.67 4.67 0 0 0-.153 3.23c.335 1.063 1.04 1.998 2.01 2.664l.01.007.028.018 4.594 3.132L12 16.836z\" /></svg>;\nexport default SvgGitlab;","import * as React from \"react\";\nconst SvgGoogle = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#4285F4\" d=\"M30.001 16.31c0-1.15-.095-1.99-.301-2.861H16.287v5.195h7.873c-.159 1.291-1.016 3.236-2.92 4.542l-.027.174 4.24 3.22.294.029c2.699-2.443 4.254-6.036 4.254-10.298\" /><path fill=\"#34A853\" d=\"M16.286 30c3.857 0 7.095-1.244 9.46-3.391l-4.507-3.423c-1.207.825-2.826 1.4-4.953 1.4A8.58 8.58 0 0 1 8.16 18.77l-.167.014-4.41 3.344-.058.157C5.874 26.858 10.7 30 16.286 30\" /><path fill=\"#FBBC05\" d=\"M8.16 18.769a8.5 8.5 0 0 1-.476-2.77c0-.964.174-1.897.46-2.768l-.008-.185-4.465-3.399-.146.068A13.8 13.8 0 0 0 2.001 16c0 2.256.556 4.387 1.524 6.284z\" /><path fill=\"#EB4335\" d=\"M16.286 7.413c2.683 0 4.492 1.136 5.524 2.085l4.032-3.858C23.366 3.384 20.143 2 16.286 2 10.7 2 5.874 5.142 3.524 9.715l4.62 3.516c1.158-3.375 4.365-5.818 8.142-5.818\" /></svg>;\nexport default SvgGoogle;","import * as React from \"react\";\nconst SvgLinkedin = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><rect width={28} height={28} x={2} y={2} fill=\"#1275B1\" rx={14} /><path fill=\"#fff\" d=\"M12.619 9.692c0 .935-.81 1.692-1.81 1.692C9.81 11.384 9 10.627 9 9.692S9.81 8 10.81 8c.999 0 1.809.758 1.809 1.692M9.247 12.628h3.093V22H9.247zM17.32 12.628h-3.093V22h3.093v-4.795c0-1.107.378-2.22 1.886-2.22 1.705 0 1.695 1.45 1.687 2.572-.01 1.467.014 2.965.014 4.443H24v-4.946c-.026-3.159-.85-4.614-3.557-4.614-1.608 0-2.604.73-3.123 1.39z\" /></svg>;\nexport default SvgLinkedin;","import * as React from \"react\";\nconst SvgMicrosoft = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 23 23\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#F35325\" d=\"M1 1h10v10H1z\" /><path fill=\"#81BC06\" d=\"M12 1h10v10H12z\" /><path fill=\"#05A6F0\" d=\"M1 12h10v10H1z\" /><path fill=\"#FFBA08\" d=\"M12 12h10v10H12z\" /></svg>;\nexport default SvgMicrosoft;","import * as React from \"react\";\nconst SvgSlack = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path fill=\"#2EB67D\" d=\"M26.5 15a2.5 2.5 0 1 0-2.5-2.5V15zm-7 0a2.5 2.5 0 0 0 2.5-2.5v-7a2.5 2.5 0 0 0-5 0v7a2.5 2.5 0 0 0 2.5 2.5\" /><path fill=\"#E01E5A\" d=\"M5.5 17A2.5 2.5 0 1 0 8 19.5V17zm7 0a2.5 2.5 0 0 0-2.5 2.5v7a2.5 2.5 0 0 0 5 0v-7a2.5 2.5 0 0 0-2.5-2.5\" /><path fill=\"#ECB22E\" d=\"M17 26.5a2.5 2.5 0 1 0 2.5-2.5H17zm0-7a2.5 2.5 0 0 0 2.5 2.5h7a2.5 2.5 0 0 0 0-5h-7a2.5 2.5 0 0 0-2.5 2.5\" /><path fill=\"#36C5F0\" d=\"M15 5.5A2.5 2.5 0 1 0 12.5 8H15zm0 7a2.5 2.5 0 0 0-2.5-2.5h-7a2.5 2.5 0 0 0 0 5h7a2.5 2.5 0 0 0 2.5-2.5\" /></svg>;\nexport default SvgSlack;","import * as React from \"react\";\nconst SvgSpotify = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"#1ED760\" /><path fill=\"#fff\" d=\"M22.364 21.623c-.239.38-.75.486-1.148.258-3.141-1.822-7.08-2.232-11.736-1.23-.446.091-.893-.167-.988-.592a.786.786 0 0 1 .621-.94c5.087-1.11 9.456-.639 12.964 1.41a.77.77 0 0 1 .287 1.094m1.627-3.461c-.303.47-.941.607-1.435.334-3.588-2.11-9.058-2.718-13.299-1.488-.558.152-1.132-.137-1.292-.653-.16-.531.144-1.078.702-1.23 4.848-1.396 10.875-.728 15.005 1.686.462.273.622.88.319 1.35m.143-3.613c-4.305-2.43-11.4-2.657-15.515-1.473-.654.197-1.355-.152-1.563-.79-.207-.622.176-1.29.83-1.487 4.72-1.366 12.565-1.093 17.508 1.7.59.334.781 1.063.43 1.625-.334.576-1.1.774-1.69.425\" /></svg>;\nexport default SvgSpotify;","import * as React from \"react\";\nconst SvgYandex = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><circle cx={16} cy={16} r={14} fill=\"#fff\" /><path fill=\"#FC3F1D\" d=\"M21 25h-3.143V9.435h-1.402c-2.572 0-3.922 1.294-3.922 3.211 0 2.175.935 3.185 2.857 4.48l1.584 1.063L12.403 25H9l4.104-6.086c-2.363-1.684-3.688-3.316-3.688-6.087C9.416 9.357 11.83 7 16.429 7H21z\" /></svg>;\nexport default SvgYandex;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport apple from \"./apple.svg\"\nimport auth0 from \"./auth0.svg\"\nimport discord from \"./discord.svg\"\nimport facebook from \"./facebook.svg\"\nimport generic from \"./generic.svg\"\nimport github from \"./github.svg\"\nimport gitlab from \"./gitlab.svg\"\nimport google from \"./google.svg\"\nimport linkedin from \"./linkedin.svg\"\nimport microsoft from \"./microsoft.svg\"\nimport slack from \"./slack.svg\"\nimport spotify from \"./spotify.svg\"\nimport yandex from \"./yandex.svg\"\n\nconst logos: Record<string, typeof apple> = {\n apple,\n auth0,\n discord,\n facebook,\n generic,\n github,\n gitlab,\n google,\n linkedin,\n microsoft,\n slack,\n spotify,\n yandex,\n}\nexport default logos\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { cn } from \"../../utils/cn\"\n\nexport function Spinner({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n role=\"status\"\n className={cn(\n \"absolute pointer-events-none inset-0 m-auto size-8 animate-spin\",\n className,\n )}\n viewBox=\"0 0 34 34\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_2572_1748)\">\n <path\n d=\"M23.364 10.6362C22.1053 9.37751 20.5016 8.52034 18.7558 8.17307C17.01 7.82581 15.2004 8.00404 13.5559 8.68523C11.9113 9.36641 10.5057 10.52 9.51678 12C8.52784 13.4801 8 15.2201 8 17.0001C8 18.7802 8.52784 20.5202 9.51678 22.0003C10.5057 23.4803 11.9113 24.6339 13.5559 25.3151C15.2004 25.9962 17.01 26.1745 18.7558 25.8272C20.5016 25.4799 22.1053 24.6228 23.364 23.3641\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2572_1748\">\n <rect\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n transform=\"translate(17 0.029541) rotate(45)\"\n />\n </clipPath>\n </defs>\n </svg>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryCardAuthMethodListItemProps } from \"@ory/elements-react\"\nimport { useIntl } from \"react-intl\"\nimport code from \"../../assets/icons/code.svg\"\nimport passkey from \"../../assets/icons/passkey.svg\"\nimport password from \"../../assets/icons/password.svg\"\nimport webauthn from \"../../assets/icons/webauthn.svg\"\nimport logos from \"../../provider-logos\"\nimport { isGroupImmediateSubmit } from \"../../utils/form\"\n\nconst iconsMap: Record<string, typeof code> = {\n code,\n passkey,\n password,\n webauthn,\n ...logos,\n}\n\nexport function DefaultAuthMethodListItem({\n onClick,\n group,\n}: OryCardAuthMethodListItemProps) {\n const intl = useIntl()\n const Icon = iconsMap[group] || null\n\n return (\n <button\n className=\"flex cursor-pointer gap-3 text-left items-start w-full rounded-buttons p-2 hover:bg-interface-background-default-primary-hover\"\n onClick={onClick}\n type={isGroupImmediateSubmit(group) ? \"submit\" : \"button\"}\n data-testid={`ory/form/auth-picker/${group}`}\n >\n <span className=\"mt-1\">\n {Icon && (\n <Icon size={16} className=\"text-interface-foreground-brand-primary\" />\n )}\n </span>\n <span className=\"flex-1 leading-normal inline-flex flex-col\">\n <span className=\"text-interface-foreground-default-primary\">\n {intl.formatMessage({ id: `two-step.${group}.title` })}\n </span>\n <span className=\"text-interface-foreground-default-secondary\">\n {intl.formatMessage({\n id: `two-step.${group}.description`,\n })}\n </span>\n </span>\n </button>\n )\n}\n","import * as React from \"react\";\nconst SvgCode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 15 13\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6.333 10.666h-4A1.333 1.333 0 0 1 1 9.333V2.666m0 0a1.333 1.333 0 0 1 1.333-1.333h9.334A1.333 1.333 0 0 1 13 2.666m-12 0 6 4 6-4m0 0v4M12.333 12l1.334-1.334-1.334-1.333m-2 0L9 10.666 10.333 12\" /></svg>;\nexport default SvgCode;","import * as React from \"react\";\nconst SvgPasskey = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 13 14\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M10.602 3.667c.603 1 .86 2.171.733 3.333v.667a4 4 0 0 0 .533 2M3.335 6.333a2.667 2.667 0 0 1 5.333 0V7c0 1.442.468 2.846 1.334 4m-4-4.667v1.334A9.33 9.33 0 0 0 7.668 13M3.335 9a12 12 0 0 0 1.2 4m-3.267-1.333A14.7 14.7 0 0 1 .668 7v-.667a5.333 5.333 0 0 1 8-4.633\" /></svg>;\nexport default SvgPasskey;","import * as React from \"react\";\nconst SvgPassword = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 4\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M7 .667v2.667m-1.333-.667 2.666-1.333m-2.666 0 2.666 1.333m-6-2v2.667M1 2.667l2.667-1.333M1 1.334l2.667 1.333m8-2v2.667m-1.334-.667L13 1.334m-2.667 0L13 2.667\" /></svg>;\nexport default SvgPassword;","import * as React from \"react\";\nconst SvgWebauthn = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 14 14\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5h.007m1.03-3.438 2.401 2.401a1.92 1.92 0 0 1 0 2.713l-1.762 1.762a1.92 1.92 0 0 1-2.713 0l-.2-.2-4.372 4.371a1.33 1.33 0 0 1-.826.386L2.448 13h-.781a.667.667 0 0 1-.662-.589L1 12.333v-.781c0-.313.11-.616.311-.856l.08-.087.276-.276H3V9h1.333V7.667l1.43-1.43-.201-.2a1.92 1.92 0 0 1 0-2.713l1.762-1.762a1.92 1.92 0 0 1 2.713 0\" /></svg>;\nexport default SvgWebauthn;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function isGroupImmediateSubmit(group: string) {\n // TODO: Other methods might also benefit from this.\n return group === \"code\"\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeButtonProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { cva, VariantProps } from \"class-variance-authority\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { Spinner } from \"./spinner\"\nimport { useEffect, useState } from \"react\"\n\nconst buttonStyles = cva(\n [\n \"relative flex justify-center gap-3 overflow-hidden rounded-buttons leading-none ring-1 ring-inset font-medium\",\n \"disabled:cursor-not-allowed loading:cursor-wait loading:before:pointer-events-none\",\n \"transition-colors duration-100 ease-linear\",\n \"p-4 max-w-[488px]\",\n ],\n {\n variants: {\n intent: {\n primary: [\n \"bg-button-primary-background-default text-button-primary-foreground-default ring-button-primary-border-default\",\n \"hover:bg-button-primary-background-hover hover:text-button-primary-foreground-hover hover:ring-button-primary-border-hover\",\n \"disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled\",\n \"loading:bg-button-primary-background-default loading:text-button-primary-foreground-default loading:ring-button-primary-border-default\",\n \"loading:before:absolute loading:before:inset-0 loading:before:bg-button-primary-background-default loading:before:opacity-80 loading:before:content-['']\",\n \"disabled:bg-button-primary-background-disabled disabled:text-button-primary-foreground-disabled disabled:ring-button-primary-border-disabled\",\n ],\n secondary: [\n \"bg-button-secondary-background-default text-button-secondary-foreground-default ring-button-secondary-border-default\",\n \"hover:bg-button-secondary-background-hover hover:text-button-secondary-foreground-hover hover:ring-button-secondary-border-hover\",\n \"disabled:bg-button-secondary-background-disabled disabled:text-button-secondary-foreground-disabled disabled:ring-button-secondary-border-disabled\",\n \"loading:bg-button-secondary-background-default loading:text-button-secondary-foreground-default loading:ring-button-secondary-border-default\",\n \"loading:before:absolute loading:before:inset-0 loading:before:bg-button-secondary-background-default loading:before:opacity-80 loading:before:content-['']\",\n ],\n },\n defaultVariants: {\n intent: \"primary\",\n },\n },\n },\n)\n\nexport type ButtonVariants = VariantProps<typeof buttonStyles>\n\nexport const DefaultButton = ({\n attributes,\n node,\n onClick,\n}: OryNodeButtonProps) => {\n const {\n type,\n name,\n value,\n // Button does not support these attributes, so we skip them\n autocomplete: _ignoredAutocomplete,\n label: _ignoredLabel,\n node_type: _ignoredNodeType,\n // End of skipped attributes\n ...rest\n } = attributes\n const [clicked, setClicked] = useState(false)\n const intl = useIntl()\n const label = getNodeLabel(node)\n const {\n formState: { isSubmitting },\n setValue,\n } = useFormContext()\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n const isPrimary =\n attributes.name === \"method\" ||\n attributes.name.includes(\"passkey\") ||\n attributes.name.includes(\"webauthn\") ||\n attributes.name.includes(\"lookup_secret\")\n\n return (\n <button\n {...rest}\n value={value}\n name={name}\n type={type === \"button\" ? \"button\" : \"submit\"} // TODO\n onClick={(e) => {\n onClick?.(e)\n setClicked(true)\n\n if (type !== \"button\") {\n setValue(name, value)\n }\n }}\n className={buttonStyles({\n intent: isPrimary ? \"primary\" : \"secondary\",\n })}\n disabled={rest.disabled ?? isSubmitting}\n data-loading={clicked}\n >\n {clicked ? <Spinner /> : null}\n {label ? <span>{uiTextToFormattedMessage(label, intl)}</span> : \"\"}\n </button>\n )\n}\n\nDefaultButton.displayName = \"DefaultButton\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n messageTestId,\n OryNodeInputProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { useForm } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\nimport { CheckboxLabel } from \"../ui/checkbox-label\"\n\nfunction CheckboxSVG() {\n return (\n <svg\n className=\"absolute hidden size-4 peer-checked:block fill-checkbox-foreground-checked\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M11.6464 5.14645C11.8417 4.95118 12.1583 4.95118 12.3536 5.14645C12.5338 5.32669 12.5477 5.6103 12.3951 5.80645L12.3536 5.85355L7.35355 10.8536C7.17331 11.0338 6.8897 11.0477 6.69355 10.8951L6.64645 10.8536L4.14645 8.35355C3.95118 8.15829 3.95118 7.84171 4.14645 7.64645C4.32669 7.4662 4.6103 7.45234 4.80645 7.60485L4.85355 7.64645L7 9.7925L11.6464 5.14645Z\"\n />\n </svg>\n )\n}\n\nexport const DefaultCheckbox = ({\n attributes: initialAttributes,\n node,\n}: OryNodeInputProps) => {\n const {\n value,\n name,\n // Button does not support these attributes, so we skip them\n autocomplete: _autocomplete,\n onclick: _onclick,\n maxlength: _max,\n // End of skipped attributes\n ...attributes\n } = initialAttributes\n\n const intl = useIntl()\n const label = getNodeLabel(node)\n const { register } = useForm()\n const hasError = node.messages.some((m) => m.type === \"error\")\n\n return (\n <label className=\"flex items-start gap-3 self-stretch antialiased\">\n <span className=\"flex h-5 items-center\">\n <input\n {...attributes}\n value={1}\n defaultChecked={Boolean(value)}\n type=\"checkbox\"\n className={cn(\n \"peer size-4 border appearance-none rounded-forms bg-checkbox-background-default border-checkbox-border-checkbox-border-default checked:bg-checkbox-background-checked checked:border-checkbox-border-checkbox-border-checked\",\n hasError && \"border-interface-border-validation-danger\",\n )}\n {...register(name, { value })}\n />\n <CheckboxSVG />\n </span>\n <span className=\"flex flex-col\">\n <span className=\"font-normal leading-tight text-interface-foreground-default-primary\">\n <CheckboxLabel label={label} />\n </span>\n {node.messages.map((message) => (\n <span\n key={message.id}\n className={cn(\n \"mt-1\",\n message.type === \"error\"\n ? \"text-interface-foreground-validation-danger\"\n : \"text-interface-foreground-default-secondary\",\n )}\n {...messageTestId(message)}\n >\n {uiTextToFormattedMessage(message, intl)}\n </span>\n ))}\n </span>\n </label>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { useIntl } from \"react-intl\"\nimport { uiTextToFormattedMessage } from \"../../../../util\"\n\ntype CheckboxLabelProps = {\n label?: UiText\n}\n\nconst linkRegex = /\\[([^\\]]+)\\]\\(([^)]+)\\)/g\n\nexport function computeLabelElements(labelText: string) {\n const elements = []\n let lastIndex = 0\n\n // Use matchAll to find all markdown links\n for (const match of labelText.matchAll(linkRegex)) {\n const linkText = match[1]\n const url = match[2]\n const matchStart = match.index\n if (typeof matchStart === \"undefined\") {\n // Some types seem to be wrong somewhere, eslint complains that matchStart can be undefined, but it can't?\n // So we just skip this match, if it is undefined\n continue\n }\n\n // Push the text before the match\n if (matchStart > lastIndex) {\n elements.push(labelText.slice(lastIndex, matchStart))\n }\n\n // Push the <a> tag for the markdown link\n elements.push(\n <a\n key={matchStart}\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-button-link-brand-brand hover:text-button-link-brand-brand-hover underline\"\n >\n {linkText}\n </a>,\n )\n\n // Update lastIndex to the end of the current match\n lastIndex = matchStart + match[0].length\n }\n\n // Push any remaining text after the last match\n if (lastIndex < labelText.length) {\n elements.push(labelText.slice(lastIndex))\n }\n return elements\n}\n\nexport function CheckboxLabel({ label }: CheckboxLabelProps) {\n const intl = useIntl()\n if (!label) {\n return null\n }\n\n const labelText = uiTextToFormattedMessage(label, intl)\n\n return <>{computeLabelElements(labelText)}</>\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { IntlShape } from \"react-intl\"\n\n/**\n * Converts a UiText to a FormattedMessage.\n * The UiText contains the id of the message and the context.\n * The context is used to inject values into the message from Ory, e.g. a timestamp.\n * For example a UI Node from Ory might look like this:\n *\n * \\{\n * \"type\":\"input\",\n * \"group\":\"default\",\n * \"attributes\": \\{\n * \"name\":\"traits.email\",\n * \"type\":\"email\",\n * \"required\":true,\n * \"autocomplete\":\"email\",\n * \"disabled\":false,\n * \"node_type\":\"input\"\n * \\},\n * \"messages\":[],\n * \"meta\": \\{\n * \"label\": \\{\n * \"id\":1070002,\n * \"text\":\"E-Mail\",\n * \"type\":\"info\",\n * \"context\":\\{\n * \"title\":\"E-Mail\"\n * \\},\n * \\}\n * \\}\n * \\}\n *\n * The context has the key \"title\" which matches the formatter template name \"\\{title\\}\"\n * An example translation file would look like this:\n * \\{\n * \"identities.messages.1070002\": \"\\{title\\}\"\n * \\}\n *\n * The formatter would then take the meta.label.id and look for the translation with the key matching the id.\n * It would then replace the template \"\\{title\\}\" with the value from the context with the key \"title\".\n *\n * @param uiText - The UiText is part of the UiNode object sent by Kratos when performing a flow.\n * @param intl - The intl object from react-intl\n */\nexport const uiTextToFormattedMessage = (\n { id, context = {}, text }: Omit<UiText, \"type\">,\n intl: IntlShape,\n) => {\n const contextInjectedMessage = Object.entries(context).reduce(\n (accumulator, [key, value]) => {\n // context might provide an array of objects instead of a single object\n // for example when looking up a recovery code\n if (Array.isArray(value)) {\n return {\n ...accumulator,\n [key]: value,\n [key + \"_list\"]: intl.formatList<string>(value),\n }\n } else if (key.endsWith(\"_unix\")) {\n if (typeof value === \"number\") {\n return {\n ...accumulator,\n [key]: intl.formatDate(new Date(value * 1000)),\n [key + \"_since\"]: intl.formatDateTimeRange(\n new Date(value),\n new Date(),\n ),\n [key + \"_since_minutes\"]: Math.ceil(\n (value - new Date().getTime() / 1000) / 60,\n ).toFixed(0),\n [key + \"_until\"]: intl.formatDateTimeRange(\n new Date(),\n new Date(value),\n ),\n [key + \"_until_minutes\"]: Math.ceil(\n (new Date().getTime() / 1000 - value) / 60,\n ).toFixed(0),\n }\n }\n } else if (key === \"property\") {\n return {\n ...accumulator,\n [key]: intl.formatMessage({\n id: `property.${value}`,\n defaultMessage: value,\n }),\n }\n }\n return {\n ...accumulator,\n [key]: value as string | number,\n }\n },\n {},\n )\n\n return intl.formatMessage(\n {\n id: `identities.messages.${id}`,\n defaultMessage: text,\n },\n contextInjectedMessage,\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryFormGroupProps } from \"@ory/elements-react\"\n\nexport function DefaultGroupContainer({ children }: OryFormGroupProps) {\n return <div className=\"grid grid-cols-1 gap-8\">{children}</div>\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nexport function DefaultHorizontalDivider() {\n return <hr className=\"border-interface-border-default-primary\" />\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryNodeImageProps } from \"@ory/elements-react\"\n\nexport function DefaultImage({ attributes }: OryNodeImageProps) {\n return (\n <figure>\n <img {...attributes} />\n </figure>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { FlowType, getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeInputProps,\n uiTextToFormattedMessage,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultInput = ({\n node,\n attributes,\n onClick,\n}: OryNodeInputProps) => {\n const label = getNodeLabel(node)\n const { register } = useFormContext()\n const {\n value,\n autocomplete,\n name,\n maxlength,\n node_type: _,\n ...rest\n } = attributes\n const intl = useIntl()\n const { flowType } = useOryFlow()\n\n const formattedLabel = label\n ? intl.formatMessage(\n {\n id: \"input.placeholder\",\n defaultMessage: \"Enter your {placeholder}\",\n },\n {\n placeholder: uiTextToFormattedMessage(label, intl),\n },\n )\n : \"\"\n\n return (\n <input\n {...rest}\n onClick={onClick}\n maxLength={maxlength}\n autoComplete={autocomplete}\n placeholder={formattedLabel}\n data-testid={`ory/form/node/input/${name}`}\n className={cn(\n \"antialiased rounded-forms border leading-tight transition-colors placeholder:h-[20px] placeholder:text-input-foreground-tertiary focus-visible:outline-none focus:ring-0\",\n \"bg-input-background-default border-input-border-default text-input-foreground-primary\",\n \"disabled:bg-input-background-disabled disabled:border-input-border-disabled disabled:text-input-foreground-disabled\",\n \"focus:border-input-border-focus focus-visible:border-input-border-focus\",\n \"hover:bg-input-background-hover hover:border-input-border-hover\",\n \"px-4 py-[13px]\",\n // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.\n flowType === FlowType.Settings && \"max-w-[488px]\",\n )}\n {...register(name, { value })}\n />\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n FlowType,\n getNodeLabel,\n instanceOfUiText,\n UiNode,\n} from \"@ory/client-fetch\"\nimport {\n OryNodeLabelProps,\n messageTestId,\n uiTextToFormattedMessage,\n useComponents,\n useOryFlow,\n} from \"@ory/elements-react\"\nimport { useFormContext } from \"react-hook-form\"\nimport { useIntl } from \"react-intl\"\nimport { initFlowUrl } from \"../../utils/url\"\n\nfunction findResendNode(nodes: UiNode[]) {\n return nodes.find(\n (n) =>\n \"name\" in n.attributes &&\n ((n.attributes.name === \"email\" && n.attributes.type === \"submit\") ||\n n.attributes.name === \"resend\"),\n )\n}\n\nexport function DefaultLabel({\n node,\n children,\n attributes,\n ...rest\n}: OryNodeLabelProps) {\n const intl = useIntl()\n const label = getNodeLabel(node)\n const { Message } = useComponents()\n const { config, flowType, flow } = useOryFlow()\n const { setValue, formState } = useFormContext()\n\n const isPassword = attributes.type === \"password\"\n\n const resendNode = findResendNode(flow.ui.nodes)\n\n const handleResend = () => {\n if (resendNode?.attributes && \"name\" in resendNode.attributes) {\n setValue(resendNode.attributes.name, resendNode.attributes.value)\n }\n }\n\n const fieldError = formState.errors[attributes.name]\n return (\n <div className=\"flex flex-col gap-1 antialiased\">\n {label && (\n <span className=\"inline-flex justify-between\">\n <label\n {...messageTestId(label)}\n className=\"leading-normal text-input-foreground-primary\"\n htmlFor={attributes.name}\n data-testid={`ory/form/node/input/label/${attributes.name}`}\n {...rest}\n >\n {uiTextToFormattedMessage(label, intl)}\n </label>\n {isPassword &&\n config.project.recovery_enabled &&\n flowType === FlowType.Login && (\n // TODO: make it possible to override with a custom component\n <a\n href={initFlowUrl(config.sdk.url, \"recovery\", flow)}\n className=\"text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n >\n {intl.formatMessage({\n id: \"forms.label.forgot-password\",\n defaultMessage: \"Forgot password?\",\n })}\n </a>\n )}\n {resendNode?.attributes.node_type === \"input\" && (\n <button\n type=\"submit\"\n name={resendNode.attributes.name}\n value={resendNode.attributes.value}\n onClick={handleResend}\n className=\"cursor-pointer text-button-link-brand-brand transition-colors hover:text-button-link-brand-brand-hover underline\"\n >\n {intl.formatMessage({ id: \"identities.messages.1070008\" })}\n </button>\n )}\n </span>\n )}\n {children}\n {node.messages.map((message) => (\n <Message.Content key={message.id} message={message} />\n ))}\n {fieldError && instanceOfUiText(fieldError) && (\n <Message.Content message={fieldError} />\n )}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getNodeLabel } from \"@ory/client-fetch\"\nimport {\n OryNodeAnchorProps,\n uiTextToFormattedMessage,\n} from \"@ory/elements-react\"\nimport { forwardRef } from \"react\"\nimport { useIntl } from \"react-intl\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultLinkButton = forwardRef<\n HTMLAnchorElement,\n OryNodeAnchorProps\n>(({ attributes, node }, ref) => {\n const intl = useIntl()\n const label = getNodeLabel(node)\n return (\n <a\n {...attributes}\n ref={ref}\n title={label ? uiTextToFormattedMessage(label, intl) : \"\"}\n data-testid={`ory/form/node/link/${attributes.id}`}\n className={cn(\n \"antialiased rounded cursor-pointer text-center border gap-3 leading-none bg-button-primary-background-default hover:bg-button-primary-background-hover transition-colors text-button-primary-foreground-default hover:text-button-primary-foreground-hover p-4 font-medium\",\n )}\n >\n {label ? uiTextToFormattedMessage(label, intl) : \"\"}\n </a>\n )\n})\n\nDefaultLinkButton.displayName = \"DefaultLinkButton\"\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { useFormContext } from \"react-hook-form\"\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"./shadcn/otp-input\"\nimport { OryNodeInputProps, useOryFlow } from \"@ory/elements-react\"\nimport { FlowType } from \"@ory/client-fetch\"\nimport { cn } from \"../../utils/cn\"\n\nexport const DefaultPinCodeInput = ({ attributes }: OryNodeInputProps) => {\n const { setValue, watch } = useFormContext()\n const { maxlength, name } = attributes\n const elements = maxlength ?? 6\n const { flowType } = useOryFlow()\n\n const handleInputChange = (v: string) => {\n setValue(name, v)\n }\n\n const value = watch(name) as string\n\n return (\n <InputOTP\n maxLength={maxlength ?? 6}\n onChange={handleInputChange}\n name={name}\n value={value}\n >\n <InputOTPGroup\n className={cn(\n \"w-full flex gap-2 justify-stretch\",\n // The settings flow input fields are supposed to be dense, so we don't need the extra padding we want on the user flows.\n flowType === FlowType.Settings && \"max-w-[488px]\",\n )}\n >\n {[...Array(elements)].map((_, index) => (\n <InputOTPSlot index={index} key={index} />\n ))}\n </InputOTPGroup>\n </InputOTP>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { cn } from \"../../../utils/cn\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport * as React from \"react\"\n\n// This file is a copy from https://ui.shadcn.com/docs/components/input-otp\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n className={cn(\n \"rounded-forms border border-solid bg-input-background-default py-[15px] text-center focus-visible:outline-none w-full\",\n \"relative flex items-center justify-center transition-all leading-none\",\n isActive ? \"border-input-border-focus\" : \"border-input-border-default\",\n className,\n )}\n {...props}\n >\n <span className=\"inline-block size-4\">{char}</span>\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-interface-background-brand-primary duration-700\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot }\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFormSectionContentProps,\n OryFormSectionFooterProps,\n OryFormSectionProps,\n} from \"@ory/elements-react\"\nimport { cn } from \"../../utils/cn\"\n\nconst DefaultFormSection = ({\n children,\n nodes: _nodes,\n ...rest\n}: OryFormSectionProps) => {\n return (\n <form\n className=\"flex w-full max-w-screen-sm flex-col md:max-w-[712px] lg:max-w-[802px] xl:max-w-[896px] px-4\"\n {...rest}\n >\n {children}\n </form>\n )\n}\n\nconst DefaultFormSectionContent = ({\n title,\n description,\n children,\n}: OryFormSectionContentProps) => {\n return (\n <div className=\"flex flex-col gap-8 rounded-t-cards border border-b-0 border-interface-border-default-primary bg-interface-background-default-primary px-6 py-8\">\n <div className=\"flex flex-col gap-2\">\n <h3 className=\"font-medium text-interface-foreground-default-primary\">\n {title}\n </h3>\n <span className=\"text-interface-foreground-default-secondary\">\n {description}\n </span>\n </div>\n {children}\n </div>\n )\n}\n\nconst DefaultFormSectionFooter = ({\n children,\n text,\n}: OryFormSectionFooterProps) => {\n return (\n <div\n className={cn(\n \"flex min-h-[72px] items-center justify-between gap-2 rounded-b-cards border border-interface-border-default-primary bg-interface-background-default-secondary px-6 py-4 text-interface-foreground-default-tertiary\",\n )}\n >\n <span>{text}</span>\n {children}\n </div>\n )\n}\n\nexport {\n DefaultFormSection,\n DefaultFormSectionContent,\n DefaultFormSectionFooter,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiText } from \"@ory/client-fetch\"\nimport { OryNodeTextProps, uiTextToFormattedMessage } from \"@ory/elements-react\"\nimport { useIntl } from \"react-intl\"\n\nexport function DefaultText({ node, attributes }: OryNodeTextProps) {\n const intl = useIntl()\n return (\n <>\n <p data-testid={`ory/form/node/text/${attributes.id}/label`}>\n {node.meta.label ? uiTextToFormattedMessage(node.meta.label, intl) : \"\"}\n </p>\n {(\n attributes.text.context as {\n secrets: UiText[]\n }\n ).secrets?.map((text: UiText, index) => (\n <pre\n data-testid={`ory/form/node/text/lookup_secret_codes/text`}\n key={index}\n >\n <code>{text ? uiTextToFormattedMessage(text, intl) : \"\"}</code>\n </pre>\n ))}\n </>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { OryPageHeaderProps, useComponents } from \"@ory/elements-react\"\nimport { UserMenu } from \"../ui/user-menu\"\nimport { useSession } from \"@ory/elements-react/client\"\n\nexport const DefaultPageHeader = (_props: OryPageHeaderProps) => {\n const { Card } = useComponents()\n const { session } = useSession()\n\n return (\n <div className=\"mt-16 flex max-w-screen-sm w-full md:max-w-[712px] lg:max-w-[802px] xl:max-w-[896px] flex-col gap-3 px-4\">\n <div className=\"flex flex-col gap-12\">\n <div className=\"flex max-h-10 flex-1 justify-between gap-2\">\n <div className=\"relative h-10 flex-1\">\n <Card.Logo />\n </div>\n <UserMenu session={session} />\n </div>\n </div>\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { LogoutFlow, Session } from \"@ory/client-fetch\"\nimport { DropdownMenuLabel } from \"@radix-ui/react-dropdown-menu\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport { useOryFlow } from \"@ory/elements-react\"\nimport { frontendClient } from \"../../../../util/client\"\nimport IconLogout from \"../../assets/icons/logout.svg\"\nimport IconSettings from \"../../assets/icons/settings.svg\"\nimport { getUserInitials } from \"../../utils/user\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { UserAvatar } from \"./user-avater\"\n\ntype UserMenuProps = {\n session: Session | null\n logoutFlow?: LogoutFlow\n}\n\nexport const UserMenu = ({ session }: UserMenuProps) => {\n const { config } = useOryFlow()\n const initials = getUserInitials(session)\n const [logoutFlow, setLogoutFlow] = useState<LogoutFlow | undefined>()\n\n const fetchLogoutFlow = useCallback(async () => {\n const flow = await frontendClient(config.sdk.url).createBrowserLogoutFlow()\n setLogoutFlow(flow)\n }, [config.sdk.url])\n\n useEffect(() => {\n void fetchLogoutFlow()\n }, [fetchLogoutFlow])\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <UserAvatar initials={initials} />\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuLabel className=\"flex gap-3 px-5 py-4.5\">\n <UserAvatar disabled initials={initials} />\n <div className=\"flex flex-col justify-center text-sm leading-tight\">\n <div className=\"text-interface-foreground-default-primary leading-tight font-medium\">\n {initials.primary}\n </div>\n {initials.secondary && (\n <div className=\"text-interface-foreground-default-tertiary leading-tight\">\n {initials.secondary}\n </div>\n )}\n </div>\n </DropdownMenuLabel>\n <DropdownMenuItem asChild>\n <a href=\"/settings\">\n <IconSettings size={16} /> User settings\n </a>\n </DropdownMenuItem>\n <DropdownMenuItem asChild disabled={!logoutFlow?.logout_url}>\n <a href={logoutFlow?.logout_url}>\n <IconLogout size={16} /> Logout\n </a>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Configuration,\n ConfigurationParameters,\n FrontendApi,\n} from \"@ory/client-fetch\"\n\nexport function frontendClient(\n sdkUrl: string,\n opts: Partial<ConfigurationParameters> = {},\n) {\n const config = new Configuration({\n ...opts,\n basePath: sdkUrl,\n headers: {\n Accept: \"application/json\",\n ...opts.headers,\n },\n })\n return new FrontendApi(config)\n}\n","import * as React from \"react\";\nconst SvgLogout = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9.333 5.334V4A1.333 1.333 0 0 0 8 2.667H3.333A1.333 1.333 0 0 0 2 4v8a1.333 1.333 0 0 0 1.333 1.334H8A1.333 1.333 0 0 0 9.333 12v-1.333M4.667 8H14m0 0-2-2m2 2-2 2\" /></svg>;\nexport default SvgLogout;","import * as React from \"react\";\nconst SvgSettings = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><g stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M6.883 2.878c.284-1.17 1.95-1.17 2.234 0a1.15 1.15 0 0 0 1.715.71c1.029-.626 2.207.551 1.58 1.58a1.148 1.148 0 0 0 .71 1.715c1.17.284 1.17 1.95 0 2.234a1.15 1.15 0 0 0-.71 1.715c.626 1.029-.551 2.207-1.58 1.58a1.148 1.148 0 0 0-1.715.71c-.284 1.17-1.95 1.17-2.234 0a1.15 1.15 0 0 0-1.715-.71c-1.029.626-2.207-.551-1.58-1.58a1.15 1.15 0 0 0-.71-1.715c-1.17-.284-1.17-1.95 0-2.234a1.15 1.15 0 0 0 .71-1.715c-.626-1.029.551-2.207 1.58-1.58.667.405 1.531.047 1.715-.71\" /><path d=\"M6 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0\" /></g></svg>;\nexport default SvgSettings;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Session } from \"@ory/client-fetch\"\n\nexport type UserInitials = {\n primary: string\n secondary?: string\n avatar?: string\n}\n\nfunction isTraitsIndexable(\n traits: unknown,\n): traits is Record<string, string | Record<string, string>> {\n return typeof traits === \"object\" && traits !== null\n}\n\nexport const getUserInitials = (session: Session | null): UserInitials => {\n const avatar = \"\"\n let primary = \"\"\n let secondary = \"\"\n\n if (\n !session?.identity?.traits ||\n !isTraitsIndexable(session.identity.traits)\n ) {\n return {\n primary,\n secondary,\n avatar,\n }\n }\n\n const traits = session.identity?.traits\n\n if (traits.email && typeof traits.email === \"string\") {\n secondary = traits.email\n }\n\n if (traits.name) {\n if (typeof traits.name === \"string\") {\n primary = traits.name\n }\n\n if (\n typeof traits.name === \"object\" &&\n traits.name &&\n traits.name.first &&\n traits.name.last\n ) {\n primary = traits.name.first + \" \" + traits.name.last\n }\n }\n\n if (primary === \"\") {\n primary = secondary\n secondary = \"\"\n }\n\n return {\n primary,\n secondary,\n avatar,\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\n\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { cn } from \"../../utils/cn\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuContent = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Content>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 16, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n align=\"end\"\n className={cn(\n \"z-50 min-w-[19rem] overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"border border-interface-border-default-primary bg-interface-background-default-primary rounded-cards\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Item>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center outline-none transition-colors data-[disabled]:pointer-events-none\",\n \"px-8 py-3 lg:py-4.5 text-sm gap-6\",\n \"first:border-0 border-t border-button-secondary-border-default hover:border-button-social-border-hover\",\n \"text-button-secondary-foreground-default bg-button-secondary-background-default\",\n \"hover:text-button-secondary-foreground-hover hover:bg-button-secondary-background-hover\",\n \"data-[disabled]:text-button-secondary-foreground-disabled data-[disabled]:bg-button-secondary-background-disabled\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuLabel = forwardRef<\n ElementRef<typeof DropdownMenuPrimitive.Label>,\n ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ComponentPropsWithoutRef, forwardRef } from \"react\"\nimport { UserInitials } from \"../../utils/user\"\nimport IconUser from \"../../assets/icons/user.svg\"\n\ntype UserAvatarProps = {\n initials: UserInitials\n} & ComponentPropsWithoutRef<\"button\">\n\nexport const UserAvatar = forwardRef<HTMLButtonElement, UserAvatarProps>(\n ({ initials, ...rest }, ref) => {\n return (\n <button\n ref={ref}\n className=\"relative flex size-10 items-center justify-center overflow-hidden rounded-[999px] bg-button-primary-background-default hover:bg-button-primary-background-hover\"\n {...rest}\n >\n <div className=\"relative flex size-full items-center justify-center\">\n {initials.avatar ? (\n <img\n src={initials.avatar}\n alt={initials.primary}\n className=\"w-full object-contain\"\n />\n ) : (\n <IconUser\n size={24}\n className=\"text-button-primary-foreground-default\"\n />\n )}\n </div>\n </button>\n )\n },\n)\nUserAvatar.displayName = \"UserAvatar\"\n","import * as React from \"react\";\nconst SvgUser = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M6 21v-2a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v2M8 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0\" /></svg>;\nexport default SvgUser;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNode, UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsOidcProps } from \"@ory/elements-react\"\nimport { useEffect, useState } from \"react\"\nimport { useFormContext } from \"react-hook-form\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport logos from \"../../provider-logos\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { DefaultButtonSocial, extractProvider } from \"../form/social\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsOidc({\n linkButtons,\n unlinkButtons,\n}: OrySettingsOidcProps) {\n const hasLinkButtons = linkButtons.length > 0\n const hasUnlinkButtons = unlinkButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n {hasLinkButtons && (\n <div className=\"grid items-start gap-3 grid-cols-1 sm:grid-cols-2 md:grid-cols-3\">\n {linkButtons.map((button) => {\n const attrs = button.attributes as UiNodeInputAttributes\n\n return (\n <DefaultButtonSocial\n showLabel\n key={attrs.value}\n node={button}\n attributes={attrs}\n onClick={button.onClick}\n />\n )\n })}\n </div>\n )}\n {hasUnlinkButtons && hasLinkButtons ? <DefaultHorizontalDivider /> : null}\n {unlinkButtons.map((button) => {\n if (button.attributes.node_type !== \"input\") {\n return null\n }\n return <UnlinkRow key={button.attributes.value} button={button} />\n })}\n </div>\n )\n}\n\ntype UnlinkRowProps = {\n button: UiNode & { onClick: () => void }\n}\n\nfunction UnlinkRow({ button }: UnlinkRowProps) {\n const [clicked, setClicked] = useState(false)\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const attrs = button.attributes as UiNodeInputAttributes\n const provider = extractProvider(button.meta.label?.context) ?? \"\"\n const Logo = attrs.value in logos ? logos[attrs.value] : logos.generic\n\n const localOnClick = () => {\n button.onClick()\n // Safari cancels form submission events, if we do a state update in the same tick\n // so we delay the state update by 100ms\n setTimeout(() => {\n setClicked(true)\n }, 100)\n }\n\n useEffect(() => {\n if (!isSubmitting) {\n setClicked(false)\n }\n }, [isSubmitting])\n\n return (\n <div key={attrs.value} className=\"flex justify-between\">\n <div className=\"flex items-center gap-6\">\n <Logo size={32} />\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {provider}\n </p>\n </div>\n <button\n {...attrs}\n type=\"submit\"\n onClick={localOnClick}\n disabled={isSubmitting}\n className=\"relative\"\n title={`Unlink ${provider}`}\n >\n {clicked ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgTrash = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 7h16m-10 4v6m4-6v6M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12M9 7V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\" /></svg>;\nexport default SvgTrash;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsPasskeyProps, useComponents } from \"@ory/elements-react\"\nimport Passkey from \"../../assets/icons/passkey.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsPasskey({\n triggerButton,\n removeButtons,\n}: OrySettingsPasskeyProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const { Node } = useComponents()\n\n const hasRemoveButtons = removeButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n <div className=\"flex max-w-[60%] items-end gap-3\">\n {triggerButton && (\n <Node.Button\n node={triggerButton}\n attributes={triggerButton.attributes as UiNodeInputAttributes}\n onClick={triggerButton.onClick}\n />\n )}\n </div>\n {hasRemoveButtons ? (\n <div className=\"flex flex-col gap-8\">\n <DefaultHorizontalDivider />\n <div className=\"flex flex-col gap-2\">\n {removeButtons.map((node, i) => {\n const context = node.meta.label?.context ?? {}\n const addedAt =\n \"added_at\" in context ? (context.added_at as string) : null\n const displayName =\n \"display_name\" in context\n ? (context.display_name as string)\n : null\n const keyId =\n \"value\" in node.attributes ? node.attributes.value : null\n\n return (\n <div\n className=\"flex justify-between gap-6 md:items-center\"\n key={`passkey-remove-button-${i}`}\n >\n <div className=\"flex gap-2 items-center flex-1\">\n <Passkey\n size={32}\n className=\"text-interface-foreground-default-primary\"\n />\n <div className=\"flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4\">\n <div className=\"flex-1 flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {displayName}\n </p>\n <span className=\"text-sm text-interface-foreground-default-tertiary hidden sm:block\">\n {keyId}\n </span>\n </div>\n {addedAt && (\n <p className=\"text-sm text-interface-foreground-default-tertiary\">\n {new Intl.DateTimeFormat(undefined, {\n dateStyle: \"long\",\n }).format(new Date(addedAt))}\n </p>\n )}\n </div>\n </div>\n <button\n {...(node.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n onClick={node.onClick}\n disabled={isSubmitting}\n className=\"relative\"\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgDownload = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5m0 0 5-5m-5 5V4\" /></svg>;\nexport default SvgDownload;","import * as React from \"react\";\nconst SvgEye = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><g strokeLinecap=\"round\" strokeLinejoin=\"round\"><path stroke=\"currentColor\" d=\"M10 12a2 2 0 1 0 4 0 2 2 0 0 0-4 0\" /><path stroke=\"#64748B\" d=\"M21 12q-3.6 6-9 6t-9-6q3.6-6 9-6t9 6\" /></g></svg>;\nexport default SvgEye;","import * as React from \"react\";\nconst SvgRefresh = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4m-4 4a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4\" /></svg>;\nexport default SvgRefresh;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsRecoveryCodesProps } from \"@ory/elements-react\"\nimport Download from \"../../assets/icons/download.svg\"\nimport Eye from \"../../assets/icons/eye.svg\"\nimport Refresh from \"../../assets/icons/refresh.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\n\nexport function DefaultSettingsRecoveryCodes({\n codes,\n regnerateButton,\n revealButton,\n onRegenerate,\n onReveal,\n}: OrySettingsRecoveryCodesProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const onDownload = () => {\n const element = document.createElement(\"a\")\n const file = new Blob([codes.join(\"\\n\")], {\n type: \"text/plain\",\n })\n element.href = URL.createObjectURL(file)\n element.download = \"recovery-codes.txt\"\n document.body.appendChild(element)\n element.click()\n }\n\n const hasCodes = codes.length >= 1\n\n return (\n <div className=\"flex flex-col gap-8\">\n {codes.length > 0 && <DefaultHorizontalDivider />}\n <div className=\"flex gap-4 justify-between\">\n <span className=\"text-interface-foreground-default-tertiary\">\n {revealButton && \"Reveal recovery codes\"}\n </span>\n <div className=\"flex gap-2\">\n {regnerateButton && codes.length > 0 && (\n <button\n {...(regnerateButton.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n className=\"ml-auto\"\n onClick={onRegenerate}\n disabled={isSubmitting}\n data-loading={isSubmitting}\n >\n <Refresh\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n )}\n {revealButton && (\n <>\n <button\n {...(revealButton.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n className=\"ml-auto\"\n onClick={onReveal}\n title=\"Reveal recovery codes\"\n >\n <Eye\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n </>\n )}\n {hasCodes && (\n <button\n onClick={onDownload}\n type=\"button\"\n className=\"ml-auto\"\n data-testid=\"ory/screen/settings/group/recovery_code/download\"\n title=\"Download recovery codes\"\n >\n <Download\n size={24}\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n />\n </button>\n )}\n </div>\n </div>\n {hasCodes ? (\n <div className=\"rounded-general p-6 bg-interface-background-default-secondary border-interface-border-default-primary\">\n <div\n className=\"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 flex-wrap gap-4 text-sm text-interface-foreground-default-primary\"\n data-testid=\"ory/screen/settings/group/recovery_code/codes\"\n >\n {codes.map((code) => (\n <p key={code}>{code}</p>\n ))}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n UiNodeImageAttributes,\n UiNodeInputAttributes,\n UiNodeTextAttributes,\n} from \"@ory/client-fetch\"\nimport { OrySettingsTotpProps, useComponents } from \"@ory/elements-react\"\nimport QrCode from \"../../assets/icons/qrcode.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { DefaultHorizontalDivider } from \"../form/horizontal-divider\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsTotp({\n totpImage,\n totpInput,\n totpSecret,\n totpUnlink,\n onUnlink,\n}: OrySettingsTotpProps) {\n const { Node, Card } = useComponents()\n const {\n formState: { isSubmitting },\n } = useFormContext()\n if (totpUnlink) {\n const {\n type,\n autocomplete: _ignoredAutocomplete,\n label: _ignoredLabel,\n node_type: _ignoredNodeType,\n ...buttonAttrs\n } = totpUnlink.attributes as UiNodeInputAttributes\n\n return (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2\">\n <div className=\"col-span-full\">\n <Card.Divider />\n </div>\n <div className=\"col-span-full flex items-center gap-6\">\n <div className=\"aspect-square size-8 \">\n <QrCode size={32} />\n </div>\n <div className=\"mr-auto flex flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-primary\">\n Authenticator app\n </p>\n </div>\n <button\n type={type === \"button\" ? \"button\" : \"submit\"}\n {...buttonAttrs}\n onClick={onUnlink}\n disabled={isSubmitting}\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n </div>\n )\n }\n\n if (totpImage && totpSecret && totpInput) {\n return (\n <div className=\"grid grid-cols-1 gap-8 md:grid-cols-2\">\n <div className=\"col-span-full\">\n <DefaultHorizontalDivider />\n </div>\n <div className=\"flex justify-center rounded-cards bg-interface-background-default-secondary p-8\">\n <div className=\"aspect-square h-44 rounded bg-[white]\">\n <div className=\"-m-3 antialiased mix-blend-multiply\">\n <Node.Image\n node={totpImage}\n attributes={{\n ...(totpImage.attributes as UiNodeImageAttributes),\n }}\n />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-6\">\n <Node.Label\n node={totpSecret}\n attributes={totpSecret.attributes as UiNodeInputAttributes}\n >\n <Node.Input\n node={totpSecret}\n attributes={{\n disabled: true,\n name: \"totp_secret_key\",\n node_type: \"input\",\n type: \"text\",\n value: (totpSecret.attributes as UiNodeTextAttributes).text\n .text,\n }}\n />\n </Node.Label>\n <Node.Label\n attributes={totpInput.attributes as UiNodeInputAttributes}\n node={totpInput}\n >\n <Node.CodeInput\n node={totpInput}\n attributes={totpInput.attributes as UiNodeInputAttributes}\n />\n </Node.Label>\n </div>\n </div>\n )\n }\n}\n","import * as React from \"react\";\nconst SvgQrcode = props => <svg xmlns=\"http://www.w3.org/2000/svg\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} fill=\"none\" {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9.333 22.667v.013m0-13.346v.013m13.333-.013v.013m0 9.32h-4v4m8-4v.013m-8 7.987h4m0-4h4v4m-21.333-20a1.333 1.333 0 0 1 1.333-1.333H12a1.333 1.333 0 0 1 1.333 1.333V12A1.334 1.334 0 0 1 12 13.334H6.666A1.334 1.334 0 0 1 5.333 12zm13.333 0A1.333 1.333 0 0 1 20 5.334h5.333a1.333 1.333 0 0 1 1.333 1.333V12a1.333 1.333 0 0 1-1.333 1.334H20A1.333 1.333 0 0 1 18.666 12zM5.333 20a1.333 1.333 0 0 1 1.333-1.333H12A1.333 1.333 0 0 1 13.333 20v5.334A1.333 1.333 0 0 1 12 26.667H6.666a1.333 1.333 0 0 1-1.333-1.334z\" /></svg>;\nexport default SvgQrcode;","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { UiNodeInputAttributes } from \"@ory/client-fetch\"\nimport { OrySettingsWebauthnProps, useComponents } from \"@ory/elements-react\"\nimport Key from \"../../assets/icons/key.svg\"\nimport Trash from \"../../assets/icons/trash.svg\"\nimport { useFormContext } from \"react-hook-form\"\nimport { Spinner } from \"../form/spinner\"\n\nexport function DefaultSettingsWebauthn({\n nameInput,\n triggerButton,\n removeButtons,\n}: OrySettingsWebauthnProps) {\n const {\n formState: { isSubmitting },\n } = useFormContext()\n const { Node, Card } = useComponents()\n const hasRemoveButtons = removeButtons.length > 0\n\n return (\n <div className=\"flex flex-col gap-8\">\n <div className=\"flex md:max-w-96 sm:items-end gap-3 flex-col sm:flex-row\">\n <div className=\"flex-1\">\n <Node.Label\n node={nameInput}\n attributes={nameInput.attributes as UiNodeInputAttributes}\n >\n <Node.Input\n node={nameInput}\n attributes={nameInput.attributes as UiNodeInputAttributes}\n />\n </Node.Label>\n </div>\n {triggerButton ? (\n <Node.Button\n node={triggerButton}\n attributes={triggerButton.attributes as UiNodeInputAttributes}\n onClick={triggerButton.onClick}\n />\n ) : null}\n </div>\n {hasRemoveButtons ? (\n <div className=\"flex flex-col gap-8\">\n <Card.Divider />\n <div className=\"flex flex-col gap-4\">\n {removeButtons.map((node, i) => {\n const context = node.meta.label?.context ?? {}\n const addedAt =\n \"added_at\" in context ? (context.added_at as string) : null\n const displayName =\n \"display_name\" in context\n ? (context.display_name as string)\n : null\n const keyId =\n \"value\" in node.attributes ? node.attributes.value : null\n\n return (\n <div\n className=\"flex justify-between gap-6 md:items-center\"\n key={`webauthn-remove-button-${i}`}\n >\n <div className=\"flex gap-2 items-center flex-1\">\n <Key\n size={32}\n className=\"text-interface-foreground-default-primary\"\n />\n <div className=\"flex-1 flex-col md:flex-row md:items-center flex md:justify-between gap-4\">\n <div className=\"flex-1 flex-col\">\n <p className=\"text-sm font-medium text-interface-foreground-default-secondary\">\n {displayName}\n </p>\n <span className=\"text-sm text-interface-foreground-default-tertiary hidden sm:block\">\n {keyId}\n </span>\n </div>\n {addedAt && (\n <p className=\"text-sm text-interface-foreground-default-tertiary\">\n {new Intl.DateTimeFormat(undefined, {\n dateStyle: \"long\",\n }).format(new Date(addedAt))}\n </p>\n )}\n </div>\n </div>\n <button\n {...(node.attributes as UiNodeInputAttributes)}\n type=\"submit\"\n onClick={node.onClick}\n disabled={isSubmitting}\n className=\"relative\"\n >\n {isSubmitting ? (\n <Spinner className=\"relative\" />\n ) : (\n <Trash\n className=\"text-button-link-default-secondary hover:text-button-link-default-secondary-hover\"\n size={24}\n />\n )}\n </button>\n </div>\n )\n })}\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n","import * as React from \"react\";\nconst SvgKey = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 32 32\" width={props?.width ? props.width : props?.size ?? 20} height={props?.height ? props.height : props?.size ?? 20} {...props}><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M20 12h.013m2.06-6.876 4.803 4.803a3.836 3.836 0 0 1 0 5.425l-3.524 3.524a3.835 3.835 0 0 1-5.425 0l-.402-.401-8.744 8.744a2.67 2.67 0 0 1-1.652.77L6.896 28H5.333a1.334 1.334 0 0 1-1.324-1.177L4 26.667v-1.563c0-.626.22-1.232.623-1.712l.158-.173.552-.552H8V20h2.667v-2.667l2.858-2.858-.401-.402a3.835 3.835 0 0 1 0-5.425l3.524-3.524a3.835 3.835 0 0 1 5.425 0\" /></svg>;\nexport default SvgKey;","// Copyright © 2025 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PropsWithChildren } from \"react\"\n\nexport function DefaultAuthMethodListContainer({\n children,\n}: PropsWithChildren) {\n return <div className=\"grid grid-cols-1 gap-2\">{children}</div>\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n OryFlowComponentOverrides,\n OryFlowComponents,\n} from \"@ory/elements-react\"\nimport {\n DefaultCard,\n DefaultCardContent,\n DefaultCardFooter,\n DefaultCardHeader,\n DefaultCardLogo,\n} from \"./card\"\nimport { DefaultAuthMethodListItem } from \"./card/auth-method-list-item\"\nimport {\n DefaultFormContainer,\n DefaultMessage,\n DefaultMessageContainer,\n} from \"./form\"\nimport { DefaultButton } from \"./form/button\"\nimport { DefaultCheckbox } from \"./form/checkbox\"\nimport { DefaultGroupContainer } from \"./form/group-container\"\nimport { DefaultHorizontalDivider } from \"./form/horizontal-divider\"\nimport { DefaultImage } from \"./form/image\"\nimport { DefaultInput } from \"./form/input\"\nimport { DefaultLabel } from \"./form/label\"\nimport { DefaultLinkButton } from \"./form/link-button\"\nimport { DefaultPinCodeInput } from \"./form/pin-code-input\"\nimport {\n DefaultFormSection,\n DefaultFormSectionContent,\n DefaultFormSectionFooter,\n} from \"./form/section\"\nimport {\n DefaultButtonSocial,\n DefaultSocialButtonContainer,\n} from \"./form/social\"\nimport { DefaultText } from \"./form/text\"\nimport { DefaultPageHeader } from \"./generic/page-header\"\nimport { DefaultSettingsOidc } from \"./settings/settings-oidc\"\nimport { DefaultSettingsPasskey } from \"./settings/settings-passkey\"\nimport { DefaultSettingsRecoveryCodes } from \"./settings/settings-recovery-codes\"\nimport { DefaultSettingsTotp } from \"./settings/settings-totp\"\nimport { DefaultSettingsWebauthn } from \"./settings/settings-webauthn\"\nimport { DefaultAuthMethodListContainer } from \"./card/auth-method-list-container\"\n\nexport function getOryComponents(\n overrides?: OryFlowComponentOverrides,\n): OryFlowComponents {\n // Yes, this could probably be easier by using lodash or a custom merge function.\n // But, this makes it very explicit what can be overridden, and does not introduce issues with merging nested fields.\n return {\n Card: {\n Root: overrides?.Card?.Root ?? DefaultCard,\n Footer: overrides?.Card?.Footer ?? DefaultCardFooter,\n Header: overrides?.Card?.Header ?? DefaultCardHeader,\n Content: overrides?.Card?.Content ?? DefaultCardContent,\n Logo: overrides?.Card?.Logo ?? DefaultCardLogo,\n Divider: overrides?.Card?.Divider ?? DefaultHorizontalDivider,\n AuthMethodListContainer:\n overrides?.Card?.AuthMethodListContainer ??\n DefaultAuthMethodListContainer,\n AuthMethodListItem:\n overrides?.Card?.AuthMethodListItem ?? DefaultAuthMethodListItem,\n SettingsSection: overrides?.Card?.SettingsSection ?? DefaultFormSection,\n SettingsSectionContent:\n overrides?.Card?.SettingsSectionContent ?? DefaultFormSectionContent,\n SettingsSectionFooter:\n overrides?.Card?.SettingsSectionFooter ?? DefaultFormSectionFooter,\n },\n Node: {\n Button: overrides?.Node?.Button ?? DefaultButton,\n OidcButton: overrides?.Node?.OidcButton ?? DefaultButtonSocial,\n Input: overrides?.Node?.Input ?? DefaultInput,\n CodeInput: overrides?.Node?.CodeInput ?? DefaultPinCodeInput,\n Image: overrides?.Node?.Image ?? DefaultImage,\n Label: overrides?.Node?.Label ?? DefaultLabel,\n Checkbox: overrides?.Node?.Checkbox ?? DefaultCheckbox,\n Text: overrides?.Node?.Text ?? DefaultText,\n Anchor: overrides?.Node?.Anchor ?? DefaultLinkButton,\n },\n Form: {\n Root: overrides?.Form?.Root ?? DefaultFormContainer,\n Group: overrides?.Form?.Group ?? DefaultGroupContainer,\n OidcRoot: overrides?.Form?.OidcRoot ?? DefaultSocialButtonContainer,\n RecoveryCodesSettings:\n overrides?.Form?.RecoveryCodesSettings ?? DefaultSettingsRecoveryCodes,\n TotpSettings: overrides?.Form?.TotpSettings ?? DefaultSettingsTotp,\n OidcSettings: overrides?.Form?.OidcSettings ?? DefaultSettingsOidc,\n WebauthnSettings:\n overrides?.Form?.WebauthnSettings ?? DefaultSettingsWebauthn,\n PasskeySettings:\n overrides?.Form?.PasskeySettings ?? DefaultSettingsPasskey,\n },\n Message: {\n Root: overrides?.Message?.Root ?? DefaultMessageContainer,\n Content: overrides?.Message?.Content ?? DefaultMessage,\n },\n Page: {\n Header: overrides?.Page?.Header ?? DefaultPageHeader,\n },\n }\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowError } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\n\nexport type ErrorFlowContextProps = {\n error: FlowError\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Error({\n error,\n children,\n}: PropsWithChildren<ErrorFlowContextProps>) {\n return (\n <div data-testid={\"ory/screen/error/raw\"}>\n {JSON.stringify(error) || children}\n </div>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, LoginFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type LoginFlowContextProps = {\n flow: LoginFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Login({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<LoginFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Login}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, RecoveryFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type RecoveryFlowContextProps = {\n flow: RecoveryFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Recovery({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<RecoveryFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Recovery}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, RegistrationFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\ntype RegistrationFlowContextProps = {\n flow: RegistrationFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Registration({\n flow,\n children,\n components: flowOverrideComponents,\n config,\n}: PropsWithChildren<RegistrationFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Registration}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, SettingsFlow } from \"@ory/client-fetch\"\nimport {\n HeadlessPageHeader,\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OrySettingsCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type SettingsFlowContextProps = {\n flow: SettingsFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Settings({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<SettingsFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Settings}\n components={components}\n >\n {children ?? (\n <>\n <HeadlessPageHeader />\n <OrySettingsCard />\n </>\n )}\n </OryProvider>\n )\n}\n","// Copyright © 2024 Ory Corp\n// SPDX-License-Identifier: Apache-2.0\n\n\"use client\"\nimport { FlowType, VerificationFlow } from \"@ory/client-fetch\"\nimport {\n OryClientConfiguration,\n OryFlowComponentOverrides,\n OryProvider,\n OryTwoStepCard,\n} from \"@ory/elements-react\"\nimport { PropsWithChildren } from \"react\"\nimport { getOryComponents } from \"../components\"\n\nexport type VerificationFlowContextProps = {\n flow: VerificationFlow\n components?: OryFlowComponentOverrides\n config: OryClientConfiguration\n}\n\nexport function Verification({\n flow,\n config,\n children,\n components: flowOverrideComponents,\n}: PropsWithChildren<VerificationFlowContextProps>) {\n const components = getOryComponents(flowOverrideComponents)\n return (\n <OryProvider\n config={config}\n flow={flow}\n flowType={FlowType.Verification}\n components={components}\n >\n {children ?? <OryTwoStepCard />}\n </OryProvider>\n )\n}\n"],"mappings":"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","names":["Error","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_elements_react","import_client_fetch","import_react_intl","import_client_fetch","import_elements_react","React","import_jsx_runtime","import_jsx_runtime","initFlowUrl","import_jsx_runtime","import_elements_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react_intl","import_elements_react","import_client_fetch","import_elements_react","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react_intl","import_react_hook_form","import_jsx_runtime","import_jsx_runtime","logos","node","import_jsx_runtime","import_react_intl","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_react_intl","uiTextToFormattedMessage","import_jsx_runtime","uiTextToFormattedMessage","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_jsx_runtime","import_client_fetch","import_elements_react","import_react_hook_form","import_react_intl","import_jsx_runtime","import_client_fetch","import_elements_react","import_react","import_react_intl","import_jsx_runtime","import_react_hook_form","React","import_jsx_runtime","import_elements_react","import_client_fetch","import_jsx_runtime","import_jsx_runtime","import_elements_react","import_react_intl","import_jsx_runtime","import_elements_react","import_react","import_elements_react","import_client_fetch","React","import_jsx_runtime","React","import_jsx_runtime","import_react","import_jsx_runtime","import_react","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_client","import_jsx_runtime","import_react","import_react_hook_form","React","import_jsx_runtime","import_jsx_runtime","import_elements_react","import_react_hook_form","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_elements_react","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_elements_react","React","import_jsx_runtime","import_react_hook_form","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","Error","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime","import_client_fetch","import_elements_react","import_jsx_runtime"]}