From 34aa60d47be1021cbaec0a58cf0186c2562a0316 Mon Sep 17 00:00:00 2001 From: caranicas Date: Wed, 14 Sep 2022 10:48:46 -0400 Subject: [PATCH 001/136] inital push --- .gitignore | 5 +- ui/frontend/build_src/.gitignore | 18 + ui/frontend/build_src/index.html | 1267 ++++++++ ui/frontend/build_src/package-lock.json | 2571 +++++++++++++++++ ui/frontend/build_src/package.json | 28 + ui/frontend/build_src/public/ding.mp3 | Bin 0 -> 178080 bytes ui/frontend/build_src/public/kofi.png | Bin 0 -> 11150 bytes ui/frontend/build_src/public/modifiers.json | 151 + ui/frontend/build_src/src/App.css | 60 + ui/frontend/build_src/src/App.tsx | 46 + ui/frontend/build_src/src/api/index.ts | 55 + .../advancedSettings/advancedSettings.css | 3 + .../creationPanel/advancedSettings/index.tsx | 353 +++ .../creationPanel/creationPanel.css | 48 + .../imageModifiers/imageModifiers.css | 0 .../creationPanel/imageModifiers/index.tsx | 96 + .../src/components/creationPanel/index.tsx | 86 + .../creationPanel/makeButton/index.tsx | 24 + .../creationPanel/modierTag/index.tsx | 25 + .../displayPanel/completedImages/index.tsx | 18 + .../displayPanel/currentImage/index.tsx | 50 + .../components/displayPanel/displayPanel.css | 0 .../generatedImage/generatedImage.css | 0 .../displayPanel/generatedImage/index.tsx | 53 + .../src/components/displayPanel/index.tsx | 78 + .../footerDisplay/footerDisplay.css | 8 + .../src/components/footerDisplay/index.tsx | 18 + .../headerDisplay/headerDisplay.css | 10 + .../src/components/headerDisplay/index.tsx | 14 + .../headerDisplay/statusDisplay/index.tsx | 59 + .../statusDisplay/statusDisplay.css | 11 + ui/frontend/build_src/src/index.css | 18 + ui/frontend/build_src/src/main.tsx | 37 + ui/frontend/build_src/src/modifiers.json | 151 + .../build_src/src/store/imageCreateStore.ts | 258 ++ .../build_src/src/store/imageDisplayStore.ts | 22 + .../build_src/src/store/imageQueueStore.ts | 48 + ui/frontend/build_src/src/utils.ts | 3 + ui/frontend/build_src/src/vite-env.d.ts | 1 + ui/frontend/build_src/tsconfig.json | 21 + ui/frontend/build_src/tsconfig.node.json | 9 + ui/frontend/build_src/vite.config.ts | 24 + ui/frontend/dist/ding.mp3 | Bin 0 -> 178080 bytes ui/frontend/dist/index.css | 1 + ui/frontend/dist/index.html | 1265 ++++++++ ui/frontend/dist/index.js | 74 + ui/frontend/dist/kofi.png | Bin 0 -> 11150 bytes ui/frontend/dist/modifiers.json | 151 + ui/server.py | 38 +- 49 files changed, 7269 insertions(+), 7 deletions(-) create mode 100644 ui/frontend/build_src/.gitignore create mode 100644 ui/frontend/build_src/index.html create mode 100644 ui/frontend/build_src/package-lock.json create mode 100644 ui/frontend/build_src/package.json create mode 100644 ui/frontend/build_src/public/ding.mp3 create mode 100644 ui/frontend/build_src/public/kofi.png create mode 100644 ui/frontend/build_src/public/modifiers.json create mode 100644 ui/frontend/build_src/src/App.css create mode 100644 ui/frontend/build_src/src/App.tsx create mode 100644 ui/frontend/build_src/src/api/index.ts create mode 100644 ui/frontend/build_src/src/components/creationPanel/advancedSettings/advancedSettings.css create mode 100644 ui/frontend/build_src/src/components/creationPanel/advancedSettings/index.tsx create mode 100644 ui/frontend/build_src/src/components/creationPanel/creationPanel.css create mode 100644 ui/frontend/build_src/src/components/creationPanel/imageModifiers/imageModifiers.css create mode 100644 ui/frontend/build_src/src/components/creationPanel/imageModifiers/index.tsx create mode 100644 ui/frontend/build_src/src/components/creationPanel/index.tsx create mode 100644 ui/frontend/build_src/src/components/creationPanel/makeButton/index.tsx create mode 100644 ui/frontend/build_src/src/components/creationPanel/modierTag/index.tsx create mode 100644 ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx create mode 100644 ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx create mode 100644 ui/frontend/build_src/src/components/displayPanel/displayPanel.css create mode 100644 ui/frontend/build_src/src/components/displayPanel/generatedImage/generatedImage.css create mode 100644 ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx create mode 100644 ui/frontend/build_src/src/components/displayPanel/index.tsx create mode 100644 ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css create mode 100644 ui/frontend/build_src/src/components/footerDisplay/index.tsx create mode 100644 ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css create mode 100644 ui/frontend/build_src/src/components/headerDisplay/index.tsx create mode 100644 ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx create mode 100644 ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css create mode 100644 ui/frontend/build_src/src/index.css create mode 100644 ui/frontend/build_src/src/main.tsx create mode 100644 ui/frontend/build_src/src/modifiers.json create mode 100644 ui/frontend/build_src/src/store/imageCreateStore.ts create mode 100644 ui/frontend/build_src/src/store/imageDisplayStore.ts create mode 100644 ui/frontend/build_src/src/store/imageQueueStore.ts create mode 100644 ui/frontend/build_src/src/utils.ts create mode 100644 ui/frontend/build_src/src/vite-env.d.ts create mode 100644 ui/frontend/build_src/tsconfig.json create mode 100644 ui/frontend/build_src/tsconfig.node.json create mode 100644 ui/frontend/build_src/vite.config.ts create mode 100644 ui/frontend/dist/ding.mp3 create mode 100644 ui/frontend/dist/index.css create mode 100644 ui/frontend/dist/index.html create mode 100644 ui/frontend/dist/index.js create mode 100644 ui/frontend/dist/kofi.png create mode 100644 ui/frontend/dist/modifiers.json diff --git a/.gitignore b/.gitignore index 5b668843..dd89019a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ __pycache__ installer installer.tar -dist \ No newline at end of file +dist + +# built code for the front end +!/ui/frontend/dist \ No newline at end of file diff --git a/ui/frontend/build_src/.gitignore b/ui/frontend/build_src/.gitignore new file mode 100644 index 00000000..ad930832 --- /dev/null +++ b/ui/frontend/build_src/.gitignore @@ -0,0 +1,18 @@ +# local ignores - We could move these to the global ignores, +# but I think it makes sense to keep them here + +# env +*.local + +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# installed dependencies +node_modules + diff --git a/ui/frontend/build_src/index.html b/ui/frontend/build_src/index.html new file mode 100644 index 00000000..70735b9b --- /dev/null +++ b/ui/frontend/build_src/index.html @@ -0,0 +1,1267 @@ + + + + + + Stable Diffusion UI + + + +
+ + + + + + + + + + + + +
+
+
+
+
+
 
+ Stable Diffusion is starting.. +
+

Stable Diffusion UI v2.1

+
+
+
+ + +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+ + +
+ +
 
+ +
+

Advanced Settings

+
    +
  • +
  • + + +
  • +
  • +
    +
  • +
  • (images at once)
  • +
  • + +
  • +
  • + +
  • +
  • +
  • +

  • +
  •  
  • +
  • +
  • +
  • +
  • +
  • + +
    +
  • +
+
+ +
+

Image Modifiers (art styles, tags etc)

+
+
+
+
+ +
+
Type a prompt and press the "Make Image" button.

You can set an "Initial Image" if you want to guide the AI.

You can also add modifiers like "Realistic", "Pencil Sketch", "ArtStation" etc by browsing through the "Image Modifiers" section and selecting the desired modifiers.

Click "Advanced Settings" for additional settings like seed, image size, number of images to generate etc.

Enjoy! :)
+ +
+
+
+
+
+ +
 
+ + +
+ + + + + + diff --git a/ui/frontend/build_src/package-lock.json b/ui/frontend/build_src/package-lock.json new file mode 100644 index 00000000..812e9253 --- /dev/null +++ b/ui/frontend/build_src/package-lock.json @@ -0,0 +1,2571 @@ +{ + "name": "react-ts", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "react-ts", + "version": "0.0.0", + "dependencies": { + "@tanstack/react-query": "^4.2.3", + "@tanstack/react-query-devtools": "^4.2.3", + "immer": "^9.0.15", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "uuid": "^9.0.0", + "zustand": "^4.1.1" + }, + "devDependencies": { + "@types/react": "^18.0.17", + "@types/react-dom": "^18.0.6", + "@types/uuid": "^8.3.4", + "@vitejs/plugin-react": "^2.0.1", + "typescript": "^4.6.4", + "vite": "^3.0.7" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.19.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz", + "integrity": "sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@tanstack/match-sorter-utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz", + "integrity": "sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A==", + "dependencies": { + "remove-accents": "0.4.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kentcdodds" + } + }, + "node_modules/@tanstack/query-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.2.3.tgz", + "integrity": "sha512-zdt5lYWs1dZaA3IxJbCgtAfHZJScRZONpiLL7YkeOkrme5MfjQqTpjq7LYbzpyuwPOh2Jx68le0PLl57JFv5hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.2.3.tgz", + "integrity": "sha512-JLaMOxoJTkiAu7QpevRCt2uI/0vd3E8K/rSlCuRgWlcW5DeJDFpDS5kfzmLO5MOcD97fgsJRrDbxDORxR1FdJA==", + "dependencies": { + "@tanstack/query-core": "4.2.3", + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@tanstack/react-query-devtools": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.2.3.tgz", + "integrity": "sha512-0PH8n824BnFyMrtv7q5uLS0b7jYg2tDH8vU4etkSYzV1uL4RJjiqMh7Gyi8qhYCwM+khlrkRYlNZvE0cxlp3SQ==", + "dependencies": { + "@tanstack/match-sorter-utils": "^8.0.0-alpha.82", + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "4.2.3", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", + "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz", + "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.1.0.tgz", + "integrity": "sha512-am6rPyyU3LzUYne3Gd9oj9c4Rzbq5hQnuGXSMT6Gujq45Il/+bunwq3lrB7wghLkiF45ygMwft37vgJ/NE8IAA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.18.13", + "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.18.6", + "magic-string": "^0.26.2", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.242", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.242.tgz", + "integrity": "sha512-nPdgMWtjjWGCtreW/2adkrB2jyHjClo9PtVhR6rW+oxa4E4Wom642Tn+5LslHP3XPL5MCpkn5/UEY60EXylNeQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz", + "integrity": "sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/linux-loong64": "0.15.7", + "esbuild-android-64": "0.15.7", + "esbuild-android-arm64": "0.15.7", + "esbuild-darwin-64": "0.15.7", + "esbuild-darwin-arm64": "0.15.7", + "esbuild-freebsd-64": "0.15.7", + "esbuild-freebsd-arm64": "0.15.7", + "esbuild-linux-32": "0.15.7", + "esbuild-linux-64": "0.15.7", + "esbuild-linux-arm": "0.15.7", + "esbuild-linux-arm64": "0.15.7", + "esbuild-linux-mips64le": "0.15.7", + "esbuild-linux-ppc64le": "0.15.7", + "esbuild-linux-riscv64": "0.15.7", + "esbuild-linux-s390x": "0.15.7", + "esbuild-netbsd-64": "0.15.7", + "esbuild-openbsd-64": "0.15.7", + "esbuild-sunos-64": "0.15.7", + "esbuild-windows-32": "0.15.7", + "esbuild-windows-64": "0.15.7", + "esbuild-windows-arm64": "0.15.7" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz", + "integrity": "sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz", + "integrity": "sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz", + "integrity": "sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz", + "integrity": "sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz", + "integrity": "sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz", + "integrity": "sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz", + "integrity": "sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz", + "integrity": "sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz", + "integrity": "sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz", + "integrity": "sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz", + "integrity": "sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz", + "integrity": "sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz", + "integrity": "sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz", + "integrity": "sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz", + "integrity": "sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz", + "integrity": "sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz", + "integrity": "sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz", + "integrity": "sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz", + "integrity": "sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz", + "integrity": "sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/immer": { + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/magic-string": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vite": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.0.tgz", + "integrity": "sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.6", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/zustand": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.1.1.tgz", + "integrity": "sha512-h4F3WMqsZgvvaE0n3lThx4MM81Ls9xebjvrABNzf5+jb3/03YjNTSgZXeyrvXDArMeV9untvWXRw1tY+ntPYbA==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "immer": ">=9.0", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "dev": true + }, + "@babel/core": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "dev": true, + "requires": { + "@babel/types": "^7.19.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "dev": true, + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", + "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@esbuild/linux-loong64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz", + "integrity": "sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==", + "dev": true, + "optional": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@tanstack/match-sorter-utils": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz", + "integrity": "sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A==", + "requires": { + "remove-accents": "0.4.2" + } + }, + "@tanstack/query-core": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.2.3.tgz", + "integrity": "sha512-zdt5lYWs1dZaA3IxJbCgtAfHZJScRZONpiLL7YkeOkrme5MfjQqTpjq7LYbzpyuwPOh2Jx68le0PLl57JFv5hQ==" + }, + "@tanstack/react-query": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.2.3.tgz", + "integrity": "sha512-JLaMOxoJTkiAu7QpevRCt2uI/0vd3E8K/rSlCuRgWlcW5DeJDFpDS5kfzmLO5MOcD97fgsJRrDbxDORxR1FdJA==", + "requires": { + "@tanstack/query-core": "4.2.3", + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.2.0" + } + }, + "@tanstack/react-query-devtools": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.2.3.tgz", + "integrity": "sha512-0PH8n824BnFyMrtv7q5uLS0b7jYg2tDH8vU4etkSYzV1uL4RJjiqMh7Gyi8qhYCwM+khlrkRYlNZvE0cxlp3SQ==", + "requires": { + "@tanstack/match-sorter-utils": "^8.0.0-alpha.82", + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.2.0" + } + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "@types/react": { + "version": "18.0.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", + "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", + "dev": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz", + "integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==", + "dev": true, + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "dev": true + }, + "@vitejs/plugin-react": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.1.0.tgz", + "integrity": "sha512-am6rPyyU3LzUYne3Gd9oj9c4Rzbq5hQnuGXSMT6Gujq45Il/+bunwq3lrB7wghLkiF45ygMwft37vgJ/NE8IAA==", + "dev": true, + "requires": { + "@babel/core": "^7.18.13", + "@babel/plugin-transform-react-jsx": "^7.18.10", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.18.6", + "magic-string": "^0.26.2", + "react-refresh": "^0.14.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" + } + }, + "caniuse-lite": { + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "electron-to-chromium": { + "version": "1.4.242", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.242.tgz", + "integrity": "sha512-nPdgMWtjjWGCtreW/2adkrB2jyHjClo9PtVhR6rW+oxa4E4Wom642Tn+5LslHP3XPL5MCpkn5/UEY60EXylNeQ==", + "dev": true + }, + "esbuild": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.7.tgz", + "integrity": "sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==", + "dev": true, + "requires": { + "@esbuild/linux-loong64": "0.15.7", + "esbuild-android-64": "0.15.7", + "esbuild-android-arm64": "0.15.7", + "esbuild-darwin-64": "0.15.7", + "esbuild-darwin-arm64": "0.15.7", + "esbuild-freebsd-64": "0.15.7", + "esbuild-freebsd-arm64": "0.15.7", + "esbuild-linux-32": "0.15.7", + "esbuild-linux-64": "0.15.7", + "esbuild-linux-arm": "0.15.7", + "esbuild-linux-arm64": "0.15.7", + "esbuild-linux-mips64le": "0.15.7", + "esbuild-linux-ppc64le": "0.15.7", + "esbuild-linux-riscv64": "0.15.7", + "esbuild-linux-s390x": "0.15.7", + "esbuild-netbsd-64": "0.15.7", + "esbuild-openbsd-64": "0.15.7", + "esbuild-sunos-64": "0.15.7", + "esbuild-windows-32": "0.15.7", + "esbuild-windows-64": "0.15.7", + "esbuild-windows-arm64": "0.15.7" + } + }, + "esbuild-android-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz", + "integrity": "sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz", + "integrity": "sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz", + "integrity": "sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz", + "integrity": "sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz", + "integrity": "sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz", + "integrity": "sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz", + "integrity": "sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz", + "integrity": "sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz", + "integrity": "sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz", + "integrity": "sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz", + "integrity": "sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz", + "integrity": "sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz", + "integrity": "sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz", + "integrity": "sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz", + "integrity": "sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz", + "integrity": "sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz", + "integrity": "sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz", + "integrity": "sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz", + "integrity": "sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.15.7", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz", + "integrity": "sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "immer": { + "version": "9.0.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", + "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" + }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "magic-string": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", + "integrity": "sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "postcss": { + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "dev": true, + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true + }, + "remove-accents": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", + "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rollup": { + "version": "2.78.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.78.1.tgz", + "integrity": "sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "typescript": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.2.tgz", + "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "requires": {} + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + }, + "vite": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.1.0.tgz", + "integrity": "sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==", + "dev": true, + "requires": { + "esbuild": "^0.15.6", + "fsevents": "~2.3.2", + "postcss": "^8.4.16", + "resolve": "^1.22.1", + "rollup": "~2.78.0" + } + }, + "zustand": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.1.1.tgz", + "integrity": "sha512-h4F3WMqsZgvvaE0n3lThx4MM81Ls9xebjvrABNzf5+jb3/03YjNTSgZXeyrvXDArMeV9untvWXRw1tY+ntPYbA==", + "requires": { + "use-sync-external-store": "1.2.0" + } + } + } +} diff --git a/ui/frontend/build_src/package.json b/ui/frontend/build_src/package.json new file mode 100644 index 00000000..dcf74148 --- /dev/null +++ b/ui/frontend/build_src/package.json @@ -0,0 +1,28 @@ +{ + "name": "react-ts", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build --emptyOutDir", + "preview": "vite preview" + }, + "dependencies": { + "@tanstack/react-query": "^4.2.3", + "@tanstack/react-query-devtools": "^4.2.3", + "immer": "^9.0.15", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "uuid": "^9.0.0", + "zustand": "^4.1.1" + }, + "devDependencies": { + "@types/react": "^18.0.17", + "@types/react-dom": "^18.0.6", + "@types/uuid": "^8.3.4", + "@vitejs/plugin-react": "^2.0.1", + "typescript": "^4.6.4", + "vite": "^3.0.7" + } +} diff --git a/ui/frontend/build_src/public/ding.mp3 b/ui/frontend/build_src/public/ding.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f2843b06cec845d487e3a23076dddaff619cc36c GIT binary patch literal 178080 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

