diff --git a/.eslintignore b/.eslintignore
index 9404c81..52a9516 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,2 +1,12 @@
coverage/
-__tests__
\ No newline at end of file
+__tests__
+node_modules/
+dist/
+.github/
+.vscode/
+.husky/
+public/
+*.config.js
+*.config.ts
+*.d.ts
+vite-env.d.ts
\ No newline at end of file
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index 2c69ed5..0000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "env": {
- "browser": true,
- "es2021": true
- },
- "extends": [
- "plugin:react/recommended",
- "standard",
- "prettier",
- "plugin:react/jsx-runtime"
- ],
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- },
- "ecmaVersion": 12,
- "sourceType": "module"
- },
- "plugins": ["react", "@typescript-eslint", "sort-keys-fix"],
- "rules": {
- "react/jsx-sort-props": 1,
- "sort-keys": [
- "error",
- "asc",
- {
- "caseSensitive": true,
- "natural": true
- }
- ],
- "sort-keys-fix/sort-keys-fix": "warn"
- },
- "settings": {
- "react": {
- "version": "detect"
- }
- }
-}
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000..804d990
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,133 @@
+// @ts-check
+import eslint from '@eslint/js';
+import tseslint from 'typescript-eslint';
+import reactPlugin from 'eslint-plugin-react';
+import reactHooksPlugin from 'eslint-plugin-react-hooks';
+import jsxA11yPlugin from 'eslint-plugin-jsx-a11y';
+import * as importPlugin from 'eslint-plugin-import';
+import securityPlugin from 'eslint-plugin-security';
+import sortKeysFixPlugin from 'eslint-plugin-sort-keys-fix';
+
+export default tseslint.config(
+ // Base ESLint recommended configuration
+ eslint.configs.recommended,
+
+ // TypeScript ESLint recommended configuration
+ ...tseslint.configs.recommended,
+ ...tseslint.configs.stylistic,
+
+ // Ignore patterns (replaces .eslintignore)
+ {
+ ignores: [
+ 'node_modules/**',
+ 'dist/**',
+ 'coverage/**',
+ '.github/**',
+ '.vscode/**',
+ '.husky/**',
+ 'public/**',
+ '**/*.config.js',
+ '**/*.config.ts',
+ '**/*.d.ts',
+ 'vite-env.d.ts',
+ '__tests__/**'
+ ]
+ },
+
+ // Configure for React
+ {
+ files: ['**/*.{js,jsx,ts,tsx}'],
+ plugins: {
+ react: reactPlugin,
+ 'react-hooks': reactHooksPlugin,
+ 'jsx-a11y': jsxA11yPlugin,
+ import: importPlugin,
+ security: securityPlugin,
+ 'sort-keys-fix': sortKeysFixPlugin,
+ },
+ languageOptions: {
+ ecmaVersion: 2022,
+ sourceType: 'module',
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ },
+ settings: {
+ react: {
+ version: 'detect',
+ },
+ 'import/resolver': {
+ typescript: {},
+ },
+ },
+ rules: {
+ // Disable problematic rules that cause circular dependencies
+ 'import/order': 'off',
+ 'import/no-duplicates': 'off',
+
+ // React rules
+ 'react/jsx-sort-props': 'off', // Disable for now to avoid circular fixes
+ 'react/jsx-runtime': 'off',
+ 'react/prop-types': 'off',
+ 'react/jsx-uses-react': 'off',
+ 'react/react-in-jsx-scope': 'off',
+
+ // React hooks rules - relaxed for now
+ 'react-hooks/rules-of-hooks': 'error',
+ 'react-hooks/exhaustive-deps': 'warn',
+
+ // Accessibility rules
+ 'jsx-a11y/alt-text': 'warn',
+ 'jsx-a11y/anchor-has-content': 'warn',
+ 'jsx-a11y/aria-props': 'warn',
+ 'jsx-a11y/aria-role': 'warn',
+ 'jsx-a11y/aria-unsupported-elements': 'warn',
+
+ // Sort keys rules - relaxed to avoid circular issues
+ 'sort-keys': 'off',
+ 'sort-keys-fix/sort-keys-fix': 'off',
+
+ // Security rules - turned to warnings to avoid breaking changes
+ 'security/detect-object-injection': 'warn',
+ 'security/detect-non-literal-regexp': 'warn',
+ 'security/detect-possible-timing-attacks': 'warn',
+
+ // Disable some ESLint rules that might conflict
+ 'no-useless-escape': 'warn',
+ },
+ },
+
+ // Special configuration for TypeScript files
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+ rules: {
+ // Disable ESLint rules that TypeScript ESLint handles better
+ 'no-undef': 'off',
+ 'no-unused-vars': 'off',
+ '@typescript-eslint/no-unused-vars': ['warn', {
+ argsIgnorePattern: '^_',
+ varsIgnorePattern: '^_',
+ }],
+ '@typescript-eslint/no-explicit-any': 'warn',
+ '@typescript-eslint/explicit-function-return-type': 'off',
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ '@typescript-eslint/consistent-type-definitions': 'off', // Disable to avoid breaking changes
+ '@typescript-eslint/consistent-indexed-object-style': 'off', // Disable to avoid breaking changes
+ '@typescript-eslint/no-wrapper-object-types': 'off', // Disable to avoid breaking changes
+ },
+ },
+
+ // Test files
+ {
+ files: ['**/__tests__/**/*', '**/*.{spec,test}.*'],
+ rules: {
+ // Relaxed rules for tests
+ '@typescript-eslint/no-explicit-any': 'off',
+ 'security/detect-object-injection': 'off',
+ 'sort-keys': 'off',
+ 'sort-keys-fix/sort-keys-fix': 'off',
+ },
+ }
+);
diff --git a/package.json b/package.json
index bf9ba5f..cd0d556 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,8 @@
"preview": "vite preview",
"format": "pnpm prettier --write ./src/components/*.{ts,tsx}",
"test": "pnpm vitest --config ./vitest.config.ts --coverage",
- "lint": "pnpm eslint ./src/components/**/*.{ts,tsx}",
- "fix-lint": "pnpm eslint ./src/components/**/*.{ts,tsx} --fix",
+ "lint": "pnpm eslint \"./src/**/*.{ts,tsx,js,jsx}\"",
+ "fix-lint": "pnpm eslint \"./src/**/*.{ts,tsx,js,jsx}\" --fix",
"build:dev": "webpack --mode=development",
"build:prod": "webpack --mode=production --node-env=production",
"analyze": "webpack --mode=production --node-env=production --env analyze",
@@ -59,39 +59,6 @@
"pre-commit": "pretty-quick --staged"
}
},
- "eslintConfig": {
- "env": {
- "browser": true,
- "commonjs": true,
- "es2021": true
- },
- "extends": [
- "plugin:react/recommended",
- "standard",
- "prettier"
- ],
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- },
- "ecmaVersion": 12,
- "sourceType": "module"
- },
- "plugins": [
- "react",
- "@typescript-eslint"
- ],
- "rules": {
- "no-use-before-define": "off",
- "react/prop-types": "off"
- },
- "settings": {
- "react": {
- "version": "detect"
- }
- }
- },
"main": "dist/react-wizardry.js",
"devDependencies": {
"@babel/core": "^7.19.6",
@@ -99,6 +66,7 @@
"@babel/preset-env": "^7.19.4",
"@babel/preset-react": "^7.18.6",
"@babel/runtime": "^7.20.0",
+ "@eslint/js": "^9.28.0",
"@swc/core": "^1.11.31",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
@@ -120,16 +88,19 @@
"cssnano": "^7.0.7",
"dotenv-webpack": "^8.1.0",
"esbuild-loader": "^2.20.0",
- "eslint": "^8.26.0",
+ "eslint": "^9.28.0",
"eslint-config-prettier": "^8.5.0",
"eslint-config-standard": "^17.0.0",
- "eslint-plugin-import": "^2.25.2",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-n": "^15.4.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1",
- "eslint-plugin-react": "^7.31.10",
- "eslint-plugin-security": "^1.5.0",
+ "eslint-plugin-react": "^7.37.5",
+ "eslint-plugin-react-hooks": "^5.2.0",
+ "eslint-plugin-security": "^3.0.1",
"eslint-plugin-sort-keys-fix": "^1.1.2",
+ "glob": "^11.0.2",
"husky": "^8.0.1",
"jsdom": "^20.0.2",
"mini-css-extract-plugin": "^2.6.1",
@@ -150,6 +121,7 @@
"terser-webpack-plugin": "^5.3.6",
"ts-loader": "^9.4.1",
"typescript": "^4.8.4",
+ "typescript-eslint": "^8.33.1",
"vite": "^6.3.5",
"vitest": "^3.2.2",
"webpack": "^5.99.9",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 38704ca..39bdce6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,6 +30,9 @@ importers:
'@babel/runtime':
specifier: ^7.20.0
version: 7.27.6
+ '@eslint/js':
+ specifier: ^9.28.0
+ version: 9.28.0
'@swc/core':
specifier: ^1.11.31
version: 1.11.31
@@ -47,10 +50,10 @@ importers:
version: 18.3.7(@types/react@18.3.23)
'@typescript-eslint/eslint-plugin':
specifier: ^5.42.0
- version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)
+ version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
'@typescript-eslint/parser':
specifier: ^5.42.0
- version: 5.62.0(eslint@8.57.1)(typescript@4.9.5)
+ version: 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
'@vitejs/plugin-react':
specifier: ^4.5.1
version: 4.5.1(vite@6.3.5(@types/node@22.15.30)(jiti@1.21.7)(sass@1.89.1)(terser@5.41.0))
@@ -94,35 +97,44 @@ importers:
specifier: ^2.20.0
version: 2.21.0(webpack@5.99.9)
eslint:
- specifier: ^8.26.0
- version: 8.57.1
+ specifier: ^9.28.0
+ version: 9.28.0(jiti@1.21.7)
eslint-config-prettier:
specifier: ^8.5.0
- version: 8.10.0(eslint@8.57.1)
+ version: 8.10.0(eslint@9.28.0(jiti@1.21.7))
eslint-config-standard:
specifier: ^17.0.0
- version: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1)
+ version: 17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7)))(eslint-plugin-n@15.7.0(eslint@9.28.0(jiti@1.21.7)))(eslint-plugin-promise@6.6.0(eslint@9.28.0(jiti@1.21.7)))(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-import:
- specifier: ^2.25.2
- version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)
+ specifier: ^2.31.0
+ version: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))
+ eslint-plugin-jsx-a11y:
+ specifier: ^6.10.2
+ version: 6.10.2(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-n:
specifier: ^15.4.0
- version: 15.7.0(eslint@8.57.1)
+ version: 15.7.0(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-node:
specifier: ^11.1.0
- version: 11.1.0(eslint@8.57.1)
+ version: 11.1.0(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-promise:
specifier: ^6.1.1
- version: 6.6.0(eslint@8.57.1)
+ version: 6.6.0(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-react:
- specifier: ^7.31.10
- version: 7.37.5(eslint@8.57.1)
+ specifier: ^7.37.5
+ version: 7.37.5(eslint@9.28.0(jiti@1.21.7))
+ eslint-plugin-react-hooks:
+ specifier: ^5.2.0
+ version: 5.2.0(eslint@9.28.0(jiti@1.21.7))
eslint-plugin-security:
- specifier: ^1.5.0
- version: 1.7.1
+ specifier: ^3.0.1
+ version: 3.0.1
eslint-plugin-sort-keys-fix:
specifier: ^1.1.2
version: 1.1.2
+ glob:
+ specifier: ^11.0.2
+ version: 11.0.2
husky:
specifier: ^8.0.1
version: 8.0.3
@@ -183,6 +195,9 @@ importers:
typescript:
specifier: ^4.8.4
version: 4.9.5
+ typescript-eslint:
+ specifier: ^8.33.1
+ version: 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
vite:
specifier: ^6.3.5
version: 6.3.5(@types/node@22.15.30)(jiti@1.21.7)(sass@1.89.1)(terser@5.41.0)
@@ -1150,29 +1165,56 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- '@eslint/eslintrc@2.1.4':
- resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-array@0.20.0':
+ resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@8.57.1':
- resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/config-helpers@0.2.2':
+ resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.14.0':
+ resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/eslintrc@3.3.1':
+ resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/js@9.28.0':
+ resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.6':
+ resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.3.1':
+ resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@gar/promisify@1.1.3':
resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==}
- '@humanwhocodes/config-array@0.13.0':
- resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
- engines: {node: '>=10.10.0'}
- deprecated: Use @eslint/config-array instead
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
'@humanwhocodes/module-importer@1.0.1':
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- '@humanwhocodes/object-schema@2.0.3':
- resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
- deprecated: Use @eslint/object-schema instead
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
'@isaacs/cliui@8.0.2':
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
@@ -1961,6 +2003,14 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/eslint-plugin@8.33.1':
+ resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.33.1
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
'@typescript-eslint/parser@5.62.0':
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1971,10 +2021,33 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/parser@8.33.1':
+ resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
+ '@typescript-eslint/project-service@8.33.1':
+ resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
'@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/scope-manager@8.33.1':
+ resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@typescript-eslint/tsconfig-utils@8.33.1':
+ resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
'@typescript-eslint/type-utils@5.62.0':
resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1985,10 +2058,21 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/type-utils@8.33.1':
+ resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
'@typescript-eslint/types@5.62.0':
resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@typescript-eslint/types@8.33.1':
+ resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@typescript-eslint/typescript-estree@5.62.0':
resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1998,18 +2082,32 @@ packages:
typescript:
optional: true
+ '@typescript-eslint/typescript-estree@8.33.1':
+ resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <5.9.0'
+
'@typescript-eslint/utils@5.62.0':
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-eslint/utils@8.33.1':
+ resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
'@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}
- '@ungap/structured-clone@1.3.0':
- resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
+ '@typescript-eslint/visitor-keys@8.33.1':
+ resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@vitejs/plugin-react@4.5.1':
resolution: {integrity: sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==}
@@ -2388,6 +2486,9 @@ packages:
resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
engines: {node: '>=0.10.0'}
+ ast-types-flow@0.0.8:
+ resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
+
ast-v8-to-istanbul@0.3.3:
resolution: {integrity: sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==}
@@ -2424,9 +2525,17 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
+ axe-core@4.10.3:
+ resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==}
+ engines: {node: '>=4'}
+
axios@0.21.4:
resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
+ axobject-query@4.1.0:
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
+
babel-loader@9.2.1:
resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==}
engines: {node: '>= 14.15.0'}
@@ -2985,6 +3094,9 @@ packages:
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ damerau-levenshtein@1.0.8:
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
+
dargs@6.1.0:
resolution: {integrity: sha512-5dVBvpBLBnPwSsYXqfybFyehMmC/EenKEcf23AhCTgTf48JFBbmJKqoZBsERDnjL0FyiVTYWdFsRfTLHxLyKdQ==}
engines: {node: '>=6'}
@@ -3174,10 +3286,6 @@ packages:
resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
engines: {node: '>=0.10.0'}
- doctrine@3.0.0:
- resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
- engines: {node: '>=6.0.0'}
-
dom-accessibility-api@0.5.16:
resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
@@ -3450,6 +3558,12 @@ packages:
'@typescript-eslint/parser':
optional: true
+ eslint-plugin-jsx-a11y@6.10.2:
+ resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+
eslint-plugin-n@15.7.0:
resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==}
engines: {node: '>=12.22.0'}
@@ -3468,14 +3582,21 @@ packages:
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
+ eslint-plugin-react-hooks@5.2.0:
+ resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+
eslint-plugin-react@7.37.5:
resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- eslint-plugin-security@1.7.1:
- resolution: {integrity: sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==}
+ eslint-plugin-security@3.0.1:
+ resolution: {integrity: sha512-XjVGBhtDZJfyuhIxnQ/WMm385RbX3DBu7H1J7HNNhmB2tnGxMeqVSnYv79oAj992ayvIBZghsymwkYFS6cGH4Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-plugin-sort-keys-fix@1.1.2:
resolution: {integrity: sha512-DNPHFGCA0/hZIsfODbeLZqaGY/+q3vgtshF85r+YWDNCQ2apd9PNs/zL6ttKm0nD1IFwvxyg3YOTI7FHl4unrw==}
@@ -3485,9 +3606,9 @@ packages:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
engines: {node: '>=8.0.0'}
- eslint-scope@7.2.2:
- resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@8.3.0:
+ resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
eslint-utils@2.1.0:
resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==}
@@ -3511,20 +3632,28 @@ packages:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- eslint@8.57.1:
- resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ eslint-visitor-keys@4.2.0:
+ resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint@9.28.0:
+ resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.3.0:
+ resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
espree@6.2.1:
resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==}
engines: {node: '>=6.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}
-
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
@@ -3658,6 +3787,10 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
file-type@16.5.4:
resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==}
engines: {node: '>=10'}
@@ -3708,6 +3841,10 @@ packages:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
flat@5.0.2:
resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
hasBin: true
@@ -3851,6 +3988,11 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
+ glob@11.0.2:
+ resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -3875,9 +4017,9 @@ packages:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
- globals@13.24.0:
- resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
- engines: {node: '>=8'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
@@ -4099,6 +4241,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
image-q@4.0.0:
resolution: {integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw==}
@@ -4316,10 +4462,6 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- is-path-inside@3.0.3:
- resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
- engines: {node: '>=8'}
-
is-plain-obj@1.1.0:
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
engines: {node: '>=0.10.0'}
@@ -4466,6 +4608,10 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+ jackspeak@4.1.1:
+ resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==}
+ engines: {node: 20 || >=22}
+
jake@10.9.2:
resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
engines: {node: '>=10'}
@@ -4608,6 +4754,13 @@ packages:
known-css-properties@0.26.0:
resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==}
+ language-subtag-registry@0.3.23:
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
+
+ language-tags@1.0.9:
+ resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
+ engines: {node: '>=0.10'}
+
launch-editor@2.10.0:
resolution: {integrity: sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==}
@@ -4697,6 +4850,10 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+ lru-cache@11.1.0:
+ resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -4862,6 +5019,10 @@ packages:
minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -5340,6 +5501,10 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
path-to-regexp@0.1.12:
resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
@@ -6508,6 +6673,10 @@ packages:
resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
engines: {node: '>=12'}
+ string.prototype.includes@2.0.1:
+ resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
+ engines: {node: '>= 0.4'}
+
string.prototype.matchall@4.0.12:
resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
engines: {node: '>= 0.4'}
@@ -6795,6 +6964,12 @@ packages:
resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
engines: {node: '>=8'}
+ ts-api-utils@2.1.0:
+ resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
ts-loader@9.5.2:
resolution: {integrity: sha512-Qo4piXvOTWcMGIgRiuFa6nHNm+54HbYaZCKqc9eeZCLRy3XqafQgwX2F7mofrbJG3g7EEb+lkiR+z2Lic2s3Zw==}
engines: {node: '>=12.0.0'}
@@ -6825,10 +7000,6 @@ packages:
resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
engines: {node: '>=10'}
- type-fest@0.20.2:
- resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
- engines: {node: '>=10'}
-
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
@@ -6861,6 +7032,13 @@ packages:
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
engines: {node: '>= 0.4'}
+ typescript-eslint@8.33.1:
+ resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.9.0'
+
typescript@4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
@@ -8293,19 +8471,33 @@ snapshots:
'@esbuild/win32-x64@0.25.5':
optional: true
- '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
+ '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@1.21.7))':
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/eslintrc@2.1.4':
+ '@eslint/config-array@0.20.0':
+ dependencies:
+ '@eslint/object-schema': 2.1.6
+ debug: 4.4.1
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.2.2': {}
+
+ '@eslint/core@0.14.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/eslintrc@3.3.1':
dependencies:
ajv: 6.12.6
debug: 4.4.1
- espree: 9.6.1
- globals: 13.24.0
+ espree: 10.3.0
+ globals: 14.0.0
ignore: 5.3.2
import-fresh: 3.3.1
js-yaml: 4.1.0
@@ -8314,21 +8506,29 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@8.57.1': {}
+ '@eslint/js@9.28.0': {}
+
+ '@eslint/object-schema@2.1.6': {}
+
+ '@eslint/plugin-kit@0.3.1':
+ dependencies:
+ '@eslint/core': 0.14.0
+ levn: 0.4.1
'@gar/promisify@1.1.3': {}
- '@humanwhocodes/config-array@0.13.0':
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
dependencies:
- '@humanwhocodes/object-schema': 2.0.3
- debug: 4.4.1
- minimatch: 3.1.2
- transitivePeerDependencies:
- - supports-color
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
'@humanwhocodes/module-importer@1.0.1': {}
- '@humanwhocodes/object-schema@2.0.3': {}
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.3': {}
'@isaacs/cliui@8.0.2':
dependencies:
@@ -9206,15 +9406,15 @@ snapshots:
dependencies:
'@types/yargs-parser': 21.0.3
- '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)':
+ '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
+ '@typescript-eslint/parser': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
'@typescript-eslint/scope-manager': 5.62.0
- '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
- '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
+ '@typescript-eslint/type-utils': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
debug: 4.4.1
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare-lite: 1.4.0
@@ -9225,37 +9425,97 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5)':
+ '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.1
+ '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/scope-manager': 8.33.1
+ '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/visitor-keys': 8.33.1
+ eslint: 9.28.0(jiti@1.21.7)
+ graphemer: 1.4.0
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.1.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
dependencies:
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
debug: 4.4.1
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
optionalDependencies:
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.33.1
+ '@typescript-eslint/types': 8.33.1
+ '@typescript-eslint/typescript-estree': 8.33.1(typescript@4.9.5)
+ '@typescript-eslint/visitor-keys': 8.33.1
+ debug: 4.4.1
+ eslint: 9.28.0(jiti@1.21.7)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/project-service@8.33.1(typescript@4.9.5)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@4.9.5)
+ '@typescript-eslint/types': 8.33.1
+ debug: 4.4.1
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/scope-manager@5.62.0':
dependencies:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/visitor-keys': 5.62.0
- '@typescript-eslint/type-utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)':
+ '@typescript-eslint/scope-manager@8.33.1':
+ dependencies:
+ '@typescript-eslint/types': 8.33.1
+ '@typescript-eslint/visitor-keys': 8.33.1
+
+ '@typescript-eslint/tsconfig-utils@8.33.1(typescript@4.9.5)':
+ dependencies:
+ typescript: 4.9.5
+
+ '@typescript-eslint/type-utils@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
dependencies:
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
- '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
+ '@typescript-eslint/utils': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
debug: 4.4.1
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
tsutils: 3.21.0(typescript@4.9.5)
optionalDependencies:
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
+ dependencies:
+ '@typescript-eslint/typescript-estree': 8.33.1(typescript@4.9.5)
+ '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ debug: 4.4.1
+ eslint: 9.28.0(jiti@1.21.7)
+ ts-api-utils: 2.1.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/types@5.62.0': {}
+ '@typescript-eslint/types@8.33.1': {}
+
'@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)':
dependencies:
'@typescript-eslint/types': 5.62.0
@@ -9270,27 +9530,57 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@4.9.5)':
+ '@typescript-eslint/typescript-estree@8.33.1(typescript@4.9.5)':
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
+ '@typescript-eslint/project-service': 8.33.1(typescript@4.9.5)
+ '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@4.9.5)
+ '@typescript-eslint/types': 8.33.1
+ '@typescript-eslint/visitor-keys': 8.33.1
+ debug: 4.4.1
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.2
+ ts-api-utils: 2.1.0(typescript@4.9.5)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@1.21.7))
'@types/json-schema': 7.0.15
'@types/semver': 7.7.0
'@typescript-eslint/scope-manager': 5.62.0
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5)
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-scope: 5.1.1
semver: 7.7.2
transitivePeerDependencies:
- supports-color
- typescript
+ '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@1.21.7))
+ '@typescript-eslint/scope-manager': 8.33.1
+ '@typescript-eslint/types': 8.33.1
+ '@typescript-eslint/typescript-estree': 8.33.1(typescript@4.9.5)
+ eslint: 9.28.0(jiti@1.21.7)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/visitor-keys@5.62.0':
dependencies:
'@typescript-eslint/types': 5.62.0
eslint-visitor-keys: 3.4.3
- '@ungap/structured-clone@1.3.0': {}
+ '@typescript-eslint/visitor-keys@8.33.1':
+ dependencies:
+ '@typescript-eslint/types': 8.33.1
+ eslint-visitor-keys: 4.2.0
'@vitejs/plugin-react@4.5.1(vite@6.3.5(@types/node@22.15.30)(jiti@1.21.7)(sass@1.89.1)(terser@5.41.0))':
dependencies:
@@ -9724,6 +10014,8 @@ snapshots:
assign-symbols@1.0.0: {}
+ ast-types-flow@0.0.8: {}
+
ast-v8-to-istanbul@0.3.3:
dependencies:
'@jridgewell/trace-mapping': 0.3.25
@@ -9758,6 +10050,8 @@ snapshots:
dependencies:
possible-typed-array-names: 1.1.0
+ axe-core@4.10.3: {}
+
axios@0.21.4(debug@3.2.7):
dependencies:
follow-redirects: 1.15.9(debug@3.2.7)
@@ -9765,6 +10059,8 @@ snapshots:
- debug
optional: true
+ axobject-query@4.1.0: {}
+
babel-loader@9.2.1(@babel/core@7.27.4)(webpack@5.99.9):
dependencies:
'@babel/core': 7.27.4
@@ -10401,6 +10697,8 @@ snapshots:
csstype@3.1.3: {}
+ damerau-levenshtein@1.0.8: {}
+
dargs@6.1.0: {}
data-urls@3.0.2:
@@ -10574,10 +10872,6 @@ snapshots:
dependencies:
esutils: 2.0.3
- doctrine@3.0.0:
- dependencies:
- esutils: 2.0.3
-
dom-accessibility-api@0.5.16: {}
dom-serializer@2.0.0:
@@ -10892,16 +11186,16 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-config-prettier@8.10.0(eslint@8.57.1):
+ eslint-config-prettier@8.10.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
- eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint-plugin-n@15.7.0(eslint@8.57.1))(eslint-plugin-promise@6.6.0(eslint@8.57.1))(eslint@8.57.1):
+ eslint-config-standard@17.1.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7)))(eslint-plugin-n@15.7.0(eslint@9.28.0(jiti@1.21.7)))(eslint-plugin-promise@6.6.0(eslint@9.28.0(jiti@1.21.7)))(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
- eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)
- eslint-plugin-n: 15.7.0(eslint@8.57.1)
- eslint-plugin-promise: 6.6.0(eslint@8.57.1)
+ eslint: 9.28.0(jiti@1.21.7)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))
+ eslint-plugin-n: 15.7.0(eslint@9.28.0(jiti@1.21.7))
+ eslint-plugin-promise: 6.6.0(eslint@9.28.0(jiti@1.21.7))
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -10911,29 +11205,29 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1):
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@1.21.7)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
- eslint: 8.57.1
+ '@typescript-eslint/parser': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ eslint: 9.28.0(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-es@3.0.1(eslint@8.57.1):
+ eslint-plugin-es@3.0.1(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-utils: 2.1.0
regexpp: 3.2.0
- eslint-plugin-es@4.1.0(eslint@8.57.1):
+ eslint-plugin-es@4.1.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-utils: 2.1.0
regexpp: 3.2.0
- eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1):
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -10942,9 +11236,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1)
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@1.21.7))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -10956,39 +11250,62 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@4.9.5)
+ '@typescript-eslint/parser': 5.62.0(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-n@15.7.0(eslint@8.57.1):
+ eslint-plugin-jsx-a11y@6.10.2(eslint@9.28.0(jiti@1.21.7)):
+ dependencies:
+ aria-query: 5.3.2
+ array-includes: 3.1.9
+ array.prototype.flatmap: 1.3.3
+ ast-types-flow: 0.0.8
+ axe-core: 4.10.3
+ axobject-query: 4.1.0
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 9.28.0(jiti@1.21.7)
+ hasown: 2.0.2
+ jsx-ast-utils: 3.3.5
+ language-tags: 1.0.9
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ safe-regex-test: 1.1.0
+ string.prototype.includes: 2.0.1
+
+ eslint-plugin-n@15.7.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
builtins: 5.1.0
- eslint: 8.57.1
- eslint-plugin-es: 4.1.0(eslint@8.57.1)
- eslint-utils: 3.0.0(eslint@8.57.1)
+ eslint: 9.28.0(jiti@1.21.7)
+ eslint-plugin-es: 4.1.0(eslint@9.28.0(jiti@1.21.7))
+ eslint-utils: 3.0.0(eslint@9.28.0(jiti@1.21.7))
ignore: 5.3.2
is-core-module: 2.16.1
minimatch: 3.1.2
resolve: 1.22.10
semver: 7.7.2
- eslint-plugin-node@11.1.0(eslint@8.57.1):
+ eslint-plugin-node@11.1.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
- eslint-plugin-es: 3.0.1(eslint@8.57.1)
+ eslint: 9.28.0(jiti@1.21.7)
+ eslint-plugin-es: 3.0.1(eslint@9.28.0(jiti@1.21.7))
eslint-utils: 2.1.0
ignore: 5.3.2
minimatch: 3.1.2
resolve: 1.22.10
semver: 6.3.1
- eslint-plugin-promise@6.6.0(eslint@8.57.1):
+ eslint-plugin-promise@6.6.0(eslint@9.28.0(jiti@1.21.7)):
+ dependencies:
+ eslint: 9.28.0(jiti@1.21.7)
+
+ eslint-plugin-react-hooks@5.2.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
- eslint-plugin-react@7.37.5(eslint@8.57.1):
+ eslint-plugin-react@7.37.5(eslint@9.28.0(jiti@1.21.7)):
dependencies:
array-includes: 3.1.9
array.prototype.findlast: 1.2.5
@@ -10996,7 +11313,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -11010,7 +11327,7 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
- eslint-plugin-security@1.7.1:
+ eslint-plugin-security@3.0.1:
dependencies:
safe-regex: 2.1.1
@@ -11026,7 +11343,7 @@ snapshots:
esrecurse: 4.3.0
estraverse: 4.3.0
- eslint-scope@7.2.2:
+ eslint-scope@8.3.0:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
@@ -11035,9 +11352,9 @@ snapshots:
dependencies:
eslint-visitor-keys: 1.3.0
- eslint-utils@3.0.0(eslint@8.57.1):
+ eslint-utils@3.0.0(eslint@9.28.0(jiti@1.21.7)):
dependencies:
- eslint: 8.57.1
+ eslint: 9.28.0(jiti@1.21.7)
eslint-visitor-keys: 2.1.0
eslint-visitor-keys@1.3.0: {}
@@ -11046,61 +11363,62 @@ snapshots:
eslint-visitor-keys@3.4.3: {}
- eslint@8.57.1:
+ eslint-visitor-keys@4.2.0: {}
+
+ eslint@9.28.0(jiti@1.21.7):
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
+ '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@1.21.7))
'@eslint-community/regexpp': 4.12.1
- '@eslint/eslintrc': 2.1.4
- '@eslint/js': 8.57.1
- '@humanwhocodes/config-array': 0.13.0
+ '@eslint/config-array': 0.20.0
+ '@eslint/config-helpers': 0.2.2
+ '@eslint/core': 0.14.0
+ '@eslint/eslintrc': 3.3.1
+ '@eslint/js': 9.28.0
+ '@eslint/plugin-kit': 0.3.1
+ '@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
- '@nodelib/fs.walk': 1.2.8
- '@ungap/structured-clone': 1.3.0
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ '@types/json-schema': 7.0.15
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.1
- 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.3.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.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
optionator: 0.9.4
- strip-ansi: 6.0.1
- text-table: 0.2.0
+ optionalDependencies:
+ jiti: 1.21.7
transitivePeerDependencies:
- supports-color
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.1
+ acorn-jsx: 5.3.2(acorn@8.14.1)
+ eslint-visitor-keys: 4.2.0
+
espree@6.2.1:
dependencies:
acorn: 7.4.1
acorn-jsx: 5.3.2(acorn@7.4.1)
eslint-visitor-keys: 1.3.0
- espree@9.6.1:
- dependencies:
- acorn: 8.14.1
- acorn-jsx: 5.3.2(acorn@8.14.1)
- eslint-visitor-keys: 3.4.3
-
esprima@4.0.1: {}
esquery@1.6.0:
@@ -11290,6 +11608,10 @@ snapshots:
dependencies:
flat-cache: 3.2.0
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
file-type@16.5.4:
dependencies:
readable-web-to-node-stream: 3.0.4
@@ -11362,6 +11684,11 @@ snapshots:
keyv: 4.5.4
rimraf: 3.0.2
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
flat@5.0.2: {}
flatted@3.3.3: {}
@@ -11520,6 +11847,15 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
+ glob@11.0.2:
+ dependencies:
+ foreground-child: 3.3.1
+ jackspeak: 4.1.1
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -11554,9 +11890,7 @@ snapshots:
globals@11.12.0: {}
- globals@13.24.0:
- dependencies:
- type-fest: 0.20.2
+ globals@14.0.0: {}
globalthis@1.0.4:
dependencies:
@@ -11812,6 +12146,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.5: {}
+
image-q@4.0.0:
dependencies:
'@types/node': 16.9.1
@@ -12032,8 +12368,6 @@ snapshots:
is-number@7.0.0: {}
- is-path-inside@3.0.3: {}
-
is-plain-obj@1.1.0: {}
is-plain-obj@3.0.0: {}
@@ -12170,6 +12504,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jackspeak@4.1.1:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
jake@10.9.2:
dependencies:
async: 3.2.6
@@ -12342,6 +12680,12 @@ snapshots:
known-css-properties@0.26.0: {}
+ language-subtag-registry@0.3.23: {}
+
+ language-tags@1.0.9:
+ dependencies:
+ language-subtag-registry: 0.3.23
+
launch-editor@2.10.0:
dependencies:
picocolors: 1.1.1
@@ -12438,6 +12782,8 @@ snapshots:
lru-cache@10.4.3: {}
+ lru-cache@11.1.0: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -12675,6 +13021,10 @@ snapshots:
minimalistic-assert@1.0.1: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@@ -13233,6 +13583,11 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.1.0
+ minipass: 7.1.2
+
path-to-regexp@0.1.12: {}
path-type@3.0.0:
@@ -14453,6 +14808,12 @@ snapshots:
emoji-regex: 9.2.2
strip-ansi: 7.1.0
+ string.prototype.includes@2.0.1:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.24.0
+
string.prototype.matchall@4.0.12:
dependencies:
call-bind: 1.0.8
@@ -14787,6 +15148,10 @@ snapshots:
trim-newlines@3.0.1: {}
+ ts-api-utils@2.1.0(typescript@4.9.5):
+ dependencies:
+ typescript: 4.9.5
+
ts-loader@9.5.2(typescript@4.9.5)(webpack@5.99.9):
dependencies:
chalk: 4.1.2
@@ -14819,8 +15184,6 @@ snapshots:
type-fest@0.18.1: {}
- type-fest@0.20.2: {}
-
type-fest@0.21.3: {}
type-fest@0.6.0: {}
@@ -14865,6 +15228,16 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
+ typescript-eslint@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5):
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5))(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@1.21.7))(typescript@4.9.5)
+ eslint: 9.28.0(jiti@1.21.7)
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+
typescript@4.9.5: {}
unbox-primitive@1.1.0:
diff --git a/src/App.tsx b/src/App.tsx
index eee0a1c..8e5e0c1 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,6 +1,5 @@
import "./App.css";
import { Wizard } from "./components/wizard";
-
import Box from "./example-assets/box";
import Dollar from "./example-assets/dollar";
import Twitter from "./example-assets/twitter";
diff --git a/src/components/form-field/__tests__/form-field.test.tsx b/src/components/form-field/__tests__/form-field.test.tsx
index 6b34e4d..bfdd087 100644
--- a/src/components/form-field/__tests__/form-field.test.tsx
+++ b/src/components/form-field/__tests__/form-field.test.tsx
@@ -1,13 +1,14 @@
import { fireEvent, render, waitFor } from "@testing-library/react";
import React from "react";
import { describe, expect, it, vi } from "vitest";
+
import { FormField } from "../form-field";
import styles from "../form-field.module.scss";
describe("FormField", () => {
it("should render text box", () => {
const { getByText } = render(
-
+
);
expect(getByText("first name")).toBeInTheDocument();
@@ -15,7 +16,7 @@ describe("FormField", () => {
it("should render checkbox", () => {
const { getByText } = render(
-
+
);
expect(getByText("option")).toBeInTheDocument();
@@ -23,7 +24,7 @@ describe("FormField", () => {
it("should render datetime", () => {
const { getByText } = render(
-
+
);
expect(getByText("date")).toBeInTheDocument();
@@ -31,7 +32,7 @@ describe("FormField", () => {
it("should render file", () => {
const { getByText } = render(
-
+
);
expect(getByText("file")).toBeInTheDocument();
@@ -42,7 +43,6 @@ describe("FormField", () => {
{
value: "two",
},
]}
+ type="select"
/>
);
@@ -60,7 +61,7 @@ describe("FormField", () => {
it("should render text area", () => {
const { getByText } = render(
-
+
);
expect(getByText("text")).toBeInTheDocument();
@@ -68,7 +69,7 @@ describe("FormField", () => {
it("should render valid icon", () => {
const { getByLabelText } = render(
-
+
);
expect(getByLabelText("success")).toBeInTheDocument();
@@ -80,10 +81,10 @@ describe("FormField", () => {
const { getByLabelText } = render(
);
@@ -94,7 +95,7 @@ describe("FormField", () => {
it("should render the label", () => {
const { getByLabelText } = render(
-
+
);
expect(getByLabelText("field 123")).toBeInTheDocument();
@@ -102,7 +103,7 @@ describe("FormField", () => {
it("should have the valid class", () => {
const { container } = render(
-
+
);
expect(container.firstChild).toHaveClass(
@@ -113,7 +114,7 @@ describe("FormField", () => {
it("should render asterisk icon for required field", () => {
const { getByLabelText } = render(
-
+
);
expect(getByLabelText("important field")).toBeInTheDocument();
@@ -125,10 +126,10 @@ describe("FormField", () => {
const { container } = render(
);
diff --git a/src/components/form-field/form-field-input.tsx b/src/components/form-field/form-field-input.tsx
index 02e9c8c..8ceb67e 100644
--- a/src/components/form-field/form-field-input.tsx
+++ b/src/components/form-field/form-field-input.tsx
@@ -1,7 +1,9 @@
import classNames from "classnames";
import { FunctionComponent, useContext, useMemo } from "react";
+
import Asterisk from "../../icons/asterisk";
import { WizardContext } from "../wizard-context";
+
import { FormChangeEvent, FormFieldProps } from "./form-field.model";
import styles from "./form-field.module.scss";
@@ -73,7 +75,7 @@ const FormFieldInput: FunctionComponent = ({
onChange={handleChange}
placeholder={placeholder}
required={isRequired}
- >
+ />
);
} else if (type === "radio" || type === "checkbox") {
return (
diff --git a/src/components/form-field/form-field-message.tsx b/src/components/form-field/form-field-message.tsx
index d2b8303..bd8bd22 100644
--- a/src/components/form-field/form-field-message.tsx
+++ b/src/components/form-field/form-field-message.tsx
@@ -1,14 +1,16 @@
import classNames from "classnames";
import { FunctionComponent, useMemo } from "react";
+
import InfoIcon from "../../icons/info";
+
import styles from "./form-field-message.module.scss";
-export type FormFieldMessageProps = {
+export interface FormFieldMessageProps {
message?: string;
RTL?: boolean;
isValid?: boolean | null;
show?: boolean;
-};
+}
const FormFieldMessage: FunctionComponent = ({
message,
diff --git a/src/components/form-field/form-field.model.ts b/src/components/form-field/form-field.model.ts
index 25732e7..71502ab 100644
--- a/src/components/form-field/form-field.model.ts
+++ b/src/components/form-field/form-field.model.ts
@@ -1,10 +1,10 @@
import { ChangeEvent } from "react";
-export type Option = {
+export interface Option {
id?: string;
name: string;
value: string | number | boolean;
-};
+}
export type InputType =
| "text"
@@ -20,7 +20,7 @@ export type InputType =
| "radio"
| "textarea";
-export type FormFieldProps = {
+export interface FormFieldProps {
name: string;
id?: string;
isRequired?: boolean;
@@ -35,7 +35,7 @@ export type FormFieldProps = {
placeholder?: string;
disabled?: boolean;
validationMessage?: string;
-};
+}
export type FormChangeEvent = (
e: ChangeEvent<
diff --git a/src/components/form-field/form-field.tsx b/src/components/form-field/form-field.tsx
index 419ee48..af19329 100644
--- a/src/components/form-field/form-field.tsx
+++ b/src/components/form-field/form-field.tsx
@@ -8,9 +8,11 @@ import {
useRef,
useState,
} from "react";
+
import CheckIcon from "../../icons/check";
import Exclamation from "../../icons/exclamation";
import { WizardContext } from "../wizard-context";
+
import { FormFieldInput } from "./form-field-input";
import { FormFieldMessage } from "./form-field-message";
import { FormChangeEvent, FormFieldProps } from "./form-field.model";
diff --git a/src/components/page/__tests__/page.test.tsx b/src/components/page/__tests__/page.test.tsx
index e225d0d..e362e2d 100644
--- a/src/components/page/__tests__/page.test.tsx
+++ b/src/components/page/__tests__/page.test.tsx
@@ -1,22 +1,23 @@
import { fireEvent, render, waitFor } from "@testing-library/react";
import React from "react";
import { describe, expect, it, vi } from "vitest";
+
import { FormFieldProps } from "../../form-field/form-field.model";
import { Page } from "../page";
const fields: FormFieldProps[] = [
{
- name: "name",
- label: "name",
id: "name",
isRequired: true,
+ label: "name",
+ name: "name",
type: "text",
},
{
- name: "email",
id: "email",
- label: `email`,
isRequired: true,
+ label: "email",
+ name: "email",
type: "email",
},
];
@@ -24,7 +25,7 @@ const fields: FormFieldProps[] = [
describe("Page", () => {
it("should render the page", () => {
const { getByText } = render(
-
+
);
expect(getByText("Introduction")).toBeInTheDocument();
@@ -32,7 +33,7 @@ describe("Page", () => {
it("should render the fields", () => {
const { getByLabelText } = render(
-
+
);
expect(getByLabelText("name")).toBeInTheDocument();
@@ -43,11 +44,11 @@ describe("Page", () => {
const onChange = vi.fn();
const { container } = render(
);
@@ -72,11 +73,11 @@ describe("Page", () => {
const onChange = vi.fn();
const { container } = render(
);
diff --git a/src/components/page/page.model.ts b/src/components/page/page.model.ts
index b6493ef..8a03906 100644
--- a/src/components/page/page.model.ts
+++ b/src/components/page/page.model.ts
@@ -1,6 +1,6 @@
import { FormFieldProps } from "../form-field/form-field.model";
-export type PageModelProps = {
+export interface PageModelProps {
id: string;
onChange?: (id: string, success: boolean) => void;
fields: FormFieldProps[];
@@ -10,4 +10,4 @@ export type PageModelProps = {
width?: number;
hide?: boolean;
state: "NOT_VALIDATED" | "SUCCESS" | "FAIL";
-};
+}
diff --git a/src/components/page/page.tsx b/src/components/page/page.tsx
index 117619a..74fe268 100644
--- a/src/components/page/page.tsx
+++ b/src/components/page/page.tsx
@@ -9,10 +9,12 @@ import {
useRef,
useState
} from "react";
+
import { getValidationMessage, validator } from "../../utils";
import { FormField } from "../form-field/form-field";
import { FormFieldProps } from "../form-field/form-field.model";
import { PageModelProps } from "../page/page.model";
+
import { WizardContext } from './../wizard-context';
import styles from "./page.module.scss";
diff --git a/src/components/wizard-context.ts b/src/components/wizard-context.ts
index 3c017f7..338a9d2 100644
--- a/src/components/wizard-context.ts
+++ b/src/components/wizard-context.ts
@@ -1,4 +1,5 @@
import { createContext } from "react";
+
import { contextType } from "./wizard.model";
export const WizardContext = createContext({
diff --git a/src/components/wizard-finish.tsx b/src/components/wizard-finish.tsx
index 014a958..2411385 100644
--- a/src/components/wizard-finish.tsx
+++ b/src/components/wizard-finish.tsx
@@ -1,10 +1,12 @@
import { FunctionComponent } from "react";
+
import CircleCheck from "../icons/circle-check";
+
import styles from "./wizard-finish.module.scss";
-export type WizardFinishProps = {
+export interface WizardFinishProps {
message?: string;
-};
+}
const WizardFinish: FunctionComponent = ({
message = "Thanks for submitting the details",
diff --git a/src/components/wizard-footer/__tests__/wizard-footer.test.tsx b/src/components/wizard-footer/__tests__/wizard-footer.test.tsx
index dc610a2..8fb52b5 100644
--- a/src/components/wizard-footer/__tests__/wizard-footer.test.tsx
+++ b/src/components/wizard-footer/__tests__/wizard-footer.test.tsx
@@ -1,5 +1,6 @@
import { fireEvent, render } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
+
import { PageModelProps } from "../../page/page.model";
import { WizardFooter } from "../wizard-footer";
import styles from "../wizard-footer.module.scss";
diff --git a/src/components/wizard-footer/wizard-footer.model.ts b/src/components/wizard-footer/wizard-footer.model.ts
index bf0fc2b..bfcfd3c 100644
--- a/src/components/wizard-footer/wizard-footer.model.ts
+++ b/src/components/wizard-footer/wizard-footer.model.ts
@@ -1,10 +1,10 @@
import { PageModelProps } from "../page/page.model";
-export type WizardFooterProps = {
+export interface WizardFooterProps {
onNext?: () => void;
onPrev?: () => void;
onFinish?: () => void;
activeId?: string;
pages: PageModelProps[];
message?: string;
-};
+}
diff --git a/src/components/wizard-footer/wizard-footer.tsx b/src/components/wizard-footer/wizard-footer.tsx
index 0e9c8a8..0e282c0 100644
--- a/src/components/wizard-footer/wizard-footer.tsx
+++ b/src/components/wizard-footer/wizard-footer.tsx
@@ -1,8 +1,10 @@
import classNames from "classnames";
import { FunctionComponent, useContext, useMemo } from "react";
+
import ChevronLeft from "../../icons/chevron-left";
import ChevronRight from "../../icons/chevron-right";
import { WizardFooterProps } from "../wizard-footer/wizard-footer.model";
+
import { WizardContext } from "./../wizard-context";
import styles from "./wizard-footer.module.scss";
diff --git a/src/components/wizard-header/__tests__/wizard-header.test.tsx b/src/components/wizard-header/__tests__/wizard-header.test.tsx
index 378330c..0fdfe58 100644
--- a/src/components/wizard-header/__tests__/wizard-header.test.tsx
+++ b/src/components/wizard-header/__tests__/wizard-header.test.tsx
@@ -1,34 +1,35 @@
import { render } from "@testing-library/react";
import React from "react";
import { describe, expect, it } from "vitest";
+
import { PageModelProps } from "../../page/page.model";
import { WizardHeader } from "../wizard-header";
const pages: PageModelProps[] = [
{
+ fields: [],
id: "page1",
- title: "Page 1",
state: "NOT_VALIDATED",
- fields: [],
+ title: "Page 1",
},
{
+ fields: [],
id: "page2",
- title: "Page 2",
state: "FAIL",
- fields: [],
+ title: "Page 2",
},
{
+ fields: [],
id: "page3",
- title: "Page 3",
state: "NOT_VALIDATED",
- fields: [],
+ title: "Page 3",
},
];
describe("Wizard Header", () => {
it("should render the header", () => {
const { getByRole, getAllByRole } = render(
-
+
);
expect(getByRole("tablist")).toBeInTheDocument();
@@ -37,7 +38,7 @@ describe("Wizard Header", () => {
it("should render icon states", () => {
const { getAllByRole } = render(
-
+
);
expect(getAllByRole("img")).toHaveLength(3);
diff --git a/src/components/wizard-header/wizard-header-tab.tsx b/src/components/wizard-header/wizard-header-tab.tsx
index e384264..9159211 100644
--- a/src/components/wizard-header/wizard-header-tab.tsx
+++ b/src/components/wizard-header/wizard-header-tab.tsx
@@ -1,8 +1,10 @@
import classNames from "classnames";
import { CSSProperties, FunctionComponent, useContext, useMemo } from "react";
+
import CheckIcon from "../../icons/check";
import WarnIcon from "../../icons/warning";
import { WizardContext } from "../wizard-context";
+
import { WizardTabProps } from "./wizard-header.model";
import styles from "./wizard-header.module.scss";
diff --git a/src/components/wizard-header/wizard-header.model.ts b/src/components/wizard-header/wizard-header.model.ts
index 66a1454..924dfe8 100644
--- a/src/components/wizard-header/wizard-header.model.ts
+++ b/src/components/wizard-header/wizard-header.model.ts
@@ -1,12 +1,13 @@
import { ReactNode } from "react";
+
import { PageModelProps } from "../page/page.model";
-export type WizardHeaderProps = {
+export interface WizardHeaderProps {
pages: PageModelProps[];
onSelect?: (id?: string) => void;
activeIndex: number;
icons?: ReactNode[];
-};
+}
export type WizardTabProps = Pick &
Pick & {
diff --git a/src/components/wizard-header/wizard-header.tsx b/src/components/wizard-header/wizard-header.tsx
index 8ce485e..001b4cc 100644
--- a/src/components/wizard-header/wizard-header.tsx
+++ b/src/components/wizard-header/wizard-header.tsx
@@ -1,6 +1,8 @@
import classNames from "classnames";
import { FunctionComponent, useContext, useMemo } from "react";
+
import { WizardContext } from "../wizard-context";
+
import { WizardHeaderTab } from "./wizard-header-tab";
import { WizardHeaderProps } from "./wizard-header.model";
import styles from "./wizard-header.module.scss";
diff --git a/src/components/wizard.model.ts b/src/components/wizard.model.ts
index df81900..486e377 100644
--- a/src/components/wizard.model.ts
+++ b/src/components/wizard.model.ts
@@ -1,9 +1,10 @@
import { ReactNode } from "react";
+
import { PageModelProps } from "./page/page.model";
export type WizardPageProps = Pick;
-export type Theme = {
+export interface Theme {
background?: string;
fail?: string;
formFieldBackground?: string;
@@ -16,9 +17,9 @@ export type Theme = {
tabColor?: string;
tabLineColor?: string;
warning?: string;
-};
+}
-export type WizardProps = {
+export interface WizardProps {
pages: WizardPageProps[];
theme?: Theme;
highlightFieldsOnValidation?: boolean;
@@ -34,12 +35,12 @@ export type WizardProps = {
silent?: boolean;
stepperItemWidth?: string;
showStepperTitles?: boolean;
-};
+}
-export type PageDim = {
+export interface PageDim {
height: number;
id: string;
-};
+}
export type contextType = Pick<
WizardProps,
diff --git a/src/components/wizard.tsx b/src/components/wizard.tsx
index f3f21d6..c007fcb 100644
--- a/src/components/wizard.tsx
+++ b/src/components/wizard.tsx
@@ -8,6 +8,7 @@ import {
useRef,
useState,
} from "react";
+
import { FormFieldProps } from "./form-field/form-field.model";
import { Page } from "./page/page";
import { PageModelProps } from "./page/page.model";
@@ -53,7 +54,7 @@ const Wizard: FunctionComponent = ({
const bodyNode = useRef(null);
const [activeIndex, setActiveIndex] = useState(0);
- const finalTheme = useRef<{ [key: string]: Object }>(
+ const finalTheme = useRef>(
Object.assign({}, ThemeDefaults, theme)
);
@@ -166,7 +167,7 @@ const Wizard: FunctionComponent = ({
const node = bodyNode.current;
if (node) {
const pages = node.querySelectorAll(".rc-wiz-page");
- const result: { [key: string]: Object } = {};
+ const result: Record = {};
pages.forEach((page) => {
const title = page.getAttribute("data-title")?.toLowerCase();
diff --git a/src/example-assets/box.tsx b/src/example-assets/box.tsx
index e68cb74..ed03c21 100644
--- a/src/example-assets/box.tsx
+++ b/src/example-assets/box.tsx
@@ -2,14 +2,14 @@ import * as React from "react";
const SvgComponent = () => (