diff --git a/jest.config.ts b/jest.config.ts index 2aa703eae..70b854c38 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { getJestProjects, getJestProjectsAsync } from "@nx/jest" +import { getJestProjects } from "@nx/jest" export default { projects: getJestProjects(), diff --git a/package-lock.json b/package-lock.json index f159d135b..4e7a516c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36365,6 +36365,126 @@ "node": ">=16.16.0", "npm": ">=8.11.0" } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", + "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", + "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", + "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", + "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", + "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", + "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", + "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", + "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/packages/elements-react/api-report/elements-react-theme.api.md b/packages/elements-react/api-report/elements-react-theme.api.md index 8c4d60693..fc7c9fbe9 100644 --- a/packages/elements-react/api-report/elements-react-theme.api.md +++ b/packages/elements-react/api-report/elements-react-theme.api.md @@ -25,6 +25,7 @@ import { UiNodeImageAttributes } from '@ory/client-fetch'; import { UiNodeInputAttributes } from '@ory/client-fetch'; import { UiNodeTextAttributes } from '@ory/client-fetch'; import { UiText } from '@ory/client-fetch'; +import { VariantProps } from 'class-variance-authority'; import { VerificationFlow } from '@ory/client-fetch'; // Warning: (ae-forgotten-export) The symbol "OryCardRootProps" needs to be exported by the entry point index.d.ts diff --git a/packages/elements-react/api-report/elements-react.api.json b/packages/elements-react/api-report/elements-react.api.json index 2e319f1a2..40c9caad1 100644 --- a/packages/elements-react/api-report/elements-react.api.json +++ b/packages/elements-react/api-report/elements-react.api.json @@ -1467,6 +1467,60 @@ "text": "OryCardAuthMethodListItemProps", "canonicalReference": "@ory/elements-react!OryCardAuthMethodListItemProps:type" }, + { + "kind": "Content", + "text": ">;\n SettingsSection: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OryFormSectionProps", + "canonicalReference": "@ory/elements-react!OryFormSectionProps:type" + }, + { + "kind": "Content", + "text": ">;\n SettingsSectionContent: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OryFormSectionContentProps", + "canonicalReference": "@ory/elements-react!OryFormSectionContentProps:type" + }, + { + "kind": "Content", + "text": ">;\n SettingsSectionFooter: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OryFormSectionContentProps", + "canonicalReference": "@ory/elements-react!OryFormSectionContentProps:type" + }, { "kind": "Content", "text": ">;\n };\n Form: {\n Root: " @@ -1521,6 +1575,96 @@ "text": "OryFormGroupProps", "canonicalReference": "@ory/elements-react!OryFormGroupProps:type" }, + { + "kind": "Content", + "text": ">;\n OidcSettings: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OrySettingsOidcProps", + "canonicalReference": "@ory/elements-react!OrySettingsOidcProps:type" + }, + { + "kind": "Content", + "text": ">;\n WebauthnSettings: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OrySettingsWebauthnProps", + "canonicalReference": "@ory/elements-react!OrySettingsWebauthnProps:type" + }, + { + "kind": "Content", + "text": ">;\n PasskeySettings: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OrySettingsPasskeyProps", + "canonicalReference": "@ory/elements-react!OrySettingsPasskeyProps:type" + }, + { + "kind": "Content", + "text": ">;\n TotpSettings: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OrySettingsTotpProps", + "canonicalReference": "@ory/elements-react!OrySettingsTotpProps:type" + }, + { + "kind": "Content", + "text": ">;\n RecoveryCodesSettings: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "OrySettingsRecoveryCodesProps", + "canonicalReference": "@ory/elements-react!OrySettingsRecoveryCodesProps:type" + }, { "kind": "Content", "text": ">;\n };\n Message: {\n Root: " @@ -1589,7 +1733,7 @@ "name": "OryFlowComponents", "typeTokenRange": { "startIndex": 1, - "endIndex": 94 + "endIndex": 126 } }, { @@ -1662,7 +1806,7 @@ "excerptTokens": [ { "kind": "Content", - "text": "declare function OryForm({ children, onAfterSubmit }: " + "text": "declare function OryForm({ children, onAfterSubmit, nodes }: " }, { "kind": "Reference", @@ -1696,7 +1840,7 @@ "overloadIndex": 1, "parameters": [ { - "parameterName": "{ children, onAfterSubmit }", + "parameterName": "{ children, onAfterSubmit, nodes }", "parameterTypeTokenRange": { "startIndex": 1, "endIndex": 2 @@ -1991,7 +2135,16 @@ }, { "kind": "Content", - "text": "<{\n onAfterSubmit?: (method: string | number | boolean | undefined) => void;\n}>" + "text": "<{\n onAfterSubmit?: (method: string | number | boolean | undefined) => void;\n nodes?: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}>" }, { "kind": "Content", @@ -2003,7 +2156,7 @@ "name": "OryFormProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 3 + "endIndex": 5 } }, { @@ -2055,6 +2208,151 @@ "endIndex": 7 } }, + { + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryFormSection:function(1)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "declare function OryFormSection({ children, nodes }: " + }, + { + "kind": "Reference", + "text": "OryFormSectionProps", + "canonicalReference": "@ory/elements-react!OryFormSectionProps:type" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Reference", + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "{ children, nodes }", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "name": "OryFormSection" + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFormSectionContentProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OryFormSectionContentProps = " + }, + { + "kind": "Reference", + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" + }, + { + "kind": "Content", + "text": "<{\n title?: string;\n description?: string;\n}>" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryFormSectionContentProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 3 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFormSectionFooterProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OryFormSectionFooterProps = " + }, + { + "kind": "Reference", + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryFormSectionFooterProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFormSectionProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OryFormSectionProps = " + }, + { + "kind": "Reference", + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" + }, + { + "kind": "Content", + "text": "<{\n nodes?: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}>" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryFormSectionProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 5 + } + }, { "kind": "Function", "canonicalReference": "@ory/elements-react!OryFormSocialButtonsForm:function(1)", @@ -2314,7 +2612,12 @@ }, { "kind": "Content", - "text": "<\"button\">, \"children\">" + "text": "<\"button\">, \"children\"> & " + }, + { + "kind": "Reference", + "text": "ButtonVariants", + "canonicalReference": "@ory/elements-react!~ButtonVariants:type" }, { "kind": "Content", @@ -2326,7 +2629,7 @@ "name": "OryNodeButtonProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 11 } }, { @@ -2703,6 +3006,290 @@ "endIndex": 7 } }, + { + "kind": "Function", + "canonicalReference": "@ory/elements-react!OrySettingsCard:function(1)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "declare function OrySettingsCard(): " + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" + }, + { + "kind": "Content", + "text": " | null)[]" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 4 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OrySettingsCard" + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OrySettingsOidcProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OrySettingsOidcProps = " + }, + { + "kind": "Content", + "text": "{\n linkButtons: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n unlinkButtons: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OrySettingsOidcProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 6 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OrySettingsPasskeyProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OrySettingsPasskeyProps = " + }, + { + "kind": "Content", + "text": "{\n triggerButton: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": " & {\n onClick: () => void;\n };\n removeButtons: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OrySettingsPasskeyProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 6 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OrySettingsRecoveryCodesProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OrySettingsRecoveryCodesProps = " + }, + { + "kind": "Content", + "text": "{\n codes: string[];\n regnerateButton?: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n revealButton?: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OrySettingsRecoveryCodesProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 6 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OrySettingsTotpProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OrySettingsTotpProps = " + }, + { + "kind": "Content", + "text": "{\n totpImage: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n totpSecret: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n totpInput: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n} | {\n totpUnlink: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OrySettingsTotpProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 10 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OrySettingsWebauthnProps:type", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "type OrySettingsWebauthnProps = " + }, + { + "kind": "Content", + "text": "{\n nameInput: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n triggerButton: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": " & {\n onClick: () => void;\n };\n removeButtons: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OrySettingsWebauthnProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 8 + } + }, { "kind": "Function", "canonicalReference": "@ory/elements-react!OryTwoStepCard:function(1)", diff --git a/packages/elements-react/api-report/elements-react.api.md b/packages/elements-react/api-report/elements-react.api.md index 19091e175..2c35782d7 100644 --- a/packages/elements-react/api-report/elements-react.api.md +++ b/packages/elements-react/api-report/elements-react.api.md @@ -4,6 +4,7 @@ ```ts +import * as class_variance_authority_types from 'class-variance-authority/types'; import { ComponentPropsWithoutRef } from 'react'; import { ComponentType } from 'react'; import { ConfigurationParameters } from '@ory/client-fetch'; @@ -35,6 +36,7 @@ import { UpdateRecoveryFlowBody } from '@ory/client-fetch'; import { UpdateRegistrationFlowBody } from '@ory/client-fetch'; import { UpdateSettingsFlowBody } from '@ory/client-fetch'; import { UpdateVerificationFlowBody } from '@ory/client-fetch'; +import { VariantProps } from 'class-variance-authority'; import { VerificationFlow } from '@ory/client-fetch'; // Warning: (ae-forgotten-export) The symbol "OryFlow" needs to be exported by the entry point index.d.ts @@ -172,11 +174,19 @@ export type OryFlowComponents = { Logo: ComponentType; Divider: ComponentType; AuthMethodListItem: ComponentType; + SettingsSection: ComponentType; + SettingsSectionContent: ComponentType; + SettingsSectionFooter: ComponentType; }; Form: { Root: ComponentType; OidcRoot: ComponentType; Group: ComponentType; + OidcSettings: ComponentType; + WebauthnSettings: ComponentType; + PasskeySettings: ComponentType; + TotpSettings: ComponentType; + RecoveryCodesSettings: ComponentType; }; Message: { Root: ComponentType; @@ -191,7 +201,7 @@ export type OryFlowComponents = { export type OryFlowContainer = LoginFlowContainer | RegistrationFlowContainer | RecoveryFlowContainer | VerificationFlowContainer | SettingsFlowContainer; // @public (undocumented) -export function OryForm({ children, onAfterSubmit }: OryFormProps): string | react_jsx_runtime.JSX.Element; +export function OryForm({ children, onAfterSubmit, nodes }: OryFormProps): string | react_jsx_runtime.JSX.Element; // @public export function OryFormGroupDivider(): react_jsx_runtime.JSX.Element | null; @@ -223,6 +233,7 @@ export type OryFormOidcRootProps = PropsWithChildren<{ // @public (undocumented) export type OryFormProps = PropsWithChildren<{ onAfterSubmit?: (method: string | number | boolean | undefined) => void; + nodes?: UiNode[]; }>; // @public (undocumented) @@ -230,6 +241,23 @@ export type OryFormRootProps = ComponentPropsWithoutRef<"form"> & { onSubmit: FormEventHandler; }; +// @public (undocumented) +export function OryFormSection({ children, nodes }: OryFormSectionProps): react_jsx_runtime.JSX.Element; + +// @public (undocumented) +export type OryFormSectionContentProps = PropsWithChildren<{ + title?: string; + description?: string; +}>; + +// @public (undocumented) +export type OryFormSectionFooterProps = PropsWithChildren; + +// @public (undocumented) +export type OryFormSectionProps = PropsWithChildren<{ + nodes?: UiNode[]; +}>; + // @public (undocumented) export function OryFormSocialButtonsForm(): react_jsx_runtime.JSX.Element | null; @@ -252,11 +280,13 @@ export type OryNodeAnchorProps = { node: UiNode; } & Omit, "children">; +// Warning: (ae-forgotten-export) The symbol "ButtonVariants" needs to be exported by the entry point index.d.ts +// // @public (undocumented) export type OryNodeButtonProps = { attributes: UiNodeInputAttributes; node: UiNode; -} & Omit, "children">; +} & Omit, "children"> & ButtonVariants; // @public (undocumented) export type OryNodeImageProps = { @@ -301,6 +331,48 @@ export type OryProviderProps = { components: OryFlowComponents; } & OryFlowContainer & PropsWithChildren; +// @public (undocumented) +export function OrySettingsCard(): (react_jsx_runtime.JSX.Element | null)[]; + +// @public (undocumented) +export type OrySettingsOidcProps = { + linkButtons: UiNode[]; + unlinkButtons: UiNode[]; +}; + +// @public (undocumented) +export type OrySettingsPasskeyProps = { + triggerButton: UiNode & { + onClick: () => void; + }; + removeButtons: UiNode[]; +}; + +// @public (undocumented) +export type OrySettingsRecoveryCodesProps = { + codes: string[]; + regnerateButton?: UiNode; + revealButton?: UiNode; +}; + +// @public (undocumented) +export type OrySettingsTotpProps = { + totpImage: UiNode; + totpSecret: UiNode; + totpInput: UiNode; +} | { + totpUnlink: UiNode; +}; + +// @public (undocumented) +export type OrySettingsWebauthnProps = { + nameInput: UiNode; + triggerButton: UiNode & { + onClick: () => void; + }; + removeButtons: UiNode[]; +}; + // @public (undocumented) export function OryTwoStepCard(): react_jsx_runtime.JSX.Element; diff --git a/packages/elements-react/jest.config.ts b/packages/elements-react/jest.config.ts index 2fbac1498..fb30c5cf6 100644 --- a/packages/elements-react/jest.config.ts +++ b/packages/elements-react/jest.config.ts @@ -1,16 +1,17 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -/* eslint-disable */ +import { Config } from "jest" export default { displayName: "@ory/elements-react", preset: "../../jest.preset.js", transform: { - "^.+\\.[tj]sx?$": "ts-jest", + "^.+\\.tsx?$": "ts-jest", ".+\\.(svg|css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "jest-transform-stub", }, moduleFileExtensions: ["ts", "tsx", "js", "jsx"], coverageDirectory: "../../coverage/packages/elements-react", -} + coveragePathIgnorePatterns: ["/node_modules/", "/dist/", ".svg"], +} satisfies Config diff --git a/packages/elements-react/project.json b/packages/elements-react/project.json index 31d2d6b22..4dff61932 100644 --- a/packages/elements-react/project.json +++ b/packages/elements-react/project.json @@ -30,6 +30,15 @@ "coverageReporters": ["text", "cobertura"] } }, + "test-refresh": { + "executor": "@nx/jest:jest", + "options": { + "jestConfig": "packages/elements-react/jest.config.ts", + "coverage": true, + "coverageReporters": ["text", "cobertura"], + "updateSnapshot": true + } + }, "api-extractor": { "executor": "nx:run-commands", "options": { diff --git a/packages/elements-react/src/components/form/form.tsx b/packages/elements-react/src/components/form/form.tsx index 89b38ed75..4e00a8617 100644 --- a/packages/elements-react/src/components/form/form.tsx +++ b/packages/elements-react/src/components/form/form.tsx @@ -184,14 +184,29 @@ export type OryFlowComponents = { */ Group: ComponentType + /** + * The section on the settings page, rendering the OIDC settings + */ OidcSettings: ComponentType + /** + * The section on the settings page, rendering the Webauthn settings + */ WebauthnSettings: ComponentType + /** + * The section on the settings page, rendering the Passkey settings + */ PasskeySettings: ComponentType + /** + * The section on the settings page, rendering the TOTP settings + */ TotpSettings: ComponentType + /** + * The section on the settings page, rendering the recovery code settings + */ RecoveryCodesSettings: ComponentType } Message: { diff --git a/packages/elements-react/src/locales/de.json b/packages/elements-react/src/locales/de.json index 35302b964..32147dfda 100644 --- a/packages/elements-react/src/locales/de.json +++ b/packages/elements-react/src/locales/de.json @@ -178,7 +178,7 @@ "identities.messages.1040007": "", "identities.messages.1040008": "", "identities.messages.1040009": "", - "identities.messages.1050019": "", + "identities.messages.1050019": "Passkey hinzufügen", "identities.messages.1050020": "", "identities.messages.4000037": "", "identities.messages.4010009": "", @@ -228,5 +228,16 @@ "settings.profile.description": "Aktualisieren Sie Ihre Profilinformationen", "settings.profile.title": "Profileinstellungen", "settings.webauthn.description": "Verwalten Sie Ihre Hardware-Token-Einstellungen", - "settings.webauthn.title": "Hardware-Token verwalten" + "settings.webauthn.title": "Hardware-Token verwalten", + "settings.oidc.info": "Verbundene Konten dieser Anbieter können für die Anmeldung bei Ihrem Konto verwendet werden", + "settings.passkey.info": "Verwalten Sie Ihre Passkey-Einstellungen", + "settings.title-lookup-secret": "Verwalten Sie 2FA-Backup-Wiederherstellungscodes", + "settings.title-navigation": "Kontoeinstellungen", + "settings.title-oidc": "Social Sign In", + "settings.title-passkey": "Passkeys verwalten", + "settings.title-password": "Kennwort ändern", + "settings.title-profile": "Profileinstellungen", + "settings.title-totp": "Verwalten Sie die 2FA TOTP Authenticator-App", + "settings.title-webauthn": "Hardware-Token verwalten", + "settings.webauthn.info": "Hardware-Tokens werden für die Zweitfaktor-Authentifizierung oder als Erstfaktor-Authentifizierung mit Passkeys verwendet" } diff --git a/packages/elements-react/src/locales/en.json b/packages/elements-react/src/locales/en.json index 260e64a25..70c2eec02 100644 --- a/packages/elements-react/src/locales/en.json +++ b/packages/elements-react/src/locales/en.json @@ -232,7 +232,7 @@ "settings.totp.info.not-linked": "To enable scan the QR code with your authenticator and enter the code.", "settings.totp.info.linked": "You currently have an authenticator app connected.", "settings.lookup_secret.title": "Backup Recovery Codes (second factor)", - "settings.lookup_secret.description": "Recovery codes can be used in panic situations where you have lost access to your 2FA device or as a standalone method to authenticate.", + "settings.lookup_secret.description": "Recovery codes are a secure backup for 2FA, allowing you to regain access to your account if you lose your 2FA device.", "settings.oidc.title": "Connected accounts", "settings.oidc.description": "Connect a social login provider with your account.", "settings.oidc.info": "Connected accounts from these providers can be used to login to your account", diff --git a/packages/elements-react/src/locales/es.json b/packages/elements-react/src/locales/es.json index 5da719361..9e1421bcc 100644 --- a/packages/elements-react/src/locales/es.json +++ b/packages/elements-react/src/locales/es.json @@ -228,5 +228,16 @@ "settings.profile.description": "Actualiza la información de tu perfil", "settings.profile.title": "Configuración de Perfil", "settings.webauthn.description": "Administra la configuración de tu token de hardware", - "settings.webauthn.title": "Gestionar Tokens de Hardware" + "settings.webauthn.title": "Gestionar Tokens de Hardware", + "settings.oidc.info": "", + "settings.passkey.info": "", + "settings.title-lookup-secret": "", + "settings.title-navigation": "", + "settings.title-oidc": "", + "settings.title-passkey": "", + "settings.title-password": "", + "settings.title-profile": "", + "settings.title-totp": "", + "settings.title-webauthn": "", + "settings.webauthn.info": "" } diff --git a/packages/elements-react/src/locales/fr.json b/packages/elements-react/src/locales/fr.json index 6e6dddfa5..341a9f2ce 100644 --- a/packages/elements-react/src/locales/fr.json +++ b/packages/elements-react/src/locales/fr.json @@ -215,5 +215,29 @@ "settings.totp.info.linked": "Vous avez actuellement une application d'authentification connectée.", "settings.totp.info.not-linked": "Pour activer, scannez le QR code avec votre authentificateur et entrez le code.", "settings.totp.title": "Application d'authentification", - "settings.totp.description": "Ajoutez une application d'authentification TOTP à votre compte pour améliorer la sécurité de votre compte. Les applications d'authentification populaires sont LastPass et Google Authenticator." + "settings.totp.description": "Ajoutez une application d'authentification TOTP à votre compte pour améliorer la sécurité de votre compte. Les applications d'authentification populaires sont LastPass et Google Authenticator.", + "settings.lookup_secret.description": "", + "settings.lookup_secret.title": "", + "settings.navigation.title": "", + "settings.oidc.description": "", + "settings.oidc.info": "", + "settings.oidc.title": "", + "settings.passkey.description": "", + "settings.passkey.info": "", + "settings.passkey.title": "", + "settings.password.description": "", + "settings.password.title": "", + "settings.profile.description": "", + "settings.profile.title": "", + "settings.title-lookup-secret": "", + "settings.title-navigation": "", + "settings.title-oidc": "", + "settings.title-passkey": "", + "settings.title-password": "", + "settings.title-profile": "", + "settings.title-totp": "", + "settings.title-webauthn": "", + "settings.webauthn.description": "", + "settings.webauthn.info": "", + "settings.webauthn.title": "" } diff --git a/packages/elements-react/src/locales/nl.json b/packages/elements-react/src/locales/nl.json index c8f6d98d1..56608a7f7 100644 --- a/packages/elements-react/src/locales/nl.json +++ b/packages/elements-react/src/locales/nl.json @@ -215,5 +215,29 @@ "settings.totp.info.linked": "U heeft momenteel een authenticator-app verbonden.", "settings.totp.info.not-linked": "Om te activeren, scan de QR-code met je authenticator en voer de code in.", "settings.totp.title": "", - "settings.totp.description": "Voeg een TOTP Authenticator App toe aan uw account om de beveiliging van uw account te verbeteren. Populaire Authenticator Apps zijn LastPass en Google Authenticator." + "settings.totp.description": "Voeg een TOTP Authenticator App toe aan uw account om de beveiliging van uw account te verbeteren. Populaire Authenticator Apps zijn LastPass en Google Authenticator.", + "settings.lookup_secret.description": "", + "settings.lookup_secret.title": "", + "settings.navigation.title": "", + "settings.oidc.description": "", + "settings.oidc.info": "", + "settings.oidc.title": "", + "settings.passkey.description": "", + "settings.passkey.info": "", + "settings.passkey.title": "", + "settings.password.description": "", + "settings.password.title": "", + "settings.profile.description": "", + "settings.profile.title": "", + "settings.title-lookup-secret": "", + "settings.title-navigation": "", + "settings.title-oidc": "", + "settings.title-passkey": "", + "settings.title-password": "", + "settings.title-profile": "", + "settings.title-totp": "", + "settings.title-webauthn": "", + "settings.webauthn.description": "", + "settings.webauthn.info": "", + "settings.webauthn.title": "" } diff --git a/packages/elements-react/src/locales/pl.json b/packages/elements-react/src/locales/pl.json index c7ded1a43..be19465a1 100644 --- a/packages/elements-react/src/locales/pl.json +++ b/packages/elements-react/src/locales/pl.json @@ -215,5 +215,29 @@ "settings.totp.info.linked": "Aktualnie masz podłączoną aplikację uwierzytelniającą.", "settings.totp.info.not-linked": "Aby włączyć, zeskanuj kod QR za pomocą swojego uwierzytelniającego i wprowadź kod.", "settings.totp.title": "", - "settings.totp.description": "Dodaj aplikację do uwierzytelniania TOTP do swojego konta, aby poprawić bezpieczeństwo swojego konta. Popularne aplikacje uwierzytelniające to LastPass i Google Authenticator." + "settings.totp.description": "Dodaj aplikację do uwierzytelniania TOTP do swojego konta, aby poprawić bezpieczeństwo swojego konta. Popularne aplikacje uwierzytelniające to LastPass i Google Authenticator.", + "settings.lookup_secret.description": "", + "settings.lookup_secret.title": "", + "settings.navigation.title": "", + "settings.oidc.description": "", + "settings.oidc.info": "", + "settings.oidc.title": "", + "settings.passkey.description": "", + "settings.passkey.info": "", + "settings.passkey.title": "", + "settings.password.description": "", + "settings.password.title": "", + "settings.profile.description": "", + "settings.profile.title": "", + "settings.title-lookup-secret": "", + "settings.title-navigation": "", + "settings.title-oidc": "", + "settings.title-passkey": "", + "settings.title-password": "", + "settings.title-profile": "", + "settings.title-totp": "", + "settings.title-webauthn": "", + "settings.webauthn.description": "", + "settings.webauthn.info": "", + "settings.webauthn.title": "" } diff --git a/packages/elements-react/src/locales/pt.json b/packages/elements-react/src/locales/pt.json index 7b909fc93..7ba40d473 100644 --- a/packages/elements-react/src/locales/pt.json +++ b/packages/elements-react/src/locales/pt.json @@ -215,5 +215,29 @@ "settings.totp.info.linked": "Você atualmente tem um aplicativo autenticador conectado.", "settings.totp.info.not-linked": "Para ativar, escaneie o código QR com seu autenticador e insira o código.", "settings.totp.title": "", - "settings.totp.description": "Adicione um aplicativo autenticador TOTP à sua conta para melhorar a segurança da sua conta. Aplicativos autenticadores populares são LastPass e Google Authenticator." + "settings.totp.description": "Adicione um aplicativo autenticador TOTP à sua conta para melhorar a segurança da sua conta. Aplicativos autenticadores populares são LastPass e Google Authenticator.", + "settings.lookup_secret.description": "", + "settings.lookup_secret.title": "", + "settings.navigation.title": "", + "settings.oidc.description": "", + "settings.oidc.info": "", + "settings.oidc.title": "", + "settings.passkey.description": "", + "settings.passkey.info": "", + "settings.passkey.title": "", + "settings.password.description": "", + "settings.password.title": "", + "settings.profile.description": "", + "settings.profile.title": "", + "settings.title-lookup-secret": "", + "settings.title-navigation": "", + "settings.title-oidc": "", + "settings.title-passkey": "", + "settings.title-password": "", + "settings.title-profile": "", + "settings.title-totp": "", + "settings.title-webauthn": "", + "settings.webauthn.description": "", + "settings.webauthn.info": "", + "settings.webauthn.title": "" } diff --git a/packages/elements-react/src/locales/sv.json b/packages/elements-react/src/locales/sv.json index bf1b42ccf..82282e037 100644 --- a/packages/elements-react/src/locales/sv.json +++ b/packages/elements-react/src/locales/sv.json @@ -215,5 +215,29 @@ "settings.totp.info.linked": "Du har för närvarande en autentiseringsapp kopplad.", "settings.totp.info.not-linked": "För att aktivera, skanna QR-koden med din autentiserare och ange koden.", "settings.totp.title": "", - "settings.totp.description": "Lägg till en TOTP-autentiseringsapp till ditt konto för att förbättra säkerheten på ditt konto. Populära autentiseringsappar är LastPass och Google Authenticator." + "settings.totp.description": "Lägg till en TOTP-autentiseringsapp till ditt konto för att förbättra säkerheten på ditt konto. Populära autentiseringsappar är LastPass och Google Authenticator.", + "settings.lookup_secret.description": "Återställningskoder är en säker backup för 2FA, vilket gör att du kan återfå åtkomst till ditt konto om du tappar bort din 2FA-enhet.", + "settings.lookup_secret.title": "Backup-återställningskoder (andra faktorn)", + "settings.navigation.title": "Kontoinställningar", + "settings.oidc.description": "Anslut en social inloggningsleverantör till ditt konto.", + "settings.oidc.info": "Anslutna konton från dessa leverantörer kan användas för att logga in på ditt konto", + "settings.oidc.title": "Anslutna konton", + "settings.passkey.description": "Hantera dina lösenordsinställningar", + "settings.passkey.info": "Hantera dina lösenordsinställningar", + "settings.passkey.title": "Hantera lösenord", + "settings.password.description": "Ändra ditt lösenord", + "settings.password.title": "Ändra lösenord", + "settings.profile.description": "Uppdatera din profilinformation", + "settings.profile.title": "Profilinställningar", + "settings.title-lookup-secret": "Hantera 2FA Backup Recovery-koder", + "settings.title-navigation": "Kontoinställningar", + "settings.title-oidc": "Social logga in", + "settings.title-passkey": "Hantera lösenord", + "settings.title-password": "Ändra lösenord", + "settings.title-profile": "Profilinställningar", + "settings.title-totp": "Hantera 2FA TOTP Authenticator-appen", + "settings.title-webauthn": "Hantera maskinvarutokens", + "settings.webauthn.description": "Hantera inställningarna för din maskinvarutoken", + "settings.webauthn.info": "Hårdvarutokens används för andrafaktorsautentisering eller som förstafaktor med lösenordsnycklar", + "settings.webauthn.title": "Hantera maskinvarutokens" } diff --git a/packages/elements-react/src/theme/default/utils/__tests__/__snapshots__/constructCardHeader.spec.tsx.snap b/packages/elements-react/src/theme/default/utils/__tests__/__snapshots__/constructCardHeader.spec.tsx.snap index 984f29995..803312c88 100644 --- a/packages/elements-react/src/theme/default/utils/__tests__/__snapshots__/constructCardHeader.spec.tsx.snap +++ b/packages/elements-react/src/theme/default/utils/__tests__/__snapshots__/constructCardHeader.spec.tsx.snap @@ -591,196 +591,196 @@ exports[`flowType=registration refresh=true combination=webauthn constructCardHe exports[`flowType=settings refresh=false combination=code constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=default_and_code constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=default_and_oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=default_and_passkeys constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=default_and_password constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=default_and_webauthn constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=defaultGroup constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=idenfier_first_and_oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=identifierFirst constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=identifierFirstPhone constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=passkey constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=password constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=false combination=webauthn constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=code constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=default_and_code constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=default_and_oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=default_and_passkeys constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=default_and_password constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=default_and_webauthn constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=defaultGroup constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=idenfier_first_and_oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=identifierFirst constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=identifierFirstPhone constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=oidc constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=passkey constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=password constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; exports[`flowType=settings refresh=true combination=webauthn constructCardHeaderText 1`] = ` { "description": "Update your account settings", - "title": "Update your account", + "title": "Account Settings", } `; diff --git a/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts b/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts index b81911433..53fb582c6 100644 --- a/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts +++ b/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts @@ -23,13 +23,14 @@ describe("Translations", () => { } }) - test("language keys and templates match", () => { - for (const [_language, translation] of Object.entries(supportedLanguages)) { - expect(Object.keys(translation).sort()).toEqual( - Object.keys(supportedLanguages.en).sort(), - ) - } - }) + for (const [language, translation] of Object.entries(supportedLanguages)) { + test(`language keys and templates match [${language}]`, () => { + expect( + Object.keys(translation).sort(), + `expected locales/${language}.json to contain all supported keys`, + ).toEqual(Object.keys(supportedLanguages.en).sort()) + }) + } // TODO: Re-enable, once we have a proper routine for translations // test("template strings are present in translations", () => { diff --git a/packages/elements-react/tsconfig.json b/packages/elements-react/tsconfig.json index 44c733162..2a2040832 100644 --- a/packages/elements-react/tsconfig.json +++ b/packages/elements-react/tsconfig.json @@ -23,13 +23,14 @@ "@tests/*": ["./src/tests/*"] } }, - "exclude": ["node_modules"], + "exclude": ["node_modules", "dist"], "include": [ "src/**/*.ts", "src/**/*.tsx", "src/global.d.ts", "src/tests/**/*.ts", "src/tests/**/*.tsx", - "tsup.config.ts" + "tsup.config.ts", + "jest.config.ts" ] }