9w<*Wrq?F=}3-u?n;a|ERE78E3};) z4bU>xCp#HuW{?>3#lWO@pE8YmMEfp+Z|<=@<8r zzHK-DQyG>_j;>eRQ)F`A@pLmQzIwYYxxTjk3qdeaNcpUHE~hS~r82$wQtez%^A8-%ivBNp4dd4iCgp`aMj6qw5^R@{PN?HGI5%g9NJNVfkh8JY}lAqR7m)ZB26M6)In~Gmp996;Cw_=d}kcM0PIqRs**Ws%p`QPYnGrdHCZrPy$O>B%z;nkA>6kRx)-D3xxv^ z^a6V@Xr=peL`b(|eM8CUPh9P3&OECgR<+^i*TIQ@FaEU~veH{&ezBbX+gvXv#Kr4` zu-!$AUU!4OY*<1g&ax(^=hKlVNwd4jF{;%53e(+0KLdTLzyUrZY&QlOH0**Ix&X!A z0zxLNr1sdSJ^zq{=(8~d7fn6C{>CszZwsAsCv^n20kQOJA06-GTtZE31GMOtMCgk) z1o`-AEsGG3H#eT1bP%MSy!*Y{bY$`PuI7h{{fWu0a(8x@{gA|dGZ^@?Hhd)E*sTVe zVwdc77uOrY(P7XsusxB_lvF+|5-Nwb?MQR41)R>zc1J&_T3v?xGE10Ykvsc(Fa)& zk^YbWa0J+=;8i`LPe;1@q*D(<$8{)T#KbeK9dp?TVofP|-Q2JnQ2m-~8@!@muYW{;y*Ou~rZ;yJlz$#o znK(aOU7Bwhj(>$#u#~5QbQToCZW33PjlFTZxdLJx0RQK+N45(VgYO1x*X&CRn|4~J z47(Wy&p7%)v^}S?5=(PFXO?zM+u3uvqf0x8my&haE}Bat$#;Vb`rno|&=*kKaX5b^ zOMFG{y&$_`Cj;k9ow6 z_UF`*qo|U9g&-OS`_Q?WJ}v3Oh%eG>&lHXS3o6(Wa+ratO1p!=o1AW@;!X9h>L$)| zsQoYL6=vk^RAGO0;c6MAj%_zkqY1GuTtf3^52%$DRhI~9JWI6vk(FvPCDQEAs*tLe zIiR>D%kd3Z$RU{S97|uygndHRDl=LsMpYp97OIlt9$>*Y!A7F6FQZT|SzN3hQvqqx ze#rK=@~30W%LRn?)Z;if?s)a3_Eg>`1Ku3QXykrl%7*GdC{P<#Xu0fEX( zw!d05l48LADx$#j;OH#nW#f8Yk(w+%z*^>UVyokFLG1>%*9(kEDrW( ze@nqWYq1++mp0^@4(Gyw$0eeS$x`|qCl`^h9kZ`Blcbw>e+HE-4w!ww|HlB^A1im@$b>-h+vy?y(|Uk(FWZ(Tj$1kF z&YcGvbYLYwwgIQ+FTL&h(`K^uT`m9y75oyQo zJh}?co9yJy%M1{$vW0;$ZUBIjzUY4OViJRV8nh6=0;tGpRM`ku46>>L`_CC{`fq>^ z0*F!o9f59T(7H^8A4jsrWverNTeU6@HLF@1l*f?$sRdn)4rmoe*|Lg*#qd}#XLL1g z8=4D)5O;aM@seT6**L(_!I{%*6;!o5|8=Ch@OLfN+UcMWB1#n&yKr-CnF2N)%LIvq6b+OrK>>NTV{i0hv7?=6NCVR; z!UCTe6)<;!fyWf9hRF&6P-?LVoJdlj0vM7xd(%>Z_d}NXMi(o@l1WIc%KviM#B2nc z*hv(3iWC0htWpWG=R}Q6psG>T$Qnc}c)@kcNLOGy-r2hUm-?6at0v+r|N6#X$!(}9 z0*_E7>lDaNT+ls`)iqsj+4-{d{Yryc;ILV-`4#R?9R^e$ysciuv(*ajGC1-L8XOaCj` z{VTt0RZju)`M{y0O752w=V2d>-SDOM!)iF52m-ebOW2^uhpo~|xfHu)!0B9As#JO z6ck+BnpakEW1DkNp4hr;i4a{F3Q3J~c63pZg!+u)DjDS-_rkOM#ykzL=L3q4A4NKa3=bxId!xPa-TBi;rrB?V^7k*Eb7FnJ6xzEvCUK^`*l7->z zIp}*dRfq{Sng8w8(cKp|xL$5((cW5HQ5a3K#gQCr4%_-Xv9(1fsJYc;)ZQzwB!$4a zsE5`|g~e@!eb%<|@8ZFG?_JBb@v%}3W%Q}fg=FSZUq5ud{s#Gro5DT`!KK-`Yp@$ z&!bu@via|FuDy=pYW>V}2W)IB;nF;3#@if!g^J=;*KA6kyRc%Ozb5(6*h0_{jQOnE z#IPEr7W&tziFLNKCCoV=#`zet7$Q){CEys!$`ZDrCVS+ow2BmqKW;;+1c zZ6HhJ4!$OLJF!ZqJQ3KMS>UDy_8yMp-Jsb8_9L0#umG_Rvg`9tLvxTHdMH$2_5$$v zXP>8lyiqSav34KdMhq0bX^Bwo?q9tskZS^N0gK%d_EaXfF2Sf`_*j*N9oRH(>;it1 zG&%sfIdX=ALADK+G{?OKe#6=jg7xMI1^cD)D~YnefeaAy1)6Zlj}jh%eJ1!yU>PtH zDp=WoW0XmMN!q5!KTHPHMOnrka7uH>9pI@TJptHa@b04PV50`{lDTpW0N~SDv`VuC zH(j_ygKh;+fW%wGF%WMjx&xA;JH#>IFM!B!74guve61b6%T}oEE*`dTw4}F^ln{?; z(K`oEUhKG35TU$Npc%ela>Ai9QjRxO%SeQWLsB-&dgl}?0UM!nbFB%87AXfL$w3E* zGoau5Ohfzl?5d_*^9bgm-Q$kcwtbi1)T~-}N&1UxpMzp%o(B84h@exsgkJwYmm;Fc zpd^w+`0g3Y%!|Oq0~wi48@Xt@_A*?Vde~gyr8XhR$78caT2O0{NT282d)Okr1!#WP z_JMqnJ&!bJ+;yGbfU>GO8Au7QSSSG5p>wkZM{1r`f*lX!ZPLu$3B;rGs(ZBLZ_Ha1 z^kjly6{>e)M&Di~-XrpTno_0g{Dt%$0{!HE#r(CFfS>c>S$24R{)~->7aF0ql1`Dh z4Dv%`nCK#LXSw0u;ki-am0B@Iq0>~~*%fG|h;a58{OJv{ze2S+u&i3>fJS|iPaNR- zWd?lpopJZ@od_et=^2V4j{vMo%ZoWflea8bi!;jOj|dmTxGdD_b^$QXgamGq>rm)w ze>fgf%73x3>wuncY`d;eHI<`zBp7W@W4+f!GT&$|X#+7cu^>g)`K>_8j4(<{3cDXu zIk=K+Wno!a34~>tx^mm>1uwSix)ymv zKK9^|iB-06&6*+PNp-j;|Aqot0d}z(y4dT!r~P^zMa}=ZE1&Y?PSX&~C?sH?MpK-W zNz}Sil;DX-zua_k`d0VzjxS7N9Q5;yP1B(A=GF`%|NLnyVf$Yk&z-5?&zKd(Tld`u zx`zz%ggXDl4LilpMj@f0=7idspWY+K`I8_qhIxzJmZ8o1M?Y7c;31VZ=s0xG_tKoLNiR`o7XvLVQLYs@S#mHqf^N{d4RK4$uOua>|9Se)Bhh z#kU*;;l0v@zt&zoUybRbaq|&i{#hn*MrV%&DO%T#aC_nqBCRNl>4`i0J!)0g21a)S zVrbf$P>1;-IXSb4hgye{_J#d9=5yZq0ra`gdiZRx{!!=QcXzB#Z2+AF|J0XFzjfL^ z(hYWhFnh|s>G!phD~2bY5FL+scoTYjvC#F%JSI3FzwbV;`Uic}QCi|?fYyfN?Ojz4 zPs^X=x+LMf4l&+%og#gQ-s^J8c6U8Qkzm^}9qSd{monn|bK}iO{XL<1!v0xc3iYEM z_Q|hs1C9Y}7#}p%2~hu1{%n|;PLYqWwp~cW0_=MwN@M^Klsc9w+u7mg1LTZYx8lvW z`$|0~KQNhc0b#Qq523pA8Jqu{`@E+m{JLA!d0a)8S5dY3C7s#MD*@zF>y?}Sn9OJi zfF57=o+sA*{pb(+4lToT^izQjb$`CSx9$)8j<{_*-fw+&?RM#x{Z41r+}d~fw~Voc zKX3i^Gw%EK%NL$sWw$_1VfBjFEuIHEK#)_-fXPaJi~mALNK*iHE&Lp9Ve!p@gV+Ba zx|?j`UUNTrb>Y*=tZNp74NuKiGb=SX7JBVBzCyD6Q11cFmvC5r=KHhu?+`$r^T2I+ zB3T+0#U7br8*f)0|KxDVx+-rlV}`K*d!yfD#bm<4^c5ED{<-C-+fB-iyN6)c*OSmE ze=kq=#KmUBF&}-?K72H}^Yh1lKGdAn|JJVMc{ujbu3KuCqEs~+R-Rw~ZA_k zzrI%X_~QQGk8ghB!zn0Qdil4V``%v$kB?4N#2`o4oZSIQce_^vKf;c_-DEtH`^+x8 z_np}R{h*Wk-TsZu%NoDb*tEP7&{1g}t_|aEHs-$zmRP6?II76`Q_7qksXZC$na-p$ zP)G$rt=+Q(RiCsvdL2p`iGagIwIOs00SJ!CgdjWu3G0wzw9McOm&GX$tLQhpZ-Z_E z2!;o<^ITAhPn%*|(A~gFZwev+vCLR^8F+&aLbkd=j=CZrm@S|1j+NUTBZt_5R6I>A z-c%DO?gAh6k<-eKdMO8-4|ok=pNa?JPdXs%7#aL7Drj-0?z00+XNs zt+oCFi9hT=^AftF{*U*T3Bb?5jGM^^;ga1F`8Xh=a0B=OfLp1z0tl*55_}UNgvCvp zE#3fRvrshvM3JE~im-pnuxN*=IUo!Q{F{cXU2=GOND}6QQ$ogWu)c}U4D=A6VTZ2j znYaNy;fv>31=Mcek0tk=_IN0EGQh9XWi@REKsf+|pq$s89kt%PO$MsTOI&lMJlGdAT_9Vi?#48UvGZ7`nbKPdV4V`6MBAp10is*Pv+&S+1RG zYTjB|w!}24a#jK@M@zW-97~={nc~+@abXKAm<0@kj|ITx6htbmFtRF{qKC{uA)A2! z?JMHIJ)aTh3k*7)2qtk566R@ul!JZ8Q(<&2;I?=7 zkH%5*glV7TD)d6yb*N-Ig^l&&{sE&K5ReGG5{AGK>A3M;E1M{r$_bF2z>kvFPG3G! zgT%54e7MZb;Oq?(rL|K)5;DCV8w0AVS4U3dmCIGRRa{g#nG44?Hu;{r$ZnpK;A`ty${pUo8CY9}WO>8bz=|PSWHCfoZ+AZOm8Ax`9nT80Jq620BQ)SrCZL%!38I|62sne6{^)qM zsMZSs&u&FqqPcY$6Q9Q|ah%o5hYwu6!0i3yNBy`rMrK%$8Pn+=3aZLt$nIc%gPur8FULI;>B4!fPEw3g=LlU+;;o2c z7-Qftn_N$r)**dyf`lS#0m)uD5=SLm3!fzhQW_BcIYl+4)^^5&_$+nclyCxVP~e}? zlF3pqu`mGwG*y8}g=zga_(H9yoX&&uvdOAIse%QKVc9G3Fd`2$YSgHvK1*sq;xoc( zRkHwR;5I-<=u8u;0d0;2aTk@B)|ob5oaIdcy<7|mg9iO1SyvaYfFaW9;KMq?Sq#Av z^tn{UY|kk|&0;}tmw`J3z9C2CQ6-euELA0tFCsm1=(OW-vh4Z{>23q_{expVuC&Wy z?AHV}K#$odBD8{g5fj#0i$=lPn1}<+|4A840b&Mb#zautxFO1w+%RCbgjSAXJ*uWq zn!^UHur`I>PXsT5R~2{#V*4=B*(jTpA`_^pUIX<>B@r~JmapHw)_Xp%(gna{d|X1W zyFgGl$Wc@CY{SPC^(>3-FiC?wpVZ>OHHobT2v-)e2unc4xn!+lO#)O3fL|P!AzT7{ zT3ry1`0^ya4R#U}Jf(#%FF{_Tc^oI!f~h3m1Qdl?zL0o8mhgR;coA!)eMSj2Y@-nH zFPFQ8eMAf^ryMyO<9H8J>LxC)UO08S^IqW)qrTNJC^YZp`-$xAJLY>YnD4K(RQx;$`WuZFp%%MaTb>0FDLJRJ(rL-bn zfq|AEjR**&%qYZbFeo(cc3RQ~0OWf;De9v-hHm~GNQw*QGlmu2XPgnM5d!guy;Ak2 zg3+^4csaBnKuPe?L20Laz`yA3oQEv=poi+Voab&@PpX@&`V(B!U(}0eu;#8amwVl6 zxgoKZ+T{AGlXfW6d9|3onJxoSrmv10l9q!d>ju-;9XIRIX;Qe-(7OM7$xTAG-sY4o zNr~da&)Hc(G9GYuS0L*W1<#25ZhAUpMJXguSnPM@%wTD-&HmiNOEZjwGM(= z51LqETu77}G89CcS@dbwZAyf93KLn8Dh8cIQK1qsZfVPj zs}7v*ZCdN?@#3dTT1z$Rav?jHo&Yp7J&h|{-vyl~3SZS^^WRzZ&kw=;7Xe4BY2jbl zt(y`(qFhBIIz2Q7TZ{kxd9{`SQ%J9F`| z&dWZ7kL4~ynD2Jf8=dMo3ViX$^uvlEXrsTOln$(b7kz1X7jkovdFdUasyFtMH^x+Z zT7rXofh)Y7#4@Ie-zZfLFJ=IT{;K@3H8X2DcjKVaoOj!EMhx8{;^Y#o;G>}1MSFV9 z%zE?EMviU*{f&L(|J_^xE2svBJb(Ci&VfkC~)b=)-%5? z{8d)@R|TW;`|2B}N#BhhhE1X8N3Yp$I5wzbpI9S!=;gYpknv4!gOSiM-Y}MW+<&!D zn8!XMG)ky0qR$kt!I)EVK!3>pY;4ci((={0hpRyihJon|9P-g45A7eH$ zbp>X!mr=~TP_K>644siPHai{Ydr=S8{`=8UcEtLVS{q*( zeQH>JH2Bpg{DHaQGp|$bURti=>YAMze;tXHIGs72_oIf>tT_7eAn8#aBj0s><&kGg z+pkckLYFO*66k%J=%rWc_>0U)&B5N4-R48eWd|Z+F{8|HD!dPogN?`j?wxM2PU^nf zmjE8>O}(VyTXA<&r#{`ipXk*QU zIAXBVG9^_3e(^E})V!!O3I~G5-hvt(zT>#=pKF-*gQ7CJp`*i%>q;&jtni{WQ5MMZ ziQ114U#I5V<92X_a()m~mm^D|j^d%&OQ$wA?a7Pw*+{Z37WYNVd3@%`-AvnSlhmo8 z0FR6eQ%bLWz`vtRY_HZFe&J6c5MJ?6?S+Z!ruFnIM6!-nU$Ps_vkzwV9zNw< z8L;^IzLNReQh#wjRM0IKa((_qywiK(lhk7hXRU%B>wj%o_S+d~vUAdeGuz#(N6n!P z86>JCf8VgY`>4Q7%a=-ArgyIpO8wA{rQYN{*4^8^^S||lJg^pe-)2wWcJfVk)?@yT zd1XvfaGh@4lso7nqFbvi)0QuoS->d6^zOkAkA>%-| zRedT%MsPRJW0>B>n+r5Le+N=Q&|VFkN`s_eX9OsIrpRvfJ<<7>WmwJ}v#zQ2RFJ|g z8(+gCz%GJW3`m3ZW+Eq%(`}l>8^ptj6z`kIx8&>rgH6a}`(bF=(#gnE4o zN*q-Lsf*9V-!WInxfZG3%e)}D&>I>O&E3s`a)TEOa=nomG&X@)r$X#lESXY)--h2J z!U;qH-lMz|>==Ai1jC?nbVJFiuQSY{mzta8=rM#V0B!w+C?mkk!liRwG~GR-Elw9Majuhq!&VOW%Ke{yK^`3ak3Gm zBA=eBgSRGg@^#?gQ$P)H8_2LFzcief&dz+`!c_w5fX@Hn6!V_K!o=7fe47lD1OfE1 zoCKkPckgUX1|$1a&?^V~RT-1>7pw_rLH8;0k&3b(BGLqsQ7|V44FT{|FXPvfck@}3 zzhI+a)~W~!q{Um{uQEkKJDo+Li`Us@&#bfZLBKKC-09Ap1y}O--Tyh7@o>$bhoZ8@ zgC@NQ>+k*b>6_~tKaV@iGwe`mFz)-UTnin2IS-yr#tsAdvU>)in8VpekG?x|G-vy1 z2i4?nff;uL>bsqP^Uv@ntAR|-|PB5zu$E||2&bV36pux=l#C#`?b~Gc2EraW5!@~N$=y`F)wN($Gm&>21{5s^?&h(M-p!q9L`HF6Y`%$lswrM#=W*=x3c_TN9)d?(rAkZv{RuS4L?-t zZlXQE{B<{JCg;$kNbhIA|MtYVZj;ZeuO}#UmggDGa98;2^iO)dHqBeyXQH{E>Q)n2 zu!K$-Jywxz99lAdE|%qQSh&&msd&%6cTop6aZul9s;Zee@=oh5@?;-qum;@s?9aa`~`OmZ& zPTrE2VdRq?@*Ri41X$~k|5iX5URR|2Bjr9NK1q(C;PhOMzp7lB&?|^Hy<+somx{M5 zPp%?Y9S?rQeS5`bD_6e$lgDercdva{r}`@D8m<(0bf{HOU*NtbgJH9tI z-p;grG-+OcN%rZ<6_ph){#$!(UFp#$-=vk>hu$Z1?JjfaODFDbJbKUUr<3PW4?hEv z%zycEw>=N@#`cs#Hq4#_iBImP%zwADwa49W7GL!1nJkM2ez>sz7IOXe>+HtJ;QT$| zG)cfA^T})D(iW#+Lrs^jlD`tIUZNCa#qtqC_K|}bIioJC3%F0;@4f8+99KOmQRjDu z6f|nkd4FwqSYHCRP<2I_?DU7in1d-#PS{|N>;L<`sOIo?Px+Odzqvd;lJn(8v|7b9 z=I#ya(3=qn@+;eX0zPR3&JW5~n!hXk$Nl#=9SiSv|2`B`v+Ks9JHb25?!RfjU6V3* zZ^@jEp+`;Zt=82q{+couO!di}>L?#@8_BGW>#z*hk=W=Q}>VB+?QHBYSJvJv)*}ibzH|c)tgn5d&+PBc6ot?`_c&l z{Zlp!UIfZp!<5YHW*BQ0ys3TFa>$y+Yj!I68pvtv|GedZciWbu$#)j}m5a5UbC-KX zVeX2l`E9!~r)10ZcRvv8J~$~~-2Tr#t8e&>#Y?X|IQgLEmQ?>LAx6RQpbm&fpVgJr|e4nGR5&U!-G7f62RJ`oH`0#tdNJ!&tLq0&N zc^;~qncq}VjYh@dRr8}*Y`=w~R0G;0EtI3GuS8~8JW@O|zuU;T5mjoQA9$xZY#{s% z&b1cte}?|I5A$Qi_75jK;_*m6tR~*!``t0NhE$Bk@RF`&FSn1lFe<<0u3-JwT<|F+ zXWj;sPo;L1uZLhpcdg4t>QI^UM_TB`r{2ddY@TAy?5R-r-MsNi-TTMR4e9#c ziRM>#J}!PCf01(W`$ID=c=^7p+PH%_aC0qPbai$5+v<)_hj#{^&Z23U#M#L7IPEz? z^JARA2EQ`hB3c;}N>wi=geX{bZy=&^0az7Ofr2URJ9M2(Vp&a*hqsu$ z12tMl4o(Q(aZfh6NoS3ckDvU6i(EGku#_H6P~jQoCTSpVYtIRbs_UEABY=##bj z-}WuPKJRGQ8M4WLHc$TQjc(ryOc`uK=kD46YbjGHkpJ9qJt&)nD|i+jx|f{Io=j!$ zuTh0*wd=j~_bu}I^X{VVMxZWVwD8Nsu{Rqiur}#DwZl)57;O_5O*cetR$y)1NE)sY zcAo{4s5{;ckb{|1CO*o0D;mueL4u5)A3J##P_}^e?lSk>`-<}_yyv=O6zOytcyT_t_V-Lw)S+7)@K@%#aihlxg{dOA6fk zLS4TpMd!o+v0G!oJY|Ots(17~*1%d#`3ky@ttS^YJOOr_Yl1xO_OrNCk@Byqs>|LM zRH%G=3G$N=o>j}HF{AnY#5Xx5!y?{ATj8)}V*5oKA@4Yk(#HX@YjHRYlWc0*BvNV7 zqoS9gj-f<~gJ_~g{aPyCE3}~l!l`=4GS_!K0h_GpIOgnLo2&$C!&%&D6m|UCc#|cj zIkGoBX5NxZHPMiOGF6J*Gb5tFE#gVRYB`8C{+;)eOO|lJq=oLaB-{pVf~@ZyS{mxR z)!HqAi+U)tX@4IL=1-U$S6pbw>>S2%pk4v5OXFApsvvp}$(bOstwPn58o)4h%`tkr zm+ce}2kA^W<*4(!*miOk{Tx@n97Y}~qEPQ2x9|>T0{B}qx5Jo9mq2WuWp&4(MxoTC z`ZPsx#}V`D3eeAKQUc?R!1?M;x+f|rh5PW^Sj!g&gC zk%kgV=5%Y_qFp|HjP>|&i6a<{0$oy4OMyO#2pq{qR2?xIEuU({pjtMq3gt5!vFMbV zlXB?;)VBNE3fOb^?^#nt4NuceqTCQ6QGVA5@WPX#0ql;91W`@qxs7KaU@_$6+!J|? z7IvKsvIavA4%NlRO`QSNk>`(eEp3bgp#>u!co9fo5&a|Lurrv``-49{*3Ll; zQ+QwCU37gcG6bWT`t49-k}iRyD3{YI&RvIaGg3JPVARPk>Q*jbztxUs{>l_-2WNk< zJ?@119ZbU!+yN0K##{W-ht8YX;9&mjB(ys65=i}Qd|k3w1oX(xLt`{@t@B>s z%RWY6EjyS9CtA@fv_P{M&y)xhc~0rdX@e_DR}enE0H)@eAt=5hHX@WcFU0K}%!Jmy&D$+05&*!FH! z*Z`zVZpqn_GeR6-^%3q4B3q!wa;#Wlr4A0N_mb)m%2gk-(PwUR@KX)JVxuN;wq#~Z+oH@!$YuQ({ zp4Q%@9NyV7eWa(^F5TY4d9)h5Q1-<;1+HT!<5;xuRB~$d{E?En9$JA~BGI~MZSQcE zz>E|G!h34sq)~TF=`n73`CO5Ywp|q!VO13l7^s<`{`JdS#k}tjE-gIJZRM%jd7*zL z>CSu)*k(BNf`b-hO4*h+-B644PQ6)rsn0lneA+H2@t567{`BJcE#MiobN%CYe6!Ve+#x%idvg+qz9D3Y+LQxOipy37-;QK@&Q zbRVDWefp}2j^n{DmGPYN7O4-rk3Xb3X(jXQ9dPolt=1~>dBdI4OfjXD^l$_dmnyt( zX+vh6v!?+;4YpVnX2lubW1K{foC@M;??O`MJA56=OWmo6w#M4fk5r*nVv5^jRI%Z- zkO}5(b544+_ zG`lt~`H|6f?1=BHmQ zclu+s?n|>&3M7FS?ec7&vOc_)W$Qh8P#$~6g_cZ&GncA8P(K{C#$uBikq*= z*4E68%zk9-#BESui=3M6hWsdtY%z4PX&B*R?MVxHL_aCKf{3m{DfOi7U;C!md?5U+ zrTiYo^kCnEMrReQ-`Zsx(>~BosO4F|*^xA2R=MWdwO6N-8`IyvRm6D~vMqN-8Ozxx zCePojc^PH8cVx{~|MM?jU5;*lCeu2M+N~9+d;out9N4?>w3A;5^Q}YvjCSJREAxUH zNWj7ID(tp#!n5)_zmmMRa=wxRiY8aEHhOr6WjKxD`>fXOHEz%ER`X`vAbWUkb?7ka zl9iTkB(S*?GuLnJ)pk7aINBjAn^ev<>W;=5`-@h~MG3&1ZP!TX(Uj9pN)v0(Ytx$2 zb$WhXzlM-+h1yfGetA0nZ`5Z~&1wGg260$3RUNM+x$<&~z2v`ShMjK2XDc&9H0BJ? zs#)pZnOv+PN@L4U$k4D#e(k=wG7$xN~X15*ano_GwRLdaM#$wQlRq!GAFv&sY5H{Ue9zSVSnzgO8R-kRS7gEmJ ze=gWKdza!SEuO?2EI2+{_in*julvN(g4&>i4F$A@X@Pu!1hl0$p(lIq%6zzU)c?JL zqasim{z}f_r_4u}JvC!|0}vk_`Du-ceBN1^tI3gOk2P_Au1k|ext(fFby|MxkXbjq zq?1?95I(V*b{7oVpzYneor_t6+RYiI^}96~?)wC#rr`X!%GYauVRK6Q_K5k5wu-e{ zJf^T`bsy)cD4@UgUwukZzaYz;UV$HX0$I*J6R=b)ATy>~&6-4v@~Qqes+1?D@w(_n zQ=b&mvSZ1@+K)4js|QLqGUKnt%-z3?^R88}dS80Wm8;z$k~!{$`3U+@-(Ghv80tKC zN7i>p7w{vUjNet9?<-3&?~cUd+-eimI!j+E+)+3{82O$#57YLQ=8@mhj?1?jB=v57 zGDHYmYU*<9s8>1uZt##|`@93gdsLoh)ie@?CKUdoo;P_(bi~}ZQhk$JHlF2%xuA2Z z`F&?iOED$is-l0~BQW=tBaegXqBhK5fO#ToZ8axVz3KZvsn56QNcS2oBU{qTO<~^* zI~Qr63C|Jl_WKcgM@N^SZEGW9Y+)uYp)=ncm_517ZExmZp3AfqArnr-t0BQ?0;(t&Yjgn0-HQ}kKzohd^m8%l`NAeOdys^) zdfIx=cy)Xu$?caQL?566U4o%qMko09@x?pGK)Ven_V1)iGdBhSh8|2eLOy^J0{d(J zrw7h_Mr4LFC=$9=z|;YWK!O|!$ke$8e>BqbVSSUn(Z>;e$|9kStpV^iCNv#Eca#8+ zur32o@{Vq0a6*7bbz8>;@`$n=lqic;7+w*U{w`Z5HsPH!eI%AOfaNR7S9yLBnC`pq%tN&H?H8?^E z2%#Wj5ZVn7D+aMp2ieUT>?+`P2H6uH7XAZ8bfT5V9^Jw?fFl9C#MsUOnWw zkdIqKDJh?&LU~v~ciN8fCGZ|PuMl=yVAxI+;$;k5$Oyn>OE6TP31rCgEWsj(j7F(7 zLw>iW7)kB+MS0=phH6QumVy~l4Jw|DpJGFSjqAgW2D6ovEjDfp+>lK-4hss&f6~~w z$)gSE3F4!u&7P7{i+>3}+)8SPX$GvS<@l#}wbAr?yAq zemF!21w%o~Z-!zVXbr%2u|VS6EgoT&v;{t${JoT5GKqjkVwI3#EPL1!gfLyB!z+MO zfCMOY7S@Be^MCBr%>Bb^O`v2tZNfD=w?Y*+i z{}IZFESxRQ7LWV}!%;jwx_bl26`F zsW(EsAs!%>@58)+K-|%_l53-J@|iO9%`q6nQ-BM-B%k3Y$RLhU*Lh{Yg%)3pfls!FsO=|IZ@$aUN}{f%I1_P6Qh}|^VHgA;Vmff z8yx7f+Q7pi5$q7M9o-IElRE2o2Y_6V07WSiXd>g_UE`onuWQc*aSm=hq&((BM3EJ} z3$lX1E2pFpzGmDJnd&1#!eP!Y*%k@t>4ne1-UT8V;X=`LP>1*=WPSfKy-Ju-TYEX! zT7aHJU9xBc&IGg;9mv&GQm2G8DtsZta`dc+2n`@rfP(z26z=SR+$l|P=K))ui`vR1 zVw#6OLB$z;SRIw@Ye!QdVC4&ZR1pqStEu>2j3ZSSO51?Qv%vCrV&S__<-VpflM6xF z;b+`n-!e{Ud;~%4zhOEM;auTao;e>b&b6~hcMLyMJku)(tYrMwlA2MUP&@D-XzNy; z2NuV#HVtfO0^=PauFSm4tQ&-EAW(x>TnF?@$geSViKw&Nl9A{det|j^{6Tc!&P`qcJVt$29dou#KHAMj3UwJjXyG_oQfB zi1N}K8~(l=VzDa3Lft&}j?HFSUghoQzqtlxx$k)2{MKR3!=3;a$4fQmo!NmeO2-YC ztXlo*ziUA~rgHkNvQKIM?Ao%~EyB9?y#X!-s^s|O+1i}hK~>74eYxGDNpNBixdrs; z&8`LKJ#v6)(PSC^vF3i$$!xdo{*xkW4IYCq-Gv%6-Iug)k~^7I+(+XO1wKxO{-)3u zkSE+8ffJP5$3D(cAUl*eiBVm@^1DA9(3O5rvOXPI<^lTsiPt4xuOAP^<= zDIlQK63K^xJMag+Dw9Ju;4lP%)jip{xN|(;Vp8nk`57ge=Y!}Fi^@Hwc*T)_g6}S0 z{KtjQss*{v>Ygj{t_O-Ki@CBX%fXSf70g{j*Fw^#D@T908NkzUgW$9z+)?|f$N0{L zjep*VHc9w8wf^Ik3(uzh_)ow!am%L?4y?Jj+&7P-@WgFN(rQz=sb~eGo9IWUl*~C9_4oK#YnDp) z14+h@p0vj5!vCJlV0%thQ4SS{K+b@b5((x0Sso$(a&PX(DO=lu#H{%?X8EP(K}XXo zLhsRm?|!}3r*3xst{*Sut&?tun?&8>x_Zlh(Gi=fx>AQi8kKd_rd3DI>nc}u&sTPx zcdyRdUY75poMo)rnT81r>?tXe#mr=4%H4zVWv2CN?j?Pudl&U_MdMBrE^TeQMT(uC z2fX%?M*kIQip2p3d>)%r-}CveMm6h0u6QhLQvdYzP0{`}TG@}gO>=`Mn%>Vpkjsc! zLo%C(;ImrvUOhk>soejNR}&nFaYpK^SGs!%KL9_fauF#@mHu8UxPe~8a%ZqS;spZvrWxsfR#oWcF!h(hA zvQYimch2(QU9(5h6M?ciX2P|qZ=c_s%uK=!TVAjun=V4h7Vf89W)k*E>IR!XQ*z_2k1xhragCO@GKu zaa*N6L0h=h`n2s$e67WTtejEi+|De&mDv@sR|=bD=K7>O3k z(<6ZB2;uC-BjD-{P({w%0Cxmh=8evx0`@~h%LC`H2f(NE>oUeNM@@1|iKm$zAl6Q_ zE$kwSOZ~!_^}o(vGXj!dR;l7}laJ)%~5T2Z+C!@Q?&OLZ_7OraTBnTD&`D1qxV& zy%c?z)`8-?8;o0N>~x*N=imdRT;KztIt6SQZL4y@FUBO;2X!kW zep6z^J7MuWc6;0V)@Tx_tWcf1^2ftjY!*5A!I82;vQoGDkZ~No2A%ZMtIl;VrV3c_ zg+NRu2@2Tv(eRi^m5Vt9Wn(+=fQiizG}&McpOMa_BZTH)NCQ?aaGF zo`9f}UGx;N>=8JhJCODLV)}#liyvzhQHb!LQ=wv0rm$U`9JI)hPy;xqL7rdN81NSJ z?I{`a!f`m|7AGx)SJ9co!rg(GW1UX{#G}n?tvegQ|tYm0Q zVkSP>oxZS1+E+BtcMqHFvY0F6^b;_sXw)+j%BEb55xx~dTHlC#8mO`xp^9#VoFGVQqX zF+)oJ5@NYMI)lGiE+37vRpkW~`_vmfNX8hHbl3M3%dF*}DqlPCyuvnod-=0Yx;4>vd`tuY>bwzUhm6YEMJ_vT%lDXsWjGk$HkvRjVFp# zItKrFcj9*Ox4Yt0RWJU&@IaNEJ0W{(Lu4Pn-T7-gRcQC<1M3=2Bm47${y1?S@ZYj!nv{7Z!1uQ#;UypTj6NzDvI*>eo`2k1yn8-&m20t@ z;P-5C(neB&!Si#s7Fk}1;U+y;`|9S_%Q1<^u4dG2Rr<|o^vgd@XRA{Gxc?`r>8H(ANwVS;!o$qsBf6RUN-uOob4lXzi$lOH=22?xjxx)Dev;wEB z>iH&GLcuwHs#fi>e7jnVp7wN;~@x*}@a2 z0+Dpd=-AlguLGIFPM?Y>DrKGj(=Gm8RId(fJd$qkO$kC)G0l7?KTmAJ_N@ihuy=5H zus2uQyxLAtcGODqsF5sgwfz$4qbu3s>zg3`%!U${$nF{KEl{JCCwA^D&>k}sd6P=i@mUmjC6g>gM=QGs!XkHWO zKFF?aS%cln5kEeKO>wnG`@C;~);Un~s8Z&sz$T$gSjbC&?C&2Cc$Th(`4ko58cxJV zT!~sKdv>G)nlh9*v;v@qg|3af0;>HngaqXXVa33dW`Q#T@w92Ch~Tv}6DaS5)$`6i zE-Il4$>fvrA|vD-vFCuA8T<`tun%(O;Nky&LW95N(Er~b(4rcf`!#y|w@r|1mWl!} z_m#9nMwl*iPE^Fne{`8%O`5{OG6e@25^{BjXuxEb&APOSlkiiUOVYyr$OT z^vl>qZ0pq0o-pL){z8hxX7eH9UiTKj-(<8Zv{%QgrRDkEihVxF{yeR>9y5d5v88OW2W1lVIRzJ{7G#Hc8yCjtiQ__wt2<<* zw3TS$@w{%GO{Acs#%!^egw6+}j3NT5$byvL_pLESWnX|$7MFbm3~t|x0Xm&~qE&%} zHX08vgLH4*8o2tq>;Pjd?B+s=!5viuvrwe|(2hf0L%eShO?P(|6`lq;BAgOXa^u}f z0g0^7tc^Eg`Xx}pG{&fKjY64(46I<<@<^twSRz)6chD&5K;kV=0({sLBd5Tj?N&Og z35q%>v(__iEBHv$H-sF}2+D(XRE**m=5Gvz^Ea=(56S0>E0IDe3iNK|z9pFx*H7J#-Kx<(+|5Ur%qafo}*?4Ji`_ zdtETWaDY7WZdIsh5Jy^oeqoMxi-FXNZ7{>*l3k!y9)&Us+#_dMRL%u#G-_0-o~4{X z6-E0-E8U9DeAd+>>~HR6N8=#@mxOBiKF z7^5D|&n!tG;N^l~x{rq`Dgzf7Kpf#G%3dhedaHt4nc9j#xr_zM?MTwv3Wqb%z#@Fza532mRc6ai? zLc1?)dOEaLFmi4HdpCF0cfVH7jgaZE2xFq8U)1NtXt z)$9*le5U7vPYAxi9noyg&^zUpf@w7(URW5PX*TFH7D(>#=>!&}C7mDu?xKi*bi zE%L?-5_*U8!79T+o0tD)9rQ5D(;HIPLsr5DEg$^YozG7A!6Uv7^ZAd{wISiG&opE!XrBOx>8+E$**fxihd#&gFKP+nq|!^G^~PtV z>k5d7uSX~G7ynsilnnW>dn!Yhn^9)0fS=>c-s<#$>N3hf63=oK!Za0){oDw0dE|r_ zv3~`dh?=kF)z!@@2U2*(&Bjq)Jih;Le)rHELEqBT-fkPhtp~C--WZK z_A%2<=84RVZ#q#a=B;*D7uViTk&$;(TjG~)ji*g|!;9nDGdta9o}*Ljh>3vUgo4;D z8dYblw1i~=cf57g4HuQ%5zQJ$o5m-r)BQ+c=k6(ZA2s0UUlOc_@V3qTp`J8U$s$oV z;=>3jjJ{_@lIM%a-IpdV$rfSP!!3pg(i(dFcfO^-(BI))w#=zXi;gDE$6qP?z?FA?s<`|8p}eE)t7YWh%C8TuQj!=sibWL0 z(<2PFf*LCL_{$w}Z6{W~I}%;}ZK+FR!q41;yAJIqxbBHq^T+Q^Pd<6S3Aw=;`TVD= zYrXvz;%T=E^+f+|9&5f=b#c~g&r9xqsTMPU*~jhYo6{0a z)Hp@@2Mi>M7=4a_*HuA$%albgzvuj>sp))NWSp{k!~NYs19Po)R|);J1r2#cwq<|& zX8Nw!$lZBOy8~`rT0r*aXS(lDNd7{tbNny-SCi$Udn|jy!Lj4>jcIN+StvC1@p)Xt z$h2DJ*+uhw%@6zgG%VI!rSGdf>jP>^$Mfgo4u_<&ANOmQxr}G;+!Fuaibus;(%x0% zy;x|?%xX)oA9EKT44CULT5xW9cVGU<f247IZWHFlA9egXF26NxQ9wr<$PYN;AEWRSkUy3jon-agfU)T=q|Q=XcRy8 z_jUK3?wPCoswxLM7S>12-4b7Tc-hiE$Bai`4IaKoJ%h1%I(zQjkeaaxPO0@J$p;!{B`XAN0er&62FqPmnLPRg(Z;QtO-Y0VHe!#7XiC^gB@(~T~@!s?dySPPnSB-m?$4X z44m|GnA-l@pDk^OGn@8A2rUH;Z|fgyYKIZIe%M}Uyq9yWA0k-YkFFJ~B+!FMGdAQ5dM*qwu~7i3)lAKO@R zo1g~32v~1{l{yXa2D8A1f=H5p6ZrU;covwcBoH4eWXL-Y2~wn{=!2AwPWTONI?Oy| zNR>ac5xGduqsq+*>(TEF4ifIEo9DfZ-5ae1Z~?avLQ$>#OVN+{oiABC;x>Sa5ABPV1N0V{zu6W;`lqc4z!3>oKM34e}MOMwMuvj7Fv@L@nrm;Q5THOoAGRpD=Y6 zx+(e00fCo4u@ky@H^OI%hbb-tkQ3tIK7p4XE}hOOL5&babPS!+ejg}wtb*RwN3Xx(l9ZJ_UnK74mSy3Y!Vnuy|o&7)&H zyOs$2OfyTQbkNo=A(nuhGRB!h#&ozgUy@{lcXd?^*sw00lZcz@@=ql8R-XXQPT;d! zZfZG;&zqoxO-;g1@8kie%gMl!13uhd#o;ED9~GZ^o?@aW$TP)kL(zM~6NF$9BeNCe zx6w`Xf&Pav!{(XdRtr}5#%r|1$BegMRP2XnI;GKLqsI{^{`O`YrCC-absVhvnOtgv z_;=y4nDJZD)Q;Y8@B&1tYoR7-XzL`#x8d=R7C#gkq2PA+9dfr1h zu-S@C1pb3EiwK^P7@k;@tT}3|+J$*)4D$1Ydno=pA}T-WnO`6u!j;B-p`Pz0`!rpuV%5}#%nKAYm{S3J8oWBx%@myTT`HZyv;Sn}b zp+^lNfg2qS9pWK5q`RFsY6R6agsOXML177Hh|d@T54lNtxY65Ysrc)jr&~g~V9@CKIM!eIJT8(HQl%sZ&qc?Y>czh; z{ta_47zcreRc$BbQ)lfh!Egl+oW#QrPQF;pR@!#11sZ=CT@iN9q+pj3b`rQV2V~?g z{06`=UDs0rnHVebKa4trNGWH?pcxQPGPJQ8SX2_j617Hx*#%<^fP;SlzA&J$Ls|ct zYfwUiF_K&xG{=jCMYGkw;ysRq#SAU5jN$#TO7TKIF|3w&C2UlM7pY@D#bQaZlIHRF5pv*qVqS3{?qAP08o6+LK`po*Ux;saX%hIU-& zH=9raC=+4+=@^uW67N{&GAc7X&PHMhSLm27`Z|c021OLL{k#lZsvmG;0rbSB5@!71 z8is2cE?woB1E{xxtuVfuDd{r%RX=|*PsTyMhP}}K!j-3}DNACesUQ!VO<6&iIY6A* z2VctDD##RpjOnHzU`#{6C7z&kdB7(y_KoRdb4_tx$i2aI6TLB-DJ|87bM1Z0mOhd4 zQMJXK*2ApLQn8-gjv!jB#~4l(>)8>6-RoJ_HCQI^CCfvs>NM;oUM9D-rWTdr7b$D* zFA)g>unPQ}+Xd@73+gGuOvrYijY+oNnQ@wcz(QuHwtQyE%`xrFvd*J~RMj}_TX~l| zA%oyX|AO7qt#I)C}v9j<%ifmuuoOlqHf*ez!GYg5hH0l%)de>nAs&6TYFgx4c_1sSNx& z=#PHtFXc61RV;9PJo|F;x-)Ed(QcfVarkeek9ohb{AwYo#K~oB3C;WSi~l0Cf3C4Qa^Xq@wzNWdFO}%nc82#9W--YbEReq6H;;cYV!SrD#eB0sz$e$3~s%%#!b2YMPF(y z`e_Q~fPqhj&Z))9SvnN{5rtfg8)kAlFv*UkDBVg1jlzE305r$5C(N=Sxn9(lG12sq z0vNghSKzl@r;JekY##82qFV}9X>tSOL5+lY5g2X<_w*m2F*`BgCLZ^;eY@*I9&HHm zNApCw(%a=b=H^z&4-FvPfT1M<|5fBt^%+{?5g zy)F7;mmL+Eo76PZzP;UB+!n|(#stPpt*I}7bS(~RyD6o}&@Awv$G-j+)(%R^v0W!C z(94wTS^K|UUQmnfAG$Nvp0lejv%}DE?s{y3Mpyd-+j~LxOb4%Zr5O^`M9i`4v|U;j zTm#}k;|KJyN6NA3SN-SOZ^zm%uy6LaKC1BG^vf$sdN%3$DLVL9kVCB(BkTK2*G5UE zv;9+%>uIVK@cq<3G#`A9_)G68n?@;!3TJ`Lc}|S{kS7P}vOcXW?%JJq{ho6C(e)a^ zN0h6y!wDB}YSgU!WWuV|sPy*s`ETV&-vf*9$1N7z%C)w0e$q1@zc@$#d9t()Kl$|%1!r| zV;KKd4-CwosP5afJ}x@eu<*8r;LUC=>RizBsjPc*OCy^~ZSO!NgMEecVs7i&x$a~8 z>=t55)XJq|aciuN;o+onYC7wQ#u>wJ(Fgu(BxESeGmQBHR6c?11-e%8P6$E5qIg;a zG|GyB=^FDHLxnlxyuwQ7b@erk6M13Bu6w1YY7*jrON6O$o*K9ZqwzX$CugGsq$o9X z+NYRj?v2bGWIF~OL$;)@=@J~T4K0C}V9b4%cuB@zAD8_^CmSMFTKU}f;-jALTS~-2 zfNRI?fx+Je4ocPtuvml$h@}qNUu;vzhFVHF4v73wMZcp*p|*;~C&Gpq1(nlq z+H`YbtBoX;H)>N5E$p)?OaTUvQhf|KIVamPo{9JK?{-%H!WZW04mjZFgqPZ{su)JS zo6M7%8sC*u!hi%-(gBmg)o>Hp^7qn<9JIAG1B$e1X5XU~ZE@B4Bvd61!<7$otwOJe zR^yo9ITq?_(P}K>S4BnJC|gBa;#WsU=b1`H;))-O92#7Gz7l`^lj59Yr2t12PzBs- z!7i3J+pG)Y(dFYI){wCru=@lX`1b`#rXD)R{lq(?+t50acgFqLT7FLf9Y6xYYQY8p z+tjnmnZirr=*SC91t~L0f(-?h;K_FqN)&&LGvy=}{1f2sCn$v&U##cZ8S>8Y8RulW zq>F*W;>Kunh5WHjo*fy(^J3!)P{w}X>=mX&Mu|&s0xv5+OefC@kDh1P|#Di9o)%nJIM;BW^*Epu85~ zV}cLhzGKC9(Ccn@{l~BO?3xx1d#zj+tv4s$^-F&OrIU&s7J-k}h)rVkC3OjMTdjrT z_`+RvPQ13eVi1kPi24|r^X;Ym(oN-dZQ_z(#El-_G-;a1xD`CZ)x;%UC96jzCkUFx zP7H{;vZJYyt>VeXs|D#gTwu!$ilmTPh4E}Eq`Ni!F4;s-=t;AE(1$%6lNdbne+C5;H8cW>8nd%4;uAD*1c3uro!`r2wcRGrc)aUHsOy^~of(Z1n!UZrRsO#Gsftag&rswafc0`u z=f63s*a~q^>AA>Be#CXght2rf2e>5w2llSNxlfu7EcqIp7gPKWyYjo@<834Lm&+ zwB*B*58I}j&gx@#&g_>g!5GuIqbwQ9V8(7V7EV>k70G27LDy>CBI%P*ta(3P#(V(u z06QU>3EJhw6eFprT#)NeJb(Zxb#XIxGW>bQw2|{n`3f7iB|jHq&DiW+5hY%yFcKsA zKf%09k>{&^$mJX)SIb`C6@;r=w^*k_XY1I8(;Fb0`YWxytu@a!ZWiOH0 zj9;K0i&E;4Mq_Y86s3a7%7S0@mEm3K9BTXQk>wK$P+zU3#Xj;X2s9>n4WiPO^adn8 zVvV0z%}X!uE!D!3EckD$r+A{kuuTt~LRX<))TR+>S2L^6D74ByERmhsQcG>st>&Fo z-%%xVDgH@1l2a3UYU3@IRk{Q(m+wmxkQ22LR zQwWMP>#7k^j;!yn?i1n+YWHQ8MZQ00n&A3{n89fO!~a?7Bq!4xNL;>m;uG2m)#`$` zh!~}hIl*XLzjno{`AkcqU1zEA`uv# z$s-`WZrF7>8bQevoFDFiWeQ1N-ua(F49 zqEjdkV(E@Te%&EXUGW9&Q{8{~l z@fKPefz@e~w!hXaePohA_W@7x(*2HwSF_q(Iqn z2740-aGJR>8*tbw?6CKJ-Mk!Hjsi^|()N7OUOr+qNf@%eGX1THKVhZH(o+v6tv*|m zk4e0=A@(QC_C6j4QI@qtV5dZ&eG0b#>ZMp z)1+w=aO2jLc$yuv0YsFL8wny$fOwId%}ksl+2fZ7|L;XKc&-&V+vSDNXJeIPXJcW) zCI`Ti8P=Q?3-B*gE`HH;IY}^XKdS|iFEX+sL+t6CdV~>>w7kjC$;HSH+pivyKOpAH zfo8zZXNIzQnn%g%%8{SKx3?w-o%4ioGg%uQ617~kokrkCa&6J3-ks|2_Fvi29G{d2 z@eutf!Bf4NI$f$wn|A)3%{#fI-%WA*^hrxU1PI8trKI{(v;Z3jwKchr-v_pM-YmQy%?vx=o2b1WGD~bJFj|PAmfv_B3l6ZFNV-cZQ%$q3w0Ahpi>=)&X`}QG zwiUZ9Wvgf9V*Joe4p}+t3NOu+lIH)hFD=K0SN{1I4U#}CPc@|IB z?TJd;AMvC`#*K6hbkEpqaqL$hurgs875wb-{Msn6r-_}L` zS+qXRarIpOgpQ!wzxe)%VKaT_Bysv-S<(~kLC?8O=KW{?oBGf^x#D6##|QeOP5UD~ zRRVFS$aBZiU^y+m5#uk1Nz24>cZl!VC)kp+_ujqgFni6!)H zr-Kj3Y*bElZ9^A{CXnm*mF`xI)I94`+mal}9|V81a1T_Vn~MjSgGT=Nnl!Lyvh?oi zyBeEt503AwRntmfixu}6pIZ3xbHahmcILtU{^_v@Cwo89{QmoB~br|X5A ztsm|UHoOXY752}ho8cS7Tf+)1hM(g99*YV3^zwVgvCY#vl{tfoEoQ#Uyppn>6y-S8 z9hh9H=3W7>K5FsGCrd>0T@`(_1w-HmHH8o-P9HE>MGER2e>@$z{7%>fMfHZR$Mi)5 z!rReN6GX;j#)6v2PhMe`y%fCU<)(RN*ELIJ{`9~Ok#t|Lk41po-QC8C7T;qMk@7LL zhwW7E*2UWq-}A)dCjPV?f0G(9AJ5JW?H3?TJ=gxB$>O;_3^PZ%A1`V zMc#wI=?ySfx-Rw9eg2@Ezl*$7@xQe0wE^1)`)ZyiSC0)Z?X%f zqlClmzLp`|_FHs39?=|me@tV}=7^jWX}9s<7Ou6YFMiXRCA&8t*cKFh^7D=0-3}=R zY34rcclHJK_@MB*h4?dvZosQ?uejaLUgyS8Wtxucp4sQw5UZBohE}}_%gW0kPb8QI z_ziK(_Vthd7~0#i;3+SweH5}}kZz%HW&`WvAq8Z8zZ$0f@~^w--mHbrnRp%2NwY)Y z;=kb!zgw}zha=?iP^;onHW@aBWhoMK6u{cHkR*;&m(vrwU5otAQD#v>gVptFW`2e) z{bE!|T+_va@7Lj19GF$}aZ0>$G|Z4NWUG!qmvMili))@v-z$)9Pk!Z`aaI8Nt3~>`l~iZ|5v` zzDuCGNd{??+BU`aX71S~QqKzE>E~eA&oD0yUT>|jGN3Vfd0x%g-r;X$0*)4Q>fpn+ zh2#L^j>*6NlWVu^xOVQ;nhk$qy%X(+DF4^o8JRu*|NT|vaGB}yVL8?wheo6AZB&{U ztv{4P$&Rnd?q+3w-u&>}jpsSydxGwR3n|(zw;fj9)T#DA^Yr<({jtGmuDXXJBI2ak z14mqS8yi2*H8wU@`-XkH@nXdlSJ%aB&MxRk{-32zOmbP4Rx9Hn(J6Us<>8KrN^Tw# z|L=J|bI#{GUB)_@LK-;yXGGCqowU7T_e?gN*7AOIm7yt2^U;zOeqBxrI%kJ+ zEa{jjq!RT1WQxZ`rD?w+MJBRMG+FnxW1?r0ic8nhNvi_1*cQ)v6j~>_u8Zy9g%vAz z8=J3GyIg-=Y0;vsD_5;rap}Hxyu8+`MT^$lTeN7|Q<+1@`b|Nrms|C@EqH=cq=AnN+Mk-`JUZwdng1LG1P0R+q*AaXc`$#C)u H8Ho}AjuP7u literal 0 HcmV?d00001 diff --git a/ui/frontend/build_src/public/kofi.png b/ui/frontend/build_src/public/kofi.png new file mode 100644 index 0000000000000000000000000000000000000000..0fdebbaacc3c9fee0deed20eeed8847efd9c4f41 GIT binary patch literal 11150 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 literal 0 HcmV?d00001 diff --git a/ui/frontend/build_src/public/modifiers.json b/ui/frontend/build_src/public/modifiers.json new file mode 100644 index 00000000..ca18cc07 --- /dev/null +++ b/ui/frontend/build_src/public/modifiers.json @@ -0,0 +1,151 @@ +[ + [ + "Drawing Style", + [ + "Cel Shading", + "Children's Drawing", + "Crosshatch", + "Detailed and Intricate", + "Doodle", + "Dot Art", + "Line Art", + "Sketch" + ] + ], + [ + "Visual Style", + [ + "2D", + "8-bit", + "16-bit", + "Anaglyph", + "Anime", + "CGI", + "Cartoon", + "Comic Book", + "Concept Art", + "Digital Art", + "Fantasy", + "Graphic Novel", + "Hard Edge Painting", + "Hydrodipped", + "Lithography", + "Manga", + "Modern Art", + "Mosaic", + "Mural", + "Photo", + "Realistic", + "Street Art", + "Visual Novel", + "Watercolor" + ] + ], + [ + "Pen", + [ + "Chalk", + "Colored Pencil", + "Graphite", + "Ink", + "Oil Paint", + "Pastel Art" + ] + ], + [ + "Carving and Etching", + [ + "Etching", + "Linocut", + "Paper Model", + "Paper-Mache", + "Papercutting", + "Pyrography", + "Wood-Carving" + ] + ], + [ + "Camera", + [ + "Aerial View", + "Canon50", + "Cinematic", + "Close-up", + "Color Grading", + "Dramatic", + "Film Grain", + "Fisheye Lens", + "Glamor Shot", + "Golden Hour", + "HD", + "Lens Flare", + "Macro", + "Polaroid", + "Vintage", + "War Photography", + "White Balance", + "Wildlife Photography" + ] + ], + [ + "Color", + [ + "Beautiful Lighting", + "Colorful", + "Dynamic Lighting", + "Electric Colors", + "Infrared", + "Synthwave", + "Warm Color Palette" + ] + ], + [ + "Emotions", + [ + "Angry", + "Disgusted", + "Embarrassed", + "Evil", + "Excited", + "Fear", + "Happy", + "Lonely", + "Sad", + "Surprised" + ] + ], + [ + "Style of an artist or community", + [ + "Artstation", + "by Agnes Lawrence Pelton", + "by Akihito Yoshida", + "by Andy Warhol", + "by Artgerm", + "by Asaf Hanuka", + "by Aubrey Beardsley", + "by Banksy", + "by Ben Enwonwu", + "by Caravaggio Michelangelo Merisi", + "by David Mann", + "by Frida Kahlo", + "by H.R. Giger", + "by Hayao Miyazaki", + "by Ivan Shishkin", + "by Johannes Vermeer", + "by John William Waterhouse", + "by Katsushika Hokusai", + "by Ko Young Hoon", + "by Leonardo da Vinci", + "by Lisa Frank", + "by Mahmoud Saïd", + "by Mark Brooks", + "by Pablo Picasso", + "by Richard Dadd", + "by Salvador Dalí", + "by Tivadar Csontváry Kosztka", + "by Yoshitaka Amano", + "by wlop" + ] + ] +] diff --git a/ui/frontend/build_src/src/App.css b/ui/frontend/build_src/src/App.css new file mode 100644 index 00000000..95b693d5 --- /dev/null +++ b/ui/frontend/build_src/src/App.css @@ -0,0 +1,60 @@ +.App { + position: relative; + width: 100%; + height: 100%; + pointer-events: auto; + display: grid; + background-color: rgb(32, 33, 36); + grid-template-columns: 360px 1fr; + grid-template-rows: 100px 1fr 300px; + grid-template-areas: "header header header" + "create display display" + "footer footer footer"; +} + +/* Very basic mobile stacked UI*/ +@media screen and (max-width: 768px) { + .App { + grid-template-columns: 1fr; + grid-template-rows: 100px 1fr 1fr 300px; + grid-template-areas: "header" + "create" + "display" + "footer"; + } +} + +.header-layout { + grid-area: header; +} + +.create-layout { + grid-area: create; +} + +.display-layout { + grid-area: display; +} + +.footer-layout { + grid-area: footer; + +} + +/* Copypasta from Bootstrap, makes content visually hidden but still accessible for screenreaders */ +.visually-hidden, .visually-hidden-focusable:not(:focus):not(:focus-within) { + position: absolute !important; + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} + +/* TODO proper utility classes */ +.mb-4 { + margin-bottom: 1rem; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/App.tsx b/ui/frontend/build_src/src/App.tsx new file mode 100644 index 00000000..f9642370 --- /dev/null +++ b/ui/frontend/build_src/src/App.tsx @@ -0,0 +1,46 @@ +import React, {useEffect, useState} from 'react' +import './App.css' + +import { useQuery } from "@tanstack/react-query"; +import { getSaveDirectory } from './api' +import { useImageCreate } from "./store/imageCreateStore"; + +// Todo - import components here +import HeaderDisplay from './components/headerDisplay'; +import CreationPanel from './components/creationPanel'; +import DisplayPanel from './components/displayPanel'; +import FooterDisplay from './components/footerDisplay'; + +function App() { + + // Get the original save directory + const setRequestOption = useImageCreate((state) => state.setRequestOptions); + const { status, data } = useQuery( + ['SaveDir'], getSaveDirectory, + ); + useEffect(() => { + if(status === 'success') { + setRequestOption("save_to_disk_path", data); + } + }, [setRequestOption, status, data]); + + + return ( +

