From 7b61c007c98d919f86ecf6e6d0bb80461b0a80eb Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Fri, 19 Jul 2024 16:38:52 +0200 Subject: [PATCH 001/100] chore(wip): add elements v1 packages --- .eslintrc.cjs | 3 +- package-lock.json | 113 ++++++ package.json | 3 +- packages/client-helpers/package.json | 15 + .../src/__tests__/continue-with.spec.ts | 21 ++ .../src/__tests__/fixtures/nodes.ts | 342 ++++++++++++++++++ .../client-helpers/src/__tests__/ui.spec.ts | 9 + packages/client-helpers/src/configuration.ts | 28 ++ packages/client-helpers/src/continueWith.ts | 143 ++++++++ packages/client-helpers/src/error.ts | 160 ++++++++ packages/client-helpers/src/flowTypes.ts | 45 +++ packages/client-helpers/src/index.ts | 34 ++ packages/client-helpers/src/onSubmitLogin.ts | 54 +++ .../client-helpers/src/onSubmitRecovery.ts | 66 ++++ .../src/onSubmitRegistration.ts | 66 ++++ .../client-helpers/src/onSubmitSettings.ts | 67 ++++ .../src/onSubmitVerification.ts | 55 +++ packages/client-helpers/src/ui.ts | 115 ++++++ packages/client-helpers/src/urlHelpers.ts | 16 + packages/client-helpers/src/utils.ts | 142 ++++++++ packages/client-helpers/tsconfig.json | 23 ++ packages/default-theme/package.json | 20 + .../default-theme/src/assets/icons/code.svg | 3 + .../src/assets/icons/passkey.svg | 3 + .../src/assets/icons/password.svg | 3 + .../src/assets/icons/webauthn.svg | 3 + .../src/assets/ory-badge-horizontal.svg | 5 + .../src/assets/ory-badge-vertical.svg | 5 + packages/default-theme/src/code.svg | 3 + .../src/components/card/auth-methods.tsx | 61 ++++ .../src/components/card/badge.tsx | 13 + .../src/components/card/content.tsx | 5 + .../card/current-identifier-button.tsx | 15 + .../src/components/card/footer.tsx | 91 +++++ .../src/components/card/header.tsx | 103 ++++++ .../src/components/card/index.tsx | 22 ++ .../src/components/card/logo.tsx | 17 + .../src/components/form/button.tsx | 85 +++++ .../src/components/form/checkbox.tsx | 92 +++++ .../src/components/form/group-container.tsx | 7 + .../components/form/horizontal-divider.tsx | 3 + .../src/components/form/image.tsx | 11 + .../src/components/form/index.tsx | 44 +++ .../src/components/form/input.tsx | 46 +++ .../src/components/form/label.tsx | 64 ++++ .../src/components/form/link-button.tsx | 27 ++ .../src/components/form/pin-code-input.tsx | 36 ++ .../src/components/form/shadcn/otp-input.tsx | 60 +++ .../src/components/form/social.tsx | 76 ++++ .../src/components/form/spinner.tsx | 50 +++ .../src/components/form/text.tsx | 23 ++ packages/default-theme/src/custom.d.ts | 6 + packages/default-theme/src/icons/code.svg | 3 + packages/default-theme/src/icons/passkey.svg | 3 + packages/default-theme/src/icons/password.svg | 3 + packages/default-theme/src/icons/webauthn.svg | 3 + packages/default-theme/src/index.ts | 60 +++ .../src/provider-logos/apple.svg | 4 + .../src/provider-logos/auth0.svg | 1 + .../src/provider-logos/discord.svg | 4 + .../src/provider-logos/facebook.svg | 11 + .../src/provider-logos/generic.svg | 7 + .../src/provider-logos/github.svg | 1 + .../src/provider-logos/gitlab.svg | 6 + .../src/provider-logos/google.svg | 1 + .../default-theme/src/provider-logos/index.ts | 30 ++ .../src/provider-logos/linkedin.svg | 6 + .../src/provider-logos/microsoft.svg | 1 + .../src/provider-logos/slack.svg | 6 + .../src/provider-logos/spotify.svg | 4 + .../src/provider-logos/yandex.svg | 4 + packages/default-theme/src/utils/cn.ts | 6 + packages/default-theme/tsconfig.json | 5 + packages/headless/package.json | 19 + .../src/components/card/card-two-step.tsx | 265 ++++++++++++++ .../headless/src/components/card/header.tsx | 8 + .../headless/src/components/card/index.tsx | 96 +++++ .../headless/src/components/form/form.tsx | 200 ++++++++++ .../headless/src/components/form/groups.tsx | 32 ++ .../headless/src/components/form/index.ts | 4 + .../headless/src/components/form/messages.tsx | 36 ++ .../form/nodes/__tests__/node.spec.tsx | 139 +++++++ .../src/components/form/nodes/input.tsx | 117 ++++++ .../src/components/form/nodes/node.tsx | 48 +++ .../headless/src/components/form/social.tsx | 55 +++ .../src/components/generic/divider.tsx | 24 ++ .../headless/src/components/generic/index.ts | 1 + packages/headless/src/components/index.ts | 3 + packages/headless/src/context/component.tsx | 73 ++++ .../headless/src/context/flow-context.tsx | 61 ++++ packages/headless/src/context/index.tsx | 4 + .../headless/src/context/intl-context.tsx | 221 +++++++++++ packages/headless/src/context/provider.tsx | 42 +++ packages/headless/src/flows/error.tsx | 17 + packages/headless/src/flows/login.tsx | 30 ++ packages/headless/src/flows/recovery.tsx | 30 ++ packages/headless/src/flows/registration.tsx | 30 ++ packages/headless/src/flows/settings.tsx | 30 ++ packages/headless/src/flows/verification.tsx | 30 ++ .../src/hooks/__tests__/continue-with.spec.ts | 21 ++ packages/headless/src/hooks/continue-with.ts | 98 +++++ packages/headless/src/hooks/utils.ts | 51 +++ packages/headless/src/index.ts | 4 + packages/headless/src/types.ts | 70 ++++ .../headless/src/util/component-helpers.ts | 13 + .../src/util/i18n/__tests__/index.spec.tsx | 38 ++ .../util/i18n/__tests__/test-components.tsx | 9 + .../util/i18n/__tests__/translations.spec.ts | 48 +++ packages/headless/src/util/i18n/index.ts | 104 ++++++ packages/headless/src/util/test-id.ts | 19 + packages/headless/src/util/ui/index.ts | 79 ++++ packages/headless/tsconfig.json | 5 + packages/nextjs/package.json | 12 + 113 files changed, 4875 insertions(+), 2 deletions(-) create mode 100644 packages/client-helpers/package.json create mode 100644 packages/client-helpers/src/__tests__/continue-with.spec.ts create mode 100644 packages/client-helpers/src/__tests__/fixtures/nodes.ts create mode 100644 packages/client-helpers/src/__tests__/ui.spec.ts create mode 100644 packages/client-helpers/src/configuration.ts create mode 100644 packages/client-helpers/src/continueWith.ts create mode 100644 packages/client-helpers/src/error.ts create mode 100644 packages/client-helpers/src/flowTypes.ts create mode 100644 packages/client-helpers/src/index.ts create mode 100644 packages/client-helpers/src/onSubmitLogin.ts create mode 100644 packages/client-helpers/src/onSubmitRecovery.ts create mode 100644 packages/client-helpers/src/onSubmitRegistration.ts create mode 100644 packages/client-helpers/src/onSubmitSettings.ts create mode 100644 packages/client-helpers/src/onSubmitVerification.ts create mode 100644 packages/client-helpers/src/ui.ts create mode 100644 packages/client-helpers/src/urlHelpers.ts create mode 100644 packages/client-helpers/src/utils.ts create mode 100644 packages/client-helpers/tsconfig.json create mode 100644 packages/default-theme/package.json create mode 100644 packages/default-theme/src/assets/icons/code.svg create mode 100644 packages/default-theme/src/assets/icons/passkey.svg create mode 100644 packages/default-theme/src/assets/icons/password.svg create mode 100644 packages/default-theme/src/assets/icons/webauthn.svg create mode 100644 packages/default-theme/src/assets/ory-badge-horizontal.svg create mode 100644 packages/default-theme/src/assets/ory-badge-vertical.svg create mode 100644 packages/default-theme/src/code.svg create mode 100644 packages/default-theme/src/components/card/auth-methods.tsx create mode 100644 packages/default-theme/src/components/card/badge.tsx create mode 100644 packages/default-theme/src/components/card/content.tsx create mode 100644 packages/default-theme/src/components/card/current-identifier-button.tsx create mode 100644 packages/default-theme/src/components/card/footer.tsx create mode 100644 packages/default-theme/src/components/card/header.tsx create mode 100644 packages/default-theme/src/components/card/index.tsx create mode 100644 packages/default-theme/src/components/card/logo.tsx create mode 100644 packages/default-theme/src/components/form/button.tsx create mode 100644 packages/default-theme/src/components/form/checkbox.tsx create mode 100644 packages/default-theme/src/components/form/group-container.tsx create mode 100644 packages/default-theme/src/components/form/horizontal-divider.tsx create mode 100644 packages/default-theme/src/components/form/image.tsx create mode 100644 packages/default-theme/src/components/form/index.tsx create mode 100644 packages/default-theme/src/components/form/input.tsx create mode 100644 packages/default-theme/src/components/form/label.tsx create mode 100644 packages/default-theme/src/components/form/link-button.tsx create mode 100644 packages/default-theme/src/components/form/pin-code-input.tsx create mode 100644 packages/default-theme/src/components/form/shadcn/otp-input.tsx create mode 100644 packages/default-theme/src/components/form/social.tsx create mode 100644 packages/default-theme/src/components/form/spinner.tsx create mode 100644 packages/default-theme/src/components/form/text.tsx create mode 100644 packages/default-theme/src/custom.d.ts create mode 100644 packages/default-theme/src/icons/code.svg create mode 100644 packages/default-theme/src/icons/passkey.svg create mode 100644 packages/default-theme/src/icons/password.svg create mode 100644 packages/default-theme/src/icons/webauthn.svg create mode 100644 packages/default-theme/src/index.ts create mode 100644 packages/default-theme/src/provider-logos/apple.svg create mode 100644 packages/default-theme/src/provider-logos/auth0.svg create mode 100644 packages/default-theme/src/provider-logos/discord.svg create mode 100644 packages/default-theme/src/provider-logos/facebook.svg create mode 100644 packages/default-theme/src/provider-logos/generic.svg create mode 100644 packages/default-theme/src/provider-logos/github.svg create mode 100644 packages/default-theme/src/provider-logos/gitlab.svg create mode 100644 packages/default-theme/src/provider-logos/google.svg create mode 100644 packages/default-theme/src/provider-logos/index.ts create mode 100644 packages/default-theme/src/provider-logos/linkedin.svg create mode 100644 packages/default-theme/src/provider-logos/microsoft.svg create mode 100644 packages/default-theme/src/provider-logos/slack.svg create mode 100644 packages/default-theme/src/provider-logos/spotify.svg create mode 100644 packages/default-theme/src/provider-logos/yandex.svg create mode 100644 packages/default-theme/src/utils/cn.ts create mode 100644 packages/default-theme/tsconfig.json create mode 100644 packages/headless/package.json create mode 100644 packages/headless/src/components/card/card-two-step.tsx create mode 100644 packages/headless/src/components/card/header.tsx create mode 100644 packages/headless/src/components/card/index.tsx create mode 100644 packages/headless/src/components/form/form.tsx create mode 100644 packages/headless/src/components/form/groups.tsx create mode 100644 packages/headless/src/components/form/index.ts create mode 100644 packages/headless/src/components/form/messages.tsx create mode 100644 packages/headless/src/components/form/nodes/__tests__/node.spec.tsx create mode 100644 packages/headless/src/components/form/nodes/input.tsx create mode 100644 packages/headless/src/components/form/nodes/node.tsx create mode 100644 packages/headless/src/components/form/social.tsx create mode 100644 packages/headless/src/components/generic/divider.tsx create mode 100644 packages/headless/src/components/generic/index.ts create mode 100644 packages/headless/src/components/index.ts create mode 100644 packages/headless/src/context/component.tsx create mode 100644 packages/headless/src/context/flow-context.tsx create mode 100644 packages/headless/src/context/index.tsx create mode 100644 packages/headless/src/context/intl-context.tsx create mode 100644 packages/headless/src/context/provider.tsx create mode 100644 packages/headless/src/flows/error.tsx create mode 100644 packages/headless/src/flows/login.tsx create mode 100644 packages/headless/src/flows/recovery.tsx create mode 100644 packages/headless/src/flows/registration.tsx create mode 100644 packages/headless/src/flows/settings.tsx create mode 100644 packages/headless/src/flows/verification.tsx create mode 100644 packages/headless/src/hooks/__tests__/continue-with.spec.ts create mode 100644 packages/headless/src/hooks/continue-with.ts create mode 100644 packages/headless/src/hooks/utils.ts create mode 100644 packages/headless/src/index.ts create mode 100644 packages/headless/src/types.ts create mode 100644 packages/headless/src/util/component-helpers.ts create mode 100644 packages/headless/src/util/i18n/__tests__/index.spec.tsx create mode 100644 packages/headless/src/util/i18n/__tests__/test-components.tsx create mode 100644 packages/headless/src/util/i18n/__tests__/translations.spec.ts create mode 100644 packages/headless/src/util/i18n/index.ts create mode 100644 packages/headless/src/util/test-id.ts create mode 100644 packages/headless/src/util/ui/index.ts create mode 100644 packages/headless/tsconfig.json create mode 100644 packages/nextjs/package.json diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 64a257611..8d1b705be 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -20,7 +20,7 @@ module.exports = { parser: "@typescript-eslint/parser", ignorePatterns: ["src/assets/*.js"], parserOptions: { - project: "./tsconfig.json", + // project: "./tsconfig.json", tsconfigRootDir: __dirname, ecmaVersion: 2021, sourceType: "module", @@ -39,5 +39,6 @@ module.exports = { "tsdoc/syntax": "warn", "formatjs/no-offset": "error", "@typescript-eslint/no-floating-promises": "error", + "no-console": "error", }, } diff --git a/package-lock.json b/package-lock.json index 879fbcd9f..fa666624c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "examples/*" ], "dependencies": { + "@ory/client-fetch": "1.14.0", "lodash": "4.17.21", "next": "13.5.6" }, @@ -7745,6 +7746,20 @@ "axios": "^1.6.1" } }, + "node_modules/@ory/client-fetch": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@ory/client-fetch/-/client-fetch-1.14.0.tgz", + "integrity": "sha512-xpKgDg6k5u8kmQEEbc5nYTXxhz99PIbA2xT8BG8h4/+OHjve1XWNfaPRWXjX1FDMsFUazD7cnc1I6KT0juqgFQ==", + "license": "Apache-2.0" + }, + "node_modules/@ory/client-helpers": { + "resolved": "packages/client-helpers", + "link": true + }, + "node_modules/@ory/default-theme": { + "resolved": "packages/default-theme", + "link": true + }, "node_modules/@ory/elements": { "resolved": "packages/react", "link": true @@ -7761,6 +7776,10 @@ "resolved": "packages/test", "link": true }, + "node_modules/@ory/react-headless": { + "resolved": "packages/headless", + "link": true + }, "node_modules/@parcel/watcher": { "version": "2.0.4", "dev": true, @@ -13533,6 +13552,15 @@ "node": ">=6" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cmd-shim": { "version": "5.0.0", "dev": true, @@ -18068,6 +18096,16 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/input-otp": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.2.4.tgz", + "integrity": "sha512-md6rhmD+zmMnUh5crQNSQxq3keBRYvE3odbr4Qb9g2NWzQv9azi+t1a3X4TBTbh98fsGHgEEJlzbe1q860uGCA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, "node_modules/inquirer": { "version": "8.2.5", "dev": true, @@ -20855,6 +20893,10 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/nextjs": { + "resolved": "packages/nextjs", + "link": true + }, "node_modules/nextjs-spa": { "resolved": "examples/nextjs-spa", "link": true @@ -22847,6 +22889,22 @@ "dev": true, "license": "MIT" }, + "node_modules/react-hook-form": { + "version": "7.52.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.1.tgz", + "integrity": "sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-inspector": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.2.tgz", @@ -24554,6 +24612,16 @@ "url": "https://opencollective.com/unts" } }, + "node_modules/tailwind-merge": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", + "integrity": "sha512-49AwoOQNKdqKPd9CViyH5wJoSKsCDjUlzL8DxuGp3P1FsGY36NJDAa18jLZcaHAUUuTj+JB8IAo8zWgBNvBF7A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tapable": { "version": "2.2.1", "license": "MIT", @@ -26176,6 +26244,47 @@ "node": "^12.20.0 || >=14" } }, + "packages/client": { + "name": "@ory/client-helpers", + "version": "1.0.0", + "extraneous": true, + "license": "ISC", + "peerDependencies": { + "@ory/client-fetch": "1" + } + }, + "packages/client-helpers": { + "name": "@ory/client-helpers", + "version": "1.0.0", + "license": "ISC", + "peerDependencies": { + "@ory/client-fetch": "^1.14.0" + } + }, + "packages/default-theme": { + "name": "@ory/default-theme", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@ory/client-helpers": "1", + "@ory/react-headless": "1", + "clsx": "2.1.1", + "input-otp": "1.2.4", + "tailwind-merge": "2.4.0" + } + }, + "packages/headless": { + "name": "@ory/react-headless", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@ory/client-helpers": "1", + "react-hook-form": "7.52.1" + }, + "peerDependencies": { + "@ory/client-fetch": "1" + } + }, "packages/markup": { "name": "@ory/elements-markup", "version": "0.0.0", @@ -26185,6 +26294,10 @@ "npm": ">=8.11.0" } }, + "packages/nextjs": { + "version": "1.0.0", + "license": "ISC" + }, "packages/preact": { "name": "@ory/elements-preact", "version": "0.0.0", diff --git a/package.json b/package.json index c6be87fde..b94c360e0 100644 --- a/package.json +++ b/package.json @@ -101,6 +101,7 @@ ], "dependencies": { "lodash": "4.17.21", - "next": "13.5.6" + "next": "13.5.6", + "@ory/client-fetch": "1.14.0" } } diff --git a/packages/client-helpers/package.json b/packages/client-helpers/package.json new file mode 100644 index 000000000..bebda703c --- /dev/null +++ b/packages/client-helpers/package.json @@ -0,0 +1,15 @@ +{ + "name": "@ory/client-helpers", + "version": "1.0.0", + "main": "src/index.ts", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "peerDependencies": { + "@ory/client-fetch": "^1.14.0" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "" +} diff --git a/packages/client-helpers/src/__tests__/continue-with.spec.ts b/packages/client-helpers/src/__tests__/continue-with.spec.ts new file mode 100644 index 000000000..a747a55cd --- /dev/null +++ b/packages/client-helpers/src/__tests__/continue-with.spec.ts @@ -0,0 +1,21 @@ +import { pickBestContinueWith } from "../continueWith" +import { ContinueWithRecoveryUi } from "@ory/client-fetch" +import { expect, test } from "@playwright/experimental-ct-react" + +test("pickBestContinueWith", () => { + const expected: ContinueWithRecoveryUi = { + action: "show_recovery_ui", + flow: { + id: "1234", + }, + } + const result = pickBestContinueWith([ + { + action: "set_ory_session_token", + ory_session_token: "token", + }, + expected, + ]) + + expect(result).toEqual(expected) +}) diff --git a/packages/client-helpers/src/__tests__/fixtures/nodes.ts b/packages/client-helpers/src/__tests__/fixtures/nodes.ts new file mode 100644 index 000000000..cc3f6784b --- /dev/null +++ b/packages/client-helpers/src/__tests__/fixtures/nodes.ts @@ -0,0 +1,342 @@ +import { UiNode } from "@ory/client-fetch" + +export const nodes = [ + { + attributes: { + disabled: false, + name: "csrf_token", + required: true, + type: "hidden", + value: "MGJxbTV5b291N3JnbTNkdTV4ZHlpazYwOGtvb3hzejQ=", + }, + group: "default", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.email", + type: "text", + value: "john-browser@doe.com", + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.stringy", + type: "text", + value: "foobar", + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.numby", + type: "number", + value: 2.5, + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.booly", + type: "checkbox", + value: false, + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.should_big_number", + type: "number", + value: 2048, + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "traits.should_long_string", + type: "text", + value: "asdfasdfasdfasdfasfdasdfasdfasdf", + }, + group: "profile", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "method", + type: "submit", + value: "profile", + }, + group: "profile", + messages: [], + meta: { + label: { + id: 1070003, + text: "Save", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "password", + required: true, + type: "password", + }, + group: "password", + messages: [], + meta: { + label: { + id: 1070001, + text: "Password", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "method", + type: "submit", + value: "password", + }, + group: "password", + messages: [], + meta: { + label: { + id: 1070003, + text: "Save", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "csrf_token", + required: true, + type: "hidden", + value: "aWJlY3F1bHp1aXN2YnFvY2NzdHpjNnJ0YnkxNnI2Mzk=", + }, + group: "default", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "webauthn_remove", + type: "submit", + value: "626172626172", + }, + group: "webauthn", + messages: [], + meta: { + label: { + context: { + added_at: "0001-01-01T00:00:00Z", + display_name: "bar", + }, + id: 1050012, + text: 'Remove security key "bar"', + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "webauthn_remove", + type: "submit", + value: "666f6f666f6f", + }, + group: "webauthn", + messages: [], + meta: { + label: { + context: { + added_at: "0001-01-01T00:00:00Z", + display_name: "foo", + }, + id: 1050012, + text: 'Remove security key "foo"', + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "webauthn_register_displayname", + type: "text", + value: "", + }, + group: "webauthn", + messages: [], + meta: { + label: { + id: 1050013, + text: "Name of the security key", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "webauthn_register_trigger", + onclick: + 'window.__oryWebAuthnRegistration({"publicKey":{"challenge":"h7BkjEGXvBnOPDrDsBUiSRB90QamqOtWbprYhcaBwro=","rp":{"name":"Ory Corp","id":"localhost"},"user":{"name":"placeholder","icon":"https://via.placeholder.com/128","displayName":"placeholder","id":"uJTun1EFRNurSuKVCLV9ZA=="},"pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-35},{"type":"public-key","alg":-36},{"type":"public-key","alg":-257},{"type":"public-key","alg":-258},{"type":"public-key","alg":-259},{"type":"public-key","alg":-37},{"type":"public-key","alg":-38},{"type":"public-key","alg":-39},{"type":"public-key","alg":-8}],"authenticatorSelection":{"requireResidentKey":false,"userVerification":"preferred"},"timeout":60000}})', + onload: + "if (\n (window \u0026\u0026 window.__oryWebAuthnLogin \u0026\u0026 window.__oryWebAuthnRegistration) ||\n (!window \u0026\u0026 __oryWebAuthnLogin \u0026\u0026 __oryWebAuthnRegistration)\n) {\n // Already registered these functions, do nothing.\n} else {\n function __oryWebAuthnBufferDecode(value) {\n return Uint8Array.from(atob(value), function (c) {\n return c.charCodeAt(0)\n });\n }\n\n function __oryWebAuthnBufferEncode(value) {\n return btoa(String.fromCharCode.apply(null, new Uint8Array(value)))\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n function __oryWebAuthnLogin(opt, resultQuerySelector = '*[name=\"webauthn_login\"]', triggerQuerySelector = '*[name=\"webauthn_login_trigger\"]') {\n if (!window.PublicKeyCredential) {\n alert('This browser does not support WebAuthn!');\n }\n\n opt.publicKey.challenge = __oryWebAuthnBufferDecode(opt.publicKey.challenge);\n opt.publicKey.allowCredentials = opt.publicKey.allowCredentials.map(function (value) {\n return {\n ...value,\n id: __oryWebAuthnBufferDecode(value.id)\n }\n });\n\n navigator.credentials.get(opt).then(function (credential) {\n document.querySelector(resultQuerySelector).value = JSON.stringify({\n id: credential.id,\n rawId: __oryWebAuthnBufferEncode(credential.rawId),\n type: credential.type,\n response: {\n authenticatorData: __oryWebAuthnBufferEncode(credential.response.authenticatorData),\n clientDataJSON: __oryWebAuthnBufferEncode(credential.response.clientDataJSON),\n signature: __oryWebAuthnBufferEncode(credential.response.signature),\n userHandle: __oryWebAuthnBufferEncode(credential.response.userHandle),\n },\n })\n\n document.querySelector(triggerQuerySelector).closest('form').submit()\n }).catch((err) =\u003e {\n alert(err)\n })\n }\n\n function __oryWebAuthnRegistration(opt, resultQuerySelector = '*[name=\"webauthn_register\"]', triggerQuerySelector = '*[name=\"webauthn_register_trigger\"]') {\n if (!window.PublicKeyCredential) {\n alert('This browser does not support WebAuthn!');\n }\n\n opt.publicKey.user.id = __oryWebAuthnBufferDecode(opt.publicKey.user.id);\n opt.publicKey.challenge = __oryWebAuthnBufferDecode(opt.publicKey.challenge);\n\n if (opt.publicKey.excludeCredentials) {\n opt.publicKey.excludeCredentials = opt.publicKey.excludeCredentials.map(function (value) {\n return {\n ...value,\n id: __oryWebAuthnBufferDecode(value.id)\n }\n })\n }\n\n navigator.credentials.create(opt).then(function (credential) {\n document.querySelector(resultQuerySelector).value = JSON.stringify({\n id: credential.id,\n rawId: __oryWebAuthnBufferEncode(credential.rawId),\n type: credential.type,\n response: {\n attestationObject: __oryWebAuthnBufferEncode(credential.response.attestationObject),\n clientDataJSON: __oryWebAuthnBufferEncode(credential.response.clientDataJSON),\n },\n })\n\n document.querySelector(triggerQuerySelector).closest('form').submit()\n }).catch((err) =\u003e {\n alert(err)\n })\n }\n\n if (window) {\n window.__oryWebAuthnLogin = __oryWebAuthnLogin\n window.__oryWebAuthnRegistration = __oryWebAuthnRegistration\n }\n}\n", + type: "button", + value: "", + }, + group: "webauthn", + messages: [], + meta: { + label: { + id: 1050012, + text: "Add security key", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "webauthn_register", + type: "hidden", + value: "", + }, + group: "webauthn", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + disabled: false, + name: "csrf_token", + required: true, + type: "hidden", + value: "aXZ1M3E2cmdkOG5namVsMzNob2kwcmlnMGo0Yjc5MGw=", + }, + group: "default", + messages: [], + meta: {}, + type: "input", + }, + { + attributes: { + height: 256, + id: "totp_qr", + src: "data:image/png;base64,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", + width: 256, + }, + group: "totp", + messages: [], + meta: { + label: { + id: 1050005, + text: "Authenticator app QR code", + type: "info", + }, + }, + type: "img", + }, + { + attributes: { + id: "totp_secret_key", + text: { + context: { + secret: "Z5YLZXOY6TQPJEUHYX6O4JVAXFVZPQSD", + }, + id: 1050006, + text: "Z5YLZXOY6TQPJEUHYX6O4JVAXFVZPQSD", + type: "info", + }, + }, + group: "totp", + messages: [], + meta: { + label: { + id: 1050006, + text: "This is your authenticator app secret. Use it if you can not scan the QR code.", + type: "info", + }, + }, + type: "text", + }, + { + attributes: { + disabled: false, + name: "totp_code", + required: true, + type: "text", + }, + group: "totp", + messages: [], + meta: { + label: { + id: 1070006, + text: "Verify code", + type: "info", + }, + }, + type: "input", + }, + { + attributes: { + disabled: false, + name: "method", + type: "submit", + value: "totp", + }, + group: "totp", + messages: [], + meta: { + label: { + id: 1070003, + text: "Save", + type: "info", + }, + }, + type: "input", + }, +] as unknown as UiNode[] diff --git a/packages/client-helpers/src/__tests__/ui.spec.ts b/packages/client-helpers/src/__tests__/ui.spec.ts new file mode 100644 index 000000000..893a4660d --- /dev/null +++ b/packages/client-helpers/src/__tests__/ui.spec.ts @@ -0,0 +1,9 @@ +import { expect, test } from "@playwright/experimental-ct-react" +import { nodes } from "./fixtures/nodes" +import { getNodeLabel } from "../ui" + +test("getNodeLabel", () => { + expect(JSON.stringify(nodes.map(getNodeLabel), null, 2)).toMatchSnapshot( + "getNodeLabel.json", + ) +}) diff --git a/packages/client-helpers/src/configuration.ts b/packages/client-helpers/src/configuration.ts new file mode 100644 index 000000000..033b84aa7 --- /dev/null +++ b/packages/client-helpers/src/configuration.ts @@ -0,0 +1,28 @@ +import { ConfigurationParameters } from "@ory/client-fetch" + +export type OryClientConfiguration = { + /** + * The name of the application the user is logging in to. + */ + name: string + + /** + * An optional logo URL to display in the UI instead of the name. + */ + logoUrl?: string + + stylesheet?: string + + favicon?: string + + sdk: { + url: string + options?: Partial + } + + project: { + registrationEnabled: boolean + verificationEnabled: boolean + recoveryEnabled: boolean + } +} diff --git a/packages/client-helpers/src/continueWith.ts b/packages/client-helpers/src/continueWith.ts new file mode 100644 index 000000000..5ef7c0f29 --- /dev/null +++ b/packages/client-helpers/src/continueWith.ts @@ -0,0 +1,143 @@ +import { + ContinueWith, + ContinueWithRecoveryUi, + ContinueWithSetOrySessionToken, + ContinueWithSettingsUi, + ContinueWithVerificationUi, + ContinueWithRedirectBrowserTo, +} from "@ory/client-fetch" + +export type OnRedirectHandler = (url: string, external: boolean) => void + +// The order in which the actions are defined here is the order in which they are expected to be executed. +const continueWithPriority = [ + "show_settings_ui", + "show_recovery_ui", + "show_verification_ui", + "redirect_browser_to", + "set_ory_session_token", +] + +export async function handleContinueWith( + continueWith: ContinueWith[] | undefined, + { onRedirect }: { onRedirect: OnRedirectHandler }, +): Promise { + if (!continueWith || continueWith.length === 0) { + return false + } + + const action = pickBestContinueWith(continueWith) + if (!action) { + return false + } + + const redirectFlow = (id: string, flow: string, url?: string) => { + if (url) { + onRedirect(url, true) + return true + } + + onRedirect("/" + flow + "?flow=" + id, false) + return true + } + + if (isSetOrySessionToken(action)) { + throw new Error("Ory Elements does not support API flows yet.") + } else if (isRedirectBrowserTo(action) && action.redirect_browser_to) { + console.log("Redirecting to", action.redirect_browser_to) + onRedirect(action.redirect_browser_to, true) + return true + } else if (isShowVerificationUi(action)) { + return redirectFlow(action.flow.id, "verification", action.flow.url) + } else if (isShowRecoveryUi(action)) { + return redirectFlow(action.flow.id, "recovery", action.flow.url) + } else if (isShowSettingsUi(action)) { + // TODO: re-add url + return redirectFlow(action.flow.id, "settings") + } else { + throw new Error("Unknown action: " + action) + } +} + +/** + * Picks the best continue with action from the list of continue with actions. + * + * @param continueWith + */ +export function pickBestContinueWith(continueWith: ContinueWith[]) { + if (!continueWith || continueWith.length === 0) { + return + } + + const sorted = continueWith.sort( + (a, b) => + continueWithPriority.indexOf(a.action) - + continueWithPriority.indexOf(b.action), + ) + return sorted[0] +} + +/** + * Checks if the continue with action is to set the Ory Session Token. + * + * @param continueWith + */ +export function isSetOrySessionToken( + continueWith: ContinueWith, +): continueWith is ContinueWithSetOrySessionToken & { + action: "set_ory_session_token" +} { + return continueWith.action === "set_ory_session_token" +} + +/** + * Checks if the continue with action is to redirect the browser to a different page. + * + * @param continueWith + */ +export function isRedirectBrowserTo( + continueWith: ContinueWith, +): continueWith is ContinueWithRedirectBrowserTo & { + action: "redirect_browser_to" +} { + return continueWith.action === "redirect_browser_to" +} + +/** + * Checks if the continue with action is to show the recovery UI. + * + * @param continueWith + */ +export function isShowRecoveryUi( + continueWith: ContinueWith, +): continueWith is ContinueWithRecoveryUi & { + action: "show_recovery_ui" +} { + return continueWith.action === "show_recovery_ui" +} + +/** + * Checks if the continue with action is to show the settings UI. + * + * @param continueWith + */ +export function isShowSettingsUi( + continueWith: ContinueWith, +): continueWith is ContinueWithSettingsUi & { + action: "show_settings_ui" +} { + return continueWith.action === "show_settings_ui" +} + +/** + * Checks if the continue with action is to show the verification UI. + * + * @param continueWith + */ +export function isShowVerificationUi( + continueWith: ContinueWith, +): continueWith is ContinueWithVerificationUi & { + action: "show_verification_ui" +} { + return continueWith.action === "show_verification_ui" +} diff --git a/packages/client-helpers/src/error.ts b/packages/client-helpers/src/error.ts new file mode 100644 index 000000000..7f2f6305a --- /dev/null +++ b/packages/client-helpers/src/error.ts @@ -0,0 +1,160 @@ +import { + ErrorBrowserLocationChangeRequired, + ErrorFlowReplaced, + GenericError, + NeedsPrivilegedSessionError, + ResponseError, + SelfServiceFlowExpiredError, +} from "@ory/client-fetch" + +/** + * Checks if the response is a NeedsPrivilegedSessionError. This error is returned when the self-service flow requires + * the user to re-authenticate in order to perform an action that requires elevated privileges. + * + * @param response + */ +export function isNeedsPrivilegedSessionError( + response: any, +): response is NeedsPrivilegedSessionError { + return response.error.id === "session_refresh_required" +} + +/** + * Checks if the response is a SelfServiceFlowExpiredError. This error is returned when the self-service flow is expired. + * + * @param response + */ +export function isSelfServiceFlowExpiredError( + response: any, +): response is SelfServiceFlowExpiredError { + return response.error.id === "self_service_flow_expired" +} + +/** + * Checks if the response is a GenericError due to the self-service flow being disabled (for example disabled registration). + * + * @param response + */ +export function isSelfServiceFlowDisabled( + response: any, +): response is GenericError { + return response.error.id === "self_service_flow_disabled" +} + +/** + * Checks if the response is a ErrorBrowserLocationChangeRequired. + * @param response + */ +export function isBrowserLocationChangeRequired( + response: any, +): response is ErrorBrowserLocationChangeRequired { + return response.error.id === "browser_location_change_required" +} + +/** + * Checks if the response is a ErrorFlowReplaced. + * @param response + */ +export function isSelfServiceFlowReplaced( + response: any, +): response is ErrorFlowReplaced { + return response.error.id === "self_service_flow_replaced" +} + +/** + * Checks if the response is a GenericError due to the session already being available. + * @param response + */ +export function isSessionAlreadyAvailable( + response: any, +): response is GenericError { + return response.error.id === "session_already_available" +} + +/** + * Checks if the response is a GenericError due to the session being inactive. + * + * @param response + */ +export function isAddressNotVerified(response: any): response is GenericError { + return response.error.id === "session_verified_address_required" +} + +/** + * Checks if the response is a GenericError due to the session already having fulfilled the AAL requirement. + * + * @param response + */ +export function isAalAlreadyFulfilled(response: any): response is GenericError { + return response.error.id === "session_aal_already_fulfilled" +} + +/** + * Checks if the response is a GenericError due to the session requiring a higher AAL. + * + * @param response + */ +export function isSessionAal1Required(response: any): response is GenericError { + return response.error.id === "session_aal1_required" +} + +/** + * Checks if the response is a GenericError due to the session requiring a higher AAL. + * + * @param response + */ +export function isSessionAal2Required(response: any): response is GenericError { + return response.error.id === "session_aal2_required" +} + +/** + * Checks if the response is a GenericError due to the session being inactive. + * + * @param response + */ +export function isNoActiveSession(response: any): response is GenericError { + return response.error.id === "session_inactive" +} +/** + * Checks if the response is a GenericError due to a CSRF violation. + * + * @param response + */ +export function isCsrfError(response: any): response is GenericError { + return response.error.id === "security_csrf_violation" +} + +/** + * Checks if the response is a GenericError due to the redirect URL being forbidden. + * + * @param response + */ +export function isRedirectUrlNotAllowed( + response: any, +): response is GenericError { + return response.error.id === "self_service_flow_return_to_forbidden" +} + +/** + * Checks if the response is a GenericError due to two sessions being active. + * + * @param response + */ +export function isSecurityIdentityMismatch( + response: any, +): response is GenericError { + return response.error.id === "security_identity_mismatch" +} + +export const isResponseError = (err: unknown): err is ResponseError => { + if (err instanceof ResponseError) { + return true + } + + return ( + typeof err === "object" && + !!err && + "name" in err && + err.name === "ResponseError" + ) +} diff --git a/packages/client-helpers/src/flowTypes.ts b/packages/client-helpers/src/flowTypes.ts new file mode 100644 index 000000000..978ebe394 --- /dev/null +++ b/packages/client-helpers/src/flowTypes.ts @@ -0,0 +1,45 @@ +import { + FlowError, + LoginFlow, + RecoveryFlow, + RegistrationFlow, + SettingsFlow, + VerificationFlow, +} from "@ory/client-fetch" +import { OryClientConfiguration } from "./configuration" + +export enum FlowType { + Login = "login", + Registration = "registration", + Recovery = "recovery", + Verification = "verification", + Settings = "settings", + Error = "error", +} + +type BaseFlow = { + flowType: TFlowType + flow: TFlow + config: OryClientConfiguration +} + +export type LoginFlowContainer = BaseFlow +export type RegistrationFlowContainer = BaseFlow< + FlowType.Registration, + RegistrationFlow +> +export type RecoveryFlowContainer = BaseFlow +export type VerificationFlowContainer = BaseFlow< + FlowType.Verification, + VerificationFlow +> +export type SettingsFlowContainer = BaseFlow +export type ErrorFlowContainer = BaseFlow + +export type FlowContainer = + | LoginFlowContainer + | RegistrationFlowContainer + | RecoveryFlowContainer + | VerificationFlowContainer + | SettingsFlowContainer +// TODO: Add ErrorFlowContainer diff --git a/packages/client-helpers/src/index.ts b/packages/client-helpers/src/index.ts new file mode 100644 index 000000000..84824f40e --- /dev/null +++ b/packages/client-helpers/src/index.ts @@ -0,0 +1,34 @@ +import { + Configuration, + ConfigurationParameters, + FrontendApi, +} from "@ory/client-fetch" + +export function frontendClient( + sdkUrl: string, + opts: Partial = {}, +) { + const config = new Configuration({ + ...opts, + basePath: sdkUrl, + headers: { + Accept: "application/json", + ...opts.headers, + }, + }) + return new FrontendApi(config) +} + +export * from "./error" +export * from "./onSubmitLogin" +export * from "./onSubmitSettings" +export * from "./urlHelpers" +export * from "./configuration" +export * from "./flowTypes" +export * from "./onSubmitRecovery" +export * from "./onSubmitVerification" +export * from "./utils" +export * from "./continueWith" +export * from "./index" +export * from "./onSubmitRegistration" +export * from "./ui" diff --git a/packages/client-helpers/src/onSubmitLogin.ts b/packages/client-helpers/src/onSubmitLogin.ts new file mode 100644 index 000000000..3b321729a --- /dev/null +++ b/packages/client-helpers/src/onSubmitLogin.ts @@ -0,0 +1,54 @@ +import { FlowContainer, FlowType } from "./flowTypes" +import { frontendClient } from "./index" +import { loginUrl } from "./urlHelpers" +import { handleFlowError, OnSubmitHandlerProps } from "./utils" +import { LoginFlow, UpdateLoginFlowBody } from "@ory/client-fetch" + +/** + * Use this method to submit a login flow. This method is used in the `onSubmit` handler of the login form. + * + * @param config The configuration object. + * @param flow The flow object. + * @param setFlowContainer This method is used to update the flow container when a validation error occurs, for example. + * @param body The form values to submit. + * @param onRedirect This method is used to redirect the user to a different page. + */ +export async function onSubmitLogin( + { config, flow }: FlowContainer, + { + setFlowContainer, + body, + onRedirect, + }: OnSubmitHandlerProps, +) { + if (!config.sdk.url) { + throw new Error( + `Please supply your Ory Network SDK url to the Ory Elements configuration.`, + ) + } + + await frontendClient(config.sdk.url, config.sdk.options ?? {}) + .updateLoginFlowRaw({ + flow: flow.id, + updateLoginFlowBody: body, + }) + .then(async (res) => { + // Workaround + window.location.href = + flow.return_to || config.sdk.url + "/self-service/login/browser" + }) + .catch( + handleFlowError({ + onRestartFlow: () => { + onRedirect(loginUrl(config), true) + }, + onValidationError: (body: LoginFlow) => { + setFlowContainer({ + flow: body, + flowType: FlowType.Login, + }) + }, + onRedirect, + }), + ) +} diff --git a/packages/client-helpers/src/onSubmitRecovery.ts b/packages/client-helpers/src/onSubmitRecovery.ts new file mode 100644 index 000000000..ef0955144 --- /dev/null +++ b/packages/client-helpers/src/onSubmitRecovery.ts @@ -0,0 +1,66 @@ +import { frontendClient } from "./index" +import { handleFlowError, OnSubmitHandlerProps } from "./utils" +import { RecoveryFlow, UpdateRecoveryFlowBody } from "@ory/client-fetch" +import { handleContinueWith } from "./continueWith" +import { recoveryUrl } from "./urlHelpers" +import { FlowContainer, FlowType } from "./flowTypes" + +/** + * Use this method to submit a recovery flow. This method is used in the `onSubmit` handler of the recovery form. + * + * @param config The configuration object. + * @param flow The flow object. + * @param setFlowContainer This method is used to update the flow container when a validation error occurs, for example. + * @param body The form values to submit. + * @param onRedirect This method is used to redirect the user to a different page. + */ +export async function onSubmitRecovery( + { config, flow }: FlowContainer, + { + setFlowContainer, + body, + onRedirect, + }: OnSubmitHandlerProps, +) { + if (!config.sdk.url) { + throw new Error( + `Please supply your Ory Network SDK url to the Ory Elements configuration.`, + ) + } + + await frontendClient(config.sdk.url, config.sdk.options ?? {}) + .updateRecoveryFlowRaw({ + flow: flow.id, + updateRecoveryFlowBody: body, + }) + .then(async (res) => { + const flow = await res.value() + + const didContinueWith = await handleContinueWith(flow.continue_with, { + onRedirect, + }) + + if (didContinueWith) { + return + } + + setFlowContainer({ + flow, + flowType: FlowType.Recovery, + }) + }) + .catch( + handleFlowError({ + onRestartFlow: () => { + onRedirect(recoveryUrl(config), true) + }, + onValidationError: (body: RecoveryFlow) => { + setFlowContainer({ + flow: body, + flowType: FlowType.Recovery, + }) + }, + onRedirect, + }), + ) +} diff --git a/packages/client-helpers/src/onSubmitRegistration.ts b/packages/client-helpers/src/onSubmitRegistration.ts new file mode 100644 index 000000000..daf73ed80 --- /dev/null +++ b/packages/client-helpers/src/onSubmitRegistration.ts @@ -0,0 +1,66 @@ +import { handleContinueWith } from "./continueWith" +import { FlowContainer, FlowType } from "./flowTypes" +import { frontendClient } from "./index" +import { registrationUrl } from "./urlHelpers" +import { handleFlowError, OnSubmitHandlerProps } from "./utils" +import { RegistrationFlow, UpdateRegistrationFlowBody } from "@ory/client-fetch" + +/** + * Use this method to submit a registration flow. This method is used in the `onSubmit` handler of the registration form. + * + * @param config The configuration object. + * @param flow The flow object. + * @param setFlowContainer This method is used to update the flow container when a validation error occurs, for example. + * @param body The form values to submit. + * @param onRedirect This method is used to redirect the user to a different page. + */ +export async function onSubmitRegistration( + { config, flow }: FlowContainer, + { + setFlowContainer, + body, + onRedirect, + }: OnSubmitHandlerProps, +) { + if (!config.sdk.url) { + throw new Error( + `Please supply your Ory Network SDK url to the Ory Elements configuration.`, + ) + } + + const client = frontendClient(config.sdk.url, config.sdk.options ?? {}) + await client + .updateRegistrationFlowRaw({ + flow: flow.id, + updateRegistrationFlowBody: body, + }) + .then(async (res) => { + const body = await res.value() + + const didContinueWith = await handleContinueWith(body.continue_with, { + onRedirect, + }) + + if (didContinueWith) { + return + } + + // We did not receive a valid continue_with, but the state flow is still a success. In this case we re-initialize + // the registration flow which will redirect the user to the default url. + onRedirect(registrationUrl(config), true) + }) + .catch( + handleFlowError({ + onRestartFlow: () => { + onRedirect(registrationUrl(config), true) + }, + onValidationError: (body: RegistrationFlow) => { + setFlowContainer({ + flow: body, + flowType: FlowType.Registration, + }) + }, + onRedirect, + }), + ) +} diff --git a/packages/client-helpers/src/onSubmitSettings.ts b/packages/client-helpers/src/onSubmitSettings.ts new file mode 100644 index 000000000..41241d18d --- /dev/null +++ b/packages/client-helpers/src/onSubmitSettings.ts @@ -0,0 +1,67 @@ +import { handleContinueWith } from "./continueWith" +import { FlowContainer, FlowType } from "./flowTypes" +import { frontendClient } from "./index" +import { settingsUrl } from "./urlHelpers" +import { handleFlowError, OnSubmitHandlerProps } from "./utils" + +import { SettingsFlow, UpdateSettingsFlowBody } from "@ory/client-fetch" + +/** + * Use this method to submit a settings flow. This method is used in the `onSubmit` handler of the settings form. + * + * @param config The configuration object. + * @param flow The flow object. + * @param setFlowContainer This method is used to update the flow container when a validation error occurs, for example. + * @param body The form values to submit. + * @param onRedirect This method is used to redirect the user to a different page. + */ +export async function onSubmitSettings( + { config, flow }: FlowContainer, + { + setFlowContainer, + body, + onRedirect, + }: OnSubmitHandlerProps, +) { + if (!config.sdk.url) { + throw new Error( + `Please supply your Ory Network SDK url to the Ory Elements configuration.`, + ) + } + + const client = frontendClient(config.sdk.url, config.sdk.options ?? {}) + await client + .updateSettingsFlowRaw({ + flow: flow.id, + updateSettingsFlowBody: body, + }) + .then(async (res) => { + const body = await res.value() + + const didContinueWith = await handleContinueWith(body.continue_with, { + onRedirect, + }) + + if (didContinueWith) { + return + } + + // We did not receive a valid continue_with, but the state flow is still a success. In this case we re-initialize + // the settings flow which will redirect the user to the default url. + onRedirect(settingsUrl(config), true) + }) + .catch( + handleFlowError({ + onRestartFlow: () => { + onRedirect(settingsUrl(config), true) + }, + onValidationError: (body: SettingsFlow) => { + setFlowContainer({ + flow: body, + flowType: FlowType.Settings, + }) + }, + onRedirect, + }), + ) +} diff --git a/packages/client-helpers/src/onSubmitVerification.ts b/packages/client-helpers/src/onSubmitVerification.ts new file mode 100644 index 000000000..739bb1564 --- /dev/null +++ b/packages/client-helpers/src/onSubmitVerification.ts @@ -0,0 +1,55 @@ +import { frontendClient } from "./index" +import { handleFlowError, OnSubmitHandlerProps } from "./utils" +import { UpdateVerificationFlowBody, VerificationFlow } from "@ory/client-fetch" +import { verificationUrl } from "./urlHelpers" +import { FlowContainer, FlowType } from "./flowTypes" + +/** + * Use this method to submit a verification flow. This method is used in the `onSubmit` handler of the verification form. + * + * @param config The configuration object. + * @param flow The flow object. + * @param setFlowContainer This method is used to update the flow container when a validation error occurs, for example. + * @param body The form values to submit. + * @param onRedirect This method is used to redirect the user to a different page. + */ +export async function onSubmitVerification( + { config, flow }: FlowContainer, + { + setFlowContainer, + body, + onRedirect, + }: OnSubmitHandlerProps, +) { + if (!config.sdk.url) { + throw new Error( + `Please supply your Ory Network SDK URL to the Ory Elements configuration.`, + ) + } + + await frontendClient(config.sdk.url, config.sdk.options ?? {}) + .updateVerificationFlowRaw({ + flow: flow.id, + updateVerificationFlowBody: body, + }) + .then(async (res) => + setFlowContainer({ + flow: await res.value(), + flowType: FlowType.Verification, + }), + ) + .catch( + handleFlowError({ + onRestartFlow: () => { + onRedirect(verificationUrl(config), true) + }, + onValidationError: (body: VerificationFlow) => { + setFlowContainer({ + flow: body, + flowType: FlowType.Verification, + }) + }, + onRedirect, + }), + ) +} diff --git a/packages/client-helpers/src/ui.ts b/packages/client-helpers/src/ui.ts new file mode 100644 index 000000000..e6b9275e0 --- /dev/null +++ b/packages/client-helpers/src/ui.ts @@ -0,0 +1,115 @@ +import { + UiNode, + UiNodeAnchorAttributes, + UiNodeImageAttributes, + UiNodeInputAttributes, + UiNodeScriptAttributes, + UiNodeTextAttributes, + UiText, +} from "@ory/client-fetch" + +/** + * Returns the node's label. + * + * @param node + * @return label + */ +export const getNodeLabel = (node: UiNode): UiText | undefined => { + const attributes = node.attributes + if (isUiNodeAnchorAttributes(attributes)) { + return attributes.title + } + + if (isUiNodeImageAttributes(attributes)) { + return node.meta.label + } + + if (isUiNodeInputAttributes(attributes)) { + if (attributes.label) { + return attributes.label + } + } + + return node.meta.label +} + +type ObjWithNodeType = { + node_type: string +} + +/** + * A TypeScript type guard for nodes of the type + * + * @param attrs + */ +export function isUiNodeAnchorAttributes( + attrs: ObjWithNodeType, +): attrs is UiNodeAnchorAttributes { + return attrs.node_type === "a" +} + +/** + * A TypeScript type guard for nodes of the type + * + * @param attrs + */ +export function isUiNodeImageAttributes( + attrs: ObjWithNodeType, +): attrs is UiNodeImageAttributes { + return attrs.node_type === "img" +} + +/** + * A TypeScript type guard for nodes of the type + * + * @param attrs + */ +export function isUiNodeInputAttributes( + attrs: ObjWithNodeType, +): attrs is UiNodeInputAttributes { + return attrs.node_type === "input" +} + +/** + * A TypeScript type guard for nodes of the type {text} + * + * @param attrs + */ +export function isUiNodeTextAttributes( + attrs: ObjWithNodeType, +): attrs is UiNodeTextAttributes { + return attrs.node_type === "text" +} + +/** + * A TypeScript type guard for nodes of the type + + diff --git a/packages/elements-react/playwright/index.tsx b/packages/elements-react/playwright/index.tsx new file mode 100644 index 000000000..5b7f72cd3 --- /dev/null +++ b/packages/elements-react/playwright/index.tsx @@ -0,0 +1,14 @@ +// Import styles, initialize component theme here. +// import '../src/common.css'; + +// Import styles, initialize component theme here. +import { beforeMount } from "@playwright/experimental-ct-react/hooks" +import { OryComponentProvider } from "../src/context" +import { OryDefaultComponents } from "../src/theme/default" +import React from "react" + +beforeMount(async ({ App }) => ( + + + +)) diff --git a/packages/elements-react/project.json b/packages/elements-react/project.json index a9ec3e190..32c495773 100644 --- a/packages/elements-react/project.json +++ b/packages/elements-react/project.json @@ -1,9 +1,9 @@ { "targets": { "test": { - "executor": "@nx/jest:jest", + "command": "playwright test -c playwright-ct.config.ts", "options": { - "jestConfig": "packages/elements-react/jest.config.js" + "cwd": "packages/elements-react" } }, "lint": { @@ -14,7 +14,7 @@ }, "build": { "command": "tsup", - "dependsOn": ["lint"], + "dependsOn": ["lint", "test"], "options": { "cwd": "packages/elements-react" } diff --git a/packages/elements-react/src/util/i18n/__tests__/test-components.tsx b/packages/elements-react/src/util/i18n/__tests__/test-components.tsx index a28cecf15..74f3828dd 100644 --- a/packages/elements-react/src/util/i18n/__tests__/test-components.tsx +++ b/packages/elements-react/src/util/i18n/__tests__/test-components.tsx @@ -1,4 +1,4 @@ -import { formatMessage } from ".." +import { formatMessage } from "../index" import { UiText } from "@ory/client-fetch" import { useIntl } from "react-intl" 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 6387af3b2..edfd5e209 100644 --- a/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts +++ b/packages/elements-react/src/util/i18n/__tests__/translations.spec.ts @@ -11,7 +11,8 @@ type TemplateStrings = { const test = base.extend<{ templates: Partial }>({ - templates: async (_, use) => { + // eslint-disable-next-line no-empty-pattern -- playwright needs this to be an empty object + templates: async ({}, use) => { const en = supportedLanguages.en const templates: Partial = {} for (const [key, value] of Object.entries(en)) { diff --git a/packages/elements-react/tsconfig.test.json b/packages/elements-react/tsconfig.test.json new file mode 100644 index 000000000..4958d30ba --- /dev/null +++ b/packages/elements-react/tsconfig.test.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "include": [ + "**/*.spec.ts", + "**/*.spec.tsx", + "playwright/", + "playwright-ct.config.ts" + ] +} From f8b95220465c76902c1585020d8d4e4859f044e6 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 12:15:37 +0200 Subject: [PATCH 017/100] chore: add ci --- .github/workflows/{playwright.yml => ci.yml} | 20 ++++++------------ .../Recovery-Page-recovery-success-1.png | Bin 0 -> 32291 bytes .../Recovery-Page-recovery-success-2.png | Bin 0 -> 57276 bytes ...rification-Page-verification-success-1.png | Bin 0 -> 31753 bytes ...rification-Page-verification-success-2.png | Bin 0 -> 37597 bytes ...Page-recovery-success-1-chromium-linux.png | Bin 27380 -> 0 bytes ...-Page-recovery-success-1-firefox-linux.png | Bin 50690 -> 0 bytes ...y-Page-recovery-success-1-webkit-linux.png | Bin 24851 -> 0 bytes ...Page-recovery-success-2-chromium-linux.png | Bin 42244 -> 0 bytes ...-Page-recovery-success-2-firefox-linux.png | Bin 71559 -> 0 bytes ...y-Page-recovery-success-2-webkit-linux.png | Bin 38773 -> 0 bytes ...-verification-success-1-chromium-linux.png | Bin 26794 -> 0 bytes ...e-verification-success-1-firefox-linux.png | Bin 50216 -> 0 bytes ...ge-verification-success-1-webkit-linux.png | Bin 24363 -> 0 bytes ...-verification-success-2-chromium-linux.png | Bin 31289 -> 0 bytes ...e-verification-success-2-firefox-linux.png | Bin 55632 -> 0 bytes ...ge-verification-success-2-webkit-linux.png | Bin 28812 -> 0 bytes examples/nextjs-spa/playwright.config.ts | 5 ++++- .../Recovery-Page-recovery-success-1.png | Bin 0 -> 17072 bytes .../Recovery-Page-recovery-success-2.png | Bin 0 -> 43454 bytes ...rification-Page-verification-success-1.png | Bin 0 -> 16653 bytes ...rification-Page-verification-success-2.png | Bin 0 -> 22669 bytes ...Page-recovery-success-1-chromium-linux.png | Bin 13714 -> 0 bytes ...-Page-recovery-success-1-firefox-linux.png | Bin 31592 -> 0 bytes ...y-Page-recovery-success-1-webkit-linux.png | Bin 12334 -> 0 bytes ...Page-recovery-success-2-chromium-linux.png | Bin 28213 -> 0 bytes ...-Page-recovery-success-2-firefox-linux.png | Bin 54348 -> 0 bytes ...y-Page-recovery-success-2-webkit-linux.png | Bin 26838 -> 0 bytes ...-verification-success-1-chromium-linux.png | Bin 13509 -> 0 bytes ...e-verification-success-1-firefox-linux.png | Bin 31489 -> 0 bytes ...ge-verification-success-1-webkit-linux.png | Bin 12112 -> 0 bytes ...-verification-success-2-chromium-linux.png | Bin 18388 -> 0 bytes ...e-verification-success-2-firefox-linux.png | Bin 37776 -> 0 bytes ...ge-verification-success-2-webkit-linux.png | Bin 16764 -> 0 bytes examples/preact-spa/playwright.config.ts | 5 ++++- ...age-recovery-success-1-chromium-darwin.png | Bin 0 -> 17020 bytes ...Page-recovery-success-1-firefox-darwin.png | Bin 0 -> 33113 bytes ...-Page-recovery-success-1-webkit-darwin.png | Bin 0 -> 29483 bytes ...age-recovery-success-2-chromium-darwin.png | Bin 0 -> 43487 bytes ...Page-recovery-success-2-firefox-darwin.png | Bin 0 -> 57054 bytes ...-Page-recovery-success-2-webkit-darwin.png | Bin 0 -> 50918 bytes ...verification-success-1-chromium-darwin.png | Bin 0 -> 16576 bytes ...-verification-success-1-firefox-darwin.png | Bin 0 -> 32733 bytes ...e-verification-success-1-webkit-darwin.png | Bin 0 -> 29310 bytes ...verification-success-2-chromium-darwin.png | Bin 0 -> 22553 bytes ...-verification-success-2-firefox-darwin.png | Bin 0 -> 38998 bytes ...e-verification-success-2-webkit-darwin.png | Bin 0 -> 35288 bytes nx.json | 2 +- packages/nextjs/package.json | 12 ----------- 49 files changed, 16 insertions(+), 28 deletions(-) rename .github/workflows/{playwright.yml => ci.yml} (53%) create mode 100644 examples/nextjs-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png create mode 100644 examples/nextjs-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-2.png create mode 100644 examples/nextjs-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-1.png create mode 100644 examples/nextjs-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-linux.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-chromium-linux.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png delete mode 100644 examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png delete mode 100644 examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-linux.png create mode 100644 examples/preact-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png create mode 100644 examples/preact-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-2.png create mode 100644 examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-1.png create mode 100644 examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-linux.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-chromium-linux.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png delete mode 100644 examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png delete mode 100644 examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-linux.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-darwin.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-darwin.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-darwin.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-chromium-darwin.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-darwin.png create mode 100644 examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-darwin.png create mode 100644 examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-darwin.png delete mode 100644 packages/nextjs/package.json diff --git a/.github/workflows/playwright.yml b/.github/workflows/ci.yml similarity index 53% rename from .github/workflows/playwright.yml rename to .github/workflows/ci.yml index 56aba9dae..148e2b329 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,12 @@ name: Playwright Component Tests on: push: - branches: [main, master] + branches: [main] pull_request: - branches: [main, master] + branches: [main] jobs: - test: - timeout-minutes: 60 + test-build: + timeout-minutes: 20 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -14,17 +14,11 @@ jobs: fetch-depth: 0 - uses: actions/setup-node@v3 with: - node-version: "18" + node-version: "20" - name: Install dependencies run: npm ci - - name: Lerna initialize - run: npm run initialize - - name: Lerna build - run: npm run build:clean - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - name: Run Playwright tests - run: npm run test + - uses: nrwl/nx-set-shas + - run: npx nx affected -t lint test build - uses: actions/upload-artifact@v2 if: always() with: diff --git a/examples/nextjs-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png b/examples/nextjs-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png new file mode 100644 index 0000000000000000000000000000000000000000..baaff9634d8e3f191146671c972f0577522192e4 GIT binary patch literal 32291 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 Te8|ZnQz6aN;=BCq2gCjg6-%O| literal 0 HcmV?d00001 diff --git a/examples/nextjs-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png b/examples/nextjs-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c27c7de7713bf755c01c4dfd58ef4befd6c8e239 GIT binary patch literal 37597 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

%B zdm#7G+Mi~dxL$6Y)^F3EfaII7Yey8ih^4zDkyCr>V%(#&w6xlLda9UF+U^A~+hDJp0zPL-=%cc- zvKlx-O-jr6YSW03eZp5dod}fNv5j6g->%~onjcu|V}~UI=OOp?>l;3i)r}34-@l(R zG;G!q*)u+IA)-YOzwL6b^ccJI}dZ0LTvn7HsL09IQ66t5?B$m4rk z@JU7&Co`5v zX~l%%M@2UteXnAZdu3X@7>JRxn8R<3A}C z@xP>C9I8zY5KRj&@PmFuy~5?wUBR><6ZQjm1@->Fqt-ZBE1*_c-+}PheFsE&2Z#pn zGD;nnZHlY3nVxh+F*G60>Q;e$FNZ`T6-9}mQnE-SWeSB7s{4zBv=X@AjC)|lA&BB~ z4x=36;1}_T`t6VhieSBIdZ@JN9}yn!n=&j{?Ru3BIU|Sa&!0ZUa=F|(xpgS_c=+WQ zP}m`3w+e&hcPr{5305I|M;0uXqNr6{?;_6{ zuv1zZT*D67z+EXlU2nxA6d?U#myh; z*`|%)eVfAPi$LQ-PQv7Hx}pTiy*xQN83=%J0CmlR?|=OG@qVH~sO~{j*&ezp8m!_q zFRyd(dQ=#yXv2?|7S=SFLPh{_3jiegrK>B~Muo@ugxdECHjn7&=+g4?+`2kF?dgik zuC52$SKG-WozO?h%frD!ZikLU-c(u&xquuSmE4@1z0kClk9heKR)yM|GVX1VP1sTmZFDS^#aOv!<<6lP8t6}KH+ft FzW}=56Oxs+=9=>@&-1+R%s)yBGW+Qm=`al2 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 V{ShyRE$8Uu&h6Zfi#`hZ;_tbdiW2|; diff --git a/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png b/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png deleted file mode 100644 index 69d851c5c9ef747a39076582161b91283e7a9790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50690 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

;#tx?;~ zzW=YLr$XN*K0)svqVL=KjOxi_Q6IxJ&@6b!>L^00+|HD_Vc}jMvzGezV4SA<8@cvO8oc^4$JKCAXt3v6@gphpXLdKpiddYpxY;|^MWKA* zIijn;xZIbMQYqzD{{Aa89}n{H0j)oyTT%`B^hZ7S5(j%B^(akN_Ps zYIa;9FIwVhSbMP;?XQ2)?j=YZ^V2dsd>YZe-XIabkcFyV}f10R_JAfZ>c^keVpIqZD-X@+$5Z~0JxBy zB(4h=o7lf-#c+x*2n7;DJ*gabPgZG6)~+tr5{qA|Y!zPO=@p_9r4UG|Q9zSds!>(t zPdyvjaZ@_m5_WOQJ$~kZhP+z8oYU03WyRu?1Izn)%kL?TF@M0c+7#im0eVS@gLGC2)tr3n^ya$lBz@3WxGkkoghH!16m&Eq4;)BxP zIrCRdsMv`$obc$xS`pA~-XQ+vyGavD)9+-6O8a?RC5y5rduty{THbyzPq{}eU$sa= z0=tuP{ncUWXchs?bvHP{=f{VwDtM!u#G!f*ZqX(|PF3tAv|7)CqU@d5r{JXN+2meGG2?ikl9tztW_t z^fVFFw&vbAc}c$zzgbq4}l~dxtzVF+ncOkZ}(<$-ZijC zUOo7fOG2GypIL0p;-Ds_PC?(0hfz&Buty*v({3dwIAA#0A(PWxLyX;(Q!ig@l)EGE zJkP#=3QSOhU<67lk*9|K!3tQcnxtXr0lzcyy(hWG-&|~vNxkv*VPwWug8#G;jpW6d zDX`@2S>Z6k+|SUN7Hj=v_JkOdf+5@jtqZ-<3#nBGT5Fit z0A@322#^F-J(IX%S4gSe2IRQMz4OsfJa-&|x>?-@T7r56xKM;Ge-( zQ*5^({uf~!3SpBbuTU+`(0`EF2$*&qc1S>4K|Hzs=+bk`wXEVE`j@K$yy72opu6YP-xv0ymc0Ehs#XY5^|v?03D)*w!k_5&`4jMm8u2*4@GbR6>fl5?@s#Bu`rHs6I~n zzb%zJBxrK{<+x6u&Ihr&;A_s8k=earF{|))LdwYsEOA@SDxoUue+2lZg|@TJ1%Mp@;2+D$E(3fdfMv|M3&ZG3jtd4Goqc!v*pi(vBtq%X7g(>6OyCaV z^m&gs_R$OZ(JM@j*>E%`ULdtKKQ!n2u#?oz(09}P3Sly> zSnR0aM`D598W!D55MBGE_pg4=&Sbc^owMlPZD@UJ9Fh$X_bebq?^`?2`tPi~g_soV zCk?xE8Ttw?oWB!Xnn0&gsI`nTE`@LH*P6lm4A@szauQx*8CU$6#|o$ zne;xPmpuaJ`@>5Vq$qH0KxAdHZCbG1$;U_Fo>6hw!X$y;euJ;to`%=2KUIR_-w5Dy z_RA`K|MB`6VZbnE$8I_(h(H#4XXKQBADl_l5Jpcej0Z?f25<`Lb`sP!u6-Ao5sF}f zN*KxrU3svWMz}_A0HcF0h*Y3jw9ly=aF%CA<_?x^L^jP>Cp8e0* z@W*BN-|ZcJpJ3Y&oY>CTp5I;uI_kK%cT3 zLqnoyj2IAavhAn$@3aZVM8P4Fe4HB#_2HOM|IW^l|M+;iDy+7DnK=~5lVB0lPdl$2 z4F5c1z8h4g@l%HQ->~+-eZI~X2E9Dv>w}d40EQ21ukasBBPgW>T21$Nt@h8*@W)YP zuNjE<^!}}y`HkQIh}$1=`y+0@>w-Vx_UCk4Ll6Fby!<)c{+w=qjLF~4jz7laA7gT@ z1pALM`OA9vKgD+|XNdzWz(#`3Uk6V7@#B7T-Z6jtxIbZ&wbl&(Mm@lW{1Z0$6E^u@ eAEhL$GA90zI{KExs1Di~rK4%^*Moz$m;Nu*M-A)% diff --git a/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png b/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png deleted file mode 100644 index f92141d20fc5b71f5d21c69f914cca3dfa6e2d37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24851 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 KxvXbL;P~j~;?n3;8Jp*a zegCBFOZmOu@p7=*Uy8NrMMyrCG5ko?Cj-7_)q#)y1grpJKp_Dp<8*l^%CXRl}ERat~#^wDF5#7 zlvOJa_dKHfw({uvpKDxK9=WdDPg%3_@H8Xc-jzrHH@~FTFgI>8Oz_yI^ETO<{DD%9 zjg4;_jqrzeQ$cG49Yx}(_a`>@!asO;cvKJXz#so|J^w2QZ2f-e*y>6Ku*0Rgy4uIn z^UJv32~$(kV(n@QB|}wtsZ&l*FVcuVaL^{((aEW+r>AH52j#ZlsxuVI_XjtV8+`%- zI9XX)*REM}boXkC?6)$#Wc+!Xlf%-ysX*4=K1)tcP9e)mA8#q3^lQF1nKxI_l<{$^ z8`rN#U-9RiFWg8m6T`L4%*=dhZdQ+piQ!a?^}(C9YVM$H{Wh6;_@FeCeXr-Hp@n@T zPS(;vytQAd9-Y#X?`PNlFs5od=-AHs#;|^mL]uH_K5vYj_*ay7*@P&ZZWMtU>D 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 diff --git a/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png b/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png deleted file mode 100644 index 9561a5e6bf24424b9afe02030a078e0f11ce15b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71559 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


*7*MRF$Go?6 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 L`njxgN@xNALXt)H diff --git a/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png b/examples/nextjs-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png deleted file mode 100644 index 5b2c5fd1fcdf054f60d956b4dd3d67d99e0cd1a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38773 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 z

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 p?$vxS@WH?b! Date: Tue, 6 Aug 2024 12:18:19 +0200 Subject: [PATCH 018/100] chore: fix nrwl/nx-set-shas --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 148e2b329..8aa3cbfff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ jobs: node-version: "20" - name: Install dependencies run: npm ci - - uses: nrwl/nx-set-shas + - uses: nrwl/nx-set-shas@v4 - run: npx nx affected -t lint test build - uses: actions/upload-artifact@v2 if: always() From b9a384875807b256ca32a09cb30a7f711baf8fd7 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 12:20:22 +0200 Subject: [PATCH 019/100] chore: u --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8aa3cbfff..2e37356e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,7 @@ jobs: - name: Install dependencies run: npm ci - uses: nrwl/nx-set-shas@v4 + - run: npx playwright install --with-deps - run: npx nx affected -t lint test build - uses: actions/upload-artifact@v2 if: always() From e9df65fa79f6a5c75538002f64566761ff67b3fb Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 13:28:34 +0200 Subject: [PATCH 020/100] fix: command depedency --- examples/nextjs-spa/package.json | 4 +--- examples/nextjs-spa/playwright.config.ts | 4 ++-- examples/nextjs-spa/project.json | 24 ++++++++++++++++++++++++ examples/preact-spa/package.json | 1 - examples/preact-spa/project.json | 17 +++++++++++++++++ 5 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 examples/nextjs-spa/project.json create mode 100644 examples/preact-spa/project.json diff --git a/examples/nextjs-spa/package.json b/examples/nextjs-spa/package.json index 1d966a294..275661364 100644 --- a/examples/nextjs-spa/package.json +++ b/examples/nextjs-spa/package.json @@ -6,9 +6,7 @@ "dev": "NODE_OPTIONS='--inspect' next dev", "build": "next build", "start": "next start", - "lint": "next lint", - "test": "playwright test", - "debug": "playwright test --ui" + "lint": "next lint" }, "dependencies": { "@next/font": "13.4.13", diff --git a/examples/nextjs-spa/playwright.config.ts b/examples/nextjs-spa/playwright.config.ts index ffa6c1759..1c98dd2c6 100644 --- a/examples/nextjs-spa/playwright.config.ts +++ b/examples/nextjs-spa/playwright.config.ts @@ -81,9 +81,9 @@ export default defineConfig({ env: { NEXT_PUBLIC_ORY_SDK_URL: "http://localhost:4000", }, - command: "npm run build && npm run start -- --port 3100", + command: "npm run start -- --port 3300", timeout: 120 * 1000, - port: 3100, + port: 3300, reuseExistingServer: !process.env.CI, }, ], diff --git a/examples/nextjs-spa/project.json b/examples/nextjs-spa/project.json new file mode 100644 index 000000000..4118e077a --- /dev/null +++ b/examples/nextjs-spa/project.json @@ -0,0 +1,24 @@ +{ + "targets": { + "e2e": { + "command": "playwright test", + "dependsOn": ["build"], + "options": { + "cwd": "examples/nextjs-spa" + } + }, + "lint": { + "command": "next lint", + "options": { + "cwd": "examples/nextjs-spa" + } + }, + "build": { + "command": "next build", + "dependsOn": ["lint"], + "options": { + "cwd": "examples/nextjs-spa" + } + } + } +} diff --git a/examples/preact-spa/package.json b/examples/preact-spa/package.json index f53f5469b..5f25ab204 100644 --- a/examples/preact-spa/package.json +++ b/examples/preact-spa/package.json @@ -7,7 +7,6 @@ "dev": "vite", "build": "tsc && vite build", "preview": "vite preview", - "test": "playwright test", "debug": "playwright test --ui" }, "dependencies": { diff --git a/examples/preact-spa/project.json b/examples/preact-spa/project.json new file mode 100644 index 000000000..daa6fe99c --- /dev/null +++ b/examples/preact-spa/project.json @@ -0,0 +1,17 @@ +{ + "targets": { + "e2e": { + "command": "playwright test", + "dependsOn": ["build"], + "options": { + "cwd": "examples/nextjs-spa" + } + }, + "build": { + "command": "next build", + "options": { + "cwd": "examples/nextjs-spa" + } + } + } +} From 8a0d48955ca0a3aef2a0f8db06c54349087be932 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 13:47:14 +0200 Subject: [PATCH 021/100] chore: upgrade next js in example --- examples/nextjs-spa/package.json | 2 +- package-lock.json | 251 ++++++++++++++++++++++++++++++- 2 files changed, 247 insertions(+), 6 deletions(-) diff --git a/examples/nextjs-spa/package.json b/examples/nextjs-spa/package.json index 275661364..be97f2710 100644 --- a/examples/nextjs-spa/package.json +++ b/examples/nextjs-spa/package.json @@ -15,7 +15,7 @@ "@types/react-dom": "18.3.0", "eslint": "8.32.0", "eslint-config-next": "13.1.5", - "next": "13.5.6", + "next": "14.2.5", "react": "18.3.1", "react-dom": "18.3.1", "typescript": "5.2.2", diff --git a/package-lock.json b/package-lock.json index f7e4595d0..751122b2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -95,7 +95,7 @@ "@types/react-dom": "18.3.0", "eslint": "8.32.0", "eslint-config-next": "13.1.5", - "next": "13.5.6", + "next": "14.2.5", "react": "18.3.1", "react-dom": "18.3.1", "typescript": "5.2.2", @@ -108,6 +108,166 @@ "autoprefixer": "10.4.2" } }, + "examples/nextjs-spa/node_modules/@next/env": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==", + "license": "MIT" + }, + "examples/nextjs-spa/node_modules/@next/swc-darwin-arm64": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", + "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/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" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "examples/nextjs-spa/node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, "examples/nextjs-spa/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -206,6 +366,84 @@ "url": "https://opencollective.com/eslint" } }, + "examples/nextjs-spa/node_modules/next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", + "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", + "license": "MIT", + "dependencies": { + "@next/env": "14.2.5", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.5", + "@next/swc-darwin-x64": "14.2.5", + "@next/swc-linux-arm64-gnu": "14.2.5", + "@next/swc-linux-arm64-musl": "14.2.5", + "@next/swc-linux-x64-gnu": "14.2.5", + "@next/swc-linux-x64-musl": "14.2.5", + "@next/swc-win32-arm64-msvc": "14.2.5", + "@next/swc-win32-ia32-msvc": "14.2.5", + "@next/swc-win32-x64-msvc": "14.2.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "examples/nextjs-spa/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "examples/preact-spa": { "version": "0.0.0", "dependencies": { @@ -10615,6 +10853,12 @@ "semver": "bin/semver.js" } }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, "node_modules/@swc/helpers": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", @@ -21915,10 +22159,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/nextjs": { - "resolved": "packages/nextjs", - "link": true - }, "node_modules/nextjs-spa": { "resolved": "examples/nextjs-spa", "link": true @@ -28694,6 +28934,7 @@ }, "packages/nextjs": { "version": "1.0.0", + "extraneous": true, "license": "ISC" }, "packages/preact": { From e6c13175cd01726660c3e502739249c0ea8ab5a0 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 13:59:35 +0200 Subject: [PATCH 022/100] fix: commands in example --- examples/preact-spa/package.json | 1 - examples/preact-spa/project.json | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/preact-spa/package.json b/examples/preact-spa/package.json index 5f25ab204..bd3863ef3 100644 --- a/examples/preact-spa/package.json +++ b/examples/preact-spa/package.json @@ -5,7 +5,6 @@ "type": "module", "scripts": { "dev": "vite", - "build": "tsc && vite build", "preview": "vite preview", "debug": "playwright test --ui" }, diff --git a/examples/preact-spa/project.json b/examples/preact-spa/project.json index daa6fe99c..1da48d0eb 100644 --- a/examples/preact-spa/project.json +++ b/examples/preact-spa/project.json @@ -4,13 +4,13 @@ "command": "playwright test", "dependsOn": ["build"], "options": { - "cwd": "examples/nextjs-spa" + "cwd": "examples/preact-spa" } }, "build": { - "command": "next build", + "command": "tsc && vite build", "options": { - "cwd": "examples/nextjs-spa" + "cwd": "examples/preact-spa" } } } From 66484987c21b7e7666363135a6ff2191b7dfae17 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:07:08 +0200 Subject: [PATCH 023/100] fix: format --- packages/elements-react/playwright-ct.config.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/elements-react/playwright-ct.config.ts b/packages/elements-react/playwright-ct.config.ts index 2ed526677..48531c0a0 100644 --- a/packages/elements-react/playwright-ct.config.ts +++ b/packages/elements-react/playwright-ct.config.ts @@ -1,3 +1,6 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + import { defineConfig, devices } from "@playwright/experimental-ct-react" import path from "path" From 042084fbd0bf7e1df335a6bcfe948fde18f15e7d Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:15:10 +0200 Subject: [PATCH 024/100] chore: upgrade chromatic --- .github/workflows/chromatic.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index 532d2fcee..d85f10df7 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -7,17 +7,14 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 with: node-version: "20" - - name: Lerna initialize - run: npm run initialize - - name: Lerna build - run: npm run build:clean + - run: npm run build:clean - name: Publish to Chromatic - uses: chromaui/action@v1 + uses: chromaui/action@v11 with: projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} From 546bd1c3f9983474796efa14823e90f299fdda45 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:16:21 +0200 Subject: [PATCH 025/100] chore: install --- .github/workflows/chromatic.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index d85f10df7..097e72b25 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -13,6 +13,7 @@ jobs: - uses: actions/setup-node@v4 with: node-version: "20" + - run: npm ci - run: npm run build:clean - name: Publish to Chromatic uses: chromaui/action@v11 From 430e0e0b0d62722632d8e947d854ec45d4504bbe Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:20:47 +0200 Subject: [PATCH 026/100] chore: chromatic --- .github/workflows/chromatic.yml | 21 --------------------- .github/workflows/ci.yml | 3 +++ 2 files changed, 3 insertions(+), 21 deletions(-) delete mode 100644 .github/workflows/chromatic.yml diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml deleted file mode 100644 index 097e72b25..000000000 --- a/.github/workflows/chromatic.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: "Chromatic" - -on: - pull_request: - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: "20" - - run: npm ci - - run: npm run build:clean - - name: Publish to Chromatic - uses: chromaui/action@v11 - with: - projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e37356e9..8c46fe62e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,3 +26,6 @@ jobs: name: playwright-report path: playwright-report/ retention-days: 7 + - uses: chromaui/action@v11 + with: + projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} From f673c6a927b5c296562ee706d5c1ad9a41eb6049 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:32:37 +0200 Subject: [PATCH 027/100] chore: remove obsolete workfow --- .github/workflows/ci.yml | 22 ++++++++++- .github/workflows/playwright-e2e.yml | 57 ---------------------------- 2 files changed, 20 insertions(+), 59 deletions(-) delete mode 100644 .github/workflows/playwright-e2e.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8c46fe62e..77ee419fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,8 +23,26 @@ jobs: - uses: actions/upload-artifact@v2 if: always() with: - name: playwright-report - path: playwright-report/ + name: react-spa playwright-report + path: | + examples/react-spa/playwright-report/ + examples/react-spa/test-results/ + retention-days: 7 + - uses: actions/upload-artifact@v2 + if: always() + with: + name: preact-spa playwright-report + path: | + examples/preact-spa/playwright-report/ + examples/preact-spa/test-results/ + retention-days: 7 + - uses: actions/upload-artifact@v2 + if: always() + with: + name: nextjs-spa playwright-report + path: | + examples/nextjs-spa/playwright-report/ + examples/nextjs-spa/test-results/ retention-days: 7 - uses: chromaui/action@v11 with: diff --git a/.github/workflows/playwright-e2e.yml b/.github/workflows/playwright-e2e.yml deleted file mode 100644 index f8292bc76..000000000 --- a/.github/workflows/playwright-e2e.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Playwright E2E Tests -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] -jobs: - test: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/setup-node@v3 - with: - node-version: "18" - - name: Install dependencies - run: npm ci - - name: Lerna initialize - run: npm run initialize - - name: Lerna build - run: npm run build:clean - - name: Install Playwright Browsers - run: npx playwright install --with-deps - - name: Install Ory CLI - run: make .bin/ory - - name: Run examples/react-spa tests - run: cd examples/react-spa && npm run test - - uses: actions/upload-artifact@v2 - if: always() - with: - name: react-spa playwright-report - path: | - examples/react-spa/playwright-report/ - examples/react-spa/test-results/ - retention-days: 7 - - name: Run examples/preact-spa tests - run: cd examples/preact-spa && npm run test - - uses: actions/upload-artifact@v2 - if: always() - with: - name: preact-spa playwright-report - path: | - examples/preact-spa/playwright-report/ - examples/preact-spa/test-results/ - retention-days: 7 - - name: Run examples/nextjs-spa tests - run: cd examples/nextjs-spa && npm run test - - uses: actions/upload-artifact@v2 - if: always() - with: - name: nextjs-spa playwright-report - path: | - examples/nextjs-spa/playwright-report/ - examples/nextjs-spa/test-results/ - retention-days: 7 From 6a9290b12410d64f0ce5e558a6b542b5b8c4dc37 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 14:55:50 +0200 Subject: [PATCH 028/100] chore: add main workflow --- .github/workflows/main.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..ac7cc127d --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,24 @@ +name: "main CI/CD" + +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-node@v3 + with: + node-version: "20" + - run: npm ci + - run: npx playwright install --with-deps + - run: npx nx run-many --target=build --all + - name: Publish to Chromatic + uses: chromaui/action@v1 + with: + projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }} From 4a67d92cc4949efe7e59c1dd0523160fbb312365 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 15:04:53 +0200 Subject: [PATCH 029/100] chore: rename --- .github/workflows/ci.yml | 2 +- .github/workflows/main.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77ee419fc..50c7b1487 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Playwright Component Tests +name: Pull Request - Lint/Build/Tests on: push: branches: [main] diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ac7cc127d..8a4eb4df3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: "main CI/CD" +name: "Main - Lint/Build/Tests" on: push: From e3d9c97aca04de7a8867193aa522ffed6d04531c Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Tue, 6 Aug 2024 15:10:55 +0200 Subject: [PATCH 030/100] chore: u --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50c7b1487..22a0c2cc9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,7 +5,7 @@ on: pull_request: branches: [main] jobs: - test-build: + pull_request: timeout-minutes: 20 runs-on: ubuntu-latest steps: From c4c1d9d5a755a5aecb16440becd848f58f107209 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Wed, 7 Aug 2024 12:18:58 +0200 Subject: [PATCH 031/100] fix: release config --- nx.json | 16 ++++++++++++++++ package.json | 2 +- packages/elements-react/.npmignore | 9 +++++++++ packages/elements-react/package.json | 7 +++++-- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 packages/elements-react/.npmignore diff --git a/nx.json b/nx.json index a9c41b33a..710f4cbc1 100644 --- a/nx.json +++ b/nx.json @@ -13,6 +13,22 @@ "dependsOn": ["^build"] } }, + "release": { + "projects": ["@ory/elements-react"], + "version": { + "generatorOptions": { + "preid": "next" + } + }, + "changelog": { + "projectChangelogs": false, + "workspaceChangelog": false + }, + "git": { + "commit": true, + "tag": false + } + }, "affected": { "defaultBase": "main" }, diff --git a/package.json b/package.json index 18a76ceb3..ec19bf1d6 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build-storybook": "storybook build", "refresh": "lerna bootstrap --hoist", "build:clean": "lerna run build --skip-nx-cache", - "build": "lerna run build --stream", + "build": "nx run-many --target=build --all", "build:react": "lerna run build --stream --scope=@ory/elements --skip-nx-cache", "build:preact": "lerna run build --stream --scope=@ory/elements-preact --skip-nx-cache", "build:markup": "lerna run build --stream --scope=@ory/elements-markup --skip-nx-cache", diff --git a/packages/elements-react/.npmignore b/packages/elements-react/.npmignore new file mode 100644 index 000000000..ad3319e0d --- /dev/null +++ b/packages/elements-react/.npmignore @@ -0,0 +1,9 @@ +playwright/.cache/ +playwright-report/* +src/ +playwright/ +playwright-ct.config.ts +project.json +tsup.config.ts +tsconfig.test.json +!dist/ \ No newline at end of file diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index 339672570..b981ab49a 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -1,6 +1,6 @@ { "name": "@ory/elements-react", - "version": "1.0.0", + "version": "0.0.0", "exports": { ".": { "types": "./dist/index.d.ts", @@ -53,5 +53,8 @@ "homepage": "https://github.com/ory/elements#readme", "author": "Ory Corp", "license": "Apache License 2.0", - "description": "Ory Elements React - a collection of React components for authentication UIs." + "description": "Ory Elements React - a collection of React components for authentication UIs.", + "publishConfig": { + "access": "public" + } } From 4ffc796ae292781459caa9ecbaa7fd13da8df89e Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Wed, 7 Aug 2024 13:06:50 +0200 Subject: [PATCH 032/100] chore(release): publish 1.0.0-next.0 --- package-lock.json | 2 +- packages/elements-react/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 751122b2a..4e2e18970 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28793,7 +28793,7 @@ }, "packages/elements-react": { "name": "@ory/elements-react", - "version": "1.0.0", + "version": "1.0.0-next.0", "license": "Apache License 2.0", "dependencies": { "@ory/client-fetch": "1.15.0-next.0", diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index b981ab49a..fda11c86c 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -1,6 +1,6 @@ { "name": "@ory/elements-react", - "version": "0.0.0", + "version": "1.0.0-next.0", "exports": { ".": { "types": "./dist/index.d.ts", From c970beaeb876df57c4fa87629bfd5ed6ff7c2980 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Wed, 7 Aug 2024 16:08:16 +0200 Subject: [PATCH 033/100] fix: provider logos --- .../theme/default/components/form/social.tsx | 29 ++++++++++--------- .../theme/default/provider-logos/auth0.svg | 2 +- .../theme/default/provider-logos/github.svg | 2 +- .../theme/default/provider-logos/google.svg | 2 +- .../default/provider-logos/microsoft.svg | 2 +- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/elements-react/src/theme/default/components/form/social.tsx b/packages/elements-react/src/theme/default/components/form/social.tsx index eeff51577..14d09e95d 100644 --- a/packages/elements-react/src/theme/default/components/form/social.tsx +++ b/packages/elements-react/src/theme/default/components/form/social.tsx @@ -18,7 +18,7 @@ export function DefaultButtonSocial({ const oidcNodeCount = ui.nodes.filter((node) => node.group === "oidc").length ?? 0 - const logo = logos[attributes.value] + const Logo = logos[attributes.value] const showLabel = oidcNodeCount % 3 !== 0 && oidcNodeCount % 4 !== 0 @@ -35,19 +35,20 @@ export function DefaultButtonSocial({ type="submit" name="provider" > - {logo ? ( - {node.meta.label?.text - ) : ( -

- )} + + {Logo ? ( + + ) : ( + + {provider.slice(0, 2)} + + )} + {showLabel ? ( {node.meta.label?.text} diff --git a/packages/elements-react/src/theme/default/provider-logos/auth0.svg b/packages/elements-react/src/theme/default/provider-logos/auth0.svg index 084d5db40..0f88b421a 100644 --- a/packages/elements-react/src/theme/default/provider-logos/auth0.svg +++ b/packages/elements-react/src/theme/default/provider-logos/auth0.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/github.svg b/packages/elements-react/src/theme/default/provider-logos/github.svg index 83cb6f179..9bb4a7b46 100644 --- a/packages/elements-react/src/theme/default/provider-logos/github.svg +++ b/packages/elements-react/src/theme/default/provider-logos/github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/google.svg b/packages/elements-react/src/theme/default/provider-logos/google.svg index eb6b35961..78863c677 100644 --- a/packages/elements-react/src/theme/default/provider-logos/google.svg +++ b/packages/elements-react/src/theme/default/provider-logos/google.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/microsoft.svg b/packages/elements-react/src/theme/default/provider-logos/microsoft.svg index 23ca55c57..15d265d54 100644 --- a/packages/elements-react/src/theme/default/provider-logos/microsoft.svg +++ b/packages/elements-react/src/theme/default/provider-logos/microsoft.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From ebb87639510ee056c1a335f205af3578b311cbad Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Wed, 7 Aug 2024 16:20:22 +0200 Subject: [PATCH 034/100] chore: add dev workflow --- packages/elements-react/project.json | 8 +++++++- packages/elements-react/tsup.config.ts | 3 +-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/elements-react/project.json b/packages/elements-react/project.json index 32c495773..4cd9ba685 100644 --- a/packages/elements-react/project.json +++ b/packages/elements-react/project.json @@ -12,8 +12,14 @@ "lintFilePatterns": ["packages/elements-react/src/**/*.ts"] } }, + "dev": { + "command": "tsup --watch", + "options": { + "cwd": "packages/elements-react" + } + }, "build": { - "command": "tsup", + "command": "tsup --clean --dts", "dependsOn": ["lint", "test"], "options": { "cwd": "packages/elements-react" diff --git a/packages/elements-react/tsup.config.ts b/packages/elements-react/tsup.config.ts index eeee8bf73..c52b675e6 100644 --- a/packages/elements-react/tsup.config.ts +++ b/packages/elements-react/tsup.config.ts @@ -5,11 +5,10 @@ import svgr from "esbuild-plugin-svgr" import { defineConfig, type Options } from "tsup" const baseConfig: Options = { - dts: true, + dts: false, minify: false, sourcemap: true, bundle: true, - clean: true, format: ["cjs", "esm"], } From 39518feaa15a51c7c18df30d519b4193aa3a78dc Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Wed, 7 Aug 2024 16:30:21 +0200 Subject: [PATCH 035/100] chore: u --- package-lock.json | 192 +++++++++++++++++++++++++++++++--------------- 1 file changed, 131 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4eb73a57a..357e801b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7079,6 +7079,12 @@ "axios": "^1.6.1" } }, + "node_modules/@ory/client-fetch": { + "version": "1.15.0-next.0", + "resolved": "https://registry.npmjs.org/@ory/client-fetch/-/client-fetch-1.15.0-next.0.tgz", + "integrity": "sha512-EWJrILnh84nzE1zATApxtdDcvGVBSwsbh8bLfMxYIxl8YqNiUc2r/CCLaatzlpNNlKnXVU5mLKs99QLAjk1PjQ==", + "license": "Apache-2.0" + }, "node_modules/@ory/elements": { "resolved": "packages/react", "link": true @@ -10788,7 +10794,6 @@ "version": "18.3.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -10799,7 +10804,6 @@ "version": "18.3.0", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, "license": "MIT", "dependencies": { "@types/react": "*" @@ -14600,17 +14604,6 @@ "node": ">=6.0.0" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -18401,6 +18394,16 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/input-otp": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.2.4.tgz", + "integrity": "sha512-md6rhmD+zmMnUh5crQNSQxq3keBRYvE3odbr4Qb9g2NWzQv9azi+t1a3X4TBTbh98fsGHgEEJlzbe1q860uGCA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + } + }, "node_modules/inquirer": { "version": "8.2.6", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", @@ -18557,22 +18560,6 @@ "dev": true, "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-bigint": { "version": "1.0.4", "license": "MIT", @@ -18696,19 +18683,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "dev": true, @@ -20879,16 +20853,6 @@ "node": ">=8" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "dev": true, @@ -25276,6 +25240,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", @@ -25569,13 +25544,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "dev": true, - "license": "MIT" - }, "node_modules/synchronous-promise": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", @@ -28170,8 +28138,7 @@ }, "packages/elements-react": { "name": "@ory/elements-react", - "version": "1.0.0", - "extraneous": true, + "version": "1.0.0-next.0", "license": "Apache License 2.0", "dependencies": { "@ory/client-fetch": "1.15.0-next.0", @@ -28192,6 +28159,109 @@ "react-dom": "18.3.1" } }, + "packages/elements-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "packages/elements-react/node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "packages/elements-react/node_modules/postcss": { + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "packages/elements-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "packages/elements-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "packages/markup": { "name": "@ory/elements-markup", "version": "0.0.0", From d88133ad4a8003ba1c236c8ef4421895df6a3e76 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Thu, 8 Aug 2024 10:55:26 +0200 Subject: [PATCH 036/100] fix: eslint issues --- .../src/components/card/card-two-step.tsx | 6 +++--- .../src/components/card/header.tsx | 2 +- .../src/components/card/index.tsx | 10 +++++----- .../src/components/form/form.tsx | 2 +- .../src/components/form/nodes/input.tsx | 9 +++++---- .../src/components/form/nodes/node.tsx | 8 ++++++-- .../src/components/generic/divider.tsx | 2 +- .../src/context/intl-context.tsx | 4 ++-- .../default/components/card/auth-methods.tsx | 4 ++-- .../theme/default/components/card/footer.tsx | 5 ++--- .../theme/default/components/form/button.tsx | 4 ++-- .../default/components/form/checkbox.tsx | 8 ++++---- .../theme/default/components/form/image.tsx | 5 ++--- .../theme/default/components/form/index.tsx | 2 +- .../theme/default/components/form/social.tsx | 20 ++++++++++++++----- .../src/theme/default/flows/login.tsx | 2 +- .../src/theme/default/flows/recovery.tsx | 2 +- .../src/theme/default/flows/registration.tsx | 2 +- .../src/theme/default/flows/settings.tsx | 2 +- .../src/theme/default/flows/verification.tsx | 2 +- 20 files changed, 57 insertions(+), 44 deletions(-) diff --git a/packages/elements-react/src/components/card/card-two-step.tsx b/packages/elements-react/src/components/card/card-two-step.tsx index dc5a149b6..6738c1689 100644 --- a/packages/elements-react/src/components/card/card-two-step.tsx +++ b/packages/elements-react/src/components/card/card-two-step.tsx @@ -85,7 +85,7 @@ type OptionProps = { description: string } -function Option({ +export function Option({ setGroups, setStep, title, @@ -113,8 +113,8 @@ function Option({ diff --git a/packages/elements-react/src/components/card/header.tsx b/packages/elements-react/src/components/card/header.tsx index 8fe409f94..63f1feabd 100644 --- a/packages/elements-react/src/components/card/header.tsx +++ b/packages/elements-react/src/components/card/header.tsx @@ -1,6 +1,6 @@ import { useComponents } from "../../context/component" -export type OryCardHeaderProps = {} +export type OryCardHeaderProps = Record export function OryCardHeader() { const { CardHeader } = useComponents() diff --git a/packages/elements-react/src/components/card/index.tsx b/packages/elements-react/src/components/card/index.tsx index 649d518af..bfd8f8d56 100644 --- a/packages/elements-react/src/components/card/index.tsx +++ b/packages/elements-react/src/components/card/index.tsx @@ -6,7 +6,7 @@ import { useComponents } from "../../context/component" import { ComponentType, PropsWithChildren } from "react" import { OryCardHeader, OryCardHeaderProps } from "./header" -export type OryCardContentProps = PropsWithChildren<{}> +export type OryCardContentProps = PropsWithChildren export function OryCardContent({ children }: OryCardContentProps) { const { CardContent } = useComponents() @@ -37,14 +37,14 @@ export function OryCardContent({ children }: OryCardContentProps) { ) } -export type OryCardFooterProps = {} +export type OryCardFooterProps = Record -export function OryCardFooter({}: OryCardFooterProps) { +export function OryCardFooter() { const { CardFooter } = useComponents() return } -export type OryCardProps = PropsWithChildren<{}> +export type OryCardProps = PropsWithChildren export function OryCard({ children }: OryCardProps) { const { Card } = useComponents() @@ -88,7 +88,7 @@ export type OryCardComponents = { /** * The card logo is the logo of the card container. */ - CardLogo: ComponentType<{}> + CardLogo: ComponentType } export { OryCardHeader } diff --git a/packages/elements-react/src/components/form/form.tsx b/packages/elements-react/src/components/form/form.tsx index 4402deac9..6a1fa8f6a 100644 --- a/packages/elements-react/src/components/form/form.tsx +++ b/packages/elements-react/src/components/form/form.tsx @@ -191,7 +191,7 @@ export function OryForm({ children }: OryFormProps) { void methods.handleSubmit(onSubmit)} > {children ?? ( <> diff --git a/packages/elements-react/src/components/form/nodes/input.tsx b/packages/elements-react/src/components/form/nodes/input.tsx index 7fcd96535..cb1400ad5 100644 --- a/packages/elements-react/src/components/form/nodes/input.tsx +++ b/packages/elements-react/src/components/form/nodes/input.tsx @@ -20,8 +20,8 @@ export const NodeInput = ({ onloadTrigger: onloadTrigger, onclickTrigger, // These properties do not exist on input fields so we remove them (as we already have handled them). - onclick: ignoredOnclick, - onload: ignoredOnload, + onclick: _ignoredOnclick, + onload: _ignoredOnload, // ...attrs } = attributes @@ -34,11 +34,12 @@ export const NodeInput = ({ triggerToWindowCall(onloadTrigger) } }, - // eslint-disable-next-line react-hooks/exhaustive-deps + // TODO(jonas): make sure onloadTrigger is stable + // eslint-disable-next-line react-hooks/exhaustive-deps -- ignore onloadTrigger for now, until we make sure this is stable [], ) - const handleClick: MouseEventHandler = (e) => { + const handleClick: MouseEventHandler = () => { if (onclickTrigger) { triggerToWindowCall(onclickTrigger) } diff --git a/packages/elements-react/src/components/form/nodes/node.tsx b/packages/elements-react/src/components/form/nodes/node.tsx index a767f5c01..0c4f439cb 100644 --- a/packages/elements-react/src/components/form/nodes/node.tsx +++ b/packages/elements-react/src/components/form/nodes/node.tsx @@ -31,8 +31,12 @@ export const Node = ({ node, onClick }: NodeProps): ReactNode => { } else if (isUiNodeAnchorAttributes(node.attributes)) { return } else if (isUiNodeScriptAttributes(node.attributes)) { - const { crossorigin, referrerpolicy, node_type, ...attributes } = - node.attributes + const { + crossorigin, + referrerpolicy, + node_type: _nodeType, + ...attributes + } = node.attributes return ( diff --git a/nx.json b/nx.json index 61b933856..5f10eb33c 100644 --- a/nx.json +++ b/nx.json @@ -4,7 +4,7 @@ "default": { "runner": "nx/tasks-runners/default", "options": { - "cacheableOperations": ["build", "dev", "preview"] + "cacheableOperations": ["build", "dev", "preview", "build-storybook"] } } }, @@ -45,6 +45,22 @@ "options": { "targetName": "test" } + }, + { + "plugin": "@nx/storybook/plugin", + "options": { + "serveStorybookTargetName": "storybook", + "buildStorybookTargetName": "build", + "testStorybookTargetName": "test-storybook", + "staticStorybookTargetName": "static-storybook" + } + } + ], + "generators": { + "@nx/react": { + "library": { + "unitTestRunner": "none" + } } - ] + } } diff --git a/package-lock.json b/package-lock.json index 435b20828..eea895c3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,13 +17,19 @@ }, "devDependencies": { "@babel/core": "7.18.10", + "@babel/preset-react": "^7.14.5", "@babel/preset-typescript": "7.23.3", "@formatjs/cli-lib": "6.3.3", "@nrwl/eslint-plugin-nx": "19.5.4", "@nrwl/linter": "19.5.4", "@nx/eslint": "19.5.4", + "@nx/eslint-plugin": "19.5.4", "@nx/jest": "19.5.4", "@nx/js": "19.5.4", + "@nx/react": "19.5.4", + "@nx/storybook": "19.5.4", + "@nx/vite": "19.5.4", + "@nx/web": "19.5.4", "@ory/client": "1.6.2", "@playwright/experimental-ct-react": "1.46.0", "@preact/preset-vite": "2.5.0", @@ -32,10 +38,17 @@ "@storybook/addon-interactions": "8.3.0", "@storybook/addon-links": "8.3.0", "@storybook/core-common": "8.3.0", + "@storybook/core-server": "7.6.20", + "@storybook/jest": "^0.2.3", "@storybook/node-logger": "8.3.0", "@storybook/react": "8.3.0", "@storybook/react-vite": "8.3.0", + "@storybook/test-runner": "^0.13.0", + "@storybook/testing-library": "^0.2.2", "@storybook/types": "8.3.0", + "@swc-node/register": "~1.9.1", + "@swc/core": "~1.5.7", + "@swc/helpers": "~0.5.11", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", @@ -61,9 +74,12 @@ "eslint-config-standard": "17.1.0", "eslint-plugin-formatjs": "4.10.5", "eslint-plugin-import": "2.28.1", + "eslint-plugin-jsx-a11y": "6.7.1", "eslint-plugin-n": "16.1.0", "eslint-plugin-playwright": "1.6.2", "eslint-plugin-promise": "6.1.1", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-storybook": "0.8.0", "eslint-plugin-tsdoc": "0.2.17", "jest": "29.7.0", @@ -86,7 +102,9 @@ "typescript": "5.2.2", "vite": "5.4.3", "vite-plugin-dts": "4.1.0", + "vite-plugin-require": "1.2.14", "vite-plugin-static-copy": "1.0.6", + "vite-tsconfig-paths": "5.0.1", "which-builtin-type": "1.1.4" }, "engines": { @@ -474,6 +492,19 @@ "vite": "^4.2.0" } }, + "examples/react-spa/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "examples/react-spa/node_modules/eslint-plugin-import": { "version": "2.27.5", "dev": true, @@ -510,17 +541,6 @@ "ms": "^2.1.1" } }, - "examples/react-spa/node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "examples/react-spa/node_modules/eslint-plugin-n": { "version": "15.6.1", "dev": true, @@ -558,6 +578,57 @@ "node": ">=10" } }, + "examples/react-spa/node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "examples/react-spa/node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "examples/react-spa/node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -691,6 +762,19 @@ "node": ">=6.0.0" } }, + "node_modules/@aw-web-design/x-default-browser": { + "version": "1.4.126", + "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", + "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser-id": "3.0.0" + }, + "bin": { + "x-default-browser": "bin/x-default-browser.js" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -2199,6 +2283,38 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz", + "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-jsx": { "version": "7.25.2", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", @@ -2267,6 +2383,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", @@ -2612,6 +2745,27 @@ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-typescript": { "version": "7.23.3", "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", @@ -2715,6 +2869,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -2739,6 +2904,16 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@emnapi/core": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.2.0.tgz", @@ -3339,6 +3514,13 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@fal-works/esbuild-plugin-global-externals": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", + "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@formatjs/cli-lib": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/@formatjs/cli-lib/-/cli-lib-6.3.3.tgz", @@ -3730,6 +3912,23 @@ "dev": true, "license": "0BSD" }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -4147,13 +4346,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/@jest/core/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4167,6 +4359,19 @@ "node": ">=8" } }, + "node_modules/@jest/create-cache-key-function": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", + "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jest/environment": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", @@ -4683,6 +4888,17 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -4958,360 +5174,3486 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", + "node_modules/@module-federation/bridge-react-webpack-plugin": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/bridge-react-webpack-plugin/-/bridge-react-webpack-plugin-0.2.8.tgz", + "integrity": "sha512-6G1qTo1HWvRcN5fzE+SZgvgzSPoq5YqNx8hFL8BttJmnd3wj4SUOFiikAsXhdVrzSK+Zuzg6pipkiLH1m+pbtw==", "dev": true, - "license": "MIT", "dependencies": { - "@emnapi/core": "^1.1.0", - "@emnapi/runtime": "^1.1.0", - "@tybys/wasm-util": "^0.9.0" + "@module-federation/sdk": "0.2.8" } }, - "node_modules/@next/env": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", - "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==", - "license": "MIT" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "13.1.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.5.tgz", - "integrity": "sha512-3kvLTX35bOWOCKU8KY74Ygczc55Qk/kB2TQy0tH7Rti6hzZ6Aij7WQ8zHdIVjmnlD0n/zXWXrIf5y56RKcLQkQ==", + "node_modules/@module-federation/dts-plugin": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/dts-plugin/-/dts-plugin-0.2.8.tgz", + "integrity": "sha512-qY1Wbqo0yu9nh6KR8K19t5T4tYtlUbmcNdcaCweISCyAbH99TrhpQkJ89NY0TLtnxQ6uayIYayqAWS7vzyDXVw==", "dev": true, "license": "MIT", "dependencies": { - "glob": "7.1.7" + "@module-federation/managers": "0.2.8", + "@module-federation/sdk": "0.2.8", + "@module-federation/third-party-dts-extractor": "0.2.8", + "adm-zip": "^0.5.10", + "ansi-colors": "^4.1.3", + "axios": "^1.6.7", + "chalk": "3.0.0", + "fs-extra": "9.1.0", + "isomorphic-ws": "5.0.0", + "koa": "2.11.0", + "lodash.clonedeepwith": "4.5.0", + "log4js": "6.9.1", + "node-schedule": "2.1.1", + "rambda": "^9.1.0", + "ws": "8.17.1" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true + } } }, - "node_modules/@next/eslint-plugin-next/node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/@module-federation/dts-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@next/font": { - "version": "13.4.13", - "resolved": "https://registry.npmjs.org/@next/font/-/font-13.4.13.tgz", - "integrity": "sha512-jzjUvjO967E2XWku5aImWRVApGwsTJZPp3lY5yFNWZHMkoNNKU9fsTEAhWVcKxCOYmHmSX1n2E09VkzuFdF48Q==", - "license": "MIT" - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", - "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", - "cpu": [ - "arm64" - ], + "node_modules/@module-federation/dts-plugin/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "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" - ], + "node_modules/@module-federation/dts-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">= 10" + "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" - ], + "node_modules/@module-federation/dts-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10" + "node": ">=8" } }, - "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" - ], + "node_modules/@module-federation/dts-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "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" - ], + "node_modules/@module-federation/dts-plugin/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "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" - ], + "node_modules/@module-federation/enhanced": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/enhanced/-/enhanced-0.2.8.tgz", + "integrity": "sha512-6fGM/GiKw6LZiBe6DF8Petz6ih/Yyf3q2htLrx+hrWoDWfWEoWlLvoCUsVkY2UgMCLKid7Fm3Auc4w8A4aRjvQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.2.8", + "@module-federation/dts-plugin": "0.2.8", + "@module-federation/managers": "0.2.8", + "@module-federation/manifest": "0.2.8", + "@module-federation/rspack": "0.2.8", + "@module-federation/runtime-tools": "0.2.8", + "@module-federation/sdk": "0.2.8", + "btoa": "^1.2.1", + "upath": "2.0.1" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + }, + "webpack": { + "optional": true + } } }, - "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" - ], + "node_modules/@module-federation/managers": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/managers/-/managers-0.2.8.tgz", + "integrity": "sha512-S5GXqt2Vrs1+uNXHw7UzZ7m3fs8H3nxNsNGQ0j5+HiT5yA7uRTY1AZJZCGAHzG6XImJ1DzL/SW1acM2Hwj0aAw==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@module-federation/sdk": "0.2.8", + "find-pkg": "2.0.0", + "fs-extra": "9.1.0" } }, - "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" - ], + "node_modules/@module-federation/managers/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">= 10" + "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" - ], + "node_modules/@module-federation/manifest": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/manifest/-/manifest-0.2.8.tgz", + "integrity": "sha512-kw4PeAldkOuGCWfCnDzZwPHUx5qv9+WztY5+TEbsgXc5E+/e2NDA6Gg3eT8zUGeexeGdab3f+DuN9ZClZJYVGA==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@module-federation/dts-plugin": "0.2.8", + "@module-federation/managers": "0.2.8", + "@module-federation/sdk": "0.2.8", + "chalk": "3.0.0", + "find-pkg": "2.0.0" } }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "node_modules/@module-federation/manifest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "eslint-scope": "5.1.1" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@module-federation/manifest/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@module-federation/manifest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@module-federation/manifest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "node_modules/@module-federation/rspack": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/rspack/-/rspack-0.2.8.tgz", + "integrity": "sha512-5Bofm3cY7OOwO2DT5TevITd+HAA03zsY1wwsMb1BP6NkS/ukUtsjuRo2Anua0RkHBEIx+Dv5rpqOn7qSlOm1Fg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12.4.0" + "dependencies": { + "@module-federation/bridge-react-webpack-plugin": "0.2.8", + "@module-federation/dts-plugin": "0.2.8", + "@module-federation/managers": "0.2.8", + "@module-federation/manifest": "0.2.8", + "@module-federation/runtime-tools": "0.2.8", + "@module-federation/sdk": "0.2.8" + }, + "peerDependencies": { + "typescript": "^4.9.0 || ^5.0.0", + "vue-tsc": ">=1.0.24" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/@nrwl/devkit": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.5.4.tgz", - "integrity": "sha512-T3cRQErKfEyrx9x+xsnY4kg5+vmwPn3UQY1GwsPuuhqYeJn2NAQFzb8gcnZ6mSTqughum3eqp2nNDmpUkWO7tg==", + "node_modules/@module-federation/runtime": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.2.8.tgz", + "integrity": "sha512-8xmA/+z1zD09F5qU8VnSWLExqTCVWoHOguXsCX79kkqp7i0c+D2YaebWzlQ2kku+DU+0VIzXpQ3BBcumZ3v3wQ==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "19.5.4" + "@module-federation/sdk": "0.2.8" } }, - "node_modules/@nrwl/eslint-plugin-nx": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.5.4.tgz", - "integrity": "sha512-JfIB56mbVGS1X/vdH84SIxzfWzflBUQCAIjFuTyaAAhHwRyP6gS/tXtLwwLx3lwRJa9Em+9X/YuvKNjLkrsfjw==", + "node_modules/@module-federation/runtime-tools": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.2.8.tgz", + "integrity": "sha512-RSNtyhcNvnTQIdzRUIOGue6WQA/9mL9cY/n0dEd357L/lmLCvfHiZbowlkacckDzyApariUHxzkHrU2Q6kzoew==", "dev": true, "license": "MIT", "dependencies": { - "@nx/eslint-plugin": "19.5.4" + "@module-federation/runtime": "0.2.8", + "@module-federation/webpack-bundler-runtime": "0.2.8" } }, - "node_modules/@nrwl/jest": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-19.5.4.tgz", - "integrity": "sha512-dlu7LBtD4RYavMZ0sBz9NqkYc1YbMYDM/637xDWRdZV17tG7214ATyA0YgVb15UisTkWQpns2tLBXQ/UbkJvFA==", + "node_modules/@module-federation/sdk": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.2.8.tgz", + "integrity": "sha512-eGMnJxdRDgt6dtMv8gkAlzEbTPWVHb3AHUNUG0w56wcbIF0RHC6kmvpHpSQyq4DVGWv3U4g/ZiH5BvBlqEelDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@module-federation/third-party-dts-extractor": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/third-party-dts-extractor/-/third-party-dts-extractor-0.2.8.tgz", + "integrity": "sha512-VGXvdsRlljbFUfGeA448CxR7i6fLWJN07ViRuNXYYXc19e4bQVhBHzrf7eCv9ahcf/tA/8YYCS2h11ixbD691A==", "dev": true, "license": "MIT", "dependencies": { - "@nx/jest": "19.5.4" + "find-pkg": "2.0.0", + "fs-extra": "9.1.0", + "resolve": "1.22.8" } }, - "node_modules/@nrwl/js": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-19.5.4.tgz", - "integrity": "sha512-LIhqrS8hSvVkZp5Qu0Cu0oiNaZjKPOpx9cDn0YKT+XmELdhjywZjcNBv8m9jE27wMX5ritVoVGiPLGUnpQlQmw==", + "node_modules/@module-federation/third-party-dts-extractor/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "license": "MIT", "dependencies": { - "@nx/js": "19.5.4" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@nrwl/linter": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/linter/-/linter-19.5.4.tgz", - "integrity": "sha512-1pMQNWIWrp0cOy7a0EnIpQuwnn47JFmS6c+Pg22cx4SBTeViOtFR79UOr6bcYpeJFivZ2C2ld+9zzgzhk+6GIA==", + "node_modules/@module-federation/webpack-bundler-runtime": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.2.8.tgz", + "integrity": "sha512-tiW1kD/V3QNul1/O3Y3lwQv/r4sUU4jvWZykrLvHYt2vuoGe1d4tHnSIFEVEAi9FSpuDwdRK2+NaWBr92gIS7Q==", "dev": true, "license": "MIT", "dependencies": { - "@nx/eslint": "19.5.4" + "@module-federation/runtime": "0.2.8", + "@module-federation/sdk": "0.2.8" } }, - "node_modules/@nrwl/tao": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.5.4.tgz", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@emnapi/core": "^1.1.0", + "@emnapi/runtime": "^1.1.0", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "13.1.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-13.1.5.tgz", + "integrity": "sha512-3kvLTX35bOWOCKU8KY74Ygczc55Qk/kB2TQy0tH7Rti6hzZ6Aij7WQ8zHdIVjmnlD0n/zXWXrIf5y56RKcLQkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@next/font": { + "version": "13.4.13", + "resolved": "https://registry.npmjs.org/@next/font/-/font-13.4.13.tgz", + "integrity": "sha512-jzjUvjO967E2XWku5aImWRVApGwsTJZPp3lY5yFNWZHMkoNNKU9fsTEAhWVcKxCOYmHmSX1n2E09VkzuFdF48Q==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", + "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "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" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@nrwl/cypress": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/cypress/-/cypress-19.5.4.tgz", + "integrity": "sha512-5dETXTjxuGYWRLhe+Zrq8fTjc6RE/YsQtQbwHpoQmZ3K8rBl+aBplEmdX8AxDfCJ7sk9ksixL0EZFIREexyBgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/cypress": "19.5.4" + } + }, + "node_modules/@nrwl/devkit": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-19.5.4.tgz", + "integrity": "sha512-T3cRQErKfEyrx9x+xsnY4kg5+vmwPn3UQY1GwsPuuhqYeJn2NAQFzb8gcnZ6mSTqughum3eqp2nNDmpUkWO7tg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/devkit": "19.5.4" + } + }, + "node_modules/@nrwl/eslint-plugin-nx": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-19.5.4.tgz", + "integrity": "sha512-JfIB56mbVGS1X/vdH84SIxzfWzflBUQCAIjFuTyaAAhHwRyP6gS/tXtLwwLx3lwRJa9Em+9X/YuvKNjLkrsfjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/eslint-plugin": "19.5.4" + } + }, + "node_modules/@nrwl/jest": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/jest/-/jest-19.5.4.tgz", + "integrity": "sha512-dlu7LBtD4RYavMZ0sBz9NqkYc1YbMYDM/637xDWRdZV17tG7214ATyA0YgVb15UisTkWQpns2tLBXQ/UbkJvFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/jest": "19.5.4" + } + }, + "node_modules/@nrwl/js": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/js/-/js-19.5.4.tgz", + "integrity": "sha512-LIhqrS8hSvVkZp5Qu0Cu0oiNaZjKPOpx9cDn0YKT+XmELdhjywZjcNBv8m9jE27wMX5ritVoVGiPLGUnpQlQmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/js": "19.5.4" + } + }, + "node_modules/@nrwl/linter": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/linter/-/linter-19.5.4.tgz", + "integrity": "sha512-1pMQNWIWrp0cOy7a0EnIpQuwnn47JFmS6c+Pg22cx4SBTeViOtFR79UOr6bcYpeJFivZ2C2ld+9zzgzhk+6GIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/eslint": "19.5.4" + } + }, + "node_modules/@nrwl/react": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/react/-/react-19.5.4.tgz", + "integrity": "sha512-ODexqf5FqZWbCX/uM2uis1mNtz7aA6URl8TS0SET5Ma7hMISPhdOX/pNRtR95GG8DSKyXplKoKZNExq7cgYbQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/react": "19.5.4" + } + }, + "node_modules/@nrwl/storybook": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/storybook/-/storybook-19.5.4.tgz", + "integrity": "sha512-/mataTFRgMR5//iwMhwxrsAjasmdUklPdixEqkXaYigK8nBnPJa5zVhIxID3Y5adHBIILQtS6B68SJo1+ECiQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/storybook": "19.5.4" + } + }, + "node_modules/@nrwl/tao": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-19.5.4.tgz", "integrity": "sha512-LNCi+2Rb17wNkUUdX2OQPRv9qOrstlmuAAA9VVcIcW78NdybjgWWvMIhf4NrAkjn7/uALrZdv22zyiGekmheDw==", "dev": true, "license": "MIT", "dependencies": { - "nx": "19.5.4", - "tslib": "^2.3.0" + "nx": "19.5.4", + "tslib": "^2.3.0" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/vite": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/vite/-/vite-19.5.4.tgz", + "integrity": "sha512-7oPkl/IaScxcQn0t5B7AlsJrDURGZ17zMISLYkTCaHHAbF2sqfOrTE0Hq7MfnrvdUtrYH7nz3gTkdJHjFMBreg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/vite": "19.5.4" + } + }, + "node_modules/@nrwl/web": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/web/-/web-19.5.4.tgz", + "integrity": "sha512-oKripEPoMbUjPUYbaHqR3ooKiFhH7YLijsC3/r2a/1YxxO6YAOVkuaJcov+Tp9W/Yi8vr++7R+A8ZXRFJdpk6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/web": "19.5.4" + } + }, + "node_modules/@nrwl/workspace": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-19.5.4.tgz", + "integrity": "sha512-0vrhaotIhuNbP5qeKBC0xC9sEZfpPfUG27lf/mVWdkRCreJXFrIJL+R74care9gnDr9ZFR8a1LalYB1JuG5QWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/workspace": "19.5.4" + } + }, + "node_modules/@nx/cypress": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/cypress/-/cypress-19.5.4.tgz", + "integrity": "sha512-UNIXlxX4Ru9RF33o7IKWkMwGGqQy5bb145hCsLcmlQapKKwK44LNmDgnjL1tz+22r2jSw9LPGq6ECf7PUum3pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/cypress": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/eslint": "19.5.4", + "@nx/js": "19.5.4", + "@phenomnomnominal/tsquery": "~5.0.1", + "detect-port": "^1.5.1", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "cypress": ">= 3 < 14" + }, + "peerDependenciesMeta": { + "cypress": { + "optional": true + } + } + }, + "node_modules/@nx/devkit": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.5.4.tgz", + "integrity": "sha512-0TG2iU0xVRuElLP2aLeRSKUynsC+UgHqE/FJW2IcglHngs2/Duw2A4HDUVVOxztkEQPmp736qkYSwFO0nlOGxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/devkit": "19.5.4", + "ejs": "^3.1.7", + "enquirer": "~2.3.6", + "ignore": "^5.0.4", + "minimatch": "9.0.3", + "semver": "^7.5.3", + "tmp": "~0.2.1", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" + }, + "peerDependencies": { + "nx": ">= 17 <= 20" + } + }, + "node_modules/@nx/devkit/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@nx/devkit/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/devkit/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/eslint": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-19.5.4.tgz", + "integrity": "sha512-mFqVAdopv7CUwtzRtY64QF2B8wh0gHsne0iQJNPV78h5n2AzJBqgj1h3+UL8fOqqiloEfiHzKLz2myx2DEQbnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/devkit": "19.5.4", + "@nx/js": "19.5.4", + "@nx/linter": "19.5.4", + "semver": "^7.5.3", + "tslib": "^2.3.0", + "typescript": "~5.4.2" + }, + "peerDependencies": { + "@zkochan/js-yaml": "0.0.7", + "eslint": "^8.0.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "@zkochan/js-yaml": { + "optional": true + } + } + }, + "node_modules/@nx/eslint-plugin": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-19.5.4.tgz", + "integrity": "sha512-7APy8R0hkf2CYKmyxvzEqQRUe/fCTQW3dpiqL+S5Y5QVLMJY9zNlJDhR9SeXBRPi8rCH7ny3UJrnffqiZyqG4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/eslint-plugin-nx": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/js": "19.5.4", + "@typescript-eslint/type-utils": "^7.16.0", + "@typescript-eslint/utils": "^7.16.0", + "chalk": "^4.1.0", + "confusing-browser-globals": "^1.0.9", + "jsonc-eslint-parser": "^2.1.0", + "semver": "^7.5.3", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.13.2 || ^7.0.0", + "eslint-config-prettier": "^9.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/@nx/eslint-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/eslint-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/eslint-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/eslint-plugin/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/eslint-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/eslint/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/eslint/node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@nx/jest": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-19.5.4.tgz", + "integrity": "sha512-u05B4j5pfGs+lnRrlpW6s2xECSkBOileroTITUp8xl0/GQnFyBAgFolu2iqH9M/e4+gykzMEsHyK/eZrPUt20A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/reporters": "^29.4.1", + "@jest/test-result": "^29.4.1", + "@nrwl/jest": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/js": "19.5.4", + "@phenomnomnominal/tsquery": "~5.0.1", + "chalk": "^4.1.0", + "identity-obj-proxy": "3.0.0", + "jest-config": "^29.4.1", + "jest-resolve": "^29.4.1", + "jest-util": "^29.4.1", + "minimatch": "9.0.3", + "resolve.exports": "1.1.0", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" + } + }, + "node_modules/@nx/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/jest/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@nx/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/jest/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/js": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/js/-/js-19.5.4.tgz", + "integrity": "sha512-PkilOEL/JyQrZjTeuPc1Z+LfJ3kr6/Lxas/hzAjENh2mleNjaDgDVP4/2KxvHexP09wu6BARNDdsK1sXMhpPyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/plugin-proposal-decorators": "^7.22.7", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-runtime": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/preset-typescript": "^7.22.5", + "@babel/runtime": "^7.22.6", + "@nrwl/js": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/workspace": "19.5.4", + "babel-plugin-const-enum": "^1.0.1", + "babel-plugin-macros": "^2.8.0", + "babel-plugin-transform-typescript-metadata": "^0.3.1", + "chalk": "^4.1.0", + "columnify": "^1.6.0", + "detect-port": "^1.5.1", + "fast-glob": "3.2.7", + "fs-extra": "^11.1.0", + "ignore": "^5.0.4", + "js-tokens": "^4.0.0", + "minimatch": "9.0.3", + "npm-package-arg": "11.0.1", + "npm-run-path": "^4.0.1", + "ora": "5.3.0", + "semver": "^7.5.3", + "source-map-support": "0.5.19", + "ts-node": "10.9.1", + "tsconfig-paths": "^4.1.2", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "verdaccio": "^5.0.4" + }, + "peerDependenciesMeta": { + "verdaccio": { + "optional": true + } + } + }, + "node_modules/@nx/js/node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@nx/js/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@nx/js/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@nx/js/node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@nx/js/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/js/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nx/js/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@nx/js/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/js/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@nx/js/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/js/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@nx/js/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@nx/js/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/js/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/js/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/js/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/js/node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/@nx/linter": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/linter/-/linter-19.5.4.tgz", + "integrity": "sha512-RyXO75nd316kthV6KEK/4EptPdc8Y7Pi3sWmHGZdNwMDcEP9IDuYpCginF0/m7SWOMU1PXR/5c9oJJt7SolsPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nx/eslint": "19.5.4" + } + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.5.4.tgz", + "integrity": "sha512-s+OmSsYUtECmEKAdzSsYoO9vamx+njiP72eSZusmTh7fCJg+dW3dcifRkUf3h1dcM53hffXcmxKEoWxZMAeuXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.5.4.tgz", + "integrity": "sha512-GjA6aThF9P7FR3OdNZn4g9c1bJeQMOdQmo2jaBaGmUPnOIZSEWinHkvh5g8vDg+jNwRdHKK84jJWWW0/o73iYQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-freebsd-x64": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.5.4.tgz", + "integrity": "sha512-KPVTmg2NpvON3+sh2pNWv2GJow5CL3fX2xBo4cI9D50DDZOD4fB68S2v5q6nLC1QWOwQcC0PLnSpoKaDB0PgQg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.5.4.tgz", + "integrity": "sha512-a535HwxVhTS+ngcoFxrsqmggpsKWquubILZhIeY/q+XW6nX61FEb/EqlMkc+aJLHD1LQBGax1W+j7YvTA/66Lw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.5.4.tgz", + "integrity": "sha512-eRu/IoPB68MQeEmfyub+P79eDYvXOyNa706rp0JnDHL5LMw12kPF3MIeqc/v7o6xWakGHCSnTCulcqsl8HXryg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.5.4.tgz", + "integrity": "sha512-r5NNVngNwTe+zpUAAZAgCezDkjc0pi2zrr8VwiaRZsmVjhHtvvsXJgo1ONw5s2HjKoKuTFEa5jKTUlAHkaQ7Kg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.5.4.tgz", + "integrity": "sha512-8TWwjyp/bK2a/CHK2HuC7I8iITC9ytEvfru8/kw1mSyoK4kSDlzkL/1uDl536ULXLWORulfEzaGb61GynVc1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.5.4.tgz", + "integrity": "sha512-5Pf32iv9nnmSV/oOHd9k/5L45m3BooSj096G/ejAN3BHMr4CZIMhjDcQq9ZX7pAZFchU5zL0+dNClK70QfA7PA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.5.4.tgz", + "integrity": "sha512-fyKGfde4Pq9r5qQMLIleujq7B5ta86y8RSPUruoN6zaGrNg6waqbpMdZUjjsg9L7PP9RPaMHPMubC21OnQQomQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.5.4.tgz", + "integrity": "sha512-gcAr5zZQKiAxHZ7iUOVeMLf/KIh4EFbF07Q0uSmgGmUJL1u3mZTjeG57V1AMZbTQESGY43rgoymqVYkghc5Jlw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nx/react": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/react/-/react-19.5.4.tgz", + "integrity": "sha512-hG3UVI+0+fis1vLQgse9cKZ6Xqj0UWe3/ZZWvR4cz3MXmLj0n6IB8do20g5rsyH05h/ML4P1VRtp5R8fnHo/Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@module-federation/enhanced": "~0.2.3", + "@nrwl/react": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/eslint": "19.5.4", + "@nx/js": "19.5.4", + "@nx/web": "19.5.4", + "@phenomnomnominal/tsquery": "~5.0.1", + "@svgr/webpack": "^8.0.1", + "chalk": "^4.1.0", + "file-loader": "^6.2.0", + "minimatch": "9.0.3", + "tslib": "^2.3.0" + } + }, + "node_modules/@nx/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/react/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@nx/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/react/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/storybook": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/storybook/-/storybook-19.5.4.tgz", + "integrity": "sha512-y3xz9s7p+NAadVfIx4cyhacN3aUsAkWluxjGk9MkDppWFhhzE7P6WrqN93p1lYmhzgbfxqGuQkM3bhscCFVntw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/storybook": "19.5.4", + "@nx/cypress": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/eslint": "19.5.4", + "@nx/js": "19.5.4", + "@phenomnomnominal/tsquery": "~5.0.1", + "semver": "^7.5.3", + "tslib": "^2.3.0" + } + }, + "node_modules/@nx/storybook/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nx/vite": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/vite/-/vite-19.5.4.tgz", + "integrity": "sha512-mCJ0ctPNrhwj5a4OEUcOVXqC7331XLaqBhC1ezDPoz815vSQuQB2SizeCUOpBWWLlhgR4Qs7rKB5cg/GKnZuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/vite": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/js": "19.5.4", + "@phenomnomnominal/tsquery": "~5.0.1", + "@swc/helpers": "~0.5.0", + "enquirer": "~2.3.6", + "tsconfig-paths": "^4.1.2" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vitest": "^1.3.1" + } + }, + "node_modules/@nx/web": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/web/-/web-19.5.4.tgz", + "integrity": "sha512-WFqyO8eA9ZhEG+EFByZubyLgdEEGiO5C03qz1scnJ13xF4OmTbK1umKioK+7P3MJZKo4i9p61T0gd782cKw5ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/web": "19.5.4", + "@nx/devkit": "19.5.4", + "@nx/js": "19.5.4", + "chalk": "^4.1.0", + "detect-port": "^1.5.1", + "http-server": "^14.1.0", + "tslib": "^2.3.0" + } + }, + "node_modules/@nx/web/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/web/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/web/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/web/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/workspace": { + "version": "19.5.4", + "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-19.5.4.tgz", + "integrity": "sha512-GI3uMJYwPxjPGHA0UuXZtIqf/fgiCDq63Ns7zpdzwaeOvQbtHySFVV6zclXx/3dXjJsBpEiOYNKPGf17jqx6Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nrwl/workspace": "19.5.4", + "@nx/devkit": "19.5.4", + "chalk": "^4.1.0", + "enquirer": "~2.3.6", + "nx": "19.5.4", + "tslib": "^2.3.0", + "yargs-parser": "21.1.1" + } + }, + "node_modules/@nx/workspace/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@nx/workspace/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@nx/workspace/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@nx/workspace/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@originjs/vite-plugin-commonjs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@originjs/vite-plugin-commonjs/-/vite-plugin-commonjs-1.0.3.tgz", + "integrity": "sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==", + "license": "MulanPSL2", + "dependencies": { + "esbuild": "^0.14.14" + } + }, + "node_modules/@originjs/vite-plugin-commonjs/node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@originjs/vite-plugin-commonjs/node_modules/esbuild": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.14.54", + "esbuild-android-64": "0.14.54", + "esbuild-android-arm64": "0.14.54", + "esbuild-darwin-64": "0.14.54", + "esbuild-darwin-arm64": "0.14.54", + "esbuild-freebsd-64": "0.14.54", + "esbuild-freebsd-arm64": "0.14.54", + "esbuild-linux-32": "0.14.54", + "esbuild-linux-64": "0.14.54", + "esbuild-linux-arm": "0.14.54", + "esbuild-linux-arm64": "0.14.54", + "esbuild-linux-mips64le": "0.14.54", + "esbuild-linux-ppc64le": "0.14.54", + "esbuild-linux-riscv64": "0.14.54", + "esbuild-linux-s390x": "0.14.54", + "esbuild-netbsd-64": "0.14.54", + "esbuild-openbsd-64": "0.14.54", + "esbuild-sunos-64": "0.14.54", + "esbuild-windows-32": "0.14.54", + "esbuild-windows-64": "0.14.54", + "esbuild-windows-arm64": "0.14.54" + } + }, + "node_modules/@ory/client": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@ory/client/-/client-1.6.2.tgz", + "integrity": "sha512-eeSkFZsrX/hLaariBg2I9PQWueE9IVAV3Tps5UE7CYEvrGziFB1zdv8joQDGMss5O3Yv/CSlSf4rOwTeENDqBg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "axios": "^1.6.1" + } + }, + "node_modules/@ory/client-fetch": { + "version": "1.15.0-next.0", + "resolved": "https://registry.npmjs.org/@ory/client-fetch/-/client-fetch-1.15.0-next.0.tgz", + "integrity": "sha512-EWJrILnh84nzE1zATApxtdDcvGVBSwsbh8bLfMxYIxl8YqNiUc2r/CCLaatzlpNNlKnXVU5mLKs99QLAjk1PjQ==", + "license": "Apache-2.0" + }, + "node_modules/@ory/elements": { + "resolved": "packages/react", + "link": true + }, + "node_modules/@ory/elements-markup": { + "resolved": "packages/markup", + "link": true + }, + "node_modules/@ory/elements-preact": { + "resolved": "packages/preact", + "link": true + }, + "node_modules/@ory/elements-react": { + "resolved": "packages/elements-react", + "link": true + }, + "node_modules/@ory/elements-test": { + "resolved": "packages/test", + "link": true + }, + "node_modules/@phenomnomnominal/tsquery": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", + "integrity": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esquery": "^1.4.0" + }, + "peerDependencies": { + "typescript": "^3 || ^4 || ^5" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/experimental-ct-core": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-core/-/experimental-ct-core-1.46.0.tgz", + "integrity": "sha512-4bHw+P0ub0A/B6tbiqLQFwvaR+wsH5fE2yt1rxWg/dtE8uGhqEeAav9TX7j4PmILM86R3Le21h94wdDIHyeJBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.46.0", + "playwright-core": "1.46.0", + "vite": "^5.2.8" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@playwright/experimental-ct-react": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.46.0.tgz", + "integrity": "sha512-BSEfTBes2ljEQZxmtPpEQi8ZJns+B9F5h226Fk4/DdJbvueriEcJa4uls6KRIScSX8gd27Vg3P9T/buxW2BvjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@playwright/experimental-ct-core": "1.46.0", + "@vitejs/plugin-react": "^4.2.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@playwright/test": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz", + "integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.46.0" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@preact/preset-vite": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.5.0.tgz", + "integrity": "sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.14.9", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@prefresh/vite": "^2.2.8", + "@rollup/pluginutils": "^4.1.1", + "babel-plugin-transform-hook-names": "^1.0.2", + "debug": "^4.3.1", + "kolorist": "^1.2.10", + "resolve": "^1.20.0" + }, + "peerDependencies": { + "@babel/core": "7.x", + "vite": "2.x || 3.x || 4.x" + } + }, + "node_modules/@prefresh/babel-plugin": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.1.tgz", + "integrity": "sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@prefresh/core": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.2.tgz", + "integrity": "sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "preact": "^10.0.0" + } + }, + "node_modules/@prefresh/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@prefresh/vite": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.6.tgz", + "integrity": "sha512-miYbTl2J1YNaQJWyWHJzyIpNh7vKUuXC1qCDRzPeWjhQ+9bxeXkUBGDGd9I1f37R5GQYi1S65AN5oR0BR2WzvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.22.1", + "@prefresh/babel-plugin": "0.5.1", + "@prefresh/core": "^1.5.1", + "@prefresh/utils": "^1.2.0", + "@rollup/pluginutils": "^4.2.1" + }, + "peerDependencies": { + "preact": "^10.4.0", + "vite": ">=2.0.0" + } + }, + "node_modules/@prefresh/vite/node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@prefresh/vite/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@prefresh/vite/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@remix-run/router": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.1.tgz", + "integrity": "sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz", + "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz", + "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", + "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz", + "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz", + "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz", + "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz", + "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz", + "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz", + "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz", + "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz", + "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz", + "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz", + "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz", + "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz", + "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz", + "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", + "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.5.1.tgz", + "integrity": "sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", + "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.13.3.tgz", + "integrity": "sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.5.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.3.tgz", + "integrity": "sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.13.3", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", + "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@storybook/addon-actions": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.0.tgz", + "integrity": "sha512-HvAc3fW979JVw8CSKXZMouvgrJ2BNLNWaUB8jNokQb3Us00P6igVKLwg/pBV8GBgDr5Ng4pHYqi/ZH+xzEYFFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.0.tgz", + "integrity": "sha512-qaV/QsXoviAmBYFszI/KN1CaI/LcACGX9RCBB54fMau3JuouIBU/zTl2jY2+BioCBk6oY8KqcnAS1coOZzlNXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-controls": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.0.tgz", + "integrity": "sha512-Id4j6Neimkdq0OyfQ3qkHpKLisbN08M8pXHDI/A0VeF91xEGBdc1bJgS/EU+ifa24tr5SRYwlAlcBDAWJbZMfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.0.tgz", + "integrity": "sha512-LrvWBDX5Vi//82Q78QRbTsG+9rJU9JJFAVPk1NnLp2Yn0F4FueVzIw8AabAkZFy0LHPMGV+EHpkPtYz4Czkhgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.3.0", + "@storybook/csf-plugin": "8.3.0", + "@storybook/global": "^5.0.0", + "@storybook/react-dom-shim": "8.3.0", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "fs-extra": "^11.1.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-docs/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/addon-essentials": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.0.tgz", + "integrity": "sha512-y+hlMnIoD+h/diY7BvIeySPCz/ZtJPPZfS/COQuPRXfPWCr37p9XLEz3E+m2spniAbgGv9KpvdqQd0kWcwwfiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/addon-actions": "8.3.0", + "@storybook/addon-backgrounds": "8.3.0", + "@storybook/addon-controls": "8.3.0", + "@storybook/addon-docs": "8.3.0", + "@storybook/addon-highlight": "8.3.0", + "@storybook/addon-measure": "8.3.0", + "@storybook/addon-outline": "8.3.0", + "@storybook/addon-toolbars": "8.3.0", + "@storybook/addon-viewport": "8.3.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-highlight": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.0.tgz", + "integrity": "sha512-bS1rqzbwGgeTKVLYEyY+6DzpafLtDLnoSF+KzRIiV7/1H30evhwVSzkgX1L2F6+ssS1n9WrRJeglniv9j+5mGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-interactions": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.3.0.tgz", + "integrity": "sha512-nAVUFpt2kTaPMY7RxfZwiYipngxf76dfx1E/QP9n/333+/pe88UwXbUkmLKpyC8EWqZXDI0oSV5XDDzoI5x3dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.3.0", + "@storybook/test": "8.3.0", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.3.0.tgz", + "integrity": "sha512-nUnoMPPuxM8yJ7LCrppsUrn3gwqt4E0si9fqIIb5IkB56vz48RxCO9MtO1qjwhWosfMdN6boHaOl1Qc6IxV3Lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-measure": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.0.tgz", + "integrity": "sha512-0TZ2ihzX0mRr1rNrFDieDsIKASZ2qUg3eHDkskLKOhxwoUHqsLzXlvS/scKZ+zb8pgjrvsBAsjyPstlrK+z0Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-outline": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.0.tgz", + "integrity": "sha512-xTvBGgX6RIkKjQiAi9LvPGbGuBa6tsJS2jCmjwiei3SX3I56E6Bf3KASsFH2x8j9khMVsgQcfA3QDIhjwatdgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-toolbars": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.0.tgz", + "integrity": "sha512-/3/jnd70tnvh3x1EL8axE4TR9EHwC+bBch1uIc3vH/lmyZBqSBVA50clz23FvjhykjcaKQogcugCuU1w5TJlBA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/addon-viewport": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.0.tgz", + "integrity": "sha512-6h/0mKipUG6w2o5IOzyhvC/2ifJlSNIA60hLkJ291g42+ilzkydpby9TBN7FcnrVL3Bv+oLgkDLBWVCqma/fyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/blocks": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.0.tgz", + "integrity": "sha512-V7D5lv5R+GJya9cCZOCjmOVjhvP5J3KIaclQuuGGJda/ZD/SpwHcFOGSpo6sNR2UKHXXvb61oM8gRQQWDvqPlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.10", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.4.5", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-manager": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.20.tgz", + "integrity": "sha512-e2GzpjLaw6CM/XSmc4qJRzBF8GOoOyotyu3JrSPTYOt4RD8kjUsK4QlismQM1DQRu8i39aIexxmRbiJyD74xzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fal-works/esbuild-plugin-global-externals": "^2.1.2", + "@storybook/core-common": "7.6.20", + "@storybook/manager": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@types/ejs": "^3.1.1", + "@types/find-cache-dir": "^3.2.1", + "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "browser-assert": "^1.2.1", + "ejs": "^3.1.8", + "esbuild": "^0.18.0", + "esbuild-plugin-alias": "^0.2.1", + "express": "^4.17.3", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "process": "^0.11.10", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-manager/node_modules/@storybook/core-common": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.20.tgz", + "integrity": "sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-events": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@storybook/types": "7.6.20", + "@types/find-cache-dir": "^3.2.1", + "@types/node": "^18.0.0", + "@types/node-fetch": "^2.6.4", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.18.0", + "esbuild-register": "^3.5.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-manager/node_modules/@storybook/node-logger": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.20.tgz", + "integrity": "sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-manager/node_modules/@storybook/types": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.20.tgz", + "integrity": "sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "7.6.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-manager/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/builder-manager/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/builder-manager/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@storybook/builder-manager/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/builder-manager/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/builder-manager/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/builder-manager/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-manager/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/builder-manager/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/builder-manager/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/builder-manager/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-vite": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.3.0.tgz", + "integrity": "sha512-9qo3zcZkEpy69E7cx9OHHexBe9+25vH0p+4sWZSjl2sjqjhaxLN5eXnODQbDsOKZNRVrLVTGmKxfFJzAJFnY0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/csf-plugin": "8.3.0", + "@types/find-cache-dir": "^3.2.1", + "browser-assert": "^1.2.1", + "es-module-lexer": "^1.5.0", + "express": "^4.19.2", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "magic-string": "^0.30.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "@preact/preset-vite": "*", + "storybook": "^8.3.0", + "typescript": ">= 4.3.x", + "vite": "^4.0.0 || ^5.0.0", + "vite-plugin-glimmerx": "*" + }, + "peerDependenciesMeta": { + "@preact/preset-vite": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vite-plugin-glimmerx": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-vite/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/channels": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.20.tgz", + "integrity": "sha512-4hkgPSH6bJclB2OvLnkZOGZW1WptJs09mhQ6j6qLjgBZzL/ZdD6priWSd7iXrmPiN5TzUobkG4P4Dp7FjkiO7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/client-logger": "7.6.20", + "@storybook/core-events": "7.6.20", + "@storybook/global": "^5.0.0", + "qs": "^6.10.0", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/client-logger": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.20.tgz", + "integrity": "sha512-NwG0VIJQCmKrSaN5GBDFyQgTAHLNishUPLW1NrzqTDNAhfZUoef64rPQlinbopa0H4OXmlB+QxbQIb3ubeXmSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0" }, - "bin": { - "tao": "index.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nrwl/workspace": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nrwl/workspace/-/workspace-19.5.4.tgz", - "integrity": "sha512-0vrhaotIhuNbP5qeKBC0xC9sEZfpPfUG27lf/mVWdkRCreJXFrIJL+R74care9gnDr9ZFR8a1LalYB1JuG5QWA==", + "node_modules/@storybook/components": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.3.0.tgz", + "integrity": "sha512-SO/iTkmWp3aYCIy8DEhRMoOn6K7lcKTPNC/YjTvOFFzwq/CLq86WNqz6aX+wV5n6MvWTs7evSwMoz7lp4Lc4sw==", "dev": true, "license": "MIT", - "dependencies": { - "@nx/workspace": "19.5.4" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" } }, - "node_modules/@nx/devkit": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-19.5.4.tgz", - "integrity": "sha512-0TG2iU0xVRuElLP2aLeRSKUynsC+UgHqE/FJW2IcglHngs2/Duw2A4HDUVVOxztkEQPmp736qkYSwFO0nlOGxg==", + "node_modules/@storybook/core": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.0.tgz", + "integrity": "sha512-UeErpD0xRIP2nFA2TjPYxtEyv24O6VRfq2XXU5ki2QPYnxOxAPBbrMHCADjgBwNS4S2NUWTaVBYxybISVbrj+w==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/devkit": "19.5.4", - "ejs": "^3.1.7", - "enquirer": "~2.3.6", - "ignore": "^5.0.4", - "minimatch": "9.0.3", - "semver": "^7.5.3", - "tmp": "~0.2.1", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "@storybook/csf": "^0.1.11", + "@types/express": "^4.17.21", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "process": "^0.11.10", + "recast": "^0.23.5", + "semver": "^7.6.2", + "util": "^0.12.5", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-common": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.3.0.tgz", + "integrity": "sha512-Sh10j2xhAVFumsXP5BiUb/JNnOaw6CuZrh1qGtxGIdtXfW9oiPx9Z2vDvEF/dEK5gObFIJ+fNwrL7zy2ap75CA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "nx": ">= 17 <= 20" + "storybook": "^8.3.0" } }, - "node_modules/@nx/devkit/node_modules/brace-expansion": { + "node_modules/@storybook/core-events": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.20.tgz", + "integrity": "sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.20.tgz", + "integrity": "sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@aw-web-design/x-default-browser": "1.4.126", + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-manager": "7.6.20", + "@storybook/channels": "7.6.20", + "@storybook/core-common": "7.6.20", + "@storybook/core-events": "7.6.20", + "@storybook/csf": "^0.1.2", + "@storybook/csf-tools": "7.6.20", + "@storybook/docs-mdx": "^0.1.0", + "@storybook/global": "^5.0.0", + "@storybook/manager": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@storybook/preview-api": "7.6.20", + "@storybook/telemetry": "7.6.20", + "@storybook/types": "7.6.20", + "@types/detect-port": "^1.3.0", + "@types/node": "^18.0.0", + "@types/pretty-hrtime": "^1.0.0", + "@types/semver": "^7.3.4", + "better-opn": "^3.0.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "compression": "^1.7.4", + "detect-port": "^1.3.0", + "express": "^4.17.3", + "fs-extra": "^11.1.0", + "globby": "^11.0.2", + "lodash": "^4.17.21", + "open": "^8.4.0", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "read-pkg-up": "^7.0.1", + "semver": "^7.3.7", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util": "^0.12.4", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/@storybook/core-common": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.20.tgz", + "integrity": "sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/core-events": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@storybook/types": "7.6.20", + "@types/find-cache-dir": "^3.2.1", + "@types/node": "^18.0.0", + "@types/node-fetch": "^2.6.4", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.18.0", + "esbuild-register": "^3.5.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/@storybook/node-logger": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.20.tgz", + "integrity": "sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.20.tgz", + "integrity": "sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "7.6.20", + "@storybook/client-logger": "7.6.20", + "@storybook/core-events": "7.6.20", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.6.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/@storybook/types": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.20.tgz", + "integrity": "sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/channels": "7.6.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", @@ -5321,23 +8663,141 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/@storybook/core-server/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@storybook/core-server/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-server/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/core-server/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-server/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-server/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/core-server/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/core-server/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/devkit/node_modules/semver": { + "node_modules/@storybook/core/node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@storybook/core/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", @@ -5350,179 +8810,132 @@ "node": ">=10" } }, - "node_modules/@nx/eslint": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/eslint/-/eslint-19.5.4.tgz", - "integrity": "sha512-mFqVAdopv7CUwtzRtY64QF2B8wh0gHsne0iQJNPV78h5n2AzJBqgj1h3+UL8fOqqiloEfiHzKLz2myx2DEQbnQ==", + "node_modules/@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", "dev": true, "license": "MIT", "dependencies": { - "@nx/devkit": "19.5.4", - "@nx/js": "19.5.4", - "@nx/linter": "19.5.4", - "semver": "^7.5.3", - "tslib": "^2.3.0", - "typescript": "~5.4.2" - }, - "peerDependencies": { - "@zkochan/js-yaml": "0.0.7", - "eslint": "^8.0.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "@zkochan/js-yaml": { - "optional": true - } + "type-fest": "^2.19.0" } }, - "node_modules/@nx/eslint-plugin": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/eslint-plugin/-/eslint-plugin-19.5.4.tgz", - "integrity": "sha512-7APy8R0hkf2CYKmyxvzEqQRUe/fCTQW3dpiqL+S5Y5QVLMJY9zNlJDhR9SeXBRPi8rCH7ny3UJrnffqiZyqG4w==", + "node_modules/@storybook/csf-plugin": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.0.tgz", + "integrity": "sha512-sCmeN/OVYj95TKkMqJqxbaztIbdv5jCrtrXuNg4oJaGzNucmMNAbmv2jK2tCNE6Uz2X9IMRcseFX/h9TgjyJ9A==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/eslint-plugin-nx": "19.5.4", - "@nx/devkit": "19.5.4", - "@nx/js": "19.5.4", - "@typescript-eslint/type-utils": "^7.16.0", - "@typescript-eslint/utils": "^7.16.0", - "chalk": "^4.1.0", - "confusing-browser-globals": "^1.0.9", - "jsonc-eslint-parser": "^2.1.0", - "semver": "^7.5.3", - "tslib": "^2.3.0" + "unplugin": "^1.3.1" }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.13.2 || ^7.0.0", - "eslint-config-prettier": "^9.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "peerDependencies": { + "storybook": "^8.3.0" } }, - "node_modules/@nx/eslint-plugin/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@storybook/csf-tools": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.20.tgz", + "integrity": "sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "@storybook/csf": "^0.1.2", + "@storybook/types": "7.6.20", + "fs-extra": "^11.1.0", + "recast": "^0.23.1", + "ts-dedent": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/eslint-plugin/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@storybook/csf-tools/node_modules/@storybook/types": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.20.tgz", + "integrity": "sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "@storybook/channels": "7.6.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/eslint-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@storybook/csf-tools/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@nx/eslint-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.14" } }, - "node_modules/@nx/eslint-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/csf/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.14" } }, - "node_modules/@nx/eslint/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@storybook/docs-mdx": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", + "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, - "node_modules/@nx/eslint/node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "node_modules/@storybook/expect": { + "version": "28.1.3-5", + "resolved": "https://registry.npmjs.org/@storybook/expect/-/expect-28.1.3-5.tgz", + "integrity": "sha512-lS1oJnY1qTAxnH87C765NdfvGhksA6hBcbUVI5CHiSbNsEtr456wtg/z+dT9XlPriq1D5t2SgfNL9dBAoIGyIA==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" + "license": "MIT", + "dependencies": { + "@types/jest": "28.1.3" } }, - "node_modules/@nx/jest": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/jest/-/jest-19.5.4.tgz", - "integrity": "sha512-u05B4j5pfGs+lnRrlpW6s2xECSkBOileroTITUp8xl0/GQnFyBAgFolu2iqH9M/e4+gykzMEsHyK/eZrPUt20A==", + "node_modules/@storybook/expect/node_modules/@types/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-Tsbjk8Y2hkBaY/gJsataeb4q9Mubw9EOz7+4RjPkzD5KjTvHHs7cpws22InaoXxAVAhF5HfFbzJjo6oKWqSZLw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/reporters": "^29.4.1", - "@jest/test-result": "^29.4.1", - "@nrwl/jest": "19.5.4", - "@nx/devkit": "19.5.4", - "@nx/js": "19.5.4", - "@phenomnomnominal/tsquery": "~5.0.1", - "chalk": "^4.1.0", - "identity-obj-proxy": "3.0.0", - "jest-config": "^29.4.1", - "jest-resolve": "^29.4.1", - "jest-util": "^29.4.1", - "minimatch": "9.0.3", - "resolve.exports": "1.1.0", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" } }, - "node_modules/@nx/jest/node_modules/ansi-styles": { + "node_modules/@storybook/expect/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -5538,17 +8951,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@nx/jest/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@nx/jest/node_modules/chalk": { + "node_modules/@storybook/expect/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -5565,7 +8968,17 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nx/jest/node_modules/has-flag": { + "node_modules/@storybook/expect/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -5575,149 +8988,127 @@ "node": ">=8" } }, - "node_modules/@nx/jest/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/@storybook/expect/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@nx/jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/expect/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@nx/js": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/js/-/js-19.5.4.tgz", - "integrity": "sha512-PkilOEL/JyQrZjTeuPc1Z+LfJ3kr6/Lxas/hzAjENh2mleNjaDgDVP4/2KxvHexP09wu6BARNDdsK1sXMhpPyA==", + "node_modules/@storybook/expect/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.23.2", - "@babel/plugin-proposal-decorators": "^7.22.7", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-runtime": "^7.23.2", - "@babel/preset-env": "^7.23.2", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@nrwl/js": "19.5.4", - "@nx/devkit": "19.5.4", - "@nx/workspace": "19.5.4", - "babel-plugin-const-enum": "^1.0.1", - "babel-plugin-macros": "^2.8.0", - "babel-plugin-transform-typescript-metadata": "^0.3.1", - "chalk": "^4.1.0", - "columnify": "^1.6.0", - "detect-port": "^1.5.1", - "fast-glob": "3.2.7", - "fs-extra": "^11.1.0", - "ignore": "^5.0.4", - "js-tokens": "^4.0.0", - "minimatch": "9.0.3", - "npm-package-arg": "11.0.1", - "npm-run-path": "^4.0.1", - "ora": "5.3.0", - "semver": "^7.5.3", - "source-map-support": "0.5.19", - "ts-node": "10.9.1", - "tsconfig-paths": "^4.1.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "verdaccio": "^5.0.4" + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, - "peerDependenciesMeta": { - "verdaccio": { - "optional": true - } + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@nx/js/node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "node_modules/@storybook/expect/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=8" } }, - "node_modules/@nx/js/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "license": "MIT" }, - "node_modules/@nx/js/node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "node_modules/@storybook/icons": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.10.tgz", + "integrity": "sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@nx/js/node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "node_modules/@storybook/instrumenter": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.3.0.tgz", + "integrity": "sha512-oJmX8jbNKbPBlNMItRvEoaVAJWX1u6jsqXdIcNRCXo3PDdVnunVYz8vVkG8mbL8Cp/cKlsuQk7YBZA4IM5mRgg==", "dev": true, "license": "MIT", "dependencies": { - "acorn": "^8.11.0" + "@storybook/global": "^5.0.0", + "@vitest/utils": "^2.0.5", + "util": "^0.12.4" }, - "engines": { - "node": ">=0.4.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" } }, - "node_modules/@nx/js/node_modules/ansi-styles": { + "node_modules/@storybook/jest": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@storybook/jest/-/jest-0.2.3.tgz", + "integrity": "sha512-ov5izrmbAFObzKeh9AOC5MlmFxAcf0o5i6YFGae9sDx6DGh6alXsRM+chIbucVkUwVHVlSzdfbLDEFGY/ShaYw==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/expect": "storybook-jest", + "@testing-library/jest-dom": "^6.1.2", + "@types/jest": "28.1.3", + "jest-mock": "^27.3.0" + } + }, + "node_modules/@storybook/jest/node_modules/@types/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-Tsbjk8Y2hkBaY/gJsataeb4q9Mubw9EOz7+4RjPkzD5KjTvHHs7cpws22InaoXxAVAhF5HfFbzJjo6oKWqSZLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -5733,24 +9124,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@nx/js/node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@nx/js/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@nx/js/node_modules/chalk": { + "node_modules/@storybook/jest/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -5767,351 +9141,419 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nx/js/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/@storybook/jest/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@nx/js/node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "node_modules/@storybook/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, "engines": { "node": ">=8" } }, - "node_modules/@nx/js/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/@storybook/jest/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, "engines": { - "node": ">=14.14" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@nx/js/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/@storybook/jest/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", "dev": true, - "license": "ISC", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, "engines": { - "node": ">= 6" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@nx/js/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@storybook/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/@nx/js/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/@storybook/manager": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.20.tgz", + "integrity": "sha512-0Cf6WN0t7yEG2DR29tN5j+i7H/TH5EfPppg9h9/KiQSoFHk+6KLoy2p5do94acFU+Ro4+zzxvdCGbcYGKuArpg==", "dev": true, - "license": "ISC", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/manager-api": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.3.0.tgz", + "integrity": "sha512-5WBLEFHpe4H+9vZZLjNh7msIkyl9MPt4/C2nI+MXKZyU55xBBgiAy4fcD9aj02PcbhyR4JhLqbqmdeBe5Xafeg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/node-logger": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.3.0.tgz", + "integrity": "sha512-CNAen9zdTB/shJazE+bcOPsf5IWp2WgCrenW825m8ixYlVjBzVzNmszRZyh/o/4HVaA0SxI+Z62ag36g6BuxNg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/preview-api": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.3.0.tgz", + "integrity": "sha512-pHq/T7oWBfzc9TCIPYyJQUXuiUiFfmdrcYvuZE1kf46i7wXh9Q2/Kd3BUJWSCpBXUMoYfAxg9YysGljMII8LWA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.3.0" + } + }, + "node_modules/@storybook/react": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.3.0.tgz", + "integrity": "sha512-qd8IKXqaOG9m0VK0QukFMmKpjmm7sy1R3T681dLet8s+AEAimLH/RiBzd+0dxWng2H/Ng6ldUmCtd3Cs6w/EFQ==", + "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@storybook/components": "^8.3.0", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "^8.3.0", + "@storybook/preview-api": "^8.3.0", + "@storybook/react-dom-shim": "8.3.0", + "@storybook/theming": "^8.3.0", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^22.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "peerDependencies": { + "@storybook/test": "8.3.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.0", + "typescript": ">= 4.2.x" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "@storybook/test": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "node_modules/@nx/js/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@storybook/react-dom-shim": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.0.tgz", + "integrity": "sha512-87X4cvgwFT1ll5SzXgQq6iGbkVCgxLBpBm58akF/hzpeRkwfJDncGi/A5hElOJrBg63IkznmSJE7tf9RkrboqQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.0" } }, - "node_modules/@nx/js/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/react-vite": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.3.0.tgz", + "integrity": "sha512-VcKp/mpO8M+JsyprTGLLvAzwx7PChdWFDBasyQ0MO+YVwci78gPAZnfWNZaaEB2mdDgPPGuoSTwBgzZmP3FsPg==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.1", + "@rollup/pluginutils": "^5.0.2", + "@storybook/builder-vite": "8.3.0", + "@storybook/react": "8.3.0", + "find-up": "^5.0.0", + "magic-string": "^0.30.0", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", + "tsconfig-paths": "^4.2.0" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.3.0", + "vite": "^4.0.0 || ^5.0.0" } }, - "node_modules/@nx/js/node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "node_modules/@storybook/react-vite/node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "license": "MIT", "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" + "engines": { + "node": ">=14.0.0" }, "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { + "rollup": { "optional": true } } }, - "node_modules/@nx/linter": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/linter/-/linter-19.5.4.tgz", - "integrity": "sha512-RyXO75nd316kthV6KEK/4EptPdc8Y7Pi3sWmHGZdNwMDcEP9IDuYpCginF0/m7SWOMU1PXR/5c9oJJt7SolsPQ==", + "node_modules/@storybook/react-vite/node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "license": "MIT", "dependencies": { - "@nx/eslint": "19.5.4" - } - }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.5.4.tgz", - "integrity": "sha512-s+OmSsYUtECmEKAdzSsYoO9vamx+njiP72eSZusmTh7fCJg+dW3dcifRkUf3h1dcM53hffXcmxKEoWxZMAeuXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/@nx/nx-darwin-x64": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-19.5.4.tgz", - "integrity": "sha512-GjA6aThF9P7FR3OdNZn4g9c1bJeQMOdQmo2jaBaGmUPnOIZSEWinHkvh5g8vDg+jNwRdHKK84jJWWW0/o73iYQ==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/react-vite/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">= 10" + "node": ">=4" } }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.5.4.tgz", - "integrity": "sha512-KPVTmg2NpvON3+sh2pNWv2GJow5CL3fX2xBo4cI9D50DDZOD4fB68S2v5q6nLC1QWOwQcC0PLnSpoKaDB0PgQg==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/react-vite/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, "engines": { - "node": ">= 10" + "node": ">=6" } }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.5.4.tgz", - "integrity": "sha512-a535HwxVhTS+ngcoFxrsqmggpsKWquubILZhIeY/q+XW6nX61FEb/EqlMkc+aJLHD1LQBGax1W+j7YvTA/66Lw==", - "cpu": [ - "arm" - ], + "node_modules/@storybook/react/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, "engines": { - "node": ">= 10" + "node": ">=12" } }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.5.4.tgz", - "integrity": "sha512-eRu/IoPB68MQeEmfyub+P79eDYvXOyNa706rp0JnDHL5LMw12kPF3MIeqc/v7o6xWakGHCSnTCulcqsl8HXryg==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/react/node_modules/@types/node": { + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "undici-types": "~6.19.2" } }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.5.4.tgz", - "integrity": "sha512-r5NNVngNwTe+zpUAAZAgCezDkjc0pi2zrr8VwiaRZsmVjhHtvvsXJgo1ONw5s2HjKoKuTFEa5jKTUlAHkaQ7Kg==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/react/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 10" + "node": ">=10" } }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.5.4.tgz", - "integrity": "sha512-8TWwjyp/bK2a/CHK2HuC7I8iITC9ytEvfru8/kw1mSyoK4kSDlzkL/1uDl536ULXLWORulfEzaGb61GynVc1vg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } + "node_modules/@storybook/react/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "dev": true, + "license": "MIT" }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.5.4.tgz", - "integrity": "sha512-5Pf32iv9nnmSV/oOHd9k/5L45m3BooSj096G/ejAN3BHMr4CZIMhjDcQq9ZX7pAZFchU5zL0+dNClK70QfA7PA==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/telemetry": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.20.tgz", + "integrity": "sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@storybook/client-logger": "7.6.20", + "@storybook/core-common": "7.6.20", + "@storybook/csf-tools": "7.6.20", + "chalk": "^4.1.0", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^11.1.0", + "read-pkg-up": "^7.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.5.4.tgz", - "integrity": "sha512-fyKGfde4Pq9r5qQMLIleujq7B5ta86y8RSPUruoN6zaGrNg6waqbpMdZUjjsg9L7PP9RPaMHPMubC21OnQQomQ==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/telemetry/node_modules/@storybook/core-common": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.20.tgz", + "integrity": "sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "dependencies": { + "@storybook/core-events": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@storybook/types": "7.6.20", + "@types/find-cache-dir": "^3.2.1", + "@types/node": "^18.0.0", + "@types/node-fetch": "^2.6.4", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.18.0", + "esbuild-register": "^3.5.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.5.4.tgz", - "integrity": "sha512-gcAr5zZQKiAxHZ7iUOVeMLf/KIh4EFbF07Q0uSmgGmUJL1u3mZTjeG57V1AMZbTQESGY43rgoymqVYkghc5Jlw==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/telemetry/node_modules/@storybook/node-logger": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.20.tgz", + "integrity": "sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/workspace": { - "version": "19.5.4", - "resolved": "https://registry.npmjs.org/@nx/workspace/-/workspace-19.5.4.tgz", - "integrity": "sha512-GI3uMJYwPxjPGHA0UuXZtIqf/fgiCDq63Ns7zpdzwaeOvQbtHySFVV6zclXx/3dXjJsBpEiOYNKPGf17jqx6Dw==", + "node_modules/@storybook/telemetry/node_modules/@storybook/types": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.20.tgz", + "integrity": "sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==", "dev": true, "license": "MIT", "dependencies": { - "@nrwl/workspace": "19.5.4", - "@nx/devkit": "19.5.4", - "chalk": "^4.1.0", - "enquirer": "~2.3.6", - "nx": "19.5.4", - "tslib": "^2.3.0", - "yargs-parser": "21.1.1" + "@storybook/channels": "7.6.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@nx/workspace/node_modules/ansi-styles": { + "node_modules/@storybook/telemetry/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -6127,7 +9569,17 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@nx/workspace/node_modules/chalk": { + "node_modules/@storybook/telemetry/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/telemetry/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -6139,206 +9591,191 @@ }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@nx/workspace/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@storybook/telemetry/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nx/workspace/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/@storybook/telemetry/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/@ory/client": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@ory/client/-/client-1.6.2.tgz", - "integrity": "sha512-eeSkFZsrX/hLaariBg2I9PQWueE9IVAV3Tps5UE7CYEvrGziFB1zdv8joQDGMss5O3Yv/CSlSf4rOwTeENDqBg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "axios": "^1.6.1" + "node": ">=14.14" } }, - "node_modules/@ory/client-fetch": { - "version": "1.15.0-next.0", - "resolved": "https://registry.npmjs.org/@ory/client-fetch/-/client-fetch-1.15.0-next.0.tgz", - "integrity": "sha512-EWJrILnh84nzE1zATApxtdDcvGVBSwsbh8bLfMxYIxl8YqNiUc2r/CCLaatzlpNNlKnXVU5mLKs99QLAjk1PjQ==", - "license": "Apache-2.0" - }, - "node_modules/@ory/elements": { - "resolved": "packages/react", - "link": true - }, - "node_modules/@ory/elements-markup": { - "resolved": "packages/markup", - "link": true - }, - "node_modules/@ory/elements-preact": { - "resolved": "packages/preact", - "link": true - }, - "node_modules/@ory/elements-react": { - "resolved": "packages/elements-react", - "link": true - }, - "node_modules/@ory/elements-test": { - "resolved": "packages/test", - "link": true - }, - "node_modules/@phenomnomnominal/tsquery": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-5.0.1.tgz", - "integrity": "sha512-3nVv+e2FQwsW8Aw6qTU6f+1rfcJ3hrcnvH/mu9i8YhxO+9sqbOfpL8m6PbET5+xKOlz/VSbp0RoYWYCtIsnmuA==", + "node_modules/@storybook/telemetry/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "esquery": "^1.4.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "peerDependencies": { - "typescript": "^3 || ^4 || ^5" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@storybook/telemetry/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "optional": true, "engines": { - "node": ">=14" + "node": ">=8" } }, - "node_modules/@playwright/experimental-ct-core": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-core/-/experimental-ct-core-1.46.0.tgz", - "integrity": "sha512-4bHw+P0ub0A/B6tbiqLQFwvaR+wsH5fE2yt1rxWg/dtE8uGhqEeAav9TX7j4PmILM86R3Le21h94wdDIHyeJBA==", + "node_modules/@storybook/telemetry/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "playwright": "1.46.0", - "playwright-core": "1.46.0", - "vite": "^5.2.8" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=18" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@playwright/experimental-ct-react": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@playwright/experimental-ct-react/-/experimental-ct-react-1.46.0.tgz", - "integrity": "sha512-BSEfTBes2ljEQZxmtPpEQi8ZJns+B9F5h226Fk4/DdJbvueriEcJa4uls6KRIScSX8gd27Vg3P9T/buxW2BvjA==", + "node_modules/@storybook/telemetry/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@playwright/experimental-ct-core": "1.46.0", - "@vitejs/plugin-react": "^4.2.1" - }, - "bin": { - "playwright": "cli.js" + "find-up": "^5.0.0" }, "engines": { - "node": ">=18" + "node": ">=10" } }, - "node_modules/@playwright/test": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz", - "integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==", + "node_modules/@storybook/telemetry/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.46.0" - }, - "bin": { - "playwright": "cli.js" - }, + "license": "ISC", "engines": { - "node": ">=18" - } - }, - "node_modules/@preact/preset-vite": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@preact/preset-vite/-/preset-vite-2.5.0.tgz", - "integrity": "sha512-BUhfB2xQ6ex0yPkrT1Z3LbfPzjpJecOZwQ/xJrXGFSZD84+ObyS//41RdEoQCMWsM0t7UHGaujUxUBub7WM1Jw==", + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/telemetry/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.14.9", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@prefresh/vite": "^2.2.8", - "@rollup/pluginutils": "^4.1.1", - "babel-plugin-transform-hook-names": "^1.0.2", - "debug": "^4.3.1", - "kolorist": "^1.2.10", - "resolve": "^1.20.0" + "has-flag": "^4.0.0" }, - "peerDependencies": { - "@babel/core": "7.x", - "vite": "2.x || 3.x || 4.x" + "engines": { + "node": ">=8" } }, - "node_modules/@prefresh/babel-plugin": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@prefresh/babel-plugin/-/babel-plugin-0.5.1.tgz", - "integrity": "sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@prefresh/core": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@prefresh/core/-/core-1.5.2.tgz", - "integrity": "sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==", + "node_modules/@storybook/test": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.3.0.tgz", + "integrity": "sha512-d8y8ST8YY/pSjTxBcWitKM7YbbupN8D0obVlciZRt6WW3o8WUz6iwMuzuJuiUVwtxiRtdKL9jygC5M+aaCpFYQ==", "dev": true, "license": "MIT", + "dependencies": { + "@storybook/csf": "^0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.3.0", + "@testing-library/dom": "10.4.0", + "@testing-library/jest-dom": "6.5.0", + "@testing-library/user-event": "14.5.2", + "@vitest/expect": "2.0.5", + "@vitest/spy": "2.0.5", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, "peerDependencies": { - "preact": "^10.0.0" + "storybook": "^8.3.0" } }, - "node_modules/@prefresh/utils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@prefresh/utils/-/utils-1.2.0.tgz", - "integrity": "sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@prefresh/vite": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/@prefresh/vite/-/vite-2.4.6.tgz", - "integrity": "sha512-miYbTl2J1YNaQJWyWHJzyIpNh7vKUuXC1qCDRzPeWjhQ+9bxeXkUBGDGd9I1f37R5GQYi1S65AN5oR0BR2WzvQ==", + "node_modules/@storybook/test-runner": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@storybook/test-runner/-/test-runner-0.13.0.tgz", + "integrity": "sha512-QIbfgia/iBy7PeUIwCYtPcyeZCHd21ebaPoMNIsRfwUW+VC12J4iG8cGDfOE7MGbMVz1Uu0elAEBB8NGP/YBtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.22.1", - "@prefresh/babel-plugin": "0.5.1", - "@prefresh/core": "^1.5.1", - "@prefresh/utils": "^1.2.0", - "@rollup/pluginutils": "^4.2.1" + "@babel/core": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5", + "@storybook/core-common": "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0", + "@storybook/csf": "^0.1.1", + "@storybook/csf-tools": "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0", + "@storybook/preview-api": "^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0", + "@swc/core": "^1.3.18", + "@swc/jest": "^0.2.23", + "can-bind-to-host": "^1.1.1", + "commander": "^9.0.0", + "expect-playwright": "^0.8.0", + "glob": "^10.2.2", + "jest": "^28.0.0", + "jest-circus": "^28.0.0", + "jest-environment-node": "^28.0.0", + "jest-junit": "^14.0.0", + "jest-playwright-preset": "^2.0.0", + "jest-runner": "^28.0.0", + "jest-serializer-html": "^7.1.0", + "jest-watch-typeahead": "^2.0.0", + "node-fetch": "^2", + "playwright": "^1.14.0", + "read-pkg-up": "^7.0.1", + "tempy": "^1.0.1", + "ts-dedent": "^2.0.0" }, - "peerDependencies": { - "preact": "^10.4.0", - "vite": ">=2.0.0" + "bin": { + "test-storybook": "dist/test-storybook.js" } }, - "node_modules/@prefresh/vite/node_modules/@babel/core": { + "node_modules/@storybook/test-runner/node_modules/@babel/core": { "version": "7.25.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", @@ -6369,1339 +9806,1486 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@prefresh/vite/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "node_modules/@storybook/test-runner/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@prefresh/vite/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@storybook/test-runner/node_modules/@jest/core": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", + "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/reporters": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^28.1.3", + "jest-config": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-resolve-dependencies": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "jest-watcher": "^28.1.3", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@remix-run/router": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.3.1.tgz", - "integrity": "sha512-+eun1Wtf72RNRSqgU7qM2AMX/oHp+dnx7BHk1qhK5ZHzdHTUU4LA1mGG1vT+jMc8sbhG3orvsfOmryjzx2PzQw==", + "node_modules/@storybook/test-runner/node_modules/@jest/environment": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", + "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3" + }, "engines": { - "node": ">=14" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "node_modules/@storybook/test-runner/node_modules/@jest/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", "dev": true, "license": "MIT", "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" + "expect": "^28.1.3", + "jest-snapshot": "^28.1.3" }, "engines": { - "node": ">= 8.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz", - "integrity": "sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==", - "cpu": [ - "arm" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/expect-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", + "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "jest-get-type": "^28.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz", - "integrity": "sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/fake-timers": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", + "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "android" - ] + "dependencies": { + "@jest/types": "^28.1.3", + "@sinonjs/fake-timers": "^9.1.2", + "@types/node": "*", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz", - "integrity": "sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/globals": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", + "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/types": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz", - "integrity": "sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/reporters": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", + "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz", - "integrity": "sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==", - "cpu": [ - "arm" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz", - "integrity": "sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==", - "cpu": [ - "arm" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz", - "integrity": "sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz", - "integrity": "sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz", - "integrity": "sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==", - "cpu": [ - "ppc64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/source-map": { + "version": "28.1.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", + "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.13", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz", - "integrity": "sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==", - "cpu": [ - "riscv64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz", - "integrity": "sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==", - "cpu": [ - "s390x" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/test-sequencer": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", + "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@jest/test-result": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz", - "integrity": "sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/transform": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", + "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^28.1.3", + "@jridgewell/trace-mapping": "^0.3.13", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz", - "integrity": "sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz", - "integrity": "sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==", - "cpu": [ - "arm64" - ], + "node_modules/@storybook/test-runner/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz", - "integrity": "sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==", - "cpu": [ - "ia32" - ], + "node_modules/@storybook/test-runner/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz", - "integrity": "sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==", - "cpu": [ - "x64" - ], + "node_modules/@storybook/test-runner/node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz", - "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==", + "node_modules/@storybook/test-runner/node_modules/@sinonjs/fake-timers": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", + "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } }, - "node_modules/@rushstack/node-core-library": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.5.1.tgz", - "integrity": "sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==", + "node_modules/@storybook/test-runner/node_modules/@storybook/core-common": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.20.tgz", + "integrity": "sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "~8.13.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~7.0.1", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4" - }, - "peerDependencies": { - "@types/node": "*" + "@storybook/core-events": "7.6.20", + "@storybook/node-logger": "7.6.20", + "@storybook/types": "7.6.20", + "@types/find-cache-dir": "^3.2.1", + "@types/node": "^18.0.0", + "@types/node-fetch": "^2.6.4", + "@types/pretty-hrtime": "^1.0.0", + "chalk": "^4.1.0", + "esbuild": "^0.18.0", + "esbuild-register": "^3.5.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "ts-dedent": "^2.0.0" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@rushstack/node-core-library/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "node_modules/@storybook/test-runner/node_modules/@storybook/node-logger": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.20.tgz", + "integrity": "sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==", "dev": true, "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "node_modules/@storybook/test-runner/node_modules/@storybook/preview-api": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.20.tgz", + "integrity": "sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "@storybook/channels": "7.6.20", + "@storybook/client-logger": "7.6.20", + "@storybook/core-events": "7.6.20", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/types": "7.6.20", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "synchronous-promise": "^2.0.15", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, - "engines": { - "node": ">=6 <7 || >=8" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "node_modules/@storybook/test-runner/node_modules/@storybook/types": { + "version": "7.6.20", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.20.tgz", + "integrity": "sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==", "dev": true, "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "dependencies": { + "@storybook/channels": "7.6.20", + "@types/babel__core": "^7.0.0", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@storybook/test-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@rushstack/node-core-library/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@storybook/test-runner/node_modules/babel-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", + "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@jest/transform": "^28.1.3", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^28.1.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/@rushstack/node-core-library/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "node_modules/@storybook/test-runner/node_modules/babel-plugin-jest-hoist": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", + "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": ">= 4.0.0" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@rushstack/node-core-library/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/@rushstack/rig-package": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", - "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "node_modules/@storybook/test-runner/node_modules/babel-preset-jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", + "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", "dev": true, "license": "MIT", "dependencies": { - "resolve": "~1.22.1", - "strip-json-comments": "~3.1.1" + "babel-plugin-jest-hoist": "^28.1.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@rushstack/terminal": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.13.3.tgz", - "integrity": "sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==", + "node_modules/@storybook/test-runner/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "@rushstack/node-core-library": "5.5.1", - "supports-color": "~8.1.1" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } + "balanced-match": "^1.0.0" } }, - "node_modules/@rushstack/terminal/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/@storybook/test-runner/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@rushstack/terminal/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/@storybook/test-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@rushstack/ts-command-line": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.3.tgz", - "integrity": "sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==", + "node_modules/@storybook/test-runner/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", "dev": true, "license": "MIT", - "dependencies": { - "@rushstack/terminal": "0.13.3", - "@types/argparse": "1.0.38", - "argparse": "~1.0.9", - "string-argv": "~0.3.1" + "engines": { + "node": "^12.20.0 || >=14" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "node_modules/@storybook/test-runner/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@storybook/test-runner/node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } + "license": "MIT" }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@storybook/test-runner/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/addon-actions": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.3.0.tgz", - "integrity": "sha512-HvAc3fW979JVw8CSKXZMouvgrJ2BNLNWaUB8jNokQb3Us00P6igVKLwg/pBV8GBgDr5Ng4pHYqi/ZH+xzEYFFw==", + "node_modules/@storybook/test-runner/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", "dev": true, "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "@types/uuid": "^9.0.1", - "dequal": "^2.0.2", - "polished": "^4.2.2", - "uuid": "^9.0.0" + "engines": { + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.0" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@storybook/addon-backgrounds": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.3.0.tgz", - "integrity": "sha512-qaV/QsXoviAmBYFszI/KN1CaI/LcACGX9RCBB54fMau3JuouIBU/zTl2jY2+BioCBk6oY8KqcnAS1coOZzlNXQ==", + "node_modules/@storybook/test-runner/node_modules/expect": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", + "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "@jest/expect-utils": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/addon-controls": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.3.0.tgz", - "integrity": "sha512-Id4j6Neimkdq0OyfQ3qkHpKLisbN08M8pXHDI/A0VeF91xEGBdc1bJgS/EU+ifa24tr5SRYwlAlcBDAWJbZMfA==", + "node_modules/@storybook/test-runner/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@storybook/global": "^5.0.0", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": ">=14" }, - "peerDependencies": { - "storybook": "^8.3.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/addon-docs": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.3.0.tgz", - "integrity": "sha512-LrvWBDX5Vi//82Q78QRbTsG+9rJU9JJFAVPk1NnLp2Yn0F4FueVzIw8AabAkZFy0LHPMGV+EHpkPtYz4Czkhgw==", + "node_modules/@storybook/test-runner/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "license": "MIT", "dependencies": { - "@mdx-js/react": "^3.0.0", - "@storybook/blocks": "8.3.0", - "@storybook/csf-plugin": "8.3.0", - "@storybook/global": "^5.0.0", - "@storybook/react-dom-shim": "8.3.0", - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "fs-extra": "^11.1.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "rehype-external-links": "^3.0.0", - "rehype-slug": "^6.0.0", - "ts-dedent": "^2.0.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/test-runner/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "peerDependencies": { - "storybook": "^8.3.0" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/addon-docs/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/@storybook/test-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/test-runner/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=14.14" + "node": ">=8" } }, - "node_modules/@storybook/addon-essentials": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.3.0.tgz", - "integrity": "sha512-y+hlMnIoD+h/diY7BvIeySPCz/ZtJPPZfS/COQuPRXfPWCr37p9XLEz3E+m2spniAbgGv9KpvdqQd0kWcwwfiA==", + "node_modules/@storybook/test-runner/node_modules/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/addon-actions": "8.3.0", - "@storybook/addon-backgrounds": "8.3.0", - "@storybook/addon-controls": "8.3.0", - "@storybook/addon-docs": "8.3.0", - "@storybook/addon-highlight": "8.3.0", - "@storybook/addon-measure": "8.3.0", - "@storybook/addon-outline": "8.3.0", - "@storybook/addon-toolbars": "8.3.0", - "@storybook/addon-viewport": "8.3.0", - "ts-dedent": "^2.0.0" + "@jest/core": "^28.1.3", + "@jest/types": "^28.1.3", + "import-local": "^3.0.2", + "jest-cli": "^28.1.3" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { - "storybook": "^8.3.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/@storybook/addon-highlight": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.3.0.tgz", - "integrity": "sha512-bS1rqzbwGgeTKVLYEyY+6DzpafLtDLnoSF+KzRIiV7/1H30evhwVSzkgX1L2F6+ssS1n9WrRJeglniv9j+5mGQ==", + "node_modules/@storybook/test-runner/node_modules/jest-changed-files": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", + "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "execa": "^5.0.0", + "p-limit": "^3.1.0" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/addon-interactions": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.3.0.tgz", - "integrity": "sha512-nAVUFpt2kTaPMY7RxfZwiYipngxf76dfx1E/QP9n/333+/pe88UwXbUkmLKpyC8EWqZXDI0oSV5XDDzoI5x3dA==", + "node_modules/@storybook/test-runner/node_modules/jest-circus": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", + "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.3.0", - "@storybook/test": "8.3.0", - "polished": "^4.2.2", - "ts-dedent": "^2.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "@jest/environment": "^28.1.3", + "@jest/expect": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "p-limit": "^3.1.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/addon-links": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.3.0.tgz", - "integrity": "sha512-nUnoMPPuxM8yJ7LCrppsUrn3gwqt4E0si9fqIIb5IkB56vz48RxCO9MtO1qjwhWosfMdN6boHaOl1Qc6IxV3Lg==", + "node_modules/@storybook/test-runner/node_modules/jest-cli": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", + "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" + "@jest/core": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "prompts": "^2.0.1", + "yargs": "^17.3.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "react": { + "node-notifier": { "optional": true } } }, - "node_modules/@storybook/addon-measure": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.3.0.tgz", - "integrity": "sha512-0TZ2ihzX0mRr1rNrFDieDsIKASZ2qUg3eHDkskLKOhxwoUHqsLzXlvS/scKZ+zb8pgjrvsBAsjyPstlrK+z0Zg==", + "node_modules/@storybook/test-runner/node_modules/jest-config": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", + "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "tiny-invariant": "^1.3.1" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^28.1.3", + "@jest/types": "^28.1.3", + "babel-jest": "^28.1.3", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^28.1.3", + "jest-environment-node": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-runner": "^28.1.3", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" }, "peerDependencies": { - "storybook": "^8.3.0" + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/@storybook/addon-outline": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.3.0.tgz", - "integrity": "sha512-xTvBGgX6RIkKjQiAi9LvPGbGuBa6tsJS2jCmjwiei3SX3I56E6Bf3KASsFH2x8j9khMVsgQcfA3QDIhjwatdgw==", + "node_modules/@storybook/test-runner/node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@storybook/addon-toolbars": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.3.0.tgz", - "integrity": "sha512-/3/jnd70tnvh3x1EL8axE4TR9EHwC+bBch1uIc3vH/lmyZBqSBVA50clz23FvjhykjcaKQogcugCuU1w5TJlBA==", + "node_modules/@storybook/test-runner/node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/addon-viewport": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.3.0.tgz", - "integrity": "sha512-6h/0mKipUG6w2o5IOzyhvC/2ifJlSNIA60hLkJ291g42+ilzkydpby9TBN7FcnrVL3Bv+oLgkDLBWVCqma/fyw==", + "node_modules/@storybook/test-runner/node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "brace-expansion": "^1.1.7" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "*" } }, - "node_modules/@storybook/blocks": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.3.0.tgz", - "integrity": "sha512-V7D5lv5R+GJya9cCZOCjmOVjhvP5J3KIaclQuuGGJda/ZD/SpwHcFOGSpo6sNR2UKHXXvb61oM8gRQQWDvqPlg==", + "node_modules/@storybook/test-runner/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/icons": "^1.2.10", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.4.5", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.0" + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/builder-manager/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "extraneous": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/test-runner/node_modules/jest-docblock": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", + "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=14.14" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/builder-vite": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.3.0.tgz", - "integrity": "sha512-9qo3zcZkEpy69E7cx9OHHexBe9+25vH0p+4sWZSjl2sjqjhaxLN5eXnODQbDsOKZNRVrLVTGmKxfFJzAJFnY0w==", + "node_modules/@storybook/test-runner/node_modules/jest-each": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", + "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf-plugin": "8.3.0", - "@types/find-cache-dir": "^3.2.1", - "browser-assert": "^1.2.1", - "es-module-lexer": "^1.5.0", - "express": "^4.19.2", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "magic-string": "^0.30.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@preact/preset-vite": "*", - "storybook": "^8.3.0", - "typescript": ">= 4.3.x", - "vite": "^4.0.0 || ^5.0.0", - "vite-plugin-glimmerx": "*" + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "jest-util": "^28.1.3", + "pretty-format": "^28.1.3" }, - "peerDependenciesMeta": { - "@preact/preset-vite": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vite-plugin-glimmerx": { - "optional": true - } + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/builder-vite/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/@storybook/test-runner/node_modules/jest-environment-node": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", + "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "jest-mock": "^28.1.3", + "jest-util": "^28.1.3" }, "engines": { - "node": ">=14.14" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/components": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.3.0.tgz", - "integrity": "sha512-SO/iTkmWp3aYCIy8DEhRMoOn6K7lcKTPNC/YjTvOFFzwq/CLq86WNqz6aX+wV5n6MvWTs7evSwMoz7lp4Lc4sw==", + "node_modules/@storybook/test-runner/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.3.0.tgz", - "integrity": "sha512-UeErpD0xRIP2nFA2TjPYxtEyv24O6VRfq2XXU5ki2QPYnxOxAPBbrMHCADjgBwNS4S2NUWTaVBYxybISVbrj+w==", + "node_modules/@storybook/test-runner/node_modules/jest-haste-map": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", + "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/csf": "^0.1.11", - "@types/express": "^4.17.21", - "browser-assert": "^1.2.1", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", - "esbuild-register": "^3.5.0", - "express": "^4.19.2", - "process": "^0.11.10", - "recast": "^0.23.5", - "semver": "^7.6.2", - "util": "^0.12.5", - "ws": "^8.2.3" + "@jest/types": "^28.1.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^28.0.2", + "jest-util": "^28.1.3", + "jest-worker": "^28.1.3", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/@storybook/core-common": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.3.0.tgz", - "integrity": "sha512-Sh10j2xhAVFumsXP5BiUb/JNnOaw6CuZrh1qGtxGIdtXfW9oiPx9Z2vDvEF/dEK5gObFIJ+fNwrL7zy2ap75CA==", + "node_modules/@storybook/test-runner/node_modules/jest-leak-detector": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", + "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "extraneous": true, + "node_modules/@storybook/test-runner/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "extraneous": true, + "node_modules/@storybook/test-runner/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, "license": "MIT", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "extraneous": true, + "node_modules/@storybook/test-runner/node_modules/jest-mock": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", + "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@jest/types": "^28.1.3", + "@types/node": "*" }, "engines": { - "node": ">=14.14" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "extraneous": true, + "node_modules/@storybook/test-runner/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "extraneous": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node_modules/@storybook/test-runner/node_modules/jest-resolve": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", + "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^28.1.3", + "jest-validate": "^28.1.3", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "extraneous": true, + "node_modules/@storybook/test-runner/node_modules/jest-resolve-dependencies": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", + "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "jest-regex-util": "^28.0.2", + "jest-snapshot": "^28.1.3" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/core/node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "node_modules/@storybook/test-runner/node_modules/jest-runner": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", + "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", "dev": true, "license": "MIT", "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@storybook/core/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "@jest/console": "^28.1.3", + "@jest/environment": "^28.1.3", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "graceful-fs": "^4.2.9", + "jest-docblock": "^28.1.1", + "jest-environment-node": "^28.1.3", + "jest-haste-map": "^28.1.3", + "jest-leak-detector": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-resolve": "^28.1.3", + "jest-runtime": "^28.1.3", + "jest-util": "^28.1.3", + "jest-watcher": "^28.1.3", + "jest-worker": "^28.1.3", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/csf": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", - "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", + "node_modules/@storybook/test-runner/node_modules/jest-runtime": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", + "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^2.19.0" + "@jest/environment": "^28.1.3", + "@jest/fake-timers": "^28.1.3", + "@jest/globals": "^28.1.3", + "@jest/source-map": "^28.1.2", + "@jest/test-result": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-mock": "^28.1.3", + "jest-regex-util": "^28.0.2", + "jest-resolve": "^28.1.3", + "jest-snapshot": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/csf-plugin": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.3.0.tgz", - "integrity": "sha512-sCmeN/OVYj95TKkMqJqxbaztIbdv5jCrtrXuNg4oJaGzNucmMNAbmv2jK2tCNE6Uz2X9IMRcseFX/h9TgjyJ9A==", + "node_modules/@storybook/test-runner/node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^8.3.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@storybook/csf/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "node_modules/@storybook/test-runner/node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=14.14" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/icons": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.10.tgz", - "integrity": "sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==", + "node_modules/@storybook/test-runner/node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "engines": { + "node": "*" } }, - "node_modules/@storybook/instrumenter": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.3.0.tgz", - "integrity": "sha512-oJmX8jbNKbPBlNMItRvEoaVAJWX1u6jsqXdIcNRCXo3PDdVnunVYz8vVkG8mbL8Cp/cKlsuQk7YBZA4IM5mRgg==", + "node_modules/@storybook/test-runner/node_modules/jest-snapshot": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", + "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@vitest/utils": "^2.0.5", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^28.1.3", + "@jest/transform": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^28.1.3", + "graceful-fs": "^4.2.9", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "jest-haste-map": "^28.1.3", + "jest-matcher-utils": "^28.1.3", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "natural-compare": "^1.4.0", + "pretty-format": "^28.1.3", + "semver": "^7.3.5" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/manager-api": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.3.0.tgz", - "integrity": "sha512-5WBLEFHpe4H+9vZZLjNh7msIkyl9MPt4/C2nI+MXKZyU55xBBgiAy4fcD9aj02PcbhyR4JhLqbqmdeBe5Xafeg==", + "node_modules/@storybook/test-runner/node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": ">=10" } }, - "node_modules/@storybook/node-logger": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.3.0.tgz", - "integrity": "sha512-CNAen9zdTB/shJazE+bcOPsf5IWp2WgCrenW825m8ixYlVjBzVzNmszRZyh/o/4HVaA0SxI+Z62ag36g6BuxNg==", + "node_modules/@storybook/test-runner/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/preview-api": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.3.0.tgz", - "integrity": "sha512-pHq/T7oWBfzc9TCIPYyJQUXuiUiFfmdrcYvuZE1kf46i7wXh9Q2/Kd3BUJWSCpBXUMoYfAxg9YysGljMII8LWA==", + "node_modules/@storybook/test-runner/node_modules/jest-validate": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", + "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "@jest/types": "^28.1.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^28.0.2", + "leven": "^3.1.0", + "pretty-format": "^28.1.3" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/react": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.3.0.tgz", - "integrity": "sha512-qd8IKXqaOG9m0VK0QukFMmKpjmm7sy1R3T681dLet8s+AEAimLH/RiBzd+0dxWng2H/Ng6ldUmCtd3Cs6w/EFQ==", + "node_modules/@storybook/test-runner/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/components": "^8.3.0", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "^8.3.0", - "@storybook/preview-api": "^8.3.0", - "@storybook/react-dom-shim": "8.3.0", - "@storybook/theming": "^8.3.0", - "@types/escodegen": "^0.0.6", - "@types/estree": "^0.0.51", - "@types/node": "^22.0.0", - "acorn": "^7.4.1", - "acorn-jsx": "^5.3.1", - "acorn-walk": "^7.2.0", - "escodegen": "^2.1.0", - "html-tags": "^3.1.0", - "prop-types": "^15.7.2", - "react-element-to-jsx-string": "^15.0.0", - "semver": "^7.3.7", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "util-deprecate": "^1.0.2" + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" }, "engines": { - "node": ">=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@storybook/test": "8.3.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.0", - "typescript": ">= 4.2.x" - }, - "peerDependenciesMeta": { - "@storybook/test": { - "optional": true - }, - "typescript": { - "optional": true - } + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/react-dom-shim": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.3.0.tgz", - "integrity": "sha512-87X4cvgwFT1ll5SzXgQq6iGbkVCgxLBpBm58akF/hzpeRkwfJDncGi/A5hElOJrBg63IkznmSJE7tf9RkrboqQ==", + "node_modules/@storybook/test-runner/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", "dev": true, "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.0" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, - "node_modules/@storybook/react-vite": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/react-vite/-/react-vite-8.3.0.tgz", - "integrity": "sha512-VcKp/mpO8M+JsyprTGLLvAzwx7PChdWFDBasyQ0MO+YVwci78gPAZnfWNZaaEB2mdDgPPGuoSTwBgzZmP3FsPg==", + "node_modules/@storybook/test-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { - "@joshwooding/vite-plugin-react-docgen-typescript": "0.3.1", - "@rollup/pluginutils": "^5.0.2", - "@storybook/builder-vite": "8.3.0", - "@storybook/react": "8.3.0", - "find-up": "^5.0.0", - "magic-string": "^0.30.0", - "react-docgen": "^7.0.0", - "resolve": "^1.22.8", - "tsconfig-paths": "^4.2.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", - "storybook": "^8.3.0", - "vite": "^4.0.0 || ^5.0.0" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@storybook/react-vite/node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "node_modules/@storybook/test-runner/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + "node": ">=16 || 14 >=14.17" }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/react-vite/node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "node_modules/@storybook/test-runner/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" } }, - "node_modules/@storybook/react-vite/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/@storybook/test-runner/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=4" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@storybook/react-vite/node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "node_modules/@storybook/test-runner/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } - }, - "node_modules/@storybook/react/node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + }, + "node_modules/@storybook/test-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/@storybook/react/node_modules/@types/node": { - "version": "22.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", - "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "node_modules/@storybook/testing-library": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz", + "integrity": "sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "@testing-library/dom": "^9.0.0", + "@testing-library/user-event": "^14.4.0", + "ts-dedent": "^2.2.0" } }, - "node_modules/@storybook/react/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@storybook/testing-library/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/@storybook/react/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { + "node_modules/@storybook/testing-library/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "extraneous": true, + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -7713,11 +11297,21 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/chalk": { + "node_modules/@storybook/testing-library/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@storybook/testing-library/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "extraneous": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -7725,69 +11319,67 @@ }, "engines": { "node": ">=10" - } - }, - "node_modules/@storybook/telemetry/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "extraneous": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" }, - "engines": { - "node": ">=14.14" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@storybook/telemetry/node_modules/has-flag": { + "node_modules/@storybook/testing-library/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "extraneous": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "extraneous": true, + "node_modules/@storybook/testing-library/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" }, "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/@storybook/test": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.3.0.tgz", - "integrity": "sha512-d8y8ST8YY/pSjTxBcWitKM7YbbupN8D0obVlciZRt6WW3o8WUz6iwMuzuJuiUVwtxiRtdKL9jygC5M+aaCpFYQ==", + "node_modules/@storybook/testing-library/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "@storybook/csf": "^0.1.11", - "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.3.0", - "@testing-library/dom": "10.4.0", - "@testing-library/jest-dom": "6.5.0", - "@testing-library/user-event": "14.5.2", - "@vitest/expect": "2.0.5", - "@vitest/spy": "2.0.5", - "util": "^0.12.4" + "engines": { + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/testing-library/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@storybook/testing-library/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, - "peerDependencies": { - "storybook": "^8.3.0" + "engines": { + "node": ">=8" } }, "node_modules/@storybook/theming": { @@ -8107,28 +11699,162 @@ "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-jsx/node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@svgr/plugin-jsx/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@svgr/plugin-svgo/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@svgr/plugin-svgo/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@svgr/plugin-jsx": { + "node_modules/@svgr/webpack": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { "node": ">=14" @@ -8136,12 +11862,9 @@ "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" } }, - "node_modules/@svgr/plugin-jsx/node_modules/@babel/core": { + "node_modules/@svgr/webpack/node_modules/@babel/core": { "version": "7.25.2", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", @@ -8172,13 +11895,299 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@svgr/plugin-jsx/node_modules/convert-source-map": { + "node_modules/@svgr/webpack/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" }, + "node_modules/@swc-node/core": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@swc-node/core/-/core-1.13.3.tgz", + "integrity": "sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "@swc/types": ">= 0.1" + } + }, + "node_modules/@swc-node/register": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@swc-node/register/-/register-1.9.2.tgz", + "integrity": "sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc-node/core": "^1.13.1", + "@swc-node/sourcemap-support": "^0.5.0", + "colorette": "^2.0.20", + "debug": "^4.3.4", + "pirates": "^4.0.6", + "tslib": "^2.6.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "typescript": ">= 4.3" + } + }, + "node_modules/@swc-node/register/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@swc-node/sourcemap-support": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc-node/sourcemap-support/-/sourcemap-support-0.5.1.tgz", + "integrity": "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map-support": "^0.5.21", + "tslib": "^2.6.3" + } + }, + "node_modules/@swc-node/sourcemap-support/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@swc-node/sourcemap-support/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@swc/core": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.29.tgz", + "integrity": "sha512-nvTtHJI43DUSOAf3h9XsqYg8YXKc0/N4il9y4j0xAkO0ekgDNo+3+jbw6MInawjKJF9uulyr+f5bAutTsOKVlw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.8" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.29", + "@swc/core-darwin-x64": "1.5.29", + "@swc/core-linux-arm-gnueabihf": "1.5.29", + "@swc/core-linux-arm64-gnu": "1.5.29", + "@swc/core-linux-arm64-musl": "1.5.29", + "@swc/core-linux-x64-gnu": "1.5.29", + "@swc/core-linux-x64-musl": "1.5.29", + "@swc/core-win32-arm64-msvc": "1.5.29", + "@swc/core-win32-ia32-msvc": "1.5.29", + "@swc/core-win32-x64-msvc": "1.5.29" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.29.tgz", + "integrity": "sha512-6F/sSxpHaq3nzg2ADv9FHLi4Fu2A8w8vP8Ich8gIl16D2htStlwnaPmCLjRswO+cFkzgVqy/l01gzNGWd4DFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.29.tgz", + "integrity": "sha512-rF/rXkvUOTdTIfoYbmszbSUGsCyvqACqy1VeP3nXONS+LxFl4bRmRcUTRrblL7IE5RTMCKUuPbqbQSE2hK7bqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.29.tgz", + "integrity": "sha512-2OAPL8iWBsmmwkjGXqvuUhbmmoLxS1xNXiMq87EsnCNMAKohGc7wJkdAOUL6J/YFpean/vwMWg64rJD4pycBeg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.29.tgz", + "integrity": "sha512-eH/Q9+8O5qhSxMestZnhuS1xqQMr6M7SolZYxiXJqxArXYILLCF+nq2R9SxuMl0CfjHSpb6+hHPk/HXy54eIRA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.29.tgz", + "integrity": "sha512-TERh2OICAJz+SdDIK9+0GyTUwF6r4xDlFmpoiHKHrrD/Hh3u+6Zue0d7jQ/he/i80GDn4tJQkHlZys+RZL5UZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.29.tgz", + "integrity": "sha512-WMDPqU7Ji9dJpA+Llek2p9t7pcy7Bob8ggPUvgsIlv3R/eesF9DIzSbrgl6j3EAEPB9LFdSafsgf6kT/qnvqFg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.29.tgz", + "integrity": "sha512-DO14glwpdKY4POSN0201OnGg1+ziaSVr6/RFzuSLggshwXeeyVORiHv3baj7NENhJhWhUy3NZlDsXLnRFkmhHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.29.tgz", + "integrity": "sha512-V3Y1+a1zG1zpYXUMqPIHEMEOd+rHoVnIpO/KTyFwAmKVu8v+/xPEVx/AGoYE67x4vDAAvPQrKI3Aokilqa5yVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.29.tgz", + "integrity": "sha512-OrM6yfXw4wXhnVFosOJzarw0Fdz5Y0okgHfn9oFbTPJhoqxV5Rdmd6kXxWu2RiVKs6kGSJFZXHDeUq2w5rTIMg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.29.tgz", + "integrity": "sha512-eD/gnxqKyZQQR0hR7TMkIlJ+nCF9dzYmVVNbYZWuA1Xy94aBPUsEk3Uw3oG7q6R3ErrEUPP0FNf2ztEnv+I+dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", @@ -8186,12 +12195,12 @@ "license": "Apache-2.0" }, "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "dev": true, "license": "Apache-2.0", "dependencies": { - "@swc/counter": "^0.1.3", "tslib": "^2.4.0" } }, @@ -8199,8 +12208,37 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, "license": "0BSD" }, + "node_modules/@swc/jest": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/@swc/jest/-/jest-0.2.36.tgz", + "integrity": "sha512-8X80dp81ugxs4a11z1ka43FPhP+/e+mJNXJSxiNYk8gIX/jPBtY4gQTrKu/KIoco8bzKuPI5lUxjfLiGsfvnlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/create-cache-key-function": "^29.7.0", + "@swc/counter": "^0.1.3", + "jsonc-parser": "^3.2.0" + }, + "engines": { + "npm": ">= 7.0.0" + }, + "peerDependencies": { + "@swc/core": "*" + } + }, + "node_modules/@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, "node_modules/@testing-library/dom": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", @@ -8445,6 +12483,16 @@ "node": ">= 10" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -8570,6 +12618,13 @@ "@types/node": "*" } }, + "node_modules/@types/detect-port": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz", + "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/doctrine": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", @@ -8577,6 +12632,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/escodegen": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz", @@ -8756,16 +12818,9 @@ "ansi-styles": "^5.0.0", "react-is": "^18.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, "node_modules/@types/jsdom": { "version": "20.0.1", @@ -8835,6 +12890,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -8856,6 +12922,20 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", @@ -8963,6 +13043,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/wait-on": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.4.tgz", + "integrity": "sha512-EBsPjFMrFlMbbUFf9D1Fp+PAB2TwmUn7a3YtHyD9RLuTIk1jDd8SxXVAoez2Ciy+8Jsceo2MYEYZzJ/DvorOKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -10111,28 +14201,86 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.3.tgz", - "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.4.tgz", + "integrity": "sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.3", + "@vue/shared": "3.5.4", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz", - "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz", + "integrity": "sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.4", + "@vue/shared": "3.5.4" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.4.tgz", + "integrity": "sha512-P+yiPhL+NYH7m0ZgCq7AQR2q7OIE+mpAEgtkqEeH9oHSdIRvUO+4X6MPvblJIWcoe4YC5a2Gdf/RsoyP8FFiPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.4", + "@vue/compiler-dom": "3.5.4", + "@vue/compiler-ssr": "3.5.4", + "@vue/shared": "3.5.4", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.44", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/postcss": { + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.4.tgz", + "integrity": "sha512-acESdTXsxPnYr2C4Blv0ggx5zIFMgOzZmYU2UgvIff9POdRGbRNBHRyzHAnizcItvpgerSKQbllUc9USp3V7eg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.3", - "@vue/shared": "3.5.3" + "@vue/compiler-dom": "3.5.4", + "@vue/shared": "3.5.4" } }, "node_modules/@vue/compiler-vue2": { @@ -10198,12 +14346,210 @@ } }, "node_modules/@vue/shared": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.3.tgz", - "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.4.tgz", + "integrity": "sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true, "license": "MIT" }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@yarnpkg/esbuild-plugin-pnp": { + "version": "3.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", + "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "esbuild": ">=0.10.0" + } + }, + "node_modules/@yarnpkg/esbuild-plugin-pnp/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "dev": true, + "license": "0BSD" + }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -10331,6 +14677,16 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -10361,6 +14717,16 @@ "node": ">= 10.0.0" } }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", @@ -10374,6 +14740,20 @@ "node": ">= 6.0.0" } }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", @@ -10424,6 +14804,16 @@ } } }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -10524,6 +14914,33 @@ "node": ">= 8" } }, + "node_modules/app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", + "dev": true, + "license": "MIT" + }, + "node_modules/append-transform": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", + "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-require-extensions": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -10777,11 +15194,11 @@ } }, "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true, - "license": "MIT" + "license": "ISC" }, "node_modules/async": { "version": "3.2.6", @@ -10797,6 +15214,16 @@ "dev": true, "license": "MIT" }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/autoprefixer": { "version": "10.4.20", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", @@ -10874,9 +15301,9 @@ } }, "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.4.tgz", + "integrity": "sha512-aPTElBrbifBU1krmZxGZOlBkslORe7Ll7+BDnI50Wy4LgOt69luMgevkDfTq1O/ZgprooPCtWpjCwKSZw/iZ4A==", "dev": true, "license": "Apache-2.0", "engines": { @@ -11172,6 +15599,59 @@ ], "license": "MIT" }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "license": "Unlicense", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -11239,6 +15719,26 @@ "dev": true, "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -11325,6 +15825,19 @@ "node-int64": "^0.4.0" } }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -11427,6 +15940,49 @@ "node": ">=8" } }, + "node_modules/cache-content-type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz", + "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-types": "^2.1.18", + "ylru": "^1.2.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/caching-transform": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", + "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasha": "^5.0.0", + "make-dir": "^3.0.0", + "package-hash": "^4.0.0", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/caching-transform/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/call-bind": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", @@ -11477,6 +16033,16 @@ "node": ">= 6" } }, + "node_modules/can-bind-to-host": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/can-bind-to-host/-/can-bind-to-host-1.1.2.tgz", + "integrity": "sha512-CqsgmaqiyFRNtP17Ihqa/uHbZxRirntNVNl/kJz31DLKuNRfzvzionkLoUSkElQ6Cz+cpXKA3mhHq4tjbieujA==", + "dev": true, + "license": "MIT", + "bin": { + "can-bind-to-host": "dist/bin/can-bind-to-host.js" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001658", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001658.tgz", @@ -11599,6 +16165,16 @@ "chromatic-cli": "dist/bin.js" } }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -11629,6 +16205,16 @@ "dev": true, "license": "MIT" }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -11655,6 +16241,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -11731,6 +16333,13 @@ "dev": true, "license": "MIT" }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, "node_modules/columnify": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", @@ -11758,6 +16367,16 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -11772,6 +16391,72 @@ "dev": true, "license": "MIT" }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, "node_modules/computeds": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", @@ -11857,6 +16542,20 @@ "dev": true, "license": "MIT" }, + "node_modules/cookies": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", + "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "keygrip": "~1.1.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/core-js-compat": { "version": "3.38.1", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", @@ -11871,6 +16570,16 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/corser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", + "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", @@ -11973,6 +16682,19 @@ "dev": true, "license": "MIT" }, + "node_modules/cron-parser": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz", + "integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "luxon": "^3.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -11988,6 +16710,47 @@ "node": ">= 8" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -12014,60 +16777,217 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cwd": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-pkg": "^0.1.2", + "fs-exists-sync": "^0.1.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cwd/node_modules/expand-tilde": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-homedir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cwd/node_modules/find-file-up": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-exists-sync": "^0.1.0", + "resolve-dir": "^0.1.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "node_modules/cwd/node_modules/find-pkg": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "find-file-up": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/cwd/node_modules/global-modules": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", "dev": true, "license": "MIT", "dependencies": { - "cssom": "~0.3.6" + "global-prefix": "^0.1.4", + "is-windows": "^0.2.0" }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "node_modules/cwd/node_modules/global-prefix": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.0", + "ini": "^1.3.4", + "is-windows": "^0.2.0", + "which": "^1.2.12" + }, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "node_modules/cwd/node_modules/is-windows": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==", + "node_modules/cwd/node_modules/resolve-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", "dev": true, "license": "MIT", "dependencies": { - "array-find-index": "^1.0.1" + "expand-tilde": "^1.2.2", + "global-modules": "^0.2.3" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/cwd/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -12144,6 +17064,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, "node_modules/de-indent": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", @@ -12180,6 +17110,16 @@ "node": "*" } }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", @@ -12269,6 +17209,39 @@ "node": ">=0.10.0" } }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-require-extensions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", + "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/defaults": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", @@ -12328,6 +17301,45 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -12338,6 +17350,13 @@ "node": ">=0.4.0" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "dev": true, + "license": "MIT" + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -12379,6 +17398,19 @@ "node": ">=8" } }, + "node_modules/detect-package-manager": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", + "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/detect-port": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", @@ -12435,6 +17467,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/diffable-html": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/diffable-html/-/diffable-html-4.1.0.tgz", + "integrity": "sha512-++kyNek+YBLH8cLXS+iTj/Hiy2s5qkRJEJ8kgu/WHbFrVY2vz9xPFUT+fii2zGF0m1CaojDlQJjkfrCt7YWM1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^3.9.2" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -12475,6 +17517,34 @@ "dev": true, "license": "MIT" }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, "node_modules/domexception": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", @@ -12489,6 +17559,48 @@ "node": ">=12" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -12502,6 +17614,16 @@ "url": "https://dotenvx.com" } }, + "node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -12546,6 +17668,10 @@ "dev": true, "license": "ISC" }, + "node_modules/elements-react-stories": { + "resolved": "packages/elements-react-stories", + "link": true + }, "node_modules/emittery": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", @@ -12566,6 +17692,16 @@ "dev": true, "license": "MIT" }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -12636,6 +17772,13 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/error-inject": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz", + "integrity": "sha512-JM8N6PytDbmIYm1IhPWlo8vr3NtfjhDY/1MhD/a5b/aad/USE8a0+NsqE9d5n+GVGmuNkPQWm4bFQWv18d8tMg==", + "dev": true, + "license": "MIT" + }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -12830,6 +17973,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT" + }, "node_modules/esbuild": { "version": "0.18.20", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", @@ -12868,6 +18018,13 @@ "@esbuild/win32-x64": "0.18.20" } }, + "node_modules/esbuild-plugin-alias": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", + "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", + "dev": true, + "license": "MIT" + }, "node_modules/esbuild-plugin-svgr": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/esbuild-plugin-svgr/-/esbuild-plugin-svgr-2.1.0.tgz", @@ -12895,6 +18052,70 @@ "esbuild": ">=0.12 <1" } }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -13945,44 +19166,34 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", - "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", "dev": true, "license": "MIT", "dependencies": { - "aria-query": "~5.1.3", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.19", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.0" + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" }, "engines": { "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", - "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": { @@ -14100,42 +19311,39 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", - "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "version": "7.32.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz", + "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.tosorted": "^1.1.4", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", - "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", - "string.prototype.repeat": "^1.0.0" + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, "license": "MIT", "engines": { @@ -14704,6 +19912,23 @@ "node": ">= 0.8" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -14737,6 +19962,19 @@ "node": ">= 0.8.0" } }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/expect": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", @@ -14754,6 +19992,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/expect-playwright": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/expect-playwright/-/expect-playwright-0.8.0.tgz", + "integrity": "sha512-+kn8561vHAY+dt+0gMqqj1oY+g5xWrsuGMk4QGxotT2WS545nVqqjs37z6hrYfIuucwqthzwJfCJUEYqixyljg==", + "dev": true, + "license": "MIT" + }, "node_modules/express": { "version": "4.21.0", "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", @@ -14892,6 +20137,13 @@ "bser": "2.1.1" } }, + "node_modules/fetch-retry": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", + "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", + "dev": true, + "license": "MIT" + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -14921,6 +20173,53 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-system-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", + "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-extra": "11.1.1", + "ramda": "0.29.0" + } + }, + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/filelist": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", @@ -15021,6 +20320,113 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, + "node_modules/find-file-up": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-2.0.1.tgz", + "integrity": "sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-2.0.0.tgz", + "integrity": "sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-file-up": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-process": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-1.4.7.tgz", + "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "commander": "^5.1.0", + "debug": "^4.1.1" + }, + "bin": { + "find-process": "bin/find-process.js" + } + }, + "node_modules/find-process/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/find-process/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/find-process/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/find-process/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/find-process/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -15101,6 +20507,20 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", + "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -15147,25 +20567,91 @@ "dev": true, "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 0.6" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/fs-exists-sync": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "node_modules/front-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "node_modules/fs-extra/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "node_modules/fs-extra/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -15394,6 +20880,58 @@ "glob": "^7.1.6" } }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -15442,6 +20980,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true, + "license": "MIT" + }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", @@ -15468,6 +21013,28 @@ "dev": true, "license": "MIT" }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/harmony-reflect": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", @@ -15560,6 +21127,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -15642,6 +21233,19 @@ "dev": true, "license": "MIT" }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/hosted-git-info": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", @@ -15695,6 +21299,148 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/htmlparser2/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", + "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-equal": "~1.0.1", + "http-errors": "~1.8.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-assert/node_modules/deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-assert/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-assert/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -15712,6 +21458,21 @@ "node": ">= 0.8" } }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", @@ -15719,12 +21480,96 @@ "dev": true, "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-server": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", + "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "basic-auth": "^2.0.1", + "chalk": "^4.1.2", + "corser": "^2.0.1", + "he": "^1.2.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy": "^1.18.1", + "mime": "^1.6.0", + "minimist": "^1.2.6", + "opener": "^1.5.1", + "portfinder": "^1.0.28", + "secure-compare": "3.0.1", + "union": "~0.5.0", + "url-join": "^4.0.1" + }, + "bin": { + "http-server": "bin/http-server" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/http-server/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/http-server/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/http-server/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/http-server/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, "node_modules/https-proxy-agent": { @@ -15904,6 +21749,13 @@ "dev": true, "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, "node_modules/input-otp": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.2.4.tgz", @@ -16350,6 +22202,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -16484,6 +22346,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true, + "license": "MIT" + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -16540,6 +22409,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -16567,6 +22446,16 @@ "dev": true, "license": "ISC" }, + "node_modules/isomorphic-ws": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -16577,6 +22466,19 @@ "node": ">=8" } }, + "node_modules/istanbul-lib-hook": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", + "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", @@ -16655,6 +22557,34 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-processinfo": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", + "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", + "dev": true, + "license": "ISC", + "dependencies": { + "archy": "^1.0.0", + "cross-spawn": "^7.0.3", + "istanbul-lib-coverage": "^3.2.0", + "p-map": "^3.0.0", + "rimraf": "^3.0.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-processinfo/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -17008,13 +22938,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-circus/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17235,13 +23158,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-config/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17342,13 +23258,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-diff/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17463,13 +23372,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-each/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17595,6 +23497,45 @@ "fsevents": "^2.3.2" } }, + "node_modules/jest-junit": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-14.0.1.tgz", + "integrity": "sha512-h7/wwzPbllgpQhhVcRzRC76/cc89GlazThoV1fDxcALkf26IIlRsu/AcTG64f4nR2WPE3Cbd+i/sVf+NCUHrWQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/jest-junit/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-junit/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/jest-leak-detector": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", @@ -17637,13 +23578,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -17731,13 +23665,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -17843,31 +23770,189 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock/node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock/node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-mock/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-mock/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-mock/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-playwright-preset": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-playwright-preset/-/jest-playwright-preset-2.0.0.tgz", + "integrity": "sha512-pV5ruTJJMen3lwshUL4dlSqLlP8z4q9MXqWJkmy+sB6HYfzXoqBHzhl+5hslznhnSVTe4Dwu+reiiwcUJpYUbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect-playwright": "^0.8.0", + "jest-process-manager": "^0.3.1", + "nyc": "^15.1.0", + "playwright-core": ">=1.2.0", + "rimraf": "^3.0.2", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "jest": "^28.0.0", + "jest-circus": "^28.0.0", + "jest-environment-node": "^28.0.0", + "jest-runner": "^28.0.0" + } + }, + "node_modules/jest-playwright-preset/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-process-manager": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/jest-process-manager/-/jest-process-manager-0.3.1.tgz", + "integrity": "sha512-x9W54UgZ7IkzUHgXtnI1x4GKOVjxtwW0CA/7yGbTHtT/YhENO0Lic2yfVyC/gekn7OIEMcQmy0L1r9WLQABfqw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/wait-on": "^5.2.0", + "chalk": "^4.1.0", + "cwd": "^0.10.0", + "exit": "^0.1.2", + "find-process": "^1.4.4", + "prompts": "^2.4.1", + "signal-exit": "^3.0.3", + "spawnd": "^5.0.0", + "tree-kill": "^1.2.2", + "wait-on": "^5.3.0" } }, - "node_modules/jest-mock/node_modules/ansi-styles": { + "node_modules/jest-process-manager/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "extraneous": true, + "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -17879,11 +23964,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-mock/node_modules/chalk": { + "node_modules/jest-process-manager/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "extraneous": true, + "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -17896,21 +23981,21 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-mock/node_modules/has-flag": { + "node_modules/jest-process-manager/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "extraneous": true, + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-mock/node_modules/supports-color": { + "node_modules/jest-process-manager/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "extraneous": true, + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -17919,24 +24004,6 @@ "node": ">=8" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, "node_modules/jest-regex-util": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", @@ -18253,6 +24320,16 @@ "node": ">=8" } }, + "node_modules/jest-serializer-html": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/jest-serializer-html/-/jest-serializer-html-7.1.0.tgz", + "integrity": "sha512-xYL2qC7kmoYHJo8MYqJkzrl/Fdlx+fat4U1AqYg+kafqwcKPiMkOcjWHPKhueuNEgr+uemhGc+jqXYiwCyRyLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "diffable-html": "^4.1.0" + } + }, "node_modules/jest-snapshot": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", @@ -18356,13 +24433,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-snapshot/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -18572,13 +24642,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -18592,6 +24655,123 @@ "node": ">=8" } }, + "node_modules/jest-watch-typeahead": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-2.2.2.tgz", + "integrity": "sha512-+QgOFW4o5Xlgd6jGS5X37i08tuuXNW8X0CV9WNFi+3n8ExCIP+E1melYhvYLjv5fE6D0yyzk74vsSO8I6GqtvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^6.0.0", + "chalk": "^5.2.0", + "jest-regex-util": "^29.0.0", + "jest-watcher": "^29.0.0", + "slash": "^5.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0 || ^29.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/jest-watcher": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", @@ -18727,6 +24907,20 @@ "dev": true, "license": "MIT" }, + "node_modules/joi": { + "version": "17.13.3", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", + "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.3.0", + "@hapi/topo": "^5.1.0", + "@sideway/address": "^4.1.5", + "@sideway/formula": "^3.0.1", + "@sideway/pinpoint": "^2.0.0" + } + }, "node_modules/joycon": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", @@ -18980,6 +25174,19 @@ "node": ">=4.0" } }, + "node_modules/keygrip": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz", + "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tsscmp": "1.0.6" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -19000,6 +25207,137 @@ "node": ">=6" } }, + "node_modules/koa": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.11.0.tgz", + "integrity": "sha512-EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "^1.3.5", + "cache-content-type": "^1.0.0", + "content-disposition": "~0.5.2", + "content-type": "^1.0.4", + "cookies": "~0.8.0", + "debug": "~3.1.0", + "delegates": "^1.0.0", + "depd": "^1.1.2", + "destroy": "^1.0.4", + "encodeurl": "^1.0.2", + "error-inject": "^1.0.0", + "escape-html": "^1.0.3", + "fresh": "~0.5.2", + "http-assert": "^1.3.0", + "http-errors": "^1.6.3", + "is-generator-function": "^1.0.7", + "koa-compose": "^4.1.0", + "koa-convert": "^1.2.0", + "on-finished": "^2.3.0", + "only": "~0.0.2", + "parseurl": "^1.3.2", + "statuses": "^1.5.0", + "type-is": "^1.6.16", + "vary": "^1.1.2" + }, + "engines": { + "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4" + } + }, + "node_modules/koa-compose": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz", + "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/koa-convert": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz", + "integrity": "sha512-K9XqjmEDStGX09v3oxR7t5uPRy0jqJdvodHa6wxWTHrTfDq0WUNnYTOOUZN6g8OM8oZQXprQASbiIXG2Ez8ehA==", + "dev": true, + "license": "MIT", + "dependencies": { + "co": "^4.6.0", + "koa-compose": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/koa-convert/node_modules/koa-compose": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz", + "integrity": "sha512-8gen2cvKHIZ35eDEik5WOo8zbVp9t4cP8p4hW4uE55waxolLRexKKrqfCpwhGVppnB40jWeF8bZeTVg99eZgPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.1.0" + } + }, + "node_modules/koa/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/koa/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/koa/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/koa/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/koa/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/kolorist": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", @@ -19015,18 +25353,34 @@ "license": "CC0-1.0" }, "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "license": "MIT", "dependencies": { - "language-subtag-registry": "^0.3.20" + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/lazy-universal-dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", + "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "app-root-dir": "^1.0.2", + "dotenv": "^16.0.0", + "dotenv-expand": "^10.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=14.0.0" } }, + "node_modules/legacy-stories": { + "resolved": "packages/legacy-stories", + "link": true + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -19123,6 +25477,31 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", @@ -19162,6 +25541,13 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, + "node_modules/lodash.clonedeepwith": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeepwith/-/lodash.clonedeepwith-4.5.0.tgz", + "integrity": "sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -19169,6 +25555,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -19263,6 +25656,30 @@ "node": ">=8" } }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/long-timeout": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", + "integrity": "sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==", + "dev": true, + "license": "MIT" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -19299,6 +25716,16 @@ "get-func-name": "^2.0.1" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -19316,6 +25743,16 @@ "dev": true, "license": "MIT" }, + "node_modules/luxon": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz", + "integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/lz-string": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", @@ -19412,6 +25849,13 @@ "node": ">= 12" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/media-query-parser": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", @@ -19702,6 +26146,13 @@ "node": ">= 0.6" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, "node_modules/next": { "version": "14.2.5", "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", @@ -19752,6 +26203,16 @@ } } }, + "node_modules/next/node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, "node_modules/next/node_modules/postcss": { "version": "8.4.31", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", @@ -19780,10 +26241,73 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/next/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, "node_modules/nextjs-spa": { "resolved": "examples/nextjs-spa", "link": true }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -19798,6 +26322,19 @@ "dev": true, "license": "MIT" }, + "node_modules/node-preload": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", + "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "process-on-spawn": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -19805,6 +26342,21 @@ "dev": true, "license": "MIT" }, + "node_modules/node-schedule": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-2.1.1.tgz", + "integrity": "sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cron-parser": "^4.2.0", + "long-timeout": "0.1.1", + "sorted-array-functions": "^1.3.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/nopt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", @@ -19918,6 +26470,19 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nwsapi": { "version": "2.2.12", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", @@ -19998,7 +26563,175 @@ } } }, - "node_modules/nx/node_modules/ansi-styles": { + "node_modules/nx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/nx/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/nx/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/nx/node_modules/dotenv-expand": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", + "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.4" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/nx/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nx/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nyc": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", + "integrity": "sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "caching-transform": "^4.0.0", + "convert-source-map": "^1.7.0", + "decamelize": "^1.2.0", + "find-cache-dir": "^3.2.0", + "find-up": "^4.1.0", + "foreground-child": "^2.0.0", + "get-package-type": "^0.1.0", + "glob": "^7.1.6", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-hook": "^3.0.0", + "istanbul-lib-instrument": "^4.0.0", + "istanbul-lib-processinfo": "^2.0.2", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "make-dir": "^3.0.0", + "node-preload": "^0.2.1", + "p-map": "^3.0.0", + "process-on-spawn": "^1.0.0", + "resolve-from": "^5.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "spawn-wrap": "^2.0.0", + "test-exclude": "^6.0.0", + "yargs": "^15.0.2" + }, + "bin": { + "nyc": "bin/nyc.js" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/nyc/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -20014,116 +26747,149 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/nx/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/nyc/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "balanced-match": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/nx/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/nyc/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8" } }, - "node_modules/nx/node_modules/dotenv-expand": { - "version": "11.0.6", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.6.tgz", - "integrity": "sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g==", + "node_modules/nyc/node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "BSD-3-Clause", "dependencies": { - "dotenv": "^16.4.4" + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" + "node": ">=8" } }, - "node_modules/nx/node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "node_modules/nyc/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=14.14" + "node": ">=8" } }, - "node_modules/nx/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/nyc/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nx/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "node_modules/nyc/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "p-limit": "^2.2.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/nx/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/nyc/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/nx/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/nyc/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/nyc/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" }, "engines": { "node": ">=8" } }, + "node_modules/nyc/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/object-assign": { "version": "4.1.1", "dev": true, @@ -20234,6 +27000,24 @@ "get-intrinsic": "^1.2.1" } }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/object.values": { "version": "1.2.0", "dev": true, @@ -20261,6 +27045,16 @@ "node": ">= 0.8" } }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/once": { "version": "1.4.0", "dev": true, @@ -20283,6 +27077,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/only": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz", + "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==", + "dev": true + }, "node_modules/open": { "version": "8.4.2", "dev": true, @@ -20299,6 +27099,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, "node_modules/optionator": { "version": "0.9.3", "dev": true, @@ -20427,6 +27237,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -20437,6 +27260,22 @@ "node": ">=6" } }, + "node_modules/package-hash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", + "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.15", + "hasha": "^5.0.0", + "lodash.flattendeep": "^4.4.0", + "release-zalgo": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", @@ -20483,6 +27322,16 @@ "dev": true, "license": "MIT" }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -20788,6 +27637,41 @@ "node": ">=10" } }, + "node_modules/portfinder": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", + "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.4", + "debug": "^3.2.7", + "mkdirp": "^0.5.6" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -21014,6 +27898,65 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/pretty-format/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/proc-log": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", @@ -21034,6 +27977,19 @@ "node": ">= 0.6.0" } }, + "node_modules/process-on-spawn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", + "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fromentries": "^1.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -21166,6 +28122,34 @@ ], "license": "MIT" }, + "node_modules/rambda": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/rambda/-/rambda-9.3.0.tgz", + "integrity": "sha512-cl/7DCCKNxmsbc0dXZTJTY08rvDdzLhVfE6kPBson1fWzDapLzv0RKSzjpmAqP53fkQqAvq05gpUVHTrUNsuxg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", + "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -21378,6 +28362,13 @@ "dev": true, "license": "0BSD" }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -21493,6 +28484,106 @@ "npm-normalize-package-bin": "^1.0.0" } }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -21756,6 +28847,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/release-zalgo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", + "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", + "dev": true, + "license": "ISC", + "dependencies": { + "es6-error": "^4.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -21785,6 +28889,13 @@ "node": "*" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, "node_modules/requireindex": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", @@ -21833,6 +28944,20 @@ "node": ">=8" } }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -21888,6 +29013,13 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -21946,6 +29078,26 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", @@ -22033,6 +29185,56 @@ "loose-envify": "^1.1.0" } }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/secure-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", + "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -22098,6 +29300,16 @@ "dev": true, "license": "MIT" }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -22114,6 +29326,13 @@ "node": ">= 0.8.0" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -22254,6 +29473,13 @@ "tslib": "^2.0.3" } }, + "node_modules/sorted-array-functions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz", + "integrity": "sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==", + "dev": true, + "license": "MIT" + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -22295,6 +29521,37 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/spawn-wrap": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", + "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^2.0.0", + "is-windows": "^1.0.2", + "make-dir": "^3.0.0", + "rimraf": "^3.0.0", + "signal-exit": "^3.0.2", + "which": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/spawnd": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-5.0.0.tgz", + "integrity": "sha512-28+AJr82moMVWolQvlAIv3JcYDkjkFTEmfDc503wxrF5l2rQ3dFz6DpbXp3kD4zmgGGldfM4xM4v1sFj/ZaIOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "exit": "^0.1.2", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "wait-port": "^0.2.9" + } + }, "node_modules/spdx-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", @@ -22434,6 +29691,21 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -22521,17 +29793,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string.prototype.includes": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", - "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.11", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", @@ -22856,17 +30117,54 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -22889,6 +30187,32 @@ "dev": true, "license": "MIT" }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -22896,6 +30220,13 @@ "dev": true, "license": "MIT" }, + "node_modules/synchronous-promise": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.17.tgz", + "integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/tailwind-merge": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.4.0.tgz", @@ -22981,6 +30312,192 @@ "memoizerific": "^1.11.3" } }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.32.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.32.0.tgz", + "integrity": "sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -23338,6 +30855,27 @@ "dev": true, "license": "MIT" }, + "node_modules/tsconfck": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.3.tgz", + "integrity": "sha512-ulNZP1SVpRDesxeMLON/LtWM8HIgAJEIVpVVhBM6gsmvQ8+Rh+ZG7FWGvHh7Ah3pRABwVJWklWCr/BTZSv0xnQ==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -23369,6 +30907,16 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "license": "0BSD" }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/tsup": { "version": "8.2.4", "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.2.4.tgz", @@ -24015,6 +31563,16 @@ "node": ">=4" } }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -24106,6 +31664,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, "node_modules/typedoc": { "version": "0.23.16", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.16.tgz", @@ -24172,6 +31740,20 @@ "dev": true, "license": "MIT" }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -24256,6 +31838,31 @@ "node": ">=4" } }, + "node_modules/union": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", + "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", + "dev": true, + "dependencies": { + "qs": "^6.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/unist-util-is": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", @@ -24356,6 +31963,27 @@ "node": ">=0.4.0" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", @@ -24397,6 +32025,13 @@ "punycode": "^2.1.0" } }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -24667,6 +32302,29 @@ "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/vite-plugin-require": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/vite-plugin-require/-/vite-plugin-require-1.2.14.tgz", + "integrity": "sha512-i52DfITgYKtOZyh9kOjyy4ENTQBVHG0ozTKHQdFkGAHYqZwM3Dn2c5gsA5rR7IrHQ/PQET3SMz6HkNzZ2fXCyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "@vue/compiler-sfc": "^3.4.27", + "vue-loader": "^17.4.2", + "webpack": "^4.46.0 || ^5.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, "node_modules/vite-plugin-static-copy": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", @@ -24697,8 +32355,28 @@ "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, - "engines": { - "node": ">=14.14" + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-tsconfig-paths": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.0.1.tgz", + "integrity": "sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" + }, + "peerDependencies": { + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } } }, "node_modules/vite/node_modules/@esbuild/aix-ppc64": { @@ -25217,6 +32895,85 @@ "dev": true, "license": "MIT" }, + "node_modules/vue-loader": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz", + "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "watchpack": "^2.4.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/vue-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/vue-tsc": { "version": "2.0.29", "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.29.tgz", @@ -25261,6 +33018,61 @@ "node": ">=14" } }, + "node_modules/wait-on": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-5.3.0.tgz", + "integrity": "sha512-DwrHrnTK+/0QFaB9a8Ol5Lna3k7WvUR4jzSKmz0YaPBpuN2sACyiPVKVfj6ejnjcajAcvn3wlbTyMIn9AZouOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "axios": "^0.21.1", + "joi": "^17.3.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^6.6.3" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/wait-on/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/wait-port": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/wait-port/-/wait-port-0.2.14.tgz", + "integrity": "sha512-kIzjWcr6ykl7WFbZd0TMae8xovwqcqbx6FM9l+7agOgUByhzdjfzZBPK2CPufldTOMxbUivss//Sh9MFawmPRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.2", + "commander": "^3.0.2", + "debug": "^4.1.1" + }, + "bin": { + "wait-port": "bin/wait-port.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wait-port/node_modules/commander": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", + "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "dev": true, + "license": "MIT" + }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", @@ -25271,6 +33083,20 @@ "makeerror": "1.0.12" } }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -25291,6 +33117,63 @@ "node": ">=12" } }, + "node_modules/webpack": { + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/webpack-virtual-modules": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", @@ -25298,6 +33181,19 @@ "dev": true, "license": "MIT" }, + "node_modules/webpack/node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -25427,6 +33323,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -25447,6 +33350,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wouter-preact": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/wouter-preact/-/wouter-preact-3.0.1.tgz", @@ -25572,6 +33482,13 @@ } } }, + "node_modules/xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true, + "license": "MIT" + }, "node_modules/xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", @@ -25645,6 +33562,16 @@ "node": ">=12" } }, + "node_modules/ylru": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", @@ -25690,6 +33617,15 @@ "react-dom": "18.3.1" } }, + "packages/elements-react-stories": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@originjs/vite-plugin-commonjs": "1.0.3", + "@ory/client-fetch": "1.15.0-next.0", + "@ory/elements-react": "*" + } + }, "packages/elements-react/node_modules/@esbuild/android-arm": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", @@ -26064,6 +34000,19 @@ "node": ">=18" } }, + "packages/elements-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "packages/elements-react/node_modules/esbuild": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", @@ -26104,6 +34053,39 @@ "@esbuild/win32-x64": "0.23.1" } }, + "packages/elements-react/node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, "packages/elements-react/node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -26160,6 +34142,24 @@ } } }, + "packages/elements-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "packages/elements-react/node_modules/rollup": { "version": "4.21.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz", @@ -26290,6 +34290,10 @@ "webidl-conversions": "^4.0.2" } }, + "packages/legacy-stories": { + "version": "1.0.0", + "license": "ISC" + }, "packages/markup": { "name": "@ory/elements-markup", "version": "0.0.0", @@ -26317,6 +34321,21 @@ "npm": ">=8.11.0" } }, + "packages/stories": { + "version": "1.0.0", + "extraneous": true, + "license": "ISC", + "dependencies": { + "@originjs/vite-plugin-commonjs": "1.0.3", + "@ory/client-fetch": "1.15.0-next.0", + "@ory/elements-react": "*" + } + }, + "packages/storybook-host": { + "version": "1.0.0", + "extraneous": true, + "license": "ISC" + }, "packages/test": { "name": "@ory/elements-test", "version": "0.0.0", diff --git a/package.json b/package.json index 7a05cfcac..9a719120a 100644 --- a/package.json +++ b/package.json @@ -26,13 +26,19 @@ "homepage": "https://github.com/ory/elements#readme", "devDependencies": { "@babel/core": "7.18.10", + "@babel/preset-react": "^7.14.5", "@babel/preset-typescript": "7.23.3", "@formatjs/cli-lib": "6.3.3", "@nrwl/eslint-plugin-nx": "19.5.4", "@nrwl/linter": "19.5.4", "@nx/eslint": "19.5.4", + "@nx/eslint-plugin": "19.5.4", "@nx/jest": "19.5.4", "@nx/js": "19.5.4", + "@nx/react": "19.5.4", + "@nx/storybook": "19.5.4", + "@nx/vite": "19.5.4", + "@nx/web": "19.5.4", "@ory/client": "1.6.2", "@playwright/experimental-ct-react": "1.46.0", "@preact/preset-vite": "2.5.0", @@ -41,10 +47,17 @@ "@storybook/addon-interactions": "8.3.0", "@storybook/addon-links": "8.3.0", "@storybook/core-common": "8.3.0", + "@storybook/core-server": "7.6.20", + "@storybook/jest": "^0.2.3", "@storybook/node-logger": "8.3.0", "@storybook/react": "8.3.0", "@storybook/react-vite": "8.3.0", + "@storybook/test-runner": "^0.13.0", + "@storybook/testing-library": "^0.2.2", "@storybook/types": "8.3.0", + "@swc-node/register": "~1.9.1", + "@swc/core": "~1.5.7", + "@swc/helpers": "~0.5.11", "@testing-library/dom": "10.4.0", "@testing-library/react": "16.0.1", "@testing-library/user-event": "14.5.2", @@ -70,9 +83,12 @@ "eslint-config-standard": "17.1.0", "eslint-plugin-formatjs": "4.10.5", "eslint-plugin-import": "2.28.1", + "eslint-plugin-jsx-a11y": "6.7.1", "eslint-plugin-n": "16.1.0", "eslint-plugin-playwright": "1.6.2", "eslint-plugin-promise": "6.1.1", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-storybook": "0.8.0", "eslint-plugin-tsdoc": "0.2.17", "jest": "29.7.0", @@ -86,8 +102,8 @@ "react": "18.3.1", "react-dom": "18.3.1", "react-intl": "6.4.4", - "tailwindcss": "3.4.7", "storybook": "8.3.0", + "tailwindcss": "3.4.7", "ts-jest": "29.2.4", "ts-node": "10.9.2", "tsup": "8.2.4", @@ -95,7 +111,9 @@ "typescript": "5.2.2", "vite": "5.4.3", "vite-plugin-dts": "4.1.0", + "vite-plugin-require": "1.2.14", "vite-plugin-static-copy": "1.0.6", + "vite-tsconfig-paths": "5.0.1", "which-builtin-type": "1.1.4" }, "files": [ diff --git a/packages/elements-react-stories/.storybook/main.ts b/packages/elements-react-stories/.storybook/main.ts new file mode 100644 index 000000000..70efc7332 --- /dev/null +++ b/packages/elements-react-stories/.storybook/main.ts @@ -0,0 +1,37 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import type { StorybookConfig } from "@storybook/react-vite" + +import { nxViteTsPaths } from "@nx/vite/plugins/nx-tsconfig-paths.plugin" +import { mergeConfig } from "vite" +import vitePluginRequire from "vite-plugin-require" +import path from "path" + +const config: StorybookConfig = { + stories: ["../src/**/*.stories.@(js|jsx|ts|tsx|mdx)"], + addons: ["@storybook/addon-essentials", "@storybook/addon-interactions"], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + + viteFinal: async (config) => + mergeConfig(config, { + plugins: [nxViteTsPaths(), vitePluginRequire()], + resolve: { + alias: [ + { + find: "$", + replacement: path.resolve(__dirname, "../src/elements-react"), + }, + ], + }, + }), +} + +export default config + +// To customize your Vite configuration you can use the viteFinal field. +// Check https://storybook.js.org/docs/react/builders/vite#configuration +// and https://nx.dev/recipes/storybook/custom-builder-configs diff --git a/packages/elements-react-stories/.storybook/modes.ts b/packages/elements-react-stories/.storybook/modes.ts new file mode 100644 index 000000000..b24583863 --- /dev/null +++ b/packages/elements-react-stories/.storybook/modes.ts @@ -0,0 +1,18 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +// export const chromaticModes = Object.keys(langs).reduce((acc, lang) => { +// acc[lang] = { +// locale: lang, +// } +// return acc +// }, {}) + +export const chromaticModes = { + en: { + locale: "en", + }, + de: { + locale: "de", + }, +} diff --git a/packages/elements-react-stories/.storybook/preview.tsx b/packages/elements-react-stories/.storybook/preview.tsx new file mode 100644 index 000000000..9ae98f12c --- /dev/null +++ b/packages/elements-react-stories/.storybook/preview.tsx @@ -0,0 +1,56 @@ +import { IntlProvider } from "@ory/elements-react" +import type { Decorator, Preview } from "@storybook/react" +import { chromaticModes } from "./modes" +import "@ory/elements-react/theme/styles.css" + +const preview: Preview = { + parameters: { + backgrounds: { + default: "light", + values: [ + { name: "light", value: "#f5f5f5" }, + { name: "dark", value: "#333333" }, + ], + }, + actions: { argTypesRegex: "^on[A-Z].*" }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + chromatic: { + modes: chromaticModes, + }, + }, +} + +const withI18next: Decorator = (Story, context) => { + const { locale } = context.globals + + return ( + + + + ) +} + +// export decorators for storybook to wrap your stories in +export const decorators = [withI18next] + +export const globalTypes = { + locale: { + name: "Locale", + description: "Internationalization locale", + toolbar: { + icon: "globe", + items: [ + { value: "en", title: "English" }, + { value: "de", title: "Deutsch" }, + ], + showName: true, + }, + }, +} + +export default preview diff --git a/packages/elements-react-stories/package.json b/packages/elements-react-stories/package.json new file mode 100644 index 000000000..abdc88e74 --- /dev/null +++ b/packages/elements-react-stories/package.json @@ -0,0 +1,14 @@ +{ + "name": "elements-react-stories", + "version": "1.0.0", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "@originjs/vite-plugin-commonjs": "1.0.3", + "@ory/client-fetch": "1.15.0-next.0", + "@ory/elements-react": "*" + } +} diff --git a/packages/elements-react-stories/project.json b/packages/elements-react-stories/project.json new file mode 100644 index 000000000..bf7bb6fa5 --- /dev/null +++ b/packages/elements-react-stories/project.json @@ -0,0 +1,3 @@ +{ + "targets": {} +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/initial-form.json new file mode 100644 index 000000000..e71a97837 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/initial-form.json @@ -0,0 +1,243 @@ +{ + "id": "7829da21-301f-420d-b91d-28eb63dc132b", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:44.135905709Z", + "issued_at": "2024-04-25T12:57:44.135905709Z", + "request_url": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login?flow=7829da21-301f-420d-b91d-28eb63dc132b", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "Tw5uN5cojB6RRxpH4O/CsKi7sfcTD/SuGZasUYq1SjOND6q5jAeKO1fjzO/1i73gTsUBZ+hxG00g5I073WPzpg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "e5274198-d8bc-4622-9cba-0d721930cfb7", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "method", + "type": "submit", + "value": "webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010008, + "text": "Use security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login_trigger", + "type": "button", + "value": "", + "disabled": false, + "onclick": "window.oryPasskeyLogin()", + "onclickTrigger": "oryPasskeyLogin", + "onload": "window.oryPasskeyLoginAutocompleteInit()", + "onloadTrigger": "oryPasskeyLoginAutocompleteInit", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010021, + "text": "Sign in with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_challenge", + "type": "hidden", + "value": "{\"publicKey\":{\"challenge\":\"rlZe03JabwF9e5YamwdVljjh8-tbtC9NSS9YjB7layk\",\"timeout\":300000,\"rpId\":\"friendly-franklin-hcfczr99ek.projects.oryapis\",\"userVerification\":\"preferred\"}}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010015, + "text": "Sign in with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "current-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010001, + "text": "Sign in", + "type": "info" + } + } + } + ] + }, + "created_at": "2024-04-25T12:57:44.140779Z", + "updated_at": "2024-04-25T12:57:44.140779Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/missing-email.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/missing-email.json new file mode 100644 index 000000000..dfc0a0cf1 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/missing-email.json @@ -0,0 +1,261 @@ +{ + "id": "7829da21-301f-420d-b91d-28eb63dc132b", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:44.135905Z", + "issued_at": "2024-04-25T12:57:44.135905Z", + "request_url": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login?flow=7829da21-301f-420d-b91d-28eb63dc132b", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "3Qz2WjGZ65Vt3YTotnO9NIImqRVnMqZ/2oVugdA5Vy8fDTLUKrbtsKt5UkCjF8JkZFgZhZxMSZzj90/rh+/uug==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property identifier is missing.", + "type": "error", + "context": { + "property": "identifier" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "e5274198-d8bc-4622-9cba-0d721930cfb7", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "method", + "type": "submit", + "value": "webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010008, + "text": "Use security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login_trigger", + "type": "button", + "value": "", + "disabled": false, + "onclick": "window.oryPasskeyLogin()", + "onclickTrigger": "oryPasskeyLogin", + "onload": "window.oryPasskeyLoginAutocompleteInit()", + "onloadTrigger": "oryPasskeyLoginAutocompleteInit", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010021, + "text": "Sign in with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_challenge", + "type": "hidden", + "value": "{\"publicKey\":{\"challenge\":\"rlZe03JabwF9e5YamwdVljjh8-tbtC9NSS9YjB7layk\",\"timeout\":300000,\"rpId\":\"friendly-franklin-hcfczr99ek.projects.oryapis\",\"userVerification\":\"preferred\"}}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010015, + "text": "Sign in with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "current-password", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property password is missing.", + "type": "error", + "context": { + "property": "password" + } + } + ], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010001, + "text": "Sign in", + "type": "info" + } + } + } + ] + }, + "created_at": "2024-04-25T12:57:44.140779Z", + "updated_at": "2024-04-25T12:57:44.140779Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/wrong-credentials.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/wrong-credentials.json new file mode 100644 index 000000000..9736dfbfe --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/wrong-credentials.json @@ -0,0 +1,250 @@ +{ + "id": "7829da21-301f-420d-b91d-28eb63dc132b", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:44.135905Z", + "issued_at": "2024-04-25T12:57:44.135905Z", + "request_url": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/self-service/login?flow=7829da21-301f-420d-b91d-28eb63dc132b", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "NQhqo0GMPYDefJCT1Fye+FlvOEdEnJ+XO70/ujPAr/v3Ca4tWqM7pRjYRjvBOOGovxGI17/icHQCzx7QZBYWbg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "wrong-email@example.org", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://friendly-franklin-hcfczr99ek.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "e5274198-d8bc-4622-9cba-0d721930cfb7", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "method", + "type": "submit", + "value": "webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010008, + "text": "Use security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login_trigger", + "type": "button", + "value": "", + "disabled": false, + "onclick": "window.oryPasskeyLogin()", + "onclickTrigger": "oryPasskeyLogin", + "onload": "window.oryPasskeyLoginAutocompleteInit()", + "onloadTrigger": "oryPasskeyLoginAutocompleteInit", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010021, + "text": "Sign in with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_challenge", + "type": "hidden", + "value": "{\"publicKey\":{\"challenge\":\"rlZe03JabwF9e5YamwdVljjh8-tbtC9NSS9YjB7layk\",\"timeout\":300000,\"rpId\":\"friendly-franklin-hcfczr99ek.projects.oryapis\",\"userVerification\":\"preferred\"}}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010015, + "text": "Sign in with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "current-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010001, + "text": "Sign in", + "type": "info" + } + } + } + ], + "messages": [ + { + "id": 4000006, + "text": "The provided credentials are invalid, check for spelling mistakes in your password or username, email address, or phone number.", + "type": "error" + } + ] + }, + "created_at": "2024-04-25T12:57:44.140779Z", + "updated_at": "2024-04-25T12:57:44.140779Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/code-input.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/code-input.json new file mode 100644 index 000000000..b8f4c12eb --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/code-input.json @@ -0,0 +1,135 @@ +{ + "id": "08afa882-d36a-473a-9faf-77dc25763b01", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:42.792898Z", + "issued_at": "2024-04-25T12:57:42.792898Z", + "request_url": "https://naughty-torvalds-10x7h3fzj6.projects.oryapis:8080/self-service/login/browser", + "active": "code", + "ui": { + "action": "https://naughty-torvalds-10x7h3fzj6.projects.oryapis:8080/self-service/login?flow=08afa882-d36a-473a-9faf-77dc25763b01", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "h41boJQiZLBAvjdVt1cCJAfFOFvJpWaFhInQHEy4wITCIL4a0DXVRWHIv+PMJH20wRxlf+6iZ5USog7I/3/6LA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.1tnn3qyzbqf0.dnspguo1be@ory.dev", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "hidden", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "code", + "type": "text", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070013, + "text": "Login code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070005, + "text": "Submit", + "type": "info" + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "resend", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070008, + "text": "Resend code", + "type": "info" + } + } + } + ], + "messages": [ + { + "id": 1010014, + "text": "An email containing a code has been sent to the email address you provided. If you have not received an email, check the spelling of the address and retry the login.", + "type": "info" + } + ] + }, + "created_at": "2024-04-25T12:57:42.795925Z", + "updated_at": "2024-04-25T12:57:42.795925Z", + "refresh": false, + "requested_aal": "aal1", + "state": "sent_email", + "transient_payload": {} +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/initial-form.json new file mode 100644 index 000000000..06d27bf2f --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/initial-form.json @@ -0,0 +1,134 @@ +{ + "id": "4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "type": "browser", + "expires_at": "2024-04-25T13:57:41.091806347Z", + "issued_at": "2024-04-25T12:57:41.091806347Z", + "request_url": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration?flow=4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "3eRMUWBruxCwAtoGq1MJ6TnRo9LaKTOoC2DRaptT5aFVnH+RALhgewlHQJ5e1ebT8K1tAcwUlTmdnBsV0vUySA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/invalid-account.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/invalid-account.json new file mode 100644 index 000000000..b2e9f269a --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/invalid-account.json @@ -0,0 +1,143 @@ +{ + "id": "4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "type": "browser", + "expires_at": "2024-04-25T13:57:41.091806Z", + "issued_at": "2024-04-25T12:57:41.091806Z", + "request_url": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration?flow=4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "leK4uZHjUXV5Ji6xI7LAcaxiNU6V3GUe56puCqu2jL0dmot58TCKHsBjtCnWNC9LZR77nYPhw49xVqR14hBbVA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/missing-email.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/missing-email.json new file mode 100644 index 000000000..d807f3bfc --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/missing-email.json @@ -0,0 +1,143 @@ +{ + "id": "4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "type": "browser", + "expires_at": "2024-04-25T13:57:41.091806Z", + "issued_at": "2024-04-25T12:57:41.091806Z", + "request_url": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://epic-shaw-qkjg2xuv0p.projects.oryapis:8080/self-service/registration?flow=4ea204bf-e9df-459c-b0c7-1045b9fd13b7", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "rg8TTRRG4Q85IsRp6zcKNw3yNKwyEBQ9+Q1XerxMP8YmdyCNdJU6ZIBnXvEeseUNxI76fyQtsqxv8Z0F9eroLw==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/wrong-credentials.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/wrong-credentials.json new file mode 100644 index 000000000..93e90a6d8 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/code/wrong-credentials.json @@ -0,0 +1,134 @@ +{ + "id": "08afa882-d36a-473a-9faf-77dc25763b01", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:42.792898Z", + "issued_at": "2024-04-25T12:57:42.792898Z", + "request_url": "https://naughty-torvalds-10x7h3fzj6.projects.oryapis:8080/self-service/login/browser", + "active": "code", + "ui": { + "action": "https://naughty-torvalds-10x7h3fzj6.projects.oryapis:8080/self-service/login?flow=08afa882-d36a-473a-9faf-77dc25763b01", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "+dCJMSODJwlah6qTfDYcGw08/2MW/NBQmvlYF7hHvN68fWyLZ5SW/HvxIiUHRWOLy+WiRzH70UAM0obDC4CGdg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "dev+orycye2eda2f162daf6142dd0.1tnn3qyzbqf0.dnspguo1be@ory.dev", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "code", + "type": "text", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070013, + "text": "Login code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "resend", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070008, + "text": "Resend code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "hidden", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070005, + "text": "Submit", + "type": "info" + } + } + } + ], + "messages": [ + { + "id": 4010008, + "text": "The login code is invalid or has already been used. Please try again.", + "type": "error" + } + ] + }, + "created_at": "2024-04-25T12:57:42.795925Z", + "updated_at": "2024-04-25T12:57:42.795925Z", + "refresh": false, + "requested_aal": "aal1", + "state": "sent_email" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/none/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/none/initial-form.json new file mode 100644 index 000000000..5aa1544e8 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/none/initial-form.json @@ -0,0 +1,33 @@ +{ + "id": "b54c4772-5d84-4d13-a23d-5f194b17037f", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:42.231302375Z", + "issued_at": "2024-04-25T12:57:42.231302375Z", + "request_url": "https://xenodochial-haslett-czoqm7lclx.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://xenodochial-haslett-czoqm7lclx.projects.oryapis:8080/self-service/login?flow=b54c4772-5d84-4d13-a23d-5f194b17037f", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "v4czjv6RgQq1hMh3rYpZSuIqT5u3rIIk6gwoTZbb2zpkbeujbezdvSvRUNoqik5Aakj1kzWVkhbMUjFH71H6Lg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ] + }, + "created_at": "2024-04-25T12:57:42.232968Z", + "updated_at": "2024-04-25T12:57:42.232968Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/oidc/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/oidc/initial-form.json new file mode 100644 index 000000000..aee95e164 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/oidc/initial-form.json @@ -0,0 +1,209 @@ +{ + "id": "5ca844df-133e-42b4-bc7f-9b477161a247", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:53.109598338Z", + "issued_at": "2024-04-25T12:57:53.109598338Z", + "request_url": "https://wonderful-sinoussi-ugrt93yg5l.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://wonderful-sinoussi-ugrt93yg5l.projects.oryapis:8080/self-service/login?flow=5ca844df-133e-42b4-bc7f-9b477161a247", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "X", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with x", + "type": "info", + "context": { + "provider": "x" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "apple", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Apple", + "type": "info", + "context": { + "provider": "Apple" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "auth0", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with auth0", + "type": "info", + "context": { + "provider": "auth0" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "generic", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with FooBarLogo", + "type": "info", + "context": { + "provider": "FooBarLogo" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "linkedin", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with LinkedIn", + "type": "info", + "context": { + "provider": "LinkedIn" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "microsoft", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010002, + "text": "Sign in with Microsoft", + "type": "info", + "context": { + "provider": "Microsoft" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "P0T3qSYbAiRNjwCZpYPXJrIGSF/lBTyPl3aZte4rVGNcvbMn2fBIPeRjWOnlYGhYpvh63GQqKFsFISguyCuyZg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ] + }, + "created_at": "2024-04-25T12:57:53.111622Z", + "updated_at": "2024-04-25T12:57:53.111622Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/passkey/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/passkey/initial-form.json new file mode 100644 index 000000000..89b0da383 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/passkey/initial-form.json @@ -0,0 +1,122 @@ +{ + "id": "91d28c6e-01dd-4045-866a-2a77948c67ee", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T10:32:58.618376Z", + "issued_at": "2024-04-25T09:32:58.618376Z", + "request_url": "https://amazing-almeida-nj3chu1j6y.projects.oryapis:8080/self-service/login/browser?aal=&refresh=&return_to=&organization=&via=", + "ui": { + "action": "https://amazing-almeida-nj3chu1j6y.projects.oryapis:8080/self-service/login?flow=91d28c6e-01dd-4045-866a-2a77948c67ee", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "WVmOkwzOoyIsyt94xuTwCo9CEFdCt4hIHYUqLBGxk6YARZqUKooZ9l/fbcuVwCj+5J4oEhjfe4RNBH3AiTfWxg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://amazing-almeida-nj3chu1j6y.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "1c6d11e1-b656-45da-b837-f4c7ef0fd494", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login_trigger", + "type": "button", + "value": "", + "disabled": false, + "onclick": "window.oryPasskeyLogin()", + "onclickTrigger": "oryPasskeyLogin", + "onload": "window.oryPasskeyLoginAutocompleteInit()", + "onloadTrigger": "oryPasskeyLoginAutocompleteInit", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010021, + "text": "Sign in with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_login", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_challenge", + "type": "hidden", + "value": "{\"publicKey\":{\"challenge\":\"yBr9djjNUOI8_fSZMLHUUPXPP3g0aCzLLFgW772ZFJY\",\"timeout\":300000,\"rpId\":\"amazing-almeida-nj3chu1j6y.projects.oryapis\",\"userVerification\":\"preferred\"}}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ] + }, + "created_at": "2024-04-25T09:32:58.621447Z", + "updated_at": "2024-04-25T09:32:58.621447Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/initial-form.json new file mode 100644 index 000000000..23790d6c0 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/initial-form.json @@ -0,0 +1,154 @@ +{ + "id": "c16b58c8-32ae-4264-a63f-f606f1c932be", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.945407627Z", + "issued_at": "2024-04-25T12:57:45.945407627Z", + "request_url": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration?flow=c16b58c8-32ae-4264-a63f-f606f1c932be", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "V/81R7TAlrCsiHs7d/NRRenJKP2HrNSte2nr9LzpoERAPLizujkBVtQYNcccHQ0XTJcR/YqECJ6ct1CuDsAkug==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/missing-email.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/missing-email.json new file mode 100644 index 000000000..fea917f37 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/missing-email.json @@ -0,0 +1,172 @@ +{ + "id": "c16b58c8-32ae-4264-a63f-f606f1c932be", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.945407Z", + "issued_at": "2024-04-25T12:57:45.945407Z", + "request_url": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration?flow=c16b58c8-32ae-4264-a63f-f606f1c932be", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "jsoDS+rlz77GccEQzyMxaGeY+HBvQ2nY67lDXbetYqGZCY6/5BxYWL7hj+ykzW06wsbBcGJrtesMZ/gHBYTmXw==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property password is missing.", + "type": "error", + "context": { + "property": "password" + } + } + ], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/wrong-credentials.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/wrong-credentials.json new file mode 100644 index 000000000..e33243404 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/password/wrong-credentials.json @@ -0,0 +1,163 @@ +{ + "id": "c16b58c8-32ae-4264-a63f-f606f1c932be", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.945407Z", + "issued_at": "2024-04-25T12:57:45.945407Z", + "request_url": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://modest-mclean-7sb33o1yb7.projects.oryapis:8080/self-service/registration?flow=c16b58c8-32ae-4264-a63f-f606f1c932be", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "gO4f7rmf48YGLQg9i/8zcEsxWu5R9QyIxPX495TAg6mXLZIat2Z0IH69RsHgEW8i7m9j7lzd0LsjK0OtJukHVw==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/initial-form.json new file mode 100644 index 000000000..ed4723003 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/initial-form.json @@ -0,0 +1,76 @@ +{ + "id": "c716b2bc-62dd-4393-9fce-bcad08576dca", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:49.507108Z", + "issued_at": "2024-04-25T12:57:49.507108Z", + "request_url": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login/browser?aal=&refresh=&return_to=&organization=&via=", + "ui": { + "action": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login?flow=c716b2bc-62dd-4393-9fce-bcad08576dca", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "Ds5dxpAU/2Sj0WBWFa5uFzz2/P4ruVFGSnUr0V4JhAxGiSezSRztQFlFxqCrPxTeTXpwlrX/Fabe7clrVpX/Sg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "method", + "type": "submit", + "value": "webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010008, + "text": "Use security key", + "type": "info" + } + } + } + ] + }, + "created_at": "2024-04-25T12:57:49.509163Z", + "updated_at": "2024-04-25T12:57:49.509163Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/invalid-account.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/invalid-account.json new file mode 100644 index 000000000..52aa71884 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/invalid-account.json @@ -0,0 +1,83 @@ +{ + "id": "9af3b6eb-fd8d-46b6-9c7e-b7efbdd0be15", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:49.825551Z", + "issued_at": "2024-04-25T12:57:49.825551Z", + "request_url": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login/browser", + "ui": { + "action": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login?flow=9af3b6eb-fd8d-46b6-9c7e-b7efbdd0be15", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "fC6Gp46FHFeT9cBjEc0aYgKYsLmGbgglFvgKo0xAPVZDsPflvAhT7/cqLDGCVCVuYSxyIrNN9HscEH8ckT2g3w==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "text", + "value": "", + "required": true, + "autocomplete": "username webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "method", + "type": "submit", + "value": "webauthn", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010008, + "text": "Use security key", + "type": "info" + } + } + } + ], + "messages": [ + { + "id": 4000015, + "text": "This account does not exist or has no security key set up.", + "type": "error" + } + ] + }, + "created_at": "2024-04-25T12:57:49.827733Z", + "updated_at": "2024-04-25T12:57:49.827733Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/show-trigger.json b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/show-trigger.json new file mode 100644 index 000000000..81c26146c --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/login/1fa/webauthn/show-trigger.json @@ -0,0 +1,105 @@ +{ + "id": "c716b2bc-62dd-4393-9fce-bcad08576dca", + "organization_id": null, + "type": "browser", + "expires_at": "2024-04-25T13:57:49.507108Z", + "issued_at": "2024-04-25T12:57:49.507108Z", + "request_url": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login/browser?aal=&refresh=&return_to=&organization=&via=", + "ui": { + "action": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/login?flow=c716b2bc-62dd-4393-9fce-bcad08576dca", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "identifier", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.7qgpxvzmt6p0.3q4d455aixk@ory.dev", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "nkdSHLqoNEFd+wxC7c4jReQLarLfKAuXJmlPefg0r3bWAChpY6AmZadvqrRTX1mMlYfm2kFuT3ey8a3D8KjUMA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "ba71287b-4d52-4331-81b5-aed55db9940c", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_login_trigger", + "type": "button", + "value": "{\"publicKey\":{\"challenge\":\"6OCIMMjwQVslvUHMD5pbAYKajcPxD3ZAa7qpEZwSDUc\",\"timeout\":120000,\"rpId\":\"tender-goodall-7lgc6uyls4.projects.oryapis\",\"allowCredentials\":[{\"type\":\"public-key\",\"id\":\"p9qf476rnA5H4808ZQsAAsgzZ_b_AWJXrTTf9UhtZ3s\"}],\"userVerification\":\"discouraged\"}}", + "disabled": false, + "onclick": "window.oryWebAuthnLogin({\"publicKey\":{\"challenge\":\"6OCIMMjwQVslvUHMD5pbAYKajcPxD3ZAa7qpEZwSDUc\",\"timeout\":120000,\"rpId\":\"tender-goodall-7lgc6uyls4.projects.oryapis\",\"allowCredentials\":[{\"type\":\"public-key\",\"id\":\"p9qf476rnA5H4808ZQsAAsgzZ_b_AWJXrTTf9UhtZ3s\"}],\"userVerification\":\"discouraged\"}})", + "onclickTrigger": "oryWebAuthnLogin", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1010013, + "text": "Continue", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_login", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ], + "messages": [ + { + "id": 1010012, + "text": "Prepare your WebAuthn device (e.g. security key, biometrics scanner, ...) and press continue.", + "type": "info" + } + ] + }, + "created_at": "2024-04-25T12:57:49.509163Z", + "updated_at": "2024-04-25T12:57:49.509163Z", + "refresh": false, + "requested_aal": "aal1", + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/disabled/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/disabled/initial-form.json new file mode 100644 index 000000000..7fffe90f2 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/disabled/initial-form.json @@ -0,0 +1,9 @@ +{ + "error": { + "code": 400, + "status": "Bad Request", + "request": "8ebcc658-21e1-992d-ac51-354b11b371a0", + "reason": "Recovery is not allowed because it was disabled.", + "message": "The request was malformed or contained invalid parameters" + } +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/none/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/none/initial-form.json new file mode 100644 index 000000000..565d180b4 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/recovery/none/initial-form.json @@ -0,0 +1,9 @@ +{ + "error": { + "code": 400, + "status": "Bad Request", + "request": "3e38385d-71ad-9060-af56-ecd6a0604033", + "reason": "You attempted recovery using code, which is not enabled or does not exist. An administrator needs to enable this recovery method.", + "message": "The request was malformed or contained invalid parameters" + } +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/initial-form.json new file mode 100644 index 000000000..292473449 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/initial-form.json @@ -0,0 +1,332 @@ +{ + "id": "e77d5b46-4a0a-44a6-8617-358b938c738c", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.061863834Z", + "issued_at": "2024-04-25T12:57:44.061863834Z", + "request_url": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/self-service/registration?flow=e77d5b46-4a0a-44a6-8617-358b938c738c", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "y9DQSyOkAf3Xu16zG/sDymJcdUXde5L68HdhM/PO501RIIa88Ocs2UPg30W6hJBS+t42V1JkBPozHqmfV1ufKQ==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_displayname", + "type": "text", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1050013, + "text": "Name of the security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_trigger", + "type": "button", + "value": "{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"wTu-l2zfSxawqGhq-OIweg\"},\"challenge\":\"wa7lu1Tl9o89azAmc-1GSceEtIHRjrWP5tXwbie2ZKA\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}}", + "disabled": false, + "onclick": "window.oryWebAuthnRegistration({\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"wTu-l2zfSxawqGhq-OIweg\"},\"challenge\":\"wa7lu1Tl9o89azAmc-1GSceEtIHRjrWP5tXwbie2ZKA\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}})", + "onclickTrigger": "oryWebAuthnRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040004, + "text": "Sign up with security key", + "type": "info" + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "2c12bcb3-c232-4253-a491-f597ed5ae6c4", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register_trigger", + "type": "button", + "disabled": false, + "onclick": "window.oryPasskeyRegistration()", + "onclickTrigger": "oryPasskeyRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040007, + "text": "Sign up with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_create_data", + "type": "hidden", + "value": "{\"credentialOptions\":{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"TEVTc1lOQ0VGeXFkVk95eFdsQkVNVXFZcEtYYWNTS2hVdWFPemt3QmVOVDJ5QVd0eXBkTjE5ZmxkRml4VFVLYw\"},\"challenge\":\"Oma849QLA4bki66gGpd0S50T6ChsmmeU9zqE9e5XLF4\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\":true,\"userVerification\":\"preferred\"}}},\"displayNameFieldName\":\"traits.email\"}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/missing-fields.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/missing-fields.json new file mode 100644 index 000000000..021169cd2 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/all-methods/missing-fields.json @@ -0,0 +1,341 @@ +{ + "id": "e77d5b46-4a0a-44a6-8617-358b938c738c", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.061863Z", + "issued_at": "2024-04-25T12:57:44.061863Z", + "request_url": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/self-service/registration?flow=e77d5b46-4a0a-44a6-8617-358b938c738c", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "/IaYRz4TZ9dV9gfiBiCcXTgIQskd87HkCURE+bBTCUtmds6w7VBK88GthhSnXw/FoIoB25LsJ+TKLYxVFMZxLw==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_displayname", + "type": "text", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1050013, + "text": "Name of the security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_trigger", + "type": "button", + "value": "{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"wTu-l2zfSxawqGhq-OIweg\"},\"challenge\":\"wa7lu1Tl9o89azAmc-1GSceEtIHRjrWP5tXwbie2ZKA\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}}", + "disabled": false, + "onclick": "window.oryWebAuthnRegistration({\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"wTu-l2zfSxawqGhq-OIweg\"},\"challenge\":\"wa7lu1Tl9o89azAmc-1GSceEtIHRjrWP5tXwbie2ZKA\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}})", + "onclickTrigger": "oryWebAuthnRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040004, + "text": "Sign up with security key", + "type": "info" + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://busy-northcutt-9c8y6mgw44.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "2c12bcb3-c232-4253-a491-f597ed5ae6c4", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register_trigger", + "type": "button", + "disabled": false, + "onclick": "window.oryPasskeyRegistration()", + "onclickTrigger": "oryPasskeyRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040007, + "text": "Sign up with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_create_data", + "type": "hidden", + "value": "{\"credentialOptions\":{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"busy-northcutt-9c8y6mgw44.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-nhs7otCZ3RoXwkDD-6-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003eone-step\\u003eone step registration\",\"id\":\"TEVTc1lOQ0VGeXFkVk95eFdsQkVNVXFZcEtYYWNTS2hVdWFPemt3QmVOVDJ5QVd0eXBkTjE5ZmxkRml4VFVLYw\"},\"challenge\":\"Oma849QLA4bki66gGpd0S50T6ChsmmeU9zqE9e5XLF4\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\":true,\"userVerification\":\"preferred\"}}},\"displayNameFieldName\":\"traits.email\"}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/disabled/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/disabled/initial-form.json new file mode 100644 index 000000000..72fe0fe73 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/disabled/initial-form.json @@ -0,0 +1,10 @@ +{ + "error": { + "id": "self_service_flow_disabled", + "code": 400, + "status": "Bad Request", + "request": "e3b4d2de-1118-9977-ade1-f0f822b9d617", + "reason": "Registration is not allowed because it was disabled.", + "message": "registration flow disabled" + } +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/none/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/none/initial-form.json new file mode 100644 index 000000000..9b18934c1 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/none/initial-form.json @@ -0,0 +1,14 @@ +{ + "id": "6669f65a-0b39-45df-b282-92b112625451", + "type": "browser", + "expires_at": "2024-04-25T13:57:42.246461583Z", + "issued_at": "2024-04-25T12:57:42.246461583Z", + "request_url": "https://laughing-chatterjee-9po9989jau.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://laughing-chatterjee-9po9989jau.projects.oryapis:8080/self-service/registration?flow=6669f65a-0b39-45df-b282-92b112625451", + "method": "POST", + "nodes": null + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/passkey/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/passkey/initial-form.json new file mode 100644 index 000000000..b540e0753 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/passkey/initial-form.json @@ -0,0 +1,177 @@ +{ + "id": "4fae4bc6-ddbe-4c57-bf7f-7f2826b7105c", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.330541Z", + "issued_at": "2024-04-25T12:57:45.330541Z", + "request_url": "https://condescending-cray-s5hh1bvf71.projects.oryapis:8080/self-service/registration/browser?", + "ui": { + "action": "https://condescending-cray-s5hh1bvf71.projects.oryapis:8080/self-service/registration?flow=4fae4bc6-ddbe-4c57-bf7f-7f2826b7105c", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "bQ11O7Y50FXp8GAAaSfJ6vdT6QjZWo/s7numjfr+vxT8WNMHk0zOHIpXIawhgUSQRopgzAqRv/oal8Qf/6dEeQ==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://condescending-cray-s5hh1bvf71.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "eeeda931-71de-471e-887c-7d72d3e75c75", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register_trigger", + "type": "button", + "disabled": false, + "onclick": "window.oryPasskeyRegistration()", + "onclickTrigger": "oryPasskeyRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040007, + "text": "Sign up with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_create_data", + "type": "hidden", + "value": "{\"credentialOptions\":{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-h29fFQ4CeQDF5Ox0-0-tests/elements/passkey.spec.ts\\u003eGenerate passkey API responses for Ory Elements Storybook\\u003epasskey states\",\"id\":\"condescending-cray-s5hh1bvf71.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-h29fFQ4CeQDF5Ox0-0-tests/elements/passkey.spec.ts\\u003eGenerate passkey API responses for Ory Elements Storybook\\u003epasskey states\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-h29fFQ4CeQDF5Ox0-0-tests/elements/passkey.spec.ts\\u003eGenerate passkey API responses for Ory Elements Storybook\\u003epasskey states\",\"id\":\"dDVJOXZCbFBnRk16OGdnQnNCdmRzT3d0UWMwNm1hQTJTYnNyNVBzbTdIOFdjeDlqSXpqa3pnNjZaREwwQ0ppRA\"},\"challenge\":\"A0_HL1FmDYdxPXUQiDL-333tkx2PlkxFGpCRmMkcrEk\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\":true,\"userVerification\":\"preferred\"}}},\"displayNameFieldName\":\"traits.email\"}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/initial-form.json new file mode 100644 index 000000000..951e0ad74 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/initial-form.json @@ -0,0 +1,154 @@ +{ + "id": "58c3d7b3-3624-4460-b6ef-468ac3796524", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.694947043Z", + "issued_at": "2024-04-25T12:57:45.694947043Z", + "request_url": "https://crazy-diffie-sdubdvpai8.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://crazy-diffie-sdubdvpai8.projects.oryapis:8080/self-service/registration?flow=58c3d7b3-3624-4460-b6ef-468ac3796524", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "9hPOuJ/AFQWJAn8UeK/RHll5+FbZvUFe3AApFAfqeZ0tp+X6qqov8Gj7C4xlgeRPc0niCwEyNrkhbSFtbb0hzg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/missing-fields.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/missing-fields.json new file mode 100644 index 000000000..9fa0bcb04 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/missing-fields.json @@ -0,0 +1,172 @@ +{ + "id": "58c3d7b3-3624-4460-b6ef-468ac3796524", + "type": "browser", + "expires_at": "2024-04-25T13:57:45.694947Z", + "issued_at": "2024-04-25T12:57:45.694947Z", + "request_url": "https://crazy-diffie-sdubdvpai8.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://crazy-diffie-sdubdvpai8.projects.oryapis:8080/self-service/registration?flow=58c3d7b3-3624-4460-b6ef-468ac3796524", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "P+oafood9ivq8q1O56VWAP3jeW2wJMforaifNNe7/4bkXjE8v3fM3gsL2db6i2NR19NjMGirsA9QxZdNveyn1Q==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property password is missing.", + "type": "error", + "context": { + "property": "password" + } + } + ], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/second-step.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/second-step.json new file mode 100644 index 000000000..1317b8047 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/password/second-step.json @@ -0,0 +1,164 @@ +{ + "id": "1ea4a0fe-3701-4826-a886-97cf6f2753a9", + "type": "browser", + "expires_at": "2024-04-25T10:45:22.581042Z", + "issued_at": "2024-04-25T09:45:22.581042Z", + "request_url": "https://gifted-kare-8o2xaegkze.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://gifted-kare-8o2xaegkze.projects.oryapis:8080/self-service/registration?flow=1ea4a0fe-3701-4826-a886-97cf6f2753a9", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "password", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property password is missing.", + "type": "error", + "context": { + "property": "password" + } + } + ], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "DwJaQDhjtggHEXl162Y0jcLill1mHlvCOZWMZmh34/Thz5IN8n18R8gy0ETFTg2XvZQk3dPOJ6WDmaae5tCRYg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/webauthn/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/webauthn/initial-form.json new file mode 100644 index 000000000..480a9075a --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/one-step/webauthn/initial-form.json @@ -0,0 +1,185 @@ +{ + "id": "9f23226c-5b45-46ee-8c50-41da3643e3a3", + "type": "browser", + "expires_at": "2024-04-25T13:57:47.242292Z", + "issued_at": "2024-04-25T12:57:47.242292Z", + "request_url": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/registration/browser?", + "ui": { + "action": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/self-service/registration?flow=9f23226c-5b45-46ee-8c50-41da3643e3a3", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "tv+uQQ8K9bAXY6OAObIsHy0d8hcGkv789I1fhIQv2EOe1Y21Q5Ey8A0uc3pWNaE0gRurzLMdJBlyiFXd/ExmMA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_displayname", + "type": "text", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1050013, + "text": "Name of the security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_trigger", + "type": "button", + "value": "{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"id\":\"tender-goodall-7lgc6uyls4.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"id\":\"PHrCWV6BSKSFwVp7-wrNtw\"},\"challenge\":\"XzuR6zAa6s9W5fnx2X6D37W-rY6Z_-YwlQEggSeJ0uo\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}}", + "disabled": false, + "onclick": "window.oryWebAuthnRegistration({\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"id\":\"tender-goodall-7lgc6uyls4.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-Asz6zwgGNpFo6ZSv-5-tests/elements/webauthn.spec.ts\\u003eGenerate webauthn API responses for Ory Elements Storybook\\u003ewebauthn states\",\"id\":\"PHrCWV6BSKSFwVp7-wrNtw\"},\"challenge\":\"XzuR6zAa6s9W5fnx2X6D37W-rY6Z_-YwlQEggSeJ0uo\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}})", + "onclickTrigger": "oryWebAuthnRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040004, + "text": "Sign up with security key", + "type": "info" + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://tender-goodall-7lgc6uyls4.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "8fa2b5c8-b0a2-4949-88f4-fa4e904b3639", + "node_type": "script" + }, + "messages": [], + "meta": {} + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/enter-password.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/enter-password.json new file mode 100644 index 000000000..b7e31ba88 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/enter-password.json @@ -0,0 +1,242 @@ +{ + "id": "acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.954617Z", + "issued_at": "2024-04-25T12:57:44.954617Z", + "request_url": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration?flow=acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_displayname", + "type": "text", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1050013, + "text": "Name of the security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_trigger", + "type": "button", + "value": "{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"u6rO0P2_QGKJ1vjSa7YwSg\"},\"challenge\":\"FragMLEYDq1k4ndpY9SMfMLcKcdLXyDxAUJav7r4Gvk\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}}", + "disabled": false, + "onclick": "window.oryWebAuthnRegistration({\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"u6rO0P2_QGKJ1vjSa7YwSg\"},\"challenge\":\"FragMLEYDq1k4ndpY9SMfMLcKcdLXyDxAUJav7r4Gvk\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}})", + "onclickTrigger": "oryWebAuthnRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040004, + "text": "Sign up with security key", + "type": "info" + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "bd8f69f7-78a2-4f65-8067-e8a4c9e76921", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register_trigger", + "type": "button", + "disabled": false, + "onclick": "window.oryPasskeyRegistration()", + "onclickTrigger": "oryPasskeyRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040007, + "text": "Sign up with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_create_data", + "type": "hidden", + "value": "{\"credentialOptions\":{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"SHVYbEdCTTZQSXk5NnpYT2NUanlIUEp1VFp6OVIwY0ZDenNVM25IMnRoTHp5VU9EOUQ1N1Q0S1hEUnBSclMzTg\"},\"challenge\":\"hLCr8M2PTKhNkyuu9M0XvNxvubaNeE-cFsCBmhvKHtY\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\":true,\"userVerification\":\"preferred\"}}},\"displayNameFieldName\":\"traits.email\"}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile:back", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040008, + "text": "Back", + "type": "info" + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.do3uyeuvijl0.hl2x5baxmer@ory.dev", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "OWM79tWCOVCIU2JRgBxv3hgcosbD1nV8QZYJdELNGekWboryQim9lqdLKLq1P/1z/ETvr2BIw8buPSUnAiyhnw==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ], + "messages": [ + { + "id": 1040009, + "text": "Please choose a credential to authenticate yourself with.", + "type": "info" + } + ] + }, + "organization_id": null, + "transient_payload": {}, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/initial-form.json new file mode 100644 index 000000000..4eeefc065 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/initial-form.json @@ -0,0 +1,178 @@ +{ + "id": "acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.954617918Z", + "issued_at": "2024-04-25T12:57:44.954617918Z", + "request_url": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration?flow=acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "zx9D9JR/SCndA9NjqNUzXUrru1BjDg5t1trh3lSA6B7gEvLwA9TM7/IbmYid9qHwrrP2OcCQuNd5cc2NFGFQaA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/missing-fields.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/missing-fields.json new file mode 100644 index 000000000..793295437 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/missing-fields.json @@ -0,0 +1,187 @@ +{ + "id": "acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.954617Z", + "issued_at": "2024-04-25T12:57:44.954617Z", + "request_url": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration?flow=acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "github", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with GitHub", + "type": "info", + "context": { + "provider": "GitHub" + } + } + } + }, + { + "type": "input", + "group": "oidc", + "attributes": { + "name": "provider", + "type": "submit", + "value": "google", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040002, + "text": "Sign up with Google", + "type": "info", + "context": { + "provider": "Google" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "e4U1OwIME/FCwLYA4M0zM1yJY77BWWarVOrOw7YswetUiIQ/laeXN23Y/OvV7qGeuNEu12LH0BH7QeKQ9s15nQ==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/password-validation-error.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/password-validation-error.json new file mode 100644 index 000000000..d31f9c999 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/all-methods/password-validation-error.json @@ -0,0 +1,244 @@ +{ + "id": "acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "type": "browser", + "expires_at": "2024-04-25T13:57:44.954617Z", + "issued_at": "2024-04-25T12:57:44.954617Z", + "request_url": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/self-service/registration?flow=acd037fe-1b54-4f6a-838b-2e8d1090ba18", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.do3uyeuvijl0.hl2x5baxmer@ory.dev", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "v+dEYdTD9ULXBfc7syKyHswOA+tbjtK8/uLMaaMPd5+Q6vVlQ2hxhPgdvdCGASCzKFZOgvgQZAZRSeA64+7P6Q==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_displayname", + "type": "text", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1050013, + "text": "Name of the security key", + "type": "info" + } + } + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register", + "type": "hidden", + "value": "", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "webauthn", + "attributes": { + "name": "webauthn_register_trigger", + "type": "button", + "value": "{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"u6rO0P2_QGKJ1vjSa7YwSg\"},\"challenge\":\"FragMLEYDq1k4ndpY9SMfMLcKcdLXyDxAUJav7r4Gvk\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}}", + "disabled": false, + "onclick": "window.oryWebAuthnRegistration({\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"u6rO0P2_QGKJ1vjSa7YwSg\"},\"challenge\":\"FragMLEYDq1k4ndpY9SMfMLcKcdLXyDxAUJav7r4Gvk\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"requireResidentKey\":false,\"userVerification\":\"discouraged\"}}})", + "onclickTrigger": "oryWebAuthnRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040004, + "text": "Sign up with security key", + "type": "info" + } + } + }, + { + "type": "script", + "group": "webauthn", + "attributes": { + "src": "https://elegant-heyrovsky-l4oclz98k5.projects.oryapis:8080/.well-known/ory/webauthn.js", + "async": true, + "referrerpolicy": "no-referrer", + "crossorigin": "anonymous", + "integrity": "sha512-MDzBlwh32rr+eus2Yf1BetIj94m+ULLbewYDulbZjczycs81klNed+qQWG2yi2N03KV5uZlRJJtWdV2x9JNHzQ==", + "type": "text/javascript", + "id": "webauthn_script", + "nonce": "bd8f69f7-78a2-4f65-8067-e8a4c9e76921", + "node_type": "script" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register_trigger", + "type": "button", + "disabled": false, + "onclick": "window.oryPasskeyRegistration()", + "onclickTrigger": "oryPasskeyRegistration", + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040007, + "text": "Sign up with passkey", + "type": "info" + } + } + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_register", + "type": "hidden", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "passkey", + "attributes": { + "name": "passkey_create_data", + "type": "hidden", + "value": "{\"credentialOptions\":{\"publicKey\":{\"rp\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"elegant-heyrovsky-l4oclz98k5.projects.oryapis\"},\"user\":{\"name\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"displayName\":\"ory-cy-e2e-da2f162d-af61-42dd-90dc-e3fcfa7c84a0-DYhoDIAEaK7OYjgD-3-tests/elements/everything.ts\\u003eGenerate all method API responses for Ory Elements Storybook\\u003etwo-step\\u003etwo step registration\",\"id\":\"SHVYbEdCTTZQSXk5NnpYT2NUanlIUEp1VFp6OVIwY0ZDenNVM25IMnRoTHp5VU9EOUQ1N1Q0S1hEUnBSclMzTg\"},\"challenge\":\"hLCr8M2PTKhNkyuu9M0XvNxvubaNeE-cFsCBmhvKHtY\",\"pubKeyCredParams\":[{\"type\":\"public-key\",\"alg\":-7},{\"type\":\"public-key\",\"alg\":-35},{\"type\":\"public-key\",\"alg\":-36},{\"type\":\"public-key\",\"alg\":-257},{\"type\":\"public-key\",\"alg\":-258},{\"type\":\"public-key\",\"alg\":-259},{\"type\":\"public-key\",\"alg\":-37},{\"type\":\"public-key\",\"alg\":-38},{\"type\":\"public-key\",\"alg\":-39},{\"type\":\"public-key\",\"alg\":-8}],\"timeout\":300000,\"authenticatorSelection\":{\"authenticatorAttachment\":\"platform\",\"requireResidentKey\":true,\"userVerification\":\"preferred\"}}},\"displayNameFieldName\":\"traits.email\"}", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "code", + "attributes": { + "name": "method", + "type": "submit", + "value": "code", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040006, + "text": "Sign up with code", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000032, + "text": "The password must be at least 8 characters long, but got 4.", + "type": "error", + "context": { + "actual_length": 4, + "min_length": 8 + } + } + ], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile:back", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040008, + "text": "Back", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/enter-password.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/enter-password.json new file mode 100644 index 000000000..af06d462b --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/enter-password.json @@ -0,0 +1,108 @@ +{ + "id": "f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "type": "browser", + "expires_at": "2024-04-25T13:57:46.810702Z", + "issued_at": "2024-04-25T12:57:46.810702Z", + "request_url": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration?flow=f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile:back", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040008, + "text": "Back", + "type": "info" + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.0qty6eaj0j7n0.2sinxvztitg@ory.dev", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "EQx6mcjY7KbmXcJ6LcGZ3ZCPTPupYNJSiaHUbMC8cj2Q2+a/N8ypHRTyT9vKEbfTzXdgfTTyA9cFg3C3gYR+3w==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + } + ], + "messages": [ + { + "id": 1040009, + "text": "Please choose a credential to authenticate yourself with.", + "type": "info" + } + ] + }, + "organization_id": null, + "transient_payload": {}, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/initial-form.json new file mode 100644 index 000000000..0256b3ece --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/initial-form.json @@ -0,0 +1,134 @@ +{ + "id": "f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "type": "browser", + "expires_at": "2024-04-25T13:57:46.810702502Z", + "issued_at": "2024-04-25T12:57:46.810702502Z", + "request_url": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration?flow=f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "JNSZ4VH3GMAyfwMHgdKTDf0R101Sl6CXpxg38M2wUSalAwXHruNde8DQjqZmAr0DoOn7y88FcRIrOpMrjIhdxA==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/missing-fields.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/missing-fields.json new file mode 100644 index 000000000..58d8d9287 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/missing-fields.json @@ -0,0 +1,143 @@ +{ + "id": "f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "type": "browser", + "expires_at": "2024-04-25T13:57:46.810702Z", + "issued_at": "2024-04-25T12:57:46.810702Z", + "request_url": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration?flow=f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "email", + "required": true, + "autocomplete": "email", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000002, + "text": "Property email is missing.", + "type": "error", + "context": { + "property": "email" + } + } + ], + "meta": { + "label": { + "id": 1070002, + "text": "E-Mail", + "type": "info", + "context": { + "title": "E-Mail" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.tos", + "type": "checkbox", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Accept the terms of service", + "type": "info", + "context": { + "title": "Accept the terms of service" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.phone", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Phone Number", + "type": "info", + "context": { + "title": "Phone Number" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.nested.name", + "type": "text", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1070002, + "text": "Name", + "type": "info", + "context": { + "title": "Name" + } + } + } + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "1Vv2IwgGn/Ofyo2FlvNC1qRO4sztjuzrb0sA5gysSEhUjGoF9xLaSG1lACRxI2zY+bbOSnAcPW7jaaQ9TZREqg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/password-validation-error.json b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/password-validation-error.json new file mode 100644 index 000000000..ab25dad5c --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/registration/two-step/password/password-validation-error.json @@ -0,0 +1,110 @@ +{ + "id": "f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "type": "browser", + "expires_at": "2024-04-25T13:57:46.810702Z", + "issued_at": "2024-04-25T12:57:46.810702Z", + "request_url": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration/browser", + "ui": { + "action": "https://infallible-booth-og2ss3njuz.projects.oryapis:8080/self-service/registration?flow=f0d8f4bd-c3f2-4f24-a92b-baf72aa6099d", + "method": "POST", + "nodes": [ + { + "type": "input", + "group": "default", + "attributes": { + "name": "traits.email", + "type": "hidden", + "value": "dev+orycye2eda2f162daf6142dd0.0qty6eaj0j7n0.2sinxvztitg@ory.dev", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "default", + "attributes": { + "name": "csrf_token", + "type": "hidden", + "value": "iQ4ZzEmR2wehg+HMxYL3sR2GEvf1BzN0W8ldqMGKsagI2YXqtoWevFMsbG0iUtm/QH4+cWiV4vHX6/lzgLK9Sg==", + "required": true, + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": {} + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "password", + "type": "password", + "required": true, + "autocomplete": "new-password", + "disabled": false, + "node_type": "input" + }, + "messages": [ + { + "id": 4000032, + "text": "The password must be at least 8 characters long, but got 4.", + "type": "error", + "context": { + "actual_length": 4, + "min_length": 8 + } + } + ], + "meta": { + "label": { + "id": 1070001, + "text": "Password", + "type": "info" + } + } + }, + { + "type": "input", + "group": "password", + "attributes": { + "name": "method", + "type": "submit", + "value": "password", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040001, + "text": "Sign up", + "type": "info" + } + } + }, + { + "type": "input", + "group": "profile", + "attributes": { + "name": "method", + "type": "submit", + "value": "profile:back", + "disabled": false, + "node_type": "input" + }, + "messages": [], + "meta": { + "label": { + "id": 1040008, + "text": "Back", + "type": "info" + } + } + } + ] + }, + "organization_id": null, + "state": "choose_method" +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/verification/disabled/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/verification/disabled/initial-form.json new file mode 100644 index 000000000..089182148 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/verification/disabled/initial-form.json @@ -0,0 +1,9 @@ +{ + "error": { + "code": 400, + "status": "Bad Request", + "request": "6c24c164-d09e-94f6-a264-d12b3a0bb7db", + "reason": "Verification is not allowed because it was disabled.", + "message": "The request was malformed or contained invalid parameters" + } +} diff --git a/packages/elements-react-stories/src/elements-react/.stub-responses/verification/none/initial-form.json b/packages/elements-react-stories/src/elements-react/.stub-responses/verification/none/initial-form.json new file mode 100644 index 000000000..b16b4afb1 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/.stub-responses/verification/none/initial-form.json @@ -0,0 +1,9 @@ +{ + "error": { + "code": 400, + "status": "Bad Request", + "request": "6b3e6b07-6554-9618-b4f4-3739b34233eb", + "reason": "The active verification strategy code is not enabled. Please enable it in the configuration.", + "message": "The request was malformed or contained invalid parameters" + } +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa-refresh/.gitkeep b/packages/elements-react-stories/src/elements-react/components/login/1fa-refresh/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/all.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/all.stories.ts new file mode 100644 index 000000000..b5d41da30 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/all.stories.ts @@ -0,0 +1,46 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { LoginFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" +import { Login } from "../../../pages/login" +import { config } from "../../../utils" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/Everything", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/all-methods/initial-form.json"), + ), + config, + }, +} + +export const ValidationMissingFields: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/all-methods/missing-email.json"), + ), + config, + }, +} + +export const ValidationIncorrectCredentials: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/all-methods/wrong-credentials.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/code.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/code.stories.ts new file mode 100644 index 000000000..4a95de5cd --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/code.stories.ts @@ -0,0 +1,64 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Login } from "../../../pages/login" +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/Code", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/code/initial-form.json"), + ), + config, + }, +} + +export const ValidationMissingFields: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/code/missing-email.json"), + ), + config, + }, +} + +export const ValidationInvalidAccount: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/code/invalid-account.json"), + ), + config, + }, +} + +export const CodeInput: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/code/code-input.json"), + ), + config, + }, +} + +export const ValidationIncorrectCode: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/code/wrong-credentials.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/custom.stories.tsx b/packages/elements-react-stories/src/elements-react/components/login/1fa/custom.stories.tsx new file mode 100644 index 000000000..7b145d092 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/custom.stories.tsx @@ -0,0 +1,71 @@ +import { + HeadlessSocialButtonProps, + OryCard, + OryCardContent, + OryForm, + OryFormGroups, + OryFormSocialButtons, +} from "@ory/elements-react" +import { FlowContextProps, Login } from "../../../pages/login" +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" + +import type { Meta, StoryObj } from "@storybook/react" + +const CustomSocialButton = ({ node }: HeadlessSocialButtonProps) => ( +
+ Custom {node.meta.label?.text} +
+) + +const CustomComponents = ({ flow, config }: FlowContextProps) => { + return ( + + + + + +
+ Even though the code method is available, we do not show it here + with our customization: +
+ +
+
+
+
+ ) +} + +const meta = { + title: "Ory Elements/Custom Components", + component: CustomComponents, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const CustomSocialSignInButton: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/all-methods/initial-form.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/none.stories.tsx b/packages/elements-react-stories/src/elements-react/components/login/1fa/none.stories.tsx new file mode 100644 index 000000000..ac9b21e34 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/none.stories.tsx @@ -0,0 +1,25 @@ +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" +import { Login } from "@ory/elements-react/theme" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/None", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const NoMethodsAvailable: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/none/initial-form.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/oidc.stories.tsx b/packages/elements-react-stories/src/elements-react/components/login/1fa/oidc.stories.tsx new file mode 100644 index 000000000..0d688071f --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/oidc.stories.tsx @@ -0,0 +1,138 @@ +import { Login } from "@ory/elements-react/theme" +import oidcNodes from "$/.stub-responses/login/1fa/oidc/initial-form.json" +import { config } from "../../../utils" +import { LoginFlow, LoginFlowFromJSON, UiNode } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const providers = [ + "apple", + "auth0", + "discord", + "facebook", + "generic", + "github", + "gitlab", + "google", + "linkedin", + "microsoft", + "slack", + "spotify", + "yandex", +] + +const listOnly = (providers: string[]): LoginFlow => { + return LoginFlowFromJSON({ + ...oidcNodes, + ui: { + ...oidcNodes.ui, + nodes: oidcNodes.ui.nodes.filter((node) => { + if (node.group !== "oidc") { + return true + } + return providers.includes(node.attributes.value.toLowerCase()) + }) as UiNode[], + }, + }) +} + +type LoginProxy = Record<(typeof providers)[number], boolean> + +function LoginProxy(providers: LoginProxy) { + const flow = providers + ? listOnly( + Object.keys(providers).filter( + (key) => providers[key as keyof typeof providers], + ), + ) + : LoginFlowFromJSON(oidcNodes) + + return +} + +const meta = { + title: "Ory Elements/First Factor Login/Methods/Social Sign In", + component: LoginProxy, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const OneSocialButton: Story = { + args: { + google: true, + }, +} + +export const TwoSocialButtons: Story = { + args: { + google: true, + x: true, + }, +} + +export const ThreeSocialButtons: Story = { + args: { + google: true, + x: true, + github: true, + }, +} + +export const FourSocialButtons: Story = { + args: { + google: true, + x: true, + github: true, + linkedin: true, + }, +} + +export const FiveSocialButtons: Story = { + args: { + google: true, + x: true, + github: true, + linkedin: true, + auth0: true, + }, +} + +export const SixSocialButtons: Story = { + args: { + google: true, + x: true, + github: true, + linkedin: true, + auth0: true, + apple: true, + }, +} + +export const SevenSocialButtons: Story = { + args: { + google: true, + x: true, + github: true, + linkedin: true, + auth0: true, + apple: true, + microsoft: true, + }, +} + +export const AllGenericButton: Story = { + args: { + x: true, + ...Object.keys(providers).reduce( + (acc, key) => { + acc[key] = true + return acc + }, + {} as Record<(typeof providers)[number], boolean>, + ), + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts new file mode 100644 index 000000000..7360cfbcc --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts @@ -0,0 +1,28 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Login } from "../../../pages/login" +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/Passkey", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/passkey/initial-form.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts new file mode 100644 index 000000000..5152ad7b0 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts @@ -0,0 +1,46 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Login } from "../../../pages/login" +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/Password", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/password/initial-form.json"), + ), + config, + }, +} + +export const ValidationMissingFields: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/password/missing-email.json"), + ), + config, + }, +} + +export const ValidationIncorrectCredentials: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/password/wrong-credentials.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/webauthn.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/webauthn.stories.ts new file mode 100644 index 000000000..ad37aed8d --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/webauthn.stories.ts @@ -0,0 +1,46 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Login } from "@ory/elements-react/theme" +import { config } from "../../../utils" +import { LoginFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/First Factor Login/Methods/WebAuthn", + component: Login, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/webauthn/initial-form.json"), + ), + config, + }, +} + +export const InvalidAccount: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/webauthn/invalid-account.json"), + ), + config, + }, +} + +export const ShowTrigger: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/login/1fa/webauthn/show-trigger.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/login/2fa-refresh/.gitkeep b/packages/elements-react-stories/src/elements-react/components/login/2fa-refresh/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/login/2fa/.gitkeep b/packages/elements-react-stories/src/elements-react/components/login/2fa/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/login/organizations/.gitkeep b/packages/elements-react-stories/src/elements-react/components/login/organizations/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/recovery/.gitkeep b/packages/elements-react-stories/src/elements-react/components/recovery/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts new file mode 100644 index 000000000..0c811680b --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts @@ -0,0 +1,37 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Registration } from "../../../pages/registration" +import { config } from "../../../utils" +import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/One Step Registration/Methods/Everything", + component: Registration, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: RegistrationFlowFromJSON( + require("$/.stub-responses/registration/one-step/all-methods/initial-form.json"), + ), + config, + }, +} + +export const ValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/one-step/all-methods/missing-fields.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts new file mode 100644 index 000000000..e98aed4a5 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts @@ -0,0 +1,37 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Registration } from "../../../pages/registration" +import { config } from "../../../utils" +import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/One Step Registration/Methods/Password", + component: Registration, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: RegistrationFlowFromJSON( + require("$/.stub-responses/registration/one-step/password/initial-form.json"), + ), + config, + }, +} + +export const ValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/one-step/password/missing-fields.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts new file mode 100644 index 000000000..0015fcabb --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts @@ -0,0 +1,28 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Registration } from "../../../pages/registration" +import { config } from "../../../utils" +import { RegistrationFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/One Step Registration/Methods/WebAuthn", + component: Registration, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: RegistrationFlowFromJSON( + require("$/.stub-responses/registration/one-step/webauthn/initial-form.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts new file mode 100644 index 000000000..f6f959ffa --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts @@ -0,0 +1,55 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Registration } from "../../../pages/registration" +import { config } from "../../../utils" +import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/Two Step Registration/Methods/Everything", + component: Registration, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: RegistrationFlowFromJSON( + require("$/.stub-responses/registration/two-step/all-methods/initial-form.json"), + ), + config, + }, +} + +export const FirstStepValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/all-methods/missing-fields.json"), + ), + config, + }, +} + +export const EnterPassword: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/all-methods/enter-password.json"), + ), + config, + }, +} + +export const SecondStepValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/all-methods/password-validation-error.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts new file mode 100644 index 000000000..fad32f600 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts @@ -0,0 +1,55 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { Registration } from "../../../pages/registration" +import { config } from "../../../utils" +import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" +import type { Meta, StoryObj } from "@storybook/react" + +const meta = { + title: "Ory Elements/Two Step Registration/Methods/Password", + component: Registration, + parameters: { + layout: "centered", + }, +} satisfies Meta + +export default meta + +type Story = StoryObj + +export const ShowForm: Story = { + args: { + flow: RegistrationFlowFromJSON( + require("$/.stub-responses/registration/two-step/password/initial-form.json"), + ), + config, + }, +} + +export const FirstStepValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/password/missing-fields.json"), + ), + config, + }, +} + +export const EnterPassword: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/password/enter-password.json"), + ), + config, + }, +} + +export const SecondStepValidationError: Story = { + args: { + flow: LoginFlowFromJSON( + require("$/.stub-responses/registration/two-step/password/password-validation-error.json"), + ), + config, + }, +} diff --git a/packages/elements-react-stories/src/elements-react/components/settings/.gitkeep b/packages/elements-react-stories/src/elements-react/components/settings/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/components/verification/.gitkeep b/packages/elements-react-stories/src/elements-react/components/verification/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/elements-react-stories/src/elements-react/pages/error.tsx b/packages/elements-react-stories/src/elements-react/pages/error.tsx new file mode 100644 index 000000000..a4645bf38 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/pages/error.tsx @@ -0,0 +1,34 @@ +"use client" +import { Configuration, LoginFlow, FlowType } from "@ory/client-fetch" +import { Locale, OryFlowComponents } from "@ory/elements-react" +import { PropsWithChildren } from "react" + +export type FlowContextProps = { + flow: LoginFlow + components?: Partial + config: Configuration + locale?: Locale +} + +function _Error({ + flow, + config, + children, + components, + locale, +}: PropsWithChildren) { + throw new Error("not implemented yet") + // return ( + // + // {children || } + // + // ) +} + +// export const Error = _Error diff --git a/packages/elements-react-stories/src/elements-react/pages/login.tsx b/packages/elements-react-stories/src/elements-react/pages/login.tsx new file mode 100644 index 000000000..7fdfc9fb8 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/pages/login.tsx @@ -0,0 +1,34 @@ +"use client" +import { FlowType, LoginFlow } from "@ory/client-fetch" +import { + OryCard, + OryClientConfiguration, + OryFlowComponents, + OryProvider, +} from "@ory/elements-react" +import { OryDefaultComponents } from "@ory/elements-react/theme" +import { PropsWithChildren } from "react" + +export type FlowContextProps = { + flow: LoginFlow + components?: Partial + config: OryClientConfiguration +} + +export function Login({ + flow, + config, + children, + components, +}: PropsWithChildren) { + return ( + + {children || } + + ) +} diff --git a/packages/elements-react-stories/src/elements-react/pages/registration.tsx b/packages/elements-react-stories/src/elements-react/pages/registration.tsx new file mode 100644 index 000000000..c1076ee8d --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/pages/registration.tsx @@ -0,0 +1,35 @@ +"use client" + +import { Configuration, FlowType, RegistrationFlow } from "@ory/client-fetch" +import { + OryCard, + OryClientConfiguration, + OryFlowComponents, + OryProvider, +} from "@ory/elements-react" +import { OryDefaultComponents } from "@ory/elements-react/theme" +import { PropsWithChildren } from "react" + +export type FlowContextProps = { + flow: RegistrationFlow + components?: Partial + config: OryClientConfiguration +} + +export function Registration({ + flow, + config, + children, + components, +}: PropsWithChildren) { + return ( + + {children || } + + ) +} diff --git a/packages/elements-react-stories/src/elements-react/utils/index.ts b/packages/elements-react-stories/src/elements-react/utils/index.ts new file mode 100644 index 000000000..b11b68465 --- /dev/null +++ b/packages/elements-react-stories/src/elements-react/utils/index.ts @@ -0,0 +1,20 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { OryClientConfiguration } from "@ory/elements-react" + +export const config = { + name: "Acme Inc.", + sdk: { + url: "", + }, + project: { + registration_enabled: true, + verification_enabled: true, + recovery_enabled: true, + login_ui_url: "", + recovery_ui_url: "", + registration_ui_url: "", + verification_ui_url: "", + }, +} satisfies OryClientConfiguration diff --git a/packages/elements-react-stories/tsconfig.json b/packages/elements-react-stories/tsconfig.json new file mode 100644 index 000000000..1e5b0f886 --- /dev/null +++ b/packages/elements-react-stories/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "target": "ES2019", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "moduleResolution": "Bundler", + "module": "ESNext", + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "outDir": "dist", + "resolveJsonModule": true, + "declarationDir": "dist/types", + "jsx": "react-jsx", + "lib": ["ES6", "DOM", "WebWorker"], + "rootDir": "./" + }, + "exclude": [ + "node_modules", + "**/*.stories.ts", + "**/*.stories.js", + "**/*.stories.jsx", + "**/*.stories.tsx" + ], + "include": ["**/*.ts", "**/*.tsx", ".storybook/preview.tsx"], + "references": [ + { + "path": "./tsconfig.storybook.json" + } + ] +} diff --git a/packages/elements-react-stories/tsconfig.storybook.json b/packages/elements-react-stories/tsconfig.storybook.json new file mode 100644 index 000000000..8f2870b64 --- /dev/null +++ b/packages/elements-react-stories/tsconfig.storybook.json @@ -0,0 +1,38 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "outDir": "" + }, + "files": [ + "../../node_modules/@nx/react/typings/styled-jsx.d.ts", + "../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../node_modules/@nx/react/typings/image.d.ts" + ], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.jsx", + "src/**/*.test.js" + ], + "include": [ + "src/**/*.stories.ts", + "src/**/*.stories.js", + "src/**/*.stories.jsx", + "src/**/*.stories.tsx", + "src/**/*.stories.mdx", + "src/**/*.ts", + "src/**/*.tsx", + ".storybook/*.js", + ".storybook/*.ts", + "src/**/*.json", + ".storybook/*.ts", + ".storybook/*.tsx" + ] +} diff --git a/packages/elements-react/src/context/intl-context.tsx b/packages/elements-react/src/context/intl-context.tsx index b81e6f30e..bb3278a0c 100644 --- a/packages/elements-react/src/context/intl-context.tsx +++ b/packages/elements-react/src/context/intl-context.tsx @@ -192,7 +192,6 @@ export const IntlProvider = < let translation = locales.en if (props.locale && props.locale in locales) { - // @ts-expect-error asdasd translation = locales[props.locale as Locale] } diff --git a/packages/elements-react/src/util/onSubmitLogin.ts b/packages/elements-react/src/util/onSubmitLogin.ts index ad37576df..d5e663cf7 100644 --- a/packages/elements-react/src/util/onSubmitLogin.ts +++ b/packages/elements-react/src/util/onSubmitLogin.ts @@ -54,6 +54,7 @@ export async function onSubmitLogin( setFlowContainer({ flow: body, flowType: FlowType.Login, + config, }) }, onRedirect, diff --git a/packages/legacy-stories/.babelrc b/packages/legacy-stories/.babelrc new file mode 100644 index 000000000..1ea870ead --- /dev/null +++ b/packages/legacy-stories/.babelrc @@ -0,0 +1,12 @@ +{ + "presets": [ + [ + "@nx/react/babel", + { + "runtime": "automatic", + "useBuiltIns": "usage" + } + ] + ], + "plugins": [] +} diff --git a/packages/legacy-stories/.storybook/main.ts b/packages/legacy-stories/.storybook/main.ts new file mode 100644 index 000000000..e4d42ef6d --- /dev/null +++ b/packages/legacy-stories/.storybook/main.ts @@ -0,0 +1,35 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import type { StorybookConfig } from "@storybook/react-vite" + +import { nxViteTsPaths } from "@nx/vite/plugins/nx-tsconfig-paths.plugin" +import { mergeConfig } from "vite" +import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin" + +const config: StorybookConfig = { + stories: [ + "../../../src/**/*.stories.mdx", + "../../../src/**/*.stories.@(js|jsx|ts|tsx)", + ], + addons: [ + "@storybook/addon-essentials", + "@storybook/addon-interactions", + "@storybook/addon-links", + ], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + + viteFinal: async (config) => + mergeConfig(config, { + plugins: [nxViteTsPaths(), vanillaExtractPlugin()], + }), +} + +export default config + +// To customize your Vite configuration you can use the viteFinal field. +// Check https://storybook.js.org/docs/react/builders/vite#configuration +// and https://nx.dev/recipes/storybook/custom-builder-configs diff --git a/.storybook/preview.tsx b/packages/legacy-stories/.storybook/preview.tsx similarity index 100% rename from .storybook/preview.tsx rename to packages/legacy-stories/.storybook/preview.tsx diff --git a/packages/legacy-stories/README.md b/packages/legacy-stories/README.md new file mode 100644 index 000000000..15bdc725c --- /dev/null +++ b/packages/legacy-stories/README.md @@ -0,0 +1,8 @@ +# storybook-host + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test storybook-host` to execute the unit tests via +[Jest](https://jestjs.io). diff --git a/packages/legacy-stories/package.json b/packages/legacy-stories/package.json new file mode 100644 index 000000000..fe0ecec86 --- /dev/null +++ b/packages/legacy-stories/package.json @@ -0,0 +1,9 @@ +{ + "name": "legacy-stories", + "version": "1.0.0", + "description": "This library was generated with [Nx](https://nx.dev).", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC" +} diff --git a/packages/legacy-stories/project.json b/packages/legacy-stories/project.json new file mode 100644 index 000000000..2f101ac2e --- /dev/null +++ b/packages/legacy-stories/project.json @@ -0,0 +1,9 @@ +{ + "name": "storybook-host", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/storybook-host/src", + "projectType": "library", + "tags": [], + "// targets": "to see all targets run: nx show project storybook-host --web", + "targets": {} +} diff --git a/packages/legacy-stories/src/index.ts b/packages/legacy-stories/src/index.ts new file mode 100644 index 000000000..b85af654c --- /dev/null +++ b/packages/legacy-stories/src/index.ts @@ -0,0 +1,2 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 diff --git a/packages/legacy-stories/tsconfig.json b/packages/legacy-stories/tsconfig.json new file mode 100644 index 000000000..1260b28c8 --- /dev/null +++ b/packages/legacy-stories/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "allowJs": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.storybook.json" + } + ], + "extends": "../../tsconfig.json" +} diff --git a/packages/legacy-stories/tsconfig.lib.json b/packages/legacy-stories/tsconfig.lib.json new file mode 100644 index 000000000..8c1bec17d --- /dev/null +++ b/packages/legacy-stories/tsconfig.lib.json @@ -0,0 +1,27 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": [ + "node", + "@nx/react/typings/cssmodule.d.ts", + "@nx/react/typings/image.d.ts" + ] + }, + "exclude": [ + "jest.config.ts", + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.jsx", + "src/**/*.test.jsx", + "**/*.stories.ts", + "**/*.stories.js", + "**/*.stories.jsx", + "**/*.stories.tsx" + ], + "include": ["src/**/*.js", "src/**/*.jsx", "src/**/*.ts", "src/**/*.tsx"] +} diff --git a/packages/legacy-stories/tsconfig.storybook.json b/packages/legacy-stories/tsconfig.storybook.json new file mode 100644 index 000000000..65032441f --- /dev/null +++ b/packages/legacy-stories/tsconfig.storybook.json @@ -0,0 +1,32 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "outDir": "" + }, + "files": [ + "../../node_modules/@nx/react/typings/styled-jsx.d.ts", + "../../node_modules/@nx/react/typings/cssmodule.d.ts", + "../../node_modules/@nx/react/typings/image.d.ts" + ], + "exclude": [ + "src/**/*.spec.ts", + "src/**/*.test.ts", + "src/**/*.spec.js", + "src/**/*.test.js", + "src/**/*.spec.tsx", + "src/**/*.test.tsx", + "src/**/*.spec.jsx", + "src/**/*.test.js" + ], + "include": [ + "src/**/*.stories.ts", + "src/**/*.stories.js", + "src/**/*.stories.jsx", + "src/**/*.stories.tsx", + "src/**/*.stories.mdx", + ".storybook/*.js", + ".storybook/*.ts" + ] +} diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 000000000..15b8c7a5f --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,16 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "declaration": true, + "moduleResolution": "Node", + "target": "ESNext", + "module": "ESNext", + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "skipLibCheck": true, + "baseUrl": ".", + "paths": { + "storybook-host": ["libs/storybook-host/src/index.ts"] + } + }, + "exclude": ["node_modules", "./dist"] +} diff --git a/tsconfig.json b/tsconfig.json index d7c73d8e9..6965aaa1a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,29 +1,28 @@ { "compilerOptions": { - "target": "ESNext", "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], "allowJs": false, - "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "declaration": true, "declarationMap": true, "outDir": "dist", "jsx": "react-jsx" }, "include": ["./src", "vite.config.ts", "package.json"], - "exclude": ["node_modules", "./dist"], "references": [ { "path": "./tsconfig.node.json" } - ] + ], + "ts-node": { + "compilerOptions": { + "module": "commonjs" + } + }, + "extends": "./tsconfig.base.json" } From 5e2432029115fd246f40d011655b58eaff69fc72 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Mon, 16 Sep 2024 10:59:51 +0200 Subject: [PATCH 065/100] fix(theme)!: scope css classes with .ory-default-theme --- package-lock.json | 47 +++++++++++++++++-- packages/elements-react/package.json | 2 + packages/elements-react/postcss.config.ts | 6 ++- .../theme/default/components/card/index.tsx | 10 ++-- 4 files changed, 57 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index eea895c3a..feb3d2bd2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27837,6 +27837,16 @@ "postcss": "^8.2.14" } }, + "node_modules/postcss-prefix-selector": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", + "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": ">4 <9" + } + }, "node_modules/postcss-selector-parser": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", @@ -29491,9 +29501,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -33610,6 +33620,8 @@ "@svgr/plugin-jsx": "^8.1.0", "esbuild-plugin-svgr": "2.1.0", "eslint-plugin-react": "7.35.0", + "postcss": "8.4.47", + "postcss-prefix-selector": "1.16.1", "tsup": "8.2.3" }, "peerDependencies": { @@ -34099,6 +34111,35 @@ "url": "https://github.com/sponsors/antonk52" } }, + "packages/elements-react/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "packages/elements-react/node_modules/postcss-load-config": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index 2a7d77d20..a545c9623 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -42,6 +42,8 @@ "@svgr/plugin-jsx": "^8.1.0", "esbuild-plugin-svgr": "2.1.0", "eslint-plugin-react": "7.35.0", + "postcss": "8.4.47", + "postcss-prefix-selector": "1.16.1", "tsup": "8.2.3" }, "keywords": [ diff --git a/packages/elements-react/postcss.config.ts b/packages/elements-react/postcss.config.ts index 3cac054c3..f391176f2 100644 --- a/packages/elements-react/postcss.config.ts +++ b/packages/elements-react/postcss.config.ts @@ -2,5 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 module.exports = { - plugins: [require("tailwindcss")(), require("autoprefixer")()], + plugins: [ + require("tailwindcss")(), + require("autoprefixer")(), + require("postcss-prefix-selector")({ prefix: ".ory-default-theme" }), + ], } diff --git a/packages/elements-react/src/theme/default/components/card/index.tsx b/packages/elements-react/src/theme/default/components/card/index.tsx index 32b25ecf4..25a6566c0 100644 --- a/packages/elements-react/src/theme/default/components/card/index.tsx +++ b/packages/elements-react/src/theme/default/components/card/index.tsx @@ -1,4 +1,4 @@ -import { OryCardProps } from "@ory/elements-react" +import { OryCardProps } from "../../../../components" import { Badge } from "./badge" import { DefaultCardContent } from "./content" import { DefaultCardFooter } from "./footer" @@ -7,9 +7,11 @@ import { DefaultCardLogo } from "./logo" export function DefaultCard({ children }: OryCardProps) { return ( -
) } diff --git a/packages/elements-react/src/theme/default/components/card/badge.tsx b/packages/elements-react/src/theme/default/components/card/badge.tsx index d2c7cb18c..7f87b8b4e 100644 --- a/packages/elements-react/src/theme/default/components/card/badge.tsx +++ b/packages/elements-react/src/theme/default/components/card/badge.tsx @@ -4,8 +4,8 @@ import OryLogoVertical from "../../assets/ory-badge-vertical.svg" export function Badge() { return (
- - + +
) } diff --git a/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx b/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx index f86b2ca1c..bb360a08b 100644 --- a/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx +++ b/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx @@ -1,18 +1,28 @@ -import { HeadlessButtonProps } from "@ory/elements-react" -import { DefaultInput } from "../form/input" +import { HeadlessCurrentIdentifierProps } from "@ory/elements-react" +import IconArrowLeft from "../../assets/icons/arrow-left.svg" export function DefaultCurrentIdentifierButton({ attributes, - node, -}: HeadlessButtonProps) { + onClick, + type, + href, +}: HeadlessCurrentIdentifierProps) { + const Element = onClick ? "button" : "a" + return (
- - + + + {attributes.value} - - +
) } diff --git a/packages/elements-react/src/theme/default/components/form/button.tsx b/packages/elements-react/src/theme/default/components/form/button.tsx index b1517f20d..c8af0e273 100644 --- a/packages/elements-react/src/theme/default/components/form/button.tsx +++ b/packages/elements-react/src/theme/default/components/form/button.tsx @@ -52,9 +52,7 @@ export const DefaultButton = ({ } }} className={cn( - // TODO: Difficult to resolve merge conflict here. Please ensure this is correct: - // "relative antialiased rounded border gap-3 leading-none transition-colors ease-linear duration-100 px-4 py-4.5 text-sm font-medium", - "antialiased rounded-border-radius-buttons border border-transparent gap-3 bg-button-primary-bg-default hover:bg-button-primary-bg-hover transition-colors text-button-primary-fg-default hover:text-button-primary-fg-hover px-4 py-4.5 text-sm leading-none font-medium", + "antialiased rounded-border-radius-buttons border border-transparent gap-3 bg-button-primary-bg-default hover:bg-button-primary-bg-hover transition-colors text-button-primary-fg-default hover:text-button-primary-fg-hover px-4 py-3 md:py-4.5 text-sm leading-none font-medium", { "cursor-not-allowed": isSubmitting, "bg-button-primary-bg-hover": isSubmitting, diff --git a/packages/elements-react/src/theme/default/components/form/checkbox.tsx b/packages/elements-react/src/theme/default/components/form/checkbox.tsx index 025f58283..653e2e4a9 100644 --- a/packages/elements-react/src/theme/default/components/form/checkbox.tsx +++ b/packages/elements-react/src/theme/default/components/form/checkbox.tsx @@ -60,7 +60,6 @@ export const DefaultCheckbox = ({
{ const label = getNodeLabel(node) const { register } = useFormContext() - const { value, autocomplete, name, ...rest } = attributes + const { value, autocomplete, name, maxlength, ...rest } = attributes return ( {Logo ? ( diff --git a/packages/elements-react/src/theme/default/flows/login.tsx b/packages/elements-react/src/theme/default/flows/login.tsx index 1e43f2ed6..aea7b03f0 100644 --- a/packages/elements-react/src/theme/default/flows/login.tsx +++ b/packages/elements-react/src/theme/default/flows/login.tsx @@ -1,13 +1,13 @@ "use client" import { FlowType, LoginFlow } from "@ory/client-fetch" -import { PropsWithChildren } from "react" -import { OryDefaultComponents } from "../components" import { - OryFlowComponents, - OryCard, OryClientConfiguration, + OryFlowComponents, OryProvider, + OryTwoStepCard, } from "@ory/elements-react" +import { PropsWithChildren } from "react" +import { OryDefaultComponents } from "../components" export type LoginFlowContextProps = { flow: LoginFlow @@ -32,7 +32,7 @@ export function Login({ flowType={FlowType.Login} components={components} > - {children ?? } + {children ?? } ) } diff --git a/packages/elements-react/src/theme/default/flows/recovery.tsx b/packages/elements-react/src/theme/default/flows/recovery.tsx index 41e688c81..ff95b8e88 100644 --- a/packages/elements-react/src/theme/default/flows/recovery.tsx +++ b/packages/elements-react/src/theme/default/flows/recovery.tsx @@ -1,13 +1,13 @@ "use client" import { FlowType, RecoveryFlow } from "@ory/client-fetch" -import { PropsWithChildren } from "react" -import { OryDefaultComponents } from "../components" import { - OryCard, + OryClientConfiguration, OryFlowComponents, OryProvider, - OryClientConfiguration, + OryTwoStepCard, } from "@ory/elements-react" +import { PropsWithChildren } from "react" +import { OryDefaultComponents } from "../components" export type RecoveryFlowContextProps = { flow: RecoveryFlow @@ -32,7 +32,7 @@ export function Recovery({ flowType={FlowType.Recovery} components={components} > - {children ?? } + {children ?? } ) } diff --git a/packages/elements-react/src/theme/default/flows/registration.tsx b/packages/elements-react/src/theme/default/flows/registration.tsx index 39842ffc0..8815b80e5 100644 --- a/packages/elements-react/src/theme/default/flows/registration.tsx +++ b/packages/elements-react/src/theme/default/flows/registration.tsx @@ -1,13 +1,13 @@ "use client" import { FlowType, RegistrationFlow } from "@ory/client-fetch" -import { PropsWithChildren } from "react" -import { OryDefaultComponents } from "../components" import { OryClientConfiguration, OryFlowComponents, - OryCard, OryProvider, + OryTwoStepCard, } from "@ory/elements-react" +import { PropsWithChildren } from "react" +import { OryDefaultComponents } from "../components" type RegistrationFlowContextProps = { flow: RegistrationFlow @@ -32,7 +32,7 @@ export function Registration({ flowType={FlowType.Registration} components={components} > - {children ?? } + {children ?? } ) } diff --git a/packages/elements-react/src/theme/default/flows/settings.tsx b/packages/elements-react/src/theme/default/flows/settings.tsx index 095e6e46e..3583eb3c3 100644 --- a/packages/elements-react/src/theme/default/flows/settings.tsx +++ b/packages/elements-react/src/theme/default/flows/settings.tsx @@ -1,13 +1,13 @@ "use client" import { FlowType, SettingsFlow } from "@ory/client-fetch" -import { PropsWithChildren } from "react" -import { OryDefaultComponents } from "../components" import { - OryFlowComponents, OryClientConfiguration, + OryFlowComponents, OryProvider, - OryCard, + OryTwoStepCard, } from "@ory/elements-react" +import { PropsWithChildren } from "react" +import { OryDefaultComponents } from "../components" export type SettingsFlowContextProps = { flow: SettingsFlow @@ -32,7 +32,7 @@ export function Settings({ flowType={FlowType.Settings} components={components} > - {children ?? } + {children ?? } ) } diff --git a/packages/elements-react/src/theme/default/flows/verification.tsx b/packages/elements-react/src/theme/default/flows/verification.tsx index 70d58804e..b88ec6f4f 100644 --- a/packages/elements-react/src/theme/default/flows/verification.tsx +++ b/packages/elements-react/src/theme/default/flows/verification.tsx @@ -3,10 +3,10 @@ import { FlowType, VerificationFlow } from "@ory/client-fetch" import { PropsWithChildren } from "react" import { OryDefaultComponents } from "../components" import { - OryCard, - OryProvider, OryClientConfiguration, OryFlowComponents, + OryProvider, + OryTwoStepCard, } from "@ory/elements-react" export type VerificationFlowContextProps = { @@ -32,7 +32,7 @@ export function Verification({ flowType={FlowType.Verification} components={components} > - {children ?? } + {children ?? } ) } diff --git a/packages/elements-react/src/theme/default/provider-logos/apple.svg b/packages/elements-react/src/theme/default/provider-logos/apple.svg index 73db767fe..c85777c57 100644 --- a/packages/elements-react/src/theme/default/provider-logos/apple.svg +++ b/packages/elements-react/src/theme/default/provider-logos/apple.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/theme/default/provider-logos/auth0.svg b/packages/elements-react/src/theme/default/provider-logos/auth0.svg index 0f88b421a..d6b8f9c5f 100644 --- a/packages/elements-react/src/theme/default/provider-logos/auth0.svg +++ b/packages/elements-react/src/theme/default/provider-logos/auth0.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/discord.svg b/packages/elements-react/src/theme/default/provider-logos/discord.svg index 2c6b91316..e4ff75ce6 100644 --- a/packages/elements-react/src/theme/default/provider-logos/discord.svg +++ b/packages/elements-react/src/theme/default/provider-logos/discord.svg @@ -1,4 +1,4 @@ - - + + diff --git a/packages/elements-react/src/theme/default/provider-logos/facebook.svg b/packages/elements-react/src/theme/default/provider-logos/facebook.svg index 166b1848b..0a86dfecf 100644 --- a/packages/elements-react/src/theme/default/provider-logos/facebook.svg +++ b/packages/elements-react/src/theme/default/provider-logos/facebook.svg @@ -1,11 +1,11 @@ - + - + diff --git a/packages/elements-react/src/theme/default/provider-logos/generic.svg b/packages/elements-react/src/theme/default/provider-logos/generic.svg index 53f0b5125..a6dc383e0 100644 --- a/packages/elements-react/src/theme/default/provider-logos/generic.svg +++ b/packages/elements-react/src/theme/default/provider-logos/generic.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/theme/default/provider-logos/github.svg b/packages/elements-react/src/theme/default/provider-logos/github.svg index 9bb4a7b46..ae7d0b2d5 100644 --- a/packages/elements-react/src/theme/default/provider-logos/github.svg +++ b/packages/elements-react/src/theme/default/provider-logos/github.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/gitlab.svg b/packages/elements-react/src/theme/default/provider-logos/gitlab.svg index cb99d3916..b8dba799a 100644 --- a/packages/elements-react/src/theme/default/provider-logos/gitlab.svg +++ b/packages/elements-react/src/theme/default/provider-logos/gitlab.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/theme/default/provider-logos/google.svg b/packages/elements-react/src/theme/default/provider-logos/google.svg index 78863c677..b8cf5b26b 100644 --- a/packages/elements-react/src/theme/default/provider-logos/google.svg +++ b/packages/elements-react/src/theme/default/provider-logos/google.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/index.ts b/packages/elements-react/src/theme/default/provider-logos/index.ts index 0f44aa327..8d3969b74 100644 --- a/packages/elements-react/src/theme/default/provider-logos/index.ts +++ b/packages/elements-react/src/theme/default/provider-logos/index.ts @@ -1,7 +1,6 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { FC, SVGProps } from "react" import apple from "./apple.svg" import auth0 from "./auth0.svg" import discord from "./discord.svg" @@ -16,7 +15,7 @@ import slack from "./slack.svg" import spotify from "./spotify.svg" import yandex from "./yandex.svg" -const logos: Record>> = { +const logos: Record = { apple, auth0, discord, diff --git a/packages/elements-react/src/theme/default/provider-logos/linkedin.svg b/packages/elements-react/src/theme/default/provider-logos/linkedin.svg index 6fa4897c2..28c24e28d 100644 --- a/packages/elements-react/src/theme/default/provider-logos/linkedin.svg +++ b/packages/elements-react/src/theme/default/provider-logos/linkedin.svg @@ -1,5 +1,5 @@ - - + + diff --git a/packages/elements-react/src/theme/default/provider-logos/microsoft.svg b/packages/elements-react/src/theme/default/provider-logos/microsoft.svg index 15d265d54..a0f13e239 100644 --- a/packages/elements-react/src/theme/default/provider-logos/microsoft.svg +++ b/packages/elements-react/src/theme/default/provider-logos/microsoft.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/packages/elements-react/src/theme/default/provider-logos/slack.svg b/packages/elements-react/src/theme/default/provider-logos/slack.svg index ceaf3ec6e..49ea22dcf 100644 --- a/packages/elements-react/src/theme/default/provider-logos/slack.svg +++ b/packages/elements-react/src/theme/default/provider-logos/slack.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/theme/default/provider-logos/spotify.svg b/packages/elements-react/src/theme/default/provider-logos/spotify.svg index 98cc34b8c..7c5eb01d0 100644 --- a/packages/elements-react/src/theme/default/provider-logos/spotify.svg +++ b/packages/elements-react/src/theme/default/provider-logos/spotify.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/theme/default/provider-logos/yandex.svg b/packages/elements-react/src/theme/default/provider-logos/yandex.svg index bef4a6cb4..32122cbf6 100644 --- a/packages/elements-react/src/theme/default/provider-logos/yandex.svg +++ b/packages/elements-react/src/theme/default/provider-logos/yandex.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/elements-react/src/types.ts b/packages/elements-react/src/types.ts index 8a4825fa5..f8d5c02d5 100644 --- a/packages/elements-react/src/types.ts +++ b/packages/elements-react/src/types.ts @@ -8,9 +8,8 @@ import { UiNodeInputAttributes, UiNodeTextAttributes, } from "@ory/client-fetch" -import React, { +import { ComponentPropsWithoutRef, - Dispatch, FormEventHandler, MouseEventHandler, } from "react" @@ -22,6 +21,13 @@ export type HeadlessButtonProps = { node: UiNode } & Omit, "children"> +export type HeadlessCurrentIdentifierProps = { + attributes: UiNodeInputAttributes + node: UiNode + onClick?: () => void + href?: string +} & Omit, "children" | "onClick"> + export type HeadlessLinkButtonProps = { attributes: UiNodeAnchorAttributes node: UiNode @@ -38,8 +44,7 @@ export type HeadlessTextProps = { } export type HeadlessAuthMethodListItemProps = { - setGroups: Dispatch> - setStep: Dispatch> + onClick: () => void group: string } diff --git a/packages/elements-react/src/util/ui/__test__/ui.spec.ts b/packages/elements-react/src/util/ui/__test__/ui.spec.ts new file mode 100644 index 000000000..3a81f5cc0 --- /dev/null +++ b/packages/elements-react/src/util/ui/__test__/ui.spec.ts @@ -0,0 +1,23 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import allMethodsInitialForm from "../../../../../elements-react-stories/src/elements-react/.stub-responses/login/1fa/all-methods/initial-form.json" + +import { renderHook } from "@tests/jest/test-utils" +import { useNodesGroups } from ".." +import { UiNode } from "@ory/client-fetch" + +describe("utils/ui", () => { + test("useNodesGroups", () => { + const { result } = renderHook(() => + useNodesGroups(allMethodsInitialForm.ui.nodes as UiNode[]), + ) + + expect(result.current.oidc).toHaveLength(2) + expect(result.current.default).toHaveLength(2) + expect(result.current.webauthn).toHaveLength(2) + expect(result.current.passkey).toHaveLength(3) + expect(result.current.password).toHaveLength(2) + expect(result.current.code).toHaveLength(1) + }) +}) diff --git a/packages/elements-react/src/util/ui/index.ts b/packages/elements-react/src/util/ui/index.ts index 5a8c20db2..682b3d654 100644 --- a/packages/elements-react/src/util/ui/index.ts +++ b/packages/elements-react/src/util/ui/index.ts @@ -9,6 +9,7 @@ import type { UiNodeInputAttributesOnloadTriggerEnum, UiNodeInputAttributesTypeEnum, } from "@ory/client-fetch" +import { useMemo } from "react" export function capitalize(s: string) { if (!s) { @@ -93,3 +94,18 @@ function triggerToFunction( } return triggerFn as () => void } + +export function useNodesGroups(nodes: UiNode[]) { + const groups = useMemo(() => { + const groups: Partial> = {} + + for (const node of nodes) { + const groupNodes = groups[node.group] ?? [] + groupNodes.push(node) + groups[node.group] = groupNodes + } + return groups + }, [nodes]) + + return groups +} diff --git a/packages/elements-react/tsconfig.json b/packages/elements-react/tsconfig.json index 549242d99..106512be5 100644 --- a/packages/elements-react/tsconfig.json +++ b/packages/elements-react/tsconfig.json @@ -29,6 +29,7 @@ "src/**/*.tsx", "src/global.d.ts", "src/tests/**/*.ts", - "src/tests/**/*.tsx" + "src/tests/**/*.tsx", + "tsup.config.ts" ] } diff --git a/packages/elements-react/tsup.config.ts b/packages/elements-react/tsup.config.ts index d3c246b09..fb2838620 100644 --- a/packages/elements-react/tsup.config.ts +++ b/packages/elements-react/tsup.config.ts @@ -40,8 +40,16 @@ export default defineConfig([ "react-intl", ], - /* @ts-ignore -- the types of the plugin are wrong? it still works.. */ - esbuildPlugins: [svgr()], + esbuildPlugins: [ + // @ts-expect-error - types seems to be wrong but it works + svgr({ + plugins: ["@svgr/plugin-svgo"], + svgProps: { + width: "{props?.width ? props.width : props?.size ?? 20}", + height: "{props?.height ? props.height : props?.size ?? 20}", + }, + }), + ], esbuildOptions(options) { options.banner = { js: '"use client"', From d00cd1fbe4aa958b32ad4119c88c75bab5b75bf4 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Fri, 27 Sep 2024 16:49:55 +0200 Subject: [PATCH 085/100] chore: disable false positive eslint rule --- packages/elements-react/src/util/ui/__test__/ui.spec.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/elements-react/src/util/ui/__test__/ui.spec.ts b/packages/elements-react/src/util/ui/__test__/ui.spec.ts index 3a81f5cc0..b75cb07b8 100644 --- a/packages/elements-react/src/util/ui/__test__/ui.spec.ts +++ b/packages/elements-react/src/util/ui/__test__/ui.spec.ts @@ -9,6 +9,7 @@ import { UiNode } from "@ory/client-fetch" describe("utils/ui", () => { test("useNodesGroups", () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call const { result } = renderHook(() => useNodesGroups(allMethodsInitialForm.ui.nodes as UiNode[]), ) From 1a8620d050ae8c424bdfa1e36388e8d84a176e9c Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Fri, 27 Sep 2024 16:52:38 +0200 Subject: [PATCH 086/100] chore(release): publish - project: @ory/elements-react 1.0.0-next.7 --- package-lock.json | 2 +- packages/elements-react/CHANGELOG.md | 19 +++++++++++++++++++ packages/elements-react/package.json | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0dcb4ad0..7e6042f6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33966,7 +33966,7 @@ }, "packages/elements-react": { "name": "@ory/elements-react", - "version": "1.0.0-next.6", + "version": "1.0.0-next.7", "license": "Apache License 2.0", "dependencies": { "@ory/client-fetch": "^1.15.4", diff --git a/packages/elements-react/CHANGELOG.md b/packages/elements-react/CHANGELOG.md index 0b5c5c5ba..bedbb789b 100644 --- a/packages/elements-react/CHANGELOG.md +++ b/packages/elements-react/CHANGELOG.md @@ -1,3 +1,22 @@ +## 1.0.0-next.7 (2024-09-27) + + +### 🚀 Features + +- add two-step login card + + +### 🩹 Fixes + +- registration text in swedish translation + +- show identifier_first node in card header + + +### ❤️ Thank You + +- Jonas Hungershausen + ## 1.0.0-next.6 (2024-09-18) ### 🩹 Fixes diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index 0cac7843e..8352e571c 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -1,6 +1,6 @@ { "name": "@ory/elements-react", - "version": "1.0.0-next.6", + "version": "1.0.0-next.7", "exports": { ".": { "types": "./dist/index.d.ts", From f1b5f6158319313617b4ed74fe8109fb7a238f00 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Fri, 27 Sep 2024 17:08:56 +0200 Subject: [PATCH 087/100] chore: format --- packages/elements-react/CHANGELOG.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/elements-react/CHANGELOG.md b/packages/elements-react/CHANGELOG.md index bedbb789b..630bcaf7f 100644 --- a/packages/elements-react/CHANGELOG.md +++ b/packages/elements-react/CHANGELOG.md @@ -1,19 +1,16 @@ ## 1.0.0-next.7 (2024-09-27) - ### 🚀 Features - add two-step login card - ### 🩹 Fixes - registration text in swedish translation - show identifier_first node in card header - -### ❤️ Thank You +### ❤️ Thank You - Jonas Hungershausen From ece5b631c2e5b969171fc4ca1c3ad5331692f976 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Mon, 7 Oct 2024 11:02:37 +0200 Subject: [PATCH 088/100] fix!: remove ory-default-theme class (#221) --- package-lock.json | 63 ++----------------- .../.storybook/preview.tsx | 8 +-- packages/elements-react/package.json | 3 +- packages/elements-react/postcss.config.ts | 6 +- .../theme/default/components/card/index.tsx | 2 +- 5 files changed, 11 insertions(+), 71 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7e6042f6b..635ac36b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20370,21 +20370,6 @@ "bser": "2.1.1" } }, - "node_modules/fdir": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.3.0.tgz", - "integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, "node_modules/fetch-retry": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", @@ -28124,16 +28109,6 @@ "postcss": "^8.2.14" } }, - "node_modules/postcss-prefix-selector": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/postcss-prefix-selector/-/postcss-prefix-selector-1.16.1.tgz", - "integrity": "sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": ">4 <9" - } - }, "node_modules/postcss-selector-parser": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", @@ -30881,33 +30856,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tinyglobby": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.6.tgz", - "integrity": "sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==", - "dev": true, - "license": "ISC", - "dependencies": { - "fdir": "^6.3.0", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tinyrainbow": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", @@ -33982,8 +33930,7 @@ "esbuild-plugin-svgr": "^2.1.0", "eslint-plugin-react": "7.37.0", "postcss": "8.4.47", - "postcss-prefix-selector": "1.16.1", - "tsup": "8.3.0" + "tsup": "8.2.3" }, "peerDependencies": { "react": "18.3.1", @@ -34758,9 +34705,9 @@ "license": "0BSD" }, "packages/elements-react/node_modules/tsup": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", - "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.2.3.tgz", + "integrity": "sha512-6YNT44oUfXRbZuSMNmN36GzwPPIlD2wBccY7looM2fkTcxkf2NEmwr3OZuDZoySklnrIG4hoEtzy8yUXYOqNcg==", "dev": true, "license": "MIT", "dependencies": { @@ -34771,6 +34718,7 @@ "debug": "^4.3.5", "esbuild": "^0.23.0", "execa": "^5.1.1", + "globby": "^11.1.0", "joycon": "^3.1.1", "picocolors": "^1.0.1", "postcss-load-config": "^6.0.1", @@ -34778,7 +34726,6 @@ "rollup": "^4.19.0", "source-map": "0.8.0-beta.0", "sucrase": "^3.35.0", - "tinyglobby": "^0.2.1", "tree-kill": "^1.2.2" }, "bin": { diff --git a/packages/elements-react-stories/.storybook/preview.tsx b/packages/elements-react-stories/.storybook/preview.tsx index d2eba5211..9ae98f12c 100644 --- a/packages/elements-react-stories/.storybook/preview.tsx +++ b/packages/elements-react-stories/.storybook/preview.tsx @@ -29,11 +29,9 @@ const withI18next: Decorator = (Story, context) => { const { locale } = context.globals return ( -
- - - -
+ + + ) } diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index 8352e571c..b55f92e47 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -45,8 +45,7 @@ "esbuild-plugin-svgr": "^2.1.0", "eslint-plugin-react": "7.37.0", "postcss": "8.4.47", - "postcss-prefix-selector": "1.16.1", - "tsup": "8.3.0" + "tsup": "8.2.3" }, "keywords": [ "ory", diff --git a/packages/elements-react/postcss.config.ts b/packages/elements-react/postcss.config.ts index f391176f2..3cac054c3 100644 --- a/packages/elements-react/postcss.config.ts +++ b/packages/elements-react/postcss.config.ts @@ -2,9 +2,5 @@ // SPDX-License-Identifier: Apache-2.0 module.exports = { - plugins: [ - require("tailwindcss")(), - require("autoprefixer")(), - require("postcss-prefix-selector")({ prefix: ".ory-default-theme" }), - ], + plugins: [require("tailwindcss")(), require("autoprefixer")()], } diff --git a/packages/elements-react/src/theme/default/components/card/index.tsx b/packages/elements-react/src/theme/default/components/card/index.tsx index 1204e94d2..6297ad18f 100644 --- a/packages/elements-react/src/theme/default/components/card/index.tsx +++ b/packages/elements-react/src/theme/default/components/card/index.tsx @@ -7,7 +7,7 @@ import { DefaultCardLogo } from "./logo" export function DefaultCard({ children }: OryCardProps) { return ( -
+
{children} From c217288ed9250c19dc8f5e0b923efc07fbc4eecf Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Mon, 7 Oct 2024 18:37:00 +0200 Subject: [PATCH 089/100] fix: remove capitalize class from messages --- .../src/theme/default/components/form/label.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/elements-react/src/theme/default/components/form/label.tsx b/packages/elements-react/src/theme/default/components/form/label.tsx index 6fbf10b36..f383cd1aa 100644 --- a/packages/elements-react/src/theme/default/components/form/label.tsx +++ b/packages/elements-react/src/theme/default/components/form/label.tsx @@ -25,7 +25,7 @@ export function DefaultLabel({
Even though the code method is available, we do not show it here with our customization: diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts index 7360cfbcc..b5c85958c 100644 --- a/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/passkey.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Login } from "../../../pages/login" +import { Login } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts index 5152ad7b0..8ce8957fc 100644 --- a/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/login/1fa/password.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Login } from "../../../pages/login" +import { Login } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts index 0c811680b..5edb629d6 100644 --- a/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/all-methods.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Registration } from "../../../pages/registration" +import { Registration } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts index e98aed4a5..1521783b9 100644 --- a/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/password.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Registration } from "../../../pages/registration" +import { Registration } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts index 0015fcabb..82416bf45 100644 --- a/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/registration/one-step/webauthn.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Registration } from "../../../pages/registration" +import { Registration } from "@ory/elements-react/theme" import { config } from "../../../utils" import { RegistrationFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts index f6f959ffa..d7cba7350 100644 --- a/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/registration/two-step/all-methods.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Registration } from "../../../pages/registration" +import { Registration } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts b/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts index fad32f600..ce50fac68 100644 --- a/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts +++ b/packages/elements-react-stories/src/elements-react/components/registration/two-step/password.stories.ts @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { Registration } from "../../../pages/registration" +import { Registration } from "@ory/elements-react/theme" import { config } from "../../../utils" import { LoginFlowFromJSON, RegistrationFlowFromJSON } from "@ory/client-fetch" import type { Meta, StoryObj } from "@storybook/react" diff --git a/packages/elements-react-stories/src/elements-react/pages/login.tsx b/packages/elements-react-stories/src/elements-react/pages/login.tsx deleted file mode 100644 index 6a3f4461a..000000000 --- a/packages/elements-react-stories/src/elements-react/pages/login.tsx +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright © 2024 Ory Corp -// SPDX-License-Identifier: Apache-2.0 - -"use client" -import { FlowType, LoginFlow } from "@ory/client-fetch" -import { - OryCard, - OryClientConfiguration, - OryFlowComponents, - OryProvider, -} from "@ory/elements-react" -import { OryDefaultComponents } from "@ory/elements-react/theme" -import { PropsWithChildren } from "react" - -export type FlowContextProps = { - flow: LoginFlow - components?: Partial - config: OryClientConfiguration -} - -export function Login({ - flow, - config, - children, - components, -}: PropsWithChildren) { - return ( - - {children || } - - ) -} diff --git a/packages/elements-react-stories/src/elements-react/pages/registration.tsx b/packages/elements-react-stories/src/elements-react/pages/registration.tsx deleted file mode 100644 index 4fae6012b..000000000 --- a/packages/elements-react-stories/src/elements-react/pages/registration.tsx +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright © 2024 Ory Corp -// SPDX-License-Identifier: Apache-2.0 - -"use client" - -import { Configuration, FlowType, RegistrationFlow } from "@ory/client-fetch" -import { - OryCard, - OryClientConfiguration, - OryFlowComponents, - OryProvider, -} from "@ory/elements-react" -import { OryDefaultComponents } from "@ory/elements-react/theme" -import { PropsWithChildren } from "react" - -export type FlowContextProps = { - flow: RegistrationFlow - components?: Partial - config: OryClientConfiguration -} - -export function Registration({ - flow, - config, - children, - components, -}: PropsWithChildren) { - return ( - - {children || } - - ) -} diff --git a/packages/elements-react/.gitignore b/packages/elements-react/.gitignore index 09370e39a..c07f23812 100644 --- a/packages/elements-react/.gitignore +++ b/packages/elements-react/.gitignore @@ -1,5 +1,4 @@ playwright/.cache/ playwright-report/* .last-run.json - -api-report/temp \ No newline at end of file +api-report/temp diff --git a/packages/elements-react/api-report/elements-react-theme.api.json b/packages/elements-react/api-report/elements-react-theme.api.json index af39ddd85..ed4c47f02 100644 --- a/packages/elements-react/api-report/elements-react-theme.api.json +++ b/packages/elements-react/api-report/elements-react-theme.api.json @@ -184,7 +184,7 @@ { "kind": "Reference", "text": "OryCardProps", - "canonicalReference": "@ory/elements-react!~OryCardProps:type" + "canonicalReference": "@ory/elements-react!~OryCardRootProps:type" }, { "kind": "Content", @@ -377,8 +377,8 @@ }, { "kind": "Reference", - "text": "HeadlessFormProps", - "canonicalReference": "@ory/elements-react!~HeadlessFormProps:type" + "text": "OryFormRootProps", + "canonicalReference": "@ory/elements-react!~OryFormRootProps:type" }, { "kind": "Content", @@ -428,8 +428,8 @@ }, { "kind": "Reference", - "text": "HeadlessMessageProps", - "canonicalReference": "@ory/elements-react!~HeadlessMessageProps:type" + "text": "OryMessageContentProps", + "canonicalReference": "@ory/elements-react!~OryMessageContentProps:type" }, { "kind": "Content", @@ -599,21 +599,12 @@ }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "OryFlowComponentOverrides", + "canonicalReference": "@ory/elements-react!~OryFlowComponentOverrides:type" }, { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "OryFlowComponents", - "canonicalReference": "@ory/elements-react!~OryFlowComponents:type" - }, - { - "kind": "Content", - "text": ">;\n config: " + "text": ";\n config: " }, { "kind": "Reference", @@ -634,7 +625,7 @@ "name": "ErrorFlowContextProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 8 } }, { @@ -730,21 +721,12 @@ }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "OryFlowComponentOverrides", + "canonicalReference": "@ory/elements-react!~OryFlowComponentOverrides:type" }, { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "OryFlowComponents", - "canonicalReference": "@ory/elements-react!~OryFlowComponents:type" - }, - { - "kind": "Content", - "text": ">;\n config: " + "text": ";\n config: " }, { "kind": "Reference", @@ -765,7 +747,7 @@ "name": "LoginFlowContextProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 8 } }, { @@ -885,21 +867,12 @@ }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "OryFlowComponentOverrides", + "canonicalReference": "@ory/elements-react!~OryFlowComponentOverrides:type" }, { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "OryFlowComponents", - "canonicalReference": "@ory/elements-react!~OryFlowComponents:type" - }, - { - "kind": "Content", - "text": ">;\n config: " + "text": ";\n config: " }, { "kind": "Reference", @@ -920,7 +893,7 @@ "name": "RecoveryFlowContextProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 8 } }, { @@ -1085,21 +1058,12 @@ }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "OryFlowComponents", - "canonicalReference": "@ory/elements-react!~OryFlowComponents:type" + "text": "OryFlowComponentOverrides", + "canonicalReference": "@ory/elements-react!~OryFlowComponentOverrides:type" }, { "kind": "Content", - "text": ">;\n config: " + "text": ";\n config: " }, { "kind": "Reference", @@ -1120,7 +1084,7 @@ "name": "SettingsFlowContextProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 8 } }, { @@ -1216,21 +1180,12 @@ }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "OryFlowComponents", - "canonicalReference": "@ory/elements-react!~OryFlowComponents:type" + "text": "OryFlowComponentOverrides", + "canonicalReference": "@ory/elements-react!~OryFlowComponentOverrides:type" }, { "kind": "Content", - "text": ">;\n config: " + "text": ";\n config: " }, { "kind": "Reference", @@ -1251,7 +1206,7 @@ "name": "VerificationFlowContextProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 8 } } ] 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 2a4341bd3..8c4d60693 100644 --- a/packages/elements-react/api-report/elements-react-theme.api.md +++ b/packages/elements-react/api-report/elements-react-theme.api.md @@ -27,10 +27,10 @@ import { UiNodeTextAttributes } from '@ory/client-fetch'; import { UiText } from '@ory/client-fetch'; import { VerificationFlow } from '@ory/client-fetch'; -// Warning: (ae-forgotten-export) The symbol "OryCardProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "OryCardRootProps" needs to be exported by the entry point index.d.ts // // @public (undocumented) -export function DefaultCard({ children }: OryCardProps): react_jsx_runtime.JSX.Element; +export function DefaultCard({ children }: OryCardRootProps): react_jsx_runtime.JSX.Element; // Warning: (ae-forgotten-export) The symbol "OryCardContentProps" needs to be exported by the entry point index.d.ts // @@ -46,15 +46,15 @@ export function DefaultCardHeader(): react_jsx_runtime.JSX.Element; // @public (undocumented) export function DefaultCardLogo(): react_jsx_runtime.JSX.Element; -// Warning: (ae-forgotten-export) The symbol "HeadlessFormProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "OryFormRootProps" needs to be exported by the entry point index.d.ts // // @public (undocumented) -export function DefaultFormContainer({ children, onSubmit, action, method, }: PropsWithChildren): react_jsx_runtime.JSX.Element; +export function DefaultFormContainer({ children, onSubmit, action, method, }: PropsWithChildren): react_jsx_runtime.JSX.Element; -// Warning: (ae-forgotten-export) The symbol "HeadlessMessageProps" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "OryMessageContentProps" needs to be exported by the entry point index.d.ts // // @public (undocumented) -export function DefaultMessage({ message }: HeadlessMessageProps): react_jsx_runtime.JSX.Element; +export function DefaultMessage({ message }: OryMessageContentProps): react_jsx_runtime.JSX.Element; // @public (undocumented) export function DefaultMessageContainer({ children }: PropsWithChildren): react_jsx_runtime.JSX.Element | null; @@ -66,7 +66,7 @@ export { Error_2 as Error } // @public (undocumented) export type ErrorFlowContextProps = { error: FlowError; - components?: Partial; + components?: OryFlowComponentOverrides; config: OryClientConfiguration; }; @@ -76,10 +76,12 @@ export function Login({ flow, config, children, components: flowOverrideComponen // @public (undocumented) export type LoginFlowContextProps = { flow: LoginFlow; - components?: Partial; + components?: OryFlowComponentOverrides; config: OryClientConfiguration; }; +// Warning: (ae-forgotten-export) The symbol "OryFlowComponents" needs to be exported by the entry point index.d.ts +// // @public (undocumented) export const OryDefaultComponents: OryFlowComponents; @@ -89,7 +91,7 @@ export function Recovery({ flow, config, children, components: flowOverrideCompo // @public (undocumented) export type RecoveryFlowContextProps = { flow: RecoveryFlow; - components?: Partial; + components?: OryFlowComponentOverrides; config: OryClientConfiguration; }; @@ -104,7 +106,7 @@ export function Settings({ flow, config, children, components: flowOverrideCompo // @public (undocumented) export type SettingsFlowContextProps = { flow: SettingsFlow; - components?: Partial; + components?: OryFlowComponentOverrides; config: OryClientConfiguration; }; @@ -114,13 +116,13 @@ export function Verification({ flow, config, children, components: flowOverrideC // @public (undocumented) export type VerificationFlowContextProps = { flow: VerificationFlow; - components?: Partial; + components?: OryFlowComponentOverrides; config: OryClientConfiguration; }; // Warnings were encountered during analysis: // -// dist/theme/default/index.d.ts:25:5 - (ae-forgotten-export) The symbol "OryFlowComponents" needs to be exported by the entry point index.d.ts +// dist/theme/default/index.d.ts:25:5 - (ae-forgotten-export) The symbol "OryFlowComponentOverrides" needs to be exported by the entry point index.d.ts // dist/theme/default/index.d.ts:26:5 - (ae-forgotten-export) The symbol "OryClientConfiguration" needs to be exported by the entry point index.d.ts // (No @packageDocumentation comment for this package) diff --git a/packages/elements-react/api-report/elements-react.api.json b/packages/elements-react/api-report/elements-react.api.json index 86f8d62e9..4cdace429 100644 --- a/packages/elements-react/api-report/elements-react.api.json +++ b/packages/elements-react/api-report/elements-react.api.json @@ -174,43 +174,39 @@ "members": [ { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!CustomLanguageFormats:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!ErrorFlowContainer:type", + "docComment": "/**\n * A flow container for the error flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * FlowError (Error flow)\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type CustomLanguageFormats = " - }, - { - "kind": "Content", - "text": "{\n [k in (typeof " + "text": "type ErrorFlowContainer = " }, { "kind": "Reference", - "text": "LanguageCodes", - "canonicalReference": "@ory/elements-react!LanguageCodes:var" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", - "text": ")[number]]?: " + "text": "<" }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "FlowType.Error", + "canonicalReference": "@ory/client-fetch!FlowType.Error:member" }, { "kind": "Content", - "text": "<" + "text": ", " }, { "kind": "Reference", - "text": "TranslationFile", - "canonicalReference": "@ory/elements-react!TranslationFile:type" + "text": "FlowError", + "canonicalReference": "@ory/client-fetch!FlowError:interface" }, { "kind": "Content", - "text": ">;\n}" + "text": ">" }, { "kind": "Content", @@ -219,29 +215,25 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "CustomLanguageFormats", + "name": "ErrorFlowContainer", "typeTokenRange": { "startIndex": 1, - "endIndex": 8 + "endIndex": 7 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!CustomTranslations:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!FlowContainerSetter:type", + "docComment": "/**\n * Function to set the flow container.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type CustomTranslations = " - }, - { - "kind": "Content", - "text": "{\n customTranslations: " + "text": "type FlowContainerSetter = " }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "Dispatch", + "canonicalReference": "@types/react!React.Dispatch:type" }, { "kind": "Content", @@ -249,30 +241,21 @@ }, { "kind": "Reference", - "text": "CustomLanguageFormats", - "canonicalReference": "@ory/elements-react!CustomLanguageFormats:type" - }, - { - "kind": "Content", - "text": ">;\n locale: (typeof " - }, - { - "kind": "Reference", - "text": "LanguageCodes", - "canonicalReference": "@ory/elements-react!LanguageCodes:var" + "text": "Partial", + "canonicalReference": "!Partial:type" }, { "kind": "Content", - "text": ")[number];\n defaultLocale: (typeof " + "text": "<" }, { "kind": "Reference", - "text": "LanguageCodes", - "canonicalReference": "@ory/elements-react!LanguageCodes:var" + "text": "OryFlowContainer", + "canonicalReference": "@ory/elements-react!OryFlowContainer:type" }, { "kind": "Content", - "text": ")[number];\n}" + "text": ">>" }, { "kind": "Content", @@ -281,47 +264,38 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "CustomTranslations", + "name": "FlowContainerSetter", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 7 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!ErrorFlowContainer:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!FlowContextValue:type", + "docComment": "/**\n * The return value of the OryFlowContext.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type ErrorFlowContainer = " - }, - { - "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" - }, - { - "kind": "Content", - "text": "<" + "text": "type FlowContextValue = " }, { "kind": "Reference", - "text": "FlowType.Error", - "canonicalReference": "@ory/client-fetch!FlowType.Error:member" + "text": "OryFlowContainer", + "canonicalReference": "@ory/elements-react!OryFlowContainer:type" }, { "kind": "Content", - "text": ", " + "text": " & {\n setFlowContainer: " }, { "kind": "Reference", - "text": "FlowError", - "canonicalReference": "@ory/client-fetch!FlowError:interface" + "text": "FlowContainerSetter", + "canonicalReference": "@ory/elements-react!FlowContainerSetter:type" }, { "kind": "Content", - "text": ">" + "text": ";\n}" }, { "kind": "Content", @@ -330,61 +304,29 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "ErrorFlowContainer", + "name": "FlowContextValue", "typeTokenRange": { "startIndex": 1, - "endIndex": 7 + "endIndex": 5 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!FlowContainer:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!FormValues:type", + "docComment": "/**\n * A generic type for the form values.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type FlowContainer = " - }, - { - "kind": "Reference", - "text": "LoginFlowContainer", - "canonicalReference": "@ory/elements-react!LoginFlowContainer:type" - }, - { - "kind": "Content", - "text": " | " - }, - { - "kind": "Reference", - "text": "RegistrationFlowContainer", - "canonicalReference": "@ory/elements-react!RegistrationFlowContainer:type" - }, - { - "kind": "Content", - "text": " | " - }, - { - "kind": "Reference", - "text": "RecoveryFlowContainer", - "canonicalReference": "@ory/elements-react!RecoveryFlowContainer:type" - }, - { - "kind": "Content", - "text": " | " + "text": "type FormValues = " }, { "kind": "Reference", - "text": "VerificationFlowContainer", - "canonicalReference": "@ory/elements-react!VerificationFlowContainer:type" + "text": "Record", + "canonicalReference": "!Record:type" }, { "kind": "Content", - "text": " | " - }, - { - "kind": "Reference", - "text": "SettingsFlowContainer", - "canonicalReference": "@ory/elements-react!SettingsFlowContainer:type" + "text": "" }, { "kind": "Content", @@ -393,47 +335,29 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "FlowContainer", + "name": "FormValues", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 3 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!FlowContainerSetter:type", + "canonicalReference": "@ory/elements-react!Locale:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type FlowContainerSetter = " - }, - { - "kind": "Reference", - "text": "Dispatch", - "canonicalReference": "@types/react!React.Dispatch:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "type Locale = " }, { "kind": "Content", - "text": "<" + "text": "keyof typeof " }, { "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ">>" + "text": "locales", + "canonicalReference": "@ory/elements-react!OryLocales:namespace" }, { "kind": "Content", @@ -442,38 +366,47 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "FlowContainerSetter", + "name": "Locale", "typeTokenRange": { "startIndex": 1, - "endIndex": 7 + "endIndex": 3 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!FlowContextValue:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!LoginFlowContainer:type", + "docComment": "/**\n * A flow container for the login flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * LoginFlow\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type FlowContextValue = " + "text": "type LoginFlowContainer = " }, { "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", - "text": " & {\n setFlowContainer: " + "text": "<" }, { "kind": "Reference", - "text": "FlowContainerSetter", - "canonicalReference": "@ory/elements-react!FlowContainerSetter:type" + "text": "FlowType.Login", + "canonicalReference": "@ory/client-fetch!FlowType.Login:member" }, { "kind": "Content", - "text": ";\n}" + "text": ", " + }, + { + "kind": "Reference", + "text": "LoginFlow", + "canonicalReference": "@ory/client-fetch!LoginFlow:interface" + }, + { + "kind": "Content", + "text": ">" }, { "kind": "Content", @@ -482,46 +415,33 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "FlowContextValue", + "name": "LoginFlowContainer", "typeTokenRange": { "startIndex": 1, - "endIndex": 5 + "endIndex": 7 } }, { "kind": "Function", - "canonicalReference": "@ory/elements-react!formatMessage:function(1)", - "docComment": "", + "canonicalReference": "@ory/elements-react!messageTestId:function(1)", + "docComment": "/**\n * Helper function to generate a test id for a UiText message.\n *\n * @param message - the UiText message to generate a test id for\n *\n * @returns a unique, stable test id for the message\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "declare function formatMessage(uiText: " + "text": "declare function messageTestId(message: " }, { "kind": "Reference", "text": "UiText", "canonicalReference": "@ory/client-fetch!UiText:interface" }, - { - "kind": "Content", - "text": " | undefined" - }, - { - "kind": "Content", - "text": ", intl: " - }, - { - "kind": "Reference", - "text": "IntlShape", - "canonicalReference": "react-intl!IntlShape:interface" - }, { "kind": "Content", "text": "): " }, { "kind": "Content", - "text": "string" + "text": "{\n \"data-testid\": string;\n}" }, { "kind": "Content", @@ -530,96 +450,98 @@ ], "fileUrlPath": "dist/index.d.ts", "returnTypeTokenRange": { - "startIndex": 6, - "endIndex": 7 + "startIndex": 3, + "endIndex": 4 }, "releaseTag": "Public", "overloadIndex": 1, "parameters": [ { - "parameterName": "uiText", + "parameterName": "message", "parameterTypeTokenRange": { "startIndex": 1, - "endIndex": 3 - }, - "isOptional": false - }, - { - "parameterName": "intl", - "parameterTypeTokenRange": { - "startIndex": 4, - "endIndex": 5 + "endIndex": 2 }, "isOptional": false } ], - "name": "formatMessage" + "name": "messageTestId" }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!formElementId:function(1)", - "docComment": "", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type", + "docComment": "/**\n * Props for the submit handler\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "declare function formElementId(attributes: " + "text": "type OnSubmitHandlerProps = " + }, + { + "kind": "Content", + "text": "{\n setFlowContainer: (flowContainer: " + }, + { + "kind": "Reference", + "text": "OryFlowContainer", + "canonicalReference": "@ory/elements-react!OryFlowContainer:type" + }, + { + "kind": "Content", + "text": ") => void;\n body: T;\n onRedirect: " + }, + { + "kind": "Reference", + "text": "OnRedirectHandler", + "canonicalReference": "@ory/client-fetch!OnRedirectHandler:type" + }, + { + "kind": "Content", + "text": ";\n}" }, { "kind": "Content", @@ -627,41 +549,48 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ + "name": "OnSubmitHandlerProps", + "typeParameters": [ { - "parameterName": "attributes", - "parameterTypeTokenRange": { + "typeParameterName": "T", + "constraintTokenRange": { "startIndex": 1, - "endIndex": 2 + "endIndex": 10 }, - "isOptional": false + "defaultTypeTokenRange": { + "startIndex": 0, + "endIndex": 0 + } } ], - "name": "formLabelId" + "typeTokenRange": { + "startIndex": 11, + "endIndex": 16 + } }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!FormValues:type", - "docComment": "", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryCard:function(1)", + "docComment": "/**\n * The root component of the Ory Card.\n *\n * This can be used to build fully custom implementations of the Ory Flows.\n *\n * However, you most likely want to override the individual components instead.\n *\n * @param props - pass children to render instead of the default Ory Card components\n *\n * @returns \n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type FormValues = " + "text": "declare function OryCard({ children }: " }, { "kind": "Reference", - "text": "Record", - "canonicalReference": "!Record:type" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", - "text": "" + "text": "): " + }, + { + "kind": "Reference", + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", @@ -669,21 +598,32 @@ } ], "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, "releaseTag": "Public", - "name": "FormValues", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 3 - } + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "{ children }", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "name": "OryCard" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessAuthMethodListItemProps:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!OryCardAuthMethodListItemProps:type", + "docComment": "/**\n * Props for the AuthMethodListItem component. This component is used to render a single auth method in the AuthMethodList component.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessAuthMethodListItemProps = " + "text": "type OryCardAuthMethodListItemProps = " }, { "kind": "Content", @@ -696,60 +636,72 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessAuthMethodListItemProps", + "name": "OryCardAuthMethodListItemProps", "typeTokenRange": { "startIndex": 1, "endIndex": 2 } }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessButtonProps:type", - "docComment": "", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryCardContent:function(1)", + "docComment": "/**\n * A component that renders the content of the Ory Card. This is the main content of the card, such as the flow's form, with it's input fields and messages.\n *\n * You can use this component to build fully custom implementations of the Ory Flows.\n *\n * However, you most likely want to override the individual components instead.\n *\n * @param props - pass children to render instead of the default Ory Card components\n *\n * @returns \n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessButtonProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " + "text": "declare function OryCardContent({ children }: " }, { "kind": "Reference", - "text": "UiNodeInputAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" + "text": "OryCardContentProps", + "canonicalReference": "@ory/elements-react!OryCardContentProps:type" }, { "kind": "Content", - "text": ";\n node: " + "text": "): " }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", - "text": ";\n} & " - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ { - "kind": "Reference", - "text": "Omit", - "canonicalReference": "!Omit:type" - }, + "parameterName": "{ children }", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "name": "OryCardContent" + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryCardContentProps:type", + "docComment": "/**\n * Props for the OryCardContent component.\n */\n", + "excerptTokens": [ { "kind": "Content", - "text": "<" + "text": "type OryCardContentProps = " }, { "kind": "Reference", - "text": "ComponentPropsWithoutRef", - "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" - }, - { - "kind": "Content", - "text": "<\"button\">, \"children\">" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", @@ -758,60 +710,29 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessButtonProps", + "name": "OryCardContentProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 2 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessCurrentIdentifierProps:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!OryCardDividerProps:type", + "docComment": "/**\n * Props type for the Form Group Divider component.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessCurrentIdentifierProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " - }, - { - "kind": "Reference", - "text": "UiNodeInputAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" - }, - { - "kind": "Content", - "text": ";\n node: " - }, - { - "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" - }, - { - "kind": "Content", - "text": ";\n onClick?: () => void;\n href?: string;\n} & " - }, - { - "kind": "Reference", - "text": "Omit", - "canonicalReference": "!Omit:type" - }, - { - "kind": "Content", - "text": "<" + "text": "type OryCardDividerProps = " }, { "kind": "Reference", - "text": "ComponentPropsWithoutRef", - "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" + "text": "Record", + "canonicalReference": "!Record:type" }, { "kind": "Content", - "text": "<\"button\">, \"children\" | \"onClick\">" + "text": "" }, { "kind": "Content", @@ -820,47 +741,58 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessCurrentIdentifierProps", + "name": "OryCardDividerProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 10 + "endIndex": 3 } }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessFormProps:type", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryCardFooter:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessFormProps = " + "text": "declare function OryCardFooter(): " }, { "kind": "Reference", - "text": "ComponentPropsWithoutRef", - "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", - "text": "<\"form\"> & {\n onSubmit: " - }, - { - "kind": "Reference", - "text": "FormEventHandler", - "canonicalReference": "@types/react!React.FormEventHandler:type" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OryCardFooter" + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryCardFooterProps:type", + "docComment": "", + "excerptTokens": [ { "kind": "Content", - "text": "<" + "text": "type OryCardFooterProps = " }, { "kind": "Reference", - "text": "HTMLFormElement", - "canonicalReference": "!HTMLFormElement:interface" + "text": "Record", + "canonicalReference": "!Record:type" }, { "kind": "Content", - "text": ">;\n}" + "text": "" }, { "kind": "Content", @@ -869,25 +801,25 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessFormProps", + "name": "OryCardFooterProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 7 + "endIndex": 3 } }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessGroupContainerProps:type", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryCardHeader:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessGroupContainerProps = " + "text": "declare function OryCardHeader(): " }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", @@ -895,39 +827,32 @@ } ], "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessGroupContainerProps", - "typeTokenRange": { + "returnTypeTokenRange": { "startIndex": 1, "endIndex": 2 - } + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OryCardHeader" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessGroupProps:type", + "canonicalReference": "@ory/elements-react!OryCardHeaderProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessGroupProps = " + "text": "type OryCardHeaderProps = " }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "Record", + "canonicalReference": "!Record:type" }, { "kind": "Content", - "text": "<{\n groups: " - }, - { - "kind": "Reference", - "text": "UiNodeGroupEnum", - "canonicalReference": "@ory/client-fetch!UiNodeGroupEnum:type" - }, - { - "kind": "Content", - "text": "[];\n}>" + "text": "" }, { "kind": "Content", @@ -936,42 +861,29 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessGroupProps", + "name": "OryCardHeaderProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 5 + "endIndex": 3 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessImageProps:type", + "canonicalReference": "@ory/elements-react!OryCardLogoProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessImageProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " - }, - { - "kind": "Reference", - "text": "UiNodeImageAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeImageAttributes:interface" - }, - { - "kind": "Content", - "text": ";\n node: " + "text": "type OryCardLogoProps = " }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "Record", + "canonicalReference": "!Record:type" }, { "kind": "Content", - "text": ";\n}" + "text": "" }, { "kind": "Content", @@ -980,51 +892,65 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessImageProps", + "name": "OryCardLogoProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 6 + "endIndex": 3 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessInputProps:type", + "canonicalReference": "@ory/elements-react!OryCardProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessInputProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " + "text": "type OryCardRootProps = " }, { "kind": "Reference", - "text": "UiNodeInputAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", - "text": ";\n node: " + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryCardProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 2 + } + }, + { + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryCardValidationMessages:function(1)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "declare function OryCardValidationMessages({ ...props }: " }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "OryMessageRootProps", + "canonicalReference": "@ory/elements-react!OryMessageRootProps:type" }, { "kind": "Content", - "text": ";\n onClick?: " + "text": "): " }, { "kind": "Reference", - "text": "MouseEventHandler", - "canonicalReference": "@types/react!React.MouseEventHandler:type" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", - "text": ";\n}" + "text": " | null" }, { "kind": "Content", @@ -1032,52 +958,54 @@ } ], "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 3, + "endIndex": 5 + }, "releaseTag": "Public", - "name": "HeadlessInputProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 8 - } + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "{ ...props }", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "name": "OryCardValidationMessages" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessLabelProps:type", + "canonicalReference": "@ory/elements-react!OryClientConfiguration:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessLabelProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " - }, - { - "kind": "Reference", - "text": "UiNodeInputAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" + "text": "type OryClientConfiguration = " }, { "kind": "Content", - "text": ";\n node: " + "text": "{\n name: string;\n logoUrl?: string;\n stylesheet?: string;\n favicon?: string;\n sdk: {\n url: string;\n options?: " }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "Partial", + "canonicalReference": "!Partial:type" }, { "kind": "Content", - "text": ";\n} & " + "text": "<" }, { "kind": "Reference", - "text": "ComponentPropsWithoutRef", - "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" + "text": "ConfigurationParameters", + "canonicalReference": "@ory/client-fetch!ConfigurationParameters:interface" }, { "kind": "Content", - "text": "<\"label\">" + "text": ">;\n };\n project: {\n registration_enabled: boolean;\n verification_enabled: boolean;\n recovery_enabled: boolean;\n recovery_ui_url: string;\n registration_ui_url: string;\n verification_ui_url: string;\n login_ui_url: string;\n };\n}" }, { "kind": "Content", @@ -1086,20 +1014,20 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessLabelProps", + "name": "OryClientConfiguration", "typeTokenRange": { "startIndex": 1, - "endIndex": 8 + "endIndex": 6 } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessLinkButtonProps:type", + "canonicalReference": "@ory/elements-react!OryCurrentIdentifierProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessLinkButtonProps = " + "text": "type OryCurrentIdentifierProps = " }, { "kind": "Content", @@ -1107,8 +1035,8 @@ }, { "kind": "Reference", - "text": "UiNodeAnchorAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeAnchorAttributes:interface" + "text": "UiNodeInputAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" }, { "kind": "Content", @@ -1121,7 +1049,7 @@ }, { "kind": "Content", - "text": ";\n} & " + "text": ";\n onClick?: () => void;\n href?: string;\n} & " }, { "kind": "Reference", @@ -1139,7 +1067,7 @@ }, { "kind": "Content", - "text": "<\"a\">, \"children\">" + "text": "<\"button\">, \"children\" | \"onClick\">" }, { "kind": "Content", @@ -1148,34 +1076,38 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "HeadlessLinkButtonProps", + "name": "OryCurrentIdentifierProps", "typeTokenRange": { "startIndex": 1, "endIndex": 10 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!HeadlessMessage:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFlowComponentOverrides:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function HeadlessMessage({ message }: " + "text": "type OryFlowComponentOverrides = " }, { "kind": "Reference", - "text": "HeadlessMessageProps", - "canonicalReference": "@ory/elements-react!HeadlessMessageProps:type" + "text": "DeepPartialTwoLevels", + "canonicalReference": "@ory/elements-react!~DeepPartialTwoLevels:type" }, { "kind": "Content", - "text": "): " + "text": "<" }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "OryFlowComponents", + "canonicalReference": "@ory/elements-react!OryFlowComponents:type" + }, + { + "kind": "Content", + "text": ">" }, { "kind": "Content", @@ -1183,72 +1115,48 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ message }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "HeadlessMessage" + "name": "OryFlowComponentOverrides", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 5 + } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessMessageProps:type", - "docComment": "", + "canonicalReference": "@ory/elements-react!OryFlowComponents:type", + "docComment": "/**\n * A record of all the components that are used in the OryForm component.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type HeadlessMessageProps = " + "text": "type OryFlowComponents = " }, { "kind": "Content", - "text": "{\n message: " + "text": "{\n Node: {\n Button: " }, { "kind": "Reference", - "text": "UiText", - "canonicalReference": "@ory/client-fetch!UiText:interface" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": ";\n}" + "text": "<" }, { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessMessageProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 4 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessMessagesProps:type", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "OryNodeButtonProps", + "canonicalReference": "@ory/elements-react!OryNodeButtonProps:type" + }, { "kind": "Content", - "text": "type HeadlessMessagesProps = " + "text": ">;\n OidcButton: " }, { "kind": "Reference", - "text": "DetailedHTMLProps", - "canonicalReference": "@types/react!React.DetailedHTMLProps:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", @@ -1256,909 +1164,89 @@ }, { "kind": "Reference", - "text": "HTMLAttributes", - "canonicalReference": "@types/react!React.HTMLAttributes:interface" + "text": "OryNodeOidcButtonProps", + "canonicalReference": "@ory/elements-react!OryNodeOidcButtonProps:type" }, { "kind": "Content", - "text": "<" + "text": ">;\n CurrentIdentifierButton: " }, { "kind": "Reference", - "text": "HTMLDivElement", - "canonicalReference": "!HTMLDivElement:interface" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": ">, " + "text": "<" }, { "kind": "Reference", - "text": "HTMLDivElement", - "canonicalReference": "!HTMLDivElement:interface" + "text": "OryCurrentIdentifierProps", + "canonicalReference": "@ory/elements-react!OryCurrentIdentifierProps:type" }, { "kind": "Content", - "text": ">" + "text": ">;\n Anchor: " }, { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessMessagesProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 9 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonContainerProps:type", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, { "kind": "Content", - "text": "type HeadlessSocialButtonContainerProps = " + "text": "<" }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "OryNodeAnchorProps", + "canonicalReference": "@ory/elements-react!OryNodeAnchorProps:type" }, { "kind": "Content", - "text": "<{\n nodes: " + "text": ">;\n Input: " }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": "[];\n}>" + "text": "<" }, { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessSocialButtonContainerProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 5 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonProps:type", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "OryNodeInputProps", + "canonicalReference": "@ory/elements-react!OryNodeInputProps:type" + }, { "kind": "Content", - "text": "type HeadlessSocialButtonProps = " + "text": ">;\n CodeInput: " }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": "<{\n node: " + "text": "<" }, { "kind": "Reference", - "text": "UiNode", - "canonicalReference": "@ory/client-fetch!UiNode:interface" + "text": "OryNodeInputProps", + "canonicalReference": "@ory/elements-react!OryNodeInputProps:type" }, { "kind": "Content", - "text": ";\n attributes: " + "text": ">;\n Image: " }, { "kind": "Reference", - "text": "UiNodeInputAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" - }, - { - "kind": "Content", - "text": ";\n onClick?: () => void;\n}>" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessSocialButtonProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 7 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonsProps:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type HeadlessSocialButtonsProps = " - }, - { - "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" - }, - { - "kind": "Content", - "text": "<{\n hideDivider?: boolean;\n}>" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HeadlessSocialButtonsProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 3 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HeadlessTextProps:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type HeadlessTextProps = " - }, - { - "kind": "Content", - "text": "{\n attributes: " - }, - { - "kind": "Reference", - "text": "UiNodeTextAttributes", - "canonicalReference": "@ory/client-fetch!UiNodeTextAttributes:interface" - }, - { - "kind": "Content", - "text": ";\n node: " - }, - { - "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": "HeadlessTextProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 6 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!HorizontalDividerProps:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type HorizontalDividerProps = " - }, - { - "kind": "Reference", - "text": "Record", - "canonicalReference": "!Record:type" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "HorizontalDividerProps", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 3 - } - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!IntlProvider:function(1)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "IntlProvider: ({ children, ...props }: " - }, - { - "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "IntlProviderProps", - "canonicalReference": "@ory/elements-react!IntlProviderProps:type" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Content", - "text": "string | number | boolean | " - }, - { - "kind": "Reference", - "text": "Iterable", - "canonicalReference": "!Iterable:interface" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "react.ReactNode", - "canonicalReference": "@types/react!React.ReactNode:type" - }, - { - "kind": "Content", - "text": "> | " - }, - { - "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" - }, - { - "kind": "Content", - "text": " | null | undefined" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 12, - "endIndex": 19 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ children, ...props }", - "parameterTypeTokenRange": { - "startIndex": 7, - "endIndex": 11 - }, - "isOptional": false - } - ], - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 4 - }, - "defaultTypeTokenRange": { - "startIndex": 5, - "endIndex": 6 - } - } - ], - "name": "IntlProvider" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!IntlProviderProps:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type IntlProviderProps = " - }, - { - "kind": "Content", - "text": "Type extends " - }, - { - "kind": "Reference", - "text": "CustomTranslations", - "canonicalReference": "@ory/elements-react!CustomTranslations:type" - }, - { - "kind": "Content", - "text": " ? " - }, - { - "kind": "Reference", - "text": "CustomTranslations", - "canonicalReference": "@ory/elements-react!CustomTranslations:type" - }, - { - "kind": "Content", - "text": " : " - }, - { - "kind": "Reference", - "text": "SupportedTranslations", - "canonicalReference": "@ory/elements-react!SupportedTranslations:type" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "IntlProviderProps", - "typeParameters": [ - { - "typeParameterName": "Type", - "constraintTokenRange": { - "startIndex": 0, - "endIndex": 0 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "typeTokenRange": { - "startIndex": 1, - "endIndex": 7 - } - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!isCustomTranslations:function(1)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "isCustomTranslations: (o: " - }, - { - "kind": "Content", - "text": "unknown" - }, - { - "kind": "Content", - "text": ") => " - }, - { - "kind": "Reference", - "text": "o", - "canonicalReference": "@ory/elements-react!~o" - }, - { - "kind": "Content", - "text": " is " - }, - { - "kind": "Reference", - "text": "CustomTranslations", - "canonicalReference": "@ory/elements-react!CustomTranslations:type" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 6 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "o", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "isCustomTranslations" - }, - { - "kind": "Variable", - "canonicalReference": "@ory/elements-react!LanguageCodes:var", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "LanguageCodes: " - }, - { - "kind": "Content", - "text": "readonly [\"ab\", \"aa\", \"af\", \"sq\", \"am\", \"ar\", \"hy\", \"as\", \"ay\", \"az\", \"ba\", \"eu\", \"bn\", \"dz\", \"bh\", \"bi\", \"br\", \"bg\", \"my\", \"be\", \"km\", \"ca\", \"zh\", \"co\", \"hr\", \"cs\", \"da\", \"nl\", \"en\", \"eo\", \"et\", \"fo\", \"fj\", \"fi\", \"fr\", \"fy\", \"gd\", \"gl\", \"ka\", \"de\", \"el\", \"kl\", \"gn\", \"gu\", \"ha\", \"iw\", \"hi\", \"hu\", \"is\", \"in\", \"ia\", \"ie\", \"ik\", \"ga\", \"it\", \"ja\", \"jw\", \"kn\", \"ks\", \"kk\", \"rw\", \"ky\", \"rn\", \"ko\", \"ku\", \"lo\", \"la\", \"lv\", \"ln\", \"lt\", \"mk\", \"mg\", \"ms\", \"ml\", \"mt\", \"mi\", \"mr\", \"mo\", \"mn\", \"na\", \"ne\", \"no\", \"oc\", \"or\", \"om\", \"ps\", \"fa\", \"pl\", \"pt\", \"pa\", \"qu\", \"rm\", \"ro\", \"ru\", \"sm\", \"sg\", \"sa\", \"sr\", \"sh\", \"st\", \"tn\", \"sn\", \"sd\", \"si\", \"ss\", \"sk\", \"sl\", \"so\", \"es\", \"su\", \"sw\", \"sv\", \"tl\", \"tg\", \"ta\", \"tt\", \"te\", \"th\", \"bo\", \"ti\", \"to\", \"ts\", \"tr\", \"tk\", \"tw\", \"uk\", \"ur\", \"uz\", \"vi\", \"vo\", \"cy\", \"wo\", \"xh\", \"ji\", \"yo\", \"zu\"]" - } - ], - "fileUrlPath": "dist/index.d.ts", - "isReadonly": true, - "releaseTag": "Public", - "name": "LanguageCodes", - "variableTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!Locale:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type Locale = " - }, - { - "kind": "Content", - "text": "keyof typeof " - }, - { - "kind": "Reference", - "text": "locales", - "canonicalReference": "@ory/elements-react!OryLocales:namespace" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "Locale", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 3 - } - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!LoginFlowContainer:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type LoginFlowContainer = " - }, - { - "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "FlowType.Login", - "canonicalReference": "@ory/client-fetch!FlowType.Login:member" - }, - { - "kind": "Content", - "text": ", " - }, - { - "kind": "Reference", - "text": "LoginFlow", - "canonicalReference": "@ory/client-fetch!LoginFlow:interface" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "LoginFlowContainer", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 7 - } - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!messageTestId:function(1)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function messageTestId(message: " - }, - { - "kind": "Reference", - "text": "UiText", - "canonicalReference": "@ory/client-fetch!UiText:interface" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Content", - "text": "{\n \"data-testid\": string;\n}" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "message", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "messageTestId" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type OnSubmitHandlerProps = " - }, - { - "kind": "Content", - "text": "{\n setFlowContainer: (flowContainer: " - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ") => void;\n body: T;\n onRedirect: " - }, - { - "kind": "Reference", - "text": "OnRedirectHandler", - "canonicalReference": "@ory/client-fetch!OnRedirectHandler:type" - }, - { - "kind": "Content", - "text": ";\n}" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "OnSubmitHandlerProps", - "typeParameters": [ - { - "typeParameterName": "T", - "constraintTokenRange": { - "startIndex": 1, - "endIndex": 10 - }, - "defaultTypeTokenRange": { - "startIndex": 0, - "endIndex": 0 - } - } - ], - "typeTokenRange": { - "startIndex": 11, - "endIndex": 16 - } - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!onSubmitLogin:function(1)", - "docComment": "/**\n * Use this method to submit a login flow. This method is used in the `onSubmit` handler of the login form.\n *\n * @param config - The configuration object.\n *\n * @param flow - The flow object.\n *\n * @param setFlowContainer - This method is used to update the flow container when a validation error occurs, for example.\n *\n * @param body - The form values to submit.\n *\n * @param onRedirect - This method is used to redirect the user to a different page.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function onSubmitLogin({ config, flow }: " - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ", { setFlowContainer, body, onRedirect, }: " - }, - { - "kind": "Reference", - "text": "OnSubmitHandlerProps", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "UpdateLoginFlowBody", - "canonicalReference": "@ory/client-fetch!UpdateLoginFlowBody:type" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 8, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ config, flow }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - }, - { - "parameterName": "{ setFlowContainer, body, onRedirect, }", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - } - ], - "name": "onSubmitLogin" - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!onSubmitRecovery:function(1)", - "docComment": "/**\n * Use this method to submit a recovery flow. This method is used in the `onSubmit` handler of the recovery form.\n *\n * @param config - The configuration object.\n *\n * @param flow - The flow object.\n *\n * @param setFlowContainer - This method is used to update the flow container when a validation error occurs, for example.\n *\n * @param body - The form values to submit.\n *\n * @param onRedirect - This method is used to redirect the user to a different page.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function onSubmitRecovery({ config, flow }: " - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ", { setFlowContainer, body, onRedirect, }: " - }, - { - "kind": "Reference", - "text": "OnSubmitHandlerProps", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type" - }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "UpdateRecoveryFlowBody", - "canonicalReference": "@ory/client-fetch!UpdateRecoveryFlowBody:type" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 8, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ config, flow }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - }, - { - "parameterName": "{ setFlowContainer, body, onRedirect, }", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - } - ], - "name": "onSubmitRecovery" - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!onSubmitRegistration:function(1)", - "docComment": "/**\n * Use this method to submit a registration flow. This method is used in the `onSubmit` handler of the registration form.\n *\n * @param config - The configuration object.\n *\n * @param flow - The flow object.\n *\n * @param setFlowContainer - This method is used to update the flow container when a validation error occurs, for example.\n *\n * @param body - The form values to submit.\n *\n * @param onRedirect - This method is used to redirect the user to a different page.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function onSubmitRegistration({ config, flow }: " - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ", { setFlowContainer, body, onRedirect, }: " - }, - { - "kind": "Reference", - "text": "OnSubmitHandlerProps", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", @@ -2166,80 +1254,17 @@ }, { "kind": "Reference", - "text": "UpdateRegistrationFlowBody", - "canonicalReference": "@ory/client-fetch!UpdateRegistrationFlowBody:type" - }, - { - "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": "): " - }, - { - "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 8, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ config, flow }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - }, - { - "parameterName": "{ setFlowContainer, body, onRedirect, }", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - } - ], - "name": "onSubmitRegistration" - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!onSubmitSettings:function(1)", - "docComment": "/**\n * Use this method to submit a settings flow. This method is used in the `onSubmit` handler of the settings form.\n *\n * @param config - The configuration object.\n *\n * @param flow - The flow object.\n *\n * @param setFlowContainer - This method is used to update the flow container when a validation error occurs, for example.\n *\n * @param body - The form values to submit.\n *\n * @param onRedirect - This method is used to redirect the user to a different page.\n */\n", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function onSubmitSettings({ config, flow }: " - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" + "text": "OryNodeImageProps", + "canonicalReference": "@ory/elements-react!OryNodeImageProps:type" }, { "kind": "Content", - "text": ", { setFlowContainer, body, onRedirect, }: " + "text": ">;\n Label: " }, { "kind": "Reference", - "text": "OnSubmitHandlerProps", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", @@ -2247,80 +1272,35 @@ }, { "kind": "Reference", - "text": "UpdateSettingsFlowBody", - "canonicalReference": "@ory/client-fetch!UpdateSettingsFlowBody:type" + "text": "OryNodeLabelProps", + "canonicalReference": "@ory/elements-react!OryNodeLabelProps:type" }, { "kind": "Content", - "text": ">" - }, - { - "kind": "Content", - "text": "): " + "text": ">;\n Checkbox: " }, { "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" - }, - { - "kind": "Content", - "text": "" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 8, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ config, flow }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - }, - { - "parameterName": "{ setFlowContainer, body, onRedirect, }", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - } - ], - "name": "onSubmitSettings" - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!onSubmitVerification:function(1)", - "docComment": "/**\n * Use this method to submit a verification flow. This method is used in the `onSubmit` handler of the verification form.\n *\n * @param config - The configuration object.\n *\n * @param flow - The flow object.\n *\n * @param setFlowContainer - This method is used to update the flow container when a validation error occurs, for example.\n *\n * @param body - The form values to submit.\n *\n * @param onRedirect - This method is used to redirect the user to a different page.\n */\n", - "excerptTokens": [ + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, { "kind": "Content", - "text": "declare function onSubmitVerification({ config, flow }: " + "text": "<" }, { "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" + "text": "OryNodeInputProps", + "canonicalReference": "@ory/elements-react!OryNodeInputProps:type" }, { "kind": "Content", - "text": ", { setFlowContainer, body, onRedirect, }: " + "text": ">;\n Text: " }, { "kind": "Reference", - "text": "OnSubmitHandlerProps", - "canonicalReference": "@ory/elements-react!OnSubmitHandlerProps:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", @@ -2328,117 +1308,102 @@ }, { "kind": "Reference", - "text": "UpdateVerificationFlowBody", - "canonicalReference": "@ory/client-fetch!UpdateVerificationFlowBody:type" + "text": "OryNodeTextProps", + "canonicalReference": "@ory/elements-react!OryNodeTextProps:type" }, { "kind": "Content", - "text": ">" + "text": ">;\n };\n Card: {\n Root: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": "): " + "text": "<" }, { "kind": "Reference", - "text": "Promise", - "canonicalReference": "!Promise:interface" + "text": "OryCardRootProps", + "canonicalReference": "@ory/elements-react!OryCardProps:type" }, { "kind": "Content", - "text": "" + "text": ">;\n Footer: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 8, - "endIndex": 10 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ + "text": "<" + }, { - "parameterName": "{ config, flow }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false + "kind": "Reference", + "text": "OryCardFooterProps", + "canonicalReference": "@ory/elements-react!OryCardFooterProps:type" }, { - "parameterName": "{ setFlowContainer, body, onRedirect, }", - "parameterTypeTokenRange": { - "startIndex": 3, - "endIndex": 7 - }, - "isOptional": false - } - ], - "name": "onSubmitVerification" - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryCard:function(1)", - "docComment": "", - "excerptTokens": [ + "kind": "Content", + "text": ">;\n Header: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, { "kind": "Content", - "text": "declare function OryCard({ children }: " + "text": "<" }, { "kind": "Reference", - "text": "OryCardProps", + "text": "OryCardRootProps", "canonicalReference": "@ory/elements-react!OryCardProps:type" }, { "kind": "Content", - "text": "): " + "text": ">;\n Content: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ + "text": "<" + }, { - "parameterName": "{ children }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryCard" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryCardComponents:type", - "docComment": "/**\n * Card components are used to show login, registration, recovery, and verification flows.\n */\n", - "excerptTokens": [ + "kind": "Reference", + "text": "OryCardContentProps", + "canonicalReference": "@ory/elements-react!OryCardContentProps:type" + }, + { + "kind": "Content", + "text": ">;\n Logo: " + }, + { + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, { "kind": "Content", - "text": "type OryCardComponents = " + "text": "<" + }, + { + "kind": "Reference", + "text": "OryCardLogoProps", + "canonicalReference": "@ory/elements-react!OryCardLogoProps:type" }, { "kind": "Content", - "text": "{\n Card: " + "text": ">;\n Divider: " }, { "kind": "Reference", @@ -2451,12 +1416,12 @@ }, { "kind": "Reference", - "text": "OryCardProps", - "canonicalReference": "@ory/elements-react!OryCardProps:type" + "text": "OryCardDividerProps", + "canonicalReference": "@ory/elements-react!OryCardDividerProps:type" }, { "kind": "Content", - "text": ">;\n CardFooter: " + "text": ">;\n AuthMethodListItem: " }, { "kind": "Reference", @@ -2469,12 +1434,12 @@ }, { "kind": "Reference", - "text": "OryCardFooterProps", - "canonicalReference": "@ory/elements-react!OryCardFooterProps:type" + "text": "OryCardAuthMethodListItemProps", + "canonicalReference": "@ory/elements-react!OryCardAuthMethodListItemProps:type" }, { "kind": "Content", - "text": ">;\n CardHeader: " + "text": ">;\n };\n Form: {\n Root: " }, { "kind": "Reference", @@ -2487,12 +1452,12 @@ }, { "kind": "Reference", - "text": "OryCardProps", - "canonicalReference": "@ory/elements-react!OryCardProps:type" + "text": "OryFormRootProps", + "canonicalReference": "@ory/elements-react!OryFormRootProps:type" }, { "kind": "Content", - "text": ">;\n CardContent: " + "text": ">;\n OidcRoot: " }, { "kind": "Reference", @@ -2505,12 +1470,12 @@ }, { "kind": "Reference", - "text": "OryCardContentProps", - "canonicalReference": "@ory/elements-react!OryCardContentProps:type" + "text": "OryFormOidcRootProps", + "canonicalReference": "@ory/elements-react!OryFormOidcRootProps:type" }, { "kind": "Content", - "text": ">;\n CardLogo: " + "text": ">;\n Group: " }, { "kind": "Reference", @@ -2519,81 +1484,52 @@ }, { "kind": "Content", - "text": ";\n}" + "text": "<" }, { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "OryCardComponents", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 20 - } - }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryCardContent:function(1)", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "OryFormGroupProps", + "canonicalReference": "@ory/elements-react!OryFormGroupProps:type" + }, { "kind": "Content", - "text": "declare function OryCardContent({ children }: " + "text": ">;\n };\n Message: {\n Root: " }, { "kind": "Reference", - "text": "OryCardContentProps", - "canonicalReference": "@ory/elements-react!OryCardContentProps:type" + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" }, { "kind": "Content", - "text": "): " + "text": "<" }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "OryMessageRootProps", + "canonicalReference": "@ory/elements-react!OryMessageRootProps:type" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ + "text": ">;\n Content: " + }, { - "parameterName": "{ children }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryCardContent" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryCardContentProps:type", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "ComponentType", + "canonicalReference": "@types/react!React.ComponentType:type" + }, { "kind": "Content", - "text": "type OryCardContentProps = " + "text": "<" }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "OryMessageContentProps", + "canonicalReference": "@ory/elements-react!OryMessageContentProps:type" + }, + { + "kind": "Content", + "text": ">;\n };\n}" }, { "kind": "Content", @@ -2602,58 +1538,61 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryCardContentProps", + "name": "OryFlowComponents", "typeTokenRange": { "startIndex": 1, - "endIndex": 2 + "endIndex": 90 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryCardFooter:function(1)", - "docComment": "", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFlowContainer:type", + "docComment": "/**\n * A union type of all flow containers\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryCardFooter(): " + "text": "type OryFlowContainer = " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "LoginFlowContainer", + "canonicalReference": "@ory/elements-react!LoginFlowContainer:type" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [], - "name": "OryCardFooter" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryCardFooterProps:type", - "docComment": "", - "excerptTokens": [ + "text": " | " + }, + { + "kind": "Reference", + "text": "RegistrationFlowContainer", + "canonicalReference": "@ory/elements-react!RegistrationFlowContainer:type" + }, { "kind": "Content", - "text": "type OryCardFooterProps = " + "text": " | " }, { "kind": "Reference", - "text": "Record", - "canonicalReference": "!Record:type" + "text": "RecoveryFlowContainer", + "canonicalReference": "@ory/elements-react!RecoveryFlowContainer:type" }, { "kind": "Content", - "text": "" + "text": " | " + }, + { + "kind": "Reference", + "text": "VerificationFlowContainer", + "canonicalReference": "@ory/elements-react!VerificationFlowContainer:type" + }, + { + "kind": "Content", + "text": " | " + }, + { + "kind": "Reference", + "text": "SettingsFlowContainer", + "canonicalReference": "@ory/elements-react!SettingsFlowContainer:type" }, { "kind": "Content", @@ -2662,20 +1601,33 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryCardFooterProps", + "name": "OryFlowContainer", "typeTokenRange": { "startIndex": 1, - "endIndex": 3 + "endIndex": 10 } }, { "kind": "Function", - "canonicalReference": "@ory/elements-react!OryCardHeader:function(1)", + "canonicalReference": "@ory/elements-react!OryForm:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryCardHeader(): " + "text": "declare function OryForm({ children }: " + }, + { + "kind": "Reference", + "text": "OryFormProps", + "canonicalReference": "@ory/elements-react!OryFormProps:type" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "string | " }, { "kind": "Reference", @@ -2689,31 +1641,40 @@ ], "fileUrlPath": "dist/index.d.ts", "returnTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 + "startIndex": 3, + "endIndex": 5 }, "releaseTag": "Public", "overloadIndex": 1, - "parameters": [], - "name": "OryCardHeader" + "parameters": [ + { + "parameterName": "{ children }", + "parameterTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "isOptional": false + } + ], + "name": "OryForm" }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryCardHeaderProps:type", - "docComment": "", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryFormGroupDivider:function(1)", + "docComment": "/**\n * Renders the\n *\n * @returns \n *\n * @see\n *\n * Card.Divider between the groups of nodes in the Ory Form.\n *\n * You can use this component to build fully custom implementations of the Ory Flows.\n *\n * However, you most likely want to override the individual components instead.\n */\n", "excerptTokens": [ { "kind": "Content", - "text": "type OryCardHeaderProps = " + "text": "declare function OryFormGroupDivider(): " }, { "kind": "Reference", - "text": "Record", - "canonicalReference": "!Record:type" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", - "text": "" + "text": " | null" }, { "kind": "Content", @@ -2721,21 +1682,23 @@ } ], "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "OryCardHeaderProps", - "typeTokenRange": { + "returnTypeTokenRange": { "startIndex": 1, "endIndex": 3 - } + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OryFormGroupDivider" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryCardProps:type", + "canonicalReference": "@ory/elements-react!OryFormGroupProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type OryCardProps = " + "text": "type OryFormGroupProps = " }, { "kind": "Reference", @@ -2749,7 +1712,7 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryCardProps", + "name": "OryFormGroupProps", "typeTokenRange": { "startIndex": 1, "endIndex": 2 @@ -2757,17 +1720,17 @@ }, { "kind": "Function", - "canonicalReference": "@ory/elements-react!OryCardValidationMessages:function(1)", + "canonicalReference": "@ory/elements-react!OryFormGroups:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryCardValidationMessages({ ...props }: " + "text": "declare function OryFormGroups({ children, groups }: " }, { "kind": "Reference", - "text": "HeadlessMessagesProps", - "canonicalReference": "@ory/elements-react!HeadlessMessagesProps:type" + "text": "OryFormGroupsProps", + "canonicalReference": "@ory/elements-react!OryFormGroupsProps:type" }, { "kind": "Content", @@ -2778,10 +1741,6 @@ "text": "react_jsx_runtime.JSX.Element", "canonicalReference": "@types/react!JSX.Element:interface" }, - { - "kind": "Content", - "text": " | null" - }, { "kind": "Content", "text": ";" @@ -2790,13 +1749,13 @@ "fileUrlPath": "dist/index.d.ts", "returnTypeTokenRange": { "startIndex": 3, - "endIndex": 5 + "endIndex": 4 }, "releaseTag": "Public", "overloadIndex": 1, "parameters": [ { - "parameterName": "{ ...props }", + "parameterName": "{ children, groups }", "parameterTypeTokenRange": { "startIndex": 1, "endIndex": 2 @@ -2804,38 +1763,34 @@ "isOptional": false } ], - "name": "OryCardValidationMessages" + "name": "OryFormGroups" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryClientConfiguration:type", + "canonicalReference": "@ory/elements-react!OryFormGroupsProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type OryClientConfiguration = " - }, - { - "kind": "Content", - "text": "{\n name: string;\n logoUrl?: string;\n stylesheet?: string;\n favicon?: string;\n sdk: {\n url: string;\n options?: " + "text": "type OryFormGroupsProps = " }, { "kind": "Reference", - "text": "Partial", - "canonicalReference": "!Partial:type" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", - "text": "<" + "text": "<{\n groups: " }, { "kind": "Reference", - "text": "ConfigurationParameters", - "canonicalReference": "@ory/client-fetch!ConfigurationParameters:interface" + "text": "UiNodeGroupEnum", + "canonicalReference": "@ory/client-fetch!UiNodeGroupEnum:type" }, { "kind": "Content", - "text": ">;\n };\n project: {\n registration_enabled: boolean;\n verification_enabled: boolean;\n recovery_enabled: boolean;\n recovery_ui_url: string;\n registration_ui_url: string;\n verification_ui_url: string;\n login_ui_url: string;\n };\n}" + "text": "[];\n}>" }, { "kind": "Content", @@ -2844,38 +1799,25 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryClientConfiguration", + "name": "OryFormGroupsProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 6 + "endIndex": 5 } }, { "kind": "Function", - "canonicalReference": "@ory/elements-react!OryComponentProvider:function(1)", + "canonicalReference": "@ory/elements-react!OryFormOidcButtons:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryComponentProvider({ children, components, nodeSorter, }: " - }, - { - "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" - }, - { - "kind": "Content", - "text": "<" + "text": "declare function OryFormOidcButtons({ children, hideDivider, }: " }, { "kind": "Reference", - "text": "ComponentProviderProps", - "canonicalReference": "@ory/elements-react!~ComponentProviderProps:type" - }, - { - "kind": "Content", - "text": ">" + "text": "OryFormOidcButtonsProps", + "canonicalReference": "@ory/elements-react!OryFormOidcButtonsProps:type" }, { "kind": "Content", @@ -2886,6 +1828,10 @@ "text": "react_jsx_runtime.JSX.Element", "canonicalReference": "@types/react!JSX.Element:interface" }, + { + "kind": "Content", + "text": " | null" + }, { "kind": "Content", "text": ";" @@ -2893,45 +1839,40 @@ ], "fileUrlPath": "dist/index.d.ts", "returnTypeTokenRange": { - "startIndex": 6, - "endIndex": 7 + "startIndex": 3, + "endIndex": 5 }, "releaseTag": "Public", "overloadIndex": 1, "parameters": [ { - "parameterName": "{ children, components, nodeSorter, }", + "parameterName": "{ children, hideDivider, }", "parameterTypeTokenRange": { "startIndex": 1, - "endIndex": 5 + "endIndex": 2 }, "isOptional": false } ], - "name": "OryComponentProvider" + "name": "OryFormOidcButtons" }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryFlowComponents:type", + "canonicalReference": "@ory/elements-react!OryFormOidcButtonsProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type OryFlowComponents = " + "text": "type OryFormOidcButtonsProps = " }, { "kind": "Reference", - "text": "OryFormComponents", - "canonicalReference": "@ory/elements-react!OryFormComponents:type" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", - "text": " & " - }, - { - "kind": "Reference", - "text": "OryCardComponents", - "canonicalReference": "@ory/elements-react!OryCardComponents:type" + "text": "<{\n hideDivider?: boolean;\n}>" }, { "kind": "Content", @@ -2940,34 +1881,38 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryFlowComponents", + "name": "OryFormOidcButtonsProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 4 + "endIndex": 3 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryFlowProvider:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFormOidcRootProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryFlowProvider({ children, ...container }: " + "text": "type OryFormOidcRootProps = " }, { "kind": "Reference", - "text": "OryFlowProviderProps", - "canonicalReference": "@ory/elements-react!OryFlowProviderProps:type" + "text": "PropsWithChildren", + "canonicalReference": "@types/react!React.PropsWithChildren:type" }, { "kind": "Content", - "text": "): " + "text": "<{\n nodes: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": "[];\n}>" }, { "kind": "Content", @@ -2975,51 +1920,27 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ children, ...container }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryFlowProvider" + "name": "OryFormOidcRootProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 5 + } }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryFlowProviderProps:type", + "canonicalReference": "@ory/elements-react!OryFormProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type OryFlowProviderProps = " + "text": "type OryFormProps = " }, { "kind": "Reference", "text": "PropsWithChildren", "canonicalReference": "@types/react!React.PropsWithChildren:type" }, - { - "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" - }, - { - "kind": "Content", - "text": ">" - }, { "kind": "Content", "text": ";" @@ -3027,38 +1948,47 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryFlowProviderProps", + "name": "OryFormProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 5 + "endIndex": 2 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryForm:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryFormRootProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryForm({ children }: " + "text": "type OryFormRootProps = " }, { "kind": "Reference", - "text": "OryFormProps", - "canonicalReference": "@ory/elements-react!OryFormProps:type" + "text": "ComponentPropsWithoutRef", + "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" }, { "kind": "Content", - "text": "): " + "text": "<\"form\"> & {\n onSubmit: " + }, + { + "kind": "Reference", + "text": "FormEventHandler", + "canonicalReference": "@types/react!React.FormEventHandler:type" }, { "kind": "Content", - "text": "string | " + "text": "<" }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "HTMLFormElement", + "canonicalReference": "!HTMLFormElement:interface" + }, + { + "kind": "Content", + "text": ">;\n}" }, { "kind": "Content", @@ -3066,167 +1996,172 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 5 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ children }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryForm" + "name": "OryFormRootProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 7 + } }, { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryFormComponents:type", + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryFormSocialButtonsForm:function(1)", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type OryFormComponents = " - }, - { - "kind": "Content", - "text": "{\n Button: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" - }, - { - "kind": "Content", - "text": "<" + "text": "declare function OryFormSocialButtonsForm(): " }, { "kind": "Reference", - "text": "HeadlessButtonProps", - "canonicalReference": "@ory/elements-react!HeadlessButtonProps:type" + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" }, { "kind": "Content", - "text": ">;\n LinkButton: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": " | null" }, { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "HeadlessLinkButtonProps", - "canonicalReference": "@ory/elements-react!HeadlessLinkButtonProps:type" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 3 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OryFormSocialButtonsForm" + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryIntlProviderProps:type", + "docComment": "", + "excerptTokens": [ { "kind": "Content", - "text": ">;\n Input: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "type OryIntlProviderProps = " }, { "kind": "Content", - "text": "<" + "text": "Translation extends " }, { "kind": "Reference", - "text": "HeadlessInputProps", - "canonicalReference": "@ory/elements-react!HeadlessInputProps:type" + "text": "CustomTranslations", + "canonicalReference": "@ory/elements-react!~CustomTranslations:type" }, { "kind": "Content", - "text": ">;\n PinCodeInput: " + "text": " ? " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "CustomTranslations", + "canonicalReference": "@ory/elements-react!~CustomTranslations:type" }, { "kind": "Content", - "text": "<" + "text": " : " }, { "kind": "Reference", - "text": "HeadlessInputProps", - "canonicalReference": "@ory/elements-react!HeadlessInputProps:type" + "text": "SupportedTranslations", + "canonicalReference": "@ory/elements-react!SupportedTranslations:type" }, { "kind": "Content", - "text": ">;\n Image: " - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryIntlProviderProps", + "typeParameters": [ { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" - }, + "typeParameterName": "Translation", + "constraintTokenRange": { + "startIndex": 0, + "endIndex": 0 + }, + "defaultTypeTokenRange": { + "startIndex": 0, + "endIndex": 0 + } + } + ], + "typeTokenRange": { + "startIndex": 1, + "endIndex": 7 + } + }, + { + "kind": "Namespace", + "canonicalReference": "@ory/elements-react!OryLocales:namespace", + "docComment": "", + "excerptTokens": [ { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "HeadlessImageProps", - "canonicalReference": "@ory/elements-react!HeadlessImageProps:type" - }, + "text": "declare namespace locales " + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryLocales", + "preserveMemberOrder": false, + "members": [] + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryMessageContentProps:type", + "docComment": "", + "excerptTokens": [ { "kind": "Content", - "text": ">;\n Label: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "type OryMessageContentProps = " }, { "kind": "Content", - "text": "<" + "text": "{\n message: " }, { "kind": "Reference", - "text": "HeadlessLabelProps", - "canonicalReference": "@ory/elements-react!HeadlessLabelProps:type" + "text": "UiText", + "canonicalReference": "@ory/client-fetch!UiText:interface" }, { "kind": "Content", - "text": ">;\n Checkbox: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": ";\n}" }, { "kind": "Content", - "text": "<" - }, - { - "kind": "Reference", - "text": "HeadlessInputProps", - "canonicalReference": "@ory/elements-react!HeadlessInputProps:type" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryMessageContentProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 4 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryMessageRootProps:type", + "docComment": "", + "excerptTokens": [ { "kind": "Content", - "text": ">;\n Text: " + "text": "type OryMessageRootProps = " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "DetailedHTMLProps", + "canonicalReference": "@types/react!React.DetailedHTMLProps:type" }, { "kind": "Content", @@ -3234,71 +2169,79 @@ }, { "kind": "Reference", - "text": "HeadlessTextProps", - "canonicalReference": "@ory/elements-react!HeadlessTextProps:type" + "text": "HTMLAttributes", + "canonicalReference": "@types/react!React.HTMLAttributes:interface" }, { "kind": "Content", - "text": ">;\n FormContainer: " + "text": "<" }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "HTMLDivElement", + "canonicalReference": "!HTMLDivElement:interface" }, { "kind": "Content", - "text": "<" + "text": ">, " }, { "kind": "Reference", - "text": "HeadlessFormProps", - "canonicalReference": "@ory/elements-react!HeadlessFormProps:type" + "text": "HTMLDivElement", + "canonicalReference": "!HTMLDivElement:interface" }, { "kind": "Content", - "text": ">;\n SocialButton: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": ">" }, { "kind": "Content", - "text": "<" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryMessageRootProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 9 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeAnchorProps:type", + "docComment": "", + "excerptTokens": [ { - "kind": "Reference", - "text": "HeadlessSocialButtonProps", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonProps:type" + "kind": "Content", + "text": "type OryNodeAnchorProps = " }, { "kind": "Content", - "text": ">;\n SocialButtonContainer: " + "text": "{\n attributes: " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "UiNodeAnchorAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeAnchorAttributes:interface" }, { "kind": "Content", - "text": "<" + "text": ";\n node: " }, { "kind": "Reference", - "text": "HeadlessSocialButtonContainerProps", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonContainerProps:type" + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" }, { "kind": "Content", - "text": ">;\n AuthMethodListItem: " + "text": ";\n} & " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "Omit", + "canonicalReference": "!Omit:type" }, { "kind": "Content", @@ -3306,53 +2249,61 @@ }, { "kind": "Reference", - "text": "HeadlessAuthMethodListItemProps", - "canonicalReference": "@ory/elements-react!HeadlessAuthMethodListItemProps:type" + "text": "ComponentPropsWithoutRef", + "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" }, { "kind": "Content", - "text": ">;\n HorizontalDivider: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "<\"a\">, \"children\">" }, { "kind": "Content", - "text": "<" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryNodeAnchorProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 10 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeButtonProps:type", + "docComment": "", + "excerptTokens": [ { - "kind": "Reference", - "text": "HorizontalDividerProps", - "canonicalReference": "@ory/elements-react!HorizontalDividerProps:type" + "kind": "Content", + "text": "type OryNodeButtonProps = " }, { "kind": "Content", - "text": ">;\n FormGroup: " + "text": "{\n attributes: " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "UiNodeInputAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" }, { "kind": "Content", - "text": "<" + "text": ";\n node: " }, { "kind": "Reference", - "text": "HeadlessGroupContainerProps", - "canonicalReference": "@ory/elements-react!HeadlessGroupContainerProps:type" + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" }, { "kind": "Content", - "text": ">;\n MessageContainer: " + "text": ";\n} & " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "Omit", + "canonicalReference": "!Omit:type" }, { "kind": "Content", @@ -3360,48 +2311,56 @@ }, { "kind": "Reference", - "text": "HeadlessMessagesProps", - "canonicalReference": "@ory/elements-react!HeadlessMessagesProps:type" + "text": "ComponentPropsWithoutRef", + "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" }, { "kind": "Content", - "text": ">;\n Message: " - }, - { - "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "<\"button\">, \"children\">" }, { "kind": "Content", - "text": "<" - }, + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "releaseTag": "Public", + "name": "OryNodeButtonProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 10 + } + }, + { + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeImageProps:type", + "docComment": "", + "excerptTokens": [ { - "kind": "Reference", - "text": "HeadlessMessageProps", - "canonicalReference": "@ory/elements-react!HeadlessMessageProps:type" + "kind": "Content", + "text": "type OryNodeImageProps = " }, { "kind": "Content", - "text": ">;\n CurrentIdentifierButton: " + "text": "{\n attributes: " }, { "kind": "Reference", - "text": "ComponentType", - "canonicalReference": "@types/react!React.ComponentType:type" + "text": "UiNodeImageAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeImageAttributes:interface" }, { "kind": "Content", - "text": "<" + "text": ";\n node: " }, { "kind": "Reference", - "text": "HeadlessCurrentIdentifierProps", - "canonicalReference": "@ory/elements-react!HeadlessCurrentIdentifierProps:type" + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" }, { "kind": "Content", - "text": ">;\n}" + "text": ";\n}" }, { "kind": "Content", @@ -3410,29 +2369,51 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryFormComponents", + "name": "OryNodeImageProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 70 + "endIndex": 6 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryFormGroupDivider:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeInputProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryFormGroupDivider(): " + "text": "type OryNodeInputProps = " + }, + { + "kind": "Content", + "text": "{\n attributes: " + }, + { + "kind": "Reference", + "text": "UiNodeInputAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" + }, + { + "kind": "Content", + "text": ";\n node: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, + { + "kind": "Content", + "text": ";\n onClick?: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "MouseEventHandler", + "canonicalReference": "@types/react!React.MouseEventHandler:type" }, { "kind": "Content", - "text": " | null" + "text": ";\n}" }, { "kind": "Content", @@ -3440,75 +2421,52 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [], - "name": "OryFormGroupDivider" + "name": "OryNodeInputProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 8 + } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryFormGroups:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeLabelProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryFormGroups({ children, groups }: " - }, - { - "kind": "Reference", - "text": "HeadlessGroupProps", - "canonicalReference": "@ory/elements-react!HeadlessGroupProps:type" + "text": "type OryNodeLabelProps = " }, { "kind": "Content", - "text": "): " + "text": "{\n attributes: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "UiNodeInputAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 4 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ + "text": ";\n node: " + }, { - "parameterName": "{ children, groups }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryFormGroups" - }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!OryFormProps:type", - "docComment": "", - "excerptTokens": [ + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" + }, { "kind": "Content", - "text": "type OryFormProps = " + "text": ";\n} & " }, { "kind": "Reference", - "text": "PropsWithChildren", - "canonicalReference": "@types/react!React.PropsWithChildren:type" + "text": "ComponentPropsWithoutRef", + "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" + }, + { + "kind": "Content", + "text": "<\"label\">" }, { "kind": "Content", @@ -3517,38 +2475,42 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryFormProps", + "name": "OryNodeLabelProps", "typeTokenRange": { "startIndex": 1, - "endIndex": 2 + "endIndex": 8 } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryFormSocialButtons:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeOidcButtonProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryFormSocialButtons({ children, hideDivider, }: " + "text": "type OryNodeOidcButtonProps = " + }, + { + "kind": "Content", + "text": "{\n node: " }, { "kind": "Reference", - "text": "HeadlessSocialButtonsProps", - "canonicalReference": "@ory/elements-react!HeadlessSocialButtonsProps:type" + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" }, { "kind": "Content", - "text": "): " + "text": ";\n attributes: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "UiNodeInputAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeInputAttributes:interface" }, { "kind": "Content", - "text": " | null" + "text": ";\n onClick?: () => void;\n}" }, { "kind": "Content", @@ -3556,72 +2518,56 @@ } ], "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 3, - "endIndex": 5 - }, "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [ - { - "parameterName": "{ children, hideDivider, }", - "parameterTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "isOptional": false - } - ], - "name": "OryFormSocialButtons" + "name": "OryNodeOidcButtonProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 6 + } }, { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryFormSocialButtonsForm:function(1)", + "kind": "TypeAlias", + "canonicalReference": "@ory/elements-react!OryNodeTextProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "declare function OryFormSocialButtonsForm(): " + "text": "type OryNodeTextProps = " + }, + { + "kind": "Content", + "text": "{\n attributes: " }, { "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" + "text": "UiNodeTextAttributes", + "canonicalReference": "@ory/client-fetch!UiNodeTextAttributes:interface" }, { "kind": "Content", - "text": " | null" + "text": ";\n node: " + }, + { + "kind": "Reference", + "text": "UiNode", + "canonicalReference": "@ory/client-fetch!UiNode:interface" }, { "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 1, - "endIndex": 3 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [], - "name": "OryFormSocialButtonsForm" - }, - { - "kind": "Namespace", - "canonicalReference": "@ory/elements-react!OryLocales:namespace", - "docComment": "", - "excerptTokens": [ + "text": ";\n}" + }, { "kind": "Content", - "text": "declare namespace locales " + "text": ";" } ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "OryLocales", - "preserveMemberOrder": false, - "members": [] + "name": "OryNodeTextProps", + "typeTokenRange": { + "startIndex": 1, + "endIndex": 6 + } }, { "kind": "Function", @@ -3630,7 +2576,7 @@ "excerptTokens": [ { "kind": "Content", - "text": "declare function OryProvider" + "text": "" }, { "kind": "Content", @@ -3692,7 +2638,7 @@ ], "typeParameters": [ { - "typeParameterName": "T", + "typeParameterName": "Translation", "constraintTokenRange": { "startIndex": 1, "endIndex": 2 @@ -3705,43 +2651,14 @@ ], "name": "OryProvider" }, - { - "kind": "Function", - "canonicalReference": "@ory/elements-react!OryTwoStepCard:function(1)", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "declare function OryTwoStepCard(): " - }, - { - "kind": "Reference", - "text": "react_jsx_runtime.JSX.Element", - "canonicalReference": "@types/react!JSX.Element:interface" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "returnTypeTokenRange": { - "startIndex": 1, - "endIndex": 2 - }, - "releaseTag": "Public", - "overloadIndex": 1, - "parameters": [], - "name": "OryTwoStepCard" - }, { "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!ProviderProps:type", + "canonicalReference": "@ory/elements-react!OryProviderProps:type", "docComment": "", "excerptTokens": [ { "kind": "Content", - "text": "type ProviderProps = " + "text": "type OryProviderProps = " }, { "kind": "Content", @@ -3758,8 +2675,8 @@ }, { "kind": "Reference", - "text": "IntlProviderProps", - "canonicalReference": "@ory/elements-react!IntlProviderProps:type" + "text": "OryIntlProviderProps", + "canonicalReference": "@ory/elements-react!OryIntlProviderProps:type" }, { "kind": "Content", @@ -3767,22 +2684,13 @@ }, { "kind": "Reference", - "text": "FlowContainer", - "canonicalReference": "@ory/elements-react!FlowContainer:type" + "text": "OryFlowContainer", + "canonicalReference": "@ory/elements-react!OryFlowContainer:type" }, { "kind": "Content", "text": " & " }, - { - "kind": "Reference", - "text": "ComponentPropsWithoutRef", - "canonicalReference": "@types/react!React.ComponentPropsWithoutRef:type" - }, - { - "kind": "Content", - "text": "<\"div\"> & " - }, { "kind": "Reference", "text": "PropsWithChildren", @@ -3795,7 +2703,7 @@ ], "fileUrlPath": "dist/index.d.ts", "releaseTag": "Public", - "name": "ProviderProps", + "name": "OryProviderProps", "typeParameters": [ { "typeParameterName": "T", @@ -3811,13 +2719,42 @@ ], "typeTokenRange": { "startIndex": 1, - "endIndex": 11 + "endIndex": 9 } }, + { + "kind": "Function", + "canonicalReference": "@ory/elements-react!OryTwoStepCard:function(1)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "declare function OryTwoStepCard(): " + }, + { + "kind": "Reference", + "text": "react_jsx_runtime.JSX.Element", + "canonicalReference": "@types/react!JSX.Element:interface" + }, + { + "kind": "Content", + "text": ";" + } + ], + "fileUrlPath": "dist/index.d.ts", + "returnTypeTokenRange": { + "startIndex": 1, + "endIndex": 2 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [], + "name": "OryTwoStepCard" + }, { "kind": "TypeAlias", "canonicalReference": "@ory/elements-react!RecoveryFlowContainer:type", - "docComment": "", + "docComment": "/**\n * A flow container for the recovery flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * RecoveryFlow\n */\n", "excerptTokens": [ { "kind": "Content", @@ -3825,8 +2762,8 @@ }, { "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", @@ -3866,7 +2803,7 @@ { "kind": "TypeAlias", "canonicalReference": "@ory/elements-react!RegistrationFlowContainer:type", - "docComment": "", + "docComment": "/**\n * A flow container for the registration flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * RegistrationFlow\n */\n", "excerptTokens": [ { "kind": "Content", @@ -3874,8 +2811,8 @@ }, { "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", @@ -3915,7 +2852,7 @@ { "kind": "TypeAlias", "canonicalReference": "@ory/elements-react!SettingsFlowContainer:type", - "docComment": "", + "docComment": "/**\n * A flow container for the settings flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * SettingsFlow\n */\n", "excerptTokens": [ { "kind": "Content", @@ -3923,8 +2860,8 @@ }, { "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", @@ -3996,41 +2933,6 @@ "endIndex": 4 } }, - { - "kind": "TypeAlias", - "canonicalReference": "@ory/elements-react!TranslationFile:type", - "docComment": "", - "excerptTokens": [ - { - "kind": "Content", - "text": "type TranslationFile = " - }, - { - "kind": "Content", - "text": "{\n [K in keyof typeof " - }, - { - "kind": "Reference", - "text": "en", - "canonicalReference": "@ory/elements-react!~en:var" - }, - { - "kind": "Content", - "text": "]: string;\n}" - }, - { - "kind": "Content", - "text": ";" - } - ], - "fileUrlPath": "dist/index.d.ts", - "releaseTag": "Public", - "name": "TranslationFile", - "typeTokenRange": { - "startIndex": 1, - "endIndex": 4 - } - }, { "kind": "Function", "canonicalReference": "@ory/elements-react!uiTextToFormattedMessage:function(1)", @@ -4210,7 +3112,7 @@ { "kind": "TypeAlias", "canonicalReference": "@ory/elements-react!VerificationFlowContainer:type", - "docComment": "", + "docComment": "/**\n * A flow container for the verification flow\n *\n * @see\n *\n * OryFlow\n *\n * @see\n *\n * VerificationFlow\n */\n", "excerptTokens": [ { "kind": "Content", @@ -4218,8 +3120,8 @@ }, { "kind": "Reference", - "text": "BaseFlow", - "canonicalReference": "@ory/elements-react!~BaseFlow:type" + "text": "OryFlow", + "canonicalReference": "@ory/elements-react!~OryFlow:type" }, { "kind": "Content", diff --git a/packages/elements-react/api-report/elements-react.api.md b/packages/elements-react/api-report/elements-react.api.md index 8723aa8b0..3ca543877 100644 --- a/packages/elements-react/api-report/elements-react.api.md +++ b/packages/elements-react/api-report/elements-react.api.md @@ -18,7 +18,6 @@ import { LoginFlow } from '@ory/client-fetch'; import { MouseEventHandler } from 'react'; import { OnRedirectHandler } from '@ory/client-fetch'; import { PropsWithChildren } from 'react'; -import * as react from 'react'; import * as react_jsx_runtime from 'react/jsx-runtime'; import { RecoveryFlow } from '@ory/client-fetch'; import { RegistrationFlow } from '@ory/client-fetch'; @@ -37,211 +36,57 @@ import { UpdateSettingsFlowBody } from '@ory/client-fetch'; import { UpdateVerificationFlowBody } from '@ory/client-fetch'; import { VerificationFlow } from '@ory/client-fetch'; -// @public (undocumented) -export type CustomLanguageFormats = { - [k in (typeof LanguageCodes)[number]]?: Partial; -}; - -// @public (undocumented) -export type CustomTranslations = { - customTranslations: Partial; - locale: (typeof LanguageCodes)[number]; - defaultLocale: (typeof LanguageCodes)[number]; -}; - -// Warning: (ae-forgotten-export) The symbol "BaseFlow" needs to be exported by the entry point index.d.ts +// Warning: (ae-forgotten-export) The symbol "OryFlow" needs to be exported by the entry point index.d.ts // -// @public (undocumented) -export type ErrorFlowContainer = BaseFlow; - -// @public (undocumented) -export type FlowContainer = LoginFlowContainer | RegistrationFlowContainer | RecoveryFlowContainer | VerificationFlowContainer | SettingsFlowContainer; +// @public +export type ErrorFlowContainer = OryFlow; -// @public (undocumented) -export type FlowContainerSetter = Dispatch>; +// @public +export type FlowContainerSetter = Dispatch>; -// @public (undocumented) -export type FlowContextValue = FlowContainer & { +// @public +export type FlowContextValue = OryFlowContainer & { setFlowContainer: FlowContainerSetter; }; -// @public (undocumented) -export function formatMessage(uiText: UiText | undefined, intl: IntlShape): string; - -// @public (undocumented) -export function formElementId(attributes: { - name: string; -}): { - id: string; -}; - -// @public (undocumented) -export function formLabelId(attributes: { - name: string; -}): { - htmlFor: string; -}; - -// @public (undocumented) +// @public export type FormValues = Record; -// @public (undocumented) -export type HeadlessAuthMethodListItemProps = { - onClick: () => void; - group: string; -}; - -// @public (undocumented) -export type HeadlessButtonProps = { - attributes: UiNodeInputAttributes; - node: UiNode; -} & Omit, "children">; - -// @public (undocumented) -export type HeadlessCurrentIdentifierProps = { - attributes: UiNodeInputAttributes; - node: UiNode; - onClick?: () => void; - href?: string; -} & Omit, "children" | "onClick">; - -// @public (undocumented) -export type HeadlessFormProps = ComponentPropsWithoutRef<"form"> & { - onSubmit: FormEventHandler; -}; - -// @public (undocumented) -export type HeadlessGroupContainerProps = PropsWithChildren; - -// @public (undocumented) -export type HeadlessGroupProps = PropsWithChildren<{ - groups: UiNodeGroupEnum[]; -}>; - -// @public (undocumented) -export type HeadlessImageProps = { - attributes: UiNodeImageAttributes; - node: UiNode; -}; - -// @public (undocumented) -export type HeadlessInputProps = { - attributes: UiNodeInputAttributes; - node: UiNode; - onClick?: MouseEventHandler; -}; - -// @public (undocumented) -export type HeadlessLabelProps = { - attributes: UiNodeInputAttributes; - node: UiNode; -} & ComponentPropsWithoutRef<"label">; - -// @public (undocumented) -export type HeadlessLinkButtonProps = { - attributes: UiNodeAnchorAttributes; - node: UiNode; -} & Omit, "children">; - -// @public (undocumented) -export function HeadlessMessage({ message }: HeadlessMessageProps): react_jsx_runtime.JSX.Element; - -// @public (undocumented) -export type HeadlessMessageProps = { - message: UiText; -}; - -// @public (undocumented) -export type HeadlessMessagesProps = DetailedHTMLProps, HTMLDivElement>; - -// @public (undocumented) -export type HeadlessSocialButtonContainerProps = PropsWithChildren<{ - nodes: UiNode[]; -}>; - -// @public (undocumented) -export type HeadlessSocialButtonProps = PropsWithChildren<{ - node: UiNode; - attributes: UiNodeInputAttributes; - onClick?: () => void; -}>; - -// @public (undocumented) -export type HeadlessSocialButtonsProps = PropsWithChildren<{ - hideDivider?: boolean; -}>; - -// @public (undocumented) -export type HeadlessTextProps = { - attributes: UiNodeTextAttributes; - node: UiNode; -}; - -// @public (undocumented) -export type HorizontalDividerProps = Record; - -// @public (undocumented) -export const IntlProvider: ({ children, ...props }: PropsWithChildren>) => string | number | boolean | Iterable | react_jsx_runtime.JSX.Element | null | undefined; - -// @public (undocumented) -export type IntlProviderProps = Type extends CustomTranslations ? CustomTranslations : SupportedTranslations; - -// @public (undocumented) -export const isCustomTranslations: (o: unknown) => o is CustomTranslations; - -// @public (undocumented) -export const LanguageCodes: readonly ["ab", "aa", "af", "sq", "am", "ar", "hy", "as", "ay", "az", "ba", "eu", "bn", "dz", "bh", "bi", "br", "bg", "my", "be", "km", "ca", "zh", "co", "hr", "cs", "da", "nl", "en", "eo", "et", "fo", "fj", "fi", "fr", "fy", "gd", "gl", "ka", "de", "el", "kl", "gn", "gu", "ha", "iw", "hi", "hu", "is", "in", "ia", "ie", "ik", "ga", "it", "ja", "jw", "kn", "ks", "kk", "rw", "ky", "rn", "ko", "ku", "lo", "la", "lv", "ln", "lt", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mo", "mn", "na", "ne", "no", "oc", "or", "om", "ps", "fa", "pl", "pt", "pa", "qu", "rm", "ro", "ru", "sm", "sg", "sa", "sr", "sh", "st", "tn", "sn", "sd", "si", "ss", "sk", "sl", "so", "es", "su", "sw", "sv", "tl", "tg", "ta", "tt", "te", "th", "bo", "ti", "to", "ts", "tr", "tk", "tw", "uk", "ur", "uz", "vi", "vo", "cy", "wo", "xh", "ji", "yo", "zu"]; - // @public (undocumented) export type Locale = keyof typeof OryLocales; -// @public (undocumented) -export type LoginFlowContainer = BaseFlow; +// @public +export type LoginFlowContainer = OryFlow; -// @public (undocumented) +// @public export function messageTestId(message: UiText): { "data-testid": string; }; -// @public (undocumented) +// @public export type OnSubmitHandlerProps = { - setFlowContainer: (flowContainer: FlowContainer) => void; + setFlowContainer: (flowContainer: OryFlowContainer) => void; body: T; onRedirect: OnRedirectHandler; }; // @public -export function onSubmitLogin({ config, flow }: FlowContainer, { setFlowContainer, body, onRedirect, }: OnSubmitHandlerProps): Promise; - -// @public -export function onSubmitRecovery({ config, flow }: FlowContainer, { setFlowContainer, body, onRedirect, }: OnSubmitHandlerProps): Promise; +export function OryCard({ children }: PropsWithChildren): react_jsx_runtime.JSX.Element; // @public -export function onSubmitRegistration({ config, flow }: FlowContainer, { setFlowContainer, body, onRedirect, }: OnSubmitHandlerProps): Promise; +export type OryCardAuthMethodListItemProps = { + onClick: () => void; + group: string; +}; // @public -export function onSubmitSettings({ config, flow }: FlowContainer, { setFlowContainer, body, onRedirect, }: OnSubmitHandlerProps): Promise; +export function OryCardContent({ children }: OryCardContentProps): react_jsx_runtime.JSX.Element; // @public -export function onSubmitVerification({ config, flow }: FlowContainer, { setFlowContainer, body, onRedirect, }: OnSubmitHandlerProps): Promise; - -// @public (undocumented) -export function OryCard({ children }: OryCardProps): react_jsx_runtime.JSX.Element; +export type OryCardContentProps = PropsWithChildren; // @public -export type OryCardComponents = { - Card: ComponentType; - CardFooter: ComponentType; - CardHeader: ComponentType; - CardContent: ComponentType; - CardLogo: ComponentType; -}; - -// @public (undocumented) -export function OryCardContent({ children }: OryCardContentProps): react_jsx_runtime.JSX.Element; - -// @public (undocumented) -export type OryCardContentProps = PropsWithChildren; +export type OryCardDividerProps = Record; // @public (undocumented) export function OryCardFooter(): react_jsx_runtime.JSX.Element; @@ -255,11 +100,14 @@ export function OryCardHeader(): react_jsx_runtime.JSX.Element; // @public (undocumented) export type OryCardHeaderProps = Record; +// @public (undocumented) +export type OryCardLogoProps = Record; + // @public (undocumented) export type OryCardProps = PropsWithChildren; // @public (undocumented) -export function OryCardValidationMessages({ ...props }: HeadlessMessagesProps): react_jsx_runtime.JSX.Element | null; +export function OryCardValidationMessages({ ...props }: OryMessageRootProps): react_jsx_runtime.JSX.Element | null; // @public (undocumented) export type OryClientConfiguration = { @@ -282,93 +130,183 @@ export type OryClientConfiguration = { }; }; -// Warning: (ae-forgotten-export) The symbol "ComponentProviderProps" needs to be exported by the entry point index.d.ts +// @public (undocumented) +export type OryCurrentIdentifierProps = { + attributes: UiNodeInputAttributes; + node: UiNode; + onClick?: () => void; + href?: string; +} & Omit, "children" | "onClick">; + +// Warning: (ae-forgotten-export) The symbol "DeepPartialTwoLevels" needs to be exported by the entry point index.d.ts // // @public (undocumented) -export function OryComponentProvider({ children, components, nodeSorter, }: PropsWithChildren): react_jsx_runtime.JSX.Element; +export type OryFlowComponentOverrides = DeepPartialTwoLevels; + +// @public +export type OryFlowComponents = { + Node: { + Button: ComponentType; + OidcButton: ComponentType; + CurrentIdentifierButton: ComponentType; + Anchor: ComponentType; + Input: ComponentType; + CodeInput: ComponentType; + Image: ComponentType; + Label: ComponentType; + Checkbox: ComponentType; + Text: ComponentType; + }; + Card: { + Root: ComponentType; + Footer: ComponentType; + Header: ComponentType; + Content: ComponentType; + Logo: ComponentType; + Divider: ComponentType; + AuthMethodListItem: ComponentType; + }; + Form: { + Root: ComponentType; + OidcRoot: ComponentType; + Group: ComponentType; + }; + Message: { + Root: ComponentType; + Content: ComponentType; + }; +}; + +// @public +export type OryFlowContainer = LoginFlowContainer | RegistrationFlowContainer | RecoveryFlowContainer | VerificationFlowContainer | SettingsFlowContainer; // @public (undocumented) -export type OryFlowComponents = OryFormComponents & OryCardComponents; +export function OryForm({ children }: OryFormProps): string | react_jsx_runtime.JSX.Element; + +// @public +export function OryFormGroupDivider(): react_jsx_runtime.JSX.Element | null; // @public (undocumented) -export function OryFlowProvider({ children, ...container }: OryFlowProviderProps): react_jsx_runtime.JSX.Element; +export type OryFormGroupProps = PropsWithChildren; // @public (undocumented) -export type OryFlowProviderProps = PropsWithChildren; +export function OryFormGroups({ children, groups }: OryFormGroupsProps): react_jsx_runtime.JSX.Element; // @public (undocumented) -export function OryForm({ children }: OryFormProps): string | react_jsx_runtime.JSX.Element; +export type OryFormGroupsProps = PropsWithChildren<{ + groups: UiNodeGroupEnum[]; +}>; // @public (undocumented) -export type OryFormComponents = { - Button: ComponentType; - LinkButton: ComponentType; - Input: ComponentType; - PinCodeInput: ComponentType; - Image: ComponentType; - Label: ComponentType; - Checkbox: ComponentType; - Text: ComponentType; - FormContainer: ComponentType; - SocialButton: ComponentType; - SocialButtonContainer: ComponentType; - AuthMethodListItem: ComponentType; - HorizontalDivider: ComponentType; - FormGroup: ComponentType; - MessageContainer: ComponentType; - Message: ComponentType; - CurrentIdentifierButton: ComponentType; -}; +export function OryFormOidcButtons({ children, hideDivider, }: OryFormOidcButtonsProps): react_jsx_runtime.JSX.Element | null; // @public (undocumented) -export function OryFormGroupDivider(): react_jsx_runtime.JSX.Element | null; +export type OryFormOidcButtonsProps = PropsWithChildren<{ + hideDivider?: boolean; +}>; // @public (undocumented) -export function OryFormGroups({ children, groups }: HeadlessGroupProps): react_jsx_runtime.JSX.Element; +export type OryFormOidcRootProps = PropsWithChildren<{ + nodes: UiNode[]; +}>; // @public (undocumented) export type OryFormProps = PropsWithChildren; // @public (undocumented) -export function OryFormSocialButtons({ children, hideDivider, }: HeadlessSocialButtonsProps): react_jsx_runtime.JSX.Element | null; +export type OryFormRootProps = ComponentPropsWithoutRef<"form"> & { + onSubmit: FormEventHandler; +}; // @public (undocumented) export function OryFormSocialButtonsForm(): react_jsx_runtime.JSX.Element | null; +// Warning: (ae-forgotten-export) The symbol "CustomTranslations" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export type OryIntlProviderProps = Translation extends CustomTranslations ? CustomTranslations : SupportedTranslations; + // @public (undocumented) export namespace OryLocales { { locales_de as de, locales_en as en, locales_es as es, locales_fr as fr, locales_nl as nl, locales_pl as pl, locales_pt as pt, locales_sv as sv }; } // @public (undocumented) -export function OryProvider({ children, components: Components, ...props }: ProviderProps): react_jsx_runtime.JSX.Element; +export type OryMessageContentProps = { + message: UiText; +}; // @public (undocumented) -export function OryTwoStepCard(): react_jsx_runtime.JSX.Element; +export type OryMessageRootProps = DetailedHTMLProps, HTMLDivElement>; // @public (undocumented) -export type ProviderProps = { - components: OryFlowComponents; -} & IntlProviderProps & FlowContainer & ComponentPropsWithoutRef<"div"> & PropsWithChildren; +export type OryNodeAnchorProps = { + attributes: UiNodeAnchorAttributes; + node: UiNode; +} & Omit, "children">; + +// @public (undocumented) +export type OryNodeButtonProps = { + attributes: UiNodeInputAttributes; + node: UiNode; +} & Omit, "children">; // @public (undocumented) -export type RecoveryFlowContainer = BaseFlow; +export type OryNodeImageProps = { + attributes: UiNodeImageAttributes; + node: UiNode; +}; // @public (undocumented) -export type RegistrationFlowContainer = BaseFlow; +export type OryNodeInputProps = { + attributes: UiNodeInputAttributes; + node: UiNode; + onClick?: MouseEventHandler; +}; // @public (undocumented) -export type SettingsFlowContainer = BaseFlow; +export type OryNodeLabelProps = { + attributes: UiNodeInputAttributes; + node: UiNode; +} & ComponentPropsWithoutRef<"label">; // @public (undocumented) -export type SupportedTranslations = { - locale?: Locale; - defaultLocale?: string; +export type OryNodeOidcButtonProps = { + node: UiNode; + attributes: UiNodeInputAttributes; + onClick?: () => void; }; // @public (undocumented) -export type TranslationFile = { - [K in keyof typeof en]: string; +export type OryNodeTextProps = { + attributes: UiNodeTextAttributes; + node: UiNode; +}; + +// @public (undocumented) +export function OryProvider({ children, components: Components, ...props }: OryProviderProps): react_jsx_runtime.JSX.Element; + +// @public (undocumented) +export type OryProviderProps = { + components: OryFlowComponents; +} & OryIntlProviderProps & OryFlowContainer & PropsWithChildren; + +// @public (undocumented) +export function OryTwoStepCard(): react_jsx_runtime.JSX.Element; + +// @public +export type RecoveryFlowContainer = OryFlow; + +// @public +export type RegistrationFlowContainer = OryFlow; + +// @public +export type SettingsFlowContainer = OryFlow; + +// @public (undocumented) +export type SupportedTranslations = { + locale?: Locale; + defaultLocale?: string; }; // @public @@ -385,8 +323,8 @@ export function useNodeSorter(): (a: UiNode, b: UiNode, ctx: { // @public export function useOryFlow(): FlowContextValue; -// @public (undocumented) -export type VerificationFlowContainer = BaseFlow; +// @public +export type VerificationFlowContainer = OryFlow; // (No @packageDocumentation comment for this package) diff --git a/packages/elements-react/package.json b/packages/elements-react/package.json index 96fbd84c0..7dac6e98c 100644 --- a/packages/elements-react/package.json +++ b/packages/elements-react/package.json @@ -31,6 +31,7 @@ "@ory/client-fetch": "^1.15.4", "clsx": "2.1.1", "input-otp": "1.2.4", + "lodash.merge": "4.6.2", "react-hook-form": "7.53.0", "react-intl": "6.7.0", "tailwind-merge": "2.5.2" @@ -42,6 +43,7 @@ "devDependencies": { "@hookform/devtools": "^4.3.1", "@svgr/plugin-svgo": "^8.1.0", + "@types/lodash.merge": "4.6.9", "esbuild-plugin-svgr": "^2.1.0", "eslint-plugin-react": "7.37.0", "postcss": "8.4.47", diff --git a/packages/elements-react/src/components/card/card-two-step.tsx b/packages/elements-react/src/components/card/card-two-step.tsx index 5c0eba8ec..9dba5661f 100644 --- a/packages/elements-react/src/components/card/card-two-step.tsx +++ b/packages/elements-react/src/components/card/card-two-step.tsx @@ -39,8 +39,7 @@ export function OryTwoStepCard() { const [selectedGroup, setSelectedGroup] = useState< UiNodeGroupEnum | undefined >() - const Components = useComponents() - const { FormGroup } = useComponents() + const { Form, Card } = useComponents() const { flowType } = useOryFlow() const nodeSorter = useNodeSorter() @@ -62,7 +61,7 @@ export function OryTwoStepCard() { ).includes(group), ) - const hasOIDC = Boolean(uniqueGroups.oidc?.length) + const hasOidc = Boolean(uniqueGroups.oidc?.length) const zeroStepGroups = filterZeroStepGroups(ui.nodes) const finalNodes = getFinalNodes(uniqueGroups, selectedGroup) @@ -78,11 +77,11 @@ export function OryTwoStepCard() { - {step === ProcessStep.ProvideIdentifier && hasOIDC && ( + {step === ProcessStep.ProvideIdentifier && hasOidc && ( )} - + {step === ProcessStep.ProvideIdentifier && zeroStepGroups .sort(sortNodes) @@ -93,7 +92,7 @@ export function OryTwoStepCard() { )} {options.map((option) => ( - setSelectedGroup(option)} @@ -109,7 +108,7 @@ export function OryTwoStepCard() { ))} )} - + @@ -126,7 +125,7 @@ const BackButton = ({ onClick, href }: BackButtonProps) => { const { flow: { ui }, } = useOryFlow() - const Components = useComponents() + const { Node } = useComponents() const nodeBackButton = ui.nodes.find( (node) => @@ -142,7 +141,7 @@ const BackButton = ({ onClick, href }: BackButtonProps) => { } return ( - {children} + } + + return ( + + + + + + ) +} diff --git a/packages/elements-react/src/components/card/content.tsx b/packages/elements-react/src/components/card/content.tsx new file mode 100644 index 000000000..fbe667eae --- /dev/null +++ b/packages/elements-react/src/components/card/content.tsx @@ -0,0 +1,56 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { PropsWithChildren } from "react" +import { useComponents } from "../../context" +import { + OryCardValidationMessages, + OryForm, + OryFormGroups, + OryFormOidcButtons, +} from "../form" + +/** + * Props for the OryCardContent component. + */ +export type OryCardContentProps = PropsWithChildren + +/** + * A component that renders the content of the Ory Card. + * This is the main content of the card, such as the flow's form, with it's input fields and messages. + * + * You can use this component to build fully custom implementations of the Ory Flows. + * + * However, you most likely want to override the individual components instead. + * + * @param props - pass children to render instead of the default Ory Card components + * @returns + */ +export function OryCardContent({ children }: OryCardContentProps) { + const { Card } = useComponents() + + if (children) { + return {children} + } + + return ( + + + + + + + + ) +} diff --git a/packages/elements-react/src/components/card/footer.tsx b/packages/elements-react/src/components/card/footer.tsx new file mode 100644 index 000000000..606023110 --- /dev/null +++ b/packages/elements-react/src/components/card/footer.tsx @@ -0,0 +1,11 @@ +// Copyright © 2024 Ory Corp +// SPDX-License-Identifier: Apache-2.0 + +import { useComponents } from "../../context" + +export type OryCardFooterProps = Record + +export function OryCardFooter() { + const { Card } = useComponents() + return +} diff --git a/packages/elements-react/src/components/card/header.tsx b/packages/elements-react/src/components/card/header.tsx index 7c7f11470..aca02fa1c 100644 --- a/packages/elements-react/src/components/card/header.tsx +++ b/packages/elements-react/src/components/card/header.tsx @@ -6,6 +6,6 @@ import { useComponents } from "../../context" export type OryCardHeaderProps = Record export function OryCardHeader() { - const { CardHeader } = useComponents() - return + const { Card } = useComponents() + return } diff --git a/packages/elements-react/src/components/card/index.tsx b/packages/elements-react/src/components/card/index.tsx index c02f9dcdc..ead1ae89c 100644 --- a/packages/elements-react/src/components/card/index.tsx +++ b/packages/elements-react/src/components/card/index.tsx @@ -1,99 +1,17 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { ComponentType, PropsWithChildren } from "react" -import { useComponents } from "../../context" -import { OryForm } from "../form/form" -import { OryFormGroups } from "../form/groups" -import { OryCardValidationMessages } from "../form/messages" -import { OryTwoStepCard } from "./card-two-step" import { OryCardHeader, OryCardHeaderProps } from "./header" +import { OryCard, OryCardRootProps } from "./card" +import { OryCardFooter, OryCardFooterProps } from "./footer" +import { OryCardContent, OryCardContentProps } from "./content" +import { OryTwoStepCard } from "./card-two-step" -export type OryCardContentProps = PropsWithChildren - -export function OryCardContent({ children }: OryCardContentProps) { - const { CardContent } = useComponents() - - if (children) { - return {children} - } - - return ( - - - - - - - ) -} - -export type OryCardFooterProps = Record - -export function OryCardFooter() { - const { CardFooter } = useComponents() - return -} - -export type OryCardProps = PropsWithChildren - -export function OryCard({ children }: OryCardProps) { - const { Card } = useComponents() - - if (children) { - return {children} - } - - return ( - - - - - - ) -} - -/** - * Card components are used to show login, registration, recovery, and verification flows. - */ -export type OryCardComponents = { - /** - * The card container is the main container of the card. - */ - Card: ComponentType - - /** - * The card footer is the footer of the card container. - */ - CardFooter: ComponentType - - /** - * The card header is the header of the card container. - */ - CardHeader: ComponentType - - /** - * The card content is the main content of the card container. - */ - CardContent: ComponentType +export { OryCardHeader, OryCard, OryCardFooter, OryCardContent, OryTwoStepCard } - /** - * The card logo is the logo of the card container. - */ - CardLogo: ComponentType +export type { + OryCardHeaderProps, + OryCardRootProps as OryCardProps, + OryCardFooterProps, + OryCardContentProps, } - -export { OryCardHeader, OryTwoStepCard } - -export type { OryCardHeaderProps } diff --git a/packages/elements-react/src/components/form/form-helpers.ts b/packages/elements-react/src/components/form/form-helpers.ts index 4f2ce0b53..388c0e960 100644 --- a/packages/elements-react/src/components/form/form-helpers.ts +++ b/packages/elements-react/src/components/form/form-helpers.ts @@ -3,9 +3,11 @@ import { isUiNodeInputAttributes } from "@ory/client-fetch" import { FormValues } from "../../types" -import { FlowContainer } from "../../util" +import { OryFlowContainer } from "../../util" -export function computeDefaultValues(flowContainer: FlowContainer): FormValues { +export function computeDefaultValues( + flowContainer: OryFlowContainer, +): FormValues { return flowContainer.flow.ui.nodes.reduce((acc, node) => { if (isUiNodeInputAttributes(node.attributes)) { if (node.attributes.name === "method") { diff --git a/packages/elements-react/src/components/form/form.tsx b/packages/elements-react/src/components/form/form.tsx index f770e548f..faba36ca7 100644 --- a/packages/elements-react/src/components/form/form.tsx +++ b/packages/elements-react/src/components/form/form.tsx @@ -14,23 +14,24 @@ import { useIntl } from "react-intl" import { useOryFlow, useComponents } from "../../context" import { FormValues, - HeadlessAuthMethodListItemProps, - HeadlessButtonProps, - HeadlessCurrentIdentifierProps, - HeadlessFormProps, - HeadlessImageProps, - HeadlessInputProps, - HeadlessLabelProps, - HeadlessLinkButtonProps, - HeadlessTextProps, + OryCardAuthMethodListItemProps, + OryNodeButtonProps, + OryFormRootProps, + OryNodeImageProps, + OryNodeInputProps, + OryNodeLabelProps, + OryNodeAnchorProps, + OryNodeTextProps, + OryCurrentIdentifierProps, + OryCardLogoProps, } from "../../types" -import { HorizontalDividerProps } from "../generic/divider" -import { HeadlessGroupContainerProps, OryFormGroups } from "./groups" -import { HeadlessMessageProps, HeadlessMessagesProps } from "./messages" +import { OryCardDividerProps } from "../generic/divider" +import { OryFormGroupProps, OryFormGroups } from "./groups" +import { OryMessageContentProps, OryMessageRootProps } from "./messages" import { - HeadlessSocialButtonContainerProps, - HeadlessSocialButtonProps, - OryFormSocialButtons, + OryFormOidcRootProps, + OryNodeOidcButtonProps, + OryFormOidcButtons, } from "./social" import { FlowType, @@ -40,46 +41,147 @@ import { isUiNodeInputAttributes, isUiNodeScriptAttributes, } from "@ory/client-fetch" -import { - FlowContainer, - onSubmitLogin, - onSubmitRecovery, - onSubmitRegistration, - onSubmitSettings, - onSubmitVerification, -} from "../../util" +import { OryFlowContainer } from "../../util" import { computeDefaultValues } from "./form-helpers" +import { OryCardRootProps } from "../card/card" +import { OryCardFooterProps } from "../card" +import { OryCardContentProps } from "../card/content" +import { onSubmitLogin } from "../../util/onSubmitLogin" +import { onSubmitRegistration } from "../../util/onSubmitRegistration" +import { onSubmitVerification } from "../../util/onSubmitVerification" +import { onSubmitRecovery } from "../../util/onSubmitRecovery" +import { onSubmitSettings } from "../../util/onSubmitSettings" -export type OryFormComponents = { - Button: ComponentType - LinkButton: ComponentType - Input: ComponentType - PinCodeInput: ComponentType - Image: ComponentType - Label: ComponentType - Checkbox: ComponentType - Text: ComponentType - - FormContainer: ComponentType - - SocialButton: ComponentType - SocialButtonContainer: ComponentType - - AuthMethodListItem: ComponentType +/** + * A record of all the components that are used in the OryForm component. + */ +export type OryFlowComponents = { + Node: { + /** + * Button component, rendered whenever a button is encountered in the Ory UI Nodes. + */ + Button: ComponentType + /** + * The SocialButton component is rendered whenever a button of group "oidc" node is encountered. + * + * It renders the "Login with Google", "Login with Facebook" etc. buttons. + */ + OidcButton: ComponentType + /** + * The CurrentIdentifierButton component is rendered whenever a button of group "identifier_first" node is encountered. + * + * It is used to show the current identifier and can allow the user to start a new flow, if they want to. + */ + CurrentIdentifierButton: ComponentType + /** + * Anchor component, rendered whenever an "anchor" node is encountered + */ + Anchor: ComponentType + /** + * The Input component is rendered whenever a "input" node is encountered. + */ + Input: ComponentType + /** + * Special version of the Input component for OTP codes. + */ + CodeInput: ComponentType + /** + * The Image component is rendered whenever an "image" node is encountered. + * + * For example used in the "Logo" node. + */ + Image: ComponentType + /** + * The Label component is rendered around Input components and is used to render form labels. + */ + Label: ComponentType + /** + * The Checkbox component is rendered whenever an input node with of boolean type is encountered. + */ + Checkbox: ComponentType + /** + * The Text component is rendered whenever a "text" node is encountered. + */ + Text: ComponentType + } + Card: { + /** + * The card container is the main container of the card. + */ + Root: ComponentType + /** + * The card footer is the footer of the card container. + */ + Footer: ComponentType + /** + * The card header is the header of the card container. + */ + Header: ComponentType + /** + * The card content is the main content of the card container. + */ + Content: ComponentType + /** + * The card logo is the logo of the card container. + */ + Logo: ComponentType + /** + * The HorizontalDivider component is rendered between groups. + */ + Divider: ComponentType + /** + * The AuthMethodListItem component is rendered on the "method" chooser step in the identifier_first login flow. + * + * This is only used, if login is configured to use identifier_first authentication. + */ + AuthMethodListItem: ComponentType + } + Form: { + /** + * The FormContainer component is the main container of the form. + * + * It should render its children. + * + * You most likely don't want to override this component directly. + */ + Root: ComponentType + /** + * A special form group container for the social buttons. + * + * This is required, because the social buttons need to be in its form, to not influence the other form groups. + * + * You most likely don't want to override this component directly. + */ + OidcRoot: ComponentType - HorizontalDivider: ComponentType + /** + * The FormGroup is rendered around each group of nodes in the UI nodes. + */ + Group: ComponentType + } + Message: { + /** + * The MessageContainer is rendered around the messages. + */ + Root: ComponentType - FormGroup: ComponentType + /** + * The Message component is rendered whenever a message is encountered. + */ + Content: ComponentType + } +} - MessageContainer: ComponentType - Message: ComponentType - CurrentIdentifierButton: ComponentType +type DeepPartialTwoLevels = { + [P in keyof T]?: T[P] extends object ? { [K in keyof T[P]]?: T[P][K] } : T[P] } +export type OryFlowComponentOverrides = DeepPartialTwoLevels + export type OryFormProps = PropsWithChildren export function OryForm({ children }: OryFormProps) { - const { FormContainer } = useComponents() + const { Form } = useComponents() const flowContainer = useOryFlow() const methods = useForm({ // TODO: Generify this, so we have typesafety in the submit handler. @@ -98,7 +200,7 @@ export function OryForm({ children }: OryFormProps) { window.location.href = url } - const handleSuccess = (flow: FlowContainer) => { + const handleSuccess = (flow: OryFlowContainer) => { flowContainer.setFlowContainer(flow) methods.reset(computeDefaultValues(flow)) } @@ -194,14 +296,14 @@ export function OryForm({ children }: OryFormProps) { return ( - void methods.handleSubmit(onSubmit)(e)} > {children ?? ( <> - + )} - + ) } diff --git a/packages/elements-react/src/components/form/groups.tsx b/packages/elements-react/src/components/form/groups.tsx index b4da0be66..af4fe8473 100644 --- a/packages/elements-react/src/components/form/groups.tsx +++ b/packages/elements-react/src/components/form/groups.tsx @@ -7,29 +7,29 @@ import { UiNodeGroupEnum } from "@ory/client-fetch" import { PropsWithChildren } from "react" import { Node } from "./nodes/node" -export type HeadlessGroupProps = PropsWithChildren<{ +export type OryFormGroupsProps = PropsWithChildren<{ groups: UiNodeGroupEnum[] }> -export type HeadlessGroupContainerProps = PropsWithChildren +export type OryFormGroupProps = PropsWithChildren -export function OryFormGroups({ children, groups }: HeadlessGroupProps) { +export function OryFormGroups({ children, groups }: OryFormGroupsProps) { const { flow: { ui }, } = useOryFlow() const nodeSorter = useNodeSorter() const { flowType } = useOryFlow() - const { FormGroup } = useComponents() + const { Form } = useComponents() const nodes = ui.nodes .filter((node) => groups.indexOf(node.group) > -1) .sort((a, b) => nodeSorter(a, b, { flowType })) return ( - + {children ?? nodes.map((node, k) => { return })} - + ) } diff --git a/packages/elements-react/src/components/form/messages.tsx b/packages/elements-react/src/components/form/messages.tsx index 339875829..7d16ce3ee 100644 --- a/packages/elements-react/src/components/form/messages.tsx +++ b/packages/elements-react/src/components/form/messages.tsx @@ -5,34 +5,29 @@ import { useOryFlow, useComponents } from "../../context" import { UiText } from "@ory/client-fetch" import { DetailedHTMLProps, HTMLAttributes } from "react" -export type HeadlessMessagesProps = DetailedHTMLProps< +export type OryMessageContentProps = { + message: UiText +} + +export type OryMessageRootProps = DetailedHTMLProps< HTMLAttributes, HTMLDivElement > -export function OryCardValidationMessages({ ...props }: HeadlessMessagesProps) { +export function OryCardValidationMessages({ ...props }: OryMessageRootProps) { const { flow } = useOryFlow() const messages = flow.ui.messages - const { MessageContainer } = useComponents() + const { Message } = useComponents() if (!messages) { return null } return ( - + {messages?.map((message) => ( - + ))} - + ) } - -export type HeadlessMessageProps = { - message: UiText -} - -export function HeadlessMessage({ message }: HeadlessMessageProps) { - const { Message } = useComponents() - return -} diff --git a/packages/elements-react/src/components/form/nodes/input.tsx b/packages/elements-react/src/components/form/nodes/input.tsx index 06df5ff9d..8c913390c 100644 --- a/packages/elements-react/src/components/form/nodes/input.tsx +++ b/packages/elements-react/src/components/form/nodes/input.tsx @@ -17,7 +17,7 @@ export const NodeInput = ({ attributes: UiNodeInputAttributes onClick?: MouseEventHandler }): ReactNode => { - const Components = useComponents() + const { Node } = useComponents() const nodeType = attributes.type const { onloadTrigger: onloadTrigger, @@ -60,58 +60,40 @@ export const NodeInput = ({ case UiNodeInputAttributesTypeEnum.Submit: case UiNodeInputAttributesTypeEnum.Button: if (isSocial) { - return + return } if (isResend) { return null } return ( - + ) case UiNodeInputAttributesTypeEnum.DatetimeLocal: throw new Error("Not implemented") case UiNodeInputAttributesTypeEnum.Checkbox: return ( - + ) case UiNodeInputAttributesTypeEnum.Hidden: - return ( - - ) + return default: if (isPinCodeInput) { return ( - - + - + ) } return ( - - - + + + ) } } diff --git a/packages/elements-react/src/components/form/nodes/node.tsx b/packages/elements-react/src/components/form/nodes/node.tsx index c8dc17f70..036a33941 100644 --- a/packages/elements-react/src/components/form/nodes/node.tsx +++ b/packages/elements-react/src/components/form/nodes/node.tsx @@ -20,19 +20,19 @@ export type NodeProps = { } export const Node = ({ node, onClick }: NodeProps): ReactNode => { - const Components = useComponents() + const { Node } = useComponents() if (isUiNodeImageAttributes(node.attributes)) { - return + return } else if (isUiNodeTextAttributes(node.attributes)) { const attrs = node.attributes - return + return } else if (isUiNodeInputAttributes(node.attributes)) { return ( ) } else if (isUiNodeAnchorAttributes(node.attributes)) { - return + return } else if (isUiNodeScriptAttributes(node.attributes)) { const { crossorigin, diff --git a/packages/elements-react/src/components/form/social.tsx b/packages/elements-react/src/components/form/social.tsx index 064dde4bb..1313f2fff 100644 --- a/packages/elements-react/src/components/form/social.tsx +++ b/packages/elements-react/src/components/form/social.tsx @@ -8,24 +8,24 @@ import { PropsWithChildren } from "react" import { OryForm } from "./form" import { useFormContext } from "react-hook-form" -export type HeadlessSocialButtonsProps = PropsWithChildren<{ +export type OryFormOidcButtonsProps = PropsWithChildren<{ hideDivider?: boolean }> -export type HeadlessSocialButtonContainerProps = PropsWithChildren<{ +export type OryFormOidcRootProps = PropsWithChildren<{ nodes: UiNode[] }> -export type HeadlessSocialButtonProps = PropsWithChildren<{ +export type OryNodeOidcButtonProps = { node: UiNode attributes: UiNodeInputAttributes onClick?: () => void -}> +} -export function OryFormSocialButtons({ +export function OryFormOidcButtons({ children, hideDivider, -}: HeadlessSocialButtonsProps) { +}: OryFormOidcButtonsProps) { const { flow: { ui }, } = useOryFlow() @@ -34,8 +34,7 @@ export function OryFormSocialButtons({ // Only get the oidc nodes. const filteredNodes = ui.nodes.filter((node) => node.group === "oidc") - const { SocialButtonContainer, HorizontalDivider, SocialButton } = - useComponents() + const { Form, Card, Node } = useComponents() if (filteredNodes.length === 0) { return null @@ -48,11 +47,11 @@ export function OryFormSocialButtons({ return ( <> - + {children ?? filteredNodes.map((node, k) => { return ( - ) })} - + {!hideDivider && filteredNodes.length > 0 && otherNodes.length > 0 && ( - + )} ) @@ -88,7 +87,7 @@ export function OryFormSocialButtonsForm() { return ( - + ) } diff --git a/packages/elements-react/src/components/generic/divider.tsx b/packages/elements-react/src/components/generic/divider.tsx index e2ae72a14..1cfad63ac 100644 --- a/packages/elements-react/src/components/generic/divider.tsx +++ b/packages/elements-react/src/components/generic/divider.tsx @@ -4,10 +4,22 @@ import { useComponents } from "../../context" import { useOryFlow } from "../../context" -export type HorizontalDividerProps = Record +/** + * Props type for the Form Group Divider component. + */ +export type OryCardDividerProps = Record +/** + * Renders the @see Card.Divider between the groups of nodes in the Ory Form. + * + * You can use this component to build fully custom implementations of the Ory Flows. + * + * However, you most likely want to override the individual components instead. + * + * @returns + */ export function OryFormGroupDivider() { - const { HorizontalDivider } = useComponents() + const { Card } = useComponents() const { flow: { ui }, } = useOryFlow() @@ -21,7 +33,7 @@ export function OryFormGroupDivider() { ) if (filteredNodes.length > 0 && otherNodes.length > 0) { - return + return } return null } diff --git a/packages/elements-react/src/context/component.tsx b/packages/elements-react/src/context/component.tsx index 5f2c1322a..0a2a0fd43 100644 --- a/packages/elements-react/src/context/component.tsx +++ b/packages/elements-react/src/context/component.tsx @@ -3,7 +3,7 @@ import { UiNode } from "@ory/client-fetch" import { PropsWithChildren, createContext, useContext } from "react" -import { OryFlowComponents } from "../types" +import { OryFlowComponents } from "../components" type ComponentContextValue = { components: OryFlowComponents diff --git a/packages/elements-react/src/context/flow-context.tsx b/packages/elements-react/src/context/flow-context.tsx index ef424b898..506d5d3a4 100644 --- a/packages/elements-react/src/context/flow-context.tsx +++ b/packages/elements-react/src/context/flow-context.tsx @@ -8,7 +8,7 @@ import { useContext, useState, } from "react" -import { FlowContainer } from "../util/flowContainer" +import { OryFlowContainer } from "../util/flowContainer" /** * Returns an object that contains the current flow and the flow type, as well as the configuration. @@ -24,16 +24,25 @@ export function useOryFlow() { return ctx } -export type FlowContainerSetter = Dispatch> +/** + * Function to set the flow container. + */ +export type FlowContainerSetter = Dispatch> -export type FlowContextValue = FlowContainer & { +/** + * The return value of the OryFlowContext. + */ +export type FlowContextValue = OryFlowContainer & { + /** + * Function to set the flow container. + */ setFlowContainer: FlowContainerSetter } // This is fine, because we don't export the context itself and guard from it being null in useOryFlow const OryFlowContext = createContext(null!) -export type OryFlowProviderProps = PropsWithChildren +export type OryFlowProviderProps = PropsWithChildren export function OryFlowProvider({ children, @@ -52,7 +61,7 @@ export function OryFlowProvider({ ({ ...container, ...updatedContainer, - }) as FlowContainer, + }) as OryFlowContainer, ) }, } as FlowContextValue diff --git a/packages/elements-react/src/context/index.tsx b/packages/elements-react/src/context/index.tsx index 518f133d3..317e1d376 100644 --- a/packages/elements-react/src/context/index.tsx +++ b/packages/elements-react/src/context/index.tsx @@ -1,7 +1,15 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -export * from "./component" -export * from "./flow-context" -export * from "./intl-context" +export { useComponents, useNodeSorter } from "./component" +export { + useOryFlow, + type FlowContextValue, + type FlowContainerSetter, +} from "./flow-context" +export type { + SupportedTranslations, + OryIntlProviderProps, + Locale, +} from "./intl-context" export * from "./provider" diff --git a/packages/elements-react/src/context/intl-context.tsx b/packages/elements-react/src/context/intl-context.tsx index 6384968a0..dd5cc5115 100644 --- a/packages/elements-react/src/context/intl-context.tsx +++ b/packages/elements-react/src/context/intl-context.tsx @@ -150,6 +150,9 @@ export const LanguageCodes = [ "zu", ] as const +/** + * A record of custom translations for a specific locale. + */ export type CustomLanguageFormats = { [k in (typeof LanguageCodes)[number]]?: Partial } @@ -176,16 +179,19 @@ export type SupportedTranslations = { defaultLocale?: string } -export type IntlProviderProps = Type extends CustomTranslations - ? CustomTranslations - : SupportedTranslations +export type OryIntlProviderProps = + Translation extends CustomTranslations + ? CustomTranslations + : SupportedTranslations export const IntlProvider = < - T extends SupportedTranslations | CustomTranslations = SupportedTranslations, + Translation extends + | SupportedTranslations + | CustomTranslations = SupportedTranslations, >({ children, ...props -}: PropsWithChildren>) => { +}: PropsWithChildren>) => { const intlCtx = useContext(IntlContext) if (intlCtx) { diff --git a/packages/elements-react/src/context/provider.tsx b/packages/elements-react/src/context/provider.tsx index 37ae198cf..47eeb7dc3 100644 --- a/packages/elements-react/src/context/provider.tsx +++ b/packages/elements-react/src/context/provider.tsx @@ -2,29 +2,29 @@ // SPDX-License-Identifier: Apache-2.0 "use client" -import { ComponentPropsWithoutRef, PropsWithChildren } from "react" -import { OryFlowComponents } from "../types" +import { PropsWithChildren } from "react" + +import { OryFlowComponents } from "../components" +import { OryFlowContainer } from "../util/flowContainer" import { OryComponentProvider } from "./component" import { OryFlowProvider } from "./flow-context" import { IntlProvider, - IntlProviderProps, + OryIntlProviderProps, SupportedTranslations, } from "./intl-context" -import { FlowContainer } from "../util/flowContainer" -export type ProviderProps = { +export type OryProviderProps = { components: OryFlowComponents -} & IntlProviderProps & - FlowContainer & - ComponentPropsWithoutRef<"div"> & +} & OryIntlProviderProps & + OryFlowContainer & PropsWithChildren -export function OryProvider({ +export function OryProvider({ children, components: Components, ...props -}: ProviderProps) { +}: OryProviderProps) { const { locale, defaultLocale, ...oryFlowProps } = props return ( diff --git a/packages/elements-react/src/tests/jest/test-utils.tsx b/packages/elements-react/src/tests/jest/test-utils.tsx index 52d172473..fd69f3a67 100644 --- a/packages/elements-react/src/tests/jest/test-utils.tsx +++ b/packages/elements-react/src/tests/jest/test-utils.tsx @@ -2,15 +2,15 @@ // SPDX-License-Identifier: Apache-2.0 import { PropsWithChildren, ReactElement, ReactNode } from "react" +import { OryComponentProvider } from "../../context/component" +import { OryDefaultComponents } from "../../theme/default" +import { render, RenderOptions } from "@testing-library/react" +import { OryClientConfiguration } from "../../util" import { - OryComponentProvider, OryProvider, - ProviderProps, + OryProviderProps, SupportedTranslations, } from "../../context" -import { OryDefaultComponents } from "../../theme/default" -import { render, RenderOptions } from "@testing-library/react" -import { OryClientConfiguration } from "../../util" const AllProviders = ({ children }: PropsWithChildren) => ( @@ -44,7 +44,7 @@ export function renderWithOryProvider( { providerProps, ...renderOptions - }: RenderOptions & { providerProps: ProviderProps }, + }: RenderOptions & { providerProps: OryProviderProps }, ) { return render(ui, { wrapper: ({ children }) => ( diff --git a/packages/elements-react/src/theme/default/components/card/auth-methods.tsx b/packages/elements-react/src/theme/default/components/card/auth-methods.tsx index f771fec0b..8fd938262 100644 --- a/packages/elements-react/src/theme/default/components/card/auth-methods.tsx +++ b/packages/elements-react/src/theme/default/components/card/auth-methods.tsx @@ -1,13 +1,13 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { HeadlessAuthMethodListItemProps } from "@ory/elements-react" +import { useIntl } from "react-intl" +import { OryCardAuthMethodListItemProps } from "@ory/elements-react" import code from "../../assets/icons/code.svg" import passkey from "../../assets/icons/passkey.svg" import password from "../../assets/icons/password.svg" import webauthn from "../../assets/icons/webauthn.svg" -import { useIntl } from "react-intl" const iconsMap: Record = { code, @@ -20,7 +20,7 @@ const iconsMap: Record = { export function DefaultAuthMethodListItem({ onClick, group, -}: HeadlessAuthMethodListItemProps) { +}: OryCardAuthMethodListItemProps) { const intl = useIntl() const Icon = iconsMap[group] || null diff --git a/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx b/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx index a6e2fd052..52b62a92e 100644 --- a/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx +++ b/packages/elements-react/src/theme/default/components/card/current-identifier-button.tsx @@ -1,7 +1,7 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { HeadlessCurrentIdentifierProps } from "@ory/elements-react" +import { OryCurrentIdentifierProps } from "@ory/elements-react" import IconArrowLeft from "../../assets/icons/arrow-left.svg" export function DefaultCurrentIdentifierButton({ @@ -9,7 +9,7 @@ export function DefaultCurrentIdentifierButton({ onClick, type, href, -}: HeadlessCurrentIdentifierProps) { +}: OryCurrentIdentifierProps) { const Element = onClick ? "button" : "a" return ( diff --git a/packages/elements-react/src/theme/default/components/card/header.tsx b/packages/elements-react/src/theme/default/components/card/header.tsx index 6315ec4c6..23ba05a4e 100644 --- a/packages/elements-react/src/theme/default/components/card/header.tsx +++ b/packages/elements-react/src/theme/default/components/card/header.tsx @@ -5,10 +5,10 @@ import { useComponents, useOryFlow } from "@ory/elements-react" import { useCardHeaderText } from "../../utils/constructCardHeader" function InnerCardHeader({ title, text }: { title: string; text?: string }) { - const { CardLogo } = useComponents() + const { Card } = useComponents() return (
- +

{title} diff --git a/packages/elements-react/src/theme/default/components/default-components.tsx b/packages/elements-react/src/theme/default/components/default-components.tsx index 9a1039cd3..92230db97 100644 --- a/packages/elements-react/src/theme/default/components/default-components.tsx +++ b/packages/elements-react/src/theme/default/components/default-components.tsx @@ -32,32 +32,34 @@ import { DefaultCurrentIdentifierButton } from "./card/current-identifier-button import { OryFlowComponents } from "@ory/elements-react" export const OryDefaultComponents: OryFlowComponents = { - Card: DefaultCard, - CardHeader: DefaultCardHeader, - CardContent: DefaultCardContent, - CardFooter: DefaultCardFooter, - CardLogo: DefaultCardLogo, - - // Generic - HorizontalDivider: DefaultHorizontalDivider, - - // Form - FormGroup: DefaultGroupContainer, - - SocialButtonContainer: DefaultSocialButtonContainer, - MessageContainer: DefaultMessageContainer, - Message: DefaultMessage, - Input: DefaultInput, - Image: DefaultImage, - Label: DefaultLabel, - Checkbox: DefaultCheckbox, - Text: DefaultText, - PinCodeInput: DefaultPinCodeInput, - Button: DefaultButton, - LinkButton: DefaultLinkButton, - SocialButton: DefaultButtonSocial, - FormContainer: DefaultFormContainer, - - AuthMethodListItem: DefaultAuthMethodListItem, - CurrentIdentifierButton: DefaultCurrentIdentifierButton, + Card: { + Root: DefaultCard, + Footer: DefaultCardFooter, + Header: DefaultCardHeader, + Content: DefaultCardContent, + Logo: DefaultCardLogo, + Divider: DefaultHorizontalDivider, + AuthMethodListItem: DefaultAuthMethodListItem, + }, + Node: { + Button: DefaultButton, + OidcButton: DefaultButtonSocial, + CurrentIdentifierButton: DefaultCurrentIdentifierButton, + Input: DefaultInput, + CodeInput: DefaultPinCodeInput, + Image: DefaultImage, + Label: DefaultLabel, + Checkbox: DefaultCheckbox, + Text: DefaultText, + Anchor: DefaultLinkButton, + }, + Form: { + Root: DefaultFormContainer, + Group: DefaultGroupContainer, + OidcRoot: DefaultSocialButtonContainer, + }, + Message: { + Root: DefaultMessageContainer, + Content: DefaultMessage, + }, } diff --git a/packages/elements-react/src/theme/default/components/form/button.tsx b/packages/elements-react/src/theme/default/components/form/button.tsx index 394b8f857..124f63d3f 100644 --- a/packages/elements-react/src/theme/default/components/form/button.tsx +++ b/packages/elements-react/src/theme/default/components/form/button.tsx @@ -1,18 +1,21 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 +import { getNodeLabel } from "@ory/client-fetch" +import { + OryNodeButtonProps, + uiTextToFormattedMessage, +} from "@ory/elements-react" import { useFormContext } from "react-hook-form" import { useIntl } from "react-intl" -import { Spinner } from "./spinner" import { cn } from "../../utils/cn" -import { formatMessage, HeadlessButtonProps } from "@ory/elements-react" -import { getNodeLabel } from "@ory/client-fetch" +import { Spinner } from "./spinner" export const DefaultButton = ({ attributes, node, onClick, -}: HeadlessButtonProps) => { +}: OryNodeButtonProps) => { const { type, name, @@ -78,7 +81,7 @@ export const DefaultButton = ({ }, )} > - {formatMessage(label, intl)} + {label ? uiTextToFormattedMessage(label, intl) : ""} ) diff --git a/packages/elements-react/src/theme/default/components/form/checkbox.tsx b/packages/elements-react/src/theme/default/components/form/checkbox.tsx index ede84ac3c..2da0c0f5e 100644 --- a/packages/elements-react/src/theme/default/components/form/checkbox.tsx +++ b/packages/elements-react/src/theme/default/components/form/checkbox.tsx @@ -2,13 +2,16 @@ // SPDX-License-Identifier: Apache-2.0 "use client" +import { getNodeLabel } from "@ory/client-fetch" +import { + OryNodeInputProps, + messageTestId, + uiTextToFormattedMessage, +} from "@ory/elements-react" import { useState } from "react" import { useForm } from "react-hook-form" import { useIntl } from "react-intl" import { cn } from "../../utils/cn" -import { HeadlessInputProps } from "@ory/elements-react" -import { formatMessage, messageTestId } from "@ory/elements-react" -import { getNodeLabel } from "@ory/client-fetch" function CheckboxSVG() { return ( @@ -37,7 +40,7 @@ function CheckboxSVG() { export const DefaultCheckbox = ({ attributes: initialAttributes, node, -}: HeadlessInputProps) => { +}: OryNodeInputProps) => { const { value, name, @@ -79,7 +82,7 @@ export const DefaultCheckbox = ({

{node.messages.map((message) => ( - {formatMessage(message, intl)} + {uiTextToFormattedMessage(message, intl)} ))}
diff --git a/packages/elements-react/src/theme/default/components/form/group-container.tsx b/packages/elements-react/src/theme/default/components/form/group-container.tsx index 3db1832e2..7f3deb247 100644 --- a/packages/elements-react/src/theme/default/components/form/group-container.tsx +++ b/packages/elements-react/src/theme/default/components/form/group-container.tsx @@ -1,10 +1,8 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { HeadlessGroupContainerProps } from "@ory/elements-react" +import { OryFormGroupProps } from "@ory/elements-react" -export function DefaultGroupContainer({ - children, -}: HeadlessGroupContainerProps) { +export function DefaultGroupContainer({ children }: OryFormGroupProps) { return
{children}
} diff --git a/packages/elements-react/src/theme/default/components/form/image.tsx b/packages/elements-react/src/theme/default/components/form/image.tsx index 3649d6955..c4f88eeca 100644 --- a/packages/elements-react/src/theme/default/components/form/image.tsx +++ b/packages/elements-react/src/theme/default/components/form/image.tsx @@ -1,10 +1,9 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { HeadlessImageProps } from "@ory/elements-react" +import { OryNodeImageProps } from "@ory/elements-react" -export function DefaultImage({ attributes }: HeadlessImageProps) { - // const intl = useIntl() +export function DefaultImage({ attributes }: OryNodeImageProps) { return (
diff --git a/packages/elements-react/src/theme/default/components/form/index.tsx b/packages/elements-react/src/theme/default/components/form/index.tsx index 7a94010af..7d82f8ad7 100644 --- a/packages/elements-react/src/theme/default/components/form/index.tsx +++ b/packages/elements-react/src/theme/default/components/form/index.tsx @@ -3,16 +3,16 @@ import { PropsWithChildren } from "react" import { cn } from "../../utils/cn" -import { formatMessage, HeadlessFormProps } from "@ory/elements-react" -import { HeadlessMessageProps } from "@ory/elements-react" import { useIntl } from "react-intl" +import { OryFormRootProps, uiTextToFormattedMessage } from "@ory/elements-react" +import { OryMessageContentProps } from "@ory/elements-react" export function DefaultFormContainer({ children, onSubmit, action, method, -}: PropsWithChildren) { +}: PropsWithChildren) { return (
{children} } -export function DefaultMessage({ message }: HeadlessMessageProps) { +export function DefaultMessage({ message }: OryMessageContentProps) { const intl = useIntl() return ( - {formatMessage(message, intl)} + {uiTextToFormattedMessage(message, intl)} ) } diff --git a/packages/elements-react/src/theme/default/components/form/input.tsx b/packages/elements-react/src/theme/default/components/form/input.tsx index 703560323..b80105965 100644 --- a/packages/elements-react/src/theme/default/components/form/input.tsx +++ b/packages/elements-react/src/theme/default/components/form/input.tsx @@ -2,7 +2,10 @@ // SPDX-License-Identifier: Apache-2.0 import { getNodeLabel } from "@ory/client-fetch" -import { formatMessage, HeadlessInputProps } from "@ory/elements-react" +import { + OryNodeInputProps, + uiTextToFormattedMessage, +} from "@ory/elements-react" import { useFormContext } from "react-hook-form" import { useIntl } from "react-intl" @@ -10,7 +13,7 @@ export const DefaultInput = ({ node, attributes, onClick, -}: HeadlessInputProps) => { +}: OryNodeInputProps) => { const label = getNodeLabel(node) const { register } = useFormContext() const { value, autocomplete, name, maxlength, ...rest } = attributes @@ -23,7 +26,7 @@ export const DefaultInput = ({ defaultMessage: "Enter your {placeholder}", }, { - placeholder: formatMessage(label, intl), + placeholder: uiTextToFormattedMessage(label, intl), }, ) : "" diff --git a/packages/elements-react/src/theme/default/components/form/label.tsx b/packages/elements-react/src/theme/default/components/form/label.tsx index e73a40f05..7a0761982 100644 --- a/packages/elements-react/src/theme/default/components/form/label.tsx +++ b/packages/elements-react/src/theme/default/components/form/label.tsx @@ -2,10 +2,13 @@ // SPDX-License-Identifier: Apache-2.0 import { FlowType, getNodeLabel } from "@ory/client-fetch" +import { + OryNodeLabelProps, + messageTestId, + uiTextToFormattedMessage, + useOryFlow, +} from "@ory/elements-react" import { useIntl } from "react-intl" -import { useOryFlow } from "@ory/elements-react" -import { HeadlessLabelProps } from "@ory/elements-react" -import { formatMessage, messageTestId } from "@ory/elements-react" import { cn } from "../../utils/cn" export function DefaultLabel({ @@ -13,7 +16,7 @@ export function DefaultLabel({ children, attributes, ...rest -}: HeadlessLabelProps) { +}: OryNodeLabelProps) { const intl = useIntl() const label = getNodeLabel(node) const { config, flowType } = useOryFlow() @@ -32,7 +35,7 @@ export function DefaultLabel({ htmlFor={attributes.name} {...rest} > - {formatMessage(label, intl)} + {uiTextToFormattedMessage(label, intl)} {isPassword && config.project.recovery_enabled && @@ -68,7 +71,7 @@ export function DefaultLabel({ })} {...messageTestId(message)} > - {formatMessage(message, intl)} + {uiTextToFormattedMessage(message, intl)} ))} diff --git a/packages/elements-react/src/theme/default/components/form/link-button.tsx b/packages/elements-react/src/theme/default/components/form/link-button.tsx index 4ba6c5c9f..a68624d32 100644 --- a/packages/elements-react/src/theme/default/components/form/link-button.tsx +++ b/packages/elements-react/src/theme/default/components/form/link-button.tsx @@ -1,16 +1,18 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 +import { getNodeLabel } from "@ory/client-fetch" +import { + OryNodeAnchorProps, + uiTextToFormattedMessage, +} from "@ory/elements-react" import { forwardRef } from "react" import { useIntl } from "react-intl" import { cn } from "../../utils/cn" -import { HeadlessLinkButtonProps } from "@ory/elements-react" -import { formatMessage } from "@ory/elements-react" -import { getNodeLabel } from "@ory/client-fetch" export const DefaultLinkButton = forwardRef< HTMLAnchorElement, - HeadlessLinkButtonProps + OryNodeAnchorProps >(({ attributes, node }, ref) => { const intl = useIntl() const label = getNodeLabel(node) @@ -18,12 +20,12 @@ export const DefaultLinkButton = forwardRef< - {formatMessage(label, intl)} + {label ? uiTextToFormattedMessage(label, intl) : ""} ) }) diff --git a/packages/elements-react/src/theme/default/components/form/pin-code-input.tsx b/packages/elements-react/src/theme/default/components/form/pin-code-input.tsx index 9900e55e1..45b5b417b 100644 --- a/packages/elements-react/src/theme/default/components/form/pin-code-input.tsx +++ b/packages/elements-react/src/theme/default/components/form/pin-code-input.tsx @@ -4,9 +4,9 @@ "use client" import { useFormContext } from "react-hook-form" import { InputOTP, InputOTPGroup, InputOTPSlot } from "./shadcn/otp-input" -import { HeadlessInputProps } from "@ory/elements-react" +import { OryNodeInputProps } from "@ory/elements-react" -export const DefaultPinCodeInput = ({ attributes }: HeadlessInputProps) => { +export const DefaultPinCodeInput = ({ attributes }: OryNodeInputProps) => { const { setValue, watch } = useFormContext() const { maxlength, name } = attributes const elements = maxlength ?? 6 diff --git a/packages/elements-react/src/theme/default/components/form/social.tsx b/packages/elements-react/src/theme/default/components/form/social.tsx index 80200be0e..00729205b 100644 --- a/packages/elements-react/src/theme/default/components/form/social.tsx +++ b/packages/elements-react/src/theme/default/components/form/social.tsx @@ -2,9 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 import { - formatMessage, - HeadlessSocialButtonContainerProps, - HeadlessSocialButtonProps, + OryFormOidcRootProps, + OryNodeOidcButtonProps, + uiTextToFormattedMessage, useOryFlow, } from "@ory/elements-react" import logos from "../../provider-logos" @@ -27,7 +27,7 @@ export function DefaultButtonSocial({ attributes, node, onClick, -}: HeadlessSocialButtonProps) { +}: OryNodeOidcButtonProps) { const { node_type: _ignoredNodeType, type: _ignoredType, @@ -73,9 +73,9 @@ export function DefaultButtonSocial({ )} - {showLabel ? ( + {showLabel && node.meta.label ? ( - {formatMessage(node.meta.label, intl)} + {uiTextToFormattedMessage(node.meta.label, intl)} ) : null} @@ -85,7 +85,7 @@ export function DefaultButtonSocial({ export function DefaultSocialButtonContainer({ children, nodes, -}: HeadlessSocialButtonContainerProps) { +}: OryFormOidcRootProps) { return (

- {formatMessage(node.meta.label, intl)} + {node.meta.label ? uiTextToFormattedMessage(node.meta.label, intl) : ""}

{( attributes.text.context as { @@ -19,7 +18,7 @@ export function DefaultText({ node, attributes }: HeadlessTextProps) { } ).secrets?.map((text: UiText, index) => (
-          {formatMessage(text, intl)}
+          {text ? uiTextToFormattedMessage(text, intl) : ""}
         
))} diff --git a/packages/elements-react/src/theme/default/flows/error.tsx b/packages/elements-react/src/theme/default/flows/error.tsx index 256614b85..d450bd245 100644 --- a/packages/elements-react/src/theme/default/flows/error.tsx +++ b/packages/elements-react/src/theme/default/flows/error.tsx @@ -3,12 +3,15 @@ "use client" import { FlowError } from "@ory/client-fetch" +import { + OryClientConfiguration, + OryFlowComponentOverrides, +} from "@ory/elements-react" import { PropsWithChildren } from "react" -import { OryClientConfiguration, OryFlowComponents } from "@ory/elements-react" export type ErrorFlowContextProps = { error: FlowError - components?: Partial + components?: OryFlowComponentOverrides config: OryClientConfiguration } diff --git a/packages/elements-react/src/theme/default/flows/login.tsx b/packages/elements-react/src/theme/default/flows/login.tsx index 499bfe110..9142d606f 100644 --- a/packages/elements-react/src/theme/default/flows/login.tsx +++ b/packages/elements-react/src/theme/default/flows/login.tsx @@ -5,16 +5,17 @@ import { FlowType, LoginFlow } from "@ory/client-fetch" import { OryClientConfiguration, - OryFlowComponents, + OryFlowComponentOverrides, OryProvider, OryTwoStepCard, } from "@ory/elements-react" +import merge from "lodash.merge" import { PropsWithChildren } from "react" import { OryDefaultComponents } from "../components" export type LoginFlowContextProps = { flow: LoginFlow - components?: Partial + components?: OryFlowComponentOverrides config: OryClientConfiguration } @@ -24,10 +25,9 @@ export function Login({ children, components: flowOverrideComponents, }: PropsWithChildren) { - const components = { - ...OryDefaultComponents, - ...flowOverrideComponents, - } + const components = flowOverrideComponents + ? merge({}, OryDefaultComponents, flowOverrideComponents) + : OryDefaultComponents return ( + components?: OryFlowComponentOverrides config: OryClientConfiguration } @@ -24,10 +25,9 @@ export function Recovery({ children, components: flowOverrideComponents, }: PropsWithChildren) { - const components = { - ...OryDefaultComponents, - ...flowOverrideComponents, - } + const components = flowOverrideComponents + ? merge({}, OryDefaultComponents, flowOverrideComponents) + : OryDefaultComponents return ( + components?: OryFlowComponentOverrides config: OryClientConfiguration } @@ -24,10 +25,9 @@ export function Registration({ components: flowOverrideComponents, config, }: PropsWithChildren) { - const components = { - ...OryDefaultComponents, - ...flowOverrideComponents, - } + const components = flowOverrideComponents + ? merge({}, OryDefaultComponents, flowOverrideComponents) + : OryDefaultComponents return ( + components?: OryFlowComponentOverrides config: OryClientConfiguration } @@ -24,10 +25,9 @@ export function Settings({ children, components: flowOverrideComponents, }: PropsWithChildren) { - const components = { - ...OryDefaultComponents, - ...flowOverrideComponents, - } + const components = flowOverrideComponents + ? merge({}, OryDefaultComponents, flowOverrideComponents) + : OryDefaultComponents return ( + components?: OryFlowComponentOverrides config: OryClientConfiguration } @@ -24,10 +25,9 @@ export function Verification({ children, components: flowOverrideComponents, }: PropsWithChildren) { - const components = { - ...OryDefaultComponents, - ...flowOverrideComponents, - } + const components = flowOverrideComponents + ? merge({}, OryDefaultComponents, flowOverrideComponents) + : OryDefaultComponents return ( , "children"> -export type HeadlessCurrentIdentifierProps = { +export type OryCurrentIdentifierProps = { attributes: UiNodeInputAttributes node: UiNode onClick?: () => void href?: string } & Omit, "children" | "onClick"> -export type HeadlessLinkButtonProps = { +export type OryNodeAnchorProps = { attributes: UiNodeAnchorAttributes node: UiNode } & Omit, "children"> -export type HeadlessLabelProps = { +export type OryNodeLabelProps = { attributes: UiNodeInputAttributes node: UiNode } & ComponentPropsWithoutRef<"label"> -export type HeadlessTextProps = { +export type OryNodeTextProps = { attributes: UiNodeTextAttributes node: UiNode } -export type HeadlessAuthMethodListItemProps = { +export type OryCardLogoProps = Record + +/** + * Props for the AuthMethodListItem component. This component is used + * to render a single auth method in the AuthMethodList component. + */ +export type OryCardAuthMethodListItemProps = { onClick: () => void group: string } -export type HeadlessImageProps = { +export type OryNodeImageProps = { attributes: UiNodeImageAttributes node: UiNode } +/** + * A generic type for the form values. + */ export type FormValues = Record -export type HeadlessFormProps = ComponentPropsWithoutRef<"form"> & { +export type OryFormRootProps = ComponentPropsWithoutRef<"form"> & { onSubmit: FormEventHandler } -export type HeadlessInputProps = { +export type OryNodeInputProps = { attributes: UiNodeInputAttributes node: UiNode onClick?: MouseEventHandler } - -export type OryFlowComponents = OryFormComponents & OryCardComponents diff --git a/packages/elements-react/src/util/flowContainer.ts b/packages/elements-react/src/util/flowContainer.ts index 228107a23..72a64de52 100644 --- a/packages/elements-react/src/util/flowContainer.ts +++ b/packages/elements-react/src/util/flowContainer.ts @@ -12,26 +12,76 @@ import { } from "@ory/client-fetch" import { OryClientConfiguration } from "./clientConfiguration" -type BaseFlow = { +/** + * A generic flow container, containing a flowType, the flow itself and the config object + * + * @see OryClientConfiguration + */ +type OryFlow = { flowType: TFlowType flow: TFlow config: OryClientConfiguration } -export type LoginFlowContainer = BaseFlow -export type RegistrationFlowContainer = BaseFlow< +/** + * A flow container for the login flow + * + * @see OryFlow + * @see LoginFlow + */ +export type LoginFlowContainer = OryFlow + +/** + * A flow container for the registration flow + * + * @see OryFlow + * @see RegistrationFlow + */ +export type RegistrationFlowContainer = OryFlow< FlowType.Registration, RegistrationFlow > -export type RecoveryFlowContainer = BaseFlow -export type VerificationFlowContainer = BaseFlow< + +/** + * A flow container for the recovery flow + * + * @see OryFlow + * @see RecoveryFlow + */ +export type RecoveryFlowContainer = OryFlow + +/** + * A flow container for the verification flow + * + * @see OryFlow + * @see VerificationFlow + * + */ +export type VerificationFlowContainer = OryFlow< FlowType.Verification, VerificationFlow > -export type SettingsFlowContainer = BaseFlow -export type ErrorFlowContainer = BaseFlow +/** + * A flow container for the settings flow + * + * @see OryFlow + * @see SettingsFlow + */ +export type SettingsFlowContainer = OryFlow + +/** + * A flow container for the error flow + * + * @see OryFlow + * @see FlowError (Error flow) + * + */ +export type ErrorFlowContainer = OryFlow -export type FlowContainer = +/** + * A union type of all flow containers + */ +export type OryFlowContainer = | LoginFlowContainer | RegistrationFlowContainer | RecoveryFlowContainer diff --git a/packages/elements-react/src/util/i18n/__tests__/test-components.tsx b/packages/elements-react/src/util/i18n/__tests__/test-components.tsx index 010ca1e21..980bcd209 100644 --- a/packages/elements-react/src/util/i18n/__tests__/test-components.tsx +++ b/packages/elements-react/src/util/i18n/__tests__/test-components.tsx @@ -1,12 +1,12 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -import { formatMessage } from "../index" import { UiText } from "@ory/client-fetch" import { useIntl } from "react-intl" +import { uiTextToFormattedMessage } from "../index" export const Inner = ({ uiText }: { uiText: UiText }) => { const intl = useIntl() - return
{formatMessage(uiText, intl)}
+ return
{uiTextToFormattedMessage(uiText, intl)}
} diff --git a/packages/elements-react/src/util/i18n/index.ts b/packages/elements-react/src/util/i18n/index.ts index 094697897..fa0da8877 100644 --- a/packages/elements-react/src/util/i18n/index.ts +++ b/packages/elements-react/src/util/i18n/index.ts @@ -4,13 +4,6 @@ import { UiText } from "@ory/client-fetch" import { IntlShape } from "react-intl" -export function formatMessage(uiText: UiText | undefined, intl: IntlShape) { - if (!uiText) { - return "" - } - return uiTextToFormattedMessage(uiText, intl) -} - /** * Converts a UiText to a FormattedMessage. * The UiText contains the id of the message and the context. diff --git a/packages/elements-react/src/util/index.ts b/packages/elements-react/src/util/index.ts index b9cb65cc8..d73561cb7 100644 --- a/packages/elements-react/src/util/index.ts +++ b/packages/elements-react/src/util/index.ts @@ -1,13 +1,8 @@ // Copyright © 2024 Ory Corp // SPDX-License-Identifier: Apache-2.0 -export * from "./test-id" -export * from "./i18n" -export * from "./onSubmitLogin" -export * from "./onSubmitSettings" -export * from "./onSubmitRecovery" -export * from "./onSubmitVerification" -export * from "./onSubmitRegistration" export * from "./clientConfiguration" export * from "./flowContainer" +export * from "./i18n" export * from "./submitHandler" +export * from "./test-id" diff --git a/packages/elements-react/src/util/onSubmitLogin.ts b/packages/elements-react/src/util/onSubmitLogin.ts index 46df83502..b1677ce78 100644 --- a/packages/elements-react/src/util/onSubmitLogin.ts +++ b/packages/elements-react/src/util/onSubmitLogin.ts @@ -9,7 +9,7 @@ import { UpdateLoginFlowBody, } from "@ory/client-fetch" import { OnSubmitHandlerProps } from "./submitHandler" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" import { frontendClient } from "./client" /** @@ -22,7 +22,7 @@ import { frontendClient } from "./client" * @param onRedirect - This method is used to redirect the user to a different page. */ export async function onSubmitLogin( - { config, flow }: FlowContainer, + { config, flow }: OryFlowContainer, { setFlowContainer, body, diff --git a/packages/elements-react/src/util/onSubmitRecovery.ts b/packages/elements-react/src/util/onSubmitRecovery.ts index 02a91dfa6..abbba7596 100644 --- a/packages/elements-react/src/util/onSubmitRecovery.ts +++ b/packages/elements-react/src/util/onSubmitRecovery.ts @@ -9,7 +9,7 @@ import { recoveryUrl, UpdateRecoveryFlowBody, } from "@ory/client-fetch" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" import { OnSubmitHandlerProps } from "./submitHandler" import { frontendClient } from "./client" @@ -23,7 +23,7 @@ import { frontendClient } from "./client" * @param onRedirect - This method is used to redirect the user to a different page. */ export async function onSubmitRecovery( - { config, flow }: FlowContainer, + { config, flow }: OryFlowContainer, { setFlowContainer, body, diff --git a/packages/elements-react/src/util/onSubmitRegistration.ts b/packages/elements-react/src/util/onSubmitRegistration.ts index 5788c9b88..dc858b0dd 100644 --- a/packages/elements-react/src/util/onSubmitRegistration.ts +++ b/packages/elements-react/src/util/onSubmitRegistration.ts @@ -9,7 +9,7 @@ import { registrationUrl, UpdateRegistrationFlowBody, } from "@ory/client-fetch" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" import { OnSubmitHandlerProps } from "./submitHandler" import { frontendClient } from "./client" @@ -23,7 +23,7 @@ import { frontendClient } from "./client" * @param onRedirect - This method is used to redirect the user to a different page. */ export async function onSubmitRegistration( - { config, flow }: FlowContainer, + { config, flow }: OryFlowContainer, { setFlowContainer, body, diff --git a/packages/elements-react/src/util/onSubmitSettings.ts b/packages/elements-react/src/util/onSubmitSettings.ts index 7ce49d1e7..36e4f8c7d 100644 --- a/packages/elements-react/src/util/onSubmitSettings.ts +++ b/packages/elements-react/src/util/onSubmitSettings.ts @@ -9,7 +9,7 @@ import { settingsUrl, UpdateSettingsFlowBody, } from "@ory/client-fetch" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" import { OnSubmitHandlerProps } from "./submitHandler" import { frontendClient } from "./client" @@ -23,7 +23,7 @@ import { frontendClient } from "./client" * @param onRedirect - This method is used to redirect the user to a different page. */ export async function onSubmitSettings( - { config, flow }: FlowContainer, + { config, flow }: OryFlowContainer, { setFlowContainer, body, diff --git a/packages/elements-react/src/util/onSubmitVerification.ts b/packages/elements-react/src/util/onSubmitVerification.ts index d05ece4a6..5ebee3013 100644 --- a/packages/elements-react/src/util/onSubmitVerification.ts +++ b/packages/elements-react/src/util/onSubmitVerification.ts @@ -8,7 +8,7 @@ import { VerificationFlow, verificationUrl, } from "@ory/client-fetch" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" import { OnSubmitHandlerProps } from "./submitHandler" import { frontendClient } from "./client" @@ -22,7 +22,7 @@ import { frontendClient } from "./client" * @param onRedirect - This method is used to redirect the user to a different page. */ export async function onSubmitVerification( - { config, flow }: FlowContainer, + { config, flow }: OryFlowContainer, { setFlowContainer, body, diff --git a/packages/elements-react/src/util/submitHandler.ts b/packages/elements-react/src/util/submitHandler.ts index d555f34ad..88f31bc5a 100644 --- a/packages/elements-react/src/util/submitHandler.ts +++ b/packages/elements-react/src/util/submitHandler.ts @@ -9,8 +9,11 @@ import { UpdateSettingsFlowBody, UpdateVerificationFlowBody, } from "@ory/client-fetch" -import { FlowContainer } from "./flowContainer" +import { OryFlowContainer } from "./flowContainer" +/** + * Props for the submit handler + */ export type OnSubmitHandlerProps< T extends | UpdateLoginFlowBody @@ -22,7 +25,7 @@ export type OnSubmitHandlerProps< /** * This method is used to update the flow container when a validation error occurs, for example. */ - setFlowContainer: (flowContainer: FlowContainer) => void + setFlowContainer: (flowContainer: OryFlowContainer) => void /** * The form values to submit. diff --git a/packages/elements-react/src/util/test-id.ts b/packages/elements-react/src/util/test-id.ts index 7ce554f4a..40c8c70bc 100644 --- a/packages/elements-react/src/util/test-id.ts +++ b/packages/elements-react/src/util/test-id.ts @@ -3,20 +3,14 @@ import { UiText } from "@ory/client-fetch" +/** + * Helper function to generate a test id for a UiText message. + * + * @param message - the UiText message to generate a test id for + * @returns a unique, stable test id for the message + */ export function messageTestId(message: UiText) { return { "data-testid": `ory-message-${message.id}`, } } - -export function formElementId(attributes: { name: string }) { - return { - id: `ory-elements-form-${attributes.name}`, - } -} - -export function formLabelId(attributes: { name: string }) { - return { - htmlFor: `ory-elements-form-${attributes.name}`, - } -} From a87f98eb20f6fea7bad561cdd11c1939a740de06 Mon Sep 17 00:00:00 2001 From: aeneasr <3372410+aeneasr@users.noreply.github.com> Date: Tue, 15 Oct 2024 09:46:03 +0200 Subject: [PATCH 100/100] feat: add nextjs package --- package-lock.json | 21 +++++++ packages/elements-nextjs/package.json | 54 ++++++++++++++++ .../elements-nextjs/src/router/app/error.ts | 55 ++++++++++++++++ .../elements-nextjs/src/router/app/index.ts | 15 +++++ .../elements-nextjs/src/router/app/login.ts | 62 +++++++++++++++++++ .../src/router/app/recovery.ts | 61 ++++++++++++++++++ .../src/router/app/registration.ts | 61 ++++++++++++++++++ .../src/router/app/settings.ts | 61 ++++++++++++++++++ .../elements-nextjs/src/router/app/utils.ts | 58 +++++++++++++++++ .../src/router/app/verification.ts | 59 ++++++++++++++++++ packages/elements-nextjs/tsconfig.json | 35 +++++++++++ 11 files changed, 542 insertions(+) create mode 100644 packages/elements-nextjs/package.json create mode 100644 packages/elements-nextjs/src/router/app/error.ts create mode 100644 packages/elements-nextjs/src/router/app/index.ts create mode 100644 packages/elements-nextjs/src/router/app/login.ts create mode 100644 packages/elements-nextjs/src/router/app/recovery.ts create mode 100644 packages/elements-nextjs/src/router/app/registration.ts create mode 100644 packages/elements-nextjs/src/router/app/settings.ts create mode 100644 packages/elements-nextjs/src/router/app/utils.ts create mode 100644 packages/elements-nextjs/src/router/app/verification.ts create mode 100644 packages/elements-nextjs/tsconfig.json diff --git a/package-lock.json b/package-lock.json index b473555d6..aa46e9e0e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7361,6 +7361,10 @@ "resolved": "packages/markup", "link": true }, + "node_modules/@ory/elements-nextjs": { + "resolved": "packages/elements-nextjs", + "link": true + }, "node_modules/@ory/elements-preact": { "resolved": "packages/preact", "link": true @@ -34194,6 +34198,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "packages/elements-nextjs": { + "version": "1.0.0-next.10", + "license": "Apache License 2.0", + "dependencies": { + "@ory/client-fetch": "^1.15.4" + }, + "devDependencies": {}, + "peerDependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + } + }, + "packages/elements-nextjs/node_modules/@ory/client-fetch": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/@ory/client-fetch/-/client-fetch-1.15.6.tgz", + "integrity": "sha512-etWhiJC5kF/qbXugAtUHGi+8Z8L/v+dKXzkRA7jy90tlfSTVem+rmwCPtaH3KaLaYWQ4ltAjOh0LEOCetrE2sQ==" + }, "packages/elements-react": { "name": "@ory/elements-react", "version": "1.0.0-next.10", diff --git a/packages/elements-nextjs/package.json b/packages/elements-nextjs/package.json new file mode 100644 index 000000000..516bdb8dc --- /dev/null +++ b/packages/elements-nextjs/package.json @@ -0,0 +1,54 @@ +{ + "name": "@ory/elements-nextjs", + "version": "1.0.0-next.10", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + } + }, + "typesVersions": { + "*": { + "index": [ + "./dist/index.d.ts" + ] + } + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "dependencies": { + "@ory/client-fetch": "^1.15.4" + }, + "peerDependencies": { + "react": "18.3.1", + "react-dom": "18.3.1" + }, + "devDependencies": { + }, + "keywords": [ + "ory", + "auth", + "nextjs", + "react", + "passwordless", + "authentication", + "passkeys" + ], + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/ory/elements.git", + "directory": "packages/elements-nextjs" + }, + "bugs": { + "url": "https://github.com/ory/elements/issues" + }, + "homepage": "https://github.com/ory/elements#readme", + "author": "Ory Corp", + "license": "Apache License 2.0", + "description": "Ory Elements React - a collection of React components for authentication UIs.", + "publishConfig": { + "access": "public" + } +} diff --git a/packages/elements-nextjs/src/router/app/error.ts b/packages/elements-nextjs/src/router/app/error.ts new file mode 100644 index 000000000..c79ddacac --- /dev/null +++ b/packages/elements-nextjs/src/router/app/error.ts @@ -0,0 +1,55 @@ +import { init, initOverrides, onRedirect, QueryParams, toValue } from "./utils" +import { FlowType, FlowError, handleFlowError ,FrontendApi} from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing flow error. This method works with server-side rendering. + * + * ``` + * import { getOrCreateErrorFlow } from "$/elements/frameworks/nextjs/routers/app/error" + * import { Error } from "$/elements/headless/flows/error" + * + * export default async function ErrorPage({ searchParams }: PageProps) { + * const flow = await getFlowError(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export function getFlowError(client: FrontendApi): (params: QueryParams) => Promise { + return async (params: QueryParams) => { + // Restart in an error scenario happens when the error does not exist or is expired. In that case there is + // nothing to do but try to sign in, which will redirect us if we're already logged in. + const onRestartFlow = () => init(params, FlowType.Login) + if (!params.id) { + return onRestartFlow() + } + + try { + const response = await client.getFlowErrorRaw( + { + id: params.id, + }, + initOverrides, + ) + return toValue(response) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError: () => onRestartFlow(), + onRestartFlow, + onRedirect, + }) + await errorHandler(error) + return null + } + } +} diff --git a/packages/elements-nextjs/src/router/app/index.ts b/packages/elements-nextjs/src/router/app/index.ts new file mode 100644 index 000000000..ff21ada85 --- /dev/null +++ b/packages/elements-nextjs/src/router/app/index.ts @@ -0,0 +1,15 @@ +import { getFlowError } from "./error" +import { getOrCreateLoginFlow } from "./login" +import { getOrCreateRecoveryFlow } from "./recovery" +import { getOrCreateRegistrationFlow } from "./registration" +import { getOrCreateSettingsFlow } from "./settings" +import { getOrCreateVerificationFlow } from "./verification" + +export { + getFlowError, + getOrCreateLoginFlow, + getOrCreateRecoveryFlow, + getOrCreateRegistrationFlow, + getOrCreateSettingsFlow, + getOrCreateVerificationFlow, +} diff --git a/packages/elements-nextjs/src/router/app/login.ts b/packages/elements-nextjs/src/router/app/login.ts new file mode 100644 index 000000000..75f90235d --- /dev/null +++ b/packages/elements-nextjs/src/router/app/login.ts @@ -0,0 +1,62 @@ +import { + init, + initOverrides, + onRedirect, + onValidationError, + QueryParams, + requestParams, + toValue, +} from "$/elements/frameworks/nextjs/routers/app/utils" +import { serverClientFrontend } from "$/utils/sdk" +import { LoginFlow } from "@ory-corp/client" +import { FlowType, handleFlowError } from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing login flow or to create a new one. This method works with server-side rendering. + * + * ``` + * import { getOrCreateLoginFlow } from "$/elements/frameworks/nextjs/routers/app/login" + * import { Login } from "$/elements/headless/flows/login" + * + * export default async function LoginPage({ searchParams }: PageProps) { + * const flow = await getOrCreateLoginFlow(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export async function getOrCreateLoginFlow( + params: QueryParams, +): Promise { + const onRestartFlow = () => init(params, FlowType.Login) + if (!params.flow) { + return onRestartFlow() + } + + try { + const resp = await serverClientFrontend().getLoginFlowRaw( + requestParams(params), + initOverrides, + ) + + return toValue(resp) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError, + onRestartFlow, + onRedirect, + }) + errorHandler(error) + return null + } +} diff --git a/packages/elements-nextjs/src/router/app/recovery.ts b/packages/elements-nextjs/src/router/app/recovery.ts new file mode 100644 index 000000000..4dd07e502 --- /dev/null +++ b/packages/elements-nextjs/src/router/app/recovery.ts @@ -0,0 +1,61 @@ +import { + init, + initOverrides, + onRedirect, + onValidationError, + QueryParams, + requestParams, + toValue, +} from "$/elements/frameworks/nextjs/routers/app/utils" +import { serverClientFrontend } from "$/utils/sdk" +import { RecoveryFlow } from "@ory-corp/client" +import { FlowType, handleFlowError } from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing recovery flow or to create a new one. This method works with server-side rendering. + * + * ``` + * import { getOrCreateRecoveryFlow } from "$/elements/frameworks/nextjs/routers/app/recovery" + * import { Recovery } from "$/elements/headless/flows/recovery" + * + * export default async function RecoveryPage({ searchParams }: PageProps) { + * const flow = await getOrCreateRecoveryFlow(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export async function getOrCreateRecoveryFlow( + params: QueryParams, +): Promise { + const onRestartFlow = () => init(params, FlowType.Recovery) + if (!params.flow) { + return onRestartFlow() + } + + try { + const response = await serverClientFrontend().getRecoveryFlowRaw( + requestParams(params), + initOverrides, + ) + return toValue(response) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError, + onRestartFlow, + onRedirect, + }) + errorHandler(error) + return null + } +} diff --git a/packages/elements-nextjs/src/router/app/registration.ts b/packages/elements-nextjs/src/router/app/registration.ts new file mode 100644 index 000000000..215afbc2f --- /dev/null +++ b/packages/elements-nextjs/src/router/app/registration.ts @@ -0,0 +1,61 @@ +import { + init, + initOverrides, + onRedirect, + onValidationError, + QueryParams, + requestParams, + toValue, +} from "$/elements/frameworks/nextjs/routers/app/utils" +import { serverClientFrontend } from "$/utils/sdk" +import { RegistrationFlow } from "@ory-corp/client" +import { FlowType, handleFlowError } from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing registration flow or to create a new one. This method works with server-side rendering. + * + * ``` + * import { getOrCreateRegistrationFlow } from "$/elements/frameworks/nextjs/routers/app/registration" + * import { Registration } from "$/elements/headless/flows/registration" + * + * export default async function RegistrationPage({ searchParams }: PageProps) { + * const flow = await getOrCreateRegistrationFlow(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export async function getOrCreateRegistrationFlow( + params: QueryParams, +): Promise { + const onRestartFlow = () => init(params, FlowType.Registration) + if (!params.flow) { + return onRestartFlow() + } + + try { + const response = await serverClientFrontend().getRegistrationFlowRaw( + requestParams(params), + initOverrides, + ) + return toValue(response) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError, + onRestartFlow, + onRedirect, + }) + errorHandler(error) + return null + } +} diff --git a/packages/elements-nextjs/src/router/app/settings.ts b/packages/elements-nextjs/src/router/app/settings.ts new file mode 100644 index 000000000..81229249d --- /dev/null +++ b/packages/elements-nextjs/src/router/app/settings.ts @@ -0,0 +1,61 @@ +import { + init, + initOverrides, + onRedirect, + onValidationError, + QueryParams, + requestParams, + toValue, +} from "$/elements/frameworks/nextjs/routers/app/utils" +import { serverClientFrontend } from "$/utils/sdk" +import { SettingsFlow } from "@ory-corp/client" +import { FlowType, handleFlowError } from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing settings flow or to create a new one. This method works with server-side rendering. + * + * ``` + * import { getOrCreateSettingsFlow } from "$/elements/frameworks/nextjs/routers/app/settings" + * import { Settings } from "$/elements/headless/flows/settings" + * + * export default async function SettingsPage({ searchParams }: PageProps) { + * const flow = await getOrCreateSettingsFlow(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export async function getOrCreateSettingsFlow( + params: QueryParams, +): Promise { + const onRestartFlow = () => init(params, FlowType.Settings) + if (!params.flow) { + return onRestartFlow() + } + + try { + const response = await serverClientFrontend().getSettingsFlowRaw( + requestParams(params), + initOverrides, + ) + return toValue(response) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError, + onRestartFlow, + onRedirect, + }) + errorHandler(error) + return null + } +} diff --git a/packages/elements-nextjs/src/router/app/utils.ts b/packages/elements-nextjs/src/router/app/utils.ts new file mode 100644 index 000000000..7e7d1b848 --- /dev/null +++ b/packages/elements-nextjs/src/router/app/utils.ts @@ -0,0 +1,58 @@ +import { getCookieHeader } from "$/utils/headers" +import { ApiResponse } from "@ory-corp/client" +import { FlowType, handleFlowError, OnRedirectHandler } from "@ory/client-fetch" +import { redirect, RedirectType } from "next/navigation" + +export type QueryParams = { [key: string]: any } + +export const initOverrides: RequestInit = { + cache: "no-cache", +} + +export function toValue(res: ApiResponse) { + return res.value() +} + +export const onRedirect: OnRedirectHandler = (url, external) => { + redirect(url) +} + +export function onValidationError(value: T): T { + return value +} + +export type ParsedQueryParams = { + id: string + cookie: string | undefined + return_to: string +} + +export function requestParams(params: QueryParams): ParsedQueryParams { + return { + id: params.flow, + cookie: getCookieHeader(), + return_to: params.return_to, + } +} + +export function init(params: QueryParams, flowType: FlowType) { + // Take advantage of the fact, that Ory handles the flow creation for us and redirects the user to the default + // return to automatically if they're logged in already. + return redirect( + "/self-service/" + + flowType.toString() + + "/browser?" + + new URLSearchParams(params).toString(), + RedirectType.replace, + ) +} + +export const onError = (onRestartFlow: () => void) => (err: any) => + new Promise((resolve) => { + handleFlowError({ + onValidationError: resolve, + // RestartFlow and Redirect both use redirects hence we don't need to resolve here. + onRestartFlow, + onRedirect, + })(err) + }) diff --git a/packages/elements-nextjs/src/router/app/verification.ts b/packages/elements-nextjs/src/router/app/verification.ts new file mode 100644 index 000000000..8b914d714 --- /dev/null +++ b/packages/elements-nextjs/src/router/app/verification.ts @@ -0,0 +1,59 @@ +import { + init, + initOverrides, + onRedirect, + onValidationError, + QueryParams, + requestParams, + toValue, +} from "$/elements/frameworks/nextjs/routers/app/utils" +import { serverClientFrontend } from "$/utils/sdk" +import { FlowType, handleFlowError } from "@ory/client-fetch" + +/** + * Use this method in an app router page to fetch an existing verification flow or to create a new one. This method works with server-side rendering. + * + * ``` + * import { getOrCreateVerificationFlow } from "$/elements/frameworks/nextjs/routers/app/verification" + * import { Verification } from "$/elements/headless/flows/verification" + * + * export default async function VerificationPage({ searchParams }: PageProps) { + * const flow = await getOrCreateVerificationFlow(searchParams) + * + * return ( + * .projects.oryapis.com" }, + * }} + * /> + * ) + * } + * ``` + * + * @param params The query parameters of the request. + */ +export async function getOrCreateVerificationFlow(params: QueryParams) { + const onRestartFlow = () => init(params, FlowType.Verification) + if (!params.flow) { + return onRestartFlow() + } + + try { + const response = await serverClientFrontend().getVerificationFlowRaw( + requestParams(params), + initOverrides, + ) + return toValue(response) + } catch (error) { + const errorHandler = handleFlowError({ + onValidationError, + // RestartFlow and Redirect both use redirects hence we don't need to resolve here. + onRestartFlow, + onRedirect, + }) + errorHandler(error) + return null + } +} diff --git a/packages/elements-nextjs/tsconfig.json b/packages/elements-nextjs/tsconfig.json new file mode 100644 index 000000000..106512be5 --- /dev/null +++ b/packages/elements-nextjs/tsconfig.json @@ -0,0 +1,35 @@ +{ + "compilerOptions": { + "target": "ES2019", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "moduleResolution": "Bundler", + "module": "ESNext", + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "emitDeclarationOnly": true, + "declaration": true, + "declarationMap": true, + "outDir": "dist", + "resolveJsonModule": true, + "declarationDir": "dist/types", + "jsx": "react-jsx", + "lib": ["ES6", "DOM", "WebWorker"], + "rootDir": "src", + "paths": { + "@ory/elements-react": ["./src/index.ts"], + "@tests/*": ["./src/tests/*"] + } + }, + "exclude": ["node_modules"], + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/global.d.ts", + "src/tests/**/*.ts", + "src/tests/**/*.tsx", + "tsup.config.ts" + ] +}
- {children} - +
+
+ {children} + +
) } From ec25adc6a1720060039602035b05279f05f0f4d0 Mon Sep 17 00:00:00 2001 From: Jonas Hungershausen Date: Mon, 16 Sep 2024 11:02:10 +0200 Subject: [PATCH 066/100] fix(theme): social sign in button styling --- .../src/theme/default/components/form/social.tsx | 10 +++++----- packages/elements-react/tailwind.config.ts | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/elements-react/src/theme/default/components/form/social.tsx b/packages/elements-react/src/theme/default/components/form/social.tsx index 11926fc6f..84b560c79 100644 --- a/packages/elements-react/src/theme/default/components/form/social.tsx +++ b/packages/elements-react/src/theme/default/components/form/social.tsx @@ -1,8 +1,8 @@ import { HeadlessSocialButtonContainerProps, HeadlessSocialButtonProps, -} from "@ory/elements-react" -import { useOryFlow } from "@ory/elements-react" +} from "../../../../components" +import { useOryFlow } from "../../../../context" import logos from "../../provider-logos" import { cn } from "../../utils/cn" @@ -38,8 +38,8 @@ export function DefaultButtonSocial({ return (

*_^W+b9SO)HLvJ8*%^Yi7|S}+Y@Z{7XRYy4 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 G-~JDHCVpT5 diff --git a/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png b/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png deleted file mode 100644 index b31728b27933f775a03bd3d2ad9a758c20d7f280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26794 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�TmXwK&@+1&6ZnPj-DUwz9TX zhWL%X0wv8vEq>RfS4dH)KRwKa2i}XCCA3>U^+)XA8VaQV!-Zg}0?Lyv4qhg@BZvH7>d2J^fLUB^WAY2vQWk#E;m4 zZGb1J)vQQOf4BYQ@R-8& zN&Et+U8CPjgByWB#0mROC?CIIcB7_@(`!7z(B-Q_y&y`Au%aLP2X+lZa#M!n0J{{z z<=*G2>$mux(;V~-iHXFJ>_)MkVef$rW9S>H4612}5*2`BJC>lIhpYLow{?Le?F6lI zV<~bJ%Nj9oC^Yfse7(+Q4w+M8ef)hJqz2H`!k8gaKtZJ#j{ZwX`#!@%Z8Asx}XA>1H~t9J=O^b!A?~N#m%5o+S1;> z8De(`00|j5QDs(Bwy{Fq@^VQ2kU$D2)A1MlHdlRq9El(Qb{}Tfyqm@F73esle;-l1 zsjaOIri9MG91ixV;k5X}HsL^76V#JC&X0z@w2TB%@DenVOt1RE)vf5tB7K?pW4p2?s3)(mRdMW|D%_Jr1tpxL2(y@Mbb zJ_8w~5OlQ#xQF?dS0^Fislrl7&fYBHH`Tunolvns;�Sn*b^6VeP{q0gwH;m*a-B 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 diff --git a/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png b/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png deleted file mode 100644 index ee395b72ab266490ffa45b52b732d32955f24532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50216 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 diff --git a/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png b/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png deleted file mode 100644 index ed91161b2fe5126706e338e7dc4bab887b7360d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31289 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 SjtX!z%=Do7ft>H1ulx%pOqkUG diff --git a/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png b/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png deleted file mode 100644 index 94bebe66cd5c83b2e0432174ccf17482e9d0ed74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55632 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 diff --git a/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-linux.png b/examples/nextjs-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-linux.png deleted file mode 100644 index 992a9618cbc5a4222cc1a1d11828b23d2a5dd8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28812 zcmdpeby!v1yY0qq#6Sr_QIQZ(q+7*AN+cu|Dd|QUKT!}wL`oV(LOP_=qy^~)ML=4* z;f}@kJHLDGJ@-8Kp68rD?sN7RpzOWYnsdH$ykm^_ojjG1y0Uu*^$rq=wENms@tY*l zW_-J$cH0Jg5u?9OhA&$*C9a5*)`)*13uAprq@$#3;^%KY2p#FPRlPN{S~^ivb>{Sr zvUo!lmM1jHWC8szWBQ(m-K84Jfx-KUFvNRk7Hsv_t93Ee&y_xaQ8xZ4gVbHeE*X0fZptAyG@Po+%}Rf z)9KUGGc#7!2k~GoEP7Qs85sto22av1{F(1rQ!DZKBvQ||O?QZ|E-ZUph#`>T#YkI- zuW=j54ijG^cl`HyLk?d)Mm2Ugq*{kF2$S+fGfn9Fn>mjOxwVzj^NSu=fS=!QOMyc5@u8vk`oVd{<1X=KIvKZ5Q)aXpa#3@r z<^38O8X6l*ZcI1dpR;jW3CShCS|>v-*BqbC%gt?!m-npQ85v)%$Hl(>8XFs{P*lBp z_jO1}NPfPchFOWxPmXI?j4J(1%7X`QCn=bin2?i`uioDl8T?(3i;j-2tE)>PAu}hZ zML$y@pCMA;LY(B}q**Q@C#g-n|4E=>hm)JLizi1LopZ8QCAp1xi||&%5bJ;=e-@se zRNH!3Vr_0zz|;M+u-s&?NRdCOtiB0*(2pwdJ)w=V~Jr z)n0me>Cd^-!>d>9*-T=q`BldaNn$fGH=aCr@E|8|a`QH^gMO?JJv}`O3kv2F=uHi1 zr+xQRBrgoa1}snc+w)2#DLfH=y>oZoz1s~szH0VH&AUp%xed=}a?h>_b&NNNkdb(G zGFm-6Jv%!(t`?JSeQ9iLtgcSV$$6FEu`&DWd9s{g$2Llz;M)X@aXKN zvRJ8h^-#?rA43O2t@44&im|zNtAOHy<@WfIH=bF>-ZX()%T2mzAC`amb@Ln%(X_Df zP3_rnYRG`j=Vq4&cff0o!08)2Qm>2`yKlFLIP(e%mGRAgdD+RIMdM`Mx25urq68hC z7VUyvIY+5svk*-mJs;^7xni>F_d(0CvE>;Gm!X{e{9(&HR>fq#{JoLa%{$tj9*VGT zEou+W9i?Epx|$hs;busND=i)K?pzrp=$xKuGNtmfGq<#EOu4?8*RuNf&BXaG&Y6_O&Exs2!3H!F!SA{+ z=1ngcABnQ6?|)@H-6>|4&b6MH~+4$JwTV> zE<_Q_n#W|2ewv=0OL!&cTl1CU3<6=lE#G{1Pf$;`8GTgE7+cfYmfg6xs26-$Pb8wZ zt-pr9srgDhpK8X`sRZ|t`SRd~(vwRrjaroVo{sR}@iLlH8K6%$GKxwTURf%?DdDXZ zwNmUExXKr2{`{)=Px_|En++}u=?Q!pqHe1H{JtqK|C)oeQP=(UFA`akq9H93&5_Ap zGh+HVya%1CGt~;TSS@&rAM}u9b~8x}{aoZF#YZ>lBW7Q1+G70hV#G$;X1Q#;s6GwP z)6Pd$OP!pB*%>o-IZb%Ci)$2V3OY71G9=sCu5z$Dhun=n^k#5QX0vf*^!Kv;E2`?! zXTQ8}$})OA+Mzx?rodC0Ws=aIRyu2XXyI790G7lkpL=Of>-Fn~t0KXF&Lp|Ns!G=_ zwpuPThhSOoLW`v(lyw+Jlm?Q zPEEng5)jPI;($>^w;E=>eECv2Q=dP7FUgdVmpA+4#|w08TWu4SkdG3*}F*Hj*~9!sP4;#ry=FS?i&DV9_`o;jyhDKYd|-DdK2!SOtw_Jzcb z&kr|>`2)l)1&*xsY>YHlPEv@i54yoPwt3qv_o!y?$8PtxejSXdITyI>q-L-pb5`Zo z1)rAjI0uHB7@P0zSD#+f;W*<>`^&sFu6%yXdr9p+*Ui!20Vb)WpP?)VcQbn2UM6UJVx zp&2y&aG_2+#QiPx>14ZW4&rmm8kY1NX$O{951bUGum0YfE?63)Dz)4tTD`M)UapF@ zNXve#`sK8Lz`2Di`nlV4N75VfhkleOdx>Y)v8x#6W=CHZf5VVj+}|ektF?`5Z8UVG z<6dt6#urZAj~U0`SFd(|sdQG|sQQhfvzE;vYq~WjXyaBFmTJwkoE$#Og?*%sFr>oM zlraJ>9%dhlk4>|48oRD8Y(F_0fPJ`N6Rh1vYayGKWVW$-db=IHNp<;JD`jj*xBVyi z1b=%KeHGq%hxvDX)dOnczlyTj#>n+Fq|XWq${cFGXfy5FsJS9{GpR4y)*#fWOShjt zBG|EjtB}57X4uS2!o5Aa(J4YZm-jj=gI%FG_xCo#pJR*+<_jLQi;Ye3tycB-;y;Ay z&-aeHYjwI5Ifqsm(0!K-kMMBHs``5v@s*lszbzdy$XxU?l{cJ`kqy?*GJR8{alOk? zlK!A=eto!#Q|jt~#8hZ@Zp;S%gw)j9=H}*Bd6N9K^XJJ#xk-^dtQ2u^Lm3`bS^8Njms_zU zT6M*HuWCHBi9eTQ^8aA3CB7r^(f#*iSO0kudCQBWdh_PwL@7PJs8h$_qxI>EkGoD@ z(w=3sbNB8eLJv|4qopH6UcY{Qh+Q>j;e2{}I-^u5pGjAN$C%@Xzc!!K{Z>$Ye*JTe zE{}9viq}?`-oJmZvihL(`4Qc3q5O8!zdf8x@y-mL>b&)Lj?9kxy^}6?J*7RMtQ)w2 z6nC_g?O{0A{hR9Q>Oo%*vMN{()}3Tvcyq;@Zp)+d;_456Jg%*+O-wvZ(OTqauc!Ch zo#Hr;aR;CENK3B8fJa$&w^MtOvg6`lESvIscQ3EPE}4y6cFivgL`Yn}e&OOp zXZ)n@(MVTezDBXrZW^9vUS9J3uFc76G}P3Kv+X9Li@&2NC@9Ly%Li&AY+A~}&TWcU z1hp$P^dkGq%2P{--DY zwnlVq`RV>sc5`EF3^Y83dwr^^Zcq%?$9k_EkCh6e=GMQ3fu^VzQnD%E!t0yNqb<89 z=jLq8%xtHsc^^G`H2Nr1*nalusqmI!=e3L)k>TNCLEFh+xUOpJbi~?ntZdX}A0Hos z=HxJ8d+U=C5FIkyBVA1Uw^V%AD(}M7Sx|&|x|cmvEB?~cNfV}Wl++W$$3)6D?zEf# z^CLkqg}rcZp3};rO1812q~vH*l1kKNuhW#3KR&tTTaOM64(1wn3Q*k6HV(_rUwT9? zqPJEy*X?Y=MSbPj;fb;Q@ztg7wJfF6eY+ZCrRniXQV=x%RaR0Wwse$LAu-4F$HzF? zD0Rn~MsLwoC2>j)^+ZFv`5$g_H*c=aq&Pn<3m3L$St-Dt&F@-fo}4|ypDH2#`4UGb zo&W9bvP6@&?NLA99HPMAcF{3T#qwp}AeDIK@)=6^e)U?y?HMJ5e~peNy+3g9pyaDF zcV~tg8GiQlon%l*05i?Rps1**t~{q*Kv>()j@*vAynE?rtaJpWPg&VjitT&$usg>M z%bO21FjL%bi1TrGeewiyftihA-`>4P87fjwo;+zYe}GVFzn7^fFq4+QPkM`-IzQuN zKrbS{?@D?4=5)JvubvfKZ6tM6)7tD#4GC#~Ms*Gh*}}rYKR{Y!;a7-BQIL@BBqntK zzI`LY_H$!K8Lc;O-aJj|naH_x7|ZKk;{Zpfn&bltD7)@{#` zeLnX}pHq2#t=st)ad^FcFj`JDDEGqU*kvE5gJd5#r>z!BvnR`re$VHBCqgQbwCLEC z>i*uS-5QH)(O)IoHDoD3!Ef4A^7D&l@$#gEJr+K%F;4dQ@#CK`L3o(xE5GZaAqgr) z*A}FszUNpCE7&j1JV6w$Var6=kLB8Q*_L*-Q+x6{%nNAa?z$*yhNl+v}X z0XitzRh5*K`0m%e#j8S43n3rvFI9Yn{A!!qq;qfI+SkfM7QcQ!G_b*ZN6G;UFsa*&B&ihO)5!>x08r`IOKY=R_sz*7x{CWX_tb19E!pU zKc%^-gN$F~c^#48f0V)DdM^X$Kzkx%XQ z+0y1JH_4@a-Kb!aF0_B^SVJ?NTYMEP?LA=TfK$z)PMX~Q+hZ(Us{0j6&{ zE~Xo0h6*rHdu?hAd^MKn@Z{Wt|F&Cxo*6qakeq~|>*C{!?ZbIqDIpIe)|dM45iS%f zUP=ip4fhpjwypi1D^xx&zGF(e%Cb~p3-Zg~V>->)y6mO3q9`!^@=C-~{ghKp_)G1b zS~EA#QrYg>N4iBucrPxK^P4=}m8#N@UF2~*9@cxpDaXC6*+RSUd{vC-`i9ThPT6y# zW7Ez!rm^`Au`PwNMX!!;wO*N37+_$~Tv+Lr@iF@KUA8Vh%0mB9F!AsQ&Jl~iTN@ws zeu!zwrlM}mcZAK^qiDtLT7I$=+a8i>{VTF9p--vqM80`7=2Ab}$#S3G!(C`Ll*`-7 zn)~k%)Z7AtC~`w^=}UXE$oM(|!dJnI_Tjq4M3UJ|j1en$aD6^VBzaSDlKOkS@4w1@ zQ;g|F9Oj1_6OPCbZy}MYNE?YSxBlg`kMn=?m+(+#0TeoH!1gfWu*S@~!;81WmD$V=enZxE57LE=MZSU{z zKXeE@Jj_OkxQ|QzU%eYr%e7c^4Wy*LRRx_BwESHQJpTCcV_#(;y|A6-^8AGIsEI{G z2#-P9?vb$xHr-6bN0pWt8Md+YS{ zG+4+pTK+nUE8B=0=6Lcmkw9o18scR8EU!vPAX9ese0b!ajTFD1@kR@1grQ+#-M#|{ z{9e6^D`+XO&449S6E5tZEoeQ$_ux2M*cefw_OUfH^S zhb7#h`JLRryV!7+`d2SszA0d0VX3IDmb`j3)nv!6U4|Vw6W}BxWPGPjR~2Pm_M(QB zG@BhB9{%Oa7lxavs-ZBU{QR`K4^UAdL3v$t+q1qgNn(Ap2V7?C96vqTosyjy7k5?M z!O>BIcX4r%Wpu~V$)aYhjMkCfs#j;DrWq3&mF;MW$8izpJjnZDa&mH?&(uJT+mk14 zG&K>TvW3ROuZt{BmJoz`@wQJWhbZgj|neR8o`?ngZXXr>88;_}&6v|U^uYW%NMgB<= zuR)XHNK4w5M|Ud&*eWbsdV70EYsB(wt3!C{&*@a9Ygc9&w*LJ2a~}o8S*PU(0e|26 zZ&W7@$s-f=&zg`b6lG*eq<52;=C5yJ8A{F}wg@Jp;xd71|NTtW=i5p=DcOQSE5eS{ z>tsjDS>8#ZoSSzZoRTi*$h`le>qWZA~kzrTND2ks+l zYV(Pb27dk0($b<8w66N}DaxolYy0-?Fh^&TknVX7@3OVEefaR<#V5P2Nl17;dp6Qt zT+0r4e)x=-?GY*}W`>}kAV%MJV8I)=?n#tS2*}t&c=aUHY_rLIze7VqgU;!0 z*}B!6nw#b9S+nu3LM&>ka#BSTc&!7NAQ(6;crcRaKy?UK(X{Y27`+}BwT9C|AI0&@ zcr?QwA0Iy#SRaMh!Jc1KJx~?aqiwtCgp_P)5Egeox{kJImwx@~QKqQjc<{)Pu+Y#% z!`<7qy}~^}Wu~U&bRJ#2Z~;*SKDHmb=I764W@F+hOFBz}&Xs_v=jP^u*A^F^JaZ-$ zAO}3z?}PV))_2=${0}x}4jX8Ws(9=hhl$2nlTC?dy9F&46 z*8@EA4Xvej96TaScpV#_5gwnn@N7%s?Tn7jPGGo-l2VSt!epM+@Z~F4SRFC6{+ft! zY+7uv<>h66Rz*8|d%>7H#J$D1dm~8>i_?STBJ+`!mGcw5#~B!cxea)%N0c6YNY$>S z?Bg$)m>__9sxB=Jj*-q6kAuU_DdgL>9p=<311XA8?IyA`N$m081rR3h?|PON7INw; zNlk$oPPx#Loq1Lk#_}a$H;FAQV*0;tVW%6(AMOB-Eg+AO9>A!ZlT>uml-e>421fFT zYm?+_)Q-4-!X`E9gMbA^M2z?MQ&Lb&RIsMZ&(HJavlDL;YwWGc7wdlE=_%1&bi8zrSz>y(RE8>$quy|A#L-3E$Gec-@*P}UIo3jIvvIqhF%KC=PQ5`kTa z1x&7n!^D>`=0ixrHdX|{$SVTH-A`*272L45v$HF-n;9#d>k6U2p3vBoq9Jgx)ADDE>;T4OcAU5)tf%${f$>= zps{WH{Kq=;J1Br9wV!XVIjr~T?i3=u-eXt;#8msc3SMNFf9rb%YR!??IO-mV9| zkR`migH6{R=Q=U9bDa>v9TqjhH9}L*CPk}}Z2jfhz_cSHBlDLjj*(0S2~HE4F0}mT z6CxZLBP09pt|xJEOxpd{xHUxP1AHOGiO=yXF)=YBa~&45;lRpt<)nA--XXoR2>0ih z^-`WzI?CXAh@&gV?B1O_J;YdPX+y)qjmLe%!|4tlY0}&Iez(B&X1UOW~=g-Cj&V&RwpYt2(zIx-=-LL0mEd2oV344G&_6Z-c2$_6PrOV zSUla_u3!Vy)z?QjE#9X%8*~Gz`tUiOXX#d07&9|7=%Jfkm&L_TFfxvH7i(-!MlP@& zFPuxJI|n3#*kibf&%3*Ci#~ho*fC+@l}1Gk`Ps?twN)GFGeu_zW%ZN+KV~^>_o>yT zaaQ4b_wIrD=$$z{;@jAlqyEn0;l{0ujErBuer5SI){#5aZc^+x^e)!#TrILY^dOTk z6x{q=@tT@#x&eQPacl#05rWM9s+QI-V21`wo0l*5iHa5{NHddeNf4CN<+|UC7pd4` z`%g)^mp$1{gLtVec6O#Huc_(AWlJ7z92EvPlu1xXN>a&YF^PKf#@LAijN%_+{*o4| zW`XQ#9^T%?3*kr}?f8@n*~XDhzrG4+yZoTSKn;C-gVF5Vu_Md4a}fg{?J88c{UUK> zy8Kkc`?+UNpCYYI&CC@3h*4qB)UFJeZT6z(Mx-F^@lKs5#nG)t+dfP+^UbMoN6kuETqkD<1DWG~z8;r^m%x99ULXhR}wVQx-2;T^z;&EG#W` zJ4i>r>gnmJ6Gj&Do26kXZb(c_#4h7CYP0<8P7&ca8w7@3t>fEWBLuXpzbF1#tj>Sx$eL8 z^{xM919V)P8@I8tD$FcAapFWMzlF}^ukz&NWMRAMI2mbY=e7Ro5EN`1x&~U(?uGE0 zAfz%Td6<}fgO$%F-M)RB_jV&3G7gO*A!q{^7ZOEUt06YgEgq0hE~7RsZtg}H63>qy zy(s}|_(NFU-O}c1(cUX9frJb*%-zESc}XtIdc11|W{ERE45nG$-A_;C6BIhNGT-xP ze*OU@GbwWM?mE2Z0n9U6Rr`6q;OW!~9!#vREV+@>i@^Ovc4k+}x^a8O-oTGW!@uZ! zL-pJUHtWli5_@R*{s37d!vr!d2EIi&ujZ~i6!R8Y{4K#z=ocI;pjR8|drCUMsn&P_ zwRcV*LXs83oP(_x9jI$F+BO5~g9_fVbs=@^4o`kSOHNdo4>7`#Q`}U2F z-~8(nAqJmoqw(QRdSy#gnkz^z> z|G=;?N7z*ac0**?#Gk@|j}aijVuH{C5vAkOlQB1+3>(^x%PVcz&9@(Jh=*n&J*j2= zGQ1zwY43kQ=fq#08)wt>zP~}bVok9U2un#ZxpCtL^69kQ3Y+)+jMmlJ?Bd6dA7ds) z_V{ln_(j||S_+p-C(fLK$@Y*zlQRg)S20Q1ANd|es0y7-)b~wWwk$3z_;<7M^4e4Y zYGZD|c`WL4Txa3&WLr1iK|v3hk13`7{r%p7fo!;@SSkWICSM^+iY_+({Z`Sfn|nCN zatG)r_#GGD?{l#*H{Z48qOozZx3@HiB1qjxLX^#Tm(iKSP=KKSZo8;n1_V%2QMD4_ z3i#YkPELR3j*C02ytlEjChb|HlYNyRK72qt=ph6H*i-_1e2y^ymJj&AQP_>7u2f2?-4y@$+35aB;i7Z7%^v{O!5IHUO4Mx)>b?f85x;MmSGUl{qRl>JBXT+k_QC?B+~h% zrS|&q8S7Jo%$V!49|vd@78V{cV<6_9^!#Te$uOh!+2tsAa1DepQvMTHSJ=27SCy5O zEiI>k*8bsuiTYS+QQJwat5^Ra5sV_9{zD*emx@04a|h~PQ&Us??fFMrz@X-)r!8%4 zKxg+-I6FHpahLRsNQqy#aN*TF(Y@oMUw)o!9)J+d(Q4EX_q|?PH0itE-=44U%aei4aQdF{~#0v@wk^E3EqL|EgadE+{4A0p8Pcb9< zVE)ftZRMO@zU9-Pf?*<#%HkU~Y`}!{jgLD||CU{FysTJW*EgO#=}ki{ea{W4oSh)> zN{E-Dh5ir(7c?9U`|5Dvd}vf4uug_8SOWgmq;Mv{{qvVE)e)lIot=f4b_6XNI|}-% zgHS96=z}1%fvMZr%pDQ5Mru#Co$6=!IWU0908^vezd!26w!jQQ;>Kd!F>>KPD({?7 zNBZlpzu49CT2xS0!k&+A9v;sf2!}%9g>?*4V$hU`Ns=CI%LI1D2+_jEFxFtZNR(ssPPwx6QBqGEDl;{NwHkKNzvHx8Bg97lcTTSY~>(rKg%3}rt> zp}Gdf3reJ;t!*{d(FzYgw9}t%uj#I+@4u0IM_63qe^vOiE;o=|{z?&#eDk+a;#a!f z2gRI{q%d5`QQQH`4a|f;o25sJ8PDVx%S+U9Y{5SUH(f^;{ph}w&f>@^6^#m%%-_H*K77OeS z6SQg4RXS5&JP)Bq%|Kn@jA^yqV^>H+H}s;&9s zMZ;i}oPEPTe`?l5|DSVG5X2!2B<|Cv4N;ax@o8diu30}*FG=GqOU{*X3TgMMScPfq3xX!KY=Yo?f4W z<#Bz9t#;6Iwz=Y704jEff#n5dYOl-pG#;@rR78J-q`59BxqHVByWg+f1gwTE4gT({ z9h35>b4gM#04XXiE_Ren3kgxVaN#3F2MV%a)|a#}G4L&zR^AEbZ^(rk&tU%J<7RCe z55&uofudqFtRuW2CykL4zrVSJ3cXR=``ky|#C{=#Ce#Ir8DzF$lAWQFqG`zKgqRqd zoSeG4x*)JmNri4(P!kg?ndmK@u>-&UnCbjyC?MoVZ}0xYhjWbDdF+YOy8r#Vgq9~9 z4``iBCypMCR7_Ea>_DSKVP^08P&&eB(>CRqbQi(BU}0f_pvjbqC3rYI38>oPhIhvq z{#}dxB=Jagg-#2TeP_>}t#BA=WaGtx8m}%dz}_Xow5A5)CptSjJN;Tpvk9;Vx^ZQ3 z#=^#?8-@$GA3{cbyY4y{>EX&l7lXpA$j48g2yu-q3wb!+mN^XeNRSIn%{P;@QU6Zj z>mMKIKr2xZb{wj^)fE*t>0Vn}Nhl};fVN_A;%}!7D00Dh;RC>*RDi@vO-+U6BN@Vz zq?SJmNJVt=gQS_7rcM@gqr2k>zquB~71Sc7=ShD4+}jyC{*KBdinG*S9kB=EULd!l zl1th_RBY>BRqN6!dVt^T(lf+s?L=^--imYt&_0KF%;ncnKo%{ z4(SbW9^OR=)W!rw&!kJn5udmjx9UC`IqCIkijR7M6bUl#+fME!Qu4Nf&FUB)x zYHMnwZS4`bn|D%j-LKPvUxLOSri_`UU;X`iAjA+K%^iPdvmx_$BS#+C+3}ckIS}aHUteD| zw_u}e-E}ziZz<_n2CZ=E7c60zO_?Ta=MwYt?JX@WQ7uL3&t2(sfJxDU4mK8e!_>sY zAT$d+J1**Kc=Mc`oFn%@Cluk+3F}0!xe;V;_3hRZ=%xp=t-9!Du^#K-H|Y}6 zmebcC;_Y^rD%nV004EdXh-#YV7r?=#w;;OFr49O(;k4RSaKLaa_(yQQY#?CZJ$BuN zg?%|{qAyT`?yTl#3=Z8L586+Wqkg24dgnYg9)K)p79?iN=FR@AGd35|g)b4ve*DVw z_t~e_@}`TH#&(jEul@Ao7`u^s5H*5qWRlJ{-2ryaY8Au0j2V=oDrwJd92pwIq_qRL zY=)a8#nIwKF1q}u?6^0R%0KJ7@dZdI!GH#IWk9Tm!@xSh&%ZEq7LpStm-y%I?(U*Z zc_=@-4*vYYvH_{!1%8Tk;KRivMo`$4lf66o2fu8;JV14zMYDq3? ze!GsmW&0_Mi>hI22S{S0w9|**wzRYmn-mO=A)UxEhd5YEZ@UYl|nVb))7rx zA=Nw%^M4RCib;Z;%1J-_-r3%LY1V5k(a%%4)AyNrc<@b$7_9OhxFe8qcDA<6l_j7s zUC>nMNJAer%RV2fb2_^?`s$)3uIIb!aRsZigiV@hA5s*AYXe6HT=@$WpSF$;OEXRP zuUDwyMbn@yXf)cxT`D%CSb-&bvYn1}>nKW?Q~lMDPg&Vo+S;gRFdjR0-ZmsCs5RT9 zd&_QWG$c5Is$Y(hy+7WZ(hX?RK!pW-2z-E*?K;V+&tEamW}KaYTRVFsj9t9uLlE$ zfMs+UtalO4OCAnLteMG4un)L?a)>Jb0FX{P0n6VU&I^^Jemh8UTY&U%K>WkQlQ-S* zEq|~1#RHxglM2y0dgu^3CrxY1vMKmlb+1tzN$`w>T%uy zHjqNUnH75?2|oJkuOh4+d_}tl4_eycjy0hqjkJgyF@gkvo*h6B8c4Hq^GoUMM*x@0 zSV5vk7a6u1c`vr!*3NDV9Mr|dnCNJ2UE);({~66gv(m6}24@z58Uz;&zBksA)(bNZ z*<~EbShwnxENZ!k;`Y-AaTEm8fB@{psxhR)qDLupdc0dh9PI&fBdzC5d&KN(pl}*s zoB_rv+IOr}^D;9J!i6FBj5{8?AG-i$Z$%rTribYZcbL3pF9CyCSveRAHNCv(fQ0x^ za|%5TO+L{ziwLZGebH@%HT%+Alv-yiy-gmRj?OfE)2RPeJub`GT_M3IK+?UKL>jR8 zz1ssDl*smTHx#%)U(nZs@@9LwHbB|aoT9;q{b3fl!I{JT-@=Cb`>|&P`EEjr;H}xUI6`8)@n3 zooDJ_qRdFR7AUnm`fx_Sf$7l)e9kR0@+gI@G3mB|sfRnx>WT8ayI_;={_NQ^50Ayg zVOV;`E6^gyrPbZtYeU8rQV=8-g_7EI)_eEud-ML#fdlSWgTAz&eI!~`geO+!x=jFQgR2#f z=8VtZyjh1@6j9uU7==Z+6zu57-(FBq0N>rO_3fs9d|Oxi4Ys*oPVy~#u*Euw;5Ae= z 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 H{-6H>5Iq<9 diff --git a/examples/nextjs-spa/playwright.config.ts b/examples/nextjs-spa/playwright.config.ts index 30b170b3f..ffa6c1759 100644 --- a/examples/nextjs-spa/playwright.config.ts +++ b/examples/nextjs-spa/playwright.config.ts @@ -17,6 +17,7 @@ export default defineConfig({ testDir: path.join(__dirname, "e2e"), /* Maximum time one test can run for. */ timeout: 30 * 1000, + snapshotPathTemplate: "{testDir}/__screenshots__/{testFilePath}/{arg}{ext}", expect: { /** * Maximum time expect() should wait for the condition to be met. @@ -36,7 +37,9 @@ export default defineConfig({ /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: process.env.CI ? [["github"], ["html"], ["list"]] : "html", + reporter: process.env.CI + ? [["github"], ["html", { open: "never" }], ["list"]] + : "html", /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { diff --git a/examples/preact-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png b/examples/preact-spa/e2e/__screenshots__/recovery.spec.ts/Recovery-Page-recovery-success-1.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa0f0c9307ba740375525b0e5ee1d4849c67ffb GIT binary patch literal 17072 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 literal 0 HcmV?d00001 diff --git a/examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-1.png b/examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1c29686547a8971b30d3f6db552546f9544c2b1f GIT binary patch literal 16653 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 literal 0 HcmV?d00001 diff --git a/examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png b/examples/preact-spa/e2e/__screenshots__/verification.spec.ts/Verification-Page-verification-success-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6ad118f567db1638e9cb872268a103c8866d3141 GIT binary patch literal 22669 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 FKLGdO@xA~6 literal 0 HcmV?d00001 diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-linux.png deleted file mode 100644 index a10e0e568860e2f3ac1807f8e156e36d9ad2b6af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13714 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�YvZm3n($L#v)X80;t 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 diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-firefox-linux.png deleted file mode 100644 index c094111e1f6fb4da23654146eb77d03b066fb863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31592 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 BhAaR8 diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-linux.png deleted file mode 100644 index 40e4a9d4df3f5eaac6d144a7d292a049eb26cd8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12334 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 f@cI9>Ki@;l-hL1+=-SC&C2~RElt^^(p8 diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-chromium-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-chromium-linux.png deleted file mode 100644 index afec8056be710461ed90dc5997d7180d7f200826..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28213 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 U#?hY^RXyl((ftDc>l^p}6Lb95u>b%7 diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-linux.png deleted file mode 100644 index de2cfbf67e738f9142b151cd309af7d6cb5a5fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54348 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�pM;Ca)VglxjxP3|K_r;gwSVfX9KOn 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 N;OXk;vd$@?2>@AJ7t#O# diff --git a/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png b/examples/preact-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-linux.png deleted file mode 100644 index e4c26d5ba86722b655b88bcd906fac32d1360484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26838 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 diff --git a/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png b/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-chromium-linux.png deleted file mode 100644 index af0522a2e698f4589e1e8d5b19d1c4e5a1c7f215..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13509 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∈&91wPi zql~{zg>R>quHf62>MxHZs%0i@@^TT61f2BG%~WC^&@$*F>j412KK{HqHTP)chLQW^ zSW>d`mjpklFS$}*S2oAp$$Nnyr17qUS7cUQM89*TD^A6>izcu0U1e*`+nvt=kF!K(I35cg~)fklV6!OFrvd;Kjf zS6+C_c{{B~d<)c{@^&(>n@D^tk$D$bRRWpKEt|sI@ez1Ml26T80nnoGP%n4jfes6l z8W?j(ELc5x@?;>eE@1DjE40NBL-5fvDCnK|O=(bctK~0WzRb$bW`e5>vKks1stTU# zaR+l0`l{gcb#F&}hZonfFqoyavp|qpO-&6rbeT}<3KWsC>-S3C6NzV^DLa=tR9=^e z^?UDJ4)#tYnu~ibZ(r2j-R-fzK6uU&WX11R-M=RO8XPL|)!F+aZ|~s2O36SlyXevV z09>#y?*4-ZXTieF%1()C#G4`J$JNykofFbXk;FSMkd;+GckQQ-eSJ68U24_A8SKxe zyC?5%VO(*_81UCCm*5a1ufK=hJ(1 zP1S`PovKKToopShJW+Bur2$6{H^cZA8RRM P%V2TM=4!={9zXvdtn47o diff --git a/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png b/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-firefox-linux.png deleted file mode 100644 index c382b3d8b6c4df7f39e547732c00dcd1f1797bf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31489 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 FzW{Twdt?9r diff --git a/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-linux.png b/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-linux.png deleted file mode 100644 index 69c578535f62341009614dd8656e34c887eafa90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12112 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�iq7^(+#@Y~o=;i7mHiX`hGNLvp^h^WhFMSwSWy8=GmT;t(1mRh zp2>($XjT>MxD*{74H)hNNDZ1&{l_;CL@b|(YM@G5q(L6@2EprBAjZK4C^7eCXjxgA zG@!%Ns6615((IO<@<%GkIJZhO?n_o$v2SM@1UgyjdSgrub7w%A8{0ld$~#@3)0VI~ z3acN=Uv5;FF%Jm%uKKNLkEP|&}xMs<8tI7Pt&#K}V!9v$&f?bPxau4xyJ_gWM3v$Ll^B_GxAe0Jt8l+&`1&70OdYxUQd>3V`jX=wozI1(Fodc^BY`k7Cd=6DjD*fyTFA zFK`aTxf3Acw5n72FJeuv&a{%PY9?CRdw{_Nm2ZP8oTVy2Qeq8)*j#BRDhyZqPcL0z zSTF3K2ceyA=hw~@awrf%XCUYb`<^6(T|^alRP@XD(jl1jf@6v_PKCaY&zIJx3A=L} zr4-as*M?|lPBAe4#;;hP-a5x=%=rT2&TDOLv@MjSF2~ZGP1_IJ^Np+7Zs}1E6^qEf++ybq$;Qv9<063O=wT zHG_z$a+-)x2K8syP$A=8D&2R?XNk~XyD?|(kuWfsdb~_RyEA;YgjOtD9v+yRa|Rz? zLXlyf`i>4}k8LWma_ZNzd26<-bg3=JX5wau=Rl*Zr)2S??A@j4sg->j|Yrd_pO>O@B^JU^i318JC^(}It#P%3(ce&6r9v*nN*6@CIx;Z0s zH=%EP{neJkU52U!YZ6lPW#N+?&CxQ^hCDwJDBNh$@q(W%Kf;J?N zIOs}h9`_aBdypL0ISEZ+Xl0cFonFQ;^t;&i^@g{&M1z#}s!jVJUVx@3P{TE~wLdpS zxqEvTpfVd=B^i-yfS$06%7EvV&_C63)5D|n#)*OmNpa|8I&WX)Z(9>wTzFSf+}+0~ zXhU|3F(UD$rL{F3uBN30Q5Hz*q6wH`W@ctpl`d1X{q5f(e|px!7VVdlOOulP`G`yu zL>8C<+yFYto}D<+5sp0hN7Gv1EUn%8x%g~3u-nkQhR5Trt*y}xGI-wiLW!k8gLu*%ASpaLGSC%05`U}TM3zhhmte+vU`c|fDKdi6%hSWK^%q=h1 zqK-+R4RRt2RT;Q0kgzBdUI5B}(xvavRZxpGdj^BCWLShFUzhZIswL*;=f~F}&Y&f@ zf!qX*Z#Jq4Oe3q118^!orP@;qZ)r&m6-)T`v+Dbrz4<@rk^kOGyWr?EjsRaIw+$;v|0FGzS{b94q5e~_0LYu??Ge3Xx=YVZQ?cs@N Q^bQw)Fg;&z*74{60TM=WQUCw| diff --git a/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png b/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-linux.png deleted file mode 100644 index 8d07cc1d4024d00d3941a099e05cd5d546354f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18388 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 V1l59zQ@h1nfAahh_rtYY{{umAm+t@o diff --git a/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png b/examples/preact-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-linux.png deleted file mode 100644 index 832e7c3d500a4851db6e0285b8f57af6c5752b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37776 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%0D)sC6C#cLF7zzc`b-@`T?^st{dsL% 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 diff --git a/examples/preact-spa/playwright.config.ts b/examples/preact-spa/playwright.config.ts index d3f0e5de6..87c39b739 100644 --- a/examples/preact-spa/playwright.config.ts +++ b/examples/preact-spa/playwright.config.ts @@ -16,6 +16,7 @@ export default defineConfig({ testDir: "./e2e", /* Maximum time one test can run for. */ timeout: 30 * 1000, + snapshotPathTemplate: "{testDir}/__screenshots__/{testFilePath}/{arg}{ext}", expect: { /** * Maximum time expect() should wait for the condition to be met. @@ -35,7 +36,9 @@ export default defineConfig({ /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: process.env.CI ? [["github"], ["html"], ["list"]] : "html", + reporter: process.env.CI + ? [["github"], ["html", { open: "never" }], ["list"]] + : "html", /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { diff --git a/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-darwin.png b/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..3e93a0107001dd2b49b8e48085e8c1efcdcfacb1 GIT binary patch literal 17020 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 Fe*jJa9~bBUwXH`Pg>B(J7JEFn)G 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 literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-darwin.png b/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-1-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..ab92a2e6f5e5aacce739a913438bbd9a2ae0da8f GIT binary patch literal 29483 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 literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-darwin.png b/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-firefox-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..4e171d76cb1a4fe258c88e5a0fe5ac631864452d GIT binary patch literal 57054 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 XkGn}*-sq$t@Hu+O!KU~C<(q#3#s0mC literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-darwin.png b/examples/react-spa/e2e/recovery.spec.ts-snapshots/Recovery-Page-recovery-success-2-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..379bcfb56b6e564cadeccb2abbee27c0e5e0e090 GIT binary patch literal 50918 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 literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-darwin.png b/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-1-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..781b96d2409d869b39a278d2f3e72a6a5718ee26 GIT binary patch literal 29310 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 Sc_#$?yL?IIV%m9whyM$w7E09s literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-darwin.png b/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-chromium-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..c1cfe3c52e252db3f6404d2ba2a2326b39fee886 GIT binary patch literal 22553 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 YeAw}@h^ge-w4K2jlV9?GcK-YS15#dThX4Qo literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-darwin.png b/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-firefox-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..7c37dada28551eca3dfd9ab4aeccf8f9f09d760e GIT binary patch literal 38998 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 HFNFUW`@<6F literal 0 HcmV?d00001 diff --git a/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-darwin.png b/examples/react-spa/e2e/verification.spec.ts-snapshots/Verification-Page-verification-success-2-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..adb2645c110343b032d6518c4b6ba22ba65e687b GIT binary patch literal 35288 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