From 622df8f054a54a0eb180501dc32ccdcabf619f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=A7=82=E4=BC=9F?= Date: Tue, 16 Sep 2025 17:45:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=8D=A2=E4=BB=93=E5=BA=93?= =?UTF-8?q?=E5=9C=B0=E5=9D=80,=20=E5=87=8F=E5=B0=91=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/ModelModal/package.json | 34 +- ui/ModelModal/pnpm-lock.yaml | 1365 +++-------------- ui/ModelModal/src/ModelModal.tsx | 852 +++++----- .../src/components/ModelTagsWithLabel.tsx | 133 +- .../src/components/Tags/CustomTag.tsx | 148 +- ui/ModelModal/src/components/card/index.tsx | 14 +- ui/ModelModal/src/theme.ts | 4 +- ui/ModelModal/vite.config.ts | 67 +- 8 files changed, 945 insertions(+), 1672 deletions(-) diff --git a/ui/ModelModal/package.json b/ui/ModelModal/package.json index dc34c38..5b11522 100644 --- a/ui/ModelModal/package.json +++ b/ui/ModelModal/package.json @@ -1,6 +1,6 @@ { - "name": "@yokowu/modelkit-ui", - "version": "0.8.0", + "name": "@ctzhian/modelkit", + "version": "0.0.3", "description": "A reusable AI model configuration modal component for React applications", "private": false, "type": "module", @@ -16,7 +16,8 @@ "./styles": "./dist/styles.css" }, "publishConfig": { - "registry": "https://registry.npmjs.org" + "registry": "https://registry.npmjs.org", + "access": "public" }, "files": [ "dist" @@ -53,22 +54,20 @@ "bugs": { "url": "https://github.com/chaitin/ModelKit/issues" }, + "peerDependencies": { + "@ctzhian/ui": "^7", + "@emotion/react": "^11", + "@emotion/styled": "^11", + "@mui/icons-material": "^7", + "@mui/material": "^7", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, "dependencies": { - "@c-x/ui": "^1.0.9", - "@emotion/react": "^11.14.0", - "@emotion/styled": "^11.14.1", - "@mui/icons-material": "^7.3.2", - "@mui/material": "^6.4.12", - "react": "^19.1.0", "react-activity-calendar": "^2.7.12", "react-copy-to-clipboard": "^5.1.0", - "react-dom": "^19.1.0", "react-hook-form": "^7.56.4", - "react-i18next": "^15.7.3", - "react-markdown": "^10.1.0", - "react-router-dom": "^7.6.0", - "react-syntax-highlighter": "^15.6.1", - "styled-components": "^6.1.19" + "react-i18next": "^15.7.3" }, "devDependencies": { "@types/node": "^24.2.1", @@ -77,6 +76,7 @@ "@vitejs/plugin-react": "^4.4.1", "axios": "^1.11.0", "vite": "^6.3.5", - "vite-plugin-dts": "^4.5.4" + "vite-plugin-dts": "^4.5.4", + "rollup-plugin-visualizer": "^6.0.3" } -} +} \ No newline at end of file diff --git a/ui/ModelModal/pnpm-lock.yaml b/ui/ModelModal/pnpm-lock.yaml index 1f485b1..157541b 100644 --- a/ui/ModelModal/pnpm-lock.yaml +++ b/ui/ModelModal/pnpm-lock.yaml @@ -8,23 +8,26 @@ importers: .: dependencies: - '@c-x/ui': - specifier: ^1.0.9 - version: 1.0.9(66634cc685bfe27894a601952ec98614) + '@ctzhian/ui': + specifier: ^7 + version: 7.0.5(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/icons-material@7.3.2(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/utils@7.3.2(@types/react@19.1.10)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@emotion/react': - specifier: ^11.14.0 + specifier: ^11 version: 11.14.0(@types/react@19.1.10)(react@19.1.1) '@emotion/styled': - specifier: ^11.14.1 + specifier: ^11 version: 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@mui/icons-material': - specifier: ^7.3.2 - version: 7.3.2(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) + specifier: ^7 + version: 7.3.2(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@mui/material': - specifier: ^6.4.12 - version: 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: ^7 + version: 7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@mui/utils': + specifier: ^7 + version: 7.3.2(@types/react@19.1.10)(react@19.1.1) react: - specifier: ^19.1.0 + specifier: '>=16.9.0' version: 19.1.1 react-activity-calendar: specifier: ^2.7.12 @@ -33,7 +36,7 @@ importers: specifier: ^5.1.0 version: 5.1.0(react@19.1.1) react-dom: - specifier: ^19.1.0 + specifier: '>=16.9.0' version: 19.1.1(react@19.1.1) react-hook-form: specifier: ^7.56.4 @@ -41,18 +44,6 @@ importers: react-i18next: specifier: ^15.7.3 version: 15.7.3(i18next@25.5.1(typescript@5.8.2))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.8.2) - react-markdown: - specifier: ^10.1.0 - version: 10.1.0(@types/react@19.1.10)(react@19.1.1) - react-router-dom: - specifier: ^7.6.0 - version: 7.8.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - react-syntax-highlighter: - specifier: ^15.6.1 - version: 15.6.1(react@19.1.1) - styled-components: - specifier: ^6.1.19 - version: 6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1) devDependencies: '@types/node': specifier: ^24.2.1 @@ -69,6 +60,9 @@ importers: axios: specifier: ^1.11.0 version: 1.11.0 + rollup-plugin-visualizer: + specifier: ^6.0.3 + version: 6.0.3(rollup@4.46.2) vite: specifier: ^6.3.5 version: 6.3.5(@types/node@24.2.1) @@ -173,15 +167,14 @@ packages: resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} engines: {node: '>=6.9.0'} - '@c-x/ui@1.0.9': - resolution: {integrity: sha512-dBXpiKK0KPGJ/g3QOfPBm3lxdrt0uyjl8g9gXOCtcM/3Fa0kxUaG0V7HZSRQRnpbDGhDkw1GJZ1I+keQ/vsDaQ==} + '@ctzhian/ui@7.0.5': + resolution: {integrity: sha512-BPeEePM9K4U9vV43qFGT/zOkRMfH6GlgBjeECUIZpAyv9D1kLNn7mPC1ldCdYxIYhMqyv1dz3jb5rkkNHt+OTg==} peerDependencies: '@emotion/react': ^11 '@emotion/styled': ^11 - '@mui/icons-material': ^6 - '@mui/lab': ^6.0.0-beta.7 - '@mui/material': ^6 - '@mui/utils': ^6 + '@mui/icons-material': ^7 + '@mui/material': ^7 + '@mui/utils': ^7 react: '>=16.9.0' react-dom: '>=16.9.0' @@ -194,15 +187,9 @@ packages: '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@emotion/is-prop-valid@1.2.2': - resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} - '@emotion/is-prop-valid@1.3.1': resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} - '@emotion/memoize@0.8.1': - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} - '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} @@ -234,9 +221,6 @@ packages: '@emotion/unitless@0.10.0': resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} - '@emotion/unitless@0.8.1': - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0': resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: @@ -404,21 +388,6 @@ packages: cpu: [x64] os: [win32] - '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} - - '@floating-ui/dom@1.7.3': - resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} - - '@floating-ui/react-dom@2.1.5': - resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@isaacs/balanced-match@4.0.1': resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} engines: {node: 20 || >=22} @@ -453,20 +422,8 @@ packages: '@microsoft/tsdoc@0.15.1': resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} - '@mui/base@5.0.0-beta.42': - resolution: {integrity: sha512-fWRiUJVCHCPF+mxd5drn08bY2qRw3jj5f1SSQdUXmaJ/yKpk23ys8MgLO2KGVTRtbks/+ctRfgffGPbXifj0Ug==} - engines: {node: '>=12.0.0'} - deprecated: This package has been replaced by @base-ui-components/react - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/core-downloads-tracker@6.5.0': - resolution: {integrity: sha512-LGb8t8i6M2ZtS3Drn3GbTI1DVhDY6FJ9crEey2lZ0aN2EMZo8IZBZj9wRf4vqbZHaWjsYgtbOnJw5V8UWbmK2Q==} + '@mui/core-downloads-tracker@7.3.2': + resolution: {integrity: sha512-AOyfHjyDKVPGJJFtxOlept3EYEdLoar/RvssBTWVAvDJGIE676dLi2oT/Kx+FoVXFoA/JdV7DEMq/BVWV3KHRw==} '@mui/icons-material@7.3.2': resolution: {integrity: sha512-TZWazBjWXBjR6iGcNkbKklnwodcwj0SrChCNHc9BhD9rBgET22J1eFhHsEmvSvru9+opDy3umqAimQjokhfJlQ==} @@ -479,31 +436,13 @@ packages: '@types/react': optional: true - '@mui/lab@6.0.0-dev.240424162023-9968b4889d': - resolution: {integrity: sha512-iKFAz7/EeWI4PaFsP4jK2FcYJmUYDBkn3XZwpQSAl5806yYq5J2U2mPQLuZBdhrH50gT2O98p95i3vwL4YBwAg==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@emotion/react': ^11.5.0 - '@emotion/styled': ^11.3.0 - '@mui/material': ^6.0.0-dev.240424162023-9968b4889d - '@types/react': ^17.0.0 || ^18.0.0 - react: ^17.0.0 || ^18.0.0 - react-dom: ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@emotion/react': - optional: true - '@emotion/styled': - optional: true - '@types/react': - optional: true - - '@mui/material@6.5.0': - resolution: {integrity: sha512-yjvtXoFcrPLGtgKRxFaH6OQPtcLPhkloC0BML6rBG5UeldR0nPULR/2E2BfXdo5JNV7j7lOzrrLX2Qf/iSidow==} + '@mui/material@7.3.2': + resolution: {integrity: sha512-qXvbnawQhqUVfH1LMgMaiytP+ZpGoYhnGl7yYq2x57GYzcFL/iPzSZ3L30tlbwEjSVKNYcbiKO8tANR1tadjUg==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 '@emotion/styled': ^11.3.0 - '@mui/material-pigment-css': ^6.5.0 + '@mui/material-pigment-css': ^7.3.2 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -517,8 +456,8 @@ packages: '@types/react': optional: true - '@mui/private-theming@6.4.9': - resolution: {integrity: sha512-LktcVmI5X17/Q5SkwjCcdOLBzt1hXuc14jYa7NPShog0GBDCDvKtcnP0V7a2s6EiVRlv7BzbWEJzH6+l/zaCxw==} + '@mui/private-theming@7.3.2': + resolution: {integrity: sha512-ha7mFoOyZGJr75xeiO9lugS3joRROjc8tG1u4P50dH0KR7bwhHznVMcYg7MouochUy0OxooJm/OOSpJ7gKcMvg==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -527,8 +466,8 @@ packages: '@types/react': optional: true - '@mui/styled-engine@6.5.0': - resolution: {integrity: sha512-8woC2zAqF4qUDSPIBZ8v3sakj+WgweolpyM/FXf8jAx6FMls+IE4Y8VDZc+zS805J7PRz31vz73n2SovKGaYgw==} + '@mui/styled-engine@7.3.2': + resolution: {integrity: sha512-PkJzW+mTaek4e0nPYZ6qLnW5RGa0KN+eRTf5FA2nc7cFZTeM+qebmGibaTLrgQBy3UpcpemaqfzToBNkzuxqew==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.4.1 @@ -540,8 +479,8 @@ packages: '@emotion/styled': optional: true - '@mui/system@6.5.0': - resolution: {integrity: sha512-XcbBYxDS+h/lgsoGe78ExXFZXtuIlSBpn/KsZq8PtZcIkUNJInkuDqcLd2rVBQrDC1u+rvVovdaWPf2FHKJf3w==} + '@mui/system@7.3.2': + resolution: {integrity: sha512-9d8JEvZW+H6cVkaZ+FK56R53vkJe3HsTpcjMUtH8v1xK6Y1TjzHdZ7Jck02mGXJsE6MQGWVs3ogRHTQmS9Q/rA==} engines: {node: '>=14.0.0'} peerDependencies: '@emotion/react': ^11.5.0 @@ -556,24 +495,16 @@ packages: '@types/react': optional: true - '@mui/types@7.2.24': - resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} - peerDependencies: - '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - - '@mui/types@7.4.5': - resolution: {integrity: sha512-ZPwlAOE3e8C0piCKbaabwrqZbW4QvWz0uapVPWya7fYj6PeDkl5sSJmomT7wjOcZGPB48G/a6Ubidqreptxz4g==} + '@mui/types@7.4.6': + resolution: {integrity: sha512-NVBbIw+4CDMMppNamVxyTccNv0WxtDb7motWDlMeSC8Oy95saj1TIZMGynPpFLePt3yOD8TskzumeqORCgRGWw==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@mui/utils@6.4.9': - resolution: {integrity: sha512-Y12Q9hbK9g+ZY0T3Rxrx9m2m10gaphDuUMgWxyV5kNJevVxXYCLclYUCC9vXaIk1/NdNDTcW2Yfr2OGvNFNmHg==} + '@mui/utils@7.3.2': + resolution: {integrity: sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g==} engines: {node: '>=14.0.0'} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -631,56 +562,67 @@ packages: resolution: {integrity: sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.46.2': resolution: {integrity: sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.46.2': resolution: {integrity: sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.46.2': resolution: {integrity: sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.46.2': resolution: {integrity: sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-gnu@4.46.2': resolution: {integrity: sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.46.2': resolution: {integrity: sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.46.2': resolution: {integrity: sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.46.2': resolution: {integrity: sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.46.2': resolution: {integrity: sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.46.2': resolution: {integrity: sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.46.2': resolution: {integrity: sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==} @@ -734,27 +676,9 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - - '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.2.1': resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==} @@ -777,18 +701,6 @@ packages: '@types/react@19.1.10': resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} - '@types/stylis@4.2.5': - resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} - - '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - - '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -854,6 +766,14 @@ packages: alien-signals@0.4.14: resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -867,9 +787,6 @@ packages: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} - bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -889,50 +806,28 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelize@1.0.1: - resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001735: resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - - character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - - character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - - character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - - character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - - character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - - character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - - character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} @@ -948,10 +843,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} - engines: {node: '>=18'} - copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -959,13 +850,6 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} - css-color-keywords@1.0.0: - resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} - engines: {node: '>=4'} - - css-to-react-native@3.2.0: - resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -984,20 +868,14 @@ packages: supports-color: optional: true - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - dom-helpers@5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -1008,6 +886,9 @@ packages: electron-to-chromium@1.5.200: resolution: {integrity: sha512-rFCxROw7aOe4uPTfIAx+rXv9cEcGx+buAF4npnhtTqCJk5KDFRnh3+KYj7rdVh6lsFt5/aPs+Irj9rZ33WMA7w==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -1044,24 +925,15 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fdir@6.4.6: resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: @@ -1086,10 +958,6 @@ packages: resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} engines: {node: '>= 6'} - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - fs-extra@11.3.1: resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} engines: {node: '>=14.14'} @@ -1106,6 +974,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -1137,37 +1009,16 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - - hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - - highlightjs-vue@1.0.0: - resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} - hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} html-parse-stringify@3.0.1: resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} - html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} - i18next@25.5.1: resolution: {integrity: sha512-dDnnt362852mKtHGeAU9v3yF8NVQBdXGB++zmW8VMfNe4XEyR7JlSh815TWQHq9DvLfdkLJzFu90OmmRFd24Jw==} peerDependencies: @@ -1184,21 +1035,6 @@ packages: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} engines: {node: '>=8'} - inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - - is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - - is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - - is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - - is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -1206,21 +1042,18 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - - is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - - is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true - is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} - is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -1260,16 +1093,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -1284,93 +1111,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - - mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - - mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - - mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - - mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - - mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - - mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - - micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - - micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - - micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - - micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - - micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - - micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - - micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - - micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - - micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - - micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - - micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - - micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - - micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - - micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - - micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - - micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - - micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -1408,16 +1148,14 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -1448,34 +1186,13 @@ packages: pkg-types@2.2.0: resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} - engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - - prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} - proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} @@ -1529,38 +1246,10 @@ packages: react-is@19.1.1: resolution: {integrity: sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==} - react-markdown@10.1.0: - resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - react-refresh@0.17.0: resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} engines: {node: '>=0.10.0'} - react-router-dom@7.8.0: - resolution: {integrity: sha512-ntInsnDVnVRdtSu6ODmTQ41cbluak/ENeTif7GBce0L6eztFg6/e1hXAysFQI8X25C8ipKmT9cClbJwxx3Kaqw==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - - react-router@7.8.0: - resolution: {integrity: sha512-r15M3+LHKgM4SOapNmsH3smAizWds1vJ0Z9C4mWaKnT9/wD7+d/0jYcj6LmOvonkrO4Rgdyp4KQ/29gWN2i1eg==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - peerDependenciesMeta: - react-dom: - optional: true - - react-syntax-highlighter@15.6.1: - resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} - peerDependencies: - react: '>= 0.14.0' - react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: @@ -1577,14 +1266,9 @@ packages: resolution: {integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==} engines: {node: '>=0.10.0'} - refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - - remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -1599,6 +1283,19 @@ packages: engines: {node: '>= 0.4'} hasBin: true + rollup-plugin-visualizer@6.0.3: + resolution: {integrity: sha512-ZU41GwrkDcCpVoffviuM9Clwjy5fcUxlz0oMoTXTYsK+tcIFzbdacnrr2n8TXcHxbGKKXtOdjxM2HUS4HjkwIw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + rolldown: 1.x || ^1.0.0-beta + rollup: 2.x || 3.x || 4.x + peerDependenciesMeta: + rolldown: + optional: true + rollup: + optional: true + rollup@4.46.2: resolution: {integrity: sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -1616,12 +1313,6 @@ packages: engines: {node: '>=10'} hasBin: true - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} - - shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -1634,11 +1325,9 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -1647,32 +1336,21 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - - style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} - - styled-components@6.1.19: - resolution: {integrity: sha512-1v/e3Dl1BknC37cXMhwGomhO8AkYmN41CqyX9xhUDxry1ns3BFQy2lLDRQXJRdVVWB9OHemv/53xaStimvWyuA==} - engines: {node: '>= 16'} - peerDependencies: - react: '>= 16.8.0' - react-dom: '>= 16.8.0' - stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} - stylis@4.3.2: - resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} - supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} @@ -1688,15 +1366,6 @@ packages: toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - - trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - typescript@5.8.2: resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} @@ -1708,24 +1377,6 @@ packages: undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} - unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -1739,12 +1390,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite-plugin-dts@4.5.4: resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} peerDependencies: @@ -1801,9 +1446,13 @@ packages: vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} @@ -1815,8 +1464,13 @@ packages: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} snapshots: @@ -1941,14 +1595,13 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@c-x/ui@1.0.9(66634cc685bfe27894a601952ec98614)': + '@ctzhian/ui@7.0.5(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/icons-material@7.3.2(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@mui/utils@7.3.2(@types/react@19.1.10)(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/icons-material': 7.3.2(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/lab': 6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) + '@mui/icons-material': 7.3.2(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) + '@mui/material': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@mui/utils': 7.3.2(@types/react@19.1.10)(react@19.1.1) react: 19.1.1 react-dom: 19.1.1(react@19.1.1) react-virtuoso: 4.14.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -1956,7 +1609,7 @@ snapshots: '@emotion/babel-plugin@11.13.5': dependencies: '@babel/helper-module-imports': 7.27.1 - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@emotion/hash': 0.9.2 '@emotion/memoize': 0.9.0 '@emotion/serialize': 1.3.3 @@ -1979,21 +1632,15 @@ snapshots: '@emotion/hash@0.9.2': {} - '@emotion/is-prop-valid@1.2.2': - dependencies: - '@emotion/memoize': 0.8.1 - '@emotion/is-prop-valid@1.3.1': dependencies: '@emotion/memoize': 0.9.0 - '@emotion/memoize@0.8.1': {} - '@emotion/memoize@0.9.0': {} '@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 @@ -2019,7 +1666,7 @@ snapshots: '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.3.1 '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) @@ -2034,8 +1681,6 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/unitless@0.8.1': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.1.1)': dependencies: react: 19.1.1 @@ -2122,23 +1767,6 @@ snapshots: '@esbuild/win32-x64@0.25.9': optional: true - '@floating-ui/core@1.7.3': - dependencies: - '@floating-ui/utils': 0.2.10 - - '@floating-ui/dom@1.7.3': - dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 - - '@floating-ui/react-dom@2.1.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@floating-ui/dom': 1.7.3 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - - '@floating-ui/utils@0.2.10': {} - '@isaacs/balanced-match@4.0.1': {} '@isaacs/brace-expansion@5.0.0': @@ -2194,54 +1822,23 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@mui/base@5.0.0-beta.42(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@floating-ui/react-dom': 2.1.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/types': 7.4.5(@types/react@19.1.10) - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) - '@popperjs/core': 2.11.8 - clsx: 2.1.1 - prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@types/react': 19.1.10 + '@mui/core-downloads-tracker@7.3.2': {} - '@mui/core-downloads-tracker@6.5.0': {} - - '@mui/icons-material@7.3.2(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': + '@mui/icons-material@7.3.2(@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': dependencies: '@babel/runtime': 7.28.4 - '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + '@mui/material': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) react: 19.1.1 optionalDependencies: '@types/react': 19.1.10 - '@mui/lab@6.0.0-dev.240424162023-9968b4889d(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': + '@mui/material@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 - '@mui/base': 5.0.0-beta.42(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/material': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/types': 7.4.5(@types/react@19.1.10) - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) - clsx: 2.1.1 - prop-types: 15.8.1 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@types/react': 19.1.10 - - '@mui/material@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react-dom@19.1.1(react@19.1.1))(react@19.1.1)': - dependencies: - '@babel/runtime': 7.28.2 - '@mui/core-downloads-tracker': 6.5.0 - '@mui/system': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/types': 7.2.24(@types/react@19.1.10) - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) + '@babel/runtime': 7.28.4 + '@mui/core-downloads-tracker': 7.3.2 + '@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) + '@mui/types': 7.4.6(@types/react@19.1.10) + '@mui/utils': 7.3.2(@types/react@19.1.10)(react@19.1.1) '@popperjs/core': 2.11.8 '@types/react-transition-group': 4.4.12(@types/react@19.1.10) clsx: 2.1.1 @@ -2256,18 +1853,18 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@types/react': 19.1.10 - '@mui/private-theming@6.4.9(@types/react@19.1.10)(react@19.1.1)': + '@mui/private-theming@7.3.2(@types/react@19.1.10)(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) + '@babel/runtime': 7.28.4 + '@mui/utils': 7.3.2(@types/react@19.1.10)(react@19.1.1) prop-types: 15.8.1 react: 19.1.1 optionalDependencies: '@types/react': 19.1.10 - '@mui/styled-engine@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1)': + '@mui/styled-engine@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 '@emotion/sheet': 1.4.0 @@ -2278,13 +1875,13 @@ snapshots: '@emotion/react': 11.14.0(@types/react@19.1.10)(react@19.1.1) '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) - '@mui/system@6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': + '@mui/system@7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 - '@mui/private-theming': 6.4.9(@types/react@19.1.10)(react@19.1.1) - '@mui/styled-engine': 6.5.0(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1) - '@mui/types': 7.2.24(@types/react@19.1.10) - '@mui/utils': 6.4.9(@types/react@19.1.10)(react@19.1.1) + '@babel/runtime': 7.28.4 + '@mui/private-theming': 7.3.2(@types/react@19.1.10)(react@19.1.1) + '@mui/styled-engine': 7.3.2(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1))(react@19.1.1) + '@mui/types': 7.4.6(@types/react@19.1.10) + '@mui/utils': 7.3.2(@types/react@19.1.10)(react@19.1.1) clsx: 2.1.1 csstype: 3.1.3 prop-types: 15.8.1 @@ -2294,20 +1891,16 @@ snapshots: '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.1.10)(react@19.1.1))(@types/react@19.1.10)(react@19.1.1) '@types/react': 19.1.10 - '@mui/types@7.2.24(@types/react@19.1.10)': - optionalDependencies: - '@types/react': 19.1.10 - - '@mui/types@7.4.5(@types/react@19.1.10)': + '@mui/types@7.4.6(@types/react@19.1.10)': dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 optionalDependencies: '@types/react': 19.1.10 - '@mui/utils@6.4.9(@types/react@19.1.10)(react@19.1.1)': + '@mui/utils@7.3.2(@types/react@19.1.10)(react@19.1.1)': dependencies: - '@babel/runtime': 7.28.2 - '@mui/types': 7.2.24(@types/react@19.1.10) + '@babel/runtime': 7.28.4 + '@mui/types': 7.4.6(@types/react@19.1.10) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 @@ -2445,30 +2038,8 @@ snapshots: dependencies: '@babel/types': 7.28.2 - '@types/debug@4.1.12': - dependencies: - '@types/ms': 2.1.0 - - '@types/estree-jsx@1.0.5': - dependencies: - '@types/estree': 1.0.8 - '@types/estree@1.0.8': {} - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - - '@types/hast@3.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - - '@types/ms@2.1.0': {} - '@types/node@24.2.1': dependencies: undici-types: 7.10.0 @@ -2489,14 +2060,6 @@ snapshots: dependencies: csstype: 3.1.3 - '@types/stylis@4.2.5': {} - - '@types/unist@2.0.11': {} - - '@types/unist@3.0.3': {} - - '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.7.0(vite@6.3.5(@types/node@24.2.1))': dependencies: '@babel/core': 7.28.0 @@ -2580,6 +2143,12 @@ snapshots: alien-signals@0.4.14: {} + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -2596,12 +2165,10 @@ snapshots: babel-plugin-macros@3.1.0: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 cosmiconfig: 7.1.0 resolve: 1.22.10 - bail@2.0.2: {} - balanced-match@1.0.2: {} brace-expansion@2.0.2: @@ -2622,36 +2189,26 @@ snapshots: callsites@3.1.0: {} - camelize@1.0.1: {} - caniuse-lite@1.0.30001735: {} - ccount@2.0.1: {} - - character-entities-html4@2.1.0: {} - - character-entities-legacy@1.1.4: {} - - character-entities-legacy@3.0.0: {} - - character-entities@1.2.4: {} - - character-entities@2.0.2: {} + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 - character-reference-invalid@1.1.4: {} + clsx@2.1.1: {} - character-reference-invalid@2.0.1: {} + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 - clsx@2.1.1: {} + color-name@1.1.4: {} combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@1.0.8: {} - - comma-separated-tokens@2.0.3: {} - compare-versions@6.1.1: {} confbox@0.1.8: {} @@ -2662,8 +2219,6 @@ snapshots: convert-source-map@2.0.0: {} - cookie@1.0.2: {} - copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 @@ -2676,14 +2231,6 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - css-color-keywords@1.0.0: {} - - css-to-react-native@3.2.0: - dependencies: - camelize: 1.0.1 - css-color-keywords: 1.0.0 - postcss-value-parser: 4.2.0 - csstype@3.1.3: {} date-fns@4.1.0: {} @@ -2694,21 +2241,13 @@ snapshots: dependencies: ms: 2.1.3 - decode-named-character-reference@1.2.0: - dependencies: - character-entities: 2.0.2 + define-lazy-prop@2.0.0: {} delayed-stream@1.0.0: {} - dequal@2.0.3: {} - - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 csstype: 3.1.3 dunder-proto@1.0.1: @@ -2719,6 +2258,8 @@ snapshots: electron-to-chromium@1.5.200: {} + emoji-regex@8.0.0: {} + entities@4.5.0: {} error-ex@1.3.2: @@ -2773,20 +2314,12 @@ snapshots: escape-string-regexp@4.0.0: {} - estree-util-is-identifier-name@3.0.0: {} - estree-walker@2.0.2: {} exsolve@1.0.7: {} - extend@3.0.2: {} - fast-deep-equal@3.1.3: {} - fault@1.0.4: - dependencies: - format: 0.2.2 - fdir@6.4.6(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -2803,8 +2336,6 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 - format@0.2.2: {} - fs-extra@11.3.1: dependencies: graceful-fs: 4.2.11 @@ -2818,6 +2349,8 @@ snapshots: gensync@1.0.0-beta.2: {} + get-caller-file@2.0.5: {} + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -2852,46 +2385,8 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-parse-selector@2.2.5: {} - - hast-util-to-jsx-runtime@2.3.6: - dependencies: - '@types/estree': 1.0.8 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 - space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 - unist-util-position: 5.0.0 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - - hast-util-whitespace@3.0.0: - dependencies: - '@types/hast': 3.0.4 - - hastscript@6.0.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - he@1.2.0: {} - highlight.js@10.7.3: {} - - highlightjs-vue@1.0.0: {} - hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -2900,11 +2395,9 @@ snapshots: dependencies: void-elements: 3.1.0 - html-url-attributes@3.0.1: {} - i18next@25.5.1(typescript@5.8.2): dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 optionalDependencies: typescript: 5.8.2 @@ -2915,37 +2408,19 @@ snapshots: import-lazy@4.0.0: {} - inline-style-parser@0.2.4: {} - - is-alphabetical@1.0.4: {} - - is-alphabetical@2.0.1: {} - - is-alphanumerical@1.0.4: - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - - is-alphanumerical@2.0.1: - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - is-arrayish@0.2.1: {} is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-decimal@1.0.4: {} - - is-decimal@2.0.1: {} - - is-hexadecimal@1.0.4: {} + is-docker@2.2.1: {} - is-hexadecimal@2.0.1: {} + is-fullwidth-code-point@3.0.0: {} - is-plain-obj@4.1.0: {} + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 jju@1.4.0: {} @@ -2977,17 +2452,10 @@ snapshots: lodash@4.17.21: {} - longest-streak@3.1.0: {} - loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - lowlight@1.20.0: - dependencies: - fault: 1.0.4 - highlight.js: 10.7.3 - lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -3002,228 +2470,6 @@ snapshots: math-intrinsics@1.1.0: {} - mdast-util-from-markdown@2.0.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.2 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-decode-string: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-expression@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-mdx-jsx@3.2.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.3 - transitivePeerDependencies: - - supports-color - - mdast-util-mdxjs-esm@2.0.1: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.2 - transitivePeerDependencies: - - supports-color - - mdast-util-phrasing@4.1.0: - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - - mdast-util-to-hast@13.2.0: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.1 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - - mdast-util-to-markdown@2.1.2: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-classify-character: 2.0.1 - micromark-util-decode-string: 2.0.1 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - - mdast-util-to-string@4.0.0: - dependencies: - '@types/mdast': 4.0.4 - - micromark-core-commonmark@2.0.3: - dependencies: - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-factory-destination: 2.0.1 - micromark-factory-label: 2.0.1 - micromark-factory-space: 2.0.1 - micromark-factory-title: 2.0.1 - micromark-factory-whitespace: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-classify-character: 2.0.1 - micromark-util-html-tag-name: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-destination@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-label@2.0.1: - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-space@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 - - micromark-factory-title@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-factory-whitespace@2.0.1: - dependencies: - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-character@2.1.1: - dependencies: - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-chunked@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-classify-character@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-combine-extensions@2.0.1: - dependencies: - micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-decode-numeric-character-reference@2.0.2: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-decode-string@2.0.1: - dependencies: - decode-named-character-reference: 1.2.0 - micromark-util-character: 2.1.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-symbol: 2.0.1 - - micromark-util-encode@2.0.1: {} - - micromark-util-html-tag-name@2.0.1: {} - - micromark-util-normalize-identifier@2.0.1: - dependencies: - micromark-util-symbol: 2.0.1 - - micromark-util-resolve-all@2.0.1: - dependencies: - micromark-util-types: 2.0.2 - - micromark-util-sanitize-uri@2.0.1: - dependencies: - micromark-util-character: 2.1.1 - micromark-util-encode: 2.0.1 - micromark-util-symbol: 2.0.1 - - micromark-util-subtokenize@2.1.0: - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - - micromark-util-symbol@2.0.1: {} - - micromark-util-types@2.0.2: {} - - micromark@4.0.2: - dependencies: - '@types/debug': 4.1.12 - debug: 4.4.1 - decode-named-character-reference: 1.2.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 - micromark-factory-space: 2.0.1 - micromark-util-character: 2.1.1 - micromark-util-chunked: 2.0.1 - micromark-util-combine-extensions: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.2 - micromark-util-encode: 2.0.1 - micromark-util-normalize-identifier: 2.0.1 - micromark-util-resolve-all: 2.0.1 - micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 - transitivePeerDependencies: - - supports-color - mime-db@1.52.0: {} mime-types@2.1.35: @@ -3255,28 +2501,15 @@ snapshots: object-assign@4.1.1: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-entities@2.0.0: + open@8.4.2: dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 - parse-entities@4.0.2: + parent-module@1.0.1: dependencies: - '@types/unist': 2.0.11 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 + callsites: 3.1.0 parse-json@5.2.0: dependencies: @@ -3309,36 +2542,18 @@ snapshots: exsolve: 1.0.7 pathe: 2.0.3 - postcss-value-parser@4.2.0: {} - - postcss@8.4.49: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - postcss@8.5.6: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - prismjs@1.27.0: {} - - prismjs@1.30.0: {} - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - property-information@5.6.0: - dependencies: - xtend: 4.0.2 - - property-information@7.1.0: {} - proxy-from-env@1.1.0: {} punycode@2.3.1: {} @@ -3379,53 +2594,11 @@ snapshots: react-is@19.1.1: {} - react-markdown@10.1.0(@types/react@19.1.10)(react@19.1.1): - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/react': 19.1.10 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.6 - html-url-attributes: 3.0.1 - mdast-util-to-hast: 13.2.0 - react: 19.1.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - react-refresh@0.17.0: {} - react-router-dom@7.8.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): - dependencies: - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - react-router: 7.8.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - - react-router@7.8.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): - dependencies: - cookie: 1.0.2 - react: 19.1.1 - set-cookie-parser: 2.7.1 - optionalDependencies: - react-dom: 19.1.1(react@19.1.1) - - react-syntax-highlighter@15.6.1(react@19.1.1): - dependencies: - '@babel/runtime': 7.28.2 - highlight.js: 10.7.3 - highlightjs-vue: 1.0.0 - lowlight: 1.20.0 - prismjs: 1.30.0 - react: 19.1.1 - refractor: 3.6.0 - react-transition-group@4.4.5(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: - '@babel/runtime': 7.28.2 + '@babel/runtime': 7.28.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -3439,28 +2612,7 @@ snapshots: react@19.1.1: {} - refractor@3.6.0: - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.27.0 - - remark-parse@11.0.0: - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - - remark-rehype@11.1.2: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 - unified: 11.0.5 - vfile: 6.0.3 + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -3472,6 +2624,15 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + rollup-plugin-visualizer@6.0.3(rollup@4.46.2): + dependencies: + open: 8.4.2 + picomatch: 4.0.3 + source-map: 0.7.6 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.46.2 + rollup@4.46.2: dependencies: '@types/estree': 1.0.8 @@ -3506,57 +2667,32 @@ snapshots: dependencies: lru-cache: 6.0.0 - set-cookie-parser@2.7.1: {} - - shallowequal@1.1.0: {} - source-map-js@1.2.1: {} source-map@0.5.7: {} source-map@0.6.1: {} - space-separated-tokens@1.1.5: {} - - space-separated-tokens@2.0.2: {} + source-map@0.7.6: {} sprintf-js@1.0.3: {} string-argv@0.3.2: {} - stringify-entities@4.0.4: + string-width@4.2.3: dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - - strip-json-comments@3.1.1: {} + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 - style-to-js@1.1.17: + strip-ansi@6.0.1: dependencies: - style-to-object: 1.0.9 + ansi-regex: 5.0.1 - style-to-object@1.0.9: - dependencies: - inline-style-parser: 0.2.4 - - styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1): - dependencies: - '@emotion/is-prop-valid': 1.2.2 - '@emotion/unitless': 0.8.1 - '@types/stylis': 4.2.5 - css-to-react-native: 3.2.0 - csstype: 3.1.3 - postcss: 8.4.49 - react: 19.1.1 - react-dom: 19.1.1(react@19.1.1) - shallowequal: 1.1.0 - stylis: 4.3.2 - tslib: 2.6.2 + strip-json-comments@3.1.1: {} stylis@4.2.0: {} - stylis@4.3.2: {} - supports-color@8.1.1: dependencies: has-flag: 4.0.0 @@ -3570,51 +2706,12 @@ snapshots: toggle-selection@1.0.6: {} - trim-lines@3.0.1: {} - - trough@2.2.0: {} - - tslib@2.6.2: {} - typescript@5.8.2: {} ufo@1.6.1: {} undici-types@7.10.0: {} - unified@11.0.5: - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - universalify@2.0.1: {} update-browserslist-db@1.1.3(browserslist@4.25.2): @@ -3627,16 +2724,6 @@ snapshots: dependencies: punycode: 2.3.1 - vfile-message@4.0.3: - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - - vfile@6.0.3: - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.3 - vite-plugin-dts@4.5.4(@types/node@24.2.1)(rollup@4.46.2)(typescript@5.8.2)(vite@6.3.5(@types/node@24.2.1)): dependencies: '@microsoft/api-extractor': 7.52.10(@types/node@24.2.1) @@ -3672,7 +2759,13 @@ snapshots: vscode-uri@3.1.0: {} - xtend@4.0.2: {} + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@5.0.8: {} yallist@3.1.1: {} @@ -3680,4 +2773,14 @@ snapshots: yaml@1.10.2: {} - zwitch@2.0.4: {} + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 diff --git a/ui/ModelModal/src/ModelModal.tsx b/ui/ModelModal/src/ModelModal.tsx index 1e93aa9..0aac864 100644 --- a/ui/ModelModal/src/ModelModal.tsx +++ b/ui/ModelModal/src/ModelModal.tsx @@ -16,17 +16,13 @@ import { IconButton, } from '@mui/material'; import { Visibility, VisibilityOff } from '@mui/icons-material'; -import { Icon, message, Modal, ThemeProvider } from '@c-x/ui'; +import { Icon, message, Modal, ThemeProvider } from '@ctzhian/ui'; import Card from './components/card'; import ModelTagsWithLabel from './components/ModelTagsWithLabel'; import ModelTagFilter from './components/ModelTagFilter'; import React, { useEffect, useState } from 'react'; import { useForm, Controller } from 'react-hook-form'; -import { - AddModelForm, - Model, - ModelModalProps, -} from './types/types'; +import { AddModelForm, Model, ModelModalProps } from './types/types'; import { DEFAULT_MODEL_PROVIDERS } from './constants/providers'; import { getLocaleMessage } from './constants/locale'; import './assets/fonts/iconfont'; @@ -35,14 +31,14 @@ import { isValidURL } from './utils'; import { getModelGroup, getModelLogo } from './utils/model'; const titleMap: Record = { - ["llm"]: '对话模型', - ["chat"]: '对话模型', - ["coder"]: '代码补全模型', - ["code"]: '代码补全模型', - ["embedding"]: '向量模型', - ["rerank"]: '重排序模型', - ["reranker"]: '重排序模型', - ["analysis"]: '分析模型', + ['llm']: '对话模型', + ['chat']: '对话模型', + ['coder']: '代码补全模型', + ['code']: '代码补全模型', + ['embedding']: '向量模型', + ['rerank']: '重排序模型', + ['reranker']: '重排序模型', + ['analysis']: '分析模型', }; export const ModelModal: React.FC = ({ @@ -50,7 +46,7 @@ export const ModelModal: React.FC = ({ onClose, refresh, data, - model_type = "llm", + model_type = 'llm', modelService, language = 'zh-CN', messageComponent, @@ -58,7 +54,7 @@ export const ModelModal: React.FC = ({ }: ModelModalProps) => { const theme = useTheme(); - // 消息处理器,优先使用传入的messageComponent,否则使用@c-x/ui的message + // 消息处理器,优先使用传入的messageComponent,否则使用@ctzhian/ui的message const messageHandler = messageComponent || message; const providers: Record = DEFAULT_MODEL_PROVIDERS; @@ -95,7 +91,9 @@ export const ModelModal: React.FC = ({ const baseUrl = watch('base_url'); const [modelUserList, setModelUserList] = useState<{ model: string }[]>([]); - const [filteredModelList, setFilteredModelList] = useState<{ model: string; provider: string }[]>([]); + const [filteredModelList, setFilteredModelList] = useState< + { model: string; provider: string }[] + >([]); const [loading, setLoading] = useState(false); const [modelLoading, setModelLoading] = useState(false); @@ -142,20 +140,20 @@ export const ModelModal: React.FC = ({ return baseUrl; } if (baseUrl.endsWith('#')) { - return baseUrl.replace('#', '') + return baseUrl.replace('#', ''); } const forceUseOriginalHost = () => { if (baseUrl.endsWith('/')) { - baseUrl = baseUrl.slice(0, -1) - return true + baseUrl = baseUrl.slice(0, -1); + return true; } - if (/\/v\d+$/.test(baseUrl)){ - return true + if (/\/v\d+$/.test(baseUrl)) { + return true; } - return baseUrl.endsWith('volces.com/api/v3') - } + return baseUrl.endsWith('volces.com/api/v3'); + }; - return forceUseOriginalHost() ? baseUrl : `${baseUrl}/v1` + return forceUseOriginalHost() ? baseUrl : `${baseUrl}/v1`; }; const getModel = (value: AddModelForm) => { @@ -165,16 +163,17 @@ export const ModelModal: React.FC = ({ } setAddModelError(''); setModelLoading(true); - modelService.listModel({ - model_type, - api_key: value.api_key, - base_url: getProcessedUrl(value.base_url, value.provider), - provider: value.provider as Exclude, - api_header: value.api_header || header, - }) + modelService + .listModel({ + model_type, + api_key: value.api_key, + base_url: getProcessedUrl(value.base_url, value.provider), + provider: value.provider as Exclude, + api_header: value.api_header || header, + }) .then((res) => { if (res.error) { - messageHandler.error("获取模型列表失败"); + messageHandler.error('获取模型列表失败'); setAddModelError(res.error); setModelLoading(false); } else { @@ -197,8 +196,8 @@ export const ModelModal: React.FC = ({ }) .finally(() => { setModelLoading(false); - }). - catch((res) => { + }) + .catch((res) => { setModelLoading(false); }); }; @@ -211,46 +210,50 @@ export const ModelModal: React.FC = ({ setError(''); setAddModelError(''); setLoading(true); - modelService.checkModel({ - model_type, - model_name: value.model_name, - api_key: value.api_key, - base_url: getProcessedUrl(value.base_url, value.provider), - api_version: value.api_version, - provider: value.provider, - api_header: value.api_header || header, - } - ) + modelService + .checkModel({ + model_type, + model_name: value.model_name, + api_key: value.api_key, + base_url: getProcessedUrl(value.base_url, value.provider), + api_version: value.api_version, + provider: value.provider, + api_header: value.api_header || header, + }) .then((res) => { // 错误处理 if (res.error) { - messageHandler.error("模型检查失败"); + messageHandler.error('模型检查失败'); setAddModelError(res.error); setLoading(false); } else if (data) { - modelService.updateModel({ - api_key: value.api_key, - model_type, - base_url: getProcessedUrl(value.base_url, value.provider), - model_name: value.model_name, - api_header: value.api_header || header, - api_version: value.api_version, - id: (data as any).id || '', - provider: value.provider as Exclude, - show_name: value.show_name, - // 添加高级设置字段到 param 对象中 - param: { - context_window: value.context_window_size, - max_tokens: value.max_output_tokens, - r1_enabled: value.enable_r1_params, - support_images: value.support_image, - support_computer_use: value.support_compute, - support_prompt_cache: value.support_prompt_caching, - }, - }) + modelService + .updateModel({ + api_key: value.api_key, + model_type, + base_url: getProcessedUrl(value.base_url, value.provider), + model_name: value.model_name, + api_header: value.api_header || header, + api_version: value.api_version, + id: (data as any).id || '', + provider: value.provider as Exclude< + typeof value.provider, + 'Other' + >, + show_name: value.show_name, + // 添加高级设置字段到 param 对象中 + param: { + context_window: value.context_window_size, + max_tokens: value.max_output_tokens, + r1_enabled: value.enable_r1_params, + support_images: value.support_image, + support_computer_use: value.support_compute, + support_prompt_cache: value.support_prompt_caching, + }, + }) .then((res) => { if (res.error) { - messageHandler.error("修改模型失败"); + messageHandler.error('修改模型失败'); setLoading(false); } else { messageHandler.success('修改成功'); @@ -261,31 +264,35 @@ export const ModelModal: React.FC = ({ setLoading(false); }) .catch((res) => { - messageHandler.error("修改模型失败"); + messageHandler.error('修改模型失败'); setLoading(false); }); } else { - modelService.createModel({ - model_type, - api_key: value.api_key, - base_url: getProcessedUrl(value.base_url, value.provider), - model_name: value.model_name, - api_header: value.api_header || header, - provider: value.provider as Exclude, - show_name: value.show_name, - // 添加高级设置字段到 param 对象中 - param: { - context_window: value.context_window_size, - max_tokens: value.max_output_tokens, - r1_enabled: value.enable_r1_params, - support_images: value.support_image, - support_computer_use: value.support_compute, - support_prompt_cache: value.support_prompt_caching, - }, - }) + modelService + .createModel({ + model_type, + api_key: value.api_key, + base_url: getProcessedUrl(value.base_url, value.provider), + model_name: value.model_name, + api_header: value.api_header || header, + provider: value.provider as Exclude< + typeof value.provider, + 'Other' + >, + show_name: value.show_name, + // 添加高级设置字段到 param 对象中 + param: { + context_window: value.context_window_size, + max_tokens: value.max_output_tokens, + r1_enabled: value.enable_r1_params, + support_images: value.support_image, + support_computer_use: value.support_compute, + support_prompt_cache: value.support_prompt_caching, + }, + }) .then((res) => { if (res.error) { - messageHandler.error("添加模型失败"); + messageHandler.error('添加模型失败'); setLoading(false); } else { messageHandler.success('添加成功'); @@ -296,13 +303,13 @@ export const ModelModal: React.FC = ({ setLoading(false); }) .catch((res) => { - messageHandler.error("添加模型失败"); + messageHandler.error('添加模型失败'); setLoading(false); }); } }) .catch((res) => { - messageHandler.error("检查模型失败"); + messageHandler.error('检查模型失败'); setLoading(false); }); }; @@ -326,7 +333,7 @@ export const ModelModal: React.FC = ({ enable_r1_params: false, support_image: false, support_compute: false, - support_prompt_caching: false + support_prompt_caching: false, }); } reset({ @@ -344,7 +351,7 @@ export const ModelModal: React.FC = ({ enable_r1_params: value.param?.r1_enabled || false, support_image: value.param?.support_images || false, support_compute: value.param?.support_computer_use || false, - support_prompt_caching: value.param?.support_prompt_cache || false + support_prompt_caching: value.param?.support_prompt_cache || false, }); }; @@ -381,7 +388,9 @@ export const ModelModal: React.FC = ({ return ( = ({ disabled: !success && providerBrand !== 'Other', }} > - + = ({ }} > 模型供应商 @@ -450,7 +470,9 @@ export const ModelModal: React.FC = ({ case 'analysis': return it.analysis; default: - return it.label === 'BaiZhiCloud' || it.label === 'Other'; + return ( + it.label === 'BaiZhiCloud' || it.label === 'Other' + ); } }) .map((it) => ( @@ -468,7 +490,10 @@ export const ModelModal: React.FC = ({ fontWeight: 'bold', fontFamily: 'Gbold', ...(providerBrand === it.label && { - bgcolor: addOpacityToColor(theme.palette.primary.main, 0.1), + bgcolor: addOpacityToColor( + theme.palette.primary.main, + 0.1 + ), color: 'primary.main', }), '&:hover': { @@ -485,9 +510,12 @@ export const ModelModal: React.FC = ({ setModelLoading(false); setSuccess(false); reset({ - provider: it.label as keyof typeof DEFAULT_MODEL_PROVIDERS, + provider: + it.label as keyof typeof DEFAULT_MODEL_PROVIDERS, base_url: - it.label === 'AzureOpenAI' ? '' : it.defaultBaseUrl, + it.label === 'AzureOpenAI' + ? '' + : it.defaultBaseUrl, model_name: '', api_version: '', api_key: '', @@ -512,24 +540,26 @@ export const ModelModal: React.FC = ({ - + API 地址{' '} @@ -545,12 +575,15 @@ export const ModelModal: React.FC = ({ message: 'URL 不能为空', }, validate: (value) => { - if (!providers[providerBrand].urlWrite || providerBrand === 'AzureOpenAI') { + if ( + !providers[providerBrand].urlWrite || + providerBrand === 'AzureOpenAI' + ) { return true; } const res = isValidURL(value); - return res === "" || res; - } + return res === '' || res; + }, }} render={({ field }) => ( = ({ > {/* 根据模型类型显示不同的URL后缀:embedding显示/embeddings,rerank显示/rerank,其他显示/chat/completions */} - {baseUrl && providers[providerBrand].urlWrite && (() => { - const processedUrl = getProcessedUrl(baseUrl, providerBrand); - if (baseUrl.endsWith('#')) { - return processedUrl; - } - // 根据模型类型添加不同的后缀 - if (model_type === 'embedding') { - return `${processedUrl}/embeddings`; - } else if (model_type === 'rerank' || model_type === 'reranker') { - return `${processedUrl}/rerank`; - } else { - return `${processedUrl}/chat/completions`; - } - })()} + {baseUrl && + providers[providerBrand].urlWrite && + (() => { + const processedUrl = getProcessedUrl( + baseUrl, + providerBrand + ); + if (baseUrl.endsWith('#')) { + return processedUrl; + } + // 根据模型类型添加不同的后缀 + if (model_type === 'embedding') { + return `${processedUrl}/embeddings`; + } else if ( + model_type === 'rerank' || + model_type === 'reranker' + ) { + return `${processedUrl}/rerank`; + } else { + return `${processedUrl}/chat/completions`; + } + })()} /结尾忽略V1版本,#结尾强制使用输入地址 @@ -659,11 +700,11 @@ export const ModelModal: React.FC = ({ helperText={errors.api_key?.message} InputProps={{ endAdornment: ( - + setShowPassword(!showPassword)} - edge="end" + edge='end' > {showPassword ? : } @@ -680,36 +721,37 @@ export const ModelModal: React.FC = ({ /> )} /> - {(modelUserList.length !== 0 || providerBrand === 'Other') && !is_close_model_remark && ( - <> - - 模型备注 - - * + {(modelUserList.length !== 0 || providerBrand === 'Other') && + !is_close_model_remark && ( + <> + + 模型备注 + + * + - - ( - - )} - /> - - )} + ( + + )} + /> + + )} {providerBrand === 'AzureOpenAI' && ( <> @@ -778,7 +820,7 @@ export const ModelModal: React.FC = ({ boxShadow: 'none', fontFamily: `var(--font-gilory), var(--font-HarmonyOS), 'PingFang SC', 'Roboto', 'Helvetica', 'Arial', sans-serif`, color: 'black', - borderColor: 'black' + borderColor: 'black', }} onClick={handleSubmit(getModel)} > @@ -811,59 +853,96 @@ export const ModelModal: React.FC = ({ maxHeight: 450, '& .MuiList-root': { paddingTop: 0, - } - } - } - } + }, + }, + }, + }, }} > {(() => { // 使用筛选后的模型列表,如果没有筛选则使用原始列表 - const modelsToShow = filteredModelList.length > 0 ? filteredModelList : modelUserList.map(item => ({ model: item.model, provider: providerBrand })); - + const modelsToShow = + filteredModelList.length > 0 + ? filteredModelList + : modelUserList.map((item) => ({ + model: item.model, + provider: providerBrand, + })); + // 按组分类模型 - const groupedModels = modelsToShow.reduce((acc, model) => { - const group = getModelGroup(model.model); - if (!acc[group]) { - acc[group] = []; - } - acc[group].push(model); - return acc; - }, {} as Record); + const groupedModels = modelsToShow.reduce( + (acc, model) => { + const group = getModelGroup(model.model); + if (!acc[group]) { + acc[group] = []; + } + acc[group].push(model); + return acc; + }, + {} as Record + ); // 渲染分组后的模型 - const modelItems = Object.entries(groupedModels).map(([group, models]) => [ - - {group} - , - ...models.map((it) => ( - - - - {getModelLogo(it.model) && ( - - )} - {it.model} + const modelItems = Object.entries(groupedModels) + .map(([group, models]) => [ + + {group} + , + ...models.map((it) => ( + + + + {getModelLogo(it.model) && ( + + )} + {it.model} + + - - - - )) - ]).flat(); + + )), + ]) + .flat(); return [ = ({ borderColor: 'divider', boxShadow: '0 2px 4px rgba(0,0,0,0.1)', '&:hover': { - backgroundColor: '#ffffff !important' + backgroundColor: '#ffffff !important', }, '&:focus': { - backgroundColor: '#ffffff !important' + backgroundColor: '#ffffff !important', }, cursor: 'default', '&.Mui-selected': { - backgroundColor: '#ffffff !important' + backgroundColor: '#ffffff !important', }, '&.Mui-selected:hover': { - backgroundColor: '#ffffff !important' - } + backgroundColor: '#ffffff !important', + }, }} onClick={(e) => { e.preventDefault(); }} > ({ model: item.model, provider: providerBrand }))} - onFilteredModelsChange={(filteredModels) => { - setFilteredModelList(filteredModels); - }} - /> + models={modelUserList.map((item) => ({ + model: item.model, + provider: providerBrand, + }))} + onFilteredModelsChange={(filteredModels) => { + setFilteredModelList(filteredModels); + }} + /> , - ...modelItems + ...modelItems, ]; })()} @@ -943,174 +1025,206 @@ export const ModelModal: React.FC = ({ )} - )} {/* 高级设置部分 - 在选择了模型或者是其它供应商时显示,但不包括embedding、rerank、reranker、analysis类型 */} - {(modelUserList.length !== 0 || providerBrand === 'Other') && !['embedding', 'rerank', 'reranker'].includes(model_type) && ( - - setExpandAdvanced(!expandAdvanced)} - > - + setExpandAdvanced(!expandAdvanced)} > - 高级设置 - - - - - - 上下文窗口大小 + + 高级设置 + + + + + + 上下文窗口大小 + + ( + <> + + field.onChange(Number(e.target.value)) + } + /> + + {[ + { label: '128k', value: 128000 }, + { label: '256k', value: 256000 }, + { label: '512k', value: 512000 }, + { label: '1m', value: 1_000_000 }, + ].map((option) => ( + + field.onChange(option.value) + } + > + {option.label} + + ))} + + + )} + /> - ( - <> + + + + 最大输出 Token + + ( field.onChange(Number(e.target.value))} + onChange={(e) => + field.onChange(Number(e.target.value)) + } /> - - {[ - { label: '128k', value: 128000 }, - { label: '256k', value: 256000 }, - { label: '512k', value: 512000 }, - { label: '1m', value: 1_000_000 } - ].map((option) => ( - field.onChange(option.value)} - > - {option.label} - - ))} - - - )} - /> - - - - - 最大输出 Token + )} + /> - ( - field.onChange(Number(e.target.value))} - /> - )} - /> - - {/* 复选框组 - 使用更紧凑的布局 */} - - ( - field.onChange(e.target.checked)} - size='small' - /> - } - label={ - - 启用 R1 模型参数 - - (使用 QWQ 等 R1 系列模型时必须启用,避免出现 400 错误) + {/* 复选框组 - 使用更紧凑的布局 */} + + ( + + field.onChange(e.target.checked) + } + size='small' + /> + } + label={ + + 启用 R1 模型参数 + + (使用 QWQ 等 R1 + 系列模型时必须启用,避免出现 400 错误) + - - } - sx={{ margin: 0 }} - /> - )} - /> - ( - field.onChange(e.target.checked)} - size='small' - /> - } - label={ - - 启用图片 - - (支持图片输入的模型可以启用此选项) + } + sx={{ margin: 0 }} + /> + )} + /> + ( + + field.onChange(e.target.checked) + } + size='small' + /> + } + label={ + + 启用图片 + + (支持图片输入的模型可以启用此选项) + - - } - sx={{ margin: 0 }} - /> - )} - /> + } + sx={{ margin: 0 }} + /> + )} + /> + - - - - - )} + + + + )} {addModelError && ( = ({ ); -}; \ No newline at end of file +}; diff --git a/ui/ModelModal/src/components/ModelTagsWithLabel.tsx b/ui/ModelModal/src/components/ModelTagsWithLabel.tsx index aa978e4..a240e06 100644 --- a/ui/ModelModal/src/components/ModelTagsWithLabel.tsx +++ b/ui/ModelModal/src/components/ModelTagsWithLabel.tsx @@ -5,12 +5,11 @@ import { isReasoningModel, isRerankModel, isVisionModel, - isWebSearchModel -} from '../utils/model' -import { FC, memo, useLayoutEffect, useMemo, useRef, useState } from 'react' -import styled from 'styled-components' -import { useTranslation } from 'react-i18next' -import CustomTag from './Tags/CustomTag' + isWebSearchModel, +} from '../utils/model'; +import { FC, memo, useLayoutEffect, useMemo, useRef, useState } from 'react'; +import { styled } from '@mui/material'; +import { useTranslation } from 'react-i18next'; import { CodeTag, EmbeddingTag, @@ -18,19 +17,19 @@ import { RerankerTag, ToolsCallingTag, VisionTag, - WebSearchTag -} from './Tags/ModelCapabilities' + WebSearchTag, +} from './Tags/ModelCapabilities'; interface ModelTagsProps { - model_id: string - provider: string - showFree?: boolean - showReasoning?: boolean - showToolsCalling?: boolean - size?: number - showLabel?: boolean - showTooltip?: boolean - style?: React.CSSProperties + model_id: string; + provider: string; + showFree?: boolean; + showReasoning?: boolean; + showToolsCalling?: boolean; + size?: number; + showLabel?: boolean; + showTooltip?: boolean; + style?: React.CSSProperties; } const ModelTagsWithLabel: FC = ({ @@ -42,66 +41,92 @@ const ModelTagsWithLabel: FC = ({ size = 12, showLabel = true, showTooltip = true, - style + style, }) => { - const { t } = useTranslation() - const [shouldShowLabel, setShouldShowLabel] = useState(false) - const containerRef = useRef(null) - const resizeObserver = useRef(null) + const { t } = useTranslation(); + const [shouldShowLabel, setShouldShowLabel] = useState(false); + const containerRef = useRef(null); + const resizeObserver = useRef(null); - const maxWidth = useMemo(() => (300), []) + const maxWidth = useMemo(() => 300, []); useLayoutEffect(() => { - const currentElement = containerRef.current - if (!showLabel || !currentElement) return + const currentElement = containerRef.current; + if (!showLabel || !currentElement) return; - setShouldShowLabel(currentElement.offsetWidth >= maxWidth) + setShouldShowLabel(currentElement.offsetWidth >= maxWidth); if (currentElement) { resizeObserver.current = new ResizeObserver((entries) => { for (const entry of entries) { - const { width } = entry.contentRect - setShouldShowLabel(width >= maxWidth) + const { width } = entry.contentRect; + setShouldShowLabel(width >= maxWidth); } - }) - resizeObserver.current.observe(currentElement) + }); + resizeObserver.current.observe(currentElement); } return () => { if (resizeObserver.current && currentElement) { - resizeObserver.current.unobserve(currentElement) - resizeObserver.current.disconnect() - resizeObserver.current = null + resizeObserver.current.unobserve(currentElement); + resizeObserver.current.disconnect(); + resizeObserver.current = null; } - } - }, [maxWidth, showLabel]) + }; + }, [maxWidth, showLabel]); return ( - {isVisionModel(model_id, provider) && } - {isWebSearchModel(model_id, provider) && } + {isVisionModel(model_id, provider) && ( + + )} + {isWebSearchModel(model_id, provider) && ( + + )} {showReasoning && isReasoningModel(model_id, provider) && ( - + )} {showToolsCalling && isFunctionCallingModel(model_id, provider) && ( - + + )} + {isCodeModel(model_id, provider) && ( + )} - {isCodeModel(model_id, provider) && } {isEmbeddingModel(model_id, provider) && } {isRerankModel(model_id) && } - ) -} + ); +}; -const Container = styled.div` - display: flex; - flex-direction: row; - align-items: center; - gap: 4px; - flex-wrap: nowrap; - overflow-x: scroll; - &::-webkit-scrollbar { - display: none; - } -` +const Container = styled('div')(() => ({ + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + gap: '4px', + flexWrap: 'nowrap', + overflowS: 'scroll', + '&::-webkit-scrollbar': { + display: 'none', + }, +})); -export default memo(ModelTagsWithLabel) +export default memo(ModelTagsWithLabel); diff --git a/ui/ModelModal/src/components/Tags/CustomTag.tsx b/ui/ModelModal/src/components/Tags/CustomTag.tsx index 8a5d0b4..1b9d16f 100644 --- a/ui/ModelModal/src/components/Tags/CustomTag.tsx +++ b/ui/ModelModal/src/components/Tags/CustomTag.tsx @@ -1,20 +1,20 @@ -import { Clear } from '@mui/icons-material' -import { Tooltip } from '@mui/material' -import { CSSProperties, FC, memo, useMemo } from 'react' -import styled from 'styled-components' +import { Clear } from '@mui/icons-material'; +import { Tooltip } from '@mui/material'; +import { CSSProperties, FC, memo, useMemo } from 'react'; +import { styled } from '@mui/material'; export interface CustomTagProps { - icon?: React.ReactNode - children?: React.ReactNode | string - color: string - size?: number - style?: CSSProperties - tooltip?: string - closable?: boolean - onClose?: () => void - onClick?: () => void - disabled?: boolean - inactive?: boolean + icon?: React.ReactNode; + children?: React.ReactNode | string; + color: string; + size?: number; + style?: CSSProperties; + tooltip?: string; + closable?: boolean; + onClose?: () => void; + onClick?: () => void; + disabled?: boolean; + inactive?: boolean; } const CustomTag: FC = ({ @@ -28,9 +28,9 @@ const CustomTag: FC = ({ onClose, onClick, disabled, - inactive + inactive, }) => { - const actualColor = inactive ? '#aaaaaa' : color + const actualColor = inactive ? '#aaaaaa' : color; const tagContent = useMemo( () => ( = ({ $size={size} $closable={closable} onClick={disabled ? undefined : onClick} - style={{ cursor: disabled ? 'not-allowed' : onClick ? 'pointer' : 'auto', ...style }}> + style={{ + cursor: disabled ? 'not-allowed' : onClick ? 'pointer' : 'auto', + ...style, + }} + > {icon && icon} {children} {closable && ( { - e.stopPropagation() - onClose?.() + e.stopPropagation(); + onClose?.(); }} /> )} ), - [actualColor, children, closable, disabled, icon, onClick, onClose, size, style] - ) + [ + actualColor, + children, + closable, + disabled, + icon, + onClick, + onClose, + size, + style, + ] + ); return tooltip ? ( - + {tagContent} ) : ( tagContent - ) -} + ); +}; -export default memo(CustomTag) +export default memo(CustomTag); -const Tag = styled.div<{ $color: string; $size: number; $closable: boolean }>` - display: inline-flex; - align-items: center; - gap: 4px; - padding: ${({ $size }) => $size / 3}px ${({ $size }) => $size * 0.8}px; - padding-right: ${({ $closable, $size }) => ($closable ? $size * 1.8 : $size * 0.8)}px; - border-radius: 99px; - color: ${({ $color }) => $color}; - background-color: ${({ $color }) => $color + '20'}; - font-size: ${({ $size }) => $size}px; - line-height: 1; - white-space: nowrap; - position: relative; - .iconfont { - font-size: ${({ $size }) => $size}px; - color: ${({ $color }) => $color}; - } -` +const Tag = styled('div')<{ + $color: string; + $size: number; + $closable: boolean; +}>(({ $color, $size, $closable }) => ({ + display: 'inline-flex', + alignItems: 'center', + gap: '4px', + padding: `${$size / 3}px ${$size * 0.8}px`, + paddingRight: `${$closable ? $size * 1.8 : $size * 0.8}px`, + borderRadius: '99px', + color: $color, + backgroundColor: `${$color}20`, + fontSize: $size, + lineHeight: 1, + whiteSpace: 'nowrap', + position: 'relative', + '& .iconfont': { + fontSize: $size, + color: $color, + }, +})); -const CloseIcon = styled(Clear)<{ $size: number; $color: string }>` - cursor: pointer; - font-size: ${({ $size }) => $size * 0.8}px; - color: ${({ $color }) => $color}; - display: flex; - align-items: center; - justify-content: center; - position: absolute; - right: ${({ $size }) => $size * 0.2}px; - top: ${({ $size }) => $size * 0.2}px; - bottom: ${({ $size }) => $size * 0.2}px; - border-radius: 99px; - transition: all 0.2s ease; - aspect-ratio: 1; - line-height: 1; - &:hover { - background-color: #da8a8a; - color: #ffffff; - } -` +const CloseIcon = styled(Clear)<{ $size: number; $color: string }>( + ({ $size, $color }) => ({ + cursor: 'pointer', + fontSize: `${$size * 0.8}px`, + color: $color, + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + position: 'absolute', + right: `${$size * 0.2}px`, + top: `${$size * 0.2}px`, + bottom: `${$size * 0.2}px`, + borderRadius: '99px', + transition: 'all 0.2s ease', + aspectRatio: '1 / 1', + lineHeight: 1, + '&:hover': { + backgroundColor: '#da8a8a', + color: '#ffffff', + }, + }) +); diff --git a/ui/ModelModal/src/components/card/index.tsx b/ui/ModelModal/src/components/card/index.tsx index 885c1ad..4bd5b2f 100644 --- a/ui/ModelModal/src/components/card/index.tsx +++ b/ui/ModelModal/src/components/card/index.tsx @@ -2,10 +2,12 @@ import { styled } from '@mui/material'; import type { Theme } from '@mui/material/styles'; import type { ComponentType } from 'react'; -const StyledCard: ComponentType = styled('div')<{}>(({ theme }: { theme: Theme }) => ({ - padding: theme.spacing(2), - borderRadius: theme.shape.borderRadius * 2.5, - backgroundColor: theme.palette.background.default, -})); +const StyledCard: ComponentType = styled('div')<{}>( + ({ theme }: { theme: Theme }) => ({ + padding: theme.spacing(2), + borderRadius: (theme.shape.borderRadius as number) * 2.5, + backgroundColor: theme.palette.background.default, + }) +); -export default StyledCard; \ No newline at end of file +export default StyledCard; diff --git a/ui/ModelModal/src/theme.ts b/ui/ModelModal/src/theme.ts index 19dbc58..2a2919f 100644 --- a/ui/ModelModal/src/theme.ts +++ b/ui/ModelModal/src/theme.ts @@ -2,7 +2,7 @@ import { createTheme, Paper } from '@mui/material'; import type { Shadows } from '@mui/material'; import { zhCN } from '@mui/material/locale'; -import { zhCN as CuiZhCN } from '@c-x/ui/dist/local'; +import { zhCN as CuiZhCN } from '@ctzhian/ui/dist/local'; import onData from '@/assets/images/nodata.png'; import { common } from '@mui/material/colors'; @@ -36,7 +36,7 @@ const lightTheme = createTheme( risk: { severe: '#FF6262', critical: '#FFA762', - suggest: '#FFCF62' + suggest: '#FFCF62', }, disabled: { main: '#666', diff --git a/ui/ModelModal/vite.config.ts b/ui/ModelModal/vite.config.ts index 83ca8d3..55818ff 100644 --- a/ui/ModelModal/vite.config.ts +++ b/ui/ModelModal/vite.config.ts @@ -2,20 +2,36 @@ import { defineConfig, loadEnv } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; import dts from 'vite-plugin-dts'; +import { visualizer } from 'rollup-plugin-visualizer'; // https://vite.dev/config/ -export default defineConfig(({ mode }) => { - // 加载环境变量 +export default defineConfig(({ command, mode }) => { + // 加载环境变量 - 第二个参数是目录路径,不是文件名 const env = loadEnv(mode, process.cwd(), ''); + const shouldAnalyze = + process.argv.includes('--analyze') || env.ANALYZE === 'true'; return { - plugins: [react(), dts({ - insertTypesEntry: true, - rollupTypes: true, - tsconfigPath: './tsconfig.app.json', - outDir: 'dist', - include: ['src'], - })], + plugins: [ + react(), + dts({ + insertTypesEntry: true, + rollupTypes: true, + tsconfigPath: './tsconfig.app.json', + outDir: 'dist', + include: ['src'], + }), + ...(command === 'build' && shouldAnalyze + ? [ + visualizer({ + open: true, // 在默认浏览器中自动打开报告 + gzipSize: true, // 显示 gzip 格式下的包大小 + brotliSize: true, // 显示 brotli 格式下的包大小 + filename: 'dist/stats.html', // 分析图生成的文件名 + }), + ] + : []), + ], resolve: { alias: { '@': path.resolve(__dirname, 'src'), @@ -28,39 +44,32 @@ export default defineConfig(({ mode }) => { host: '0.0.0.0', port: 3300, }, - // 手动配置 Monaco Editor 支持 - define: { - // 禁用 Monaco Editor 从 CDN 加载 - 'process.env.REACT_APP_MONACO_CDN': JSON.stringify('false'), - }, // 优化构建配置 build: { outDir: 'dist', lib: { entry: 'src/index.ts', formats: ['cjs', 'es'], - fileName: (format) => `index.${format === 'cjs' ? 'js' : 'es.js'}` + fileName: (format) => `index.${format === 'cjs' ? 'js' : 'es.js'}`, }, rollupOptions: { - external: ['react', 'react-dom'], + external: [ + '@ctzhian/ui', + '@emotion/react', + '@emotion/styled', + '@mui/icons-material', + 'react', + 'react-dom', + 'react/jsx-runtime', + ], output: { globals: { react: 'React', - 'react-dom': 'ReactDOM' - } - } + 'react-dom': 'ReactDOM', + }, + }, }, sourcemap: true, }, - // 确保 Monaco Editor 被正确优化 - optimizeDeps: { - include: ['monaco-editor', '@monaco-editor/react'], - }, - // // 处理 worker 文件 - // worker: { - // format: 'es', - // }, - // 确保 Monaco Editor workers 能正确加载 - // assetsInclude: ['**/*.worker.js'], }; });