+
+ +
+ +
+ +
+
+ +
+
+ ) +} + +export default App diff --git a/ui/frontend/build_src/src/api/index.ts b/ui/frontend/build_src/src/api/index.ts new file mode 100644 index 00000000..113d1359 --- /dev/null +++ b/ui/frontend/build_src/src/api/index.ts @@ -0,0 +1,55 @@ +/** + * basic server health + */ + +import type {ImageRequest} from '../store/imageCreateStore'; + +// when we are on dev we want to specifiy 9000 as the port for the backend +// when we are on prod we want be realtive to the current url +const API_URL = import.meta.env.DEV ? 'http://localhost:9000' : ''; + + +export const HEALTH_PING_INTERVAL = 5000; // 5 seconds +export const healthPing = async () => { + + const pingUrl = `${API_URL}/ping`; + let response = await fetch(pingUrl) + const data = await response.json(); + return data; +} + +/** + * the local list of modifications + */ +export const loadModifications = async () => { + const response = await fetch(`${API_URL}/modifiers.json`); + const data = await response.json(); + return data; +} + +export const getSaveDirectory = async () => { + const response = await fetch(`${API_URL}/output_dir`); + const data = await response.json(); + return data[0]; +}; + +/** + * post a new request for an image + */ + +export const MakeImageKey = 'MakeImage'; +export const doMakeImage = async (reqBody: ImageRequest) => { + + const res = await fetch(`${API_URL}/image`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(reqBody) + }); + + const data = await res.json(); + return data; +} + + diff --git a/ui/frontend/build_src/src/components/creationPanel/advancedSettings/advancedSettings.css b/ui/frontend/build_src/src/components/creationPanel/advancedSettings/advancedSettings.css new file mode 100644 index 00000000..054ba201 --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/advancedSettings/advancedSettings.css @@ -0,0 +1,3 @@ +input[size="4"] { + width: 4.5rem; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/creationPanel/advancedSettings/index.tsx b/ui/frontend/build_src/src/components/creationPanel/advancedSettings/index.tsx new file mode 100644 index 00000000..7519a30f --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/advancedSettings/index.tsx @@ -0,0 +1,353 @@ +import React, {useEffect} from "react"; +import { useImageCreate } from "../../../store/imageCreateStore"; +import "./advancedSettings.css"; + +// todo: move this someplace more global +const IMAGE_DIMENSIONS = [ + { value: 128, label: "128 (*)" }, + { value: 192, label: "192" }, + { value: 256, label: "256 (*)" }, + { value: 320, label: "320" }, + { value: 384, label: "384" }, + { value: 448, label: "448" }, + { value: 512, label: "512 (*)" }, + { value: 576, label: "576" }, + { value: 640, label: "640" }, + { value: 704, label: "704" }, + { value: 768, label: "768 (*)" }, + { value: 832, label: "832" }, + { value: 896, label: "896" }, + { value: 960, label: "960" }, + { value: 1024, label: "1024 (*)" }, +]; + +function SettingsList() { + + const requestCount = useImageCreate((state) => state.requestCount); + const setRequestCount = useImageCreate((state) => state.setRequestCount); + const setRequestOption = useImageCreate((state) => state.setRequestOptions); + + + const toggleUseFaceCorrection = useImageCreate((state) => state.toggleUseFaceCorrection); + const isUsingFaceCorrection = useImageCreate((state) => state.isUsingFaceCorrection()); + + const toggleUseUpscaling = useImageCreate((state) => state.toggleUseUpscaling); + const isUsingUpscaling = useImageCreate((state) => state.isUsingUpscaling()); + + + const toggleUseRandomSeed = useImageCreate((state) => state.toggleUseRandomSeed); + const isRandomSeed = useImageCreate((state) => state.isRandomSeed()); + + const toggleUseAutoSave = useImageCreate((state) => state.toggleUseAutoSave); + const isUseAutoSave = useImageCreate((state) => state.isUseAutoSave()); + + const toggleSoundEnabled = useImageCreate((state) => state.toggleSoundEnabled); + const isSoundEnabled = useImageCreate((state) => state.isSoundEnabled()); + + const use_upscale = useImageCreate((state) => state.getValueForRequestKey(('use_upscale'))); + const show_only_filtered_image = useImageCreate((state) => state.getValueForRequestKey(('show_only_filtered_image'))); + const seed = useImageCreate((state) => state.getValueForRequestKey(('seed'))); + const width = useImageCreate((state) => state.getValueForRequestKey(('width'))); + const num_outputs = useImageCreate((state) => state.getValueForRequestKey(('num_outputs'))); + const height = useImageCreate((state) => state.getValueForRequestKey(('height'))); + const steps = useImageCreate((state) => state.getValueForRequestKey(('num_inference_steps'))); + const guidance_scale = useImageCreate((state) => state.getValueForRequestKey(('guidance_scale'))); + const prompt_strength = useImageCreate((state) => state.getValueForRequestKey(('prompt_strength'))); + const save_to_disk_path = useImageCreate((state) => state.getValueForRequestKey(('save_to_disk_path'))); + const turbo = useImageCreate((state) => state.getValueForRequestKey(('turbo'))); + const use_cpu = useImageCreate((state) => state.getValueForRequestKey(('use_cpu'))); + const use_full_precision = useImageCreate((state) => state.getValueForRequestKey(('use_full_precision'))); + + return ( +
    + + {/*IMAGE CORRECTION */} +
  • + +
  • +
  • + +
  • +
  • + +
  • + {/* SEED */} +
  • + + +
  • + {/* COUNT */} +
  • + + +
  • + {/* DIMENTIONS */} +
  • + +
  • +
  • + +
  • + {/* STEPS */} +
  • + +
  • + {/* GUIDANCE SCALE */} +
  • + + {guidance_scale} +
  • + {/* PROMPT STRENGTH */} +
  • + + {prompt_strength} +
  • + {/* AUTO SAVE */} +
  • + + +
  • + {/* SOUND */} +
  • + +
  • + {/* GENERATE */} +
  • + +
  • +
  • + +
  • +
  • + +
  • + +
+ ) +} + +// {/* */} + +export default function AdvancedSettings() { + + const advancedSettingsIsOpen = useImageCreate( + (state) => state.uiOptions.advancedSettingsIsOpen + ); + + const toggleAdvancedSettingsIsOpen = useImageCreate( + (state) => state.toggleAdvancedSettingsIsOpen + ); + + return ( +
+ + {advancedSettingsIsOpen && } +
+ ); +} diff --git a/ui/frontend/build_src/src/components/creationPanel/creationPanel.css b/ui/frontend/build_src/src/components/creationPanel/creationPanel.css new file mode 100644 index 00000000..fc6b861a --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/creationPanel.css @@ -0,0 +1,48 @@ +.panel-box-toggle-btn { + display: block; + width: 100%; + text-align: left; + background-color: transparent; + color: #fff; + border: 0 none; + cursor: pointer; +} + +.selected-tags { + margin: 10px 0; +} + +.selected-tags ul { + margin: 0; + padding: 0; + display: flex; + flex-wrap: wrap; +} + +li { + list-style: none; +} + +.modifier-list{ + display: flex; + flex-wrap: wrap; + margin: 0; + padding: 0; +} + +.modifierTag { + display: inline-block; + padding: 6px; + background-color: rgb(38, 77, 141); + color: #fff; + border-radius: 5px; + margin: 5px; +} + +.modifierTag.selected { + background-color: rgb(131, 11, 121); +} + +.modifierTag p { + margin: 0; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/creationPanel/imageModifiers/imageModifiers.css b/ui/frontend/build_src/src/components/creationPanel/imageModifiers/imageModifiers.css new file mode 100644 index 00000000..e69de29b diff --git a/ui/frontend/build_src/src/components/creationPanel/imageModifiers/index.tsx b/ui/frontend/build_src/src/components/creationPanel/imageModifiers/index.tsx new file mode 100644 index 00000000..afb6a8ac --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/imageModifiers/index.tsx @@ -0,0 +1,96 @@ +import React, {useEffect, useState} from "react"; + +import { useQuery } from "@tanstack/react-query"; +import { loadModifications } from "../../../api"; + +import { useImageCreate } from "../../../store/imageCreateStore"; + +import ModifierTag from "../modierTag"; + + +type ModifierListProps = { + tags: string[]; +} + +function ModifierList({tags}: ModifierListProps) { + const setImageOptions = useImageCreate((state) => state.setImageOptions); + const imageOptions = useImageCreate((state) => state.imageOptions); + return( +
    + {tags.map((tag) => ( +
  • + +
  • + ))} +
+ ) +} + +type ModifierGroupingProps = { + title: string; + tags: string[]; +}; + +function ModifierGrouping({title, tags}: ModifierGroupingProps) { + + // doing this localy for now, but could move to a store + // and persist if we wanted to + const [isExpanded, setIsExpanded] = useState(false); + + // console.log('grouping', title, tags) + + const _toggleExpand = () => { + // console.log('toggle expand') + setIsExpanded(!isExpanded); + }; + + return ( +
+
+
{title}
+
+ {isExpanded && } +
+ ); +} + +export default function ImageModifers() { + const {status, data} = useQuery(["modifications"], loadModifications); + + const imageModifierIsOpen = useImageCreate( + (state) => state.uiOptions.imageModifierIsOpen + ); + const toggleImageModifiersIsOpen = useImageCreate( + (state) => state.toggleImageModifiersIsOpen + ); + + // useEffect(() => { + // console.log("imageModifers", status, data); + // }, [status, data]); + + + const handleClick = () => { + // debugger; + toggleImageModifiersIsOpen(); + }; + + return ( +
+ + + {/* @ts-ignore */} + {imageModifierIsOpen && data.map((item, index) => { + return ( + + ) + })} +
+ ); +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/creationPanel/index.tsx b/ui/frontend/build_src/src/components/creationPanel/index.tsx new file mode 100644 index 00000000..248182ff --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/index.tsx @@ -0,0 +1,86 @@ +import React, { ChangeEvent } from "react"; + +import MakeButton from "./makeButton"; +import AdvancedSettings from "./advancedSettings"; +import ImageModifiers from "./imageModifiers"; + +import ModifierTag from "./modierTag"; + +import { useImageCreate } from "../../store/imageCreateStore"; + +import './creationPanel.css'; + +export default function CreationPanel() { + + const promptText = useImageCreate((state) => state.getValueForRequestKey("prompt")); + const init_image = useImageCreate((state) => state.getValueForRequestKey("init_image")); + const setRequestOption = useImageCreate((state) => state.setRequestOptions); + const selectedtags = useImageCreate((state) => state.selectedTags()); + + const handlePromptChange = (event: ChangeEvent) => { + setRequestOption("prompt", event.target.value); + }; + + const _handleFileSelect = (event: ChangeEvent) => { + //console.log("file select", event); + const file = event.target.files[0]; + + // console.log("file", file); + + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + if (e.target) { + debugger; + setRequestOption("init_image", e.target.result); + } + }; + reader.readAsDataURL(file); + } + }; + + return ( +
+
+
+

Prompt

+ +
+ + {/*
+

Seed Image

+ +
*/} + + +
+ +
+
+ { init_image && + + } + +
+
+ + +
+

Active Tags

+
    + {selectedtags.map((tag) => ( +
  • + +
  • + ))} +
+
+
+ +
+ + +
+
+ ); +} diff --git a/ui/frontend/build_src/src/components/creationPanel/makeButton/index.tsx b/ui/frontend/build_src/src/components/creationPanel/makeButton/index.tsx new file mode 100644 index 00000000..3afeb625 --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/makeButton/index.tsx @@ -0,0 +1,24 @@ +import React, {useEffect, useState}from "react"; + +import { useImageCreate } from "../../../store/imageCreateStore"; +// import { useImageDisplay } from "../../../store/imageDisplayStore"; +import { useImageQueue } from "../../../store/imageQueueStore"; +// import { doMakeImage } from "../../../api"; +import {v4 as uuidv4} from 'uuid'; + +export default function MakeButton() { + + const builtRequest = useImageCreate((state) => state.builtRequest); + const addNewImage = useImageQueue((state) => state.addNewImage); + + const makeImage = () => { + // todo turn this into a loop and adjust the parallel count + // + const req = builtRequest(); + addNewImage(uuidv4(), req) + }; + + return ( + + ); +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/creationPanel/modierTag/index.tsx b/ui/frontend/build_src/src/components/creationPanel/modierTag/index.tsx new file mode 100644 index 00000000..e9f3ecc9 --- /dev/null +++ b/ui/frontend/build_src/src/components/creationPanel/modierTag/index.tsx @@ -0,0 +1,25 @@ +import React from "react"; +import { useImageCreate } from "../../../store/imageCreateStore"; + + +type ModifierTagProps = { + name: string; +} + +export default function ModifierTag({name}: ModifierTagProps) { + + const hasTag = useImageCreate((state) => state.hasTag(name)) ? "selected" : ""; + const toggleTag = useImageCreate((state) => state.toggleTag); + + console.log('has tag', hasTag) + + const _toggleTag = () => { + toggleTag(name); + }; + + return ( +
+

{name}

