From be673abb783583888b7b42ab3eba98e9c29c4e8c Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 10 Sep 2024 14:12:46 +0400 Subject: [PATCH 01/48] build(prettier-config): upgraded the prettier version --- config/prettier-config/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/prettier-config/package.json b/config/prettier-config/package.json index 1449c2944..b41b7659c 100644 --- a/config/prettier-config/package.json +++ b/config/prettier-config/package.json @@ -24,6 +24,6 @@ "access": "public" }, "peerDependencies": { - "prettier": ">=2" + "prettier": "3.x" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 855252a6b..9d3993e33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,7 +72,7 @@ importers: config/prettier-config: dependencies: prettier: - specifier: '>=2' + specifier: 3.x version: 2.8.8 config/typescript-config: {} From f405ebc2a6f5289e90c87e2702ac6878224af931 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 10 Sep 2024 14:59:14 +0400 Subject: [PATCH 02/48] build(prettier-config): added esmodule export --- config/prettier-config/index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/config/prettier-config/index.js b/config/prettier-config/index.js index 67a214cf0..3c40444c9 100644 --- a/config/prettier-config/index.js +++ b/config/prettier-config/index.js @@ -1,9 +1,12 @@ -"use strict"; - -module.exports = { +/** + * @type {import("prettier").Config} + */ +const config = { endOfLine: "lf", singleQuote: false, tabWidth: 2, trailingComma: "es5", printWidth: 80, }; + +export default config; \ No newline at end of file From 7a206b6b4b81c114b2d51d124a075cd6939f84c9 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 10 Sep 2024 15:00:06 +0400 Subject: [PATCH 03/48] build: organised husky install --- .husky/install.js | 16 ++++++++++++++++ package.json | 4 ++-- prepare.js | 10 ---------- 3 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 .husky/install.js delete mode 100644 prepare.js diff --git a/.husky/install.js b/.husky/install.js new file mode 100644 index 000000000..1be6de99a --- /dev/null +++ b/.husky/install.js @@ -0,0 +1,16 @@ +/** + * This optionally loads husky except in CI environments + * like Github Actions where the lint-staged pre-commit hook + * seems to break. CI is always set to true in Github Actions + * so there's no need to set it manually. + */ + +if (process.env.CI === "true") { + process.stdout.write("CI detected, skipping husky install \n"); + process.exit(0); +} + +const husky = await import("husky") +process.stdout.write("husky - Installing Git hooks \n"); + +husky.default.install(); diff --git a/package.json b/package.json index d63b6859d..e573dadce 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "description": "A design system for the International Labour Organization", "license": "Apache-2.0", - "main": "index.js", + "type":"module", "packageManager": "pnpm@8.6.0", "contributors": [ { @@ -43,7 +43,7 @@ "clean:test": "rimraf summarize.js", "format": "pnpm turbo run format:fix", "lint": "pnpm turbo run lint:fix", - "prepare": "node ./prepare.js", + "prepare": "node .husky/install.js", "react:build:docs": "pnpm turbo run build:docs --filter=@ilo-org/react...", "react:build:lib": "pnpm turbo run build:lib --filter react... ", "react:dev:docs": "pnpm --filter react storybook", diff --git a/prepare.js b/prepare.js deleted file mode 100644 index d3d75156a..000000000 --- a/prepare.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This optionally loads husky except in CI environments - * like Github Actions where the lint-staged pre-commit hook - * seems to break. CI is always set to true in Github Actions - * so there's no need to set it manually. - */ -const isCi = process.env.CI !== undefined; -if (!isCi) { - require("husky").install(); -} From 20dc0fb081dda4aef2a229b0b1f3aab0fab0989e Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 15:58:42 +0400 Subject: [PATCH 04/48] build(eslint-config): upgraded dependencies --- config/eslint-config/package.json | 19 +- pnpm-lock.yaml | 1325 ++++++++++++++--------------- 2 files changed, 657 insertions(+), 687 deletions(-) diff --git a/config/eslint-config/package.json b/config/eslint-config/package.json index a1e57dc52..9d1b939ae 100644 --- a/config/eslint-config/package.json +++ b/config/eslint-config/package.json @@ -11,6 +11,7 @@ "files": [ "*.{js,ts,json}" ], + "type": "module", "publishConfig": { "access": "public" }, @@ -25,16 +26,16 @@ }, "homepage": "https://github.com/international-labour-organization/designsystem#readme", "dependencies": { - "@typescript-eslint/eslint-plugin": "^5.59.7", - "@typescript-eslint/parser": "^5.59.7", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.2", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-storybook": "^0.6.12" + "@types/eslint__js": "^8.42.3", + "eslint-config-turbo": "^2.1.1", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react": "^7.36.0", + "eslint-plugin-react-hooks": "5.1.0-rc-d6cb4e77-20240911", + "globals": "^15.9.0", + "typescript-eslint": "^8.5.0" }, "peerDependencies": { - "eslint": ">= 8" + "eslint": "9.x" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9d3993e33..1229054ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^0.19.2 version: 0.19.2 eslint: - specifier: ^8.41.0 - version: 8.41.0 + specifier: ^9.0.0 + version: 9.0.0 husky: specifier: ^7.0.4 version: 7.0.4 @@ -24,8 +24,8 @@ importers: specifier: ^13.1.0 version: 13.1.0 prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.0.0 + version: 3.3.3 rimraf: specifier: ^3.0.2 version: 3.0.2 @@ -41,39 +41,39 @@ importers: config/eslint-config: dependencies: - '@typescript-eslint/eslint-plugin': - specifier: ^5.59.7 - version: 5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@4.9.3) - '@typescript-eslint/parser': - specifier: ^5.59.7 - version: 5.59.7(eslint@8.41.0)(typescript@4.9.3) + '@types/eslint__js': + specifier: ^8.42.3 + version: 8.42.3 eslint: - specifier: '>= 8' - version: 8.41.0 - eslint-config-prettier: - specifier: ^8.8.0 - version: 8.8.0(eslint@8.41.0) + specifier: 9.x + version: 9.10.0 + eslint-config-turbo: + specifier: ^2.1.1 + version: 2.1.1(eslint@9.10.0) eslint-plugin-jsx-a11y: - specifier: ^6.7.1 - version: 6.7.1(eslint@8.41.0) + specifier: ^6.10.0 + version: 6.10.0(eslint@9.10.0) eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8) + specifier: ^5.1.3 + version: 5.1.3(eslint@9.10.0)(prettier@3.3.3) eslint-plugin-react: - specifier: ^7.32.2 - version: 7.32.2(eslint@8.41.0) + specifier: ^7.36.0 + version: 7.36.0(eslint@9.10.0) eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.41.0) - eslint-plugin-storybook: - specifier: ^0.6.12 - version: 0.6.12(eslint@8.41.0)(typescript@4.9.3) + specifier: 5.1.0-rc-d6cb4e77-20240911 + version: 5.1.0-rc-d6cb4e77-20240911(eslint@9.10.0) + globals: + specifier: ^15.9.0 + version: 15.9.0 + typescript-eslint: + specifier: ^8.5.0 + version: 8.5.0(eslint@9.10.0)(typescript@5.4.2) config/prettier-config: dependencies: prettier: specifier: 3.x - version: 2.8.8 + version: 3.3.3 config/typescript-config: {} @@ -546,7 +546,7 @@ importers: devDependencies: '@chromatic-com/storybook': specifier: ^1.5.0 - version: 1.5.0(react@17.0.2) + version: 1.5.0(react@18.0.0) '@ilo-org/eslint-config': specifier: workspace:* version: link:../../config/eslint-config @@ -564,16 +564,16 @@ importers: version: 0.3.1(@swc/core@1.7.1)(rollup@3.23.0) '@storybook/addon-essentials': specifier: ^8.1.9 - version: 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + version: 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/addon-interactions': specifier: ^8.1.9 version: 8.1.9 '@storybook/addon-links': specifier: ^8.1.9 - version: 8.1.9(react@17.0.2) + version: 8.1.9(react@18.0.0) '@storybook/blocks': specifier: ^8.1.9 - version: 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + version: 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/builder-vite': specifier: ^8.1.9 version: 8.1.9(prettier@3.3.3)(typescript@4.9.3)(vite@5.3.1) @@ -582,16 +582,16 @@ importers: version: 8.1.9(prettier@3.3.3) '@storybook/html-vite': specifier: ^8.1.9 - version: 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2)(typescript@4.9.3)(vite@5.3.1) + version: 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0)(typescript@4.9.3)(vite@5.3.1) '@storybook/manager-api': specifier: ^8.1.9 - version: 8.1.9(react-dom@18.3.1)(react@17.0.2) + version: 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/test': specifier: ^8.1.9 version: 8.1.9 '@storybook/theming': specifier: ^8.1.9 - version: 8.1.9(react-dom@18.3.1)(react@17.0.2) + version: 8.1.9(react-dom@18.3.1)(react@18.0.0) '@swc/core': specifier: ^1.7.1 version: 1.7.1 @@ -601,6 +601,9 @@ importers: drupal-twig-extensions: specifier: ^1.0.0-beta.5 version: 1.0.0-beta.5 + eslint-plugin-cypress: + specifier: ^3.5.0 + version: 3.5.0(eslint@9.10.0) glob: specifier: ^10.3.10 version: 10.3.10 @@ -609,7 +612,7 @@ importers: version: 3.4.0 storybook: specifier: ^8.1.9 - version: 8.1.9(react-dom@18.3.1)(react@17.0.2) + version: 8.1.9(react-dom@18.3.1)(react@18.0.0) storybook-addon-rtl: specifier: ^1.0.0 version: 1.0.0 @@ -3675,14 +3678,14 @@ packages: prettier: 2.8.8 dev: false - /@chromatic-com/storybook@1.5.0(react@17.0.2): + /@chromatic-com/storybook@1.5.0(react@18.0.0): resolution: {integrity: sha512-LkLKv7SWu/6kGep1ft2HA1T/cm14wU0zoW71gE4cZRcgUoRQJtyhITFTLHrjqAxz6bVqNgqzQtd5oBZ2nK3L3g==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} dependencies: chromatic: 11.7.1 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.1.0(react@17.0.2) + react-confetti: 6.1.0(react@18.0.0) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -3756,14 +3759,6 @@ packages: engines: {node: '>=10.0.0'} dev: true - /@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@17.0.2): - resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} - peerDependencies: - react: '>=16.8.0' - dependencies: - react: 17.0.2 - dev: true - /@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.0.0): resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} peerDependencies: @@ -4163,30 +4158,49 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@eslint-community/eslint-utils@4.4.0(eslint@9.0.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.41.0 + eslint: 9.0.0 eslint-visitor-keys: 3.4.3 dev: false - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.10.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.57.0 + eslint: 9.10.0 eslint-visitor-keys: 3.4.3 - dev: true /@eslint-community/regexpp@4.11.0: resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + /@eslint/config-array@0.18.0: + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4202,17 +4216,48 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true - /@eslint/js@8.41.0: - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false + /@eslint/eslintrc@3.1.0: + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 10.1.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color /@eslint/js@8.57.0: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js@9.0.0: + resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: false + + /@eslint/js@9.10.0: + resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + /@eslint/object-schema@2.1.4: + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + /@eslint/plugin-kit@0.1.0: + resolution: {integrity: sha512-autAXT203ixhqei9xt+qkYOvY8l6LAFIdT2UXc/RPNeUVfqRF1BV94GTJyVPFKT8nFM6MyVJhjLj9E8JWvf5zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + levn: 0.4.1 + /@fal-works/esbuild-plugin-global-externals@2.1.2: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: true @@ -4246,6 +4291,19 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true + + /@humanwhocodes/config-array@0.12.3: + resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + dev: false /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -4255,6 +4313,10 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead + /@humanwhocodes/retry@0.3.0: + resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} + engines: {node: '>=18.18'} + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -4863,7 +4925,7 @@ packages: '@rollup/pluginutils': 5.1.0(rollup@3.23.0) js-yaml: 4.1.0 tosource: 2.0.0-alpha.3 - vite: 5.3.1(@types/node@17.0.45) + vite: 5.3.1 transitivePeerDependencies: - rollup @@ -4903,7 +4965,6 @@ packages: /@pkgr/core@0.1.1: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dev: true /@polka/url@1.0.0-next.25: resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} @@ -4917,19 +4978,6 @@ packages: resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} dev: true - /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} peerDependencies: @@ -4943,19 +4991,6 @@ packages: react: 18.0.0 dev: true - /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} peerDependencies: @@ -5034,7 +5069,7 @@ packages: react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.0.0) dev: true - /@radix-ui/react-dialog@1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-dialog@1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==} peerDependencies: '@types/react': '*' @@ -5048,22 +5083,22 @@ packages: optional: true dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-portal': 1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-presence': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-dismissable-layer': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-focus-scope': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-portal': 1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-presence': 1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 aria-hidden: 1.2.4 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) - react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) + react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.0.0) dev: true /@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.0.0)(react@18.0.0): @@ -5113,7 +5148,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@radix-ui/react-dismissable-layer@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-dismissable-layer@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} peerDependencies: '@types/react': '*' @@ -5127,26 +5162,13 @@ packages: optional: true dependencies: '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@types/react': 18.3.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) - dev: true - - /@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 - react: 17.0.2 + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.0.0): @@ -5205,7 +5227,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@radix-ui/react-focus-scope@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-focus-scope@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} peerDependencies: '@types/react': '*' @@ -5218,26 +5240,12 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@types/react': 18.3.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) - dev: true - - /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 - react: 17.0.2 + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.0.0): @@ -5295,7 +5303,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@radix-ui/react-portal@1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-portal@1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} peerDependencies: '@types/react': '*' @@ -5308,11 +5316,11 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-primitive': 2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.0.0)(react@18.0.0): @@ -5356,7 +5364,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@radix-ui/react-presence@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-presence@1.1.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} peerDependencies: '@types/react': '*' @@ -5369,11 +5377,11 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.0.0)(react@18.0.0): @@ -5415,7 +5423,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@radix-ui/react-primitive@2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@radix-ui/react-primitive@2.0.0(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} peerDependencies: '@types/react': '*' @@ -5428,24 +5436,10 @@ packages: '@types/react-dom': optional: true dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@types/react': 18.3.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) - dev: true - - /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@types/react': 18.3.3 - react: 17.0.2 + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.0.0): @@ -5462,19 +5456,6 @@ packages: react: 18.0.0 dev: true - /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} peerDependencies: @@ -5488,20 +5469,6 @@ packages: react: 18.0.0 dev: true - /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: @@ -5516,20 +5483,6 @@ packages: react: 18.0.0 dev: true - /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@17.0.2) - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} peerDependencies: @@ -5544,19 +5497,6 @@ packages: react: 18.0.0 dev: true - /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - dev: true - /@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} peerDependencies: @@ -6038,10 +5978,10 @@ packages: - supports-color dev: true - /@storybook/addon-controls@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2): + /@storybook/addon-controls@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-B5+UFAnlu82QHX8bOHj022f3zi9rbqGxBqgLnx54ebl6ZgMEe9IGaOnGWyHjpFofy9yBX2Ti5+7ClvFhmyjAig==} dependencies: - '@storybook/blocks': 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + '@storybook/blocks': 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) dequal: 2.0.3 lodash: 4.17.21 ts-dedent: 2.2.0 @@ -6145,12 +6085,12 @@ packages: - webpack-sources dev: true - /@storybook/addon-essentials@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2): + /@storybook/addon-essentials@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-VpEG+qmj7vKPMUSPKsGFwZgbm4QVM2bTqZEbW9zvPOFIbTKtrGaq/n/O0LhMramPkoQZKYKs/0i7OsEoZaOybQ==} dependencies: '@storybook/addon-actions': 8.1.9 '@storybook/addon-backgrounds': 8.1.9 - '@storybook/addon-controls': 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + '@storybook/addon-controls': 8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/addon-docs': 8.1.9(prettier@3.3.3) '@storybook/addon-highlight': 8.1.9 '@storybook/addon-measure': 8.1.9 @@ -6158,7 +6098,7 @@ packages: '@storybook/addon-toolbars': 8.1.9 '@storybook/addon-viewport': 8.1.9 '@storybook/core-common': 8.1.9(prettier@3.3.3) - '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/node-logger': 8.1.9 '@storybook/preview-api': 8.1.9 ts-dedent: 2.2.0 @@ -6190,20 +6130,6 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-links@8.1.9(react@17.0.2): - resolution: {integrity: sha512-gawakQHokGDLEDIyyJzxHB0d5AJi2sSLzoNc0cvewEE55i6T7jvpXpVqTu6/ZtVFZ+3x3gLIQ6Q3krNNIz6W2A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - peerDependenciesMeta: - react: - optional: true - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/global': 5.0.0 - react: 17.0.2 - ts-dedent: 2.2.0 - dev: true - /@storybook/addon-links@8.1.9(react@18.0.0): resolution: {integrity: sha512-gawakQHokGDLEDIyyJzxHB0d5AJi2sSLzoNc0cvewEE55i6T7jvpXpVqTu6/ZtVFZ+3x3gLIQ6Q3krNNIz6W2A==} peerDependencies: @@ -6332,7 +6258,7 @@ packages: - supports-color dev: true - /@storybook/blocks@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2): + /@storybook/blocks@8.1.9(@types/react@18.3.3)(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-AB7icCijK2rft5kmzFF7bHuTdVIf6u5r26r4auqYxxVsHV87+k12kLvC8AyEssVIKMo+2vzImmdlhIScpCjrdQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6345,26 +6271,26 @@ packages: dependencies: '@storybook/channels': 8.1.9 '@storybook/client-logger': 8.1.9 - '@storybook/components': 8.1.9(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) + '@storybook/components': 8.1.9(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/core-events': 8.1.9 '@storybook/csf': 0.1.11 '@storybook/docs-tools': 8.1.9(prettier@3.3.3) '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@17.0.2) - '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@18.0.0) + '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/preview-api': 8.1.9 - '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/types': 8.1.9 '@types/lodash': 4.17.7 color-convert: 2.0.1 dequal: 2.0.3 lodash: 4.17.21 - markdown-to-jsx: 7.3.2(react@17.0.2) + markdown-to-jsx: 7.3.2(react@18.0.0) memoizerific: 1.11.3 polished: 4.3.1 - react: 17.0.2 - react-colorful: 5.6.1(react-dom@18.3.1)(react@17.0.2) - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-colorful: 5.6.1(react-dom@18.3.1)(react@18.0.0) + react-dom: 18.3.1(react@18.0.0) telejson: 7.2.0 tocbot: 4.29.0 ts-dedent: 2.2.0 @@ -6433,7 +6359,7 @@ packages: magic-string: 0.30.11 ts-dedent: 2.2.0 typescript: 4.9.3 - vite: 5.3.1(@types/node@20.16.0) + vite: 5.3.1 transitivePeerDependencies: - encoding - prettier @@ -6501,7 +6427,7 @@ packages: - utf-8-validate dev: true - /@storybook/cli@8.1.9(react-dom@18.3.1)(react@17.0.2): + /@storybook/cli@8.1.9(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-+4DQJf5yrdmKrAs8sx0WvKu/ja49oOLQU2MxRPKhXW3bxDFjkTYvWuCKwSbMwUa7Npt96CK3bwAPP53jz/+mXA==} hasBin: true dependencies: @@ -6511,7 +6437,7 @@ packages: '@storybook/codemod': 8.1.9 '@storybook/core-common': 8.1.9(prettier@3.3.3) '@storybook/core-events': 8.1.9 - '@storybook/core-server': 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + '@storybook/core-server': 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/csf-tools': 8.1.9 '@storybook/node-logger': 8.1.9 '@storybook/telemetry': 8.1.9(prettier@3.3.3) @@ -6625,23 +6551,23 @@ packages: - '@types/react-dom' dev: true - /@storybook/components@8.1.9(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2): + /@storybook/components@8.1.9(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-YGDYTJfobtNDBJrvXNgmExX3LGnb9jGPGdroS4uHewLFaqEI3Fqu3RiFLaJf40TlZ27uWLprysdLRol8j+wYEw==} 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 dependencies: - '@radix-ui/react-dialog': 1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@17.0.2) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@17.0.2) + '@radix-ui/react-dialog': 1.1.1(@types/react@18.3.3)(react-dom@18.3.1)(react@18.0.0) + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.0.0) '@storybook/client-logger': 8.1.9 '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@17.0.2) - '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@18.0.0) + '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/types': 8.1.9 memoizerific: 1.11.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) util-deprecate: 1.0.2 transitivePeerDependencies: - '@types/react' @@ -6756,7 +6682,7 @@ packages: - utf-8-validate dev: true - /@storybook/core-server@8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2): + /@storybook/core-server@8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-bn3M264vr3GY9kgAdRRIUdVV4PcUqtYvttQ/h6XDVJWC1UYUQW49zQNxQLQUXSQo4KLISnvTKHmP5qgbY6BASQ==} dependencies: '@aw-web-design/x-default-browser': 1.4.126 @@ -6772,7 +6698,7 @@ packages: '@storybook/docs-mdx': 3.1.0-next.0 '@storybook/global': 5.0.0 '@storybook/manager': 8.1.9 - '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/manager-api': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/node-logger': 8.1.9 '@storybook/preview-api': 8.1.9 '@storybook/telemetry': 8.1.9(prettier@3.3.3) @@ -6840,12 +6766,6 @@ packages: - supports-color dev: true - /@storybook/csf@0.0.1: - resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} - dependencies: - lodash: 4.17.21 - dev: false - /@storybook/csf@0.1.11: resolution: {integrity: sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==} dependencies: @@ -6877,12 +6797,12 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true - /@storybook/html-vite@8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2)(typescript@4.9.3)(vite@5.3.1): + /@storybook/html-vite@8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0)(typescript@4.9.3)(vite@5.3.1): resolution: {integrity: sha512-+gErm5VO3bMaAu5VeGMVmAP/Z29beIuv0o/BhFnGEduskrD+zKGs7JuxwXr4rs5GB/EBuyPzIevqphIApH/yEA==} engines: {node: '>=18.0.0'} dependencies: '@storybook/builder-vite': 8.1.9(prettier@3.3.3)(typescript@4.9.3)(vite@5.3.1) - '@storybook/core-server': 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@17.0.2) + '@storybook/core-server': 8.1.9(prettier@3.3.3)(react-dom@18.3.1)(react@18.0.0) '@storybook/html': 8.1.9(prettier@3.3.3) '@storybook/node-logger': 8.1.9 '@storybook/types': 8.1.9 @@ -6928,15 +6848,15 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@storybook/icons@1.2.10(react-dom@18.3.1)(react@17.0.2): + /@storybook/icons@1.2.10(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==} engines: {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 dependencies: - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@storybook/instrumenter@8.1.9: @@ -6974,7 +6894,7 @@ packages: - react-dom dev: true - /@storybook/manager-api@8.1.9(react-dom@18.3.1)(react@17.0.2): + /@storybook/manager-api@8.1.9(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-iafn/C9Bg9UHae7FoL5rNLCeQQnzvm+kKRlQzP5iVSJurnaYnajzej4baoZmF/eZJTFLdyp8klsqcl+NLJh8iA==} dependencies: '@storybook/channels': 8.1.9 @@ -6982,9 +6902,9 @@ packages: '@storybook/core-events': 8.1.9 '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@17.0.2) + '@storybook/icons': 1.2.10(react-dom@18.3.1)(react@18.0.0) '@storybook/router': 8.1.9 - '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/theming': 8.1.9(react-dom@18.3.1)(react@18.0.0) '@storybook/types': 8.1.9 dequal: 2.0.3 lodash: 4.17.21 @@ -7183,7 +7103,7 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /@storybook/theming@8.1.9(react-dom@18.3.1)(react@17.0.2): + /@storybook/theming@8.1.9(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-CVM3F4Fa9cIFL4u/BhbANWytShBFeFBZeCFwvcJizJUL+nSgVlxeYilxwQB/1AxyJn/+OprW3nCw5aSbui/EEA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -7194,12 +7114,12 @@ packages: react-dom: optional: true dependencies: - '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@17.0.2) + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.0.0) '@storybook/client-logger': 8.1.9 '@storybook/global': 5.0.0 memoizerific: 1.11.3 - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true /@storybook/types@8.1.9: @@ -7529,6 +7449,19 @@ packages: resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} dev: true + /@types/eslint@9.6.1: + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: false + + /@types/eslint__js@8.42.3: + resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} + dependencies: + '@types/eslint': 9.6.1 + dev: false + /@types/estree@0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true @@ -7663,6 +7596,7 @@ packages: /@types/node@17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + dev: true /@types/node@18.19.50: resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} @@ -7735,6 +7669,7 @@ packages: /@types/semver@7.5.8: resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -7813,34 +7748,6 @@ packages: dev: false optional: true - /@typescript-eslint/eslint-plugin@5.59.7(@typescript-eslint/parser@5.59.7)(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-BL+jYxUFIbuYwy+4fF86k5vdT9lT0CNJ6HtwrIvGh0PhH8s0yy5rjaKH2fDCrz5ITHy07WCzVGNvAmjJh4IJFA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 5.59.7(eslint@8.41.0)(typescript@4.9.3) - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/type-utils': 5.59.7(eslint@8.41.0)(typescript@4.9.3) - '@typescript-eslint/utils': 5.59.7(eslint@8.41.0)(typescript@4.9.3) - debug: 4.3.7 - eslint: 8.41.0 - grapheme-splitter: 1.0.4 - ignore: 5.3.2 - natural-compare-lite: 1.4.0 - semver: 7.6.3 - tsutils: 3.21.0(typescript@4.9.3) - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color - dev: false - /@typescript-eslint/eslint-plugin@7.1.0(@typescript-eslint/parser@7.1.0)(eslint@8.57.0)(typescript@4.9.3): resolution: {integrity: sha512-j6vT/kCulhG5wBmGtstKeiVr1rdXE4nk+DT1k6trYkwlrvW9eOF5ZbgKnd/YR6PcM4uTEXa0h6Fcvf6X7Dxl0w==} engines: {node: ^16.0.0 || >=18.0.0} @@ -7870,22 +7777,29 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.59.7(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-VhpsIEuq/8i5SF+mPg9jSdIwgMBBp0z9XqjiEay+81PYLJuroN+ET1hM5IhkiYMJd9MkTz8iJLt7aaGAgzWUbQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0)(eslint@9.10.0)(typescript@5.4.2): + resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/typescript-estree': 5.59.7(typescript@4.9.3) - debug: 4.3.7 - eslint: 8.41.0 - typescript: 4.9.3 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.4.2) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/type-utils': 8.5.0(eslint@9.10.0)(typescript@5.4.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 8.5.0 + eslint: 9.10.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color dev: false @@ -7911,20 +7825,25 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.7: - resolution: {integrity: sha512-FL6hkYWK9zBGdxT2wWEd2W8ocXMu3K94i3gvMrjXpx+koFYdYV7KprKfirpgY34vTGzEPPuKoERpP8kD5h7vZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/visitor-keys': 5.59.7 - dev: false - - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@8.5.0(eslint@9.10.0)(typescript@5.4.2): + resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.4.2) + '@typescript-eslint/visitor-keys': 8.5.0 + debug: 4.3.7 + eslint: 9.10.0 + typescript: 5.4.2 + transitivePeerDependencies: + - supports-color dev: false /@typescript-eslint/scope-manager@7.1.0: @@ -7935,24 +7854,12 @@ packages: '@typescript-eslint/visitor-keys': 7.1.0 dev: true - /@typescript-eslint/type-utils@5.59.7(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-ozuz/GILuYG7osdY5O5yg0QxXUAEoI4Go3Do5xeu+ERH9PorHBPSdvD3Tjp2NN2bNLh1NJQSsQu2TPu/Ly+HaQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + /@typescript-eslint/scope-manager@8.5.0: + resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/typescript-estree': 5.59.7(typescript@4.9.3) - '@typescript-eslint/utils': 5.59.7(eslint@8.41.0)(typescript@4.9.3) - debug: 4.3.7 - eslint: 8.41.0 - tsutils: 3.21.0(typescript@4.9.3) - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 dev: false /@typescript-eslint/type-utils@7.1.0(eslint@8.57.0)(typescript@4.9.3): @@ -7975,61 +7882,33 @@ packages: - supports-color dev: true - /@typescript-eslint/types@5.59.7: - resolution: {integrity: sha512-UnVS2MRRg6p7xOSATscWkKjlf/NDKuqo5TdbWck6rIRZbmKpVNTLALzNvcjIfHBE7736kZOFc/4Z3VcZwuOM/A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - /@typescript-eslint/types@7.1.0: - resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@5.59.7(typescript@4.9.3): - resolution: {integrity: sha512-4A1NtZ1I3wMN2UGDkU9HMBL+TIQfbrh4uS0WDMMpf3xMRursDbqEf1ahh6vAAe3mObt8k3ZATnezwG4pdtWuUQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@8.5.0(eslint@9.10.0)(typescript@5.4.2): + resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/visitor-keys': 5.59.7 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.4.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.4.2) debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@4.9.3) - typescript: 4.9.3 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: + - eslint - supports-color dev: false - /@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.3): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.3 - tsutils: 3.21.0(typescript@4.9.3) - typescript: 4.9.3 - transitivePeerDependencies: - - supports-color + /@typescript-eslint/types@7.1.0: + resolution: {integrity: sha512-qTWjWieJ1tRJkxgZYXx6WUYtWlBc48YRxgY2JN1aGeVpkhmnopq+SUC8UEVGNXIvWH7XyuTjwALfG6bFEgCkQA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/types@8.5.0: + resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: false /@typescript-eslint/typescript-estree@7.1.0(typescript@4.9.3): @@ -8054,44 +7933,26 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.59.7(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-yCX9WpdQKaLufz5luG4aJbOpdXf/fjwGMcLFXZVPUz3QqLirG5QcwwnIHNf8cjLjxK4qtzTO8udUtMQSAToQnQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@8.5.0(typescript@5.4.2): + resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.59.7 - '@typescript-eslint/types': 5.59.7 - '@typescript-eslint/typescript-estree': 5.59.7(typescript@4.9.3) - eslint: 8.41.0 - eslint-scope: 5.1.1 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - - /@typescript-eslint/utils@5.62.0(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.3) - eslint: 8.41.0 - eslint-scope: 5.1.1 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/visitor-keys': 8.5.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.4.2) + typescript: 5.4.2 transitivePeerDependencies: - supports-color - - typescript dev: false /@typescript-eslint/utils@7.1.0(eslint@8.57.0)(typescript@4.9.3): @@ -8113,20 +7974,20 @@ packages: - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.7: - resolution: {integrity: sha512-tyN+X2jvMslUszIiYbF0ZleP+RqQsFVpGrKI6e0Eet1w8WmhsAtmzaqm8oM8WJQ1ysLwhnsK/4hYHJjOgJVfQQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.7 - eslint-visitor-keys: 3.4.3 - dev: false - - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@8.5.0(eslint@9.10.0)(typescript@5.4.2): + resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) + '@typescript-eslint/scope-manager': 8.5.0 + '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.4.2) + eslint: 9.10.0 + transitivePeerDependencies: + - supports-color + - typescript dev: false /@typescript-eslint/visitor-keys@7.1.0: @@ -8137,6 +7998,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@8.5.0: + resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + '@typescript-eslint/types': 8.5.0 + eslint-visitor-keys: 3.4.3 + dev: false + /@un/figma-connect@0.0.7: resolution: {integrity: sha512-gwymbgJWijk8JTQOyYuKUhC/WvIlw+ffLkwyVQMXuZBsYO+moOExZNRjQFrSvCKiTryfex4czhXg+NI/T2mEmg==} dependencies: @@ -8778,12 +8647,12 @@ packages: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: deep-equal: 2.2.3 - dev: true /aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} dependencies: dequal: 2.0.3 + dev: true /arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} @@ -8879,6 +8748,18 @@ packages: engines: {node: '>=0.10.0'} dev: true + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + dev: false + /array.prototype.findlastindex@1.2.5: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} @@ -8986,8 +8867,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /ast-types-flow@0.0.7: - resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} + /ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: false /ast-types@0.16.1: @@ -9084,8 +8965,8 @@ packages: - debug dev: true - /axobject-query@3.2.4: - resolution: {integrity: sha512-aPTElBrbifBU1krmZxGZOlBkslORe7Ll7+BDnI50Wy4LgOt69luMgevkDfTq1O/ZgprooPCtWpjCwKSZw/iZ4A==} + /axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} dev: false @@ -9473,7 +9354,6 @@ packages: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - dev: true /braces@2.3.2: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} @@ -10851,7 +10731,6 @@ packages: which-boxed-primitive: 1.0.2 which-collection: 1.0.2 which-typed-array: 1.1.15 - dev: true /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} @@ -10985,6 +10864,7 @@ packages: /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + dev: true /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} @@ -11069,6 +10949,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -11143,6 +11024,11 @@ packages: engines: {node: '>=10'} dev: true + /dotenv@16.0.3: + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} + dev: false + /dotenv@16.4.5: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} @@ -11346,7 +11232,26 @@ packages: is-string: 1.0.7 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 - dev: true + + /es-iterator-helpers@1.0.19: + resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + has-property-descriptors: 1.0.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.2 + safe-array-concat: 1.1.2 + dev: false /es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -11529,15 +11434,6 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@8.8.0(eslint@8.41.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.41.0 - dev: false - /eslint-config-prettier@9.1.0(eslint@8.57.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -11547,6 +11443,15 @@ packages: eslint: 8.57.0 dev: true + /eslint-config-turbo@2.1.1(eslint@9.10.0): + resolution: {integrity: sha512-JJF8SZErmgKCGkt124WUmTt0sQ5YLvPo2YxDsfzn9avGJC7/BQIa+3FZoDb3zeYYsZx91pZ6htQAJaKK8NQQAg==} + peerDependencies: + eslint: '>6.6.0' + dependencies: + eslint: 9.10.0 + eslint-plugin-turbo: 2.1.1(eslint@9.10.0) + dev: false + /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: @@ -11639,6 +11544,15 @@ packages: - supports-color dev: true + /eslint-plugin-cypress@3.5.0(eslint@9.10.0): + resolution: {integrity: sha512-JZQ6XnBTNI8h1B9M7wJSFzc48SYbh7VMMKaNTQOFa3BQlnmXPrVc4PKen8R+fpv6VleiPeej6VxloGb42zdRvw==} + peerDependencies: + eslint: '>=7' + dependencies: + eslint: 9.10.0 + globals: 13.24.0 + dev: true + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.1.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} @@ -11674,49 +11588,53 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.41.0): - resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} + /eslint-plugin-jsx-a11y@6.10.0(eslint@9.10.0): + resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 dependencies: - '@babel/runtime': 7.25.6 - aria-query: 5.3.0 + aria-query: 5.1.3 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 - ast-types-flow: 0.0.7 + ast-types-flow: 0.0.8 axe-core: 4.10.0 - axobject-query: 3.2.4 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.41.0 - has: 1.0.4 + es-iterator-helpers: 1.0.19 + eslint: 9.10.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 - language-tags: 1.0.5 + language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.8 object.fromentries: 2.0.8 - semver: 6.3.1 + safe-regex-test: 1.0.3 + string.prototype.includes: 2.0.0 dev: false - /eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.8.0)(eslint@8.41.0)(prettier@2.8.8): - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.3): + resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - eslint: '>=7.28.0' + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' eslint-config-prettier: '*' - prettier: '>=2.0.0' + prettier: '>=3.0.0' peerDependenciesMeta: + '@types/eslint': + optional: true eslint-config-prettier: optional: true dependencies: - eslint: 8.41.0 - eslint-config-prettier: 8.8.0(eslint@8.41.0) - prettier: 2.8.8 + eslint: 8.57.0 + eslint-config-prettier: 9.1.0(eslint@8.57.0) + prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - dev: false + synckit: 0.8.8 + dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.3.3): + /eslint-plugin-prettier@5.1.3(eslint@9.10.0)(prettier@3.3.3): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -11730,60 +11648,55 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.57.0 - eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint: 9.10.0 prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 - dev: true + dev: false - /eslint-plugin-react-hooks@4.6.0(eslint@8.41.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + /eslint-plugin-react-hooks@5.1.0-rc-d6cb4e77-20240911(eslint@9.10.0): + resolution: {integrity: sha512-bVg0IJv+ti3rSR6LSStSSaLSbEVX31gE9Id9SxvK+4fLHMXQHPakeusjipFpzgM1XvRSDqQPucxOhI2+i7KMNQ==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 dependencies: - eslint: 8.41.0 + eslint: 9.10.0 dev: false - /eslint-plugin-react@7.32.2(eslint@8.41.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} + /eslint-plugin-react@7.36.0(eslint@9.10.0): + resolution: {integrity: sha512-c+RvVxBH0JE2kHt/8p043nPPhIohSnyQOZApIzGJqM2tXnjEzcZzyKIAg72gymLtuwuKfgGxW2H2aqTJqRgTfQ==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 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 - eslint: 8.41.0 + es-iterator-helpers: 1.0.19 + eslint: 9.10.0 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.hasown: 1.1.4 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 dev: false - /eslint-plugin-storybook@0.6.12(eslint@8.41.0)(typescript@4.9.3): - resolution: {integrity: sha512-XbIvrq6hNVG6rpdBr+eBw63QhOMLpZneQVSooEDow8aQCWGCk/5vqtap1yxpVydNfSxi3S/3mBBRLQqKUqQRww==} - engines: {node: 12.x || 14.x || >= 16} + /eslint-plugin-turbo@2.1.1(eslint@9.10.0): + resolution: {integrity: sha512-E/34kdQd0n3RP18+e0DSV0f3YTSCOojUh1p4X0Xrho2PBYmJ3umSnNo9FhkZt6UDACl+nBQcYTFkRHMz76lJdw==} peerDependencies: - eslint: '>=6' + eslint: '>6.6.0' dependencies: - '@storybook/csf': 0.0.1 - '@typescript-eslint/utils': 5.62.0(eslint@8.41.0)(typescript@4.9.3) - eslint: 8.41.0 - requireindex: 1.2.0 - ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - - typescript + dotenv: 16.0.3 + eslint: 9.10.0 dev: false /eslint-scope@5.1.1: @@ -11792,6 +11705,7 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: true /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -11799,46 +11713,101 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true + + /eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.11.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint@9.0.0: + resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.0.0 + '@humanwhocodes/config-array': 0.12.3 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.7 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 graphemer: 1.4.0 ignore: 5.3.2 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -11846,49 +11815,49 @@ packages: natural-compare: 1.4.0 optionator: 0.9.4 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: false - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint@9.10.0: + resolution: {integrity: sha512-Y4D0IgtBZfOcOUAIQTSXBKoNGfY0REGqHJG6+Q81vNippW5YlKjHFj4soMxamKK1NXHUWuBZTLdU3Km+L/pcHw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.10.0) '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/config-array': 0.18.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.10.0 + '@eslint/plugin-kit': 0.1.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.7 - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.2 + eslint-visitor-keys: 4.0.0 + espree: 10.1.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 @@ -11897,7 +11866,6 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - dev: true /esniff@2.0.1: resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} @@ -11909,6 +11877,14 @@ packages: type: 2.7.3 dev: true + /espree@10.1.0: + resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.0.0 + /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -11916,6 +11892,7 @@ packages: acorn: 8.12.1 acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 3.4.3 + dev: true /esprima@2.7.3: resolution: {integrity: sha512-OarPfz0lFCiW4/AV2Oy1Rp9qu0iusTKqykwTspGCZtPxmF81JR4MmIebvF1F9+UOKth2ZubLQ4XGGaU+hSn99A==} @@ -11943,6 +11920,7 @@ packages: /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} @@ -12330,6 +12308,13 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.2.0 + dev: true + + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + dependencies: + flat-cache: 4.0.1 /file-system-cache@2.3.0: resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} @@ -12486,6 +12471,14 @@ packages: flatted: 3.3.1 keyv: 4.5.4 rimraf: 3.0.2 + dev: true + + /flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 /flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -12967,6 +12960,16 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true + + /globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + /globals@15.9.0: + resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + engines: {node: '>=18'} + dev: false /globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} @@ -13309,6 +13312,7 @@ packages: /has@1.0.4: resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} + dev: true /hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} @@ -13684,7 +13688,6 @@ packages: dependencies: call-bind: 1.0.7 has-tostringtag: 1.0.2 - dev: true /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} @@ -13700,6 +13703,13 @@ packages: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} dev: false + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: false + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -13822,6 +13832,12 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.7 + dev: false + /is-fullwidth-code-point@1.0.0: resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==} engines: {node: '>=0.10.0'} @@ -13852,7 +13868,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.2 - dev: true /is-glob@3.1.0: resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} @@ -13888,7 +13903,6 @@ packages: /is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - dev: true /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -14004,7 +14018,6 @@ packages: /is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - dev: true /is-shared-array-buffer@1.0.3: resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} @@ -14083,7 +14096,6 @@ packages: /is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - dev: true /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -14096,7 +14108,6 @@ packages: dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 - dev: true /is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -14200,6 +14211,16 @@ packages: istanbul-lib-report: 3.0.1 dev: true + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.4 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 + dev: false + /jackspeak@2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -15474,8 +15495,9 @@ packages: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} dev: false - /language-tags@1.0.5: - resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} + /language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.23 dev: false @@ -15914,15 +15936,6 @@ packages: object-visit: 1.0.1 dev: true - /markdown-to-jsx@7.3.2(react@17.0.2): - resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} - engines: {node: '>= 10'} - peerDependencies: - react: '>= 0.14.0' - dependencies: - react: 17.0.2 - dev: true - /markdown-to-jsx@7.3.2(react@18.0.0): resolution: {integrity: sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==} engines: {node: '>= 10'} @@ -16128,7 +16141,6 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} @@ -16281,10 +16293,6 @@ packages: - supports-color dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: false - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -16480,7 +16488,6 @@ packages: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - dev: true /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -16552,15 +16559,6 @@ packages: es-abstract: 1.23.3 dev: true - /object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - dev: false - /object.map@1.0.1: resolution: {integrity: sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==} engines: {node: '>=0.10.0'} @@ -17538,7 +17536,6 @@ packages: resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true - dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -17744,23 +17741,23 @@ packages: react-dom: 18.0.0(react@18.0.0) dev: true - /react-colorful@5.6.1(react-dom@18.3.1)(react@17.0.2): + /react-colorful@5.6.1(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' dependencies: - react: 17.0.2 - react-dom: 18.3.1(react@17.0.2) + react: 18.0.0 + react-dom: 18.3.1(react@18.0.0) dev: true - /react-confetti@6.1.0(react@17.0.2): + /react-confetti@6.1.0(react@18.0.0): resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} engines: {node: '>=10.18'} peerDependencies: react: ^16.3.0 || ^17.0.1 || ^18.0.0 dependencies: - react: 17.0.2 + react: 18.0.0 tween-functions: 1.2.0 dev: true @@ -17810,13 +17807,13 @@ packages: react: 18.0.0 scheduler: 0.21.0 - /react-dom@18.3.1(react@17.0.2): + /react-dom@18.3.1(react@18.0.0): resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: react: ^18.3.1 dependencies: loose-envify: 1.4.0 - react: 17.0.2 + react: 18.0.0 scheduler: 0.23.2 dev: true @@ -17853,22 +17850,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - react-style-singleton: 2.2.1(@types/react@18.3.3)(react@17.0.2) - tslib: 2.3.1 - dev: true - /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} engines: {node: '>=10'} @@ -17885,25 +17866,6 @@ packages: tslib: 2.3.1 dev: true - /react-remove-scroll@2.5.7(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@17.0.2) - react-style-singleton: 2.2.1(@types/react@18.3.3)(react@17.0.2) - tslib: 2.3.1 - use-callback-ref: 1.3.2(@types/react@18.3.3)(react@17.0.2) - use-sidecar: 1.1.2(@types/react@18.3.3)(react@17.0.2) - dev: true - /react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} engines: {node: '>=10'} @@ -17923,23 +17885,6 @@ packages: use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.0.0) dev: true - /react-style-singleton@2.2.1(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - get-nonce: 1.0.1 - invariant: 2.2.4 - react: 17.0.2 - tslib: 2.3.1 - dev: true - /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} @@ -18105,6 +18050,19 @@ packages: balanced-match: 1.0.2 dev: true + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + globalthis: 1.0.4 + which-builtin-type: 1.1.4 + dev: false + /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -18273,11 +18231,6 @@ packages: /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - /requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - dev: false - /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -19153,7 +19106,6 @@ packages: engines: {node: '>= 0.4'} dependencies: internal-slot: 1.0.7 - dev: true /store2@2.14.3: resolution: {integrity: sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==} @@ -19178,11 +19130,11 @@ packages: - utf-8-validate dev: true - /storybook@8.1.9(react-dom@18.3.1)(react@17.0.2): + /storybook@8.1.9(react-dom@18.3.1)(react@18.0.0): resolution: {integrity: sha512-Jymrfn299+MJBIZVDYPJlIGJMZM33udFCjbeRdOHIXF2BfpqOSS2FoEfmlp3zya3gwyZDq/BE7uiBc7HIVZa4g==} hasBin: true dependencies: - '@storybook/cli': 8.1.9(react-dom@18.3.1)(react@17.0.2) + '@storybook/cli': 8.1.9(react-dom@18.3.1)(react@18.0.0) transitivePeerDependencies: - '@babel/preset-env' - bufferutil @@ -19249,6 +19201,13 @@ packages: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + /string.prototype.includes@2.0.0: + resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: false + /string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} @@ -19267,6 +19226,13 @@ packages: side-channel: 1.0.6 dev: false + /string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.3 + dev: false + /string.prototype.trim@1.2.9: resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} @@ -19520,7 +19486,6 @@ packages: dependencies: '@pkgr/core': 0.1.1 tslib: 2.7.0 - dev: true /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -19882,9 +19847,19 @@ packages: typescript: 4.9.3 dev: true + /ts-api-utils@1.3.0(typescript@5.4.2): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.4.2 + dev: false + /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + dev: true /ts-jest@29.2.5(@babel/core@7.25.2)(jest@27.5.1)(typescript@4.9.3): resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} @@ -19944,23 +19919,13 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true /tslib@2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} /tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - dev: true - - /tsutils@3.21.0(typescript@4.9.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 4.9.3 - dev: false /tty-table@4.2.3: resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==} @@ -20085,6 +20050,7 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -20169,6 +20135,24 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: true + /typescript-eslint@8.5.0(eslint@9.10.0)(typescript@5.4.2): + resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0)(eslint@9.10.0)(typescript@5.4.2) + '@typescript-eslint/parser': 8.5.0(eslint@9.10.0)(typescript@5.4.2) + '@typescript-eslint/utils': 8.5.0(eslint@9.10.0)(typescript@5.4.2) + typescript: 5.4.2 + transitivePeerDependencies: + - eslint + - supports-color + dev: false + /typescript@4.9.3: resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} engines: {node: '>=4.2.0'} @@ -20178,7 +20162,6 @@ packages: resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true - dev: true /ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -20440,21 +20423,6 @@ packages: resolution: {integrity: sha512-mtN6xk+Nac+oyJ/PrI7tzfmomRVNFIWKUbG8jdYFt52hxbiReFAXIjYskvu64/dvuW71IcB7lV8l0HvZMac6Jg==} dev: false - /use-callback-ref@1.3.2(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - react: 17.0.2 - tslib: 2.3.1 - dev: true - /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -20470,22 +20438,6 @@ packages: tslib: 2.3.1 dev: true - /use-sidecar@1.1.2(@types/react@18.3.3)(react@17.0.2): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.3.3 - detect-node-es: 1.1.0 - react: 17.0.2 - tslib: 2.3.1 - dev: true - /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.0.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} @@ -20815,7 +20767,6 @@ packages: rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 - dev: true /vite@5.3.1(@types/node@17.0.45): resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} @@ -20851,6 +20802,7 @@ packages: rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 + dev: true /vite@5.3.1(@types/node@20.16.0): resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} @@ -21143,6 +21095,24 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 + /which-builtin-type@1.1.4: + resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + dev: false + /which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} @@ -21151,7 +21121,6 @@ packages: is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.3 - dev: true /which-module@1.0.0: resolution: {integrity: sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==} From 32dfe3792b77d2db46c4a56aee3c069a0c03b84a Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 15:59:03 +0400 Subject: [PATCH 05/48] feat(eslint-config): implemented base configuration for JS --- .../eslint-config/variants/base-js.config.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 config/eslint-config/variants/base-js.config.js diff --git a/config/eslint-config/variants/base-js.config.js b/config/eslint-config/variants/base-js.config.js new file mode 100644 index 000000000..4bef51b07 --- /dev/null +++ b/config/eslint-config/variants/base-js.config.js @@ -0,0 +1,30 @@ +import js from "@eslint/js"; +import prettier from "eslint-plugin-prettier/recommended"; +import globals from "globals"; +import { IgnoreConfig } from "./ignores.config.js"; + +/** @type {import("eslint").Linter.Config} */ +const BaseJSConfig = { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + rules: { + "no-console": "warn", + "prettier/prettier": "error", + "no-duplicate-imports": "warn", + "no-await-in-loop": "warn", + "no-unused-vars": [ + "warn", + { + ignoreRestSiblings: true, + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + }, +}; + +export default [js.configs.recommended, prettier, BaseJSConfig, IgnoreConfig]; From 6173a3fa651cf5383d042c165f7272d49de3a569 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 15:59:18 +0400 Subject: [PATCH 06/48] feat(eslint-config): added separate ignores config --- config/eslint-config/variants/ignores.config.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 config/eslint-config/variants/ignores.config.js diff --git a/config/eslint-config/variants/ignores.config.js b/config/eslint-config/variants/ignores.config.js new file mode 100644 index 000000000..a20d5e621 --- /dev/null +++ b/config/eslint-config/variants/ignores.config.js @@ -0,0 +1,14 @@ +/** @type {import("eslint").Linter.Config} */ +const IgnoreConfig = { + ignores: [ + "**/*.config.{js,mjs,ts}", + "**/*.setup.{js,mjs,ts}", + "lib/", + "dist/", + "build/", + ".storybook/", + "storybook-static/", + ], +}; + +export { IgnoreConfig }; From 204bd22092171f982431e2a5bf496ace0f38f9fd Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 15:59:43 +0400 Subject: [PATCH 07/48] feat(eslint-config): implemented react and typescript configs --- .../eslint-config/variants/base-ts.config.js | 62 +++++++++++++++++++ config/eslint-config/variants/react.config.js | 50 +++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 config/eslint-config/variants/base-ts.config.js create mode 100644 config/eslint-config/variants/react.config.js diff --git a/config/eslint-config/variants/base-ts.config.js b/config/eslint-config/variants/base-ts.config.js new file mode 100644 index 000000000..e9f2fab14 --- /dev/null +++ b/config/eslint-config/variants/base-ts.config.js @@ -0,0 +1,62 @@ +import BaseJSConfig from "./base-js.config.js"; +import ts from "typescript-eslint"; +import { resolve } from "path"; + +const TSConfigs = [ + resolve(process.cwd(), "tsconfig.build.json"), + resolve(process.cwd(), "tsconfig.json"), +]; + +const RecommendedTSConfig = ts.configs.recommendedTypeChecked.map((config) => ({ + ...config, + files: ["**/*.ts", "**/*.tsx"], + languageOptions: { + ...config.languageOptions, + parserOptions: { + project: TSConfigs, + }, + }, +})); + +/** @type {import("eslint").Linter.Config} */ +const BaseTSConfig = { + files: ["**/*.ts"], + plugins: { + "@typescript-eslint": ts.plugin, + }, + languageOptions: { + parser: ts.parser, + parserOptions: { + sourceType: "module", + project: TSConfigs, + }, + }, + rules: { + "@typescript-eslint/class-literal-property-style": "warn", + "@typescript-eslint/no-duplicate-enum-values": "warn", + "@typescript-eslint/prefer-for-of": "warn", + "@typescript-eslint/consistent-type-definitions": ["error", "interface"], + "@typescript-eslint/no-unused-vars": [ + "warn", + { + ignoreRestSiblings: true, + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + // Migrated from old typescript-eslint config + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/ban-ts-ignore": "off", + }, +}; + +export default ts.config( + ...BaseJSConfig, + ...RecommendedTSConfig, + BaseTSConfig, + { + // disable type-aware linting on JS files + files: ["**/*.js"], + ...ts.configs.disableTypeChecked, + } +); diff --git a/config/eslint-config/variants/react.config.js b/config/eslint-config/variants/react.config.js new file mode 100644 index 000000000..dfedeb625 --- /dev/null +++ b/config/eslint-config/variants/react.config.js @@ -0,0 +1,50 @@ +import baseTsConfig from "./base-ts.config.js"; +import react from "eslint-plugin-react"; +import a11y from "eslint-plugin-jsx-a11y"; +import hooks from "eslint-plugin-react-hooks"; + +/** @type {import("eslint").Linter.Config} */ +const ReactConfig = { + files: ["**/*.{tsx,jsx}"], + settings: { + react: { + version: "18", + }, + }, + plugins: { + "react-hooks": hooks, + }, + languageOptions: { + parserOptions: { + ecmaFeatures: { + jsx: true, + }, + }, + }, + rules: { + // Migrated from old react config + "jsx-a11y/label-has-associated-control": [ + "error", + { + assert: "either", + controlComponents: [], + depth: 25, + labelAttributes: [], + labelComponents: [], + }, + ], + "jsx-a11y/click-events-have-key-events": "off", + "jsx-a11y/media-has-caption": "off", + "jsx-a11y/no-noninteractive-element-interactions": "off", + "react/prop-types": "off", + "react/display-name": "off", + }, +}; + +export default [ + ...baseTsConfig, + react.configs.flat.recommended, + react.configs.flat["jsx-runtime"], + a11y.flatConfigs.recommended, + ReactConfig, +]; From b8bebab4d2d73cffa4d74b4b5a62bc37fbe2f9b5 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 16:02:44 +0400 Subject: [PATCH 08/48] feat(eslint-config): added containre for future storybook config --- config/eslint-config/variants/storybook-js.config.js | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 config/eslint-config/variants/storybook-js.config.js diff --git a/config/eslint-config/variants/storybook-js.config.js b/config/eslint-config/variants/storybook-js.config.js new file mode 100644 index 000000000..e3bc92190 --- /dev/null +++ b/config/eslint-config/variants/storybook-js.config.js @@ -0,0 +1,4 @@ +// TODO: wait for the eslint-plugin-storybook v9 support https://github.com/storybookjs/eslint-plugin-storybook/issues/157 +import baseJsConfig from "./base-js.config.js"; + +export default [...baseJsConfig]; From 39fdf5de63c8b650514ff94aea56c078b4b33e44 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 16:18:52 +0400 Subject: [PATCH 09/48] refactor(eslint-config): replaced old exports --- config/eslint-config/base.js | 52 ------------------------------ config/eslint-config/index.js | 12 +++++-- config/eslint-config/typescript.js | 20 ------------ 3 files changed, 9 insertions(+), 75 deletions(-) delete mode 100644 config/eslint-config/base.js delete mode 100644 config/eslint-config/typescript.js diff --git a/config/eslint-config/base.js b/config/eslint-config/base.js deleted file mode 100644 index 7f06e673c..000000000 --- a/config/eslint-config/base.js +++ /dev/null @@ -1,52 +0,0 @@ -/* Base Eslint Settings for JS/JSX */ - -module.exports = { - env: { - browser: true, - es6: true, - jest: true, - node: true, - }, - globals: { - React: "writable", - }, - ignorePatterns: ["node_modules/"], - settings: { - react: { - version: "detect", - }, - }, - parserOptions: { - ecmaVersion: 2018, - sourceType: "module", - ecmaFeatures: { - jsx: true, - }, - }, - plugins: ["jsx-a11y", "prettier"], - extends: [ - "eslint:recommended", - "plugin:jsx-a11y/recommended", - "plugin:react-hooks/recommended", - "plugin:storybook/recommended", - "plugin:prettier/recommended", - ], - rules: { - "jsx-a11y/label-has-associated-control": [ - "error", - { - assert: "either", - controlComponents: [], - depth: 25, - labelAttributes: [], - labelComponents: [], - }, - ], - "jsx-a11y/click-events-have-key-events": "off", - "jsx-a11y/media-has-caption": "off", - "jsx-a11y/no-noninteractive-element-interactions": "off", - "react/prop-types": "off", - "react/react-in-jsx-scope": "off", - "prettier/prettier": "error", - }, -}; diff --git a/config/eslint-config/index.js b/config/eslint-config/index.js index 2358ad4d9..d208170e8 100644 --- a/config/eslint-config/index.js +++ b/config/eslint-config/index.js @@ -1,5 +1,11 @@ -"use strict"; +import js from "./variants/base-js.config.js"; +import ts from "./variants/base-ts.config.js"; +import react from "./variants/react.config.js"; +import storybook from "./variants/storybook-js.config.js"; -module.exports = { - extends: [require.resolve("./base")], +export default { + js, + ts, + react, + storybook, }; diff --git a/config/eslint-config/typescript.js b/config/eslint-config/typescript.js deleted file mode 100644 index f5c082773..000000000 --- a/config/eslint-config/typescript.js +++ /dev/null @@ -1,20 +0,0 @@ -/* Eslint Settings for TS/TSX */ - -module.exports = { - parser: "@typescript-eslint/parser", - globals: { - React: "writable", - }, - extends: [ - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - ], - plugins: ["@typescript-eslint"], - rules: { - "@typescript-eslint/ban-ts-comment": "off", - "@typescript-eslint/ban-ts-ignore": "off", - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-empty-function": "off", - }, -}; From b6fca52990cfe8e392767fa39bdb4f4f78fdc08a Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 17:23:20 +0400 Subject: [PATCH 10/48] build(twig): added cypress eslint plugin --- packages/twig/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/twig/package.json b/packages/twig/package.json index 0725856df..61ea65511 100644 --- a/packages/twig/package.json +++ b/packages/twig/package.json @@ -76,6 +76,7 @@ "@swc/core": "^1.7.1", "drupal-attribute": "^1.0.2", "drupal-twig-extensions": "^1.0.0-beta.5", + "eslint-plugin-cypress": "^3.5.0", "glob": "^10.3.10", "rollup-plugin-copy": "^3.4.0", "storybook": "^8.1.9", From cb89c08017de86d059766e5c6610ba63aae600e7 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 19:00:37 +0400 Subject: [PATCH 11/48] refactor(twig): swaped eslint config --- packages/twig/.eslintrc.cjs | 10 ---------- packages/twig/eslint.config.mjs | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) delete mode 100644 packages/twig/.eslintrc.cjs create mode 100644 packages/twig/eslint.config.mjs diff --git a/packages/twig/.eslintrc.cjs b/packages/twig/.eslintrc.cjs deleted file mode 100644 index d552e84a2..000000000 --- a/packages/twig/.eslintrc.cjs +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - root: true, - extends: ["@ilo-org/eslint-config"], - globals: { - Drupal: true, - cy: true, - }, - // Ignoring rollup.config until eslint update - ignorePatterns: ["dist/", "rollup.config.js"], -}; diff --git a/packages/twig/eslint.config.mjs b/packages/twig/eslint.config.mjs new file mode 100644 index 000000000..fea8f9637 --- /dev/null +++ b/packages/twig/eslint.config.mjs @@ -0,0 +1,18 @@ +import configs from "@ilo-org/eslint-config"; +import cypress from "eslint-plugin-cypress/flat"; + +/** @type {import("eslint").Linter.Config} */ +const TwigConfig = { + languageOptions: { + globals: { + Drupal: 'writeable', + }, + }, + rules:{ + "cypress/no-unnecessary-waiting": "off" + } +}; + + + +export default [...configs.js, cypress.configs.recommended, TwigConfig]; \ No newline at end of file From 9b6f4d87b18bc83bbd2e8e22b1e74fdbc8e0c177 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Tue, 17 Sep 2024 19:00:58 +0400 Subject: [PATCH 12/48] chore(twig): adjusted codebase to new eslint rules --- packages/twig/cypress/e2e/navigation/local-nav.cy.js | 1 + packages/twig/cypress/e2e/navigation/navigation.cy.js | 1 + packages/twig/src/components/accordion/accordion.behavior.js | 1 - packages/twig/src/components/breadcrumb/breadcrumb.behavior.js | 1 - packages/twig/src/components/callout/callout.behavior.js | 1 - packages/twig/src/components/icon/icon.behavior.js | 1 - packages/twig/src/components/loading/loading.behavior.js | 1 - packages/twig/src/components/modal/modal.behavior.js | 1 - packages/twig/src/components/navigation/navigation.behavior.js | 1 - .../twig/src/components/notification/notification.behavior.js | 1 - packages/twig/src/components/readmore/readmore.behavior.js | 1 - packages/twig/src/components/table/table.behavior.js | 1 - .../src/components/tableofcontents/tableofcontents.behavior.js | 1 - packages/twig/src/components/tabs/tabs.behavior.js | 2 -- packages/twig/src/components/tags/tag.behavior.js | 1 - packages/twig/src/components/tooltip/tooltip.behavior.js | 1 - packages/twig/src/components/video/video.behavior.js | 1 - 17 files changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/twig/cypress/e2e/navigation/local-nav.cy.js b/packages/twig/cypress/e2e/navigation/local-nav.cy.js index ac7dfcea1..b60a6d76f 100644 --- a/packages/twig/cypress/e2e/navigation/local-nav.cy.js +++ b/packages/twig/cypress/e2e/navigation/local-nav.cy.js @@ -41,6 +41,7 @@ describe("local nav", () => { .should("have.attr", "href", "https://www.ilo.org/"); // Main menu + // eslint-disable-next-line cypress/unsafe-to-chain-command cy.get(".ilo--language-switcher--button") .click() .then(() => { diff --git a/packages/twig/cypress/e2e/navigation/navigation.cy.js b/packages/twig/cypress/e2e/navigation/navigation.cy.js index 989358603..b3742d498 100644 --- a/packages/twig/cypress/e2e/navigation/navigation.cy.js +++ b/packages/twig/cypress/e2e/navigation/navigation.cy.js @@ -1,3 +1,4 @@ +/* eslint-disable cypress/unsafe-to-chain-command */ describe("navigation", () => { beforeEach(() => { cy.visit("/patterns/navigation"); diff --git a/packages/twig/src/components/accordion/accordion.behavior.js b/packages/twig/src/components/accordion/accordion.behavior.js index ed6f8e004..6a28ed4ee 100644 --- a/packages/twig/src/components/accordion/accordion.behavior.js +++ b/packages/twig/src/components/accordion/accordion.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.accordion = { document.querySelectorAll(`[data-loadcomponent="Accordion"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Accordion(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/breadcrumb/breadcrumb.behavior.js b/packages/twig/src/components/breadcrumb/breadcrumb.behavior.js index d990f8dde..7d8453d0e 100644 --- a/packages/twig/src/components/breadcrumb/breadcrumb.behavior.js +++ b/packages/twig/src/components/breadcrumb/breadcrumb.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.breadcrumb = { document.querySelectorAll(`[data-loadcomponent="Breadcrumb"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Breadcrumb(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/callout/callout.behavior.js b/packages/twig/src/components/callout/callout.behavior.js index 9be93ac8f..44eeec8a4 100644 --- a/packages/twig/src/components/callout/callout.behavior.js +++ b/packages/twig/src/components/callout/callout.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.callout = { document.querySelectorAll(`[data-loadcomponent="Callout"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Callout(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/icon/icon.behavior.js b/packages/twig/src/components/icon/icon.behavior.js index 297d5c432..f0d962c64 100644 --- a/packages/twig/src/components/icon/icon.behavior.js +++ b/packages/twig/src/components/icon/icon.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.icon = { document.querySelectorAll(`[data-loadcomponent="Icon"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Icon(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/loading/loading.behavior.js b/packages/twig/src/components/loading/loading.behavior.js index 2b0bdeb32..2ccd99c26 100644 --- a/packages/twig/src/components/loading/loading.behavior.js +++ b/packages/twig/src/components/loading/loading.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.loading = { document.querySelectorAll(`[data-loadcomponent="Loading"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Loading(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/modal/modal.behavior.js b/packages/twig/src/components/modal/modal.behavior.js index fbb7267d2..d524d6de5 100644 --- a/packages/twig/src/components/modal/modal.behavior.js +++ b/packages/twig/src/components/modal/modal.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.modal = { document.querySelectorAll(`[data-loadcomponent="Modal"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Modal(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/navigation/navigation.behavior.js b/packages/twig/src/components/navigation/navigation.behavior.js index 5ac5c5d2d..3cbb42e5b 100644 --- a/packages/twig/src/components/navigation/navigation.behavior.js +++ b/packages/twig/src/components/navigation/navigation.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.navigation = { document.querySelectorAll(`[data-loadcomponent="Navigation"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Navigation(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/notification/notification.behavior.js b/packages/twig/src/components/notification/notification.behavior.js index 5e4b9dfa3..6d1419cd7 100644 --- a/packages/twig/src/components/notification/notification.behavior.js +++ b/packages/twig/src/components/notification/notification.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.notification = { document.querySelectorAll(`[data-loadcomponent="Notification"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Notification(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/readmore/readmore.behavior.js b/packages/twig/src/components/readmore/readmore.behavior.js index 41b9625a7..4b54d4bdb 100644 --- a/packages/twig/src/components/readmore/readmore.behavior.js +++ b/packages/twig/src/components/readmore/readmore.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.readmore = { document.querySelectorAll(`[data-loadcomponent="ReadMore"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new ReadMore(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/table/table.behavior.js b/packages/twig/src/components/table/table.behavior.js index 3aa5f9bc4..958ea6de7 100644 --- a/packages/twig/src/components/table/table.behavior.js +++ b/packages/twig/src/components/table/table.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.table = { document.querySelectorAll(`[data-loadcomponent="Table"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Table(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/tableofcontents/tableofcontents.behavior.js b/packages/twig/src/components/tableofcontents/tableofcontents.behavior.js index d594d7df3..ae7ac1c69 100644 --- a/packages/twig/src/components/tableofcontents/tableofcontents.behavior.js +++ b/packages/twig/src/components/tableofcontents/tableofcontents.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.tableofcontents = { document.querySelectorAll(`[data-loadcomponent="TableOfContents"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new TableOfContents(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/tabs/tabs.behavior.js b/packages/twig/src/components/tabs/tabs.behavior.js index a89147ded..3781a4f1a 100644 --- a/packages/twig/src/components/tabs/tabs.behavior.js +++ b/packages/twig/src/components/tabs/tabs.behavior.js @@ -7,7 +7,6 @@ Drupal.behaviors.tabs = { document.querySelectorAll(`[data-loadcomponent="Tabs"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Tabs(element); element.dataset.jsProcessed = true; } @@ -17,7 +16,6 @@ Drupal.behaviors.tabs = { document.querySelectorAll(`[data-loadcomponent="Tooltip"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Tooltip(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/tags/tag.behavior.js b/packages/twig/src/components/tags/tag.behavior.js index 6102facb5..2c5a683ec 100644 --- a/packages/twig/src/components/tags/tag.behavior.js +++ b/packages/twig/src/components/tags/tag.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.tag = { document.querySelectorAll(`[data-loadcomponent="Tag"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Tag(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/tooltip/tooltip.behavior.js b/packages/twig/src/components/tooltip/tooltip.behavior.js index 2d4e8ec67..78197d094 100644 --- a/packages/twig/src/components/tooltip/tooltip.behavior.js +++ b/packages/twig/src/components/tooltip/tooltip.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.tooltip = { document.querySelectorAll(`[data-loadcomponent="Tooltip"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Tooltip(element); element.dataset.jsProcessed = true; } diff --git a/packages/twig/src/components/video/video.behavior.js b/packages/twig/src/components/video/video.behavior.js index e6b775992..e3ceb876d 100644 --- a/packages/twig/src/components/video/video.behavior.js +++ b/packages/twig/src/components/video/video.behavior.js @@ -6,7 +6,6 @@ Drupal.behaviors.media = { document.querySelectorAll(`[data-loadcomponent="Video"]`), (element) => { if (!element.dataset.jsProcessed) { - // eslint-disable-next-line no-console new Video(element); element.dataset.jsProcessed = true; } From daca38c90029863903e00b71c602a5de0d5d0125 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Wed, 18 Sep 2024 13:44:49 +0400 Subject: [PATCH 13/48] refactor(react): swaped eslint config --- packages/react/.eslintrc.cjs | 41 -------------------------------- packages/react/eslint.config.mjs | 8 +++++++ 2 files changed, 8 insertions(+), 41 deletions(-) delete mode 100644 packages/react/.eslintrc.cjs create mode 100644 packages/react/eslint.config.mjs diff --git a/packages/react/.eslintrc.cjs b/packages/react/.eslintrc.cjs deleted file mode 100644 index 571aa8de8..000000000 --- a/packages/react/.eslintrc.cjs +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Package-level eslint config extends the global config and applies - * customizations relative to the local project. In this example we - * are lintinting both js and ts files, so we combine two configs - * and set the TypeScript settings as an override - */ -module.exports = { - /* =============== */ - /* Global Settings */ - /* =============== */ - root: true, - extends: ["@ilo-org/eslint-config"], - // Extend the default config and add any specific settings for this project - ignorePatterns: [ - "storybook-static/", - "node_modules/", - "lib/", - "src/stories/", - //@TODO: Remove this once type errors in tests and args files are fixed - "src/__tests__", - "src/components/**/*.args.ts", - "vite.config.ts", - "vitest.setup.ts", - ], - - overrides: [ - /* =================== */ - /* TypeScript Settings */ - /* =================== */ - { - // Which files the override will apply to relative to the package root - files: ["{src,tests}/**/*.{ts,tsx}"], - extends: ["@ilo-org/eslint-config/typescript"], - // The typescript parser options for this package, which will be different - // from other packages - parserOptions: { - project: ["./tsconfig.json"], - }, - }, - ], -}; diff --git a/packages/react/eslint.config.mjs b/packages/react/eslint.config.mjs new file mode 100644 index 000000000..76b9c43ba --- /dev/null +++ b/packages/react/eslint.config.mjs @@ -0,0 +1,8 @@ +import configs from "@ilo-org/eslint-config"; + +/** @type {import("eslint").Linter.Config} */ +const ReactConfigOverrides = { + ignores: ["**/*.args.ts", "**/*.stories.tsx"], +}; + +export default [...configs.react, ReactConfigOverrides]; From 1ab95145a9429a64edc5dac62a9202fcb8a2e340 Mon Sep 17 00:00:00 2001 From: GGKapanadze Date: Wed, 18 Sep 2024 13:45:28 +0400 Subject: [PATCH 14/48] chore(react): adjusted codebase to new react eslint rules --- packages/react/.storybook/preview.tsx | 1 + .../react/src/components/Accordion/Accordion.props.ts | 4 ++-- packages/react/src/components/Accordion/Accordion.tsx | 7 ++++--- .../react/src/components/Accordion/AccordionPanel.tsx | 10 ++++++---- .../react/src/components/Breadcrumb/Breadcrumb.tsx | 1 - packages/react/src/components/Button/Button.props.ts | 2 +- .../react/src/components/Cards/CardGroup/CardGroup.tsx | 2 ++ .../src/components/Cards/DataCard/DataCard.props.ts | 4 ++-- .../react/src/components/Cards/DataCard/DataCard.tsx | 6 ++++-- .../components/Cards/DetailCard/DetailCard.props.ts | 4 ++-- .../src/components/Cards/DetailCard/DetailCard.tsx | 2 +- .../Cards/FactlistCard/FactListCard.props.ts | 4 ++-- .../src/components/Cards/FactlistCard/FactListCard.tsx | 4 ++-- .../components/Cards/FeatureCard/FeatureCard.props.ts | 5 +++-- .../src/components/Cards/FeatureCard/FeatureCard.tsx | 2 +- .../Cards/MultilinkCard/MultilinkCard.props.ts | 4 ++-- .../src/components/Cards/PromoCard/PromoCard.props.ts | 4 ++-- .../src/components/Cards/StatCard/StatCard.props.ts | 4 ++-- .../react/src/components/Cards/StatCard/StatCard.tsx | 2 +- .../src/components/Cards/TextCard/TextCard.props.ts | 4 ++-- .../react/src/components/Cards/TextCard/TextCard.tsx | 2 +- .../react/src/components/Checkbox/Checkbox.props.ts | 4 ++-- packages/react/src/components/Collapse/Collapse.tsx | 3 +++ .../src/components/DatePicker/DatePicker.props.ts | 3 +-- .../react/src/components/Dropdown/Dropdown.props.ts | 3 +-- .../src/components/FileUpload/FileUpload.props.ts | 3 +-- .../react/src/components/FileUpload/FileUpload.tsx | 2 +- packages/react/src/components/Footer/Footer.props.ts | 3 +-- packages/react/src/components/Footer/Footer.tsx | 10 +++------- packages/react/src/components/Icon/Icon.tsx | 3 +++ packages/react/src/components/Image/Image.tsx | 3 +++ packages/react/src/components/Input/Input.props.ts | 2 +- packages/react/src/components/Input/Input.tsx | 3 +++ packages/react/src/components/Logo/Logo.tsx | 2 ++ packages/react/src/components/LogoGrid/LogoGrid.tsx | 2 +- .../src/components/NumberPicker/NumberPicker.props.ts | 3 +-- .../src/components/Pagination/Pagination.props.ts | 2 +- packages/react/src/components/Radio/Radio.props.ts | 3 +-- packages/react/src/components/Radio/Radio.tsx | 1 - .../src/components/SearchField/SearchField.props.ts | 2 +- .../react/src/components/SearchField/SearchField.tsx | 6 +++++- .../react/src/components/SocialMedia/SocialMedia.tsx | 2 +- .../src/components/TableOfContents/TableOfContents.tsx | 2 ++ packages/react/src/components/Tag/Tag.props.ts | 2 +- packages/react/src/components/Tag/Tag.tsx | 1 - packages/react/src/components/Tag/TagSet.props.ts | 5 ++++- packages/react/src/components/Tag/TagSet.tsx | 8 +++++--- .../react/src/components/TextInput/TextInput.props.ts | 7 +++++-- .../react/src/components/Textarea/Textarea.props.ts | 5 ++--- packages/react/src/components/Toggle/Toggle.props.ts | 5 ++--- packages/react/src/components/Toggle/Toggle.tsx | 3 +-- packages/react/src/components/Video/VideoPlayer.tsx | 4 +--- packages/react/src/types/index.ts | 8 ++++---- packages/react/src/utils/createChainedFunction.ts | 3 +++ packages/react/src/utils/getDefaultDimensionValue.ts | 2 ++ 55 files changed, 111 insertions(+), 87 deletions(-) diff --git a/packages/react/.storybook/preview.tsx b/packages/react/.storybook/preview.tsx index 0124f63a4..f1d3527c7 100644 --- a/packages/react/.storybook/preview.tsx +++ b/packages/react/.storybook/preview.tsx @@ -4,6 +4,7 @@ import { Preview } from "@storybook/react"; import theme from "./theme"; import "./styles.scss"; import { brand } from "@ilo-org/themes/tokens/brand/base.json"; +import React from "react"; const preview: Preview = { decorators: [ diff --git a/packages/react/src/components/Accordion/Accordion.props.ts b/packages/react/src/components/Accordion/Accordion.props.ts index 02962b569..6cc339a46 100644 --- a/packages/react/src/components/Accordion/Accordion.props.ts +++ b/packages/react/src/components/Accordion/Accordion.props.ts @@ -14,7 +14,7 @@ export interface AccordionProps { /** * Callback to onButtonClick event; */ - onButtonClick?: (e: MouseEvent, i: any) => void; + onButtonClick?: (e: MouseEvent, i: unknown) => void; /** * Allow multiple accordions to be expanded at once, default value is false @@ -37,5 +37,5 @@ export interface AccordionContextProps { getUpdatedItems: typeof getUpdatedItems; setActiveItems: Dispatch>; allowMultipleExpanded: boolean; - onButtonClick?: (e: MouseEvent, i: any) => void; + onButtonClick?: (e: MouseEvent, i: unknown) => void; } diff --git a/packages/react/src/components/Accordion/Accordion.tsx b/packages/react/src/components/Accordion/Accordion.tsx index 69e050fad..9cd3f32ac 100755 --- a/packages/react/src/components/Accordion/Accordion.tsx +++ b/packages/react/src/components/Accordion/Accordion.tsx @@ -29,14 +29,15 @@ const Accordion: FC = ({ const expandedOnLoad = allowMultipleExpanded ? defaultAccordionsExpanded : defaultAccordionsExpanded.length > 0 - ? [defaultAccordionsExpanded[0]] - : defaultAccordionsExpanded; + ? [defaultAccordionsExpanded[0]] + : defaultAccordionsExpanded; setActiveItems(expandedOnLoad); - }, [defaultAccordionsExpandedString, allowMultipleExpanded]); //eslint-disable-line react-hooks/exhaustive-deps + }, [defaultAccordionsExpandedString, allowMultipleExpanded]); if (children) { const ids: string[] = []; Children.forEach(children, (child: ReactElement) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access ids.push(child.props.id); }); if (checkArrayDuplicates(ids)) { diff --git a/packages/react/src/components/Accordion/AccordionPanel.tsx b/packages/react/src/components/Accordion/AccordionPanel.tsx index 1877240f2..1df6ed060 100644 --- a/packages/react/src/components/Accordion/AccordionPanel.tsx +++ b/packages/react/src/components/Accordion/AccordionPanel.tsx @@ -22,10 +22,12 @@ const AccordionPanel: FC = ({ [`${baseClass}--open`]: open, }); - const ref = useRef(); + const ref = useRef(null); useLayoutEffect(() => { - ref.current && setPanelHeight(ref.current.scrollHeight); + if (ref.current) { + setPanelHeight(ref.current.scrollHeight); + } }); return ( @@ -34,8 +36,8 @@ const AccordionPanel: FC = ({ id={`panel-${id}`} aria-labelledby={`button-${id}`} role="region" - ref={ref as any} - style={{ ["--height" as any]: `${panelHeight}px` }} + ref={ref} + style={{ ["--height" as string]: `${panelHeight}px` }} {...rest} >
{children}
diff --git a/packages/react/src/components/Breadcrumb/Breadcrumb.tsx b/packages/react/src/components/Breadcrumb/Breadcrumb.tsx index c104722f7..cec61e9a2 100644 --- a/packages/react/src/components/Breadcrumb/Breadcrumb.tsx +++ b/packages/react/src/components/Breadcrumb/Breadcrumb.tsx @@ -1,4 +1,3 @@ -/* eslint-disable jsx-a11y/anchor-has-content */ /* This is a good rule in general, but disabling here because the link has an aria-label */ import { diff --git a/packages/react/src/components/Button/Button.props.ts b/packages/react/src/components/Button/Button.props.ts index e11480640..396955b3f 100644 --- a/packages/react/src/components/Button/Button.props.ts +++ b/packages/react/src/components/Button/Button.props.ts @@ -10,7 +10,7 @@ export interface ButtonProps { /** * Specify the callback of your Button. */ - callback?: (e: React.MouseEvent) => any; + callback?: (e: React.MouseEvent) => unknown; /** * Specify the content of your Button. diff --git a/packages/react/src/components/Cards/CardGroup/CardGroup.tsx b/packages/react/src/components/Cards/CardGroup/CardGroup.tsx index c2a5f9128..18df131ea 100644 --- a/packages/react/src/components/Cards/CardGroup/CardGroup.tsx +++ b/packages/react/src/components/Cards/CardGroup/CardGroup.tsx @@ -1,3 +1,5 @@ +/* @ESLINT-DEBT During new eslint refactoring this file was omitted because of heavy type refactoring */ +/* eslint-disable */ import { FC } from "react"; import classnames from "classnames"; import useGlobalSettings from "../../../hooks/useGlobalSettings"; diff --git a/packages/react/src/components/Cards/DataCard/DataCard.props.ts b/packages/react/src/components/Cards/DataCard/DataCard.props.ts index c46adc2cc..038ae317d 100644 --- a/packages/react/src/components/Cards/DataCard/DataCard.props.ts +++ b/packages/react/src/components/Cards/DataCard/DataCard.props.ts @@ -1,7 +1,7 @@ import { CardSize } from "../../../types"; import { LinkProps } from "../../LinkList/LinkList.props"; -export type DataCardProps = { +export interface DataCardProps { /** * A line of text that appears as a small heading at the top of the card */ @@ -26,7 +26,7 @@ export type DataCardProps = { * Make the content appear in one or two columns. Only applies when the size is set to `wide` or `fluid` */ columns?: string; -}; +} interface CardDataset { content?: DataContent; diff --git a/packages/react/src/components/Cards/DataCard/DataCard.tsx b/packages/react/src/components/Cards/DataCard/DataCard.tsx index 883f2d1c8..b1d5eed02 100644 --- a/packages/react/src/components/Cards/DataCard/DataCard.tsx +++ b/packages/react/src/components/Cards/DataCard/DataCard.tsx @@ -16,7 +16,7 @@ const DataCard: FC = ({ const baseClass = `${prefix}--card`; const cardClasses = classnames(baseClass, `${baseClass}__type__data`, { - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, [`${baseClass}__type__data__columns__${columns}`]: columns, }); @@ -40,7 +40,7 @@ const DataCard: FC = ({ dataset.content && dataset.content.items && dataset.content.items.map((item) => ( -
+

{item.label}

@@ -60,6 +60,7 @@ const DataCard: FC = ({ className={`${baseClass}--data--file ${prefix}--button ${prefix}--button--primary ${prefix}--button--small`} href={item.url} download + key={item.url} > {item.label} @@ -77,6 +78,7 @@ const DataCard: FC = ({ {item.label} diff --git a/packages/react/src/components/Cards/DetailCard/DetailCard.props.ts b/packages/react/src/components/Cards/DetailCard/DetailCard.props.ts index 2019390dd..57eb7938e 100644 --- a/packages/react/src/components/Cards/DetailCard/DetailCard.props.ts +++ b/packages/react/src/components/Cards/DetailCard/DetailCard.props.ts @@ -1,6 +1,6 @@ import { CardSize, EventDate, HeadingTypes } from "../../../types"; -export type DetailCardProps = { +export interface DetailCardProps { /** * A line of text that appears as a small heading above the title of the card */ @@ -45,4 +45,4 @@ export type DetailCardProps = { * How big should the card be */ size?: Omit; -}; +} diff --git a/packages/react/src/components/Cards/DetailCard/DetailCard.tsx b/packages/react/src/components/Cards/DetailCard/DetailCard.tsx index dafa68f47..347c32037 100644 --- a/packages/react/src/components/Cards/DetailCard/DetailCard.tsx +++ b/packages/react/src/components/Cards/DetailCard/DetailCard.tsx @@ -19,7 +19,7 @@ const DetailCard: FC = ({ const cardClasses = classnames(baseClass, `${baseClass}__type__detail`, { [`${baseClass}__action`]: link, - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, }); return ( diff --git a/packages/react/src/components/Cards/FactlistCard/FactListCard.props.ts b/packages/react/src/components/Cards/FactlistCard/FactListCard.props.ts index 4e5bcce00..86109dab6 100644 --- a/packages/react/src/components/Cards/FactlistCard/FactListCard.props.ts +++ b/packages/react/src/components/Cards/FactlistCard/FactListCard.props.ts @@ -1,6 +1,6 @@ import { ThemeTypes, CardSize, HeadingTypes } from "../../../types"; -export type FactlistCardProps = { +export interface FactlistCardProps { /** * The title of the card */ @@ -21,4 +21,4 @@ export type FactlistCardProps = { */ size?: Omit; list?: string[]; -}; +} diff --git a/packages/react/src/components/Cards/FactlistCard/FactListCard.tsx b/packages/react/src/components/Cards/FactlistCard/FactListCard.tsx index e5335eda7..182b47f94 100644 --- a/packages/react/src/components/Cards/FactlistCard/FactListCard.tsx +++ b/packages/react/src/components/Cards/FactlistCard/FactListCard.tsx @@ -16,7 +16,7 @@ const FactlistCard: FC = ({ const baseClass = `${prefix}--card`; const cardClasses = classnames(baseClass, `${baseClass}__type__factlist`, { - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, [`${baseClass}__theme__${theme}`]: theme, }); @@ -34,7 +34,7 @@ const FactlistCard: FC = ({ {list && ( {list.map((item, index) => ( - +

{item}

))} diff --git a/packages/react/src/components/Cards/FeatureCard/FeatureCard.props.ts b/packages/react/src/components/Cards/FeatureCard/FeatureCard.props.ts index 16c1aa769..9ec97d0cf 100644 --- a/packages/react/src/components/Cards/FeatureCard/FeatureCard.props.ts +++ b/packages/react/src/components/Cards/FeatureCard/FeatureCard.props.ts @@ -1,7 +1,8 @@ import { ThemeTypes, CardSize, EventDate, HeadingTypes } from "../../../types"; import { LinkListProps } from "../../LinkList/LinkList.props"; -export type FeatureCardProps = { + +export interface FeatureCardProps { isvideo?: boolean; /** @@ -40,4 +41,4 @@ export type FeatureCardProps = { * The image to show in the card */ image?: string; -}; +} diff --git a/packages/react/src/components/Cards/FeatureCard/FeatureCard.tsx b/packages/react/src/components/Cards/FeatureCard/FeatureCard.tsx index b1ba4dd31..853bd159a 100644 --- a/packages/react/src/components/Cards/FeatureCard/FeatureCard.tsx +++ b/packages/react/src/components/Cards/FeatureCard/FeatureCard.tsx @@ -22,7 +22,7 @@ const FeatureCard: FC = ({ const cardClasses = classnames(baseClass, `${baseClass}__type__feature`, { [`${baseClass}__action`]: link, - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, [`${baseClass}__isvideo`]: isvideo, [`${baseClass}__linklist`]: linklist, [`${baseClass}__theme__${theme}`]: theme, diff --git a/packages/react/src/components/Cards/MultilinkCard/MultilinkCard.props.ts b/packages/react/src/components/Cards/MultilinkCard/MultilinkCard.props.ts index 61c81c8ce..2cb6dd43b 100644 --- a/packages/react/src/components/Cards/MultilinkCard/MultilinkCard.props.ts +++ b/packages/react/src/components/Cards/MultilinkCard/MultilinkCard.props.ts @@ -1,7 +1,7 @@ import { CardAlignment, CardSize, HeadingTypes } from "../../../types"; import { LinkListProps } from "../../LinkList/LinkList.props"; -export type MultilinkCardProps = { +export interface MultilinkCardProps { isvideo?: boolean; /** @@ -32,4 +32,4 @@ export type MultilinkCardProps = { * The image to show in the card */ image?: string; -}; +} diff --git a/packages/react/src/components/Cards/PromoCard/PromoCard.props.ts b/packages/react/src/components/Cards/PromoCard/PromoCard.props.ts index b552744c2..1bf954d29 100644 --- a/packages/react/src/components/Cards/PromoCard/PromoCard.props.ts +++ b/packages/react/src/components/Cards/PromoCard/PromoCard.props.ts @@ -6,7 +6,7 @@ import { } from "../../../types"; import { LinkProps } from "../../LinkList/LinkList.props"; -export type PromoCardProps = { +export interface PromoCardProps { /** * A line of text that appears as a small heading above the title of the card */ @@ -43,4 +43,4 @@ export type PromoCardProps = { intro?: string; link?: string; cta?: LinkProps; -}; +} diff --git a/packages/react/src/components/Cards/StatCard/StatCard.props.ts b/packages/react/src/components/Cards/StatCard/StatCard.props.ts index d63b27e4d..c77fa7c64 100644 --- a/packages/react/src/components/Cards/StatCard/StatCard.props.ts +++ b/packages/react/src/components/Cards/StatCard/StatCard.props.ts @@ -1,7 +1,7 @@ import { CardColor, CardSize, HeadingTypes } from "../../../types"; import { LinkProps } from "../../LinkList/LinkList.props"; -export type StatCardProps = { +export interface StatCardProps { /** * The title of the card */ @@ -28,4 +28,4 @@ export type StatCardProps = { */ intro?: string; source?: LinkProps; -}; +} diff --git a/packages/react/src/components/Cards/StatCard/StatCard.tsx b/packages/react/src/components/Cards/StatCard/StatCard.tsx index 39adc28ab..8cf22b248 100644 --- a/packages/react/src/components/Cards/StatCard/StatCard.tsx +++ b/packages/react/src/components/Cards/StatCard/StatCard.tsx @@ -18,7 +18,7 @@ const StatCard: FC = ({ const cardClasses = classnames(baseClass, `${baseClass}__type__stat`, { [`${baseClass}__color__${color}`]: color, - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, }); return ( diff --git a/packages/react/src/components/Cards/TextCard/TextCard.props.ts b/packages/react/src/components/Cards/TextCard/TextCard.props.ts index 97f55c622..46a25da71 100644 --- a/packages/react/src/components/Cards/TextCard/TextCard.props.ts +++ b/packages/react/src/components/Cards/TextCard/TextCard.props.ts @@ -2,7 +2,7 @@ import { ThemeTypes, CardSize, EventDate, HeadingTypes } from "../../../types"; import { ProfileProps } from "../../Profile/Profile.props"; -export type TextCardProps = { +export interface TextCardProps { /** * A line of text that appears as a small heading above the title of the card */ @@ -34,4 +34,4 @@ export type TextCardProps = { date?: EventDate; profile: ProfileProps; link?: string; -}; +} diff --git a/packages/react/src/components/Cards/TextCard/TextCard.tsx b/packages/react/src/components/Cards/TextCard/TextCard.tsx index 955fd106e..a1116dd2b 100644 --- a/packages/react/src/components/Cards/TextCard/TextCard.tsx +++ b/packages/react/src/components/Cards/TextCard/TextCard.tsx @@ -22,7 +22,7 @@ const TextCard: FC = ({ const cardClasses = classnames(baseClass, `${baseClass}__type__text`, { [`${baseClass}__action`]: link, - [`${baseClass}__size__${size}`]: size, + [`${baseClass}__size__${size as string}`]: size, [`${baseClass}__theme__${theme}`]: theme, }); diff --git a/packages/react/src/components/Checkbox/Checkbox.props.ts b/packages/react/src/components/Checkbox/Checkbox.props.ts index d29613e33..574efceb1 100644 --- a/packages/react/src/components/Checkbox/Checkbox.props.ts +++ b/packages/react/src/components/Checkbox/Checkbox.props.ts @@ -1,5 +1,5 @@ -import { ChoiceFieldProps } from "../../types"; -import { LabelledFormFieldProps } from "../../types"; +import { ChoiceFieldProps, LabelledFormFieldProps } from "../../types"; + export type CheckboxProps = ChoiceFieldProps; export type LabelledCheckboxProps = LabelledFormFieldProps; diff --git a/packages/react/src/components/Collapse/Collapse.tsx b/packages/react/src/components/Collapse/Collapse.tsx index 66cd2a05f..2fc9d47be 100644 --- a/packages/react/src/components/Collapse/Collapse.tsx +++ b/packages/react/src/components/Collapse/Collapse.tsx @@ -1,3 +1,6 @@ +/* @ESLINT-DEBT During new eslint refactoring this file was omitted because of heavy type refactoring */ +/* eslint-disable */ + import classNames from "classnames"; import { cloneElement, forwardRef, useMemo } from "react"; import Transition, { diff --git a/packages/react/src/components/DatePicker/DatePicker.props.ts b/packages/react/src/components/DatePicker/DatePicker.props.ts index 3cc6b2f75..9225c63cb 100644 --- a/packages/react/src/components/DatePicker/DatePicker.props.ts +++ b/packages/react/src/components/DatePicker/DatePicker.props.ts @@ -1,5 +1,4 @@ -import { FormFieldProps } from "../../types"; -import { LabelledFormFieldProps } from "../../types"; +import { FormFieldProps, LabelledFormFieldProps } from "../../types"; export interface DatePickerProps extends FormFieldProps { /** diff --git a/packages/react/src/components/Dropdown/Dropdown.props.ts b/packages/react/src/components/Dropdown/Dropdown.props.ts index 3e073a495..4db82f8f7 100644 --- a/packages/react/src/components/Dropdown/Dropdown.props.ts +++ b/packages/react/src/components/Dropdown/Dropdown.props.ts @@ -1,5 +1,4 @@ -import { FormFieldProps } from "../../types"; -import { LabelledFormFieldProps } from "../../types"; +import { FormFieldProps, LabelledFormFieldProps } from "../../types"; export interface OptionProps { /** diff --git a/packages/react/src/components/FileUpload/FileUpload.props.ts b/packages/react/src/components/FileUpload/FileUpload.props.ts index 12a7afb9f..6f90eda53 100644 --- a/packages/react/src/components/FileUpload/FileUpload.props.ts +++ b/packages/react/src/components/FileUpload/FileUpload.props.ts @@ -1,5 +1,4 @@ -import { FormFieldProps } from "../../types"; -import { LabelledFormFieldProps } from "../../types"; +import { FormFieldProps, LabelledFormFieldProps } from "../../types"; export interface FileUploadProps extends FormFieldProps { /** diff --git a/packages/react/src/components/FileUpload/FileUpload.tsx b/packages/react/src/components/FileUpload/FileUpload.tsx index ff80ae5dc..c9f7434df 100644 --- a/packages/react/src/components/FileUpload/FileUpload.tsx +++ b/packages/react/src/components/FileUpload/FileUpload.tsx @@ -70,7 +70,7 @@ const FileUpload = React.forwardRef( disabled={disabled} multiple={multiple} placeholder={placeholder} - required={required as any} + required={required} type="file" data-label={placeholder} aria-describedby={ariaDescribedBy} diff --git a/packages/react/src/components/Footer/Footer.props.ts b/packages/react/src/components/Footer/Footer.props.ts index 55e1fa2b8..5a1d1e0ba 100644 --- a/packages/react/src/components/Footer/Footer.props.ts +++ b/packages/react/src/components/Footer/Footer.props.ts @@ -1,5 +1,4 @@ -import { LinkGroupProps } from "../LinkList/LinkList.props"; -import { LinkProps } from "../LinkList/LinkList.props"; +import { LinkGroupProps, LinkProps } from "../LinkList/LinkList.props"; import { SocialMediaProps } from "../SocialMedia"; export interface FooterProps { diff --git a/packages/react/src/components/Footer/Footer.tsx b/packages/react/src/components/Footer/Footer.tsx index 2e70fb458..6c462ca2f 100644 --- a/packages/react/src/components/Footer/Footer.tsx +++ b/packages/react/src/components/Footer/Footer.tsx @@ -72,13 +72,9 @@ const Footer: FC = ({ {secondarylinks && (
diff --git a/packages/react/src/components/SocialMedia/SocialMedia.tsx b/packages/react/src/components/SocialMedia/SocialMedia.tsx index e13874b1b..7f24ecd38 100644 --- a/packages/react/src/components/SocialMedia/SocialMedia.tsx +++ b/packages/react/src/components/SocialMedia/SocialMedia.tsx @@ -30,7 +30,7 @@ const SocialMedia: React.FC = ({ {headline &&
{headline}
}