nsave commited on
Commit
7564244
·
verified ·
1 Parent(s): 225531d

Upload 24 files

Browse files
.dockerignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ Dockerfile
2
+ .dockerignore
3
+ frontend/node_modules
README-ja.md ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Txt2Img Example
2
+
3
+ [English](./README.md) | [日本語](./README-ja.md)
4
+
5
+ <p align="center">
6
+ <img src="../../assets/demo_01.gif" width=80%>
7
+ </p>
8
+
9
+ StreamDiffusion を用いた GUI を提供します。
10
+ 入力プロンプトを変更すると、テキストから 4x4 の画像をリアルタイムに生成することができます。
11
+
12
+ ## 使用方法
13
+
14
+ 以下のコマンドを順番に実行してください。
15
+
16
+ ```bash
17
+ pip install -r requirements.txt
18
+ cd frontend
19
+ pnpm i
20
+ pnpm run build
21
+ cd ..
22
+ python main.py
23
+ ```
24
+
25
+ # 謝辞
26
+
27
+ この GitHubリポジトリ にある動画と画像のデモは、[kohakuV2](https://civitai.com/models/136268/kohaku-v2)と[SD-Turbo](https://arxiv.org/abs/2311.17042)を使用して生成されました。
28
+
29
+ KohakuV2 モデルを提供していただいたKohaku BlueLeaf 様 ([@KBlueleaf](https://twitter.com/KBlueleaf))、[SD-Turbo](https://arxiv.org/abs/2311.17042)を提供していただいた[Stability AI](https://ja.stability.ai/)様に心より感謝いたします。
30
+
31
+ KohakuV2 モデルは [Civitai](https://civitai.com/models/136268/kohaku-v2) と [Hugging Face](https://huggingface.co/KBlueLeaf/kohaku-v2.1) からダウンロードでき、[SD-Turbo](https://arxiv.org/abs/2311.17042) は [Hugging Face](https://huggingface.co/stabilityai/sd-turbo) で使用可能です。
README.md CHANGED
@@ -1,12 +1,33 @@
1
- ---
2
- title: Strdiftest
3
- emoji: 🌖
4
- colorFrom: green
5
- colorTo: indigo
6
- sdk: docker
7
- pinned: false
8
- license: unknown
9
- short_description: strdiftest
10
- ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Txt2Img Example
2
+
3
+ [English](./README.md) | [日本語](./README-ja.md)
4
+
5
+ <p align="center">
6
+ <img src="../../assets/demo_01.gif" width=80%>
7
+ </p>
8
+
9
+ This example provides a simple implementation of the use of StreamDiffusion to generate images from text.
10
+ You can realtimely generate 4x4 images from text, on changing the input prompt.
11
+
12
+ ## Usage
13
+
14
+ ```bash
15
+ pip install -r requirements.txt
16
+ cd frontend
17
+ pnpm i
18
+ pnpm run build
19
+ cd ..
20
+ python main.py
21
+ ```
22
+
23
+ # Acknowledgements
24
+
25
+ </br>
26
+
27
+ The video and image demos in this GitHub repository were generated using [kohakuV2](https://civitai.com/models/136268/kohaku-v2) and [SD-Turbo](https://arxiv.org/abs/2311.17042).
28
+
29
+ Special thanks to Kohaku BlueLeaf ([@KBlueleaf](https://twitter.com/KBlueleaf)) for providing the KohakuV2 model, and to [Stability AI](https://ja.stability.ai/) for [SD-Turbo](https://arxiv.org/abs/2311.17042).
30
+
31
+ KohakuV2 Models can be downloaded from [Civitai](https://civitai.com/models/136268/kohaku-v2) and [Hugging Face](https://huggingface.co/KBlueLeaf/kohaku-v2.1).
32
+
33
+ [SD-Turbo](https://arxiv.org/abs/2311.17042) is also available on [Hugging Face](https://huggingface.co/stabilityai/sd-turbo).
config.py CHANGED
@@ -47,4 +47,4 @@ class Config:
47
  t_index_list: List[int] = field(default_factory=lambda: [0, 16, 32, 45])
48
  # Number of warmup steps
49
  warmup: int = 10
50
- use_safety_checker: bool = SAFETY_CHECKER
 
47
  t_index_list: List[int] = field(default_factory=lambda: [0, 16, 32, 45])
48
  # Number of warmup steps
49
  warmup: int = 10
50
+ use_safety_checker: bool = SAFETY_CHECKER
frontend/.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ tsconfig.tsbuildinfo
frontend/.prettierrc ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ singleQuote: true
2
+ semi: false
3
+ trailingComma: all
4
+ printWidth: 150
frontend/README.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Getting Started with Create React App
2
+
3
+ This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4
+
5
+ ## Available Scripts
6
+
7
+ In the project directory, you can run:
8
+
9
+ ### `npm start`
10
+
11
+ Runs the app in the development mode.\
12
+ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
13
+
14
+ The page will reload if you make edits.\
15
+ You will also see any lint errors in the console.
16
+
17
+ ### `npm test`
18
+
19
+ Launches the test runner in the interactive watch mode.\
20
+ See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
21
+
22
+ ### `npm run build`
23
+
24
+ Builds the app for production to the `build` folder.\
25
+ It correctly bundles React in production mode and optimizes the build for the best performance.
26
+
27
+ The build is minified and the filenames include the hashes.\
28
+ Your app is ready to be deployed!
29
+
30
+ See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
31
+
32
+ ### `npm run eject`
33
+
34
+ **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
35
+
36
+ If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
37
+
38
+ Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
39
+
40
+ You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
41
+
42
+ ## Learn More
43
+
44
+ You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
45
+
46
+ To learn React, check out the [React documentation](https://reactjs.org/).
frontend/index.html ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" href="/favicon.ico" />
6
+ <meta name="viewport" content="minimum-scale=1, initial-scale=1, width=device-width, user-scalable=no" />
7
+
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@500&family=Zen+Kaku+Gothic+New:wght@500&display=swap" rel="stylesheet" />
11
+
12
+ <title>Txt2Img demo</title>
13
+ </head>
14
+ <body>
15
+ <div id="root"></div>
16
+ <script type="module" src="/src/main.tsx"></script>
17
+ </body>
18
+ </html>
frontend/package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "view",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "preview": "vite preview"
10
+ },
11
+ "dependencies": {
12
+ "@mantine/core": "^7.3.1",
13
+ "react": "^18.2.0",
14
+ "react-dom": "^18.2.0"
15
+ },
16
+ "devDependencies": {
17
+ "@types/react": "^18.2.38",
18
+ "@types/react-dom": "^18.2.17",
19
+ "@vitejs/plugin-react": "^4.2.1",
20
+ "postcss": "^8.4.32",
21
+ "postcss-preset-mantine": "^1.11.1",
22
+ "postcss-simple-vars": "^7.0.1",
23
+ "prettier": "^3.1.0",
24
+ "typescript": "^4.9.5",
25
+ "vite": "^5.0.10",
26
+ "vite-tsconfig-paths": "^4.2.3"
27
+ }
28
+ }
frontend/pnpm-lock.yaml ADDED
@@ -0,0 +1,1509 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '6.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ dependencies:
8
+ '@mantine/core':
9
+ specifier: ^7.3.1
10
+ version: 7.3.2(@mantine/hooks@7.3.2)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)
11
+ react:
12
+ specifier: ^18.2.0
13
+ version: 18.2.0
14
+ react-dom:
15
+ specifier: ^18.2.0
16
+ version: 18.2.0(react@18.2.0)
17
+
18
+ devDependencies:
19
+ '@types/react':
20
+ specifier: ^18.2.38
21
+ version: 18.2.38
22
+ '@types/react-dom':
23
+ specifier: ^18.2.17
24
+ version: 18.2.17
25
+ '@vitejs/plugin-react':
26
+ specifier: ^4.2.1
27
+ version: 4.2.1(vite@5.0.10)
28
+ postcss:
29
+ specifier: ^8.4.32
30
+ version: 8.4.32
31
+ postcss-preset-mantine:
32
+ specifier: ^1.11.1
33
+ version: 1.12.2(postcss@8.4.32)
34
+ postcss-simple-vars:
35
+ specifier: ^7.0.1
36
+ version: 7.0.1(postcss@8.4.32)
37
+ prettier:
38
+ specifier: ^3.1.0
39
+ version: 3.1.1
40
+ typescript:
41
+ specifier: ^4.9.5
42
+ version: 4.9.5
43
+ vite:
44
+ specifier: ^5.0.10
45
+ version: 5.0.10
46
+ vite-tsconfig-paths:
47
+ specifier: ^4.2.3
48
+ version: 4.2.3(typescript@4.9.5)(vite@5.0.10)
49
+
50
+ packages:
51
+
52
+ /@ampproject/remapping@2.2.1:
53
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
54
+ engines: {node: '>=6.0.0'}
55
+ dependencies:
56
+ '@jridgewell/gen-mapping': 0.3.3
57
+ '@jridgewell/trace-mapping': 0.3.20
58
+ dev: true
59
+
60
+ /@babel/code-frame@7.23.5:
61
+ resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
62
+ engines: {node: '>=6.9.0'}
63
+ dependencies:
64
+ '@babel/highlight': 7.23.4
65
+ chalk: 2.4.2
66
+ dev: true
67
+
68
+ /@babel/compat-data@7.23.5:
69
+ resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
70
+ engines: {node: '>=6.9.0'}
71
+ dev: true
72
+
73
+ /@babel/core@7.23.5:
74
+ resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==}
75
+ engines: {node: '>=6.9.0'}
76
+ dependencies:
77
+ '@ampproject/remapping': 2.2.1
78
+ '@babel/code-frame': 7.23.5
79
+ '@babel/generator': 7.23.5
80
+ '@babel/helper-compilation-targets': 7.22.15
81
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5)
82
+ '@babel/helpers': 7.23.5
83
+ '@babel/parser': 7.23.5
84
+ '@babel/template': 7.22.15
85
+ '@babel/traverse': 7.23.5
86
+ '@babel/types': 7.23.5
87
+ convert-source-map: 2.0.0
88
+ debug: 4.3.4
89
+ gensync: 1.0.0-beta.2
90
+ json5: 2.2.3
91
+ semver: 6.3.1
92
+ transitivePeerDependencies:
93
+ - supports-color
94
+ dev: true
95
+
96
+ /@babel/generator@7.23.5:
97
+ resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==}
98
+ engines: {node: '>=6.9.0'}
99
+ dependencies:
100
+ '@babel/types': 7.23.5
101
+ '@jridgewell/gen-mapping': 0.3.3
102
+ '@jridgewell/trace-mapping': 0.3.20
103
+ jsesc: 2.5.2
104
+ dev: true
105
+
106
+ /@babel/helper-compilation-targets@7.22.15:
107
+ resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
108
+ engines: {node: '>=6.9.0'}
109
+ dependencies:
110
+ '@babel/compat-data': 7.23.5
111
+ '@babel/helper-validator-option': 7.23.5
112
+ browserslist: 4.22.1
113
+ lru-cache: 5.1.1
114
+ semver: 6.3.1
115
+ dev: true
116
+
117
+ /@babel/helper-environment-visitor@7.22.20:
118
+ resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
119
+ engines: {node: '>=6.9.0'}
120
+ dev: true
121
+
122
+ /@babel/helper-function-name@7.23.0:
123
+ resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
124
+ engines: {node: '>=6.9.0'}
125
+ dependencies:
126
+ '@babel/template': 7.22.15
127
+ '@babel/types': 7.23.5
128
+ dev: true
129
+
130
+ /@babel/helper-hoist-variables@7.22.5:
131
+ resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
132
+ engines: {node: '>=6.9.0'}
133
+ dependencies:
134
+ '@babel/types': 7.23.5
135
+ dev: true
136
+
137
+ /@babel/helper-module-imports@7.22.15:
138
+ resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
139
+ engines: {node: '>=6.9.0'}
140
+ dependencies:
141
+ '@babel/types': 7.23.5
142
+ dev: true
143
+
144
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5):
145
+ resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
146
+ engines: {node: '>=6.9.0'}
147
+ peerDependencies:
148
+ '@babel/core': ^7.0.0
149
+ dependencies:
150
+ '@babel/core': 7.23.5
151
+ '@babel/helper-environment-visitor': 7.22.20
152
+ '@babel/helper-module-imports': 7.22.15
153
+ '@babel/helper-simple-access': 7.22.5
154
+ '@babel/helper-split-export-declaration': 7.22.6
155
+ '@babel/helper-validator-identifier': 7.22.20
156
+ dev: true
157
+
158
+ /@babel/helper-plugin-utils@7.22.5:
159
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
160
+ engines: {node: '>=6.9.0'}
161
+ dev: true
162
+
163
+ /@babel/helper-simple-access@7.22.5:
164
+ resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
165
+ engines: {node: '>=6.9.0'}
166
+ dependencies:
167
+ '@babel/types': 7.23.5
168
+ dev: true
169
+
170
+ /@babel/helper-split-export-declaration@7.22.6:
171
+ resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
172
+ engines: {node: '>=6.9.0'}
173
+ dependencies:
174
+ '@babel/types': 7.23.5
175
+ dev: true
176
+
177
+ /@babel/helper-string-parser@7.23.4:
178
+ resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
179
+ engines: {node: '>=6.9.0'}
180
+ dev: true
181
+
182
+ /@babel/helper-validator-identifier@7.22.20:
183
+ resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
184
+ engines: {node: '>=6.9.0'}
185
+ dev: true
186
+
187
+ /@babel/helper-validator-option@7.23.5:
188
+ resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
189
+ engines: {node: '>=6.9.0'}
190
+ dev: true
191
+
192
+ /@babel/helpers@7.23.5:
193
+ resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==}
194
+ engines: {node: '>=6.9.0'}
195
+ dependencies:
196
+ '@babel/template': 7.22.15
197
+ '@babel/traverse': 7.23.5
198
+ '@babel/types': 7.23.5
199
+ transitivePeerDependencies:
200
+ - supports-color
201
+ dev: true
202
+
203
+ /@babel/highlight@7.23.4:
204
+ resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
205
+ engines: {node: '>=6.9.0'}
206
+ dependencies:
207
+ '@babel/helper-validator-identifier': 7.22.20
208
+ chalk: 2.4.2
209
+ js-tokens: 4.0.0
210
+ dev: true
211
+
212
+ /@babel/parser@7.23.5:
213
+ resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==}
214
+ engines: {node: '>=6.0.0'}
215
+ hasBin: true
216
+ dependencies:
217
+ '@babel/types': 7.23.5
218
+ dev: true
219
+
220
+ /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.5):
221
+ resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==}
222
+ engines: {node: '>=6.9.0'}
223
+ peerDependencies:
224
+ '@babel/core': ^7.0.0-0
225
+ dependencies:
226
+ '@babel/core': 7.23.5
227
+ '@babel/helper-plugin-utils': 7.22.5
228
+ dev: true
229
+
230
+ /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.5):
231
+ resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==}
232
+ engines: {node: '>=6.9.0'}
233
+ peerDependencies:
234
+ '@babel/core': ^7.0.0-0
235
+ dependencies:
236
+ '@babel/core': 7.23.5
237
+ '@babel/helper-plugin-utils': 7.22.5
238
+ dev: true
239
+
240
+ /@babel/runtime@7.23.5:
241
+ resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==}
242
+ engines: {node: '>=6.9.0'}
243
+ dependencies:
244
+ regenerator-runtime: 0.14.0
245
+ dev: false
246
+
247
+ /@babel/template@7.22.15:
248
+ resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
249
+ engines: {node: '>=6.9.0'}
250
+ dependencies:
251
+ '@babel/code-frame': 7.23.5
252
+ '@babel/parser': 7.23.5
253
+ '@babel/types': 7.23.5
254
+ dev: true
255
+
256
+ /@babel/traverse@7.23.5:
257
+ resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==}
258
+ engines: {node: '>=6.9.0'}
259
+ dependencies:
260
+ '@babel/code-frame': 7.23.5
261
+ '@babel/generator': 7.23.5
262
+ '@babel/helper-environment-visitor': 7.22.20
263
+ '@babel/helper-function-name': 7.23.0
264
+ '@babel/helper-hoist-variables': 7.22.5
265
+ '@babel/helper-split-export-declaration': 7.22.6
266
+ '@babel/parser': 7.23.5
267
+ '@babel/types': 7.23.5
268
+ debug: 4.3.4
269
+ globals: 11.12.0
270
+ transitivePeerDependencies:
271
+ - supports-color
272
+ dev: true
273
+
274
+ /@babel/types@7.23.5:
275
+ resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==}
276
+ engines: {node: '>=6.9.0'}
277
+ dependencies:
278
+ '@babel/helper-string-parser': 7.23.4
279
+ '@babel/helper-validator-identifier': 7.22.20
280
+ to-fast-properties: 2.0.0
281
+ dev: true
282
+
283
+ /@esbuild/aix-ppc64@0.19.11:
284
+ resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==}
285
+ engines: {node: '>=12'}
286
+ cpu: [ppc64]
287
+ os: [aix]
288
+ requiresBuild: true
289
+ dev: true
290
+ optional: true
291
+
292
+ /@esbuild/android-arm64@0.19.11:
293
+ resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==}
294
+ engines: {node: '>=12'}
295
+ cpu: [arm64]
296
+ os: [android]
297
+ requiresBuild: true
298
+ dev: true
299
+ optional: true
300
+
301
+ /@esbuild/android-arm@0.19.11:
302
+ resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==}
303
+ engines: {node: '>=12'}
304
+ cpu: [arm]
305
+ os: [android]
306
+ requiresBuild: true
307
+ dev: true
308
+ optional: true
309
+
310
+ /@esbuild/android-x64@0.19.11:
311
+ resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==}
312
+ engines: {node: '>=12'}
313
+ cpu: [x64]
314
+ os: [android]
315
+ requiresBuild: true
316
+ dev: true
317
+ optional: true
318
+
319
+ /@esbuild/darwin-arm64@0.19.11:
320
+ resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==}
321
+ engines: {node: '>=12'}
322
+ cpu: [arm64]
323
+ os: [darwin]
324
+ requiresBuild: true
325
+ dev: true
326
+ optional: true
327
+
328
+ /@esbuild/darwin-x64@0.19.11:
329
+ resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==}
330
+ engines: {node: '>=12'}
331
+ cpu: [x64]
332
+ os: [darwin]
333
+ requiresBuild: true
334
+ dev: true
335
+ optional: true
336
+
337
+ /@esbuild/freebsd-arm64@0.19.11:
338
+ resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==}
339
+ engines: {node: '>=12'}
340
+ cpu: [arm64]
341
+ os: [freebsd]
342
+ requiresBuild: true
343
+ dev: true
344
+ optional: true
345
+
346
+ /@esbuild/freebsd-x64@0.19.11:
347
+ resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==}
348
+ engines: {node: '>=12'}
349
+ cpu: [x64]
350
+ os: [freebsd]
351
+ requiresBuild: true
352
+ dev: true
353
+ optional: true
354
+
355
+ /@esbuild/linux-arm64@0.19.11:
356
+ resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==}
357
+ engines: {node: '>=12'}
358
+ cpu: [arm64]
359
+ os: [linux]
360
+ requiresBuild: true
361
+ dev: true
362
+ optional: true
363
+
364
+ /@esbuild/linux-arm@0.19.11:
365
+ resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==}
366
+ engines: {node: '>=12'}
367
+ cpu: [arm]
368
+ os: [linux]
369
+ requiresBuild: true
370
+ dev: true
371
+ optional: true
372
+
373
+ /@esbuild/linux-ia32@0.19.11:
374
+ resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==}
375
+ engines: {node: '>=12'}
376
+ cpu: [ia32]
377
+ os: [linux]
378
+ requiresBuild: true
379
+ dev: true
380
+ optional: true
381
+
382
+ /@esbuild/linux-loong64@0.19.11:
383
+ resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==}
384
+ engines: {node: '>=12'}
385
+ cpu: [loong64]
386
+ os: [linux]
387
+ requiresBuild: true
388
+ dev: true
389
+ optional: true
390
+
391
+ /@esbuild/linux-mips64el@0.19.11:
392
+ resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==}
393
+ engines: {node: '>=12'}
394
+ cpu: [mips64el]
395
+ os: [linux]
396
+ requiresBuild: true
397
+ dev: true
398
+ optional: true
399
+
400
+ /@esbuild/linux-ppc64@0.19.11:
401
+ resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==}
402
+ engines: {node: '>=12'}
403
+ cpu: [ppc64]
404
+ os: [linux]
405
+ requiresBuild: true
406
+ dev: true
407
+ optional: true
408
+
409
+ /@esbuild/linux-riscv64@0.19.11:
410
+ resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==}
411
+ engines: {node: '>=12'}
412
+ cpu: [riscv64]
413
+ os: [linux]
414
+ requiresBuild: true
415
+ dev: true
416
+ optional: true
417
+
418
+ /@esbuild/linux-s390x@0.19.11:
419
+ resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==}
420
+ engines: {node: '>=12'}
421
+ cpu: [s390x]
422
+ os: [linux]
423
+ requiresBuild: true
424
+ dev: true
425
+ optional: true
426
+
427
+ /@esbuild/linux-x64@0.19.11:
428
+ resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==}
429
+ engines: {node: '>=12'}
430
+ cpu: [x64]
431
+ os: [linux]
432
+ requiresBuild: true
433
+ dev: true
434
+ optional: true
435
+
436
+ /@esbuild/netbsd-x64@0.19.11:
437
+ resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==}
438
+ engines: {node: '>=12'}
439
+ cpu: [x64]
440
+ os: [netbsd]
441
+ requiresBuild: true
442
+ dev: true
443
+ optional: true
444
+
445
+ /@esbuild/openbsd-x64@0.19.11:
446
+ resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==}
447
+ engines: {node: '>=12'}
448
+ cpu: [x64]
449
+ os: [openbsd]
450
+ requiresBuild: true
451
+ dev: true
452
+ optional: true
453
+
454
+ /@esbuild/sunos-x64@0.19.11:
455
+ resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==}
456
+ engines: {node: '>=12'}
457
+ cpu: [x64]
458
+ os: [sunos]
459
+ requiresBuild: true
460
+ dev: true
461
+ optional: true
462
+
463
+ /@esbuild/win32-arm64@0.19.11:
464
+ resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==}
465
+ engines: {node: '>=12'}
466
+ cpu: [arm64]
467
+ os: [win32]
468
+ requiresBuild: true
469
+ dev: true
470
+ optional: true
471
+
472
+ /@esbuild/win32-ia32@0.19.11:
473
+ resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==}
474
+ engines: {node: '>=12'}
475
+ cpu: [ia32]
476
+ os: [win32]
477
+ requiresBuild: true
478
+ dev: true
479
+ optional: true
480
+
481
+ /@esbuild/win32-x64@0.19.11:
482
+ resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==}
483
+ engines: {node: '>=12'}
484
+ cpu: [x64]
485
+ os: [win32]
486
+ requiresBuild: true
487
+ dev: true
488
+ optional: true
489
+
490
+ /@floating-ui/core@1.5.1:
491
+ resolution: {integrity: sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==}
492
+ dependencies:
493
+ '@floating-ui/utils': 0.1.6
494
+ dev: false
495
+
496
+ /@floating-ui/dom@1.5.3:
497
+ resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==}
498
+ dependencies:
499
+ '@floating-ui/core': 1.5.1
500
+ '@floating-ui/utils': 0.1.6
501
+ dev: false
502
+
503
+ /@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0):
504
+ resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==}
505
+ peerDependencies:
506
+ react: '>=16.8.0'
507
+ react-dom: '>=16.8.0'
508
+ dependencies:
509
+ '@floating-ui/dom': 1.5.3
510
+ react: 18.2.0
511
+ react-dom: 18.2.0(react@18.2.0)
512
+ dev: false
513
+
514
+ /@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0):
515
+ resolution: {integrity: sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==}
516
+ peerDependencies:
517
+ react: '>=16.8.0'
518
+ react-dom: '>=16.8.0'
519
+ dependencies:
520
+ '@floating-ui/react-dom': 2.0.4(react-dom@18.2.0)(react@18.2.0)
521
+ aria-hidden: 1.2.3
522
+ react: 18.2.0
523
+ react-dom: 18.2.0(react@18.2.0)
524
+ tabbable: 6.2.0
525
+ dev: false
526
+
527
+ /@floating-ui/utils@0.1.6:
528
+ resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==}
529
+ dev: false
530
+
531
+ /@jridgewell/gen-mapping@0.3.3:
532
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
533
+ engines: {node: '>=6.0.0'}
534
+ dependencies:
535
+ '@jridgewell/set-array': 1.1.2
536
+ '@jridgewell/sourcemap-codec': 1.4.15
537
+ '@jridgewell/trace-mapping': 0.3.20
538
+ dev: true
539
+
540
+ /@jridgewell/resolve-uri@3.1.1:
541
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
542
+ engines: {node: '>=6.0.0'}
543
+ dev: true
544
+
545
+ /@jridgewell/set-array@1.1.2:
546
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
547
+ engines: {node: '>=6.0.0'}
548
+ dev: true
549
+
550
+ /@jridgewell/sourcemap-codec@1.4.15:
551
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
552
+ dev: true
553
+
554
+ /@jridgewell/trace-mapping@0.3.20:
555
+ resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
556
+ dependencies:
557
+ '@jridgewell/resolve-uri': 3.1.1
558
+ '@jridgewell/sourcemap-codec': 1.4.15
559
+ dev: true
560
+
561
+ /@mantine/core@7.3.2(@mantine/hooks@7.3.2)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0):
562
+ resolution: {integrity: sha512-CwAuQogVLcLR7O9e1eOgi3gtk4XX6cnaqevAxzJJpIOIyCnHiQ3cEGINVXyUUjUUipBlvK3sqz3NPGJ2ekLFDQ==}
563
+ peerDependencies:
564
+ '@mantine/hooks': 7.3.2
565
+ react: ^18.2.0
566
+ react-dom: ^18.2.0
567
+ dependencies:
568
+ '@floating-ui/react': 0.24.8(react-dom@18.2.0)(react@18.2.0)
569
+ '@mantine/hooks': 7.3.2(react@18.2.0)
570
+ clsx: 2.0.0
571
+ react: 18.2.0
572
+ react-dom: 18.2.0(react@18.2.0)
573
+ react-number-format: 5.3.1(react-dom@18.2.0)(react@18.2.0)
574
+ react-remove-scroll: 2.5.7(@types/react@18.2.38)(react@18.2.0)
575
+ react-textarea-autosize: 8.5.3(@types/react@18.2.38)(react@18.2.0)
576
+ type-fest: 3.13.1
577
+ transitivePeerDependencies:
578
+ - '@types/react'
579
+ dev: false
580
+
581
+ /@mantine/hooks@7.3.2(react@18.2.0):
582
+ resolution: {integrity: sha512-xgumuuI3PBWXff5N02HCI7PEy25mDEdyXDQklUYK93J6FKwpcosyZnGVitoUrV1gLtYYa9ZudeAWdhHuh/CpOg==}
583
+ peerDependencies:
584
+ react: ^18.2.0
585
+ dependencies:
586
+ react: 18.2.0
587
+ dev: false
588
+
589
+ /@nodelib/fs.scandir@2.1.5:
590
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
591
+ engines: {node: '>= 8'}
592
+ dependencies:
593
+ '@nodelib/fs.stat': 2.0.5
594
+ run-parallel: 1.2.0
595
+ dev: true
596
+
597
+ /@nodelib/fs.stat@2.0.5:
598
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
599
+ engines: {node: '>= 8'}
600
+ dev: true
601
+
602
+ /@nodelib/fs.walk@1.2.8:
603
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
604
+ engines: {node: '>= 8'}
605
+ dependencies:
606
+ '@nodelib/fs.scandir': 2.1.5
607
+ fastq: 1.16.0
608
+ dev: true
609
+
610
+ /@rollup/rollup-android-arm-eabi@4.9.2:
611
+ resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==}
612
+ cpu: [arm]
613
+ os: [android]
614
+ requiresBuild: true
615
+ dev: true
616
+ optional: true
617
+
618
+ /@rollup/rollup-android-arm64@4.9.2:
619
+ resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==}
620
+ cpu: [arm64]
621
+ os: [android]
622
+ requiresBuild: true
623
+ dev: true
624
+ optional: true
625
+
626
+ /@rollup/rollup-darwin-arm64@4.9.2:
627
+ resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==}
628
+ cpu: [arm64]
629
+ os: [darwin]
630
+ requiresBuild: true
631
+ dev: true
632
+ optional: true
633
+
634
+ /@rollup/rollup-darwin-x64@4.9.2:
635
+ resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==}
636
+ cpu: [x64]
637
+ os: [darwin]
638
+ requiresBuild: true
639
+ dev: true
640
+ optional: true
641
+
642
+ /@rollup/rollup-linux-arm-gnueabihf@4.9.2:
643
+ resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==}
644
+ cpu: [arm]
645
+ os: [linux]
646
+ requiresBuild: true
647
+ dev: true
648
+ optional: true
649
+
650
+ /@rollup/rollup-linux-arm64-gnu@4.9.2:
651
+ resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==}
652
+ cpu: [arm64]
653
+ os: [linux]
654
+ requiresBuild: true
655
+ dev: true
656
+ optional: true
657
+
658
+ /@rollup/rollup-linux-arm64-musl@4.9.2:
659
+ resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==}
660
+ cpu: [arm64]
661
+ os: [linux]
662
+ requiresBuild: true
663
+ dev: true
664
+ optional: true
665
+
666
+ /@rollup/rollup-linux-riscv64-gnu@4.9.2:
667
+ resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==}
668
+ cpu: [riscv64]
669
+ os: [linux]
670
+ requiresBuild: true
671
+ dev: true
672
+ optional: true
673
+
674
+ /@rollup/rollup-linux-x64-gnu@4.9.2:
675
+ resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==}
676
+ cpu: [x64]
677
+ os: [linux]
678
+ requiresBuild: true
679
+ dev: true
680
+ optional: true
681
+
682
+ /@rollup/rollup-linux-x64-musl@4.9.2:
683
+ resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==}
684
+ cpu: [x64]
685
+ os: [linux]
686
+ requiresBuild: true
687
+ dev: true
688
+ optional: true
689
+
690
+ /@rollup/rollup-win32-arm64-msvc@4.9.2:
691
+ resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==}
692
+ cpu: [arm64]
693
+ os: [win32]
694
+ requiresBuild: true
695
+ dev: true
696
+ optional: true
697
+
698
+ /@rollup/rollup-win32-ia32-msvc@4.9.2:
699
+ resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==}
700
+ cpu: [ia32]
701
+ os: [win32]
702
+ requiresBuild: true
703
+ dev: true
704
+ optional: true
705
+
706
+ /@rollup/rollup-win32-x64-msvc@4.9.2:
707
+ resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==}
708
+ cpu: [x64]
709
+ os: [win32]
710
+ requiresBuild: true
711
+ dev: true
712
+ optional: true
713
+
714
+ /@types/babel__core@7.20.5:
715
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
716
+ dependencies:
717
+ '@babel/parser': 7.23.5
718
+ '@babel/types': 7.23.5
719
+ '@types/babel__generator': 7.6.7
720
+ '@types/babel__template': 7.4.4
721
+ '@types/babel__traverse': 7.20.4
722
+ dev: true
723
+
724
+ /@types/babel__generator@7.6.7:
725
+ resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==}
726
+ dependencies:
727
+ '@babel/types': 7.23.5
728
+ dev: true
729
+
730
+ /@types/babel__template@7.4.4:
731
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
732
+ dependencies:
733
+ '@babel/parser': 7.23.5
734
+ '@babel/types': 7.23.5
735
+ dev: true
736
+
737
+ /@types/babel__traverse@7.20.4:
738
+ resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==}
739
+ dependencies:
740
+ '@babel/types': 7.23.5
741
+ dev: true
742
+
743
+ /@types/prop-types@15.7.11:
744
+ resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==}
745
+
746
+ /@types/react-dom@18.2.17:
747
+ resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==}
748
+ dependencies:
749
+ '@types/react': 18.2.38
750
+ dev: true
751
+
752
+ /@types/react@18.2.38:
753
+ resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==}
754
+ dependencies:
755
+ '@types/prop-types': 15.7.11
756
+ '@types/scheduler': 0.16.8
757
+ csstype: 3.1.2
758
+
759
+ /@types/scheduler@0.16.8:
760
+ resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
761
+
762
+ /@vitejs/plugin-react@4.2.1(vite@5.0.10):
763
+ resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==}
764
+ engines: {node: ^14.18.0 || >=16.0.0}
765
+ peerDependencies:
766
+ vite: ^4.2.0 || ^5.0.0
767
+ dependencies:
768
+ '@babel/core': 7.23.5
769
+ '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.5)
770
+ '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.5)
771
+ '@types/babel__core': 7.20.5
772
+ react-refresh: 0.14.0
773
+ vite: 5.0.10
774
+ transitivePeerDependencies:
775
+ - supports-color
776
+ dev: true
777
+
778
+ /ansi-styles@3.2.1:
779
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
780
+ engines: {node: '>=4'}
781
+ dependencies:
782
+ color-convert: 1.9.3
783
+ dev: true
784
+
785
+ /aria-hidden@1.2.3:
786
+ resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==}
787
+ engines: {node: '>=10'}
788
+ dependencies:
789
+ tslib: 2.6.2
790
+ dev: false
791
+
792
+ /braces@3.0.2:
793
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
794
+ engines: {node: '>=8'}
795
+ dependencies:
796
+ fill-range: 7.0.1
797
+ dev: true
798
+
799
+ /browserslist@4.22.1:
800
+ resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
801
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
802
+ hasBin: true
803
+ dependencies:
804
+ caniuse-lite: 1.0.30001565
805
+ electron-to-chromium: 1.4.601
806
+ node-releases: 2.0.14
807
+ update-browserslist-db: 1.0.13(browserslist@4.22.1)
808
+ dev: true
809
+
810
+ /camelcase-css@2.0.1:
811
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
812
+ engines: {node: '>= 6'}
813
+ dev: true
814
+
815
+ /caniuse-lite@1.0.30001565:
816
+ resolution: {integrity: sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==}
817
+ dev: true
818
+
819
+ /chalk@2.4.2:
820
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
821
+ engines: {node: '>=4'}
822
+ dependencies:
823
+ ansi-styles: 3.2.1
824
+ escape-string-regexp: 1.0.5
825
+ supports-color: 5.5.0
826
+ dev: true
827
+
828
+ /clsx@2.0.0:
829
+ resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
830
+ engines: {node: '>=6'}
831
+ dev: false
832
+
833
+ /color-convert@1.9.3:
834
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
835
+ dependencies:
836
+ color-name: 1.1.3
837
+ dev: true
838
+
839
+ /color-name@1.1.3:
840
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
841
+ dev: true
842
+
843
+ /convert-source-map@2.0.0:
844
+ resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
845
+ dev: true
846
+
847
+ /cssesc@3.0.0:
848
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
849
+ engines: {node: '>=4'}
850
+ hasBin: true
851
+ dev: true
852
+
853
+ /csstype@3.1.2:
854
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
855
+
856
+ /debug@4.3.4:
857
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
858
+ engines: {node: '>=6.0'}
859
+ peerDependencies:
860
+ supports-color: '*'
861
+ peerDependenciesMeta:
862
+ supports-color:
863
+ optional: true
864
+ dependencies:
865
+ ms: 2.1.2
866
+ dev: true
867
+
868
+ /detect-node-es@1.1.0:
869
+ resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
870
+ dev: false
871
+
872
+ /electron-to-chromium@1.4.601:
873
+ resolution: {integrity: sha512-SpwUMDWe9tQu8JX5QCO1+p/hChAi9AE9UpoC3rcHVc+gdCGlbT3SGb5I1klgb952HRIyvt9wZhSz9bNBYz9swA==}
874
+ dev: true
875
+
876
+ /esbuild@0.19.11:
877
+ resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==}
878
+ engines: {node: '>=12'}
879
+ hasBin: true
880
+ requiresBuild: true
881
+ optionalDependencies:
882
+ '@esbuild/aix-ppc64': 0.19.11
883
+ '@esbuild/android-arm': 0.19.11
884
+ '@esbuild/android-arm64': 0.19.11
885
+ '@esbuild/android-x64': 0.19.11
886
+ '@esbuild/darwin-arm64': 0.19.11
887
+ '@esbuild/darwin-x64': 0.19.11
888
+ '@esbuild/freebsd-arm64': 0.19.11
889
+ '@esbuild/freebsd-x64': 0.19.11
890
+ '@esbuild/linux-arm': 0.19.11
891
+ '@esbuild/linux-arm64': 0.19.11
892
+ '@esbuild/linux-ia32': 0.19.11
893
+ '@esbuild/linux-loong64': 0.19.11
894
+ '@esbuild/linux-mips64el': 0.19.11
895
+ '@esbuild/linux-ppc64': 0.19.11
896
+ '@esbuild/linux-riscv64': 0.19.11
897
+ '@esbuild/linux-s390x': 0.19.11
898
+ '@esbuild/linux-x64': 0.19.11
899
+ '@esbuild/netbsd-x64': 0.19.11
900
+ '@esbuild/openbsd-x64': 0.19.11
901
+ '@esbuild/sunos-x64': 0.19.11
902
+ '@esbuild/win32-arm64': 0.19.11
903
+ '@esbuild/win32-ia32': 0.19.11
904
+ '@esbuild/win32-x64': 0.19.11
905
+ dev: true
906
+
907
+ /escalade@3.1.1:
908
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
909
+ engines: {node: '>=6'}
910
+ dev: true
911
+
912
+ /escape-string-regexp@1.0.5:
913
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
914
+ engines: {node: '>=0.8.0'}
915
+ dev: true
916
+
917
+ /fast-glob@3.3.2:
918
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
919
+ engines: {node: '>=8.6.0'}
920
+ dependencies:
921
+ '@nodelib/fs.stat': 2.0.5
922
+ '@nodelib/fs.walk': 1.2.8
923
+ glob-parent: 5.1.2
924
+ merge2: 1.4.1
925
+ micromatch: 4.0.5
926
+ dev: true
927
+
928
+ /fastq@1.16.0:
929
+ resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==}
930
+ dependencies:
931
+ reusify: 1.0.4
932
+ dev: true
933
+
934
+ /fill-range@7.0.1:
935
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
936
+ engines: {node: '>=8'}
937
+ dependencies:
938
+ to-regex-range: 5.0.1
939
+ dev: true
940
+
941
+ /fsevents@2.3.3:
942
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
943
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
944
+ os: [darwin]
945
+ requiresBuild: true
946
+ dev: true
947
+ optional: true
948
+
949
+ /gensync@1.0.0-beta.2:
950
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
951
+ engines: {node: '>=6.9.0'}
952
+ dev: true
953
+
954
+ /get-nonce@1.0.1:
955
+ resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
956
+ engines: {node: '>=6'}
957
+ dev: false
958
+
959
+ /glob-parent@5.1.2:
960
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
961
+ engines: {node: '>= 6'}
962
+ dependencies:
963
+ is-glob: 4.0.3
964
+ dev: true
965
+
966
+ /globals@11.12.0:
967
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
968
+ engines: {node: '>=4'}
969
+ dev: true
970
+
971
+ /globrex@0.1.2:
972
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
973
+ dev: true
974
+
975
+ /has-flag@3.0.0:
976
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
977
+ engines: {node: '>=4'}
978
+ dev: true
979
+
980
+ /invariant@2.2.4:
981
+ resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
982
+ dependencies:
983
+ loose-envify: 1.4.0
984
+ dev: false
985
+
986
+ /is-extglob@2.1.1:
987
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
988
+ engines: {node: '>=0.10.0'}
989
+ dev: true
990
+
991
+ /is-glob@4.0.3:
992
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
993
+ engines: {node: '>=0.10.0'}
994
+ dependencies:
995
+ is-extglob: 2.1.1
996
+ dev: true
997
+
998
+ /is-number@7.0.0:
999
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1000
+ engines: {node: '>=0.12.0'}
1001
+ dev: true
1002
+
1003
+ /js-tokens@4.0.0:
1004
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1005
+
1006
+ /jsesc@2.5.2:
1007
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
1008
+ engines: {node: '>=4'}
1009
+ hasBin: true
1010
+ dev: true
1011
+
1012
+ /json5@2.2.3:
1013
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1014
+ engines: {node: '>=6'}
1015
+ hasBin: true
1016
+ dev: true
1017
+
1018
+ /loose-envify@1.4.0:
1019
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1020
+ hasBin: true
1021
+ dependencies:
1022
+ js-tokens: 4.0.0
1023
+ dev: false
1024
+
1025
+ /lru-cache@5.1.1:
1026
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1027
+ dependencies:
1028
+ yallist: 3.1.1
1029
+ dev: true
1030
+
1031
+ /merge2@1.4.1:
1032
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1033
+ engines: {node: '>= 8'}
1034
+ dev: true
1035
+
1036
+ /micromatch@4.0.5:
1037
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1038
+ engines: {node: '>=8.6'}
1039
+ dependencies:
1040
+ braces: 3.0.2
1041
+ picomatch: 2.3.1
1042
+ dev: true
1043
+
1044
+ /ms@2.1.2:
1045
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1046
+ dev: true
1047
+
1048
+ /nanoid@3.3.7:
1049
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1050
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1051
+ hasBin: true
1052
+ dev: true
1053
+
1054
+ /node-releases@2.0.14:
1055
+ resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
1056
+ dev: true
1057
+
1058
+ /object-assign@4.1.1:
1059
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1060
+ engines: {node: '>=0.10.0'}
1061
+ dev: false
1062
+
1063
+ /picocolors@1.0.0:
1064
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1065
+ dev: true
1066
+
1067
+ /picomatch@2.3.1:
1068
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1069
+ engines: {node: '>=8.6'}
1070
+ dev: true
1071
+
1072
+ /postcss-js@4.0.1(postcss@8.4.32):
1073
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1074
+ engines: {node: ^12 || ^14 || >= 16}
1075
+ peerDependencies:
1076
+ postcss: ^8.4.21
1077
+ dependencies:
1078
+ camelcase-css: 2.0.1
1079
+ postcss: 8.4.32
1080
+ dev: true
1081
+
1082
+ /postcss-mixins@9.0.4(postcss@8.4.32):
1083
+ resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==}
1084
+ engines: {node: '>=14.0'}
1085
+ peerDependencies:
1086
+ postcss: ^8.2.14
1087
+ dependencies:
1088
+ fast-glob: 3.3.2
1089
+ postcss: 8.4.32
1090
+ postcss-js: 4.0.1(postcss@8.4.32)
1091
+ postcss-simple-vars: 7.0.1(postcss@8.4.32)
1092
+ sugarss: 4.0.1(postcss@8.4.32)
1093
+ dev: true
1094
+
1095
+ /postcss-nested@6.0.1(postcss@8.4.32):
1096
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
1097
+ engines: {node: '>=12.0'}
1098
+ peerDependencies:
1099
+ postcss: ^8.2.14
1100
+ dependencies:
1101
+ postcss: 8.4.32
1102
+ postcss-selector-parser: 6.0.15
1103
+ dev: true
1104
+
1105
+ /postcss-preset-mantine@1.12.2(postcss@8.4.32):
1106
+ resolution: {integrity: sha512-a7W/lDSeMg/LeOKb/PNKp+pVzYSSxxWFHGihnwRBEGzeY0qCZnPluH5KsJMfxqbElcf5zoiXZIyElzI/0KmgjA==}
1107
+ peerDependencies:
1108
+ postcss: '>=8.0.0'
1109
+ dependencies:
1110
+ postcss: 8.4.32
1111
+ postcss-mixins: 9.0.4(postcss@8.4.32)
1112
+ postcss-nested: 6.0.1(postcss@8.4.32)
1113
+ dev: true
1114
+
1115
+ /postcss-selector-parser@6.0.15:
1116
+ resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
1117
+ engines: {node: '>=4'}
1118
+ dependencies:
1119
+ cssesc: 3.0.0
1120
+ util-deprecate: 1.0.2
1121
+ dev: true
1122
+
1123
+ /postcss-simple-vars@7.0.1(postcss@8.4.32):
1124
+ resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==}
1125
+ engines: {node: '>=14.0'}
1126
+ peerDependencies:
1127
+ postcss: ^8.2.1
1128
+ dependencies:
1129
+ postcss: 8.4.32
1130
+ dev: true
1131
+
1132
+ /postcss@8.4.32:
1133
+ resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==}
1134
+ engines: {node: ^10 || ^12 || >=14}
1135
+ dependencies:
1136
+ nanoid: 3.3.7
1137
+ picocolors: 1.0.0
1138
+ source-map-js: 1.0.2
1139
+ dev: true
1140
+
1141
+ /prettier@3.1.1:
1142
+ resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==}
1143
+ engines: {node: '>=14'}
1144
+ hasBin: true
1145
+ dev: true
1146
+
1147
+ /prop-types@15.8.1:
1148
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1149
+ dependencies:
1150
+ loose-envify: 1.4.0
1151
+ object-assign: 4.1.1
1152
+ react-is: 16.13.1
1153
+ dev: false
1154
+
1155
+ /queue-microtask@1.2.3:
1156
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1157
+ dev: true
1158
+
1159
+ /react-dom@18.2.0(react@18.2.0):
1160
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1161
+ peerDependencies:
1162
+ react: ^18.2.0
1163
+ dependencies:
1164
+ loose-envify: 1.4.0
1165
+ react: 18.2.0
1166
+ scheduler: 0.23.0
1167
+ dev: false
1168
+
1169
+ /react-is@16.13.1:
1170
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1171
+ dev: false
1172
+
1173
+ /react-number-format@5.3.1(react-dom@18.2.0)(react@18.2.0):
1174
+ resolution: {integrity: sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ==}
1175
+ peerDependencies:
1176
+ react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
1177
+ react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0
1178
+ dependencies:
1179
+ prop-types: 15.8.1
1180
+ react: 18.2.0
1181
+ react-dom: 18.2.0(react@18.2.0)
1182
+ dev: false
1183
+
1184
+ /react-refresh@0.14.0:
1185
+ resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
1186
+ engines: {node: '>=0.10.0'}
1187
+ dev: true
1188
+
1189
+ /react-remove-scroll-bar@2.3.4(@types/react@18.2.38)(react@18.2.0):
1190
+ resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==}
1191
+ engines: {node: '>=10'}
1192
+ peerDependencies:
1193
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1194
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1195
+ peerDependenciesMeta:
1196
+ '@types/react':
1197
+ optional: true
1198
+ dependencies:
1199
+ '@types/react': 18.2.38
1200
+ react: 18.2.0
1201
+ react-style-singleton: 2.2.1(@types/react@18.2.38)(react@18.2.0)
1202
+ tslib: 2.6.2
1203
+ dev: false
1204
+
1205
+ /react-remove-scroll@2.5.7(@types/react@18.2.38)(react@18.2.0):
1206
+ resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
1207
+ engines: {node: '>=10'}
1208
+ peerDependencies:
1209
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1210
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1211
+ peerDependenciesMeta:
1212
+ '@types/react':
1213
+ optional: true
1214
+ dependencies:
1215
+ '@types/react': 18.2.38
1216
+ react: 18.2.0
1217
+ react-remove-scroll-bar: 2.3.4(@types/react@18.2.38)(react@18.2.0)
1218
+ react-style-singleton: 2.2.1(@types/react@18.2.38)(react@18.2.0)
1219
+ tslib: 2.6.2
1220
+ use-callback-ref: 1.3.1(@types/react@18.2.38)(react@18.2.0)
1221
+ use-sidecar: 1.1.2(@types/react@18.2.38)(react@18.2.0)
1222
+ dev: false
1223
+
1224
+ /react-style-singleton@2.2.1(@types/react@18.2.38)(react@18.2.0):
1225
+ resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
1226
+ engines: {node: '>=10'}
1227
+ peerDependencies:
1228
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1229
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1230
+ peerDependenciesMeta:
1231
+ '@types/react':
1232
+ optional: true
1233
+ dependencies:
1234
+ '@types/react': 18.2.38
1235
+ get-nonce: 1.0.1
1236
+ invariant: 2.2.4
1237
+ react: 18.2.0
1238
+ tslib: 2.6.2
1239
+ dev: false
1240
+
1241
+ /react-textarea-autosize@8.5.3(@types/react@18.2.38)(react@18.2.0):
1242
+ resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==}
1243
+ engines: {node: '>=10'}
1244
+ peerDependencies:
1245
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1246
+ dependencies:
1247
+ '@babel/runtime': 7.23.5
1248
+ react: 18.2.0
1249
+ use-composed-ref: 1.3.0(react@18.2.0)
1250
+ use-latest: 1.2.1(@types/react@18.2.38)(react@18.2.0)
1251
+ transitivePeerDependencies:
1252
+ - '@types/react'
1253
+ dev: false
1254
+
1255
+ /react@18.2.0:
1256
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1257
+ engines: {node: '>=0.10.0'}
1258
+ dependencies:
1259
+ loose-envify: 1.4.0
1260
+ dev: false
1261
+
1262
+ /regenerator-runtime@0.14.0:
1263
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
1264
+ dev: false
1265
+
1266
+ /reusify@1.0.4:
1267
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1268
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1269
+ dev: true
1270
+
1271
+ /rollup@4.9.2:
1272
+ resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==}
1273
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1274
+ hasBin: true
1275
+ optionalDependencies:
1276
+ '@rollup/rollup-android-arm-eabi': 4.9.2
1277
+ '@rollup/rollup-android-arm64': 4.9.2
1278
+ '@rollup/rollup-darwin-arm64': 4.9.2
1279
+ '@rollup/rollup-darwin-x64': 4.9.2
1280
+ '@rollup/rollup-linux-arm-gnueabihf': 4.9.2
1281
+ '@rollup/rollup-linux-arm64-gnu': 4.9.2
1282
+ '@rollup/rollup-linux-arm64-musl': 4.9.2
1283
+ '@rollup/rollup-linux-riscv64-gnu': 4.9.2
1284
+ '@rollup/rollup-linux-x64-gnu': 4.9.2
1285
+ '@rollup/rollup-linux-x64-musl': 4.9.2
1286
+ '@rollup/rollup-win32-arm64-msvc': 4.9.2
1287
+ '@rollup/rollup-win32-ia32-msvc': 4.9.2
1288
+ '@rollup/rollup-win32-x64-msvc': 4.9.2
1289
+ fsevents: 2.3.3
1290
+ dev: true
1291
+
1292
+ /run-parallel@1.2.0:
1293
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1294
+ dependencies:
1295
+ queue-microtask: 1.2.3
1296
+ dev: true
1297
+
1298
+ /scheduler@0.23.0:
1299
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1300
+ dependencies:
1301
+ loose-envify: 1.4.0
1302
+ dev: false
1303
+
1304
+ /semver@6.3.1:
1305
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1306
+ hasBin: true
1307
+ dev: true
1308
+
1309
+ /source-map-js@1.0.2:
1310
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1311
+ engines: {node: '>=0.10.0'}
1312
+ dev: true
1313
+
1314
+ /sugarss@4.0.1(postcss@8.4.32):
1315
+ resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==}
1316
+ engines: {node: '>=12.0'}
1317
+ peerDependencies:
1318
+ postcss: ^8.3.3
1319
+ dependencies:
1320
+ postcss: 8.4.32
1321
+ dev: true
1322
+
1323
+ /supports-color@5.5.0:
1324
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
1325
+ engines: {node: '>=4'}
1326
+ dependencies:
1327
+ has-flag: 3.0.0
1328
+ dev: true
1329
+
1330
+ /tabbable@6.2.0:
1331
+ resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
1332
+ dev: false
1333
+
1334
+ /to-fast-properties@2.0.0:
1335
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
1336
+ engines: {node: '>=4'}
1337
+ dev: true
1338
+
1339
+ /to-regex-range@5.0.1:
1340
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1341
+ engines: {node: '>=8.0'}
1342
+ dependencies:
1343
+ is-number: 7.0.0
1344
+ dev: true
1345
+
1346
+ /tsconfck@2.1.2(typescript@4.9.5):
1347
+ resolution: {integrity: sha512-ghqN1b0puy3MhhviwO2kGF8SeMDNhEbnKxjK7h6+fvY9JAxqvXi8y5NAHSQv687OVboS2uZIByzGd45/YxrRHg==}
1348
+ engines: {node: ^14.13.1 || ^16 || >=18}
1349
+ hasBin: true
1350
+ peerDependencies:
1351
+ typescript: ^4.3.5 || ^5.0.0
1352
+ peerDependenciesMeta:
1353
+ typescript:
1354
+ optional: true
1355
+ dependencies:
1356
+ typescript: 4.9.5
1357
+ dev: true
1358
+
1359
+ /tslib@2.6.2:
1360
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
1361
+ dev: false
1362
+
1363
+ /type-fest@3.13.1:
1364
+ resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==}
1365
+ engines: {node: '>=14.16'}
1366
+ dev: false
1367
+
1368
+ /typescript@4.9.5:
1369
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
1370
+ engines: {node: '>=4.2.0'}
1371
+ hasBin: true
1372
+ dev: true
1373
+
1374
+ /update-browserslist-db@1.0.13(browserslist@4.22.1):
1375
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
1376
+ hasBin: true
1377
+ peerDependencies:
1378
+ browserslist: '>= 4.21.0'
1379
+ dependencies:
1380
+ browserslist: 4.22.1
1381
+ escalade: 3.1.1
1382
+ picocolors: 1.0.0
1383
+ dev: true
1384
+
1385
+ /use-callback-ref@1.3.1(@types/react@18.2.38)(react@18.2.0):
1386
+ resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==}
1387
+ engines: {node: '>=10'}
1388
+ peerDependencies:
1389
+ '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
1390
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1391
+ peerDependenciesMeta:
1392
+ '@types/react':
1393
+ optional: true
1394
+ dependencies:
1395
+ '@types/react': 18.2.38
1396
+ react: 18.2.0
1397
+ tslib: 2.6.2
1398
+ dev: false
1399
+
1400
+ /use-composed-ref@1.3.0(react@18.2.0):
1401
+ resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==}
1402
+ peerDependencies:
1403
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1404
+ dependencies:
1405
+ react: 18.2.0
1406
+ dev: false
1407
+
1408
+ /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.2.0):
1409
+ resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
1410
+ peerDependencies:
1411
+ '@types/react': '*'
1412
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1413
+ peerDependenciesMeta:
1414
+ '@types/react':
1415
+ optional: true
1416
+ dependencies:
1417
+ '@types/react': 18.2.38
1418
+ react: 18.2.0
1419
+ dev: false
1420
+
1421
+ /use-latest@1.2.1(@types/react@18.2.38)(react@18.2.0):
1422
+ resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
1423
+ peerDependencies:
1424
+ '@types/react': '*'
1425
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1426
+ peerDependenciesMeta:
1427
+ '@types/react':
1428
+ optional: true
1429
+ dependencies:
1430
+ '@types/react': 18.2.38
1431
+ react: 18.2.0
1432
+ use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.38)(react@18.2.0)
1433
+ dev: false
1434
+
1435
+ /use-sidecar@1.1.2(@types/react@18.2.38)(react@18.2.0):
1436
+ resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
1437
+ engines: {node: '>=10'}
1438
+ peerDependencies:
1439
+ '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
1440
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1441
+ peerDependenciesMeta:
1442
+ '@types/react':
1443
+ optional: true
1444
+ dependencies:
1445
+ '@types/react': 18.2.38
1446
+ detect-node-es: 1.1.0
1447
+ react: 18.2.0
1448
+ tslib: 2.6.2
1449
+ dev: false
1450
+
1451
+ /util-deprecate@1.0.2:
1452
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1453
+ dev: true
1454
+
1455
+ /vite-tsconfig-paths@4.2.3(typescript@4.9.5)(vite@5.0.10):
1456
+ resolution: {integrity: sha512-xVsA2xe6QSlzBujtWF8q2NYexh7PAUYfzJ4C8Axpe/7d2pcERYxuxGgph9F4f0iQO36g5tyGq6eBUYIssdUrVw==}
1457
+ peerDependencies:
1458
+ vite: '*'
1459
+ peerDependenciesMeta:
1460
+ vite:
1461
+ optional: true
1462
+ dependencies:
1463
+ debug: 4.3.4
1464
+ globrex: 0.1.2
1465
+ tsconfck: 2.1.2(typescript@4.9.5)
1466
+ vite: 5.0.10
1467
+ transitivePeerDependencies:
1468
+ - supports-color
1469
+ - typescript
1470
+ dev: true
1471
+
1472
+ /vite@5.0.10:
1473
+ resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==}
1474
+ engines: {node: ^18.0.0 || >=20.0.0}
1475
+ hasBin: true
1476
+ peerDependencies:
1477
+ '@types/node': ^18.0.0 || >=20.0.0
1478
+ less: '*'
1479
+ lightningcss: ^1.21.0
1480
+ sass: '*'
1481
+ stylus: '*'
1482
+ sugarss: '*'
1483
+ terser: ^5.4.0
1484
+ peerDependenciesMeta:
1485
+ '@types/node':
1486
+ optional: true
1487
+ less:
1488
+ optional: true
1489
+ lightningcss:
1490
+ optional: true
1491
+ sass:
1492
+ optional: true
1493
+ stylus:
1494
+ optional: true
1495
+ sugarss:
1496
+ optional: true
1497
+ terser:
1498
+ optional: true
1499
+ dependencies:
1500
+ esbuild: 0.19.11
1501
+ postcss: 8.4.32
1502
+ rollup: 4.9.2
1503
+ optionalDependencies:
1504
+ fsevents: 2.3.3
1505
+ dev: true
1506
+
1507
+ /yallist@3.1.1:
1508
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1509
+ dev: true
frontend/postcss.config.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ 'postcss-preset-mantine': {},
4
+ 'postcss-simple-vars': {
5
+ variables: {
6
+ 'mantine-breakpoint-xs': '36em',
7
+ 'mantine-breakpoint-sm': '48em',
8
+ 'mantine-breakpoint-md': '62em',
9
+ 'mantine-breakpoint-lg': '75em',
10
+ 'mantine-breakpoint-xl': '88em',
11
+ },
12
+ },
13
+ },
14
+ }
frontend/public/favicon.ico ADDED
frontend/public/images/white.jpg ADDED
frontend/src/app.module.css ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ .container {
2
+ width: 80%;
3
+
4
+ @media (min-width: $mantine-breakpoint-md) {
5
+ width: 100%;
6
+ }
7
+ }
frontend/src/app.tsx ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useCallback, useEffect, useRef, useState } from 'react'
2
+ import { Box, Container, Flex, Grid, Loader, TextInput } from '@mantine/core'
3
+
4
+ import styles from './app.module.css'
5
+
6
+ export const App = () => {
7
+ const [inputPrompt, setInputPrompt] = useState('')
8
+ const [lastPrompt, setLastPrompt] = useState('')
9
+ const [images, setImages] = useState(Array(16).fill('images/white.jpg'))
10
+ const [isLoading, setIsLoading] = useState(false)
11
+ const abortControllers = useRef<AbortController[]>([])
12
+
13
+ const calculateEditDistance = (a: string, b: string) => {
14
+ if (a.length === 0) return b.length
15
+ if (b.length === 0) return a.length
16
+
17
+ const matrix = []
18
+
19
+ for (let i = 0; i <= b.length; i++) {
20
+ matrix[i] = [i]
21
+ }
22
+ for (let i = 0; i <= a.length; i++) {
23
+ matrix[0]![i] = i
24
+ }
25
+
26
+ for (let i = 1; i <= b.length; i++) {
27
+ for (let j = 1; j <= a.length; j++) {
28
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
29
+ //@ts-ignore
30
+ matrix[i][j] = matrix[i - 1][j - 1]
31
+ } else {
32
+ //@ts-ignore
33
+ matrix[i][j] = Math.min(
34
+ //@ts-ignore
35
+ matrix[i - 1][j - 1] + 1,
36
+ //@ts-ignore
37
+ Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1),
38
+ )
39
+ }
40
+ }
41
+ }
42
+
43
+ //@ts-ignore
44
+ return matrix[b.length][a.length]
45
+ }
46
+
47
+ const fetchImage = useCallback(
48
+ async (index: number): Promise<void> => {
49
+ abortControllers.current[index]?.abort()
50
+ abortControllers.current[index] = new AbortController()
51
+ const signal = abortControllers.current[index]?.signal
52
+
53
+ setIsLoading(true)
54
+ try {
55
+ const response = await fetch('api/predict', {
56
+ method: 'POST',
57
+ headers: { 'Content-Type': 'application/json' },
58
+ body: JSON.stringify({ prompt: inputPrompt }),
59
+ signal,
60
+ })
61
+ const data = await response.json()
62
+ const imageUrl = `data:image/jpeg;base64,${data.base64_image}`
63
+
64
+ setImages((prevImages) => {
65
+ const newImages = [...prevImages]
66
+ newImages[index] = imageUrl
67
+ return newImages
68
+ })
69
+ } catch (error) {
70
+ if (error instanceof Error && error.name !== 'AbortError') {
71
+ console.error('Error fetching image:', error)
72
+ }
73
+ } finally {
74
+ setIsLoading(false)
75
+ }
76
+ },
77
+ [inputPrompt],
78
+ )
79
+
80
+ const handlePromptChange = (event: React.ChangeEvent<HTMLInputElement>): void => {
81
+ const newPrompt = event.target.value
82
+ setInputPrompt(newPrompt)
83
+ const editDistance = calculateEditDistance(lastPrompt, newPrompt)
84
+
85
+ if (editDistance && editDistance >= 4) {
86
+ setLastPrompt(newPrompt)
87
+ // setImages(Array(16).fill('images/white.jpg'));
88
+ for (let i = 0; i < 16; i++) {
89
+ fetchImage(i)
90
+ }
91
+ }
92
+ }
93
+
94
+ useEffect(() => {
95
+ return () => {
96
+ abortControllers.current.forEach((controller) => controller.abort())
97
+ }
98
+ }, [])
99
+
100
+ return (
101
+ <Box bg="#282c34" mih="100vh" w="100vw" p="lg">
102
+ <Container className={styles.container}>
103
+ <Flex direction="column" justify="center" align="center">
104
+ <Grid w="100%" justify="center" align="center">
105
+ {images.map((image, index) => (
106
+ <Grid.Col
107
+ span={3}
108
+ key={index}
109
+ style={{
110
+ textAlign: 'center',
111
+ }}
112
+ >
113
+ <img
114
+ src={image}
115
+ alt={`Generated ${index}`}
116
+ style={{
117
+ maxWidth: '100%',
118
+ maxHeight: '150px',
119
+ borderRadius: '10px',
120
+ }}
121
+ />
122
+ </Grid.Col>
123
+ ))}
124
+ </Grid>
125
+ <TextInput w="100%" size="lg" placeholder="Enter a prompt" value={inputPrompt} onChange={handlePromptChange} />
126
+ {isLoading && <Loader />}
127
+ </Flex>
128
+ </Container>
129
+ </Box>
130
+ )
131
+ }
frontend/src/main.tsx ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import '@mantine/core/styles.css'
2
+
3
+ import React from 'react'
4
+ import ReactDOM from 'react-dom/client'
5
+ import { MantineProvider } from '@mantine/core'
6
+
7
+ import { App } from './app'
8
+
9
+ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
10
+ <React.StrictMode>
11
+ <MantineProvider>
12
+ <App />
13
+ </MantineProvider>
14
+ </React.StrictMode>,
15
+ )
frontend/src/vite-env.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ /// <reference types="vite/client" />
frontend/tsconfig.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "module": "ESNext",
4
+ "target": "ESNext",
5
+ "lib": [
6
+ "DOM",
7
+ "DOM.Iterable",
8
+ "ESNext"
9
+ ],
10
+ "strict": true,
11
+ "esModuleInterop": true,
12
+ "skipLibCheck": true,
13
+ "forceConsistentCasingInFileNames": true,
14
+ "moduleResolution": "node",
15
+ "allowUnusedLabels": false,
16
+ "allowUnreachableCode": false,
17
+ "noFallthroughCasesInSwitch": true,
18
+ "noImplicitOverride": true,
19
+ "noUncheckedIndexedAccess": true,
20
+ "noUnusedLocals": true,
21
+ "noUnusedParameters": true,
22
+ "checkJs": true,
23
+ "allowSyntheticDefaultImports": true,
24
+ "resolveJsonModule": true,
25
+ "noEmit": true,
26
+ "jsx": "preserve",
27
+ "types": [],
28
+ "paths": {
29
+ "@/*": [
30
+ "./src/*"
31
+ ]
32
+ },
33
+ "incremental": true,
34
+ "isolatedModules": true,
35
+ "allowJs": true
36
+ },
37
+ "include": [
38
+ "src"
39
+ ],
40
+ "exclude": [
41
+ "node_modules"
42
+ ],
43
+ "references": [
44
+ {
45
+ "path": "./tsconfig.node.json"
46
+ }
47
+ ]
48
+ }
frontend/tsconfig.node.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
frontend/vite.config.ts ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ import react from '@vitejs/plugin-react'
2
+ import { defineConfig } from 'vite'
3
+ import tsconfigPaths from 'vite-tsconfig-paths'
4
+
5
+ // https://vitejs.dev/config/
6
+ export default defineConfig({
7
+ plugins: [tsconfigPaths(), react()],
8
+ })
main.py CHANGED
@@ -159,4 +159,4 @@ if __name__ == "__main__":
159
  host=config.host,
160
  port=config.port,
161
  workers=config.workers,
162
- )
 
159
  host=config.host,
160
  port=config.port,
161
  workers=config.workers,
162
+ )
requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
  uvicorn>=0.24.0
2
- fastapi>=0.104.1
 
1
  uvicorn>=0.24.0
2
+ fastapi>=0.104.1
start.sh CHANGED
@@ -8,4 +8,4 @@ else
8
  echo -e "\033[1;31m\nfrontend build failed\n\033[0m" >&2 exit 1
9
  fi
10
  cd ../
11
- python3 main.py --port 7860 --host 0.0.0.0
 
8
  echo -e "\033[1;31m\nfrontend build failed\n\033[0m" >&2 exit 1
9
  fi
10
  cd ../
11
+ python3 main.py --port 7860 --host 0.0.0.0