+
+ ); +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx b/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx new file mode 100644 index 00000000..040f0a27 --- /dev/null +++ b/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx @@ -0,0 +1,18 @@ +export const CompletedImages = () => { + return ( +
+

Completed Images

+
+ ); + // const { data } = useQuery("completedImages", getCompletedImages); + // return ( + //
+ //

Completed Images

+ //
+ // {data?.map((image) => ( + // + // ))} + //
+ //
+ // ); +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx b/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx new file mode 100644 index 00000000..0afcb601 --- /dev/null +++ b/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx @@ -0,0 +1,50 @@ +import React, { useEffect, useState } from "react"; +import { useImageQueue } from "../../../store/imageQueueStore"; + +import { doMakeImage, MakeImageKey } from "../../../api"; + +import { useQuery } from "@tanstack/react-query"; +import GeneratedImage from "../generatedImage"; + + +export default function CurrentImage() { + + const [imageData, setImageData] = useState(null); + // @ts-ignore + const {id, options} = useImageQueue((state) => state.firstInQueue()); + console.log('CurrentImage id', id) + + + const removeFirstInQueue = useImageQueue((state) => state.removeFirstInQueue); + + const { status, data } = useQuery( + [MakeImageKey, id], + () => doMakeImage(options), + { + enabled: void 0 !== id, + } + ); + + useEffect(() => { + // query is done + if(status === 'success') { + console.log("success"); + + // check to make sure that the image was created + if(data.status === 'succeeded') { + console.log("succeeded"); + setImageData(data.output[0].data); + removeFirstInQueue(); + } + } + + }, [status, data, removeFirstInQueue]); + + + return ( +
+

Current Image

+ {imageData && } +
+ ); +}; \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/displayPanel/displayPanel.css b/ui/frontend/build_src/src/components/displayPanel/displayPanel.css new file mode 100644 index 00000000..e69de29b diff --git a/ui/frontend/build_src/src/components/displayPanel/generatedImage/generatedImage.css b/ui/frontend/build_src/src/components/displayPanel/generatedImage/generatedImage.css new file mode 100644 index 00000000..e69de29b diff --git a/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx b/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx new file mode 100644 index 00000000..7b922f13 --- /dev/null +++ b/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx @@ -0,0 +1,53 @@ +import React from "react"; + + +import { useImageCreate } from "../../../store/imageCreateStore"; + +export default function GeneratedImage({ imageData }: { imageData: string }) { + + + const setRequestOption = useImageCreate((state) => state.setRequestOptions); + const _handleSave = () => { + const link = document.createElement("a"); + link.download = "image.png"; + link.href = imageData; + link.click(); + }; + + const _handleUseAsInput = () => { + console.log(" TODO : use as input"); + + + setRequestOption("init_image", imageData); + // initImageSelector.value = null + // initImagePreview.src = imgBody + + + // imgUseBtn.addEventListener('click', function() { + // initImageSelector.value = null + // initImagePreview.src = imgBody + + // initImagePreviewContainer.style.display = 'block' + // promptStrengthContainer.style.display = 'block' + + // // maskSetting.style.display = 'block' + + // randomSeedField.checked = false + // seedField.value = seed + // seedField.disabled = false + // }) + } + + return ( +
+

Your image

+ generated + + +
+ ); +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/displayPanel/index.tsx b/ui/frontend/build_src/src/components/displayPanel/index.tsx new file mode 100644 index 00000000..a7bfeee1 --- /dev/null +++ b/ui/frontend/build_src/src/components/displayPanel/index.tsx @@ -0,0 +1,78 @@ +import React, {useEffect, useState} from "react"; +import { useImageQueue } from "../../store/imageQueueStore"; + +import { ImageRequest } from '../../store/imageCreateStore'; + +import { useQueryClient } from '@tanstack/react-query' + + +import { MakeImageKey } from "../../api"; + +import CurrentImage from "./currentImage"; + +import GeneratedImage from "./generatedImage"; + + +type CompletedImagesType = { + id: string; + data: string; +} +export default function DisplayPanel() { + + const queryClient = useQueryClient(); + const [completedImages, setCompletedImages] = useState([]); + const completedIds = useImageQueue((state) => state.completedImageIds); + + useEffect(() => { + + const testReq = {} as ImageRequest; + const completedQueries = completedIds.map((id) => { + const imageData = queryClient.getQueryData([MakeImageKey,id]) + return imageData; + }); + + console.log('completedQueries', completedQueries); + + if (completedQueries.length > 0) { + // map the completedImagesto a new array + // and then set the state + const temp = completedQueries.map((query, index ) => { + // debugger; + if(void 0 !== query) { + return query.output.map((data)=>{ + return {id: `${completedIds[index]}-${data.seed}`, data: data.data} + }) + } + + }).flat().reverse(); + setCompletedImages(temp); + } + else { + setCompletedImages([]); + } + + },[setCompletedImages, queryClient, completedIds]); + + + return ( +
+

Display Panel

+
+ + {completedImages.map((image, index) => { + if(index == 0){ + return null; + } + if(void 0 !== image) { + return ; + } + else { + console.warn('image is undefined', image, index); + return null; + } + })} +
+ +
+ ); +}; diff --git a/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css b/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css new file mode 100644 index 00000000..84bd03e1 --- /dev/null +++ b/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css @@ -0,0 +1,8 @@ +.footer-display { + color: #ffffff; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/footerDisplay/index.tsx b/ui/frontend/build_src/src/components/footerDisplay/index.tsx new file mode 100644 index 00000000..85fa485d --- /dev/null +++ b/ui/frontend/build_src/src/components/footerDisplay/index.tsx @@ -0,0 +1,18 @@ +import React from "react"; + +import './footerDisplay.css'; + +export default function FooterDisplay() { + return ( + + ); +} + diff --git a/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css b/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css new file mode 100644 index 00000000..6b140142 --- /dev/null +++ b/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css @@ -0,0 +1,10 @@ +.header-display { + color: #ffffff; + display: flex; + align-items: center; + justify-content: center; +} + +.status-display { + margin-left: 10px; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/headerDisplay/index.tsx b/ui/frontend/build_src/src/components/headerDisplay/index.tsx new file mode 100644 index 00000000..6b7a623d --- /dev/null +++ b/ui/frontend/build_src/src/components/headerDisplay/index.tsx @@ -0,0 +1,14 @@ +import React from "react"; + +import StatusDisplay from "./statusDisplay"; + +import './headerDisplay.css'; + +export default function HeaderDisplay() { + return ( +
+

Stable Diffusion UI v2.1.0

+ +
+ ); +}; \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx new file mode 100644 index 00000000..3c311eb7 --- /dev/null +++ b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx @@ -0,0 +1,59 @@ +import React, {useEffect, useState} from 'react' +import { useQuery } from '@tanstack/react-query'; + +import { healthPing, HEALTH_PING_INTERVAL } from '../../../api'; + +const startingMessage = 'Stable Diffusion is starting...'; +const successMessage = 'Stable Diffusion is ready to use!'; +const errorMessage = 'Stable Diffusion is not running!'; + +import './statusDisplay.css'; + +export default function StatusDisplay({className}: {className?: string}) { + + const [statusMessage, setStatusMessage] = useState(startingMessage); + const [statusClass, setStatusClass] = useState('starting'); + + + // doing this here for the time being, to show the data getting loaded + // but this will be moved to the status display when it is created + const {status, data} = useQuery(['health'], healthPing, {refetchInterval: HEALTH_PING_INTERVAL}); + useEffect(() => { + console.log('health data', data); + }, [data]); + + + // const data = {}; + + useEffect(() => { + console.log('status', status); + + if (status === 'loading') { + setStatusMessage(startingMessage); + setStatusClass('starting'); + } + else if (status === 'error') { + setStatusMessage(errorMessage); + setStatusClass('error'); + } + + else if (status === 'success') { + + if(data[0] === 'OK') { + setStatusMessage(successMessage); + setStatusClass('success'); + } + else { + setStatusMessage(errorMessage); + setStatusClass('error'); + } + } + }, [status, data]); + + return ( + <> + {/* alittle hacky but joins the class names, will probably need a better css in js solution or tailwinds*/} +

{statusMessage}

+ + ); +}; \ No newline at end of file diff --git a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css new file mode 100644 index 00000000..b51544ee --- /dev/null +++ b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css @@ -0,0 +1,11 @@ +.starting { + color: #f0ad4e; +} + +.error { + color: #d9534f; +} + +.success { + color: #5cb85c; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/index.css b/ui/frontend/build_src/src/index.css new file mode 100644 index 00000000..036d0cc0 --- /dev/null +++ b/ui/frontend/build_src/src/index.css @@ -0,0 +1,18 @@ +body { + margin: 0; + min-width: 320px; + min-height: 100vh; +} + +#root { + position: absolute; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + /* pointer-events: none; */ + + /* this are used while we still have the original app code in the index.html */ + /* display: none; */ + z-index: 1; +} \ No newline at end of file diff --git a/ui/frontend/build_src/src/main.tsx b/ui/frontend/build_src/src/main.tsx new file mode 100644 index 00000000..363219a9 --- /dev/null +++ b/ui/frontend/build_src/src/main.tsx @@ -0,0 +1,37 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' + +import { + QueryClient, + QueryClientProvider, +} from '@tanstack/react-query'; + +import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; + +import { enableMapSet } from 'immer'; +import App from './App' +import './index.css' + +const queryClient = new QueryClient( + { + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + refetchOnReconnect : false, + refetchOnMount : false, + staleTime: Infinity, + }, + }, + } +); + +enableMapSet(); +// application entry point +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + + +) diff --git a/ui/frontend/build_src/src/modifiers.json b/ui/frontend/build_src/src/modifiers.json new file mode 100644 index 00000000..ca18cc07 --- /dev/null +++ b/ui/frontend/build_src/src/modifiers.json @@ -0,0 +1,151 @@ +[ + [ + "Drawing Style", + [ + "Cel Shading", + "Children's Drawing", + "Crosshatch", + "Detailed and Intricate", + "Doodle", + "Dot Art", + "Line Art", + "Sketch" + ] + ], + [ + "Visual Style", + [ + "2D", + "8-bit", + "16-bit", + "Anaglyph", + "Anime", + "CGI", + "Cartoon", + "Comic Book", + "Concept Art", + "Digital Art", + "Fantasy", + "Graphic Novel", + "Hard Edge Painting", + "Hydrodipped", + "Lithography", + "Manga", + "Modern Art", + "Mosaic", + "Mural", + "Photo", + "Realistic", + "Street Art", + "Visual Novel", + "Watercolor" + ] + ], + [ + "Pen", + [ + "Chalk", + "Colored Pencil", + "Graphite", + "Ink", + "Oil Paint", + "Pastel Art" + ] + ], + [ + "Carving and Etching", + [ + "Etching", + "Linocut", + "Paper Model", + "Paper-Mache", + "Papercutting", + "Pyrography", + "Wood-Carving" + ] + ], + [ + "Camera", + [ + "Aerial View", + "Canon50", + "Cinematic", + "Close-up", + "Color Grading", + "Dramatic", + "Film Grain", + "Fisheye Lens", + "Glamor Shot", + "Golden Hour", + "HD", + "Lens Flare", + "Macro", + "Polaroid", + "Vintage", + "War Photography", + "White Balance", + "Wildlife Photography" + ] + ], + [ + "Color", + [ + "Beautiful Lighting", + "Colorful", + "Dynamic Lighting", + "Electric Colors", + "Infrared", + "Synthwave", + "Warm Color Palette" + ] + ], + [ + "Emotions", + [ + "Angry", + "Disgusted", + "Embarrassed", + "Evil", + "Excited", + "Fear", + "Happy", + "Lonely", + "Sad", + "Surprised" + ] + ], + [ + "Style of an artist or community", + [ + "Artstation", + "by Agnes Lawrence Pelton", + "by Akihito Yoshida", + "by Andy Warhol", + "by Artgerm", + "by Asaf Hanuka", + "by Aubrey Beardsley", + "by Banksy", + "by Ben Enwonwu", + "by Caravaggio Michelangelo Merisi", + "by David Mann", + "by Frida Kahlo", + "by H.R. Giger", + "by Hayao Miyazaki", + "by Ivan Shishkin", + "by Johannes Vermeer", + "by John William Waterhouse", + "by Katsushika Hokusai", + "by Ko Young Hoon", + "by Leonardo da Vinci", + "by Lisa Frank", + "by Mahmoud Saïd", + "by Mark Brooks", + "by Pablo Picasso", + "by Richard Dadd", + "by Salvador Dalí", + "by Tivadar Csontváry Kosztka", + "by Yoshitaka Amano", + "by wlop" + ] + ] +] diff --git a/ui/frontend/build_src/src/store/imageCreateStore.ts b/ui/frontend/build_src/src/store/imageCreateStore.ts new file mode 100644 index 00000000..b8d9abb7 --- /dev/null +++ b/ui/frontend/build_src/src/store/imageCreateStore.ts @@ -0,0 +1,258 @@ +import create from 'zustand'; +import produce from 'immer'; +import { devtools } from 'zustand/middleware' + +import { useRandomSeed } from '../utils'; + +export type ImageCreationUiOptions = { + advancedSettingsIsOpen: boolean; + imageModifierIsOpen: boolean; + isCheckedUseUpscaling: boolean; + isCheckUseFaceCorrection: boolean; + isUseRandomSeed: boolean; + isUseAutoSave: boolean; + isSoundEnabled: boolean; +} + + +export type ImageRequest = { + prompt: string; + seed: number; + num_outputs: number; + num_inference_steps: number; + guidance_scale: number + width: 128 | 192 | 256 | 320 | 384 | 448 | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 | 1024; + height: 128 | 192 | 256 | 320 | 384 | 448 | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 | 1024; + // allow_nsfw: boolean; + turbo: boolean; + use_cpu: boolean; + use_full_precision: boolean; + save_to_disk_path: null | string; + use_face_correction: null | 'GFPGANv1.3'; + use_upscale: null| 'RealESRGAN_x4plus' | 'RealESRGAN_x4plus_anime_6B'; + show_only_filtered_image: boolean; + init_image: undefined | string; + prompt_strength: undefined | number; + }; + +interface ImageCreateState { + requestCount: number; + requestOptions: ImageRequest; + tags: string[]; + + setRequestCount: (count: number) => void; + setRequestOptions: (key: keyof ImageRequest, value: any) => void; + getValueForRequestKey: (key: keyof ImageRequest) => any; + + toggleTag: (tag: string) => void; + hasTag: (tag: string) => boolean; + selectedTags:() => string[] + builtRequest: () => ImageRequest; + + uiOptions: ImageCreationUiOptions; + toggleAdvancedSettingsIsOpen: () => void; + toggleImageModifiersIsOpen: () => void; + toggleUseUpscaling: () => void; + isUsingUpscaling: () => boolean; + toggleUseFaceCorrection: () => void; + isUsingFaceCorrection: () => boolean; + toggleUseRandomSeed: () => void; + isRandomSeed: () => boolean; + toggleUseAutoSave: () => void; + isUseAutoSave: () => boolean; + toggleSoundEnabled: () => void; + isSoundEnabled: () => boolean; +} + +// devtools breaks TS +// @ts-ignore +export const useImageCreate = create(devtools((set, get) => ({ + + requestCount: 1, + + requestOptions:{ + prompt: 'a photograph of an astronaut riding a horse', + seed: useRandomSeed(), + num_outputs: 1, + num_inference_steps: 50, + guidance_scale: 7.5, + width: 512, + height: 512, + prompt_strength: 0.8, + // allow_nsfw: false, + turbo: true, + use_cpu: false, + use_full_precision: true, + save_to_disk_path: 'null', + use_face_correction: null, + use_upscale: 'RealESRGAN_x4plus', + show_only_filtered_image: false, + } as ImageRequest, + + tags: [] as string[], + + setRequestCount: (count: number) => set(produce((state) => { + state.requestCount = count; + })), + + setRequestOptions: (key: keyof ImageRequest, value: any) => { + set( produce((state) => { + state.requestOptions[key] = value; + })) + }, + + getValueForRequestKey: (key: keyof ImageRequest) => { + return get().requestOptions[key]; + }, + + toggleTag: (tag: string) => { + set( produce((state) => { + const index = state.tags.indexOf(tag); + if (index > -1) { + state.tags.splice(index, 1); + } else { + state.tags.push(tag); + } + })) + }, + + hasTag: (tag:string) => { + return get().tags.indexOf(tag) > -1; + }, + + selectedTags: () => { + return get().tags; + }, + + // the request body to send to the server + // this is a computed value, just adding the tags to the request + builtRequest: () => { + + console.log('builtRequest'); + const state = get(); + const requestOptions = state.requestOptions; + const tags = state.tags; + + // join all the tags with a comma and add it to the prompt + const prompt = `${requestOptions.prompt} ${tags.join(',')}`; + console.log('builtRequest return1'); + + const request = { + ...requestOptions, + prompt + } + // if we arent using auto save clear the save path + if(!state.uiOptions.isUseAutoSave){ + // maybe this is "None" ? + // TODO check this + request.save_to_disk_path = null; + } + console.log('builtRequest return2'); + // if we arent using face correction clear the face correction + if(!state.uiOptions.isCheckUseFaceCorrection){ + request.use_face_correction = null; + } + console.log('builtRequest return3'); + // if we arent using upscaling clear the upscaling + if(!state.uiOptions.isCheckedUseUpscaling){ + request.use_upscale = null; + } + + // const request = { + // ...requestOptions, + // prompt + // } + console.log('builtRequest return last'); + return request; + }, + + uiOptions: { + // TODO proper persistence of all UI / user settings centrally somewhere? + // localStorage.getItem('ui:advancedSettingsIsOpen') === 'true', + advancedSettingsIsOpen:false, + imageModifierIsOpen: false, + isCheckedUseUpscaling: false, + isCheckUseFaceCorrection: true, + isUseRandomSeed: true, + isUseAutoSave: false, + isSoundEnabled: true, + }, + + toggleAdvancedSettingsIsOpen: () => { + set( produce((state) => { + state.uiOptions.advancedSettingsIsOpen = !state.uiOptions.advancedSettingsIsOpen; + localStorage.setItem('ui:advancedSettingsIsOpen', state.uiOptions.advancedSettingsIsOpen); + })) + }, + + toggleImageModifiersIsOpen: () => { + set( produce((state) => { + state.uiOptions.imageModifierIsOpen = !state.uiOptions.imageModifierIsOpen; + localStorage.setItem('ui:imageModifierIsOpen', state.uiOptions.imageModifierIsOpen); + })) + }, + + toggleUseUpscaling: () => { + set( produce((state) => { + state.uiOptions.isCheckedUseUpscaling = !state.uiOptions.isCheckedUseUpscaling; + state.requestOptions.use_upscale = state.uiOptions.isCheckedUseUpscaling ? 'RealESRGAN_x4plus' : null; + localStorage.setItem('ui:isCheckedUseUpscaling', state.uiOptions.isCheckedUseUpscaling); + })) + }, + + isUsingUpscaling: () => { + return get().uiOptions.isCheckedUseUpscaling; + }, + + toggleUseFaceCorrection: () => { + set( produce((state) => { + state.uiOptions.isCheckUseFaceCorrection = !state.uiOptions.isCheckUseFaceCorrection; + state.use_face_correction = state.uiOptions.isCheckUseFaceCorrection ? 'GFPGANv1.3' : null; + localStorage.setItem('ui:isCheckUseFaceCorrection', state.uiOptions.isCheckUseFaceCorrection); + })) + }, + + isUsingFaceCorrection: () => { + return get().uiOptions.isCheckUseFaceCorrection; + }, + + + toggleUseRandomSeed: () => { + set( produce((state) => { + state.uiOptions.isUseRandomSeed = !state.uiOptions.isUseRandomSeed; + state.requestOptions.seed = state.uiOptions.isUseRandomSeed ? useRandomSeed() : state.requestOptions.seed; + localStorage.setItem('ui:isUseRandomSeed', state.uiOptions.isUseRandomSeed); + })) + }, + + isRandomSeed: () => { + return get().uiOptions.isUseRandomSeed; + }, + + toggleUseAutoSave: () => { + //isUseAutoSave + //save_to_disk_path + set( produce((state) => { + state.uiOptions.isUseAutoSave = !state.uiOptions.isUseAutoSave; + localStorage.setItem('ui:isUseAutoSave', state.uiOptions.isUseAutoSave); + })) + }, + + isUseAutoSave: () => { + return get().uiOptions.isUseAutoSave; + }, + + toggleSoundEnabled: () => { + set( produce((state) => { + state.uiOptions.isSoundEnabled = !state.uiOptions.isSoundEnabled; + //localStorage.setItem('ui:isSoundEnabled', state.uiOptions.isSoundEnabled); + })) + }, + + isSoundEnabled: () => { + return get().uiOptions.isSoundEnabled; + }, + +}))); + + diff --git a/ui/frontend/build_src/src/store/imageDisplayStore.ts b/ui/frontend/build_src/src/store/imageDisplayStore.ts new file mode 100644 index 00000000..c0addd3a --- /dev/null +++ b/ui/frontend/build_src/src/store/imageDisplayStore.ts @@ -0,0 +1,22 @@ +import create from 'zustand'; +import produce from 'immer'; + +// import { devtools } from 'zustand/middleware' + +interface ImageDisplayState { + imageOptions: Map; + currentImage: object | null; + addNewImage: (ImageData: string, imageOptions: any) => void +} + +export const useImageDisplay = create((set) => ({ + imageOptions: new Map(), + currentImage: null, + // use produce to make sure we don't mutate state + addNewImage: (ImageData: string, imageOptions: any) => { + set( produce((state) => { + state.currentImage = { display: ImageData, options: imageOptions }; + state.images.set(ImageData, imageOptions) + })); + } +})); \ No newline at end of file diff --git a/ui/frontend/build_src/src/store/imageQueueStore.ts b/ui/frontend/build_src/src/store/imageQueueStore.ts new file mode 100644 index 00000000..c64b1af3 --- /dev/null +++ b/ui/frontend/build_src/src/store/imageQueueStore.ts @@ -0,0 +1,48 @@ +import create from 'zustand'; +import produce from 'immer'; +import { useRandomSeed } from '../utils'; + +import { imageOptions } from './imageCreateStore'; + +interface ImageQueueState { + images : imageOptions[]; + completedImageIds: string[]; + addNewImage: (id:string, imageOptions: imageOptions) => void + hasQueuedImages: () => boolean; + firstInQueue: () => imageOptions | []; + removeFirstInQueue: () => void; +} + +// figure out why TS is complaining about this +// @ts-ignore +export const useImageQueue = create((set, get) => ({ + images: new Array(), + completedImageIds: new Array(), + // use produce to make sure we don't mutate state + addNewImage: (id: string, imageOptions: any) => { + set( produce((state) => { + + let { seed } = imageOptions; + if (imageOptions.isSeedRandom) { + seed = useRandomSeed(); + } + + state.images.push({ id, options: {...imageOptions, seed} }); + })); + }, + + hasQueuedImages: () => { + return get().images.length > 0; + }, + firstInQueue: () => { + return get().images[0] as imageOptions || []; + }, + + removeFirstInQueue: () => { + set( produce((state) => { + const image = state.images.shift(); + state.completedImageIds.push(image.id); + })); + } +})); + \ No newline at end of file diff --git a/ui/frontend/build_src/src/utils.ts b/ui/frontend/build_src/src/utils.ts new file mode 100644 index 00000000..0c91183a --- /dev/null +++ b/ui/frontend/build_src/src/utils.ts @@ -0,0 +1,3 @@ +export function useRandomSeed(){ + return Math.floor(Math.random() * 10000); +}; \ No newline at end of file diff --git a/ui/frontend/build_src/src/vite-env.d.ts b/ui/frontend/build_src/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/ui/frontend/build_src/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/ui/frontend/build_src/tsconfig.json b/ui/frontend/build_src/tsconfig.json new file mode 100644 index 00000000..3d0a51a8 --- /dev/null +++ b/ui/frontend/build_src/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/ui/frontend/build_src/tsconfig.node.json b/ui/frontend/build_src/tsconfig.node.json new file mode 100644 index 00000000..9d31e2ae --- /dev/null +++ b/ui/frontend/build_src/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/ui/frontend/build_src/vite.config.ts b/ui/frontend/build_src/vite.config.ts new file mode 100644 index 00000000..93da2313 --- /dev/null +++ b/ui/frontend/build_src/vite.config.ts @@ -0,0 +1,24 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + port: 9001, + }, + build: { + // make sure everythign is in the same directory + outDir: '../dist', + rollupOptions: { + output: { + // dont hash the file names + // maybe once we update the python server? + entryFileNames: `[name].js`, + chunkFileNames: `[name].js`, + assetFileNames: `[name].[ext]` + } + } + }, + +}) diff --git a/ui/frontend/dist/ding.mp3 b/ui/frontend/dist/ding.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..f2843b06cec845d487e3a23076dddaff619cc36c GIT binary patch literal 178080 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

9w<*Wrq?F=}3-u?n;a|ERE78E3};) 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 H8Ho}AjuP7u literal 0 HcmV?d00001 diff --git a/ui/frontend/dist/index.css b/ui/frontend/dist/index.css new file mode 100644 index 00000000..a2b3cecf --- /dev/null +++ b/ui/frontend/dist/index.css @@ -0,0 +1 @@ +.App{position:relative;width:100%;height:100%;pointer-events:auto;display:grid;background-color:#202124;grid-template-columns:360px 1fr;grid-template-rows:100px 1fr 300px;grid-template-areas:"header header header" "create display display" "footer footer footer"}@media screen and (max-width: 768px){.App{grid-template-columns:1fr;grid-template-rows:100px 1fr 1fr 300px;grid-template-areas:"header" "create" "display" "footer"}}.header-layout{grid-area:header}.create-layout{grid-area:create}.display-layout{grid-area:display}.footer-layout{grid-area:footer}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mb-4{margin-bottom:1rem}.starting{color:#f0ad4e}.error{color:#d9534f}.success{color:#5cb85c}.header-display{color:#fff;display:flex;align-items:center;justify-content:center}.status-display{margin-left:10px}input[size="4"]{width:4.5rem}.panel-box-toggle-btn{display:block;width:100%;text-align:left;background-color:transparent;color:#fff;border:0 none;cursor:pointer}.selected-tags{margin:10px 0}.selected-tags ul{margin:0;padding:0;display:flex;flex-wrap:wrap}li{list-style:none}.modifier-list{display:flex;flex-wrap:wrap;margin:0;padding:0}.modifierTag{display:inline-block;padding:6px;background-color:#264d8d;color:#fff;border-radius:5px;margin:5px}.modifierTag.selected{background-color:#830b79}.modifierTag p{margin:0}.footer-display{color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}body{margin:0;min-width:320px;min-height:100vh}#root{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:1} diff --git a/ui/frontend/dist/index.html b/ui/frontend/dist/index.html new file mode 100644 index 00000000..0a9c7228 --- /dev/null +++ b/ui/frontend/dist/index.html @@ -0,0 +1,1265 @@ + + + + + + Stable Diffusion UI + + + + + +

+ + + + + + + +
+
+
+
+
+
 
+ Stable Diffusion is starting.. +
+

Stable Diffusion UI v2.1

+
+
+
+ + +
+ +
+
+
+ + +
+
+ +
+ +
+
+
+ + +
+ +
 
+ +
+

Advanced Settings

+
    +
  • +
  • + + +
  • +
  • +
    +
  • +
  • (images at once)
  • +
  • + +
  • +
  • + +
  • +
  • +
  • +

  • +
  •  
  • +
  • +
  • +
  • +
  • +
  • + +
    +
  • +
+
+ +
+

Image Modifiers (art styles, tags etc)

+
+
+
+
+ +
+
Type a prompt and press the "Make Image" button.

You can set an "Initial Image" if you want to guide the AI.

You can also add modifiers like "Realistic", "Pencil Sketch", "ArtStation" etc by browsing through the "Image Modifiers" section and selecting the desired modifiers.

Click "Advanced Settings" for additional settings like seed, image size, number of images to generate etc.

Enjoy! :)
+ +
+
+
+
+
+ +
 
