From 2ef4c91ceeab73bda9452c022c201695cbb382da Mon Sep 17 00:00:00 2001 From: Vladislav Seregin Date: Tue, 20 Jan 2026 23:24:44 +0100 Subject: [PATCH 01/11] feat: migrate webpack to vite --- .env.sample | 2 +- index.html | 15 + package-lock.json | 7514 +++++++++++++------------------------ package.json | 38 +- public/index.html | 19 - tsconfig.json | 2 +- vite.config.ts | 182 + webpack/tsconfig.json | 12 - webpack/webpack.config.ts | 117 - 9 files changed, 2753 insertions(+), 5148 deletions(-) create mode 100644 index.html delete mode 100644 public/index.html create mode 100644 vite.config.ts delete mode 100644 webpack/tsconfig.json delete mode 100644 webpack/webpack.config.ts diff --git a/.env.sample b/.env.sample index 6f595878..1a4f5809 100644 --- a/.env.sample +++ b/.env.sample @@ -1,5 +1,5 @@ # Required - LeadCMS root URL could be local or remote url or empty value if admin is supposed to be server from wwwroot folder of the backend -CORE_API= +VITE_API_URL= #Required - Code version VERSION=1.0.0 diff --git a/index.html b/index.html new file mode 100644 index 00000000..d4f31555 --- /dev/null +++ b/index.html @@ -0,0 +1,15 @@ + + + + + + + + <%= title || 'LeadCMS Admin' %> + + +
+ + + + diff --git a/package-lock.json b/package-lock.json index d19531a6..e70b8960 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,10 +23,10 @@ "@mdx-js/mdx": "^3.1.1", "@mdxeditor/editor": "^3.42.0", "@monaco-editor/react": "^4.7.0", - "@mui/icons-material": "^7.1.0", - "@mui/material": "^7.1.0", - "@mui/x-data-grid": "^8.27.1", - "@mui/x-date-pickers": "^8.27.0", + "@mui/material": "7.3.7", + "@mui/x-data-grid": "^8.3.0", + "@mui/x-date-pickers": "^8.3.0", + "@tinymce/tinymce-react": "^6.1.0", "@uiw/react-md-editor": "^4.0.6", "@uiw/react-textarea-code-editor": "^3.1.1", "cronstrue": "^2.55.0", @@ -36,7 +36,7 @@ "hastscript": "^7.2.0", "liquidjs": "^10.24.0", "locale-codes": "^1.3.1", - "lodash": "^4.17.21", + "lodash-es": "4.17.22", "lucide-react": "^0.513.0", "marked": "^18.0.2", "mjml-browser": "^4.18.0", @@ -67,8 +67,7 @@ "zod-formik-adapter": "^1.2.0" }, "devDependencies": { - "@types/dotenv-webpack": "^7.0.3", - "@types/node": "^22.0.0", + "@types/node": "^24.1.0", "@types/react": "^18.2.0", "@types/react-dom": "^18.0.10", "@types/sanitize-html": "^2.16.1", @@ -77,20 +76,15 @@ "buffer": "^6.0.3", "clean-webpack-plugin": "^4.0.0", "commander": "^14.0.0", - "copy-webpack-plugin": "^13.0.0", "cross-env": "^7.0.3", - "css-loader": "^7.1.2", "dotenv": "^16.0.3", - "dotenv-webpack": "^8.0.1", - "eslint": "^8.32.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.1", - "eslint-plugin-react-hooks": "^4.6.0", - "html-webpack-plugin": "^5.6.3", + "eslint": "9.39.2", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-react": "7.37.5", + "eslint-plugin-react-hooks": "7.0.1", "husky": "^8.0.3", - "prettier": "^2.8.3", - "style-loader": "^4.0.0", + "prettier": "3.7.4", "swagger-typescript-api": "^13.1.3", "ts-loader": "^9.5.2", "ts-node": "^10.9.1", @@ -102,7 +96,7 @@ }, "engines": { "node": "^24.0.0", - "npm": "^11.0.0" + "npm": "^11.1.0" } }, "node_modules/@azure/msal-browser": { @@ -154,6 +148,61 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/generator": { "version": "7.29.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", @@ -170,11 +219,35 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@babel/helper-globals": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -192,6 +265,32 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", @@ -205,15 +304,36 @@ "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" @@ -225,10 +345,40 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -1099,6 +1249,12 @@ "react-dom": "^16.8.0 || ^17 || ^18 || ^19" } }, + "node_modules/@codesandbox/sandpack-react/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -1123,16 +1279,6 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", - "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.17.0" - } - }, "node_modules/@dnd-kit/accessibility": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", @@ -1348,698 +1494,790 @@ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", "license": "MIT" }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=18" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=18" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], "dev": true, - "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "MIT" - }, - "node_modules/@floating-ui/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", - "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.10" + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@floating-ui/dom": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", - "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.4", - "@floating-ui/utils": "^0.2.10" + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@floating-ui/react": { - "version": "0.27.18", - "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.18.tgz", - "integrity": "sha512-xJWJxvmy3a05j643gQt+pRbht5XnTlGpsEsAPnMi5F5YTOEEJymA90uZKBD8OvIv5XvZ1qi4GcccSlqT3Bq44Q==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.1.7", - "@floating-ui/utils": "^0.2.10", - "tabbable": "^6.0.0" - }, - "peerDependencies": { - "react": ">=17.0.0", - "react-dom": ">=17.0.0" + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", - "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.7.5" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", - "license": "MIT" + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@hookform/resolvers": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz", - "integrity": "sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==", - "license": "MIT", - "dependencies": { - "@standard-schema/utils": "^0.3.0" - }, - "peerDependencies": { - "react-hook-form": "^7.55.0" + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.10.0" + "node": ">=18" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=18" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], "dev": true, - "license": "BSD-3-Clause" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=18" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "license": "MIT" + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, - "node_modules/@jsonjoy.com/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=18" } }, - "node_modules/@jsonjoy.com/buffers": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", - "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=18" } }, - "node_modules/@jsonjoy.com/codegen": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", - "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=18" } }, - "node_modules/@jsonjoy.com/fs-core": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.56.10.tgz", - "integrity": "sha512-PyAEA/3cnHhsGcdY+AmIU+ZPqTuZkDhCXQ2wkXypdLitSpd6d5Ivxhnq4wa2ETRWFVJGabYynBWxIijOswSmOw==", + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "thingies": "^2.5.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "url": "https://opencollective.com/eslint" }, "peerDependencies": { - "tslib": "2" + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@jsonjoy.com/fs-fsa": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.56.10.tgz", - "integrity": "sha512-/FVK63ysNzTPOnCCcPoPHt77TOmachdMS422txM4KhxddLdbW1fIbFMYH0AM0ow/YchCyS5gqEjKLNyv71j/5Q==", + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "thingies": "^2.5.0" + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jsonjoy.com/fs-node": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.56.10.tgz", - "integrity": "sha512-7R4Gv3tkUdW3dXfXiOkqxkElxKNVdd8BDOWC0/dbERd0pXpPY+s2s1Mino+aTvkGrFPiY+mmVxA7zhskm4Ue4Q==", + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "@jsonjoy.com/fs-print": "4.56.10", - "@jsonjoy.com/fs-snapshot": "4.56.10", - "glob-to-regex.js": "^1.0.0", - "thingies": "^2.5.0" + "@eslint/core": "^0.17.0" }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jsonjoy.com/fs-node-builtins": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.56.10.tgz", - "integrity": "sha512-uUnKz8R0YJyKq5jXpZtkGV9U0pJDt8hmYcLRrPjROheIfjMXsz82kXMgAA/qNg0wrZ1Kv+hrg7azqEZx6XZCVw==", + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "dependencies": { + "@types/json-schema": "^7.0.15" }, - "peerDependencies": { - "tslib": "2" + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jsonjoy.com/fs-node-to-fsa": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.56.10.tgz", - "integrity": "sha512-oH+O6Y4lhn9NyG6aEoFwIBNKZeYy66toP5LJcDOMBgL99BKQMUf/zWJspdRhMdn/3hbzQsZ8EHHsuekbFLGUWw==", + "node_modules/@eslint/eslintrc": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@jsonjoy.com/fs-fsa": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@jsonjoy.com/fs-node-utils": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.56.10.tgz", - "integrity": "sha512-8EuPBgVI2aDPwFdaNQeNpHsyqPi3rr+85tMNG/lHvQLiVjzoZsvxA//Xd8aB567LUhy4QS03ptT+unkD/DIsNg==", + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", "dependencies": { - "@jsonjoy.com/fs-node-builtins": "4.56.10" + "argparse": "^2.0.1" }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://eslint.org/donate" } }, - "node_modules/@jsonjoy.com/fs-print": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.56.10.tgz", - "integrity": "sha512-JW4fp5mAYepzFsSGrQ48ep8FXxpg4niFWHdF78wDrFGof7F3tKDJln72QFDEn/27M1yHd4v7sKHHVPh78aWcEw==", + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-node-utils": "4.56.10", - "tree-dump": "^1.1.0" - }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@jsonjoy.com/fs-snapshot": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.56.10.tgz", - "integrity": "sha512-DkR6l5fj7+qj0+fVKm/OOXMGfDFCGXLfyHkORH3DF8hxkpDgIHbhf/DwncBMs2igu/ST7OEkexn1gIqoU6Y+9g==", + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/buffers": "^17.65.0", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "@jsonjoy.com/json-pack": "^17.65.0", - "@jsonjoy.com/util": "^17.65.0" + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@exodus/schemasafe": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@floating-ui/core": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", + "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", + "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.4", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.27.18", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.18.tgz", + "integrity": "sha512-xJWJxvmy3a05j643gQt+pRbht5XnTlGpsEsAPnMi5F5YTOEEJymA90uZKBD8OvIv5XvZ1qi4GcccSlqT3Bq44Q==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.7", + "@floating-ui/utils": "^0.2.10", + "tabbable": "^6.0.0" }, "peerDependencies": { - "tslib": "2" + "react": ">=17.0.0", + "react-dom": ">=17.0.0" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", - "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "node_modules/@floating-ui/react-dom": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", + "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.5" }, "peerDependencies": { - "tslib": "2" + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", - "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", - "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@hookform/resolvers": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz", + "integrity": "sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==", + "license": "MIT", "dependencies": { - "@jsonjoy.com/base64": "17.67.0", - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0", - "@jsonjoy.com/json-pointer": "17.67.0", - "@jsonjoy.com/util": "17.67.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" + "@standard-schema/utils": "^0.3.0" }, "peerDependencies": { - "tslib": "2" + "react-hook-form": "^7.55.0" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", - "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/util": "17.67.0" - }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=18.18.0" } }, - "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { - "version": "17.67.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", - "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/buffers": "17.67.0", - "@jsonjoy.com/codegen": "17.67.0" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=18.18.0" } }, - "node_modules/@jsonjoy.com/json-pack": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", - "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/base64": "^1.1.2", - "@jsonjoy.com/buffers": "^1.2.0", - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/json-pointer": "^1.0.2", - "@jsonjoy.com/util": "^1.9.0", - "hyperdyperid": "^1.2.0", - "thingies": "^2.5.0", - "tree-dump": "^1.1.0" - }, "engines": { - "node": ">=10.0" + "node": ">=12.22" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.0" + "node": ">=18.18" }, "funding": { "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@jsonjoy.com/json-pointer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", - "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dependencies": { - "@jsonjoy.com/codegen": "^1.0.0", - "@jsonjoy.com/util": "^1.9.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jsonjoy.com/util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", - "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@jsonjoy.com/buffers": "^1.0.0", - "@jsonjoy.com/codegen": "^1.0.0" - }, - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", - "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", - "dev": true, - "license": "Apache-2.0", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" + "node": ">=6.0.0" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "license": "MIT" }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@lexical/clipboard": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.35.0.tgz", - "integrity": "sha512-ko7xSIIiayvDiqjNDX6fgH9RlcM6r9vrrvJYTcfGVBor5httx16lhIi0QJZ4+RNPvGtTjyFv4bwRmsixRRwImg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.33.1.tgz", + "integrity": "sha512-Qd3/Cm3TW2DFQv58kMtLi86u5YOgpBdf+o7ySbXz55C613SLACsYQBB3X5Vu5hTx/t/ugYOpII4HkiatW6d9zA==", "license": "MIT", "dependencies": { - "@lexical/html": "0.35.0", - "@lexical/list": "0.35.0", - "@lexical/selection": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/html": "0.33.1", + "@lexical/list": "0.33.1", + "@lexical/selection": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/code": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/code/-/code-0.35.0.tgz", - "integrity": "sha512-ox4DZwETQ9IA7+DS6PN8RJNwSAF7RMjL7YTVODIqFZ5tUFIf+5xoCHbz7Fll0Bvixlp12hVH90xnLwTLRGpkKw==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/code/-/code-0.33.1.tgz", + "integrity": "sha512-E0Y/+1znkqVpP52Y6blXGAduoZek9SSehJN+vbH+4iQKyFwTA7JB+jd5C5/K0ik55du9X7SN/oTynByg7lbcAA==", "license": "MIT", "dependencies": { - "@lexical/utils": "0.35.0", - "lexical": "0.35.0", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1", "prismjs": "^1.30.0" } }, "node_modules/@lexical/devtools-core": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/devtools-core/-/devtools-core-0.35.0.tgz", - "integrity": "sha512-C2wwtsMCR6ZTfO0TqpSM17RLJWyfHmifAfCTjFtOJu15p3M6NO/nHYK5Mt7YMQteuS89mOjB4ng8iwoLEZ6QpQ==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/devtools-core/-/devtools-core-0.33.1.tgz", + "integrity": "sha512-3yHu5diNtjwhoe2q/x9as6n6rIfA+QO2CfaVjFRkam8rkAW6zUzQT1D0fQdE8nOfWvXBgY1mH/ZLP4dDXBdG5Q==", "license": "MIT", "dependencies": { - "@lexical/html": "0.35.0", - "@lexical/link": "0.35.0", - "@lexical/mark": "0.35.0", - "@lexical/table": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/html": "0.33.1", + "@lexical/link": "0.33.1", + "@lexical/mark": "0.33.1", + "@lexical/table": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" }, "peerDependencies": { "react": ">=17.x", @@ -2047,144 +2285,144 @@ } }, "node_modules/@lexical/dragon": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/dragon/-/dragon-0.35.0.tgz", - "integrity": "sha512-SL6mT5pcqrt6hEbJ16vWxip5+r3uvMd0bQV5UUxuk+cxIeuP86iTgRh0HFR7SM2dRTYovL6/tM/O+8QLAUGTIg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/dragon/-/dragon-0.33.1.tgz", + "integrity": "sha512-UQ6DLkcDAr83wA1vz3sUgtcpYcMifC4sF0MieZAoMzFrna6Ekqj7OJ7g8Lo7m7AeuT4NETRVDsjIEDdrQMKLLA==", "license": "MIT", "dependencies": { - "lexical": "0.35.0" + "lexical": "0.33.1" } }, "node_modules/@lexical/hashtag": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/hashtag/-/hashtag-0.35.0.tgz", - "integrity": "sha512-LYJWzXuO2ZjKsvQwrLkNZiS2TsjwYkKjlDgtugzejquTBQ/o/nfSn/MmVx6EkYLOYizaJemmZbz3IBh+u732FA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/hashtag/-/hashtag-0.33.1.tgz", + "integrity": "sha512-M3IsDe4cifggMBZgYAVT7hCLWcwQ3dIcUPdr9Xc6wDQQQdEqOQYB0PO//9bSYUVq+BNiiTgysc+TtlM7PiJfiw==", "license": "MIT", "dependencies": { - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/history": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/history/-/history-0.35.0.tgz", - "integrity": "sha512-onjDRLLxGbCfHexSxxrQaDaieIHyV28zCDrbxR5dxTfW8F8PxjuNyuaG0z6o468AXYECmclxkP+P4aT6poHEpQ==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/history/-/history-0.33.1.tgz", + "integrity": "sha512-Bk0h3D6cFkJ7w3HKvqQua7n6Xfz7nR7L3gLDBH9L0nsS4MM9+LteSEZPUe0kj4VuEjnxufYstTc9HA2aNLKxnQ==", "license": "MIT", "dependencies": { - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/html": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/html/-/html-0.35.0.tgz", - "integrity": "sha512-rXGFE5S5rKsg3tVnr1s4iEgOfCApNXGpIFI3T2jGEShaCZ5HLaBY9NVBXnE9Nb49e9bkDkpZ8FZd1qokCbQXbw==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/html/-/html-0.33.1.tgz", + "integrity": "sha512-t14vu4eKa6BWz1N7/rwXgXif1k4dj73dRvllWJgfXum+a36vn1aySNYOlOfqWXF7k1b3uJmoqsWK7n/1ASnimw==", "license": "MIT", "dependencies": { - "@lexical/selection": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/selection": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/link": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/link/-/link-0.35.0.tgz", - "integrity": "sha512-+0Wx6cBwO8TfdMzpkYFacsmgFh8X1rkiYbq3xoLvk3qV8upYxaMzK1s8Q1cpKmWyI0aZrU6z7fiK4vUqB7+69w==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/link/-/link-0.33.1.tgz", + "integrity": "sha512-JCTu7Fft2J2kgfqJiWnGei+UMIXVKiZKaXzuHCuGQTFu92DeCyd02azBaFazZHEkSqCIFZ0DqVV2SpIJmd0Ygw==", "license": "MIT", "dependencies": { - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/list": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/list/-/list-0.35.0.tgz", - "integrity": "sha512-owsmc8iwgExBX8sFe8fKTiwJVhYULt9hD1RZ/HwfaiEtRZZkINijqReOBnW2mJfRxBzhFSWc4NG3ISB+fHYzqw==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/list/-/list-0.33.1.tgz", + "integrity": "sha512-PXp56dWADSThc9WhwWV4vXhUc3sdtCqsfPD3UQNGUZ9rsAY1479rqYLtfYgEmYPc8JWXikQCAKEejahCJIm8OQ==", "license": "MIT", "dependencies": { - "@lexical/selection": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/selection": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/mark": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/mark/-/mark-0.35.0.tgz", - "integrity": "sha512-W0hwMTAVeexvpk9/+J6n1G/sNkpI/Meq1yeDazahFLLAwXLHtvhIAq2P/klgFknDy1hr8X7rcsQuN/bqKcKHYg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/mark/-/mark-0.33.1.tgz", + "integrity": "sha512-tGdOf1e694lnm/HyWUKEkEWjDyfhCBFG7u8iRKNpsYTpB3M1FsJUXbphE2bb8MyWfhHbaNxnklupSSaSPzO88A==", "license": "MIT", "dependencies": { - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/markdown": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/markdown/-/markdown-0.35.0.tgz", - "integrity": "sha512-BlNyXZAt4gWidMw0SRWrhBETY1BpPglFBZI7yzfqukFqgXRh7HUQA28OYeI/nsx9pgNob8TiUduUwShqqvOdEA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/markdown/-/markdown-0.33.1.tgz", + "integrity": "sha512-p5zwWNF70pELRx60wxE8YOFVNiNDkw7gjKoYqkED23q5hj4mcqco9fQf6qeeZChjxLKjfyT6F1PpWgxmlBlxBw==", "license": "MIT", "dependencies": { - "@lexical/code": "0.35.0", - "@lexical/link": "0.35.0", - "@lexical/list": "0.35.0", - "@lexical/rich-text": "0.35.0", - "@lexical/text": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/code": "0.33.1", + "@lexical/link": "0.33.1", + "@lexical/list": "0.33.1", + "@lexical/rich-text": "0.33.1", + "@lexical/text": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/offset": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/offset/-/offset-0.35.0.tgz", - "integrity": "sha512-DRE4Df6qYf2XiV6foh6KpGNmGAv2ANqt3oVXpyS6W8hTx3+cUuAA1APhCZmLNuU107um4zmHym7taCu6uXW5Yg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/offset/-/offset-0.33.1.tgz", + "integrity": "sha512-3YIlUs43QdKSBLEfOkuciE2tn9loxVmkSs/HgaIiLYl0Edf1W00FP4ItSmYU4De5GopXsHq6+Y3ry4pU/ciUiQ==", "license": "MIT", "dependencies": { - "lexical": "0.35.0" + "lexical": "0.33.1" } }, "node_modules/@lexical/overflow": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/overflow/-/overflow-0.35.0.tgz", - "integrity": "sha512-B25YvnJQTGlZcrNv7b0PJBLWq3tl8sql497OHfYYLem7EOMPKKDGJScJAKM/91D4H/mMAsx5gnA/XgKobriuTg==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/overflow/-/overflow-0.33.1.tgz", + "integrity": "sha512-3BDq1lOw567FeCk4rN2ellKwoXTM9zGkGuKnSGlXS1JmtGGGSvT+uTANX3KOOfqTNSrOkrwoM+3hlFv7p6VpiQ==", "license": "MIT", "dependencies": { - "lexical": "0.35.0" + "lexical": "0.33.1" } }, "node_modules/@lexical/plain-text": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/plain-text/-/plain-text-0.35.0.tgz", - "integrity": "sha512-lwBCUNMJf7Gujp2syVWMpKRahfbTv5Wq+H3HK1Q1gKH1P2IytPRxssCHvexw9iGwprSyghkKBlbF3fGpEdIJvQ==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/plain-text/-/plain-text-0.33.1.tgz", + "integrity": "sha512-2HxdhAx6bwF8y5A9P0q3YHsYbhUo4XXm+GyKJO87an8JClL2W+GYLTSDbfNWTh4TtH95eG+UYLOjNEgyU6tsWA==", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.35.0", - "@lexical/selection": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/clipboard": "0.33.1", + "@lexical/selection": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/react": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/react/-/react-0.35.0.tgz", - "integrity": "sha512-uYAZSqumH8tRymMef+A0f2hQvMwplKK9DXamcefnk3vSNDHHqRWQXpiUo6kD+rKWuQmMbVa5RW4xRQebXEW+1A==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/react/-/react-0.33.1.tgz", + "integrity": "sha512-ylnUmom5h8PY+Z14uDmKLQEoikTPN77GRM0NRCIdtbWmOQqOq/5BhuCzMZE1WvpL5C6n3GtK6IFnsMcsKmVOcw==", "license": "MIT", "dependencies": { "@floating-ui/react": "^0.27.8", - "@lexical/devtools-core": "0.35.0", - "@lexical/dragon": "0.35.0", - "@lexical/hashtag": "0.35.0", - "@lexical/history": "0.35.0", - "@lexical/link": "0.35.0", - "@lexical/list": "0.35.0", - "@lexical/mark": "0.35.0", - "@lexical/markdown": "0.35.0", - "@lexical/overflow": "0.35.0", - "@lexical/plain-text": "0.35.0", - "@lexical/rich-text": "0.35.0", - "@lexical/table": "0.35.0", - "@lexical/text": "0.35.0", - "@lexical/utils": "0.35.0", - "@lexical/yjs": "0.35.0", - "lexical": "0.35.0", + "@lexical/devtools-core": "0.33.1", + "@lexical/dragon": "0.33.1", + "@lexical/hashtag": "0.33.1", + "@lexical/history": "0.33.1", + "@lexical/link": "0.33.1", + "@lexical/list": "0.33.1", + "@lexical/mark": "0.33.1", + "@lexical/markdown": "0.33.1", + "@lexical/overflow": "0.33.1", + "@lexical/plain-text": "0.33.1", + "@lexical/rich-text": "0.33.1", + "@lexical/table": "0.33.1", + "@lexical/text": "0.33.1", + "@lexical/utils": "0.33.1", + "@lexical/yjs": "0.33.1", + "lexical": "0.33.1", "react-error-boundary": "^3.1.4" }, "peerDependencies": { @@ -2209,67 +2447,67 @@ } }, "node_modules/@lexical/rich-text": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/rich-text/-/rich-text-0.35.0.tgz", - "integrity": "sha512-qEHu8g7vOEzz9GUz1VIUxZBndZRJPh9iJUFI+qTDHj+tQqnd5LCs+G9yz6jgNfiuWWpezTp0i1Vz/udNEuDPKQ==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/rich-text/-/rich-text-0.33.1.tgz", + "integrity": "sha512-ZBIsj4LwmamRBCGjJiPSLj7N/XkUDv/pnYn5Rp0BL42WpOiQLvOoGLrZxgUJZEmRPQnx42ZgLKVgrWHsyjuoAA==", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.35.0", - "@lexical/selection": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/clipboard": "0.33.1", + "@lexical/selection": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/selection": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/selection/-/selection-0.35.0.tgz", - "integrity": "sha512-mMtDE7Q0nycXdFTTH/+ta6EBrBwxBB4Tg8QwsGntzQ1Cq//d838dpXpFjJOqHEeVHUqXpiuj+cBG8+bvz/rPRw==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/selection/-/selection-0.33.1.tgz", + "integrity": "sha512-KXPkdCDdVfIUXmkwePu9DAd3kLjL0aAqL5G9CMCFsj7RG9lLvvKk7kpivrAIbRbcsDzO44QwsFPisZHbX4ioXA==", "license": "MIT", "dependencies": { - "lexical": "0.35.0" + "lexical": "0.33.1" } }, "node_modules/@lexical/table": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/table/-/table-0.35.0.tgz", - "integrity": "sha512-9jlTlkVideBKwsEnEkqkdg7A3mije1SvmfiqoYnkl1kKJCLA5iH90ywx327PU0p+bdnURAytWUeZPXaEuEl2OA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/table/-/table-0.33.1.tgz", + "integrity": "sha512-pzB11i1Y6fzmy0IPUKJyCdhVBgXaNOxJUxrQJWdKNYCh1eMwwMEQvj+8inItd/11aUkjcdHjwDTht8gL2UHKiQ==", "license": "MIT", "dependencies": { - "@lexical/clipboard": "0.35.0", - "@lexical/utils": "0.35.0", - "lexical": "0.35.0" + "@lexical/clipboard": "0.33.1", + "@lexical/utils": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/text": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/text/-/text-0.35.0.tgz", - "integrity": "sha512-uaMh46BkysV8hK8wQwp5g/ByZW+2hPDt8ahAErxtf8NuzQem1FHG/f5RTchmFqqUDVHO3qLNTv4AehEGmXv8MA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/text/-/text-0.33.1.tgz", + "integrity": "sha512-CnyU3q3RytXXWVSvC5StOKISzFAPGK9MuesNDDGyZk7yDK+J98gV6df4RBKfqwcokFMThpkUlvMeKe1+S2y25A==", "license": "MIT", "dependencies": { - "lexical": "0.35.0" + "lexical": "0.33.1" } }, "node_modules/@lexical/utils": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/utils/-/utils-0.35.0.tgz", - "integrity": "sha512-2H393EYDnFznYCDFOW3MHiRzwEO5M/UBhtUjvTT+9kc+qhX4U3zc8ixQalo5UmZ5B2nh7L/inXdTFzvSRXtsRA==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/utils/-/utils-0.33.1.tgz", + "integrity": "sha512-eKysPjzEE9zD+2af3WRX5U3XbeNk0z4uv1nXGH3RG15uJ4Huzjht82hzsQpCFUobKmzYlQaQs5y2IYKE2puipQ==", "license": "MIT", "dependencies": { - "@lexical/list": "0.35.0", - "@lexical/selection": "0.35.0", - "@lexical/table": "0.35.0", - "lexical": "0.35.0" + "@lexical/list": "0.33.1", + "@lexical/selection": "0.33.1", + "@lexical/table": "0.33.1", + "lexical": "0.33.1" } }, "node_modules/@lexical/yjs": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/@lexical/yjs/-/yjs-0.35.0.tgz", - "integrity": "sha512-3DSP7QpmTGYU9bN/yljP0PIao4tNIQtsR4ycauWNSawxs/GQCZtSmAPcLRnCm6qpqsDDjUtKjO/1Ej8FRp0m0w==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@lexical/yjs/-/yjs-0.33.1.tgz", + "integrity": "sha512-Zx1rabMm/Zjk7n7YQMIQLUN+tqzcg1xqcgNpEHSfK1GA8QMPXCPvXWFT3ZDC4tfZOSy/YIqpVUyWZAomFqRa+g==", "license": "MIT", "dependencies": { - "@lexical/offset": "0.35.0", - "@lexical/selection": "0.35.0", - "lexical": "0.35.0" + "@lexical/offset": "0.33.1", + "@lexical/selection": "0.33.1", + "lexical": "0.33.1" }, "peerDependencies": { "yjs": ">=13.5.22" @@ -2521,9 +2759,9 @@ } }, "node_modules/@mdxeditor/editor": { - "version": "3.52.4", - "resolved": "https://registry.npmjs.org/@mdxeditor/editor/-/editor-3.52.4.tgz", - "integrity": "sha512-Tr/QKR7pVrle9xF3ZCsUESOlLY8UZ0N/8RZcyyRWvnuEvePi4EAcbthwnyDkVpnwGppkUxPNrFTAnL7Y0R1Hwg==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/@mdxeditor/editor/-/editor-3.42.0.tgz", + "integrity": "sha512-nQN07RkTm842T477IjPqp1FhWCQMpmbLToOVrc6EjSI60aHifwzva+eqYmElHFKE2jyGiD5FsaQXri1SSORJNg==", "license": "MIT", "dependencies": { "@codemirror/commands": "^6.2.4", @@ -2533,16 +2771,16 @@ "@codemirror/state": "^6.4.0", "@codemirror/view": "^6.23.0", "@codesandbox/sandpack-react": "^2.20.0", - "@lexical/clipboard": "^0.35.0", - "@lexical/link": "^0.35.0", - "@lexical/list": "^0.35.0", - "@lexical/markdown": "^0.35.0", - "@lexical/plain-text": "^0.35.0", - "@lexical/react": "^0.35.0", - "@lexical/rich-text": "^0.35.0", - "@lexical/selection": "^0.35.0", - "@lexical/utils": "^0.35.0", - "@mdxeditor/gurx": "^1.2.4", + "@lexical/clipboard": "^0.33.1", + "@lexical/link": "^0.33.1", + "@lexical/list": "^0.33.1", + "@lexical/markdown": "^0.33.1", + "@lexical/plain-text": "^0.33.1", + "@lexical/react": "^0.33.1", + "@lexical/rich-text": "^0.33.1", + "@lexical/selection": "^0.33.1", + "@lexical/utils": "^0.33.1", + "@mdxeditor/gurx": "^1.1.4", "@radix-ui/colors": "^3.0.0", "@radix-ui/react-dialog": "^1.1.11", "@radix-ui/react-icons": "^1.3.2", @@ -2556,8 +2794,8 @@ "cm6-theme-basic-light": "^0.2.0", "codemirror": "^6.0.1", "downshift": "^7.6.0", - "js-yaml": "4.1.1", - "lexical": "^0.35.0", + "js-yaml": "4.1.0", + "lexical": "^0.33.1", "mdast-util-directive": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-frontmatter": "^2.0.1", @@ -2592,9 +2830,9 @@ } }, "node_modules/@mdxeditor/gurx": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@mdxeditor/gurx/-/gurx-1.2.4.tgz", - "integrity": "sha512-9ZykIFYhKaXaaSPCs1cuI+FvYDegJjbKwmA4ASE/zY+hJY6EYqvoye4esiO85CjhOw9aoD/izD/CU78/egVqmg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@mdxeditor/gurx/-/gurx-1.2.3.tgz", + "integrity": "sha512-5DQOlEx46oN9spggrC8husAGAhVoEFBGIYKN48es08XhRUbSU6l5bcIQYwRrQaY8clU1tExIcXzw8/fNnoxjpg==", "license": "MIT", "engines": { "node": ">=16" @@ -2628,53 +2866,27 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.8.tgz", - "integrity": "sha512-s9UHZo7QJVly7gNArEZkbbsimHqJZhElgBpXIJdehZ4OWXt+CCr0SBDgUCDJnQrqpd1dWK2dLq5rmO4mCBmI3w==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - } - }, - "node_modules/@mui/icons-material": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.8.tgz", - "integrity": "sha512-88sWg/UJc1X82OMO+ISR4E3P58I3BjFVg0qkmDu7OWlN8VijneZD3ylFA+ImxuPjMHW3SHosfSJYy1fztoz0fw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.7.tgz", + "integrity": "sha512-8jWwS6FweMkpyRkrJooamUGe1CQfO1yJ+lM43IyUJbrhHW/ObES+6ry4vfGi8EKaldHL3t3BG1bcLcERuJPcjg==", "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.28.6" - }, - "engines": { - "node": ">=14.0.0" - }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@mui/material": "^7.3.8", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } } }, "node_modules/@mui/material": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.8.tgz", - "integrity": "sha512-QKd1RhDXE1hf2sQDNayA9ic9jGkEgvZOf0tTkJxlBPG8ns8aS4rS8WwYURw2x5y3739p0HauUXX9WbH7UufFLw==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.7.tgz", + "integrity": "sha512-6bdIxqzeOtBAj2wAsfhWCYyMKPLkRO9u/2o5yexcL0C3APqyy91iGSWgT3H7hg+zR2XgE61+WAu12wXPON8b6A==", "license": "MIT", "peer": true, "dependencies": { - "@babel/runtime": "^7.28.6", - "@mui/core-downloads-tracker": "^7.3.8", - "@mui/system": "^7.3.8", - "@mui/types": "^7.4.11", - "@mui/utils": "^7.3.8", + "@babel/runtime": "^7.28.4", + "@mui/core-downloads-tracker": "^7.3.7", + "@mui/system": "^7.3.7", + "@mui/types": "^7.4.10", + "@mui/utils": "^7.3.7", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.12", "clsx": "^2.1.1", @@ -2693,7 +2905,7 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@mui/material-pigment-css": "^7.3.8", + "@mui/material-pigment-css": "^7.3.7", "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react": "^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2720,13 +2932,13 @@ "license": "MIT" }, "node_modules/@mui/private-theming": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.8.tgz", - "integrity": "sha512-du5dlPZ9XL3xW2apHoGDXBI+QLtyVJGrXNCfcNYfP/ojkz1RQ0rRV6VG9Rkm1DqEFRG8mjjTL7zmE1Bvn1eR4A==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.7.tgz", + "integrity": "sha512-w7r1+CYhG0syCAQUWAuV5zSaU2/67WA9JXUderdb7DzCIJdp/5RmJv6L85wRjgKCMsxFF0Kfn0kPgPbPgw/jdw==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.6", - "@mui/utils": "^7.3.8", + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.7", "prop-types": "^15.8.1" }, "engines": { @@ -2747,12 +2959,12 @@ } }, "node_modules/@mui/styled-engine": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.8.tgz", - "integrity": "sha512-JHAeXQzS0tJ+Fq3C6J4TVDsW+yKhO4uuxuiLaopNStJeQYBIUCXpKYyUCcgXym4AmhbznQnv9RlHywSH6b0FOg==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.7.tgz", + "integrity": "sha512-y/QkNXv6cF6dZ5APztd/dFWfQ6LHKPx3skyYO38YhQD4+Cxd6sFAL3Z38WMSSC8LQz145Mpp3CcLrSCLKPwYAg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.6", + "@babel/runtime": "^7.28.4", "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", "@emotion/sheet": "^1.4.0", @@ -2781,17 +2993,17 @@ } }, "node_modules/@mui/system": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.8.tgz", - "integrity": "sha512-hoFRj4Zw2Km8DPWZp/nKG+ao5Jw5LSk2m/e4EGc6M3RRwXKEkMSG4TgtfVJg7dS2homRwtdXSMW+iRO0ZJ4+IA==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.7.tgz", + "integrity": "sha512-DovL3k+FBRKnhmatzUMyO5bKkhMLlQ9L7Qw5qHrre3m8zCZmE+31NDVBFfqrbrA7sq681qaEIHdkWD5nmiAjyQ==", "license": "MIT", "peer": true, "dependencies": { - "@babel/runtime": "^7.28.6", - "@mui/private-theming": "^7.3.8", - "@mui/styled-engine": "^7.3.8", - "@mui/types": "^7.4.11", - "@mui/utils": "^7.3.8", + "@babel/runtime": "^7.28.4", + "@mui/private-theming": "^7.3.7", + "@mui/styled-engine": "^7.3.7", + "@mui/types": "^7.4.10", + "@mui/utils": "^7.3.7", "clsx": "^2.1.1", "csstype": "^3.2.3", "prop-types": "^15.8.1" @@ -2822,12 +3034,12 @@ } }, "node_modules/@mui/types": { - "version": "7.4.11", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.11.tgz", - "integrity": "sha512-fZ2xO9D08IKOxO2oUBi1nnVKH6oJUD+64cnv4YAaFoC0E5+i1+S5AHbNqqvZlYYsbPEQ6qEVwuBqY3jl5W4G+Q==", + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.10.tgz", + "integrity": "sha512-0+4mSjknSu218GW3isRqoxKRTOrTLd/vHi/7UC4+wZcUrOAqD9kRk7UQRL1mcrzqRoe7s3UT6rsRpbLkW5mHpQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.6" + "@babel/runtime": "^7.28.4" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -2839,13 +3051,13 @@ } }, "node_modules/@mui/utils": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.8.tgz", - "integrity": "sha512-kZRcE2620CBGr+XI8YMmwPj6WIPwSF7uMJjvSfqd8zXVvlz0MCJbzRRUGNf8NgflCLthdji2DdS643TeyJ3+nA==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.7.tgz", + "integrity": "sha512-+YjnjMRnyeTkWnspzoxRdiSOgkrcpTikhNPoxOZW0APXx+urHtUoXJ9lbtCZRCA5a4dg5gSbd19alL1DvRs5fg==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.28.6", - "@mui/types": "^7.4.11", + "@babel/runtime": "^7.28.4", + "@mui/types": "^7.4.10", "@types/prop-types": "^15.7.15", "clsx": "^2.1.1", "prop-types": "^15.8.1", @@ -3022,220 +3234,61 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@open-draft/deferred-promise": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", - "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", - "license": "MIT" - }, - "node_modules/@peculiar/asn1-cms": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", - "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-csr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", - "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-ecc": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", - "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pfx": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", - "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-rsa": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", - "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", - "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.1", - "@peculiar/asn1-pfx": "^2.6.1", - "@peculiar/asn1-pkcs8": "^2.6.1", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "@peculiar/asn1-x509-attr": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-rsa": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", - "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", - "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "license": "MIT", "dependencies": { - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", - "tslib": "^2.8.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@peculiar/asn1-x509": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", - "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "asn1js": "^3.0.6", - "pvtsutils": "^1.3.6", - "tslib": "^2.8.1" + "engines": { + "node": ">= 8" } }, - "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", - "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.1", - "asn1js": "^3.0.6", - "tslib": "^2.8.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/@peculiar/x509": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", - "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "license": "MIT" + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", "dev": true, "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-csr": "^2.6.0", - "@peculiar/asn1-ecc": "^2.6.0", - "@peculiar/asn1-pkcs9": "^2.6.0", - "@peculiar/asn1-rsa": "^2.6.0", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "pvtsutils": "^1.3.6", - "reflect-metadata": "^0.2.2", - "tslib": "^2.8.1", - "tsyringe": "^4.10.0" - }, "engines": { - "node": ">=20.0.0" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" } }, "node_modules/@popperjs/core": { @@ -4050,14 +4103,366 @@ } }, "node_modules/@remix-run/router": { - "version": "1.23.2", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", - "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@standard-schema/utils": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", @@ -4070,6 +4475,25 @@ "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==", "license": "MIT" }, + "node_modules/@tinymce/tinymce-react": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@tinymce/tinymce-react/-/tinymce-react-6.3.0.tgz", + "integrity": "sha512-E++xnn0XzDzpKr40jno2Kj7umfAE6XfINZULEBBeNjTMvbACWzA6CjiR6V8eTDc9yVmdVhIPqVzV4PqD5TZ/4g==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "^19.0.0 || ^18.0.0 || ^17.0.1 || ^16.7.0", + "react-dom": "^19.0.0 || ^18.0.0 || ^17.0.1 || ^16.7.0", + "tinymce": "^8.0.0 || ^7.0.0 || ^6.0.0 || ^5.5.1" + }, + "peerDependenciesMeta": { + "tinymce": { + "optional": true + } + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", @@ -4098,46 +4522,45 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/body-parser": { - "version": "1.19.6", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", - "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/connect": "*", - "@types/node": "*" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, - "license": "MIT", "dependencies": { - "@types/node": "*" + "@babel/types": "^7.0.0" } }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "MIT", "dependencies": { - "@types/node": "*" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, - "license": "MIT", "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" + "@babel/types": "^7.28.2" } }, "node_modules/@types/d3-array": { @@ -4212,45 +4635,10 @@ "@types/ms": "*" } }, - "node_modules/@types/dotenv-webpack": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/dotenv-webpack/-/dotenv-webpack-7.0.8.tgz", - "integrity": "sha512-JiLJdF2y9dW0eJjKUBlVnIwz/Raej00MOMdKcUuVxYJquvcuMgQdJw7cnN+hRZ7eejYgKr8kZsIw4nihwYYGeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "tapable": "^2.2.0", - "webpack": "^5" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "license": "MIT" + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -4261,43 +4649,6 @@ "@types/estree": "*" } }, - "node_modules/@types/express": { - "version": "4.17.25", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", - "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "^1" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.19.8", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", - "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", @@ -4319,30 +4670,6 @@ "@types/react": "*" } }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", - "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -4380,20 +4707,6 @@ "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", "license": "MIT" }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ms": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", @@ -4401,14 +4714,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.11.tgz", - "integrity": "sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==", + "version": "24.10.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.4.tgz", + "integrity": "sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.16.0" } }, "node_modules/@types/parse-json": { @@ -4441,13 +4753,6 @@ "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "license": "MIT" }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/react": { "version": "18.3.28", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", @@ -4674,134 +4979,151 @@ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "license": "MIT" }, - "node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", + "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", "dev": true, "license": "MIT", "dependencies": { - "@types/node": "*" + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/type-utils": "8.52.0", + "@typescript-eslint/utils": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.52.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "node_modules/@typescript-eslint/parser": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", + "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "debug": "^4.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "node_modules/@typescript-eslint/project-service": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz", + "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==", "dev": true, - "license": "BSD-2-Clause", - "peer": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.52.0", + "@typescript-eslint/types": "^8.52.0", + "debug": "^4.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", + "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz", + "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", + "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0", + "@typescript-eslint/utils": "8.52.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", + "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4809,78 +5131,114 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", + "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "@typescript-eslint/project-service": "8.52.0", + "@typescript-eslint/tsconfig-utils": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/visitor-keys": "8.52.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", + "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", + "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.52.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@uiw/copy-to-clipboard": { "version": "1.0.20", "resolved": "https://registry.npmjs.org/@uiw/copy-to-clipboard/-/copy-to-clipboard-1.0.20.tgz", @@ -5345,228 +5703,27 @@ "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "license": "ISC" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "node_modules/@vitejs/plugin-react": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.2.tgz", + "integrity": "sha512-EcA07pHJouywpzsoTUqNh5NwGayl2PPVEJKUSinGGSxFGYn+shYbqMGBg6FXDqgXum9Ou/ecb+411ssw8HImJQ==", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", - "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", - "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" + "@babel/core": "^7.28.5", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.53", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.18.0" }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", - "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", - "dev": true, - "license": "MIT", "engines": { - "node": ">=18.12.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/@zag-js/dom-query": { "version": "0.31.1", "resolved": "https://registry.npmjs.org/@zag-js/dom-query/-/dom-query-0.31.1.tgz", @@ -5588,34 +5745,10 @@ "@zag-js/dom-query": "0.31.1" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "peer": true, "bin": { @@ -5625,19 +5758,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-phases": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "acorn": "^8.14.0" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -5660,84 +5780,29 @@ "node": ">=0.4.0" } }, - "node_modules/ajv": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", - "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/anser": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/anser/-/anser-2.3.5.tgz", "integrity": "sha512-vcZjxvvVoxTeR5XBNJB38oTu/7eDCZlwdz32N1eNgpyPF7j/Z7Idf+CUwQOkKKpJ7RJyjxgLHCM7vdIK0iCNMQ==", "license": "MIT" }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5764,20 +5829,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -5820,13 +5871,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true, - "license": "MIT" - }, "node_modules/array-includes": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", @@ -5850,26 +5894,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -5968,21 +5992,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1js": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", - "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/astring": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", @@ -5992,6 +6001,13 @@ "astring": "bin/astring" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -6080,9 +6096,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", - "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", + "version": "2.10.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.19.tgz", + "integrity": "sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6092,13 +6108,6 @@ "node": ">=6.0.0" } }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true, - "license": "MIT" - }, "node_modules/bcp-47-match": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz", @@ -6109,88 +6118,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "~1.2.0", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "on-finished": "~2.4.1", - "qs": "~6.14.0", - "raw-body": "~2.5.3", - "type-is": "~1.6.18", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -6198,9 +6125,9 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -6287,42 +6214,6 @@ "dev": true, "license": "MIT" }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bytestreamjs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", - "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/c12": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.3.tgz", @@ -6572,16 +6463,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, "node_modules/citty": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.1.tgz", @@ -6624,22 +6505,6 @@ "integrity": "sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==", "license": "MIT" }, - "node_modules/clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "del": "^4.1.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.0 <6.0.0" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -6677,21 +6542,6 @@ "node": ">=8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -6791,55 +6641,6 @@ "node": ">=20" } }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", - "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.1.0", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/compute-scroll-into-view": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-2.0.4.tgz", @@ -6861,9 +6662,9 @@ "license": "MIT" }, "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, "license": "MIT", "engines": { @@ -6880,52 +6681,12 @@ "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "license": "MIT" }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", - "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", - "dev": true, - "license": "MIT" - }, "node_modules/copy-to-clipboard": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", @@ -6935,37 +6696,6 @@ "toggle-selection": "^1.0.6" } }, - "node_modules/copy-webpack-plugin": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", - "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-parent": "^6.0.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2", - "tinyglobby": "^0.2.12" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true, - "license": "MIT" - }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -7044,52 +6774,16 @@ "which": "^2.0.1" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "license": "MIT", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, - "node_modules/css-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.4.tgz", - "integrity": "sha512-vv3J9tlOl04WjiMvHQI/9tmIrCxVrj6PFbHemBB1iihpeRbi/I4h033eoFIhwxBBqLhI0KYFS7yvynBFhIZfTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.40", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.6.3" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || ^1.0.0 || ^2.0.0-0", - "webpack": "^5.27.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } + "node": ">= 8" + } + }, + "node_modules/css-box-model": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", + "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", + "license": "MIT", + "dependencies": { + "tiny-invariant": "^1.0.6" } }, "node_modules/css-select": { @@ -7138,19 +6832,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -7346,9 +7027,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.19", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz", - "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==", + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", "license": "MIT", "peer": true }, @@ -7404,36 +7085,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-browser": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", - "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", - "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -7452,19 +7103,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/define-properties": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", @@ -7490,75 +7128,6 @@ "dev": true, "license": "MIT" }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -7575,24 +7144,6 @@ "dev": true, "license": "MIT" }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT" - }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -7613,27 +7164,15 @@ } }, "node_modules/diff": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz", - "integrity": "sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/direction": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/direction/-/direction-2.0.1.tgz", @@ -7647,42 +7186,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -7793,40 +7296,14 @@ "url": "https://dotenvx.com" } }, - "node_modules/dotenv-defaults": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", - "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dotenv": "^8.2.0" - } - }, - "node_modules/dotenv-defaults/node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "node_modules/dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-webpack": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-8.1.1.tgz", - "integrity": "sha512-+TY/AJ2k9bU2EML3mxgLmaAvEcqs1Wbv6deCIUSI3eW3Xeo8LBQumYib6puyaSwbjC9JCzg/y5Pwjd/lePX04w==", - "dev": true, - "license": "MIT", - "dependencies": { - "dotenv-defaults": "^2.0.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "webpack": "^4 || ^5" + "node": ">=12" } }, "node_modules/downshift": { @@ -7845,6 +7322,12 @@ "react": ">=16.12.0" } }, + "node_modules/downshift/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -7865,12 +7348,21 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "license": "MIT" }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/electron-to-chromium": { "version": "1.5.286", @@ -7885,30 +7377,6 @@ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", "license": "MIT" }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/entities": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", @@ -7921,19 +7389,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", - "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", - "dev": true, - "license": "MIT", - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/error-ex": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", @@ -8058,13 +7513,6 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", - "dev": true, - "license": "MIT" - }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -8214,6 +7662,47 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -8230,13 +7719,6 @@ "integrity": "sha512-GwBr6yViW3ttx1kb7/Oh+gKQ1/TrhYwxKqVmg5gS+BK+Qe2KrOa/Vh7w3HPBvgGf0LfcDGoY9I6NHKoA5Hozhw==", "license": "MIT" }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true, - "license": "MIT" - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -8250,93 +7732,109 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.2", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "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.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "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.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-prettier": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", - "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, "peerDependencies": { "eslint": ">=7.0.0" } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz", - "integrity": "sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } @@ -8376,16 +7874,23 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", + "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, "engines": { - "node": ">=10" + "node": ">=18" }, "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" } }, "node_modules/eslint-plugin-react/node_modules/doctrine": { @@ -8435,30 +7940,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", @@ -8473,9 +7954,9 @@ } }, "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8483,12 +7964,35 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/esniff": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", @@ -8505,18 +8009,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -8694,16 +8211,6 @@ "url": "https://github.com/eta-dev/eta?sponsor=1" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", @@ -8720,96 +8227,6 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/express": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", - "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "~1.20.3", - "content-disposition": "~0.5.4", - "content-type": "~1.0.4", - "cookie": "~0.7.1", - "cookie-signature": "~1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.3.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "~0.1.12", - "proxy-addr": "~2.0.7", - "qs": "~6.14.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "~0.19.0", - "serve-static": "~1.16.2", - "setprototypeof": "1.2.0", - "statuses": "~2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/express/node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/exsolve": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", @@ -8918,33 +8335,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/fastq": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", @@ -8968,30 +8358,17 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/file-selector": { @@ -9006,55 +8383,52 @@ "node": ">= 12" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" + "minimatch": "^5.0.1" } }, - "node_modules/finalhandler": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", - "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "~2.4.1", - "parseurl": "~1.3.3", - "statuses": "~2.0.2", - "unpipe": "~1.0.0" + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.0.0" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -9078,46 +8452,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatted": { @@ -9139,27 +8485,6 @@ "node": ">=10" } }, - "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, "node_modules/for-each": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", @@ -9215,16 +8540,6 @@ "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", "license": "MIT" }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/framer-motion": { "version": "10.18.0", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.18.0.tgz", @@ -9282,23 +8597,21 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "license": "0BSD" }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">= 0.6" + "node": ">=12" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -9364,6 +8677,15 @@ "node": ">= 0.4" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -9472,28 +8794,6 @@ "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "license": "ISC" }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -9507,41 +8807,17 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regex.js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", - "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -9564,26 +8840,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/gopd": { "version": "1.2.0", @@ -9604,13 +8866,6 @@ "dev": true, "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -9636,9 +8891,9 @@ } }, "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "license": "MIT", "dependencies": { "argparse": "^1.0.7", @@ -9648,13 +8903,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true, - "license": "MIT" - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -10276,74 +9524,38 @@ "he": "bin/he" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, "license": "MIT" }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "hermes-estree": "0.25.1" } }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "react-is": "^16.7.0" } }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "license": "MIT" }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -10396,157 +9608,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/html-webpack-plugin": { - "version": "5.6.6", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", - "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", - "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", - "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/http2-client": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz", @@ -10570,42 +9631,6 @@ "url": "https://github.com/sponsors/typicode" } }, - "node_modules/hyperdyperid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", - "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -10627,9 +9652,9 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -10652,26 +9677,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -10682,25 +9687,6 @@ "node": ">=0.8.19" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", @@ -10731,16 +9717,6 @@ "node": ">=12" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/intersection-observer": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.10.0.tgz", @@ -10748,16 +9724,6 @@ "deprecated": "The Intersection Observer polyfill is no longer needed and can safely be removed. Intersection Observer has been Baseline since 2019.", "license": "W3C-20150513" }, - "node_modules/ipaddr.js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", - "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/is-alphabetical": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", @@ -10842,19 +9808,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-boolean-object": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", @@ -10968,22 +9921,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "dev": true, - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -11072,25 +10009,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -11114,93 +10032,34 @@ "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-network-error": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", - "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "license": "MIT", - "dependencies": { - "path-is-inside": "^1.0.2" - }, "engines": { - "node": ">=6" + "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-plain-obj": { @@ -11215,19 +10074,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -11373,22 +10219,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", - "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -11412,16 +10242,6 @@ "node": ">=8" } }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/isomorphic.js": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", @@ -11450,35 +10270,22 @@ "node": ">= 0.4" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" + "bin": { + "jake": "bin/cli.js" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jiti": { @@ -11487,6 +10294,7 @@ "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "jiti": "lib/jiti-cli.mjs" } @@ -11507,9 +10315,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "license": "MIT", "dependencies": { "argparse": "^2.0.1" @@ -11570,6 +10378,19 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -11620,17 +10441,6 @@ "integrity": "sha512-v4pxOBEQVN1WBTfB1crhTtxzNLZU9HPWgadlwzWKISJtt6Ku/CnpBrwVy+jFv8StjxsPfwPFzO0CMwdZLJ0/BA==", "license": "MIT" }, - "node_modules/launch-editor": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.0.tgz", - "integrity": "sha512-u+9asUHMJ99lA15VRMXw5XKfySFR9dGXwgsgS14YTbUq3GITP58mIM32At90P5fZ+MUId5Yw+IwI/yKub7jnCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "picocolors": "^1.1.1", - "shell-quote": "^1.8.3" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -11646,15 +10456,15 @@ } }, "node_modules/lexical": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/lexical/-/lexical-0.35.0.tgz", - "integrity": "sha512-3VuV8xXhh5xJA6tzvfDvE0YBCMkIZUmxtRilJQDDdCgJCc+eut6qAv2qbN+pbqvarqcQqPN1UF+8YvsjmyOZpw==", + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/lexical/-/lexical-0.33.1.tgz", + "integrity": "sha512-+kiCS/GshQmCs/meMb8MQT4AMvw3S3Ef0lSCv2Xi6Itvs59OD+NjQWNfYkDteIbKtVE/w0Yiqh56VyGwIb8UcA==", "license": "MIT" }, "node_modules/lib0": { - "version": "0.2.117", - "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.117.tgz", - "integrity": "sha512-DeXj9X5xDCjgKLU/7RR+/HQEVzuuEUiwldwOGsHK/sfAfELGWEyTcf0x+uOvCvK3O2zPmZePXWL85vtia6GyZw==", + "version": "0.2.114", + "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.114.tgz", + "integrity": "sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==", "license": "MIT", "dependencies": { "isomorphic.js": "^0.2.4" @@ -11679,9 +10489,9 @@ "license": "MIT" }, "node_modules/liquidjs": { - "version": "10.25.2", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.25.2.tgz", - "integrity": "sha512-ZbgcjEjGNlAIjqhuMzymO3lCpHgmVMftKfrq4/YLLxmKaFFeQMXRGrJTqKX7OXX1hKVPUDpTIrvL7lxt3X/hmw==", + "version": "10.25.5", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.25.5.tgz", + "integrity": "sha512-GKiKeZjJDdVoQAu+S9rzkYsYnYhcep5W3WwZXgb5f+yq484P/k9JqamBbGYu+LBEixcUAXZr2jogdAIjB3ki1w==", "license": "MIT", "dependencies": { "commander": "^10.0.0" @@ -11707,20 +10517,6 @@ "node": ">=14" } }, - "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/locale-codes": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/locale-codes/-/locale-codes-1.3.1.tgz", @@ -11752,15 +10548,15 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "license": "MIT" }, "node_modules/lodash-es": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.23.tgz", - "integrity": "sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", "license": "MIT" }, "node_modules/lodash.merge": { @@ -11808,6 +10604,15 @@ "tslib": "^2.0.3" } }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/lucide-react": { "version": "0.513.0", "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.513.0.tgz", @@ -13131,9 +11936,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", - "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", @@ -13215,69 +12020,12 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "4.56.10", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.56.10.tgz", - "integrity": "sha512-eLvzyrwqLHnLYalJP7YZ3wBe79MXktMdfQbvMrVD80K+NhrIukCVBvgP30zTJYEEDh9hZ/ep9z0KOdD7FSHo7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jsonjoy.com/fs-core": "4.56.10", - "@jsonjoy.com/fs-fsa": "4.56.10", - "@jsonjoy.com/fs-node": "4.56.10", - "@jsonjoy.com/fs-node-builtins": "4.56.10", - "@jsonjoy.com/fs-node-to-fsa": "4.56.10", - "@jsonjoy.com/fs-node-utils": "4.56.10", - "@jsonjoy.com/fs-print": "4.56.10", - "@jsonjoy.com/fs-snapshot": "4.56.10", - "@jsonjoy.com/json-pack": "^1.11.0", - "@jsonjoy.com/util": "^1.9.0", - "glob-to-regex.js": "^1.0.1", - "thingies": "^2.5.0", - "tree-dump": "^1.0.3", - "tslib": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", "license": "MIT" }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -13288,16 +12036,6 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromark": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", @@ -14732,19 +13470,6 @@ "node": ">=8.6" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { "version": "1.54.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", @@ -14754,36 +13479,6 @@ "node": ">= 0.6" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true, - "license": "ISC" - }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -14797,16 +13492,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/mjml-browser": { "version": "4.18.0", "resolved": "https://registry.npmjs.org/mjml-browser/-/mjml-browser-4.18.0.tgz", @@ -14850,20 +13535,6 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, "node_modules/nanoid": { "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", @@ -14889,30 +13560,6 @@ "dev": true, "license": "MIT" }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "license": "MIT" - }, "node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", @@ -15000,6 +13647,17 @@ "dev": true, "license": "MIT" }, + "node_modules/node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, "node_modules/node-readfiles": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz", @@ -15017,16 +13675,6 @@ "dev": true, "license": "MIT" }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -15250,90 +13898,31 @@ } }, "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/ohash": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", - "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", - "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", - "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { - "default-browser": "^5.2.1", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "wsl-utils": "^0.1.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, "node_modules/openapi-types": { "version": "12.1.3", "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", @@ -15415,44 +14004,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-retry": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", - "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.2", - "is-network-error": "^1.0.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -15543,16 +14094,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", @@ -15574,23 +14115,6 @@ "node": ">=8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true, - "license": "(WTFPL OR MIT)" - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -15607,13 +14131,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, - "node_modules/path-to-regexp": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", - "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", - "dev": true, - "license": "MIT" - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -15656,108 +14173,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/pkg-types": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", @@ -15770,24 +14185,6 @@ "pathe": "^2.0.3" } }, - "node_modules/pkijs": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.3.3.tgz", - "integrity": "sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@noble/hashes": "1.4.0", - "asn1js": "^3.0.6", - "bytestreamjs": "^2.0.1", - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -15816,8 +14213,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -15827,90 +14222,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -15922,17 +14233,17 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "peer": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -15951,17 +14262,6 @@ "node": ">=6.0.0" } }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, "node_modules/prismjs": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", @@ -15971,13 +14271,6 @@ "node": ">=6" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "license": "MIT" - }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -16005,30 +14298,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -16039,26 +14308,6 @@ "node": ">=6" } }, - "node_modules/pvtsutils": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", - "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", - "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/qs": { "version": "6.15.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.0.tgz", @@ -16095,42 +14344,6 @@ ], "license": "MIT" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.4.24", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/rc9": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", @@ -16218,6 +14431,15 @@ "react-dom": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-diff-viewer-continued/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/react-dom": { "version": "18.3.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.0.tgz", @@ -16268,9 +14490,9 @@ "license": "MIT" }, "node_modules/react-focus-lock": { - "version": "2.13.7", - "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.13.7.tgz", - "integrity": "sha512-20lpZHEQrXPb+pp1tzd4ULL6DyO5D2KnR0G69tTDdydrmNhU7pdFmbQUYVyHUgp+xN29IuFR0PVuhOmvaZL9Og==", + "version": "2.13.6", + "resolved": "https://registry.npmjs.org/react-focus-lock/-/react-focus-lock-2.13.6.tgz", + "integrity": "sha512-ehylFFWyYtBKXjAO9+3v8d0i+cnc1trGS0vlTGhzFW1vbFXVUTmR8s2tt/ZQG8x5hElg6rhENlLG1H3EZK0Llg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.0.0", @@ -16291,10 +14513,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.71.1", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.71.1.tgz", - "integrity": "sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==", - "license": "MIT", + "version": "7.56.4", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.4.tgz", + "integrity": "sha512-Rob7Ftz2vyZ/ZGsQZPaRdIefkgOSrQSPXfqBdvOPwJfoGnjwRJUs7EM7Kc1mcoDv3NOtqBzPGbcMB8CGn9CKgw==", "peer": true, "engines": { "node": ">=18.0.0" @@ -16328,12 +14549,6 @@ "react": ">=16.0.0" } }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/react-markdown": { "version": "8.0.7", "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", @@ -16964,19 +15179,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/react-markdown/node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/react-markdown/node_modules/unist-util-stringify-position": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", @@ -17020,6 +15222,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/react-refresh": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz", + "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-remove-scroll": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", @@ -17068,12 +15279,12 @@ } }, "node_modules/react-router": { - "version": "6.30.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", - "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.23.2" + "@remix-run/router": "1.23.0" }, "engines": { "node": ">=14.0.0" @@ -17083,13 +15294,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.30.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", - "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.23.2", - "react-router": "6.30.3" + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" }, "engines": { "node": ">=14.0.0" @@ -17172,12 +15383,6 @@ "node": ">= 12" } }, - "node_modules/react-spreadsheet-import/node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, "node_modules/react-spreadsheet-import/node_modules/react-dropzone": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", @@ -17255,21 +15460,6 @@ "react-dom": ">=16.6.0" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/readdirp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", @@ -17322,19 +15512,6 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "license": "MIT" }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/recma-build-jsx": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", @@ -17402,12 +15579,44 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "dev": true, - "license": "Apache-2.0" + "node_modules/recma-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/recma-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", @@ -18761,66 +16970,243 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/remark-stringify/node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/remark-stringify/node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-stringify/node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/remark-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-rehype": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", - "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "node_modules/remark-stringify/node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "license": "MIT", "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "node_modules/remark-stringify/node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "license": "MIT", "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, + "node_modules/remark-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "license": "MIT", "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/require-directory": { @@ -18833,23 +17219,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, "node_modules/reselect": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", @@ -18876,29 +17245,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -18908,16 +17254,6 @@ "node": ">=4" } }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -18929,31 +17265,48 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/rollup": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "dev": true, - "license": "ISC", "dependencies": { - "glob": "^7.1.3" + "@types/estree": "1.0.8" }, "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", - "dev": true, - "license": "MIT", + "rollup": "dist/bin/rollup" + }, "engines": { - "node": ">=18" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", + "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { @@ -19012,27 +17365,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -19202,64 +17534,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", @@ -19273,31 +17547,10 @@ "node": ">=4" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true, - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", - "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@peculiar/x509": "^1.14.2", - "pkijs": "^3.3.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", "bin": { @@ -19307,151 +17560,6 @@ "node": ">=10" } }, - "node_modules/send": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", - "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "~0.5.2", - "http-errors": "~2.0.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.4.1", - "range-parser": "~1.2.1", - "statuses": "~2.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", - "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.8.0", - "mime-types": "~2.1.35", - "parseurl": "~1.3.3" - }, - "engines": { - "node": ">= 0.8.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", - "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "~0.19.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -19501,26 +17609,6 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -19537,24 +17625,11 @@ "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/should": { @@ -19689,38 +17764,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -19770,38 +17813,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -19826,16 +17837,6 @@ "outvariant": "^1.3.0" } }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/stop-iteration-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", @@ -19856,16 +17857,6 @@ "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", "license": "MIT" }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/string-width": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", @@ -20035,16 +18026,6 @@ "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/strip-bom-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", @@ -20067,23 +18048,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", - "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.27.0" - } - }, "node_modules/style-mod": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", @@ -20279,10 +18243,26 @@ "node": ">= 6" } }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/tabbable": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz", - "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", "license": "MIT" }, "node_modules/tagged-tag": { @@ -20298,20 +18278,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser": { "version": "5.46.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", @@ -20331,40 +18297,6 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", - "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -20372,30 +18304,6 @@ "dev": true, "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/thingies": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", - "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "^2" - } - }, "node_modules/throttle-debounce": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", @@ -20405,13 +18313,6 @@ "node": ">=8" } }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true, - "license": "MIT" - }, "node_modules/tiny-invariant": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", @@ -20439,7 +18340,6 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, - "license": "MIT", "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" @@ -20456,7 +18356,6 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -20470,11 +18369,10 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=12" @@ -20502,16 +18400,6 @@ "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", "license": "MIT" }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -20519,23 +18407,6 @@ "dev": true, "license": "MIT" }, - "node_modules/tree-dump": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", - "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/streamich" - }, - "peerDependencies": { - "tslib": "2" - } - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -20556,35 +18427,17 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ts-loader": { - "version": "9.5.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", - "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", + "node_modules/ts-api-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, "engines": { - "node": ">=12.0.0" + "node": ">=18.12" }, "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" + "typescript": ">=4.8.4" } }, "node_modules/ts-node": { @@ -20631,95 +18484,31 @@ } } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", - "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "node_modules/tsconfck": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.6.tgz", + "integrity": "sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==", "dev": true, "license": "MIT", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "bin": { + "tsconfck": "bin/tsconfck.js" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths-webpack-plugin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.2.0.tgz", - "integrity": "sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.7.0", - "tapable": "^2.2.1", - "tsconfig-paths": "^4.1.2" + "node": "^18 || >=20" }, - "engines": { - "node": ">=10.13.0" + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "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" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsyringe": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", - "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.9.3" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/tsyringe/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, "license": "0BSD" }, "node_modules/type": { @@ -20754,20 +18543,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -20865,9 +18640,9 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "license": "Apache-2.0", "peer": true, "bin": { @@ -20875,7 +18650,7 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/unbox-primitive": { @@ -20898,11 +18673,10 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true }, "node_modules/unidiff": { "version": "1.0.4", @@ -20913,6 +18687,15 @@ "diff": "^5.1.0" } }, + "node_modules/unidiff/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/unified": { "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", @@ -21067,14 +18850,14 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">= 10.0.0" } }, "node_modules/update-browserslist-db": { @@ -21197,36 +18980,12 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true, - "license": "MIT" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", - "engines": { - "node": ">= 0.4.0" + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/uuid": { @@ -21260,6 +19019,15 @@ "node": ">=8" } }, + "node_modules/uvu/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", @@ -21267,16 +19035,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/vfile": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", @@ -21401,362 +19159,201 @@ "d3-timer": "^3.0.1" } }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" - }, - "node_modules/watchpack": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "node_modules/vite": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", + "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/webpack": { - "version": "5.105.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", - "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", - "dev": true, - "license": "MIT", "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.8", - "@types/json-schema": "^7.0.15", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", - "acorn-import-phases": "^1.0.3", - "browserslist": "^4.28.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.19.0", - "es-module-lexer": "^2.0.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^4.3.3", - "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", - "watchpack": "^2.5.1", - "webpack-sources": "^3.3.3" + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { - "webpack": "bin/webpack.js" + "vite": "bin/vite.js" }, "engines": { - "node": ">=10.13.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", - "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.6.1", - "@webpack-cli/configtest": "^3.0.1", - "@webpack-cli/info": "^3.0.1", - "@webpack-cli/serve": "^3.0.1", - "colorette": "^2.0.14", - "commander": "^12.1.0", - "cross-spawn": "^7.0.3", - "envinfo": "^7.14.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^6.0.1" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=18.12.0" + "url": "https://github.com/vitejs/vite?sponsor=1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "optionalDependencies": { + "fsevents": "~2.3.3" }, "peerDependencies": { - "webpack": "^5.82.0" + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { - "webpack-bundle-analyzer": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { "optional": true }, - "webpack-dev-server": { + "yaml": { "optional": true } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/vite-bundle-analyzer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/vite-bundle-analyzer/-/vite-bundle-analyzer-1.3.2.tgz", + "integrity": "sha512-Od4ILUKRvBV3LuO/E+S+c1XULlxdkRZPSf6Vzzu+UAXG0D3hZYUu9imZIkSj/PU4e1FB14yB+av8g3KiljH8zQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" + "bin": { + "analyze": "dist/bin.js" } }, - "node_modules/webpack-dev-middleware": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", - "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "node_modules/vite-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", + "integrity": "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==", "dev": true, "license": "MIT", "dependencies": { - "colorette": "^2.0.10", - "memfs": "^4.43.1", - "mime-types": "^3.0.1", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "@rollup/pluginutils": "^4.2.0", + "colorette": "^2.0.16", + "connect-history-api-fallback": "^1.6.0", + "consola": "^2.15.3", + "dotenv": "^16.0.0", + "dotenv-expand": "^8.0.2", + "ejs": "^3.1.6", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.1", + "html-minifier-terser": "^6.1.0", + "node-html-parser": "^5.3.3", + "pathe": "^0.2.0" }, "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } + "vite": ">=2.0.0" } }, - "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "node_modules/vite-plugin-html/node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-html/node_modules/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-tsconfig-paths": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-6.0.3.tgz", + "integrity": "sha512-7bL7FPX/DSviaZGYUKowWF1AiDVWjMjxNbE8lyaVGDezkedWqfGhlnQ4BZXre0ZN5P4kAgIJfAlgFDVyjrCIyg==", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/webpack-dev-server": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", - "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.13", - "@types/connect-history-api-fallback": "^1.5.4", - "@types/express": "^4.17.25", - "@types/express-serve-static-core": "^4.17.21", - "@types/serve-index": "^1.9.4", - "@types/serve-static": "^1.15.5", - "@types/sockjs": "^0.3.36", - "@types/ws": "^8.5.10", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.2.1", - "chokidar": "^3.6.0", - "colorette": "^2.0.10", - "compression": "^1.8.1", - "connect-history-api-fallback": "^2.0.0", - "express": "^4.22.1", - "graceful-fs": "^4.2.6", - "http-proxy-middleware": "^2.0.9", - "ipaddr.js": "^2.1.0", - "launch-editor": "^2.6.1", - "open": "^10.0.3", - "p-retry": "^6.2.0", - "schema-utils": "^4.2.0", - "selfsigned": "^5.5.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.4.2", - "ws": "^8.18.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 18.12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "debug": "^4.1.1", + "globrex": "^0.1.2", + "tsconfck": "^3.0.3" }, "peerDependencies": { - "webpack": "^5.0.0" + "vite": "*" }, "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { + "vite": { "optional": true } } }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, "engines": { - "node": ">= 8.10.0" + "node": ">=12.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/webpack-dev-server/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, + "peer": true, "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" + "node": ">=12" }, - "engines": { - "node": ">=8.10.0" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" }, - "node_modules/webpack-sources": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", - "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", - "dev": true, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", @@ -21874,13 +19471,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true, - "license": "MIT" - }, "node_modules/windows-locale": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/windows-locale/-/windows-locale-1.1.3.tgz", @@ -21940,51 +19530,6 @@ "node": ">=8" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/wsl-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", - "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-wsl": "^3.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/xlsx-ugnis": { "version": "0.20.3", "resolved": "https://registry.npmjs.org/xlsx-ugnis/-/xlsx-ugnis-0.20.3.tgz", @@ -22007,6 +19552,12 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/yaml": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", @@ -22074,9 +19625,9 @@ } }, "node_modules/yjs": { - "version": "13.6.29", - "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.29.tgz", - "integrity": "sha512-kHqDPdltoXH+X4w1lVmMtddE3Oeqq48nM40FD5ojTd8xYhQpzIDcfE2keMSU5bAgRPJBe225WTUdyUgj1DtbiQ==", + "version": "13.6.27", + "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.27.tgz", + "integrity": "sha512-OIDwaflOaq4wC6YlPBy2L6ceKeKuF7DeTxx+jPzv1FHn9tCZ0ZwSRnUBxD05E3yed46fv/FWJbvR+Ud7x0L7zw==", "license": "MIT", "peer": true, "dependencies": { @@ -22134,6 +19685,19 @@ "zod": "^3.22.4" } }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/package.json b/package.json index 4fb2ad9e..320c37f9 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,8 @@ "leadcms" ], "scripts": { - "start": "cross-env TS_NODE_PROJECT=\"./webpack/tsconfig.json\" webpack serve --config=\"./webpack/webpack.config.ts\" --mode=development", - "build": "cross-env TS_NODE_PROJECT=\"./webpack/tsconfig.json\" webpack --config=\"./webpack/webpack.config.ts\" --mode=production", - "serve": "npx serve -s dist -l 8080", + "start": "vite", + "build": "vite build", "lint": "eslint ./src/**/*", "format": "prettier --write \"./src/**/*.{ts,tsx,js,jsx}\" --ignore-path .prettierignore", "prepare": "husky install", @@ -27,33 +26,26 @@ "homepage": "https://leadcms.ai", "engines": { "node": "^24.0.0", - "npm": "^11.0.0" + "npm": "^11.1.0" }, "devDependencies": { - "@types/dotenv-webpack": "^7.0.3", - "@types/node": "^22.0.0", + "@types/node": "^24.1.0", "@types/react": "^18.2.0", "@types/react-dom": "^18.0.10", - "@types/sanitize-html": "^2.16.1", "@typescript-eslint/eslint-plugin": "^5.48.2", "@typescript-eslint/parser": "^5.48.2", "buffer": "^6.0.3", "clean-webpack-plugin": "^4.0.0", "commander": "^14.0.0", - "copy-webpack-plugin": "^13.0.0", "cross-env": "^7.0.3", - "css-loader": "^7.1.2", "dotenv": "^16.0.3", - "dotenv-webpack": "^8.0.1", - "eslint": "^8.32.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.1", - "eslint-plugin-react-hooks": "^4.6.0", - "html-webpack-plugin": "^5.6.3", + "eslint": "9.39.2", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-react": "7.37.5", + "eslint-plugin-react-hooks": "7.0.1", "husky": "^8.0.3", - "prettier": "^2.8.3", - "style-loader": "^4.0.0", + "prettier": "3.7.4", "swagger-typescript-api": "^13.1.3", "ts-loader": "^9.5.2", "ts-node": "^10.9.1", @@ -78,10 +70,10 @@ "@mdx-js/mdx": "^3.1.1", "@mdxeditor/editor": "^3.42.0", "@monaco-editor/react": "^4.7.0", - "@mui/icons-material": "^7.1.0", - "@mui/material": "^7.1.0", - "@mui/x-data-grid": "^8.27.1", - "@mui/x-date-pickers": "^8.27.0", + "@mui/material": "7.3.7", + "@mui/x-data-grid": "^8.3.0", + "@mui/x-date-pickers": "^8.3.0", + "@tinymce/tinymce-react": "^6.1.0", "@uiw/react-md-editor": "^4.0.6", "@uiw/react-textarea-code-editor": "^3.1.1", "cronstrue": "^2.55.0", @@ -91,7 +83,7 @@ "hastscript": "^7.2.0", "liquidjs": "^10.24.0", "locale-codes": "^1.3.1", - "lodash": "^4.17.21", + "lodash-es": "4.17.22", "lucide-react": "^0.513.0", "marked": "^18.0.2", "mjml-browser": "^4.18.0", diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 69a0ca39..00000000 --- a/public/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - LeadCMS Admin - - -
- - diff --git a/tsconfig.json b/tsconfig.json index 908b5bef..09d39c33 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "lib": ["dom", "dom.iterable", "es2020", "esnext"], "jsx": "react-jsx", - "moduleResolution": "node", + "moduleResolution": "bundler", "allowJs": false, "target": "ESNext", "module": "ESNext", diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 00000000..a3820890 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,182 @@ +import { defineConfig, loadEnv, PluginOption } from 'vite'; +import react from '@vitejs/plugin-react'; +import tsconfigPaths from 'vite-tsconfig-paths'; +import { resolve } from 'path'; +import { createHtmlPlugin } from 'vite-plugin-html'; +import { analyzer } from 'vite-bundle-analyzer' + +// https://vitejs.dev/config/ +export default defineConfig(({ mode, command }) => { + // Load env file based on `mode` in the current working directory. + // Set the third parameter to '' to load all env regardless of the `VITE_` prefix. + const env = loadEnv(mode, process.cwd(), ''); + + const isProduction = mode === 'production'; + const isDevelopment = mode === 'development'; + + return { + // Replaces webpack entry point - Vite uses index.html as entry + // Your src/index.ts will be referenced from index.html + + // Replaces webpack output configuration + build: { + outDir: 'dist', + // Replaces [name].[contenthash:8].js + rollupOptions: { + output: { + entryFileNames: '[name].[hash:8].js', + chunkFileNames: '[name].[hash:8].js', + assetFileNames: '[name].[hash:8].[ext]', + // Module Federation equivalent - shared dependencies + manualChunks: (id) => { + // Replicate Module Federation shared dependencies + if (id.includes('node_modules')) { + if (id.includes('react') || id.includes('react-dom')) { + return 'react-vendor'; + } + // Split other vendors + return 'vendor'; + } + }, + }, + }, + // Replaces devtool: false in production + sourcemap: !isProduction, + // Enable minification + minify: isProduction ? 'terser' : false, + // Replicate webpack cache behavior + emptyOutDir: true, // Replaces CleanWebpackPlugin + }, + + // Replaces webpack cache.type: 'filesystem' + cacheDir: 'node_modules/.vite', + + // Replaces webpack resolve + resolve: { + // Replaces webpack resolve.extensions + extensions: ['.tsx', '.ts', '.js', '.jsx', '.json'], + + // Replaces TsconfigPathsPlugin + manual aliases + alias: { + '@providers': resolve(__dirname, './src/providers'), + '@lib': resolve(__dirname, './src/lib'), + '@features': resolve(__dirname, './src/features'), + '@components': resolve(__dirname, './src/components'), + '@': resolve(__dirname, './src'), + // Replaces webpack fallback for buffer + 'buffer': 'buffer/', + }, + }, + + // Replaces webpack DefinePlugin via DotenvPlugin + define: { + // Make env variables available + 'process.env': JSON.stringify(env), + // Provide global if needed + 'global': 'globalThis', + }, + + // Replaces webpack-dev-server + server: { + port: 8081, + open: true, + host: true, + // Replaces historyApiFallback: true + historyApiFallback: true, + // Enable HMR + hmr: { + overlay: true, + }, + }, + + // Preview server (for testing production builds) + preview: { + port: 3000, + open: true, + historyApiFallback: true, + }, + + // Plugins + plugins: [ + analyzer({ + analyzerPort: 8082, + }), + // React plugin (replaces babel/react loaders) + react({ + // Fast Refresh + fastRefresh: true, + // If you use @emotion + jsxImportSource: '@emotion/react', + babel: { + plugins: ['@emotion/babel-plugin'], + }, + }), + + // Replaces TsconfigPathsPlugin + tsconfigPaths({ + root: resolve(__dirname, '.'), + // Use your tsconfig + projects: [resolve(__dirname, './tsconfig.json')], + }), + + // Replaces HtmlWebpackPlugin + CopyWebpackPlugin for index.html + createHtmlPlugin({ + minify: isProduction, + inject: { + data: { + title: 'LeadCMS Admin', + // Add any variables you need in HTML + }, + }, + // Template is now in root as index.html + }), + + // Progress plugin equivalent (Vite shows progress by default) + // But you can add custom progress if needed + ...(isDevelopment ? [progressPlugin()] : []), + ], + + // CSS handling (replaces style-loader + css-loader) + css: { + modules: { + localsConvention: 'camelCase', + }, + devSourcemap: isDevelopment, + }, + + // Optimize dependencies (replaces webpack optimization) + optimizeDeps: { + // Force include buffer for ProvidePlugin equivalent + include: [ + 'buffer', + 'react', + 'react-dom', + 'react/jsx-runtime', + ], + // Replicate webpack ProvidePlugin for Buffer + esbuildOptions: { + define: { + global: 'globalThis', + }, + }, + }, + + // Worker configuration (if you use web workers) + worker: { + format: 'es', + }, + }; +}); + +// Custom progress plugin (optional - Vite already shows progress) +function progressPlugin(): PluginOption { + return { + name: 'vite-plugin-progress', + buildStart() { + console.log('🚀 Build starting...'); + }, + buildEnd() { + console.log('✅ Build complete!'); + }, + }; +} diff --git a/webpack/tsconfig.json b/webpack/tsconfig.json deleted file mode 100644 index eb7726e5..00000000 --- a/webpack/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "target": "ES5", - "module": "CommonJS", - "esModuleInterop": true, - "resolveJsonModule": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "skipLibCheck": true, - "types": ["node"] - } -} diff --git a/webpack/webpack.config.ts b/webpack/webpack.config.ts deleted file mode 100644 index 8a07c121..00000000 --- a/webpack/webpack.config.ts +++ /dev/null @@ -1,117 +0,0 @@ -// https://github.com/dividab/tsconfig-paths-webpack-plugin/issues/32#issuecomment-478042178 -delete process.env.TS_NODE_PROJECT; - -import { resolve } from "path"; -import { container, ProvidePlugin, ProgressPlugin } from "webpack"; -import HtmlWebpackPlugin from "html-webpack-plugin"; -import { CleanWebpackPlugin } from "clean-webpack-plugin"; -import TsconfigPathsPlugin from "tsconfig-paths-webpack-plugin"; -import { Configuration as WebpackConfiguration } from "webpack"; -import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server"; -import dotenv from "dotenv"; -import DotenvPlugin from "dotenv-webpack"; -import CopyWebpackPlugin from "copy-webpack-plugin"; -import * as fs from "fs"; - -const packageJson = JSON.parse(fs.readFileSync(resolve(__dirname, "../package.json"), "utf-8")); -const { dependencies } = packageJson; - -const { ModuleFederationPlugin } = container; - -interface Configuration extends WebpackConfiguration { - devServer?: WebpackDevServerConfiguration; -} - -dotenv.config(); - -const configuration: Configuration = { - entry: { - main: resolve(__dirname, "../src/index.ts"), - }, - output: { - path: resolve(__dirname, "../dist"), - filename: "[name].[contenthash:8].js", - publicPath: "/", - }, - cache: { - type: "filesystem", // Enable persistent caching - }, - resolve: { - extensions: [".tsx", ".ts", ".js"], // Limit extensions to reduce overhead - plugins: [new TsconfigPathsPlugin({ configFile: resolve(__dirname, "../tsconfig.json") })], - alias: { - "@providers": resolve(__dirname, "../src/providers"), - "@lib": resolve(__dirname, "../src/lib"), - "@features": resolve(__dirname, "../src/features"), - "@components": resolve(__dirname, "../src/components"), - }, - fallback: { - buffer: require.resolve("buffer/"), - }, - }, - devtool: - process.env.NODE_ENV === "production" - ? false // Disable source maps in production - : "source-map", // Enable source maps in development - module: { - rules: [ - { - test: /\.css$/, - use: [{ loader: "style-loader" }, { loader: "css-loader" }], - }, - { - test: /\.tsx?$/, - include: resolve(__dirname, "../src"), // Use include instead of exclude - use: [ - { - loader: "ts-loader", - options: { - transpileOnly: true, // Speed up compilation by skipping type checking - }, - }, - ], - }, - ], - }, - devServer: { - historyApiFallback: true, - }, - plugins: [ - new CleanWebpackPlugin(), - new DotenvPlugin(), - new HtmlWebpackPlugin({ - template: resolve(__dirname, "../public/index.html"), - }), - new CopyWebpackPlugin({ - patterns: [ - { - from: resolve(__dirname, "../public"), - to: resolve(__dirname, "../dist"), - filter: (resourcePath) => !resourcePath.endsWith("index.html"), - }, - ], - }), - new ModuleFederationPlugin({ - shared: { - react: { - requiredVersion: dependencies.react, - singleton: true, - }, - "react/jsx-runtime": { - singleton: true, - requiredVersion: dependencies.react, - }, - "react-dom": { - requiredVersion: dependencies["react-dom"], - singleton: true, - }, - }, - }), - new ProvidePlugin({ - Buffer: ["buffer", "Buffer"], - }), - new ProgressPlugin(), - ], -}; - -export default configuration; From e56b352eb84fc45dc8c611b52440c365a2ab80a7 Mon Sep 17 00:00:00 2001 From: Vladislav Seregin Date: Tue, 20 Jan 2026 23:25:56 +0100 Subject: [PATCH 02/11] fix: update @mui/material imports and replacement mui icons with lucide-react --- src/components/ai-cover-dialog/index.tsx | 30 ++-- src/components/ai-draft-dialog/index.tsx | 46 +++--- src/components/ai-edit-dialog/index.tsx | 38 +++-- src/components/api-error-display/index.tsx | 6 +- .../app-header/dropdown-menu/index.tsx | 18 +-- src/components/app-header/index.styled.tsx | 4 +- src/components/app-header/index.tsx | 6 +- src/components/app-layout/index.styled.tsx | 2 +- src/components/app-layout/index.tsx | 3 +- src/components/breadcrumbs/index.tsx | 4 +- src/components/bulk-delete-toolbar/index.tsx | 24 ++- src/components/comment-sort-popup/index.tsx | 7 +- .../content-language-badges/index.tsx | 12 +- .../content-language-switcher/index.tsx | 41 ++--- src/components/content-sort-popup/index.tsx | 7 +- src/components/content-type-filter/index.tsx | 5 +- src/components/custom-filter/index.tsx | 32 ++-- src/components/data-list/index.styled.ts | 7 +- .../data-management/index.styled.ts | 3 +- src/components/data-management/index.tsx | 26 ++-- src/components/data-table/index.styled.ts | 2 +- src/components/data-table/index.styled.tsx | 2 +- src/components/data-table/index.tsx | 4 +- src/components/data-view/index.styled.ts | 5 +- src/components/data-view/index.tsx | 4 +- .../email-group-autocomplete/create-new.tsx | 3 +- .../email-group-autocomplete/index.tsx | 7 +- .../error-details-display/index.tsx | 3 +- src/components/error-details/index.tsx | 7 +- src/components/export-popup/index.tsx | 34 ++--- src/components/file-dropdown/index.styled.tsx | 3 +- src/components/file-dropdown/index.tsx | 5 +- .../edit-components/array-edit.tsx | 18 +-- .../edit-components/dictionary-edit.tsx | 3 +- .../edit-components/enum-edit.tsx | 3 +- .../edit-components/number-edit.tsx | 2 +- .../edit-components/text-edit.tsx | 2 +- .../generic-components/generic-data-grid.tsx | 4 +- .../generic-components/generic-form.tsx | 8 +- .../generic-components/generic-module.tsx | 3 +- .../generic-components/index.styled.ts | 4 +- .../view-components/array-view.tsx | 16 +- src/components/ghost-link/index.ts | 2 +- .../global-language-filter/index.tsx | 5 +- .../image-selection-dialog.tsx | 41 +++-- .../image-selection-dialog/index.tsx | 20 ++- src/components/language-select/index.tsx | 3 +- src/components/layout/index.tsx | 3 +- .../link-translation-dialog/index.tsx | 32 ++-- .../markdown-editor/commands/image-upload.tsx | 2 +- src/components/markdown-live-viewer/index.tsx | 18 +-- .../components/mdx-code-block.tsx | 2 +- .../components/mdx-components-panel.tsx | 16 +- .../mdx-editor-new/mdx-editor-new.tsx | 7 +- src/components/media-sort-popup/index.tsx | 7 +- src/components/metric-cells/index.tsx | 3 +- .../module-wrapper/index.styled.tsx | 3 +- src/components/module/index.ts | 2 +- src/components/no-records-display/index.tsx | 5 +- .../password-requirements/index.tsx | 16 +- .../publication-status-dialog/index.tsx | 34 ++--- src/components/remote-autocomplete/index.tsx | 4 +- src/components/responsive-actions/index.tsx | 7 +- src/components/restore-data/index.tsx | 16 +- src/components/saving-bar/index.tsx | 6 +- src/components/search-bar/index.tsx | 5 +- src/components/side-bar/index.styled.tsx | 18 +-- src/components/side-bar/index.tsx | 21 ++- src/components/snack-bar/constants.ts | 2 +- src/components/snack-bar/index.tsx | 3 +- .../spreadsheet-import/index.styled.ts | 3 +- src/components/spreadsheet-import/index.tsx | 2 +- .../syntax-validation-indicator/index.tsx | 3 +- .../syntax-validation-preview/index.tsx | 6 +- src/components/tool-bar-button/index.tsx | 4 +- src/components/translate-dialog/index.tsx | 34 ++--- src/components/unified-ai-progress/index.tsx | 7 +- .../validation-status-bubble/index.tsx | 6 +- src/features/about/index.tsx | 5 +- src/features/about/lazy.tsx | 8 + src/features/accounts/form/index.tsx | 43 +++--- src/features/accounts/index.styled.ts | 6 +- src/features/accounts/index.tsx | 4 +- src/features/accounts/lazy.tsx | 10 +- src/features/accounts/view/details/index.tsx | 21 ++- src/features/accounts/view/index.tsx | 26 ++-- src/features/activity-log/lazy.tsx | 8 + .../device-verify/device-verify.styled.tsx | 6 +- .../auth/device-verify/device-verify.tsx | 5 +- .../auth/forgot-password/index.styled.tsx | 4 +- src/features/auth/forgot-password/index.tsx | 5 +- src/features/auth/login/index.styled.tsx | 4 +- src/features/auth/login/index.tsx | 18 +-- .../auth/reset-password/index.styled.tsx | 4 +- src/features/auth/reset-password/index.tsx | 20 ++- src/features/comments/comments-list/index.tsx | 52 +++---- src/features/comments/lazy.tsx | 8 + src/features/contacts/form/index.tsx | 40 +++-- src/features/contacts/index.styled.ts | 18 +-- src/features/contacts/index.tsx | 20 ++- src/features/contacts/lazy.tsx | 10 +- src/features/contacts/view/activity/index.tsx | 5 +- .../contacts/view/communications/index.tsx | 28 ++-- src/features/contacts/view/deals/index.tsx | 18 +-- src/features/contacts/view/details/index.tsx | 20 ++- src/features/contacts/view/index.tsx | 24 ++- src/features/contacts/view/logs/index.tsx | 3 +- src/features/contacts/view/orders/index.tsx | 9 +- .../components/content-change-log.tsx | 46 +++--- .../content-edit-action-buttons.tsx | 18 +-- .../content-edit-metadata-section.tsx | 8 +- src/features/content/content-edit/index.tsx | 42 +++--- src/features/content/content-list.tsx | 38 +++-- .../content-types/content-type-dropdown.tsx | 6 +- .../content-types/content-type-form.tsx | 38 +++-- src/features/content/index.styled.ts | 2 +- src/features/content/lazy.tsx | 8 + src/features/dashboard/index.styled.ts | 4 +- src/features/dashboard/index.tsx | 40 +++-- src/features/dashboard/lazy.tsx | 6 +- .../deployments/deployment-details/index.tsx | 72 +++++---- .../deployments/deployment-list/index.tsx | 116 +++++++------- src/features/domains/form/index.tsx | 4 +- src/features/domains/index.styled.ts | 4 +- src/features/domains/index.tsx | 6 +- src/features/domains/lazy.tsx | 10 +- .../email-templates/edit/index.styled.tsx | 2 +- src/features/email-templates/edit/index.tsx | 47 +++--- src/features/email-templates/lazy.tsx | 8 + src/features/links/lazy.tsx | 8 + src/features/media/index.tsx | 110 ++++++-------- src/features/media/media-preview.tsx | 29 ++-- src/features/media/media-upload-dialog.tsx | 34 ++--- src/features/module-loader/index.tsx | 28 ++-- src/features/orders/form/index.tsx | 52 +++---- src/features/orders/index.styled.ts | 3 +- src/features/orders/index.tsx | 32 ++-- src/features/orders/lazy.tsx | 10 +- src/features/orders/view/details/index.tsx | 22 ++- src/features/orders/view/index.tsx | 22 ++- src/features/orders/view/items/index.tsx | 22 ++- .../components/contact-picker-modal.tsx | 38 +++-- .../segments/components/rule-builder.tsx | 30 ++-- src/features/segments/form/edit.tsx | 6 +- src/features/segments/form/segment-form.tsx | 42 +++--- src/features/segments/index.tsx | 5 +- src/features/segments/lazy.tsx | 8 + src/features/segments/view/details/index.tsx | 26 ++-- src/features/settings/index.tsx | 55 ++++--- src/features/tasks/task-list/index.tsx | 142 +++++++++--------- src/features/unsubscribes/lazy.tsx | 8 + src/features/users/lazy.tsx | 8 + src/features/users/user-edit/index.tsx | 32 ++-- src/features/users/user-edit/styled.tsx | 6 +- src/features/users/user-list/index.styled.tsx | 3 +- src/features/users/user-list/index.tsx | 4 +- src/lib/network/utils.ts | 2 +- src/providers/auth-provider.tsx | 5 +- src/providers/theme-provider.tsx | 3 +- src/utils/import-file-helper.ts | 5 +- src/vite-env.d.ts | 8 + 161 files changed, 1380 insertions(+), 1236 deletions(-) create mode 100644 src/features/about/lazy.tsx create mode 100644 src/features/activity-log/lazy.tsx create mode 100644 src/features/comments/lazy.tsx create mode 100644 src/features/content/lazy.tsx create mode 100644 src/features/email-templates/lazy.tsx create mode 100644 src/features/links/lazy.tsx create mode 100644 src/features/segments/lazy.tsx create mode 100644 src/features/unsubscribes/lazy.tsx create mode 100644 src/features/users/lazy.tsx create mode 100644 src/vite-env.d.ts diff --git a/src/components/ai-cover-dialog/index.tsx b/src/components/ai-cover-dialog/index.tsx index dd9651f4..8d658f86 100644 --- a/src/components/ai-cover-dialog/index.tsx +++ b/src/components/ai-cover-dialog/index.tsx @@ -1,19 +1,17 @@ -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - Typography, - Box, - TextField, - Alert, - Stack, - Link, - IconButton, - Backdrop, - CircularProgress, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import TextField from "@mui/material/TextField"; +import Alert from "@mui/material/Alert"; +import Stack from "@mui/material/Stack"; +import Link from "@mui/material/Link"; +import IconButton from "@mui/material/IconButton"; +import Backdrop from "@mui/material/Backdrop"; +import CircularProgress from "@mui/material/CircularProgress"; import type { Theme } from "@mui/material/styles"; import { X, Trash2, ImagePlus, Sparkles } from "lucide-react"; import { useEffect, useMemo, useRef, useState } from "react"; diff --git a/src/components/ai-draft-dialog/index.tsx b/src/components/ai-draft-dialog/index.tsx index bfcd2b9e..1b29e89f 100644 --- a/src/components/ai-draft-dialog/index.tsx +++ b/src/components/ai-draft-dialog/index.tsx @@ -1,27 +1,25 @@ -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - FormControl, - InputLabel, - Select, - MenuItem, - Typography, - Box, - IconButton, - CircularProgress, - Alert, - Backdrop, - TextField, - Autocomplete, - RadioGroup, - FormControlLabel, - Radio, - FormLabel, - Stack, -} from "@mui/material"; +import Dialog from '@mui/material/Dialog'; +import DialogTitle from '@mui/material/DialogTitle'; +import DialogContent from '@mui/material/DialogContent'; +import DialogActions from '@mui/material/DialogActions'; +import Button from '@mui/material/Button'; +import FormControl from '@mui/material/FormControl'; +import InputLabel from '@mui/material/InputLabel'; +import Select from '@mui/material/Select'; +import MenuItem from '@mui/material/MenuItem'; +import Typography from '@mui/material/Typography'; +import Box from '@mui/material/Box'; +import IconButton from '@mui/material/IconButton'; +import CircularProgress from '@mui/material/CircularProgress'; +import Alert from '@mui/material/Alert'; +import Backdrop from '@mui/material/Backdrop'; +import TextField from '@mui/material/TextField'; +import Autocomplete from '@mui/material/Autocomplete'; +import FormLabel from '@mui/material/FormLabel'; +import RadioGroup from '@mui/material/RadioGroup'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Radio from '@mui/material/Radio'; +import Stack from '@mui/material/Stack'; import { ImagePlus, Sparkles, Trash2, X } from "lucide-react"; import { useState, useEffect, useMemo } from "react"; import { useDebounce } from "use-debounce"; diff --git a/src/components/ai-edit-dialog/index.tsx b/src/components/ai-edit-dialog/index.tsx index 6c2962d7..43b2deb9 100644 --- a/src/components/ai-edit-dialog/index.tsx +++ b/src/components/ai-edit-dialog/index.tsx @@ -1,24 +1,22 @@ -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - Typography, - Box, - IconButton, - CircularProgress, - Alert, - Backdrop, - TextField, - RadioGroup, - FormControlLabel, - Radio, - FormControl, - FormLabel, - Stack, -} from "@mui/material"; import { ImagePlus, Plus, Sparkles, Trash2, X } from "lucide-react"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import CircularProgress from "@mui/material/CircularProgress"; +import Alert from "@mui/material/Alert"; +import Backdrop from "@mui/material/Backdrop"; +import TextField from "@mui/material/TextField"; +import FormControl from "@mui/material/FormControl"; +import FormLabel from "@mui/material/FormLabel"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import Radio from "@mui/material/Radio"; +import RadioGroup from "@mui/material/RadioGroup"; +import Stack from "@mui/material/Stack"; import { useState, useEffect, useMemo } from "react"; import { useConfig } from "@providers/config-provider"; import type { Theme } from "@mui/material/styles"; diff --git a/src/components/api-error-display/index.tsx b/src/components/api-error-display/index.tsx index 14e1d066..2931bc44 100644 --- a/src/components/api-error-display/index.tsx +++ b/src/components/api-error-display/index.tsx @@ -1,5 +1,9 @@ import React from "react"; -import { Box, Typography, List, ListItem, ListItemText } from "@mui/material"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; import { ApiError } from "@lib/network/wrapApiClient"; interface ApiErrorDisplayProps { diff --git a/src/components/app-header/dropdown-menu/index.tsx b/src/components/app-header/dropdown-menu/index.tsx index e6f8612a..efa5e08a 100644 --- a/src/components/app-header/dropdown-menu/index.tsx +++ b/src/components/app-header/dropdown-menu/index.tsx @@ -1,14 +1,12 @@ import React, { useState } from "react"; -import { - Box, - Menu, - MenuItem, - Tooltip, - IconButton, - Avatar, - Divider, - ListItemIcon, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import Tooltip from "@mui/material/Tooltip"; +import IconButton from "@mui/material/IconButton"; +import Avatar from "@mui/material/Avatar"; +import Divider from "@mui/material/Divider"; +import ListItemIcon from "@mui/material/ListItemIcon"; import { LogOut } from "lucide-react"; import { useUserInfo } from "@providers/user-provider"; import { buildAbsoluteUrl } from "@lib/network/utils"; diff --git a/src/components/app-header/index.styled.tsx b/src/components/app-header/index.styled.tsx index 0e81da4a..317e015b 100644 --- a/src/components/app-header/index.styled.tsx +++ b/src/components/app-header/index.styled.tsx @@ -1,4 +1,6 @@ -import { AppBar, styled, Toolbar } from "@mui/material"; +import AppBar from "@mui/material/AppBar"; +import { styled } from "@mui/material/styles"; +import Toolbar from "@mui/material/Toolbar"; export const AppBarStyled = styled(AppBar)` position: sticky; diff --git a/src/components/app-header/index.tsx b/src/components/app-header/index.tsx index 59150f44..f86c5ccd 100644 --- a/src/components/app-header/index.tsx +++ b/src/components/app-header/index.tsx @@ -1,4 +1,8 @@ -import { Box, IconButton, useMediaQuery, useTheme, Tooltip } from "@mui/material"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import useMediaQuery from "@mui/material/useMediaQuery"; +import { useTheme } from "@mui/material/styles"; +import Tooltip from "@mui/material/Tooltip"; import { AppBarStyled, AppBarToolbar } from "./index.styled"; import { DropdownMenu } from "./dropdown-menu"; import { BreadCrumbNavigation } from "@components/breadcrumbs"; diff --git a/src/components/app-layout/index.styled.tsx b/src/components/app-layout/index.styled.tsx index 7c0e55b9..156cc8c6 100644 --- a/src/components/app-layout/index.styled.tsx +++ b/src/components/app-layout/index.styled.tsx @@ -1,4 +1,4 @@ -import { styled } from "@mui/material"; +import { styled } from "@mui/material/styles"; export const AppLayoutWrapper = styled("div")` display: flex; diff --git a/src/components/app-layout/index.tsx b/src/components/app-layout/index.tsx index 2760c9ce..d7e82c9c 100644 --- a/src/components/app-layout/index.tsx +++ b/src/components/app-layout/index.tsx @@ -2,7 +2,8 @@ import { ReactNode, useState } from "react"; import { AppHeader } from "@components/app-header"; import { Sidebar } from "@components/side-bar"; import { AppLayoutWrapper, MainColumn, MainContent } from "./index.styled"; -import { useMediaQuery, useTheme } from "@mui/material"; +import useMediaQuery from "@mui/material/useMediaQuery"; +import { useTheme } from "@mui/material/styles"; import { buildMenuItems } from "../../utils/build-menu-items"; import { useRouteParams } from "typesafe-routes"; import { coreModuleRoute } from "@lib/router"; diff --git a/src/components/breadcrumbs/index.tsx b/src/components/breadcrumbs/index.tsx index 8e0cdab5..65798ec5 100644 --- a/src/components/breadcrumbs/index.tsx +++ b/src/components/breadcrumbs/index.tsx @@ -1,5 +1,7 @@ import { ChevronRight } from "lucide-react"; -import { Breadcrumbs, Link, Typography } from "@mui/material"; +import Breadcrumbs from "@mui/material/Breadcrumbs"; +import Link from "@mui/material/Link"; +import Typography from "@mui/material/Typography"; import { GhostLink } from "components/ghost-link"; interface Links { diff --git a/src/components/bulk-delete-toolbar/index.tsx b/src/components/bulk-delete-toolbar/index.tsx index 1044c8ca..98d86246 100644 --- a/src/components/bulk-delete-toolbar/index.tsx +++ b/src/components/bulk-delete-toolbar/index.tsx @@ -1,17 +1,15 @@ import { useState } from "react"; -import { - Box, - Button, - Checkbox, - Chip, - CircularProgress, - Dialog, - DialogActions, - DialogContent, - DialogTitle, - Paper, - Typography, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Checkbox from "@mui/material/Checkbox"; +import Chip from "@mui/material/Chip"; +import CircularProgress from "@mui/material/CircularProgress"; +import Dialog from "@mui/material/Dialog"; +import DialogActions from "@mui/material/DialogActions"; +import DialogContent from "@mui/material/DialogContent"; +import DialogTitle from "@mui/material/DialogTitle"; +import Paper from "@mui/material/Paper"; +import Typography from "@mui/material/Typography"; import { Pencil, Trash2 } from "lucide-react"; export interface BulkDeleteToolbarProps { diff --git a/src/components/comment-sort-popup/index.tsx b/src/components/comment-sort-popup/index.tsx index 0634d4ff..93f2668e 100644 --- a/src/components/comment-sort-popup/index.tsx +++ b/src/components/comment-sort-popup/index.tsx @@ -1,5 +1,10 @@ import React from "react"; -import { Popover, Divider, Box, useTheme, Stack, Button } from "@mui/material"; +import Popover from "@mui/material/Popover"; +import Divider from "@mui/material/Divider"; +import Box from "@mui/material/Box"; +import { useTheme } from "@mui/material/styles"; +import Stack from "@mui/material/Stack"; +import Button from "@mui/material/Button"; import { Check } from "lucide-react"; interface SortOption { diff --git a/src/components/content-language-badges/index.tsx b/src/components/content-language-badges/index.tsx index 1dd89063..e9a15ed1 100644 --- a/src/components/content-language-badges/index.tsx +++ b/src/components/content-language-badges/index.tsx @@ -1,5 +1,7 @@ -import { Box, Chip, Tooltip } from "@mui/material"; -import { Add, Language } from "@mui/icons-material"; +import Box from "@mui/material/Box"; +import Chip from "@mui/material/Chip"; +import Tooltip from "@mui/material/Tooltip"; +import { Plus as Add, Languages as Language } from 'lucide-react'; import { ContentDetailsDto, LanguageDto } from "@lib/network/swagger-client"; import { useConfig } from "@providers/config-provider"; import { useNavigate } from "react-router-dom"; @@ -110,7 +112,7 @@ export const ContentLanguageBadges = ({ - + {lang.code?.toUpperCase()} } @@ -139,7 +141,7 @@ export const ContentLanguageBadges = ({ // Full view - show all languages return ( - + {/* Existing translations */} {existingLanguages.map((lang) => ( @@ -168,7 +170,7 @@ export const ContentLanguageBadges = ({ {missingLanguages.map((lang) => ( } + icon={} label={getLanguageName(lang.code || "")} size="small" variant="outlined" diff --git a/src/components/content-language-switcher/index.tsx b/src/components/content-language-switcher/index.tsx index e28433b4..d43b0385 100644 --- a/src/components/content-language-switcher/index.tsx +++ b/src/components/content-language-switcher/index.tsx @@ -1,15 +1,18 @@ import { useState, useEffect } from "react"; +import Box from "@mui/material/Box"; +import Chip from "@mui/material/Chip"; +import Typography from "@mui/material/Typography"; +import CircularProgress from "@mui/material/CircularProgress"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import Tooltip from "@mui/material/Tooltip"; +import Divider from "@mui/material/Divider"; import { - Box, - Chip, - Typography, - CircularProgress, - Menu, - MenuItem, - Tooltip, - Divider, -} from "@mui/material"; -import { Add, Translate, ExpandMore, Link } from "@mui/icons-material"; + Plus as Add, + Languages as Translate, + ChevronDown as ExpandMore, + Link +} from 'lucide-react'; import { ContentDetailsDto, LanguageDto } from "@lib/network/swagger-client"; import { useRequestContext } from "@providers/request-provider"; import { useConfig } from "@providers/config-provider"; @@ -272,12 +275,12 @@ export const ContentLanguageSwitcher = ({ - + {getCurrentLanguageLabel()} {loading ? ( ) : ( - + )} } @@ -357,7 +360,7 @@ export const ContentLanguageSwitcher = ({ gap: 1, }} > - + {lang.name} ))} @@ -374,7 +377,7 @@ export const ContentLanguageSwitcher = ({ gap: 1, }} > - + Link Translation @@ -398,7 +401,7 @@ export const ContentLanguageSwitcher = ({ // Full mode return ( - + Language: @@ -408,7 +411,7 @@ export const ContentLanguageSwitcher = ({ label={ {getCurrentLanguageLabel()} - {loading ? : } + {loading ? : } } size="small" @@ -485,7 +488,7 @@ export const ContentLanguageSwitcher = ({ gap: 1, }} > - + {lang.name} ))} @@ -502,7 +505,7 @@ export const ContentLanguageSwitcher = ({ gap: 1, }} > - + Link Translation @@ -674,7 +677,7 @@ export const LanguageHighlights = ({ - + {lang.name} } diff --git a/src/components/content-sort-popup/index.tsx b/src/components/content-sort-popup/index.tsx index 43495503..2313b7c2 100644 --- a/src/components/content-sort-popup/index.tsx +++ b/src/components/content-sort-popup/index.tsx @@ -1,5 +1,10 @@ import React from "react"; -import { Popover, Divider, Box, useTheme, Stack, Button } from "@mui/material"; +import Popover from "@mui/material/Popover"; +import Divider from "@mui/material/Divider"; +import Box from "@mui/material/Box"; +import { useTheme } from "@mui/material/styles"; +import Stack from "@mui/material/Stack"; +import Button from "@mui/material/Button"; import { Check } from "lucide-react"; interface SortOption { diff --git a/src/components/content-type-filter/index.tsx b/src/components/content-type-filter/index.tsx index 4fa4dffe..90e2a517 100644 --- a/src/components/content-type-filter/index.tsx +++ b/src/components/content-type-filter/index.tsx @@ -1,5 +1,8 @@ import React, { useMemo } from "react"; -import { Box, Chip, Typography, Tooltip } from "@mui/material"; +import Box from "@mui/material/Box"; +import Chip from "@mui/material/Chip"; +import Typography from "@mui/material/Typography"; +import Tooltip from "@mui/material/Tooltip"; import { idToDisplayName } from "@features/content/content-types"; interface ContentTypeFilterProps { diff --git a/src/components/custom-filter/index.tsx b/src/components/custom-filter/index.tsx index 23c5530c..bfb8dd49 100644 --- a/src/components/custom-filter/index.tsx +++ b/src/components/custom-filter/index.tsx @@ -1,21 +1,19 @@ -import { - Autocomplete, - Box, - TextField, - MenuItem, - Button, - Chip, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Stack, - FormLabel, - IconButton, - ListSubheader, -} from "@mui/material"; -import { GridColDef } from "@mui/x-data-grid"; import { useEffect, useMemo, useState } from "react"; +import Autocomplete from "@mui/material/Autocomplete"; +import Box from "@mui/material/Box"; +import TextField from "@mui/material/TextField"; +import MenuItem from "@mui/material/MenuItem"; +import Button from "@mui/material/Button"; +import Chip from "@mui/material/Chip"; +import Dialog from "@mui/material/Dialog"; +import ListSubheader from "@mui/material/ListSubheader"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Stack from "@mui/material/Stack"; +import FormLabel from "@mui/material/FormLabel"; +import IconButton from "@mui/material/IconButton"; +import type { GridColDef } from "@mui/x-data-grid"; import { X } from "lucide-react"; import { useConfig } from "@providers/config-provider"; import { useRequestContext } from "providers/request-provider"; diff --git a/src/components/data-list/index.styled.ts b/src/components/data-list/index.styled.ts index 7ca2b347..72a65672 100644 --- a/src/components/data-list/index.styled.ts +++ b/src/components/data-list/index.styled.ts @@ -1,4 +1,9 @@ -import { CardHeader, Grid, ListItem, ListItemText, Paper, styled } from "@mui/material"; +import CardHeader from "@mui/material/CardHeader"; +import Grid from "@mui/material/Grid"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import Paper from "@mui/material/Paper"; +import { styled } from "@mui/material/styles"; export const ActionsContainer = styled("div")` display: flex; diff --git a/src/components/data-management/index.styled.ts b/src/components/data-management/index.styled.ts index 524cc1ed..e35a792f 100644 --- a/src/components/data-management/index.styled.ts +++ b/src/components/data-management/index.styled.ts @@ -1,4 +1,5 @@ -import { CardHeader, styled } from "@mui/material"; +import CardHeader from "@mui/material/CardHeader"; +import { styled } from "@mui/material/styles"; export const DeleteButtonContainer = styled("div")` padding-left: ${({ theme }) => theme.spacing(2)}; diff --git a/src/components/data-management/index.tsx b/src/components/data-management/index.tsx index 8df306ba..fb97089c 100644 --- a/src/components/data-management/index.tsx +++ b/src/components/data-management/index.tsx @@ -1,18 +1,16 @@ import { useEffect, useState } from "react"; -import { - Button, - Card, - CardActions, - CardContent, - Dialog, - DialogActions, - DialogContent, - DialogContentText, - DialogTitle, - Grid, - Typography, - Box, -} from "@mui/material"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardActions from "@mui/material/CardActions"; +import CardContent from "@mui/material/CardContent"; +import Dialog from "@mui/material/Dialog"; +import DialogActions from "@mui/material/DialogActions"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogTitle from "@mui/material/DialogTitle"; +import Grid from "@mui/material/Grid"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; import { DeleteButtonContainer } from "./index.styled"; import { Trash2, Edit } from "lucide-react"; import { useCoreModuleNavigation, useNotificationsService } from "@hooks"; diff --git a/src/components/data-table/index.styled.ts b/src/components/data-table/index.styled.ts index 2d1b8503..166cc663 100644 --- a/src/components/data-table/index.styled.ts +++ b/src/components/data-table/index.styled.ts @@ -1,4 +1,4 @@ -import { styled } from "@mui/material"; +import { styled } from "@mui/material/styles"; export const DataTableContainer = styled("div")` width: 100%; diff --git a/src/components/data-table/index.styled.tsx b/src/components/data-table/index.styled.tsx index fbfc861a..9f82eac9 100644 --- a/src/components/data-table/index.styled.tsx +++ b/src/components/data-table/index.styled.tsx @@ -1,5 +1,5 @@ import styled from "@emotion/styled"; -import { Paper } from "@mui/material"; +import Paper from "@mui/material/Paper"; export const DataTableContainer = styled(Paper)` flex-grow: 1; diff --git a/src/components/data-table/index.tsx b/src/components/data-table/index.tsx index 2941632f..cdd2ad71 100644 --- a/src/components/data-table/index.tsx +++ b/src/components/data-table/index.tsx @@ -14,7 +14,9 @@ import { GridInitialStateCommunity } from "@mui/x-data-grid/models/gridStateComm import { Pencil, Eye, ChevronRight, ChevronDown } from "lucide-react"; import { useNavigate } from "react-router-dom"; import { getEditFormRoute, getViewFormRoute } from "lib/router"; -import { Box, Collapse, IconButton } from "@mui/material"; +import Box from "@mui/material/Box"; +import Collapse from "@mui/material/Collapse"; +import IconButton from "@mui/material/IconButton"; import { GridDataFilterState } from "types"; import { forwardRef, ReactNode, useEffect, useState } from "react"; diff --git a/src/components/data-view/index.styled.ts b/src/components/data-view/index.styled.ts index b322f523..b508a690 100644 --- a/src/components/data-view/index.styled.ts +++ b/src/components/data-view/index.styled.ts @@ -1,4 +1,7 @@ -import { Card, Grid, ListItemText, styled } from "@mui/material"; +import Card from "@mui/material/Card"; +import Grid from "@mui/material/Grid"; +import ListItemText from "@mui/material/ListItemText"; +import { styled } from "@mui/material/styles"; export const ViewListItemText = styled(ListItemText)` .MuiListItemText-primary { diff --git a/src/components/data-view/index.tsx b/src/components/data-view/index.tsx index 5a7e67d6..676f1786 100644 --- a/src/components/data-view/index.tsx +++ b/src/components/data-view/index.tsx @@ -1,4 +1,6 @@ -import { CardContent, Grid, Typography } from "@mui/material"; +import CardContent from "@mui/material/CardContent"; +import Grid from "@mui/material/Grid"; +import Typography from "@mui/material/Typography"; import { Fragment, ReactNode } from "react"; import { CardContainer, ViewListItemText, ViewRowGrid } from "./index.styled"; diff --git a/src/components/email-group-autocomplete/create-new.tsx b/src/components/email-group-autocomplete/create-new.tsx index 3d83a9a4..6a0c760f 100644 --- a/src/components/email-group-autocomplete/create-new.tsx +++ b/src/components/email-group-autocomplete/create-new.tsx @@ -6,6 +6,8 @@ import DialogActions from "@mui/material/DialogActions"; import DialogContent from "@mui/material/DialogContent"; import DialogTitle from "@mui/material/DialogTitle"; import Fade from "@mui/material/Fade"; +import Box from "@mui/material/Box"; +import TextField from "@mui/material/TextField"; import Typography from "@mui/material/Typography"; import { TransitionProps } from "@mui/material/transitions"; import { useErrorDetailsModal } from "@providers/error-details-modal-provider"; @@ -15,7 +17,6 @@ import React from "react"; import { toPromiseError } from "@utils/api-error-parser"; import { toFormikValidationSchema } from "zod-formik-adapter"; import { EmailGroupEditValidationScheme } from "./validation"; -import { Box, TextField } from "@mui/material"; import { CreateNewEmailGroupProps } from "./types"; import { LanguageSelect } from "@components/language-select"; import { useConfig } from "@providers/config-provider"; diff --git a/src/components/email-group-autocomplete/index.tsx b/src/components/email-group-autocomplete/index.tsx index b8b17213..78b3f4cd 100644 --- a/src/components/email-group-autocomplete/index.tsx +++ b/src/components/email-group-autocomplete/index.tsx @@ -1,5 +1,10 @@ import { useState, useEffect } from "react"; -import { TextField, MenuItem, CircularProgress, Grid, Chip, Box } from "@mui/material"; +import TextField from "@mui/material/TextField"; +import MenuItem from "@mui/material/MenuItem"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; +import Chip from "@mui/material/Chip"; +import Box from "@mui/material/Box"; import { Plus } from "lucide-react"; import { CreateNewEmailGroup } from "./create-new"; import { useRequestContext } from "@providers/request-provider"; diff --git a/src/components/error-details-display/index.tsx b/src/components/error-details-display/index.tsx index 6d9f3757..5c107cd8 100644 --- a/src/components/error-details-display/index.tsx +++ b/src/components/error-details-display/index.tsx @@ -1,5 +1,6 @@ import React from "react"; -import { Box, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; import { AlertCircle } from "lucide-react"; export interface ErrorDetailsDisplayProps { diff --git a/src/components/error-details/index.tsx b/src/components/error-details/index.tsx index 30e2baa7..8f7e5746 100644 --- a/src/components/error-details/index.tsx +++ b/src/components/error-details/index.tsx @@ -1,4 +1,9 @@ -import { Button, DialogActions, DialogContent, DialogTitle, Fade, Typography } from "@mui/material"; +import Button from "@mui/material/Button"; +import DialogActions from "@mui/material/DialogActions"; +import DialogContent from "@mui/material/DialogContent"; +import DialogTitle from "@mui/material/DialogTitle"; +import Fade from "@mui/material/Fade"; +import Typography from "@mui/material/Typography"; import Dialog from "@mui/material/Dialog"; import { TransitionProps } from "@mui/material/transitions"; import React from "react"; diff --git a/src/components/export-popup/index.tsx b/src/components/export-popup/index.tsx index f4dc30ed..50df8d3c 100644 --- a/src/components/export-popup/index.tsx +++ b/src/components/export-popup/index.tsx @@ -1,22 +1,20 @@ import { useEffect, useState } from "react"; -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - FormControl, - RadioGroup, - FormControlLabel, - Radio, - Checkbox, - FormGroup, - Box, - Typography, - IconButton, - CircularProgress, - Alert, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import FormControl from "@mui/material/FormControl"; +import RadioGroup from "@mui/material/RadioGroup"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import Radio from "@mui/material/Radio"; +import Checkbox from "@mui/material/Checkbox"; +import FormGroup from "@mui/material/FormGroup"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import IconButton from "@mui/material/IconButton"; +import CircularProgress from "@mui/material/CircularProgress"; +import Alert from "@mui/material/Alert"; import { GridColDef, GridColumnVisibilityModel, GridValidRowModel } from "@mui/x-data-grid"; import { X } from "lucide-react"; diff --git a/src/components/file-dropdown/index.styled.tsx b/src/components/file-dropdown/index.styled.tsx index feb966cf..77fd2dff 100644 --- a/src/components/file-dropdown/index.styled.tsx +++ b/src/components/file-dropdown/index.styled.tsx @@ -1,4 +1,5 @@ -import { Box, styled } from "@mui/material"; +import Box from "@mui/material/Box"; +import { styled } from "@mui/material/styles"; export const BoxStyled = styled(Box)` border: 2px dashed gray; diff --git a/src/components/file-dropdown/index.tsx b/src/components/file-dropdown/index.tsx index e56d7cb7..73e75b58 100644 --- a/src/components/file-dropdown/index.tsx +++ b/src/components/file-dropdown/index.tsx @@ -1,6 +1,9 @@ import Dropzone, { Accept, FileRejection } from "react-dropzone"; import { BoxStyled } from "./index.styled"; -import { Button, Grid, Box, IconButton } from "@mui/material"; +import Button from "@mui/material/Button"; +import Grid from "@mui/material/Grid"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; import { X } from "lucide-react"; import { useNotificationsService } from "@hooks"; diff --git a/src/components/generic-components/edit-components/array-edit.tsx b/src/components/generic-components/edit-components/array-edit.tsx index 26c34f29..0b6224c1 100644 --- a/src/components/generic-components/edit-components/array-edit.tsx +++ b/src/components/generic-components/edit-components/array-edit.tsx @@ -4,16 +4,14 @@ import { KnownTagsAutocomplete, type KnownTagsEntityType, } from "@components/known-tags-autocomplete"; -import { - Dialog, - DialogTitle, - Table, - TableBody, - TableCell, - TableHead, - TableRow, - TextField, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import Table from "@mui/material/Table"; +import TableBody from "@mui/material/TableBody"; +import TableCell from "@mui/material/TableCell"; +import TableHead from "@mui/material/TableHead"; +import TableRow from "@mui/material/TableRow"; +import TextField from "@mui/material/TextField"; import { camelCaseToTitleCase } from "../common"; import { getModuleNameFromUrl } from "@utils/general-helper"; diff --git a/src/components/generic-components/edit-components/dictionary-edit.tsx b/src/components/generic-components/edit-components/dictionary-edit.tsx index 17e195f9..7ed105b8 100644 --- a/src/components/generic-components/edit-components/dictionary-edit.tsx +++ b/src/components/generic-components/edit-components/dictionary-edit.tsx @@ -1,6 +1,7 @@ import { ReactNode } from "react"; import { EditProps } from "@components/generic-components/edit-components/common"; -import { Autocomplete, TextField } from "@mui/material"; +import Autocomplete from "@mui/material/Autocomplete"; +import TextField from "@mui/material/TextField"; import { DictItem } from "@components/generic-components"; export const DictionaryEdit = ({ diff --git a/src/components/generic-components/edit-components/enum-edit.tsx b/src/components/generic-components/edit-components/enum-edit.tsx index 0678b015..2457311d 100644 --- a/src/components/generic-components/edit-components/enum-edit.tsx +++ b/src/components/generic-components/edit-components/enum-edit.tsx @@ -1,6 +1,7 @@ import { ReactNode } from "react"; import { EditProps } from "@components/generic-components/edit-components/common"; -import { Autocomplete, TextField } from "@mui/material"; +import Autocomplete from "@mui/material/Autocomplete"; +import TextField from "@mui/material/TextField"; export const EnumEdit = ({ key, diff --git a/src/components/generic-components/edit-components/number-edit.tsx b/src/components/generic-components/edit-components/number-edit.tsx index 837c3254..442a5330 100644 --- a/src/components/generic-components/edit-components/number-edit.tsx +++ b/src/components/generic-components/edit-components/number-edit.tsx @@ -1,6 +1,6 @@ import { ReactNode } from "react"; import { EditProps } from "@components/generic-components/edit-components/common"; -import { TextField } from "@mui/material"; +import TextField from "@mui/material/TextField"; export const NumberEdit = ({ key, diff --git a/src/components/generic-components/edit-components/text-edit.tsx b/src/components/generic-components/edit-components/text-edit.tsx index 064753c8..2a9d58f3 100644 --- a/src/components/generic-components/edit-components/text-edit.tsx +++ b/src/components/generic-components/edit-components/text-edit.tsx @@ -1,6 +1,6 @@ import { ReactNode } from "react"; import { EditProps } from "@components/generic-components/edit-components/common"; -import { TextField } from "@mui/material"; +import TextField from "@mui/material/TextField"; export const TextEdit = ({ key, diff --git a/src/components/generic-components/generic-data-grid.tsx b/src/components/generic-components/generic-data-grid.tsx index c03c5755..f54f1646 100644 --- a/src/components/generic-components/generic-data-grid.tsx +++ b/src/components/generic-components/generic-data-grid.tsx @@ -24,7 +24,9 @@ import { GenericDataGridSettings, } from "@components/generic-components/common"; import { ActionButtonContainer, DataTableContainer } from "@components/data-table/index.styled"; -import { Box, IconButton, Typography } from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; import { Pencil, Eye, AlertCircle } from "lucide-react"; import dayjs from "dayjs"; import useLocalStorage from "use-local-storage"; diff --git a/src/components/generic-components/generic-form.tsx b/src/components/generic-components/generic-form.tsx index 9d0397b0..cb2549b2 100644 --- a/src/components/generic-components/generic-form.tsx +++ b/src/components/generic-components/generic-form.tsx @@ -8,7 +8,13 @@ import { } from "@components/generic-components/common"; import { useEffect, useState } from "react"; import { useModuleWrapperContext } from "@providers/module-wrapper-provider"; -import { Card, CardContent, Grid, Tab, Tabs, Typography, Box } from "@mui/material"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Grid from "@mui/material/Grid"; +import Tab from "@mui/material/Tab"; +import Tabs from "@mui/material/Tabs"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; import { NumberEdit, TextEdit, diff --git a/src/components/generic-components/generic-module.tsx b/src/components/generic-components/generic-module.tsx index c122ae81..373dbf3a 100644 --- a/src/components/generic-components/generic-module.tsx +++ b/src/components/generic-components/generic-module.tsx @@ -20,7 +20,8 @@ import { import { ModuleWrapper } from "@components/module-wrapper"; import { dataListBreadcrumbLinks } from "../../utils/constants"; import { GenericForm, GenericFormProps } from "@components/generic-components/generic-form"; -import { Button, Box } from "@mui/material"; +import Button from "@mui/material/Button"; +import Box from "@mui/material/Box"; import { SearchBar } from "@components/search-bar"; import { GhostLink } from "@components/ghost-link"; import { diff --git a/src/components/generic-components/index.styled.ts b/src/components/generic-components/index.styled.ts index 3c661439..287072c6 100644 --- a/src/components/generic-components/index.styled.ts +++ b/src/components/generic-components/index.styled.ts @@ -1,4 +1,6 @@ -import { Divider, ListItemText, styled } from "@mui/material"; +import Divider from "@mui/material/Divider"; +import ListItemText from "@mui/material/ListItemText"; +import { styled } from "@mui/material/styles"; export const GenericViewDeleteContainer = styled("div")` margin-top: ${({ theme }) => theme.spacing(2)}; diff --git a/src/components/generic-components/view-components/array-view.tsx b/src/components/generic-components/view-components/array-view.tsx index 2a3f06a7..75e73ecf 100644 --- a/src/components/generic-components/view-components/array-view.tsx +++ b/src/components/generic-components/view-components/array-view.tsx @@ -1,12 +1,10 @@ -import { - Dialog, - DialogTitle, - Table, - TableBody, - TableCell, - TableHead, - TableRow, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import Table from "@mui/material/Table"; +import TableBody from "@mui/material/TableBody"; +import TableCell from "@mui/material/TableCell"; +import TableHead from "@mui/material/TableHead"; +import TableRow from "@mui/material/TableRow"; import { ReactNode, useState } from "react"; import { camelCaseToTitleCase, isJsonArray } from "../common"; import { ViewListItemText } from "../index.styled"; diff --git a/src/components/ghost-link/index.ts b/src/components/ghost-link/index.ts index c0ade8fe..c7cd5917 100644 --- a/src/components/ghost-link/index.ts +++ b/src/components/ghost-link/index.ts @@ -1,5 +1,5 @@ import { Link } from "react-router-dom"; -import { styled } from "@mui/material"; +import { styled } from "@mui/material/styles"; const aResetStyle = ` text-decoration: none; diff --git a/src/components/global-language-filter/index.tsx b/src/components/global-language-filter/index.tsx index 10658949..25686f6b 100644 --- a/src/components/global-language-filter/index.tsx +++ b/src/components/global-language-filter/index.tsx @@ -1,4 +1,7 @@ -import { TextField, MenuItem, Chip, ListSubheader } from "@mui/material"; +import TextField from "@mui/material/TextField"; +import MenuItem from "@mui/material/MenuItem"; +import Chip from "@mui/material/Chip"; +import ListSubheader from "@mui/material/ListSubheader"; import { useConfig } from "@providers/config-provider"; import { useGlobalLanguageFilter } from "@providers/global-language-filter-provider"; import { Globe, Languages } from "lucide-react"; diff --git a/src/components/image-selection-dialog/image-selection-dialog.tsx b/src/components/image-selection-dialog/image-selection-dialog.tsx index c7669782..ee9cad56 100644 --- a/src/components/image-selection-dialog/image-selection-dialog.tsx +++ b/src/components/image-selection-dialog/image-selection-dialog.tsx @@ -1,22 +1,19 @@ import React, { useState, useEffect, useMemo, useCallback } from "react"; -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Box, - Button, - Grid, - TextField, - Typography, - CircularProgress, - Breadcrumbs, - Paper, - IconButton, - InputAdornment, -} from "@mui/material"; -import { Search, X } from "lucide-react"; -import FolderIcon from "@mui/icons-material/Folder"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Grid from "@mui/material/Grid"; +import TextField from "@mui/material/TextField"; +import Typography from "@mui/material/Typography"; +import CircularProgress from "@mui/material/CircularProgress"; +import Breadcrumbs from "@mui/material/Breadcrumbs"; +import Paper from "@mui/material/Paper"; +import IconButton from "@mui/material/IconButton"; +import InputAdornment from "@mui/material/InputAdornment"; +import { Search, X, Folder as FolderIcon } from "lucide-react"; import { useRequestContext } from "@providers/request-provider"; import { wrapApiClient } from "@lib/network/wrapApiClient"; import { buildAbsoluteUrlWithCacheBust } from "@lib/network/utils"; @@ -321,11 +318,9 @@ export const ImageSelectionDialog: React.FC = ({ }} > ` display: flex; diff --git a/src/components/no-records-display/index.tsx b/src/components/no-records-display/index.tsx index ceb5166a..68205e3c 100644 --- a/src/components/no-records-display/index.tsx +++ b/src/components/no-records-display/index.tsx @@ -1,5 +1,8 @@ import React from "react"; -import { Box, Typography, Button, Paper } from "@mui/material"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import Button from "@mui/material/Button"; +import Paper from "@mui/material/Paper"; import { Search, FileX, RefreshCw } from "lucide-react"; interface NoRecordsDisplayProps { diff --git a/src/components/password-requirements/index.tsx b/src/components/password-requirements/index.tsx index 8162e14a..6ccb64ab 100644 --- a/src/components/password-requirements/index.tsx +++ b/src/components/password-requirements/index.tsx @@ -1,13 +1,11 @@ import React from "react"; -import { - Box, - List, - ListItem, - ListItemIcon, - ListItemText, - Typography, - Skeleton, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText from "@mui/material/ListItemText"; +import Typography from "@mui/material/Typography"; +import Skeleton from "@mui/material/Skeleton"; import { CheckCircle, XCircle } from "lucide-react"; import { PasswordValidationResult, PasswordPolicySettings } from "../../hooks/use-password-policy"; diff --git a/src/components/publication-status-dialog/index.tsx b/src/components/publication-status-dialog/index.tsx index 90bf119f..883022af 100644 --- a/src/components/publication-status-dialog/index.tsx +++ b/src/components/publication-status-dialog/index.tsx @@ -1,21 +1,19 @@ -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - Typography, - Box, - IconButton, - Alert, - FormControlLabel, - Checkbox, - Radio, - RadioGroup, - FormControl, - FormLabel, - Stack, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import Alert from "@mui/material/Alert"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import Checkbox from "@mui/material/Checkbox"; +import Radio from "@mui/material/Radio"; +import RadioGroup from "@mui/material/RadioGroup"; +import FormControl from "@mui/material/FormControl"; +import FormLabel from "@mui/material/FormLabel"; +import Stack from "@mui/material/Stack"; import { DatePicker } from "@mui/x-date-pickers"; import { Calendar, X } from "lucide-react"; import { useState, useEffect } from "react"; diff --git a/src/components/remote-autocomplete/index.tsx b/src/components/remote-autocomplete/index.tsx index 2d96bf8b..d08d81e0 100644 --- a/src/components/remote-autocomplete/index.tsx +++ b/src/components/remote-autocomplete/index.tsx @@ -1,4 +1,6 @@ -import { Autocomplete, TextField, CircularProgress } from "@mui/material"; +import Autocomplete from "@mui/material/Autocomplete"; +import TextField from "@mui/material/TextField"; +import CircularProgress from "@mui/material/CircularProgress"; import { RemoteAutoCompleteProps, RemoteValues } from "./types"; import React, { useState, useEffect } from "react"; import { useRequestContext } from "@providers/request-provider"; diff --git a/src/components/responsive-actions/index.tsx b/src/components/responsive-actions/index.tsx index c785c986..bf18821d 100644 --- a/src/components/responsive-actions/index.tsx +++ b/src/components/responsive-actions/index.tsx @@ -1,5 +1,10 @@ import React, { useRef, useLayoutEffect, useState } from "react"; -import { IconButton, Menu, MenuItem, Box, Typography, useTheme } from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import { useTheme } from "@mui/material/styles"; import { MoreHorizontal } from "lucide-react"; import { GhostLink } from "@components/ghost-link"; diff --git a/src/components/restore-data/index.tsx b/src/components/restore-data/index.tsx index 9774b2a1..bfc78f03 100644 --- a/src/components/restore-data/index.tsx +++ b/src/components/restore-data/index.tsx @@ -1,12 +1,10 @@ -import { - Dialog, - DialogContent, - DialogContentText, - DialogTitle, - DialogActions, - Button, - Fade, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import Fade from "@mui/material/Fade"; import { RestoreDataProps } from "./types"; import React from "react"; import { TransitionProps } from "@mui/material/transitions"; diff --git a/src/components/saving-bar/index.tsx b/src/components/saving-bar/index.tsx index 9e72bd54..1ba3f1dd 100644 --- a/src/components/saving-bar/index.tsx +++ b/src/components/saving-bar/index.tsx @@ -1,11 +1,11 @@ /* eslint-disable react/display-name */ +import React, { useEffect, useState } from "react"; import CircularProgress from "@mui/material/CircularProgress"; import Grid from "@mui/material/Grid"; import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import Fade from "@mui/material/Fade"; import { Save } from "lucide-react"; -import { Box, Fade } from "@mui/material"; -import { useEffect, useState } from "react"; -import React from "react"; const SavingBarBegin = React.forwardRef((props, ref) => { return ( diff --git a/src/components/search-bar/index.tsx b/src/components/search-bar/index.tsx index 7d1726be..4d6ed996 100644 --- a/src/components/search-bar/index.tsx +++ b/src/components/search-bar/index.tsx @@ -1,5 +1,8 @@ import { useEffect, useState } from "react"; -import { TextField, Box, InputAdornment, IconButton } from "@mui/material"; +import TextField from "@mui/material/TextField"; +import Box from "@mui/material/Box"; +import InputAdornment from "@mui/material/InputAdornment"; +import IconButton from "@mui/material/IconButton"; import { Search, X } from "lucide-react"; interface SearchBoxProps { setSearchTermOnChange: (searchTerm: string) => void; diff --git a/src/components/side-bar/index.styled.tsx b/src/components/side-bar/index.styled.tsx index e0d3ba41..a9b0c707 100644 --- a/src/components/side-bar/index.styled.tsx +++ b/src/components/side-bar/index.styled.tsx @@ -1,15 +1,11 @@ -import { - Drawer, - ListItemButton, - ListItemButtonProps, - ListItemIcon, - ListItemText, - ListItemTextProps, - ListSubheader, - styled, - IconButton, -} from "@mui/material"; import { ElementType } from "react"; +import Drawer from "@mui/material/Drawer"; +import ListItemButton, { type ListItemButtonProps } from "@mui/material/ListItemButton"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText, { type ListItemTextProps } from "@mui/material/ListItemText"; +import ListSubheader from "@mui/material/ListSubheader"; +import { styled } from "@mui/material/styles"; +import IconButton from "@mui/material/IconButton"; export const SidebarTopContainer = styled("div")<{ isMobile?: boolean; diff --git a/src/components/side-bar/index.tsx b/src/components/side-bar/index.tsx index 18a7d4db..fccf1af0 100644 --- a/src/components/side-bar/index.tsx +++ b/src/components/side-bar/index.tsx @@ -1,14 +1,14 @@ -import { - List, - useMediaQuery, - useTheme, - CircularProgress, - IconButton, - Tooltip, - Collapse, - Box, -} from "@mui/material"; import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import {useTheme} from "@mui/material/styles"; +import useMediaQuery from "@mui/material/useMediaQuery"; +import List from "@mui/material/List"; +import Typography from "@mui/material/Typography"; +import CircularProgress from "@mui/material/CircularProgress"; +import IconButton from "@mui/material/IconButton"; +import Tooltip from "@mui/material/Tooltip"; +import Collapse from "@mui/material/Collapse"; +import Box from "@mui/material/Box"; import { PanelRightOpen, PanelLeftOpen, ChevronDown, ChevronRight } from "lucide-react"; import { ListItemIconStyled, @@ -22,7 +22,6 @@ import { import { getCoreModuleRoute, CoreModule } from "lib/router"; import { useSidebar } from "@providers/sidebar-provider"; import { LogoComponent } from "@components/app-header/index.styled"; -import Typography from "@mui/material/Typography"; import { GhostLink } from "@components/ghost-link"; interface SidebarMenuItem { diff --git a/src/components/snack-bar/constants.ts b/src/components/snack-bar/constants.ts index 26ff6242..18deac7b 100644 --- a/src/components/snack-bar/constants.ts +++ b/src/components/snack-bar/constants.ts @@ -1,4 +1,4 @@ -import { AlertColor } from "@mui/material"; +import type { AlertColor } from "@mui/material/Alert"; export const initialSnackBarParams = { message: "", diff --git a/src/components/snack-bar/index.tsx b/src/components/snack-bar/index.tsx index 4633f125..9e921718 100644 --- a/src/components/snack-bar/index.tsx +++ b/src/components/snack-bar/index.tsx @@ -1,7 +1,8 @@ import { forwardRef, SyntheticEvent, useEffect, useState } from "react"; import Stack from "@mui/material/Stack"; import Snackbar from "@mui/material/Snackbar"; -import MuiAlert, { AlertColor, AlertProps } from "@mui/material/Alert"; +import MuiAlert from "@mui/material/Alert"; +import { type AlertColor, type AlertProps } from "@mui/material/Alert"; import { CoreModule } from "lib/router"; import { useCoreModuleNavigation } from "@hooks"; diff --git a/src/components/spreadsheet-import/index.styled.ts b/src/components/spreadsheet-import/index.styled.ts index 157fecd0..a5b71709 100644 --- a/src/components/spreadsheet-import/index.styled.ts +++ b/src/components/spreadsheet-import/index.styled.ts @@ -1,5 +1,6 @@ import styled from "@emotion/styled"; -import { Backdrop, Button } from "@mui/material"; +import Backdrop from "@mui/material/Backdrop"; +import Button from "@mui/material/Button"; export const FileNameTextSpan = styled("span")({ marginRight: "5px", diff --git a/src/components/spreadsheet-import/index.tsx b/src/components/spreadsheet-import/index.tsx index 29f06c60..dc45f88a 100644 --- a/src/components/spreadsheet-import/index.tsx +++ b/src/components/spreadsheet-import/index.tsx @@ -1,4 +1,4 @@ -import { CircularProgress } from "@mui/material"; +import CircularProgress from "@mui/material/CircularProgress"; import { Fragment, useState } from "react"; import { ReactSpreadsheetImport } from "react-spreadsheet-import"; import { Result } from "react-spreadsheet-import/types/types"; diff --git a/src/components/syntax-validation-indicator/index.tsx b/src/components/syntax-validation-indicator/index.tsx index 2ca63de5..176cb0e4 100644 --- a/src/components/syntax-validation-indicator/index.tsx +++ b/src/components/syntax-validation-indicator/index.tsx @@ -1,5 +1,6 @@ import React from "react"; -import { Chip, Tooltip } from "@mui/material"; +import Chip from "@mui/material/Chip"; +import Tooltip from "@mui/material/Tooltip"; import { AlertCircle, CheckCircle, Clock } from "lucide-react"; import { useSyntaxValidation } from "@hooks"; import { useConfig } from "@providers/config-provider"; diff --git a/src/components/syntax-validation-preview/index.tsx b/src/components/syntax-validation-preview/index.tsx index 4217329a..e148ad1b 100644 --- a/src/components/syntax-validation-preview/index.tsx +++ b/src/components/syntax-validation-preview/index.tsx @@ -1,5 +1,9 @@ import React, { useEffect, useState } from "react"; -import { Box, Alert, Typography, Chip, CircularProgress } from "@mui/material"; +import Box from "@mui/material/Box"; +import Alert from "@mui/material/Alert"; +import Typography from "@mui/material/Typography"; +import Chip from "@mui/material/Chip"; +import CircularProgress from "@mui/material/CircularProgress"; import { AlertTriangle, Code } from "lucide-react"; import { validateContentSyntax, diff --git a/src/components/tool-bar-button/index.tsx b/src/components/tool-bar-button/index.tsx index 0e5b9f49..526adcb1 100644 --- a/src/components/tool-bar-button/index.tsx +++ b/src/components/tool-bar-button/index.tsx @@ -1,5 +1,7 @@ import React from "react"; -import { Button, ButtonProps, useTheme } from "@mui/material"; +import Button from "@mui/material/Button"; +import type { ButtonProps } from "@mui/material/Button"; +import { useTheme } from "@mui/material/styles"; interface ToolbarButtonProps extends ButtonProps { startIcon?: React.ReactNode; diff --git a/src/components/translate-dialog/index.tsx b/src/components/translate-dialog/index.tsx index dff6528c..39206412 100644 --- a/src/components/translate-dialog/index.tsx +++ b/src/components/translate-dialog/index.tsx @@ -1,21 +1,19 @@ -import { - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Button, - FormControl, - InputLabel, - Select, - MenuItem, - Typography, - Box, - IconButton, - Radio, - CircularProgress, - Alert, - Backdrop, -} from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import FormControl from "@mui/material/FormControl"; +import InputLabel from "@mui/material/InputLabel"; +import Select from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import Radio from "@mui/material/Radio"; +import CircularProgress from "@mui/material/CircularProgress"; +import Alert from "@mui/material/Alert"; +import Backdrop from "@mui/material/Backdrop"; import { Languages, X } from "lucide-react"; import { useState, useEffect } from "react"; import { useConfig } from "@providers/config-provider"; diff --git a/src/components/unified-ai-progress/index.tsx b/src/components/unified-ai-progress/index.tsx index ff7ebb83..f31d24fe 100644 --- a/src/components/unified-ai-progress/index.tsx +++ b/src/components/unified-ai-progress/index.tsx @@ -1,4 +1,9 @@ -import { Dialog, DialogContent, Box, Typography, LinearProgress, Backdrop } from "@mui/material"; +import Dialog from "@mui/material/Dialog"; +import DialogContent from "@mui/material/DialogContent"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import LinearProgress from "@mui/material/LinearProgress"; +import Backdrop from "@mui/material/Backdrop"; import { Bot, Sparkles } from "lucide-react"; import { useEffect, useState, useRef, useCallback, useMemo } from "react"; import type { Theme } from "@mui/material/styles"; diff --git a/src/components/validation-status-bubble/index.tsx b/src/components/validation-status-bubble/index.tsx index d38dc0a2..2bfd99c7 100644 --- a/src/components/validation-status-bubble/index.tsx +++ b/src/components/validation-status-bubble/index.tsx @@ -1,5 +1,9 @@ import React from "react"; -import { Box, Tooltip, Paper, Typography, Alert } from "@mui/material"; +import Box from "@mui/material/Box"; +import Tooltip from "@mui/material/Tooltip"; +import Paper from "@mui/material/Paper"; +import Typography from "@mui/material/Typography"; +import Alert from "@mui/material/Alert"; import { AlertCircle, CheckCircle, Clock, Code, AlertTriangle } from "lucide-react"; import { useSyntaxValidation } from "@hooks"; import { useConfig } from "@providers/config-provider"; diff --git a/src/features/about/index.tsx b/src/features/about/index.tsx index dfe49e6c..4df7321f 100644 --- a/src/features/about/index.tsx +++ b/src/features/about/index.tsx @@ -1,5 +1,8 @@ import { ModuleWrapper } from "@components/module-wrapper"; -import { Card, CardContent, CircularProgress, Typography } from "@mui/material"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import CircularProgress from "@mui/material/CircularProgress"; +import Typography from "@mui/material/Typography"; import Grid from "@mui/material/Grid"; import { useRequestContext } from "@providers/request-provider"; import { useEffect, useState } from "react"; diff --git a/src/features/about/lazy.tsx b/src/features/about/lazy.tsx new file mode 100644 index 00000000..14965fdd --- /dev/null +++ b/src/features/about/lazy.tsx @@ -0,0 +1,8 @@ +import { lazy } from "react"; + +const AboutModule = lazy(() => + import("./index").then((module) => ({ default: module.AboutModule })) +); + +export { AboutModule }; + diff --git a/src/features/accounts/form/index.tsx b/src/features/accounts/form/index.tsx index 563dbd79..00e2b5fb 100644 --- a/src/features/accounts/form/index.tsx +++ b/src/features/accounts/form/index.tsx @@ -3,28 +3,27 @@ import { KnownTagsAutocomplete } from "@components/known-tags-autocomplete"; import { useCoreModuleNavigation, useNotificationsService, useSaveShortcut } from "@hooks"; import { AccountDetailsDto } from "@lib/network/swagger-client"; import { CoreModule, getCoreModuleRoute, getViewFormRoute } from "@lib/router"; -import { - Accordion, - AccordionDetails, - AccordionSummary, - Autocomplete, - Avatar, - Box, - Button, - Card, - CardContent, - CircularProgress, - Dialog, - DialogActions, - DialogContent, - DialogContentText, - DialogTitle, - Grid, - IconButton, - TextField, - Tooltip, - Typography, -} from "@mui/material"; +import Autocomplete from "@mui/material/Autocomplete"; +import Button from "@mui/material/Button"; +import CardContent from "@mui/material/CardContent"; +import Divider from "@mui/material/Divider"; +import Grid from "@mui/material/Grid"; +import IconButton from "@mui/material/IconButton"; +import TextField from "@mui/material/TextField"; +import Tooltip from "@mui/material/Tooltip"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CircularProgress from "@mui/material/CircularProgress"; +import Avatar from "@mui/material/Avatar"; +import Accordion from "@mui/material/Accordion"; +import AccordionSummary from "@mui/material/AccordionSummary"; +import AccordionDetails from "@mui/material/AccordionDetails"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogActions from "@mui/material/DialogActions"; import { useModuleWrapperContext } from "@providers/module-wrapper-provider"; import { useRequestContext } from "@providers/request-provider"; import { ChangeEvent, Fragment, SyntheticEvent, useEffect, useRef, useState } from "react"; diff --git a/src/features/accounts/index.styled.ts b/src/features/accounts/index.styled.ts index ed1a8c0f..9ff58d28 100644 --- a/src/features/accounts/index.styled.ts +++ b/src/features/accounts/index.styled.ts @@ -1,4 +1,8 @@ -import { Avatar, Card, ListItem, ListItemText, styled } from "@mui/material"; +import Avatar from "@mui/material/Avatar"; +import Card from "@mui/material/Card"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import { styled } from "@mui/material/styles"; export const AccountListItem = styled(ListItem)({ alignItems: "center", diff --git a/src/features/accounts/index.tsx b/src/features/accounts/index.tsx index d3b18dcf..3a2aa7e9 100644 --- a/src/features/accounts/index.tsx +++ b/src/features/accounts/index.tsx @@ -1,4 +1,6 @@ -import { Avatar, Button, ListItemAvatar } from "@mui/material"; +import Avatar from "@mui/material/Avatar"; +import Button from "@mui/material/Button"; +import ListItemAvatar from "@mui/material/ListItemAvatar"; import { AccountDetailsDto, AccountImportDto } from "lib/network/swagger-client"; import { useRequestContext } from "providers/request-provider"; import { AccountListItem, AccountListItemText, AccountUrlHref } from "./index.styled"; diff --git a/src/features/accounts/lazy.tsx b/src/features/accounts/lazy.tsx index 4f74da82..fd0af673 100644 --- a/src/features/accounts/lazy.tsx +++ b/src/features/accounts/lazy.tsx @@ -1,5 +1,11 @@ import { lazy } from "react"; -export const AccountsLazy = lazy(() => - import("features/accounts").then(({ Accounts }) => ({ default: Accounts })) +const AccountsModule = lazy(() => + import("./accounts-module").then((module) => ({ default: module.AccountsModule })) ); + +const AccountsLazy = lazy(() => + import("./index").then((module) => ({ default: module.Accounts })) +); + +export { AccountsModule, AccountsLazy }; diff --git a/src/features/accounts/view/details/index.tsx b/src/features/accounts/view/details/index.tsx index 1a0b37db..ac11adff 100644 --- a/src/features/accounts/view/details/index.tsx +++ b/src/features/accounts/view/details/index.tsx @@ -1,16 +1,13 @@ import { ReactNode, useEffect, useState } from "react"; -import { Box, Card, CardContent, Chip, Divider, Grid, Typography, useTheme } from "@mui/material"; -import { - Building, - Globe, - Hash, - MapPin, - Share2, - ShoppingCart, - Tag, - TrendingUp, - Users, -} from "lucide-react"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import Divider from "@mui/material/Divider"; +import Grid from "@mui/material/Grid"; +import Typography from "@mui/material/Typography"; +import { useTheme } from "@mui/material/styles"; +import { Building, Globe, Hash, MapPin, Share2, ShoppingCart, Tag, TrendingUp, Users } from "lucide-react"; import { useOutletContext } from "react-router-dom"; import { useConfig } from "@providers/config-provider"; import { AccountUrlHref } from "@features/accounts/index.styled"; diff --git a/src/features/accounts/view/index.tsx b/src/features/accounts/view/index.tsx index 050c963e..a760269f 100644 --- a/src/features/accounts/view/index.tsx +++ b/src/features/accounts/view/index.tsx @@ -1,22 +1,20 @@ import { SyntheticEvent, useEffect, useMemo, useRef, useState } from "react"; -import { - Avatar, - Box, - Button, - Card, - CardContent, - Divider, - Tab, - Tabs, - Typography, -} from "@mui/material"; -import { Edit, ExternalLink } from "lucide-react"; -import { Outlet, useLocation, useNavigate, useParams } from "react-router-dom"; -import { AccountDetailsDto } from "@lib/network/swagger-client"; +import Avatar from "@mui/material/Avatar"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Divider from "@mui/material/Divider"; +import Tab from "@mui/material/Tab"; +import Tabs from "@mui/material/Tabs"; +import Typography from "@mui/material/Typography"; import { CoreModule, getEditFormRoute } from "@lib/router"; +import { AccountDetailsDto } from "@lib/network/swagger-client"; import { useRequestContext } from "@providers/request-provider"; import { useNotificationsService } from "@hooks"; import { showApiError } from "@utils/api-error-parser"; +import { Edit, ExternalLink } from "lucide-react"; +import { Outlet, useLocation, useNavigate, useParams } from "react-router-dom"; import { ModuleWrapper } from "@components/module-wrapper"; import { accountFormBreadcrumbLinks } from "../constants"; import { AccountViewOutletContext } from "./types"; diff --git a/src/features/activity-log/lazy.tsx b/src/features/activity-log/lazy.tsx new file mode 100644 index 00000000..902dc739 --- /dev/null +++ b/src/features/activity-log/lazy.tsx @@ -0,0 +1,8 @@ +import { lazy } from "react"; + +const ActivityLogModule = lazy(() => + import("./index").then((module) => ({ default: module.ActivityLogModule })) +); + +export { ActivityLogModule }; + diff --git a/src/features/auth/device-verify/device-verify.styled.tsx b/src/features/auth/device-verify/device-verify.styled.tsx index 8a378787..d07b6ed2 100644 --- a/src/features/auth/device-verify/device-verify.styled.tsx +++ b/src/features/auth/device-verify/device-verify.styled.tsx @@ -1,5 +1,7 @@ import styled from "@emotion/styled"; -import { Box, Button, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; export const VerifyContainer = styled(Box)` display: flex; @@ -67,4 +69,4 @@ export const ErrorButton = styled(Button)` &:hover { background-color: #d32f2f; } -`; \ No newline at end of file +`; diff --git a/src/features/auth/device-verify/device-verify.tsx b/src/features/auth/device-verify/device-verify.tsx index f683d486..73989bd9 100644 --- a/src/features/auth/device-verify/device-verify.tsx +++ b/src/features/auth/device-verify/device-verify.tsx @@ -1,5 +1,8 @@ import { useState, useEffect } from "react"; -import { Typography, CircularProgress, TextField, Box } from "@mui/material"; +import Typography from "@mui/material/Typography"; +import CircularProgress from "@mui/material/CircularProgress"; +import TextField from "@mui/material/TextField"; +import Box from "@mui/material/Box"; import { useSearchParams, useNavigate } from "react-router-dom"; import { useRequestContext } from "@providers/request-provider"; import { useAuthState } from "@providers/auth-provider"; diff --git a/src/features/auth/forgot-password/index.styled.tsx b/src/features/auth/forgot-password/index.styled.tsx index 131267b3..05f32d78 100644 --- a/src/features/auth/forgot-password/index.styled.tsx +++ b/src/features/auth/forgot-password/index.styled.tsx @@ -1,5 +1,7 @@ import styled from "@emotion/styled"; -import { Box, Button, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; export const LoginContainer = styled(Box)` display: flex; diff --git a/src/features/auth/forgot-password/index.tsx b/src/features/auth/forgot-password/index.tsx index e2555bca..253ed0aa 100644 --- a/src/features/auth/forgot-password/index.tsx +++ b/src/features/auth/forgot-password/index.tsx @@ -1,5 +1,8 @@ import { useState } from "react"; -import { Button, Typography, TextField, Box, CircularProgress } from "@mui/material"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import TextField from "@mui/material/TextField"; +import CircularProgress from "@mui/material/CircularProgress"; import { LoginContainer, StyledForm, Logo, LogoRow } from "./index.styled"; import { useForm } from "react-hook-form"; import { z } from "zod"; diff --git a/src/features/auth/login/index.styled.tsx b/src/features/auth/login/index.styled.tsx index d8254473..c07e1bf5 100644 --- a/src/features/auth/login/index.styled.tsx +++ b/src/features/auth/login/index.styled.tsx @@ -1,5 +1,7 @@ import styled from "@emotion/styled"; -import { Box, Button, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; export const LoginContainer = styled(Box)` display: flex; diff --git a/src/features/auth/login/index.tsx b/src/features/auth/login/index.tsx index c106594a..6f383a9f 100644 --- a/src/features/auth/login/index.tsx +++ b/src/features/auth/login/index.tsx @@ -1,15 +1,13 @@ import { useMsal } from "@azure/msal-react"; import { useState, useEffect } from "react"; -import { - Button, - Typography, - TextField, - IconButton, - InputAdornment, - Box, - CircularProgress, - Link, -} from "@mui/material"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import TextField from "@mui/material/TextField"; +import IconButton from "@mui/material/IconButton"; +import InputAdornment from "@mui/material/InputAdornment"; +import Box from "@mui/material/Box"; +import CircularProgress from "@mui/material/CircularProgress"; +import Link from "@mui/material/Link"; import { Eye, EyeOff } from "lucide-react"; import { useSearchParams } from "react-router-dom"; import { LoginDto } from "@lib/network/swagger-client"; diff --git a/src/features/auth/reset-password/index.styled.tsx b/src/features/auth/reset-password/index.styled.tsx index d8254473..c07e1bf5 100644 --- a/src/features/auth/reset-password/index.styled.tsx +++ b/src/features/auth/reset-password/index.styled.tsx @@ -1,5 +1,7 @@ import styled from "@emotion/styled"; -import { Box, Button, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; export const LoginContainer = styled(Box)` display: flex; diff --git a/src/features/auth/reset-password/index.tsx b/src/features/auth/reset-password/index.tsx index 59f41819..a1c62ce9 100644 --- a/src/features/auth/reset-password/index.tsx +++ b/src/features/auth/reset-password/index.tsx @@ -1,15 +1,13 @@ import { useState } from "react"; -import { - Button, - Typography, - TextField, - Box, - CircularProgress, - List, - ListItem, - ListItemIcon, - ListItemText, -} from "@mui/material"; +import Button from "@mui/material/Button"; +import Typography from "@mui/material/Typography"; +import TextField from "@mui/material/TextField"; +import Box from "@mui/material/Box"; +import CircularProgress from "@mui/material/CircularProgress"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText from "@mui/material/ListItemText"; import { Eye, EyeOff, Check, X } from "lucide-react"; import { useForm } from "react-hook-form"; import { z } from "zod"; diff --git a/src/features/comments/comments-list/index.tsx b/src/features/comments/comments-list/index.tsx index 4f4724ff..1b2d4e5c 100644 --- a/src/features/comments/comments-list/index.tsx +++ b/src/features/comments/comments-list/index.tsx @@ -1,32 +1,30 @@ import React, { useState, useEffect, useRef } from "react"; import { Link } from "react-router-dom"; -import { - Box, - Button, - Card, - CardContent, - Chip, - Avatar, - Tabs, - Tab, - TextField, - MenuItem, - Select, - FormControl, - InputLabel, - Checkbox, - FormControlLabel, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Typography, - CircularProgress, - SelectChangeEvent, - Grid, - Divider, - Stack, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import Avatar from "@mui/material/Avatar"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import TextField from "@mui/material/TextField"; +import MenuItem from "@mui/material/MenuItem"; +import Select from "@mui/material/Select"; +import FormControl from "@mui/material/FormControl"; +import InputLabel from "@mui/material/InputLabel"; +import Checkbox from "@mui/material/Checkbox"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Typography from "@mui/material/Typography"; +import CircularProgress from "@mui/material/CircularProgress"; +import type { SelectChangeEvent } from "@mui/material/Select"; +import Grid from "@mui/material/Grid"; +import Divider from "@mui/material/Divider"; +import Stack from "@mui/material/Stack"; import { MessageSquare, MessageCircle, diff --git a/src/features/comments/lazy.tsx b/src/features/comments/lazy.tsx new file mode 100644 index 00000000..c98459f1 --- /dev/null +++ b/src/features/comments/lazy.tsx @@ -0,0 +1,8 @@ +import { lazy } from "react"; + +const CommentsModule = lazy(() => + import("./index").then((module) => ({ default: module.CommentsModule })) +); + +export { CommentsModule }; + diff --git a/src/features/contacts/form/index.tsx b/src/features/contacts/form/index.tsx index f033f266..6d3430d1 100644 --- a/src/features/contacts/form/index.tsx +++ b/src/features/contacts/form/index.tsx @@ -1,25 +1,23 @@ import { ChangeEvent, SyntheticEvent, useEffect, useRef, useState } from "react"; -import { - Autocomplete, - Button, - Dialog, - DialogActions, - DialogContent, - DialogContentText, - DialogTitle, - InputAdornment, - TextField, - Typography, - Box, - Avatar, - Grid, - Accordion, - AccordionSummary, - AccordionDetails, - Card, - CardContent, - CircularProgress, -} from "@mui/material"; +import Autocomplete from "@mui/material/Autocomplete"; +import Button from "@mui/material/Button"; +import Dialog from "@mui/material/Dialog"; +import DialogActions from "@mui/material/DialogActions"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogTitle from "@mui/material/DialogTitle"; +import InputAdornment from "@mui/material/InputAdornment"; +import TextField from "@mui/material/TextField"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import Avatar from "@mui/material/Avatar"; +import Grid from "@mui/material/Grid"; +import Accordion from "@mui/material/Accordion"; +import AccordionSummary from "@mui/material/AccordionSummary"; +import AccordionDetails from "@mui/material/AccordionDetails"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import CircularProgress from "@mui/material/CircularProgress"; import { ContactDetailsDto } from "lib/network/swagger-client"; import { CoreModule, getCoreModuleRoute, getViewFormRoute } from "lib/router"; import { contactAddHeader, contactEditHeader, contactFormBreadcrumbLinks } from "../constants"; diff --git a/src/features/contacts/index.styled.ts b/src/features/contacts/index.styled.ts index 25d7332c..967cc383 100644 --- a/src/features/contacts/index.styled.ts +++ b/src/features/contacts/index.styled.ts @@ -1,13 +1,11 @@ -import { - Avatar, - Card, - CardHeader, - Grid, - ListItem, - ListItemText, - Paper, - styled, -} from "@mui/material"; +import Avatar from "@mui/material/Avatar"; +import Card from "@mui/material/Card"; +import CardHeader from "@mui/material/CardHeader"; +import Grid from "@mui/material/Grid"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import Paper from "@mui/material/Paper"; +import { styled } from "@mui/material/styles"; export const ActionsContainer = styled("div")` display: flex; diff --git a/src/features/contacts/index.tsx b/src/features/contacts/index.tsx index 69263686..74ada5ca 100644 --- a/src/features/contacts/index.tsx +++ b/src/features/contacts/index.tsx @@ -1,14 +1,12 @@ -import { - Avatar, - Autocomplete, - Box, - Button, - Chip, - ListItemAvatar, - MenuItem, - TextField, - Tooltip, -} from "@mui/material"; +import Avatar from "@mui/material/Avatar"; +import Autocomplete from "@mui/material/Autocomplete"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Chip from "@mui/material/Chip"; +import ListItemAvatar from "@mui/material/ListItemAvatar"; +import MenuItem from "@mui/material/MenuItem"; +import TextField from "@mui/material/TextField"; +import Tooltip from "@mui/material/Tooltip"; import { ContactDetailsDto, ContactImportDto, SegmentDetailsDto } from "lib/network/swagger-client"; import { useRequestContext } from "providers/request-provider"; import { getAvailableContactFields } from "@features/segments/types"; diff --git a/src/features/contacts/lazy.tsx b/src/features/contacts/lazy.tsx index fe3f852a..e0ac8e83 100644 --- a/src/features/contacts/lazy.tsx +++ b/src/features/contacts/lazy.tsx @@ -1,5 +1,11 @@ import { lazy } from "react"; -export const ContactsLazy = lazy(() => - import("features/contacts").then(({ Contacts }) => ({ default: Contacts })) +const ContactsModule = lazy(() => + import("./contacts-module").then((module) => ({ default: module.ContactsModule })) ); + +const ContactsLazy = lazy(() => + import("./index").then((module) => ({ default: module.Contacts })) +); + +export { ContactsModule, ContactsLazy }; diff --git a/src/features/contacts/view/activity/index.tsx b/src/features/contacts/view/activity/index.tsx index 3e83a54c..9363f19e 100644 --- a/src/features/contacts/view/activity/index.tsx +++ b/src/features/contacts/view/activity/index.tsx @@ -1,4 +1,7 @@ -import { Box, Card, CardContent, Typography } from "@mui/material"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Typography from "@mui/material/Typography"; import { MessageSquareOff } from "lucide-react"; export const ContactActivity = () => { diff --git a/src/features/contacts/view/communications/index.tsx b/src/features/contacts/view/communications/index.tsx index 771008cb..05642881 100644 --- a/src/features/contacts/view/communications/index.tsx +++ b/src/features/contacts/view/communications/index.tsx @@ -1,18 +1,16 @@ -import { - Box, - Button, - Card, - CardActionArea, - CardContent, - Chip, - CircularProgress, - Dialog, - DialogContent, - DialogTitle, - IconButton, - Stack, - Typography, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardActionArea from "@mui/material/CardActionArea"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import CircularProgress from "@mui/material/CircularProgress"; +import Dialog from "@mui/material/Dialog"; +import DialogContent from "@mui/material/DialogContent"; +import DialogTitle from "@mui/material/DialogTitle"; +import IconButton from "@mui/material/IconButton"; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; import { ChevronLeft, ChevronRight, Mail, MessageSquare, X } from "lucide-react"; import { useEffect, useMemo, useState } from "react"; import { useOutletContext } from "react-router-dom"; diff --git a/src/features/contacts/view/deals/index.tsx b/src/features/contacts/view/deals/index.tsx index f25509d0..000d5a1c 100644 --- a/src/features/contacts/view/deals/index.tsx +++ b/src/features/contacts/view/deals/index.tsx @@ -1,13 +1,11 @@ -import { - Box, - Button, - Card, - CardContent, - Chip, - CircularProgress, - Stack, - Typography, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import CircularProgress from "@mui/material/CircularProgress"; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; import { BriefcaseBusiness, Plus } from "lucide-react"; import { useEffect, useState } from "react"; import { useOutletContext } from "react-router-dom"; diff --git a/src/features/contacts/view/details/index.tsx b/src/features/contacts/view/details/index.tsx index 539b13e7..97cb9009 100644 --- a/src/features/contacts/view/details/index.tsx +++ b/src/features/contacts/view/details/index.tsx @@ -1,15 +1,13 @@ import { ReactNode, useEffect, useState } from "react"; -import { - Box, - Card, - CardActionArea, - CardContent, - Chip, - Divider, - Grid, - Typography, - useTheme, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CardActionArea from "@mui/material/CardActionArea"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import Divider from "@mui/material/Divider"; +import Grid from "@mui/material/Grid"; +import Typography from "@mui/material/Typography"; +import { useTheme } from "@mui/material/styles"; import { Briefcase, Building, diff --git a/src/features/contacts/view/index.tsx b/src/features/contacts/view/index.tsx index 8734294f..c41b7d9f 100644 --- a/src/features/contacts/view/index.tsx +++ b/src/features/contacts/view/index.tsx @@ -1,17 +1,15 @@ import { SyntheticEvent, useEffect, useMemo, useRef, useState } from "react"; -import { - Avatar, - Box, - Button, - Card, - CardContent, - Chip, - Divider, - Tab, - Tabs, - Tooltip, - Typography, -} from "@mui/material"; +import Avatar from "@mui/material/Avatar"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Chip from "@mui/material/Chip"; +import Divider from "@mui/material/Divider"; +import Tab from "@mui/material/Tab"; +import Tabs from "@mui/material/Tabs"; +import Tooltip from "@mui/material/Tooltip"; +import Typography from "@mui/material/Typography"; import { Briefcase, Edit, Mail, MailX } from "lucide-react"; import { Outlet, useLocation, useNavigate, useParams } from "react-router-dom"; import { ContactDetailsDto, RequestParams } from "lib/network/swagger-client"; diff --git a/src/features/contacts/view/logs/index.tsx b/src/features/contacts/view/logs/index.tsx index 22639e43..f7e1aaaf 100644 --- a/src/features/contacts/view/logs/index.tsx +++ b/src/features/contacts/view/logs/index.tsx @@ -1 +1,2 @@ -export { ContactActivity as ContactLogs } from "../activity"; +import { ContactActivity as ContactLogs } from "../activity"; +export { ContactLogs }; diff --git a/src/features/contacts/view/orders/index.tsx b/src/features/contacts/view/orders/index.tsx index 797b1d11..db6e6cb8 100644 --- a/src/features/contacts/view/orders/index.tsx +++ b/src/features/contacts/view/orders/index.tsx @@ -1,6 +1,11 @@ import { useEffect, useState } from "react"; -import { Box, Card, CardContent, CircularProgress, IconButton, Typography } from "@mui/material"; -import { DataGrid, GridColDef } from "@mui/x-data-grid"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import CircularProgress from "@mui/material/CircularProgress"; +import IconButton from "@mui/material/IconButton"; +import Typography from "@mui/material/Typography"; +import { DataGrid, type GridColDef } from "@mui/x-data-grid"; import { ArrowRight, ShoppingCart } from "lucide-react"; import { useNavigate, useOutletContext } from "react-router-dom"; import { useConfig } from "@providers/config-provider"; diff --git a/src/features/content/content-edit/components/content-change-log.tsx b/src/features/content/content-edit/components/content-change-log.tsx index b80a11ba..05fa799c 100644 --- a/src/features/content/content-edit/components/content-change-log.tsx +++ b/src/features/content/content-edit/components/content-change-log.tsx @@ -1,28 +1,26 @@ import { useState, useEffect, useCallback, useRef } from "react"; -import { - Box, - Card, - CardContent, - Typography, - Chip, - CircularProgress, - Button, - Dialog, - DialogTitle, - DialogContent, - DialogActions, - Divider, - Grid, - Paper, - Tooltip, - Table, - TableBody, - TableCell, - TableContainer, - TableHead, - TableRow, - Checkbox, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Typography from "@mui/material/Typography"; +import Chip from "@mui/material/Chip"; +import CircularProgress from "@mui/material/CircularProgress"; +import Button from "@mui/material/Button"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Divider from "@mui/material/Divider"; +import Grid from "@mui/material/Grid"; +import Paper from "@mui/material/Paper"; +import Tooltip from "@mui/material/Tooltip"; +import Table from "@mui/material/Table"; +import TableBody from "@mui/material/TableBody"; +import TableCell from "@mui/material/TableCell"; +import TableContainer from "@mui/material/TableContainer"; +import TableHead from "@mui/material/TableHead"; +import TableRow from "@mui/material/TableRow"; +import Checkbox from "@mui/material/Checkbox"; import { History, Eye, User, Calendar, GitCompare, Rocket } from "lucide-react"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; diff --git a/src/features/content/content-edit/components/content-edit-action-buttons.tsx b/src/features/content/content-edit/components/content-edit-action-buttons.tsx index 3f5533e7..1863c008 100644 --- a/src/features/content/content-edit/components/content-edit-action-buttons.tsx +++ b/src/features/content/content-edit/components/content-edit-action-buttons.tsx @@ -1,13 +1,11 @@ -import { - Box, - Button, - CircularProgress, - Dialog, - DialogTitle, - DialogContent, - DialogContentText, - DialogActions, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import CircularProgress from "@mui/material/CircularProgress"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogActions from "@mui/material/DialogActions"; import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { useRequestContext } from "@providers/request-provider"; diff --git a/src/features/content/content-edit/components/content-edit-metadata-section.tsx b/src/features/content/content-edit/components/content-edit-metadata-section.tsx index 7e3fcd9c..cdc5b84e 100644 --- a/src/features/content/content-edit/components/content-edit-metadata-section.tsx +++ b/src/features/content/content-edit/components/content-edit-metadata-section.tsx @@ -1,4 +1,10 @@ -import { Box, Grid, TextField, Typography, IconButton, Collapse, Alert } from "@mui/material"; +import Box from "@mui/material/Box"; +import Grid from "@mui/material/Grid"; +import TextField from "@mui/material/TextField"; +import Typography from "@mui/material/Typography"; +import IconButton from "@mui/material/IconButton"; +import Collapse from "@mui/material/Collapse"; +import Alert from "@mui/material/Alert"; import { ChevronDown, ChevronUp } from "lucide-react"; import { ContentTypeDropdown } from "@features/content/content-types"; import { LanguageHighlights } from "@components/content-language-switcher"; diff --git a/src/features/content/content-edit/index.tsx b/src/features/content/content-edit/index.tsx index bef3a4ca..fabca39c 100644 --- a/src/features/content/content-edit/index.tsx +++ b/src/features/content/content-edit/index.tsx @@ -47,28 +47,26 @@ import { ErrorBoundary } from "react-error-boundary"; import { ModuleWrapper } from "@components/module-wrapper"; // Import UI components -import { - Card, - CardContent, - Tabs, - Tab, - Box, - CircularProgress, - Switch, - Typography, - FormControlLabel, - IconButton, - Button, - Grid, - TextField, - Checkbox, - Stack, - Skeleton, - Menu, - MenuItem, - ListItemIcon, - ListItemText, -} from "@mui/material"; +import Card from "@mui/material/Card"; +import CardContent from "@mui/material/CardContent"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import Box from "@mui/material/Box"; +import CircularProgress from "@mui/material/CircularProgress"; +import Switch from "@mui/material/Switch"; +import Typography from "@mui/material/Typography"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import IconButton from "@mui/material/IconButton"; +import Button from "@mui/material/Button"; +import Grid from "@mui/material/Grid"; +import TextField from "@mui/material/TextField"; +import Checkbox from "@mui/material/Checkbox"; +import Stack from "@mui/material/Stack"; +import Skeleton from "@mui/material/Skeleton"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText from "@mui/material/ListItemText"; import { RefreshCw, ExternalLink, ChevronDown, Save, Eye, FileX } from "lucide-react"; // Import existing components and utilities diff --git a/src/features/content/content-list.tsx b/src/features/content/content-list.tsx index fac11e6f..6ab63dd7 100644 --- a/src/features/content/content-list.tsx +++ b/src/features/content/content-list.tsx @@ -1,23 +1,21 @@ -import { - Button, - Card, - CardActions, - CardContent, - CardMedia, - Grid, - Typography, - Dialog, - DialogTitle, - DialogContent, - DialogContentText, - DialogActions, - IconButton, - Menu, - MenuItem, - Tooltip, - Box, - CircularProgress, -} from "@mui/material"; +import Button from "@mui/material/Button"; +import Card from "@mui/material/Card"; +import CardActions from "@mui/material/CardActions"; +import CardContent from "@mui/material/CardContent"; +import CardMedia from "@mui/material/CardMedia"; +import Grid from "@mui/material/Grid"; +import Typography from "@mui/material/Typography"; +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogContentText from "@mui/material/DialogContentText"; +import DialogActions from "@mui/material/DialogActions"; +import IconButton from "@mui/material/IconButton"; +import Menu from "@mui/material/Menu"; +import MenuItem from "@mui/material/MenuItem"; +import Tooltip from "@mui/material/Tooltip"; +import Box from "@mui/material/Box"; +import CircularProgress from "@mui/material/CircularProgress"; import { ContentDetailsDto } from "@lib/network/swagger-client"; import { ContentListContainer } from "./index.styled"; import { useEffect, useState, useRef } from "react"; diff --git a/src/features/content/content-types/content-type-dropdown.tsx b/src/features/content/content-types/content-type-dropdown.tsx index 913230b9..fb565870 100644 --- a/src/features/content/content-types/content-type-dropdown.tsx +++ b/src/features/content/content-types/content-type-dropdown.tsx @@ -1,5 +1,9 @@ import { useState } from "react"; -import { Grid, TextField, Typography, Box, MenuItem } from "@mui/material"; +import Grid from "@mui/material/Grid"; +import TextField from "@mui/material/TextField"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import MenuItem from "@mui/material/MenuItem"; import { Plus } from "lucide-react"; import { idToDisplayName } from "./content-types"; import { ContentTypeForm } from "./content-type-form"; diff --git a/src/features/content/content-types/content-type-form.tsx b/src/features/content/content-types/content-type-form.tsx index f60818c3..fe214789 100644 --- a/src/features/content/content-types/content-type-form.tsx +++ b/src/features/content/content-types/content-type-form.tsx @@ -1,24 +1,22 @@ import { useState } from "react"; -import { - Button, - Dialog, - DialogActions, - DialogContent, - DialogTitle, - FormControl, - FormControlLabel, - FormGroup, - Grid, - InputLabel, - MenuItem, - Select, - Switch, - TextField, - Typography, - Tooltip, - IconButton, - CircularProgress, -} from "@mui/material"; +import Button from "@mui/material/Button"; +import Dialog from "@mui/material/Dialog"; +import DialogActions from "@mui/material/DialogActions"; +import DialogContent from "@mui/material/DialogContent"; +import DialogTitle from "@mui/material/DialogTitle"; +import FormControl from "@mui/material/FormControl"; +import FormControlLabel from "@mui/material/FormControlLabel"; +import FormGroup from "@mui/material/FormGroup"; +import Grid from "@mui/material/Grid"; +import InputLabel from "@mui/material/InputLabel"; +import MenuItem from "@mui/material/MenuItem"; +import Select from "@mui/material/Select"; +import Switch from "@mui/material/Switch"; +import TextField from "@mui/material/TextField"; +import Typography from "@mui/material/Typography"; +import Tooltip from "@mui/material/Tooltip"; +import IconButton from "@mui/material/IconButton"; +import CircularProgress from "@mui/material/CircularProgress"; import { Info } from "lucide-react"; import { ContentFormat, displayNameToId, addContentType } from "./content-types"; import { useRequestContext } from "@providers/request-provider"; diff --git a/src/features/content/index.styled.ts b/src/features/content/index.styled.ts index a6059fc8..f61a76c5 100644 --- a/src/features/content/index.styled.ts +++ b/src/features/content/index.styled.ts @@ -1,4 +1,4 @@ -import { styled } from "@mui/material"; +import { styled } from "@mui/material/styles"; export const ContentListContainer = styled("div")``; diff --git a/src/features/content/lazy.tsx b/src/features/content/lazy.tsx new file mode 100644 index 00000000..1a8bad1b --- /dev/null +++ b/src/features/content/lazy.tsx @@ -0,0 +1,8 @@ +import { lazy } from "react"; + +const ContentModule = lazy(() => + import("./index").then((module) => ({ default: module.ContentModule })) +); + +export { ContentModule }; + diff --git a/src/features/dashboard/index.styled.ts b/src/features/dashboard/index.styled.ts index c3e2be86..20f6a8ba 100644 --- a/src/features/dashboard/index.styled.ts +++ b/src/features/dashboard/index.styled.ts @@ -1,4 +1,6 @@ -import { ListItem, ListItemText, styled } from "@mui/material"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import { styled } from "@mui/material/styles"; export const DashboardListItem = styled(ListItem)({ alignItems: "center", diff --git a/src/features/dashboard/index.tsx b/src/features/dashboard/index.tsx index 37e06ab3..85b55416 100644 --- a/src/features/dashboard/index.tsx +++ b/src/features/dashboard/index.tsx @@ -1,25 +1,23 @@ import React from "react"; -import { - Box, - Paper, - Typography, - Tabs, - Tab, - Select, - MenuItem, - FormControl, - InputLabel, - Chip, - Stack, - Skeleton, - List, - ListItem, - ListItemText, - ListItemIcon, - ToggleButton, - ToggleButtonGroup, - Button, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Paper from "@mui/material/Paper"; +import Typography from "@mui/material/Typography"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import Select from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import FormControl from "@mui/material/FormControl"; +import InputLabel from "@mui/material/InputLabel"; +import Chip from "@mui/material/Chip"; +import Stack from "@mui/material/Stack"; +import Skeleton from "@mui/material/Skeleton"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ToggleButton from "@mui/material/ToggleButton"; +import ToggleButtonGroup from "@mui/material/ToggleButtonGroup"; +import Button from "@mui/material/Button"; import Grid from "@mui/material/Grid"; import { ArrowDown, ArrowUp, Building2, FileText, MessageSquare, ShoppingCart } from "lucide-react"; import { useRequestContext } from "@providers/request-provider"; diff --git a/src/features/dashboard/lazy.tsx b/src/features/dashboard/lazy.tsx index ddfa4bf6..ca1dbcab 100644 --- a/src/features/dashboard/lazy.tsx +++ b/src/features/dashboard/lazy.tsx @@ -1,5 +1,7 @@ import { lazy } from "react"; -export const DashboardLazy = lazy(() => - import("./index").then(({ DashboardModule }) => ({ default: DashboardModule })) +const DashboardModule = lazy(() => + import("./dashboard-module").then((module) => ({ default: module.DashboardModule })) ); + +export { DashboardModule }; diff --git a/src/features/deployments/deployment-details/index.tsx b/src/features/deployments/deployment-details/index.tsx index e5c51152..e7e6dc87 100644 --- a/src/features/deployments/deployment-details/index.tsx +++ b/src/features/deployments/deployment-details/index.tsx @@ -1,31 +1,29 @@ import { useState, useEffect, useCallback } from "react"; -import { - Box, - Paper, - Typography, - Button, - Chip, - Skeleton, - IconButton, - Stepper, - Step, - StepLabel, - StepContent, - Alert, - Link, -} from "@mui/material"; +import Box from "@mui/material/Box"; +import Paper from "@mui/material/Paper"; +import Typography from "@mui/material/Typography"; +import Button from "@mui/material/Button"; +import Chip from "@mui/material/Chip"; +import Skeleton from "@mui/material/Skeleton"; +import IconButton from "@mui/material/IconButton"; +import Stepper from "@mui/material/Stepper"; +import Step from "@mui/material/Step"; +import StepLabel from "@mui/material/StepLabel"; +import StepContent from "@mui/material/StepContent"; +import Alert from "@mui/material/Alert"; +import Link from "@mui/material/Link"; import Grid from "@mui/material/Grid"; import { - ArrowBack, - PlayArrow, - Refresh, + ArrowLeft, + Play, + RefreshCw, CheckCircle, - Cancel, - Schedule, - Error as ErrorIcon, - HourglassEmpty, + X, + Clock, + AlertCircle, + Loader, Terminal, -} from "@mui/icons-material"; +} from "lucide-react"; import { useNavigate, useParams } from "react-router-dom"; import { useRequestContext } from "@providers/request-provider"; import { useNotificationsService } from "@hooks"; @@ -38,15 +36,15 @@ const getStepIcon = (status: string | undefined) => { case "Completed": return ; case "Failed": - return ; + return ; case "InProgress": - return ; + return ; case "Pending": - return ; + return ; case "Cancelled": - return ; + return ; default: - return ; + return ; } }; @@ -149,11 +147,11 @@ export const DeploymentDetails = () => { return ( - + {error || "Deployment not found"} - @@ -180,7 +178,7 @@ export const DeploymentDetails = () => { > - + @@ -194,7 +192,7 @@ export const DeploymentDetails = () => { +
+ + + + + + +
+ +
+ + + + +--- + +_**Agent (model default, mode Agent)**_ + + +Improving sidebar accessibility based on the HTML reference. Updating the component with proper ARIA attributes and semantic structure: + + +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.styled.tsx + +
+
+ +--- + + +Improving accessibility based on the HTML reference: adding ARIA attributes, semantic structure, and proper navigation: + + +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+
+ +--- + + +
+Tool use: **semantic_search_full** + + +Parameters: + +```json +{ + "query": "How is navigation handled in the sidebar? Are Link components or onClick handlers used?", + "includePattern": "src/components/side-bar", + "topK": 10, + "explanation": "" +} +``` +Result: + +```json +{ + "codeResults": [ + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.tsx", + "range": { + "startPosition": { + "line": 31 + }, + "endPosition": { + "line": 163, + "column": 2 + } + }, + "contents": "export const Sidebar = \n(group) => (\n(menuItem) => (\n\n >\n <span>\n <SidebarLink\n sx={{\n ...(showCollapsed && {\n justifyContent: \"center\",\n padding: (theme) => theme.spacing(1, 0),\n }),\n \"&:hover .sidebar-icon, &:focus-visible .sidebar-icon\": {\n color: (theme) => theme.palette.primary.contrastText,\n },\n }}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n if (typeof menuItem.onClick === \"function\") {\n menuItem.onClick(navigate);\n }\n if (isMobile) toggleMobile();\n }}\n selected={menuItem.isSelected}\n isCollapsed={showCollapsed}\n >\n <ListItemIconStyled className=\"sidebar-icon\">\n {menuItem.icon}\n </ListItemIconStyled>\n <SidebarLinkText\n primary={menuItem.label}\n {...({ isCollapsed: showCollapsed } as any)}\n />\n </SidebarLink>\n </span>\n </Tooltip>\n ))}\n </List>\n ))}\n </nav>\n )}\n </SidebarMenuScrollArea>\n </SidebarStyled>\n </>\n );\n};", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 32, + "column": 1 + }, + "endPosition": { + "line": 32, + "column": 8 + } + }, + { + "startPosition": { + "line": 32, + "column": 8 + }, + "endPosition": { + "line": 32, + "column": 14 + } + }, + { + "startPosition": { + "line": 32, + "column": 14 + }, + "endPosition": { + "line": 32, + "column": 24 + } + }, + { + "startPosition": { + "line": 108, + "column": 14 + }, + "endPosition": { + "line": 108, + "column": 14 + } + }, + { + "startPosition": { + "line": 108, + "column": 28 + }, + "endPosition": { + "line": 109, + "column": 15 + } + }, + { + "startPosition": { + "line": 118, + "column": 18 + }, + "endPosition": { + "line": 118, + "column": 18 + } + }, + { + "startPosition": { + "line": 118, + "column": 34 + }, + "endPosition": { + "line": 119, + "column": 19 + } + } + ] + }, + "detailedLines": [ + { + "text": "export const Sidebar = ", + "lineNumber": 32 + }, + { + "text": "(group) => (", + "lineNumber": 108 + }, + { + "text": "(menuItem) => (", + "lineNumber": 118 + }, + { + "lineNumber": 122 + }, + { + "text": " >", + "lineNumber": 123 + }, + { + "text": " <span>", + "lineNumber": 124 + }, + { + "text": " <SidebarLink", + "lineNumber": 125 + }, + { + "text": " sx={{", + "lineNumber": 126 + }, + { + "text": " ...(showCollapsed && {", + "lineNumber": 127 + }, + { + "text": " justifyContent: \"center\",", + "lineNumber": 128 + }, + { + "text": " padding: (theme) => theme.spacing(1, 0),", + "lineNumber": 129 + }, + { + "text": " }),", + "lineNumber": 130 + }, + { + "text": " \"&:hover .sidebar-icon, &:focus-visible .sidebar-icon\": {", + "lineNumber": 131 + }, + { + "text": " color: (theme) => theme.palette.primary.contrastText,", + "lineNumber": 132 + }, + { + "text": " },", + "lineNumber": 133 + }, + { + "text": " }}", + "lineNumber": 134 + }, + { + "text": " onClick={(e: React.MouseEvent) => {", + "lineNumber": 135 + }, + { + "text": " e.preventDefault();", + "lineNumber": 136 + }, + { + "text": " if (typeof menuItem.onClick === \"function\") {", + "lineNumber": 137 + }, + { + "text": " menuItem.onClick(navigate);", + "lineNumber": 138 + }, + { + "text": " }", + "lineNumber": 139 + }, + { + "text": " if (isMobile) toggleMobile();", + "lineNumber": 140 + }, + { + "text": " }}", + "lineNumber": 141 + }, + { + "text": " selected={menuItem.isSelected}", + "lineNumber": 142 + }, + { + "text": " isCollapsed={showCollapsed}", + "lineNumber": 143 + }, + { + "text": " >", + "lineNumber": 144 + }, + { + "text": " <ListItemIconStyled className=\"sidebar-icon\">", + "lineNumber": 145 + }, + { + "text": " {menuItem.icon}", + "lineNumber": 146 + }, + { + "text": " </ListItemIconStyled>", + "lineNumber": 147 + }, + { + "text": " <SidebarLinkText", + "lineNumber": 148 + }, + { + "text": " primary={menuItem.label}", + "lineNumber": 149 + }, + { + "text": " {...({ isCollapsed: showCollapsed } as any)}", + "lineNumber": 150 + }, + { + "text": " />", + "lineNumber": 151 + }, + { + "text": " </SidebarLink>", + "lineNumber": 152 + }, + { + "text": " </span>", + "lineNumber": 153 + }, + { + "text": " </Tooltip>", + "lineNumber": 154 + }, + { + "text": " ))}", + "lineNumber": 155 + }, + { + "text": " </List>", + "lineNumber": 156 + }, + { + "text": " ))}", + "lineNumber": 157 + }, + { + "text": " </nav>", + "lineNumber": 158 + }, + { + "text": " )}", + "lineNumber": 159 + }, + { + "text": " </SidebarMenuScrollArea>", + "lineNumber": 160 + }, + { + "text": " </SidebarStyled>", + "lineNumber": 161 + }, + { + "text": " </>", + "lineNumber": 162 + }, + { + "text": " );", + "lineNumber": 163 + }, + { + "text": "};", + "lineNumber": 164 + } + ] + }, + "score": 0.6091689467430115 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/sidebar-link-button.tsx", + "range": { + "startPosition": { + "line": 9, + "column": 2 + }, + "endPosition": { + "line": 20, + "column": 2 + } + }, + "contents": "export const SidebarLinkButton = ({ title, Icon, selected, to }: SidebarLinkButtonProps) => (\n <SidebarLink component={GhostLink} to={to} selected={selected}>\n {Icon && (\n <ListItemIconStyled>\n <Icon color={selected ? \"primary\" : undefined} />\n </ListItemIconStyled>\n )}\n <SidebarLinkText>{title}</SidebarLinkText>\n </SidebarLink>\n);", + "signatures": {}, + "detailedLines": [ + { + "text": "export const SidebarLinkButton = ({ title, Icon, selected, to }: SidebarLinkButtonProps) => (", + "lineNumber": 12 + }, + { + "text": " <SidebarLink component={GhostLink} to={to} selected={selected}>", + "lineNumber": 13 + }, + { + "text": " {Icon && (", + "lineNumber": 14 + }, + { + "text": " <ListItemIconStyled>", + "lineNumber": 15 + }, + { + "text": " <Icon color={selected ? \"primary\" : undefined} />", + "lineNumber": 16 + }, + { + "text": " </ListItemIconStyled>", + "lineNumber": 17 + }, + { + "text": " )}", + "lineNumber": 18 + }, + { + "text": " <SidebarLinkText>{title}</SidebarLinkText>", + "lineNumber": 19 + }, + { + "text": " </SidebarLink>", + "lineNumber": 20 + }, + { + "text": ");", + "lineNumber": 21 + } + ] + }, + "score": 0.5113957524299622 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 118, + "column": 2 + }, + "endPosition": { + "line": 178, + "column": 1 + } + }, + "contents": "export const SidebarLink = styled(ListItemButton, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})<{ isCollapsed?: boolean }>(({ theme, isCollapsed }) => `\n border-radius: ${theme.spacing(2)};\n height: ${theme.spacing(9)};\n margin-top: ${theme.spacing(1)};\n margin-left: ${isCollapsed ? theme.spacing(1) : \"0\"};\n margin-right: ${isCollapsed ? theme.spacing(1) : \"10px\"};\n color: ${theme.palette.text.primary};\n min-width: ${isCollapsed ? \"56px\" : \"auto\"};\n justify-content: ${isCollapsed ? \"center\" : \"flex-start\"};\n padding-left: ${isCollapsed ? \"0\" : theme.spacing(2)};\n background-color: transparent;\n transition: background-color 0.2s ease;\n\n :hover {\n background-color: ${theme.palette.primary.light};\n color: ${theme.palette.primary.contrastText};\n }\n\n :focus,\n :focus-visible {\n outline: 2px solid ${theme.palette.primary.main};\n outline-offset: 2px;\n background-color: ${theme.palette.primary.light};\n color: ${theme.palette.primary.contrastText};\n }\n\n &.Mui-selected {\n color: ${theme.palette.primary.contrastText};\n background-color: ${theme.palette.primary.main};\n font-weight: 600;\n\n :hover {\n background-color: ${theme.palette.primary.dark};\n color: ${theme.palette.primary.contrastText};\n }\n\n :focus,\n :focus-visible {\n outline: 2px solid ${theme.palette.primary.dark};\n outline-offset: 2px;\n background-color: ${theme.palette.primary.main};\n }\n }\n`);\n\nexport const SidebarLinkText = styled(ListItemText, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const SidebarLink = styled(ListItemButton, {", + "lineNumber": 121 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 122 + }, + { + "text": "})<{ isCollapsed?: boolean }>(({ theme, isCollapsed }) => `", + "lineNumber": 123 + }, + { + "text": " border-radius: ${theme.spacing(2)};", + "lineNumber": 124 + }, + { + "text": " height: ${theme.spacing(9)};", + "lineNumber": 125 + }, + { + "text": " margin-top: ${theme.spacing(1)};", + "lineNumber": 126 + }, + { + "text": " margin-left: ${isCollapsed ? theme.spacing(1) : \"0\"};", + "lineNumber": 127 + }, + { + "text": " margin-right: ${isCollapsed ? theme.spacing(1) : \"10px\"};", + "lineNumber": 128 + }, + { + "text": " color: ${theme.palette.text.primary};", + "lineNumber": 129 + }, + { + "text": " min-width: ${isCollapsed ? \"56px\" : \"auto\"};", + "lineNumber": 130 + }, + { + "text": " justify-content: ${isCollapsed ? \"center\" : \"flex-start\"};", + "lineNumber": 131 + }, + { + "text": " padding-left: ${isCollapsed ? \"0\" : theme.spacing(2)};", + "lineNumber": 132 + }, + { + "text": " background-color: transparent;", + "lineNumber": 133 + }, + { + "text": " transition: background-color 0.2s ease;", + "lineNumber": 134 + }, + { + "lineNumber": 135 + }, + { + "text": " :hover {", + "lineNumber": 136 + }, + { + "text": " background-color: ${theme.palette.primary.light};", + "lineNumber": 137 + }, + { + "text": " color: ${theme.palette.primary.contrastText};", + "lineNumber": 138 + }, + { + "text": " }", + "lineNumber": 139 + }, + { + "lineNumber": 140 + }, + { + "text": " :focus,", + "lineNumber": 141 + }, + { + "text": " :focus-visible {", + "lineNumber": 142 + }, + { + "text": " outline: 2px solid ${theme.palette.primary.main};", + "lineNumber": 143 + }, + { + "text": " outline-offset: 2px;", + "lineNumber": 144 + }, + { + "text": " background-color: ${theme.palette.primary.light};", + "lineNumber": 145 + }, + { + "text": " color: ${theme.palette.primary.contrastText};", + "lineNumber": 146 + }, + { + "text": " }", + "lineNumber": 147 + }, + { + "lineNumber": 148 + }, + { + "text": " &.Mui-selected {", + "lineNumber": 149 + }, + { + "text": " color: ${theme.palette.primary.contrastText};", + "lineNumber": 150 + }, + { + "text": " background-color: ${theme.palette.primary.main};", + "lineNumber": 151 + }, + { + "text": " font-weight: 600;", + "lineNumber": 152 + }, + { + "lineNumber": 153 + }, + { + "text": " :hover {", + "lineNumber": 154 + }, + { + "text": " background-color: ${theme.palette.primary.dark};", + "lineNumber": 155 + }, + { + "text": " color: ${theme.palette.primary.contrastText};", + "lineNumber": 156 + }, + { + "text": " }", + "lineNumber": 157 + }, + { + "lineNumber": 158 + }, + { + "text": " :focus,", + "lineNumber": 159 + }, + { + "text": " :focus-visible {", + "lineNumber": 160 + }, + { + "text": " outline: 2px solid ${theme.palette.primary.dark};", + "lineNumber": 161 + }, + { + "text": " outline-offset: 2px;", + "lineNumber": 162 + }, + { + "text": " background-color: ${theme.palette.primary.main};", + "lineNumber": 163 + }, + { + "text": " }", + "lineNumber": 164 + }, + { + "text": " }", + "lineNumber": 165 + }, + { + "text": "`);", + "lineNumber": 166 + }, + { + "lineNumber": 167 + }, + { + "text": "export const SidebarLinkText = styled(ListItemText, {", + "lineNumber": 168 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 169 + }, + { + "text": "})", + "lineNumber": 170 + }, + { + "text": ";", + "lineNumber": 179 + } + ] + }, + "score": 0.5025403499603271 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.tsx", + "range": { + "startPosition": { + "line": 29, + "column": 1 + }, + "endPosition": { + "line": 163, + "column": 1 + } + }, + "contents": "export const Sidebar = ({\n menuItems = [],\n onDrawerStateChange,\n isLoading = false,\n}: SidebarProps) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\n const { isOpen, isCollapsed, isMobileOpen, toggleCollapse, toggleMobile } = useSidebar();\n const navigate = useNavigate();\n\n // Notify parent component when drawer state changes\n useEffect(() => {\n if (onDrawerStateChange) {\n onDrawerStateChange(isMobileOpen);\n }\n }, [isMobileOpen, onDrawerStateChange]);\n\n const navigateToDashboard = useCallback(() => {\n navigate(getCoreModuleRoute(CoreModule.dashboard));\n }, [navigate]);\n\n const effectiveOpen = isMobile ? isMobileOpen : isOpen;\n const showCollapsed = !isMobile && isCollapsed;\n\n return (\n <>\n <SidebarStyled\n variant={isMobile ? \"temporary\" : \"permanent\"}\n open={effectiveOpen}\n onClose={toggleMobile}\n isCollapsed={showCollapsed}\n >\n <SidebarTopContainer isMobile={isMobile} isOpen={effectiveOpen} isCollapsed={showCollapsed}>\n {\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const Sidebar = ({", + "lineNumber": 32 + }, + { + "text": " menuItems = [],", + "lineNumber": 33 + }, + { + "text": " onDrawerStateChange,", + "lineNumber": 34 + }, + { + "text": " isLoading = false,", + "lineNumber": 35 + }, + { + "text": "}: SidebarProps) => {", + "lineNumber": 36 + }, + { + "text": " const theme = useTheme();", + "lineNumber": 37 + }, + { + "text": " const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));", + "lineNumber": 38 + }, + { + "text": " const { isOpen, isCollapsed, isMobileOpen, toggleCollapse, toggleMobile } = useSidebar();", + "lineNumber": 39 + }, + { + "text": " const navigate = useNavigate();", + "lineNumber": 40 + }, + { + "lineNumber": 41 + }, + { + "text": " // Notify parent component when drawer state changes", + "lineNumber": 42 + }, + { + "text": " useEffect(() => {", + "lineNumber": 43 + }, + { + "text": " if (onDrawerStateChange) {", + "lineNumber": 44 + }, + { + "text": " onDrawerStateChange(isMobileOpen);", + "lineNumber": 45 + }, + { + "text": " }", + "lineNumber": 46 + }, + { + "text": " }, [isMobileOpen, onDrawerStateChange]);", + "lineNumber": 47 + }, + { + "lineNumber": 48 + }, + { + "text": " const navigateToDashboard = useCallback(() => {", + "lineNumber": 49 + }, + { + "text": " navigate(getCoreModuleRoute(CoreModule.dashboard));", + "lineNumber": 50 + }, + { + "text": " }, [navigate]);", + "lineNumber": 51 + }, + { + "lineNumber": 52 + }, + { + "text": " const effectiveOpen = isMobile ? isMobileOpen : isOpen;", + "lineNumber": 53 + }, + { + "text": " const showCollapsed = !isMobile && isCollapsed;", + "lineNumber": 54 + }, + { + "lineNumber": 55 + }, + { + "text": " return (", + "lineNumber": 56 + }, + { + "text": " <>", + "lineNumber": 57 + }, + { + "text": " <SidebarStyled", + "lineNumber": 58 + }, + { + "text": " variant={isMobile ? \"temporary\" : \"permanent\"}", + "lineNumber": 59 + }, + { + "text": " open={effectiveOpen}", + "lineNumber": 60 + }, + { + "text": " onClose={toggleMobile}", + "lineNumber": 61 + }, + { + "text": " isCollapsed={showCollapsed}", + "lineNumber": 62 + }, + { + "text": " >", + "lineNumber": 63 + }, + { + "text": " <SidebarTopContainer isMobile={isMobile} isOpen={effectiveOpen} isCollapsed={showCollapsed}>", + "lineNumber": 64 + }, + { + "text": " {", + "lineNumber": 65 + }, + { + "text": ";", + "lineNumber": 164 + } + ] + }, + "score": 0.49202099442481995 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.tsx", + "range": { + "startPosition": { + "line": 31 + }, + "endPosition": { + "line": 163, + "column": 1 + } + }, + "contents": "export const Sidebar = \n\n <SidebarMenuScrollArea sx={{ pt: 4 }}>\n {isLoading ? (\n <div\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"100%\",\n }}\n >\n <CircularProgress />\n </div>\n ) : (\n <nav>\n {menuItems.map((group) => (\n <List\n key={group.header}\n subheader={\n <ListSubheaderStyled isCollapsed={showCollapsed}>\n {group.header}\n </ListSubheaderStyled>\n }\n sx={{ mb: 2 }}\n >\n {group.items.map((menuItem) => (\n <Tooltip\n key={menuItem.id}\n title={showCollapsed ? menuItem.label : \"\"}\n placement=\"right\"\n >\n <span>\n <SidebarLink\n sx=\n )\n )\n;", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 32, + "column": 1 + }, + "endPosition": { + "line": 32, + "column": 8 + } + }, + { + "startPosition": { + "line": 32, + "column": 8 + }, + "endPosition": { + "line": 32, + "column": 14 + } + }, + { + "startPosition": { + "line": 32, + "column": 14 + }, + "endPosition": { + "line": 32, + "column": 24 + } + } + ] + }, + "detailedLines": [ + { + "text": "export const Sidebar = ", + "lineNumber": 32 + }, + { + "lineNumber": 93 + }, + { + "text": " <SidebarMenuScrollArea sx={{ pt: 4 }}>", + "lineNumber": 94 + }, + { + "text": " {isLoading ? (", + "lineNumber": 95 + }, + { + "text": " <div", + "lineNumber": 96 + }, + { + "text": " style={{", + "lineNumber": 97 + }, + { + "text": " display: \"flex\",", + "lineNumber": 98 + }, + { + "text": " justifyContent: \"center\",", + "lineNumber": 99 + }, + { + "text": " alignItems: \"center\",", + "lineNumber": 100 + }, + { + "text": " height: \"100%\",", + "lineNumber": 101 + }, + { + "text": " }}", + "lineNumber": 102 + }, + { + "text": " >", + "lineNumber": 103 + }, + { + "text": " <CircularProgress />", + "lineNumber": 104 + }, + { + "text": " </div>", + "lineNumber": 105 + }, + { + "text": " ) : (", + "lineNumber": 106 + }, + { + "text": " <nav>", + "lineNumber": 107 + }, + { + "text": " {menuItems.map((group) => (", + "lineNumber": 108 + }, + { + "text": " <List", + "lineNumber": 109 + }, + { + "text": " key={group.header}", + "lineNumber": 110 + }, + { + "text": " subheader={", + "lineNumber": 111 + }, + { + "text": " <ListSubheaderStyled isCollapsed={showCollapsed}>", + "lineNumber": 112 + }, + { + "text": " {group.header}", + "lineNumber": 113 + }, + { + "text": " </ListSubheaderStyled>", + "lineNumber": 114 + }, + { + "text": " }", + "lineNumber": 115 + }, + { + "text": " sx={{ mb: 2 }}", + "lineNumber": 116 + }, + { + "text": " >", + "lineNumber": 117 + }, + { + "text": " {group.items.map((menuItem) => (", + "lineNumber": 118 + }, + { + "text": " <Tooltip", + "lineNumber": 119 + }, + { + "text": " key={menuItem.id}", + "lineNumber": 120 + }, + { + "text": " title={showCollapsed ? menuItem.label : \"\"}", + "lineNumber": 121 + }, + { + "text": " placement=\"right\"", + "lineNumber": 122 + }, + { + "text": " >", + "lineNumber": 123 + }, + { + "text": " <span>", + "lineNumber": 124 + }, + { + "text": " <SidebarLink", + "lineNumber": 125 + }, + { + "text": " sx=", + "lineNumber": 126 + }, + { + "text": " )", + "lineNumber": 155 + }, + { + "text": " )", + "lineNumber": 157 + }, + { + "text": ";", + "lineNumber": 164 + } + ] + }, + "score": 0.45424580574035645 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.tsx", + "range": { + "startPosition": { + "line": 31 + }, + "endPosition": { + "line": 163, + "column": 1 + } + }, + "contents": "export const Sidebar = \n\n <SidebarTopContainer isMobile={isMobile} isOpen={effectiveOpen} isCollapsed={showCollapsed}>\n {!showCollapsed && (\n <div\n className=\"sidebar-logo sidebar-link\"\n style={{ display: \"flex\", alignItems: \"center\", cursor: \"pointer\", flex: 1 }}\n onClick={navigateToDashboard}\n tabIndex={0}\n role=\"button\"\n aria-label=\"Go to dashboard\"\n >\n <LogoComponent />\n <Typography className=\"sidebar-app-name\">LeadCMS.ai</Typography>\n </div>\n )}\n\n {!isMobile && (\n <Tooltip title={isCollapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}>\n <IconButton\n onClick={toggleCollapse}\n size=\"small\"\n sx={{\n ml: showCollapsed ? 2 : 1,\n pr: showCollapsed ? 2 : 0,\n }}\n >\n {isCollapsed ? <PanelLeftOpen /> : <PanelRightOpen />}\n </IconButton>\n </Tooltip>\n )}\n </SidebarTopContainer>\n <SidebarMenuScrollArea sx={{ pt: 4 }}>\n {isLoading ? (\n <div\n;", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 32, + "column": 1 + }, + "endPosition": { + "line": 32, + "column": 8 + } + }, + { + "startPosition": { + "line": 32, + "column": 8 + }, + "endPosition": { + "line": 32, + "column": 14 + } + }, + { + "startPosition": { + "line": 32, + "column": 14 + }, + "endPosition": { + "line": 32, + "column": 24 + } + } + ] + }, + "detailedLines": [ + { + "text": "export const Sidebar = ", + "lineNumber": 32 + }, + { + "lineNumber": 63 + }, + { + "text": " <SidebarTopContainer isMobile={isMobile} isOpen={effectiveOpen} isCollapsed={showCollapsed}>", + "lineNumber": 64 + }, + { + "text": " {!showCollapsed && (", + "lineNumber": 65 + }, + { + "text": " <div", + "lineNumber": 66 + }, + { + "text": " className=\"sidebar-logo sidebar-link\"", + "lineNumber": 67 + }, + { + "text": " style={{ display: \"flex\", alignItems: \"center\", cursor: \"pointer\", flex: 1 }}", + "lineNumber": 68 + }, + { + "text": " onClick={navigateToDashboard}", + "lineNumber": 69 + }, + { + "text": " tabIndex={0}", + "lineNumber": 70 + }, + { + "text": " role=\"button\"", + "lineNumber": 71 + }, + { + "text": " aria-label=\"Go to dashboard\"", + "lineNumber": 72 + }, + { + "text": " >", + "lineNumber": 73 + }, + { + "text": " <LogoComponent />", + "lineNumber": 74 + }, + { + "text": " <Typography className=\"sidebar-app-name\">LeadCMS.ai</Typography>", + "lineNumber": 75 + }, + { + "text": " </div>", + "lineNumber": 76 + }, + { + "text": " )}", + "lineNumber": 77 + }, + { + "lineNumber": 78 + }, + { + "text": " {!isMobile && (", + "lineNumber": 79 + }, + { + "text": " <Tooltip title={isCollapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}>", + "lineNumber": 80 + }, + { + "text": " <IconButton", + "lineNumber": 81 + }, + { + "text": " onClick={toggleCollapse}", + "lineNumber": 82 + }, + { + "text": " size=\"small\"", + "lineNumber": 83 + }, + { + "text": " sx={{", + "lineNumber": 84 + }, + { + "text": " ml: showCollapsed ? 2 : 1,", + "lineNumber": 85 + }, + { + "text": " pr: showCollapsed ? 2 : 0,", + "lineNumber": 86 + }, + { + "text": " }}", + "lineNumber": 87 + }, + { + "text": " >", + "lineNumber": 88 + }, + { + "text": " {isCollapsed ? <PanelLeftOpen /> : <PanelRightOpen />}", + "lineNumber": 89 + }, + { + "text": " </IconButton>", + "lineNumber": 90 + }, + { + "text": " </Tooltip>", + "lineNumber": 91 + }, + { + "text": " )}", + "lineNumber": 92 + }, + { + "text": " </SidebarTopContainer>", + "lineNumber": 93 + }, + { + "text": " <SidebarMenuScrollArea sx={{ pt: 4 }}>", + "lineNumber": 94 + }, + { + "text": " {isLoading ? (", + "lineNumber": 95 + }, + { + "text": " <div", + "lineNumber": 96 + }, + { + "text": ";", + "lineNumber": 164 + } + ] + }, + "score": 0.4388488531112671 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/sidebar-link-button.tsx", + "range": { + "startPosition": { + "column": 43 + }, + "endPosition": { + "line": 20, + "column": 1 + } + }, + "contents": "import { GhostLink } from \"components/ghost-link\";\nimport { ListItemIconStyled, SidebarLink, SidebarLinkText } from \"./index.styled\";\n\ntype SidebarLinkButtonProps = {\n Icon?: React.ComponentType<LucideProps>;\n title: string;\n selected?: boolean;\n to: string;\n};\n\nexport const SidebarLinkButton = ({ title, Icon, selected, to }: SidebarLinkButtonProps)\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "import { GhostLink } from \"components/ghost-link\";", + "lineNumber": 2 + }, + { + "text": "import { ListItemIconStyled, SidebarLink, SidebarLinkText } from \"./index.styled\";", + "lineNumber": 3 + }, + { + "lineNumber": 4 + }, + { + "text": "type SidebarLinkButtonProps = {", + "lineNumber": 5, + "isSignature": true + }, + { + "text": " Icon?: React.ComponentType<LucideProps>;", + "lineNumber": 6 + }, + { + "text": " title: string;", + "lineNumber": 7 + }, + { + "text": " selected?: boolean;", + "lineNumber": 8 + }, + { + "text": " to: string;", + "lineNumber": 9 + }, + { + "text": "};", + "lineNumber": 10, + "isSignature": true + }, + { + "lineNumber": 11 + }, + { + "text": "export const SidebarLinkButton = ({ title, Icon, selected, to }: SidebarLinkButtonProps)", + "lineNumber": 12 + }, + { + "text": ";", + "lineNumber": 21 + } + ] + }, + "score": 0.431301087141037 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.tsx", + "range": { + "startPosition": {}, + "endPosition": { + "line": 163, + "column": 1 + } + }, + "contents": "import List from \"@mui/material/List\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport {useTheme} from \"@mui/material/styles\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport { useEffect, useCallback } from \"react\";\nimport { PanelRightOpen, PanelLeftOpen } from \"lucide-react\";\nimport {\n ListItemIconStyled,\n ListSubheaderStyled,\n SidebarLinkText,\n SidebarLink,\n SidebarStyled,\n SidebarTopContainer,\n SidebarMenuScrollArea,\n} from \"./index.styled\";\nimport { getCoreModuleRoute, CoreModule } from \"lib/router\";\nimport { useSidebar } from \"@providers/sidebar-provider\";\nimport { LogoComponent } from \"@components/app-header/index.styled\";\nimport Typography from \"@mui/material/Typography\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { SidebarMenuSection } from \"@utils/build-menu-items\";\n\ninterface SidebarProps {\n menuItems?: SidebarMenuSection[];\n onDrawerStateChange?: (isOpen: boolean) => void;\n isLoading?: boolean;\n}\n\nexport const Sidebar = ({\n menuItems = [],\n onDrawerStateChange,\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "import List from \"@mui/material/List\";", + "lineNumber": 1 + }, + { + "text": "import useMediaQuery from \"@mui/material/useMediaQuery\";", + "lineNumber": 2 + }, + { + "text": "import {useTheme} from \"@mui/material/styles\";", + "lineNumber": 3 + }, + { + "text": "import CircularProgress from \"@mui/material/CircularProgress\";", + "lineNumber": 4 + }, + { + "text": "import IconButton from \"@mui/material/IconButton\";", + "lineNumber": 5 + }, + { + "text": "import Tooltip from \"@mui/material/Tooltip\";", + "lineNumber": 6 + }, + { + "text": "import { useEffect, useCallback } from \"react\";", + "lineNumber": 7 + }, + { + "text": "import { PanelRightOpen, PanelLeftOpen } from \"lucide-react\";", + "lineNumber": 8 + }, + { + "text": "import {", + "lineNumber": 9 + }, + { + "text": " ListItemIconStyled,", + "lineNumber": 10 + }, + { + "text": " ListSubheaderStyled,", + "lineNumber": 11 + }, + { + "text": " SidebarLinkText,", + "lineNumber": 12 + }, + { + "text": " SidebarLink,", + "lineNumber": 13 + }, + { + "text": " SidebarStyled,", + "lineNumber": 14 + }, + { + "text": " SidebarTopContainer,", + "lineNumber": 15 + }, + { + "text": " SidebarMenuScrollArea,", + "lineNumber": 16 + }, + { + "text": "} from \"./index.styled\";", + "lineNumber": 17 + }, + { + "text": "import { getCoreModuleRoute, CoreModule } from \"lib/router\";", + "lineNumber": 18 + }, + { + "text": "import { useSidebar } from \"@providers/sidebar-provider\";", + "lineNumber": 19 + }, + { + "text": "import { LogoComponent } from \"@components/app-header/index.styled\";", + "lineNumber": 20 + }, + { + "text": "import Typography from \"@mui/material/Typography\";", + "lineNumber": 21 + }, + { + "text": "import { useNavigate } from \"react-router-dom\";", + "lineNumber": 22 + }, + { + "lineNumber": 23 + }, + { + "text": "import { SidebarMenuSection } from \"@utils/build-menu-items\";", + "lineNumber": 24 + }, + { + "lineNumber": 25 + }, + { + "text": "interface SidebarProps {", + "lineNumber": 26, + "isSignature": true + }, + { + "text": " menuItems?: SidebarMenuSection[];", + "lineNumber": 27 + }, + { + "text": " onDrawerStateChange?: (isOpen: boolean) => void;", + "lineNumber": 28 + }, + { + "text": " isLoading?: boolean;", + "lineNumber": 29, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 30, + "isSignature": true + }, + { + "lineNumber": 31 + }, + { + "text": "export const Sidebar = ({", + "lineNumber": 32 + }, + { + "text": " menuItems = [],", + "lineNumber": 33 + }, + { + "text": " onDrawerStateChange,", + "lineNumber": 34 + }, + { + "text": ";", + "lineNumber": 164 + } + ] + }, + "score": 0.4214206039905548 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 165, + "column": 3 + }, + "endPosition": { + "line": 189, + "column": 1 + } + }, + "contents": "export const SidebarLinkText = styled(ListItemText, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})<{ isCollapsed?: boolean }>(({ theme, isCollapsed }) => `\n .MuiTypography-root {\n font-weight: 500;\n font-size: 14px;\n line-height: 20px;\n margin-left: ${theme.spacing(1)};\n }\n\n display: ${isCollapsed ? \"none\" : \"block\"};\n`);\n\nexport const ListItemIconStyled = styled(ListItemIcon)\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const SidebarLinkText = styled(ListItemText, {", + "lineNumber": 168 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 169 + }, + { + "text": "})<{ isCollapsed?: boolean }>(({ theme, isCollapsed }) => `", + "lineNumber": 170 + }, + { + "text": " .MuiTypography-root {", + "lineNumber": 171 + }, + { + "text": " font-weight: 500;", + "lineNumber": 172 + }, + { + "text": " font-size: 14px;", + "lineNumber": 173 + }, + { + "text": " line-height: 20px;", + "lineNumber": 174 + }, + { + "text": " margin-left: ${theme.spacing(1)};", + "lineNumber": 175 + }, + { + "text": " }", + "lineNumber": 176 + }, + { + "lineNumber": 177 + }, + { + "text": " display: ${isCollapsed ? \"none\" : \"block\"};", + "lineNumber": 178 + }, + { + "text": "`);", + "lineNumber": 179 + }, + { + "lineNumber": 180 + }, + { + "text": "export const ListItemIconStyled = styled(ListItemIcon)", + "lineNumber": 181 + }, + { + "text": ";", + "lineNumber": 190 + } + ] + }, + "score": 0.3834879994392395 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 178, + "column": 3 + }, + "endPosition": { + "line": 189, + "column": 25 + } + }, + "contents": "export const ListItemIconStyled = styled(ListItemIcon)`\n min-width: ${({ theme }) => theme.spacing(8)};\n color: ${({ theme }) => theme.palette.text.secondary};\n margin-left: ${({ theme }) => theme.spacing(3)};\n transition: color 0.2s ease;\n\n .Mui-selected & {\n color: ${({ theme }) => theme.palette.primary.contrastText};\n }\n` as typeof ListItemIcon;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const ListItemIconStyled = styled(ListItemIcon)`", + "lineNumber": 181 + }, + { + "text": " min-width: ${({ theme }) => theme.spacing(8)};", + "lineNumber": 182 + }, + { + "text": " color: ${({ theme }) => theme.palette.text.secondary};", + "lineNumber": 183 + }, + { + "text": " margin-left: ${({ theme }) => theme.spacing(3)};", + "lineNumber": 184 + }, + { + "text": " transition: color 0.2s ease;", + "lineNumber": 185 + }, + { + "lineNumber": 186 + }, + { + "text": " .Mui-selected & {", + "lineNumber": 187 + }, + { + "text": " color: ${({ theme }) => theme.palette.primary.contrastText};", + "lineNumber": 188 + }, + { + "text": " }", + "lineNumber": 189 + }, + { + "text": "` as typeof ListItemIcon;", + "lineNumber": 190 + } + ] + }, + "score": 0.31660929322242737 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 62, + "column": 2 + }, + "endPosition": { + "line": 104, + "column": 1 + } + }, + "contents": "export const SidebarStyled = styled(Drawer, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})<{ isCollapsed?: boolean }>(\n ({ theme, isCollapsed }) => `\n width: ${isCollapsed ? \"65px\" : \"260px\"};\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n transition: width 0.3s ease;\n .MuiDrawer-paper {\n width: ${isCollapsed ? \"65px\" : \"260px\"};\n display: flex;\n flex-direction: column;\n height: 100vh;\n box-sizing: border-box;\n border-right: 1px solid ${theme.palette.divider};\n background-color: ${theme.palette.background.default};\n position: fixed;\n top: 0;\n padding-bottom: 0;\n transition: width 0.3s ease;\n overflow-x: hidden;\n }\n`\n);\n\nexport const MobileDrawerToggle = styled(IconButton)\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const SidebarStyled = styled(Drawer, {", + "lineNumber": 65 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 66 + }, + { + "text": "})<{ isCollapsed?: boolean }>(", + "lineNumber": 67 + }, + { + "text": " ({ theme, isCollapsed }) => `", + "lineNumber": 68 + }, + { + "text": " width: ${isCollapsed ? \"65px\" : \"260px\"};", + "lineNumber": 69 + }, + { + "text": " flex-shrink: 0;", + "lineNumber": 70 + }, + { + "text": " display: flex;", + "lineNumber": 71 + }, + { + "text": " flex-direction: column;", + "lineNumber": 72 + }, + { + "text": " transition: width 0.3s ease;", + "lineNumber": 73 + }, + { + "text": " .MuiDrawer-paper {", + "lineNumber": 74 + }, + { + "text": " width: ${isCollapsed ? \"65px\" : \"260px\"};", + "lineNumber": 75 + }, + { + "text": " display: flex;", + "lineNumber": 76 + }, + { + "text": " flex-direction: column;", + "lineNumber": 77 + }, + { + "text": " height: 100vh;", + "lineNumber": 78 + }, + { + "text": " box-sizing: border-box;", + "lineNumber": 79 + }, + { + "text": " border-right: 1px solid ${theme.palette.divider};", + "lineNumber": 80 + }, + { + "text": " background-color: ${theme.palette.background.default};", + "lineNumber": 81 + }, + { + "text": " position: fixed;", + "lineNumber": 82 + }, + { + "text": " top: 0;", + "lineNumber": 83 + }, + { + "text": " padding-bottom: 0;", + "lineNumber": 84 + }, + { + "text": " transition: width 0.3s ease;", + "lineNumber": 85 + }, + { + "text": " overflow-x: hidden;", + "lineNumber": 86 + }, + { + "text": " }", + "lineNumber": 87 + }, + { + "text": "`", + "lineNumber": 88 + }, + { + "text": ");", + "lineNumber": 89 + }, + { + "lineNumber": 90 + }, + { + "text": "export const MobileDrawerToggle = styled(IconButton)", + "lineNumber": 91 + }, + { + "text": ";", + "lineNumber": 105 + } + ] + }, + "score": 0.31264233589172363 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "column": 42 + }, + "endPosition": { + "line": 62, + "column": 1 + } + }, + "contents": "import ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport { styled } from \"@mui/material/styles\";\nimport IconButton from \"@mui/material/IconButton\";\n\nexport const SidebarTopContainer = styled(\"div\")<{\n isMobile?: boolean;\n isOpen?: boolean;\n isCollapsed?: boolean;\n}>(\n ({ theme, isMobile, isOpen, isCollapsed }) => `\n display: flex;\n align-items: center;\n height: 64px;\n min-height: 64px;\n max-height: 64px;\n padding-left: ${isCollapsed ? \"10px\" : \"16px\"};\n padding-right: ${isCollapsed ? \"8px\" : \"16px\"};\n width: 100%;\n border-bottom: 1px solid ${\n theme.palette.mode === \"dark\" ? theme.palette.secondary.light : theme.palette.divider\n };\n background: ${\n theme.palette.mode === \"dark\" ? theme.palette.secondary.main : theme.palette.background.default\n };\n z-index: 1;\n .sidebar-logo {\n display: none;\n }\n .sidebar-app-name {\n font-weight: bold;\n font-size: 1.125rem;\n color: ${theme.palette.primary.main};\n margin-left: ${isMobile && isOpen ? \"40px\" : \"0\"};\n transition: margin 0.2s;\n }\n @media (min-width: ${theme.breakpoints.values.md}px) {\n .sidebar-logo {\n display: block;\n margin-right: 8px;\n }\n .sidebar-app-name {\n margin-left: 0;\n }\n }\n @media (max-width: ${theme.breakpoints.values.md - 1}px) {\n .sidebar-logo {\n display: none;\n }\n }\n`\n);\n\nexport const SidebarMenuScrollArea = styled(\"div\")\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "import ListItemButton from \"@mui/material/ListItemButton\";", + "lineNumber": 2 + }, + { + "text": "import ListItemIcon from \"@mui/material/ListItemIcon\";", + "lineNumber": 3 + }, + { + "text": "import ListItemText from \"@mui/material/ListItemText\";", + "lineNumber": 4 + }, + { + "text": "import ListSubheader from \"@mui/material/ListSubheader\";", + "lineNumber": 5 + }, + { + "text": "import { styled } from \"@mui/material/styles\";", + "lineNumber": 6 + }, + { + "text": "import IconButton from \"@mui/material/IconButton\";", + "lineNumber": 7 + }, + { + "lineNumber": 8 + }, + { + "text": "export const SidebarTopContainer = styled(\"div\")<{", + "lineNumber": 9 + }, + { + "text": " isMobile?: boolean;", + "lineNumber": 10 + }, + { + "text": " isOpen?: boolean;", + "lineNumber": 11 + }, + { + "text": " isCollapsed?: boolean;", + "lineNumber": 12 + }, + { + "text": "}>(", + "lineNumber": 13 + }, + { + "text": " ({ theme, isMobile, isOpen, isCollapsed }) => `", + "lineNumber": 14 + }, + { + "text": " display: flex;", + "lineNumber": 15 + }, + { + "text": " align-items: center;", + "lineNumber": 16 + }, + { + "text": " height: 64px;", + "lineNumber": 17 + }, + { + "text": " min-height: 64px;", + "lineNumber": 18 + }, + { + "text": " max-height: 64px;", + "lineNumber": 19 + }, + { + "text": " padding-left: ${isCollapsed ? \"10px\" : \"16px\"};", + "lineNumber": 20 + }, + { + "text": " padding-right: ${isCollapsed ? \"8px\" : \"16px\"};", + "lineNumber": 21 + }, + { + "text": " width: 100%;", + "lineNumber": 22 + }, + { + "text": " border-bottom: 1px solid ${", + "lineNumber": 23 + }, + { + "text": " theme.palette.mode === \"dark\" ? theme.palette.secondary.light : theme.palette.divider", + "lineNumber": 24 + }, + { + "text": " };", + "lineNumber": 25 + }, + { + "text": " background: ${", + "lineNumber": 26 + }, + { + "text": " theme.palette.mode === \"dark\" ? theme.palette.secondary.main : theme.palette.background.default", + "lineNumber": 27 + }, + { + "text": " };", + "lineNumber": 28 + }, + { + "text": " z-index: 1;", + "lineNumber": 29 + }, + { + "text": " .sidebar-logo {", + "lineNumber": 30 + }, + { + "text": " display: none;", + "lineNumber": 31 + }, + { + "text": " }", + "lineNumber": 32 + }, + { + "text": " .sidebar-app-name {", + "lineNumber": 33 + }, + { + "text": " font-weight: bold;", + "lineNumber": 34 + }, + { + "text": " font-size: 1.125rem;", + "lineNumber": 35 + }, + { + "text": " color: ${theme.palette.primary.main};", + "lineNumber": 36 + }, + { + "text": " margin-left: ${isMobile && isOpen ? \"40px\" : \"0\"};", + "lineNumber": 37 + }, + { + "text": " transition: margin 0.2s;", + "lineNumber": 38 + }, + { + "text": " }", + "lineNumber": 39 + }, + { + "text": " @media (min-width: ${theme.breakpoints.values.md}px) {", + "lineNumber": 40 + }, + { + "text": " .sidebar-logo {", + "lineNumber": 41 + }, + { + "text": " display: block;", + "lineNumber": 42 + }, + { + "text": " margin-right: 8px;", + "lineNumber": 43 + }, + { + "text": " }", + "lineNumber": 44 + }, + { + "text": " .sidebar-app-name {", + "lineNumber": 45 + }, + { + "text": " margin-left: 0;", + "lineNumber": 46 + }, + { + "text": " }", + "lineNumber": 47 + }, + { + "text": " }", + "lineNumber": 48 + }, + { + "text": " @media (max-width: ${theme.breakpoints.values.md - 1}px) {", + "lineNumber": 49 + }, + { + "text": " .sidebar-logo {", + "lineNumber": 50 + }, + { + "text": " display: none;", + "lineNumber": 51 + }, + { + "text": " }", + "lineNumber": 52 + }, + { + "text": " }", + "lineNumber": 53 + }, + { + "text": "`", + "lineNumber": 54 + }, + { + "text": ");", + "lineNumber": 55 + }, + { + "lineNumber": 56 + }, + { + "text": "export const SidebarMenuScrollArea = styled(\"div\")", + "lineNumber": 57 + }, + { + "text": ";", + "lineNumber": 63 + } + ] + }, + "score": 0.3021754026412964 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 104, + "column": 2 + }, + "endPosition": { + "line": 165, + "column": 1 + } + }, + "contents": "export const ListSubheaderStyled = styled(ListSubheader, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})<{ isCollapsed?: boolean }>`\n font-size: ${({ theme }) => theme.typography.subtitle2.fontSize};\n color: ${({ theme }) => theme.typography.subtitle2.color};\n font-weight: ${({ theme }) => theme.typography.subtitle2.fontWeight};\n display: ${({ isCollapsed }) => (isCollapsed ? \"none\" : \"block\")};\n padding-left: 16px;\n padding-right: 0px;\n padding-bottom: 4px;\n min-height: 0;\n line-height: ${({ theme }) => theme.typography.subtitle2.lineHeight};\n`;\n\nexport const SidebarLink = styled(ListItemButton,\n\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const ListSubheaderStyled = styled(ListSubheader, {", + "lineNumber": 107 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 108 + }, + { + "text": "})<{ isCollapsed?: boolean }>`", + "lineNumber": 109 + }, + { + "text": " font-size: ${({ theme }) => theme.typography.subtitle2.fontSize};", + "lineNumber": 110 + }, + { + "text": " color: ${({ theme }) => theme.typography.subtitle2.color};", + "lineNumber": 111 + }, + { + "text": " font-weight: ${({ theme }) => theme.typography.subtitle2.fontWeight};", + "lineNumber": 112 + }, + { + "text": " display: ${({ isCollapsed }) => (isCollapsed ? \"none\" : \"block\")};", + "lineNumber": 113 + }, + { + "text": " padding-left: 16px;", + "lineNumber": 114 + }, + { + "text": " padding-right: 0px;", + "lineNumber": 115 + }, + { + "text": " padding-bottom: 4px;", + "lineNumber": 116 + }, + { + "text": " min-height: 0;", + "lineNumber": 117 + }, + { + "text": " line-height: ${({ theme }) => theme.typography.subtitle2.lineHeight};", + "lineNumber": 118 + }, + { + "text": "`;", + "lineNumber": 119 + }, + { + "lineNumber": 120 + }, + { + "text": "export const SidebarLink = styled(ListItemButton,", + "lineNumber": 121 + }, + { + "lineNumber": 123 + }, + { + "text": ";", + "lineNumber": 166 + } + ] + }, + "score": 0.2339414358139038 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 88, + "column": 2 + }, + "endPosition": { + "line": 118, + "column": 1 + } + }, + "contents": "export const MobileDrawerToggle = styled(IconButton)`\n position: fixed;\n top: ${({ theme }) => theme.spacing(2)};\n left: ${({ theme }) => theme.spacing(2)};\n z-index: 1201;\n background-color: ${({ theme }) => theme.palette.primary.main};\n color: white;\n &:hover {\n background-color: ${({ theme }) => theme.palette.primary.dark};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints.values.md}px) {\n display: none;\n }\n`;\n\nexport const ListSubheaderStyled = styled\n\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const MobileDrawerToggle = styled(IconButton)`", + "lineNumber": 91 + }, + { + "text": " position: fixed;", + "lineNumber": 92 + }, + { + "text": " top: ${({ theme }) => theme.spacing(2)};", + "lineNumber": 93 + }, + { + "text": " left: ${({ theme }) => theme.spacing(2)};", + "lineNumber": 94 + }, + { + "text": " z-index: 1201;", + "lineNumber": 95 + }, + { + "text": " background-color: ${({ theme }) => theme.palette.primary.main};", + "lineNumber": 96 + }, + { + "text": " color: white;", + "lineNumber": 97 + }, + { + "text": " &:hover {", + "lineNumber": 98 + }, + { + "text": " background-color: ${({ theme }) => theme.palette.primary.dark};", + "lineNumber": 99 + }, + { + "text": " }", + "lineNumber": 100 + }, + { + "lineNumber": 101 + }, + { + "text": " @media (min-width: ${({ theme }) => theme.breakpoints.values.md}px) {", + "lineNumber": 102 + }, + { + "text": " display: none;", + "lineNumber": 103 + }, + { + "text": " }", + "lineNumber": 104 + }, + { + "text": "`;", + "lineNumber": 105 + }, + { + "lineNumber": 106 + }, + { + "text": "export const ListSubheaderStyled = styled", + "lineNumber": 107 + }, + { + "lineNumber": 109 + }, + { + "text": ";", + "lineNumber": 119 + } + ] + }, + "score": 0.23051570355892181 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/components/side-bar/index.styled.tsx", + "range": { + "startPosition": { + "line": 54, + "column": 2 + }, + "endPosition": { + "line": 88, + "column": 1 + } + }, + "contents": "export const SidebarMenuScrollArea = styled(\"div\")`\n flex: 1 1 auto;\n overflow-y: auto;\n min-height: 0;\n display: flex;\n flex-direction: column;\n`;\n\nexport const SidebarStyled = styled(Drawer, {\n shouldForwardProp: (prop) => prop !== \"isCollapsed\",\n})\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const SidebarMenuScrollArea = styled(\"div\")`", + "lineNumber": 57 + }, + { + "text": " flex: 1 1 auto;", + "lineNumber": 58 + }, + { + "text": " overflow-y: auto;", + "lineNumber": 59 + }, + { + "text": " min-height: 0;", + "lineNumber": 60 + }, + { + "text": " display: flex;", + "lineNumber": 61 + }, + { + "text": " flex-direction: column;", + "lineNumber": 62 + }, + { + "text": "`;", + "lineNumber": 63 + }, + { + "lineNumber": 64 + }, + { + "text": "export const SidebarStyled = styled(Drawer, {", + "lineNumber": 65 + }, + { + "text": " shouldForwardProp: (prop) => prop !== \"isCollapsed\",", + "lineNumber": 66 + }, + { + "text": "})", + "lineNumber": 67 + }, + { + "text": ";", + "lineNumber": 89 + } + ] + }, + "score": 0.19036704301834106 + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + +
+Tool use: **ripgrep_raw_search** + + +Parameters: + +```json +{ + "pattern": "from.*react-router|Link|useNavigate|navigate", + "path": "src/components/side-bar/index.tsx", + "outputMode": "content", + "caseInsensitive": false +} +``` +Result: + +```json +{ + "success": { + "pattern": "from.*react-router|Link|useNavigate|navigate", + "path": "src/components/side-bar/index.tsx", + "outputMode": "content", + "workspaceResults": { + "/Users/vladislavseregin/projects/leadcms/leadcms.admin": { + "content": { + "matches": [ + { + "file": "src/components/side-bar/index.tsx", + "matches": [ + { + "lineNumber": 12, + "content": " SidebarLinkText," + }, + { + "lineNumber": 13, + "content": " SidebarLink," + }, + { + "lineNumber": 22, + "content": "import { useNavigate } from \"react-router-dom\";" + }, + { + "lineNumber": 40, + "content": " const navigate = useNavigate();" + }, + { + "lineNumber": 49, + "content": " const navigateToDashboard = useCallback(() => {" + }, + { + "lineNumber": 50, + "content": " navigate(getCoreModuleRoute(CoreModule.dashboard));" + }, + { + "lineNumber": 51, + "content": " }, [navigate]);" + }, + { + "lineNumber": 69, + "content": " onClick={navigateToDashboard}" + }, + { + "lineNumber": 125, + "content": " <SidebarLink" + }, + { + "lineNumber": 138, + "content": " menuItem.onClick(navigate);" + }, + { + "lineNumber": 148, + "content": " <SidebarLinkText" + }, + { + "lineNumber": 152, + "content": " </SidebarLink>" + } + ] + } + ], + "totalLines": 12, + "totalMatchedLines": 12 + } + } + } + } +} +``` +Status: **completed** + + +
+
+ +--- + + +Checking how menu items work and improving accessibility: + + +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/utils/build-menu-items.ts + +
+
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/ghost-link/index.ts + +
+
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
+ Tool use: **read_lints** • Read lints for 1 file + +Lint paths: + +- `src/components/side-bar/index.tsx` + +Lint results + +Lint errors for `src/components/side-bar/index.tsx` + + +| Message | Range | Severity | +|-------|-------|----------| +| Type '\{ children: Element[]; to: string; component: StyledComponent & MUIStyledCommonProps, \{}, \{}>; className: string; style: \{ ...; \}; "aria-label": string; \}' is not assignable to type 'IntrinsicAttributes & LinkProps & RefAttributes'.
Property 'component' does not exist on type 'IntrinsicAttributes & LinkProps & RefAttributes'. | 75:15-75:24 | DIAGNOSTIC_SEVERITY_ERROR | + + +
+
+ +--- + + +Fixing the Link usage and updating the component: + + +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/utils/build-menu-items.ts + +
+
+ +--- + + +Fixing the component prop issue and ensuring proper Link integration: + + +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/utils/menu-config.tsx + +
+
+ +--- + + +
+ Tool use: **read_lints** • Read lints for 1 file + +Lint paths: + +- `src/components/side-bar/index.tsx` + +Lint results + +Lint errors for `src/components/side-bar/index.tsx` + + +| Message | Range | Severity | +|-------|-------|----------| +| Type '\{ children: string; id: string; isCollapsed: boolean; component: string; \}' is not assignable to type 'IntrinsicAttributes & ListSubheaderOwnProps & CommonProps & Omit, HTMLLIElement>, "ref"> & \{ ...; \}, "className" \| ... 7 more ... \| "disableSticky"> & MUIStyledCommonProps<...> & \{ ...; \}'.
Property 'component' does not exist on type 'IntrinsicAttributes & ListSubheaderOwnProps & CommonProps & Omit, HTMLLIElement>, "ref"> & \{ ...; \}, "className" \| ... 7 more ... \| "disableSticky"> & MUIStyledCommonProps<...> & \{ ...; \}'. | 130:27-130:36 | DIAGNOSTIC_SEVERITY_ERROR | +| Type '\{ children: Element[]; component: StyledComponent & MUIStyledCommonProps, \{}, \{}>; ... 5 more ...; "aria-current": "page" \| undefined; \}' is not assignable to type 'IntrinsicAttributes & ListItemButtonOwnProps & Omit & CommonProps & Omit<...> & MUIStyledCommonProps<...> & \{ ...; \}'.
Property 'component' does not exist on type 'IntrinsicAttributes & ListItemButtonOwnProps & Omit & CommonProps & Omit<...> & MUIStyledCommonProps<...> & \{ ...; \}'. | 146:33-146:42 | DIAGNOSTIC_SEVERITY_ERROR | + + +
+
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+
+ +--- + + +Fixing TypeScript errors by properly typing the components: + + +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
+Tool use: **read_lints** + + +Parameters: + +```json +{ + "paths": [ + "src/components/side-bar/index.tsx" + ] +} +``` +Result: + +```json +{ + "linterErrorsByFile": [ + { + "relativeWorkspacePath": "src/components/side-bar/index.tsx" + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +Fixing icon accessibility by adding aria-hidden directly to the icon components: + + +--- + + +
+Tool use: **ripgrep_raw_search** + + +Parameters: + +```json +{ + "pattern": "lucide-react|from.*lucide", + "path": "src/utils/menu-config.tsx", + "outputMode": "content", + "caseInsensitive": false +} +``` +Result: + +```json +{ + "success": { + "pattern": "lucide-react|from.*lucide", + "path": "src/utils/menu-config.tsx", + "outputMode": "content", + "workspaceResults": { + "/Users/vladislavseregin/projects/leadcms/leadcms.admin": { + "content": { + "matches": [ + { + "file": "src/utils/menu-config.tsx", + "matches": [ + { + "lineNumber": 20, + "content": "} from \"lucide-react\";" + } + ] + } + ], + "totalLines": 1, + "totalMatchedLines": 1 + } + } + } + } +} +``` +Status: **completed** + + +
+
+ +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/utils/menu-config.tsx + +
+
+ +--- + + +
+Tool use: **semantic_search_full** + + +Parameters: + +```json +{ + "query": "How are lucide-react icons rendered in menu items? Are they JSX elements or components?", + "includePattern": "src/utils", + "topK": 10, + "explanation": "" +} +``` +Result: + +```json +{ + "codeResults": [ + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/menu-config.tsx", + "range": { + "startPosition": { + "column": 79 + }, + "endPosition": { + "line": 32, + "column": 1 + } + }, + "contents": "import {\n LayoutDashboard,\n FileText,\n MessageSquare,\n Image,\n Link,\n ShoppingCart,\n DollarSign,\n Users,\n Building2,\n Mail,\n BellOff,\n Globe,\n User,\n BookOpen,\n HelpCircle,\n Settings,\n ListChecks,\n} from \"lucide-react\";\n\nexport type MenuItem = {\n id: string;\n label: string;\n icon: React.ReactNode;\n entity?: string;\n route: string;\n};\n\ninterface SidebarMenuSection {\n header: string;\n items: MenuItem[];\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "import {", + "lineNumber": 2 + }, + { + "text": " LayoutDashboard,", + "lineNumber": 3 + }, + { + "text": " FileText,", + "lineNumber": 4 + }, + { + "text": " MessageSquare,", + "lineNumber": 5 + }, + { + "text": " Image,", + "lineNumber": 6 + }, + { + "text": " Link,", + "lineNumber": 7 + }, + { + "text": " ShoppingCart,", + "lineNumber": 8 + }, + { + "text": " DollarSign,", + "lineNumber": 9 + }, + { + "text": " Users,", + "lineNumber": 10 + }, + { + "text": " Building2,", + "lineNumber": 11 + }, + { + "text": " Mail,", + "lineNumber": 12 + }, + { + "text": " BellOff,", + "lineNumber": 13 + }, + { + "text": " Globe,", + "lineNumber": 14 + }, + { + "text": " User,", + "lineNumber": 15 + }, + { + "text": " BookOpen,", + "lineNumber": 16 + }, + { + "text": " HelpCircle,", + "lineNumber": 17 + }, + { + "text": " Settings,", + "lineNumber": 18 + }, + { + "text": " ListChecks,", + "lineNumber": 19 + }, + { + "text": "} from \"lucide-react\";", + "lineNumber": 20 + }, + { + "lineNumber": 21 + }, + { + "text": "export type MenuItem = {", + "lineNumber": 22, + "isSignature": true + }, + { + "text": " id: string;", + "lineNumber": 23 + }, + { + "text": " label: string;", + "lineNumber": 24 + }, + { + "text": " icon: React.ReactNode;", + "lineNumber": 25 + }, + { + "text": " entity?: string;", + "lineNumber": 26 + }, + { + "text": " route: string;", + "lineNumber": 27 + }, + { + "text": "};", + "lineNumber": 28, + "isSignature": true + }, + { + "lineNumber": 29 + }, + { + "text": "interface SidebarMenuSection {", + "lineNumber": 30, + "isSignature": true + }, + { + "text": " header: string;", + "lineNumber": 31 + }, + { + "text": " items: MenuItem[];", + "lineNumber": 32, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 33, + "isSignature": true + } + ] + }, + "score": 0.47075000405311584 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/build-menu-items.ts", + "range": { + "startPosition": { + "line": 6, + "column": 1 + }, + "endPosition": { + "line": 31, + "column": 1 + } + }, + "contents": "export function buildMenuItems(\n availableEntities: string[] | undefined,\n selectedModule?: string\n): SidebarMenuSection[] {\n const entitySet = new Set((availableEntities || []).map((e) => e.toLowerCase()));\n const dash = getDashboardAvailability(availableEntities);\n\n return MENU_CONFIG.map((section) => {\n const filteredItems = section.items\n .filter((item) => {\n // For dashboard, also ensure there's at least one tile to show.\n if (item.id === \"dashboard\") return dash.hasAny;\n if (!item.entity) return true;\n return entitySet.has(item.entity.toLowerCase());\n })\n .map((item) => ({\n ...item,\n onClick: (navigate: (to: string) => void) => navigate(item.route),\n isSelected: selectedModule === item.id,\n }));\n if (filteredItems.length === 0) return null;\n return { header: section.header, items: filteredItems };\n }).filter((section): section is SidebarMenuSection => section !== null);\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "export function buildMenuItems(", + "lineNumber": 9, + "isSignature": true + }, + { + "text": " availableEntities: string[] | undefined,", + "lineNumber": 10, + "isSignature": true + }, + { + "text": " selectedModule?: string", + "lineNumber": 11, + "isSignature": true + }, + { + "text": "): SidebarMenuSection[] {", + "lineNumber": 12, + "isSignature": true + }, + { + "text": " const entitySet = new Set((availableEntities || []).map((e) => e.toLowerCase()));", + "lineNumber": 13 + }, + { + "text": " const dash = getDashboardAvailability(availableEntities);", + "lineNumber": 14 + }, + { + "lineNumber": 15 + }, + { + "text": " return MENU_CONFIG.map((section) => {", + "lineNumber": 16 + }, + { + "text": " const filteredItems = section.items", + "lineNumber": 17 + }, + { + "text": " .filter((item) => {", + "lineNumber": 18 + }, + { + "text": " // For dashboard, also ensure there's at least one tile to show.", + "lineNumber": 19 + }, + { + "text": " if (item.id === \"dashboard\") return dash.hasAny;", + "lineNumber": 20 + }, + { + "text": " if (!item.entity) return true;", + "lineNumber": 21 + }, + { + "text": " return entitySet.has(item.entity.toLowerCase());", + "lineNumber": 22 + }, + { + "text": " })", + "lineNumber": 23 + }, + { + "text": " .map((item) => ({", + "lineNumber": 24 + }, + { + "text": " ...item,", + "lineNumber": 25 + }, + { + "text": " onClick: (navigate: (to: string) => void) => navigate(item.route),", + "lineNumber": 26 + }, + { + "text": " isSelected: selectedModule === item.id,", + "lineNumber": 27 + }, + { + "text": " }));", + "lineNumber": 28 + }, + { + "text": " if (filteredItems.length === 0) return null;", + "lineNumber": 29 + }, + { + "text": " return { header: section.header, items: filteredItems };", + "lineNumber": 30 + }, + { + "text": " }).filter((section): section is SidebarMenuSection => section !== null);", + "lineNumber": 31 + }, + { + "text": "}", + "lineNumber": 32, + "isSignature": true + } + ] + }, + "score": 0.3371922969818115 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/menu-config.tsx", + "range": { + "startPosition": { + "line": 32, + "column": 1 + }, + "endPosition": { + "line": 187, + "column": 1 + } + }, + "contents": "export const MENU_CONFIG: SidebarMenuSection[] = [\n {\n header: \"MAIN\",\n items: [\n {\n id: \"dashboard\",\n label: \"Dashboard\",\n icon: <LayoutDashboard size={20} />,\n route: getCoreModuleRoute(CoreModule.dashboard),\n },\n ],\n },\n {\n header: \"CMS\",\n items: [\n {\n id: \"content\",\n label: \"Content\",\n icon: <FileText size={20} />,\n entity: \"content\",\n route: getCoreModuleRoute(CoreModule.content),\n },\n {\n id: \"comments\",\n label: \"Comments\",\n icon: <MessageSquare size={20} />,\n entity: \"comment\",\n route: getCoreModuleRoute(CoreModule.comments),\n },\n {\n id: \"media\",\n label: \"Media\",\n icon: <Image size={20} />,\n entity: \"media\",\n route: getCoreModuleRoute(CoreModule.media),\n },\n {\n id: \"links\",\n label: \"Links\",\n icon: <Link size={20} />,\n entity: \"link\",\n route: getCoreModuleRoute(CoreModule.links),\n },\n ],\n },\n {\n header: \"CRM\",\n items: [\n {\n id: \"orders\",\n label: \"Orders\",\n icon: <ShoppingCart size={20} />,\n entity: \"order\",\n route: getCoreModuleRoute(CoreModule.orders),\n },\n {\n id: \"deals\",\n label: \"Deals\",\n icon: <DollarSign size={20} />,\n entity: \"deal\",\n route: getCoreModuleRoute(CoreModule.deals),\n },\n {\n id: \"contacts\",\n label: \"Contacts\",\n icon: <Users size={20} />,\n entity: \"contact\",\n route: getCoreModuleRoute(CoreModule.contacts),\n },\n {\n id: \"accounts\",\n label: \"Accounts\",\n icon: <Building2 size={20} />,\n entity: \"account\",\n route: getCoreModuleRoute(CoreModule.accounts),\n },\n ],\n },\n {\n header: \"MARKETING\",\n items: [\n,\n];", + "signatures": {}, + "detailedLines": [ + { + "text": "export const MENU_CONFIG: SidebarMenuSection[] = [", + "lineNumber": 35 + }, + { + "text": " {", + "lineNumber": 36 + }, + { + "text": " header: \"MAIN\",", + "lineNumber": 37 + }, + { + "text": " items: [", + "lineNumber": 38 + }, + { + "text": " {", + "lineNumber": 39 + }, + { + "text": " id: \"dashboard\",", + "lineNumber": 40 + }, + { + "text": " label: \"Dashboard\",", + "lineNumber": 41 + }, + { + "text": " icon: <LayoutDashboard size={20} />,", + "lineNumber": 42 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.dashboard),", + "lineNumber": 43 + }, + { + "text": " },", + "lineNumber": 44 + }, + { + "text": " ],", + "lineNumber": 45 + }, + { + "text": " },", + "lineNumber": 46 + }, + { + "text": " {", + "lineNumber": 47 + }, + { + "text": " header: \"CMS\",", + "lineNumber": 48 + }, + { + "text": " items: [", + "lineNumber": 49 + }, + { + "text": " {", + "lineNumber": 50 + }, + { + "text": " id: \"content\",", + "lineNumber": 51 + }, + { + "text": " label: \"Content\",", + "lineNumber": 52 + }, + { + "text": " icon: <FileText size={20} />,", + "lineNumber": 53 + }, + { + "text": " entity: \"content\",", + "lineNumber": 54 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.content),", + "lineNumber": 55 + }, + { + "text": " },", + "lineNumber": 56 + }, + { + "text": " {", + "lineNumber": 57 + }, + { + "text": " id: \"comments\",", + "lineNumber": 58 + }, + { + "text": " label: \"Comments\",", + "lineNumber": 59 + }, + { + "text": " icon: <MessageSquare size={20} />,", + "lineNumber": 60 + }, + { + "text": " entity: \"comment\",", + "lineNumber": 61 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.comments),", + "lineNumber": 62 + }, + { + "text": " },", + "lineNumber": 63 + }, + { + "text": " {", + "lineNumber": 64 + }, + { + "text": " id: \"media\",", + "lineNumber": 65 + }, + { + "text": " label: \"Media\",", + "lineNumber": 66 + }, + { + "text": " icon: <Image size={20} />,", + "lineNumber": 67 + }, + { + "text": " entity: \"media\",", + "lineNumber": 68 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.media),", + "lineNumber": 69 + }, + { + "text": " },", + "lineNumber": 70 + }, + { + "text": " {", + "lineNumber": 71 + }, + { + "text": " id: \"links\",", + "lineNumber": 72 + }, + { + "text": " label: \"Links\",", + "lineNumber": 73 + }, + { + "text": " icon: <Link size={20} />,", + "lineNumber": 74 + }, + { + "text": " entity: \"link\",", + "lineNumber": 75 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.links),", + "lineNumber": 76 + }, + { + "text": " },", + "lineNumber": 77 + }, + { + "text": " ],", + "lineNumber": 78 + }, + { + "text": " },", + "lineNumber": 79 + }, + { + "text": " {", + "lineNumber": 80 + }, + { + "text": " header: \"CRM\",", + "lineNumber": 81 + }, + { + "text": " items: [", + "lineNumber": 82 + }, + { + "text": " {", + "lineNumber": 83 + }, + { + "text": " id: \"orders\",", + "lineNumber": 84 + }, + { + "text": " label: \"Orders\",", + "lineNumber": 85 + }, + { + "text": " icon: <ShoppingCart size={20} />,", + "lineNumber": 86 + }, + { + "text": " entity: \"order\",", + "lineNumber": 87 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.orders),", + "lineNumber": 88 + }, + { + "text": " },", + "lineNumber": 89 + }, + { + "text": " {", + "lineNumber": 90 + }, + { + "text": " id: \"deals\",", + "lineNumber": 91 + }, + { + "text": " label: \"Deals\",", + "lineNumber": 92 + }, + { + "text": " icon: <DollarSign size={20} />,", + "lineNumber": 93 + }, + { + "text": " entity: \"deal\",", + "lineNumber": 94 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.deals),", + "lineNumber": 95 + }, + { + "text": " },", + "lineNumber": 96 + }, + { + "text": " {", + "lineNumber": 97 + }, + { + "text": " id: \"contacts\",", + "lineNumber": 98 + }, + { + "text": " label: \"Contacts\",", + "lineNumber": 99 + }, + { + "text": " icon: <Users size={20} />,", + "lineNumber": 100 + }, + { + "text": " entity: \"contact\",", + "lineNumber": 101 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.contacts),", + "lineNumber": 102 + }, + { + "text": " },", + "lineNumber": 103 + }, + { + "text": " {", + "lineNumber": 104 + }, + { + "text": " id: \"accounts\",", + "lineNumber": 105 + }, + { + "text": " label: \"Accounts\",", + "lineNumber": 106 + }, + { + "text": " icon: <Building2 size={20} />,", + "lineNumber": 107 + }, + { + "text": " entity: \"account\",", + "lineNumber": 108 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.accounts),", + "lineNumber": 109 + }, + { + "text": " },", + "lineNumber": 110 + }, + { + "text": " ],", + "lineNumber": 111 + }, + { + "text": " },", + "lineNumber": 112 + }, + { + "text": " {", + "lineNumber": 113 + }, + { + "text": " header: \"MARKETING\",", + "lineNumber": 114 + }, + { + "text": " items: [", + "lineNumber": 115 + }, + { + "text": ",", + "lineNumber": 187 + }, + { + "text": "];", + "lineNumber": 188 + } + ] + }, + "score": 0.3295704126358032 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/menu-config.tsx", + "range": { + "startPosition": { + "line": 34 + }, + "endPosition": { + "line": 187, + "column": 2 + } + }, + "contents": "export const MENU_CONFIG: SidebarMenuSection[] = [\n\n {\n header: \"MARKETING\",\n items: [\n {\n id: \"segments\",\n label: \"Segments\",\n icon: <Users size={20} />,\n entity: \"segment\",\n route: getCoreModuleRoute(CoreModule.segments),\n },\n {\n id: \"emailTemplates\",\n label: \"Email templates\",\n icon: <Mail size={20} />,\n entity: \"emailtemplate\",\n route: getCoreModuleRoute(CoreModule.emailTemplates),\n },\n {\n id: \"unsubscribes\",\n label: \"Unsubscribes\",\n icon: <BellOff size={20} />,\n entity: \"unsubscribe\",\n route: getCoreModuleRoute(CoreModule.unsubscribes),\n },\n {\n id: \"domains\",\n label: \"Domains\",\n icon: <Globe size={20} />,\n entity: \"domain\",\n route: getCoreModuleRoute(CoreModule.domains),\n },\n ],\n },\n {\n header: \"OPERATIONS\",\n items: [\n {\n id: \"tasks\",\n label: \"Tasks\",\n icon: <ListChecks size={20} />,\n route: getCoreModuleRoute(CoreModule.tasks),\n },\n ],\n },\n {\n header: \"GENERAL\",\n items: [\n {\n id: \"settings\",\n label: \"Settings\",\n icon: <Settings size={20} />,\n route: getCoreModuleRoute(CoreModule.settings),\n },\n {\n id: \"users\",\n label: \"Users\",\n icon: <User size={20} />,\n entity: \"user\",\n route: getCoreModuleRoute(CoreModule.users),\n },\n {\n id: \"activityLogs\",\n label: \"Activity logs\",\n icon: <BookOpen size={20} />,\n entity: \"activity-log\",\n route: getCoreModuleRoute(CoreModule.activityLogs),\n },\n {\n id: \"about\",\n label: \"About\",\n icon: <HelpCircle size={20} />,\n route: getCoreModuleRoute(CoreModule.about),\n },\n ],\n },\n];", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 35, + "column": 1 + }, + "endPosition": { + "line": 35, + "column": 8 + } + }, + { + "startPosition": { + "line": 35, + "column": 8 + }, + "endPosition": { + "line": 35, + "column": 14 + } + }, + { + "startPosition": { + "line": 35, + "column": 14 + }, + "endPosition": { + "line": 36, + "column": 3 + } + } + ] + }, + "detailedLines": [ + { + "text": "export const MENU_CONFIG: SidebarMenuSection[] = [", + "lineNumber": 35 + }, + { + "lineNumber": 112 + }, + { + "text": " {", + "lineNumber": 113 + }, + { + "text": " header: \"MARKETING\",", + "lineNumber": 114 + }, + { + "text": " items: [", + "lineNumber": 115 + }, + { + "text": " {", + "lineNumber": 116 + }, + { + "text": " id: \"segments\",", + "lineNumber": 117 + }, + { + "text": " label: \"Segments\",", + "lineNumber": 118 + }, + { + "text": " icon: <Users size={20} />,", + "lineNumber": 119 + }, + { + "text": " entity: \"segment\",", + "lineNumber": 120 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.segments),", + "lineNumber": 121 + }, + { + "text": " },", + "lineNumber": 122 + }, + { + "text": " {", + "lineNumber": 123 + }, + { + "text": " id: \"emailTemplates\",", + "lineNumber": 124 + }, + { + "text": " label: \"Email templates\",", + "lineNumber": 125 + }, + { + "text": " icon: <Mail size={20} />,", + "lineNumber": 126 + }, + { + "text": " entity: \"emailtemplate\",", + "lineNumber": 127 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.emailTemplates),", + "lineNumber": 128 + }, + { + "text": " },", + "lineNumber": 129 + }, + { + "text": " {", + "lineNumber": 130 + }, + { + "text": " id: \"unsubscribes\",", + "lineNumber": 131 + }, + { + "text": " label: \"Unsubscribes\",", + "lineNumber": 132 + }, + { + "text": " icon: <BellOff size={20} />,", + "lineNumber": 133 + }, + { + "text": " entity: \"unsubscribe\",", + "lineNumber": 134 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.unsubscribes),", + "lineNumber": 135 + }, + { + "text": " },", + "lineNumber": 136 + }, + { + "text": " {", + "lineNumber": 137 + }, + { + "text": " id: \"domains\",", + "lineNumber": 138 + }, + { + "text": " label: \"Domains\",", + "lineNumber": 139 + }, + { + "text": " icon: <Globe size={20} />,", + "lineNumber": 140 + }, + { + "text": " entity: \"domain\",", + "lineNumber": 141 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.domains),", + "lineNumber": 142 + }, + { + "text": " },", + "lineNumber": 143 + }, + { + "text": " ],", + "lineNumber": 144 + }, + { + "text": " },", + "lineNumber": 145 + }, + { + "text": " {", + "lineNumber": 146 + }, + { + "text": " header: \"OPERATIONS\",", + "lineNumber": 147 + }, + { + "text": " items: [", + "lineNumber": 148 + }, + { + "text": " {", + "lineNumber": 149 + }, + { + "text": " id: \"tasks\",", + "lineNumber": 150 + }, + { + "text": " label: \"Tasks\",", + "lineNumber": 151 + }, + { + "text": " icon: <ListChecks size={20} />,", + "lineNumber": 152 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.tasks),", + "lineNumber": 153 + }, + { + "text": " },", + "lineNumber": 154 + }, + { + "text": " ],", + "lineNumber": 155 + }, + { + "text": " },", + "lineNumber": 156 + }, + { + "text": " {", + "lineNumber": 157 + }, + { + "text": " header: \"GENERAL\",", + "lineNumber": 158 + }, + { + "text": " items: [", + "lineNumber": 159 + }, + { + "text": " {", + "lineNumber": 160 + }, + { + "text": " id: \"settings\",", + "lineNumber": 161 + }, + { + "text": " label: \"Settings\",", + "lineNumber": 162 + }, + { + "text": " icon: <Settings size={20} />,", + "lineNumber": 163 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.settings),", + "lineNumber": 164 + }, + { + "text": " },", + "lineNumber": 165 + }, + { + "text": " {", + "lineNumber": 166 + }, + { + "text": " id: \"users\",", + "lineNumber": 167 + }, + { + "text": " label: \"Users\",", + "lineNumber": 168 + }, + { + "text": " icon: <User size={20} />,", + "lineNumber": 169 + }, + { + "text": " entity: \"user\",", + "lineNumber": 170 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.users),", + "lineNumber": 171 + }, + { + "text": " },", + "lineNumber": 172 + }, + { + "text": " {", + "lineNumber": 173 + }, + { + "text": " id: \"activityLogs\",", + "lineNumber": 174 + }, + { + "text": " label: \"Activity logs\",", + "lineNumber": 175 + }, + { + "text": " icon: <BookOpen size={20} />,", + "lineNumber": 176 + }, + { + "text": " entity: \"activity-log\",", + "lineNumber": 177 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.activityLogs),", + "lineNumber": 178 + }, + { + "text": " },", + "lineNumber": 179 + }, + { + "text": " {", + "lineNumber": 180 + }, + { + "text": " id: \"about\",", + "lineNumber": 181 + }, + { + "text": " label: \"About\",", + "lineNumber": 182 + }, + { + "text": " icon: <HelpCircle size={20} />,", + "lineNumber": 183 + }, + { + "text": " route: getCoreModuleRoute(CoreModule.about),", + "lineNumber": 184 + }, + { + "text": " },", + "lineNumber": 185 + }, + { + "text": " ],", + "lineNumber": 186 + }, + { + "text": " },", + "lineNumber": 187 + }, + { + "text": "];", + "lineNumber": 188 + } + ] + }, + "score": 0.2952955961227417 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/build-menu-items.ts", + "range": { + "startPosition": { + "column": 54 + }, + "endPosition": { + "line": 31, + "column": 1 + } + }, + "contents": "import { getDashboardAvailability } from \"@features/dashboard/availability\";\n\nexport interface SidebarMenuSection {\n header: string;\n items: (MenuItem & { onClick: (navigate: (to: string) => void) => void; isSelected: boolean })[];\n}\n\nexport function buildMenuItems(\n availableEntities: string[] | undefined,\n selectedModule?: string\n): SidebarMenuSection[] {\n \n}", + "signatures": {}, + "detailedLines": [ + { + "text": "import { getDashboardAvailability } from \"@features/dashboard/availability\";", + "lineNumber": 2 + }, + { + "lineNumber": 3 + }, + { + "text": "export interface SidebarMenuSection {", + "lineNumber": 4, + "isSignature": true + }, + { + "text": " header: string;", + "lineNumber": 5 + }, + { + "text": " items: (MenuItem & { onClick: (navigate: (to: string) => void) => void; isSelected: boolean })[];", + "lineNumber": 6, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 7, + "isSignature": true + }, + { + "lineNumber": 8 + }, + { + "text": "export function buildMenuItems(", + "lineNumber": 9, + "isSignature": true + }, + { + "text": " availableEntities: string[] | undefined,", + "lineNumber": 10, + "isSignature": true + }, + { + "text": " selectedModule?: string", + "lineNumber": 11, + "isSignature": true + }, + { + "text": "): SidebarMenuSection[] {", + "lineNumber": 12, + "isSignature": true + }, + { + "text": " ", + "lineNumber": 13 + }, + { + "text": "}", + "lineNumber": 32, + "isSignature": true + } + ] + }, + "score": 0.2554018497467041 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/menu-config.tsx", + "range": { + "startPosition": { + "line": 27, + "column": 2 + }, + "endPosition": { + "line": 187, + "column": 1 + } + }, + "contents": "interface SidebarMenuSection {\n header: string;\n items: MenuItem[];\n}\n\nexport const MENU_CONFIG: SidebarMenuSection[] = [\n {\n header: \"MAIN\",\n,\n];", + "signatures": {}, + "detailedLines": [ + { + "text": "interface SidebarMenuSection {", + "lineNumber": 30, + "isSignature": true + }, + { + "text": " header: string;", + "lineNumber": 31 + }, + { + "text": " items: MenuItem[];", + "lineNumber": 32, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 33, + "isSignature": true + }, + { + "lineNumber": 34 + }, + { + "text": "export const MENU_CONFIG: SidebarMenuSection[] = [", + "lineNumber": 35 + }, + { + "text": " {", + "lineNumber": 36 + }, + { + "text": " header: \"MAIN\",", + "lineNumber": 37 + }, + { + "text": ",", + "lineNumber": 187 + }, + { + "text": "];", + "lineNumber": 188 + } + ] + }, + "score": 0.19350844621658325 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/frontmatter-validator.ts", + "range": { + "startPosition": { + "column": 58 + }, + "endPosition": { + "line": 22, + "column": 39 + } + }, + "contents": "import zod from \"zod\";\n\nconst FrontmatterSideMenu = zod.object({\n name: zod.string(),\n link: zod.string(),\n});\n\nconst FrontmatterValidationScheme = zod.object({\n seoTitle: zod.string().optional(),\n seoKeywords: zod.string().optional(),\n seoDescription: zod.string().optional(),\n avatar: zod.string().optional(),\n sidemenu: FrontmatterSideMenu.array().optional(),\n sourceHref: zod.string().url().optional(),\n});\n\nexport interface ValidateFrontmatterError {\n errorMessage: string;\n errorLine: number;\n}\n\ntype ErrorInfo = { _errors: string[] };", + "signatures": {}, + "detailedLines": [ + { + "text": "import zod from \"zod\";", + "lineNumber": 2 + }, + { + "lineNumber": 3 + }, + { + "text": "const FrontmatterSideMenu = zod.object({", + "lineNumber": 4 + }, + { + "text": " name: zod.string(),", + "lineNumber": 5 + }, + { + "text": " link: zod.string(),", + "lineNumber": 6 + }, + { + "text": "});", + "lineNumber": 7 + }, + { + "lineNumber": 8 + }, + { + "text": "const FrontmatterValidationScheme = zod.object({", + "lineNumber": 9 + }, + { + "text": " seoTitle: zod.string().optional(),", + "lineNumber": 10 + }, + { + "text": " seoKeywords: zod.string().optional(),", + "lineNumber": 11 + }, + { + "text": " seoDescription: zod.string().optional(),", + "lineNumber": 12 + }, + { + "text": " avatar: zod.string().optional(),", + "lineNumber": 13 + }, + { + "text": " sidemenu: FrontmatterSideMenu.array().optional(),", + "lineNumber": 14 + }, + { + "text": " sourceHref: zod.string().url().optional(),", + "lineNumber": 15 + }, + { + "text": "});", + "lineNumber": 16 + }, + { + "lineNumber": 17 + }, + { + "text": "export interface ValidateFrontmatterError {", + "lineNumber": 18, + "isSignature": true + }, + { + "text": " errorMessage: string;", + "lineNumber": 19 + }, + { + "text": " errorLine: number;", + "lineNumber": 20, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 21, + "isSignature": true + }, + { + "lineNumber": 22 + }, + { + "text": "type ErrorInfo = { _errors: string[] };", + "lineNumber": 23, + "isSignature": true + } + ] + }, + "score": 0.181331604719162 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "line": 304, + "column": 2 + }, + "endPosition": { + "line": 405, + "column": 1 + } + }, + "contents": "/**\n * Basic JSX tag validation for MDX content\n */\nfunction validateJsxTags(content: string): SyntaxValidationResult {\n const lines = content.split(\"\\n\");\n const tagStack: Array<{ tag: string; line: number }> = [];\n\n // Regex to match JSX tags (both opening and closing)\n const jsxTagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*)\\s*[^>]*>/g;\n const selfClosingRegex = /<[a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*\\s*[^>]*\\/>/g;\n\n for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {\n const line = lines[lineIndex];\n const lineNumber = lineIndex + 1;\n\n // Skip code blocks and inline code\n if (line.trim().startsWith(\"```\") || line.includes(\"`\")) {\n continue;\n }\n\n let match;\n jsxTagRegex.lastIndex = 0; // Reset regex state\n\n while ((match = jsxTagRegex.exec(line)) !== null) {\n const fullTag = match[0];\n const tagName = match[1];\n\n // Skip self-closing tags\n if (selfClosingRegex.test(fullTag)) {\n continue;\n }\n\n // Skip HTML void elements\n const voidElements = [\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n ];\n if (voidElements.includes(tagName.toLowerCase())) {\n continue;\n }\n\n if (fullTag.startsWith(\"</\")) {\n // Closing tag\n if\n }\n }\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 307 + }, + { + "text": " * Basic JSX tag validation for MDX content", + "lineNumber": 308 + }, + { + "text": " */", + "lineNumber": 309 + }, + { + "text": "function validateJsxTags(content: string): SyntaxValidationResult {", + "lineNumber": 310, + "isSignature": true + }, + { + "text": " const lines = content.split(\"\\n\");", + "lineNumber": 311 + }, + { + "text": " const tagStack: Array<{ tag: string; line: number }> = [];", + "lineNumber": 312 + }, + { + "lineNumber": 313 + }, + { + "text": " // Regex to match JSX tags (both opening and closing)", + "lineNumber": 314 + }, + { + "text": " const jsxTagRegex = /<\\/?([a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*)\\s*[^>]*>/g;", + "lineNumber": 315 + }, + { + "text": " const selfClosingRegex = /<[a-zA-Z][a-zA-Z0-9]*(?:\\.[a-zA-Z][a-zA-Z0-9]*)*\\s*[^>]*\\/>/g;", + "lineNumber": 316 + }, + { + "lineNumber": 317 + }, + { + "text": " for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {", + "lineNumber": 318 + }, + { + "text": " const line = lines[lineIndex];", + "lineNumber": 319 + }, + { + "text": " const lineNumber = lineIndex + 1;", + "lineNumber": 320 + }, + { + "lineNumber": 321 + }, + { + "text": " // Skip code blocks and inline code", + "lineNumber": 322 + }, + { + "text": " if (line.trim().startsWith(\"```\") || line.includes(\"`\")) {", + "lineNumber": 323 + }, + { + "text": " continue;", + "lineNumber": 324 + }, + { + "text": " }", + "lineNumber": 325 + }, + { + "lineNumber": 326 + }, + { + "text": " let match;", + "lineNumber": 327 + }, + { + "text": " jsxTagRegex.lastIndex = 0; // Reset regex state", + "lineNumber": 328 + }, + { + "lineNumber": 329 + }, + { + "text": " while ((match = jsxTagRegex.exec(line)) !== null) {", + "lineNumber": 330 + }, + { + "text": " const fullTag = match[0];", + "lineNumber": 331 + }, + { + "text": " const tagName = match[1];", + "lineNumber": 332 + }, + { + "lineNumber": 333 + }, + { + "text": " // Skip self-closing tags", + "lineNumber": 334 + }, + { + "text": " if (selfClosingRegex.test(fullTag)) {", + "lineNumber": 335 + }, + { + "text": " continue;", + "lineNumber": 336 + }, + { + "text": " }", + "lineNumber": 337 + }, + { + "lineNumber": 338 + }, + { + "text": " // Skip HTML void elements", + "lineNumber": 339 + }, + { + "text": " const voidElements = [", + "lineNumber": 340 + }, + { + "text": " \"area\",", + "lineNumber": 341 + }, + { + "text": " \"base\",", + "lineNumber": 342 + }, + { + "text": " \"br\",", + "lineNumber": 343 + }, + { + "text": " \"col\",", + "lineNumber": 344 + }, + { + "text": " \"embed\",", + "lineNumber": 345 + }, + { + "text": " \"hr\",", + "lineNumber": 346 + }, + { + "text": " \"img\",", + "lineNumber": 347 + }, + { + "text": " \"input\",", + "lineNumber": 348 + }, + { + "text": " \"meta\",", + "lineNumber": 349 + }, + { + "text": " \"param\",", + "lineNumber": 350 + }, + { + "text": " \"source\",", + "lineNumber": 351 + }, + { + "text": " \"track\",", + "lineNumber": 352 + }, + { + "text": " \"wbr\",", + "lineNumber": 353 + }, + { + "text": " ];", + "lineNumber": 354 + }, + { + "text": " if (voidElements.includes(tagName.toLowerCase())) {", + "lineNumber": 355 + }, + { + "text": " continue;", + "lineNumber": 356 + }, + { + "text": " }", + "lineNumber": 357 + }, + { + "lineNumber": 358 + }, + { + "text": " if (fullTag.startsWith(\"</\")) {", + "lineNumber": 359 + }, + { + "text": " // Closing tag", + "lineNumber": 360 + }, + { + "text": " if", + "lineNumber": 361 + }, + { + "text": " }", + "lineNumber": 389 + }, + { + "text": " }", + "lineNumber": 390 + }, + { + "text": "}", + "lineNumber": 406, + "isSignature": true + } + ] + }, + "score": 0.13544489443302155 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "line": 176, + "column": 2 + }, + "endPosition": { + "line": 254, + "column": 3 + } + }, + "contents": "/**\n * Validates MDX syntax using the official MDX compiler\n * This provides comprehensive validation including:\n * - Frontmatter block structure and YAML syntax\n * - JSX component syntax with proper nesting\n * - MDX-specific syntax and expressions\n * - Import/export statements\n * - JavaScript expressions in {expression} syntax\n */\nexport const validateMdxSyntax = async (content: string): Promise<SyntaxValidationResult> => {\n if (!content.trim()) {\n return { isValid: true };\n }\n\n // First, validate frontmatter structure and YAML syntax\n const frontmatterResult = validateFrontmatter(content);\n if (!frontmatterResult.isValid) {\n return frontmatterResult;\n }\n\n // Then validate the MDX content using the official compiler\n try {\n await compile(content, {\n development: true, // Better error messages in development\n outputFormat: \"function-body\",\n // Allow any JSX components without imports for validation\n jsx: false,\n });\n\n return { isValid: true };\n } catch (error: unknown) {\n // Extract error information from the compile error\n let message = \"MDX compilation failed\";\n let line: number | undefined;\n let column: number | undefined;\n\n if (error && typeof error === \"object\" && \"message\" in error) {\n const errorObj = error as { message?: string; line?: number; column?: number };\n if (errorObj.message) {\n message = errorObj.message;\n\n // Try to extract line/column information from error message\n const lineMatch = message.match(/:(\\d+):(\\d+)/);\n if (lineMatch) {\n line = parseInt(lineMatch[1], 10);\n column = parseInt(lineMatch[2], 10);\n }\n }\n\n // Handle VFile errors (common in MDX compilation)\n if (errorObj.line !== undefined) {\n line = errorObj.line;\n }\n if (errorObj.column !== undefined) {\n column = errorObj.column;\n }\n }\n\n return {\n isValid: false,\n error: {\n message,\n line,\n column,\n type: \"mdx\",\n },\n };\n }\n};\n\n/**\n * Basic MDX syntax validation (fallback)\n * This is the current implementation that checks for:\n * - Unmatched JSX tags\n * - Invalid JSX syntax\n * - Frontmatter YAML syntax (if present)\n */", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 179 + }, + { + "text": " * Validates MDX syntax using the official MDX compiler", + "lineNumber": 180 + }, + { + "text": " * This provides comprehensive validation including:", + "lineNumber": 181 + }, + { + "text": " * - Frontmatter block structure and YAML syntax", + "lineNumber": 182 + }, + { + "text": " * - JSX component syntax with proper nesting", + "lineNumber": 183 + }, + { + "text": " * - MDX-specific syntax and expressions", + "lineNumber": 184 + }, + { + "text": " * - Import/export statements", + "lineNumber": 185 + }, + { + "text": " * - JavaScript expressions in {expression} syntax", + "lineNumber": 186 + }, + { + "text": " */", + "lineNumber": 187 + }, + { + "text": "export const validateMdxSyntax = async (content: string): Promise<SyntaxValidationResult> => {", + "lineNumber": 188 + }, + { + "text": " if (!content.trim()) {", + "lineNumber": 189 + }, + { + "text": " return { isValid: true };", + "lineNumber": 190 + }, + { + "text": " }", + "lineNumber": 191 + }, + { + "lineNumber": 192 + }, + { + "text": " // First, validate frontmatter structure and YAML syntax", + "lineNumber": 193 + }, + { + "text": " const frontmatterResult = validateFrontmatter(content);", + "lineNumber": 194 + }, + { + "text": " if (!frontmatterResult.isValid) {", + "lineNumber": 195 + }, + { + "text": " return frontmatterResult;", + "lineNumber": 196 + }, + { + "text": " }", + "lineNumber": 197 + }, + { + "lineNumber": 198 + }, + { + "text": " // Then validate the MDX content using the official compiler", + "lineNumber": 199 + }, + { + "text": " try {", + "lineNumber": 200 + }, + { + "text": " await compile(content, {", + "lineNumber": 201 + }, + { + "text": " development: true, // Better error messages in development", + "lineNumber": 202 + }, + { + "text": " outputFormat: \"function-body\",", + "lineNumber": 203 + }, + { + "text": " // Allow any JSX components without imports for validation", + "lineNumber": 204 + }, + { + "text": " jsx: false,", + "lineNumber": 205 + }, + { + "text": " });", + "lineNumber": 206 + }, + { + "lineNumber": 207 + }, + { + "text": " return { isValid: true };", + "lineNumber": 208 + }, + { + "text": " } catch (error: unknown) {", + "lineNumber": 209 + }, + { + "text": " // Extract error information from the compile error", + "lineNumber": 210 + }, + { + "text": " let message = \"MDX compilation failed\";", + "lineNumber": 211 + }, + { + "text": " let line: number | undefined;", + "lineNumber": 212 + }, + { + "text": " let column: number | undefined;", + "lineNumber": 213 + }, + { + "lineNumber": 214 + }, + { + "text": " if (error && typeof error === \"object\" && \"message\" in error) {", + "lineNumber": 215 + }, + { + "text": " const errorObj = error as { message?: string; line?: number; column?: number };", + "lineNumber": 216 + }, + { + "text": " if (errorObj.message) {", + "lineNumber": 217 + }, + { + "text": " message = errorObj.message;", + "lineNumber": 218 + }, + { + "lineNumber": 219 + }, + { + "text": " // Try to extract line/column information from error message", + "lineNumber": 220 + }, + { + "text": " const lineMatch = message.match(/:(\\d+):(\\d+)/);", + "lineNumber": 221 + }, + { + "text": " if (lineMatch) {", + "lineNumber": 222 + }, + { + "text": " line = parseInt(lineMatch[1], 10);", + "lineNumber": 223 + }, + { + "text": " column = parseInt(lineMatch[2], 10);", + "lineNumber": 224 + }, + { + "text": " }", + "lineNumber": 225 + }, + { + "text": " }", + "lineNumber": 226 + }, + { + "lineNumber": 227 + }, + { + "text": " // Handle VFile errors (common in MDX compilation)", + "lineNumber": 228 + }, + { + "text": " if (errorObj.line !== undefined) {", + "lineNumber": 229 + }, + { + "text": " line = errorObj.line;", + "lineNumber": 230 + }, + { + "text": " }", + "lineNumber": 231 + }, + { + "text": " if (errorObj.column !== undefined) {", + "lineNumber": 232 + }, + { + "text": " column = errorObj.column;", + "lineNumber": 233 + }, + { + "text": " }", + "lineNumber": 234 + }, + { + "text": " }", + "lineNumber": 235 + }, + { + "lineNumber": 236 + }, + { + "text": " return {", + "lineNumber": 237 + }, + { + "text": " isValid: false,", + "lineNumber": 238 + }, + { + "text": " error: {", + "lineNumber": 239 + }, + { + "text": " message,", + "lineNumber": 240 + }, + { + "text": " line,", + "lineNumber": 241 + }, + { + "text": " column,", + "lineNumber": 242 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 243 + }, + { + "text": " },", + "lineNumber": 244 + }, + { + "text": " };", + "lineNumber": 245 + }, + { + "text": " }", + "lineNumber": 246 + }, + { + "text": "};", + "lineNumber": 247 + }, + { + "lineNumber": 248 + }, + { + "text": "/**", + "lineNumber": 249 + }, + { + "text": " * Basic MDX syntax validation (fallback)", + "lineNumber": 250 + }, + { + "text": " * This is the current implementation that checks for:", + "lineNumber": 251 + }, + { + "text": " * - Unmatched JSX tags", + "lineNumber": 252 + }, + { + "text": " * - Invalid JSX syntax", + "lineNumber": 253 + }, + { + "text": " * - Frontmatter YAML syntax (if present)", + "lineNumber": 254 + }, + { + "text": " */", + "lineNumber": 255 + } + ] + }, + "score": 0.0912977010011673 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/constants.ts", + "range": { + "startPosition": {}, + "endPosition": { + "line": 7, + "column": 51 + } + }, + "contents": "import { rootRoute } from \"lib/router\";\nimport { BreadcrumbLink } from \"types\";\n\nexport const dataListBreadcrumbLinks: BreadcrumbLink[] = [\n { linkText: \"Dashboard\", toRoute: rootRoute },\n];\n\nexport const countryListStorageKey = \"countryList\";", + "signatures": {}, + "detailedLines": [ + { + "text": "import { rootRoute } from \"lib/router\";", + "lineNumber": 1 + }, + { + "text": "import { BreadcrumbLink } from \"types\";", + "lineNumber": 2 + }, + { + "lineNumber": 3 + }, + { + "text": "export const dataListBreadcrumbLinks: BreadcrumbLink[] = [", + "lineNumber": 4 + }, + { + "text": " { linkText: \"Dashboard\", toRoute: rootRoute },", + "lineNumber": 5 + }, + { + "text": "];", + "lineNumber": 6 + }, + { + "lineNumber": 7 + }, + { + "text": "export const countryListStorageKey = \"countryList\";", + "lineNumber": 8 + } + ] + }, + "score": 0.09080620110034943 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/preview-helper.ts", + "range": { + "startPosition": {}, + "endPosition": { + "line": 32, + "column": 1 + } + }, + "contents": "export const generateSitePreviewUrl = (\n template: string,\n params: Record<string, unknown>,\n defaultLanguage?: string\n): string => {\n let url = template;\n\n // Create enhanced params with calculated fields\n const enhancedParams = { ...params };\n\n // Calculate lang+slug parameter\n if (params.language && params.slug) {\n const lang = calculateLangPrefix(String(params.language), defaultLanguage);\n enhancedParams[\"lang+slug\"] = `${lang}${params.slug}`;\n }\n\n Object.keys(enhancedParams).forEach((key) => {\n // Escape special regex characters in the key\n const escapedKey = key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n url = url.replace(\n new RegExp(`\\\\{${escapedKey}\\\\}`, \"g\"),\n enhancedParams[key] !== undefined ? String(enhancedParams[key]) : \"\"\n );\n });\n return url;\n};\n\nexport const calculateLangPrefix = (contentLanguage: string, defaultLanguage?: string)\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const generateSitePreviewUrl = (", + "lineNumber": 1 + }, + { + "text": " template: string,", + "lineNumber": 2 + }, + { + "text": " params: Record<string, unknown>,", + "lineNumber": 3 + }, + { + "text": " defaultLanguage?: string", + "lineNumber": 4 + }, + { + "text": "): string => {", + "lineNumber": 5 + }, + { + "text": " let url = template;", + "lineNumber": 6 + }, + { + "lineNumber": 7 + }, + { + "text": " // Create enhanced params with calculated fields", + "lineNumber": 8 + }, + { + "text": " const enhancedParams = { ...params };", + "lineNumber": 9 + }, + { + "lineNumber": 10 + }, + { + "text": " // Calculate lang+slug parameter", + "lineNumber": 11 + }, + { + "text": " if (params.language && params.slug) {", + "lineNumber": 12 + }, + { + "text": " const lang = calculateLangPrefix(String(params.language), defaultLanguage);", + "lineNumber": 13 + }, + { + "text": " enhancedParams[\"lang+slug\"] = `${lang}${params.slug}`;", + "lineNumber": 14 + }, + { + "text": " }", + "lineNumber": 15 + }, + { + "lineNumber": 16 + }, + { + "text": " Object.keys(enhancedParams).forEach((key) => {", + "lineNumber": 17 + }, + { + "text": " // Escape special regex characters in the key", + "lineNumber": 18 + }, + { + "text": " const escapedKey = key.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");", + "lineNumber": 19 + }, + { + "text": " url = url.replace(", + "lineNumber": 20 + }, + { + "text": " new RegExp(`\\\\{${escapedKey}\\\\}`, \"g\"),", + "lineNumber": 21 + }, + { + "text": " enhancedParams[key] !== undefined ? String(enhancedParams[key]) : \"\"", + "lineNumber": 22 + }, + { + "text": " );", + "lineNumber": 23 + }, + { + "text": " });", + "lineNumber": 24 + }, + { + "text": " return url;", + "lineNumber": 25 + }, + { + "text": "};", + "lineNumber": 26 + }, + { + "lineNumber": 27 + }, + { + "text": "export const calculateLangPrefix = (contentLanguage: string, defaultLanguage?: string)", + "lineNumber": 28 + }, + { + "text": ";", + "lineNumber": 33 + } + ] + }, + "score": 0.09064269810914993 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/general-helper.ts", + "range": { + "startPosition": { + "line": 127, + "column": 2 + }, + "endPosition": { + "line": 138, + "column": 1 + } + }, + "contents": "export function getModuleNameFromUrl(): string {\n if (typeof window === \"undefined\") return \"\";\n const path = window.location.pathname;\n const moduleRaw = path.split(\"/\")[1] || \"\";\n return moduleRaw\n .split(\"-\")\n .filter(Boolean)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(\" \");\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "export function getModuleNameFromUrl(): string {", + "lineNumber": 130, + "isSignature": true + }, + { + "text": " if (typeof window === \"undefined\") return \"\";", + "lineNumber": 131 + }, + { + "text": " const path = window.location.pathname;", + "lineNumber": 132 + }, + { + "text": " const moduleRaw = path.split(\"/\")[1] || \"\";", + "lineNumber": 133 + }, + { + "text": " return moduleRaw", + "lineNumber": 134 + }, + { + "text": " .split(\"-\")", + "lineNumber": 135 + }, + { + "text": " .filter(Boolean)", + "lineNumber": 136 + }, + { + "text": " .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())", + "lineNumber": 137 + }, + { + "text": " .join(\" \");", + "lineNumber": 138 + }, + { + "text": "}", + "lineNumber": 139, + "isSignature": true + } + ] + }, + "score": 0.0839167982339859 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "line": 405, + "column": 1 + }, + "endPosition": { + "line": 434, + "column": 2 + } + }, + "contents": "/**\n * Main validation function that determines the appropriate validator based on format\n * Returns Promise<SyntaxValidationResult> for MDX (async) and SyntaxValidationResult for others\n */\nexport const validateContentSyntax = (\n content: string,\n format: string\n): SyntaxValidationResult | Promise<SyntaxValidationResult> => {\n const upperFormat = format.toUpperCase();\n\n switch (upperFormat) {\n case \"JSON\":\n return validateJsonSyntax(content);\n case \"YAML\":\n case \"YML\":\n return validateYamlSyntax(content);\n case \"MDX\":\n case \"MD\":\n case \"MARKDOWN\":\n return validateMdxSyntax(content); // This is now async\n case \"HTML\":\n // For HTML, we can use basic JSX validation\n return validateJsxTags(content);\n default:\n // For plain text or unknown formats, always valid\n return { isValid: true };\n }\n};", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 408 + }, + { + "text": " * Main validation function that determines the appropriate validator based on format", + "lineNumber": 409 + }, + { + "text": " * Returns Promise<SyntaxValidationResult> for MDX (async) and SyntaxValidationResult for others", + "lineNumber": 410 + }, + { + "text": " */", + "lineNumber": 411 + }, + { + "text": "export const validateContentSyntax = (", + "lineNumber": 412 + }, + { + "text": " content: string,", + "lineNumber": 413 + }, + { + "text": " format: string", + "lineNumber": 414 + }, + { + "text": "): SyntaxValidationResult | Promise<SyntaxValidationResult> => {", + "lineNumber": 415 + }, + { + "text": " const upperFormat = format.toUpperCase();", + "lineNumber": 416 + }, + { + "lineNumber": 417 + }, + { + "text": " switch (upperFormat) {", + "lineNumber": 418 + }, + { + "text": " case \"JSON\":", + "lineNumber": 419 + }, + { + "text": " return validateJsonSyntax(content);", + "lineNumber": 420 + }, + { + "text": " case \"YAML\":", + "lineNumber": 421 + }, + { + "text": " case \"YML\":", + "lineNumber": 422 + }, + { + "text": " return validateYamlSyntax(content);", + "lineNumber": 423 + }, + { + "text": " case \"MDX\":", + "lineNumber": 424 + }, + { + "text": " case \"MD\":", + "lineNumber": 425 + }, + { + "text": " case \"MARKDOWN\":", + "lineNumber": 426 + }, + { + "text": " return validateMdxSyntax(content); // This is now async", + "lineNumber": 427 + }, + { + "text": " case \"HTML\":", + "lineNumber": 428 + }, + { + "text": " // For HTML, we can use basic JSX validation", + "lineNumber": 429 + }, + { + "text": " return validateJsxTags(content);", + "lineNumber": 430 + }, + { + "text": " default:", + "lineNumber": 431 + }, + { + "text": " // For plain text or unknown formats, always valid", + "lineNumber": 432 + }, + { + "text": " return { isValid: true };", + "lineNumber": 433 + }, + { + "text": " }", + "lineNumber": 434 + }, + { + "text": "};", + "lineNumber": 435 + } + ] + }, + "score": 0.07942649722099304 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "line": 309 + }, + "endPosition": { + "line": 410, + "column": 3 + } + }, + "contents": "function validateJsxTags(content: string): SyntaxValidationResult {\nfor (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {\nwhile ((match = jsxTagRegex.exec(line)) !== null) {\n\n\n if (fullTag.startsWith(\"</\")) {\n // Closing tag\n if (tagStack.length === 0) {\n return {\n isValid: false,\n error: {\n message: `Unexpected closing tag '</${tagName}>' - no matching opening tag found`,\n line: lineNumber,\n type: \"mdx\",\n },\n };\n }\n\n const lastOpenTag = tagStack[tagStack.length - 1];\n if (lastOpenTag.tag !== tagName) {\n return {\n isValid: false,\n error: {\n message: `Mismatched tag: expected </${lastOpenTag.tag}> but got </${tagName}>`,\n line: lineNumber,\n type: \"mdx\",\n },\n };\n }\n\n tagStack.pop();\n } else {\n // Opening tag\n tagStack.push({ tag: tagName, line: lineNumber });\n }\n }\n }\n\n // Check for unclosed tags\n if (tagStack.length > 0) {\n const unclosedTag = tagStack[tagStack.length - 1];\n return {\n isValid: false,\n error: {\n message: `Unclosed tag '<${unclosedTag.tag}>' opened at line ${unclosedTag.line}`,\n line: unclosedTag.line,\n type: \"mdx\",\n },\n };\n }\n\n return { isValid: true };\n}\n\n/**\n * Main validation function that determines the appropriate validator based on format\n * Returns Promise<SyntaxValidationResult> for MDX (async) and SyntaxValidationResult for others\n */", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 310, + "column": 1 + }, + "endPosition": { + "line": 311, + "column": 3 + } + }, + { + "startPosition": { + "line": 318, + "column": 3 + }, + "endPosition": { + "line": 319, + "column": 5 + } + }, + { + "startPosition": { + "line": 330, + "column": 5 + }, + "endPosition": { + "line": 331, + "column": 7 + } + } + ] + }, + "detailedLines": [ + { + "text": "function validateJsxTags(content: string): SyntaxValidationResult {", + "lineNumber": 310, + "isSignature": true + }, + { + "text": "for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {", + "lineNumber": 318 + }, + { + "text": "while ((match = jsxTagRegex.exec(line)) !== null) {", + "lineNumber": 330 + }, + { + "lineNumber": 357 + }, + { + "lineNumber": 358 + }, + { + "text": " if (fullTag.startsWith(\"</\")) {", + "lineNumber": 359 + }, + { + "text": " // Closing tag", + "lineNumber": 360 + }, + { + "text": " if (tagStack.length === 0) {", + "lineNumber": 361 + }, + { + "text": " return {", + "lineNumber": 362 + }, + { + "text": " isValid: false,", + "lineNumber": 363 + }, + { + "text": " error: {", + "lineNumber": 364 + }, + { + "text": " message: `Unexpected closing tag '</${tagName}>' - no matching opening tag found`,", + "lineNumber": 365 + }, + { + "text": " line: lineNumber,", + "lineNumber": 366 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 367 + }, + { + "text": " },", + "lineNumber": 368 + }, + { + "text": " };", + "lineNumber": 369 + }, + { + "text": " }", + "lineNumber": 370 + }, + { + "lineNumber": 371 + }, + { + "text": " const lastOpenTag = tagStack[tagStack.length - 1];", + "lineNumber": 372 + }, + { + "text": " if (lastOpenTag.tag !== tagName) {", + "lineNumber": 373 + }, + { + "text": " return {", + "lineNumber": 374 + }, + { + "text": " isValid: false,", + "lineNumber": 375 + }, + { + "text": " error: {", + "lineNumber": 376 + }, + { + "text": " message: `Mismatched tag: expected </${lastOpenTag.tag}> but got </${tagName}>`,", + "lineNumber": 377 + }, + { + "text": " line: lineNumber,", + "lineNumber": 378 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 379 + }, + { + "text": " },", + "lineNumber": 380 + }, + { + "text": " };", + "lineNumber": 381 + }, + { + "text": " }", + "lineNumber": 382 + }, + { + "lineNumber": 383 + }, + { + "text": " tagStack.pop();", + "lineNumber": 384 + }, + { + "text": " } else {", + "lineNumber": 385 + }, + { + "text": " // Opening tag", + "lineNumber": 386 + }, + { + "text": " tagStack.push({ tag: tagName, line: lineNumber });", + "lineNumber": 387 + }, + { + "text": " }", + "lineNumber": 388 + }, + { + "text": " }", + "lineNumber": 389 + }, + { + "text": " }", + "lineNumber": 390 + }, + { + "lineNumber": 391 + }, + { + "text": " // Check for unclosed tags", + "lineNumber": 392 + }, + { + "text": " if (tagStack.length > 0) {", + "lineNumber": 393 + }, + { + "text": " const unclosedTag = tagStack[tagStack.length - 1];", + "lineNumber": 394 + }, + { + "text": " return {", + "lineNumber": 395 + }, + { + "text": " isValid: false,", + "lineNumber": 396 + }, + { + "text": " error: {", + "lineNumber": 397 + }, + { + "text": " message: `Unclosed tag '<${unclosedTag.tag}>' opened at line ${unclosedTag.line}`,", + "lineNumber": 398 + }, + { + "text": " line: unclosedTag.line,", + "lineNumber": 399 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 400 + }, + { + "text": " },", + "lineNumber": 401 + }, + { + "text": " };", + "lineNumber": 402 + }, + { + "text": " }", + "lineNumber": 403 + }, + { + "lineNumber": 404 + }, + { + "text": " return { isValid: true };", + "lineNumber": 405 + }, + { + "text": "}", + "lineNumber": 406, + "isSignature": true + }, + { + "lineNumber": 407 + }, + { + "text": "/**", + "lineNumber": 408 + }, + { + "text": " * Main validation function that determines the appropriate validator based on format", + "lineNumber": 409 + }, + { + "text": " * Returns Promise<SyntaxValidationResult> for MDX (async) and SyntaxValidationResult for others", + "lineNumber": 410 + }, + { + "text": " */", + "lineNumber": 411 + } + ] + }, + "score": 0.06930314749479294 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/content-status-helper.ts", + "range": { + "startPosition": { + "line": 10, + "column": 1 + }, + "endPosition": { + "line": 47, + "column": 3 + } + }, + "contents": "/**\n * Determines the status of content based on its publishedAt date\n * @param publishedAt The published at date string or null\n * @returns Content status information including status, color, and tooltip\n */\nexport const getContentStatus = (publishedAt: string | null): ContentStatusInfo => {\n if (!publishedAt) {\n return {\n status: \"Draft\",\n color: \"warning\",\n };\n }\n\n const publishedDate = new Date(publishedAt);\n const now = new Date();\n\n if (publishedDate > now) {\n return {\n status: \"Planned\",\n color: \"info\",\n tooltip: `Scheduled for ${publishedDate.toLocaleDateString()}`,\n };\n }\n\n return {\n status: \"Published\",\n color: \"success\",\n tooltip: `Published on ${publishedDate.toLocaleDateString()}`,\n };\n};\n\n/**\n * Get a formatted tooltip title for the content status\n * @param publishedAt The published at date string or null\n * @returns Formatted tooltip string or empty string\n */", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 13 + }, + { + "text": " * Determines the status of content based on its publishedAt date", + "lineNumber": 14 + }, + { + "text": " * @param publishedAt The published at date string or null", + "lineNumber": 15 + }, + { + "text": " * @returns Content status information including status, color, and tooltip", + "lineNumber": 16 + }, + { + "text": " */", + "lineNumber": 17 + }, + { + "text": "export const getContentStatus = (publishedAt: string | null): ContentStatusInfo => {", + "lineNumber": 18 + }, + { + "text": " if (!publishedAt) {", + "lineNumber": 19 + }, + { + "text": " return {", + "lineNumber": 20 + }, + { + "text": " status: \"Draft\",", + "lineNumber": 21 + }, + { + "text": " color: \"warning\",", + "lineNumber": 22 + }, + { + "text": " };", + "lineNumber": 23 + }, + { + "text": " }", + "lineNumber": 24 + }, + { + "lineNumber": 25 + }, + { + "text": " const publishedDate = new Date(publishedAt);", + "lineNumber": 26 + }, + { + "text": " const now = new Date();", + "lineNumber": 27 + }, + { + "lineNumber": 28 + }, + { + "text": " if (publishedDate > now) {", + "lineNumber": 29 + }, + { + "text": " return {", + "lineNumber": 30 + }, + { + "text": " status: \"Planned\",", + "lineNumber": 31 + }, + { + "text": " color: \"info\",", + "lineNumber": 32 + }, + { + "text": " tooltip: `Scheduled for ${publishedDate.toLocaleDateString()}`,", + "lineNumber": 33 + }, + { + "text": " };", + "lineNumber": 34 + }, + { + "text": " }", + "lineNumber": 35 + }, + { + "lineNumber": 36 + }, + { + "text": " return {", + "lineNumber": 37 + }, + { + "text": " status: \"Published\",", + "lineNumber": 38 + }, + { + "text": " color: \"success\",", + "lineNumber": 39 + }, + { + "text": " tooltip: `Published on ${publishedDate.toLocaleDateString()}`,", + "lineNumber": 40 + }, + { + "text": " };", + "lineNumber": 41 + }, + { + "text": "};", + "lineNumber": 42 + }, + { + "lineNumber": 43 + }, + { + "text": "/**", + "lineNumber": 44 + }, + { + "text": " * Get a formatted tooltip title for the content status", + "lineNumber": 45 + }, + { + "text": " * @param publishedAt The published at date string or null", + "lineNumber": 46 + }, + { + "text": " * @returns Formatted tooltip string or empty string", + "lineNumber": 47 + }, + { + "text": " */", + "lineNumber": 48 + } + ] + }, + "score": 0.06721746921539307 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "line": 246, + "column": 2 + }, + "endPosition": { + "line": 405, + "column": 1 + } + }, + "contents": "/**\n * Basic MDX syntax validation (fallback)\n * This is the current implementation that checks for:\n * - Unmatched JSX tags\n * - Invalid JSX syntax\n * - Frontmatter YAML syntax (if present)\n */\nexport const validateMdxSyntaxBasic = (content: string): SyntaxValidationResult => {\n if (!content.trim()) {\n return { isValid: true };\n }\n\n // First, check frontmatter if it exists\n const frontmatterMatch = content.match(/^---\\s*\\n(.*?)\\n---\\s*\\n/s);\n if (frontmatterMatch) {\n const frontmatterContent = frontmatterMatch[1];\n const yamlResult = validateYamlSyntax(frontmatterContent);\n if (!yamlResult.isValid) {\n const yamlError = yamlResult.error;\n if (!yamlError) return { isValid: true }; // This shouldn't happen but satisfies TypeScript\n\n return {\n isValid: false,\n error: {\n ...yamlError,\n message: `Frontmatter error: ${yamlError.message}`,\n type: \"mdx\",\n // Adjust line numbers to account for frontmatter position\n line: yamlError.line ? yamlError.line + 1 : undefined,\n },\n };\n }\n }\n\n // Remove frontmatter for JSX validation\n const contentWithoutFrontmatter = content.replace(/^---\\s*\\n(.*?)\\n---\\s*\\n/s, \"\");\n\n // Basic JSX tag matching validation\n const result = validateJsxTags(contentWithoutFrontmatter);\n if (!result.isValid) {\n // Adjust line numbers if frontmatter was present\n const frontmatterLines = frontmatterMatch ? frontmatterMatch[0].split(\"\\n\").length - 1 : 0;\n const resultError = result.error;\n if (!resultError) return { isValid: true }; // This shouldn't happen but satisfies TypeScript\n\n return {\n isValid: false,\n error: {\n ...resultError,\n type: \"mdx\",\n line: resultError.line ? resultError.line + frontmatterLines : undefined,\n },\n };\n }\n\n return { isValid: true };\n};\n\n/**\n * Basic JSX tag validation for MDX content\n */\nfunction validateJsxTags(content: string): SyntaxValidationResult {\n const lines = content.split(\"\\n\");\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 249 + }, + { + "text": " * Basic MDX syntax validation (fallback)", + "lineNumber": 250 + }, + { + "text": " * This is the current implementation that checks for:", + "lineNumber": 251 + }, + { + "text": " * - Unmatched JSX tags", + "lineNumber": 252 + }, + { + "text": " * - Invalid JSX syntax", + "lineNumber": 253 + }, + { + "text": " * - Frontmatter YAML syntax (if present)", + "lineNumber": 254 + }, + { + "text": " */", + "lineNumber": 255 + }, + { + "text": "export const validateMdxSyntaxBasic = (content: string): SyntaxValidationResult => {", + "lineNumber": 256 + }, + { + "text": " if (!content.trim()) {", + "lineNumber": 257 + }, + { + "text": " return { isValid: true };", + "lineNumber": 258 + }, + { + "text": " }", + "lineNumber": 259 + }, + { + "lineNumber": 260 + }, + { + "text": " // First, check frontmatter if it exists", + "lineNumber": 261 + }, + { + "text": " const frontmatterMatch = content.match(/^---\\s*\\n(.*?)\\n---\\s*\\n/s);", + "lineNumber": 262 + }, + { + "text": " if (frontmatterMatch) {", + "lineNumber": 263 + }, + { + "text": " const frontmatterContent = frontmatterMatch[1];", + "lineNumber": 264 + }, + { + "text": " const yamlResult = validateYamlSyntax(frontmatterContent);", + "lineNumber": 265 + }, + { + "text": " if (!yamlResult.isValid) {", + "lineNumber": 266 + }, + { + "text": " const yamlError = yamlResult.error;", + "lineNumber": 267 + }, + { + "text": " if (!yamlError) return { isValid: true }; // This shouldn't happen but satisfies TypeScript", + "lineNumber": 268 + }, + { + "lineNumber": 269 + }, + { + "text": " return {", + "lineNumber": 270 + }, + { + "text": " isValid: false,", + "lineNumber": 271 + }, + { + "text": " error: {", + "lineNumber": 272 + }, + { + "text": " ...yamlError,", + "lineNumber": 273 + }, + { + "text": " message: `Frontmatter error: ${yamlError.message}`,", + "lineNumber": 274 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 275 + }, + { + "text": " // Adjust line numbers to account for frontmatter position", + "lineNumber": 276 + }, + { + "text": " line: yamlError.line ? yamlError.line + 1 : undefined,", + "lineNumber": 277 + }, + { + "text": " },", + "lineNumber": 278 + }, + { + "text": " };", + "lineNumber": 279 + }, + { + "text": " }", + "lineNumber": 280 + }, + { + "text": " }", + "lineNumber": 281 + }, + { + "lineNumber": 282 + }, + { + "text": " // Remove frontmatter for JSX validation", + "lineNumber": 283 + }, + { + "text": " const contentWithoutFrontmatter = content.replace(/^---\\s*\\n(.*?)\\n---\\s*\\n/s, \"\");", + "lineNumber": 284 + }, + { + "lineNumber": 285 + }, + { + "text": " // Basic JSX tag matching validation", + "lineNumber": 286 + }, + { + "text": " const result = validateJsxTags(contentWithoutFrontmatter);", + "lineNumber": 287 + }, + { + "text": " if (!result.isValid) {", + "lineNumber": 288 + }, + { + "text": " // Adjust line numbers if frontmatter was present", + "lineNumber": 289 + }, + { + "text": " const frontmatterLines = frontmatterMatch ? frontmatterMatch[0].split(\"\\n\").length - 1 : 0;", + "lineNumber": 290 + }, + { + "text": " const resultError = result.error;", + "lineNumber": 291 + }, + { + "text": " if (!resultError) return { isValid: true }; // This shouldn't happen but satisfies TypeScript", + "lineNumber": 292 + }, + { + "lineNumber": 293 + }, + { + "text": " return {", + "lineNumber": 294 + }, + { + "text": " isValid: false,", + "lineNumber": 295 + }, + { + "text": " error: {", + "lineNumber": 296 + }, + { + "text": " ...resultError,", + "lineNumber": 297 + }, + { + "text": " type: \"mdx\",", + "lineNumber": 298 + }, + { + "text": " line: resultError.line ? resultError.line + frontmatterLines : undefined,", + "lineNumber": 299 + }, + { + "text": " },", + "lineNumber": 300 + }, + { + "text": " };", + "lineNumber": 301 + }, + { + "text": " }", + "lineNumber": 302 + }, + { + "lineNumber": 303 + }, + { + "text": " return { isValid: true };", + "lineNumber": 304 + }, + { + "text": "};", + "lineNumber": 305 + }, + { + "lineNumber": 306 + }, + { + "text": "/**", + "lineNumber": 307 + }, + { + "text": " * Basic JSX tag validation for MDX content", + "lineNumber": 308 + }, + { + "text": " */", + "lineNumber": 309 + }, + { + "text": "function validateJsxTags(content: string): SyntaxValidationResult {", + "lineNumber": 310, + "isSignature": true + }, + { + "text": " const lines = content.split(\"\\n\");", + "lineNumber": 311 + }, + { + "text": "}", + "lineNumber": 406, + "isSignature": true + } + ] + }, + "score": 0.06529570370912552 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/preview-helper.ts", + "range": { + "startPosition": { + "line": 32, + "column": 2 + }, + "endPosition": { + "line": 60, + "column": 2 + } + }, + "contents": "export const openSitePreview = (\n params: Record<string, unknown>,\n template: string,\n defaultLanguage?: string\n): boolean => {\n // Generate the preview URL (this will calculate lang+slug and other enhanced params)\n const previewUrl = generateSitePreviewUrl(template, params, defaultLanguage);\n\n // Check if there are still unresolved placeholders after URL generation\n const unresolvedPlaceholders = previewUrl.match(/{(.*?)}/g) || [];\n\n if (unresolvedPlaceholders.length > 0) {\n const missingKeys = unresolvedPlaceholders.map((k) => k.replace(/[{}]/g, \"\"));\n console.debug(\"[PreviewHelper] Missing required params for site preview:\", missingKeys, {\n params,\n template,\n previewUrl,\n });\n return false;\n }\n\n console.log(\"[PreviewHelper] Opening site preview:\", previewUrl);\n\n // Open in new tab\n window.open(previewUrl, \"_blank\", \"noopener,noreferrer\");\n return true;\n};", + "signatures": {}, + "detailedLines": [ + { + "text": "export const openSitePreview = (", + "lineNumber": 35 + }, + { + "text": " params: Record<string, unknown>,", + "lineNumber": 36 + }, + { + "text": " template: string,", + "lineNumber": 37 + }, + { + "text": " defaultLanguage?: string", + "lineNumber": 38 + }, + { + "text": "): boolean => {", + "lineNumber": 39 + }, + { + "text": " // Generate the preview URL (this will calculate lang+slug and other enhanced params)", + "lineNumber": 40 + }, + { + "text": " const previewUrl = generateSitePreviewUrl(template, params, defaultLanguage);", + "lineNumber": 41 + }, + { + "lineNumber": 42 + }, + { + "text": " // Check if there are still unresolved placeholders after URL generation", + "lineNumber": 43 + }, + { + "text": " const unresolvedPlaceholders = previewUrl.match(/{(.*?)}/g) || [];", + "lineNumber": 44 + }, + { + "lineNumber": 45 + }, + { + "text": " if (unresolvedPlaceholders.length > 0) {", + "lineNumber": 46 + }, + { + "text": " const missingKeys = unresolvedPlaceholders.map((k) => k.replace(/[{}]/g, \"\"));", + "lineNumber": 47 + }, + { + "text": " console.debug(\"[PreviewHelper] Missing required params for site preview:\", missingKeys, {", + "lineNumber": 48 + }, + { + "text": " params,", + "lineNumber": 49 + }, + { + "text": " template,", + "lineNumber": 50 + }, + { + "text": " previewUrl,", + "lineNumber": 51 + }, + { + "text": " });", + "lineNumber": 52 + }, + { + "text": " return false;", + "lineNumber": 53 + }, + { + "text": " }", + "lineNumber": 54 + }, + { + "lineNumber": 55 + }, + { + "text": " console.log(\"[PreviewHelper] Opening site preview:\", previewUrl);", + "lineNumber": 56 + }, + { + "lineNumber": 57 + }, + { + "text": " // Open in new tab", + "lineNumber": 58 + }, + { + "text": " window.open(previewUrl, \"_blank\", \"noopener,noreferrer\");", + "lineNumber": 59 + }, + { + "text": " return true;", + "lineNumber": 60 + }, + { + "text": "};", + "lineNumber": 61 + } + ] + }, + "score": 0.04111475124955177 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/syntax-validators.ts", + "range": { + "startPosition": { + "column": 58 + }, + "endPosition": { + "line": 13, + "column": 1 + } + }, + "contents": "import { compile } from \"@mdx-js/mdx\";\n\nexport interface SyntaxValidationResult {\n isValid: boolean;\n error?: SyntaxValidationError;\n}\n\nexport interface SyntaxValidationError {\n message: string;\n line?: number;\n;\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "import { compile } from \"@mdx-js/mdx\";", + "lineNumber": 2 + }, + { + "lineNumber": 3 + }, + { + "text": "export interface SyntaxValidationResult {", + "lineNumber": 4, + "isSignature": true + }, + { + "text": " isValid: boolean;", + "lineNumber": 5 + }, + { + "text": " error?: SyntaxValidationError;", + "lineNumber": 6, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 7, + "isSignature": true + }, + { + "lineNumber": 8 + }, + { + "text": "export interface SyntaxValidationError {", + "lineNumber": 9, + "isSignature": true + }, + { + "text": " message: string;", + "lineNumber": 10 + }, + { + "text": " line?: number;", + "lineNumber": 11 + }, + { + "text": ";", + "lineNumber": 13, + "isSignature": true + }, + { + "text": "}", + "lineNumber": 14, + "isSignature": true + } + ] + }, + "score": 0.040316760540008545 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/import-file-helper.ts", + "range": { + "startPosition": { + "line": 58, + "column": 2 + }, + "endPosition": { + "line": 102, + "column": 2 + } + }, + "contents": "const typeMapping: Record<string, string> = {\n string: \"input\",\n integer: \"input\",\n boolean: \"checkbox\",\n enum: \"select\",\n array: \"input\",\n};\n\nexport const getImportFields = (importModel: any) => {\n const importContactFields = Object.keys(importModel)\n .map((key) => {\n const property = importModel[key];\n\n if (!property.type) {\n return; // skip the field if property.type is undefined\n }\n\n const importType = typeMapping[property.type] ? typeMapping[property.type] : \"input\";\n let example = property.example ? property.example : \"string\";\n\n if (example instanceof Array || example instanceof Object) {\n example = JSON.stringify(example);\n }\n\n const alternatives = getAlternatives(key, property.title);\n const title = property.title ? property.title : key;\n const validations = buildValidations(key, property);\n\n return {\n key,\n label: title,\n alternateMatches: alternatives,\n fieldType: {\n type: importType,\n },\n example: example,\n validations: validations,\n };\n })\n .filter(Boolean);\n\n return importContactFields;\n};", + "signatures": {}, + "detailedLines": [ + { + "text": "const typeMapping: Record<string, string> = {", + "lineNumber": 61 + }, + { + "text": " string: \"input\",", + "lineNumber": 62 + }, + { + "text": " integer: \"input\",", + "lineNumber": 63 + }, + { + "text": " boolean: \"checkbox\",", + "lineNumber": 64 + }, + { + "text": " enum: \"select\",", + "lineNumber": 65 + }, + { + "text": " array: \"input\",", + "lineNumber": 66 + }, + { + "text": "};", + "lineNumber": 67 + }, + { + "lineNumber": 68 + }, + { + "text": "export const getImportFields = (importModel: any) => {", + "lineNumber": 69 + }, + { + "text": " const importContactFields = Object.keys(importModel)", + "lineNumber": 70 + }, + { + "text": " .map((key) => {", + "lineNumber": 71 + }, + { + "text": " const property = importModel[key];", + "lineNumber": 72 + }, + { + "lineNumber": 73 + }, + { + "text": " if (!property.type) {", + "lineNumber": 74 + }, + { + "text": " return; // skip the field if property.type is undefined", + "lineNumber": 75 + }, + { + "text": " }", + "lineNumber": 76 + }, + { + "lineNumber": 77 + }, + { + "text": " const importType = typeMapping[property.type] ? typeMapping[property.type] : \"input\";", + "lineNumber": 78 + }, + { + "text": " let example = property.example ? property.example : \"string\";", + "lineNumber": 79 + }, + { + "lineNumber": 80 + }, + { + "text": " if (example instanceof Array || example instanceof Object) {", + "lineNumber": 81 + }, + { + "text": " example = JSON.stringify(example);", + "lineNumber": 82 + }, + { + "text": " }", + "lineNumber": 83 + }, + { + "lineNumber": 84 + }, + { + "text": " const alternatives = getAlternatives(key, property.title);", + "lineNumber": 85 + }, + { + "text": " const title = property.title ? property.title : key;", + "lineNumber": 86 + }, + { + "text": " const validations = buildValidations(key, property);", + "lineNumber": 87 + }, + { + "lineNumber": 88 + }, + { + "text": " return {", + "lineNumber": 89 + }, + { + "text": " key,", + "lineNumber": 90 + }, + { + "text": " label: title,", + "lineNumber": 91 + }, + { + "text": " alternateMatches: alternatives,", + "lineNumber": 92 + }, + { + "text": " fieldType: {", + "lineNumber": 93 + }, + { + "text": " type: importType,", + "lineNumber": 94 + }, + { + "text": " },", + "lineNumber": 95 + }, + { + "text": " example: example,", + "lineNumber": 96 + }, + { + "text": " validations: validations,", + "lineNumber": 97 + }, + { + "text": " };", + "lineNumber": 98 + }, + { + "text": " })", + "lineNumber": 99 + }, + { + "text": " .filter(Boolean);", + "lineNumber": 100 + }, + { + "lineNumber": 101 + }, + { + "text": " return importContactFields;", + "lineNumber": 102 + }, + { + "text": "};", + "lineNumber": 103 + } + ] + }, + "score": 0.03409487009048462 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/content-status-helper.ts", + "range": { + "startPosition": { + "line": 41, + "column": 2 + }, + "endPosition": { + "line": 61, + "column": 2 + } + }, + "contents": "/**\n * Get a formatted tooltip title for the content status\n * @param publishedAt The published at date string or null\n * @returns Formatted tooltip string or empty string\n */\nexport const getContentStatusTooltip = (publishedAt: string | null): string => {\n if (!publishedAt) {\n return \"\";\n }\n\n const publishedDate = new Date(publishedAt);\n const now = new Date();\n\n if (publishedDate > now) {\n return `Scheduled for ${publishedDate.toLocaleDateString()}`;\n }\n\n return `Published on ${publishedDate.toLocaleDateString()}`;\n};", + "signatures": {}, + "detailedLines": [ + { + "text": "/**", + "lineNumber": 44 + }, + { + "text": " * Get a formatted tooltip title for the content status", + "lineNumber": 45 + }, + { + "text": " * @param publishedAt The published at date string or null", + "lineNumber": 46 + }, + { + "text": " * @returns Formatted tooltip string or empty string", + "lineNumber": 47 + }, + { + "text": " */", + "lineNumber": 48 + }, + { + "text": "export const getContentStatusTooltip = (publishedAt: string | null): string => {", + "lineNumber": 49 + }, + { + "text": " if (!publishedAt) {", + "lineNumber": 50 + }, + { + "text": " return \"\";", + "lineNumber": 51 + }, + { + "text": " }", + "lineNumber": 52 + }, + { + "lineNumber": 53 + }, + { + "text": " const publishedDate = new Date(publishedAt);", + "lineNumber": 54 + }, + { + "text": " const now = new Date();", + "lineNumber": 55 + }, + { + "lineNumber": 56 + }, + { + "text": " if (publishedDate > now) {", + "lineNumber": 57 + }, + { + "text": " return `Scheduled for ${publishedDate.toLocaleDateString()}`;", + "lineNumber": 58 + }, + { + "text": " }", + "lineNumber": 59 + }, + { + "lineNumber": 60 + }, + { + "text": " return `Published on ${publishedDate.toLocaleDateString()}`;", + "lineNumber": 61 + }, + { + "text": "};", + "lineNumber": 62 + } + ] + }, + "score": 0.025352660566568375 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/preview-helper.ts", + "range": { + "startPosition": { + "line": 25, + "column": 2 + }, + "endPosition": { + "line": 60, + "column": 1 + } + }, + "contents": "export const calculateLangPrefix = (contentLanguage: string, defaultLanguage?: string): string => {\n if (!contentLanguage || !defaultLanguage || contentLanguage === defaultLanguage) {\n return \"\";\n }\n return `${contentLanguage}/`;\n};\n\nexport const openSitePreview = (\n params: Record<string, unknown>,\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const calculateLangPrefix = (contentLanguage: string, defaultLanguage?: string): string => {", + "lineNumber": 28 + }, + { + "text": " if (!contentLanguage || !defaultLanguage || contentLanguage === defaultLanguage) {", + "lineNumber": 29 + }, + { + "text": " return \"\";", + "lineNumber": 30 + }, + { + "text": " }", + "lineNumber": 31 + }, + { + "text": " return `${contentLanguage}/`;", + "lineNumber": 32 + }, + { + "text": "};", + "lineNumber": 33 + }, + { + "lineNumber": 34 + }, + { + "text": "export const openSitePreview = (", + "lineNumber": 35 + }, + { + "text": " params: Record<string, unknown>,", + "lineNumber": 36 + }, + { + "text": ";", + "lineNumber": 61 + } + ] + }, + "score": 0.02305424027144909 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/formik-helper.ts", + "range": { + "startPosition": { + "line": 5 + }, + "endPosition": { + "line": 75, + "column": 1 + } + }, + "contents": "export async function execSubmitWithToast<T>(\n values: T,\n helpers: FormikHelpers<T>,\n submitFunc: (values: T, helpers: FormikHelpers<T>) => Promise<void>,\n notificationsService: NotificationsService,\n showErrorModalFunc: (value: string[]) => void,\n entityName: string,\n options?: {\n fieldMapping?: Record<string, string>;\n customValidationErrorMessage?: string;\n }\n): Promise<void> {\n {\n pending: `Saving ${nameWithMinFirstLetter}...`,\n success: `${nameWithCapFirstLetter} saved successfully`,\n error: (error: unknown) => {\n // Cast error to the expected structure for type safety\n const httpError = error as ErrorResponse;\n\n // Try to handle validation errors first using the generic error handler\n const handleValidationErrors = async () => {\n try {\n await handleFormError(error, {\n formik: helpers,\n notificationsService,\n fieldMapping: options?.fieldMapping || {},\n customErrorMessage: options?.customValidationErrorMessage,\n showGenericError: false, // We'll handle generic errors below\n });\n return true; // Validation errors were handled\n } catch {\n return false; // Not validation errors or couldn't handle them\n }\n };\n\n // Check if this is a validation error that we can handle\n if (httpError?.status === 422 || httpError?.status === 400) {\n handleValidationErrors();\n // Still show the error modal for details\n }\n\n // Prepare error details for the modal and toast\n const errMessage = `Unable to save ${entityName}. An error occurred.`;\n const errDetails: string[] = [];\n\n if (httpError?.data?.error?.title) {\n errDetails.push(httpError.data.error.title);\n }\n if (httpError?.data?.message) {\n errDetails.push(httpError.data.message);\n }\n if (httpError?.data?.error?.errors) {\n errDetails.push(...networkErrorToStringArray(httpError.data.error.errors));\n }\n\n return {\n title: errMessage,\n onClick:\n errDetails.length > 0\n ? () => {\n showErrorModalFunc(errDetails);\n }\n : undefined,\n };\n },\n });\n}", + "signatures": { + "ranges": [ + { + "startPosition": { + "line": 6, + "column": 1 + }, + "endPosition": { + "line": 6, + "column": 8 + } + }, + { + "startPosition": { + "line": 6, + "column": 8 + }, + "endPosition": { + "line": 18, + "column": 3 + } + }, + { + "startPosition": { + "line": 22, + "column": 3 + }, + "endPosition": { + "line": 22, + "column": 3 + } + } + ] + }, + "detailedLines": [ + { + "text": "export async function execSubmitWithToast<T>(", + "lineNumber": 6, + "isSignature": true + }, + { + "text": " values: T,", + "lineNumber": 7, + "isSignature": true + }, + { + "text": " helpers: FormikHelpers<T>,", + "lineNumber": 8, + "isSignature": true + }, + { + "text": " submitFunc: (values: T, helpers: FormikHelpers<T>) => Promise<void>,", + "lineNumber": 9, + "isSignature": true + }, + { + "text": " notificationsService: NotificationsService,", + "lineNumber": 10, + "isSignature": true + }, + { + "text": " showErrorModalFunc: (value: string[]) => void,", + "lineNumber": 11, + "isSignature": true + }, + { + "text": " entityName: string,", + "lineNumber": 12, + "isSignature": true + }, + { + "text": " options?: {", + "lineNumber": 13, + "isSignature": true + }, + { + "text": " fieldMapping?: Record<string, string>;", + "lineNumber": 14, + "isSignature": true + }, + { + "text": " customValidationErrorMessage?: string;", + "lineNumber": 15, + "isSignature": true + }, + { + "text": " }", + "lineNumber": 16, + "isSignature": true + }, + { + "text": "): Promise<void> {", + "lineNumber": 17, + "isSignature": true + }, + { + "text": " {", + "lineNumber": 22 + }, + { + "text": " pending: `Saving ${nameWithMinFirstLetter}...`,", + "lineNumber": 23 + }, + { + "text": " success: `${nameWithCapFirstLetter} saved successfully`,", + "lineNumber": 24 + }, + { + "text": " error: (error: unknown) => {", + "lineNumber": 25 + }, + { + "text": " // Cast error to the expected structure for type safety", + "lineNumber": 26 + }, + { + "text": " const httpError = error as ErrorResponse;", + "lineNumber": 27 + }, + { + "lineNumber": 28 + }, + { + "text": " // Try to handle validation errors first using the generic error handler", + "lineNumber": 29 + }, + { + "text": " const handleValidationErrors = async () => {", + "lineNumber": 30 + }, + { + "text": " try {", + "lineNumber": 31 + }, + { + "text": " await handleFormError(error, {", + "lineNumber": 32 + }, + { + "text": " formik: helpers,", + "lineNumber": 33 + }, + { + "text": " notificationsService,", + "lineNumber": 34 + }, + { + "text": " fieldMapping: options?.fieldMapping || {},", + "lineNumber": 35 + }, + { + "text": " customErrorMessage: options?.customValidationErrorMessage,", + "lineNumber": 36 + }, + { + "text": " showGenericError: false, // We'll handle generic errors below", + "lineNumber": 37 + }, + { + "text": " });", + "lineNumber": 38 + }, + { + "text": " return true; // Validation errors were handled", + "lineNumber": 39 + }, + { + "text": " } catch {", + "lineNumber": 40 + }, + { + "text": " return false; // Not validation errors or couldn't handle them", + "lineNumber": 41 + }, + { + "text": " }", + "lineNumber": 42 + }, + { + "text": " };", + "lineNumber": 43 + }, + { + "lineNumber": 44 + }, + { + "text": " // Check if this is a validation error that we can handle", + "lineNumber": 45 + }, + { + "text": " if (httpError?.status === 422 || httpError?.status === 400) {", + "lineNumber": 46 + }, + { + "text": " handleValidationErrors();", + "lineNumber": 47 + }, + { + "text": " // Still show the error modal for details", + "lineNumber": 48 + }, + { + "text": " }", + "lineNumber": 49 + }, + { + "lineNumber": 50 + }, + { + "text": " // Prepare error details for the modal and toast", + "lineNumber": 51 + }, + { + "text": " const errMessage = `Unable to save ${entityName}. An error occurred.`;", + "lineNumber": 52 + }, + { + "text": " const errDetails: string[] = [];", + "lineNumber": 53 + }, + { + "lineNumber": 54 + }, + { + "text": " if (httpError?.data?.error?.title) {", + "lineNumber": 55 + }, + { + "text": " errDetails.push(httpError.data.error.title);", + "lineNumber": 56 + }, + { + "text": " }", + "lineNumber": 57 + }, + { + "text": " if (httpError?.data?.message) {", + "lineNumber": 58 + }, + { + "text": " errDetails.push(httpError.data.message);", + "lineNumber": 59 + }, + { + "text": " }", + "lineNumber": 60 + }, + { + "text": " if (httpError?.data?.error?.errors) {", + "lineNumber": 61 + }, + { + "text": " errDetails.push(...networkErrorToStringArray(httpError.data.error.errors));", + "lineNumber": 62 + }, + { + "text": " }", + "lineNumber": 63 + }, + { + "lineNumber": 64 + }, + { + "text": " return {", + "lineNumber": 65 + }, + { + "text": " title: errMessage,", + "lineNumber": 66 + }, + { + "text": " onClick:", + "lineNumber": 67 + }, + { + "text": " errDetails.length > 0", + "lineNumber": 68 + }, + { + "text": " ? () => {", + "lineNumber": 69 + }, + { + "text": " showErrorModalFunc(errDetails);", + "lineNumber": 70 + }, + { + "text": " }", + "lineNumber": 71 + }, + { + "text": " : undefined,", + "lineNumber": 72 + }, + { + "text": " };", + "lineNumber": 73 + }, + { + "text": " },", + "lineNumber": 74 + }, + { + "text": " });", + "lineNumber": 75 + }, + { + "text": "}", + "lineNumber": 76, + "isSignature": true + } + ] + }, + "score": 0.01946610026061535 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/formik-helper.ts", + "range": { + "startPosition": {}, + "endPosition": { + "line": 75, + "column": 1 + } + }, + "contents": "import { FormikHelpers } from \"formik\";\nimport { NotificationsService } from \"@hooks\";\nimport { networkErrorToStringArray } from \"./general-helper\";\nimport { handleFormError, ErrorResponse } from \"./error-handler\";\n\nexport async function execSubmitWithToast<T>(\n values: T,\n helpers: FormikHelpers<T>,\n submitFunc: (values: T, helpers: FormikHelpers<T>) => Promise<void>,\n notificationsService: NotificationsService,\n showErrorModalFunc: (value: string[]) => void,\n entityName: string,\n options?: {\n fieldMapping?: Record<string, string>;\n customValidationErrorMessage?: string;\n }\n): Promise<void> {\n const nameWithCapFirstLetter =\n entityName.charAt(0).toUpperCase() + entityName.slice(1).toLowerCase();\n const nameWithMinFirstLetter = entityName.toLowerCase();\n\n notificationsService.promise(submitFunc(values, helpers), {\n pending: `Saving ${nameWithMinFirstLetter}...`,\n success: `${nameWithCapFirstLetter} saved successfully`,\n\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "import { FormikHelpers } from \"formik\";", + "lineNumber": 1 + }, + { + "text": "import { NotificationsService } from \"@hooks\";", + "lineNumber": 2 + }, + { + "text": "import { networkErrorToStringArray } from \"./general-helper\";", + "lineNumber": 3 + }, + { + "text": "import { handleFormError, ErrorResponse } from \"./error-handler\";", + "lineNumber": 4 + }, + { + "lineNumber": 5 + }, + { + "text": "export async function execSubmitWithToast<T>(", + "lineNumber": 6, + "isSignature": true + }, + { + "text": " values: T,", + "lineNumber": 7, + "isSignature": true + }, + { + "text": " helpers: FormikHelpers<T>,", + "lineNumber": 8, + "isSignature": true + }, + { + "text": " submitFunc: (values: T, helpers: FormikHelpers<T>) => Promise<void>,", + "lineNumber": 9, + "isSignature": true + }, + { + "text": " notificationsService: NotificationsService,", + "lineNumber": 10, + "isSignature": true + }, + { + "text": " showErrorModalFunc: (value: string[]) => void,", + "lineNumber": 11, + "isSignature": true + }, + { + "text": " entityName: string,", + "lineNumber": 12, + "isSignature": true + }, + { + "text": " options?: {", + "lineNumber": 13, + "isSignature": true + }, + { + "text": " fieldMapping?: Record<string, string>;", + "lineNumber": 14, + "isSignature": true + }, + { + "text": " customValidationErrorMessage?: string;", + "lineNumber": 15, + "isSignature": true + }, + { + "text": " }", + "lineNumber": 16, + "isSignature": true + }, + { + "text": "): Promise<void> {", + "lineNumber": 17, + "isSignature": true + }, + { + "text": " const nameWithCapFirstLetter =", + "lineNumber": 18 + }, + { + "text": " entityName.charAt(0).toUpperCase() + entityName.slice(1).toLowerCase();", + "lineNumber": 19 + }, + { + "text": " const nameWithMinFirstLetter = entityName.toLowerCase();", + "lineNumber": 20 + }, + { + "lineNumber": 21 + }, + { + "text": " notificationsService.promise(submitFunc(values, helpers), {", + "lineNumber": 22 + }, + { + "text": " pending: `Saving ${nameWithMinFirstLetter}...`,", + "lineNumber": 23 + }, + { + "text": " success: `${nameWithCapFirstLetter} saved successfully`,", + "lineNumber": 24 + }, + { + "lineNumber": 75 + }, + { + "text": "}", + "lineNumber": 76, + "isSignature": true + } + ] + }, + "score": 0.015915749594569206 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/general-helper.ts", + "range": { + "startPosition": { + "line": 96, + "column": 2 + }, + "endPosition": { + "line": 138, + "column": 1 + } + }, + "contents": "export const execDeleteWithToast = async (\n deleteFunc: () => Promise<void>,\n notificationsService: NotificationsService,\n entity: string,\n showErrorModalFunc: (value: string[]) => void\n) => {\n const entityNameWithCapFirstLetter =\n entity.charAt(0).toUpperCase() + entity.slice(1).toLowerCase();\n notificationsService.promise(deleteFunc(), {\n pending: `Deleting ${entity}`,\n success: `${entityNameWithCapFirstLetter} deleted successfully`,\n error: (error) => {\n const errMessage = `Unable to delete ${entity}. An error occurred.`;\n const errDetails: string[] = [];\n if (error.data?.error?.title) {\n errDetails.push(error.data.error.title);\n }\n if (error.data?.message) {\n errDetails.push(error.data.message);\n }\n if (error.data?.error?.errors) {\n errDetails.push(...networkErrorToStringArray(error.data.error.errors));\n }\n return {\n title: errMessage,\n onClick: errDetails.length > 0 ? () => showErrorModalFunc(errDetails) : undefined,\n };\n },\n });\n};\n\nexport function getModuleNameFromUrl(): string {\n if (typeof window === \"undefined\") return \"\";\n}", + "signatures": {}, + "detailedLines": [ + { + "text": "export const execDeleteWithToast = async (", + "lineNumber": 99 + }, + { + "text": " deleteFunc: () => Promise<void>,", + "lineNumber": 100 + }, + { + "text": " notificationsService: NotificationsService,", + "lineNumber": 101 + }, + { + "text": " entity: string,", + "lineNumber": 102 + }, + { + "text": " showErrorModalFunc: (value: string[]) => void", + "lineNumber": 103 + }, + { + "text": ") => {", + "lineNumber": 104 + }, + { + "text": " const entityNameWithCapFirstLetter =", + "lineNumber": 105 + }, + { + "text": " entity.charAt(0).toUpperCase() + entity.slice(1).toLowerCase();", + "lineNumber": 106 + }, + { + "text": " notificationsService.promise(deleteFunc(), {", + "lineNumber": 107 + }, + { + "text": " pending: `Deleting ${entity}`,", + "lineNumber": 108 + }, + { + "text": " success: `${entityNameWithCapFirstLetter} deleted successfully`,", + "lineNumber": 109 + }, + { + "text": " error: (error) => {", + "lineNumber": 110 + }, + { + "text": " const errMessage = `Unable to delete ${entity}. An error occurred.`;", + "lineNumber": 111 + }, + { + "text": " const errDetails: string[] = [];", + "lineNumber": 112 + }, + { + "text": " if (error.data?.error?.title) {", + "lineNumber": 113 + }, + { + "text": " errDetails.push(error.data.error.title);", + "lineNumber": 114 + }, + { + "text": " }", + "lineNumber": 115 + }, + { + "text": " if (error.data?.message) {", + "lineNumber": 116 + }, + { + "text": " errDetails.push(error.data.message);", + "lineNumber": 117 + }, + { + "text": " }", + "lineNumber": 118 + }, + { + "text": " if (error.data?.error?.errors) {", + "lineNumber": 119 + }, + { + "text": " errDetails.push(...networkErrorToStringArray(error.data.error.errors));", + "lineNumber": 120 + }, + { + "text": " }", + "lineNumber": 121 + }, + { + "text": " return {", + "lineNumber": 122 + }, + { + "text": " title: errMessage,", + "lineNumber": 123 + }, + { + "text": " onClick: errDetails.length > 0 ? () => showErrorModalFunc(errDetails) : undefined,", + "lineNumber": 124 + }, + { + "text": " };", + "lineNumber": 125 + }, + { + "text": " },", + "lineNumber": 126 + }, + { + "text": " });", + "lineNumber": 127 + }, + { + "text": "};", + "lineNumber": 128 + }, + { + "lineNumber": 129 + }, + { + "text": "export function getModuleNameFromUrl(): string {", + "lineNumber": 130, + "isSignature": true + }, + { + "text": " if (typeof window === \"undefined\") return \"\";", + "lineNumber": 131 + }, + { + "text": "}", + "lineNumber": 139, + "isSignature": true + } + ] + }, + "score": 0.015886550769209862 + }, + { + "codeBlock": { + "relativeWorkspacePath": "./src/utils/general-helper.ts", + "range": { + "startPosition": { + "line": 52, + "column": 2 + }, + "endPosition": { + "line": 79, + "column": 1 + } + }, + "contents": "export const getFormattedDateTime = (dateToConvert: string) => {\n const date = new Date(dateToConvert);\n const formattedDate = date.toLocaleDateString(undefined, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n });\n const formattedTime = date.toLocaleTimeString(undefined, {\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n hour12: true,\n });\n const formattedDateTime = `${formattedDate} ${formattedTime}`;\n return formattedDateTime;\n};\n\nexport const getFormattedDateOnly = (dateToConvert: string) =>\n;", + "signatures": {}, + "detailedLines": [ + { + "text": "export const getFormattedDateTime = (dateToConvert: string) => {", + "lineNumber": 55 + }, + { + "text": " const date = new Date(dateToConvert);", + "lineNumber": 56 + }, + { + "text": " const formattedDate = date.toLocaleDateString(undefined, {", + "lineNumber": 57 + }, + { + "text": " year: \"numeric\",", + "lineNumber": 58 + }, + { + "text": " month: \"2-digit\",", + "lineNumber": 59 + }, + { + "text": " day: \"2-digit\",", + "lineNumber": 60 + }, + { + "text": " });", + "lineNumber": 61 + }, + { + "text": " const formattedTime = date.toLocaleTimeString(undefined, {", + "lineNumber": 62 + }, + { + "text": " hour: \"numeric\",", + "lineNumber": 63 + }, + { + "text": " minute: \"numeric\",", + "lineNumber": 64 + }, + { + "text": " second: \"numeric\",", + "lineNumber": 65 + }, + { + "text": " hour12: true,", + "lineNumber": 66 + }, + { + "text": " });", + "lineNumber": 67 + }, + { + "text": " const formattedDateTime = `${formattedDate} ${formattedTime}`;", + "lineNumber": 68 + }, + { + "text": " return formattedDateTime;", + "lineNumber": 69 + }, + { + "text": "};", + "lineNumber": 70 + }, + { + "lineNumber": 71 + }, + { + "text": "export const getFormattedDateOnly = (dateToConvert: string) =>", + "lineNumber": 72 + }, + { + "text": ";", + "lineNumber": 80 + } + ] + }, + "score": 0.013440899550914764 + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + +Updating icon rendering to add aria-hidden properly: + + +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
+Tool use: **read_lints** + + +Parameters: + +```json +{ + "paths": [ + "src/components/side-bar/index.tsx" + ] +} +``` +Result: + +```json +{ + "linterErrorsByFile": [ + { + "relativeWorkspacePath": "src/components/side-bar/index.tsx" + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +Cleaning up unused imports and variables: + + +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
+ Tool use: **read_lints** • Read lints for 1 file + +Lint paths: + +- `src/components/side-bar/index.tsx` + +Lint results + +Lint errors for `src/components/side-bar/index.tsx` + + +| Message | Range | Severity | +|-------|-------|----------| +| Cannot find name 'useLocation'. Did you mean 'location'? | 42:20-42:31 | DIAGNOSTIC_SEVERITY_ERROR | + + +
+
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +Fixing the remaining error: + + +--- + + +
Tool use: **read_file_v2** • Read file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+
+ +--- + + +
+Tool use: **read_lints** + + +Parameters: + +```json +{ + "paths": [ + "src/components/side-bar/index.tsx" + ] +} +``` +Result: + +```json +{ + "linterErrorsByFile": [ + { + "relativeWorkspacePath": "src/components/side-bar/index.tsx" + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + +Removing the unused import: + + +--- + + + +
Tool use: **edit_file_v2** • Edit file: /Users/vladislavseregin/projects/leadcms/leadcms.admin/src/components/side-bar/index.tsx + +
+ +
+ +--- + + +
+Tool use: **read_lints** + + +Parameters: + +```json +{ + "paths": [ + "src/components/side-bar/index.tsx" + ] +} +``` +Result: + +```json +{ + "linterErrorsByFile": [ + { + "relativeWorkspacePath": "src/components/side-bar/index.tsx" + } + ] +} +``` +Status: **completed** + + +
+
+ +--- + + +## Accessibility improvements + +### 1. **Semantic HTML structure** +- Added `