diff --git a/.env.development b/.env.development
index 14639df..2d4393a 100644
--- a/.env.development
+++ b/.env.development
@@ -1,2 +1,3 @@
VITE_API_URL=http://localhost:8080
-VITE_API_TOKEN_URL=${VITE_API_URL}/token
\ No newline at end of file
+VITE_API_TOKEN_URL=${VITE_API_URL}/token
+VITE_TURNSTILE_SITE_KEY=${TURNSTILE_SITE_KEY}
\ No newline at end of file
diff --git a/.env.production b/.env.production
index 2e21eb8..5062b96 100644
--- a/.env.production
+++ b/.env.production
@@ -1,2 +1,3 @@
-VITE_API_URL=https://api.fatweb.top
-VITE_API_TOKEN_URL=${VITE_API_URL}/token
\ No newline at end of file
+VITE_API_URL=${PRODUCT_API_URL}
+VITE_API_TOKEN_URL=${VITE_API_URL}/token
+VITE_TURNSTILE_SITE_KEY=${TURNSTILE_SITE_KEY}
\ No newline at end of file
diff --git a/.env.testing b/.env.testing
index 86f60f7..7475bc2 100644
--- a/.env.testing
+++ b/.env.testing
@@ -1,3 +1,4 @@
NODE_ENV=development
-VITE_API_URL=https://api-test.fatweb.top
-VITE_API_TOKEN_URL=${VITE_API_URL}/token
\ No newline at end of file
+VITE_API_URL=${TEST_API_URL}
+VITE_API_TOKEN_URL=${VITE_API_URL}/token
+VITE_TURNSTILE_SITE_KEY=${TURNSTILE_SITE_KEY}
\ No newline at end of file
diff --git a/build/resolvers/antd.ts b/build/resolvers/antd.ts
index 3d18000..f0d1b45 100644
--- a/build/resolvers/antd.ts
+++ b/build/resolvers/antd.ts
@@ -295,6 +295,7 @@ const primitiveNames = [
'DropdownButton',
'Drawer',
'Empty',
+ 'FloatButton',
'Form',
'FormItem',
'FormItemRest',
diff --git a/index.html b/index.html
index 93b7658..a51f501 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
-
FatWeb
+ Oxygen Toolbox
diff --git a/package-lock.json b/package-lock.json
index c67c05d..4a95697 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,52 +1,66 @@
{
- "name": "fatweb-ui",
+ "name": "oxygen-ui",
"version": "0.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "fatweb-ui",
+ "name": "oxygen-ui",
"version": "0.0.0",
"dependencies": {
"@ant-design/icons": "^5.2.6",
- "antd": "^5.8.6",
- "axios": "^1.5.0",
- "jwt-decode": "^3.1.2",
+ "@marsidev/react-turnstile": "^0.4.1",
+ "@monaco-editor/react": "^4.6.0",
+ "@typescript/ata": "^0.9.4",
+ "antd": "^5.13.2",
+ "axios": "^1.6.5",
+ "dayjs": "^1.11.10",
+ "echarts": "^5.4.3",
+ "esbuild-wasm": "^0.19.12",
+ "fast-deep-equal": "^3.1.3",
+ "fflate": "^0.8.1",
+ "jwt-decode": "^4.0.0",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
- "match-sorter": "^6.3.1",
+ "match-sorter": "^6.3.3",
+ "moment": "^2.30.1",
+ "monaco-editor": "^0.45.0",
+ "monaco-jsx-syntax-highlight": "^1.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router": "^6.15.0",
- "react-router-dom": "^6.15.0"
+ "react-draggable": "^4.4.6",
+ "react-router": "^6.21.3",
+ "react-router-dom": "^6.21.3",
+ "size-sensor": "^1.0.2",
+ "vanilla-tilt": "^1.8.1"
},
"devDependencies": {
"@svgr/core": "^8.1.0",
"@svgr/plugin-jsx": "^8.1.0",
- "@types/jsdom": "^21.1.2",
- "@types/lodash": "^4.14.198",
- "@types/node": "^20.5.9",
- "@types/react": "^18.2.21",
- "@types/react-dom": "^18.2.7",
- "@typescript-eslint/eslint-plugin": "^6.6.0",
- "@typescript-eslint/parser": "^6.6.0",
- "@vitejs/plugin-react": "^4.0.4",
- "eslint": "^8.48.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-config-standard-with-typescript": "^39.0.0",
- "eslint-plugin-import": "^2.28.1",
- "eslint-plugin-prettier": "^5.0.0",
+ "@types/jsdom": "^21.1.6",
+ "@types/lodash": "^4.14.202",
+ "@types/node": "^20.11.5",
+ "@types/react": "^18.2.48",
+ "@types/react-dom": "^18.2.18",
+ "@typescript-eslint/eslint-plugin": "^6.19.1",
+ "@typescript-eslint/parser": "^6.19.1",
+ "@vitejs/plugin-react": "^4.2.1",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-config-standard-with-typescript": "^43.0.1",
+ "eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-react-refresh": "^0.4.3",
- "jsdom": "^22.1.0",
- "prettier": "^3.0.3",
- "sass": "^1.66.1",
+ "eslint-plugin-react-refresh": "^0.4.5",
+ "jsdom": "^24.0.0",
+ "prettier": "^3.2.4",
+ "sass": "^1.70.0",
"stylelint-config-prettier": "^9.0.5",
- "typescript": "^5.2.2",
- "unplugin-auto-import": "^0.16.6",
- "unplugin-icons": "^0.17.0",
- "vite": "^4.4.9"
+ "typescript": "^5.3.3",
+ "unplugin-auto-import": "^0.17.3",
+ "unplugin-icons": "^0.18.2",
+ "vite": "^5.0.12"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -72,23 +86,23 @@
}
},
"node_modules/@ant-design/colors": {
- "version": "7.0.0",
- "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz",
- "integrity": "sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.2.tgz",
+ "integrity": "sha512-7KJkhTiPiLHSu+LmMJnehfJ6242OCxSlR3xHVBecYxnMW8MS/878NXct1GqYARyL59fyeFdKRxXTfvR9SnDgJg==",
"dependencies": {
- "@ctrl/tinycolor": "^3.4.0"
+ "@ctrl/tinycolor": "^3.6.1"
}
},
"node_modules/@ant-design/cssinjs": {
- "version": "1.17.0",
- "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.17.0.tgz",
- "integrity": "sha512-MgGCZ6sfD3yQB0XW0hN4jgixMxApTlDYyct+pc7fRZNO4CaqWWm/9iXkkljNR27lyWLZmm+XiDfcIOo1bnrnMA==",
+ "version": "1.18.2",
+ "resolved": "https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.18.2.tgz",
+ "integrity": "sha512-514V9rjLaFYb3v4s55/8bg2E6fb81b99s3crDZf4nSwtiDLLXs8axnIph+q2TVkY2hbJPZOn/cVsVcnLkzFy7w==",
"dependencies": {
"@babel/runtime": "^7.11.1",
"@emotion/hash": "^0.8.0",
"@emotion/unitless": "^0.7.5",
"classnames": "^2.3.1",
- "csstype": "^3.0.10",
+ "csstype": "^3.1.3",
"rc-util": "^5.35.0",
"stylis": "^4.0.13"
},
@@ -137,108 +151,86 @@
}
},
"node_modules/@antfu/install-pkg": {
- "version": "0.1.1",
- "resolved": "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz",
- "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.3.1.tgz",
+ "integrity": "sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==",
"dev": true,
"dependencies": {
- "execa": "^5.1.1",
- "find-up": "^5.0.0"
+ "execa": "^8.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@antfu/install-pkg/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
"merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/@antfu/install-pkg/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@antfu/install-pkg/node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
"dev": true,
"engines": {
- "node": ">=10.17.0"
+ "node": ">=16.17.0"
}
},
- "node_modules/@antfu/install-pkg/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "node_modules/@antfu/install-pkg/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true,
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/@antfu/install-pkg/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@antfu/install-pkg/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
+ "node": ">=14"
},
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@antfu/install-pkg/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@antfu/install-pkg/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@antfu/utils": {
- "version": "0.7.6",
- "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.6.tgz",
- "integrity": "sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==",
+ "version": "0.7.7",
+ "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz",
+ "integrity": "sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==",
"dev": true
},
"node_modules/@babel/code-frame": {
- "version": "7.22.13",
- "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.22.13.tgz",
- "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz",
+ "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.22.13",
+ "@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
},
"engines": {
@@ -255,22 +247,22 @@
}
},
"node_modules/@babel/core": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.22.15.tgz",
- "integrity": "sha512-PtZqMmgRrvj8ruoEOIwVA3yoF91O+Hgw9o7DAUTNBA6Mo2jpu31clx9a7Nz/9JznqetTR6zwfC4L3LAjKQXUwA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz",
+ "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.22.15",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.5",
"@babel/helper-compilation-targets": "^7.22.15",
- "@babel/helper-module-transforms": "^7.22.15",
- "@babel/helpers": "^7.22.15",
- "@babel/parser": "^7.22.15",
+ "@babel/helper-module-transforms": "^7.23.3",
+ "@babel/helpers": "^7.23.5",
+ "@babel/parser": "^7.23.5",
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.22.15",
- "@babel/types": "^7.22.15",
- "convert-source-map": "^1.7.0",
+ "@babel/traverse": "^7.23.5",
+ "@babel/types": "^7.23.5",
+ "convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
"json5": "^2.2.3",
@@ -278,15 +270,19 @@
},
"engines": {
"node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
}
},
"node_modules/@babel/generator": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.22.15.tgz",
- "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz",
+ "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==",
"dev": true,
"dependencies": {
- "@babel/types": "^7.22.15",
+ "@babel/types": "^7.23.5",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@@ -312,22 +308,22 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz",
- "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+ "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz",
- "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==",
+ "version": "7.23.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+ "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
"dev": true,
"dependencies": {
- "@babel/template": "^7.22.5",
- "@babel/types": "^7.22.5"
+ "@babel/template": "^7.22.15",
+ "@babel/types": "^7.23.0"
},
"engines": {
"node": ">=6.9.0"
@@ -335,7 +331,7 @@
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
"integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
"dev": true,
"dependencies": {
@@ -347,7 +343,7 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
"integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
"dev": true,
"dependencies": {
@@ -358,16 +354,16 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.15.tgz",
- "integrity": "sha512-l1UiX4UyHSFsYt17iQ3Se5pQQZZHa22zyIXURmvkmLCD4t/aU+dvNWHatKac/D9Vm9UES7nvIqHs4jZqKviUmQ==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+ "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.22.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-module-imports": "^7.22.15",
"@babel/helper-simple-access": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/helper-validator-identifier": "^7.22.15"
+ "@babel/helper-validator-identifier": "^7.22.20"
},
"engines": {
"node": ">=6.9.0"
@@ -378,7 +374,7 @@
},
"node_modules/@babel/helper-plugin-utils": {
"version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
"integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
"dev": true,
"engines": {
@@ -387,7 +383,7 @@
},
"node_modules/@babel/helper-simple-access": {
"version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
"integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
"dev": true,
"dependencies": {
@@ -399,7 +395,7 @@
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.22.6",
- "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
"integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
"dev": true,
"dependencies": {
@@ -410,18 +406,18 @@
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
+ "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
- "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@@ -437,26 +433,26 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.22.15.tgz",
- "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz",
+ "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==",
"dev": true,
"dependencies": {
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.22.15",
- "@babel/types": "^7.22.15"
+ "@babel/traverse": "^7.23.5",
+ "@babel/types": "^7.23.5"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.13",
- "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.22.13.tgz",
- "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
+ "version": "7.23.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
+ "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.22.20",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0"
},
@@ -465,9 +461,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.22.15.tgz",
- "integrity": "sha512-RWmQ/sklUN9BvGGpCDgSubhHWfAx24XDTDObup4ffvxaYsptOg2P3KG0j+1eWKLxpkX0j0uHxmpq2Z1SP/VhxA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz",
+ "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@@ -477,9 +473,9 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz",
- "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz",
+ "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -492,9 +488,9 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.22.5",
- "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz",
- "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==",
+ "version": "7.23.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz",
+ "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==",
"dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.22.5"
@@ -507,9 +503,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.22.15.tgz",
- "integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==",
+ "version": "7.23.8",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.8.tgz",
+ "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -519,7 +515,7 @@
},
"node_modules/@babel/template": {
"version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz",
"integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==",
"dev": true,
"dependencies": {
@@ -532,19 +528,19 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.22.15.tgz",
- "integrity": "sha512-DdHPwvJY0sEeN4xJU5uRLmZjgMMDIvMPniLuYzUVXj/GGzysPl0/fwt44JBkyUIzGJPV8QgHMcQdQ34XFuKTYQ==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz",
+ "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.22.13",
- "@babel/generator": "^7.22.15",
- "@babel/helper-environment-visitor": "^7.22.5",
- "@babel/helper-function-name": "^7.22.5",
+ "@babel/code-frame": "^7.23.5",
+ "@babel/generator": "^7.23.5",
+ "@babel/helper-environment-visitor": "^7.22.20",
+ "@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
- "@babel/parser": "^7.22.15",
- "@babel/types": "^7.22.15",
+ "@babel/parser": "^7.23.5",
+ "@babel/types": "^7.23.5",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -553,13 +549,13 @@
}
},
"node_modules/@babel/types": {
- "version": "7.22.15",
- "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.22.15.tgz",
- "integrity": "sha512-X+NLXr0N8XXmN5ZsaQdm9U2SSC3UbIYq/doL++sueHOTisgZHoKaQtZxGuV2cUPQHMfjKEfg/g6oy7Hm6SKFtA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz",
+ "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==",
"dev": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.15",
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -598,9 +594,9 @@
"integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg=="
},
"node_modules/@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz",
+ "integrity": "sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==",
"cpu": [
"arm"
],
@@ -614,9 +610,9 @@
}
},
"node_modules/@esbuild/android-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
- "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz",
+ "integrity": "sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==",
"cpu": [
"arm64"
],
@@ -630,9 +626,9 @@
}
},
"node_modules/@esbuild/android-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
- "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz",
+ "integrity": "sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==",
"cpu": [
"x64"
],
@@ -646,9 +642,9 @@
}
},
"node_modules/@esbuild/darwin-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
- "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz",
+ "integrity": "sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==",
"cpu": [
"arm64"
],
@@ -662,9 +658,9 @@
}
},
"node_modules/@esbuild/darwin-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
- "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz",
+ "integrity": "sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==",
"cpu": [
"x64"
],
@@ -678,9 +674,9 @@
}
},
"node_modules/@esbuild/freebsd-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
- "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz",
+ "integrity": "sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==",
"cpu": [
"arm64"
],
@@ -694,9 +690,9 @@
}
},
"node_modules/@esbuild/freebsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
- "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz",
+ "integrity": "sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==",
"cpu": [
"x64"
],
@@ -710,9 +706,9 @@
}
},
"node_modules/@esbuild/linux-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
- "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz",
+ "integrity": "sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==",
"cpu": [
"arm"
],
@@ -726,9 +722,9 @@
}
},
"node_modules/@esbuild/linux-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
- "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz",
+ "integrity": "sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==",
"cpu": [
"arm64"
],
@@ -742,9 +738,9 @@
}
},
"node_modules/@esbuild/linux-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
- "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz",
+ "integrity": "sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==",
"cpu": [
"ia32"
],
@@ -758,9 +754,9 @@
}
},
"node_modules/@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz",
+ "integrity": "sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==",
"cpu": [
"loong64"
],
@@ -774,9 +770,9 @@
}
},
"node_modules/@esbuild/linux-mips64el": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
- "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz",
+ "integrity": "sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==",
"cpu": [
"mips64el"
],
@@ -790,9 +786,9 @@
}
},
"node_modules/@esbuild/linux-ppc64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
- "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz",
+ "integrity": "sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==",
"cpu": [
"ppc64"
],
@@ -806,9 +802,9 @@
}
},
"node_modules/@esbuild/linux-riscv64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
- "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz",
+ "integrity": "sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==",
"cpu": [
"riscv64"
],
@@ -822,9 +818,9 @@
}
},
"node_modules/@esbuild/linux-s390x": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
- "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz",
+ "integrity": "sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==",
"cpu": [
"s390x"
],
@@ -838,9 +834,9 @@
}
},
"node_modules/@esbuild/linux-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
- "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz",
+ "integrity": "sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==",
"cpu": [
"x64"
],
@@ -854,9 +850,9 @@
}
},
"node_modules/@esbuild/netbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
- "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz",
+ "integrity": "sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==",
"cpu": [
"x64"
],
@@ -870,9 +866,9 @@
}
},
"node_modules/@esbuild/openbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
- "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz",
+ "integrity": "sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==",
"cpu": [
"x64"
],
@@ -886,9 +882,9 @@
}
},
"node_modules/@esbuild/sunos-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
- "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz",
+ "integrity": "sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==",
"cpu": [
"x64"
],
@@ -902,9 +898,9 @@
}
},
"node_modules/@esbuild/win32-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
- "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz",
+ "integrity": "sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==",
"cpu": [
"arm64"
],
@@ -918,9 +914,9 @@
}
},
"node_modules/@esbuild/win32-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
- "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz",
+ "integrity": "sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==",
"cpu": [
"ia32"
],
@@ -934,9 +930,9 @@
}
},
"node_modules/@esbuild/win32-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
- "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz",
+ "integrity": "sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==",
"cpu": [
"x64"
],
@@ -974,9 +970,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.1.2",
- "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
- "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -991,45 +987,54 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.21.0",
- "resolved": "https://registry.npmmirror.com/globals/-/globals-13.21.0.tgz",
- "integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
+ "version": "13.23.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
+ "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@eslint/eslintrc/node_modules/type-fest": {
"version": "0.20.2",
- "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"engines": {
"node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@eslint/js": {
- "version": "8.48.0",
- "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.48.0.tgz",
- "integrity": "sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==",
+ "version": "8.56.0",
+ "resolved": "https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz",
+ "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.11",
- "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
- "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+ "version": "0.11.13",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+ "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
+ "@humanwhocodes/object-schema": "^2.0.1",
"debug": "^4.1.1",
"minimatch": "^3.0.5"
},
@@ -1047,21 +1052,21 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
"dev": true
},
"node_modules/@iconify/types": {
"version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
"dev": true
},
"node_modules/@iconify/utils": {
- "version": "2.1.9",
- "resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.9.tgz",
- "integrity": "sha512-mo+A4n3MwLlWlg1SoSO+Dt6pOPWKElk9sSJ6ZpuzbB9OcjxN8RUWxU3ulPwB1nglErWKRam2x4BAohbYF7FiFA==",
+ "version": "2.1.12",
+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.12.tgz",
+ "integrity": "sha512-7vf3Uk6H7TKX4QMs2gbg5KR1X9J0NJzKSRNWhMZ+PWN92l0t6Q3tj2ZxLDG07rC3ppWBtTtA4FPmkQphuEmdsg==",
"dev": true,
"dependencies": {
"@antfu/install-pkg": "^0.1.1",
@@ -1072,6 +1077,120 @@
"local-pkg": "^0.4.3"
}
},
+ "node_modules/@iconify/utils/node_modules/@antfu/install-pkg": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.1.1.tgz",
+ "integrity": "sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.1.1",
+ "find-up": "^5.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/local-pkg": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
+ "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@iconify/utils/node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.3",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
@@ -1120,6 +1239,39 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@marsidev/react-turnstile": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/@marsidev/react-turnstile/-/react-turnstile-0.4.1.tgz",
+ "integrity": "sha512-uZusUW9mPr0csWpls8bApe5iuRK0YK7H1PCKqfM4djW3OA9GB9rU68irjk7xRO8qlHyj0aDTeVu9tTLPExBO4Q==",
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@monaco-editor/loader": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/@monaco-editor/loader/-/loader-1.4.0.tgz",
+ "integrity": "sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==",
+ "dependencies": {
+ "state-local": "^1.0.6"
+ },
+ "peerDependencies": {
+ "monaco-editor": ">= 0.21.0 < 1"
+ }
+ },
+ "node_modules/@monaco-editor/react": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmmirror.com/@monaco-editor/react/-/react-4.6.0.tgz",
+ "integrity": "sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==",
+ "dependencies": {
+ "@monaco-editor/loader": "^1.4.0"
+ },
+ "peerDependencies": {
+ "monaco-editor": ">= 0.25.0 < 1",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -1155,32 +1307,24 @@
"node": ">= 8"
}
},
- "node_modules/@pkgr/utils": {
- "version": "2.4.2",
- "resolved": "https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz",
- "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==",
+ "node_modules/@pkgr/core": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/@pkgr/core/-/core-0.1.0.tgz",
+ "integrity": "sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==",
"dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "fast-glob": "^3.3.0",
- "is-glob": "^4.0.3",
- "open": "^9.1.0",
- "picocolors": "^1.0.0",
- "tslib": "^2.6.0"
- },
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
}
},
"node_modules/@rc-component/color-picker": {
- "version": "1.4.1",
- "resolved": "https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz",
- "integrity": "sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.5.1.tgz",
+ "integrity": "sha512-onyAFhWKXuG4P162xE+7IgaJkPkwM94XlOYnQuu69XdXWMfxpeFi6tpJBsieIMV7EnyLV5J3lDzdLiFeK0iEBA==",
"dependencies": {
- "@babel/runtime": "^7.10.1",
- "@ctrl/tinycolor": "^3.6.0",
+ "@babel/runtime": "^7.23.6",
+ "@ctrl/tinycolor": "^3.6.1",
"classnames": "^2.2.6",
- "rc-util": "^5.30.0"
+ "rc-util": "^5.38.1"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -1230,7 +1374,7 @@
},
"node_modules/@rc-component/portal": {
"version": "1.1.2",
- "resolved": "https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz",
+ "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz",
"integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==",
"dependencies": {
"@babel/runtime": "^7.18.0",
@@ -1246,9 +1390,9 @@
}
},
"node_modules/@rc-component/tour": {
- "version": "1.8.1",
- "resolved": "https://registry.npmmirror.com/@rc-component/tour/-/tour-1.8.1.tgz",
- "integrity": "sha512-CsrQnfKgNArxx2j1RNHVLZgVA+rLrEj06lIsl4KSynMqADsqz8eKvVkr0F3p9PA10948M6WEEZt5a/FGAbGR2A==",
+ "version": "1.12.3",
+ "resolved": "https://registry.npmmirror.com/@rc-component/tour/-/tour-1.12.3.tgz",
+ "integrity": "sha512-U4mf1FiUxGCwrX4ed8op77Y8VKur+8Y/61ylxtqGbcSoh1EBC7bWd/DkLu0ClTUrKZInqEi1FL7YgFtnT90vHA==",
"dependencies": {
"@babel/runtime": "^7.18.0",
"@rc-component/portal": "^1.0.0-9",
@@ -1265,17 +1409,16 @@
}
},
"node_modules/@rc-component/trigger": {
- "version": "1.15.6",
- "resolved": "https://registry.npmmirror.com/@rc-component/trigger/-/trigger-1.15.6.tgz",
- "integrity": "sha512-Tl19KaGsShf4yzqxumsXVT4c7j0l20Dxe5hgP5S0HmxyhCg3oKen28ntGavRCIPW7cl7wgsGotntqcIokgDHzg==",
+ "version": "1.18.2",
+ "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-1.18.2.tgz",
+ "integrity": "sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==",
"dependencies": {
- "@babel/runtime": "^7.18.3",
+ "@babel/runtime": "^7.23.2",
"@rc-component/portal": "^1.1.0",
"classnames": "^2.3.2",
- "rc-align": "^4.0.0",
"rc-motion": "^2.0.0",
"rc-resize-observer": "^1.3.1",
- "rc-util": "^5.33.0"
+ "rc-util": "^5.38.0"
},
"engines": {
"node": ">=8.x"
@@ -1286,17 +1429,17 @@
}
},
"node_modules/@remix-run/router": {
- "version": "1.8.0",
- "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.8.0.tgz",
- "integrity": "sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==",
+ "version": "1.14.2",
+ "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.14.2.tgz",
+ "integrity": "sha512-ACXpdMM9hmKZww21yEqWwiLws/UPLhNKvimN8RrYSqPSvB3ov7sLvAcfvaxePeLvccTQKGdkDIhLYApZVDFuKg==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/@rollup/pluginutils": {
- "version": "5.0.4",
- "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.0.4.tgz",
- "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
"dev": true,
"dependencies": {
"@types/estree": "^1.0.0",
@@ -1307,7 +1450,7 @@
"node": ">=14.0.0"
},
"peerDependencies": {
- "rollup": "^1.20.0||^2.0.0||^3.0.0"
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
@@ -1315,6 +1458,162 @@
}
}
},
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz",
+ "integrity": "sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz",
+ "integrity": "sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz",
+ "integrity": "sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz",
+ "integrity": "sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz",
+ "integrity": "sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz",
+ "integrity": "sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz",
+ "integrity": "sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz",
+ "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz",
+ "integrity": "sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz",
+ "integrity": "sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz",
+ "integrity": "sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz",
+ "integrity": "sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
"node_modules/@svgr/babel-plugin-add-jsx-attribute": {
"version": "8.0.0",
"resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
@@ -1480,25 +1779,57 @@
"@svgr/core": "*"
}
},
- "node_modules/@tootallnate/once": {
- "version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/@tootallnate/once/-/once-2.0.0.tgz",
- "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
+ "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,
- "engines": {
- "node": ">= 10"
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.7",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz",
+ "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "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,
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz",
+ "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.20.7"
}
},
"node_modules/@types/estree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.1.tgz",
- "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
"dev": true
},
"node_modules/@types/jsdom": {
- "version": "21.1.2",
- "resolved": "https://registry.npmmirror.com/@types/jsdom/-/jsdom-21.1.2.tgz",
- "integrity": "sha512-bGj+7TaCkOwkJfx7HtS9p22Ij0A2aKMuz8a1+owpkxa1wU/HUBy/WAXhdv90uDdVI9rSjGvUrXmLSeA9VP3JeA==",
+ "version": "21.1.6",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz",
+ "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -1507,9 +1838,9 @@
}
},
"node_modules/@types/json-schema": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz",
- "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==",
+ "version": "7.0.15",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
"dev": true
},
"node_modules/@types/json5": {
@@ -1519,9 +1850,9 @@
"dev": true
},
"node_modules/@types/lodash": {
- "version": "4.14.198",
- "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.198.tgz",
- "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==",
+ "version": "4.14.202",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz",
+ "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==",
"dev": true
},
"node_modules/@types/minimist": {
@@ -1532,10 +1863,13 @@
"peer": true
},
"node_modules/@types/node": {
- "version": "20.5.9",
- "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.5.9.tgz",
- "integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ==",
- "dev": true
+ "version": "20.11.5",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.11.5.tgz",
+ "integrity": "sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
"node_modules/@types/normalize-package-data": {
"version": "2.4.1",
@@ -1552,15 +1886,15 @@
"peer": true
},
"node_modules/@types/prop-types": {
- "version": "15.7.5",
- "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
- "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
+ "version": "15.7.11",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz",
+ "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==",
"dev": true
},
"node_modules/@types/react": {
- "version": "18.2.21",
- "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.21.tgz",
- "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==",
+ "version": "18.2.48",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.48.tgz",
+ "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
@@ -1569,24 +1903,24 @@
}
},
"node_modules/@types/react-dom": {
- "version": "18.2.7",
- "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.2.7.tgz",
- "integrity": "sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==",
+ "version": "18.2.18",
+ "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.2.18.tgz",
+ "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==",
"dev": true,
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/scheduler": {
- "version": "0.16.3",
- "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz",
- "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
+ "version": "0.16.8",
+ "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz",
+ "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==",
"dev": true
},
"node_modules/@types/semver": {
- "version": "7.5.1",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.1.tgz",
- "integrity": "sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==",
+ "version": "7.5.6",
+ "resolved": "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz",
+ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
"dev": true
},
"node_modules/@types/tough-cookie": {
@@ -1596,16 +1930,16 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.6.0.tgz",
- "integrity": "sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.1.tgz",
+ "integrity": "sha512-roQScUGFruWod9CEyoV5KlCYrubC/fvG8/1zXuT0WTcxX87GnMMmnksMwSg99lo1xiKrBzw2icsJPMAw1OtKxg==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.5.1",
- "@typescript-eslint/scope-manager": "6.6.0",
- "@typescript-eslint/type-utils": "6.6.0",
- "@typescript-eslint/utils": "6.6.0",
- "@typescript-eslint/visitor-keys": "6.6.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/type-utils": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
"ignore": "^5.2.4",
@@ -1616,10 +1950,6 @@
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependencies": {
"@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
"eslint": "^7.0.0 || ^8.0.0"
@@ -1664,24 +1994,20 @@
"dev": true
},
"node_modules/@typescript-eslint/parser": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.6.0.tgz",
- "integrity": "sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.19.1.tgz",
+ "integrity": "sha512-WEfX22ziAh6pRE9jnbkkLGp/4RhTpffr2ZK5bJ18M8mIfA8A+k97U9ZyaXCEJRlmMHh7R9MJZWXp/r73DzINVQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "6.6.0",
- "@typescript-eslint/types": "6.6.0",
- "@typescript-eslint/typescript-estree": "6.6.0",
- "@typescript-eslint/visitor-keys": "6.6.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
},
@@ -1692,40 +2018,32 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.6.0.tgz",
- "integrity": "sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz",
+ "integrity": "sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.6.0",
- "@typescript-eslint/visitor-keys": "6.6.0"
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.6.0.tgz",
- "integrity": "sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.19.1.tgz",
+ "integrity": "sha512-0vdyld3ecfxJuddDjACUvlAeYNrHP/pDeQk2pWBR2ESeEzQhg52DF53AbI9QCBkYE23lgkhLCZNkHn2hEXXYIg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "6.6.0",
- "@typescript-eslint/utils": "6.6.0",
+ "@typescript-eslint/typescript-estree": "6.19.1",
+ "@typescript-eslint/utils": "6.19.1",
"debug": "^4.3.4",
"ts-api-utils": "^1.0.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
},
@@ -1736,48 +2054,50 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.6.0.tgz",
- "integrity": "sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.19.1.tgz",
+ "integrity": "sha512-6+bk6FEtBhvfYvpHsDgAL3uo4BfvnTnoge5LrrCj2eJN8g3IJdLTD4B/jK3Q6vo4Ql/Hoip9I8aB6fF+6RfDqg==",
"dev": true,
"engines": {
"node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.6.0.tgz",
- "integrity": "sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz",
+ "integrity": "sha512-aFdAxuhzBFRWhy+H20nYu19+Km+gFfwNO4TEqyszkMcgBDYQjmPJ61erHxuT2ESJXhlhrO7I5EFIlZ+qGR8oVA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.6.0",
- "@typescript-eslint/visitor-keys": "6.6.0",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/visitor-keys": "6.19.1",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
"semver": "^7.5.4",
"ts-api-utils": "^1.0.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
@@ -1787,9 +2107,21 @@
"node": ">=10"
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
"version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
@@ -1804,38 +2136,34 @@
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.6.0.tgz",
- "integrity": "sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.19.1.tgz",
+ "integrity": "sha512-JvjfEZuP5WoMqwh9SPAPDSHSg9FBHHGhjPugSRxu5jMfjvBpq5/sGTD+9M9aQ5sh6iJ8AY/Kk/oUYVEMAPwi7w==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0",
- "@typescript-eslint/scope-manager": "6.6.0",
- "@typescript-eslint/types": "6.6.0",
- "@typescript-eslint/typescript-estree": "6.6.0",
+ "@typescript-eslint/scope-manager": "6.19.1",
+ "@typescript-eslint/types": "6.19.1",
+ "@typescript-eslint/typescript-estree": "6.19.1",
"semver": "^7.5.4"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
- },
"peerDependencies": {
"eslint": "^7.0.0 || ^8.0.0"
}
},
"node_modules/@typescript-eslint/utils/node_modules/lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
@@ -1847,7 +2175,7 @@
},
"node_modules/@typescript-eslint/utils/node_modules/semver": {
"version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dev": true,
"dependencies": {
@@ -1862,55 +2190,60 @@
},
"node_modules/@typescript-eslint/utils/node_modules/yallist": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.6.0.tgz",
- "integrity": "sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==",
+ "version": "6.19.1",
+ "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz",
+ "integrity": "sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "6.6.0",
+ "@typescript-eslint/types": "6.19.1",
"eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^16.0.0 || >=18.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/typescript-eslint"
}
},
+ "node_modules/@typescript/ata": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmmirror.com/@typescript/ata/-/ata-0.9.4.tgz",
+ "integrity": "sha512-PaJ16WouPV/SaA+c0tnOKIqYq24+m93ipl/e0Dkxuianer+ibc5b0/6ZgfCFF8J7QEp57dySMSP9nWOFaCfJnw==",
+ "peerDependencies": {
+ "typescript": ">=4.4.4 <6.0.0"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
"node_modules/@vitejs/plugin-react": {
- "version": "4.0.4",
- "resolved": "https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz",
- "integrity": "sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz",
+ "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.22.9",
- "@babel/plugin-transform-react-jsx-self": "^7.22.5",
- "@babel/plugin-transform-react-jsx-source": "^7.22.5",
+ "@babel/core": "^7.23.5",
+ "@babel/plugin-transform-react-jsx-self": "^7.23.3",
+ "@babel/plugin-transform-react-jsx-source": "^7.23.3",
+ "@types/babel__core": "^7.20.5",
"react-refresh": "^0.14.0"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
- "vite": "^4.2.0"
+ "vite": "^4.2.0 || ^5.0.0"
}
},
- "node_modules/abab": {
- "version": "2.0.6",
- "resolved": "https://registry.npmmirror.com/abab/-/abab-2.0.6.tgz",
- "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==",
- "dev": true
- },
"node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
+ "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -1921,7 +2254,7 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
- "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"peerDependencies": {
@@ -1929,20 +2262,20 @@
}
},
"node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz",
+ "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==",
"dev": true,
"dependencies": {
- "debug": "4"
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 6.0.0"
+ "node": ">= 14"
}
},
"node_modules/ajv": {
"version": "6.12.6",
- "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"dependencies": {
@@ -1950,6 +2283,10 @@
"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/ansi-regex": {
@@ -1963,7 +2300,7 @@
},
"node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
@@ -1974,57 +2311,56 @@
}
},
"node_modules/antd": {
- "version": "5.8.6",
- "resolved": "https://registry.npmmirror.com/antd/-/antd-5.8.6.tgz",
- "integrity": "sha512-DQdHJSq7AH303NgAUZcMRrWqwRYLT9LjesrfhB9xwwi3ooWTMAnS0LrL2NIYHvXZQy1kV0C4mMSiSbBqEKatLA==",
+ "version": "5.13.2",
+ "resolved": "https://registry.npmmirror.com/antd/-/antd-5.13.2.tgz",
+ "integrity": "sha512-P+N8gc0NOPy2WqJj/57Ey3dZUmb7nEUwAM+CIJaR5SOEjZnhEtMGRJSt+3lnhJ3MNRR39aR6NYkRVp2mYfphiA==",
"dependencies": {
- "@ant-design/colors": "^7.0.0",
- "@ant-design/cssinjs": "^1.16.0",
- "@ant-design/icons": "^5.2.2",
- "@ant-design/react-slick": "~1.0.0",
- "@babel/runtime": "^7.18.3",
- "@ctrl/tinycolor": "^3.6.0",
- "@rc-component/color-picker": "~1.4.0",
- "@rc-component/mutate-observer": "^1.0.0",
- "@rc-component/tour": "~1.8.1",
- "@rc-component/trigger": "^1.15.0",
- "classnames": "^2.2.6",
- "copy-to-clipboard": "^3.2.0",
- "dayjs": "^1.11.1",
+ "@ant-design/colors": "^7.0.2",
+ "@ant-design/cssinjs": "^1.18.2",
+ "@ant-design/icons": "^5.2.6",
+ "@ant-design/react-slick": "~1.0.2",
+ "@ctrl/tinycolor": "^3.6.1",
+ "@rc-component/color-picker": "~1.5.1",
+ "@rc-component/mutate-observer": "^1.1.0",
+ "@rc-component/tour": "~1.12.2",
+ "@rc-component/trigger": "^1.18.2",
+ "classnames": "^2.5.1",
+ "copy-to-clipboard": "^3.3.3",
+ "dayjs": "^1.11.10",
"qrcode.react": "^3.1.0",
- "rc-cascader": "~3.14.0",
+ "rc-cascader": "~3.21.0",
"rc-checkbox": "~3.1.0",
- "rc-collapse": "~3.7.0",
- "rc-dialog": "~9.1.0",
- "rc-drawer": "~6.2.0",
+ "rc-collapse": "~3.7.2",
+ "rc-dialog": "~9.3.4",
+ "rc-drawer": "~7.0.0",
"rc-dropdown": "~4.1.0",
- "rc-field-form": "~1.36.0",
- "rc-image": "~7.1.0",
- "rc-input": "~1.1.0",
- "rc-input-number": "~8.0.2",
- "rc-mentions": "~2.5.0",
- "rc-menu": "~9.10.0",
- "rc-motion": "^2.7.3",
- "rc-notification": "~5.1.1",
- "rc-pagination": "~3.6.0",
- "rc-picker": "~3.13.0",
- "rc-progress": "~3.4.1",
+ "rc-field-form": "~1.41.0",
+ "rc-image": "~7.5.1",
+ "rc-input": "~1.4.3",
+ "rc-input-number": "~8.6.1",
+ "rc-mentions": "~2.10.1",
+ "rc-menu": "~9.12.4",
+ "rc-motion": "^2.9.0",
+ "rc-notification": "~5.3.0",
+ "rc-pagination": "~4.0.4",
+ "rc-picker": "~3.14.6",
+ "rc-progress": "~3.5.1",
"rc-rate": "~2.12.0",
- "rc-resize-observer": "^1.2.0",
- "rc-segmented": "~2.2.0",
- "rc-select": "~14.7.1",
- "rc-slider": "~10.2.1",
+ "rc-resize-observer": "^1.4.0",
+ "rc-segmented": "~2.2.2",
+ "rc-select": "~14.11.0",
+ "rc-slider": "~10.5.0",
"rc-steps": "~6.0.1",
"rc-switch": "~4.1.0",
- "rc-table": "~7.32.1",
- "rc-tabs": "~12.9.0",
- "rc-textarea": "~1.3.3",
- "rc-tooltip": "~6.0.0",
- "rc-tree": "~5.7.6",
- "rc-tree-select": "~5.11.0",
- "rc-upload": "~4.3.0",
- "rc-util": "^5.37.0",
- "scroll-into-view-if-needed": "^3.0.3",
+ "rc-table": "~7.37.0",
+ "rc-tabs": "~14.0.0",
+ "rc-textarea": "~1.6.3",
+ "rc-tooltip": "~6.1.3",
+ "rc-tree": "~5.8.2",
+ "rc-tree-select": "~5.17.0",
+ "rc-upload": "~4.5.2",
+ "rc-util": "^5.38.1",
+ "scroll-into-view-if-needed": "^3.1.0",
"throttle-debounce": "^5.0.0"
},
"peerDependencies": {
@@ -2108,33 +2444,39 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
- "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
- "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
"es-shim-unscopables": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/arraybuffer.prototype.slice": {
@@ -2176,7 +2518,7 @@
},
"node_modules/async-validator": {
"version": "4.2.5",
- "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz",
"integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
},
"node_modules/asynckit": {
@@ -2194,11 +2536,11 @@
}
},
"node_modules/axios": {
- "version": "1.5.0",
- "resolved": "https://registry.npmmirror.com/axios/-/axios-1.5.0.tgz",
- "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
+ "version": "1.6.5",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.5.tgz",
+ "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
"dependencies": {
- "follow-redirects": "^1.15.0",
+ "follow-redirects": "^1.15.4",
"form-data": "^4.0.0",
"proxy-from-env": "^1.1.0"
}
@@ -2209,15 +2551,6 @@
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
"dev": true
},
- "node_modules/big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
- "dev": true,
- "engines": {
- "node": ">=0.6"
- }
- },
"node_modules/binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
@@ -2227,18 +2560,6 @@
"node": ">=8"
}
},
- "node_modules/bplist-parser": {
- "version": "0.2.0",
- "resolved": "https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz",
- "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
- "dev": true,
- "dependencies": {
- "big-integer": "^1.6.44"
- },
- "engines": {
- "node": ">= 5.10.0"
- }
- },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2325,18 +2646,6 @@
"dev": true,
"peer": true
},
- "node_modules/bundle-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz",
- "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
- "dev": true,
- "dependencies": {
- "run-applescript": "^5.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/call-bind": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
@@ -2398,7 +2707,7 @@
},
"node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
@@ -2444,13 +2753,21 @@
}
},
"node_modules/classnames": {
- "version": "2.3.2",
- "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz",
- "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
+ },
+ "node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
@@ -2459,7 +2776,7 @@
},
"node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
@@ -2482,9 +2799,9 @@
}
},
"node_modules/compute-scroll-into-view": {
- "version": "3.0.3",
- "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz",
- "integrity": "sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A=="
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz",
+ "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg=="
},
"node_modules/concat-map": {
"version": "0.0.1",
@@ -2493,9 +2810,9 @@
"dev": true
},
"node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "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/copy-to-clipboard": {
@@ -2567,40 +2884,39 @@
}
},
"node_modules/cssstyle": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-3.0.0.tgz",
- "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-4.0.1.tgz",
+ "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
"dev": true,
"dependencies": {
"rrweb-cssom": "^0.6.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"node_modules/data-urls": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-4.0.0.tgz",
- "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
"dev": true,
"dependencies": {
- "abab": "^2.0.6",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^12.0.0"
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/dayjs": {
- "version": "1.11.9",
- "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.9.tgz",
- "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA=="
+ "version": "1.11.10",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
},
"node_modules/debug": {
"version": "4.3.4",
@@ -2665,41 +2981,18 @@
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
- "node_modules/default-browser": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz",
- "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
+ "node_modules/define-data-property": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz",
+ "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==",
"dev": true,
"dependencies": {
- "bundle-name": "^3.0.0",
- "default-browser-id": "^3.0.0",
- "execa": "^7.1.1",
- "titleize": "^3.0.0"
+ "get-intrinsic": "^1.2.1",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.0"
},
"engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/default-browser-id": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz",
- "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
- "dev": true,
- "dependencies": {
- "bplist-parser": "^0.2.0",
- "untildify": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
- "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
- "dev": true,
- "engines": {
- "node": ">=12"
+ "node": ">= 0.4"
}
},
"node_modules/define-properties": {
@@ -2747,23 +3040,6 @@
"node": ">=6.0.0"
}
},
- "node_modules/dom-align": {
- "version": "1.12.4",
- "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz",
- "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw=="
- },
- "node_modules/domexception": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/domexception/-/domexception-4.0.0.tgz",
- "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==",
- "dev": true,
- "dependencies": {
- "webidl-conversions": "^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/dot-case": {
"version": "3.0.4",
"resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz",
@@ -2774,6 +3050,20 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/echarts": {
+ "version": "5.4.3",
+ "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz",
+ "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==",
+ "dependencies": {
+ "tslib": "2.3.0",
+ "zrender": "5.4.4"
+ }
+ },
+ "node_modules/echarts/node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.508",
"resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz",
@@ -2893,9 +3183,9 @@
}
},
"node_modules/esbuild": {
- "version": "0.18.20",
- "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz",
- "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
+ "version": "0.19.8",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.8.tgz",
+ "integrity": "sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -2905,28 +3195,39 @@
"node": ">=12"
},
"optionalDependencies": {
- "@esbuild/android-arm": "0.18.20",
- "@esbuild/android-arm64": "0.18.20",
- "@esbuild/android-x64": "0.18.20",
- "@esbuild/darwin-arm64": "0.18.20",
- "@esbuild/darwin-x64": "0.18.20",
- "@esbuild/freebsd-arm64": "0.18.20",
- "@esbuild/freebsd-x64": "0.18.20",
- "@esbuild/linux-arm": "0.18.20",
- "@esbuild/linux-arm64": "0.18.20",
- "@esbuild/linux-ia32": "0.18.20",
- "@esbuild/linux-loong64": "0.18.20",
- "@esbuild/linux-mips64el": "0.18.20",
- "@esbuild/linux-ppc64": "0.18.20",
- "@esbuild/linux-riscv64": "0.18.20",
- "@esbuild/linux-s390x": "0.18.20",
- "@esbuild/linux-x64": "0.18.20",
- "@esbuild/netbsd-x64": "0.18.20",
- "@esbuild/openbsd-x64": "0.18.20",
- "@esbuild/sunos-x64": "0.18.20",
- "@esbuild/win32-arm64": "0.18.20",
- "@esbuild/win32-ia32": "0.18.20",
- "@esbuild/win32-x64": "0.18.20"
+ "@esbuild/android-arm": "0.19.8",
+ "@esbuild/android-arm64": "0.19.8",
+ "@esbuild/android-x64": "0.19.8",
+ "@esbuild/darwin-arm64": "0.19.8",
+ "@esbuild/darwin-x64": "0.19.8",
+ "@esbuild/freebsd-arm64": "0.19.8",
+ "@esbuild/freebsd-x64": "0.19.8",
+ "@esbuild/linux-arm": "0.19.8",
+ "@esbuild/linux-arm64": "0.19.8",
+ "@esbuild/linux-ia32": "0.19.8",
+ "@esbuild/linux-loong64": "0.19.8",
+ "@esbuild/linux-mips64el": "0.19.8",
+ "@esbuild/linux-ppc64": "0.19.8",
+ "@esbuild/linux-riscv64": "0.19.8",
+ "@esbuild/linux-s390x": "0.19.8",
+ "@esbuild/linux-x64": "0.19.8",
+ "@esbuild/netbsd-x64": "0.19.8",
+ "@esbuild/openbsd-x64": "0.19.8",
+ "@esbuild/sunos-x64": "0.19.8",
+ "@esbuild/win32-arm64": "0.19.8",
+ "@esbuild/win32-ia32": "0.19.8",
+ "@esbuild/win32-x64": "0.19.8"
+ }
+ },
+ "node_modules/esbuild-wasm": {
+ "version": "0.19.12",
+ "resolved": "https://registry.npmmirror.com/esbuild-wasm/-/esbuild-wasm-0.19.12.tgz",
+ "integrity": "sha512-Zmc4hk6FibJZBcTx5/8K/4jT3/oG1vkGTEeKJUQFCUQKimD6Q7+adp/bdVQyYJFolMKaXkQnVZdV4O5ZaTYmyQ==",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/escalade": {
@@ -2940,7 +3241,7 @@
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
- "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"dev": true,
"engines": {
@@ -2948,18 +3249,19 @@
}
},
"node_modules/eslint": {
- "version": "8.48.0",
- "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.48.0.tgz",
- "integrity": "sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==",
+ "version": "8.56.0",
+ "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz",
+ "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
- "@eslint/eslintrc": "^2.1.2",
- "@eslint/js": "8.48.0",
- "@humanwhocodes/config-array": "^0.11.10",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.56.0",
+ "@humanwhocodes/config-array": "^0.11.13",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -2999,9 +3301,9 @@
}
},
"node_modules/eslint-config-prettier": {
- "version": "9.0.0",
- "resolved": "https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
- "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
@@ -3026,9 +3328,9 @@
}
},
"node_modules/eslint-config-standard-with-typescript": {
- "version": "39.0.0",
- "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-39.0.0.tgz",
- "integrity": "sha512-CiV2LS4NUeeRmDTDf1ocUMpMxitSyW0g+Y/N7ecElwGj188GahbcQgqfBNyVsIXQxHlZVBlOjkbg3oUI0R3KBg==",
+ "version": "43.0.1",
+ "resolved": "https://registry.npmmirror.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz",
+ "integrity": "sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA==",
"dev": true,
"dependencies": {
"@typescript-eslint/parser": "^6.4.0",
@@ -3107,28 +3409,28 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.28.1",
- "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.28.1.tgz",
- "integrity": "sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==",
+ "version": "2.29.1",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz",
+ "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.6",
- "array.prototype.findlastindex": "^1.2.2",
- "array.prototype.flat": "^1.3.1",
- "array.prototype.flatmap": "^1.3.1",
+ "array-includes": "^3.1.7",
+ "array.prototype.findlastindex": "^1.2.3",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
"debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.7",
+ "eslint-import-resolver-node": "^0.3.9",
"eslint-module-utils": "^2.8.0",
- "has": "^1.0.3",
- "is-core-module": "^2.13.0",
+ "hasown": "^2.0.0",
+ "is-core-module": "^2.13.1",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.fromentries": "^2.0.6",
- "object.groupby": "^1.0.0",
- "object.values": "^1.1.6",
+ "object.fromentries": "^2.0.7",
+ "object.groupby": "^1.0.1",
+ "object.values": "^1.1.7",
"semver": "^6.3.1",
- "tsconfig-paths": "^3.14.2"
+ "tsconfig-paths": "^3.15.0"
},
"engines": {
"node": ">=4"
@@ -3218,13 +3520,13 @@
"peer": true
},
"node_modules/eslint-plugin-prettier": {
- "version": "5.0.0",
- "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz",
- "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmmirror.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
+ "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
- "synckit": "^0.8.5"
+ "synckit": "^0.8.6"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -3232,6 +3534,7 @@
"peerDependencies": {
"@types/eslint": ">=8.0.0",
"eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
"prettier": ">=3.0.0"
},
"peerDependenciesMeta": {
@@ -3268,9 +3571,9 @@
}
},
"node_modules/eslint-plugin-react-refresh": {
- "version": "0.4.3",
- "resolved": "https://registry.npmmirror.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz",
- "integrity": "sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==",
+ "version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.5.tgz",
+ "integrity": "sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==",
"dev": true,
"peerDependencies": {
"eslint": ">=7"
@@ -3394,7 +3697,7 @@
},
"node_modules/espree": {
"version": "9.6.1",
- "resolved": "https://registry.npmmirror.com/espree/-/espree-9.6.1.tgz",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
@@ -3404,6 +3707,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/esquery": {
@@ -3454,31 +3760,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/execa": {
- "version": "7.2.0",
- "resolved": "https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz",
- "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.1",
- "human-signals": "^4.3.0",
- "is-stream": "^3.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^5.1.0",
- "onetime": "^6.0.0",
- "signal-exit": "^3.0.7",
- "strip-final-newline": "^3.0.0"
- },
- "engines": {
- "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
- }
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-diff": {
"version": "1.3.0",
@@ -3487,9 +3772,9 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -3516,7 +3801,7 @@
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true
},
@@ -3545,6 +3830,11 @@
"reusify": "^1.0.4"
}
},
+ "node_modules/fflate": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.1.tgz",
+ "integrity": "sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ=="
+ },
"node_modules/file-entry-cache": {
"version": "6.0.1",
"resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -3603,9 +3893,9 @@
"dev": true
},
"node_modules/follow-redirects": {
- "version": "1.15.2",
- "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz",
- "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "version": "1.15.5",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.5.tgz",
+ "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
"engines": {
"node": ">=4.0"
},
@@ -3658,10 +3948,13 @@
}
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/function.prototype.name": {
"version": "1.1.6",
@@ -3799,7 +4092,7 @@
},
"node_modules/globals": {
"version": "11.12.0",
- "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true,
"engines": {
@@ -3887,7 +4180,7 @@
},
"node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
@@ -3933,6 +4226,18 @@
"node": ">= 0.4"
}
},
+ "node_modules/hasown": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
+ "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/hosted-git-info": {
"version": "4.1.0",
"resolved": "https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
@@ -3967,15 +4272,15 @@
"peer": true
},
"node_modules/html-encoding-sniffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz",
- "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
"dev": true,
"dependencies": {
- "whatwg-encoding": "^2.0.0"
+ "whatwg-encoding": "^3.1.1"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/html-tags": {
@@ -3989,44 +4294,34 @@
}
},
"node_modules/http-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz",
+ "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==",
"dev": true,
"dependencies": {
- "@tootallnate/once": "2",
- "agent-base": "6",
- "debug": "4"
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==",
"dev": true,
"dependencies": {
- "agent-base": "6",
+ "agent-base": "^7.0.2",
"debug": "4"
},
"engines": {
- "node": ">= 6"
- }
- },
- "node_modules/human-signals": {
- "version": "4.3.1",
- "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz",
- "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
- "dev": true,
- "engines": {
- "node": ">=14.18.0"
+ "node": ">= 14"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
- "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
"dev": true,
"dependencies": {
@@ -4196,12 +4491,15 @@
}
},
"node_modules/is-core-module": {
- "version": "2.13.0",
- "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.0.tgz",
- "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-date-object": {
@@ -4216,18 +4514,6 @@
"node": ">= 0.4"
}
},
- "node_modules/is-docker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz",
- "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
- "dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -4259,21 +4545,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/is-inside-container": {
- "version": "1.0.0",
- "resolved": "https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz",
- "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
- "dev": true,
- "dependencies": {
- "is-docker": "^3.0.0"
- },
- "bin": {
- "is-inside-container": "cli.js"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
"node_modules/is-negative-zero": {
"version": "2.0.2",
"resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
@@ -4415,30 +4686,6 @@
"call-bind": "^1.0.2"
}
},
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "dev": true,
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-wsl/node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "dev": true,
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
@@ -4469,40 +4716,38 @@
}
},
"node_modules/jsdom": {
- "version": "22.1.0",
- "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-22.1.0.tgz",
- "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==",
+ "version": "24.0.0",
+ "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-24.0.0.tgz",
+ "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==",
"dev": true,
"dependencies": {
- "abab": "^2.0.6",
- "cssstyle": "^3.0.0",
- "data-urls": "^4.0.0",
+ "cssstyle": "^4.0.1",
+ "data-urls": "^5.0.0",
"decimal.js": "^10.4.3",
- "domexception": "^4.0.0",
"form-data": "^4.0.0",
- "html-encoding-sniffer": "^3.0.0",
- "http-proxy-agent": "^5.0.0",
- "https-proxy-agent": "^5.0.1",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.2",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.4",
+ "nwsapi": "^2.2.7",
"parse5": "^7.1.2",
"rrweb-cssom": "^0.6.0",
"saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.1.2",
- "w3c-xmlserializer": "^4.0.0",
+ "tough-cookie": "^4.1.3",
+ "w3c-xmlserializer": "^5.0.0",
"webidl-conversions": "^7.0.0",
- "whatwg-encoding": "^2.0.0",
- "whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^12.0.1",
- "ws": "^8.13.0",
- "xml-name-validator": "^4.0.0"
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0",
+ "ws": "^8.16.0",
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"peerDependencies": {
- "canvas": "^2.5.0"
+ "canvas": "^2.11.2"
},
"peerDependenciesMeta": {
"canvas": {
@@ -4512,7 +4757,7 @@
},
"node_modules/jsesc": {
"version": "2.5.2",
- "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true,
"bin": {
@@ -4536,7 +4781,7 @@
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
- "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
@@ -4568,14 +4813,17 @@
},
"node_modules/jsonc-parser": {
"version": "3.2.0",
- "resolved": "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
"dev": true
},
"node_modules/jwt-decode": {
- "version": "3.1.2",
- "resolved": "https://registry.npmmirror.com/jwt-decode/-/jwt-decode-3.1.2.tgz",
- "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A=="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz",
+ "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==",
+ "engines": {
+ "node": ">=18"
+ }
},
"node_modules/keyv": {
"version": "4.5.3",
@@ -4605,7 +4853,7 @@
},
"node_modules/kolorist": {
"version": "1.8.0",
- "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
"integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
"dev": true
},
@@ -4637,12 +4885,19 @@
"dev": true
},
"node_modules/local-pkg": {
- "version": "0.4.3",
- "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz",
- "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
"dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
"engines": {
"node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
"node_modules/localforage": {
@@ -4713,9 +4968,9 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.3",
- "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.3.tgz",
- "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==",
+ "version": "0.30.5",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
+ "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
"dev": true,
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
@@ -4735,12 +4990,12 @@
}
},
"node_modules/match-sorter": {
- "version": "6.3.1",
- "resolved": "https://registry.npmmirror.com/match-sorter/-/match-sorter-6.3.1.tgz",
- "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==",
+ "version": "6.3.3",
+ "resolved": "https://registry.npmmirror.com/match-sorter/-/match-sorter-6.3.3.tgz",
+ "integrity": "sha512-sgiXxrRijEe0SzHKGX4HouCpfHRPnqteH42UdMEW7BlWy990ZkzcvonJGv4Uu9WE7Y1f8Yocm91+4qFPCbmNww==",
"dependencies": {
- "@babel/runtime": "^7.12.5",
- "remove-accents": "0.4.2"
+ "@babel/runtime": "^7.23.8",
+ "remove-accents": "0.5.0"
}
},
"node_modules/mathml-tag-names": {
@@ -4875,7 +5130,7 @@
},
"node_modules/mlly": {
"version": "1.4.2",
- "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.4.2.tgz",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz",
"integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==",
"dev": true,
"dependencies": {
@@ -4885,6 +5140,24 @@
"ufo": "^1.3.0"
}
},
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/monaco-editor": {
+ "version": "0.45.0",
+ "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.45.0.tgz",
+ "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA=="
+ },
+ "node_modules/monaco-jsx-syntax-highlight": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/monaco-jsx-syntax-highlight/-/monaco-jsx-syntax-highlight-1.2.0.tgz",
+ "integrity": "sha512-sKzfmNMxLp3Dcwndz0F/EdP3rqe+Z6FbDPazj+/ByNbqoXWkzgb/ocat8h3vpiTwPPiDtSHidT0BFMvLkMtG8A=="
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
@@ -4892,10 +5165,16 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -5013,6 +5292,14 @@
"integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==",
"dev": true
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz",
@@ -5104,21 +5391,6 @@
"node": ">=12"
}
},
- "node_modules/open": {
- "version": "9.1.0",
- "resolved": "https://registry.npmmirror.com/open/-/open-9.1.0.tgz",
- "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
- "dev": true,
- "dependencies": {
- "default-browser": "^4.0.0",
- "define-lazy-prop": "^3.0.0",
- "is-inside-container": "^1.0.0",
- "is-wsl": "^2.2.0"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
"node_modules/optionator": {
"version": "0.9.3",
"resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.3.tgz",
@@ -5250,7 +5522,7 @@
},
"node_modules/pathe": {
"version": "1.1.1",
- "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
"integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
"dev": true
},
@@ -5271,7 +5543,7 @@
},
"node_modules/pkg-types": {
"version": "1.0.3",
- "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
"integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
"dev": true,
"dependencies": {
@@ -5281,12 +5553,26 @@
}
},
"node_modules/postcss": {
- "version": "8.4.29",
- "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.29.tgz",
- "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
+ "version": "8.4.32",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
+ "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
"source-map-js": "^1.0.2"
},
@@ -5352,9 +5638,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.2.4",
+ "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.4.tgz",
+ "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -5375,6 +5661,21 @@
"node": ">=6.0.0"
}
},
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/prop-types/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
"node_modules/proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -5387,9 +5688,9 @@
"dev": true
},
"node_modules/punycode": {
- "version": "2.3.0",
- "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.0.tgz",
- "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true,
"engines": {
"node": ">=6"
@@ -5425,33 +5726,17 @@
"node": ">=8"
}
},
- "node_modules/rc-align": {
- "version": "4.0.15",
- "resolved": "https://registry.npmmirror.com/rc-align/-/rc-align-4.0.15.tgz",
- "integrity": "sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==",
- "dependencies": {
- "@babel/runtime": "^7.10.1",
- "classnames": "2.x",
- "dom-align": "^1.7.0",
- "rc-util": "^5.26.0",
- "resize-observer-polyfill": "^1.5.1"
- },
- "peerDependencies": {
- "react": ">=16.9.0",
- "react-dom": ">=16.9.0"
- }
- },
"node_modules/rc-cascader": {
- "version": "3.14.1",
- "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.14.1.tgz",
- "integrity": "sha512-fCsgjLIQqYZMhFj9UT+x2ZW4uobx7OP5yivcn6Xto5fuxHaldphsryzCeUVmreQOHEo0RP+032Ip9RDzrKVKJA==",
+ "version": "3.21.0",
+ "resolved": "https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.21.0.tgz",
+ "integrity": "sha512-7aADjbfqiR4HrTHG9S019p2jeKM/AxISPA5+sBJR7Mlhm/i+lR7VjBju3KQulJNJLKNEnQYg4TFhcPf2SLua9g==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"array-tree-filter": "^2.1.0",
"classnames": "^2.3.1",
- "rc-select": "~14.7.0",
- "rc-tree": "~5.7.0",
- "rc-util": "^5.35.0"
+ "rc-select": "~14.11.0-0",
+ "rc-tree": "~5.8.1",
+ "rc-util": "^5.37.0"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -5473,9 +5758,9 @@
}
},
"node_modules/rc-collapse": {
- "version": "3.7.1",
- "resolved": "https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.7.1.tgz",
- "integrity": "sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.2.tgz",
+ "integrity": "sha512-ZRw6ipDyOnfLFySxAiCMdbHtb5ePAsB9mT17PA6y1mRD/W6KHRaZeb5qK/X9xDV1CqgyxMpzw0VdS74PCcUk4A==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -5488,9 +5773,9 @@
}
},
"node_modules/rc-dialog": {
- "version": "9.1.0",
- "resolved": "https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.1.0.tgz",
- "integrity": "sha512-5ry+JABAWEbaKyYsmITtrJbZbJys8CtMyzV8Xn4LYuXMeUx5XVHNyJRoqLFE4AzBuXXzOWeaC49cg+XkxK6kHA==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.3.4.tgz",
+ "integrity": "sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/portal": "^1.0.0-8",
@@ -5504,15 +5789,15 @@
}
},
"node_modules/rc-drawer": {
- "version": "6.2.0",
- "resolved": "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-6.2.0.tgz",
- "integrity": "sha512-spPkZ3WvP0U0vy5dyzSwlUJ/+vLFtjP/cTwSwejhQRoDBaexSZHsBhELoCZcEggI7LQ7typmtG30lAue2HEhvA==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/rc-drawer/-/rc-drawer-7.0.0.tgz",
+ "integrity": "sha512-ePcS4KtQnn57bCbVXazHN2iC8nTPCXlWEIA/Pft87Pd9U7ZeDkdRzG47jWG2/TAFXFlFltRAMcslqmUM8NPCGA==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/portal": "^1.1.1",
"classnames": "^2.2.6",
"rc-motion": "^2.6.1",
- "rc-util": "^5.21.2"
+ "rc-util": "^5.36.0"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -5535,9 +5820,9 @@
}
},
"node_modules/rc-field-form": {
- "version": "1.36.2",
- "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.36.2.tgz",
- "integrity": "sha512-tCF/JjUsnxW80Gk4E4ZH74ONsaQMxVTRtui6XhQB8DJc4FHWLLa5pP8zwhxtPKC5NaO0QZ0Cv79JggDubn6n2g==",
+ "version": "1.41.0",
+ "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-1.41.0.tgz",
+ "integrity": "sha512-k9AS0wmxfJfusWDP/YXWTpteDNaQ4isJx9UKxx4/e8Dub4spFeZ54/EuN2sYrMRID/+hUznPgVZeg+Gf7XSYCw==",
"dependencies": {
"@babel/runtime": "^7.18.0",
"async-validator": "^4.1.0",
@@ -5552,14 +5837,14 @@
}
},
"node_modules/rc-image": {
- "version": "7.1.3",
- "resolved": "https://registry.npmmirror.com/rc-image/-/rc-image-7.1.3.tgz",
- "integrity": "sha512-foMl1rcit1F0+vgxE5kf0c8TygQcHhILsOohQUL+JMUbzOo3OBFRcehJudYbqbCTArzCecS8nA1irUU9vvgQbg==",
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.5.1.tgz",
+ "integrity": "sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==",
"dependencies": {
"@babel/runtime": "^7.11.2",
"@rc-component/portal": "^1.0.2",
"classnames": "^2.2.6",
- "rc-dialog": "~9.1.0",
+ "rc-dialog": "~9.3.4",
"rc-motion": "^2.6.2",
"rc-util": "^5.34.1"
},
@@ -5569,9 +5854,9 @@
}
},
"node_modules/rc-input": {
- "version": "1.1.1",
- "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.1.1.tgz",
- "integrity": "sha512-NTR1Z4em681L8/ewb2KR80RykSmN8I2mzqzJDCoUmTrV1BB9Hk5d7ha4TnfgdEPPL148N+603sW2LExSXk1IbA==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmmirror.com/rc-input/-/rc-input-1.4.3.tgz",
+ "integrity": "sha512-aHyQUAIRmTlOnvk5EcNqEpJ+XMtfMpYRAJayIlJfsvvH9cAKUWboh4egm23vgMA7E+c/qm4BZcnrDcA960GC1w==",
"dependencies": {
"@babel/runtime": "^7.11.1",
"classnames": "^2.2.1",
@@ -5583,14 +5868,14 @@
}
},
"node_modules/rc-input-number": {
- "version": "8.0.4",
- "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.0.4.tgz",
- "integrity": "sha512-TP+G5b7mZtbwXJ/YEZXF/OgbEZ6iqD4+RSuxZJ8VGKGXDcdt0FKIvpFoNQr/knspdFC4OxA0OfsWfFWfN4XSyA==",
+ "version": "8.6.1",
+ "resolved": "https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.6.1.tgz",
+ "integrity": "sha512-gaAMUKtUKLktJ3Yx93tjgYY1M0HunnoqzPEqkb9//Ydup4DcG0TFL9yHBA3pgVdNIt5f0UWyHCgFBj//JxeD6A==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/mini-decimal": "^1.0.1",
"classnames": "^2.2.5",
- "rc-input": "~1.1.0",
+ "rc-input": "~1.4.0",
"rc-util": "^5.28.0"
},
"peerDependencies": {
@@ -5599,17 +5884,17 @@
}
},
"node_modules/rc-mentions": {
- "version": "2.5.0",
- "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.5.0.tgz",
- "integrity": "sha512-rERXsbUTNVrb5T/iDC0ki/SRGWJnOVraDy6O25Us3FSpuUZ3uq2TPZB4fRk0Hss5kyiEPzz2sprhkI4b+F4jUw==",
+ "version": "2.10.1",
+ "resolved": "https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.10.1.tgz",
+ "integrity": "sha512-72qsEcr/7su+a07ndJ1j8rI9n0Ka/ngWOLYnWMMv0p2mi/5zPwPrEDTt6Uqpe8FWjWhueDJx/vzunL6IdKDYMg==",
"dependencies": {
"@babel/runtime": "^7.22.5",
"@rc-component/trigger": "^1.5.0",
"classnames": "^2.2.6",
- "rc-input": "~1.1.0",
- "rc-menu": "~9.10.0",
- "rc-textarea": "~1.3.0",
- "rc-util": "^5.22.5"
+ "rc-input": "~1.4.0",
+ "rc-menu": "~9.12.0",
+ "rc-textarea": "~1.6.1",
+ "rc-util": "^5.34.1"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -5617,12 +5902,12 @@
}
},
"node_modules/rc-menu": {
- "version": "9.10.0",
- "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.10.0.tgz",
- "integrity": "sha512-g27kpXaAoJh/fkPZF65/d4V+w4DhDeqomBdPcGnkFAcJnEM4o21TnVccrBUoDedLKzC7wJRw1Q7VTqEsfEufmw==",
+ "version": "9.12.4",
+ "resolved": "https://registry.npmmirror.com/rc-menu/-/rc-menu-9.12.4.tgz",
+ "integrity": "sha512-t2NcvPLV1mFJzw4F21ojOoRVofK2rWhpKPx69q2raUsiHPDP6DDevsBILEYdsIegqBeSXoWs2bf6CueBKg3BFg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
- "@rc-component/trigger": "^1.6.2",
+ "@rc-component/trigger": "^1.17.0",
"classnames": "2.x",
"rc-motion": "^2.4.3",
"rc-overflow": "^1.3.1",
@@ -5634,9 +5919,9 @@
}
},
"node_modules/rc-motion": {
- "version": "2.8.0",
- "resolved": "https://registry.npmmirror.com/rc-motion/-/rc-motion-2.8.0.tgz",
- "integrity": "sha512-9gWWzlPvx/IJANj+t+ArqLCQ43rCWYLpOUe6+WJSAGb+b+fqBcfx81qPhg6b+ewa6g3mGNDhkTpBrVrCC4gcXA==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.0.tgz",
+ "integrity": "sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==",
"dependencies": {
"@babel/runtime": "^7.11.1",
"classnames": "^2.2.1",
@@ -5648,13 +5933,13 @@
}
},
"node_modules/rc-notification": {
- "version": "5.1.1",
- "resolved": "https://registry.npmmirror.com/rc-notification/-/rc-notification-5.1.1.tgz",
- "integrity": "sha512-BPnded/WmWFE57ubqhVCgRSuedfQQNeSOYqdwppyr2B/Wt909gYFKyWAkFJVXuppAjsOGop05a93UaxjmUFdkg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.3.0.tgz",
+ "integrity": "sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
- "rc-motion": "^2.6.0",
+ "rc-motion": "^2.9.0",
"rc-util": "^5.20.1"
},
"engines": {
@@ -5681,13 +5966,13 @@
}
},
"node_modules/rc-pagination": {
- "version": "3.6.1",
- "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.6.1.tgz",
- "integrity": "sha512-R/sUnKKXx1Nm4kZfUKS3YKa7yEPF1ZkVB/AynQaHt+nMER7h9wPTfliDJFdYo+RM/nk2JD4Yc5QpUq8fIQHeug==",
+ "version": "4.0.4",
+ "resolved": "https://registry.npmmirror.com/rc-pagination/-/rc-pagination-4.0.4.tgz",
+ "integrity": "sha512-GGrLT4NgG6wgJpT/hHIpL9nELv27A1XbSZzECIuQBQTVSf4xGKxWr6I/jhpRPauYEWEbWVw22ObG6tJQqwJqWQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
- "classnames": "^2.2.1",
- "rc-util": "^5.32.2"
+ "classnames": "^2.3.2",
+ "rc-util": "^5.38.0"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -5695,9 +5980,9 @@
}
},
"node_modules/rc-picker": {
- "version": "3.13.1",
- "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-3.13.1.tgz",
- "integrity": "sha512-211SrinX5IXZ9FMMDUMyPLuGOdfftUtd8zj4lqudpFxlMdtgV5+hXUJMBKb26xmDsleOm5iySK6KIHgiaI+U4w==",
+ "version": "3.14.6",
+ "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-3.14.6.tgz",
+ "integrity": "sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/trigger": "^1.5.0",
@@ -5731,9 +6016,9 @@
}
},
"node_modules/rc-progress": {
- "version": "3.4.2",
- "resolved": "https://registry.npmmirror.com/rc-progress/-/rc-progress-3.4.2.tgz",
- "integrity": "sha512-iAGhwWU+tsayP+Jkl9T4+6rHeQTG9kDz8JAHZk4XtQOcYN5fj9H34NXNEdRdZx94VUDHMqCb1yOIvi8eJRh67w==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-3.5.1.tgz",
+ "integrity": "sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.6",
@@ -5762,13 +6047,13 @@
}
},
"node_modules/rc-resize-observer": {
- "version": "1.3.1",
- "resolved": "https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.3.1.tgz",
- "integrity": "sha512-iFUdt3NNhflbY3mwySv5CA1TC06zdJ+pfo0oc27xpf4PIOvfZwZGtD9Kz41wGYqC4SLio93RVAirSSpYlV/uYg==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz",
+ "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==",
"dependencies": {
"@babel/runtime": "^7.20.7",
"classnames": "^2.2.1",
- "rc-util": "^5.27.0",
+ "rc-util": "^5.38.0",
"resize-observer-polyfill": "^1.5.1"
},
"peerDependencies": {
@@ -5792,9 +6077,9 @@
}
},
"node_modules/rc-select": {
- "version": "14.7.4",
- "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.7.4.tgz",
- "integrity": "sha512-qRUpvMVXFy6rdHe+qzHXAqyQAfhErC/oY8dcRtoRjoz0lz2Nx3J+lLL5AnEbjnwlS+/kQTJUZ/65WyCwWwcLwQ==",
+ "version": "14.11.0",
+ "resolved": "https://registry.npmmirror.com/rc-select/-/rc-select-14.11.0.tgz",
+ "integrity": "sha512-8J8G/7duaGjFiTXCBLWfh5P+KDWyA3KTlZDfV3xj/asMPqB2cmxfM+lH50wRiPIRsCQ6EbkCFBccPuaje3DHIg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"@rc-component/trigger": "^1.5.0",
@@ -5813,9 +6098,9 @@
}
},
"node_modules/rc-slider": {
- "version": "10.2.1",
- "resolved": "https://registry.npmmirror.com/rc-slider/-/rc-slider-10.2.1.tgz",
- "integrity": "sha512-l355C/65iV4UFp7mXq5xBTNX2/tF2g74VWiTVlTpNp+6vjE/xaHHNiQq5Af+Uu28uUiqCuH/QXs5HfADL9KJ/A==",
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-10.5.0.tgz",
+ "integrity": "sha512-xiYght50cvoODZYI43v3Ylsqiw14+D7ELsgzR40boDZaya1HFa1Etnv9MDkQE8X/UrXAffwv2AcNAhslgYuDTw==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.5",
@@ -5861,15 +6146,16 @@
}
},
"node_modules/rc-table": {
- "version": "7.32.3",
- "resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.32.3.tgz",
- "integrity": "sha512-MqjrI/ibuGg7NEyFsux0dM5GK+3er1gTiZofAkifr2bHf/Sa1nUqXXFmSrYXSOjwpx0xyBnJ3GrHFCIqC/eOzw==",
+ "version": "7.37.0",
+ "resolved": "https://registry.npmmirror.com/rc-table/-/rc-table-7.37.0.tgz",
+ "integrity": "sha512-hEB17ktLRVfVmdo+U8MjGr+PuIgdQ8Cxj/N5lwMvP/Az7TOrQxwTMLVEDoj207tyPYLTWifHIF9EJREWwyk67g==",
"dependencies": {
"@babel/runtime": "^7.10.1",
- "@rc-component/context": "^1.3.0",
+ "@rc-component/context": "^1.4.0",
"classnames": "^2.2.5",
"rc-resize-observer": "^1.1.0",
- "rc-util": "^5.27.1"
+ "rc-util": "^5.37.0",
+ "rc-virtual-list": "^3.11.1"
},
"engines": {
"node": ">=8.x"
@@ -5880,17 +6166,17 @@
}
},
"node_modules/rc-tabs": {
- "version": "12.9.0",
- "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.9.0.tgz",
- "integrity": "sha512-2HnVowgMVrq0DfQtyu4mCd9E6pXlWNdM6VaDvOOHMsLYqPmpY+7zBqUC6YrrQ9xYXHciTS0e7TtjOHIvpVCHLQ==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmmirror.com/rc-tabs/-/rc-tabs-14.0.0.tgz",
+ "integrity": "sha512-lp1YWkaPnjlyhOZCPrAWxK6/P6nMGX/BAZcAC3nuVwKz0Byfp+vNnQKK8BRCP2g/fzu+SeB5dm9aUigRu3tRkQ==",
"dependencies": {
"@babel/runtime": "^7.11.2",
"classnames": "2.x",
"rc-dropdown": "~4.1.0",
- "rc-menu": "~9.10.0",
+ "rc-menu": "~9.12.0",
"rc-motion": "^2.6.2",
"rc-resize-observer": "^1.0.0",
- "rc-util": "^5.16.0"
+ "rc-util": "^5.34.1"
},
"engines": {
"node": ">=8.x"
@@ -5901,13 +6187,13 @@
}
},
"node_modules/rc-textarea": {
- "version": "1.3.4",
- "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.3.4.tgz",
- "integrity": "sha512-wn0YjTpvcVolcfXa0HtzL+jgV2QcwtfB29RwNAKj8hMgZOju1V24M3TfEDjABeQEAQbUGbjMbISREOX/YSVKhg==",
+ "version": "1.6.3",
+ "resolved": "https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.6.3.tgz",
+ "integrity": "sha512-8k7+8Y2GJ/cQLiClFMg8kUXOOdvcFQrnGeSchOvI2ZMIVvX5a3zQpLxoODL0HTrvU63fPkRmMuqaEcOF9dQemA==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "^2.2.1",
- "rc-input": "~1.1.0",
+ "rc-input": "~1.4.0",
"rc-resize-observer": "^1.0.0",
"rc-util": "^5.27.0"
},
@@ -5917,12 +6203,12 @@
}
},
"node_modules/rc-tooltip": {
- "version": "6.0.1",
- "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.0.1.tgz",
- "integrity": "sha512-MdvPlsD1fDSxKp9+HjXrc/CxLmA/s11QYIh1R7aExxfodKP7CZA++DG1AjrW80F8IUdHYcR43HAm0Y2BYPelHA==",
+ "version": "6.1.3",
+ "resolved": "https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.3.tgz",
+ "integrity": "sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==",
"dependencies": {
"@babel/runtime": "^7.11.2",
- "@rc-component/trigger": "^1.0.4",
+ "@rc-component/trigger": "^1.18.0",
"classnames": "^2.3.1"
},
"peerDependencies": {
@@ -5931,9 +6217,9 @@
}
},
"node_modules/rc-tree": {
- "version": "5.7.10",
- "resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.7.10.tgz",
- "integrity": "sha512-n4UkMQY3bzvJUNnbw6e3YI7sy2kE9c9vAYbSt94qAhcPKtMOThONNr1LIaFB/M5XeFYYrWVbvRVoT8k38eFuSQ==",
+ "version": "5.8.2",
+ "resolved": "https://registry.npmmirror.com/rc-tree/-/rc-tree-5.8.2.tgz",
+ "integrity": "sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
@@ -5950,14 +6236,14 @@
}
},
"node_modules/rc-tree-select": {
- "version": "5.11.2",
- "resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.11.2.tgz",
- "integrity": "sha512-ujRFO3pcjSg8R4ndXX2oiNcCu+RgO9ZPcd23CZy18Khm+nRsfWWS3Su7qB0iuoJgzAJ5LK7b6Dio0t7IQDGs9g==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.17.0.tgz",
+ "integrity": "sha512-7sRGafswBhf7n6IuHyCEFCildwQIgyKiV8zfYyUoWfZEFdhuk7lCH+DN0aHt+oJrdiY9+6Io/LDXloGe01O8XQ==",
"dependencies": {
"@babel/runtime": "^7.10.1",
"classnames": "2.x",
- "rc-select": "~14.7.0",
- "rc-tree": "~5.7.0",
+ "rc-select": "~14.11.0-0",
+ "rc-tree": "~5.8.1",
"rc-util": "^5.16.1"
},
"peerDependencies": {
@@ -5966,9 +6252,9 @@
}
},
"node_modules/rc-upload": {
- "version": "4.3.4",
- "resolved": "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.4.tgz",
- "integrity": "sha512-uVbtHFGNjHG/RyAfm9fluXB6pvArAGyAx8z7XzXXyorEgVIWj6mOlriuDm0XowDHYz4ycNK0nE0oP3cbFnzxiQ==",
+ "version": "4.5.2",
+ "resolved": "https://registry.npmmirror.com/rc-upload/-/rc-upload-4.5.2.tgz",
+ "integrity": "sha512-QO3ne77DwnAPKFn0bA5qJM81QBjQi0e0NHdkvpFyY73Bea2NfITiotqJqVjHgeYPOJu5lLVR32TNGP084aSoXA==",
"dependencies": {
"@babel/runtime": "^7.18.3",
"classnames": "^2.2.5",
@@ -5980,12 +6266,12 @@
}
},
"node_modules/rc-util": {
- "version": "5.37.0",
- "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.37.0.tgz",
- "integrity": "sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==",
+ "version": "5.38.1",
+ "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.38.1.tgz",
+ "integrity": "sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==",
"dependencies": {
"@babel/runtime": "^7.18.3",
- "react-is": "^16.12.0"
+ "react-is": "^18.2.0"
},
"peerDependencies": {
"react": ">=16.9.0",
@@ -5993,9 +6279,9 @@
}
},
"node_modules/rc-virtual-list": {
- "version": "3.10.5",
- "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.10.5.tgz",
- "integrity": "sha512-Vc89TL3JHfRlLVQXVj5Hmv0dIflgwmHDcbjt9lrZjOG3wNUDkTF5zci8kFDU/CzdmmqgKu+CUktEpT10VUKYSQ==",
+ "version": "3.11.3",
+ "resolved": "https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz",
+ "integrity": "sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==",
"dependencies": {
"@babel/runtime": "^7.20.0",
"classnames": "^2.2.6",
@@ -6033,10 +6319,23 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-draggable": {
+ "version": "4.4.6",
+ "resolved": "https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.6.tgz",
+ "integrity": "sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==",
+ "dependencies": {
+ "clsx": "^1.1.1",
+ "prop-types": "^15.8.1"
+ },
+ "peerDependencies": {
+ "react": ">= 16.3.0",
+ "react-dom": ">= 16.3.0"
+ }
+ },
"node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
},
"node_modules/react-refresh": {
"version": "0.14.0",
@@ -6048,11 +6347,11 @@
}
},
"node_modules/react-router": {
- "version": "6.15.0",
- "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.15.0.tgz",
- "integrity": "sha512-NIytlzvzLwJkCQj2HLefmeakxxWHWAP+02EGqWEZy+DgfHHKQMUoBBjUQLOtFInBMhWtb3hiUy6MfFgwLjXhqg==",
+ "version": "6.21.3",
+ "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.21.3.tgz",
+ "integrity": "sha512-a0H638ZXULv1OdkmiK6s6itNhoy33ywxmUFT/xtSoVyf9VnC7n7+VT4LjVzdIHSaF5TIh9ylUgxMXksHTgGrKg==",
"dependencies": {
- "@remix-run/router": "1.8.0"
+ "@remix-run/router": "1.14.2"
},
"engines": {
"node": ">=14.0.0"
@@ -6062,12 +6361,12 @@
}
},
"node_modules/react-router-dom": {
- "version": "6.15.0",
- "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.15.0.tgz",
- "integrity": "sha512-aR42t0fs7brintwBGAv2+mGlCtgtFQeOzK0BM1/OiqEzRejOZtpMZepvgkscpMUnKb8YO84G7s3LsHnnDNonbQ==",
+ "version": "6.21.3",
+ "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.21.3.tgz",
+ "integrity": "sha512-kNzubk7n4YHSrErzjLK72j0B5i969GsuCGazRl3G6j1zqZBLjuSlYBdVdkDOgzGdPIffUOc9nmgiadTEVoq91g==",
"dependencies": {
- "@remix-run/router": "1.8.0",
- "react-router": "6.15.0"
+ "@remix-run/router": "1.14.2",
+ "react-router": "6.21.3"
},
"engines": {
"node": ">=14.0.0"
@@ -6243,23 +6542,26 @@
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
+ "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
+ "set-function-name": "^2.0.0"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/remove-accents": {
- "version": "0.4.2",
- "resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.4.2.tgz",
- "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA=="
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/remove-accents/-/remove-accents-0.5.0.tgz",
+ "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A=="
},
"node_modules/require-from-string": {
"version": "2.0.2",
@@ -6283,9 +6585,9 @@
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"node_modules/resolve": {
- "version": "1.22.4",
- "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.4.tgz",
- "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
"is-core-module": "^2.13.0",
@@ -6294,6 +6596,9 @@
},
"bin": {
"resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/resolve-from": {
@@ -6328,18 +6633,30 @@
}
},
"node_modules/rollup": {
- "version": "3.28.1",
- "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.28.1.tgz",
- "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==",
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.6.1.tgz",
+ "integrity": "sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
},
"engines": {
- "node": ">=14.18.0",
+ "node": ">=18.0.0",
"npm": ">=8.0.0"
},
"optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.6.1",
+ "@rollup/rollup-android-arm64": "4.6.1",
+ "@rollup/rollup-darwin-arm64": "4.6.1",
+ "@rollup/rollup-darwin-x64": "4.6.1",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.6.1",
+ "@rollup/rollup-linux-arm64-gnu": "4.6.1",
+ "@rollup/rollup-linux-arm64-musl": "4.6.1",
+ "@rollup/rollup-linux-x64-gnu": "4.6.1",
+ "@rollup/rollup-linux-x64-musl": "4.6.1",
+ "@rollup/rollup-win32-arm64-msvc": "4.6.1",
+ "@rollup/rollup-win32-ia32-msvc": "4.6.1",
+ "@rollup/rollup-win32-x64-msvc": "4.6.1",
"fsevents": "~2.3.2"
}
},
@@ -6349,98 +6666,6 @@
"integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
"dev": true
},
- "node_modules/run-applescript": {
- "version": "5.0.0",
- "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz",
- "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
- "dev": true,
- "dependencies": {
- "execa": "^5.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/run-applescript/node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/run-applescript/node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/run-applescript/node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/run-applescript/node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/run-applescript/node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/run-applescript/node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -6478,14 +6703,14 @@
},
"node_modules/safer-buffer": {
"version": "2.1.2",
- "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
},
"node_modules/sass": {
- "version": "1.66.1",
- "resolved": "https://registry.npmmirror.com/sass/-/sass-1.66.1.tgz",
- "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==",
+ "version": "1.70.0",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.70.0.tgz",
+ "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -6520,17 +6745,17 @@
}
},
"node_modules/scroll-into-view-if-needed": {
- "version": "3.0.10",
- "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz",
- "integrity": "sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
+ "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
"dependencies": {
"compute-scroll-into-view": "^3.0.2"
}
},
"node_modules/scule": {
- "version": "1.0.0",
- "resolved": "https://registry.npmmirror.com/scule/-/scule-1.0.0.tgz",
- "integrity": "sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz",
+ "integrity": "sha512-CRCmi5zHQnSoeCik9565PONMg0kfkvYmcSqrbOJY4txFfy1wvVULV4FDaiXhUblUgahdqz3F2NwHZ8i4eBTwUw==",
"dev": true
},
"node_modules/semver": {
@@ -6542,6 +6767,20 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/set-function-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
+ "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -6580,6 +6819,11 @@
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
},
+ "node_modules/size-sensor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/size-sensor/-/size-sensor-1.0.2.tgz",
+ "integrity": "sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw=="
+ },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
@@ -6692,6 +6936,11 @@
"dev": true,
"peer": true
},
+ "node_modules/state-local": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/state-local/-/state-local-1.0.7.tgz",
+ "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="
+ },
"node_modules/string-convert": {
"version": "0.2.1",
"resolved": "https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz",
@@ -6713,17 +6962,20 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.7",
- "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
- "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz",
+ "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==",
"dev": true,
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.20.4"
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimend": {
@@ -6793,11 +7045,14 @@
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
- "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true,
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-literal": {
@@ -6920,13 +7175,13 @@
}
},
"node_modules/stylis": {
- "version": "4.3.0",
- "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz",
- "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ=="
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.1.tgz",
+ "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ=="
},
"node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
@@ -7002,13 +7257,13 @@
"dev": true
},
"node_modules/synckit": {
- "version": "0.8.5",
- "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz",
- "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==",
+ "version": "0.8.8",
+ "resolved": "https://registry.npmmirror.com/synckit/-/synckit-0.8.8.tgz",
+ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
"dev": true,
"dependencies": {
- "@pkgr/utils": "^2.3.1",
- "tslib": "^2.5.0"
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -7065,15 +7320,6 @@
"node": ">=12.22"
}
},
- "node_modules/titleize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz",
- "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@@ -7116,15 +7362,15 @@
}
},
"node_modules/tr46": {
- "version": "4.1.1",
- "resolved": "https://registry.npmmirror.com/tr46/-/tr46-4.1.1.tgz",
- "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
"dev": true,
"dependencies": {
- "punycode": "^2.3.0"
+ "punycode": "^2.3.1"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/trim-newlines": {
@@ -7150,9 +7396,9 @@
}
},
"node_modules/tsconfig-paths": {
- "version": "3.14.2",
- "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
- "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
+ "version": "3.15.0",
+ "resolved": "https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
"dev": true,
"dependencies": {
"@types/json5": "^0.0.29",
@@ -7258,10 +7504,9 @@
}
},
"node_modules/typescript": {
- "version": "5.2.2",
- "resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.2.2.tgz",
- "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==",
- "dev": true,
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+ "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -7271,9 +7516,9 @@
}
},
"node_modules/ufo": {
- "version": "1.3.0",
- "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.3.0.tgz",
- "integrity": "sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.1.tgz",
+ "integrity": "sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==",
"dev": true
},
"node_modules/unbox-primitive": {
@@ -7288,23 +7533,31 @@
"which-boxed-primitive": "^1.0.2"
}
},
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+ "dev": true
+ },
"node_modules/unimport": {
- "version": "3.3.0",
- "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.3.0.tgz",
- "integrity": "sha512-3jhq3ZG5hFZzrWGDCpx83kjPzefP/EeuKkIO1T0MA4Zwj+dO/Og1mFvZ4aZ5WSDm0FVbbdVIRH1zKBG7c4wOpg==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.1.tgz",
+ "integrity": "sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==",
"dev": true,
"dependencies": {
- "@rollup/pluginutils": "^5.0.4",
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.2",
"escape-string-regexp": "^5.0.0",
- "fast-glob": "^3.3.1",
- "local-pkg": "^0.4.3",
- "magic-string": "^0.30.3",
- "mlly": "^1.4.1",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "mlly": "^1.4.2",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
- "scule": "^1.0.0",
+ "scule": "^1.1.1",
"strip-literal": "^1.3.0",
- "unplugin": "^1.4.0"
+ "unplugin": "^1.5.1"
}
},
"node_modules/unimport/node_modules/escape-string-regexp": {
@@ -7316,6 +7569,15 @@
"node": ">=12"
}
},
+ "node_modules/unimport/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
"node_modules/universalify": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
@@ -7326,31 +7588,31 @@
}
},
"node_modules/unplugin": {
- "version": "1.4.0",
- "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.4.0.tgz",
- "integrity": "sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.6.0.tgz",
+ "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
"dev": true,
"dependencies": {
- "acorn": "^8.9.0",
+ "acorn": "^8.11.2",
"chokidar": "^3.5.3",
"webpack-sources": "^3.2.3",
- "webpack-virtual-modules": "^0.5.0"
+ "webpack-virtual-modules": "^0.6.1"
}
},
"node_modules/unplugin-auto-import": {
- "version": "0.16.6",
- "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.6.tgz",
- "integrity": "sha512-M+YIITkx3C/Hg38hp8HmswP5mShUUyJOzpifv7RTlAbeFlO2Tyw0pwrogSSxnipHDPTtI8VHFBpkYkNKzYSuyA==",
+ "version": "0.17.3",
+ "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.3.tgz",
+ "integrity": "sha512-0cn0wr8X579TtdZKUAps0dDVrYzttx38ImdxZjmCeNlMDJX8UuSjO83vFqgS4ClNDIGWAute+xl9j5vRSX+vsw==",
"dev": true,
"dependencies": {
- "@antfu/utils": "^0.7.5",
- "@rollup/pluginutils": "^5.0.2",
- "fast-glob": "^3.3.0",
- "local-pkg": "^0.4.3",
- "magic-string": "^0.30.1",
- "minimatch": "^9.0.2",
- "unimport": "^3.0.14",
- "unplugin": "^1.3.2"
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "minimatch": "^9.0.3",
+ "unimport": "^3.7.0",
+ "unplugin": "^1.6.0"
},
"engines": {
"node": ">=14"
@@ -7390,21 +7652,18 @@
}
},
"node_modules/unplugin-icons": {
- "version": "0.17.0",
- "resolved": "https://registry.npmjs.org/unplugin-icons/-/unplugin-icons-0.17.0.tgz",
- "integrity": "sha512-gMv66eY/Hj64heM55XrfDH3LUCWI51mtkBVUPVl9VkpvLgAYhdVe9nRuzu6p+idmCLSQVq7xiPxQcD4aXCgW5A==",
+ "version": "0.18.2",
+ "resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.18.2.tgz",
+ "integrity": "sha512-OgZoIJHGubeJmc3KePMOy62ovtxPEJfNMlr5tU+1ZqHGpSXubg3fnqq28VPvLL0D5vKj2PRCJF9tVGbQ7vBXJQ==",
"dev": true,
"dependencies": {
- "@antfu/install-pkg": "^0.1.1",
+ "@antfu/install-pkg": "^0.3.0",
"@antfu/utils": "^0.7.6",
- "@iconify/utils": "^2.1.9",
+ "@iconify/utils": "^2.1.12",
"debug": "^4.3.4",
"kolorist": "^1.8.0",
- "local-pkg": "^0.4.3",
- "unplugin": "^1.4.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
+ "local-pkg": "^0.5.0",
+ "unplugin": "^1.5.1"
},
"peerDependencies": {
"@svgr/core": ">=7.0.0",
@@ -7431,15 +7690,6 @@
}
}
},
- "node_modules/untildify": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz",
- "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/update-browserslist-db": {
"version": "1.0.11",
"resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
@@ -7500,27 +7750,32 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/vanilla-tilt": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/vanilla-tilt/-/vanilla-tilt-1.8.1.tgz",
+ "integrity": "sha512-hPB1XUsnh+SIeVSW2beb5RnuFxz4ZNgxjGD78o52F49gS4xaoLeEMh9qrQnJrnEn/vjjBI7IlxrrXmz4tGV0Kw=="
+ },
"node_modules/vite": {
- "version": "4.4.9",
- "resolved": "https://registry.npmmirror.com/vite/-/vite-4.4.9.tgz",
- "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==",
+ "version": "5.0.12",
+ "resolved": "https://registry.npmmirror.com/vite/-/vite-5.0.12.tgz",
+ "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==",
"dev": true,
"dependencies": {
- "esbuild": "^0.18.10",
- "postcss": "^8.4.27",
- "rollup": "^3.27.1"
+ "esbuild": "^0.19.3",
+ "postcss": "^8.4.32",
+ "rollup": "^4.2.0"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^14.18.0 || >=16.0.0"
+ "node": "^18.0.0 || >=20.0.0"
},
"optionalDependencies": {
- "fsevents": "~2.3.2"
+ "fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": ">= 14",
+ "@types/node": "^18.0.0 || >=20.0.0",
"less": "*",
"lightningcss": "^1.21.0",
"sass": "*",
@@ -7553,20 +7808,20 @@
}
},
"node_modules/w3c-xmlserializer": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
- "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
"dev": true,
"dependencies": {
- "xml-name-validator": "^4.0.0"
+ "xml-name-validator": "^5.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/webidl-conversions": {
"version": "7.0.0",
- "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true,
"engines": {
@@ -7575,7 +7830,7 @@
},
"node_modules/webpack-sources": {
"version": "3.2.3",
- "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true,
"engines": {
@@ -7583,43 +7838,43 @@
}
},
"node_modules/webpack-virtual-modules": {
- "version": "0.5.0",
- "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
- "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz",
+ "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==",
"dev": true
},
"node_modules/whatwg-encoding": {
- "version": "2.0.0",
- "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
- "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
"dev": true,
"dependencies": {
"iconv-lite": "0.6.3"
},
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-mimetype": {
- "version": "3.0.0",
- "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
- "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/whatwg-url": {
- "version": "12.0.1",
- "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-12.0.1.tgz",
- "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==",
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
"dev": true,
"dependencies": {
- "tr46": "^4.1.1",
+ "tr46": "^5.0.0",
"webidl-conversions": "^7.0.0"
},
"engines": {
- "node": ">=14"
+ "node": ">=18"
}
},
"node_modules/which": {
@@ -7687,9 +7942,9 @@
}
},
"node_modules/ws": {
- "version": "8.13.0",
- "resolved": "https://registry.npmmirror.com/ws/-/ws-8.13.0.tgz",
- "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -7708,12 +7963,12 @@
}
},
"node_modules/xml-name-validator": {
- "version": "4.0.0",
- "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
- "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
"dev": true,
"engines": {
- "node": ">=12"
+ "node": ">=18"
}
},
"node_modules/xmlchars": {
@@ -7756,6 +8011,19 @@
"engines": {
"node": ">=10"
}
+ },
+ "node_modules/zrender": {
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz",
+ "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==",
+ "dependencies": {
+ "tslib": "2.3.0"
+ }
+ },
+ "node_modules/zrender/node_modules/tslib": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
}
}
}
diff --git a/package.json b/package.json
index 288a28a..c96b4e2 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "fatweb-ui",
+ "name": "oxygen-ui",
"private": true,
"version": "0.0.0",
"type": "module",
@@ -15,43 +15,57 @@
},
"dependencies": {
"@ant-design/icons": "^5.2.6",
- "antd": "^5.8.6",
- "axios": "^1.5.0",
- "jwt-decode": "^3.1.2",
+ "@marsidev/react-turnstile": "^0.4.1",
+ "@monaco-editor/react": "^4.6.0",
+ "@typescript/ata": "^0.9.4",
+ "antd": "^5.13.2",
+ "axios": "^1.6.5",
+ "dayjs": "^1.11.10",
+ "echarts": "^5.4.3",
+ "esbuild-wasm": "^0.19.12",
+ "fast-deep-equal": "^3.1.3",
+ "fflate": "^0.8.1",
+ "jwt-decode": "^4.0.0",
"localforage": "^1.10.0",
"lodash": "^4.17.21",
- "match-sorter": "^6.3.1",
+ "match-sorter": "^6.3.3",
+ "moment": "^2.30.1",
+ "monaco-editor": "^0.45.0",
+ "monaco-jsx-syntax-highlight": "^1.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
- "react-router": "^6.15.0",
- "react-router-dom": "^6.15.0"
+ "react-draggable": "^4.4.6",
+ "react-router": "^6.21.3",
+ "react-router-dom": "^6.21.3",
+ "size-sensor": "^1.0.2",
+ "vanilla-tilt": "^1.8.1"
},
"devDependencies": {
"@svgr/core": "^8.1.0",
"@svgr/plugin-jsx": "^8.1.0",
- "@types/jsdom": "^21.1.2",
- "@types/lodash": "^4.14.198",
- "@types/node": "^20.5.9",
- "@types/react": "^18.2.21",
- "@types/react-dom": "^18.2.7",
- "@typescript-eslint/eslint-plugin": "^6.6.0",
- "@typescript-eslint/parser": "^6.6.0",
- "@vitejs/plugin-react": "^4.0.4",
- "eslint": "^8.48.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-config-standard-with-typescript": "^39.0.0",
- "eslint-plugin-import": "^2.28.1",
- "eslint-plugin-prettier": "^5.0.0",
+ "@types/jsdom": "^21.1.6",
+ "@types/lodash": "^4.14.202",
+ "@types/node": "^20.11.5",
+ "@types/react": "^18.2.48",
+ "@types/react-dom": "^18.2.18",
+ "@typescript-eslint/eslint-plugin": "^6.19.1",
+ "@typescript-eslint/parser": "^6.19.1",
+ "@vitejs/plugin-react": "^4.2.1",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-config-standard-with-typescript": "^43.0.1",
+ "eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-react-refresh": "^0.4.3",
- "jsdom": "^22.1.0",
- "prettier": "^3.0.3",
- "sass": "^1.66.1",
+ "eslint-plugin-react-refresh": "^0.4.5",
+ "jsdom": "^24.0.0",
+ "prettier": "^3.2.4",
+ "sass": "^1.70.0",
"stylelint-config-prettier": "^9.0.5",
- "typescript": "^5.2.2",
- "unplugin-auto-import": "^0.16.6",
- "unplugin-icons": "^0.17.0",
- "vite": "^4.4.9"
+ "typescript": "^5.3.3",
+ "unplugin-auto-import": "^0.17.3",
+ "unplugin-icons": "^0.18.2",
+ "vite": "^5.0.12"
}
}
diff --git a/src/App.tsx b/src/App.tsx
index 3b7738a..bd05da7 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,13 +1,26 @@
-import React from 'react'
-import router from '@/router'
-import LoadingMask from '@/components/common/LoadingMask'
+import { getRouter } from '@/router'
+import FullscreenLoadingMask from '@/components/common/FullscreenLoadingMask'
+
+export const AppContext = createContext<{ refreshRouter: () => void }>({
+ refreshRouter: () => undefined
+})
+
+const App = () => {
+ const [routerState, setRouterState] = useState(getRouter)
-const App: React.FC = () => {
return (
<>
- }>
-
-
+ {
+ setRouterState(getRouter())
+ }
+ }}
+ >
+ }>
+
+
+
>
)
}
diff --git a/src/AuthRoute.tsx b/src/AuthRoute.tsx
index 35b6a77..0336fd1 100644
--- a/src/AuthRoute.tsx
+++ b/src/AuthRoute.tsx
@@ -1,29 +1,47 @@
-import { getLoginStatus } from '@/utils/auth.ts'
-import { PRODUCTION_NAME } from '@/constants/Common.constants.ts'
-import { getRedirectUrl } from '@/utils/common.ts'
+import { PRODUCTION_NAME } from '@/constants/common.constants'
+import { getRedirectUrl } from '@/util/route'
+import { getLoginStatus, getVerifyStatus_async } from '@/util/auth'
const AuthRoute = () => {
+ const [searchParams] = useSearchParams()
const matches = useMatches()
const lastMatch = matches.reduce((_, second) => second)
const handle = lastMatch.handle as RouteHandle
const location = useLocation()
const outlet = useOutlet()
const isLogin = getLoginStatus()
+ const isVerify = getVerifyStatus_async()
return useMemo(() => {
document.title = `${handle?.titlePrefix ?? ''}${
handle?.title ? handle?.title : PRODUCTION_NAME
}${handle?.titlePostfix ?? ''}`
- if (matches.some(({ handle }) => (handle as RouteHandle)?.auth) && !isLogin) {
- return (
-
- )
+
+ if (matches.some(({ handle }) => (handle as RouteHandle)?.auth)) {
+ if (!isLogin) {
+ return (
+
+ )
+ }
+ if (isVerify === false && lastMatch.pathname !== '/verify') {
+ return
+ }
}
- if (isLogin && lastMatch.pathname === '/login') {
- return
+ if (isLogin && ['/login', '/forget'].includes(lastMatch.pathname)) {
+ if (searchParams.has('redirect')) {
+ return
+ } else {
+ return
+ }
}
+
+ if (location.pathname.length > 1 && location.pathname.endsWith('/')) {
+ return
+ }
+
return outlet
}, [
handle?.title,
diff --git a/src/ant-design.d.ts b/src/ant-design.d.ts
index 5ec575f..a3b26db 100644
--- a/src/ant-design.d.ts
+++ b/src/ant-design.d.ts
@@ -1,8 +1,29 @@
-import * as React from 'react'
+import { ComponentType, ForwardRefExoticComponent, Key, SVGProps } from 'react'
import { CustomIconComponentProps } from '@ant-design/icons/es/components/Icon'
+import { GetProp, TablePaginationConfig, UploadProps } from 'antd/lib'
+import { ColumnsType, FilterValue, SorterResult, SortOrder } from 'antd/es/table/interface'
+import { CheckboxChangeEvent } from 'antd/es/checkbox'
+import type { DataNode } from 'antd/es/tree'
declare global {
type IconComponent =
- | React.ComponentType>
- | React.ForwardRefExoticComponent
+ | ComponentType>
+ | ForwardRefExoticComponent
+
+ type _TablePaginationConfig = TablePaginationConfig
+
+ type _ColumnsType = ColumnsType
+ type _FilterValue = FilterValue
+ type _SorterResult = SorterResult
+ type _SortOrder = SortOrder
+ type _CheckboxChangeEvent = CheckboxChangeEvent
+ interface _DataNode extends DataNode {
+ value: Key
+ fullTitle?: string
+ parentId?: number
+ children?: _DataNode[]
+ }
+
+ type _UploadProps = UploadProps
+ type _GetProp = GetProp
}
diff --git a/src/assets/css/common.scss b/src/assets/css/common.scss
index 650a829..d6a24a7 100644
--- a/src/assets/css/common.scss
+++ b/src/assets/css/common.scss
@@ -1,4 +1,4 @@
-@use '@/assets/css/constants.scss' as constants;
+@use '@/assets/css/constants' as constants;
#root {
height: 100vh;
@@ -6,6 +6,7 @@
}
.body {
+ background-color: constants.$background-color;
color: constants.$font-main-color;
user-select: none;
min-width: 900px;
diff --git a/src/assets/css/components/common/card.scss b/src/assets/css/components/common/card.scss
new file mode 100644
index 0000000..8daf288
--- /dev/null
+++ b/src/assets/css/components/common/card.scss
@@ -0,0 +1,8 @@
+@use '@/assets/css/constants' as constants;
+
+.card-box {
+ background-color: constants.$origin-color;
+ border-radius: 8px;
+ overflow: hidden;
+ box-shadow: 5px 5px 15px 0 rgba(0,0,0,0.1);
+}
\ No newline at end of file
diff --git a/src/assets/css/components/common/flex-box.scss b/src/assets/css/components/common/flex-box.scss
new file mode 100644
index 0000000..2926ffc
--- /dev/null
+++ b/src/assets/css/components/common/flex-box.scss
@@ -0,0 +1,5 @@
+.flex-box {
+ > * {
+ flex: 1;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/components/common/fullscreen-loading-mask.scss b/src/assets/css/components/common/fullscreen-loading-mask.scss
new file mode 100644
index 0000000..c4458cd
--- /dev/null
+++ b/src/assets/css/components/common/fullscreen-loading-mask.scss
@@ -0,0 +1,10 @@
+.fullscreen-loading-mask {
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+ background-color: rgba(200, 200, 200, 0.2);
+}
\ No newline at end of file
diff --git a/src/assets/css/components/common/hide-scrollbar.scss b/src/assets/css/components/common/hide-scrollbar.scss
index 32076ac..427964a 100644
--- a/src/assets/css/components/common/hide-scrollbar.scss
+++ b/src/assets/css/components/common/hide-scrollbar.scss
@@ -68,14 +68,14 @@
}
.vertical-scrollbar {
- padding: 12px 4px;
+ padding: 12px 2px;
height: 100%;
left: 100%;
top: 0;
transform: translateX(-100%);
.box {
- width: 8px;
+ width: 6px;
}
}
diff --git a/src/assets/css/components/common/indicator.scss b/src/assets/css/components/common/indicator.scss
index efe8e76..1af0d13 100644
--- a/src/assets/css/components/common/indicator.scss
+++ b/src/assets/css/components/common/indicator.scss
@@ -1,4 +1,4 @@
-@use '@/assets/css/constants.scss' as constants;
+@use '@/assets/css/constants' as constants;
.dot-list {
display: flex;
diff --git a/src/assets/css/components/common/loading-mask.scss b/src/assets/css/components/common/loading-mask.scss
index ad20dde..9b44a1a 100644
--- a/src/assets/css/components/common/loading-mask.scss
+++ b/src/assets/css/components/common/loading-mask.scss
@@ -1,10 +1,8 @@
.loading-mask {
- position: absolute;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
z-index: 100;
- background-color: rgba(200, 200, 200, 0.2);
}
\ No newline at end of file
diff --git a/src/assets/css/components/common/sidebar.scss b/src/assets/css/components/common/sidebar.scss
new file mode 100644
index 0000000..ca67fd6
--- /dev/null
+++ b/src/assets/css/components/common/sidebar.scss
@@ -0,0 +1,322 @@
+@use "@/assets/css/constants" as constants;
+@use "@/assets/css/mixins" as mixins;
+
+.sidebar {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ user-select: none;
+ transition: all .3s;
+ white-space: nowrap;
+
+ .title {
+ display: flex;
+ align-items: center;
+ font-weight: bold;
+ padding: 10px 14px;
+ color: constants.$main-color;
+ overflow: hidden;
+
+ .icon-box {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 10px;
+ width: 40px;
+ height: 40px;
+ font-size: constants.$SIZE_ICON_SM;
+ border-radius: 8px;
+ cursor: pointer;
+ span {
+ transform: rotateZ(180deg);
+ transition: all .3s;
+ }
+
+ &:hover {
+ background-color: constants.$background-color;
+ }
+ }
+
+ .text {
+ flex: 1;
+ font-size: 2em;
+ text-align: center;
+ letter-spacing: 0.2em;
+ transform: translateX(0.1em);
+ }
+ }
+
+ .content, .bottom-fixed {
+ display: flex;
+ min-height: 0;
+ flex-direction: column;
+ flex: 1;
+
+ .scroll {
+ min-height: 0;
+ flex: 1;
+ }
+
+ ul {
+ > li {
+ &.item {
+ position: relative;
+ margin: 4px 14px;
+ font-size: 1.4em;
+
+ >.menu-bt {
+ border-radius: 8px;
+ overflow: hidden;
+ height: 40px;
+
+ .icon-box {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 0 10px;
+ width: 40px;
+ height: 40px;
+ font-size: constants.$SIZE_ICON_SM;
+ cursor: pointer;
+ }
+
+ a {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ width: 100%;
+ transition: all 0.2s;
+
+ .text {
+ flex: 1;
+ padding-left: 8px;
+ }
+
+ &.active {
+ color: constants.$origin-color;
+ background-color: constants.$main-color !important;
+ }
+ }
+ }
+
+ .submenu {
+ visibility: hidden;
+ position: fixed;
+ padding-left: 20px;
+ z-index: 10000;
+ animation: 0.1s ease forwards;
+ @include mixins.unique-keyframes {
+ 0% {
+ transform: translateX(0);
+ opacity: 1;
+ }
+ 100% {
+ transform: translateX(-10px);
+ opacity: 0;
+ }
+ }
+
+ .content {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ padding: 10px 10px;
+ background-color: constants.$origin-color;
+ border-radius: 8px;
+
+ .item {
+ border-radius: 8px;
+ white-space: nowrap;
+ overflow: hidden;
+
+ a {
+ display: block;
+ padding: 8px 16px;
+ transition: all 0.2s;
+
+ &.active {
+ color: constants.$origin-color;
+ background-color: constants.$main-color !important;
+ }
+ }
+
+ &:hover a {
+ background-color: constants.$background-color;
+ }
+ }
+ }
+ }
+
+ &:hover {
+ >.menu-bt {
+ a {
+ background-color: constants.$background-color;
+ }
+ }
+
+ .submenu {
+ visibility: visible;
+ animation: 0.3s ease;
+ @include mixins.unique-keyframes {
+ 0% {
+ transform: translateX(-10px);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateX(0);
+ opacity: 1;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .separate {
+ height: 0;
+ margin: 10px 5px;
+ border: {
+ width: 1px;
+ color: constants.$font-secondary-color;
+ style: solid;
+ };
+ opacity: 0.4;
+ }
+
+ .footer {
+ display: flex;
+ align-items: center;
+ font-weight: bold;
+ padding: 8px 14px;
+ color: constants.$main-color;
+
+ .icon-user {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex: 0 0 auto;
+ margin-left: 4px;
+ width: 36px;
+ height: 36px;
+ font-size: constants.$SIZE_ICON_XS;
+ border: 2px constants.$font-secondary-color solid;
+ color: constants.$font-secondary-color;
+ border-radius: 50%;
+ overflow: hidden;
+ cursor: pointer;
+
+ img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ .text {
+ flex: 1;
+ padding-left: 10px;
+ font-size: 1.4em;
+ color: constants.$font-main-color;
+ user-select: text;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ a{
+ color: constants.$main-color;
+ text-decoration: underline;
+ }
+ }
+
+ .icon-exit {
+ font-size: constants.$SIZE_ICON_XS;
+ color: constants.$error-color;
+ padding: 6px 10px;
+ cursor: pointer;
+
+ &:hover {
+ border-radius: 8px;
+ background-color: constants.$background-color;
+ }
+ }
+ }
+
+ &.hide {
+ width: 68px !important;
+
+ .title {
+ .icon-box {
+ span {
+ transform: rotateZ(360deg);
+ transition: all .3s;
+ }
+ }
+ .text {
+ display: none;
+ }
+ }
+
+ .menu-bt {
+ .text {
+ display: none;
+ }
+ }
+
+ .submenu {
+ .menu-bt {
+ .text {
+ display: block;
+ }
+ }
+ }
+
+ .footer {
+ position: relative;
+ .text {
+ display: none;
+ }
+
+ .submenu-exit {
+ display: none;
+ position: absolute;
+ padding-left: 6px;
+ left: 100%;
+ z-index: 1000;
+ box-shadow: 5px 5px 15px 0 rgba(0,0,0,0.1);
+
+ .content {
+ padding: 8px;
+ border-radius: 8px;
+ background-color: constants.$origin-color;
+
+ .icon-exit {
+ padding: 4px 8px;
+ &:hover {
+ border-radius: 8px;
+ background-color: constants.$background-color;
+ }
+ }
+ }
+
+ &.hide {
+ display: none!important;
+ }
+ }
+
+ &:hover .submenu-exit {
+ display: block;
+ animation: 0.3s ease;
+ @include mixins.unique-keyframes {
+ 0% {
+ transform: translateX(-10px);
+ opacity: 0;
+ }
+ 100% {
+ transform: translateX(0);
+ opacity: 1;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/components/home/footer.scss b/src/assets/css/components/home/footer.scss
deleted file mode 100644
index 551c276..0000000
--- a/src/assets/css/components/home/footer.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-@use "@/assets/css/constants" as constants;
-
-.icons {
- display: flex;
- gap: 20px;
-
- .icon {
- font-size: 8em;
- color: constants.$origin-color;
- }
-}
-
-.links {
- font-size: 2em;
- text-decoration: underline;
- color: constants.$origin-color;
-
- > * {
- color: constants.$origin-color;
- }
-}
\ No newline at end of file
diff --git a/src/assets/css/components/home/home.scss b/src/assets/css/components/home/home.scss
deleted file mode 100644
index f339e4f..0000000
--- a/src/assets/css/components/home/home.scss
+++ /dev/null
@@ -1,11 +0,0 @@
-.indicator {
- position: fixed;
- margin: {
- right: 20px;
- };
- width: 20px;
- height: 100px;
- right: 0;
- top: 50%;
- transform: translateY(-50%);
-}
\ No newline at end of file
diff --git a/src/assets/css/components/home/slogan.scss b/src/assets/css/components/home/slogan.scss
deleted file mode 100644
index 018eec3..0000000
--- a/src/assets/css/components/home/slogan.scss
+++ /dev/null
@@ -1,63 +0,0 @@
-@use "@/assets/css/mixins" as mixins;
-
-.center-box {
- display: flex;
- flex-direction: column;
-}
-
-.big-logo {
- font: {
- size: 5em;
- weight: bold;
- };
- color: #666;
-}
-
-.slogan {
- font: {
- size: 1.3em;
- style: italic;
- };
- color: #666;
-
- .cursor {
- font-style: normal;
- animation: 1s infinite;
-
- @include mixins.unique-keyframes {
- 0% {
- opacity: 0;
- }
- 50% {
- opacity: 1;
- }
- 100% {
- opacity: 0;
- }
- }
- }
-}
-
-.scroll-down {
- position: absolute;
- bottom: 10px;
- padding: 20px;
- cursor: pointer;
- animation: 1.5s infinite;
- @include mixins.unique-keyframes {
- 0%,
- 100% {
- -ms-filter: none;
- filter: none;
- opacity: 1;
- transform: translateY(10px);
- }
-
- 50% {
- -ms-filter: alpha(opacity=40);
- filter: alpha(opacity=40);
- opacity: .4;
- transform: translateY(-10px);
- }
- }
-}
\ No newline at end of file
diff --git a/src/assets/css/constants.scss b/src/assets/css/constants.scss
index 3e6e1b5..aa21c9f 100644
--- a/src/assets/css/constants.scss
+++ b/src/assets/css/constants.scss
@@ -1,14 +1,16 @@
$origin-color: white;
-$main-color: #4E47BB;
+$production-color: #4E47BB;
+$main-color: $production-color;
$secondary-color: #BAB8E5;
-$error-color: #ff4d4f;
-$error-secondary-color: #ff7875;
-$blue-color: #1677ff;
-$active-color: #EBECFFD;
+$error-color: #FF4D4F;
+$error-secondary-color: #FF7875;
+$blue-color: #1677FF;
+$active-color: #EBECFD;
$background-color: #F5F5F5;
$font-main-color: #4D4D4D;
$font-secondary-color: #9E9E9E;
$focus-color: #DDDDDD;
+$divide-color: rgba(204, 204, 204, 0.66);
$border-color: rgba(204, 204, 204, 0.33);
$url-color: rgba(102, 102, 102, .8);
$url-active-color: #ccc;
@@ -16,4 +18,5 @@ $SIZE_ICON_XS: 16px;
$SIZE_ICON_SM: 20px;
$SIZE_ICON_MD: 24px;
$SIZE_ICON_LG: 32px;
-$SIZE_ICON_XL: 64px;
\ No newline at end of file
+$SIZE_ICON_XL: 64px;
+$SIZE_ICON_XXL: 96px;
\ No newline at end of file
diff --git a/src/assets/css/pages/home-framework.scss b/src/assets/css/pages/home-framework.scss
deleted file mode 100644
index 34717e0..0000000
--- a/src/assets/css/pages/home-framework.scss
+++ /dev/null
@@ -1,214 +0,0 @@
-@use "@/assets/css/mixins" as mixins;
-@use "@/assets/css/constants" as constants;
-
-.nav {
- display: flex;
- position: fixed;
- align-items: center;
- z-index: 1;
- width: 100%;
- height: 70px;
- background-color: constants.$origin-color;
- border: {
- bottom: {
- width: 1px;
- style: solid;
- color: constants.$border-color;
- }
- }
- animation: .5s ease both;
-
- @include mixins.unique-keyframes {
- 0% {
- transform: translateY(-100%);
- }
- 100% {
- transform: translateY(0);
- }
- }
-
- .logo {
- padding: 0 40px;
-
- .title {
- font-size: 2.8em;
- font-family: century gothic, texgyreadventor, stheiti, sans-serif;
- }
- }
-
- nav {
- display: flex;
- justify-content: end;
- flex: 1;
- transition: {
- property: all;
- duration: .5s;
- };
-
- .menu {
- padding: 0 30px;
-
- .item {
- display: inline-block;
- position: relative;
- font-size: 1.5em;
- transition: {
- property: all;
- duration: .3s;
- };
-
- a {
- padding: 5px 20px;
- color: constants.$url-color;
- }
- }
-
- .active {
- border: {
- bottom: {
- width: 2px;
- style: solid;
- color: constants.$url-active-color;
- };
- };
- }
-
- .item:hover {
- transform: translateY(-5px);
- }
-
- .item:hover .submenu {
- display: block;
- border: {
- width: 1px;
- color: constants.$border-color;
- style: solid;
- };
- animation: 0.3s;
-
- @include mixins.unique-keyframes {
- 0% {
- transform: translateY(-10px);
- opacity: 0;
- }
- }
- }
-
- .submenu {
- display: none;
- position: absolute;
- width: 100%;
- text-align: center;
- background-color: constants.$origin-color;
- overflow: hidden;
-
- .item {
- display: block;
- font-size: 0.8em;
- transition: all 0s;
-
- a {
- display: block;
- padding: 8px 0;
- }
- }
-
- .item:hover {
- transform: none;
- a {
- background-color: constants.$focus-color !important;
- }
- }
-
- .active {
- font-weight: bold;
- border: none;
- }
- }
- }
-
- .dropdown-menu-button {
- display: none;
- margin: 0 20px;
- width: 45px;
- height: 45px;
- justify-content: center;
- align-items: center;
- border-radius: 6px;
- }
-
- .dropdown-menu-button.active {
- background-color: transparentize(constants.$focus-color, 0.8);
- border: {
- width: 1px;
- color: constants.$focus-color;
- style: solid;
- };
- }
-
- @media screen and (max-width: 900px) {
- .menu {
- display: none;
- }
-
- .dropdown-menu-button {
- display: flex;
- }
- }
- }
-}
-
-.dropdown-menu-content {
- display: none;
-
- @media screen and (max-width: 900px) {
- display: none;
- position: fixed;
- width: 100%;
- top: 70px;
- border: {
- width: 1px;
- color: constants.$border-color;
- style: solid;
- };
- background-color: constants.$origin-color;
- z-index: 1;
-
- ul {
- li {
- font-size: 1.2em;
- text-align: center;
-
- a {
- display: block;
- width: 100%;
- height: 100%;
- padding: 10px;
- }
-
- :hover {
- background-color: constants.$focus-color;
- }
- }
- }
- }
-}
-
-@media screen and (max-width: 900px) {
- .dropdown-menu-content.show {
- display: block;
- }
-}
-
-.nav.hide {
- animation: .5s ease both;
-
- @include mixins.unique-keyframes {
- 0% {
- transform: translateY(0);
- }
- 100% {
- transform: translateY(-100%);
- }
- }
-}
\ No newline at end of file
diff --git a/src/assets/css/pages/login.scss b/src/assets/css/pages/login.scss
deleted file mode 100644
index 988f60f..0000000
--- a/src/assets/css/pages/login.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-@use "@/assets/css/constants" as constants;
-
-.login-background {
- display: flex;
- height: 100vh;
- width: 100vw;
- justify-content: center;
- align-items: center;
- background-color: #B3E5FC;
-}
-
-.login-box {
- display: flex;
- width: 800px;
- height: 450px;
- background-color: #448AFF;
-}
-
-.login-box-left {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100%;
- flex: 2;
-}
-
-.login-box-left-text {
- font-size: 3rem;
- color: constants.$origin-color;
- font-weight: bold;
-
- > div:last-child {
- font-size: 1.8rem;
- font-weight: normal;
- }
-}
-
-.login-box-right {
- position: relative;
- height: 100%;
- flex: 3;
- background-color: constants.$origin-color;
-}
-
-.login-from-text {
- position: absolute;
- top: 60px;
- left: 40px;
- font-weight: bold;
- font-size: 2rem;
-}
-
-.login-from {
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
- margin-top: 30px;
- width: 100%;
- height: 100%;
-}
-
-.login-from-item {
- width: 80%;
-}
\ No newline at end of file
diff --git a/src/assets/css/pages/sign.scss b/src/assets/css/pages/sign.scss
new file mode 100644
index 0000000..ad54058
--- /dev/null
+++ b/src/assets/css/pages/sign.scss
@@ -0,0 +1,149 @@
+@use "@/assets/css/mixins" as mixins;
+@use "@/assets/css/constants" as constants;
+
+[data-component=sign] {
+ background-color: #D2D0DD;
+ user-select: none;
+
+ a {
+ cursor: pointer;
+ }
+
+ a:hover {
+ color: constants.$production-color;
+ }
+
+ .sign-box {
+ position: relative;
+ background-color: constants.$origin-color;
+ width: 900px;
+ height: 600px;
+ overflow: hidden;
+ border-radius: 12px;
+
+ .left, .right {
+ opacity: 1;
+ transition: all 1s ease;
+
+ > * {
+ width: 100%;
+ height: 100%;
+ }
+
+ &.hidden {
+ opacity: 0;
+ }
+
+ > * {
+ .title {
+ margin-bottom: 20px;
+ transform: translateY(-10px);
+
+ .primary {
+ font-size: 2.4em;
+ font-weight: bolder;
+ color: constants.$production-color;
+ }
+
+ .secondary {
+ font-size: 1.2em;
+ }
+ }
+
+ .form {
+ width: 300px;
+ font-size: 14px;
+
+ button {
+ font-weight: bolder;
+ }
+
+ .addition {
+ justify-content: space-between;
+ margin-bottom: 14px;
+
+ > * {
+ flex: 0 0 auto;
+ }
+ }
+
+ .footer {
+ text-align: center;
+
+ a {
+ color: constants.$production-color;
+ }
+ }
+ }
+ }
+
+ .verify {
+ a {
+ color: constants.$production-color;
+ font-weight: bolder;
+ }
+ }
+
+ .sign-up, .sign-in, .forget {
+ .footer {
+ a {
+ font-weight: bolder;
+ }
+ }
+ }
+
+ .sign-up, .forget {
+ .retry, .success {
+ margin-bottom: 16px;
+
+ a {
+ font-weight: bolder;
+ }
+ }
+ }
+ }
+
+ .cover {
+ position: absolute;
+ height: 100%;
+ width: 50%;
+ background-color: #F3F4F8;
+ transition: all 0.8s ease;
+
+ .ball-box {
+ position: relative;
+ overflow: hidden;
+
+ background-color: #F1F2F7;
+
+ .ball {
+ position: absolute;
+ width: 128px;
+ height: 128px;
+ background-color: constants.$production-color;
+ border-radius: 50%;
+ bottom: 0;
+ left: 50%;
+ transform: translateX(-50%) translateY(50%);
+ }
+ }
+
+ .mask {
+ transform: rotateZ(180deg);
+ filter: blur(12px);
+
+ .ball {
+ width: 140px;
+ height: 140px;
+ }
+ }
+ }
+
+ &.switch {
+ .cover {
+ transform: translateX(100%);
+ transition: all 0.8s ease;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system-framework.scss b/src/assets/css/pages/system-framework.scss
new file mode 100644
index 0000000..6966464
--- /dev/null
+++ b/src/assets/css/pages/system-framework.scss
@@ -0,0 +1,14 @@
+@use "@/assets/css/constants" as constants;
+@use "@/assets/css/mixins" as mixins;
+
+[data-component=system-framework] {
+ .left-panel {
+ background-color: constants.$origin-color;
+ }
+
+ .right-panel {
+ flex: 1;
+ width: 0;
+ background-color: constants.$background-color;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/index.scss b/src/assets/css/pages/system/index.scss
new file mode 100644
index 0000000..1cf03d1
--- /dev/null
+++ b/src/assets/css/pages/system/index.scss
@@ -0,0 +1,41 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=system] {
+ .root-content {
+ padding: 30px;
+ gap: 20px;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+
+ > .card-box {
+ width: 200px;
+ height: 360px;
+ flex: 0 0 auto;
+ overflow: hidden !important;
+ cursor: pointer;
+
+ .common-card {
+ width: 100%;
+ height: 100%;
+ margin-top: 100px;
+ text-align: center;
+ gap: 42px;
+
+ > * {
+ flex: 0 0 auto;
+ display: block;
+ }
+
+ .icon {
+ color: constants.$production-color;
+ font-size: constants.$SIZE_ICON_XL;
+ }
+
+ .text {
+ font-weight: bolder;
+ font-size: 2em;
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/settings.scss b/src/assets/css/pages/system/settings.scss
new file mode 100644
index 0000000..032a7dc
--- /dev/null
+++ b/src/assets/css/pages/system/settings.scss
@@ -0,0 +1,46 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=system-settings] {
+ .root-content {
+ padding: 30px;
+ gap: 20px;
+
+ .root-col {
+ gap: 20px;
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .settings-card {
+ padding: 20px;
+ gap: 20px;
+ color: constants.$main-color;
+
+ > .head {
+ align-items: center;
+ gap: 5px;
+
+ .icon {
+ font-size: constants.$SIZE_ICON_MD;
+ flex: 0 0 auto;
+ }
+
+ .title {
+ display: flex;
+ font-size: 1.2em;
+ }
+
+ :nth-child(n+3) {
+ flex: 0 0 auto;
+ color: constants.$font-main-color;
+ }
+
+ .bt-save {
+ color: constants.$main-color;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/statistics.scss b/src/assets/css/pages/system/statistics.scss
new file mode 100644
index 0000000..7d67e24
--- /dev/null
+++ b/src/assets/css/pages/system/statistics.scss
@@ -0,0 +1,90 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=system-statistics] {
+ .root-content {
+ padding: 30px;
+ gap: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ > .card-box {
+ width: 48%;
+ flex: 0 0 auto;
+
+ .common-card {
+ padding: 20px;
+ gap: 20px;
+
+ > .head {
+ align-items: center;
+ gap: 5px;
+ color: constants.$main-color;
+
+ .icon {
+ font-size: constants.$SIZE_ICON_MD;
+ flex: 0 0 auto;
+ }
+
+ .title {
+ display: flex;
+ font-size: 1.2em;
+ }
+
+ :nth-child(n+3) {
+ flex: 0 0 auto;
+ color: constants.$font-main-color;
+ }
+ }
+
+ .card-content {
+ font-size: 1.1em;
+ padding: 0 10px;
+ gap: 10px;
+
+ .key, .value-percent {
+ flex: 0 0 auto;
+ color: constants.$font-main-color;
+ }
+
+ .value {
+ color: constants.$font-secondary-color;
+ overflow: hidden;
+
+ > * {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+
+ .value-chart {
+ justify-content: space-around;
+ width: 0;
+
+ > div {
+ max-height: 12px;
+ height: 12px;
+
+ > * {
+ transform: translateY(1px);
+ }
+ }
+ }
+
+ .value-percent {
+ text-align: right;
+ }
+
+ .big-chart {
+ width: 0;
+ height: 400px;
+ }
+
+ > * {
+ gap: 5px;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/tools/base.scss b/src/assets/css/pages/system/tools/base.scss
new file mode 100644
index 0000000..358c38b
--- /dev/null
+++ b/src/assets/css/pages/system/tools/base.scss
@@ -0,0 +1,42 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=system-tools-base] {
+ .root-content {
+ padding: 30px;
+ gap: 10px;
+ height: 100%;
+ width: 100%;
+
+ .has-edited::after {
+ content: '*';
+ color: constants.$font-secondary-color;
+ }
+
+ >*:first-child {
+ height: fit-content;
+ }
+
+ > *:nth-child(2) {
+ position: sticky;
+ top: 20px;
+ height: calc(100vh - 60px);
+ }
+
+ .close-editor-btn {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ background-color: constants.$font-secondary-color;
+ width: 32px;
+ height: 32px;
+ border-radius: 50%;
+ color: white;
+ opacity: 0.6;
+ box-shadow: 2px 2px 10px 0 rgba(0,0,0,0.2);
+ cursor: pointer;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/tools/code.scss b/src/assets/css/pages/system/tools/code.scss
new file mode 100644
index 0000000..69ffc34
--- /dev/null
+++ b/src/assets/css/pages/system/tools/code.scss
@@ -0,0 +1,20 @@
+[data-component=system-tools-code] {
+ padding: 30px;
+
+ .card-box {
+ width: 100%;
+ height: 100%;
+ }
+
+ .draggable-content {
+ position: fixed;
+ inset-inline-end: 48px;
+ inset-block-end: 48px;
+
+ > * {
+ position: relative;
+ inset-inline-end: 0;
+ inset-block-end: 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/system/tools/execute.scss b/src/assets/css/pages/system/tools/execute.scss
new file mode 100644
index 0000000..c831c75
--- /dev/null
+++ b/src/assets/css/pages/system/tools/execute.scss
@@ -0,0 +1,8 @@
+[data-component=system-tools-execute] {
+ padding: 30px;
+
+ .card-box {
+ width: 100%;
+ height: 100%;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools-framework.scss b/src/assets/css/pages/tools-framework.scss
index f9e08cf..5652c7d 100644
--- a/src/assets/css/pages/tools-framework.scss
+++ b/src/assets/css/pages/tools-framework.scss
@@ -1,303 +1,14 @@
@use "@/assets/css/constants" as constants;
@use "@/assets/css/mixins" as mixins;
-body {
- background-color: constants.$background-color;
-}
-
-.left-panel {
- display: flex;
- flex-direction: column;
- width: clamp(180px, 20vw, 240px);
- background-color: constants.$origin-color;
- user-select: none;
- transition: all .3s;
- white-space: nowrap;
-
- .title {
- display: flex;
- align-items: center;
- font-weight: bold;
- padding: 10px 14px;
- color: constants.$main-color;
- overflow: hidden;
-
- .icon-box {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 10px;
- width: 40px;
- height: 40px;
- font-size: constants.$SIZE_ICON_SM;
- border-radius: 8px;
- cursor: pointer;
- span {
- transform: rotateZ(180deg);
- transition: all .3s;
- }
-
- &:hover {
- background-color: constants.$background-color;
- }
- }
-
- .text {
- flex: 1;
- font-size: 2em;
- text-align: center;
- letter-spacing: 0.6em;
- transform: translateX(0.3em);
- }
+[data-component=tools-framework] {
+ .left-panel {
+ background-color: constants.$origin-color;
}
- .content {
- display: flex;
- min-height: 0;
- flex-direction: column;
+ .right-panel {
flex: 1;
-
- .toolsMenu {
- min-height: 0;
- flex: 1;
- }
-
- ul {
- > li {
- &.item {
- position: relative;
- margin: 4px 14px;
- font-size: 1.4em;
-
- .menu-bt {
- border-radius: 8px;
- overflow: hidden;
- height: 40px;
-
- .icon-box {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 0 10px;
- width: 40px;
- height: 40px;
- font-size: constants.$SIZE_ICON_SM;
- cursor: pointer;
- }
-
- a {
- display: flex;
- align-items: center;
- height: 100%;
- width: 100%;
- transition: all 0.2s;
-
- .text {
- flex: 1;
- padding-left: 8px;
- }
-
- &.active {
- color: constants.$origin-color;
- background-color: constants.$main-color !important;
- }
- }
- }
-
- .submenu {
- display: none;
- position: fixed;
- padding-left: 20px;
- z-index: 10000;
-
- .content {
- display: flex;
- flex-direction: column;
- gap: 2px;
- padding: 10px 10px;
- background-color: constants.$origin-color;
- border-radius: 8px;
-
- .item {
- border-radius: 8px;
- white-space: nowrap;
- overflow: hidden;
-
- a {
- display: block;
- padding: 8px 16px;
- transition: all 0.2s;
-
- &.active {
- color: constants.$origin-color;
- background-color: constants.$main-color !important;
- }
- }
-
- &:hover a {
- background-color: constants.$background-color;
- }
- }
- }
- }
-
- &:hover {
- .menu-bt {
- a {
- background-color: constants.$background-color;
- }
- }
-
- .submenu {
- display: block;
- animation: 0.3s ease;
- @include mixins.unique-keyframes {
- 0% {
- transform: translateX(-10px);
- opacity: 0;
- }
- 100% {
- transform: translateX(0);
- opacity: 1;
- }
- }
- }
- }
- }
- }
- }
+ width: 0;
+ background-color: constants.$background-color;
}
-
- .separate {
- height: 0;
- margin: 10px 5px;
- border: {
- width: 1px;
- color: constants.$font-secondary-color;
- style: solid;
- };
- opacity: 0.4;
- }
-
- .footer {
- display: flex;
- align-items: center;
- font-weight: bold;
- padding: 8px 14px;
- color: constants.$main-color;
-
- .icon-user {
- display: flex;
- justify-content: center;
- align-items: center;
- margin-left: 4px;
- padding: 10px;
- width: 36px;
- height: 36px;
- font-size: constants.$SIZE_ICON_XS;
- border: 2px constants.$font-secondary-color solid;
- color: constants.$font-secondary-color;
- border-radius: 50%;
- cursor: pointer;
- }
-
- .text {
- flex: 1;
- padding-left: 10px;
- font-size: 1.4em;
- color: constants.$font-main-color;
- user-select: text;
-
- a{
- color: constants.$main-color;
- text-decoration: underline;
- }
- }
-
- .icon-exit {
- font-size: constants.$SIZE_ICON_XS;
- color: constants.$error-color;
- padding: 6px 10px;
- cursor: pointer;
-
- &:hover {
- border-radius: 8px;
- background-color: constants.$background-color;
- }
- }
- }
-
- &.hide {
- width: 68px;
-
- .title {
- .icon-box {
- span {
- transform: rotateZ(360deg);
- transition: all .3s;
- }
- }
- .text {
- display: none;
- }
- }
-
- .menu-bt {
- .text {
- display: none;
- }
- }
-
- .footer {
- position: relative;
- .text {
- display: none;
- }
-
- .submenu-exit {
- display: none;
- position: absolute;
- padding-left: 6px;
- left: 100%;
-
- .content {
- padding: 8px;
- border-radius: 8px;
- background-color: constants.$origin-color;
-
- .icon-exit {
- padding: 4px 8px;
- &:hover {
- border-radius: 8px;
- background-color: constants.$background-color;
- }
- }
- }
-
- &.hide {
- display: none!important;
- }
- }
-
- &:hover .submenu-exit {
- display: block;
- animation: 0.3s ease;
- @include mixins.unique-keyframes {
- 0% {
- transform: translateX(-10px);
- opacity: 0;
- }
- 100% {
- transform: translateX(0);
- opacity: 1;
- }
- }
- }
- }
- }
-}
-
-.right-panel {
- flex: 1;
- background-color: constants.$background-color;
}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/create.scss b/src/assets/css/pages/tools/create.scss
new file mode 100644
index 0000000..dea6b9a
--- /dev/null
+++ b/src/assets/css/pages/tools/create.scss
@@ -0,0 +1,48 @@
+@use "@/assets/css/mixins" as mixins;
+@use "@/assets/css/constants" as constants;
+
+[data-component=tools-create] {
+ .root-content {
+ padding: 20px;
+ gap: 20px;
+ height: 100%;
+ width: 100%;
+
+ > * {
+ gap: 10px;
+ width: 0;
+
+ .title {
+ flex: 0 0 auto;
+ height: 40px;
+
+ > * {
+ height: 100%;
+ width: 100%;
+ justify-content: center;
+ align-items: center;
+ font-size: 1.6em;
+ color: constants.$production-color;
+ font-weight: bolder;
+ }
+ }
+
+ .config {
+ .config-content {
+ padding: 20px;
+
+ .help {
+ margin-left: 6px;
+ color: constants.$font-main-color;
+ font-size: 0.8em;
+ }
+
+ .create-bt {
+ width: 100%;
+ font-weight: bold;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/edit.scss b/src/assets/css/pages/tools/edit.scss
new file mode 100644
index 0000000..2693826
--- /dev/null
+++ b/src/assets/css/pages/tools/edit.scss
@@ -0,0 +1,28 @@
+[data-component=tools-edit] {
+ .root-content {
+ width: 100%;
+ height: 100%;
+
+ > * {
+ width: 0;
+ }
+
+ .draggable-mask {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ }
+ }
+
+ .draggable-content {
+ position: fixed;
+ inset-inline-end: 32px;
+ inset-block-end: 48px;
+
+ > * {
+ position: relative;
+ inset-inline-end: 0;
+ inset-block-end: 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/index.scss b/src/assets/css/pages/tools/index.scss
new file mode 100644
index 0000000..000ce1e
--- /dev/null
+++ b/src/assets/css/pages/tools/index.scss
@@ -0,0 +1,115 @@
+@use "@/assets/css/mixins" as mixins;
+@use '@/assets/css/constants' as constants;
+
+[data-component=tools] {
+ .root-content {
+ padding: 30px;
+ gap: 20px;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+
+ > .card-box {
+ width: 180px;
+ height: 290px;
+ flex: 0 0 auto;
+
+ .common-card {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ align-items: center;
+
+ > * {
+ display: block;
+ flex: 0 0 auto;
+ }
+
+ .version-select {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ width: 8em;
+ }
+
+ .upgrade-bt {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ font-size: 1.8em;
+ }
+
+ .icon {
+ display: flex;
+ padding-top: 50px;
+ padding-bottom: 20px;
+ color: constants.$production-color;
+ font-size: constants.$SIZE_ICON_XL;
+ justify-content: center;
+
+ img {
+ width: constants.$SIZE_ICON_XL;
+ }
+ }
+
+ .tool-name {
+ font-weight: bolder;
+ font-size: 1.6em;
+ }
+ }
+ }
+
+
+ & > :first-child {
+ cursor: pointer;
+
+ .info {
+ padding-top: 50px;
+ }
+ }
+
+ & > :not(:first-child) {
+ .info {
+ transform: translateY(40px);
+ transition: all 0.1s ease;
+ }
+
+ .operation {
+ display: flex;
+ flex: 1;
+ justify-content: center;
+ padding-bottom: 20px;
+ gap: 4px;
+ width: 70%;
+ flex-direction: column;
+ align-items: center;
+ visibility: hidden;
+ opacity: 0;
+
+ > *, .edit > * {
+ width: 100%;
+ }
+
+ .edit {
+ > * {
+ > :first-child {
+ flex: 1;
+ }
+ }
+ }
+ }
+ }
+
+ & > :not(:first-child):hover {
+ .info {
+ transform: translateY(-10px);
+ transition: all 0.2s ease;
+ }
+
+ .operation {
+ visibility: visible;
+ opacity: 1;
+ transition: all 0.4s ease;
+ }
+ }
+ }
+}
diff --git a/src/assets/css/pages/tools/source.scss b/src/assets/css/pages/tools/source.scss
new file mode 100644
index 0000000..eba55ab
--- /dev/null
+++ b/src/assets/css/pages/tools/source.scss
@@ -0,0 +1,8 @@
+[data-component=tools-source] {
+ padding: 30px;
+
+ .card-box {
+ width: 100%;
+ height: 100%;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/store.scss b/src/assets/css/pages/tools/store.scss
new file mode 100644
index 0000000..2028cec
--- /dev/null
+++ b/src/assets/css/pages/tools/store.scss
@@ -0,0 +1,144 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=tools-store] {
+ .search {
+ display: flex;
+ position: sticky;
+ width: 100%;
+ margin-top: 20px;
+ top: 20px;
+ z-index: 10;
+ justify-content: center;
+ transition: all 0.3s ease;
+
+ > * {
+ width: 80%;
+ }
+
+ &.hide {
+ transform: translateY(-60px);
+ }
+ }
+
+ .root-content {
+ padding: 30px;
+ gap: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ > .card-box {
+ width: 180px;
+ height: 290px;
+ flex: 0 0 auto;
+ cursor: pointer;
+
+ .common-card {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ align-items: center;
+
+ > * {
+ display: block;
+ flex: 0 0 auto;
+ }
+
+
+ .icon {
+ display: flex;
+ padding-top: 40px;
+ padding-bottom: 20px;
+ color: constants.$production-color;
+ font-size: constants.$SIZE_ICON_XL;
+ justify-content: center;
+
+ img {
+ width: constants.$SIZE_ICON_XL;
+ }
+ }
+
+ .version {
+ position: absolute;
+ left: 10px;
+ top: 10px;
+ }
+
+ .info {
+ padding-top: 20px;
+
+ .tool-name {
+ font-weight: bolder;
+ font-size: 1.6em;
+ }
+
+ .tool-desc {
+ margin-top: 10px;
+ color: constants.$font-secondary-color;
+ }
+ }
+
+ .author {
+ display: flex;
+ margin-top: auto;
+ flex-direction: row;
+ justify-content: end;
+ padding-bottom: 10px;
+ gap: 10px;
+
+ .avatar {
+ > * {
+ width: 24px;
+ height: 24px;
+ }
+ }
+
+ .author-name {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .operation {
+ position: absolute;
+ top: 6px;
+ right: 12px;
+ font-size: 1.6em;
+
+ > *:hover {
+ color: constants.$font-secondary-color;
+ }
+ }
+ }
+
+ .load-more-card {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ align-items: center;
+
+ .icon {
+ display: flex;
+ font-size: constants.$SIZE_ICON_XXL;
+ color: constants.$production-color;
+ align-items: center;
+ transform: translateY(-20px);
+ }
+
+ .text {
+ position: absolute;
+ top: 60%;
+ font-size: 1.2em;
+ font-weight: bolder;
+ }
+ }
+ }
+
+ .no-tool {
+ display: flex;
+ justify-content: center;
+ font-size: 1.4em;
+ font-weight: bolder;
+ color: constants.$font-secondary-color;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/user.scss b/src/assets/css/pages/tools/user.scss
new file mode 100644
index 0000000..be5635e
--- /dev/null
+++ b/src/assets/css/pages/tools/user.scss
@@ -0,0 +1,188 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=tools-store-user] .root-content {
+ padding: {
+ top: 80px;
+ left: 30px;
+ right: 30px;
+ bottom: 30px;
+ };
+
+ .root-box {
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ align-items: center;
+ min-width: 900px;
+ padding-bottom: 20px;
+
+ > .info {
+ margin-left: 40px;
+ transform: translateY(-40px);
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .avatar-box {
+ background-color: white;
+ padding: 4px;
+ border-radius: 50%;
+ box-shadow: 5px 5px 15px 0 rgba(0, 0, 0, 0.1);
+
+ .avatar {
+ background-color: transparent !important;
+ }
+ }
+
+ .info-name {
+ margin: {
+ top: 20px;
+ left: 24px;
+ };
+ justify-content: center;
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .nickname {
+ font-size: 2.4em;
+ font-weight: bolder;
+ color: constants.$production-color;
+ }
+
+ .url {
+ cursor: pointer;
+
+ > span {
+ margin-left: 8px;
+ }
+ }
+ }
+ }
+
+ .tools {
+ padding: 20px;
+ gap: 20px;
+ flex-wrap: wrap;
+ justify-content: center;
+
+ > .card-box {
+ width: 180px;
+ height: 290px;
+ flex: 0 0 auto;
+ cursor: pointer;
+
+ .common-card {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ align-items: center;
+
+ > * {
+ display: block;
+ flex: 0 0 auto;
+ }
+
+
+ .icon {
+ display: flex;
+ padding-top: 40px;
+ padding-bottom: 20px;
+ color: constants.$production-color;
+ font-size: constants.$SIZE_ICON_XL;
+ justify-content: center;
+
+ img {
+ width: constants.$SIZE_ICON_XL;
+ }
+ }
+
+ .version {
+ position: absolute;
+ left: 10px;
+ top: 10px;
+ }
+
+ .info {
+ padding-top: 20px;
+
+ .tool-name {
+ font-weight: bolder;
+ font-size: 1.6em;
+ }
+
+ .tool-desc {
+ margin-top: 10px;
+ color: constants.$font-secondary-color;
+ }
+ }
+
+ .author {
+ display: flex;
+ margin-top: auto;
+ flex-direction: row;
+ justify-content: end;
+ padding-bottom: 10px;
+ gap: 10px;
+
+ .avatar {
+ > * {
+ width: 24px;
+ height: 24px;
+ }
+ }
+
+ .author-name {
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .operation {
+ position: absolute;
+ top: 6px;
+ right: 12px;
+ font-size: 1.6em;
+
+ > *:hover {
+ color: constants.$font-secondary-color;
+ }
+ }
+ }
+
+ .load-more-card {
+ width: 100%;
+ height: 100%;
+ text-align: center;
+ align-items: center;
+
+ .icon {
+ display: flex;
+ font-size: constants.$SIZE_ICON_XXL;
+ color: constants.$production-color;
+ align-items: center;
+ transform: translateY(-20px);
+ }
+
+ .text {
+ position: absolute;
+ top: 60%;
+ font-size: 1.2em;
+ font-weight: bolder;
+ }
+ }
+ }
+
+ .no-tool {
+ display: flex;
+ justify-content: center;
+ margin-bottom: 20px;
+ font-size: 1.2em;
+ font-weight: bolder;
+ color: constants.$font-secondary-color;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/tools/view.scss b/src/assets/css/pages/tools/view.scss
new file mode 100644
index 0000000..df4f6a6
--- /dev/null
+++ b/src/assets/css/pages/tools/view.scss
@@ -0,0 +1,8 @@
+[data-component=tools-view] {
+ padding: 30px;
+
+ .card-box {
+ height: 100%;
+ width: 100%;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/user-framework.scss b/src/assets/css/pages/user-framework.scss
new file mode 100644
index 0000000..3523793
--- /dev/null
+++ b/src/assets/css/pages/user-framework.scss
@@ -0,0 +1,14 @@
+@use "@/assets/css/constants" as constants;
+@use "@/assets/css/mixins" as mixins;
+
+[data-component=user-framework] {
+ .left-panel {
+ background-color: constants.$origin-color;
+ }
+
+ .right-panel {
+ flex: 1;
+ width: 0;
+ background-color: constants.$background-color;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/pages/user/index.scss b/src/assets/css/pages/user/index.scss
new file mode 100644
index 0000000..ca80775
--- /dev/null
+++ b/src/assets/css/pages/user/index.scss
@@ -0,0 +1,135 @@
+@use '@/assets/css/constants' as constants;
+
+[data-component=user] .root-content {
+ padding: {
+ top: 80px;
+ left: 30px;
+ right: 30px;
+ bottom: 30px;
+ };
+
+ .card-box {
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ align-items: center;
+ min-width: 900px;
+ padding-bottom: 20px;
+
+ > :not(:first-child) {
+ padding: {
+ left: 60px;
+ right: 60px;
+ };
+ }
+
+ .divide {
+ height: 1px;
+ width: calc(100% - 120px);
+ background-color: constants.$divide-color;
+ margin: {
+ left: 60px;
+ right: 60px;
+ };
+ }
+
+ .info {
+ margin-left: 40px;
+ transform: translateY(-40px);
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .avatar-box {
+ background-color: white;
+ padding: 4px;
+ border-radius: 50%;
+ box-shadow: 5px 5px 15px 0 rgba(0, 0, 0, 0.1);
+
+ .avatar {
+ background-color: transparent !important;
+ }
+ }
+
+ .info-name {
+ margin: {
+ top: 20px;
+ left: 24px;
+ };
+ justify-content: center;
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .nickname {
+ font-size: 2.4em;
+ font-weight: bolder;
+ color: constants.$production-color;
+ }
+
+ .url {
+ > span {
+ margin-left: 8px;
+ }
+ }
+ }
+ }
+
+ .title {
+ align-items: center;
+
+ .content {
+ padding: {
+ bottom: 30px;
+ };
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .text {
+ font-size: 1.6em;
+ font-weight: bolder;
+ }
+
+ .operation {
+ gap: 10px;
+ }
+ }
+ }
+
+ .table {
+ gap: 24px;
+
+ padding: {
+ top: 30px;
+ bottom: 20px;
+ };
+
+ .row {
+ > * {
+ flex: 0 0 auto;
+ }
+
+ .label {
+ font-size: 1.4em;
+ font-weight: bolder;
+ width: 400px;
+ }
+
+ .input {
+ width: 400px;
+
+ > * {
+ width: 100%;
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/svg/analysis.svg b/src/assets/svg/analysis.svg
new file mode 100644
index 0000000..50f98c7
--- /dev/null
+++ b/src/assets/svg/analysis.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/back.svg b/src/assets/svg/back.svg
new file mode 100644
index 0000000..ca98267
--- /dev/null
+++ b/src/assets/svg/back.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/base.svg b/src/assets/svg/base.svg
new file mode 100644
index 0000000..f1e2ede
--- /dev/null
+++ b/src/assets/svg/base.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/category.svg b/src/assets/svg/category.svg
new file mode 100644
index 0000000..3f14378
--- /dev/null
+++ b/src/assets/svg/category.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/chart.svg b/src/assets/svg/chart.svg
new file mode 100644
index 0000000..a304276
--- /dev/null
+++ b/src/assets/svg/chart.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/close.svg b/src/assets/svg/close.svg
new file mode 100644
index 0000000..3e959cf
--- /dev/null
+++ b/src/assets/svg/close.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/code.svg b/src/assets/svg/code.svg
new file mode 100644
index 0000000..256aba2
--- /dev/null
+++ b/src/assets/svg/code.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/copy.svg b/src/assets/svg/copy.svg
new file mode 100644
index 0000000..0b71764
--- /dev/null
+++ b/src/assets/svg/copy.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/cpu.svg b/src/assets/svg/cpu.svg
new file mode 100644
index 0000000..11a6990
--- /dev/null
+++ b/src/assets/svg/cpu.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/delete.svg b/src/assets/svg/delete.svg
new file mode 100644
index 0000000..05a00ac
--- /dev/null
+++ b/src/assets/svg/delete.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/disk.svg b/src/assets/svg/disk.svg
new file mode 100644
index 0000000..16a5e21
--- /dev/null
+++ b/src/assets/svg/disk.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/down.svg b/src/assets/svg/down.svg
index 587e1d1..0fdb77e 100644
--- a/src/assets/svg/down.svg
+++ b/src/assets/svg/down.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/email.svg b/src/assets/svg/email.svg
new file mode 100644
index 0000000..d87d895
--- /dev/null
+++ b/src/assets/svg/email.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/execute.svg b/src/assets/svg/execute.svg
new file mode 100644
index 0000000..9cbf71a
--- /dev/null
+++ b/src/assets/svg/execute.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/exit.svg b/src/assets/svg/exit.svg
index 12a1804..39f398d 100644
--- a/src/assets/svg/exit.svg
+++ b/src/assets/svg/exit.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/expand.svg b/src/assets/svg/expand.svg
index 95e5060..0f5e28f 100644
--- a/src/assets/svg/expand.svg
+++ b/src/assets/svg/expand.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/eye.svg b/src/assets/svg/eye.svg
new file mode 100644
index 0000000..e642fde
--- /dev/null
+++ b/src/assets/svg/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/github.svg b/src/assets/svg/github.svg
index 02c1634..ce37a93 100644
--- a/src/assets/svg/github.svg
+++ b/src/assets/svg/github.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/group.svg b/src/assets/svg/group.svg
new file mode 100644
index 0000000..a7dfc6e
--- /dev/null
+++ b/src/assets/svg/group.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/hardware.svg b/src/assets/svg/hardware.svg
new file mode 100644
index 0000000..1eb613b
--- /dev/null
+++ b/src/assets/svg/hardware.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/help.svg b/src/assets/svg/help.svg
new file mode 100644
index 0000000..189c1ca
--- /dev/null
+++ b/src/assets/svg/help.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/home.svg b/src/assets/svg/home.svg
index ee81985..b21e27b 100644
--- a/src/assets/svg/home.svg
+++ b/src/assets/svg/home.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/java.svg b/src/assets/svg/java.svg
new file mode 100644
index 0000000..359d827
--- /dev/null
+++ b/src/assets/svg/java.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/jenkins.svg b/src/assets/svg/jenkins.svg
index ee77645..671dc18 100644
--- a/src/assets/svg/jenkins.svg
+++ b/src/assets/svg/jenkins.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/loading.svg b/src/assets/svg/loading.svg
index 140bea2..31935da 100644
--- a/src/assets/svg/loading.svg
+++ b/src/assets/svg/loading.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/log.svg b/src/assets/svg/log.svg
new file mode 100644
index 0000000..1a0fffb
--- /dev/null
+++ b/src/assets/svg/log.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/logo.svg b/src/assets/svg/logo.svg
index bae41f6..d12ed75 100644
--- a/src/assets/svg/logo.svg
+++ b/src/assets/svg/logo.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/memory.svg b/src/assets/svg/memory.svg
new file mode 100644
index 0000000..a41c3e6
--- /dev/null
+++ b/src/assets/svg/memory.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/menu.svg b/src/assets/svg/menu.svg
index f506c1b..79e4667 100644
--- a/src/assets/svg/menu.svg
+++ b/src/assets/svg/menu.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/more.svg b/src/assets/svg/more.svg
new file mode 100644
index 0000000..289f2a6
--- /dev/null
+++ b/src/assets/svg/more.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/newProject.svg b/src/assets/svg/newProject.svg
new file mode 100644
index 0000000..23d79f4
--- /dev/null
+++ b/src/assets/svg/newProject.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/online.svg b/src/assets/svg/online.svg
new file mode 100644
index 0000000..a6b0741
--- /dev/null
+++ b/src/assets/svg/online.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/option.svg b/src/assets/svg/option.svg
new file mode 100644
index 0000000..63b7795
--- /dev/null
+++ b/src/assets/svg/option.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/password.svg b/src/assets/svg/password.svg
new file mode 100644
index 0000000..acdcbb3
--- /dev/null
+++ b/src/assets/svg/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/plus.svg b/src/assets/svg/plus.svg
new file mode 100644
index 0000000..c01a1b5
--- /dev/null
+++ b/src/assets/svg/plus.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/refresh.svg b/src/assets/svg/refresh.svg
new file mode 100644
index 0000000..5f15aae
--- /dev/null
+++ b/src/assets/svg/refresh.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/role.svg b/src/assets/svg/role.svg
new file mode 100644
index 0000000..f9b455f
--- /dev/null
+++ b/src/assets/svg/role.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/save.svg b/src/assets/svg/save.svg
new file mode 100644
index 0000000..c4692fa
--- /dev/null
+++ b/src/assets/svg/save.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/sensitive.svg b/src/assets/svg/sensitive.svg
new file mode 100644
index 0000000..6ad88d5
--- /dev/null
+++ b/src/assets/svg/sensitive.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/setting.svg b/src/assets/svg/setting.svg
new file mode 100644
index 0000000..ee8bd94
--- /dev/null
+++ b/src/assets/svg/setting.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/share.svg b/src/assets/svg/share.svg
new file mode 100644
index 0000000..f3dfe23
--- /dev/null
+++ b/src/assets/svg/share.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/software.svg b/src/assets/svg/software.svg
new file mode 100644
index 0000000..7a56433
--- /dev/null
+++ b/src/assets/svg/software.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/store.svg b/src/assets/svg/store.svg
new file mode 100644
index 0000000..8362142
--- /dev/null
+++ b/src/assets/svg/store.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/system.svg b/src/assets/svg/system.svg
new file mode 100644
index 0000000..088fca0
--- /dev/null
+++ b/src/assets/svg/system.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/template.svg b/src/assets/svg/template.svg
new file mode 100644
index 0000000..09b663d
--- /dev/null
+++ b/src/assets/svg/template.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/test.svg b/src/assets/svg/test.svg
new file mode 100644
index 0000000..dcc7fc9
--- /dev/null
+++ b/src/assets/svg/test.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/tool.svg b/src/assets/svg/tool.svg
index 0a3973c..cd63e87 100644
--- a/src/assets/svg/tool.svg
+++ b/src/assets/svg/tool.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/assets/svg/upgrade.svg b/src/assets/svg/upgrade.svg
new file mode 100644
index 0000000..aa55d78
--- /dev/null
+++ b/src/assets/svg/upgrade.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/svg/user.svg b/src/assets/svg/user.svg
index 1ac062a..55615ef 100644
--- a/src/assets/svg/user.svg
+++ b/src/assets/svg/user.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/components/Playground/CodeEditor/Editor/ata.ts b/src/components/Playground/CodeEditor/Editor/ata.ts
new file mode 100644
index 0000000..df03b68
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/ata.ts
@@ -0,0 +1,100 @@
+import { ATABootstrapConfig, setupTypeAcquisition } from '@typescript/ata'
+
+type DelegateListener = Required<{
+ [k in keyof ATABootstrapConfig['delegate']]: Set>
+}>
+
+const createDelegate = (): DelegateListener => {
+ return {
+ receivedFile: new Set(),
+ progress: new Set(),
+ errorMessage: new Set(),
+ finished: new Set(),
+ started: new Set()
+ }
+}
+
+const delegateListener = createDelegate()
+
+type InferSet = T extends Set ? U : never
+
+export interface TypeHelper {
+ dispose: () => void
+ acquireType: (code: string) => void
+ removeListener: (
+ event: T,
+ handler: InferSet
+ ) => void
+ addListener: (
+ event: T,
+ handler: InferSet
+ ) => void
+}
+
+export const createATA = async (): Promise => {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ const ts = await import('https://esm.sh/typescript@5.3.3')
+ const ata = setupTypeAcquisition({
+ projectName: 'monaco-ts',
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ typescript: ts,
+ logger: console,
+ fetcher: (input, init) => {
+ try {
+ return fetch(input, init)
+ } catch (error) {
+ console.error('Error fetching data:', error)
+ }
+ return new Promise(() => {})
+ },
+ delegate: {
+ receivedFile: (code, path) => {
+ delegateListener.receivedFile.forEach((fn) => fn(code, path))
+ },
+ started: () => {
+ delegateListener.started.forEach((fn) => fn())
+ },
+ progress: (downloaded, estimatedTotal) => {
+ delegateListener.progress.forEach((fn) => fn(downloaded, estimatedTotal))
+ },
+ finished: (files) => {
+ delegateListener.finished.forEach((fn) => fn(files))
+ }
+ }
+ })
+
+ const acquireType = (code: string) => ata(code)
+
+ const addListener = (
+ event: T,
+ handler: InferSet
+ ) => {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ delegateListener[event].add(handler)
+ }
+
+ const removeListener = (
+ event: T,
+ handler: InferSet
+ ) => {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ delegateListener[event].delete(handler)
+ }
+
+ const dispose = () => {
+ for (const key in delegateListener) {
+ delegateListener[key as keyof DelegateListener].clear()
+ }
+ }
+
+ return {
+ acquireType,
+ addListener,
+ removeListener,
+ dispose
+ }
+}
diff --git a/src/components/Playground/CodeEditor/Editor/editor.scss b/src/components/Playground/CodeEditor/Editor/editor.scss
new file mode 100644
index 0000000..e9f66a6
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/editor.scss
@@ -0,0 +1,98 @@
+@mixin keyframes($animationName) {
+ @-webkit-keyframes #{$animationName} {
+ @content
+ }
+ @-moz-keyframes #{$animationName} {
+ @content
+ }
+ @-o-keyframes #{$animationName} {
+ @content
+ }
+ @keyframes #{$animationName} {
+ @content
+ }
+}
+
+@mixin unique-keyframes {
+ $animationName: unique-id();
+ animation-name: $animationName;
+ @include keyframes($animationName) {
+ @content
+ }
+}
+
+[data-component=playground-code-editor-editor] {
+ position: relative;
+ height: 0;
+
+ .monaco-editor-light {
+ height: 100%;
+ overflow: hidden;
+ background-color: var(--border);
+
+ .jsx-tag-angle-bracket {
+ color: #800000;
+ }
+
+ .jsx-text {
+ color: #000;
+ }
+
+ .jsx-tag-name {
+ color: #800000;
+ }
+
+ .jsx-tag-attribute-key {
+ color: #f00;
+ }
+ }
+
+ .monaco-editor-vs-dark {
+ height: 100%;
+ overflow: hidden;
+ background-color: var(--border);
+
+ .jsx-tag-angle-bracket {
+ color: #808080;
+ }
+
+ .jsx-text {
+ color: #d4d4d4;
+ }
+
+ .jsx-tag-name {
+ color: #569cd6;
+ }
+
+ .jsx-tag-attribute-key {
+ color: #9cdcfe;
+ }
+ }
+
+ .playground-code-editor-loading {
+ position: absolute;
+ top: 0;
+ right: 0;
+ margin: 4px;
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ border: {
+ top: 2px #666 solid;
+ bottom: 2px #ddd solid;
+ left: 2px #ddd solid;
+ right: 2px #ddd solid;
+ };
+ animation: .6s linear infinite;
+
+ @include unique-keyframes {
+ 0% {
+ transform: rotateZ(0);
+ }
+
+ 100% {
+ transform: rotateZ(360deg);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/Playground/CodeEditor/Editor/hooks.ts b/src/components/Playground/CodeEditor/Editor/hooks.ts
new file mode 100644
index 0000000..21e47ed
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/hooks.ts
@@ -0,0 +1,111 @@
+import { editor, IPosition, Selection } from 'monaco-editor'
+import ScrollType = editor.ScrollType
+import { Monaco } from '@monaco-editor/react'
+import { getWorker, MonacoJsxSyntaxHighlight } from 'monaco-jsx-syntax-highlight'
+import { createATA, TypeHelper } from '@/components/Playground/CodeEditor/Editor/ata'
+
+export const useEditor = () => {
+ const doOpenEditor = (
+ editor: editor.IStandaloneCodeEditor,
+ input: { options: { selection: Selection } }
+ ) => {
+ const selection = input.options ? input.options.selection : null
+ if (selection) {
+ if (
+ typeof selection.endLineNumber === 'number' &&
+ typeof selection.endColumn === 'number'
+ ) {
+ editor.setSelection(selection)
+ editor.revealRangeInCenter(selection, ScrollType.Immediate)
+ } else {
+ const position: IPosition = {
+ lineNumber: selection.startLineNumber,
+ column: selection.startColumn
+ }
+ editor.setPosition(position)
+ editor.revealPositionInCenter(position, ScrollType.Immediate)
+ }
+ }
+ }
+
+ const loadJsxSyntaxHighlight = (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => {
+ const monacoJsxSyntaxHighlight = new MonacoJsxSyntaxHighlight(getWorker(), monaco)
+ const { highlighter, dispose } = monacoJsxSyntaxHighlight.highlighterBuilder({ editor })
+
+ editor.onDidChangeModelContent(() => {
+ highlighter()
+ })
+ highlighter()
+
+ return { highlighter, dispose }
+ }
+
+ const autoLoadExtraLib = async (
+ editor: editor.IStandaloneCodeEditor,
+ monaco: Monaco,
+ defaultValue: string,
+ onWatch: (typeHelper: TypeHelper) => () => void
+ ) => {
+ const typeHelper = await createATA()
+
+ onWatch(typeHelper)
+
+ typeHelper.acquireType(`import React from 'react'`)
+
+ editor.onDidChangeModelContent(() => {
+ typeHelper.acquireType(editor.getValue())
+ })
+
+ const addLibraryToRuntime = (code: string, path: string) => {
+ monaco.languages.typescript.typescriptDefaults.addExtraLib(code, `file://${path}`)
+ }
+
+ typeHelper.addListener('receivedFile', addLibraryToRuntime)
+ typeHelper.acquireType(defaultValue)
+
+ return typeHelper
+ }
+
+ return {
+ doOpenEditor,
+ loadJsxSyntaxHighlight,
+ autoLoadExtraLib
+ }
+}
+
+export const useTypesProgress = () => {
+ const [progress, setProgress] = useState(0)
+ const [total, setTotal] = useState(0)
+ const [finished, setFinished] = useState(false)
+
+ const onWatch = (typeHelper: TypeHelper) => {
+ const handleStarted = () => {
+ setFinished(false)
+ }
+ typeHelper.addListener('started', handleStarted)
+
+ const handleProgress = (progress: number, total: number) => {
+ setProgress(progress)
+ setTotal(total)
+ }
+ typeHelper.addListener('progress', handleProgress)
+
+ const handleFinished = () => {
+ setFinished(true)
+ }
+ typeHelper.addListener('progress', handleFinished)
+
+ return () => {
+ typeHelper.removeListener('started', handleStarted)
+ typeHelper.removeListener('progress', handleProgress)
+ typeHelper.removeListener('finished', handleFinished)
+ }
+ }
+
+ return {
+ progress,
+ total,
+ finished,
+ onWatch
+ }
+}
diff --git a/src/components/Playground/CodeEditor/Editor/index.tsx b/src/components/Playground/CodeEditor/Editor/index.tsx
new file mode 100644
index 0000000..c1f71fb
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/index.tsx
@@ -0,0 +1,129 @@
+import { editor, Selection } from 'monaco-editor'
+import MonacoEditor, { Monaco } from '@monaco-editor/react'
+import '@/components/Playground/CodeEditor/Editor/editor.scss'
+import '@/components/Playground/CodeEditor/Editor/loader'
+import { IEditorOptions, IFiles, ITheme, ITsconfig } from '@/components/Playground/shared'
+import { fileNameToLanguage, tsconfigJsonDiagnosticsOptions } from '@/components/Playground/files'
+import { useEditor, useTypesProgress } from '@/components/Playground/CodeEditor/Editor/hooks'
+import { MonacoEditorConfig } from '@/components/Playground/CodeEditor/Editor/monacoConfig'
+
+interface EditorProps {
+ tsconfig?: ITsconfig
+ files?: IFiles
+ selectedFileName?: string
+ readonly?: boolean
+ onChange?: (code: string | undefined) => void
+ options?: IEditorOptions
+ theme?: ITheme
+ onJumpFile?: (fileName: string) => void
+}
+
+const Editor = ({
+ tsconfig,
+ files = {},
+ selectedFileName = '',
+ readonly,
+ theme,
+ onChange,
+ options,
+ onJumpFile
+}: EditorProps) => {
+ const editorRef = useRef()
+ const monacoRef = useRef()
+ const { doOpenEditor, loadJsxSyntaxHighlight, autoLoadExtraLib } = useEditor()
+ const jsxSyntaxHighlightRef = useRef<{
+ highlighter: (code?: string | undefined) => void
+ dispose: () => void
+ }>({
+ highlighter: () => undefined,
+ dispose: () => undefined
+ })
+ const { total, finished, onWatch } = useTypesProgress()
+ const file = files[selectedFileName] || { name: 'Untitled' }
+
+ const handleOnEditorWillMount = (monaco: Monaco) => {
+ monaco.languages.json.jsonDefaults.setDiagnosticsOptions(tsconfigJsonDiagnosticsOptions)
+ tsconfig &&
+ monaco.languages.typescript.typescriptDefaults.setCompilerOptions(
+ tsconfig.compilerOptions
+ )
+
+ if (files) {
+ monaco.editor.getModels().forEach((model) => model.dispose())
+ Object.entries(files).forEach(([key]) => {
+ if (!monaco.editor.getModel(monaco.Uri.parse(`file:///${key}`))) {
+ monaco.editor.createModel(
+ files[key].value,
+ fileNameToLanguage(key),
+ monaco.Uri.parse(`file:///${key}`)
+ )
+ }
+ })
+ }
+ }
+
+ const handleOnEditorDidMount = (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => {
+ editorRef.current = editor
+ editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KeyS, () => {
+ void editor.getAction('editor.action.formatDocument')?.run()
+ })
+
+ monacoRef.current = monaco
+
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
+ editor['_codeEditorService'].doOpenEditor = function (
+ editor: editor.IStandaloneCodeEditor,
+ input: { options: { selection: Selection }; resource: { path: string } }
+ ) {
+ const path = input.resource.path
+ if (!path.startsWith('/node_modules/')) {
+ onJumpFile?.(path.replace('/', ''))
+ doOpenEditor(editor, input)
+ }
+ }
+
+ jsxSyntaxHighlightRef.current = loadJsxSyntaxHighlight(editor, monaco)
+
+ void autoLoadExtraLib(editor, monaco, file.value, onWatch)
+ }
+
+ useEffect(() => {
+ editorRef.current?.focus()
+ jsxSyntaxHighlightRef?.current?.highlighter?.()
+ }, [file.name])
+
+ useEffect(() => {
+ tsconfig &&
+ monacoRef.current?.languages.typescript.typescriptDefaults.setCompilerOptions(
+ tsconfig.compilerOptions
+ )
+ }, [tsconfig])
+
+ return (
+ <>
+
+
+ {total > 0 && !finished &&
}
+
+ >
+ )
+}
+
+export default Editor
diff --git a/src/components/Playground/CodeEditor/Editor/loader.ts b/src/components/Playground/CodeEditor/Editor/loader.ts
new file mode 100644
index 0000000..c568b2c
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/loader.ts
@@ -0,0 +1,7 @@
+import { loader } from '@monaco-editor/react'
+
+loader.config({
+ paths: {
+ vs: 'https://unpkg.com/monaco-editor@0.45.0/min/vs'
+ }
+})
diff --git a/src/components/Playground/CodeEditor/Editor/monacoConfig.ts b/src/components/Playground/CodeEditor/Editor/monacoConfig.ts
new file mode 100644
index 0000000..7411eb7
--- /dev/null
+++ b/src/components/Playground/CodeEditor/Editor/monacoConfig.ts
@@ -0,0 +1,34 @@
+import { editor } from 'monaco-editor'
+
+export const MonacoEditorConfig: editor.IStandaloneEditorConstructionOptions = {
+ automaticLayout: true,
+ cursorBlinking: 'smooth',
+ fontLigatures: true,
+ formatOnPaste: true,
+ formatOnType: true,
+ fontSize: 14,
+ showDeprecated: true,
+ showUnused: true,
+ showFoldingControls: 'mouseover',
+ scrollBeyondLastLine: false,
+ minimap: {
+ enabled: false
+ },
+ inlineSuggest: {
+ enabled: false
+ },
+ fixedOverflowWidgets: true,
+ smoothScrolling: true,
+ smartSelect: {
+ selectSubwords: true,
+ selectLeadingAndTrailingWhitespace: true
+ },
+ tabSize: 2,
+ overviewRulerBorder: false, // 不要滚动条的边框
+ // 滚动条设置
+ scrollbar: {
+ verticalScrollbarSize: 6, // 竖滚动条
+ horizontalScrollbarSize: 6 // 横滚动条
+ }
+ // lineNumbers: 'off', // 隐藏控制行号
+}
diff --git a/src/components/Playground/CodeEditor/FileSelector/Item.tsx b/src/components/Playground/CodeEditor/FileSelector/Item.tsx
new file mode 100644
index 0000000..4fe7c1f
--- /dev/null
+++ b/src/components/Playground/CodeEditor/FileSelector/Item.tsx
@@ -0,0 +1,141 @@
+import { Dispatch, SetStateAction, KeyboardEvent, ChangeEvent, MouseEvent } from 'react'
+
+interface ItemProps {
+ className?: string
+ readonly?: boolean
+ creating?: boolean
+ value: string
+ active?: boolean
+ hasEditing?: boolean
+ setHasEditing?: Dispatch>
+ onOk?: (fileName: string) => void
+ onCancel?: () => void
+ onRemove?: (fileName: string) => void
+ onClick?: () => void
+ onValidate?: (newFileName: string, oldFileName: string) => boolean
+}
+
+const Item = ({
+ className,
+ readonly = false,
+ value,
+ active = false,
+ hasEditing,
+ setHasEditing,
+ onOk,
+ onCancel,
+ onRemove,
+ onClick,
+ onValidate,
+ ...prop
+}: ItemProps) => {
+ const inputRef = useRef(null)
+ const [fileName, setFileName] = useState(value)
+ const [creating, setCreating] = useState(prop.creating)
+
+ const handleOnClick = () => {
+ if (hasEditing) {
+ return
+ }
+
+ onClick?.()
+ }
+
+ const handleKeyDown = (event: KeyboardEvent) => {
+ if (event.key === 'Enter') {
+ event.preventDefault()
+ finishNameFile()
+ } else if (event.key === 'Escape') {
+ event.preventDefault()
+ cancelNameFile()
+ }
+ }
+
+ const finishNameFile = () => {
+ if (!creating || onValidate ? !onValidate?.(fileName, value) : false) {
+ inputRef.current?.focus()
+ return
+ }
+
+ if (fileName === value && active) {
+ setCreating(false)
+ setHasEditing?.(false)
+ return
+ }
+
+ onOk?.(fileName)
+ setCreating(false)
+ setHasEditing?.(false)
+ }
+
+ const cancelNameFile = () => {
+ setFileName(value)
+ setCreating(false)
+ setHasEditing?.(false)
+ onCancel?.()
+ }
+
+ const handleOnDoubleClick = () => {
+ if (readonly || creating || hasEditing) {
+ return
+ }
+
+ setCreating(true)
+ setHasEditing?.(true)
+ setFileName(value)
+ setTimeout(() => {
+ inputRef.current?.focus()
+ inputRef.current?.setSelectionRange(0, inputRef.current?.value.lastIndexOf('.'))
+ })
+ }
+
+ const handleOnChange = (e: ChangeEvent) => {
+ setFileName(e.target.value)
+ }
+
+ const handleOnDelete = (e: MouseEvent) => {
+ e.stopPropagation()
+ if (hasEditing) {
+ return
+ }
+ if (confirm(`确定删除文件 ${value} ?`)) {
+ onRemove?.(value)
+ }
+ }
+
+ useEffect(() => {
+ inputRef.current?.focus()
+ }, [])
+
+ return (
+
+ {creating ? (
+
+
+ {fileName}
+
+ ) : (
+ <>
+
{value}
+ {!readonly && (
+
+
+
+ )}
+ >
+ )}
+
+ )
+}
+
+export default Item
diff --git a/src/components/Playground/CodeEditor/FileSelector/file-selector.scss b/src/components/Playground/CodeEditor/FileSelector/file-selector.scss
new file mode 100644
index 0000000..a1a0ecd
--- /dev/null
+++ b/src/components/Playground/CodeEditor/FileSelector/file-selector.scss
@@ -0,0 +1,86 @@
+[data-component=playground-file-selector].tab{
+ display: flex;
+ flex: 0 0 auto;
+ height: 40px;
+
+ .multiple {
+ flex: 1;
+ width: 0;
+
+ .tab-content {
+ height: 40px;
+ align-items: flex-end;
+ gap: 2px;
+ margin-left: 10px;
+
+ .tab-item-add {
+ padding: 0 12px;
+ }
+
+ .tabs-margin-right {
+ height: 100%;
+
+ > * {
+ height: 100%;
+ width: 10px;
+ }
+ }
+ }
+ }
+
+ .sticky {
+ display: flex;
+ flex: 0 0 auto;
+ align-items: flex-end;
+ margin-right: 10px;
+ }
+
+ .tab-item {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: 0 0 auto;
+ height: 30px;
+ padding: 0 20px;
+ border: 1px solid #f0f0f0;
+ background-color: rgba(0, 0, 0, 0.04);
+ border-radius: 6px 6px 0 0;
+ cursor: pointer;
+
+ .tab-item-input {
+ position: relative;
+ min-width: 40px;
+ transform: translateY(1px);
+
+ .tab-item-input-mask {
+ display: inline-block;
+ color: transparent;
+ }
+ input {
+ position: absolute;
+ background-color: transparent;
+ width: 100%;
+ font-size: 1em;
+ }
+ }
+
+ .tab-item-close {
+ transform: translateX(10px);
+
+ :hover {
+ fill: #888;
+ }
+
+ svg {
+ height: 8px;
+ fill: #666;
+ }
+ }
+
+ &.active {
+ background-color: white;
+ border-bottom: none;
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/components/Playground/CodeEditor/FileSelector/index.tsx b/src/components/Playground/CodeEditor/FileSelector/index.tsx
new file mode 100644
index 0000000..b86cb55
--- /dev/null
+++ b/src/components/Playground/CodeEditor/FileSelector/index.tsx
@@ -0,0 +1,228 @@
+import '@/components/Playground/CodeEditor/FileSelector/file-selector.scss'
+import HideScrollbar, { HideScrollbarElement } from '@/components/common/HideScrollbar'
+import FlexBox from '@/components/common/FlexBox'
+import { IFiles } from '@/components/Playground/shared'
+import {
+ getFileNameList,
+ IMPORT_MAP_FILE_NAME,
+ TS_CONFIG_FILE_NAME
+} from '@/components/Playground/files'
+import Item from '@/components/Playground/CodeEditor/FileSelector/Item'
+
+interface FileSelectorProps {
+ files?: IFiles
+ onChange?: (fileName: string) => void
+ onError?: (msg: string) => void
+ readonly?: boolean
+ notRemovableFiles?: string[]
+ onRemoveFile?: (fileName: string) => void
+ onAddFile?: (fileName: string) => void
+ onUpdateFileName?: (newFileName: string, oldFileName: string) => void
+ selectedFileName?: string
+}
+
+const FileSelector = ({
+ files = {},
+ onChange,
+ onError,
+ readonly = false,
+ notRemovableFiles = [],
+ onRemoveFile,
+ onAddFile,
+ onUpdateFileName,
+ selectedFileName = ''
+}: FileSelectorProps) => {
+ const hideScrollbarRef = useRef(null)
+ const [tabs, setTabs] = useState([])
+ const [creating, setCreating] = useState(false)
+ const [hasEditing, setHasEditing] = useState(false)
+
+ const getMaxSequenceTabName = (filesName: string[]) => {
+ const result = filesName.reduce((max, filesName) => {
+ const match = filesName.match(/Component(\d+)\.tsx/)
+ if (match) {
+ const sequenceNumber = parseInt(match[1], 10)
+ return Math.max(Number(max), sequenceNumber)
+ }
+ return max
+ }, 0)
+
+ return `Component${result + 1}.tsx`
+ }
+
+ const addTab = () => {
+ if (hasEditing) {
+ return
+ }
+
+ setTabs([...tabs, getMaxSequenceTabName(tabs)])
+ setCreating(true)
+ setTimeout(() => {
+ hideScrollbarRef.current?.scrollRight(1000)
+ })
+ }
+
+ const handleOnCancel = () => {
+ onError?.('')
+ if (!creating) {
+ return
+ }
+ tabs.pop()
+ setTabs([...tabs])
+ setCreating(false)
+ }
+
+ const handleOnClickTab = (fileName: string) => {
+ if (creating) {
+ return
+ }
+
+ onChange?.(fileName)
+ }
+
+ const editImportMap = () => {
+ if (hasEditing) {
+ return
+ }
+
+ onChange?.(IMPORT_MAP_FILE_NAME)
+ }
+
+ const editTsconfig = () => {
+ if (hasEditing) {
+ return
+ }
+
+ onChange?.(TS_CONFIG_FILE_NAME)
+ }
+
+ const handleOnSaveTab = (value: string, item: string) => {
+ if (creating) {
+ onAddFile?.(value)
+ setCreating(false)
+ } else {
+ onUpdateFileName?.(value, item)
+ }
+
+ setTimeout(() => {
+ handleOnClickTab(value)
+ })
+ }
+
+ const handleOnValidateTab = (newFileName: string, oldFileName: string) => {
+ if (newFileName.length > 40) {
+ onError?.('File name is too long, maximum 40 characters.')
+ }
+
+ if (!/\.(jsx|tsx|js|ts|css|json)$/.test(newFileName)) {
+ onError?.('Playground only supports *.jsx, *.tsx, *.js, *.ts, *.css, *.json files.')
+
+ return false
+ }
+
+ if (
+ tabs.map((item) => item.toLowerCase()).includes(newFileName.toLowerCase()) &&
+ newFileName.toLowerCase() !== oldFileName.toLowerCase()
+ ) {
+ onError?.(`File "${newFileName}" already exists.`)
+ return false
+ }
+
+ onError?.('')
+
+ return true
+ }
+
+ const handleOnRemove = (fileName: string) => {
+ onRemoveFile?.(fileName)
+ if (fileName === selectedFileName) {
+ const keys = getFileNameList(files).filter(
+ (item) =>
+ ![IMPORT_MAP_FILE_NAME, TS_CONFIG_FILE_NAME].includes(item) &&
+ !files[item].hidden
+ )
+ const index = keys.indexOf(fileName) - 1
+ if (index >= 0) {
+ handleOnClickTab(keys[index])
+ } else {
+ handleOnClickTab(keys[1])
+ }
+ }
+ }
+
+ useEffect(() => {
+ getFileNameList(files).length
+ ? setTabs(
+ getFileNameList(files).filter(
+ (item) =>
+ ![IMPORT_MAP_FILE_NAME, TS_CONFIG_FILE_NAME].includes(item) &&
+ !files[item].hidden
+ )
+ )
+ : setTabs([])
+ }, [files])
+
+ return (
+ <>
+
+
+
+
+ {tabs.map((item, index) => (
+ - handleOnSaveTab(name, item)}
+ onCancel={handleOnCancel}
+ onRemove={handleOnRemove}
+ onClick={() => handleOnClickTab(item)}
+ />
+ ))}
+ {!readonly && (
+
+ )}
+
+
+
+
+ {(files[IMPORT_MAP_FILE_NAME] || files[TS_CONFIG_FILE_NAME]) && (
+
+ {files[TS_CONFIG_FILE_NAME] && (
+
+ )}
+ {files[IMPORT_MAP_FILE_NAME] && (
+
+ )}
+
+ )}
+
+ >
+ )
+}
+
+FileSelector.Item = Item
+
+export default FileSelector
diff --git a/src/components/Playground/CodeEditor/code-editor.scss b/src/components/Playground/CodeEditor/code-editor.scss
new file mode 100644
index 0000000..3887677
--- /dev/null
+++ b/src/components/Playground/CodeEditor/code-editor.scss
@@ -0,0 +1,5 @@
+[data-component=playground-code-editor] {
+ position: relative;
+ width: 100%;
+ height: 100%;
+}
\ No newline at end of file
diff --git a/src/components/Playground/CodeEditor/index.tsx b/src/components/Playground/CodeEditor/index.tsx
new file mode 100644
index 0000000..b2d70d6
--- /dev/null
+++ b/src/components/Playground/CodeEditor/index.tsx
@@ -0,0 +1,166 @@
+import _ from 'lodash'
+import '@/components/Playground/CodeEditor/code-editor.scss'
+import FlexBox from '@/components/common/FlexBox'
+import { IEditorOptions, IFiles, ITheme, ITsconfig } from '@/components/Playground/shared'
+import {
+ fileNameToLanguage,
+ getFileNameList,
+ IMPORT_MAP_FILE_NAME,
+ TS_CONFIG_FILE_NAME
+} from '@/components/Playground/files'
+import FileSelector from '@/components/Playground/CodeEditor/FileSelector'
+import Editor from '@/components/Playground/CodeEditor/Editor'
+
+interface CodeEditorProps {
+ theme?: ITheme
+ showFileSelector?: boolean
+ tsconfig?: ITsconfig
+ files: IFiles
+ readonly?: boolean
+ readonlyFiles?: string[]
+ notRemovable?: string[]
+ selectedFileName?: string
+ options?: IEditorOptions
+ onSelectedFileChange?: (fileName: string) => void
+ onAddFile?: (fileName: string, files: IFiles) => void
+ onRemoveFile?: (fileName: string, files: IFiles) => void
+ onRenameFile?: (newFileName: string, oldFileName: string, files: IFiles) => void
+ onChangeFileContent?: (content: string, fileName: string, files: IFiles) => void
+ onError?: (msg: string) => void
+}
+
+const CodeEditor = ({
+ theme,
+ showFileSelector = true,
+ tsconfig,
+ files,
+ readonly,
+ readonlyFiles,
+ notRemovable,
+ options,
+ onSelectedFileChange,
+ onAddFile,
+ onRemoveFile,
+ onRenameFile,
+ onChangeFileContent,
+ onError,
+ ...props
+}: CodeEditorProps) => {
+ const filteredFilesName = getFileNameList(files).filter(
+ (item) => ![IMPORT_MAP_FILE_NAME, TS_CONFIG_FILE_NAME].includes(item) && !files[item].hidden
+ )
+ const propsSelectedFileName =
+ props.selectedFileName || (filteredFilesName.length ? filteredFilesName[0] : '')
+ const [selectedFileName, setSelectedFileName] = useState(propsSelectedFileName)
+ const [errorMsg, setErrorMsg] = useState('')
+
+ const handleOnChangeSelectedFile = (fileName: string) => {
+ if (onSelectedFileChange) {
+ onSelectedFileChange(fileName)
+ } else {
+ setSelectedFileName(fileName)
+ }
+ }
+
+ const handleOnRemoveFile = (fileName: string) => {
+ const clone = _.cloneDeep(files)
+ delete clone[fileName]
+ onRemoveFile?.(fileName, clone)
+ }
+
+ const handleOnAddFile = (fileName: string) => {
+ const clone = _.cloneDeep(files)
+ clone[fileName] = {
+ name: fileName,
+ language: fileNameToLanguage(fileName),
+ value: ''
+ }
+ onAddFile?.(fileName, clone)
+ handleOnChangeSelectedFile(fileName)
+ }
+
+ const handleOnUpdateFileName = (newFileName: string, oldFileName: string) => {
+ if (!files[oldFileName] || !newFileName) {
+ return
+ }
+
+ const { [oldFileName]: value, ...rest } = files
+ const newFile: IFiles = {
+ [newFileName]: {
+ ...value,
+ language: fileNameToLanguage(newFileName),
+ name: newFileName
+ }
+ }
+ const newFiles: IFiles = { ...rest, ...newFile }
+
+ onRenameFile?.(newFileName, oldFileName, newFiles)
+ }
+
+ const handleOnError = (msg: string) => {
+ if (onError) {
+ onError(msg)
+ } else {
+ setErrorMsg(msg)
+ }
+ }
+
+ const handleOnChangeFileContent = (code: string = '') => {
+ if (!files[onSelectedFileChange ? propsSelectedFileName : selectedFileName]) {
+ return
+ }
+ const clone = _.cloneDeep(files)
+ clone[onSelectedFileChange ? propsSelectedFileName : selectedFileName].value = code ?? ''
+ onChangeFileContent?.(
+ code,
+ onSelectedFileChange ? propsSelectedFileName : selectedFileName,
+ clone
+ )
+ }
+
+ return (
+ <>
+
+ {showFileSelector && (
+
+ )}
+
+ {errorMsg && {errorMsg}
}
+
+ >
+ )
+}
+
+CodeEditor.Editor = Editor
+CodeEditor.FileSelector = FileSelector
+
+export default CodeEditor
diff --git a/src/components/Playground/Output/Preview/Render.tsx b/src/components/Playground/Output/Preview/Render.tsx
new file mode 100644
index 0000000..8f803cb
--- /dev/null
+++ b/src/components/Playground/Output/Preview/Render.tsx
@@ -0,0 +1,60 @@
+import '@/components/Playground/Output/Preview/render.scss'
+import iframeRaw from '@/components/Playground/Output/Preview/iframe.html?raw'
+
+interface RenderProps {
+ iframeKey: string
+ compiledCode: string
+}
+
+interface IMessage {
+ type: 'LOADED' | 'ERROR' | 'UPDATE' | 'DONE'
+ msg: string
+ data: {
+ compiledCode: string
+ }
+}
+
+const getIframeUrl = (iframeRaw: string) => {
+ const shimsUrl = '//unpkg.com/es-module-shims/dist/es-module-shims.js'
+ // 判断浏览器是否支持esm ,不支持esm就引入es-module-shims
+ const newIframeRaw =
+ typeof import.meta === 'undefined'
+ ? iframeRaw.replace(
+ '',
+ ``
+ )
+ : iframeRaw
+ return URL.createObjectURL(new Blob([newIframeRaw], { type: 'text/html' }))
+}
+
+const iframeUrl = getIframeUrl(iframeRaw)
+
+const Render = ({ iframeKey, compiledCode }: RenderProps) => {
+ const iframeRef = useRef(null)
+ const [loaded, setLoaded] = useState(false)
+
+ useEffect(() => {
+ if (loaded) {
+ iframeRef.current?.contentWindow?.postMessage(
+ {
+ type: 'UPDATE',
+ data: { compiledCode }
+ } as IMessage,
+ '*'
+ )
+ }
+ }, [compiledCode, loaded])
+
+ return (
+