+ + +
+ + + + + + diff --git a/ui/frontend/dist/index.js b/ui/frontend/dist/index.js new file mode 100644 index 00000000..e28b5496 --- /dev/null +++ b/ui/frontend/dist/index.js @@ -0,0 +1,74 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const o of l.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerpolicy&&(l.referrerPolicy=i.referrerpolicy),i.crossorigin==="use-credentials"?l.credentials="include":i.crossorigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();function xa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var j={exports:{}},M={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yr=Symbol.for("react.element"),id=Symbol.for("react.portal"),ld=Symbol.for("react.fragment"),od=Symbol.for("react.strict_mode"),ud=Symbol.for("react.profiler"),sd=Symbol.for("react.provider"),ad=Symbol.for("react.context"),cd=Symbol.for("react.forward_ref"),fd=Symbol.for("react.suspense"),dd=Symbol.for("react.memo"),pd=Symbol.for("react.lazy"),qu=Symbol.iterator;function hd(e){return e===null||typeof e!="object"?null:(e=qu&&e[qu]||e["@@iterator"],typeof e=="function"?e:null)}var Oa={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_a=Object.assign,Ra={};function xn(e,t,n){this.props=e,this.context=t,this.refs=Ra,this.updater=n||Oa}xn.prototype.isReactComponent={};xn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};xn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Na(){}Na.prototype=xn.prototype;function Uo(e,t,n){this.props=e,this.context=t,this.refs=Ra,this.updater=n||Oa}var Qo=Uo.prototype=new Na;Qo.constructor=Uo;_a(Qo,xn.prototype);Qo.isPureReactComponent=!0;var Gu=Array.isArray,Ia=Object.prototype.hasOwnProperty,$o={current:null},Ta={key:!0,ref:!0,__self:!0,__source:!0};function Da(e,t,n){var r,i={},l=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(l=""+t.key),t)Ia.call(t,r)&&!Ta.hasOwnProperty(r)&&(i[r]=t[r]);var u=arguments.length-2;if(u===1)i.children=n;else if(1>>1,b=R[q];if(0>>1;qi(il,D))Tti(Pr,il)?(R[q]=Pr,R[Tt]=D,q=Tt):(R[q]=il,R[It]=D,q=It);else if(Tti(Pr,D))R[q]=Pr,R[Tt]=D,q=Tt;else break e}}return I}function i(R,I){var D=R.sortIndex-I.sortIndex;return D!==0?D:R.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var o=Date,u=o.now();e.unstable_now=function(){return o.now()-u}}var s=[],a=[],c=1,p=null,m=3,v=!1,S=!1,y=!1,O=typeof setTimeout=="function"?setTimeout:null,h=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(R){for(var I=n(a);I!==null;){if(I.callback===null)r(a);else if(I.startTime<=R)r(a),I.sortIndex=I.expirationTime,t(s,I);else break;I=n(a)}}function g(R){if(y=!1,d(R),!S)if(n(s)!==null)S=!0,nl(x);else{var I=n(a);I!==null&&rl(g,I.startTime-R)}}function x(R,I){S=!1,y&&(y=!1,h(P),P=-1),v=!0;var D=m;try{for(d(I),p=n(s);p!==null&&(!(p.expirationTime>I)||R&&!fe());){var q=p.callback;if(typeof q=="function"){p.callback=null,m=p.priorityLevel;var b=q(p.expirationTime<=I);I=e.unstable_now(),typeof b=="function"?p.callback=b:p===n(s)&&r(s),d(I)}else r(s);p=n(s)}if(p!==null)var Er=!0;else{var It=n(a);It!==null&&rl(g,It.startTime-I),Er=!1}return Er}finally{p=null,m=D,v=!1}}var w=!1,E=null,P=-1,z=5,T=-1;function fe(){return!(e.unstable_now()-TR||125q?(R.sortIndex=D,t(a,R),n(s)===null&&R===n(a)&&(y?(h(P),P=-1):y=!0,rl(g,D-q))):(R.sortIndex=b,t(s,R),S||v||(S=!0,nl(x))),R},e.unstable_shouldYield=fe,e.unstable_wrapCallback=function(R){var I=m;return function(){var D=m;m=I;try{return R.apply(this,arguments)}finally{m=D}}}})(za);(function(e){e.exports=za})(Fa);/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var La=j.exports,xe=Fa.exports;function k(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Al=Object.prototype.hasOwnProperty,wd=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Xu={},Zu={};function kd(e){return Al.call(Zu,e)?!0:Al.call(Xu,e)?!1:wd.test(e)?Zu[e]=!0:(Xu[e]=!0,!1)}function Cd(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ed(e,t,n,r){if(t===null||typeof t>"u"||Cd(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function me(e,t,n,r,i,l,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=o}var oe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){oe[e]=new me(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];oe[t]=new me(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){oe[e]=new me(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){oe[e]=new me(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){oe[e]=new me(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){oe[e]=new me(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){oe[e]=new me(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){oe[e]=new me(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){oe[e]=new me(e,5,!1,e.toLowerCase(),null,!1,!1)});var Bo=/[\-:]([a-z])/g;function Ho(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Bo,Ho);oe[t]=new me(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Bo,Ho);oe[t]=new me(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Bo,Ho);oe[t]=new me(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){oe[e]=new me(e,1,!1,e.toLowerCase(),null,!1,!1)});oe.xlinkHref=new me("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){oe[e]=new me(e,1,!1,e.toLowerCase(),null,!0,!0)});function Wo(e,t,n,r){var i=oe.hasOwnProperty(t)?oe[t]:null;(i!==null?i.type!==0:r||!(2u||i[o]!==l[u]){var s=` +`+i[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=u);break}}}finally{ul=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?jn(e):""}function Pd(e){switch(e.tag){case 5:return jn(e.type);case 16:return jn("Lazy");case 13:return jn("Suspense");case 19:return jn("SuspenseList");case 0:case 2:case 15:return e=sl(e.type,!1),e;case 11:return e=sl(e.type.render,!1),e;case 1:return e=sl(e.type,!0),e;default:return""}}function Vl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Zt:return"Fragment";case Xt:return"Portal";case Ul:return"Profiler";case Ko:return"StrictMode";case Ql:return"Suspense";case $l:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ua:return(e.displayName||"Context")+".Consumer";case Aa:return(e._context.displayName||"Context")+".Provider";case qo:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Go:return t=e.displayName||null,t!==null?t:Vl(e.type)||"Memo";case at:t=e._payload,e=e._init;try{return Vl(e(t))}catch{}}return null}function xd(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Vl(t);case 8:return t===Ko?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Pt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function $a(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Od(e){var t=$a(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,l.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function _r(e){e._valueTracker||(e._valueTracker=Od(e))}function Va(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=$a(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ii(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Bl(e,t){var n=t.checked;return W({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function bu(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Pt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ba(e,t){t=t.checked,t!=null&&Wo(e,"checked",t,!1)}function Hl(e,t){Ba(e,t);var n=Pt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Wl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Wl(e,t.type,Pt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function es(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Wl(e,t,n){(t!=="number"||ii(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var An=Array.isArray;function an(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=Rr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Jn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Vn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},_d=["Webkit","ms","Moz","O"];Object.keys(Vn).forEach(function(e){_d.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Vn[t]=Vn[e]})});function qa(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Vn.hasOwnProperty(e)&&Vn[e]?(""+t).trim():t+"px"}function Ga(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=qa(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var Rd=W({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Gl(e,t){if(t){if(Rd[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(k(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(k(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(k(61))}if(t.style!=null&&typeof t.style!="object")throw Error(k(62))}}function Yl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Xl=null;function Yo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Zl=null,cn=null,fn=null;function rs(e){if(e=wr(e)){if(typeof Zl!="function")throw Error(k(280));var t=e.stateNode;t&&(t=Qi(t),Zl(e.stateNode,e.type,t))}}function Ya(e){cn?fn?fn.push(e):fn=[e]:cn=e}function Xa(){if(cn){var e=cn,t=fn;if(fn=cn=null,rs(e),t)for(e=0;e>>=0,e===0?32:31-(Ud(e)/Qd|0)|0}var Nr=64,Ir=4194304;function Un(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function si(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,l=e.pingedLanes,o=n&268435455;if(o!==0){var u=o&~i;u!==0?r=Un(u):(l&=o,l!==0&&(r=Un(l)))}else o=n&~i,o!==0?r=Un(o):l!==0&&(r=Un(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&i)===0&&(i=r&-r,l=t&-t,i>=l||i===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function gr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-$e(t),e[t]=n}function Hd(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Hn),ds=String.fromCharCode(32),ps=!1;function vc(e,t){switch(e){case"keyup":return gp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function yc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Jt=!1;function wp(e,t){switch(e){case"compositionend":return yc(t);case"keypress":return t.which!==32?null:(ps=!0,ds);case"textInput":return e=t.data,e===ds&&ps?null:e;default:return null}}function kp(e,t){if(Jt)return e==="compositionend"||!ru&&vc(e,t)?(e=hc(),qr=eu=ht=null,Jt=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ys(n)}}function kc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?kc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Cc(){for(var e=window,t=ii();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ii(e.document)}return t}function iu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Ip(e){var t=Cc(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&kc(n.ownerDocument.documentElement,n)){if(r!==null&&iu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,l=Math.min(r.start,i);r=r.end===void 0?l:Math.min(r.end,i),!e.extend&&l>r&&(i=r,r=l,l=i),i=gs(n,l);var o=gs(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,bt=null,ro=null,Kn=null,io=!1;function Ss(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;io||bt==null||bt!==ii(r)||(r=bt,"selectionStart"in r&&iu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Kn&&ir(Kn,r)||(Kn=r,r=fi(ro,"onSelect"),0nn||(e.current=co[nn],co[nn]=null,nn--)}function U(e,t){nn++,co[nn]=e.current,e.current=t}var xt={},ce=_t(xt),ge=_t(!1),$t=xt;function vn(e,t){var n=e.type.contextTypes;if(!n)return xt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},l;for(l in n)i[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Se(e){return e=e.childContextTypes,e!=null}function pi(){$(ge),$(ce)}function Os(e,t,n){if(ce.current!==xt)throw Error(k(168));U(ce,t),U(ge,n)}function Tc(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(k(108,xd(e)||"Unknown",i));return W({},n,r)}function hi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||xt,$t=ce.current,U(ce,e),U(ge,ge.current),!0}function _s(e,t,n){var r=e.stateNode;if(!r)throw Error(k(169));n?(e=Tc(e,t,$t),r.__reactInternalMemoizedMergedChildContext=e,$(ge),$(ce),U(ce,e)):$(ge),U(ge,n)}var Ze=null,$i=!1,Cl=!1;function Dc(e){Ze===null?Ze=[e]:Ze.push(e)}function Vp(e){$i=!0,Dc(e)}function Rt(){if(!Cl&&Ze!==null){Cl=!0;var e=0,t=A;try{var n=Ze;for(A=1;e>=o,i-=o,be=1<<32-$e(t)+i|n<P?(z=E,E=null):z=E.sibling;var T=m(h,E,d[P],g);if(T===null){E===null&&(E=z);break}e&&E&&T.alternate===null&&t(h,E),f=l(T,f,P),w===null?x=T:w.sibling=T,w=T,E=z}if(P===d.length)return n(h,E),V&&Dt(h,P),x;if(E===null){for(;PP?(z=E,E=null):z=E.sibling;var fe=m(h,E,T.value,g);if(fe===null){E===null&&(E=z);break}e&&E&&fe.alternate===null&&t(h,E),f=l(fe,f,P),w===null?x=fe:w.sibling=fe,w=fe,E=z}if(T.done)return n(h,E),V&&Dt(h,P),x;if(E===null){for(;!T.done;P++,T=d.next())T=p(h,T.value,g),T!==null&&(f=l(T,f,P),w===null?x=T:w.sibling=T,w=T);return V&&Dt(h,P),x}for(E=r(h,E);!T.done;P++,T=d.next())T=v(E,h,P,T.value,g),T!==null&&(e&&T.alternate!==null&&E.delete(T.key===null?P:T.key),f=l(T,f,P),w===null?x=T:w.sibling=T,w=T);return e&&E.forEach(function(Gt){return t(h,Gt)}),V&&Dt(h,P),x}function O(h,f,d,g){if(typeof d=="object"&&d!==null&&d.type===Zt&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case Or:e:{for(var x=d.key,w=f;w!==null;){if(w.key===x){if(x=d.type,x===Zt){if(w.tag===7){n(h,w.sibling),f=i(w,d.props.children),f.return=h,h=f;break e}}else if(w.elementType===x||typeof x=="object"&&x!==null&&x.$$typeof===at&&Fs(x)===w.type){n(h,w.sibling),f=i(w,d.props),f.ref=Fn(h,w,d),f.return=h,h=f;break e}n(h,w);break}else t(h,w);w=w.sibling}d.type===Zt?(f=Qt(d.props.children,h.mode,g,d.key),f.return=h,h=f):(g=ti(d.type,d.key,d.props,null,h.mode,g),g.ref=Fn(h,f,d),g.return=h,h=g)}return o(h);case Xt:e:{for(w=d.key;f!==null;){if(f.key===w)if(f.tag===4&&f.stateNode.containerInfo===d.containerInfo&&f.stateNode.implementation===d.implementation){n(h,f.sibling),f=i(f,d.children||[]),f.return=h,h=f;break e}else{n(h,f);break}else t(h,f);f=f.sibling}f=Il(d,h.mode,g),f.return=h,h=f}return o(h);case at:return w=d._init,O(h,f,w(d._payload),g)}if(An(d))return S(h,f,d,g);if(Nn(d))return y(h,f,d,g);jr(h,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,f!==null&&f.tag===6?(n(h,f.sibling),f=i(f,d),f.return=h,h=f):(n(h,f),f=Nl(d,h.mode,g),f.return=h,h=f),o(h)):n(h,f)}return O}var gn=Qc(!0),$c=Qc(!1),kr={},Ge=_t(kr),sr=_t(kr),ar=_t(kr);function jt(e){if(e===kr)throw Error(k(174));return e}function pu(e,t){switch(U(ar,t),U(sr,e),U(Ge,kr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ql(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=ql(t,e)}$(Ge),U(Ge,t)}function Sn(){$(Ge),$(sr),$(ar)}function Vc(e){jt(ar.current);var t=jt(Ge.current),n=ql(t,e.type);t!==n&&(U(sr,e),U(Ge,n))}function hu(e){sr.current===e&&($(Ge),$(sr))}var B=_t(0);function wi(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var El=[];function mu(){for(var e=0;en?n:4,e(!0);var r=Pl.transition;Pl.transition={};try{e(!1),t()}finally{A=n,Pl.transition=r}}function lf(){return Le().memoizedState}function Kp(e,t,n){var r=Ct(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},of(e))uf(t,n);else if(n=Lc(e,t,n,r),n!==null){var i=pe();Ve(n,e,r,i),sf(n,t,r)}}function qp(e,t,n){var r=Ct(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(of(e))uf(t,i);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var o=t.lastRenderedState,u=l(o,n);if(i.hasEagerState=!0,i.eagerState=u,Be(u,o)){var s=t.interleaved;s===null?(i.next=i,fu(t)):(i.next=s.next,s.next=i),t.interleaved=i;return}}catch{}finally{}n=Lc(e,t,i,r),n!==null&&(i=pe(),Ve(n,e,r,i),sf(n,t,r))}}function of(e){var t=e.alternate;return e===H||t!==null&&t===H}function uf(e,t){qn=ki=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function sf(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Zo(e,n)}}var Ci={readContext:ze,useCallback:ue,useContext:ue,useEffect:ue,useImperativeHandle:ue,useInsertionEffect:ue,useLayoutEffect:ue,useMemo:ue,useReducer:ue,useRef:ue,useState:ue,useDebugValue:ue,useDeferredValue:ue,useTransition:ue,useMutableSource:ue,useSyncExternalStore:ue,useId:ue,unstable_isNewReconciler:!1},Gp={readContext:ze,useCallback:function(e,t){return We().memoizedState=[e,t===void 0?null:t],e},useContext:ze,useEffect:Ls,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Zr(4194308,4,bc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Zr(4194308,4,e,t)},useInsertionEffect:function(e,t){return Zr(4,2,e,t)},useMemo:function(e,t){var n=We();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=We();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Kp.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=We();return e={current:e},t.memoizedState=e},useState:zs,useDebugValue:wu,useDeferredValue:function(e){return We().memoizedState=e},useTransition:function(){var e=zs(!1),t=e[0];return e=Wp.bind(null,e[1]),We().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=H,i=We();if(V){if(n===void 0)throw Error(k(407));n=n()}else{if(n=t(),ne===null)throw Error(k(349));(Bt&30)!==0||Wc(r,t,n)}i.memoizedState=n;var l={value:n,getSnapshot:t};return i.queue=l,Ls(qc.bind(null,r,l,e),[e]),r.flags|=2048,dr(9,Kc.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=We(),t=ne.identifierPrefix;if(V){var n=et,r=be;n=(r&~(1<<32-$e(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=cr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Ke]=t,e[ur]=r,yf(e,t,!1,!1),t.stateNode=e;e:{switch(o=Yl(n,r),n){case"dialog":Q("cancel",e),Q("close",e),i=r;break;case"iframe":case"object":case"embed":Q("load",e),i=r;break;case"video":case"audio":for(i=0;ikn&&(t.flags|=128,r=!0,zn(l,!1),t.lanes=4194304)}else{if(!r)if(e=wi(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),zn(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!V)return se(t),null}else 2*G()-l.renderingStartTime>kn&&n!==1073741824&&(t.flags|=128,r=!0,zn(l,!1),t.lanes=4194304);l.isBackwards?(o.sibling=t.child,t.child=o):(n=l.last,n!==null?n.sibling=o:t.child=o,l.last=o)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=G(),t.sibling=null,n=B.current,U(B,r?n&1|2:n&1),t):(se(t),null);case 22:case 23:return Ou(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(Ce&1073741824)!==0&&(se(t),t.subtreeFlags&6&&(t.flags|=8192)):se(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function nh(e,t){switch(ou(t),t.tag){case 1:return Se(t.type)&&pi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Sn(),$(ge),$(ce),mu(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return hu(t),null;case 13:if($(B),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));yn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return $(B),null;case 4:return Sn(),null;case 10:return cu(t.type._context),null;case 22:case 23:return Ou(),null;case 24:return null;default:return null}}var Ur=!1,ae=!1,rh=typeof WeakSet=="function"?WeakSet:Set,_=null;function un(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){K(e,t,r)}else n.current=null}function Eo(e,t,n){try{n()}catch(r){K(e,t,r)}}var Ws=!1;function ih(e,t){if(lo=ai,e=Cc(),iu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var o=0,u=-1,s=-1,a=0,c=0,p=e,m=null;t:for(;;){for(var v;p!==n||i!==0&&p.nodeType!==3||(u=o+i),p!==l||r!==0&&p.nodeType!==3||(s=o+r),p.nodeType===3&&(o+=p.nodeValue.length),(v=p.firstChild)!==null;)m=p,p=v;for(;;){if(p===e)break t;if(m===n&&++a===i&&(u=o),m===l&&++c===r&&(s=o),(v=p.nextSibling)!==null)break;p=m,m=p.parentNode}p=v}n=u===-1||s===-1?null:{start:u,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(oo={focusedElem:e,selectionRange:n},ai=!1,_=t;_!==null;)if(t=_,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_=e;else for(;_!==null;){t=_;try{var S=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var y=S.memoizedProps,O=S.memoizedState,h=t.stateNode,f=h.getSnapshotBeforeUpdate(t.elementType===t.type?y:Ae(t.type,y),O);h.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(g){K(t,t.return,g)}if(e=t.sibling,e!==null){e.return=t.return,_=e;break}_=t.return}return S=Ws,Ws=!1,S}function Gn(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var l=i.destroy;i.destroy=void 0,l!==void 0&&Eo(t,n,l)}i=i.next}while(i!==r)}}function Hi(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Po(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function wf(e){var t=e.alternate;t!==null&&(e.alternate=null,wf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Ke],delete t[ur],delete t[ao],delete t[Qp],delete t[$p])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function kf(e){return e.tag===5||e.tag===3||e.tag===4}function Ks(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||kf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function xo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=di));else if(r!==4&&(e=e.child,e!==null))for(xo(e,t,n),e=e.sibling;e!==null;)xo(e,t,n),e=e.sibling}function Oo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Oo(e,t,n),e=e.sibling;e!==null;)Oo(e,t,n),e=e.sibling}var ie=null,Ue=!1;function st(e,t,n){for(n=n.child;n!==null;)Cf(e,t,n),n=n.sibling}function Cf(e,t,n){if(qe&&typeof qe.onCommitFiberUnmount=="function")try{qe.onCommitFiberUnmount(Li,n)}catch{}switch(n.tag){case 5:ae||un(n,t);case 6:var r=ie,i=Ue;ie=null,st(e,t,n),ie=r,Ue=i,ie!==null&&(Ue?(e=ie,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ie.removeChild(n.stateNode));break;case 18:ie!==null&&(Ue?(e=ie,n=n.stateNode,e.nodeType===8?kl(e.parentNode,n):e.nodeType===1&&kl(e,n),nr(e)):kl(ie,n.stateNode));break;case 4:r=ie,i=Ue,ie=n.stateNode.containerInfo,Ue=!0,st(e,t,n),ie=r,Ue=i;break;case 0:case 11:case 14:case 15:if(!ae&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var l=i,o=l.destroy;l=l.tag,o!==void 0&&((l&2)!==0||(l&4)!==0)&&Eo(n,t,o),i=i.next}while(i!==r)}st(e,t,n);break;case 1:if(!ae&&(un(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(u){K(n,t,u)}st(e,t,n);break;case 21:st(e,t,n);break;case 22:n.mode&1?(ae=(r=ae)||n.memoizedState!==null,st(e,t,n),ae=r):st(e,t,n);break;default:st(e,t,n)}}function qs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new rh),t.forEach(function(r){var i=ph.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function je(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~l}if(r=i,r=G()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*oh(r/1960))-r,10e?16:e,mt===null)var r=!1;else{if(e=mt,mt=null,xi=0,(F&6)!==0)throw Error(k(331));var i=F;for(F|=4,_=e.current;_!==null;){var l=_,o=l.child;if((_.flags&16)!==0){var u=l.deletions;if(u!==null){for(var s=0;sG()-Pu?Ut(e,0):Eu|=n),we(e,t)}function If(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ir,Ir<<=1,(Ir&130023424)===0&&(Ir=4194304)));var n=pe();e=it(e,t),e!==null&&(gr(e,t,n),we(e,n))}function dh(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),If(e,n)}function ph(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(k(314))}r!==null&&r.delete(t),If(e,n)}var Tf;Tf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ge.current)ye=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return ye=!1,eh(e,t,n);ye=(e.flags&131072)!==0}else ye=!1,V&&(t.flags&1048576)!==0&&Mc(t,vi,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Jr(e,t),e=t.pendingProps;var i=vn(t,ce.current);pn(t,n),i=yu(null,t,r,e,i,n);var l=gu();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Se(r)?(l=!0,hi(t)):l=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,du(t),i.updater=Vi,t.stateNode=i,i._reactInternals=t,vo(t,r,e,n),t=So(null,t,r,!0,l,n)):(t.tag=0,V&&l&&lu(t),de(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Jr(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=mh(r),e=Ae(r,e),i){case 0:t=go(null,t,r,e,n);break e;case 1:t=Vs(null,t,r,e,n);break e;case 11:t=Qs(null,t,r,e,n);break e;case 14:t=$s(null,t,r,Ae(r.type,e),n);break e}throw Error(k(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ae(r,i),go(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ae(r,i),Vs(e,t,r,i,n);case 3:e:{if(hf(t),e===null)throw Error(k(387));r=t.pendingProps,l=t.memoizedState,i=l.element,jc(e,t),Si(t,r,null,n);var o=t.memoizedState;if(r=o.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){i=wn(Error(k(423)),t),t=Bs(e,t,r,n,i);break e}else if(r!==i){i=wn(Error(k(424)),t),t=Bs(e,t,r,n,i);break e}else for(Ee=St(t.stateNode.containerInfo.firstChild),Pe=t,V=!0,Qe=null,n=$c(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(yn(),r===i){t=lt(e,t,n);break e}de(e,t,r,n)}t=t.child}return t;case 5:return Vc(t),e===null&&po(t),r=t.type,i=t.pendingProps,l=e!==null?e.memoizedProps:null,o=i.children,uo(r,i)?o=null:l!==null&&uo(r,l)&&(t.flags|=32),pf(e,t),de(e,t,o,n),t.child;case 6:return e===null&&po(t),null;case 13:return mf(e,t,n);case 4:return pu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=gn(t,null,r,n):de(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ae(r,i),Qs(e,t,r,i,n);case 7:return de(e,t,t.pendingProps,n),t.child;case 8:return de(e,t,t.pendingProps.children,n),t.child;case 12:return de(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,l=t.memoizedProps,o=i.value,U(yi,r._currentValue),r._currentValue=o,l!==null)if(Be(l.value,o)){if(l.children===i.children&&!ge.current){t=lt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var u=l.dependencies;if(u!==null){o=l.child;for(var s=u.firstContext;s!==null;){if(s.context===r){if(l.tag===1){s=tt(-1,n&-n),s.tag=2;var a=l.updateQueue;if(a!==null){a=a.shared;var c=a.pending;c===null?s.next=s:(s.next=c.next,c.next=s),a.pending=s}}l.lanes|=n,s=l.alternate,s!==null&&(s.lanes|=n),ho(l.return,n,t),u.lanes|=n;break}s=s.next}}else if(l.tag===10)o=l.type===t.type?null:l.child;else if(l.tag===18){if(o=l.return,o===null)throw Error(k(341));o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),ho(o,n,t),o=l.sibling}else o=l.child;if(o!==null)o.return=l;else for(o=l;o!==null;){if(o===t){o=null;break}if(l=o.sibling,l!==null){l.return=o.return,o=l;break}o=o.return}l=o}de(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,pn(t,n),i=ze(i),r=r(i),t.flags|=1,de(e,t,r,n),t.child;case 14:return r=t.type,i=Ae(r,t.pendingProps),i=Ae(r.type,i),$s(e,t,r,i,n);case 15:return ff(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:Ae(r,i),Jr(e,t),t.tag=1,Se(r)?(e=!0,hi(t)):e=!1,pn(t,n),Uc(t,r,i),vo(t,r,i,n),So(null,t,r,!0,e,n);case 19:return vf(e,t,n);case 22:return df(e,t,n)}throw Error(k(156,t.tag))};function Df(e,t){return rc(e,t)}function hh(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Me(e,t,n,r){return new hh(e,t,n,r)}function Ru(e){return e=e.prototype,!(!e||!e.isReactComponent)}function mh(e){if(typeof e=="function")return Ru(e)?1:0;if(e!=null){if(e=e.$$typeof,e===qo)return 11;if(e===Go)return 14}return 2}function Et(e,t){var n=e.alternate;return n===null?(n=Me(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ti(e,t,n,r,i,l){var o=2;if(r=e,typeof e=="function")Ru(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Zt:return Qt(n.children,i,l,t);case Ko:o=8,i|=8;break;case Ul:return e=Me(12,n,t,i|2),e.elementType=Ul,e.lanes=l,e;case Ql:return e=Me(13,n,t,i),e.elementType=Ql,e.lanes=l,e;case $l:return e=Me(19,n,t,i),e.elementType=$l,e.lanes=l,e;case Qa:return Ki(n,i,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Aa:o=10;break e;case Ua:o=9;break e;case qo:o=11;break e;case Go:o=14;break e;case at:o=16,r=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=Me(o,n,t,i),t.elementType=e,t.type=r,t.lanes=l,t}function Qt(e,t,n,r){return e=Me(7,e,r,t),e.lanes=n,e}function Ki(e,t,n,r){return e=Me(22,e,r,t),e.elementType=Qa,e.lanes=n,e.stateNode={isHidden:!1},e}function Nl(e,t,n){return e=Me(6,e,null,t),e.lanes=n,e}function Il(e,t,n){return t=Me(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function vh(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=cl(0),this.expirationTimes=cl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=cl(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Nu(e,t,n,r,i,l,o,u,s){return e=new vh(e,t,n,u,s),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Me(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},du(l),e}function yh(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(n){console.error(n)}}t(),e.exports=_e})(Ma);var ta=Ma.exports;jl.createRoot=ta.createRoot,jl.hydrateRoot=ta.hydrateRoot;var Mu={exports:{}},Lf={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Cn=j.exports;function Ch(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Eh=typeof Object.is=="function"?Object.is:Ch,Ph=Cn.useState,xh=Cn.useEffect,Oh=Cn.useLayoutEffect,_h=Cn.useDebugValue;function Rh(e,t){var n=t(),r=Ph({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return Oh(function(){i.value=n,i.getSnapshot=t,Tl(i)&&l({inst:i})},[e,n,t]),xh(function(){return Tl(i)&&l({inst:i}),e(function(){Tl(i)&&l({inst:i})})},[e]),_h(n),n}function Tl(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Eh(e,n)}catch{return!0}}function Nh(e,t){return t()}var Ih=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Nh:Rh;Lf.useSyncExternalStore=Cn.useSyncExternalStore!==void 0?Cn.useSyncExternalStore:Ih;(function(e){e.exports=Lf})(Mu);var Zi={exports:{}},Ji={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Th=j.exports,Dh=Symbol.for("react.element"),Mh=Symbol.for("react.fragment"),Fh=Object.prototype.hasOwnProperty,zh=Th.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Lh={key:!0,ref:!0,__self:!0,__source:!0};function jf(e,t,n){var r,i={},l=null,o=null;n!==void 0&&(l=""+n),t.key!==void 0&&(l=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)Fh.call(t,r)&&!Lh.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:Dh,type:e,key:l,ref:o,props:i,_owner:zh.current}}Ji.Fragment=Mh;Ji.jsx=jf;Ji.jsxs=jf;(function(e){e.exports=Ji})(Zi);const jh=Zi.exports.Fragment,C=Zi.exports.jsx,N=Zi.exports.jsxs;/** + * react-query + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */class Cr{constructor(){this.listeners=[],this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.push(t),this.onSubscribe(),()=>{this.listeners=this.listeners.filter(n=>n!==t),this.onUnsubscribe()}}hasListeners(){return this.listeners.length>0}onSubscribe(){}onUnsubscribe(){}}const hr=typeof window>"u";function Ne(){}function Ah(e,t){return typeof e=="function"?e(t):e}function To(e){return typeof e=="number"&&e>=0&&e!==1/0}function Af(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ni(e,t,n){return bi(e)?typeof t=="function"?{...n,queryKey:e,queryFn:t}:{...t,queryKey:e}:e}function ft(e,t,n){return bi(e)?[{...t,queryKey:e},n]:[e||{},t]}function na(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:l,queryKey:o,stale:u}=e;if(bi(o)){if(r){if(t.queryHash!==Fu(o,t.options))return!1}else if(!Ri(t.queryKey,o))return!1}if(n!=="all"){const s=t.isActive();if(n==="active"&&!s||n==="inactive"&&s)return!1}return!(typeof u=="boolean"&&t.isStale()!==u||typeof i<"u"&&i!==t.state.fetchStatus||l&&!l(t))}function ra(e,t){const{exact:n,fetching:r,predicate:i,mutationKey:l}=e;if(bi(l)){if(!t.options.mutationKey)return!1;if(n){if(At(t.options.mutationKey)!==At(l))return!1}else if(!Ri(t.options.mutationKey,l))return!1}return!(typeof r=="boolean"&&t.state.status==="loading"!==r||i&&!i(t))}function Fu(e,t){return((t==null?void 0:t.queryKeyHashFn)||At)(e)}function At(e){return JSON.stringify(e,(t,n)=>Do(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function Ri(e,t){return Uf(e,t)}function Uf(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?!Object.keys(t).some(n=>!Uf(e[n],t[n])):!1}function Qf(e,t){if(e===t)return e;const n=la(e)&&la(t);if(n||Do(e)&&Do(t)){const r=n?e.length:Object.keys(e).length,i=n?t:Object.keys(t),l=i.length,o=n?[]:{};let u=0;for(let s=0;s"u")return!0;const n=t.prototype;return!(!oa(n)||!n.hasOwnProperty("isPrototypeOf"))}function oa(e){return Object.prototype.toString.call(e)==="[object Object]"}function bi(e){return Array.isArray(e)}function $f(e){return new Promise(t=>{setTimeout(t,e)})}function ua(e){$f(0).then(e)}function Uh(){if(typeof AbortController=="function")return new AbortController}function Mo(e,t,n){return n.isDataEqual!=null&&n.isDataEqual(e,t)?e:typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Qf(e,t):t}class Qh extends Cr{constructor(){super(),this.setup=t=>{if(!hr&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),window.addEventListener("focus",n,!1),()=>{window.removeEventListener("visibilitychange",n),window.removeEventListener("focus",n)}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var t;(t=this.cleanup)==null||t.call(this),this.cleanup=void 0}}setEventListener(t){var n;this.setup=t,(n=this.cleanup)==null||n.call(this),this.cleanup=t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()})}setFocused(t){this.focused=t,t&&this.onFocus()}onFocus(){this.listeners.forEach(t=>{t()})}isFocused(){return typeof this.focused=="boolean"?this.focused:typeof document>"u"?!0:[void 0,"visible","prerender"].includes(document.visibilityState)}}const Ni=new Qh;class $h extends Cr{constructor(){super(),this.setup=t=>{if(!hr&&window.addEventListener){const n=()=>t();return window.addEventListener("online",n,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",n)}}}}onSubscribe(){this.cleanup||this.setEventListener(this.setup)}onUnsubscribe(){if(!this.hasListeners()){var t;(t=this.cleanup)==null||t.call(this),this.cleanup=void 0}}setEventListener(t){var n;this.setup=t,(n=this.cleanup)==null||n.call(this),this.cleanup=t(r=>{typeof r=="boolean"?this.setOnline(r):this.onOnline()})}setOnline(t){this.online=t,t&&this.onOnline()}onOnline(){this.listeners.forEach(t=>{t()})}isOnline(){return typeof this.online=="boolean"?this.online:typeof navigator>"u"||typeof navigator.onLine>"u"?!0:navigator.onLine}}const Ii=new $h;function Vh(e){return Math.min(1e3*2**e,3e4)}function el(e){return(e!=null?e:"online")==="online"?Ii.isOnline():!0}class Vf{constructor(t){this.revert=t==null?void 0:t.revert,this.silent=t==null?void 0:t.silent}}function ri(e){return e instanceof Vf}function Bf(e){let t=!1,n=0,r=!1,i,l,o;const u=new Promise((O,h)=>{l=O,o=h}),s=O=>{r||(v(new Vf(O)),e.abort==null||e.abort())},a=()=>{t=!0},c=()=>{t=!1},p=()=>!Ni.isFocused()||e.networkMode!=="always"&&!Ii.isOnline(),m=O=>{r||(r=!0,e.onSuccess==null||e.onSuccess(O),i==null||i(),l(O))},v=O=>{r||(r=!0,e.onError==null||e.onError(O),i==null||i(),o(O))},S=()=>new Promise(O=>{i=h=>{if(r||!p())return O(h)},e.onPause==null||e.onPause()}).then(()=>{i=void 0,r||e.onContinue==null||e.onContinue()}),y=()=>{if(r)return;let O;try{O=e.fn()}catch(h){O=Promise.reject(h)}Promise.resolve(O).then(m).catch(h=>{var f,d;if(r)return;const g=(f=e.retry)!=null?f:3,x=(d=e.retryDelay)!=null?d:Vh,w=typeof x=="function"?x(n,h):x,E=g===!0||typeof g=="number"&&n{if(p())return S()}).then(()=>{t?v(h):y()})})};return el(e.networkMode)?y():S().then(y),{promise:u,cancel:s,continue:()=>{i==null||i()},cancelRetry:a,continueRetry:c}}const zu=console;function Bh(){let e=[],t=0,n=c=>{c()},r=c=>{c()};const i=c=>{let p;t++;try{p=c()}finally{t--,t||u()}return p},l=c=>{t?e.push(c):ua(()=>{n(c)})},o=c=>(...p)=>{l(()=>{c(...p)})},u=()=>{const c=e;e=[],c.length&&ua(()=>{r(()=>{c.forEach(p=>{n(p)})})})};return{batch:i,batchCalls:o,schedule:l,setNotifyFunction:c=>{n=c},setBatchNotifyFunction:c=>{r=c}}}const Y=Bh();class Hf{destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),To(this.cacheTime)&&(this.gcTimeout=setTimeout(()=>{this.optionalRemove()},this.cacheTime))}updateCacheTime(t){this.cacheTime=Math.max(this.cacheTime||0,t!=null?t:hr?1/0:5*60*1e3)}clearGcTimeout(){this.gcTimeout&&(clearTimeout(this.gcTimeout),this.gcTimeout=void 0)}}class Hh extends Hf{constructor(t){super(),this.abortSignalConsumed=!1,this.defaultOptions=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.cache=t.cache,this.logger=t.logger||zu,this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.initialState=t.state||Wh(this.options),this.state=this.initialState,this.meta=t.meta}setOptions(t){this.options={...this.defaultOptions,...t},this.meta=t==null?void 0:t.meta,this.updateCacheTime(this.options.cacheTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.cache.remove(this)}setData(t,n){const r=Mo(this.state.data,t,this.options);return this.dispatch({data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){this.dispatch({type:"setState",state:t,setStateOptions:n})}cancel(t){var n;const r=this.promise;return(n=this.retryer)==null||n.cancel(t),r?r.then(Ne).catch(Ne):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.initialState)}isActive(){return this.observers.some(t=>t.options.enabled!==!1)}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||this.observers.some(t=>t.getCurrentResult().isStale)}isStaleByTime(t=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!Af(this.state.dataUpdatedAt,t)}onFocus(){var t;const n=this.observers.find(r=>r.shouldFetchOnWindowFocus());n&&n.refetch({cancelRefetch:!1}),(t=this.retryer)==null||t.continue()}onOnline(){var t;const n=this.observers.find(r=>r.shouldFetchOnReconnect());n&&n.refetch({cancelRefetch:!1}),(t=this.retryer)==null||t.continue()}addObserver(t){this.observers.indexOf(t)===-1&&(this.observers.push(t),this.clearGcTimeout(),this.cache.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.indexOf(t)!==-1&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(this.retryer&&(this.abortSignalConsumed?this.retryer.cancel({revert:!0}):this.retryer.cancelRetry()),this.scheduleGc()),this.cache.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.dispatch({type:"invalidate"})}fetch(t,n){var r,i;if(this.state.fetchStatus!=="idle"){if(this.state.dataUpdatedAt&&n!=null&&n.cancelRefetch)this.cancel({silent:!0});else if(this.promise){var l;return(l=this.retryer)==null||l.continueRetry(),this.promise}}if(t&&this.setOptions(t),!this.options.queryFn){const v=this.observers.find(S=>S.options.queryFn);v&&this.setOptions(v.options)}Array.isArray(this.options.queryKey);const o=Uh(),u={queryKey:this.queryKey,pageParam:void 0,meta:this.meta},s=v=>{Object.defineProperty(v,"signal",{enumerable:!0,get:()=>{if(o)return this.abortSignalConsumed=!0,o.signal}})};s(u);const a=()=>this.options.queryFn?(this.abortSignalConsumed=!1,this.options.queryFn(u)):Promise.reject("Missing queryFn"),c={fetchOptions:n,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:a,meta:this.meta};if(s(c),(r=this.options.behavior)==null||r.onFetch(c),this.revertState=this.state,this.state.fetchStatus==="idle"||this.state.fetchMeta!==((i=c.fetchOptions)==null?void 0:i.meta)){var p;this.dispatch({type:"fetch",meta:(p=c.fetchOptions)==null?void 0:p.meta})}const m=v=>{if(ri(v)&&v.silent||this.dispatch({type:"error",error:v}),!ri(v)){var S,y;(S=(y=this.cache.config).onError)==null||S.call(y,v,this)}this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return this.retryer=Bf({fn:c.fetchFn,abort:o==null?void 0:o.abort.bind(o),onSuccess:v=>{var S,y;if(typeof v>"u"){m(new Error("Query data cannot be undefined"));return}this.setData(v),(S=(y=this.cache.config).onSuccess)==null||S.call(y,v,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1},onError:m,onFail:()=>{this.dispatch({type:"failed"})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:c.options.retry,retryDelay:c.options.retryDelay,networkMode:c.options.networkMode}),this.promise=this.retryer.promise,this.promise}dispatch(t){const n=r=>{var i,l;switch(t.type){case"failed":return{...r,fetchFailureCount:r.fetchFailureCount+1};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,fetchFailureCount:0,fetchMeta:(i=t.meta)!=null?i:null,fetchStatus:el(this.options.networkMode)?"fetching":"paused",...!r.dataUpdatedAt&&{error:null,status:"loading"}};case"success":return{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:(l=t.dataUpdatedAt)!=null?l:Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0}};case"error":const o=t.error;return ri(o)&&o.revert&&this.revertState?{...this.revertState}:{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Y.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate(t)}),this.cache.notify({query:this,type:"updated",action:t})})}}function Wh(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,r=typeof e.initialData<"u"?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0,i=typeof t<"u";return{data:t,dataUpdateCount:0,dataUpdatedAt:i?r!=null?r:Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchMeta:null,isInvalidated:!1,status:i?"success":"loading",fetchStatus:"idle"}}class Kh extends Cr{constructor(t){super(),this.config=t||{},this.queries=[],this.queriesMap={}}build(t,n,r){var i;const l=n.queryKey,o=(i=n.queryHash)!=null?i:Fu(l,n);let u=this.get(o);return u||(u=new Hh({cache:this,logger:t.getLogger(),queryKey:l,queryHash:o,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(l),meta:n.meta}),this.add(u)),u}add(t){this.queriesMap[t.queryHash]||(this.queriesMap[t.queryHash]=t,this.queries.push(t),this.notify({type:"added",query:t}))}remove(t){const n=this.queriesMap[t.queryHash];n&&(t.destroy(),this.queries=this.queries.filter(r=>r!==t),n===t&&delete this.queriesMap[t.queryHash],this.notify({type:"removed",query:t}))}clear(){Y.batch(()=>{this.queries.forEach(t=>{this.remove(t)})})}get(t){return this.queriesMap[t]}getAll(){return this.queries}find(t,n){const[r]=ft(t,n);return typeof r.exact>"u"&&(r.exact=!0),this.queries.find(i=>na(r,i))}findAll(t,n){const[r]=ft(t,n);return Object.keys(r).length>0?this.queries.filter(i=>na(r,i)):this.queries}notify(t){Y.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Y.batch(()=>{this.queries.forEach(t=>{t.onFocus()})})}onOnline(){Y.batch(()=>{this.queries.forEach(t=>{t.onOnline()})})}}class qh extends Hf{constructor(t){super(),this.options={...t.defaultOptions,...t.options},this.mutationId=t.mutationId,this.mutationCache=t.mutationCache,this.logger=t.logger||zu,this.observers=[],this.state=t.state||Gh(),this.meta=t.meta,this.updateCacheTime(this.options.cacheTime),this.scheduleGc()}setState(t){this.dispatch({type:"setState",state:t})}addObserver(t){this.observers.indexOf(t)===-1&&(this.observers.push(t),this.clearGcTimeout(),this.mutationCache.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.observers=this.observers.filter(n=>n!==t),this.scheduleGc(),this.mutationCache.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.observers.length||(this.state.status==="loading"?this.scheduleGc():this.mutationCache.remove(this))}continue(){return this.retryer?(this.retryer.continue(),this.retryer.promise):this.execute()}async execute(){const t=()=>{var d;return this.retryer=Bf({fn:()=>this.options.mutationFn?this.options.mutationFn(this.state.variables):Promise.reject("No mutationFn found"),onFail:()=>{this.dispatch({type:"failed"})},onPause:()=>{this.dispatch({type:"pause"})},onContinue:()=>{this.dispatch({type:"continue"})},retry:(d=this.options.retry)!=null?d:0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode}),this.retryer.promise},n=this.state.status==="loading";try{var r,i,l,o,u,s;if(!n){var a,c,p,m;this.dispatch({type:"loading",variables:this.options.variables}),(a=(c=this.mutationCache.config).onMutate)==null||a.call(c,this.state.variables,this);const g=await((p=(m=this.options).onMutate)==null?void 0:p.call(m,this.state.variables));g!==this.state.context&&this.dispatch({type:"loading",context:g,variables:this.state.variables})}const d=await t();return(r=(i=this.mutationCache.config).onSuccess)==null||r.call(i,d,this.state.variables,this.state.context,this),await((l=(o=this.options).onSuccess)==null?void 0:l.call(o,d,this.state.variables,this.state.context)),await((u=(s=this.options).onSettled)==null?void 0:u.call(s,d,null,this.state.variables,this.state.context)),this.dispatch({type:"success",data:d}),d}catch(d){try{var v,S,y,O,h,f;throw(v=(S=this.mutationCache.config).onError)==null||v.call(S,d,this.state.variables,this.state.context,this),await((y=(O=this.options).onError)==null?void 0:y.call(O,d,this.state.variables,this.state.context)),await((h=(f=this.options).onSettled)==null?void 0:h.call(f,void 0,d,this.state.variables,this.state.context)),d}finally{this.dispatch({type:"error",error:d})}}}dispatch(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:r.failureCount+1};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"loading":return{...r,context:t.context,data:void 0,error:null,isPaused:!el(this.options.networkMode),status:"loading",variables:t.variables};case"success":return{...r,data:t.data,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,isPaused:!1,status:"error"};case"setState":return{...r,...t.state}}};this.state=n(this.state),Y.batch(()=>{this.observers.forEach(r=>{r.onMutationUpdate(t)}),this.mutationCache.notify({mutation:this,type:"updated",action:t})})}}function Gh(){return{context:void 0,data:void 0,error:null,failureCount:0,isPaused:!1,status:"idle",variables:void 0}}class Yh extends Cr{constructor(t){super(),this.config=t||{},this.mutations=[],this.mutationId=0}build(t,n,r){const i=new qh({mutationCache:this,logger:t.getLogger(),mutationId:++this.mutationId,options:t.defaultMutationOptions(n),state:r,defaultOptions:n.mutationKey?t.getMutationDefaults(n.mutationKey):void 0,meta:n.meta});return this.add(i),i}add(t){this.mutations.push(t),this.notify({type:"added",mutation:t})}remove(t){this.mutations=this.mutations.filter(n=>n!==t),this.notify({type:"removed",mutation:t})}clear(){Y.batch(()=>{this.mutations.forEach(t=>{this.remove(t)})})}getAll(){return this.mutations}find(t){return typeof t.exact>"u"&&(t.exact=!0),this.mutations.find(n=>ra(t,n))}findAll(t){return this.mutations.filter(n=>ra(t,n))}notify(t){Y.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.mutations.filter(n=>n.state.isPaused);return Y.batch(()=>t.reduce((n,r)=>n.then(()=>r.continue().catch(Ne)),Promise.resolve()))}}function Xh(){return{onFetch:e=>{e.fetchFn=()=>{var t,n,r,i,l,o;const u=(t=e.fetchOptions)==null||(n=t.meta)==null?void 0:n.refetchPage,s=(r=e.fetchOptions)==null||(i=r.meta)==null?void 0:i.fetchMore,a=s==null?void 0:s.pageParam,c=(s==null?void 0:s.direction)==="forward",p=(s==null?void 0:s.direction)==="backward",m=((l=e.state.data)==null?void 0:l.pages)||[],v=((o=e.state.data)==null?void 0:o.pageParams)||[];let S=v,y=!1;const O=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>{var E;if((E=e.signal)!=null&&E.aborted)y=!0;else{var P;(P=e.signal)==null||P.addEventListener("abort",()=>{y=!0})}return e.signal}})},h=e.options.queryFn||(()=>Promise.reject("Missing queryFn")),f=(w,E,P,z)=>(S=z?[E,...S]:[...S,E],z?[P,...w]:[...w,P]),d=(w,E,P,z)=>{if(y)return Promise.reject("Cancelled");if(typeof P>"u"&&!E&&w.length)return Promise.resolve(w);const T={queryKey:e.queryKey,pageParam:P,meta:e.meta};O(T);const fe=h(T);return Promise.resolve(fe).then(Nt=>f(w,P,Nt,z))};let g;if(!m.length)g=d([]);else if(c){const w=typeof a<"u",E=w?a:sa(e.options,m);g=d(m,w,E)}else if(p){const w=typeof a<"u",E=w?a:Zh(e.options,m);g=d(m,w,E,!0)}else{S=[];const w=typeof e.options.getNextPageParam>"u";g=(u&&m[0]?u(m[0],0,m):!0)?d([],w,v[0]):Promise.resolve(f([],v[0],m[0]));for(let P=1;P{if(u&&m[P]?u(m[P],P,m):!0){const fe=w?v[P]:sa(e.options,z);return d(z,w,fe)}return Promise.resolve(f(z,v[P],m[P]))})}return g.then(w=>({pages:w,pageParams:S}))}}}}function sa(e,t){return e.getNextPageParam==null?void 0:e.getNextPageParam(t[t.length-1],t)}function Zh(e,t){return e.getPreviousPageParam==null?void 0:e.getPreviousPageParam(t[0],t)}class Jh{constructor(t={}){this.queryCache=t.queryCache||new Kh,this.mutationCache=t.mutationCache||new Yh,this.logger=t.logger||zu,this.defaultOptions=t.defaultOptions||{},this.queryDefaults=[],this.mutationDefaults=[]}mount(){this.unsubscribeFocus=Ni.subscribe(()=>{Ni.isFocused()&&(this.resumePausedMutations(),this.queryCache.onFocus())}),this.unsubscribeOnline=Ii.subscribe(()=>{Ii.isOnline()&&(this.resumePausedMutations(),this.queryCache.onOnline())})}unmount(){var t,n;(t=this.unsubscribeFocus)==null||t.call(this),(n=this.unsubscribeOnline)==null||n.call(this)}isFetching(t,n){const[r]=ft(t,n);return r.fetchStatus="fetching",this.queryCache.findAll(r).length}isMutating(t){return this.mutationCache.findAll({...t,fetching:!0}).length}getQueryData(t,n){var r;return(r=this.queryCache.find(t,n))==null?void 0:r.state.data}getQueriesData(t){return this.getQueryCache().findAll(t).map(({queryKey:n,state:r})=>{const i=r.data;return[n,i]})}setQueryData(t,n,r){const i=this.queryCache.find(t),l=i==null?void 0:i.state.data,o=Ah(n,l);if(typeof o>"u")return;const u=ni(t),s=this.defaultQueryOptions(u);return this.queryCache.build(this,s).setData(o,{...r,manual:!0})}setQueriesData(t,n,r){return Y.batch(()=>this.getQueryCache().findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,n,r)]))}getQueryState(t,n){var r;return(r=this.queryCache.find(t,n))==null?void 0:r.state}removeQueries(t,n){const[r]=ft(t,n),i=this.queryCache;Y.batch(()=>{i.findAll(r).forEach(l=>{i.remove(l)})})}resetQueries(t,n,r){const[i,l]=ft(t,n,r),o=this.queryCache,u={type:"active",...i};return Y.batch(()=>(o.findAll(i).forEach(s=>{s.reset()}),this.refetchQueries(u,l)))}cancelQueries(t,n,r){const[i,l={}]=ft(t,n,r);typeof l.revert>"u"&&(l.revert=!0);const o=Y.batch(()=>this.queryCache.findAll(i).map(u=>u.cancel(l)));return Promise.all(o).then(Ne).catch(Ne)}invalidateQueries(t,n,r){const[i,l]=ft(t,n,r);return Y.batch(()=>{var o,u;if(this.queryCache.findAll(i).forEach(a=>{a.invalidate()}),i.refetchType==="none")return Promise.resolve();const s={...i,type:(o=(u=i.refetchType)!=null?u:i.type)!=null?o:"active"};return this.refetchQueries(s,l)})}refetchQueries(t,n,r){const[i,l]=ft(t,n,r),o=Y.batch(()=>this.queryCache.findAll(i).filter(s=>!s.isDisabled()).map(s=>{var a;return s.fetch(void 0,{...l,cancelRefetch:(a=l==null?void 0:l.cancelRefetch)!=null?a:!0,meta:{refetchPage:i.refetchPage}})}));let u=Promise.all(o).then(Ne);return l!=null&&l.throwOnError||(u=u.catch(Ne)),u}fetchQuery(t,n,r){const i=ni(t,n,r),l=this.defaultQueryOptions(i);typeof l.retry>"u"&&(l.retry=!1);const o=this.queryCache.build(this,l);return o.isStaleByTime(l.staleTime)?o.fetch(l):Promise.resolve(o.state.data)}prefetchQuery(t,n,r){return this.fetchQuery(t,n,r).then(Ne).catch(Ne)}fetchInfiniteQuery(t,n,r){const i=ni(t,n,r);return i.behavior=Xh(),this.fetchQuery(i)}prefetchInfiniteQuery(t,n,r){return this.fetchInfiniteQuery(t,n,r).then(Ne).catch(Ne)}resumePausedMutations(){return this.mutationCache.resumePausedMutations()}getQueryCache(){return this.queryCache}getMutationCache(){return this.mutationCache}getLogger(){return this.logger}getDefaultOptions(){return this.defaultOptions}setDefaultOptions(t){this.defaultOptions=t}setQueryDefaults(t,n){const r=this.queryDefaults.find(i=>At(t)===At(i.queryKey));r?r.defaultOptions=n:this.queryDefaults.push({queryKey:t,defaultOptions:n})}getQueryDefaults(t){if(!t)return;const n=this.queryDefaults.find(r=>Ri(t,r.queryKey));return n==null?void 0:n.defaultOptions}setMutationDefaults(t,n){const r=this.mutationDefaults.find(i=>At(t)===At(i.mutationKey));r?r.defaultOptions=n:this.mutationDefaults.push({mutationKey:t,defaultOptions:n})}getMutationDefaults(t){if(!t)return;const n=this.mutationDefaults.find(r=>Ri(t,r.mutationKey));return n==null?void 0:n.defaultOptions}defaultQueryOptions(t){if(t!=null&&t._defaulted)return t;const n={...this.defaultOptions.queries,...this.getQueryDefaults(t==null?void 0:t.queryKey),...t,_defaulted:!0};return!n.queryHash&&n.queryKey&&(n.queryHash=Fu(n.queryKey,n)),typeof n.refetchOnReconnect>"u"&&(n.refetchOnReconnect=n.networkMode!=="always"),typeof n.useErrorBoundary>"u"&&(n.useErrorBoundary=!!n.suspense),n}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...this.defaultOptions.mutations,...this.getMutationDefaults(t==null?void 0:t.mutationKey),...t,_defaulted:!0}}clear(){this.queryCache.clear(),this.mutationCache.clear()}}class bh extends Cr{constructor(t,n){super(),this.client=t,this.options=n,this.trackedProps=new Set,this.selectError=null,this.bindMethods(),this.setOptions(n)}bindMethods(){this.remove=this.remove.bind(this),this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.length===1&&(this.currentQuery.addObserver(this),aa(this.currentQuery,this.options)&&this.executeFetch(),this.updateTimers())}onUnsubscribe(){this.listeners.length||this.destroy()}shouldFetchOnReconnect(){return Fo(this.currentQuery,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Fo(this.currentQuery,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=[],this.clearStaleTimeout(),this.clearRefetchInterval(),this.currentQuery.removeObserver(this)}setOptions(t,n){const r=this.options,i=this.currentQuery;if(this.options=this.client.defaultQueryOptions(t),ia(r,this.options)||this.client.getQueryCache().notify({type:"observerOptionsUpdated",query:this.currentQuery,observer:this}),typeof this.options.enabled<"u"&&typeof this.options.enabled!="boolean")throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=r.queryKey),this.updateQuery();const l=this.hasListeners();l&&ca(this.currentQuery,i,this.options,r)&&this.executeFetch(),this.updateResult(n),l&&(this.currentQuery!==i||this.options.enabled!==r.enabled||this.options.staleTime!==r.staleTime)&&this.updateStaleTimeout();const o=this.computeRefetchInterval();l&&(this.currentQuery!==i||this.options.enabled!==r.enabled||o!==this.currentRefetchInterval)&&this.updateRefetchInterval(o)}getOptimisticResult(t){const n=this.client.getQueryCache().build(this.client,t);return this.createResult(n,t)}getCurrentResult(){return this.currentResult}trackResult(t){const n={};return Object.keys(t).forEach(r=>{Object.defineProperty(n,r,{configurable:!1,enumerable:!0,get:()=>(this.trackedProps.add(r),t[r])})}),n}getCurrentQuery(){return this.currentQuery}remove(){this.client.getQueryCache().remove(this.currentQuery)}refetch({refetchPage:t,...n}={}){return this.fetch({...n,meta:{refetchPage:t}})}fetchOptimistic(t){const n=this.client.defaultQueryOptions(t),r=this.client.getQueryCache().build(this.client,n);return r.isFetchingOptimistic=!0,r.fetch().then(()=>this.createResult(r,n))}fetch(t){var n;return this.executeFetch({...t,cancelRefetch:(n=t.cancelRefetch)!=null?n:!0}).then(()=>(this.updateResult(),this.currentResult))}executeFetch(t){this.updateQuery();let n=this.currentQuery.fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(Ne)),n}updateStaleTimeout(){if(this.clearStaleTimeout(),hr||this.currentResult.isStale||!To(this.options.staleTime))return;const n=Af(this.currentResult.dataUpdatedAt,this.options.staleTime)+1;this.staleTimeoutId=setTimeout(()=>{this.currentResult.isStale||this.updateResult()},n)}computeRefetchInterval(){var t;return typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.currentResult.data,this.currentQuery):(t=this.options.refetchInterval)!=null?t:!1}updateRefetchInterval(t){this.clearRefetchInterval(),this.currentRefetchInterval=t,!(hr||this.options.enabled===!1||!To(this.currentRefetchInterval)||this.currentRefetchInterval===0)&&(this.refetchIntervalId=setInterval(()=>{(this.options.refetchIntervalInBackground||Ni.isFocused())&&this.executeFetch()},this.currentRefetchInterval))}updateTimers(){this.updateStaleTimeout(),this.updateRefetchInterval(this.computeRefetchInterval())}clearStaleTimeout(){this.staleTimeoutId&&(clearTimeout(this.staleTimeoutId),this.staleTimeoutId=void 0)}clearRefetchInterval(){this.refetchIntervalId&&(clearInterval(this.refetchIntervalId),this.refetchIntervalId=void 0)}createResult(t,n){const r=this.currentQuery,i=this.options,l=this.currentResult,o=this.currentResultState,u=this.currentResultOptions,s=t!==r,a=s?t.state:this.currentQueryInitialState,c=s?this.currentResult:this.previousQueryResult,{state:p}=t;let{dataUpdatedAt:m,error:v,errorUpdatedAt:S,fetchStatus:y,status:O}=p,h=!1,f=!1,d;if(n._optimisticResults){const w=this.hasListeners(),E=!w&&aa(t,n),P=w&&ca(t,r,n,i);(E||P)&&(y=el(t.options.networkMode)?"fetching":"paused",m||(O="loading")),n._optimisticResults==="isRestoring"&&(y="idle")}if(n.keepPreviousData&&!p.dataUpdateCount&&c!=null&&c.isSuccess&&O!=="error")d=c.data,m=c.dataUpdatedAt,O=c.status,h=!0;else if(n.select&&typeof p.data<"u")if(l&&p.data===(o==null?void 0:o.data)&&n.select===this.selectFn)d=this.selectResult;else try{this.selectFn=n.select,d=n.select(p.data),d=Mo(l==null?void 0:l.data,d,n),this.selectResult=d,this.selectError=null}catch(w){this.selectError=w}else d=p.data;if(typeof n.placeholderData<"u"&&typeof d>"u"&&O==="loading"){let w;if(l!=null&&l.isPlaceholderData&&n.placeholderData===(u==null?void 0:u.placeholderData))w=l.data;else if(w=typeof n.placeholderData=="function"?n.placeholderData():n.placeholderData,n.select&&typeof w<"u")try{w=n.select(w),w=Mo(l==null?void 0:l.data,w,n),this.selectError=null}catch(E){this.selectError=E}typeof w<"u"&&(O="success",d=w,f=!0)}this.selectError&&(v=this.selectError,d=this.selectResult,S=Date.now(),O="error");const g=y==="fetching";return{status:O,fetchStatus:y,isLoading:O==="loading",isSuccess:O==="success",isError:O==="error",data:d,dataUpdatedAt:m,error:v,errorUpdatedAt:S,failureCount:p.fetchFailureCount,errorUpdateCount:p.errorUpdateCount,isFetched:p.dataUpdateCount>0||p.errorUpdateCount>0,isFetchedAfterMount:p.dataUpdateCount>a.dataUpdateCount||p.errorUpdateCount>a.errorUpdateCount,isFetching:g,isRefetching:g&&O!=="loading",isLoadingError:O==="error"&&p.dataUpdatedAt===0,isPaused:y==="paused",isPlaceholderData:f,isPreviousData:h,isRefetchError:O==="error"&&p.dataUpdatedAt!==0,isStale:Lu(t,n),refetch:this.refetch,remove:this.remove}}updateResult(t){const n=this.currentResult,r=this.createResult(this.currentQuery,this.options);if(this.currentResultState=this.currentQuery.state,this.currentResultOptions=this.options,ia(r,n))return;this.currentResult=r;const i={cache:!0},l=()=>{if(!n)return!0;const{notifyOnChangeProps:o}=this.options;if(o==="all"||!o&&!this.trackedProps.size)return!0;const u=new Set(o!=null?o:this.trackedProps);return this.options.useErrorBoundary&&u.add("error"),Object.keys(this.currentResult).some(s=>{const a=s;return this.currentResult[a]!==n[a]&&u.has(a)})};(t==null?void 0:t.listeners)!==!1&&l()&&(i.listeners=!0),this.notify({...i,...t})}updateQuery(){const t=this.client.getQueryCache().build(this.client,this.options);if(t===this.currentQuery)return;const n=this.currentQuery;this.currentQuery=t,this.currentQueryInitialState=t.state,this.previousQueryResult=this.currentResult,this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))}onQueryUpdate(t){const n={};t.type==="success"?n.onSuccess=!t.manual:t.type==="error"&&!ri(t.error)&&(n.onError=!0),this.updateResult(n),this.hasListeners()&&this.updateTimers()}notify(t){Y.batch(()=>{if(t.onSuccess){var n,r,i,l;(n=(r=this.options).onSuccess)==null||n.call(r,this.currentResult.data),(i=(l=this.options).onSettled)==null||i.call(l,this.currentResult.data,null)}else if(t.onError){var o,u,s,a;(o=(u=this.options).onError)==null||o.call(u,this.currentResult.error),(s=(a=this.options).onSettled)==null||s.call(a,void 0,this.currentResult.error)}t.listeners&&this.listeners.forEach(c=>{c(this.currentResult)}),t.cache&&this.client.getQueryCache().notify({query:this.currentQuery,type:"observerResultsUpdated"})})}}function em(e,t){return t.enabled!==!1&&!e.state.dataUpdatedAt&&!(e.state.status==="error"&&t.retryOnMount===!1)}function aa(e,t){return em(e,t)||e.state.dataUpdatedAt>0&&Fo(e,t,t.refetchOnMount)}function Fo(e,t,n){if(t.enabled!==!1){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&Lu(e,t)}return!1}function ca(e,t,n,r){return n.enabled!==!1&&(e!==t||r.enabled===!1)&&(!n.suspense||e.state.status!=="error")&&Lu(e,n)}function Lu(e,t){return e.isStaleByTime(t.staleTime)}const fa=j.exports.createContext(void 0),Wf=j.exports.createContext(!1);function Kf(e,t){return e||(t&&typeof window<"u"?(window.ReactQueryClientContext||(window.ReactQueryClientContext=fa),window.ReactQueryClientContext):fa)}const qf=({context:e}={})=>{const t=j.exports.useContext(Kf(e,j.exports.useContext(Wf)));if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},tm=({client:e,children:t,context:n,contextSharing:r=!1})=>{j.exports.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]);const i=Kf(n,r);return C(Wf.Provider,{value:!n&&r,children:C(i.Provider,{value:e,children:t})})},Gf=j.exports.createContext(!1),nm=()=>j.exports.useContext(Gf);Gf.Provider;function rm(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}const im=j.exports.createContext(rm()),lm=()=>j.exports.useContext(im);function om(e,t){return typeof e=="function"?e(...t):!!e}function um(e,t){const n=qf({context:e.context}),r=nm(),i=lm(),l=n.defaultQueryOptions(e);l._optimisticResults=r?"isRestoring":"optimistic",l.onError&&(l.onError=Y.batchCalls(l.onError)),l.onSuccess&&(l.onSuccess=Y.batchCalls(l.onSuccess)),l.onSettled&&(l.onSettled=Y.batchCalls(l.onSettled)),l.suspense&&typeof l.staleTime!="number"&&(l.staleTime=1e3),(l.suspense||l.useErrorBoundary)&&(i.isReset()||(l.retryOnMount=!1));const[o]=j.exports.useState(()=>new t(n,l)),u=o.getOptimisticResult(l);if(Mu.exports.useSyncExternalStore(j.exports.useCallback(s=>r?()=>{}:o.subscribe(Y.batchCalls(s)),[o,r]),()=>o.getCurrentResult(),()=>o.getCurrentResult()),j.exports.useEffect(()=>{i.clearReset()},[i]),j.exports.useEffect(()=>{o.setOptions(l,{listeners:!1})},[l,o]),l.suspense&&u.isLoading&&u.isFetching&&!r)throw o.fetchOptimistic(l).then(({data:s})=>{l.onSuccess==null||l.onSuccess(s),l.onSettled==null||l.onSettled(s,null)}).catch(s=>{i.clearReset(),l.onError==null||l.onError(s),l.onSettled==null||l.onSettled(void 0,s)});if(u.isError&&!i.isReset()&&!u.isFetching&&om(l.useErrorBoundary,[u.error,o.getCurrentQuery()]))throw u.error;return l.notifyOnChangeProps?u:o.trackResult(u)}function ju(e,t,n){const r=ni(e,t,n);return um(r,bh)}/** + * react-query-devtools-noop + * + * Copyright (c) TanStack + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function sm(){return null}function De(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:Au(e)?2:Uu(e)?3:0}function zo(e,t){return Rn(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function am(e,t){return Rn(e)===2?e.get(t):e[t]}function Yf(e,t,n){var r=Rn(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function cm(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Au(e){return vm&&e instanceof Map}function Uu(e){return ym&&e instanceof Set}function ee(e){return e.o||e.t}function Qu(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Sm(e);delete t[L];for(var n=Hu(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=fm),Object.freeze(e),t&&Pn(e,function(n,r){return $u(r,!0)},!0)),e}function fm(){De(2)}function Vu(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Ye(e){var t=jo[e];return t||De(18,e),t}function dm(e,t){jo[e]||(jo[e]=t)}function Ti(){return vr}function Dl(e,t){t&&(Ye("Patches"),e.u=[],e.s=[],e.v=t)}function Di(e){Lo(e),e.p.forEach(pm),e.p=null}function Lo(e){e===vr&&(vr=e.l)}function da(e){return vr={p:[],l:vr,h:e,m:!0,_:0}}function pm(e){var t=e[L];t.i===0||t.i===1?t.j():t.O=!0}function Ml(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||Ye("ES5").S(t,e,r),r?(n[L].P&&(Di(t),De(4)),ot(e)&&(e=Mi(t,e),t.l||Fi(t,e)),t.u&&Ye("Patches").M(n[L].t,e,t.u,t.s)):e=Mi(t,n,[]),Di(t),t.u&&t.v(t.u,t.s),e!==Xf?e:void 0}function Mi(e,t,n){if(Vu(t))return t;var r=t[L];if(!r)return Pn(t,function(l,o){return pa(e,r,t,l,o,n)},!0),t;if(r.A!==e)return t;if(!r.P)return Fi(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=Qu(r.k):r.o;Pn(r.i===3?new Set(i):i,function(l,o){return pa(e,r,i,l,o,n)}),Fi(e,i,!1),n&&e.u&&Ye("Patches").R(r,n,e.u,e.s)}return r.o}function pa(e,t,n,r,i,l){if(En(i)){var o=Mi(e,i,l&&t&&t.i!==3&&!zo(t.D,r)?l.concat(r):void 0);if(Yf(n,r,o),!En(o))return;e.m=!1}if(ot(i)&&!Vu(i)){if(!e.h.F&&e._<1)return;Mi(e,i),t&&t.A.l||Fi(e,i)}}function Fi(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&$u(t,n)}function Fl(e,t){var n=e[L];return(n?ee(n):e)[t]}function ha(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Je(e){e.P||(e.P=!0,e.l&&Je(e.l))}function zl(e){e.o||(e.o=Qu(e.t))}function mr(e,t,n){var r=Au(t)?Ye("MapSet").N(t,n):Uu(t)?Ye("MapSet").T(t,n):e.g?function(i,l){var o=Array.isArray(i),u={i:o?1:0,A:l?l.A:Ti(),P:!1,I:!1,D:{},l,t:i,k:null,o:null,j:null,C:!1},s=u,a=Ao;o&&(s=[u],a=$n);var c=Proxy.revocable(s,a),p=c.revoke,m=c.proxy;return u.k=m,u.j=p,m}(t,n):Ye("ES5").J(t,n);return(n?n.A:Ti()).p.push(r),r}function hm(e){return En(e)||De(22,e),function t(n){if(!ot(n))return n;var r,i=n[L],l=Rn(n);if(i){if(!i.P&&(i.i<4||!Ye("ES5").K(i)))return i.t;i.I=!0,r=ma(n,l),i.I=!1}else r=ma(n,l);return Pn(r,function(o,u){i&&am(i.t,o)===u||Yf(r,o,t(u))}),l===3?new Set(r):r}(e)}function ma(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return Qu(e)}function mm(){function e(u,s){function a(){this.constructor=u}i(u,s),u.prototype=(a.prototype=s.prototype,new a)}function t(u){u.o||(u.D=new Map,u.o=new Map(u.t))}function n(u){u.o||(u.o=new Set,u.t.forEach(function(s){if(ot(s)){var a=mr(u.A.h,s,u);u.p.set(s,a),u.o.add(a)}else u.o.add(s)}))}function r(u){u.O&&De(3,JSON.stringify(ee(u)))}var i=function(u,s){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var p in c)c.hasOwnProperty(p)&&(a[p]=c[p])})(u,s)},l=function(){function u(a,c){return this[L]={i:2,l:c,A:c?c.A:Ti(),P:!1,I:!1,o:void 0,D:void 0,t:a,k:this,C:!1,O:!1},this}e(u,Map);var s=u.prototype;return Object.defineProperty(s,"size",{get:function(){return ee(this[L]).size}}),s.has=function(a){return ee(this[L]).has(a)},s.set=function(a,c){var p=this[L];return r(p),ee(p).has(a)&&ee(p).get(a)===c||(t(p),Je(p),p.D.set(a,!0),p.o.set(a,c),p.D.set(a,!0)),this},s.delete=function(a){if(!this.has(a))return!1;var c=this[L];return r(c),t(c),Je(c),c.t.has(a)?c.D.set(a,!1):c.D.delete(a),c.o.delete(a),!0},s.clear=function(){var a=this[L];r(a),ee(a).size&&(t(a),Je(a),a.D=new Map,Pn(a.t,function(c){a.D.set(c,!1)}),a.o.clear())},s.forEach=function(a,c){var p=this;ee(this[L]).forEach(function(m,v){a.call(c,p.get(v),v,p)})},s.get=function(a){var c=this[L];r(c);var p=ee(c).get(a);if(c.I||!ot(p)||p!==c.t.get(a))return p;var m=mr(c.A.h,p,c);return t(c),c.o.set(a,m),m},s.keys=function(){return ee(this[L]).keys()},s.values=function(){var a,c=this,p=this.keys();return(a={})[Vr]=function(){return c.values()},a.next=function(){var m=p.next();return m.done?m:{done:!1,value:c.get(m.value)}},a},s.entries=function(){var a,c=this,p=this.keys();return(a={})[Vr]=function(){return c.entries()},a.next=function(){var m=p.next();if(m.done)return m;var v=c.get(m.value);return{done:!1,value:[m.value,v]}},a},s[Vr]=function(){return this.entries()},u}(),o=function(){function u(a,c){return this[L]={i:3,l:c,A:c?c.A:Ti(),P:!1,I:!1,o:void 0,t:a,k:this,p:new Map,O:!1,C:!1},this}e(u,Set);var s=u.prototype;return Object.defineProperty(s,"size",{get:function(){return ee(this[L]).size}}),s.has=function(a){var c=this[L];return r(c),c.o?!!c.o.has(a)||!(!c.p.has(a)||!c.o.has(c.p.get(a))):c.t.has(a)},s.add=function(a){var c=this[L];return r(c),this.has(a)||(n(c),Je(c),c.o.add(a)),this},s.delete=function(a){if(!this.has(a))return!1;var c=this[L];return r(c),n(c),Je(c),c.o.delete(a)||!!c.p.has(a)&&c.o.delete(c.p.get(a))},s.clear=function(){var a=this[L];r(a),ee(a).size&&(n(a),Je(a),a.o.clear())},s.values=function(){var a=this[L];return r(a),n(a),a.o.values()},s.entries=function(){var a=this[L];return r(a),n(a),a.o.entries()},s.keys=function(){return this.values()},s[Vr]=function(){return this.values()},s.forEach=function(a,c){for(var p=this.values(),m=p.next();!m.done;)a.call(c,m.value,m.value,this),m=p.next()},u}();dm("MapSet",{N:function(u,s){return new l(u,s)},T:function(u,s){return new o(u,s)}})}var va,vr,Bu=typeof Symbol<"u"&&typeof Symbol("x")=="symbol",vm=typeof Map<"u",ym=typeof Set<"u",ya=typeof Proxy<"u"&&Proxy.revocable!==void 0&&typeof Reflect<"u",Xf=Bu?Symbol.for("immer-nothing"):((va={})["immer-nothing"]=!0,va),ga=Bu?Symbol.for("immer-draftable"):"__$immer_draftable",L=Bu?Symbol.for("immer-state"):"__$immer_state",Vr=typeof Symbol<"u"&&Symbol.iterator||"@@iterator",gm=""+Object.prototype.constructor,Hu=typeof Reflect<"u"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Sm=Object.getOwnPropertyDescriptors||function(e){var t={};return Hu(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},jo={},Ao={get:function(e,t){if(t===L)return e;var n=ee(e);if(!zo(n,t))return function(i,l,o){var u,s=ha(l,o);return s?"value"in s?s.value:(u=s.get)===null||u===void 0?void 0:u.call(i.k):void 0}(e,n,t);var r=n[t];return e.I||!ot(r)?r:r===Fl(e.t,t)?(zl(e),e.o[t]=mr(e.A.h,r,e)):r},has:function(e,t){return t in ee(e)},ownKeys:function(e){return Reflect.ownKeys(ee(e))},set:function(e,t,n){var r=ha(ee(e),t);if(r!=null&&r.set)return r.set.call(e.k,n),!0;if(!e.P){var i=Fl(ee(e),t),l=i==null?void 0:i[L];if(l&&l.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(cm(n,i)&&(n!==void 0||zo(e.t,t)))return!0;zl(e),Je(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return Fl(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,zl(e),Je(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=ee(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){De(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){De(12)}},$n={};Pn(Ao,function(e,t){$n[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),$n.deleteProperty=function(e,t){return $n.set.call(this,e,t,void 0)},$n.set=function(e,t,n){return Ao.set.call(this,e[0],t,n,e[0])};var wm=function(){function e(n){var r=this;this.g=ya,this.F=!0,this.produce=function(i,l,o){if(typeof i=="function"&&typeof l!="function"){var u=l;l=i;var s=r;return function(y){var O=this;y===void 0&&(y=u);for(var h=arguments.length,f=Array(h>1?h-1:0),d=1;d1?c-1:0),m=1;m=0;i--){var l=r[i];if(l.path.length===0&&l.op==="replace"){n=l.value;break}}i>-1&&(r=r.slice(i+1));var o=Ye("Patches").$;return En(n)?o(n,r):this.produce(n,function(u){return o(u,r)})},e}(),Oe=new wm,Ft=Oe.produce;Oe.produceWithPatches.bind(Oe);Oe.setAutoFreeze.bind(Oe);Oe.setUseProxies.bind(Oe);Oe.applyPatches.bind(Oe);Oe.createDraft.bind(Oe);Oe.finishDraft.bind(Oe);const Wu="",km=5e3,Cm=async()=>{const e=`${Wu}/ping`;return console.log("pinging",e),await(await fetch(e)).json()},Em=async()=>await(await fetch(`${Wu}/modifiers.json`)).json(),Zf="MakeImage",Pm=async e=>{let t={...e};return t.tags.length>0&&(t.prompt+=",",t.prompt+=t.tags.join(",")),delete t.tags,await(await fetch(`${Wu}/image`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).json()};const Sa="Stable Diffusion is starting...",xm="Stable Diffusion is ready to use!",wa="Stable Diffusion is not running!";function Om({className:e}){const[t,n]=j.exports.useState(Sa),[r,i]=j.exports.useState("starting"),{status:l,data:o}=ju(["health"],Cm,{refetchInterval:km});return j.exports.useEffect(()=>{console.log("health data",o)},[o]),j.exports.useEffect(()=>{console.log("status",l),l==="loading"?(n(Sa),i("starting")):l==="error"?(n(wa),i("error")):l==="success"&&(o[0]==="OK"?(n(xm),i("success")):(n(wa),i("error")))},[l,o]),C(jh,{children:C("p",{className:[r,e].join(" "),children:t})})}function _m(){return N("div",{className:"header-display",children:[C("h1",{children:"Stable Diffusion UI v2.1.0"}),C(Om,{className:"status-display"})]})}const ka=e=>{let t;const n=new Set,r=(s,a)=>{const c=typeof s=="function"?s(t):s;if(c!==t){const p=t;t=(a!=null?a:typeof c!="object")?c:Object.assign({},t,c),n.forEach(m=>m(t,p))}},i=()=>t,u={setState:r,getState:i,subscribe:s=>(n.add(s),()=>n.delete(s)),destroy:()=>n.clear()};return t=e(r,i,u),u},Rm=e=>e?ka(e):ka;var Jf={exports:{}},bf={};/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var tl=j.exports,Nm=Mu.exports;function Im(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Tm=typeof Object.is=="function"?Object.is:Im,Dm=Nm.useSyncExternalStore,Mm=tl.useRef,Fm=tl.useEffect,zm=tl.useMemo,Lm=tl.useDebugValue;bf.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var l=Mm(null);if(l.current===null){var o={hasValue:!1,value:null};l.current=o}else o=l.current;l=zm(function(){function s(v){if(!a){if(a=!0,c=v,v=r(v),i!==void 0&&o.hasValue){var S=o.value;if(i(S,v))return p=S}return p=v}if(S=p,Tm(c,v))return S;var y=r(v);return i!==void 0&&i(S,y)?S:(c=v,p=y)}var a=!1,c,p,m=n===void 0?null:n;return[function(){return s(t())},m===null?void 0:function(){return s(m())}]},[t,n,r,i]);var u=Dm(e,l[0],l[1]);return Fm(function(){o.hasValue=!0,o.value=u},[u]),Lm(u),u};(function(e){e.exports=bf})(Jf);const jm=xa(Jf.exports),{useSyncExternalStoreWithSelector:Am}=jm;function Um(e,t=e.getState,n){const r=Am(e.subscribe,e.getState,e.getServerState||e.getState,t,n);return j.exports.useDebugValue(r),r}const Ca=e=>{const t=typeof e=="function"?Rm(e):e,n=(r,i)=>Um(t,r,i);return Object.assign(n,t),n},Qm=e=>e?Ca(e):Ca;var ed=Qm;const $m=(e,t={})=>(n,r,i)=>{const{enabled:l,anonymousActionType:o,...u}=t;let s;try{s=(l!=null?l:({BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0}&&"production")!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!s)return({BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0}&&"production")!=="production"&&l&&console.warn("[zustand devtools middleware] Please install/enable Redux devtools extension"),e(n,r,i);const a=s.connect(u);let c=!0;i.setState=(v,S,y)=>{const O=n(v,S);return c&&a.send(y===void 0?{type:o||"anonymous"}:typeof y=="string"?{type:y}:y,r()),O};const p=(...v)=>{const S=c;c=!1,n(...v),c=S},m=e(i.setState,r,i);if(a.init(m),i.dispatchFromDevtools&&typeof i.dispatch=="function"){let v=!1;const S=i.dispatch;i.dispatch=(...y)=>{({BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0}&&"production")!=="production"&&y[0].type==="__setState"&&!v&&(console.warn('[zustand devtools middleware] "__setState" action type is reserved to set state from the devtools. Avoid using it.'),v=!0),S(...y)}}return a.subscribe(v=>{var S;switch(v.type){case"ACTION":if(typeof v.payload!="string"){console.error("[zustand devtools middleware] Unsupported action format");return}return Ll(v.payload,y=>{if(y.type==="__setState"){p(y.state);return}!i.dispatchFromDevtools||typeof i.dispatch=="function"&&i.dispatch(y)});case"DISPATCH":switch(v.payload.type){case"RESET":return p(m),a.init(i.getState());case"COMMIT":return a.init(i.getState());case"ROLLBACK":return Ll(v.state,y=>{p(y),a.init(i.getState())});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return Ll(v.state,y=>{p(y)});case"IMPORT_STATE":{const{nextLiftedState:y}=v.payload,O=(S=y.computedStates.slice(-1)[0])==null?void 0:S.state;if(!O)return;p(O),a.send(null,y);return}case"PAUSE_RECORDING":return c=!c}return}}),m},Vm=$m,Ll=(e,t)=>{let n;try{n=JSON.parse(e)}catch(r){console.error("[zustand devtools middleware] Could not parse the received json",r)}n!==void 0&&t(n)},ke=ed(Vm((e,t)=>({imageOptions:{prompt:"a photograph of an astronaut riding a horse",tags:[],imgSrc:"",seed:0,isSeedRandom:!0,numberOfImages:1,parallelRequests:1,width:512,height:512,stepCount:50,guidence:75,promptStrength:8,autoSave:!1,diskPath:"",soundOnComplete:!1,useTurboMode:!1,useCPU:!1,useFullPrecision:!1},setPrompt:n=>{e(Ft(r=>{r.imageOptions.prompt=n}))},toggleTag:n=>{e(Ft(r=>{const i=r.imageOptions.tags.indexOf(n);i>-1?r.imageOptions.tags.splice(i,1):r.imageOptions.tags.push(n)}))},hasTag:n=>t().imageOptions.tags.indexOf(n)>-1,selectedTags:()=>t().imageOptions.tags,setImageOptions:n=>{e(Ft(r=>{r.imageOptions={...r.imageOptions,...n}}))},uiOptions:{advancedSettingsIsOpen:localStorage.getItem("ui:advancedSettingsIsOpen")==="true",imageModifierIsOpen:!1},toggleAdvancedSettingsIsOpen:()=>{e(Ft(n=>{n.uiOptions.advancedSettingsIsOpen=!n.uiOptions.advancedSettingsIsOpen,localStorage.setItem("ui:advancedSettingsIsOpen",n.uiOptions.advancedSettingsIsOpen)}))},toggleImageModifiersIsOpen:()=>{e(Ft(n=>{n.uiOptions.imageModifierIsOpen=!n.uiOptions.imageModifierIsOpen,localStorage.setItem("ui:imageModifierIsOpen",n.uiOptions.imageModifierIsOpen)}))}}))),zi=ed((e,t)=>({images:new Array,completedImageIds:new Array,addNewImage:(n,r)=>{e(Ft(i=>{let{seed:l}=r;r.isSeedRandom&&(l=Math.floor(Math.random()*1e4)),i.images.push({id:n,options:{...r,seed:l}})}))},hasQueuedImages:()=>t().images.length>0,firstInQueue:()=>t().images[0]||[],removeFirstInQueue:()=>{e(Ft(n=>{const r=n.images.shift();n.completedImageIds.push(r.id)}))}}));let Br;const Bm=new Uint8Array(16);function Hm(){if(!Br&&(Br=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Br))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Br(Bm)}const re=[];for(let e=0;e<256;++e)re.push((e+256).toString(16).slice(1));function Wm(e,t=0){return(re[e[t+0]]+re[e[t+1]]+re[e[t+2]]+re[e[t+3]]+"-"+re[e[t+4]]+re[e[t+5]]+"-"+re[e[t+6]]+re[e[t+7]]+"-"+re[e[t+8]]+re[e[t+9]]+"-"+re[e[t+10]]+re[e[t+11]]+re[e[t+12]]+re[e[t+13]]+re[e[t+14]]+re[e[t+15]]).toLowerCase()}const Km=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Ea={randomUUID:Km};function qm(e,t,n){if(Ea.randomUUID&&!t&&!e)return Ea.randomUUID();e=e||{};const r=e.random||(e.rng||Hm)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let i=0;i<16;++i)t[n+i]=r[i];return t}return Wm(r)}function Gm(){const e=ke(r=>r.imageOptions),t=zi(r=>r.addNewImage);return C("button",{onClick:()=>{t(qm(),e)},children:"Make"})}const Pa=[{value:128,label:"128 (*)"},{value:192,label:"192"},{value:256,label:"256 (*)"},{value:320,label:"320"},{value:384,label:"384"},{value:448,label:"448"},{value:512,label:"512 (*)"},{value:576,label:"576"},{value:640,label:"640"},{value:704,label:"704"},{value:768,label:"768 (*)"},{value:832,label:"832"},{value:896,label:"896"},{value:960,label:"960"},{value:1024,label:"1024 (*)"}];function Ym(){const e=ke(n=>n.setImageOptions),t=ke(n=>n.imageOptions);return N("ul",{id:"editor-settings-entries",children:[N("li",{children:[N("label",{children:["Seed:",C("input",{size:10,value:t.seed?t.seed:"",onChange:n=>e({seed:Number(n.target.value)}),disabled:t.isSeedRandom,placeholder:"random"})]}),N("label",{children:[C("input",{type:"checkbox",checked:t.isSeedRandom,onChange:n=>e({isSeedRandom:n.target.checked})})," ","Random Image"]})]}),N("li",{children:[N("label",{children:["Number of images to make:"," ",C("input",{type:"number",value:t.numberOfImages,onChange:n=>e({numberOfImages:Number(n.target.value)}),size:4})]}),N("label",{children:["Generate in parallel:",C("input",{type:"number",value:t.parallelRequests,onChange:n=>e({parallelRequests:Number(n.target.value)}),size:4})]})," ","(images at once)"]}),C("li",{children:N("label",{children:["Width:",C("select",{value:t.width,onChange:n=>e({width:Number(n.target.value)}),children:Pa.map(n=>C("option",{value:n.value,children:n.label},"width-option_"+n.value))})]})}),C("li",{children:N("label",{children:["Height:",C("select",{value:t.height,onChange:n=>e({height:Number(n.target.value)}),children:Pa.map(n=>C("option",{value:n.value,children:n.label},"height-option_"+n.value))})]})}),C("li",{children:N("label",{children:["Number of inference steps:"," ",C("input",{value:t.stepCount,onChange:n=>e({stepCount:Number(n.target.value)}),size:4})]})}),N("li",{children:[N("label",{children:["Guidance Scale:",C("input",{value:t.guidence,onChange:n=>e({guidence:Number(n.target.value)}),type:"range",min:"10",max:"200"})]}),C("span",{children:t.guidence/10})]}),N("li",{className:"mb-4",children:[N("label",{children:["Prompt Strength:"," ",C("input",{value:t.promptStrength,onChange:n=>e({promptStrength:Number(n.target.value)}),type:"range",min:"0",max:"10"})]}),C("span",{children:t.promptStrength/10})]}),N("li",{children:[N("label",{children:[C("input",{checked:t.autoSave,onChange:n=>e({autoSave:n.target.checked}),type:"checkbox"}),"Automatically save to"," "]}),N("label",{children:[C("input",{value:t.diskPath,onChange:n=>e({diskPath:n.target.value}),size:40,disabled:!t.autoSave}),C("span",{className:"visually-hidden",children:"Path on disk where images will be saved"})]})]}),C("li",{children:N("label",{children:[C("input",{checked:t.soundOnComplete,onChange:n=>e({soundOnComplete:n.target.checked}),type:"checkbox"}),"Play sound on task completion"]})}),C("li",{children:N("label",{children:[C("input",{checked:t.useTurboMode,onChange:n=>e({useTurboMode:n.target.checked}),type:"checkbox"}),"Turbo mode (generates images faster, but uses an additional 1 GB of GPU memory)"]})}),C("li",{children:N("label",{children:[C("input",{type:"checkbox",checked:t.useCPU,onChange:n=>e({useCPU:n.target.checked})}),"Use CPU instead of GPU (warning: this will be *very* slow)"]})}),C("li",{children:N("label",{children:[C("input",{checked:t.useFullPrecision,onChange:n=>e({useFullPrecision:n.target.checked}),type:"checkbox"}),"Use full precision (for GPU-only. warning: this will consume more VRAM)"]})})]})}function Xm(){const e=ke(n=>n.uiOptions.advancedSettingsIsOpen),t=ke(n=>n.toggleAdvancedSettingsIsOpen);return N("div",{className:"panel-box",children:[C("button",{type:"button",onClick:t,className:"panel-box-toggle-btn",children:C("h4",{children:"Advanced Settings"})}),e&&C(Ym,{})]})}function td({name:e}){const t=ke(i=>i.hasTag(e))?"selected":"",n=ke(i=>i.toggleTag);console.log("has tag",t);const r=()=>{n(e)};return C("div",{className:"modifierTag "+t,onClick:r,children:C("p",{children:e})})}function Zm({tags:e}){return ke(t=>t.setImageOptions),ke(t=>t.imageOptions),C("ul",{className:"modifier-list",children:e.map(t=>C("li",{children:C(td,{name:t})},t))})}function Jm({title:e,tags:t}){const[n,r]=j.exports.useState(!1);return N("div",{className:"modifier-grouping",children:[C("div",{className:"modifier-grouping-header",onClick:()=>{r(!n)},children:C("h5",{children:e})}),n&&C(Zm,{tags:t})]})}function bm(){const{status:e,data:t}=ju(["modifications"],Em),n=ke(l=>l.uiOptions.imageModifierIsOpen),r=ke(l=>l.toggleImageModifiersIsOpen);return N("div",{className:"panel-box",children:[C("button",{type:"button",onClick:()=>{r()},className:"panel-box-toggle-btn",children:C("h4",{children:"Image Modifiers (art styles, tags, ect)"})}),n&&t.map((l,o)=>C(Jm,{title:l[0],tags:l[1]},l[0]))]})}function ev(){const e=ke(i=>i.imageOptions.prompt),t=ke(i=>i.setPrompt),n=ke(i=>i.selectedTags());return N("div",{className:"create-panel",children:[N("div",{className:"basic-create",children:[N("div",{className:"prompt",children:[C("p",{children:"Prompt "}),C("textarea",{value:e,onChange:i=>{console.log("handlePromptChange",i.target.value),t(i.target.value)}})]}),N("div",{className:"seed-image",children:[C("p",{children:"Seed Image"}),C("input",{type:"file",accept:"image/*"})]}),C(Gm,{}),N("div",{className:"selected-tags",children:[C("p",{children:"Active Tags"}),C("ul",{children:n.map(i=>C("li",{children:C(td,{name:i})},i))})]})]}),N("div",{className:"advanced-create",children:[C(Xm,{}),C(bm,{})]})]})}function nd({imageData:e}){return N("div",{className:"generated-image",children:[C("p",{children:"Your image"}),C("img",{src:e,alt:"generated"})]})}function tv(){const[e,t]=j.exports.useState(null),{id:n,options:r}=zi(u=>u.firstInQueue());console.log("CurrentImage id",n);const i=zi(u=>u.removeFirstInQueue),{status:l,data:o}=ju([Zf,n],()=>Pm(r),{enabled:n!==void 0});return j.exports.useEffect(()=>{l==="success"&&(console.log("success"),o.status==="succeeded"&&(console.log("succeeded"),t(o.output[0].data),i()))},[l,o,i]),N("div",{className:"current-display",children:[C("h1",{children:"Current Image"}),e&&C(nd,{imageData:e})]})}function nv(){const e=qf(),[t,n]=j.exports.useState([]),r=zi(i=>i.completedImageIds);return j.exports.useEffect(()=>{const i=r.map(l=>e.getQueryData([Zf,l]));if(i.length>0){debugger;n(i.map((l,o)=>{if(l!==void 0)return{id:r[o],data:l.output[0].data}}).reverse())}else n([])},[n,e,r]),N("div",{className:"display-panel",children:[C("h1",{children:"Display Panel"}),N("div",{children:[C(tv,{}),t.map((i,l)=>l==0?null:i!==void 0?C(nd,{imageData:i.data},i.id):(console.warn("image is undefined",i,l),null))]})]})}function rv(){return N("div",{id:"footer",className:"panel-box",children:[N("p",{children:["If you found this project useful and want to help keep it alive, please ",C("a",{href:"https://ko-fi.com/cmdr2_stablediffusion_ui",target:"_blank",children:C("img",{src:"./kofi.png",id:"coffeeButton"})})," to help cover the cost of development and maintenance! Thank you for your support!"]}),N("p",{children:["Please feel free to join the ",C("a",{href:"https://discord.com/invite/u9yhsFmEkB",target:"_blank",children:"discord community"})," or ",C("a",{href:"https://github.com/cmdr2/stable-diffusion-ui/issues",target:"_blank",children:"file an issue"})," if you have any problems or suggestions in using this interface."]}),N("div",{id:"footer-legal",children:[N("p",{children:[C("b",{children:"Disclaimer:"})," The authors of this project are not responsible for any content generated using this interface."]}),N("p",{children:["This license of this software forbids you from sharing any content that violates any laws, produce any harm to a person, disseminate any personal information that would be meant for harm, ",C("br",{}),"spread misinformation and target vulnerable groups. For the full list of restrictions please read ",C("a",{href:"https://github.com/cmdr2/stable-diffusion-ui/blob/main/LICENSE",target:"_blank",children:"the license"}),"."]}),C("p",{children:"By using this software, you consent to the terms and conditions of the license."})]})]})}function iv(){return console.log("App render"),N("div",{className:"App",children:[C("header",{className:"header-layout",children:C(_m,{})}),C("nav",{className:"create-layout",children:C(ev,{})}),C("main",{className:"display-layout",children:C(nv,{})}),C("footer",{className:"footer-layout",children:C(rv,{})})]})}const lv=new Jh({defaultOptions:{queries:{refetchOnWindowFocus:!1,refetchOnReconnect:!1,refetchOnMount:!1,staleTime:1/0}}});mm();jl.createRoot(document.getElementById("root")).render(C(Sd.StrictMode,{children:N(tm,{client:lv,children:[C(iv,{}),C(sm,{initialIsOpen:!0})]})})); diff --git a/ui/frontend/dist/kofi.png b/ui/frontend/dist/kofi.png new file mode 100644 index 0000000000000000000000000000000000000000..0fdebbaacc3c9fee0deed20eeed8847efd9c4f41 GIT binary patch literal 11150 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 literal 0 HcmV?d00001 diff --git a/ui/frontend/dist/modifiers.json b/ui/frontend/dist/modifiers.json new file mode 100644 index 00000000..ca18cc07 --- /dev/null +++ b/ui/frontend/dist/modifiers.json @@ -0,0 +1,151 @@ +[ + [ + "Drawing Style", + [ + "Cel Shading", + "Children's Drawing", + "Crosshatch", + "Detailed and Intricate", + "Doodle", + "Dot Art", + "Line Art", + "Sketch" + ] + ], + [ + "Visual Style", + [ + "2D", + "8-bit", + "16-bit", + "Anaglyph", + "Anime", + "CGI", + "Cartoon", + "Comic Book", + "Concept Art", + "Digital Art", + "Fantasy", + "Graphic Novel", + "Hard Edge Painting", + "Hydrodipped", + "Lithography", + "Manga", + "Modern Art", + "Mosaic", + "Mural", + "Photo", + "Realistic", + "Street Art", + "Visual Novel", + "Watercolor" + ] + ], + [ + "Pen", + [ + "Chalk", + "Colored Pencil", + "Graphite", + "Ink", + "Oil Paint", + "Pastel Art" + ] + ], + [ + "Carving and Etching", + [ + "Etching", + "Linocut", + "Paper Model", + "Paper-Mache", + "Papercutting", + "Pyrography", + "Wood-Carving" + ] + ], + [ + "Camera", + [ + "Aerial View", + "Canon50", + "Cinematic", + "Close-up", + "Color Grading", + "Dramatic", + "Film Grain", + "Fisheye Lens", + "Glamor Shot", + "Golden Hour", + "HD", + "Lens Flare", + "Macro", + "Polaroid", + "Vintage", + "War Photography", + "White Balance", + "Wildlife Photography" + ] + ], + [ + "Color", + [ + "Beautiful Lighting", + "Colorful", + "Dynamic Lighting", + "Electric Colors", + "Infrared", + "Synthwave", + "Warm Color Palette" + ] + ], + [ + "Emotions", + [ + "Angry", + "Disgusted", + "Embarrassed", + "Evil", + "Excited", + "Fear", + "Happy", + "Lonely", + "Sad", + "Surprised" + ] + ], + [ + "Style of an artist or community", + [ + "Artstation", + "by Agnes Lawrence Pelton", + "by Akihito Yoshida", + "by Andy Warhol", + "by Artgerm", + "by Asaf Hanuka", + "by Aubrey Beardsley", + "by Banksy", + "by Ben Enwonwu", + "by Caravaggio Michelangelo Merisi", + "by David Mann", + "by Frida Kahlo", + "by H.R. Giger", + "by Hayao Miyazaki", + "by Ivan Shishkin", + "by Johannes Vermeer", + "by John William Waterhouse", + "by Katsushika Hokusai", + "by Ko Young Hoon", + "by Leonardo da Vinci", + "by Lisa Frank", + "by Mahmoud Saïd", + "by Mark Brooks", + "by Pablo Picasso", + "by Richard Dadd", + "by Salvador Dalí", + "by Tivadar Csontváry Kosztka", + "by Yoshitaka Amano", + "by wlop" + ] + ] +] diff --git a/ui/server.py b/ui/server.py index c7c2766c..e3b2fba0 100644 --- a/ui/server.py +++ b/ui/server.py @@ -18,11 +18,24 @@ from fastapi import FastAPI, HTTPException from starlette.responses import FileResponse, StreamingResponse from pydantic import BaseModel import logging - +# this is needed for development. +from fastapi.middleware.cors import CORSMiddleware from sd_internal import Request, Response app = FastAPI() +# we need to be able to run a local server for the UI (9001) +# and still be able to hit our python port (9000) +origins = ["*"] +app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + + model_loaded = False model_is_loading = False @@ -58,7 +71,18 @@ class SetAppConfigRequest(BaseModel): @app.get('/') def read_root(): headers = {"Cache-Control": "no-cache, no-store, must-revalidate", "Pragma": "no-cache", "Expires": "0"} - return FileResponse(os.path.join(SD_UI_DIR, 'index.html'), headers=headers) + #return FileResponse(os.path.join(SD_UI_DIR, 'index.html'), headers=headers) + return FileResponse(os.path.join(SD_UI_DIR,'frontend/dist/index.html'), headers=headers) + +# then get the js files +@app.get('/index.js') +def read_scripts(): + return FileResponse(os.path.join(SD_UI_DIR, 'frontend/dist/index.js')) + +#then get the css files +@app.get('/index.css') +def read_styles(): + return FileResponse(os.path.join(SD_UI_DIR, 'frontend/dist/index.css')) @app.get('/ping') async def ping(): @@ -180,13 +204,15 @@ def getAppConfig(): print(traceback.format_exc()) return HTTPException(status_code=500, detail=str(e)) -@app.get('/media/ding.mp3') +# moved these to the root for easier pathing +# TODO: change the vite config for public files +@app.get('/ding.mp3') def read_ding(): - return FileResponse(os.path.join(SD_UI_DIR, 'media/ding.mp3')) + return FileResponse(os.path.join(SD_UI_DIR, 'frontend/dist/ding.mp3')) -@app.get('/media/kofi.png') +@app.get('/kofi.png') def read_modifiers(): - return FileResponse(os.path.join(SD_UI_DIR, 'media/kofi.png')) + return FileResponse(os.path.join(SD_UI_DIR, 'frontend/dist/kofi.png')) @app.get('/modifiers.json') def read_modifiers(): From 4df61d7efc771987271900afd7af8aabae1af0fd Mon Sep 17 00:00:00 2001 From: caranicas Date: Wed, 14 Sep 2022 10:52:19 -0400 Subject: [PATCH 002/136] hide original dom --- ui/frontend/build_src/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/frontend/build_src/index.html b/ui/frontend/build_src/index.html index 70735b9b..8b1680f5 100644 --- a/ui/frontend/build_src/index.html +++ b/ui/frontend/build_src/index.html @@ -277,7 +277,7 @@ -
+ ); -} \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx b/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx index 040f0a27..a23522ff 100644 --- a/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx +++ b/ui/frontend/build_src/src/components/displayPanel/completedImages/index.tsx @@ -15,4 +15,4 @@ export const CompletedImages = () => { //
// // ); -} \ No newline at end of file +}; diff --git a/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx b/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx index e0cd4aab..d081742b 100644 --- a/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx +++ b/ui/frontend/build_src/src/components/displayPanel/currentImage/index.tsx @@ -8,13 +8,12 @@ import GeneratedImage from "../generatedImage"; // TODO move this logic to the display panel export default function CurrentImage() { - const [imageData, setImageData] = useState(null); // @ts-ignore - const {id, options} = useImageQueue((state) => state.firstInQueue()); + const { id, options } = useImageQueue((state) => state.firstInQueue()); const removeFirstInQueue = useImageQueue((state) => state.removeFirstInQueue); - + const { status, data } = useQuery( [MakeImageKey, id], () => doMakeImage(options), @@ -23,21 +22,17 @@ export default function CurrentImage() { } ); - useEffect(() => { + useEffect(() => { // query is done - if(status === 'success') { - + if (status === "success") { // check to make sure that the image was created - if(data.status === 'succeeded') { + if (data.status === "succeeded") { setImageData(data.output[0].data); removeFirstInQueue(); } } - }, [status, data, removeFirstInQueue]); - - return ( <> //
@@ -45,4 +40,4 @@ export default function CurrentImage() { // {imageData && } //
); -}; \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx b/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx index 923fcf53..94131f87 100644 --- a/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx +++ b/ui/frontend/build_src/src/components/displayPanel/generatedImage/index.tsx @@ -1,43 +1,42 @@ -import React, {useCallback} from "react"; - +import React, { useCallback } from "react"; import { ImageRequest, useImageCreate } from "../../../store/imageCreateStore"; type GeneretaedImageProps = { imageData: string; metadata: ImageRequest; -} - - -export default function GeneratedImage({ imageData, metadata}: GeneretaedImageProps) { +}; +export default function GeneratedImage({ + imageData, + metadata, +}: GeneretaedImageProps) { const setRequestOption = useImageCreate((state) => state.setRequestOptions); - - const createFileName = () => { - const { - prompt, - seed, - num_inference_steps, - guidance_scale, - use_face_correction, + const createFileName = () => { + const { + prompt, + seed, + num_inference_steps, + guidance_scale, + use_face_correction, use_upscale, width, height, } = metadata; //Most important information is the prompt - let underscoreName = prompt.replace(/[^a-zA-Z0-9]/g, '_') - underscoreName = underscoreName.substring(0, 100) + let underscoreName = prompt.replace(/[^a-zA-Z0-9]/g, "_"); + underscoreName = underscoreName.substring(0, 100); // name and the top level metadata let fileName = `${underscoreName}_Seed-${seed}_Steps-${num_inference_steps}_Guidance-${guidance_scale}`; // Add the face correction and upscale - if(use_face_correction) { + if (use_face_correction) { fileName += `_FaceCorrection-${use_face_correction}`; } - if(use_upscale) { + if (use_upscale) { fileName += `_Upscale-${use_upscale}`; } @@ -45,12 +44,12 @@ export default function GeneratedImage({ imageData, metadata}: GeneretaedImagePr fileName += `_${width}x${height}`; // add the file extension - fileName += `.png` + fileName += `.png`; // return fileName return fileName; - } - + }; + const _handleSave = () => { const link = document.createElement("a"); link.download = createFileName(); @@ -61,12 +60,10 @@ export default function GeneratedImage({ imageData, metadata}: GeneretaedImagePr const _handleUseAsInput = () => { console.log(" TODO : use as input"); - setRequestOption("init_image", imageData); // initImageSelector.value = null // initImagePreview.src = imgBody - // imgUseBtn.addEventListener('click', function() { // initImageSelector.value = null // initImagePreview.src = imgBody @@ -80,18 +77,14 @@ export default function GeneratedImage({ imageData, metadata}: GeneretaedImagePr // seedField.value = seed // seedField.disabled = false // }) - } + }; return (

Your image

generated - - + +
); -} \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/displayPanel/index.tsx b/ui/frontend/build_src/src/components/displayPanel/index.tsx index ab1120b6..f727de12 100644 --- a/ui/frontend/build_src/src/components/displayPanel/index.tsx +++ b/ui/frontend/build_src/src/components/displayPanel/index.tsx @@ -1,10 +1,9 @@ -import React, {useEffect, useState} from "react"; +import React, { useEffect, useState } from "react"; import { useImageQueue } from "../../store/imageQueueStore"; -import { ImageRequest } from '../../store/imageCreateStore'; - -import { useQueryClient } from '@tanstack/react-query' +import { ImageRequest } from "../../store/imageCreateStore"; +import { useQueryClient } from "@tanstack/react-query"; import { MakeImageKey } from "../../api"; @@ -12,47 +11,50 @@ import CurrentImage from "./currentImage"; import GeneratedImage from "./generatedImage"; - type CompletedImagesType = { id: string; data: string; info: ImageRequest; -} +}; export default function DisplayPanel() { - const queryClient = useQueryClient(); - const [completedImages, setCompletedImages] = useState([]); + const [completedImages, setCompletedImages] = useState( + [] + ); const completedIds = useImageQueue((state) => state.completedImageIds); useEffect(() => { - const testReq = {} as ImageRequest; const completedQueries = completedIds.map((id) => { - const imageData = queryClient.getQueryData([MakeImageKey,id]) + const imageData = queryClient.getQueryData([MakeImageKey, id]); return imageData; }); if (completedQueries.length > 0) { - // map the completedImagesto a new array + // map the completedImagesto a new array // and then set the state - const temp = completedQueries.map((query, index ) => { - if(void 0 !== query) { - //@ts-ignore - return query.output.map((data)=>{ - // @ts-ignore - return {id: `${completedIds[index]}-${data.seed}`, data: data.data, info: {...query.request, seed:data.seed } } - }) - } - - }).flat().reverse(); + const temp = completedQueries + .map((query, index) => { + if (void 0 !== query) { + //@ts-ignore + return query.output.map((data) => { + // @ts-ignore + return { + id: `${completedIds[index]}-${data.seed}`, + data: data.data, + //@ts-ignore + info: { ...query.request, seed: data.seed }, + }; + }); + } + }) + .flat() + .reverse(); setCompletedImages(temp); - } - else { + } else { setCompletedImages([]); } - - },[setCompletedImages, queryClient, completedIds]); - + }, [setCompletedImages, queryClient, completedIds]); return (
@@ -63,16 +65,20 @@ export default function DisplayPanel() { // if(index == 0){ // return null; // } - if(void 0 !== image) { - return ; - } - else { - console.warn('image is undefined', image, index); + if (void 0 !== image) { + return ( + + ); + } else { + console.warn("image is undefined", image, index); return null; } })}
- ); -}; +} diff --git a/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css b/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css index 84bd03e1..434d7695 100644 --- a/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css +++ b/ui/frontend/build_src/src/components/footerDisplay/footerDisplay.css @@ -4,5 +4,4 @@ flex-direction: column; align-items: center; justify-content: center; - -} \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/footerDisplay/index.tsx b/ui/frontend/build_src/src/components/footerDisplay/index.tsx index 85fa485d..6e78b3fd 100644 --- a/ui/frontend/build_src/src/components/footerDisplay/index.tsx +++ b/ui/frontend/build_src/src/components/footerDisplay/index.tsx @@ -1,18 +1,56 @@ import React from "react"; -import './footerDisplay.css'; +import "./footerDisplay.css"; export default function FooterDisplay() { return ( ); } - diff --git a/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css b/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css index 6b140142..4ca03c3d 100644 --- a/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css +++ b/ui/frontend/build_src/src/components/headerDisplay/headerDisplay.css @@ -7,4 +7,4 @@ .status-display { margin-left: 10px; -} \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/headerDisplay/index.tsx b/ui/frontend/build_src/src/components/headerDisplay/index.tsx index 6b7a623d..91c5277d 100644 --- a/ui/frontend/build_src/src/components/headerDisplay/index.tsx +++ b/ui/frontend/build_src/src/components/headerDisplay/index.tsx @@ -2,7 +2,7 @@ import React from "react"; import StatusDisplay from "./statusDisplay"; -import './headerDisplay.css'; +import "./headerDisplay.css"; export default function HeaderDisplay() { return ( @@ -11,4 +11,4 @@ export default function HeaderDisplay() { ); -}; \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx index f290fa1a..1d0c61e3 100644 --- a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx +++ b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/index.tsx @@ -1,45 +1,37 @@ -import React, {useEffect, useState} from 'react' -import { useQuery } from '@tanstack/react-query'; +import React, { useEffect, useState } from "react"; +import { useQuery } from "@tanstack/react-query"; -import { healthPing, HEALTH_PING_INTERVAL } from '../../../api'; +import { healthPing, HEALTH_PING_INTERVAL } from "../../../api"; -const startingMessage = 'Stable Diffusion is starting...'; -const successMessage = 'Stable Diffusion is ready to use!'; -const errorMessage = 'Stable Diffusion is not running!'; +const startingMessage = "Stable Diffusion is starting..."; +const successMessage = "Stable Diffusion is ready to use!"; +const errorMessage = "Stable Diffusion is not running!"; -import './statusDisplay.css'; - -export default function StatusDisplay({className}: {className?: string}) { +import "./statusDisplay.css"; +export default function StatusDisplay({ className }: { className?: string }) { const [statusMessage, setStatusMessage] = useState(startingMessage); - const [statusClass, setStatusClass] = useState('starting'); - + const [statusClass, setStatusClass] = useState("starting"); // but this will be moved to the status display when it is created - const {status, data} = useQuery(['health'], healthPing, {refetchInterval: HEALTH_PING_INTERVAL}); - - + const { status, data } = useQuery(["health"], healthPing, { + refetchInterval: HEALTH_PING_INTERVAL, + }); useEffect(() => { - - if (status === 'loading') { + if (status === "loading") { setStatusMessage(startingMessage); - setStatusClass('starting'); - } - else if (status === 'error') { + setStatusClass("starting"); + } else if (status === "error") { setStatusMessage(errorMessage); - setStatusClass('error'); - } - - else if (status === 'success') { - - if(data[0] === 'OK') { + setStatusClass("error"); + } else if (status === "success") { + if (data[0] === "OK") { setStatusMessage(successMessage); - setStatusClass('success'); - } - else { + setStatusClass("success"); + } else { setStatusMessage(errorMessage); - setStatusClass('error'); + setStatusClass("error"); } } }, [status, data]); @@ -47,7 +39,7 @@ export default function StatusDisplay({className}: {className?: string}) { return ( <> {/* alittle hacky but joins the class names, will probably need a better css in js solution or tailwinds*/} -

