diff --git a/README.md b/README.md index d2169cc..160c2b1 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,3 @@ -# README +# RWKV-Runner -## About - -This is the official Wails React-TS template. - -You can configure the project by editing `wails.json`. More information about the project settings can be found -here: https://wails.io/docs/reference/project-config - -## Live Development - -To run in live development mode, run `wails dev` in the project directory. This will run a Vite development -server that will provide very fast hot reload of your frontend changes. If you want to develop in a browser -and have access to your Go methods, there is also a dev server that runs on http://localhost:34115. Connect -to this in your browser, and you can call your Go code from devtools. - -## Building - -To build a redistributable, production mode package, use `wails build`. +In development diff --git a/build/appicon.png b/build/appicon.png index 63617fe..481e355 100644 Binary files a/build/appicon.png and b/build/appicon.png differ diff --git a/build/windows/icon.ico b/build/windows/icon.ico index f334798..1b5b8fa 100644 Binary files a/build/windows/icon.ico and b/build/windows/icon.ico differ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 93fcf2d..1f5a606 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,17 +8,33 @@ "name": "frontend", "version": "0.0.0", "dependencies": { + "@fluentui/react-components": "^9.19.1", + "@fluentui/react-icons": "^2.0.201", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router": "^6.11.0", + "react-router-dom": "^6.11.0" }, "devDependencies": { "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^2.0.1", + "autoprefixer": "^10.4.14", + "postcss": "^8.4.23", + "tailwindcss": "^3.3.2", "typescript": "^4.6.4", "vite": "^3.0.7" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -369,6 +385,17 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.20.7", "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.20.7.tgz", @@ -418,6 +445,11 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, "node_modules/@esbuild/android-arm": { "version": "0.15.18", "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz", @@ -450,6 +482,1089 @@ "node": ">=12" } }, + "node_modules/@floating-ui/core": { + "version": "1.2.6", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.6.tgz", + "integrity": "sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==" + }, + "node_modules/@floating-ui/dom": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.2.7.tgz", + "integrity": "sha512-DyqylONj1ZaBnzj+uBnVfzdjjCkFCL2aA9ESHLyUOGSqb03RpbLMImP1ekIQXYs4KLk9jAjJfZAU8hXfWSahEg==", + "dependencies": { + "@floating-ui/core": "^1.2.6" + } + }, + "node_modules/@fluentui/keyboard-keys": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/@fluentui/keyboard-keys/-/keyboard-keys-9.0.2.tgz", + "integrity": "sha512-yB+mD96zhFnKyHCJ0AfTjSwA56LJtossToKSZbCEN38X3457TL2v8F9vzTrcO6Ha01n9YLcJ0O5ZgNIKrpP8fg==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@fluentui/priority-overflow": { + "version": "9.0.2", + "resolved": "https://registry.npmmirror.com/@fluentui/priority-overflow/-/priority-overflow-9.0.2.tgz", + "integrity": "sha512-vQBIMpXaHhsgA5l+3yDkPjL7PzEiJubtSaO76P3WPdAB7iEGlQ5Fmw6ebvwce7bLWacLPC177nWCwqdGz2pr7g==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@fluentui/react-accordion": { + "version": "9.1.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-accordion/-/react-accordion-9.1.10.tgz", + "integrity": "sha512-udUTjhNYaEhnRYJg86AST9f2ml9VGEMPMuXP2NKIoq0V2vzLaHBSIflgBzyukrFGMzoLc+1l7NdKLdCekZgw4w==", + "dependencies": { + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-alert": { + "version": "9.0.0-beta.45", + "resolved": "https://registry.npmmirror.com/@fluentui/react-alert/-/react-alert-9.0.0-beta.45.tgz", + "integrity": "sha512-a+kQHOBppVh0kvNBcJeGvWC4Eu4vzWFDifyb+DYObeb5ZgwhxZQr9WwBn1QnoKX4FinWxj79yEPmNgWxu1WvDA==", + "dependencies": { + "@fluentui/react-avatar": "^9.4.10", + "@fluentui/react-button": "^9.3.10", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-aria": { + "version": "9.3.18", + "resolved": "https://registry.npmmirror.com/@fluentui/react-aria/-/react-aria-9.3.18.tgz", + "integrity": "sha512-BI5MRU1i7zUX2pAx93FfYJNTD/66Xq4IxLwOsCFVBkP6XSgMiOLK2ZM6BHUUO5paHBxX/JVCbVRgce9TiP1cCA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-utilities": "^9.8.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-avatar": { + "version": "9.4.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-avatar/-/react-avatar-9.4.10.tgz", + "integrity": "sha512-QYDxq2ZzIdau1u7pcDqK8UIyf6xOC+LSoZukdmiqqbOvuuRPb7v1xUqSqfnq3ABMjAyMItdEFFunTrvMevGRug==", + "dependencies": { + "@fluentui/react-badge": "^9.1.10", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-popover": "^9.5.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-tooltip": "^9.2.10", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-badge": { + "version": "9.1.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-badge/-/react-badge-9.1.10.tgz", + "integrity": "sha512-MTWyJmv56Ycbx761xnMq4BrM38GTdQAI5uUVtDJt8W49cqr/LRz1/4i3GjWgAlinTulN2czilxrLqEB0u7hPSw==", + "dependencies": { + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-button": { + "version": "9.3.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-button/-/react-button-9.3.10.tgz", + "integrity": "sha512-KPKwzP3qSgfZoBJgp20Y08ibLMWsaXeQUV3GOTiC3y5dmxSjbaZB6lj/3xfS+1d3UwYmkdCyJZbdJJGvUewHxQ==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-card": { + "version": "9.0.8", + "resolved": "https://registry.npmmirror.com/@fluentui/react-card/-/react-card-9.0.8.tgz", + "integrity": "sha512-r/hOOkKRex1GPdh+Bg0ubB3K3hZIQ1gzxnTt9TOsiR4P6eW6RELbbjmAokdHQb27c7HuygVGOLuFPr5gT8E0kQ==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-checkbox": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-checkbox/-/react-checkbox-9.1.11.tgz", + "integrity": "sha512-nyBCOrfwWj0CnYk2hbiH/wXyEb89gxlZ8ytilr5UPzgzJzmHH2M7CnZfxAsB7Q0AZGQrtZ+SZDbyC823ntB/yQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-combobox": { + "version": "9.2.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-combobox/-/react-combobox-9.2.11.tgz", + "integrity": "sha512-iiYpbSm2glGY9odQ3xHxusxMa3rXB13xi2udhYNCBd6Hg3QOdUpqZGoPbx/iZ4IaZe9Sb8ADAJl6soy4Pr008A==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-positioning": "^9.5.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-components": { + "version": "9.19.1", + "resolved": "https://registry.npmmirror.com/@fluentui/react-components/-/react-components-9.19.1.tgz", + "integrity": "sha512-HHhQdGXHVn0PwrEbFGu/xEqSLVYRf2WfMsG6FVmFBNwSwojB/2/DRWXQPUPL8K2Hzrg5Xon8z3RBP/XrSUFqtw==", + "dependencies": { + "@fluentui/react-accordion": "^9.1.10", + "@fluentui/react-alert": "9.0.0-beta.45", + "@fluentui/react-avatar": "^9.4.10", + "@fluentui/react-badge": "^9.1.10", + "@fluentui/react-button": "^9.3.10", + "@fluentui/react-card": "^9.0.8", + "@fluentui/react-checkbox": "^9.1.11", + "@fluentui/react-combobox": "^9.2.11", + "@fluentui/react-dialog": "^9.5.3", + "@fluentui/react-divider": "^9.2.10", + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-image": "^9.1.7", + "@fluentui/react-infobutton": "9.0.0-beta.28", + "@fluentui/react-input": "^9.4.11", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-link": "^9.0.36", + "@fluentui/react-menu": "^9.7.10", + "@fluentui/react-overflow": "^9.0.15", + "@fluentui/react-persona": "^9.2.9", + "@fluentui/react-popover": "^9.5.10", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-positioning": "^9.5.10", + "@fluentui/react-progress": "^9.1.11", + "@fluentui/react-provider": "^9.5.4", + "@fluentui/react-radio": "^9.1.11", + "@fluentui/react-select": "^9.1.11", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-skeleton": "9.0.0-beta.10", + "@fluentui/react-slider": "^9.1.11", + "@fluentui/react-spinbutton": "^9.2.11", + "@fluentui/react-spinner": "^9.1.10", + "@fluentui/react-switch": "^9.1.11", + "@fluentui/react-table": "^9.2.7", + "@fluentui/react-tabs": "^9.3.11", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-text": "^9.3.7", + "@fluentui/react-textarea": "^9.3.11", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-toolbar": "^9.1.11", + "@fluentui/react-tooltip": "^9.2.10", + "@fluentui/react-tree": "9.0.0-beta.12", + "@fluentui/react-utilities": "^9.8.0", + "@fluentui/react-virtualizer": "9.0.0-alpha.18", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-context-selector": { + "version": "9.1.18", + "resolved": "https://registry.npmmirror.com/@fluentui/react-context-selector/-/react-context-selector-9.1.18.tgz", + "integrity": "sha512-ixoCWc3sEBIZb0oasI6l/kfv4bqPdtWvNfzRrSWws8STkfjYakHMuRA96c508PJNHsZ9WlQqfQebt1V4rpo8mA==", + "dependencies": { + "@fluentui/react-utilities": "^9.8.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-dialog": { + "version": "9.5.3", + "resolved": "https://registry.npmmirror.com/@fluentui/react-dialog/-/react-dialog-9.5.3.tgz", + "integrity": "sha512-250/iJJVx8tSWucts1quA7wWPNLJpYCx0tHNDfa8pnZ9/oVaSL849te29oBuwAiP9XMbHU89x/+df6dNeRLIgw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-divider": { + "version": "9.2.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-divider/-/react-divider-9.2.10.tgz", + "integrity": "sha512-j8ixGUuyBm5UaUOTxAfVhY/nG4JOpVUFIDGGEFiDD3vCD65v7C4VsDbk5xqlKWs+pmsklZeDlF3UjuaRZBZxwA==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-field": { + "version": "9.1.1", + "resolved": "https://registry.npmmirror.com/@fluentui/react-field/-/react-field-9.1.1.tgz", + "integrity": "sha512-WjqiPAqWPtmeV5CFDLdOUfUQs6sPZrluOwjmqGqoJzNQUlQiH+coCHNtiAmPiWYRIIiSk5FakOlPiPFbp02j1g==", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-icons": { + "version": "2.0.201", + "resolved": "https://registry.npmmirror.com/@fluentui/react-icons/-/react-icons-2.0.201.tgz", + "integrity": "sha512-krQ8ZcKp5ONRTIjuN+Wf1Pl2UwqCmK3Bf0cbjm3IdCyX/HeFSUF2rT8ery6vToTAfFzmGQur7HSFzd6fPywnyA==", + "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.1.7", + "resolved": "https://registry.npmmirror.com/@fluentui/react-image/-/react-image-9.1.7.tgz", + "integrity": "sha512-/ANAJngvl+jFenIOOciLPKL9wUVpVrG6/jokdjU4R8sJDfYI1dLbtCQHmc0+Lwc0nO2wrZPluEMwibl94fcG8Q==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-infobutton": { + "version": "9.0.0-beta.28", + "resolved": "https://registry.npmmirror.com/@fluentui/react-infobutton/-/react-infobutton-9.0.0-beta.28.tgz", + "integrity": "sha512-U+lje7/6EdqA7S3utadG+TMkP1jql/WvTrAurIv10Zr+JLu67eckSZn6JKJ9lS9Z8qvysAsdIE4hKMzbtG7w2Q==", + "dependencies": { + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-popover": "^9.5.10", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-input": { + "version": "9.4.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-input/-/react-input-9.4.11.tgz", + "integrity": "sha512-8qmfJThw4OjioT3Abb9TTYkcynbgFGhJD3x4xuQleICBuJ0hxzhnY038zHmEvcR47O5WC2OGCtb40xDX1WtJXw==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-jsx-runtime": { + "version": "9.0.0-alpha.2", + "resolved": "https://registry.npmmirror.com/@fluentui/react-jsx-runtime/-/react-jsx-runtime-9.0.0-alpha.2.tgz", + "integrity": "sha512-lMnVHUi9XQIOV7qrsfvA1vpxXqGoCtr7ldJYlw8N6e67qB8bdY9OV8oXkEQB1OKCMZwmAeGglit7PBr5NB8LZQ==", + "dependencies": { + "@fluentui/react-utilities": "^9.8.0", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-label": { + "version": "9.1.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-label/-/react-label-9.1.10.tgz", + "integrity": "sha512-xQ0D5+cyYE7E/Mfpgqgb80cheOfEbVwa0JaRSAJk/Xvqh9M1CUfLT/Qj7kqFqTvDLSRlUtFAjyf0UqFC94KACw==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-link": { + "version": "9.0.36", + "resolved": "https://registry.npmmirror.com/@fluentui/react-link/-/react-link-9.0.36.tgz", + "integrity": "sha512-F+6JmLoK4mRfoLIvpULAP/43He4c0PhFcEiJqM9dToxFG+s6ejofeSBpbb1R8XOvpB963exAK7yw7SgFaGsC6w==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-menu": { + "version": "9.7.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-menu/-/react-menu-9.7.10.tgz", + "integrity": "sha512-e99Gm2c7+PSNJ3jik8bxvcI1k4hgJEnCbdVZ8cMh0+DWx1qSSfajGr21tjWudp/eGD9VcguZEkC1gmnM/YtrpQ==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-positioning": "^9.5.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-overflow": { + "version": "9.0.15", + "resolved": "https://registry.npmmirror.com/@fluentui/react-overflow/-/react-overflow-9.0.15.tgz", + "integrity": "sha512-oMbFsR4rVqdNY4neat7YB7Dn9wgy5/h5mAqH6NLKD/25LujZJ8oho+PUT1kOIcCQ/+XpCUU6hCJadd9iCTeNmg==", + "dependencies": { + "@fluentui/priority-overflow": "^9.0.2", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-persona": { + "version": "9.2.9", + "resolved": "https://registry.npmmirror.com/@fluentui/react-persona/-/react-persona-9.2.9.tgz", + "integrity": "sha512-hEuUl7ke+CsOKrpV9I2GbekbIgVdTJ7Xn2VV7JWjbcW5zp7EM4SRsBez/EAbsycwr/Cm23n7sX0tEcqhMhasTw==", + "dependencies": { + "@fluentui/react-avatar": "^9.4.10", + "@fluentui/react-badge": "^9.1.10", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-popover": { + "version": "9.5.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-popover/-/react-popover-9.5.10.tgz", + "integrity": "sha512-gF0EDFaQSahT3EfWj2D7k/eHK3W9BLnY43CG5kdnVgdEwAWHhUq3SNlhKntshKYauCkrzBEcg8vI1p4PJ05ttA==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-positioning": "^9.5.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-portal": { + "version": "9.2.6", + "resolved": "https://registry.npmmirror.com/@fluentui/react-portal/-/react-portal-9.2.6.tgz", + "integrity": "sha512-/wlyZIUFef+o1MVqytNyjV9lD9OPFZGxTYl5kJoI/3C6Mh/a+wQ3WFipibNBsTdftCNmzB/TwjXo38xK5Er+SQ==", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14", + "use-disposable": "^1.0.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-positioning": { + "version": "9.5.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-positioning/-/react-positioning-9.5.10.tgz", + "integrity": "sha512-4T5sihiG/MbwdysUU66nUJnT2IAJPkb4OD3GiztipFGIEymNcQDXQN3AJr/ID/xcvmc6gIZY44OHlQEs9gfcTQ==", + "dependencies": { + "@floating-ui/dom": "^1.2.0", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-progress": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-progress/-/react-progress-9.1.11.tgz", + "integrity": "sha512-5cwft6WydcR5kKvDuQ8yMjgaF7crZUbxkE8Bbq9cWdaaLcOcN5GaYSVpJQGBzQJPFUCy5pPn6Vk4to9EE5zqYQ==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-provider": { + "version": "9.5.4", + "resolved": "https://registry.npmmirror.com/@fluentui/react-provider/-/react-provider-9.5.4.tgz", + "integrity": "sha512-IyWezQYvR9zD+MtueAwXihb4JwRK9MZI/ogNZCwsUECZyZoG4dckOio92QSA+FHnyZ2MF1Vbe7beq48HF/EXxA==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/core": "^1.9.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-radio": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-radio/-/react-radio-9.1.11.tgz", + "integrity": "sha512-s35bZ4qDUoLlCuROC45xpHXrWuMUO9yKom6CsyZjZqmMs9sLL3EuqIGIuC7YqQM3Fhih9XGcPIpQEi+k9hryqw==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-select": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-select/-/react-select-9.1.11.tgz", + "integrity": "sha512-NTJ3UyJJ9Rq+IV0x2b2rhf/AIIES78ASEnlHE8sOQACID5l0eAXt35W2MDbSQi3+PSFlMKbaupHr32lgHp/9Jg==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-shared-contexts": { + "version": "9.3.3", + "resolved": "https://registry.npmmirror.com/@fluentui/react-shared-contexts/-/react-shared-contexts-9.3.3.tgz", + "integrity": "sha512-7X+Oj69s3aYLSJ9xuh1eIVCQXNtFox6cXKSZF5ogq4ebRRXE6NqXx8tF8KAjv7+JIWBwPo2/sLtWq2ma363NLg==", + "dependencies": { + "@fluentui/react-theme": "^9.1.7", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-skeleton": { + "version": "9.0.0-beta.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-skeleton/-/react-skeleton-9.0.0-beta.10.tgz", + "integrity": "sha512-wkhe2tnH1v8mBdhloPADaPkevmEE2Au441fi4wW1d9ForsUu9NIjUcO5zT7KboqqbNN2fR925BiXvrjsMa6X6g==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-slider": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-slider/-/react-slider-9.1.11.tgz", + "integrity": "sha512-0MgHlv1FgukwxSQeQ4phGy7Iz2I9qc+F9A8i7cKNvA9YXfiQqoDnF+9KGuQuHVRlA2iLSZlLm7t9XMON9203uA==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinbutton": { + "version": "9.2.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-spinbutton/-/react-spinbutton-9.2.11.tgz", + "integrity": "sha512-UtMK5r/1p32mt20PYOeCO5wNGw6ACpE7m7ckwZKGiNDli+XZrK9B5/hD6r68bIT34YBLyrZm273eU2iecwpnmw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-spinner": { + "version": "9.1.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-spinner/-/react-spinner-9.1.10.tgz", + "integrity": "sha512-E5fHwh90RiKlr/lKxHCpmGL96DpVeTYtEmEr6CfL2MsfE5guP97Ayrw/smfN3MHB3OLFwrYrXDrCF1FLNnklUw==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-switch": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-switch/-/react-switch-9.1.11.tgz", + "integrity": "sha512-elBvJSf9z58Ud+UfaRGybZMMIqu/At509DXHuUqCwfYu1pk+4VyfQrRlElQ10W1p5ETqaUJDo3F5O9u/SnvcIA==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-label": "^9.1.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-table": { + "version": "9.2.7", + "resolved": "https://registry.npmmirror.com/@fluentui/react-table/-/react-table-9.2.7.tgz", + "integrity": "sha512-3vcCuQLEXsA6gaUG9DsEAoefOKBsMsWCk9SYyOtzwjxFeGQM783vsXE9zTrXyuUABVsieq8CNE+f4IvPrRE9vw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-avatar": "^9.4.10", + "@fluentui/react-checkbox": "^9.1.11", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-radio": "^9.1.11", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tabs": { + "version": "9.3.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-tabs/-/react-tabs-9.3.11.tgz", + "integrity": "sha512-0Fa1w+mdA0wXhigiYIQ2cIQls0Q3CDE9BF+1wi2klhY3E65UMuaimwTGCBt503bFoexHbPWLGCNmWueEbvT5dQ==", + "dependencies": { + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0", + "scheduler": "^0.19.0 || ^0.20.0" + } + }, + "node_modules/@fluentui/react-tabster": { + "version": "9.6.5", + "resolved": "https://registry.npmmirror.com/@fluentui/react-tabster/-/react-tabster-9.6.5.tgz", + "integrity": "sha512-XjqsTuhx0709N1mGFFKOs1Op4q9aKDZhtTluXxw9wlUcOW3JEnvQZIUbGGcQvQHebsSnb5c4pMRp5B0iEUpAvQ==", + "dependencies": { + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14", + "keyborg": "^2.0.0", + "tabster": "^4.1.1" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-text": { + "version": "9.3.7", + "resolved": "https://registry.npmmirror.com/@fluentui/react-text/-/react-text-9.3.7.tgz", + "integrity": "sha512-2LZsIzX1k89+vpW8E0VPnnDmtDYg3zMSjs7G8Nx78TAJAydz6YXWl/J2MIigebC0KjePTKrbYeaDepJ+ZqDOPA==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-textarea": { + "version": "9.3.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-textarea/-/react-textarea-9.3.11.tgz", + "integrity": "sha512-IcnJcgwI/hG1+29VMCXMvwAgZ5mn0qvFXnvNYMwly6z2V8bYp22BS+8rzvkX9eCoZAaf3iFFDzOFmSGGytOnyA==", + "dependencies": { + "@fluentui/react-field": "^9.1.1", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-theme": { + "version": "9.1.7", + "resolved": "https://registry.npmmirror.com/@fluentui/react-theme/-/react-theme-9.1.7.tgz", + "integrity": "sha512-VS/ckVxZJyfDAFNrkZZP4EqEvugadnE7ST1zTOVALh/I8GCsACstaFfMqPSUd9X0NaaSAGJMEBlsDNonw95fkg==", + "dependencies": { + "@fluentui/tokens": "1.0.0-alpha.4", + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@fluentui/react-toolbar": { + "version": "9.1.11", + "resolved": "https://registry.npmmirror.com/@fluentui/react-toolbar/-/react-toolbar-9.1.11.tgz", + "integrity": "sha512-qo6snVMalqHyGEVFpurlcGZDzZPl9wgfg+ajDHGAufrj7mgWkb876RA09vbVnmMu5i5VazcIaoh2hGMcCwkitQ==", + "dependencies": { + "@fluentui/react-button": "^9.3.10", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-divider": "^9.2.10", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-radio": "^9.1.11", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tooltip": { + "version": "9.2.10", + "resolved": "https://registry.npmmirror.com/@fluentui/react-tooltip/-/react-tooltip-9.2.10.tgz", + "integrity": "sha512-9DqwbF0VM80/LodZxzLK14V4e42brjgzEbSUs/GqNtCeGgneTrYYuSEs1vtYTuvf8VFaoEGQh5SQyMR2N8+zYw==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-positioning": "^9.5.10", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-tree": { + "version": "9.0.0-beta.12", + "resolved": "https://registry.npmmirror.com/@fluentui/react-tree/-/react-tree-9.0.0-beta.12.tgz", + "integrity": "sha512-dsP7O+TzZm19qn7ad2HyqgZY/csns/8nvDtW5GvueNJg981zQMd7e++rFV4sTPOnmsE+dCF5GlkrV1+/v1BXVg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@fluentui/react-aria": "^9.3.18", + "@fluentui/react-avatar": "^9.4.10", + "@fluentui/react-button": "^9.3.10", + "@fluentui/react-context-selector": "^9.1.18", + "@fluentui/react-icons": "^2.0.196", + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-portal": "^9.2.6", + "@fluentui/react-shared-contexts": "^9.3.3", + "@fluentui/react-tabster": "^9.6.5", + "@fluentui/react-theme": "^9.1.7", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-utilities": { + "version": "9.8.0", + "resolved": "https://registry.npmmirror.com/@fluentui/react-utilities/-/react-utilities-9.8.0.tgz", + "integrity": "sha512-/FFevf60FAee+zpOpRvOce6Z3XLoTMQiJ6UAvw5c/0z6VJIoF8VvKjv+gKKJ7Paq5cj2tSDxWTL8ARqNjPndeg==", + "dependencies": { + "@fluentui/keyboard-keys": "^9.0.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/react-virtualizer": { + "version": "9.0.0-alpha.18", + "resolved": "https://registry.npmmirror.com/@fluentui/react-virtualizer/-/react-virtualizer-9.0.0-alpha.18.tgz", + "integrity": "sha512-CSmfiL1cOa9mSlBLG87QuiYdJcCw4C0QlO5gx6Z6BKDsqFd/MbkNwY6mxSjrQKoZVhkbCT1swwW4Wm9/i0tnyw==", + "dependencies": { + "@fluentui/react-jsx-runtime": "9.0.0-alpha.2", + "@fluentui/react-utilities": "^9.8.0", + "@griffel/react": "^1.5.2", + "@swc/helpers": "^0.4.14" + }, + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/@fluentui/tokens": { + "version": "1.0.0-alpha.4", + "resolved": "https://registry.npmmirror.com/@fluentui/tokens/-/tokens-1.0.0-alpha.4.tgz", + "integrity": "sha512-fzA4O2XTUqvMGW6H2Lny97uRRfO6CThEn8Vz1J1P8s6KIoSJOewUday5+2SCgJ2qA8xBtkXuaURy17IJjTGKDw==", + "dependencies": { + "@swc/helpers": "^0.4.14" + } + }, + "node_modules/@griffel/core": { + "version": "1.11.0", + "resolved": "https://registry.npmmirror.com/@griffel/core/-/core-1.11.0.tgz", + "integrity": "sha512-3jlrsJVbNC0avRMfNGWmbklptmtH5s63Gt/xa0zY6+Oa3kU/StNAu+d0LqLChb5egwXrisQIeC+tzzJ+YozGjg==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "csstype": "^3.1.2", + "rtl-css-js": "^1.16.1", + "stylis": "^4.0.13", + "tslib": "^2.1.0" + } + }, + "node_modules/@griffel/react": { + "version": "1.5.7", + "resolved": "https://registry.npmmirror.com/@griffel/react/-/react-1.5.7.tgz", + "integrity": "sha512-b9/LkkuO512O268jqRpJPso9ROng/kqh81YSTJUL13tT4qPZQnvrdiwoP7ZeqXbG0zzZHLZ3tWUZrCDOl549OQ==", + "dependencies": { + "@griffel/core": "^1.11.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "react": ">=16.8.0 <19.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -504,17 +1619,66 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@remix-run/router": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.6.0.tgz", + "integrity": "sha512-N13NRw3T2+6Xi9J//3CGLsK2OqC8NMme3d/YX+nh05K9YHWGcv8DycHJrqGScSP4T75o8IN6nqIMhVFU8ohg8w==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@swc/helpers": { + "version": "0.4.14", + "resolved": "https://registry.npmmirror.com/@swc/helpers/-/helpers-0.4.14.tgz", + "integrity": "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { "version": "18.2.0", "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.2.0.tgz", "integrity": "sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==", - "dev": true, "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -525,7 +1689,6 @@ "version": "18.2.1", "resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.2.1.tgz", "integrity": "sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w==", - "dev": true, "dependencies": { "@types/react": "*" } @@ -533,8 +1696,7 @@ "node_modules/@types/scheduler": { "version": "0.16.3", "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" }, "node_modules/@vitejs/plugin-react": { "version": "2.2.0", @@ -569,6 +1731,91 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.14.tgz", + "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { "version": "4.21.5", "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.21.5.tgz", @@ -587,6 +1834,15 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001482", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001482.tgz", @@ -607,6 +1863,39 @@ "node": ">=4" } }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz", @@ -622,17 +1911,43 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==", - "dev": true + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -651,6 +1966,18 @@ } } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/electron-to-chromium": { "version": "1.4.380", "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.380.tgz", @@ -1032,6 +2359,70 @@ "node": ">=0.8.0" } }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz", @@ -1061,6 +2452,35 @@ "node": ">=6.9.0" } }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", @@ -1091,6 +2511,34 @@ "node": ">=4" } }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-core-module": { "version": "2.12.0", "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.12.0.tgz", @@ -1100,6 +2548,45 @@ "has": "^1.0.3" } }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jiti": { + "version": "1.18.2", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.18.2.tgz", + "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1129,6 +2616,26 @@ "node": ">=6" } }, + "node_modules/keyborg": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/keyborg/-/keyborg-2.0.0.tgz", + "integrity": "sha512-RWY8nWrzRkwTQLaKyDtbTu5SOb5L4B20UzAsBHlQDFZqVY/+Mid0bQ7MVTC8vbOTrWY2xkkzj8gZF9Ua7re4xA==" + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz", @@ -1161,12 +2668,57 @@ "node": ">=12" } }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz", @@ -1185,6 +2737,59 @@ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", "dev": true }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz", @@ -1197,6 +2802,33 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/postcss": { "version": "8.4.23", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.23.tgz", @@ -1211,6 +2843,78 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmmirror.com/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.12", + "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz", + "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmmirror.com/react/-/react-18.2.0.tgz", @@ -1234,6 +2938,14 @@ "react": "^18.2.0" } }, + "node_modules/react-dom/node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz", @@ -1243,6 +2955,62 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.11.0.tgz", + "integrity": "sha512-hTm6KKNpj9SDG4syIWRjCU219O0RZY8RUPobCFt9p+PlF7nnkRgMoh2DieTKvw3F3Mw6zg565HGnSv8BuoY5oQ==", + "dependencies": { + "@remix-run/router": "1.6.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.11.0", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.11.0.tgz", + "integrity": "sha512-Q3mK1c/CYoF++J6ZINz7EZzwlgSOZK/kc7lxIA7PhtWhKju4KfF1WHqlx0kVCIFJAWztuYVpXZeljEbds8z4Og==", + "dependencies": { + "@remix-run/router": "1.6.0", + "react-router": "6.11.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, "node_modules/resolve": { "version": "1.22.2", "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz", @@ -1257,6 +3025,16 @@ "resolve": "bin/resolve" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rollup": { "version": "2.79.1", "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz", @@ -1272,12 +3050,31 @@ "fsevents": "~2.3.2" } }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "node_modules/rtl-css-js": { + "version": "1.16.1", + "resolved": "https://registry.npmmirror.com/rtl-css-js/-/rtl-css-js-1.16.1.tgz", + "integrity": "sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==", "dependencies": { - "loose-envify": "^1.1.0" + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "node_modules/semver": { @@ -1305,6 +3102,33 @@ "deprecated": "Please use @jridgewell/sourcemap-codec instead", "dev": true }, + "node_modules/stylis": { + "version": "4.1.4", + "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.1.4.tgz", + "integrity": "sha512-USf5pszRYwuE6hg9by0OkKChkQYEXfkeTtm0xKw+jqQhwyjCVLdYyMBK7R+n7dhzsblAWJnGxju4vxq5eH20GQ==" + }, + "node_modules/sucrase": { + "version": "3.32.0", + "resolved": "https://registry.npmmirror.com/sucrase/-/sucrase-3.32.0.tgz", + "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz", @@ -1326,6 +3150,99 @@ "node": ">= 0.4" } }, + "node_modules/tabster": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/tabster/-/tabster-4.4.0.tgz", + "integrity": "sha512-lhbh4jBOcwN+qGzzyi0+bF1B6Lu/onneSSQN3hep1fvC+O98tiXzQFOvDoDnnMW9tfGoiuvJad5ZnI3AGXMAHw==", + "dependencies": { + "keyborg": "^2.0.0", + "tslib": "^2.3.1" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.2", + "resolved": "https://registry.npmmirror.com/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -1335,6 +3252,29 @@ "node": ">=4" } }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, "node_modules/typescript": { "version": "4.9.5", "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz", @@ -1364,6 +3304,23 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/use-disposable": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/use-disposable/-/use-disposable-1.0.1.tgz", + "integrity": "sha512-5Sle1XEmK3lw3xyGqeIY7UKkiUgF+TxwUty7fTsqM5D5AxfQfo2ft+LY9xKCA+W5YbaBFbOkWfQsZY/y5JhInA==", + "peerDependencies": { + "@types/react": ">=16.8.0 <19.0.0", + "@types/react-dom": ">=16.8.0 <19.0.0", + "react": ">=16.8.0 <19.0.0", + "react-dom": ">=16.8.0 <19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/vite": { "version": "3.2.6", "resolved": "https://registry.npmmirror.com/vite/-/vite-3.2.6.tgz", @@ -1413,11 +3370,26 @@ } } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true + }, + "node_modules/yaml": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.2.2.tgz", + "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "dev": true, + "engines": { + "node": ">= 14" + } } } } diff --git a/frontend/package.json b/frontend/package.json index f0106ca..0cbfe22 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -9,14 +9,21 @@ "preview": "vite preview" }, "dependencies": { + "@fluentui/react-components": "^9.19.1", + "@fluentui/react-icons": "^2.0.201", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-router": "^6.11.0", + "react-router-dom": "^6.11.0" }, "devDependencies": { "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^2.0.1", + "autoprefixer": "^10.4.14", + "postcss": "^8.4.23", + "tailwindcss": "^3.3.2", "typescript": "^4.6.4", "vite": "^3.0.7" } -} \ No newline at end of file +} diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/frontend/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index a6e56f9..c1a7fa7 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,28 +1,85 @@ -import {useState} from 'react'; -import logo from './assets/images/logo-universal.png'; -import './App.css'; -import {Greet} from "../wailsjs/go/main/App"; +// reference: https://github.com/oliverschwendener/electron-fluent-ui +// +// MIT License +// +// Copyright (c) 2023 josStorer +// Copyright (c) 2023 oliverschwendener +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. -function App() { - const [resultText, setResultText] = useState("Please enter your name below 👇"); - const [name, setName] = useState(''); - const updateName = (e: any) => setName(e.target.value); - const updateResultText = (result: string) => setResultText(result); +import {FluentProvider, Tab, TabList, webDarkTheme} from '@fluentui/react-components'; +import {FC, useEffect, useState} from 'react'; +import {Route, Routes, useLocation, useNavigate} from 'react-router'; +import {pages} from './Pages'; - function greet() { - Greet(name).then(updateResultText); - } +const App: FC = () => { + const navigate = useNavigate(); + const location = useLocation(); - return ( -
- -
{resultText}
-
- - -
+ const [path, setPath] = useState(pages[0].path); + + const selectTab = (selectedPath: unknown) => + typeof selectedPath === 'string' ? navigate({pathname: selectedPath}) : null; + + useEffect(() => setPath(location.pathname), [location]); + + return ( + +
+
+ selectTab(value)} + vertical + > + {pages.filter(page=>page.top).map(({label, path, icon}, index) => ( + + {label} + + ))} + + selectTab(value)} + vertical + > + {pages.filter(page=>!page.top).map(({label, path, icon}, index) => ( + + {label} + + ))} +
- ) -} +
+ + {pages.map(({path, element}, index) => ( + + ))} + +
+
+
+ ); +}; -export default App +export default App; diff --git a/frontend/src/Pages/Configs.tsx b/frontend/src/Pages/Configs.tsx new file mode 100644 index 0000000..864fb3b --- /dev/null +++ b/frontend/src/Pages/Configs.tsx @@ -0,0 +1,20 @@ +import {Checkbox, Input, Text} from '@fluentui/react-components'; +import { FC } from "react"; +import { Section } from "./Section"; + +export const Configs: FC = () => { + return ( +
+ Configs +
+ + +
+ } + /> +
+ ); +}; diff --git a/frontend/src/Pages/Home.tsx b/frontend/src/Pages/Home.tsx new file mode 100644 index 0000000..0a584f9 --- /dev/null +++ b/frontend/src/Pages/Home.tsx @@ -0,0 +1,101 @@ +import {Text, Combobox, CompoundButton, Link, Option} from '@fluentui/react-components'; +import React, {FC, ReactElement} from 'react'; +import Banner from '../assets/images/banner.jpg'; +import { + Chat20Regular, + DataUsageSettings20Regular, + DocumentSettings20Regular, + Storage20Regular +} from '@fluentui/react-icons'; + +type NavCard = { + label: string; + desc: string; + path: string; + icon: ReactElement; +}; + +export const navCards:NavCard[] = [ + { + label: 'Chat', + desc: 'Go to chat page', + path: '/chat', + icon: + }, + { + label: 'Configs', + desc: 'Manage your configs', + path: '/configs', + icon: + }, + { + label: 'Models', + desc: 'Manage models', + path: '/models', + icon: + }, + { + label: 'Train', + desc: '', + path: '/train', + icon: + } +]; + +export const Home: FC = () => { + const [selectedConfig, setSelectedConfig] = React.useState('RWKV-3B-4G MEM'); + + return ( +
+ +
+ Introduction + + RWKV is an RNN with Transformer-level LLM performance, which can also be directly trained like a GPT + transformer (parallelizable). And it's 100% attention-free. You only need the hidden state at position t to + compute the state at position t+1. You can use the "GPT" mode to quickly compute the hidden state for the + "RNN" mode. +
+ So it's combining the best of RNN and transformer - great performance, fast inference, saves VRAM, fast + training, "infinite" ctx_len, and free sentence embedding (using the final hidden state). +
+
+
+ {navCards.map(({label, path, icon, desc}, index) => ( + + {label} + + ))} +
+
+
+ Version: 1.0.0 + Help +
+
+ { + if (data.optionValue) + setSelectedConfig(data.optionValue); + }}> + + + + + + Run +
+
+
+ ); +}; diff --git a/frontend/src/Pages/Section.tsx b/frontend/src/Pages/Section.tsx new file mode 100644 index 0000000..c0605af --- /dev/null +++ b/frontend/src/Pages/Section.tsx @@ -0,0 +1,11 @@ +import { FC, ReactElement } from "react"; +import { SectionTitle } from "./SectionTitle"; + +export const Section: FC<{ title: string; content: ReactElement }> = ({ title, content }) => { + return ( +
+ + {content} +
+ ); +}; diff --git a/frontend/src/Pages/SectionTitle.tsx b/frontend/src/Pages/SectionTitle.tsx new file mode 100644 index 0000000..2f075d9 --- /dev/null +++ b/frontend/src/Pages/SectionTitle.tsx @@ -0,0 +1,4 @@ +import { Text } from "@fluentui/react-components"; +import { FC } from "react"; + +export const SectionTitle: FC<{ label: string }> = ({ label }) => {label}; diff --git a/frontend/src/Pages/index.tsx b/frontend/src/Pages/index.tsx new file mode 100644 index 0000000..56000d6 --- /dev/null +++ b/frontend/src/Pages/index.tsx @@ -0,0 +1,69 @@ +import { ReactElement } from "react"; +import { Configs } from "./Configs"; +import { + Chat20Regular, + DataUsageSettings20Regular, + DocumentSettings20Regular, + Home20Regular, Info20Regular, Settings20Regular, Storage20Regular +} from '@fluentui/react-icons'; +import {Home} from './Home'; + +type NavigationItem = { + label: string; + path: string; + icon: ReactElement; + element: ReactElement; + top: boolean; +}; + +export const pages: NavigationItem[] = [ + { + label: "Home", + path: "/", + icon:, + element: , + top: true, + }, + { + label: "Chat", + path: "/chat", + icon:, + element: , + top:true + }, + { + label: "Configs", + path: "/configs", + icon:, + element: , + top:true + }, + { + label: "Models", + path: "/models", + icon:, + element: , + top:true + }, + { + label: "Train", + path: "/train", + icon:, + element: , + top:true + }, + { + label: "Settings", + path: "/settings", + icon:, + element: , + top:false + }, + { + label: "About", + path: "/about", + icon:, + element: , + top:false + } +]; diff --git a/frontend/src/assets/fonts/OFL.txt b/frontend/src/assets/fonts/OFL.txt deleted file mode 100644 index 9cac04c..0000000 --- a/frontend/src/assets/fonts/OFL.txt +++ /dev/null @@ -1,93 +0,0 @@ -Copyright 2016 The Nunito Project Authors (contact@sansoxygen.com), - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 b/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 deleted file mode 100644 index 2f9cc59..0000000 Binary files a/frontend/src/assets/fonts/nunito-v16-latin-regular.woff2 and /dev/null differ diff --git a/frontend/src/assets/images/banner.jpg b/frontend/src/assets/images/banner.jpg new file mode 100644 index 0000000..e30b7cf Binary files /dev/null and b/frontend/src/assets/images/banner.jpg differ diff --git a/frontend/src/assets/images/logo-universal.png b/frontend/src/assets/images/logo-universal.png deleted file mode 100644 index 99ac71f..0000000 Binary files a/frontend/src/assets/images/logo-universal.png and /dev/null differ diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 3626ff3..d3b0a06 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -2,13 +2,14 @@ import React from 'react' import {createRoot} from 'react-dom/client' import './style.css' import App from './App' +import {HashRouter} from 'react-router-dom'; const container = document.getElementById('root') const root = createRoot(container!) root.render( - + - + ) diff --git a/frontend/src/style.css b/frontend/src/style.css index 3940d6c..b2be1ee 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -1,26 +1,8 @@ -html { - background-color: rgba(27, 38, 54, 1); - text-align: center; - color: white; -} +@tailwind base; +@tailwind components; +@tailwind utilities; body { margin: 0; - color: white; - font-family: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", - "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", - sans-serif; -} - -@font-face { - font-family: "Nunito"; - font-style: normal; - font-weight: 400; - src: local(""), - url("assets/fonts/nunito-v16-latin-regular.woff2") format("woff2"); -} - -#app { - height: 100vh; - text-align: center; + overflow: hidden; } diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 0000000..d37737f --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} + diff --git a/frontend/wailsjs/go/main/App.d.ts b/frontend/wailsjs/go/main/App.d.ts index 43173cf..02a3bb9 100644 --- a/frontend/wailsjs/go/main/App.d.ts +++ b/frontend/wailsjs/go/main/App.d.ts @@ -1,4 +1,4 @@ // Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL // This file is automatically generated. DO NOT EDIT -export function Greet(arg1: string): Promise; +export function Greet(arg1:string):Promise; diff --git a/frontend/wailsjs/go/main/App.js b/frontend/wailsjs/go/main/App.js index 0ee085c..c71ae77 100644 --- a/frontend/wailsjs/go/main/App.js +++ b/frontend/wailsjs/go/main/App.js @@ -3,5 +3,5 @@ // This file is automatically generated. DO NOT EDIT export function Greet(arg1) { - return window['go']['main']['App']['Greet'](arg1); + return window['go']['main']['App']['Greet'](arg1); } diff --git a/frontend/wailsjs/runtime/runtime.d.ts b/frontend/wailsjs/runtime/runtime.d.ts index e0d662b..a3723f9 100644 --- a/frontend/wailsjs/runtime/runtime.d.ts +++ b/frontend/wailsjs/runtime/runtime.d.ts @@ -21,8 +21,8 @@ export interface Size { export interface Screen { isCurrent: boolean; isPrimary: boolean; - width: number - height: number + width : number + height : number } // Environment information such as platform, buildtype, ... @@ -38,19 +38,23 @@ export interface EnvironmentInfo { export function EventsEmit(eventName: string, ...data: any): void; // [EventsOn](https://wails.io/docs/reference/runtime/events#eventson) sets up a listener for the given event name. -export function EventsOn(eventName: string, callback: (...data: any) => void): void; +export function EventsOn(eventName: string, callback: (...data: any) => void): () => void; // [EventsOnMultiple](https://wails.io/docs/reference/runtime/events#eventsonmultiple) // sets up a listener for the given event name, but will only trigger a given number times. -export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): void; +export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void; // [EventsOnce](https://wails.io/docs/reference/runtime/events#eventsonce) // sets up a listener for the given event name, but will only trigger once. -export function EventsOnce(eventName: string, callback: (...data: any) => void): void; +export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void; -// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsff) +// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsoff) // unregisters the listener for the given event name. -export function EventsOff(eventName: string): void; +export function EventsOff(eventName: string, ...additionalEventNames: string[]): void; + +// [EventsOffAll](https://wails.io/docs/reference/runtime/events#eventsoffall) +// unregisters all listeners. +export function EventsOffAll(): void; // [LogPrint](https://wails.io/docs/reference/runtime/log#logprint) // logs the given message as a raw message @@ -124,6 +128,10 @@ export function WindowFullscreen(): void; // Restores the previous window dimensions and position prior to full screen. export function WindowUnfullscreen(): void; +// [WindowIsFullscreen](https://wails.io/docs/reference/runtime/window#windowisfullscreen) +// Returns the state of the window, i.e. whether the window is in full screen mode or not. +export function WindowIsFullscreen(): Promise; + // [WindowSetSize](https://wails.io/docs/reference/runtime/window#windowsetsize) // Sets the width and height of the window. export function WindowSetSize(width: number, height: number): Promise; @@ -170,6 +178,10 @@ export function WindowToggleMaximise(): void; // Restores the window to the dimensions and position prior to maximising. export function WindowUnmaximise(): void; +// [WindowIsMaximised](https://wails.io/docs/reference/runtime/window#windowismaximised) +// Returns the state of the window, i.e. whether the window is maximised or not. +export function WindowIsMaximised(): Promise; + // [WindowMinimise](https://wails.io/docs/reference/runtime/window#windowminimise) // Minimises the window. export function WindowMinimise(): void; @@ -178,6 +190,14 @@ export function WindowMinimise(): void; // Restores the window to the dimensions and position prior to minimising. export function WindowUnminimise(): void; +// [WindowIsMinimised](https://wails.io/docs/reference/runtime/window#windowisminimised) +// Returns the state of the window, i.e. whether the window is minimised or not. +export function WindowIsMinimised(): Promise; + +// [WindowIsNormal](https://wails.io/docs/reference/runtime/window#windowisnormal) +// Returns the state of the window, i.e. whether the window is normal or not. +export function WindowIsNormal(): Promise; + // [WindowSetBackgroundColour](https://wails.io/docs/reference/runtime/window#windowsetbackgroundcolour) // Sets the background colour of the window to the given RGBA colour definition. This colour will show through for all transparent pixels. export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void; @@ -205,3 +225,11 @@ export function Hide(): void; // [Show](https://wails.io/docs/reference/runtime/intro#show) // Shows the application. export function Show(): void; + +// [ClipboardGetText](https://wails.io/docs/reference/runtime/clipboard#clipboardgettext) +// Returns the current text stored on clipboard +export function ClipboardGetText(): Promise; + +// [ClipboardSetText](https://wails.io/docs/reference/runtime/clipboard#clipboardsettext) +// Sets a text on the clipboard +export function ClipboardSetText(text: string): Promise; diff --git a/frontend/wailsjs/runtime/runtime.js b/frontend/wailsjs/runtime/runtime.js index 2c3dafc..bd4f371 100644 --- a/frontend/wailsjs/runtime/runtime.js +++ b/frontend/wailsjs/runtime/runtime.js @@ -37,19 +37,19 @@ export function LogFatal(message) { } export function EventsOnMultiple(eventName, callback, maxCallbacks) { - window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks); + return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks); } export function EventsOn(eventName, callback) { - EventsOnMultiple(eventName, callback, -1); + return EventsOnMultiple(eventName, callback, -1); } -export function EventsOff(eventName) { - return window.runtime.EventsOff(eventName); +export function EventsOff(eventName, ...additionalEventNames) { + return window.runtime.EventsOff(eventName, ...additionalEventNames); } export function EventsOnce(eventName, callback) { - EventsOnMultiple(eventName, callback, 1); + return EventsOnMultiple(eventName, callback, 1); } export function EventsEmit(eventName) { @@ -97,6 +97,10 @@ export function WindowUnfullscreen() { window.runtime.WindowUnfullscreen(); } +export function WindowIsFullscreen() { + return window.runtime.WindowIsFullscreen(); +} + export function WindowGetSize() { return window.runtime.WindowGetSize(); } @@ -141,6 +145,10 @@ export function WindowUnmaximise() { window.runtime.WindowUnmaximise(); } +export function WindowIsMaximised() { + return window.runtime.WindowIsMaximised(); +} + export function WindowMinimise() { window.runtime.WindowMinimise(); } @@ -157,6 +165,14 @@ export function ScreenGetAll() { return window.runtime.ScreenGetAll(); } +export function WindowIsMinimised() { + return window.runtime.WindowIsMinimised(); +} + +export function WindowIsNormal() { + return window.runtime.WindowIsNormal(); +} + export function BrowserOpenURL(url) { window.runtime.BrowserOpenURL(url); } @@ -176,3 +192,11 @@ export function Hide() { export function Show() { window.runtime.Show(); } + +export function ClipboardGetText() { + return window.runtime.ClipboardGetText(); +} + +export function ClipboardSetText(text) { + return window.runtime.ClipboardSetText(text); +} \ No newline at end of file diff --git a/go.mod b/go.mod index cdac9c1..87c9886 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module changeme +module rwkv-runner go 1.18 @@ -25,9 +25,9 @@ require ( github.com/wailsapp/mimetype v1.4.1 // indirect golang.org/x/crypto v0.1.0 // indirect golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect ) // replace github.com/wailsapp/wails/v2 v2.4.1 => C:\Users\JosStorer\go\pkg\mod diff --git a/go.sum b/go.sum index b66c36a..771a2af 100644 --- a/go.sum +++ b/go.sum @@ -54,8 +54,8 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 h1:3MTrJm4PyNL9NBqvYDSj3DHl46qQakyfqfWo4jgfaEM= golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -64,12 +64,12 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/main.go b/main.go index f25a181..b3df244 100644 --- a/main.go +++ b/main.go @@ -17,14 +17,15 @@ func main() { // Create application with options err := wails.Run(&options.App{ - Title: "RWKV-Runner", - Width: 1024, - Height: 768, + Title: "RWKV-Runner", + Width: 1024, + Height: 640, + MinWidth: 1024, + MinHeight: 640, AssetServer: &assetserver.Options{ Assets: assets, }, - BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1}, - OnStartup: app.startup, + OnStartup: app.startup, Bind: []interface{}{ app, },