diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..1ce8b1a Binary files /dev/null and b/.DS_Store differ diff --git a/client/package-lock.json b/client/package-lock.json index fe51df0..7d3fdc2 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -10,31 +10,20 @@ "dependencies": { "-": "^0.0.1", "@dnd-kit/core": "^6.3.1", + "@fluentui/react-components": "^9.69.0", + "@fluentui/react-icons": "^2.0.309", "@fontsource/inter": "^5.0.19", "@fontsource/open-sans": "^5.0.28", "@hello-pangea/dnd": "^17.0.0", "@js-preview/docx": "^1.6.2", "@js-preview/excel": "^1.7.8", "@js-preview/pdf": "^2.0.2", - "@mantine/carousel": "^7.13.0", - "@mantine/charts": "^7.13.0", - "@mantine/code-highlight": "^7.13.0", "@mantine/core": "^7.13.0", "@mantine/dates": "^7.13.0", "@mantine/dropzone": "^7.13.0", - "@mantine/form": "^7.13.0", - "@mantine/hooks": "^7.13.0", - "@mantine/modals": "^7.13.0", - "@mantine/notifications": "^7.13.0", "@mantine/nprogress": "^7.13.0", - "@mantine/spotlight": "^7.13.0", - "@mantine/tiptap": "^7.13.0", "@tabler/icons-react": "^3.17.0", "@tanstack/react-table": "^8.20.5", - "@techstark/opencv-js": "^4.10.0-release.1", - "@tiptap/extension-link": "^2.7.3", - "@tiptap/react": "^2.7.3", - "@tiptap/starter-kit": "^2.7.3", "@types/ol-ext": "npm:@siedlerchr/types-ol-ext@^3.5.0", "@uidotdev/usehooks": "^2.4.1", "ag-grid-react": "^33.3.2", @@ -43,9 +32,7 @@ "buffer": "^6.0.3", "dayjs": "^1.11.13", "docx-templates": "^4.13.0", - "embla-carousel-react": "^8.3.0", "file-type": "^19.0.0", - "html2canvas": "^1.4.1", "jspdf": "^2.5.2", "ol": "^10.0.0", "ol-ext": "^4.0.23", @@ -54,7 +41,6 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.52.0", "react-router-dom": "^6.23.1", - "recharts": "^2.12.7", "swr": "^2.2.5", "uuid": "^11.0.3", "zustand": "^4.5.2" @@ -1945,6 +1931,15 @@ "integrity": "sha512-+imAQkHf7U/Rwvu0wk1XWgsP3WnpCWmK7B48f0XqSNzgk64+grljTKC7pnO/xBiEMUziF7vKRfbBnOQhg126qQ==", "dev": true }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/@dnd-kit/accessibility": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", @@ -1981,6 +1976,12 @@ "react": ">=16.8.0" } }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -2428,20 +2429,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", - "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.0" + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/devtools": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@floating-ui/devtools/-/devtools-0.2.3.tgz", + "integrity": "sha512-ZTcxTvgo9CRlP7vJV62yCxdqmahHTGpSTi5QaTDgGoyQq0OyjaVZhUhXv/qdkQFOI3Sxlfmz0XGG4HaZMsDf8Q==", + "license": "MIT", + "peerDependencies": { + "@floating-ui/dom": "^1.0.0" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", - "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.0.0", - "@floating-ui/utils": "^0.2.0" + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react": { @@ -2471,9 +2483,2068 @@ } }, "node_modules/@floating-ui/utils": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", - "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==" + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-keys/-/keyboard-keys-9.0.8.tgz", + "integrity": "sha512-iUSJUUHAyTosnXK8O2Ilbfxma+ZyZPMua5vB028Ys96z80v+LFwntoehlFsdH3rMuPsA8GaC1RE7LMezwPBPdw==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.1.15", + "resolved": "https://registry.npmjs.org/@fluentui/priority-overflow/-/priority-overflow-9.1.15.tgz", + "integrity": "sha512-/3jPBBq64hRdA416grVj+ZeMBUIaKZk2S5HiRg7CKCAV1JuyF84Do0rQI6ns8Vb9XOGuc4kurMcL/UEftoEVrg==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-accordion/-/react-accordion-9.8.5.tgz", + "integrity": "sha512-e3RNtrzTgTRSwueOaxjQimG3u8QQUa8EiTIpRThadedleVtS0KWfuvSv2/EKUL85I6toaTthOFFuJRpP6C9Frw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-motion-components-preview": "^0.9.0", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-accordion/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-accordion/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.124", + "resolved": "https://registry.npmjs.org/@fluentui/react-alert/-/react-alert-9.0.0-beta.124.tgz", + "integrity": "sha512-yFBo3B5H9hnoaXxlkuz8wRz04DEyQ+ElYA/p5p+Vojf19Zuta8DmFZZ6JtWdtxcdnnQ4LvAfC5OYYlzdReozPA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.6.29", + "@fluentui/react-button": "^9.3.83", + "@fluentui/react-icons": "^2.0.239", + "@fluentui/react-jsx-runtime": "^9.0.39", + "@fluentui/react-tabster": "^9.21.5", + "@fluentui/react-theme": "^9.1.19", + "@fluentui/react-utilities": "^9.18.10", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.16.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-aria/-/react-aria-9.16.4.tgz", + "integrity": "sha512-ent+vc93+6EAeg26tnZMoRp8lIJtfFMbKFAa0WvZGbN5jU24NQUniJCdXcsfrmVCQ2hHophQDvUSwGhPkABURw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-avatar": { + "version": "9.9.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-avatar/-/react-avatar-9.9.5.tgz", + "integrity": "sha512-xl1oewoY7dtNCyEuhghJCzHF1RVARZdtVsuleMvI9TZuyjoKuXyOzaLSyFhh1lXGkcrSsS3JtrVrTVFyR2u/wg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-badge": "^9.4.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-popover": "^9.12.5", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.4", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-avatar/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-avatar/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-badge": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-badge/-/react-badge-9.4.4.tgz", + "integrity": "sha512-XfAwIweS9ypwkNsWfEApM6xLAqAJjgC4Vb31owRqUBGu+IKlKDLqhNKQPyTLVb8Ql+okiEFu7tZellCRr5K1Uw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-breadcrumb": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-breadcrumb/-/react-breadcrumb-9.3.5.tgz", + "integrity": "sha512-AkBMEo1L81wH5UYTQs6QqOFiAbAF9xrA6V7CDSfzOO0yBAlQH5N4DD6b+Q8dEDBWPfUmy15VzYVmhQosm4Tztg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-link": "^9.6.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-button": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-button/-/react-button-9.6.5.tgz", + "integrity": "sha512-UMhGNn82rhz4o9dAVVG/4OUI7XjZlUW4F2u8BkSh0RAUD+d3wQn4EFYSF7/VbLvdq+dgLIaCTUMkd1UerDRvYw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-card": { + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-card/-/react-card-9.4.5.tgz", + "integrity": "sha512-MFsbbT38AzjvAdvFlPGetPV01FJTlPf3cC/UiKmR4nhZg2ss2H4+jh0p4Y/xHSCUUe5Q5nMtVX0+xSUrEt+Lig==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-text": "^9.6.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-carousel": { + "version": "9.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-carousel/-/react-carousel-9.8.5.tgz", + "integrity": "sha512-mSgUvznEzBGhJ3PRX8BQGILbD/C0UiKul0Ry79h3y/0A8TGm8wVFDzXOH0QQsugOio4JpUamm/fDApHodsMVmw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.4", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "embla-carousel": "^8.5.1", + "embla-carousel-autoplay": "^8.5.1", + "embla-carousel-fade": "^8.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-carousel/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-carousel/node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/@fluentui/react-carousel/node_modules/embla-carousel-autoplay": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-autoplay/-/embla-carousel-autoplay-8.6.0.tgz", + "integrity": "sha512-OBu5G3nwaSXkZCo1A6LTaFMZ8EpkYbwIaH+bPqdBnDGQ2fh4+NbzjXjs2SktoPNKCtflfVMc75njaDHOYXcrsA==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/@fluentui/react-carousel/node_modules/embla-carousel-fade": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-fade/-/embla-carousel-fade-8.6.0.tgz", + "integrity": "sha512-qaYsx5mwCz72ZrjlsXgs1nKejSrW+UhkbOMwLgfRT7w2LtdEB03nPRI06GHuHv5ac2USvbEiX2/nAHctcDwvpg==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/@fluentui/react-carousel/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-checkbox": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-checkbox/-/react-checkbox-9.5.4.tgz", + "integrity": "sha512-1OcjlGAOhtv67aUcHHXCFFO2Phmps30NcagQX1PhDjQNWCQa8k3de6obpgTNfLvD6EA8K0Yz+x4BkpwK11DxGQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-color-picker": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-color-picker/-/react-color-picker-9.2.4.tgz", + "integrity": "sha512-LjjwfUvD0TyWTJnAIZgpgDwLj3HtBGcW4ZlM0AllJN8q3RnxnEA5ygFrhB2bFjOc6a4ijCavKEU5ZfdtmS+Kpg==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.3.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-color-picker/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-color-picker/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-combobox": { + "version": "9.16.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-combobox/-/react-combobox-9.16.5.tgz", + "integrity": "sha512-hgBru9DW1XIysbfk7RsnfhwoxQ8JpaAFoPZF16sAtkM2W+WpBYWcHHnYHbntCos1TB2yDKCdOfkQDaHwgOUeQw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-combobox/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-combobox/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.69.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-components/-/react-components-9.69.0.tgz", + "integrity": "sha512-iw6gZVdAMPgPLbAwwAcA+2wRfeHdV27tRMPfrNYnFlXMAYfcXQvWjxeD8XTL5j2PYfOhRJjnWvjL0srJjjMcfA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-accordion": "^9.8.5", + "@fluentui/react-alert": "9.0.0-beta.124", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-avatar": "^9.9.5", + "@fluentui/react-badge": "^9.4.4", + "@fluentui/react-breadcrumb": "^9.3.5", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-card": "^9.4.5", + "@fluentui/react-carousel": "^9.8.5", + "@fluentui/react-checkbox": "^9.5.4", + "@fluentui/react-color-picker": "^9.2.4", + "@fluentui/react-combobox": "^9.16.5", + "@fluentui/react-dialog": "^9.15.0", + "@fluentui/react-divider": "^9.4.4", + "@fluentui/react-drawer": "^9.10.0", + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-image": "^9.3.4", + "@fluentui/react-infobutton": "9.0.0-beta.102", + "@fluentui/react-infolabel": "^9.4.5", + "@fluentui/react-input": "^9.7.4", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-link": "^9.6.4", + "@fluentui/react-list": "^9.5.0", + "@fluentui/react-menu": "^9.19.5", + "@fluentui/react-message-bar": "^9.6.5", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-nav": "^9.3.5", + "@fluentui/react-overflow": "^9.5.5", + "@fluentui/react-persona": "^9.5.5", + "@fluentui/react-popover": "^9.12.5", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-progress": "^9.4.4", + "@fluentui/react-provider": "^9.22.4", + "@fluentui/react-radio": "^9.5.4", + "@fluentui/react-rating": "^9.3.4", + "@fluentui/react-search": "^9.3.4", + "@fluentui/react-select": "^9.4.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-skeleton": "^9.4.4", + "@fluentui/react-slider": "^9.5.4", + "@fluentui/react-spinbutton": "^9.5.4", + "@fluentui/react-spinner": "^9.7.4", + "@fluentui/react-swatch-picker": "^9.4.4", + "@fluentui/react-switch": "^9.4.4", + "@fluentui/react-table": "^9.18.5", + "@fluentui/react-tabs": "^9.10.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-tag-picker": "^9.7.5", + "@fluentui/react-tags": "^9.7.5", + "@fluentui/react-teaching-popover": "^9.6.5", + "@fluentui/react-text": "^9.6.4", + "@fluentui/react-textarea": "^9.6.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-toast": "^9.7.0", + "@fluentui/react-toolbar": "^9.6.5", + "@fluentui/react-tooltip": "^9.8.4", + "@fluentui/react-tree": "^9.13.0", + "@fluentui/react-utilities": "^9.24.0", + "@fluentui/react-virtualizer": "9.0.0-alpha.102", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.15.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-dialog/-/react-dialog-9.15.0.tgz", + "integrity": "sha512-sB8ilho8af0QW+pekkBJRpXaZvh1CQkEUOUdB0UhGWlH0zuRdl3gbMujjh06anVJgeo6bT2yomlG2YPjVLv9Rg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-motion-components-preview": "^0.9.0", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-dialog/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-dialog/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-divider": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-divider/-/react-divider-9.4.4.tgz", + "integrity": "sha512-Hg61v5YSh02H/fQJdfkzpqkrrupXIdzfbnRczCsjl5r9W2sqlO0STC100/SCmxtLoZN5208tM268NIPGfQLArw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-drawer": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-drawer/-/react-drawer-9.10.0.tgz", + "integrity": "sha512-yoTJGoH6jgL2/Nu3wfJptbMZdGnHhUh4cOKESTiiSjCmVgmr56gGFzMjAICek1YLtrnxGBEAJngkOpyQFNHQtw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-dialog": "^9.15.0", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-field": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-field/-/react-field-9.4.4.tgz", + "integrity": "sha512-JtW3faTdKIE/d/mum9ZDkiC6vyip7h5rLa7zhIQ/Eek0JR2vHZwta8BODxY0Mwvga/xTK9aC3fNo/FcXSoL3Rg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-field/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-field/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-icons": { + "version": "2.0.309", + "resolved": "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-2.0.309.tgz", + "integrity": "sha512-rxR1iTh7FfVuFzyaLym0NLzAkfR+dVo2M53qv1uISYUvoZUGoTUazECTPmRXnMb33vtHuf6VT/quQyhCrLCmlA==", + "license": "MIT", + "dependencies": { + "@griffel/react": "^1.0.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-image": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-image/-/react-image-9.3.4.tgz", + "integrity": "sha512-wtRE7D+1Td9Ha5asRxDuUCIGfx75ilIWgZDws2MQoZrVo05iSAf3F+Ylv+MuiQ2p8N46n8gGyUBNmyFwfWUfKA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infobutton": { + "version": "9.0.0-beta.102", + "resolved": "https://registry.npmjs.org/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.102.tgz", + "integrity": "sha512-3kA4F0Vga8Ds6JGlBajLCCDOo/LmPuS786Wg7ui4ZTDYVIMzy1yp2XuVcZniifBFvEp0HQCUoDPWUV0VI3FfzQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.237", + "@fluentui/react-jsx-runtime": "^9.0.36", + "@fluentui/react-label": "^9.1.68", + "@fluentui/react-popover": "^9.9.6", + "@fluentui/react-tabster": "^9.21.0", + "@fluentui/react-theme": "^9.1.19", + "@fluentui/react-utilities": "^9.18.7", + "@griffel/react": "^1.5.14", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infolabel": { + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-infolabel/-/react-infolabel-9.4.5.tgz", + "integrity": "sha512-sjUPSt1VeBkvHIn+Iq3LL+KXwrzLGANkR2MC80+OJNn59tk3jVFkcnlPxWYWnOD/Zlpl6SqIlKnzrVQGfIxxvA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-popover": "^9.12.5", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-input/-/react-input-9.7.4.tgz", + "integrity": "sha512-ZNhM5xKckA39O3g6LjwoZCqy8kopFQ1ujfwxl0D60fEDMBwUYoK2NR1Zr/pEF9ItuhKlIN9fs1F/Hqay7fnYDw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.1.6.tgz", + "integrity": "sha512-ClaksavUB9CPRPuMKxtsjVCg+N95jMt3Oi5RBGY4dAMxwaERpweQPv5CCuZzOq4Ybp4FpAXwK1jGNZzXizvfaA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-label": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-label/-/react-label-9.3.4.tgz", + "integrity": "sha512-oBdN3J5qFuiS57eCk+rXEYg+zt/7Mgt7SqxQlJzkU8uzlj5J5B+IjITlADOEYjuG0QDzhNA4/et2AX8c8kA55Q==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-link": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-link/-/react-link-9.6.4.tgz", + "integrity": "sha512-jmn/lkDt31bE8ZMgPQ9ZCeUeHJ7fL28HelOj8Mod9lhTfykyFESzWjd3oJQ0FSKta5I1oqwrBcxa4dIuDM2sfw==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-list": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-list/-/react-list-9.5.0.tgz", + "integrity": "sha512-iJIq5DNxRDog2AFror7d/7q7mzTcVnjejfF4ZhpIZW0hYOzpeVsZvCWilvg96ItvXgNApM3F369ZLLs1Q3uUIQ==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-checkbox": "^9.5.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-list/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-list/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.19.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-menu/-/react-menu-9.19.5.tgz", + "integrity": "sha512-+tvO4m8DB0NBPnFedcpCvmNJVmC/6VQd2Gzn8VIqJOBVnm1xRQ85YjH7d8CK1FKdW26JhYAAj8pVIh8k+mLseA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-menu/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-menu/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-message-bar": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-message-bar/-/react-message-bar-9.6.5.tgz", + "integrity": "sha512-YpCaYxN4Y0sFalk1GZ1L4MXSGLepvyON9uW1PVeWS89XQlWGPCSSEhFTUjWrQJar2wsJ8kv/LKreQb87mCYolg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-link": "^9.6.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "react-transition-group": "^4.4.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-motion": { + "version": "9.10.3", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion/-/react-motion-9.10.3.tgz", + "integrity": "sha512-0UZyBSY73wP+p2s8FQsi4XdBCuGzjZ5MXy/2oohqX3yAb8t+F7e1ID0fJym9pnwwYkGeugZUlkWfyWgFPuSQag==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-motion-components-preview": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-motion-components-preview/-/react-motion-components-preview-0.9.0.tgz", + "integrity": "sha512-MkzDBtuZzFCW9RC7zW9e7r8AdcocpGigMQpL6gi9OYYEUDiIPSjTsitok9W0ZZ7H4gBy+p7MjG/we5JcsBCnpQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-motion": "*", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-nav": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-nav/-/react-nav-9.3.5.tgz", + "integrity": "sha512-SumdUakSW1XWmzJG7OsiNuJDAhxHWa+uNvZ/rURJTFGkwSt+a1Fi0UL1uutyMtK1U5rCBRMtrf79r3M3+DURJw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-divider": "^9.4.4", + "@fluentui/react-drawer": "^9.10.0", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-tooltip": "^9.8.4", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-nav/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-nav/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-overflow": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-overflow/-/react-overflow-9.5.5.tgz", + "integrity": "sha512-WbG0DMJ5B7hOIYncmXjG1odS37mlldPpqm4WXpDv2IMIYzzlcI8JDk0KimrAb2/FgLrRm3vWbxZ1hyb5YjImrg==", + "license": "MIT", + "dependencies": { + "@fluentui/priority-overflow": "^9.1.15", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-overflow/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-overflow/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-persona": { + "version": "9.5.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-persona/-/react-persona-9.5.5.tgz", + "integrity": "sha512-s//UCtV+Vf+/ghY3+InWph1mLOOG3NxhoRzttXDSfinzLXgDzf6PUPd+FbntK8eu6RyOllnquydnLTkDLt/k/g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-avatar": "^9.9.5", + "@fluentui/react-badge": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-popover": { + "version": "9.12.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-popover/-/react-popover-9.12.5.tgz", + "integrity": "sha512-GzIkJoyzRmgz8UgVq2xhqii/trIAMLpLYbr3XrxukrkDg837OZKFcBbSbqTUSNVZ6ra4RrlGMaF4yhWHBTSs1A==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-popover/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-popover/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-portal": { + "version": "9.8.1", + "resolved": "https://registry.npmjs.org/@fluentui/react-portal/-/react-portal-9.8.1.tgz", + "integrity": "sha512-PjcKGNpphryhHBtlObbBVNrsasPt6QCbTyLYfmUKR92+XQI0U92AV9fHS7sArXGP3HrXjzUDvf+rLnecRMQmcA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.20.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-positioning/-/react-positioning-9.20.4.tgz", + "integrity": "sha512-MyldPBLO+hX0+qI2kfRZRI1hdSihgDKqpdqkl6O25PVce2SaGvvDAK72GDNOyoAApnXlVOFIEAyLSWzxjTGDbw==", + "license": "MIT", + "dependencies": { + "@floating-ui/devtools": "^0.2.3", + "@floating-ui/dom": "^1.6.12", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-progress": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-progress/-/react-progress-9.4.4.tgz", + "integrity": "sha512-53oBCjgnqKLhX3amF8UczzBajOn1iQ1li4e14IIo+pmocI6kqohUWEBX6FUyor9+gSoty47pmS1T8izxyqnaCA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-provider": { + "version": "9.22.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-provider/-/react-provider-9.22.4.tgz", + "integrity": "sha512-GhNGnFtNue7ZDxZjln4NtZMon0WNgaVBwEeqk2f5v6yzaGQN6Qm6/Ke/oCVTv++weimk2Sxysy2iN+/fMG3w0Q==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/core": "^1.16.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-radio": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-radio/-/react-radio-9.5.4.tgz", + "integrity": "sha512-wgqNgEMUbDmiSSNG8rtYYLVmkfABZyotTGAlyUMAsE4mw4wlcsLEFhVL2LNckH4a4DR/jeJb5McatgdpX7T4+Q==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-rating": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-rating/-/react-rating-9.3.4.tgz", + "integrity": "sha512-Nq1dp7tVxTPJ8arqPaQKW9Apw7clkqVH6zZc/9ssSqEQO4ap4pWZPY0omSkxwdk15jH0AKzXMGTN5eT9MfK8Kw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-search": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-search/-/react-search-9.3.4.tgz", + "integrity": "sha512-l3JK18E+VQ+zZ0u9Id+xr3b1+KS8bWRVqbhU5Cm/BdtipW0pr/uzG8i5IH64pPLu9S0hfI4ROCQ2miZ5bBmO4g==", + "license": "MIT", + "dependencies": { + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-input": "^9.7.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-select": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-select/-/react-select-9.4.4.tgz", + "integrity": "sha512-NFAaZ1kMrMLNOqKlxkgIW66rO8RCNG3PRwbPBvHkMawupoFSiHag5r7YLxZsn1OX8HFnXz9wp083ZjWXHvEwWA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.25.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-shared-contexts/-/react-shared-contexts-9.25.0.tgz", + "integrity": "sha512-uFWi93L5ZjZACx5VA4+gbWgg6l/on3ultJpXTyFYFuox0paJbqENsPf383GKZW7UnUs08Kqry5CFC36VfqDdSg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-theme": "^9.2.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-skeleton": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-skeleton/-/react-skeleton-9.4.4.tgz", + "integrity": "sha512-keXTUdweqPMffECCLoc2Fu35xxpLUNh3opGy4/ShT73YVTQgLyRTJMKv5v+y2TzujWP9T/THm+HHxe56eQBrVQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-slider": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-slider/-/react-slider-9.5.4.tgz", + "integrity": "sha512-AX6t49OMF/OWDN6M+gsBUu5ZAuhswLdvrnuRJY+jMHWSMitTK2DBgruNUKhpA1K5Kl0ZqFHlU8eTMti8FT6Nog==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinbutton": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinbutton/-/react-spinbutton-9.5.4.tgz", + "integrity": "sha512-MiNih2+ds5acPXNLYufvD9pnD6z2pZH0OHATrCh6MngAdbSTC5vR2+lP9qvBj02zQ/L4nZEcuaLbd4BrP7KUpg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinner": { + "version": "9.7.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-spinner/-/react-spinner-9.7.4.tgz", + "integrity": "sha512-d4HTD4TlvM4PN+J5iWOrGqcfOyoPbX+KEQbUexX/4ZBNcGPsAbHtLH4IHoQTZIYUKRurLZH1dnTgyeTjraR2HQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-swatch-picker": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-swatch-picker/-/react-swatch-picker-9.4.4.tgz", + "integrity": "sha512-U0xZRd9v4C/fwlx7ux4ufY2OWCnLzClqc97r+Roeg+5FCF3ACEwocwQoA/Md/uQxqVjeIMTyxW20Ozlk4rnLYQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-swatch-picker/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-swatch-picker/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.4.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-switch/-/react-switch-9.4.4.tgz", + "integrity": "sha512-9DyAGW5L/cmxp6R9HNmP4SoSlzdf9oO7Z3Hbu5DoMHKTvL3hU86K84MeU1fNaDbHEkdgdVFMYt5QFbzoW/lkqw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-label": "^9.3.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-table": { + "version": "9.18.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-table/-/react-table-9.18.5.tgz", + "integrity": "sha512-JQy7HiHiMkfi0H8u/cKui8mhRc3ESuClGSS2IRoGyCDPILRuwf1OW6h6uPMTf5DYJV5OnEwxQTM8zAjPTmZH1g==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-avatar": "^9.9.5", + "@fluentui/react-checkbox": "^9.5.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-radio": "^9.5.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-table/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-table/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-tabs": { + "version": "9.10.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabs/-/react-tabs-9.10.0.tgz", + "integrity": "sha512-fFHAXmOwz+ESt23CKgicvu76FzVYywcCj+/nL8xjMtulEnoNrKC1SkLwScTgeJgo+WQw2RchyG1fdFppPVz+zA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tabs/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-tabs/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-tabster": { + "version": "9.26.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-tabster/-/react-tabster-9.26.4.tgz", + "integrity": "sha512-ri/h4MHdSdTPn40isPZw1tOnB4W+wLj0EtJWDdKc49vDX8NXTmULLBDodHDsqauVJpKMw3Jw69Ccuf09S+qhTA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "keyborg": "^2.6.0", + "tabster": "^8.5.5" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tag-picker": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-tag-picker/-/react-tag-picker-9.7.5.tgz", + "integrity": "sha512-0FlRcHhk08q1fR6YkUNShqSPT+Cq9LPsTVU2nlwk0piVY2BxTbCYD+lK+qjJmJHIXUtOA1naQESRdQMmrStfYA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-combobox": "^9.16.5", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-tags": "^9.7.5", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tag-picker/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-tag-picker/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-tags": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-tags/-/react-tags-9.7.5.tgz", + "integrity": "sha512-9rJv6bHzMsEvmWJFIUwq1bgLZ7D1XZ556fOtPl9P7JU2i6gCYzkXCakHm9faUJnNw2CcKq0aw38sGJoHR7wNuA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-avatar": "^9.9.5", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-teaching-popover": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-teaching-popover/-/react-teaching-popover-9.6.5.tgz", + "integrity": "sha512-fNSwEXRPDa5qRjgEI8vvlki279/hhCWeQyYFyJ4D4pRga8u3CGa6RI33GuUsxHO2ROOgMRFh2JJIYlG/+GMhjQ==", + "license": "MIT", + "dependencies": { + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-popover": "^9.12.5", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1", + "use-sync-external-store": "^1.2.0" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-teaching-popover/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-teaching-popover/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-text/-/react-text-9.6.4.tgz", + "integrity": "sha512-plHq9chCXcV9wtwNUtQYJSCTMJyEtMKHFj9s54ZS6GZOIxm/SIqsSz5ZAR25mgdn4mlyuMS+Ac3nBR83T+zVDw==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-textarea": { + "version": "9.6.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-textarea/-/react-textarea-9.6.4.tgz", + "integrity": "sha512-Gb6XkGNAiPE19cBfIkJVph3hKxubNrh5/idRQVDpQapjlRC2d8RmnNtUIlLwkiWtIdFvis0lxZuATQlDTQlnBA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-field": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-theme": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-theme/-/react-theme-9.2.0.tgz", + "integrity": "sha512-Q0zp/MY1m5RjlkcwMcjn/PQRT2T+q3bgxuxWbhgaD07V+tLzBhGROvuqbsdg4YWF/IK21zPfLhmGyifhEu0DnQ==", + "license": "MIT", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.22", + "@swc/helpers": "^0.5.1" + } + }, + "node_modules/@fluentui/react-toast": { + "version": "9.7.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-toast/-/react-toast-9.7.0.tgz", + "integrity": "sha512-8GjhlUhKheDOEJudFCVCU9zFnXO66cAfn7xeMeIda5ZwdknD9Qh05bFLK68MRfBj9KpzfJC7tX84ztLDihVqzg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-motion-components-preview": "^0.9.0", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.6.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-toolbar/-/react-toolbar-9.6.5.tgz", + "integrity": "sha512-eHnZb2+/2AL0ZWO9dgm4IirXBgzFTCVEDT2oXMXNG49IbbZOrPo+MX+POb4gduKUdOE7STJvrgw79ePs+Q94hA==", + "license": "MIT", + "dependencies": { + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-divider": "^9.4.4", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-radio": "^9.5.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-toolbar/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-toolbar/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-tooltip": { + "version": "9.8.4", + "resolved": "https://registry.npmjs.org/@fluentui/react-tooltip/-/react-tooltip-9.8.4.tgz", + "integrity": "sha512-Yb8kW37CmK2CI5zilYYnvVjeXKyH1S8Fdi5lXmL6sm48Vf/Ad5s8WKYGzTRq7faLN7oR2R53Z+t8g7EEGfhO2w==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-portal": "^9.8.1", + "@fluentui/react-positioning": "^9.20.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tree": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-tree/-/react-tree-9.13.0.tgz", + "integrity": "sha512-UJKiZyqtqE1c2ICtUSDuTVe1bZb+i5CVOZvQrgjNiSolRKAFrLEOk7G+wOjq6X4OPwiZRp+rpkHLr6KTJ3LFsg==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-aria": "^9.16.4", + "@fluentui/react-avatar": "^9.9.5", + "@fluentui/react-button": "^9.6.5", + "@fluentui/react-checkbox": "^9.5.4", + "@fluentui/react-context-selector": "^9.2.6", + "@fluentui/react-icons": "^2.0.245", + "@fluentui/react-jsx-runtime": "^9.1.6", + "@fluentui/react-motion": "^9.10.3", + "@fluentui/react-motion-components-preview": "^0.9.0", + "@fluentui/react-radio": "^9.5.4", + "@fluentui/react-shared-contexts": "^9.25.0", + "@fluentui/react-tabster": "^9.26.4", + "@fluentui/react-theme": "^9.2.0", + "@fluentui/react-utilities": "^9.24.0", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/@fluentui/react-context-selector": { + "version": "9.2.6", + "resolved": "https://registry.npmjs.org/@fluentui/react-context-selector/-/react-context-selector-9.2.6.tgz", + "integrity": "sha512-AskFoj248mH8USB/GfXRxj4PbVETVg+T1Xl+uVS6owYchVqkDDHW3oYnZdOTY/rMf1hxOUJhcC3GtXP0JRFdbg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-utilities": "^9.24.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0", + "scheduler": ">=0.19.0 <=0.23.0" + } + }, + "node_modules/@fluentui/react-tree/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/@fluentui/react-utilities": { + "version": "9.24.0", + "resolved": "https://registry.npmjs.org/@fluentui/react-utilities/-/react-utilities-9.24.0.tgz", + "integrity": "sha512-fIAEi62slg3YGe9nbUW4crD9KLx//eNWBVRuwEvhqJeqrbLL6dTWRAmRhmYOmzzySy+4gxHP7I/D7jl3BjeXpA==", + "license": "MIT", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.8", + "@fluentui/react-shared-contexts": "^9.25.0", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "react": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.102", + "resolved": "https://registry.npmjs.org/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.102.tgz", + "integrity": "sha512-kt/kuAMTKTTY/00ToUlgUwUCty2HGj4Tnr+fxKRmr7Ziy5VWhi1YoNJ8vcgmxog5J90t4tS29LB0LP0KztQUVg==", + "license": "MIT", + "dependencies": { + "@fluentui/react-jsx-runtime": "^9.1.4", + "@fluentui/react-shared-contexts": "^9.24.1", + "@fluentui/react-utilities": "^9.23.1", + "@griffel/react": "^1.5.22", + "@swc/helpers": "^0.5.1" + }, + "peerDependencies": { + "@types/react": ">=16.14.0 <19.0.0", + "@types/react-dom": ">=16.9.0 <19.0.0", + "react": ">=16.14.0 <19.0.0", + "react-dom": ">=16.14.0 <19.0.0" + } + }, + "node_modules/@fluentui/tokens": { + "version": "1.0.0-alpha.22", + "resolved": "https://registry.npmjs.org/@fluentui/tokens/-/tokens-1.0.0-alpha.22.tgz", + "integrity": "sha512-i9fgYyyCWFRdUi+vQwnV6hp7wpLGK4p09B+O/f2u71GBXzPuniubPYvrIJYtl444DD6shLjYToJhQ1S6XTFwLg==", + "license": "MIT", + "dependencies": { + "@swc/helpers": "^0.5.1" + } }, "node_modules/@fontsource/inter": { "version": "5.0.19", @@ -2485,6 +4556,42 @@ "resolved": "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-5.0.28.tgz", "integrity": "sha512-hBvJHY76pJT/JynGUB5EXWhnzjYfLdcMn655J5p1v9lTT9HdQSy+keq2KPVXO2Htlg998BBa3p6u/jlrZ6w0kg==" }, + "node_modules/@griffel/core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@griffel/core/-/core-1.19.2.tgz", + "integrity": "sha512-WkB/QQkjy9dE4vrNYGhQvRRUHFkYVOuaznVOMNTDT4pS9aTJ9XPrMTXXlkpcwaf0D3vNKoerj4zAwnU2lBzbOg==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@griffel/style-types": "^1.3.0", + "csstype": "^3.1.3", + "rtl-css-js": "^1.16.1", + "stylis": "^4.2.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@griffel/react": { + "version": "1.5.30", + "resolved": "https://registry.npmjs.org/@griffel/react/-/react-1.5.30.tgz", + "integrity": "sha512-1q4ojbEVFY5YA0j1NamP0WWF4BKh+GHsVugltDYeEgEaVbH3odJ7tJabuhQgY+7Nhka0pyEFWSiHJev0K3FSew==", + "license": "MIT", + "dependencies": { + "@griffel/core": "^1.19.2", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <20.0.0" + } + }, + "node_modules/@griffel/style-types": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@griffel/style-types/-/style-types-1.3.0.tgz", + "integrity": "sha512-bHwD3sUE84Xwv4dH011gOKe1jul77M1S6ZFN9Tnq8pvZ48UMdY//vtES6fv7GRS5wXYT4iqxQPBluAiYAfkpmw==", + "license": "MIT", + "dependencies": { + "csstype": "^3.1.3" + } + }, "node_modules/@hello-pangea/dnd": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@hello-pangea/dnd/-/dnd-17.0.0.tgz", @@ -2677,45 +4784,6 @@ "resolved": "https://registry.npmjs.org/@js-preview/pdf/-/pdf-2.0.2.tgz", "integrity": "sha512-g7RsK4k97y+/XvsjZfltEotty+QpfeQGDBAbr9UB0npjVP+2gxRnIhNEPpYFr44XQ6ZNjAIs5nKFppGjJVFJMQ==" }, - "node_modules/@mantine/carousel": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-7.13.0.tgz", - "integrity": "sha512-SmBsBwi8WRzAnnGPorhmfJ8enxTn8VQ74dAjO3XG9Z85VFho2uBeDCqmFv1AQDiYKAsCDO46EykPkBcgZJ1nfg==", - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "embla-carousel-react": ">=7.0.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "node_modules/@mantine/charts": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/charts/-/charts-7.13.0.tgz", - "integrity": "sha512-x5aH3EI6Vbum8yOIC0IADrPXxFCWCoBSeIQr/oEWDnnRkARZL6P3Q3ltFp7oQS3nrK176ztUDks79Kxxo5FkLg==", - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "recharts": "^2.10.3" - } - }, - "node_modules/@mantine/code-highlight": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/code-highlight/-/code-highlight-7.13.0.tgz", - "integrity": "sha512-0EVIX2/L2STdzlKNdHc4aslFObWOP+GQt3/cr8lxwNvwquUFCPG3WxZixa8HfllKSgD5MlXVuCagyvZ35e94jg==", - "dependencies": { - "clsx": "^2.1.1", - "highlight.js": "^11.9.0" - }, - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, "node_modules/@mantine/core": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.13.0.tgz", @@ -2774,52 +4842,15 @@ "react-dom": "^18.2.0" } }, - "node_modules/@mantine/form": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/form/-/form-7.13.0.tgz", - "integrity": "sha512-CeQbE08D7JNA+YyaGKAdFj40rp0JDFobcobIgNZzIyzXX8QNxIrtGhX3QqKIiwiFcjJi4WCxUSzDrd6vOKaEmA==", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "klona": "^2.0.6" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, "node_modules/@mantine/hooks": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.13.0.tgz", "integrity": "sha512-oQpwSi0gajH3UR1DFa9MQ+zeYy75xbc8Im9jIIepLbiJXtIcPK+yll1BMxNwPQLYU1pYI6ZgUazI2PoykVNmsg==", + "peer": true, "peerDependencies": { "react": "^18.2.0" } }, - "node_modules/@mantine/modals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/modals/-/modals-7.13.0.tgz", - "integrity": "sha512-0Yl8zhbeS4ExpqbPmH6qarS3XpmrkRzB2EATC0p509bviHlNa0MTGhR+lbW9zAdw7UXjqZmKUe3yXO23ONVgpw==", - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "node_modules/@mantine/notifications": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.13.0.tgz", - "integrity": "sha512-EEgKFxUK/4s2FKTYb6hKFbcsLwnccSe/8GsJ18DWGiLRxFq9DsgWCzfPAe+PVcGTITYfK7nbKxEF5l+KLdPOtQ==", - "dependencies": { - "@mantine/store": "7.13.0", - "react-transition-group": "4.4.5" - }, - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, "node_modules/@mantine/nprogress": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@mantine/nprogress/-/nprogress-7.13.0.tgz", @@ -2834,20 +4865,6 @@ "react-dom": "^18.2.0" } }, - "node_modules/@mantine/spotlight": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/spotlight/-/spotlight-7.13.0.tgz", - "integrity": "sha512-zQ99lm0eOllXhT2bAr9YVaO3DFYlJVFxEMbXxLO5bG0AtAb7DLrhINXbNyH96OiUt+VkahSVHxbqLv5J8z2WvQ==", - "dependencies": { - "@mantine/store": "7.13.0" - }, - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, "node_modules/@mantine/store": { "version": "7.13.0", "resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.13.0.tgz", @@ -2856,19 +4873,6 @@ "react": "^18.2.0" } }, - "node_modules/@mantine/tiptap": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mantine/tiptap/-/tiptap-7.13.0.tgz", - "integrity": "sha512-WoquUeyX6s6CVFkm4qwJWSt9e10JjX9p/LdGPpdKLn0lrJ4vGJy+L2zFDcoDxwXwgUKIw32rTmIoSsxUBziVIQ==", - "peerDependencies": { - "@mantine/core": "7.13.0", - "@mantine/hooks": "7.13.0", - "@tiptap/extension-link": ">=2.1.12", - "@tiptap/react": ">=2.1.12", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2919,20 +4923,6 @@ "node": ">=14" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@remirror/core-constants": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", - "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==" - }, "node_modules/@remix-run/router": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", @@ -3465,6 +5455,15 @@ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", "dev": true }, + "node_modules/@swc/helpers": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz", + "integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, "node_modules/@swc/types": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.8.tgz", @@ -3529,441 +5528,11 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@techstark/opencv-js": { - "version": "4.10.0-release.1", - "resolved": "https://registry.npmjs.org/@techstark/opencv-js/-/opencv-js-4.10.0-release.1.tgz", - "integrity": "sha512-S4XELidRiQeA0q1s9VQLo540wCxUo24r1O4C+LqZ6llX+sPCXvZCPv3Ice8dEIr0uavyZ8YZeKXSBdDgMXSXjw==" - }, - "node_modules/@tiptap/core": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.7.3.tgz", - "integrity": "sha512-6b62isitaWRX6cR6V5x4O9+1lgCpoTNRrSegWwBrE1OGDHcGwdTZuzdNIbjLZ9k3qs4tXl49WKXHIXK44RDOIw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-blockquote": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.7.3.tgz", - "integrity": "sha512-onUThBo5XoNB7bFPI41WYNVbhX51TQDdymqEEJ0yS+0kqYMLOGxK5rylj1p+8SfpV+AIsrl5BSccijy1N7afKA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-bold": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.7.3.tgz", - "integrity": "sha512-jc38r/1YSix20s47qXwOAzVYmxVwySS5oTsNr9T5pFp0NWSFSwYsAn2L1Ko4BcI9nJ8VDgnGGg/JjkurGM3SCw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.7.3.tgz", - "integrity": "sha512-gzhiNFwbR7oWxw1DTF6MTa6bd6toLY5mFSFLn4IdrqkkY5enxJXEak/uYvJ/q2gNvtZbrgBZVZn2UABPl2e9dg==", - "dependencies": { - "tippy.js": "^6.3.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-bullet-list": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.7.3.tgz", - "integrity": "sha512-ctcuqyWavLSgzQzRFAzubCdTbmE8p2jZWAe2nDNCfSsNDGKlqMnQVswj+qTQhlFEvJZh0AXs1N3eKA2ezNI+Yw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-code": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.7.3.tgz", - "integrity": "sha512-3QsUk7ke1GDntVKRu3BJeZhdjg1bONuJlfcsNLqjK+Y8LYjn8Y7MPCX4X3+DB5HuMUPT6Mu1xUNp1LMZq86LZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-code-block": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.7.3.tgz", - "integrity": "sha512-WrF3X6lD8IXIWC7E5tMWL+hCMzVop3PQxFFaYi8Ovk6q3Jd8pnOtKugQp1lWcW72rek8v20LEnl1u7BkWal2TQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-document": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.7.3.tgz", - "integrity": "sha512-gL+NhS3r5T5B3DAnENis8VliFooOcpnp5diqmpiNPeQaO04GRQZCsFGmk/b/xRyEI8j80m+YtGYbpJodlvsTPw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-dropcursor": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.7.3.tgz", - "integrity": "sha512-LmS31dwrdjg30g61aU6735bfWZyfdwOO+GTdXPkoDeL3b3SNAMg39Gdb0UyI7CpmJhTWgZvst7AOQXht0DQcfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-floating-menu": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.7.3.tgz", - "integrity": "sha512-ch8kiFJJAuF5gTddM5VNLvOzvuquYELeM4SmUQcQ5O9X7dn1L1sTwrJgpj+oLOp5K+MF2YLCYC8dAEIWIj2rlg==", - "dependencies": { - "tippy.js": "^6.3.7" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-gapcursor": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.7.3.tgz", - "integrity": "sha512-dtrh2ulAu9F9CsytNwhaovx79XUZzhJxgweSWlZapzR77tridSMAq7OgRL+bMVBy2JDvjyUNPdm2DkNELBofcQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-hard-break": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.7.3.tgz", - "integrity": "sha512-HtnjmQfbjTDsrPzfRDmzH4fZvm5xZ0qmYQyRkfV4tFrD1vx6Wb2hmpfcuiBYuNVEP6OmOzG9pQV98zhfSHEcjg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-heading": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.7.3.tgz", - "integrity": "sha512-Wq1pqUCTgFk3MddlsCZuNq9ROMctGlXGagyRcGpPtb5BJ3Ane5Njyg0lZjgGbr6CW1F3W4gy1xRKNVHXFjZ51w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-history": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.7.3.tgz", - "integrity": "sha512-sXU1R6jvd16h0IPRroBhAzeXAMFNSldJ4vhX7dxlhWTKQHeAh1Mvuye+o9oX3oNnCm6bN++j2n/CxuZoJWOSbQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.7.3.tgz", - "integrity": "sha512-0nXP1mrZ9VQLwtzHVbyzNz2ICnwEdM6l7oDbPlP8atH/kIRpINq/SiBr2wiMnU4nHnT2SacOfuk8MUEU1DBikA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-italic": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.7.3.tgz", - "integrity": "sha512-qMX5LjMTdPpSDp4VIpSOY0d6bB6m4CJepGlMVrQEfUEj9uMPZZxD0cME+63r/J4yIrmMCR+GJyjOu5erdYp3JA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-link": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-2.7.3.tgz", - "integrity": "sha512-fAAt/50Adh4VlFk4yLc75p3kAYP0qCcYx1vrUd7MNZXJGvBixddsFfNNBB9GNy+SyE7TZRhX4Eg4n8pApoiPQA==", - "dependencies": { - "linkifyjs": "^4.1.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-list-item": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.7.3.tgz", - "integrity": "sha512-xCb4WjeBn3IekWyofhc9WnxYROv9oq7KM8tMqVaMNfSfSzd6wfoijzFBeL2da1B5Pwl1tJM6MqcH70zmytMJZw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-ordered-list": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.7.3.tgz", - "integrity": "sha512-J7PbM1tQSNpAGQ9Ft9Qm2oKQDE4J6uZv711ZwQgWBVne7CEu1zfD/ezlRe4yiw5XjeD0B91CP4KNRRKefePAjA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-paragraph": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.7.3.tgz", - "integrity": "sha512-jcvcsN1JEYxPYQ3IgeJ7sUr3gDlIoVm9GXIV83fiF8KWw30M1jWfYJ6zgef8e5wB7d/NLhc3yhVrRk4R6P4ApQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-strike": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.7.3.tgz", - "integrity": "sha512-X6ybvtt/F8usRoq9MjJcTAnr0pboi3FjqZtMZOKrX1oS0bt89FcxmbymP/5VMGDLxxxzEfrRqttvZ4s/z+HOow==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/extension-text": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.7.3.tgz", - "integrity": "sha512-p1ic3rxbY8Z+1W2e/W4qXxT9zh0x2DjY2bUq+bNTvAbjOw2D9XhE4B03vhRVvNOgQdVXqJX638fK8P34ndrV1A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0" - } - }, - "node_modules/@tiptap/pm": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.7.3.tgz", - "integrity": "sha512-qMUMypHjxq7n37u4iBTbAfoWf38eDi5I13l2U3a3UKt/mJBABusf2aYq4NfkY5vQQn48HbZ3Hj+TygrdPklQwQ==", - "dependencies": { - "prosemirror-changeset": "^2.2.1", - "prosemirror-collab": "^1.3.1", - "prosemirror-commands": "^1.6.0", - "prosemirror-dropcursor": "^1.8.1", - "prosemirror-gapcursor": "^1.3.2", - "prosemirror-history": "^1.4.1", - "prosemirror-inputrules": "^1.4.0", - "prosemirror-keymap": "^1.2.2", - "prosemirror-markdown": "^1.13.0", - "prosemirror-menu": "^1.2.4", - "prosemirror-model": "^1.22.3", - "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.4.1", - "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.4.0", - "prosemirror-trailing-node": "^3.0.0", - "prosemirror-transform": "^1.10.0", - "prosemirror-view": "^1.33.10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "node_modules/@tiptap/react": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.7.3.tgz", - "integrity": "sha512-zPOWRG+4ApEXhUWE6h61ykqHjw7xcOKUjQGrXnD+Bji/sdr1ezgMnsewsRY8eHzxgXnCZoCydSsVwNqjZw+KZw==", - "dependencies": { - "@tiptap/extension-bubble-menu": "^2.7.3", - "@tiptap/extension-floating-menu": "^2.7.3", - "@types/use-sync-external-store": "^0.0.6", - "fast-deep-equal": "^3", - "use-sync-external-store": "^1.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^2.7.0", - "@tiptap/pm": "^2.7.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - } - }, - "node_modules/@tiptap/react/node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@tiptap/starter-kit": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.7.3.tgz", - "integrity": "sha512-GZd/zzdGZV8QtbIGurnS8K9WVxsOH9sdioMVQOOt8jMuETYqrEVoranN13WStbD/XsgokDE2KkvCtztqM+IKDA==", - "dependencies": { - "@tiptap/core": "^2.7.3", - "@tiptap/extension-blockquote": "^2.7.3", - "@tiptap/extension-bold": "^2.7.3", - "@tiptap/extension-bullet-list": "^2.7.3", - "@tiptap/extension-code": "^2.7.3", - "@tiptap/extension-code-block": "^2.7.3", - "@tiptap/extension-document": "^2.7.3", - "@tiptap/extension-dropcursor": "^2.7.3", - "@tiptap/extension-gapcursor": "^2.7.3", - "@tiptap/extension-hard-break": "^2.7.3", - "@tiptap/extension-heading": "^2.7.3", - "@tiptap/extension-history": "^2.7.3", - "@tiptap/extension-horizontal-rule": "^2.7.3", - "@tiptap/extension-italic": "^2.7.3", - "@tiptap/extension-list-item": "^2.7.3", - "@tiptap/extension-ordered-list": "^2.7.3", - "@tiptap/extension-paragraph": "^2.7.3", - "@tiptap/extension-strike": "^2.7.3", - "@tiptap/extension-text": "^2.7.3", - "@tiptap/pm": "^2.7.3" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", - "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -3999,8 +5568,7 @@ "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "devOptional": true + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/raf": { "version": "3.4.3", @@ -4012,7 +5580,6 @@ "version": "18.3.3", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "devOptional": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4022,7 +5589,6 @@ "version": "18.3.0", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, "dependencies": { "@types/react": "*" } @@ -4445,7 +6011,8 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", @@ -4674,6 +6241,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "optional": true, "engines": { "node": ">= 0.6.0" } @@ -5528,11 +7096,6 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5590,6 +7153,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "optional": true, "dependencies": { "utrie": "^1.0.2" } @@ -5611,116 +7175,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -5794,11 +7248,6 @@ } } }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -6033,48 +7482,12 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/embla-carousel": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.3.0.tgz", - "integrity": "sha512-Ve8dhI4w28qBqR8J+aMtv7rLK89r1ZA5HocwFz6uMB/i5EiC7bGI7y+AM80yAVUJw3qqaZYK7clmZMUR8kM3UA==" - }, - "node_modules/embla-carousel-react": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.3.0.tgz", - "integrity": "sha512-P1FlinFDcIvggcErRjNuVqnUR8anyo8vLMIH8Rthgofw7Nj8qTguCa2QjFAbzxAUTQTPNNjNL7yt0BGGinVdFw==", - "dependencies": { - "embla-carousel": "8.3.0", - "embla-carousel-reactive-utils": "8.3.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.1 || ^18.0.0" - } - }, - "node_modules/embla-carousel-reactive-utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.3.0.tgz", - "integrity": "sha512-EYdhhJ302SC4Lmkx8GRsp0sjUhEN4WyFXPOk0kGu9OXZSRMmcBlRgTvHcq8eKJE1bXWBsOi1T83B+BSSVZSmwQ==", - "peerDependencies": { - "embla-carousel": "8.3.0" - } - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/es-abstract": { "version": "1.23.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", @@ -6249,6 +7662,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { "node": ">=10" }, @@ -6447,11 +7861,6 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -6503,15 +7912,8 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-equals": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", - "engines": { - "node": ">=6.0.0" - } + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -7156,14 +8558,6 @@ "node": ">= 0.4" } }, - "node_modules/highlight.js": { - "version": "11.10.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.10.0.tgz", - "integrity": "sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==", - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -7180,6 +8574,7 @@ "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "license": "MIT", + "optional": true, "dependencies": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" @@ -7309,14 +8704,6 @@ "node": ">= 0.4" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -7970,6 +9357,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/keyborg": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/keyborg/-/keyborg-2.6.0.tgz", + "integrity": "sha512-o5kvLbuTF+o326CMVYpjlaykxqYP9DphFQZ2ZpgrvBouyvOxyEB7oqe8nOLFpiV5VCtz0D3pt8gXQYWpLpBnmA==", + "license": "MIT" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -7979,14 +9372,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/klona": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", - "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "engines": { - "node": ">= 8" - } - }, "node_modules/lerc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lerc/-/lerc-3.0.0.tgz", @@ -8037,19 +9422,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dependencies": { - "uc.micro": "^2.0.0" - } - }, - "node_modules/linkifyjs": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.1.3.tgz", - "integrity": "sha512-auMesunaJ8yfkHvK4gfg1K0SaKX/6Wn9g2Aac/NwX+l5VdmFZzo/hdPGxEOETj+ryRa4/fiOPjeeKURSAJx1sg==" - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -8068,7 +9440,8 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", @@ -8117,22 +9490,6 @@ "sourcemap-codec": "^1.4.8" } }, - "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" - } - }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -8144,11 +9501,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" - }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", @@ -8591,11 +9943,6 @@ "node": ">= 0.8.0" } }, - "node_modules/orderedmap": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", - "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" - }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", @@ -9105,182 +10452,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, - "node_modules/prosemirror-changeset": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", - "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", - "dependencies": { - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-collab": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", - "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", - "dependencies": { - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-commands": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.6.0.tgz", - "integrity": "sha512-xn1U/g36OqXn2tn5nGmvnnimAj/g1pUx2ypJJIe8WkVX83WyJVC5LTARaxZa2AtQRwntu9Jc5zXs9gL9svp/mg==", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-dropcursor": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", - "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0", - "prosemirror-view": "^1.1.0" - } - }, - "node_modules/prosemirror-gapcursor": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", - "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", - "dependencies": { - "prosemirror-keymap": "^1.0.0", - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-view": "^1.0.0" - } - }, - "node_modules/prosemirror-history": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", - "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", - "dependencies": { - "prosemirror-state": "^1.2.2", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.31.0", - "rope-sequence": "^1.3.0" - } - }, - "node_modules/prosemirror-inputrules": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", - "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", - "dependencies": { - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.0.0" - } - }, - "node_modules/prosemirror-keymap": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", - "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", - "dependencies": { - "prosemirror-state": "^1.0.0", - "w3c-keyname": "^2.2.0" - } - }, - "node_modules/prosemirror-markdown": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", - "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", - "dependencies": { - "markdown-it": "^14.0.0", - "prosemirror-model": "^1.20.0" - } - }, - "node_modules/prosemirror-menu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", - "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", - "dependencies": { - "crelt": "^1.0.0", - "prosemirror-commands": "^1.0.0", - "prosemirror-history": "^1.0.0", - "prosemirror-state": "^1.0.0" - } - }, - "node_modules/prosemirror-model": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.3.tgz", - "integrity": "sha512-V4XCysitErI+i0rKFILGt/xClnFJaohe/wrrlT2NSZ+zk8ggQfDH4x2wNK7Gm0Hp4CIoWizvXFP7L9KMaCuI0Q==", - "dependencies": { - "orderedmap": "^2.0.0" - } - }, - "node_modules/prosemirror-schema-basic": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.3.tgz", - "integrity": "sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==", - "dependencies": { - "prosemirror-model": "^1.19.0" - } - }, - "node_modules/prosemirror-schema-list": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.4.1.tgz", - "integrity": "sha512-jbDyaP/6AFfDfu70VzySsD75Om2t3sXTOdl5+31Wlxlg62td1haUpty/ybajSfJ1pkGadlOfwQq9kgW5IMo1Rg==", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.7.3" - } - }, - "node_modules/prosemirror-state": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", - "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", - "dependencies": { - "prosemirror-model": "^1.0.0", - "prosemirror-transform": "^1.0.0", - "prosemirror-view": "^1.27.0" - } - }, - "node_modules/prosemirror-tables": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.5.0.tgz", - "integrity": "sha512-VMx4zlYWm7aBlZ5xtfJHpqa3Xgu3b7srV54fXYnXgsAcIGRqKSrhiK3f89omzzgaAgAtDOV4ImXnLKhVfheVNQ==", - "dependencies": { - "prosemirror-keymap": "^1.1.2", - "prosemirror-model": "^1.8.1", - "prosemirror-state": "^1.3.1", - "prosemirror-transform": "^1.2.1", - "prosemirror-view": "^1.13.3" - } - }, - "node_modules/prosemirror-trailing-node": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", - "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", - "dependencies": { - "@remirror/core-constants": "3.0.0", - "escape-string-regexp": "^4.0.0" - }, - "peerDependencies": { - "prosemirror-model": "^1.22.1", - "prosemirror-state": "^1.4.2", - "prosemirror-view": "^1.33.8" - } - }, - "node_modules/prosemirror-transform": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.0.tgz", - "integrity": "sha512-9UOgFSgN6Gj2ekQH5CTDJ8Rp/fnKR2IkYfGdzzp5zQMFsS4zDllLVx/+jGcX86YlACpG7UR5fwAXiWzxqWtBTg==", - "dependencies": { - "prosemirror-model": "^1.21.0" - } - }, - "node_modules/prosemirror-view": { - "version": "1.34.3", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.34.3.tgz", - "integrity": "sha512-mKZ54PrX19sSaQye+sef+YjBbNu2voNwLS1ivb6aD2IRmxRGW64HU9B644+7OfJStGLyxvOreKqEgfvXa91WIA==", - "dependencies": { - "prosemirror-model": "^1.20.0", - "prosemirror-state": "^1.0.0", - "prosemirror-transform": "^1.1.0" - } - }, "node_modules/protocol-buffers-schema": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", @@ -9320,14 +10491,6 @@ "node": ">=6" } }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "engines": { - "node": ">=6" - } - }, "node_modules/qs": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.2.tgz", @@ -9514,6 +10677,12 @@ "react": "^16.8.0 || ^17 || ^18 || ^19" } }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT" + }, "node_modules/react-number-format": { "version": "5.4.2", "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.2.tgz", @@ -9628,20 +10797,6 @@ "react-dom": ">=16.8" } }, - "node_modules/react-smooth": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz", - "integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", @@ -9744,41 +10899,6 @@ "node": ">=8.10.0" } }, - "node_modules/recharts": { - "version": "2.12.7", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.12.7.tgz", - "integrity": "sha512-hlLJMhPQfv4/3NBSAyq3gzGg4h2v69RJh6KU7b3pXYNNAELs9kEoXOjbkxdXpALqKBoVmVptGfLpxdaVYqjmXQ==", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^16.10.2", - "react-smooth": "^4.0.0", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "dependencies": { - "decimal.js-light": "^2.4.1" - } - }, - "node_modules/recharts/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/redux": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", @@ -10052,10 +11172,14 @@ } } }, - "node_modules/rope-sequence": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", - "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==" + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.1.2" + } }, "node_modules/run-parallel": { "version": "1.2.0", @@ -11096,6 +12220,12 @@ "url": "https://github.com/sponsors/Borewit" } }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", @@ -11206,6 +12336,32 @@ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==" }, + "node_modules/tabster": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/tabster/-/tabster-8.5.6.tgz", + "integrity": "sha512-2vfrRGrx8O9BjdrtSlVA5fvpmbq5HQBRN13XFRg6LAvZ1Fr3QdBnswgT4YgFS5Bhoo5nxwgjRaRueI2Us/dv7g==", + "license": "MIT", + "dependencies": { + "keyborg": "2.6.0", + "tslib": "^2.8.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.40.0" + } + }, + "node_modules/tabster/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", + "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/tailwindcss": { "version": "3.4.4", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", @@ -11310,6 +12466,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "optional": true, "dependencies": { "utrie": "^1.0.2" } @@ -11358,14 +12515,6 @@ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" }, - "node_modules/tippy.js": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", - "dependencies": { - "@popperjs/core": "^2.9.0" - } - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -11431,9 +12580,10 @@ "dev": true }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, "node_modules/tty-browserify": { "version": "0.0.1", @@ -11551,11 +12701,6 @@ "node": ">=14.17" } }, - "node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" - }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -11830,6 +12975,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "optional": true, "dependencies": { "base64-arraybuffer": "^1.0.2" } @@ -11861,27 +13007,6 @@ "node": ">= 0.8" } }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, "node_modules/vite": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", @@ -11993,11 +13118,6 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, "node_modules/web-worker": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.3.0.tgz", diff --git a/client/package.json b/client/package.json index cdedae8..59a93e1 100644 --- a/client/package.json +++ b/client/package.json @@ -13,31 +13,20 @@ "dependencies": { "-": "^0.0.1", "@dnd-kit/core": "^6.3.1", + "@fluentui/react-components": "^9.69.0", + "@fluentui/react-icons": "^2.0.309", "@fontsource/inter": "^5.0.19", "@fontsource/open-sans": "^5.0.28", "@hello-pangea/dnd": "^17.0.0", "@js-preview/docx": "^1.6.2", "@js-preview/excel": "^1.7.8", "@js-preview/pdf": "^2.0.2", - "@mantine/carousel": "^7.13.0", - "@mantine/charts": "^7.13.0", - "@mantine/code-highlight": "^7.13.0", "@mantine/core": "^7.13.0", "@mantine/dates": "^7.13.0", "@mantine/dropzone": "^7.13.0", - "@mantine/form": "^7.13.0", - "@mantine/hooks": "^7.13.0", - "@mantine/modals": "^7.13.0", - "@mantine/notifications": "^7.13.0", "@mantine/nprogress": "^7.13.0", - "@mantine/spotlight": "^7.13.0", - "@mantine/tiptap": "^7.13.0", "@tabler/icons-react": "^3.17.0", "@tanstack/react-table": "^8.20.5", - "@techstark/opencv-js": "^4.10.0-release.1", - "@tiptap/extension-link": "^2.7.3", - "@tiptap/react": "^2.7.3", - "@tiptap/starter-kit": "^2.7.3", "@types/ol-ext": "npm:@siedlerchr/types-ol-ext@^3.5.0", "@uidotdev/usehooks": "^2.4.1", "ag-grid-react": "^33.3.2", @@ -46,9 +35,7 @@ "buffer": "^6.0.3", "dayjs": "^1.11.13", "docx-templates": "^4.13.0", - "embla-carousel-react": "^8.3.0", "file-type": "^19.0.0", - "html2canvas": "^1.4.1", "jspdf": "^2.5.2", "ol": "^10.0.0", "ol-ext": "^4.0.23", @@ -57,7 +44,6 @@ "react-dom": "^18.2.0", "react-hook-form": "^7.52.0", "react-router-dom": "^6.23.1", - "recharts": "^2.12.7", "swr": "^2.2.5", "uuid": "^11.0.3", "zustand": "^4.5.2" diff --git a/client/src/App.tsx b/client/src/App.tsx index ae1d388..5f31096 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -4,8 +4,8 @@ import MainLayout from "./layouts/MainLayout" import { initAuth, useAuthStore } from "./store/auth" import { useEffect, useState } from "react" import DashboardLayout from "./layouts/DashboardLayout" -import { Box, Loader } from "@mantine/core" import { pages } from "./constants/app" +import { Spinner } from "@fluentui/react-components" function App() { const auth = useAuthStore() @@ -24,11 +24,14 @@ function App() { if (isLoading) { return ( - + ) } else { return ( - +
}> @@ -45,7 +48,7 @@ function App() { - +
) } } diff --git a/client/src/components/CardInfo/CardInfo.tsx b/client/src/components/CardInfo/CardInfo.tsx index dc8c579..a81b3b6 100644 --- a/client/src/components/CardInfo/CardInfo.tsx +++ b/client/src/components/CardInfo/CardInfo.tsx @@ -1,4 +1,4 @@ -import { Divider, Flex, Text } from '@mantine/core'; +import { Divider, Text } from '@fluentui/react-components'; import { PropsWithChildren } from 'react' interface CardInfoProps extends PropsWithChildren { @@ -10,14 +10,14 @@ export default function CardInfo({ label }: CardInfoProps) { return ( - - +
+ {label} {children} - +
) } \ No newline at end of file diff --git a/client/src/components/CardInfo/CardInfoChip.tsx b/client/src/components/CardInfo/CardInfoChip.tsx deleted file mode 100644 index de1b7b0..0000000 --- a/client/src/components/CardInfo/CardInfoChip.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { Chip } from '@mantine/core'; -import { ReactElement } from 'react' - -interface CardInfoChipProps { - status: boolean; - label: string; - iconOn: ReactElement - iconOff: ReactElement -} - -export default function CardInfoChip({ - status, - label, - iconOn, - iconOff -}: CardInfoChipProps) { - return ( - - {label} - - ) -} \ No newline at end of file diff --git a/client/src/components/CardInfo/CardInfoLabel.tsx b/client/src/components/CardInfo/CardInfoLabel.tsx index fe3ea03..ea38d51 100644 --- a/client/src/components/CardInfo/CardInfoLabel.tsx +++ b/client/src/components/CardInfo/CardInfoLabel.tsx @@ -1,4 +1,5 @@ -import { Flex, Text } from '@mantine/core'; +import { Text } from "@fluentui/react-components"; + interface CardInfoLabelProps { label: string; value: string | number; @@ -9,14 +10,14 @@ export default function CardInfoLabel({ value }: CardInfoLabelProps) { return ( - +
{label} - + {value} - +
) } \ No newline at end of file diff --git a/client/src/components/CustomTable.tsx b/client/src/components/CustomTable.tsx index 2c72172..bd33b00 100644 --- a/client/src/components/CustomTable.tsx +++ b/client/src/components/CustomTable.tsx @@ -1,205 +1,195 @@ -import { Badge, Button, Flex, Input, Modal, ScrollAreaAutosize, Select, Stack, Table, TextInput } from '@mantine/core'; -import { Cell, ColumnDef, flexRender, getCoreRowModel, useReactTable } from '@tanstack/react-table'; -import { useEffect, useMemo, useState } from 'react'; -import styles from './CustomTable.module.scss' -import { useRoles } from '../hooks/swrHooks'; -import { IRole } from '../interfaces/role'; +import { useState } from 'react'; import { IconPlus } from '@tabler/icons-react'; import { CreateField } from '../interfaces/create'; import { AxiosResponse } from 'axios'; import FormFields from './FormFields'; -import { useDisclosure } from '@mantine/hooks'; +import { Badge, Button, createTableColumn, DataGrid, DataGridBody, DataGridCell, DataGridHeader, DataGridHeaderCell, DataGridRow, Dialog, DialogSurface, DialogTitle, DialogTrigger, Input, Select, TableCellLayout, TableColumnDefinition } from '@fluentui/react-components'; +import { IColumn } from '../interfaces/DataGrid/columns'; type CustomTableProps = { - data: T[]; - columns: ColumnDef[]; + data: (T & { id: number })[]; + columns: IColumn[]; createFields?: CreateField[]; submitHandler?: (data: T) => Promise + onEditCell?: (rowId: number, columnId: string, value: any) => any } const CustomTable = ({ data: initialData, columns, createFields, - submitHandler + submitHandler, }: CustomTableProps) => { - const [data, setData] = useState(initialData); + const [data, setData] = useState<(T & { id: number })[]>(initialData); const [searchText, setSearchText] = useState(''); - const [editingCell, setEditingCell] = useState<{ rowIndex: string | number | null, columnId: string | number | null }>({ rowIndex: null, columnId: null }); - const tableColumns = useMemo(() => columns, [columns]); + const [editingCell, setEditingCell] = useState<{ + rowId: number | null + columnId: string | null + }>({ rowId: null, columnId: null }) - // Function to handle cell edit - const handleEditCell = ( - rowIndex: number, - columnId: keyof T, - value: T[keyof T] - ) => { - const updatedData = [...data]; - updatedData[rowIndex][columnId] = value; - setData(updatedData); - //setEditingCell({ rowIndex: null, columnId: null }); - }; - - const filteredData = useMemo(() => { - if (!searchText) return data; - - return data.filter((row) => - Object.values(row).some((value) => - value?.toString().toLowerCase().includes(searchText.toLowerCase()) + const handleEditCell = (rowId: number, columnId: string, value: any) => { + setData((prev) => + prev.map((row) => + row.id === rowId ? { ...row, [columnId]: value } : row ) - ); - }, [data, searchText]) + ) + } - const table = useReactTable({ - data: filteredData, - columns: tableColumns, - getCoreRowModel: getCoreRowModel(), - columnResizeMode: "onChange", - }); + const columnDefinitions: TableColumnDefinition[] = columns.map(column => ( + createTableColumn({ + columnId: column.name, + renderHeaderCell: () => column.header, + renderCell: (item) => { + const isEditing = editingCell.rowId === item.id && editingCell.columnId === column.name; - const [opened, { open, close }] = useDisclosure(false); + switch (column.type) { + case 'number': + return ( + + setEditingCell({ rowId: item.id, columnId: column.name }) + } + > + {isEditing ? ( + handleEditCell?.(item.id, column.name, d.value)} + onBlur={() => setEditingCell({ rowId: null, columnId: null })} + autoFocus + /> + ) : ( + item[column.name] + )} + + ) + case 'string': + return ( + + setEditingCell({ rowId: item.id, columnId: column.name }) + } + > + {isEditing ? ( + handleEditCell?.(item.id, column.name, d.value)} + onBlur={() => setEditingCell({ rowId: null, columnId: null })} + autoFocus + /> + ) : ( + item[column.name] + )} + + ) + case 'boolean': + return ( + + setEditingCell({ rowId: item.id, columnId: column.name }) + }> + {isEditing ? ( + + ) : ( + + {JSON.parse(item[column.name]) === true ? 'Активен' : 'Неактивен'} + + )} + + ) + case 'dictionary': + return ( + + setEditingCell({ rowId: item.id, columnId: column.name }) + } + > + {isEditing ? ( + handleEditCell?.(item.id, column.name, d.value)} + onBlur={() => setEditingCell({ rowId: null, columnId: null })} + autoFocus + /> + ) : ( + item[column.name] + )} + + ) + } + }, + }) + )) return ( - - {createFields && submitHandler && - - - - } - - - +
+ setSearchText(e.target.value)} - w='100%' /> + {createFields && submitHandler && - + + + + + + + Добавление объекта + + + } - +
- - - - {table.getHeaderGroups().map(headerGroup => ( - - {headerGroup.headers.map((header) => ( - - {flexRender(header.column.columnDef.header, header.getContext())} -
-
-
- ))} -
- ))} -
- - {table.getRowModel().rows.map((row, rowIndex) => ( - - {row.getVisibleCells().map(cell => { - const isEditing = editingCell.rowIndex === rowIndex && editingCell.columnId === cell.column.id; - - return ( - setEditingCell({ rowIndex, columnId: cell.column.id })} - style={{ width: cell.column.getSize() }} - className={styles.td} - > - {isEditing ? ( - handleEditCell(rowIndex, (cell.column.id as keyof T), e.target.value as T[keyof T])} - onBlur={() => setEditingCell({ rowIndex: null, columnId: null })} - autoFocus - /> - ) : ( - - )} - - ); - })} - - ))} - -
-
-
+ + + + {({ renderHeaderCell }) => ( + {renderHeaderCell()} + )} + + + + {({ item, rowId }) => ( + + {({ renderCell }) => {renderCell(item)}} + + )} + + + ); }; -type CellDisplayProps = { - cell: Cell; -} - -const CellDisplay = ({ - cell -}: CellDisplayProps) => { - const { roles } = useRoles() - - const [roleOptions, setRoleOptions] = useState<{ label: string, value: string }[]>() - - useEffect(() => { - if (Array.isArray(roles)) { - setRoleOptions(roles.map((role: IRole) => ({ label: role.name, value: role.id.toString() }))) - } - }, [roles]) - - switch (cell.column.id) { - case 'activity': - return ( - cell.getValue() ? ( - - Активен - - ) : ( - - Отключен - - ) - ) - case 'is_active': - return ( - cell.getValue() ? ( - - Активен - - ) : ( - - Отключен - - ) - ) - case 'role_id': - return ( - + {filesToUpload.length > 0 && <> } -
+ + + {isUploading && + + + + } {filesToUpload.length > 0 && - +
{filesToUpload.map((file, index) => ( - - - - {file.name} - +
+ - { +
))} -
+
} -
-
+ + } - - - - Название - Дата создания - - - - - - {currentFolder ? ( - documents?.map((doc: IDocument, index: number) => ( - handleDocumentClick(index)} style={{ cursor: 'pointer' }}> - - - - {doc.name} - - - - {new Date(doc.create_date).toLocaleDateString()} - - - - - - )) - ) : ( - folders?.map((folder: IDocumentFolder) => ( - handleFolderClick(folder)} style={{ cursor: 'pointer' }}> - - - - {folder.name} - - - - {new Date(folder.create_date).toLocaleDateString()} - - - - - )) - )} - -
- - +
+ ({ kind: "doc", data: doc })) + : (folders ?? []).map((folder: IDocumentFolder) => ({ kind: "folder", data: folder }))} + columns={[ + createTableColumn({ + columnId: "name", + renderHeaderCell: () => "Название", + renderCell: (item) => ( + }> + {item.data.name} + + ), + }), + createTableColumn({ + columnId: "date", + renderHeaderCell: () => "Дата создания", + renderCell: (item) => + new Date(item.data.create_date).toLocaleDateString(), + }), + createTableColumn({ + columnId: "actions", + renderHeaderCell: () => "", + renderCell: (item) => { + if (item.kind === "doc") { + // replace with your + return ; + } + return null; + }, + }), + ]} + focusMode="cell" + resizableColumns + getRowId={(item) => item.data.id} + > + + + {({ renderHeaderCell }) => ( + {renderHeaderCell()} + )} + + + + {({ item, rowId }: { item: { kind: string, data: any }, rowId: any }) => ( + { + if (item.kind === "doc") { + const index = documents?.findIndex((d: any) => d.id === item.data.id) ?? -1; + handleDocumentClick(index); + } else { + handleFolderClick(item.data as IDocumentFolder); + } + }} + > + {({ renderCell }) => {renderCell(item)}} + + )} + + +
+ + ) } \ No newline at end of file diff --git a/client/src/components/FormFields.tsx b/client/src/components/FormFields.tsx index fe4388b..2433d06 100644 --- a/client/src/components/FormFields.tsx +++ b/client/src/components/FormFields.tsx @@ -1,7 +1,7 @@ import { SubmitHandler, useForm } from 'react-hook-form' import { CreateField } from '../interfaces/create' import { AxiosResponse } from 'axios'; -import { Button, Loader, Stack, Text, TextInput } from '@mantine/core'; +import { Button, Field, Input, Spinner, Text } from '@fluentui/react-components'; interface Props { title?: string; @@ -51,42 +51,37 @@ function FormFields({ return (
- +
{title.length > 0 && - + {title} } {fields.map((field: CreateField) => { return ( - { - if (field.watch) { - if (watch(field.watch) != val) { - return field.watchMessage || '' + + { + if (field.watch) { + if (watch(field.watch) != val) { + return field.watchMessage || '' + } } - } - }, - })} - radius="md" - required={field.required || false} - error={errors[field.key]?.message} - errorProps={errors[field.key]} - /> + }, + })} + required={field.required || false} + /> + ) })} - +
) } diff --git a/client/src/components/ServerData.tsx b/client/src/components/ServerData.tsx index 81e3acb..12e8e6a 100644 --- a/client/src/components/ServerData.tsx +++ b/client/src/components/ServerData.tsx @@ -1,40 +1,46 @@ import { IServer } from '../interfaces/servers' import { useServerIps } from '../hooks/swrHooks' -import { Flex, Table } from '@mantine/core' +import CustomTable from './CustomTable' function ServerData({ id }: IServer) { const { serverIps } = useServerIps(id, 0, 10) - const serverIpsColumns = [ - { field: 'id', headerName: 'ID', type: 'number' }, - { field: 'server_id', headerName: 'Server ID', type: 'number' }, - { field: 'name', headerName: 'Название', type: 'string' }, - { field: 'is_actual', headerName: 'Действителен', type: 'boolean' }, - { field: 'ip', headerName: 'IP', type: 'string' }, - { field: 'servername', headerName: 'Название сервера', type: 'string' }, - ] - return ( - +
{serverIps && - - - - {serverIpsColumns.map(column => ( - {column.headerName} - ))} - - - - - {serverIpsColumns.map(column => ( - {serverIps ? serverIps[column.field] : ''} - ))} - - -
- } - + } +
) } diff --git a/client/src/components/ServerHardware.tsx b/client/src/components/ServerHardware.tsx index 70b3582..8eb0ca4 100644 --- a/client/src/components/ServerHardware.tsx +++ b/client/src/components/ServerHardware.tsx @@ -1,7 +1,8 @@ import { useState } from 'react' import { useHardwares, useServers } from '../hooks/swrHooks' -import { Autocomplete, CloseButton, Loader, Table } from '@mantine/core' import { IServer } from '../interfaces/servers' +import { Combobox, Option, Spinner } from '@fluentui/react-components' +import CustomTable from './CustomTable' export default function ServerHardware() { const [selectedOption, setSelectedOption] = useState(undefined) @@ -9,64 +10,40 @@ export default function ServerHardware() { const { hardwares, isLoading: serversLoading } = useHardwares(selectedOption, 0, 10) - const hardwareColumns = [ - { field: 'id', headerName: 'ID', type: 'number' }, - { field: 'name', headerName: 'Название', type: 'string' }, - { field: 'server_id', headerName: 'Server ID', type: 'number' }, - { field: 'servername', headerName: 'Название сервера', type: 'string' }, - { field: 'os_info', headerName: 'ОС', type: 'string' }, - { field: 'ram', headerName: 'ОЗУ', type: 'string' }, - { field: 'processor', headerName: 'Проц.', type: 'string' }, - { field: 'storages_count', headerName: 'Кол-во хранилищ', type: 'number' }, - ] - return ( <>
- ({ label: item.name, value: item.id.toString() })) : []} - onSelect={(e) => console.log(e.currentTarget.value)} - //onChange={(value) => setSearch(value)} - onOptionSubmit={(value) => setSelectedOption(Number(value))} - rightSection={ - //search !== '' && - ( - event.preventDefault()} - onClick={() => { - //setSearch('') - setSelectedOption(undefined) - }} - aria-label="Clear value" - /> - ) - } - //value={search} - /> + style={{ flex: 1 }} + selectedOptions={selectedOption ? [selectedOption.toString()] : []} + onOptionSelect={(_, data) => { + if (data.optionValue) { + setSelectedOption(Number(data.optionValue)); + } + }} + > + {servers?.map((item: IServer) => ( + + ))} + {serversLoading ? - + : - - - - {hardwareColumns.map(column => ( - {column.headerName} - ))} - - - - - {hardwareColumns.map(column => ( - {hardwares ? hardwares[column.field] : ''} - ))} - - -
+ } ) diff --git a/client/src/components/ServerIpsView.tsx b/client/src/components/ServerIpsView.tsx index 943b071..aa22ac5 100644 --- a/client/src/components/ServerIpsView.tsx +++ b/client/src/components/ServerIpsView.tsx @@ -1,7 +1,8 @@ import { useEffect, useState } from 'react' import { useServerIps, useServers } from '../hooks/swrHooks' -import { Autocomplete, CloseButton, Loader, Table } from '@mantine/core' import { IServer } from '../interfaces/servers' +import { Combobox, Option, Spinner } from '@fluentui/react-components' +import CustomTable from './CustomTable' export default function ServerIpsView() { const [selectedOption, setSelectedOption] = useState(null) @@ -9,68 +10,44 @@ export default function ServerIpsView() { const { serverIps, isLoading: serversLoading } = useServerIps(selectedOption, 0, 10) - const serverIpsColumns = [ - { field: 'id', headerName: 'ID', type: 'number' }, - { field: 'server_id', headerName: 'Server ID', type: 'number' }, - { field: 'name', headerName: 'Название', type: 'string' }, - { field: 'is_actual', headerName: 'Действителен', type: 'boolean' }, - { field: 'ip', headerName: 'IP', type: 'string' }, - { field: 'servername', headerName: 'Название сервера', type: 'string' }, - ] - useEffect(() => { console.log(serverIps) }, [serverIps]) return ( <> -
- ({ label: item.name, value: item.id.toString() })) : []} - onSelect={(e) => console.log(e.currentTarget.value)} - //onChange={(value) => setSearch(value)} - onOptionSubmit={(value) => setSelectedOption(Number(value))} - rightSection={ - //search !== '' && - ( - event.preventDefault()} - onClick={() => { - //setSearch('') - setSelectedOption(null) - }} - aria-label="Clear value" - /> - ) + setSearch(e.currentTarget.value)} + selectedOptions={selectedOption ? [selectedOption.toString()] : []} + onOptionSelect={(_, data) => { + if (data.optionValue) { + setSelectedOption(Number(data.optionValue)); + } else { + setSelectedOption(null) } - //value={search} - /> - + }} + > + {servers?.map((item: IServer) => ( + + ))} + {serversLoading ? - + : - - - - {serverIpsColumns.map(column => ( - {column.headerName} - ))} - - - - - {serverIpsColumns.map(column => ( - {servers ? servers[column.field] : ''} - ))} - - -
+ } ) diff --git a/client/src/components/ServerStorages.tsx b/client/src/components/ServerStorages.tsx index 283e3aa..876548b 100644 --- a/client/src/components/ServerStorages.tsx +++ b/client/src/components/ServerStorages.tsx @@ -1,42 +1,26 @@ import { useState } from 'react' import { IRegion } from '../interfaces/fuel' import { useStorages } from '../hooks/swrHooks' -import { Loader, Table } from '@mantine/core' +import { Spinner } from '@fluentui/react-components' +import CustomTable from './CustomTable' export default function ServerStorage() { const [selectedOption] = useState(null) const { storages, isLoading: serversLoading } = useStorages(selectedOption?.id, 0, 10) - const storageColumns = [ - { field: 'id', headerName: 'ID', type: 'number' }, - { field: 'hardware_id', headerName: 'Hardware ID', type: 'number' }, - { field: 'name', headerName: 'Название', type: 'string' }, - { field: 'size', headerName: 'Размер', type: 'string' }, - { field: 'storage_type', headerName: 'Тип хранилища', type: 'string' }, - ] - return ( <> {serversLoading ? - + : - - - - {storageColumns.map(column => ( - {column.headerName} - ))} - - - - - {storageColumns.map(column => ( - {storages ? storages[column.field] : ''} - ))} - - -
+ } ) diff --git a/client/src/components/ServersView.tsx b/client/src/components/ServersView.tsx index 2623ca4..d3b6fdc 100644 --- a/client/src/components/ServersView.tsx +++ b/client/src/components/ServersView.tsx @@ -2,7 +2,8 @@ import { useState } from 'react' import { IRegion } from '../interfaces/fuel' import { useRegions, useServers } from '../hooks/swrHooks' import { useDebounce } from '@uidotdev/usehooks' -import { Autocomplete, CloseButton, Table } from '@mantine/core' +import CustomTable from './CustomTable' +import { Combobox, Option } from '@fluentui/react-components' export default function ServersView() { const [search, setSearch] = useState("") @@ -15,63 +16,46 @@ export default function ServersView() { const { servers } = useServers(selectedOption, 0, 10) - const serversColumns = [ - //{ field: 'id', headerName: 'ID', type: "number" }, - { - field: 'name', headerName: 'Название', type: "string", editable: true, - }, - { - field: 'region_id', - editable: true, - headerName: 'region_id', - flex: 1 - } - ] - return ( <> -
- ({ label: item.name, value: item.id.toString() })) : []} - onSelect={(e) => console.log(e.currentTarget.value)} - onChange={(value) => setSearch(value)} - onOptionSubmit={(value) => setSelectedOption(Number(value))} - rightSection={ - search !== '' && ( - event.preventDefault()} - onClick={() => { - setSearch('') - setSelectedOption(null) - }} - aria-label="Clear value" - /> - ) + setSearch(e.currentTarget.value)} + selectedOptions={selectedOption ? [selectedOption.toString()] : []} + onOptionSelect={(_, data) => { + if (data.optionValue) { + setSelectedOption(Number(data.optionValue)); + } else { + setSelectedOption(null) } - value={search} - /> - + }} + > + {regions?.map((item: IRegion) => ( + + ))} + - - - - - {serversColumns.map(column => ( - {column.headerName} - ))} - - - - - {serversColumns.map(column => ( - {servers ? servers[column.field] : ''} - ))} - - -
+ {servers && + } ) } \ No newline at end of file diff --git a/client/src/components/Tree/ObjectTree.tsx b/client/src/components/Tree/ObjectTree.tsx index 93ebf98..ef4b0d2 100644 --- a/client/src/components/Tree/ObjectTree.tsx +++ b/client/src/components/Tree/ObjectTree.tsx @@ -2,10 +2,9 @@ import { useMemo, useState } from 'react' import useSWR from 'swr' import { fetcher } from '../../http/axiosInstance' import { BASE_URL } from '../../constants' -import { NavLink, Stack, Text } from '@mantine/core'; -import { IconChevronDown } from '@tabler/icons-react'; import { setSelectedObjectType } from '../../store/map'; import { setCurrentObjectId, useObjectsStore } from '../../store/objects'; +import { Text, Tree, TreeItem, TreeItemLayout } from '@fluentui/react-components'; const ObjectTree = ({ map_id @@ -52,14 +51,14 @@ const ObjectTree = ({ if (selectedDistrict) { return ( - +
- +
) } else { return ( - Выберите регион и населённый пункт, чтобы увидеть список объектов. + Выберите регион и населённый пункт, чтобы увидеть список объектов. ) } @@ -84,11 +83,17 @@ const TypeTree = ({ }: TypeTreeProps) => { return ( - - {Array.isArray(objectList) && objectList.map(list => ( - - ))} - + + + {`${label} ${count ? `(${count})` : ''}`} + + + {Array.isArray(objectList) && objectList.map(list => ( + + ))} + + + ) } @@ -120,15 +125,21 @@ const ObjectList = ({ const navLinks = useMemo(() => ( Array.isArray(data) ? data.map((type) => ( - setCurrentObjectId(map_id, type.object_id)} /> + setCurrentObjectId(map_id, type.object_id)}> + {type.caption ? type.caption : 'Без названия'} + )) : null ), [data, map_id]); return ( - setSelectedObjectType(map_id, id)} rightSection={} px='xs' py={0} label={`${label} ${count ? `(${count})` : ''}`}> - {navLinks} - - ); + setSelectedObjectType(map_id, id)}> + {`${label} ${count ? `(${count})` : ''}`} + + + {navLinks} + + + ) // return ( // { setSelectedObjectType(map_id, id) }} rightSection={} p={0} label={`${label} ${count ? `(${count})` : ''}`}> diff --git a/client/src/components/map/MapComponent.tsx b/client/src/components/map/MapComponent.tsx index e23b726..db89572 100644 --- a/client/src/components/map/MapComponent.tsx +++ b/client/src/components/map/MapComponent.tsx @@ -1,4 +1,4 @@ -import { useEffect, useRef, useState } from 'react' +import { CSSProperties, useEffect, useRef, useState } from 'react' import 'ol/ol.css' import { Modify } from 'ol/interaction' import { ImageStatic, Vector as VectorSource } from 'ol/source' @@ -14,8 +14,8 @@ import { addInteractions, handleImageDrop, loadFeatures, processFigure, processL import useSWR, { SWRConfiguration } from 'swr' import { fetcher } from '../../http/axiosInstance' import { BASE_URL } from '../../constants' -import { ActionIcon, Autocomplete, CloseButton, Flex, Select as MantineSelect, MantineStyleProp, rem, useMantineColorScheme, Portal, Menu, Button, Group, Divider, LoadingOverlay, Stack, Container, Transition, } from '@mantine/core' -import { IconBoxMultiple, IconBoxPadding, IconChevronDown, IconChevronLeft, IconPlus, IconSearch, IconUpload, } from '@tabler/icons-react' +import { useMantineColorScheme } from '@mantine/core' +import { IconBoxMultiple, IconBoxPadding, IconChevronLeft, IconPlus, IconUpload, } from '@tabler/icons-react' import { ICitySettings, IFigure, ILine } from '../../interfaces/gis' import axios from 'axios' import MapToolbar from './MapToolbar/MapToolbar' @@ -34,6 +34,8 @@ import GisService from '../../services/GisService' import MapMode from './MapMode' import { satMapsProviders, schemas } from '../../constants/map' import MapPrint from './MapPrint/MapPrint' +import { Field, Menu, MenuButton, MenuList, MenuPopover, MenuTrigger, Combobox, Option, Button, Divider, Spinner, Portal } from '@fluentui/react-components' +import { IRegion } from '../../interfaces/fuel' const swrOptions: SWRConfiguration = { revalidateOnFocus: false @@ -177,7 +179,7 @@ const MapComponent = ({ }) } - const mapControlsStyle: MantineStyleProp = { + const mapControlsStyle: CSSProperties = { borderRadius: '4px', zIndex: '1', backgroundColor: colorScheme === 'light' ? '#F0F0F0CC' : '#000000CC', @@ -381,7 +383,7 @@ const MapComponent = ({ useEffect(() => { if (!selectedRegion) { - setSelectedRegion(id, null) + setSelectedRegion(id, undefined) setSelectedYear(id, null) } }, [selectedRegion, selectedDistrict, id]) @@ -468,73 +470,154 @@ const MapComponent = ({ {active && - - - +
+ ({ label: item.value, value: item.id_object.toString() })) : []} - //onSelect={(e) => console.log(e.currentTarget.value)} - onChange={(value) => setSearchObject(value)} - onOptionSubmit={(value) => setCurrentObjectId(id, value)} - rightSection={ - searchObject !== '' && ( - event.preventDefault()} - onClick={() => { - setSearchObject('') - }} - aria-label="Clear value" - /> - ) - } - leftSection={} value={searchObject} - /> - - ({ label: item.name, value: item.id.toString() })) : []} - onChange={(value) => setSelectedRegion(id, Number(value))} - clearable - onClear={() => setSelectedRegion(id, null)} - searchable - value={selectedRegion ? selectedRegion.toString() : null} - /> - - ({ label: [item.name, item.district_name].join(' - '), value: item.id.toString() })) : []} - onChange={(value) => setSelectedDistrict(id, Number(value))} - clearable - onClear={() => { setSelectedDistrict(id, null) }} - searchable - value={selectedDistrict ? selectedDistrict.toString() : null} - /> - - ({ label: el, value: el }))} - onChange={(e) => { - if (e) { - setSelectedYear(id, Number(e)) - } else { - setSelectedYear(id, null) + onOptionSelect={(_ev, data) => { + if (data.optionValue) { + setCurrentObjectId(id, data.optionValue); + setSearchObject( + searchData?.find((item: any) => item.id_object.toString() === data.optionValue)?.value ?? "" + ); } }} - onClear={() => setSelectedYear(id, null)} - value={selectedYear ? selectedYear?.toString() : null} + onChange={(e) => { + setSearchObject(e.currentTarget.value); // free typing like Mantine's onChange + }} clearable - /> + style={{ minWidth: 'auto' }} + > + {searchData + ? searchData.map((item: { value: string; id_object: string }) => ( + + )) + : null} + - + item.id === selectedRegion)?.name ?? "" + : "" + } + onOptionSelect={(_ev, data) => { + if (data.optionValue) { + setSelectedRegion(id, Number(data.optionValue)); + } else { + setSelectedRegion(id, undefined); + } + }} + style={{ minWidth: 'auto' }} + > + {regionsData + ? regionsData.map((item: { name: string; id: number }) => ( + + )) + : null} + - + item.id === selectedDistrict)?.name + + " - " + + districtsData?.find((item: { id: number }) => item.id === selectedDistrict)?.district_name + : "" + } + onOptionSelect={(_ev, data) => { + if (data.optionValue) { + setSelectedDistrict(id, Number(data.optionValue)); + } else { + setSelectedDistrict(id, null); + } + }} + style={{ minWidth: 'auto' }} + > + {districtsData + ? districtsData.map( + (item: { name: string; id: number; district_name: string }) => ( + + ) + ) + : null} + + + + { + if (data.optionValue) { + setSelectedYear(id, Number(data.optionValue)); + } else { + setSelectedYear(id, null); + } + }} + > + {schemas.map((el) => ( + + ))} + + + +
+ + + + + + {/* -
-
+ */} + + } - - - - - +
+
+
+
+
{selectedRegion && selectedDistrict && selectedYear && - +
- +
} {!!selectedRegion && !!selectedDistrict && !!selectedYear && - +
+
- - +
+
- - +
+
- +
{selectedRegion && selectedDistrict && selectedYear && mode === 'edit' && } - - {(styles) => } - - - + {!!selectedRegion && !!selectedDistrict && !!selectedYear && + + } +
+
- +
- - - +
+
+
- e.preventDefault()} onDrop={(e) => handleImageDrop(e, id)}> +
e.preventDefault()} onDrop={(e) => handleImageDrop(e, id)}>
- +
+ + {(linesValidating || figuresValidating) && ( +
+ +
+ )} - ) } diff --git a/client/src/components/map/MapLayers/MapLayers.tsx b/client/src/components/map/MapLayers/MapLayers.tsx index ea0bba4..09ece3f 100644 --- a/client/src/components/map/MapLayers/MapLayers.tsx +++ b/client/src/components/map/MapLayers/MapLayers.tsx @@ -1,4 +1,4 @@ -import { Checkbox, Flex, NavLink, Slider, Stack } from '@mantine/core' +import { Checkbox, Slider, Text } from '@fluentui/react-components' import BaseLayer from 'ol/layer/Base' import Map from 'ol/Map' import { useEffect, useState } from 'react' @@ -11,11 +11,11 @@ const MapLayers = ({ map }: MapLayersProps) => { return ( - +
{map?.getLayers().getArray() && map?.getLayers().getArray().map((layer, index) => ( ))} - +
) } @@ -40,21 +40,23 @@ const LayerSetting = ({ }, [opacity, layer]) return ( - +
setVisible(e.currentTarget.checked)} /> setOpacity(value)} + onChange={(_, data) => setOpacity(data.value)} /> - { console.log(layer.getLayerState()) }} /> - + { console.log(layer.getLayerState()) }}> + {layer.get('name')} + +
) } diff --git a/client/src/components/map/MapLegend/MapLegend.tsx b/client/src/components/map/MapLegend/MapLegend.tsx index 7384f71..3c3671a 100644 --- a/client/src/components/map/MapLegend/MapLegend.tsx +++ b/client/src/components/map/MapLegend/MapLegend.tsx @@ -1,18 +1,15 @@ -import { Accordion, ActionIcon, Collapse, ColorSwatch, Flex, MantineStyleProp, ScrollAreaAutosize, Stack, Text, useMantineColorScheme } from '@mantine/core' +import { useMantineColorScheme } from '@mantine/core' import useSWR from 'swr' import { fetcher } from '../../../http/axiosInstance' import { BASE_URL } from '../../../constants' -import { useDisclosure } from '@mantine/hooks' -import { IconChevronDown } from '@tabler/icons-react' +import { Accordion, AccordionHeader, AccordionItem, AccordionPanel, ColorSwatch, Text } from '@fluentui/react-components' const MapLegend = ({ selectedDistrict, selectedYear, - style }: { selectedDistrict: number | null, selectedYear: number | null, - style: MantineStyleProp }) => { const { colorScheme } = useMantineColorScheme() @@ -32,40 +29,42 @@ const MapLegend = ({ } ) - const [opened, { toggle }] = useDisclosure(false) - return ( - - - - +
+ + + Легенда - + - - - - + + + + + Существующие + - - - - Существующие - - {existingObjectsList && } - - + + {existingObjectsList && } + + - - Планируемые - - {planningObjectsList && } - - - - - - + + + Планируемые + + + + {planningObjectsList && } + + + + + + +
) } @@ -89,15 +88,15 @@ const LegendGroup = ({ } return ( - +
{objectsList.map(object => ( - - +
+ - - {object.name} - + {object.name} +
))} - +
) } diff --git a/client/src/components/map/MapLineTest.tsx b/client/src/components/map/MapLineTest.tsx index 90efb61..3a005ea 100644 --- a/client/src/components/map/MapLineTest.tsx +++ b/client/src/components/map/MapLineTest.tsx @@ -1,6 +1,5 @@ -import { useEffect, useRef } from 'react' +import { useEffect, useRef, useState } from 'react' import 'ol/ol.css' -import { Container, Stack, Tabs } from '@mantine/core' import OlMap from 'ol/Map' import { v4 as uuidv4 } from 'uuid' import TileLayer from 'ol/layer/Tile' @@ -12,6 +11,7 @@ import VectorSource from 'ol/source/Vector' import Feature from 'ol/Feature' import { LineString } from 'ol/geom' import { Stroke, Style, Text } from 'ol/style' +import { Tab, TabList } from '@fluentui/react-components' const center = [14443331.466543002, 8878970.176309839] @@ -106,19 +106,21 @@ const MapLineTest = () => { } }, []) + const [selectedTab, setSelectedTab] = useState('map') + return ( - - - - - Map - - - - - - - +
+ +
+ setSelectedTab(data.value)}> + + Map + + + {selectedTab === 'map' &&
} + +
+
) } diff --git a/client/src/components/map/MapMode.tsx b/client/src/components/map/MapMode.tsx index 2bfd9ca..a9be3cb 100644 --- a/client/src/components/map/MapMode.tsx +++ b/client/src/components/map/MapMode.tsx @@ -1,106 +1,88 @@ -import { Button, Flex, FloatingIndicator, Popover, SegmentedControl } from '@mantine/core' import { Mode, setMode, useMapStore } from '../../store/map' -import { IconChevronDown, IconCropLandscape, IconCropPortrait, IconEdit, IconEye, IconPrinter } from '@tabler/icons-react' +import { IconCropLandscape, IconCropPortrait, IconEdit, IconEye, IconPrinter } from '@tabler/icons-react' import { useEffect, useState } from 'react' import { PrintOrientation, setPrintOrientation, usePrintStore } from '../../store/print' +import { Button, Menu, MenuItemRadio, MenuList, MenuPopover, MenuProps, MenuTrigger, SplitButton } from '@fluentui/react-components' const MapMode = ({ map_id }: { map_id: string }) => { - const [rootRef, setRootRef] = useState(null); - const [controlsRefs, setControlsRefs] = useState>({}); - const { mode } = useMapStore().id[map_id] - const setControlRef = (item: Mode) => (node: HTMLButtonElement) => { - controlsRefs[item] = node; - setControlsRefs(controlsRefs); - } - const { printOrientation } = usePrintStore() - useEffect(() => { + const [checkedValues, setCheckedValues] = useState>({ orientation: [printOrientation] }) + const onChange: MenuProps["onCheckedValueChange"] = ( + _, + { name, checkedItems } + ) => { + setCheckedValues((s) => ({ ...s, [name]: checkedItems })) + setPrintOrientation(checkedItems[0] as PrintOrientation) + setMode(map_id, 'print' as Mode) + } + + useEffect(() => { + if (printOrientation) { + setCheckedValues((s) => ({ ...s, ['orientation']: [printOrientation] })) + } }, [printOrientation]) return ( - +
- - - - - - - - - - { - setPrintOrientation(value as PrintOrientation) - setMode(map_id, 'print' as Mode) + + + setMode(map_id, 'print' as Mode) }} - data={[ - { - value: 'horizontal', - label: ( - - ), - }, - { - value: 'vertical', - label: ( - - ), - }, - ]} - /> - - + icon={} + > + Печать + + - - + + + }> + Горизонтальная + + }> + Вертикальная + + + + +
) } diff --git a/client/src/components/map/MapPrint/MapPrint.tsx b/client/src/components/map/MapPrint/MapPrint.tsx index 391af83..52dc1c9 100644 --- a/client/src/components/map/MapPrint/MapPrint.tsx +++ b/client/src/components/map/MapPrint/MapPrint.tsx @@ -1,5 +1,4 @@ -import { ActionIcon, Button, Checkbox, Flex, Modal, Radio, ScrollAreaAutosize, Select, Stack, Text } from '@mantine/core' -import { IconHelp, IconWindowMaximize, IconWindowMinimize } from '@tabler/icons-react' +import { IconHelp, IconWindowMaximize, IconWindowMinimize, IconX } from '@tabler/icons-react' import React, { useEffect, useRef, useState } from 'react' import { clearPrintArea, PrintScale, setPreviousView, setPrintScale, setPrintScaleLine, useMapStore } from '../../../store/map' import { PrintFormat, PrintOrientation, printResolutions, setPrintOrientation, setPrintResolution, usePrintStore } from '../../../store/print' @@ -9,6 +8,7 @@ import { useObjectsStore } from '../../../store/objects' import jsPDF from 'jspdf' import { getCenter } from 'ol/extent' import ScaleLine from 'ol/control/ScaleLine' +import { Button, Checkbox, Dropdown, Field, Option, Radio, RadioGroup, Text } from '@fluentui/react-components' const MapPrint = ({ id, @@ -140,94 +140,128 @@ const MapPrint = ({ } }, [printScaleLine, printArea]) + const [opened, setOpened] = useState(false) + + useEffect(() => { + if (!!printArea) { + setOpened(true) + } + }, [printArea]) + + useEffect(() => { + if (!opened) { + clearPrintArea(id) + map?.setTarget(mapElement.current as HTMLDivElement) + map?.addInteraction(printAreaDraw) + } + }, [opened]) + return ( - { - clearPrintArea(id) - map?.setTarget(mapElement.current as HTMLDivElement) - map?.addInteraction(printAreaDraw) - }} fullScreen={fullscreen}> - - - - +
+
+
+ Предпросмотр области печати - + - - - - - setFullscreen(!fullscreen)}> - {fullscreen ? : } - - - - - - - Область печати можно передвигать. +
+
+
+
- - setPrintOrientation(value as PrintOrientation)} - > - - - - - +
+ Область печати можно передвигать. - setPrintScale(id, value as PrintScale)} - /> - setPrintScaleLine(id, event.currentTarget.checked)} - /> - + + setPrintScale(id, data.optionValue as PrintScale)} + > + {scaleOptions.map((opt) => ( + + ))} + + - - - - - - - + setPrintScaleLine(id, event.currentTarget.checked)} + /> +
+ +
+ +
+
+ + ) } diff --git a/client/src/components/map/MapStatusbar/MapStatusbar.tsx b/client/src/components/map/MapStatusbar/MapStatusbar.tsx index 4401b17..299a008 100644 --- a/client/src/components/map/MapStatusbar/MapStatusbar.tsx +++ b/client/src/components/map/MapStatusbar/MapStatusbar.tsx @@ -1,6 +1,6 @@ -import { Divider, Flex, rem, Text } from '@mantine/core' import { CSSProperties } from 'react' import { useMapStore } from '../../../store/map'; +import { Divider, Text } from '@fluentui/react-components'; interface IMapStatusbarProps { mapControlsStyle: CSSProperties; @@ -14,33 +14,33 @@ const MapStatusbar = ({ const { currentCoordinate, currentX, currentY, currentZ, statusText } = useMapStore().id[map_id] return ( - - +
+ x: {currentCoordinate?.[0]} - + y: {currentCoordinate?.[1]} - + - + Z={currentZ} - + X={currentX} - + Y={currentY} - + {statusText} - +
) } diff --git a/client/src/components/map/MapToolbar/MapToolbar.tsx b/client/src/components/map/MapToolbar/MapToolbar.tsx index 4b3b51e..f988e46 100644 --- a/client/src/components/map/MapToolbar/MapToolbar.tsx +++ b/client/src/components/map/MapToolbar/MapToolbar.tsx @@ -1,7 +1,8 @@ -import { ActionIcon, Flex, useMantineColorScheme } from '@mantine/core' +import { useMantineColorScheme } from '@mantine/core' import { IconArrowBackUp, IconArrowsMove, IconCircle, IconExclamationCircle, IconLine, IconPoint, IconPolygon, IconRuler, IconTransformPoint } from '@tabler/icons-react' import { getDraw, setCurrentTool, useMapStore } from '../../../store/map'; import { saveFeatures } from '../mapUtils'; +import { Button } from '@fluentui/react-components'; const MapToolbar = ({ map_id @@ -10,81 +11,41 @@ const MapToolbar = ({ const { colorScheme } = useMantineColorScheme(); return ( - - - saveFeatures(map_id)}> - - +
+
+
+
) } diff --git a/client/src/components/map/MapTree/MapTreeCheckbox.tsx b/client/src/components/map/MapTree/MapTreeCheckbox.tsx deleted file mode 100644 index 67fee8b..0000000 --- a/client/src/components/map/MapTree/MapTreeCheckbox.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Checkbox, Group, RenderTreeNodePayload, Text } from "@mantine/core"; -import { IconChevronDown } from "@tabler/icons-react"; - -export const MapTreeCheckbox = ({ - node, - expanded, - hasChildren, - elementProps, - tree, -}: RenderTreeNodePayload) => { - const checked = tree.isNodeChecked(node.value); - const indeterminate = tree.isNodeIndeterminate(node.value); - - return ( - - (!checked ? tree.checkNode(node.value) : tree.uncheckNode(node.value))} - /> - - tree.toggleExpanded(node.value)}> - {node.label} - - {hasChildren && ( - - )} - - - ); -}; \ No newline at end of file diff --git a/client/src/components/map/ObjectData.tsx b/client/src/components/map/ObjectData.tsx index 382759d..2c29bdf 100644 --- a/client/src/components/map/ObjectData.tsx +++ b/client/src/components/map/ObjectData.tsx @@ -1,4 +1,3 @@ -import { Flex } from '@mantine/core' import { IObjectData, IObjectType } from '../../interfaces/objects' import useSWR from 'swr' import { fetcher } from '../../http/axiosInstance' @@ -14,11 +13,9 @@ const ObjectData = (object_data: IObjectData) => { ) return ( - +
{Array.isArray(typeData) && (typeData.find(type => Number(type.id) === Number(object_data.type)) as IObjectType).name} - - - +
) } diff --git a/client/src/components/map/ObjectParameter.tsx b/client/src/components/map/ObjectParameter.tsx index 0f76a41..92745cd 100644 --- a/client/src/components/map/ObjectParameter.tsx +++ b/client/src/components/map/ObjectParameter.tsx @@ -4,6 +4,7 @@ import { BASE_URL } from '../../constants' import { IObjectParam, IParam } from '../../interfaces/objects' import TCBParameter from './TCBParameter' import TableValue from './TableValue' +import { TableCell, TableCellLayout, TableRow } from '@fluentui/react-components' interface ObjectParameterProps { showLabel?: boolean; @@ -73,10 +74,19 @@ const ObjectParameter = ({ ) default: return ( -
- {name} - {value as string} -
+ + + + {name} + + + + + + {value as string} + + + ) } } diff --git a/client/src/components/map/ObjectParameters/ObjectParameters.tsx b/client/src/components/map/ObjectParameters/ObjectParameters.tsx index 06be0cc..7ed396e 100644 --- a/client/src/components/map/ObjectParameters/ObjectParameters.tsx +++ b/client/src/components/map/ObjectParameters/ObjectParameters.tsx @@ -1,10 +1,10 @@ -import { Flex, LoadingOverlay } from '@mantine/core'; import { IObjectParam } from '../../../interfaces/objects'; import ObjectParameter from '../ObjectParameter'; import useSWR from 'swr'; import { BASE_URL } from '../../../constants'; import { fetcher } from '../../../http/axiosInstance'; import { useObjectsStore } from '../../../store/objects'; +import { Spinner, Table, TableBody } from '@fluentui/react-components'; const ObjectParameters = ({ map_id @@ -24,40 +24,59 @@ const ObjectParameters = ({ ) return ( - - - {Array.isArray(valuesData) && - Object.entries( - valuesData.reduce((acc, param) => { - if (!acc[param.id_param]) { - acc[param.id_param] = []; - } - acc[param.id_param].push(param); - return acc; - }, {} as Record) - ).map(([id_param, params]) => { - // Step 1: Sort the parameters by date_s (start date) and date_po (end date) - const sortedParams = (params as IObjectParam[]).sort((b, a) => { - const dateA = new Date(a.date_s || 0); - const dateB = new Date(b.date_s || 0); - return dateA.getTime() - dateB.getTime(); - }); +
+ {(valuesValidating) && ( +
+ +
+ )} - return sortedParams.length > 1 ? ( - sortedParams.map((param: IObjectParam) => { - if (param.date_po == null) { - return ( - + + + {Array.isArray(valuesData) && + Object.entries( + valuesData.reduce((acc, param) => { + if (!acc[param.id_param]) { + acc[param.id_param] = []; + } + acc[param.id_param].push(param); + return acc; + }, {} as Record) + ).map(([id_param, params]) => { + // Step 1: Sort the parameters by date_s (start date) and date_po (end date) + const sortedParams = (params as IObjectParam[]).sort((b, a) => { + const dateA = new Date(a.date_s || 0); + const dateB = new Date(b.date_s || 0); + return dateA.getTime() - dateB.getTime(); + }); + + return sortedParams.length > 1 ? ( + sortedParams.map((param: IObjectParam) => { + if (param.date_po == null) { + return ( + + ) + } + } ) - } - } - ) - ) : ( - - ); - }) - } - + ) : ( + + ); + }) + } + +
+
) } diff --git a/client/src/components/map/RegionSelect.tsx b/client/src/components/map/RegionSelect.tsx index 5333d34..ed67595 100644 --- a/client/src/components/map/RegionSelect.tsx +++ b/client/src/components/map/RegionSelect.tsx @@ -1,7 +1,6 @@ import useSWR from 'swr' import { BASE_URL } from '../../constants' import { fetcher } from '../../http/axiosInstance' -import { Flex } from '@mantine/core' const RegionSelect = () => { const { data } = useSWR(`/gis/regions/borders`, (url) => fetcher(url, BASE_URL.ems), { @@ -10,7 +9,7 @@ const RegionSelect = () => { }) return ( - +
{Array.isArray(data) && {data.map((el, index) => ( @@ -18,7 +17,7 @@ const RegionSelect = () => { ))} } - +
) } diff --git a/client/src/components/map/TCBParameter.tsx b/client/src/components/map/TCBParameter.tsx index 65bd4ae..78c2390 100644 --- a/client/src/components/map/TCBParameter.tsx +++ b/client/src/components/map/TCBParameter.tsx @@ -1,8 +1,8 @@ import useSWR from 'swr' import { fetcher } from '../../http/axiosInstance' import { BASE_URL } from '../../constants' -import { Text } from '@mantine/core' import TableValue from './TableValue' +import { Text } from '@fluentui/react-components'; interface ITCBParameterProps { value: string; diff --git a/client/src/components/map/TableValue.tsx b/client/src/components/map/TableValue.tsx index 0cc5461..312452a 100644 --- a/client/src/components/map/TableValue.tsx +++ b/client/src/components/map/TableValue.tsx @@ -1,8 +1,8 @@ -import { Checkbox, ComboboxData, Grid, NumberInput, Select, Text, Textarea } from '@mantine/core'; import useSWR from 'swr'; import { fetcher } from '../../http/axiosInstance'; import { BASE_URL } from '../../constants'; import { useObjectsStore } from '../../store/objects'; +import { Checkbox, Input, Select, TableCell, TableCellLayout, TableRow, Text } from '@fluentui/react-components'; interface TableValueProps { name: string; @@ -30,7 +30,7 @@ const TableValue = ({ return res.map((el) => ({ label: el.name || "", value: JSON.stringify(el.id) - })) as ComboboxData + })) } }), { @@ -40,32 +40,52 @@ const TableValue = ({ ) return ( - - - {name as string} - - - {type === 'boolean' ? - - : - type === 'number' ? - { }} - suffix={unit ? ` ${unit}` : ''} - /> + + + + {name as string} + + + + +
+ {type === 'boolean' ? + // + : - type === 'select' && !isValidating && tcbAll ? - { }} + contentAfter={unit ? ` ${unit}` : ''} + //displayValue={unit ? ` ${unit}` : ''} + /> : - type === 'string' ? -