{statusMessage}

+

{statusMessage}

); -}; \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css index b51544ee..3b9f6360 100644 --- a/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css +++ b/ui/frontend/build_src/src/components/headerDisplay/statusDisplay/statusDisplay.css @@ -1,11 +1,11 @@ .starting { - color: #f0ad4e; + color: #f0ad4e; } .error { - color: #d9534f; + color: #d9534f; } .success { - color: #5cb85c; -} \ No newline at end of file + color: #5cb85c; +} diff --git a/ui/frontend/build_src/src/index.css b/ui/frontend/build_src/src/index.css index 036d0cc0..26104a00 100644 --- a/ui/frontend/build_src/src/index.css +++ b/ui/frontend/build_src/src/index.css @@ -15,4 +15,4 @@ body { /* this are used while we still have the original app code in the index.html */ /* display: none; */ z-index: 1; -} \ No newline at end of file +} diff --git a/ui/frontend/build_src/src/main.tsx b/ui/frontend/build_src/src/main.tsx index 363219a9..5a0ba893 100644 --- a/ui/frontend/build_src/src/main.tsx +++ b/ui/frontend/build_src/src/main.tsx @@ -1,37 +1,32 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' +import React from "react"; +import ReactDOM from "react-dom/client"; -import { - QueryClient, - QueryClientProvider, -} from '@tanstack/react-query'; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; +import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; -import { enableMapSet } from 'immer'; -import App from './App' -import './index.css' +import { enableMapSet } from "immer"; +import App from "./App"; +import "./index.css"; -const queryClient = new QueryClient( - { - defaultOptions: { - queries: { - refetchOnWindowFocus: false, - refetchOnReconnect : false, - refetchOnMount : false, - staleTime: Infinity, - }, +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + refetchOnWindowFocus: false, + refetchOnReconnect: false, + refetchOnMount: false, + staleTime: Infinity, }, - } -); + }, +}); enableMapSet(); // application entry point -ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( - - - - + + + + -) +); diff --git a/ui/frontend/build_src/src/modifiers.json b/ui/frontend/build_src/src/modifiers.json index ca18cc07..d680709e 100644 --- a/ui/frontend/build_src/src/modifiers.json +++ b/ui/frontend/build_src/src/modifiers.json @@ -43,14 +43,7 @@ ], [ "Pen", - [ - "Chalk", - "Colored Pencil", - "Graphite", - "Ink", - "Oil Paint", - "Pastel Art" - ] + ["Chalk", "Colored Pencil", "Graphite", "Ink", "Oil Paint", "Pastel Art"] ], [ "Carving and Etching", diff --git a/ui/frontend/build_src/src/store/imageCreateStore.ts b/ui/frontend/build_src/src/store/imageCreateStore.ts index 493746e9..75bfa831 100644 --- a/ui/frontend/build_src/src/store/imageCreateStore.ts +++ b/ui/frontend/build_src/src/store/imageCreateStore.ts @@ -1,8 +1,8 @@ -import create from 'zustand'; -import produce from 'immer'; -import { devtools } from 'zustand/middleware' +import create from "zustand"; +import produce from "immer"; +import { devtools } from "zustand/middleware"; -import { useRandomSeed } from '../utils'; +import { useRandomSeed } from "../utils"; export type ImageCreationUiOptions = { advancedSettingsIsOpen: boolean; @@ -12,27 +12,57 @@ export type ImageCreationUiOptions = { isUseRandomSeed: boolean; isUseAutoSave: boolean; isSoundEnabled: boolean; -} +}; export type ImageRequest = { prompt: string; seed: number; num_outputs: number; num_inference_steps: number; - guidance_scale: number - width: 128 | 192 | 256 | 320 | 384 | 448 | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 | 1024; - height: 128 | 192 | 256 | 320 | 384 | 448 | 512 | 576 | 640 | 704 | 768 | 832 | 896 | 960 | 1024; + guidance_scale: number; + width: + | 128 + | 192 + | 256 + | 320 + | 384 + | 448 + | 512 + | 576 + | 640 + | 704 + | 768 + | 832 + | 896 + | 960 + | 1024; + height: + | 128 + | 192 + | 256 + | 320 + | 384 + | 448 + | 512 + | 576 + | 640 + | 704 + | 768 + | 832 + | 896 + | 960 + | 1024; // allow_nsfw: boolean; turbo: boolean; use_cpu: boolean; use_full_precision: boolean; save_to_disk_path: null | string; - use_face_correction: null | 'GFPGANv1.3'; - use_upscale: null| 'RealESRGAN_x4plus' | 'RealESRGAN_x4plus_anime_6B'; + use_face_correction: null | "GFPGANv1.3"; + use_upscale: null | "RealESRGAN_x4plus" | "RealESRGAN_x4plus_anime_6B"; show_only_filtered_image: boolean; init_image: undefined | string; prompt_strength: undefined | number; - }; +}; interface ImageCreateState { parallelCount: number; @@ -45,7 +75,7 @@ interface ImageCreateState { toggleTag: (tag: string) => void; hasTag: (tag: string) => boolean; - selectedTags:() => string[] + selectedTags: () => string[]; builtRequest: () => ImageRequest; uiOptions: ImageCreationUiOptions; @@ -56,7 +86,7 @@ interface ImageCreateState { toggleUseFaceCorrection: () => void; isUsingFaceCorrection: () => boolean; toggleUseRandomSeed: () => void; - isRandomSeed: () => boolean; + isRandomSeed: () => boolean; toggleUseAutoSave: () => void; isUseAutoSave: () => boolean; toggleSoundEnabled: () => void; @@ -64,185 +94,231 @@ interface ImageCreateState { } // devtools breaks TS -// @ts-ignore -export const useImageCreate = create(devtools((set, get) => ({ - - parallelCount: 1, +export const useImageCreate = create( + // @ts-ignore + devtools((set, get) => ({ + parallelCount: 1, - requestOptions:{ - prompt: 'a photograph of an astronaut riding a horse', - seed: useRandomSeed(), - num_outputs: 1, - num_inference_steps: 50, - guidance_scale: 7.5, - width: 512, - height: 512, - prompt_strength: 0.8, - // allow_nsfw: false, - turbo: true, - use_cpu: false, - use_full_precision: true, - save_to_disk_path: 'null', - use_face_correction: null, - use_upscale: 'RealESRGAN_x4plus', - show_only_filtered_image: false, - } as ImageRequest, + requestOptions: { + prompt: "a photograph of an astronaut riding a horse", + seed: useRandomSeed(), + num_outputs: 1, + num_inference_steps: 50, + guidance_scale: 7.5, + width: 512, + height: 512, + prompt_strength: 0.8, + // allow_nsfw: false, + turbo: true, + use_cpu: false, + use_full_precision: true, + save_to_disk_path: "null", + use_face_correction: null, + use_upscale: "RealESRGAN_x4plus", + show_only_filtered_image: false, + } as ImageRequest, - tags: [] as string[], + tags: [] as string[], - setParallelCount: (count: number) => set(produce((state) => { - state.parallelCount = count; - })), + setParallelCount: (count: number) => + set( + produce((state) => { + state.parallelCount = count; + }) + ), - setRequestOptions: (key: keyof ImageRequest, value: any) => { - set( produce((state) => { - state.requestOptions[key] = value; - })) - }, + setRequestOptions: (key: keyof ImageRequest, value: any) => { + set( + produce((state) => { + state.requestOptions[key] = value; + }) + ); + }, - getValueForRequestKey: (key: keyof ImageRequest) => { - return get().requestOptions[key]; - }, - - toggleTag: (tag: string) => { - set( produce((state) => { - const index = state.tags.indexOf(tag); - if (index > -1) { - state.tags.splice(index, 1); - } else { - state.tags.push(tag); + getValueForRequestKey: (key: keyof ImageRequest) => { + return get().requestOptions[key]; + }, + + toggleTag: (tag: string) => { + set( + produce((state) => { + const index = state.tags.indexOf(tag); + if (index > -1) { + state.tags.splice(index, 1); + } else { + state.tags.push(tag); + } + }) + ); + }, + + hasTag: (tag: string) => { + return get().tags.indexOf(tag) > -1; + }, + + selectedTags: () => { + return get().tags; + }, + + // the request body to send to the server + // this is a computed value, just adding the tags to the request + builtRequest: () => { + const state = get(); + const requestOptions = state.requestOptions; + const tags = state.tags; + + // join all the tags with a comma and add it to the prompt + const prompt = `${requestOptions.prompt} ${tags.join(",")}`; + + const request = { + ...requestOptions, + prompt, + }; + // if we arent using auto save clear the save path + if (!state.uiOptions.isUseAutoSave) { + // maybe this is "None" ? + // TODO check this + request.save_to_disk_path = null; + } + // if we arent using face correction clear the face correction + if (!state.uiOptions.isCheckUseFaceCorrection) { + request.use_face_correction = null; + } + // if we arent using upscaling clear the upscaling + if (!state.uiOptions.isCheckedUseUpscaling) { + request.use_upscale = null; } - })) - }, - hasTag: (tag:string) => { - return get().tags.indexOf(tag) > -1; - }, + return request; + }, - selectedTags: () => { - return get().tags; - }, + uiOptions: { + // TODO proper persistence of all UI / user settings centrally somewhere? + // localStorage.getItem('ui:advancedSettingsIsOpen') === 'true', + advancedSettingsIsOpen: false, + imageModifierIsOpen: false, + isCheckedUseUpscaling: false, + isCheckUseFaceCorrection: true, + isUseRandomSeed: true, + isUseAutoSave: false, + isSoundEnabled: true, + }, - // the request body to send to the server - // this is a computed value, just adding the tags to the request - builtRequest: () => { + toggleAdvancedSettingsIsOpen: () => { + set( + produce((state) => { + state.uiOptions.advancedSettingsIsOpen = + !state.uiOptions.advancedSettingsIsOpen; + localStorage.setItem( + "ui:advancedSettingsIsOpen", + state.uiOptions.advancedSettingsIsOpen + ); + }) + ); + }, - const state = get(); - const requestOptions = state.requestOptions; - const tags = state.tags; + toggleImageModifiersIsOpen: () => { + set( + produce((state) => { + state.uiOptions.imageModifierIsOpen = + !state.uiOptions.imageModifierIsOpen; + localStorage.setItem( + "ui:imageModifierIsOpen", + state.uiOptions.imageModifierIsOpen + ); + }) + ); + }, - // join all the tags with a comma and add it to the prompt - const prompt = `${requestOptions.prompt} ${tags.join(',')}`; + toggleUseUpscaling: () => { + set( + produce((state) => { + state.uiOptions.isCheckedUseUpscaling = + !state.uiOptions.isCheckedUseUpscaling; + state.requestOptions.use_upscale = state.uiOptions + .isCheckedUseUpscaling + ? "RealESRGAN_x4plus" + : null; + localStorage.setItem( + "ui:isCheckedUseUpscaling", + state.uiOptions.isCheckedUseUpscaling + ); + }) + ); + }, - const request = { - ...requestOptions, - prompt - } - // if we arent using auto save clear the save path - if(!state.uiOptions.isUseAutoSave){ - // maybe this is "None" ? - // TODO check this - request.save_to_disk_path = null; - } - // if we arent using face correction clear the face correction - if(!state.uiOptions.isCheckUseFaceCorrection){ - request.use_face_correction = null; - } - // if we arent using upscaling clear the upscaling - if(!state.uiOptions.isCheckedUseUpscaling){ - request.use_upscale = null; - } + isUsingUpscaling: () => { + return get().uiOptions.isCheckedUseUpscaling; + }, - return request; - }, + toggleUseFaceCorrection: () => { + set( + produce((state) => { + state.uiOptions.isCheckUseFaceCorrection = + !state.uiOptions.isCheckUseFaceCorrection; + state.use_face_correction = state.uiOptions.isCheckUseFaceCorrection + ? "GFPGANv1.3" + : null; + localStorage.setItem( + "ui:isCheckUseFaceCorrection", + state.uiOptions.isCheckUseFaceCorrection + ); + }) + ); + }, - uiOptions: { - // TODO proper persistence of all UI / user settings centrally somewhere? - // localStorage.getItem('ui:advancedSettingsIsOpen') === 'true', - advancedSettingsIsOpen:false, - imageModifierIsOpen: false, - isCheckedUseUpscaling: false, - isCheckUseFaceCorrection: true, - isUseRandomSeed: true, - isUseAutoSave: false, - isSoundEnabled: true, - }, + isUsingFaceCorrection: () => { + return get().uiOptions.isCheckUseFaceCorrection; + }, - toggleAdvancedSettingsIsOpen: () => { - set( produce((state) => { - state.uiOptions.advancedSettingsIsOpen = !state.uiOptions.advancedSettingsIsOpen; - localStorage.setItem('ui:advancedSettingsIsOpen', state.uiOptions.advancedSettingsIsOpen); - })) - }, + toggleUseRandomSeed: () => { + set( + produce((state) => { + state.uiOptions.isUseRandomSeed = !state.uiOptions.isUseRandomSeed; + state.requestOptions.seed = state.uiOptions.isUseRandomSeed + ? useRandomSeed() + : state.requestOptions.seed; + localStorage.setItem( + "ui:isUseRandomSeed", + state.uiOptions.isUseRandomSeed + ); + }) + ); + }, - toggleImageModifiersIsOpen: () => { - set( produce((state) => { - state.uiOptions.imageModifierIsOpen = !state.uiOptions.imageModifierIsOpen; - localStorage.setItem('ui:imageModifierIsOpen', state.uiOptions.imageModifierIsOpen); - })) - }, + isRandomSeed: () => { + return get().uiOptions.isUseRandomSeed; + }, - toggleUseUpscaling: () => { - set( produce((state) => { - state.uiOptions.isCheckedUseUpscaling = !state.uiOptions.isCheckedUseUpscaling; - state.requestOptions.use_upscale = state.uiOptions.isCheckedUseUpscaling ? 'RealESRGAN_x4plus' : null; - localStorage.setItem('ui:isCheckedUseUpscaling', state.uiOptions.isCheckedUseUpscaling); - })) - }, + toggleUseAutoSave: () => { + //isUseAutoSave + //save_to_disk_path + set( + produce((state) => { + state.uiOptions.isUseAutoSave = !state.uiOptions.isUseAutoSave; + localStorage.setItem( + "ui:isUseAutoSave", + state.uiOptions.isUseAutoSave + ); + }) + ); + }, - isUsingUpscaling: () => { - return get().uiOptions.isCheckedUseUpscaling; - }, - - toggleUseFaceCorrection: () => { - set( produce((state) => { - state.uiOptions.isCheckUseFaceCorrection = !state.uiOptions.isCheckUseFaceCorrection; - state.use_face_correction = state.uiOptions.isCheckUseFaceCorrection ? 'GFPGANv1.3' : null; - localStorage.setItem('ui:isCheckUseFaceCorrection', state.uiOptions.isCheckUseFaceCorrection); - })) - }, - - isUsingFaceCorrection: () => { - return get().uiOptions.isCheckUseFaceCorrection; - }, - - - toggleUseRandomSeed: () => { - set( produce((state) => { - state.uiOptions.isUseRandomSeed = !state.uiOptions.isUseRandomSeed; - state.requestOptions.seed = state.uiOptions.isUseRandomSeed ? useRandomSeed() : state.requestOptions.seed; - localStorage.setItem('ui:isUseRandomSeed', state.uiOptions.isUseRandomSeed); - })) - }, - - isRandomSeed: () => { - return get().uiOptions.isUseRandomSeed; - }, - - toggleUseAutoSave: () => { - //isUseAutoSave - //save_to_disk_path - set( produce((state) => { - state.uiOptions.isUseAutoSave = !state.uiOptions.isUseAutoSave; - localStorage.setItem('ui:isUseAutoSave', state.uiOptions.isUseAutoSave); - })) - }, - - isUseAutoSave: () => { - return get().uiOptions.isUseAutoSave; - }, - - toggleSoundEnabled: () => { - set( produce((state) => { - state.uiOptions.isSoundEnabled = !state.uiOptions.isSoundEnabled; - //localStorage.setItem('ui:isSoundEnabled', state.uiOptions.isSoundEnabled); - })) - }, - - isSoundEnabled: () => { - return get().uiOptions.isSoundEnabled; - }, - -}))); + isUseAutoSave: () => { + return get().uiOptions.isUseAutoSave; + }, + toggleSoundEnabled: () => { + set( + produce((state) => { + state.uiOptions.isSoundEnabled = !state.uiOptions.isSoundEnabled; + //localStorage.setItem('ui:isSoundEnabled', state.uiOptions.isSoundEnabled); + }) + ); + }, + isSoundEnabled: () => { + return get().uiOptions.isSoundEnabled; + }, + })) +); diff --git a/ui/frontend/build_src/src/store/imageDisplayStore.ts b/ui/frontend/build_src/src/store/imageDisplayStore.ts index c0addd3a..d778b6e9 100644 --- a/ui/frontend/build_src/src/store/imageDisplayStore.ts +++ b/ui/frontend/build_src/src/store/imageDisplayStore.ts @@ -1,12 +1,12 @@ -import create from 'zustand'; -import produce from 'immer'; +import create from "zustand"; +import produce from "immer"; // import { devtools } from 'zustand/middleware' interface ImageDisplayState { imageOptions: Map; currentImage: object | null; - addNewImage: (ImageData: string, imageOptions: any) => void + addNewImage: (ImageData: string, imageOptions: any) => void; } export const useImageDisplay = create((set) => ({ @@ -14,9 +14,11 @@ export const useImageDisplay = create((set) => ({ currentImage: null, // use produce to make sure we don't mutate state addNewImage: (ImageData: string, imageOptions: any) => { - set( produce((state) => { - state.currentImage = { display: ImageData, options: imageOptions }; - state.images.set(ImageData, imageOptions) - })); - } -})); \ No newline at end of file + set( + produce((state) => { + state.currentImage = { display: ImageData, options: imageOptions }; + state.images.set(ImageData, imageOptions); + }) + ); + }, +})); diff --git a/ui/frontend/build_src/src/store/imageQueueStore.ts b/ui/frontend/build_src/src/store/imageQueueStore.ts index 9177480d..ba5fc22d 100644 --- a/ui/frontend/build_src/src/store/imageQueueStore.ts +++ b/ui/frontend/build_src/src/store/imageQueueStore.ts @@ -1,13 +1,13 @@ -import create from 'zustand'; -import produce from 'immer'; -import { useRandomSeed } from '../utils'; +import create from "zustand"; +import produce from "immer"; +import { useRandomSeed } from "../utils"; -import { ImageRequest } from './imageCreateStore'; +import { ImageRequest } from "./imageCreateStore"; interface ImageQueueState { - images : ImageRequest[]; + images: ImageRequest[]; completedImageIds: string[]; - addNewImage: (id:string, imgRec: ImageRequest) => void + addNewImage: (id: string, imgRec: ImageRequest) => void; hasQueuedImages: () => boolean; firstInQueue: () => ImageRequest | []; removeFirstInQueue: () => void; @@ -19,29 +19,31 @@ export const useImageQueue = create((set, get) => ({ images: new Array(), completedImageIds: new Array(), // use produce to make sure we don't mutate state - addNewImage: (id: string, imgRec: ImageRequest, isRandom= false) => { - set( produce((state) => { - - let { seed } = imgRec; - if (isRandom) { - seed = useRandomSeed(); - } - state.images.push({ id, options: {...imgRec, seed} }); - })); + addNewImage: (id: string, imgRec: ImageRequest, isRandom = false) => { + set( + produce((state) => { + let { seed } = imgRec; + if (isRandom) { + seed = useRandomSeed(); + } + state.images.push({ id, options: { ...imgRec, seed } }); + }) + ); }, - + hasQueuedImages: () => { return get().images.length > 0; }, firstInQueue: () => { - return get().images[0] as ImageRequest || []; + return (get().images[0] as ImageRequest) || []; }, - + removeFirstInQueue: () => { - set( produce((state) => { - const image = state.images.shift(); - state.completedImageIds.push(image.id); - })); - } + set( + produce((state) => { + const image = state.images.shift(); + state.completedImageIds.push(image.id); + }) + ); + }, })); - \ No newline at end of file diff --git a/ui/frontend/build_src/src/utils.ts b/ui/frontend/build_src/src/utils.ts index 0c91183a..dbe52aad 100644 --- a/ui/frontend/build_src/src/utils.ts +++ b/ui/frontend/build_src/src/utils.ts @@ -1,3 +1,3 @@ -export function useRandomSeed(){ +export function useRandomSeed() { return Math.floor(Math.random() * 10000); -}; \ No newline at end of file +} diff --git a/ui/frontend/build_src/vite.config.ts b/ui/frontend/build_src/vite.config.ts index 93da2313..6a735829 100644 --- a/ui/frontend/build_src/vite.config.ts +++ b/ui/frontend/build_src/vite.config.ts @@ -1,5 +1,5 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react' +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; // https://vitejs.dev/config/ export default defineConfig({ @@ -9,16 +9,15 @@ export default defineConfig({ }, build: { // make sure everythign is in the same directory - outDir: '../dist', + outDir: "../dist", rollupOptions: { output: { // dont hash the file names // maybe once we update the python server? entryFileNames: `[name].js`, chunkFileNames: `[name].js`, - assetFileNames: `[name].[ext]` - } - } + assetFileNames: `[name].[ext]`, + }, + }, }, - -}) +}); diff --git a/ui/frontend/dist/index.html b/ui/frontend/dist/index.html index 4c9a4376..cdf8474c 100644 --- a/ui/frontend/dist/index.html +++ b/ui/frontend/dist/index.html @@ -1,1269 +1,1531 @@ - - - - Stable Diffusion UI - - - - - -
- + + + + Stable Diffusion UI + + + + + +
+ - + - - - - + + + + + + + + +