hamza82 commited on
Commit
1201570
·
1 Parent(s): 1e13799

make this code runable and solve error

Browse files
Dockerfile ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM nikolaik/python-nodejs:python3.11-nodejs21
2
+
3
+ # Install nginx
4
+ USER root
5
+ RUN apt-get -y update && apt-get -y install nginx
6
+
7
+ # Setup directory structure for Nginx
8
+ RUN mkdir -p /var/cache/nginx \
9
+ /var/log/nginx \
10
+ /var/lib/nginx \
11
+ /var/www/html \
12
+ /usr/share/nginx/html
13
+ RUN touch /var/run/nginx.pid
14
+
15
+ # Give permissions to 'pn' user for Nginx and static files directory
16
+ RUN chown -R pn:pn /var/cache/nginx \
17
+ /var/log/nginx \
18
+ /var/lib/nginx \
19
+ /var/run/nginx.pid \
20
+ /var/www/html \
21
+ /usr/share/nginx/html
22
+
23
+ # Switch back to the 'pn' user for installing dependencies and building the app
24
+ USER pn
25
+ ENV HOME=/home/pn \
26
+ PATH=/home/pn/.local/bin:$PATH
27
+
28
+ WORKDIR $HOME/app
29
+
30
+ # Copy the requirements and install Python dependencies
31
+ COPY --chown=pn requirements.txt requirements.txt
32
+ RUN pip install -r requirements.txt
33
+
34
+ # Handling frontend setup: Install dependencies and build
35
+ COPY --chown=pn frontend frontend
36
+ WORKDIR $HOME/app/frontend
37
+ RUN npm install
38
+ RUN npm run build
39
+
40
+ COPY --chown=pn /frontend/dist/. /usr/share/nginx/html
41
+ # Switch back to app directory
42
+ USER pn
43
+ WORKDIR $HOME/app
44
+
45
+ COPY --chown=pn backend backend
46
+
47
+ COPY --chown=pn default.conf /etc/nginx/conf.d/default.conf
48
+
49
+ # Prepare the entrypoint script
50
+ COPY --chown=pn run.sh run.sh
51
+
52
+ RUN chmod +x run.sh
53
+
54
+ # Expose the port 8080
55
+ EXPOSE 7860
56
+
57
+ CMD ["bash", "run.sh"]
backend/.env ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ OPENAI_API_KEY=''
2
+ CHAINLIT_CUSTOM_AUTH=true
3
+ CHAINLIT_AUTH_SECRET="aami"
backend/app.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from openai import AsyncOpenAI
3
+
4
+ from fastapi.responses import JSONResponse
5
+
6
+ from chainlit.auth import create_jwt
7
+ from chainlit.server import app
8
+ import chainlit as cl
9
+
10
+
11
+ client = AsyncOpenAI(api_key=os.environ["OPENAI_API_KEY"])
12
+
13
+ settings = {
14
+ "model": "gpt-3.5-turbo",
15
+ "temperature": 0.7,
16
+ "max_tokens": 500,
17
+ "top_p": 1,
18
+ "frequency_penalty": 0,
19
+ "presence_penalty": 0,
20
+ }
21
+
22
+ @app.get("/custom-auth")
23
+ async def custom_auth():
24
+ # Verify the user's identity with custom logic.
25
+ token = create_jwt(cl.User(identifier="Test User"))
26
+ return JSONResponse({"token": token})
27
+
28
+ @cl.on_chat_start
29
+ async def on_chat_start():
30
+ cl.user_session.set(
31
+ "message_history",
32
+ [{"role": "system", "content": "You are a helpful assistant."}],
33
+ )
34
+ await cl.Message(content="Connected to Chainlit!").send()
35
+
36
+
37
+ @cl.on_message
38
+ async def on_message(message: cl.Message):
39
+ message_history = cl.user_session.get("message_history")
40
+ message_history.append({"role": "user", "content": message.content})
41
+
42
+ msg = cl.Message(content="")
43
+ await msg.send()
44
+
45
+ stream = await client.chat.completions.create(
46
+ messages=message_history, stream=True, **settings
47
+ )
48
+
49
+ async for part in stream:
50
+ if token := part.choices[0].delta.content or "":
51
+ await msg.stream_token(token)
52
+
53
+ message_history.append({"role": "assistant", "content": msg.content})
54
+ await msg.update()
backend/chainlit.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Welcome to Chainlit! 🚀🤖
2
+
3
+ Hi there, Developer! 👋 We're excited to have you on board. Chainlit is a powerful tool designed to help you prototype, debug and share applications built on top of LLMs.
4
+
5
+ ## Useful Links 🔗
6
+
7
+ - **Documentation:** Get started with our comprehensive [Chainlit Documentation](https://docs.chainlit.io) 📚
8
+ - **Discord Community:** Join our friendly [Chainlit Discord](https://discord.gg/k73SQ3FyUh) to ask questions, share your projects, and connect with other developers! 💬
9
+
10
+ We can't wait to see what you create with Chainlit! Happy coding! 💻😊
11
+
12
+ ## Welcome screen
13
+
14
+ To modify the welcome screen, edit the `chainlit.md` file at the root of your project. If you do not want a welcome screen, just leave this file empty.
default.conf ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ server {
3
+ listen 80;
4
+ server_name localhost;
5
+
6
+ root /usr/share/nginx/html;
7
+ index index.html index.htm;
8
+ location / {
9
+ try_files $uri $uri/ /index.html;
10
+ }
11
+
12
+ location /custom-auth {
13
+ proxy_pass http://localhost:8000;
14
+ proxy_http_version 1.1;
15
+ proxy_set_header Upgrade $http_upgrade;
16
+ proxy_set_header Connection 'upgrade';
17
+ proxy_set_header Host $host;
18
+ proxy_cache_bypass $http_upgrade;
19
+ }
20
+
21
+
22
+
23
+ }
frontend/README.md ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # React + TypeScript + Vite
2
+
3
+ This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4
+
5
+ Currently, two official plugins are available:
6
+
7
+ - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
8
+ - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9
+
10
+ ## Expanding the ESLint configuration
11
+
12
+ If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
13
+
14
+ - Configure the top-level `parserOptions` property like this:
15
+
16
+ ```js
17
+ parserOptions: {
18
+ ecmaVersion: 'latest',
19
+ sourceType: 'module',
20
+ project: ['./tsconfig.json', './tsconfig.node.json'],
21
+ tsconfigRootDir: __dirname,
22
+ },
23
+ ```
24
+
25
+ - Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
26
+ - Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
27
+ - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list
frontend/components.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "src/index.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true
11
+ },
12
+ "aliases": {
13
+ "components": "@/components",
14
+ "utils": "@/lib/utils"
15
+ }
16
+ }
frontend/index.html ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Custom frontend</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="./src/main.tsx"></script>
12
+
13
+
14
+ </body>
15
+ </html>
frontend/package-lock.json ADDED
The diff for this file is too large to render. See raw diff
 
frontend/package.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "vite-project",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "tsc && vite build",
9
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
10
+ "preview": "vite preview"
11
+ },
12
+ "dependencies": {
13
+ "@chainlit/react-client": "0.0.2",
14
+ "@radix-ui/react-slot": "^1.0.2",
15
+ "class-variance-authority": "^0.7.0",
16
+ "clsx": "^2.0.0",
17
+ "lucide-react": "^0.292.0",
18
+ "react": "^18.2.0",
19
+ "react-dom": "^18.2.0",
20
+ "recoil": "^0.7.7",
21
+ "tailwind-merge": "^2.0.0",
22
+ "tailwindcss-animate": "^1.0.7",
23
+ "uuid": "^9.0.1"
24
+ },
25
+ "devDependencies": {
26
+ "@types/node": "^20.9.0",
27
+ "@types/react": "^18.2.15",
28
+ "@types/react-dom": "^18.2.7",
29
+ "@types/uuid": "^9.0.7",
30
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
31
+ "@typescript-eslint/parser": "^6.0.0",
32
+ "@vitejs/plugin-react-swc": "^3.3.2",
33
+ "autoprefixer": "^10.4.16",
34
+ "eslint": "^8.45.0",
35
+ "eslint-plugin-react-hooks": "^4.6.0",
36
+ "eslint-plugin-react-refresh": "^0.4.3",
37
+ "postcss": "^8.4.31",
38
+ "tailwindcss": "^3.3.5",
39
+ "typescript": "^5.0.2",
40
+ "vite": "^4.4.5"
41
+ }
42
+ }
frontend/pnpm-lock.yaml ADDED
@@ -0,0 +1,2055 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '6.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ dependencies:
8
+ '@chainlit/react-client':
9
+ specifier: ^0.0.1
10
+ version: 0.0.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(recoil@0.7.7)
11
+ '@radix-ui/react-slot':
12
+ specifier: ^1.0.2
13
+ version: 1.0.2(@types/react@18.2.37)(react@18.2.0)
14
+ class-variance-authority:
15
+ specifier: ^0.7.0
16
+ version: 0.7.0
17
+ clsx:
18
+ specifier: ^2.0.0
19
+ version: 2.0.0
20
+ lucide-react:
21
+ specifier: ^0.292.0
22
+ version: 0.292.0(react@18.2.0)
23
+ react:
24
+ specifier: ^18.2.0
25
+ version: 18.2.0
26
+ react-dom:
27
+ specifier: ^18.2.0
28
+ version: 18.2.0(react@18.2.0)
29
+ tailwind-merge:
30
+ specifier: ^2.0.0
31
+ version: 2.0.0
32
+ tailwindcss-animate:
33
+ specifier: ^1.0.7
34
+ version: 1.0.7(tailwindcss@3.3.5)
35
+
36
+ devDependencies:
37
+ '@types/node':
38
+ specifier: ^20.9.0
39
+ version: 20.9.0
40
+ '@types/react':
41
+ specifier: ^18.2.15
42
+ version: 18.2.37
43
+ '@types/react-dom':
44
+ specifier: ^18.2.7
45
+ version: 18.2.15
46
+ '@typescript-eslint/eslint-plugin':
47
+ specifier: ^6.0.0
48
+ version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2)
49
+ '@typescript-eslint/parser':
50
+ specifier: ^6.0.0
51
+ version: 6.11.0(eslint@8.53.0)(typescript@5.2.2)
52
+ '@vitejs/plugin-react-swc':
53
+ specifier: ^3.3.2
54
+ version: 3.5.0(vite@4.5.0)
55
+ autoprefixer:
56
+ specifier: ^10.4.16
57
+ version: 10.4.16(postcss@8.4.31)
58
+ eslint:
59
+ specifier: ^8.45.0
60
+ version: 8.53.0
61
+ eslint-plugin-react-hooks:
62
+ specifier: ^4.6.0
63
+ version: 4.6.0(eslint@8.53.0)
64
+ eslint-plugin-react-refresh:
65
+ specifier: ^0.4.3
66
+ version: 0.4.4(eslint@8.53.0)
67
+ postcss:
68
+ specifier: ^8.4.31
69
+ version: 8.4.31
70
+ tailwindcss:
71
+ specifier: ^3.3.5
72
+ version: 3.3.5
73
+ typescript:
74
+ specifier: ^5.0.2
75
+ version: 5.2.2
76
+ vite:
77
+ specifier: ^4.4.5
78
+ version: 4.5.0(@types/node@20.9.0)
79
+
80
+ packages:
81
+
82
+ /@aashutoshrathi/word-wrap@1.2.6:
83
+ resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
84
+ engines: {node: '>=0.10.0'}
85
+ dev: true
86
+
87
+ /@alloc/quick-lru@5.2.0:
88
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
89
+ engines: {node: '>=10'}
90
+
91
+ /@babel/runtime@7.23.2:
92
+ resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==}
93
+ engines: {node: '>=6.9.0'}
94
+ dependencies:
95
+ regenerator-runtime: 0.14.0
96
+ dev: false
97
+
98
+ /@chainlit/react-client@0.0.1(@types/react@18.2.37)(react-dom@18.2.0)(react@18.2.0)(recoil@0.7.7):
99
+ resolution: {integrity: sha512-iKle82o4jXnxc/MPsVdTq0kGYFm46Z5q0r9R5lIDVOuGXJes9IgzsNVaBUv4Ur//VIJvJ6dVWoufvDUWsLreaw==}
100
+ peerDependencies:
101
+ '@types/react': ^18.2.0
102
+ react: ^18.2.0
103
+ react-dom: ^18.2.0
104
+ recoil: ^0.7.7
105
+ dependencies:
106
+ '@types/react': 18.2.37
107
+ jwt-decode: 3.1.2
108
+ lodash: 4.17.21
109
+ react: 18.2.0
110
+ react-dom: 18.2.0(react@18.2.0)
111
+ recoil: 0.7.7(react-dom@18.2.0)(react@18.2.0)
112
+ socket.io-client: 4.7.2
113
+ swr: 2.2.4(react@18.2.0)
114
+ uuid: 9.0.1
115
+ transitivePeerDependencies:
116
+ - bufferutil
117
+ - supports-color
118
+ - utf-8-validate
119
+ dev: false
120
+
121
+ /@esbuild/android-arm64@0.18.20:
122
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
123
+ engines: {node: '>=12'}
124
+ cpu: [arm64]
125
+ os: [android]
126
+ requiresBuild: true
127
+ dev: true
128
+ optional: true
129
+
130
+ /@esbuild/android-arm@0.18.20:
131
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
132
+ engines: {node: '>=12'}
133
+ cpu: [arm]
134
+ os: [android]
135
+ requiresBuild: true
136
+ dev: true
137
+ optional: true
138
+
139
+ /@esbuild/android-x64@0.18.20:
140
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
141
+ engines: {node: '>=12'}
142
+ cpu: [x64]
143
+ os: [android]
144
+ requiresBuild: true
145
+ dev: true
146
+ optional: true
147
+
148
+ /@esbuild/darwin-arm64@0.18.20:
149
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
150
+ engines: {node: '>=12'}
151
+ cpu: [arm64]
152
+ os: [darwin]
153
+ requiresBuild: true
154
+ dev: true
155
+ optional: true
156
+
157
+ /@esbuild/darwin-x64@0.18.20:
158
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
159
+ engines: {node: '>=12'}
160
+ cpu: [x64]
161
+ os: [darwin]
162
+ requiresBuild: true
163
+ dev: true
164
+ optional: true
165
+
166
+ /@esbuild/freebsd-arm64@0.18.20:
167
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
168
+ engines: {node: '>=12'}
169
+ cpu: [arm64]
170
+ os: [freebsd]
171
+ requiresBuild: true
172
+ dev: true
173
+ optional: true
174
+
175
+ /@esbuild/freebsd-x64@0.18.20:
176
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
177
+ engines: {node: '>=12'}
178
+ cpu: [x64]
179
+ os: [freebsd]
180
+ requiresBuild: true
181
+ dev: true
182
+ optional: true
183
+
184
+ /@esbuild/linux-arm64@0.18.20:
185
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
186
+ engines: {node: '>=12'}
187
+ cpu: [arm64]
188
+ os: [linux]
189
+ requiresBuild: true
190
+ dev: true
191
+ optional: true
192
+
193
+ /@esbuild/linux-arm@0.18.20:
194
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
195
+ engines: {node: '>=12'}
196
+ cpu: [arm]
197
+ os: [linux]
198
+ requiresBuild: true
199
+ dev: true
200
+ optional: true
201
+
202
+ /@esbuild/linux-ia32@0.18.20:
203
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
204
+ engines: {node: '>=12'}
205
+ cpu: [ia32]
206
+ os: [linux]
207
+ requiresBuild: true
208
+ dev: true
209
+ optional: true
210
+
211
+ /@esbuild/linux-loong64@0.18.20:
212
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
213
+ engines: {node: '>=12'}
214
+ cpu: [loong64]
215
+ os: [linux]
216
+ requiresBuild: true
217
+ dev: true
218
+ optional: true
219
+
220
+ /@esbuild/linux-mips64el@0.18.20:
221
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
222
+ engines: {node: '>=12'}
223
+ cpu: [mips64el]
224
+ os: [linux]
225
+ requiresBuild: true
226
+ dev: true
227
+ optional: true
228
+
229
+ /@esbuild/linux-ppc64@0.18.20:
230
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
231
+ engines: {node: '>=12'}
232
+ cpu: [ppc64]
233
+ os: [linux]
234
+ requiresBuild: true
235
+ dev: true
236
+ optional: true
237
+
238
+ /@esbuild/linux-riscv64@0.18.20:
239
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
240
+ engines: {node: '>=12'}
241
+ cpu: [riscv64]
242
+ os: [linux]
243
+ requiresBuild: true
244
+ dev: true
245
+ optional: true
246
+
247
+ /@esbuild/linux-s390x@0.18.20:
248
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
249
+ engines: {node: '>=12'}
250
+ cpu: [s390x]
251
+ os: [linux]
252
+ requiresBuild: true
253
+ dev: true
254
+ optional: true
255
+
256
+ /@esbuild/linux-x64@0.18.20:
257
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
258
+ engines: {node: '>=12'}
259
+ cpu: [x64]
260
+ os: [linux]
261
+ requiresBuild: true
262
+ dev: true
263
+ optional: true
264
+
265
+ /@esbuild/netbsd-x64@0.18.20:
266
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
267
+ engines: {node: '>=12'}
268
+ cpu: [x64]
269
+ os: [netbsd]
270
+ requiresBuild: true
271
+ dev: true
272
+ optional: true
273
+
274
+ /@esbuild/openbsd-x64@0.18.20:
275
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
276
+ engines: {node: '>=12'}
277
+ cpu: [x64]
278
+ os: [openbsd]
279
+ requiresBuild: true
280
+ dev: true
281
+ optional: true
282
+
283
+ /@esbuild/sunos-x64@0.18.20:
284
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
285
+ engines: {node: '>=12'}
286
+ cpu: [x64]
287
+ os: [sunos]
288
+ requiresBuild: true
289
+ dev: true
290
+ optional: true
291
+
292
+ /@esbuild/win32-arm64@0.18.20:
293
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
294
+ engines: {node: '>=12'}
295
+ cpu: [arm64]
296
+ os: [win32]
297
+ requiresBuild: true
298
+ dev: true
299
+ optional: true
300
+
301
+ /@esbuild/win32-ia32@0.18.20:
302
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
303
+ engines: {node: '>=12'}
304
+ cpu: [ia32]
305
+ os: [win32]
306
+ requiresBuild: true
307
+ dev: true
308
+ optional: true
309
+
310
+ /@esbuild/win32-x64@0.18.20:
311
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
312
+ engines: {node: '>=12'}
313
+ cpu: [x64]
314
+ os: [win32]
315
+ requiresBuild: true
316
+ dev: true
317
+ optional: true
318
+
319
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.53.0):
320
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
321
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
322
+ peerDependencies:
323
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
324
+ dependencies:
325
+ eslint: 8.53.0
326
+ eslint-visitor-keys: 3.4.3
327
+ dev: true
328
+
329
+ /@eslint-community/regexpp@4.10.0:
330
+ resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
331
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
332
+ dev: true
333
+
334
+ /@eslint/eslintrc@2.1.3:
335
+ resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==}
336
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
337
+ dependencies:
338
+ ajv: 6.12.6
339
+ debug: 4.3.4
340
+ espree: 9.6.1
341
+ globals: 13.23.0
342
+ ignore: 5.3.0
343
+ import-fresh: 3.3.0
344
+ js-yaml: 4.1.0
345
+ minimatch: 3.1.2
346
+ strip-json-comments: 3.1.1
347
+ transitivePeerDependencies:
348
+ - supports-color
349
+ dev: true
350
+
351
+ /@eslint/js@8.53.0:
352
+ resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==}
353
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
354
+ dev: true
355
+
356
+ /@humanwhocodes/config-array@0.11.13:
357
+ resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
358
+ engines: {node: '>=10.10.0'}
359
+ dependencies:
360
+ '@humanwhocodes/object-schema': 2.0.1
361
+ debug: 4.3.4
362
+ minimatch: 3.1.2
363
+ transitivePeerDependencies:
364
+ - supports-color
365
+ dev: true
366
+
367
+ /@humanwhocodes/module-importer@1.0.1:
368
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
369
+ engines: {node: '>=12.22'}
370
+ dev: true
371
+
372
+ /@humanwhocodes/object-schema@2.0.1:
373
+ resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
374
+ dev: true
375
+
376
+ /@jridgewell/gen-mapping@0.3.3:
377
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
378
+ engines: {node: '>=6.0.0'}
379
+ dependencies:
380
+ '@jridgewell/set-array': 1.1.2
381
+ '@jridgewell/sourcemap-codec': 1.4.15
382
+ '@jridgewell/trace-mapping': 0.3.20
383
+
384
+ /@jridgewell/resolve-uri@3.1.1:
385
+ resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
386
+ engines: {node: '>=6.0.0'}
387
+
388
+ /@jridgewell/set-array@1.1.2:
389
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
390
+ engines: {node: '>=6.0.0'}
391
+
392
+ /@jridgewell/sourcemap-codec@1.4.15:
393
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
394
+
395
+ /@jridgewell/trace-mapping@0.3.20:
396
+ resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
397
+ dependencies:
398
+ '@jridgewell/resolve-uri': 3.1.1
399
+ '@jridgewell/sourcemap-codec': 1.4.15
400
+
401
+ /@nodelib/fs.scandir@2.1.5:
402
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
403
+ engines: {node: '>= 8'}
404
+ dependencies:
405
+ '@nodelib/fs.stat': 2.0.5
406
+ run-parallel: 1.2.0
407
+
408
+ /@nodelib/fs.stat@2.0.5:
409
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
410
+ engines: {node: '>= 8'}
411
+
412
+ /@nodelib/fs.walk@1.2.8:
413
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
414
+ engines: {node: '>= 8'}
415
+ dependencies:
416
+ '@nodelib/fs.scandir': 2.1.5
417
+ fastq: 1.15.0
418
+
419
+ /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.37)(react@18.2.0):
420
+ resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==}
421
+ peerDependencies:
422
+ '@types/react': '*'
423
+ react: ^16.8 || ^17.0 || ^18.0
424
+ peerDependenciesMeta:
425
+ '@types/react':
426
+ optional: true
427
+ dependencies:
428
+ '@babel/runtime': 7.23.2
429
+ '@types/react': 18.2.37
430
+ react: 18.2.0
431
+ dev: false
432
+
433
+ /@radix-ui/react-slot@1.0.2(@types/react@18.2.37)(react@18.2.0):
434
+ resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==}
435
+ peerDependencies:
436
+ '@types/react': '*'
437
+ react: ^16.8 || ^17.0 || ^18.0
438
+ peerDependenciesMeta:
439
+ '@types/react':
440
+ optional: true
441
+ dependencies:
442
+ '@babel/runtime': 7.23.2
443
+ '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.37)(react@18.2.0)
444
+ '@types/react': 18.2.37
445
+ react: 18.2.0
446
+ dev: false
447
+
448
+ /@socket.io/component-emitter@3.1.0:
449
+ resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==}
450
+ dev: false
451
+
452
+ /@swc/core-darwin-arm64@1.3.96:
453
+ resolution: {integrity: sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==}
454
+ engines: {node: '>=10'}
455
+ cpu: [arm64]
456
+ os: [darwin]
457
+ requiresBuild: true
458
+ dev: true
459
+ optional: true
460
+
461
+ /@swc/core-darwin-x64@1.3.96:
462
+ resolution: {integrity: sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ==}
463
+ engines: {node: '>=10'}
464
+ cpu: [x64]
465
+ os: [darwin]
466
+ requiresBuild: true
467
+ dev: true
468
+ optional: true
469
+
470
+ /@swc/core-linux-arm-gnueabihf@1.3.96:
471
+ resolution: {integrity: sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg==}
472
+ engines: {node: '>=10'}
473
+ cpu: [arm]
474
+ os: [linux]
475
+ requiresBuild: true
476
+ dev: true
477
+ optional: true
478
+
479
+ /@swc/core-linux-arm64-gnu@1.3.96:
480
+ resolution: {integrity: sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw==}
481
+ engines: {node: '>=10'}
482
+ cpu: [arm64]
483
+ os: [linux]
484
+ requiresBuild: true
485
+ dev: true
486
+ optional: true
487
+
488
+ /@swc/core-linux-arm64-musl@1.3.96:
489
+ resolution: {integrity: sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ==}
490
+ engines: {node: '>=10'}
491
+ cpu: [arm64]
492
+ os: [linux]
493
+ requiresBuild: true
494
+ dev: true
495
+ optional: true
496
+
497
+ /@swc/core-linux-x64-gnu@1.3.96:
498
+ resolution: {integrity: sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ==}
499
+ engines: {node: '>=10'}
500
+ cpu: [x64]
501
+ os: [linux]
502
+ requiresBuild: true
503
+ dev: true
504
+ optional: true
505
+
506
+ /@swc/core-linux-x64-musl@1.3.96:
507
+ resolution: {integrity: sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg==}
508
+ engines: {node: '>=10'}
509
+ cpu: [x64]
510
+ os: [linux]
511
+ requiresBuild: true
512
+ dev: true
513
+ optional: true
514
+
515
+ /@swc/core-win32-arm64-msvc@1.3.96:
516
+ resolution: {integrity: sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg==}
517
+ engines: {node: '>=10'}
518
+ cpu: [arm64]
519
+ os: [win32]
520
+ requiresBuild: true
521
+ dev: true
522
+ optional: true
523
+
524
+ /@swc/core-win32-ia32-msvc@1.3.96:
525
+ resolution: {integrity: sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw==}
526
+ engines: {node: '>=10'}
527
+ cpu: [ia32]
528
+ os: [win32]
529
+ requiresBuild: true
530
+ dev: true
531
+ optional: true
532
+
533
+ /@swc/core-win32-x64-msvc@1.3.96:
534
+ resolution: {integrity: sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g==}
535
+ engines: {node: '>=10'}
536
+ cpu: [x64]
537
+ os: [win32]
538
+ requiresBuild: true
539
+ dev: true
540
+ optional: true
541
+
542
+ /@swc/core@1.3.96:
543
+ resolution: {integrity: sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ==}
544
+ engines: {node: '>=10'}
545
+ requiresBuild: true
546
+ peerDependencies:
547
+ '@swc/helpers': ^0.5.0
548
+ peerDependenciesMeta:
549
+ '@swc/helpers':
550
+ optional: true
551
+ dependencies:
552
+ '@swc/counter': 0.1.2
553
+ '@swc/types': 0.1.5
554
+ optionalDependencies:
555
+ '@swc/core-darwin-arm64': 1.3.96
556
+ '@swc/core-darwin-x64': 1.3.96
557
+ '@swc/core-linux-arm-gnueabihf': 1.3.96
558
+ '@swc/core-linux-arm64-gnu': 1.3.96
559
+ '@swc/core-linux-arm64-musl': 1.3.96
560
+ '@swc/core-linux-x64-gnu': 1.3.96
561
+ '@swc/core-linux-x64-musl': 1.3.96
562
+ '@swc/core-win32-arm64-msvc': 1.3.96
563
+ '@swc/core-win32-ia32-msvc': 1.3.96
564
+ '@swc/core-win32-x64-msvc': 1.3.96
565
+ dev: true
566
+
567
+ /@swc/counter@0.1.2:
568
+ resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==}
569
+ dev: true
570
+
571
+ /@swc/types@0.1.5:
572
+ resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==}
573
+ dev: true
574
+
575
+ /@types/json-schema@7.0.15:
576
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
577
+ dev: true
578
+
579
+ /@types/node@20.9.0:
580
+ resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==}
581
+ dependencies:
582
+ undici-types: 5.26.5
583
+ dev: true
584
+
585
+ /@types/prop-types@15.7.10:
586
+ resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==}
587
+
588
+ /@types/react-dom@18.2.15:
589
+ resolution: {integrity: sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==}
590
+ dependencies:
591
+ '@types/react': 18.2.37
592
+ dev: true
593
+
594
+ /@types/react@18.2.37:
595
+ resolution: {integrity: sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==}
596
+ dependencies:
597
+ '@types/prop-types': 15.7.10
598
+ '@types/scheduler': 0.16.6
599
+ csstype: 3.1.2
600
+
601
+ /@types/scheduler@0.16.6:
602
+ resolution: {integrity: sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==}
603
+
604
+ /@types/semver@7.5.5:
605
+ resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==}
606
+ dev: true
607
+
608
+ /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2):
609
+ resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==}
610
+ engines: {node: ^16.0.0 || >=18.0.0}
611
+ peerDependencies:
612
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
613
+ eslint: ^7.0.0 || ^8.0.0
614
+ typescript: '*'
615
+ peerDependenciesMeta:
616
+ typescript:
617
+ optional: true
618
+ dependencies:
619
+ '@eslint-community/regexpp': 4.10.0
620
+ '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2)
621
+ '@typescript-eslint/scope-manager': 6.11.0
622
+ '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2)
623
+ '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2)
624
+ '@typescript-eslint/visitor-keys': 6.11.0
625
+ debug: 4.3.4
626
+ eslint: 8.53.0
627
+ graphemer: 1.4.0
628
+ ignore: 5.3.0
629
+ natural-compare: 1.4.0
630
+ semver: 7.5.4
631
+ ts-api-utils: 1.0.3(typescript@5.2.2)
632
+ typescript: 5.2.2
633
+ transitivePeerDependencies:
634
+ - supports-color
635
+ dev: true
636
+
637
+ /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2):
638
+ resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==}
639
+ engines: {node: ^16.0.0 || >=18.0.0}
640
+ peerDependencies:
641
+ eslint: ^7.0.0 || ^8.0.0
642
+ typescript: '*'
643
+ peerDependenciesMeta:
644
+ typescript:
645
+ optional: true
646
+ dependencies:
647
+ '@typescript-eslint/scope-manager': 6.11.0
648
+ '@typescript-eslint/types': 6.11.0
649
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
650
+ '@typescript-eslint/visitor-keys': 6.11.0
651
+ debug: 4.3.4
652
+ eslint: 8.53.0
653
+ typescript: 5.2.2
654
+ transitivePeerDependencies:
655
+ - supports-color
656
+ dev: true
657
+
658
+ /@typescript-eslint/scope-manager@6.11.0:
659
+ resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==}
660
+ engines: {node: ^16.0.0 || >=18.0.0}
661
+ dependencies:
662
+ '@typescript-eslint/types': 6.11.0
663
+ '@typescript-eslint/visitor-keys': 6.11.0
664
+ dev: true
665
+
666
+ /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2):
667
+ resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==}
668
+ engines: {node: ^16.0.0 || >=18.0.0}
669
+ peerDependencies:
670
+ eslint: ^7.0.0 || ^8.0.0
671
+ typescript: '*'
672
+ peerDependenciesMeta:
673
+ typescript:
674
+ optional: true
675
+ dependencies:
676
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
677
+ '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2)
678
+ debug: 4.3.4
679
+ eslint: 8.53.0
680
+ ts-api-utils: 1.0.3(typescript@5.2.2)
681
+ typescript: 5.2.2
682
+ transitivePeerDependencies:
683
+ - supports-color
684
+ dev: true
685
+
686
+ /@typescript-eslint/types@6.11.0:
687
+ resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==}
688
+ engines: {node: ^16.0.0 || >=18.0.0}
689
+ dev: true
690
+
691
+ /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2):
692
+ resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==}
693
+ engines: {node: ^16.0.0 || >=18.0.0}
694
+ peerDependencies:
695
+ typescript: '*'
696
+ peerDependenciesMeta:
697
+ typescript:
698
+ optional: true
699
+ dependencies:
700
+ '@typescript-eslint/types': 6.11.0
701
+ '@typescript-eslint/visitor-keys': 6.11.0
702
+ debug: 4.3.4
703
+ globby: 11.1.0
704
+ is-glob: 4.0.3
705
+ semver: 7.5.4
706
+ ts-api-utils: 1.0.3(typescript@5.2.2)
707
+ typescript: 5.2.2
708
+ transitivePeerDependencies:
709
+ - supports-color
710
+ dev: true
711
+
712
+ /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2):
713
+ resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==}
714
+ engines: {node: ^16.0.0 || >=18.0.0}
715
+ peerDependencies:
716
+ eslint: ^7.0.0 || ^8.0.0
717
+ dependencies:
718
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
719
+ '@types/json-schema': 7.0.15
720
+ '@types/semver': 7.5.5
721
+ '@typescript-eslint/scope-manager': 6.11.0
722
+ '@typescript-eslint/types': 6.11.0
723
+ '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2)
724
+ eslint: 8.53.0
725
+ semver: 7.5.4
726
+ transitivePeerDependencies:
727
+ - supports-color
728
+ - typescript
729
+ dev: true
730
+
731
+ /@typescript-eslint/visitor-keys@6.11.0:
732
+ resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==}
733
+ engines: {node: ^16.0.0 || >=18.0.0}
734
+ dependencies:
735
+ '@typescript-eslint/types': 6.11.0
736
+ eslint-visitor-keys: 3.4.3
737
+ dev: true
738
+
739
+ /@ungap/structured-clone@1.2.0:
740
+ resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
741
+ dev: true
742
+
743
+ /@vitejs/plugin-react-swc@3.5.0(vite@4.5.0):
744
+ resolution: {integrity: sha512-1PrOvAaDpqlCV+Up8RkAh9qaiUjoDUcjtttyhXDKw53XA6Ve16SOp6cCOpRs8Dj8DqUQs6eTW5YkLcLJjrXAig==}
745
+ peerDependencies:
746
+ vite: ^4 || ^5
747
+ dependencies:
748
+ '@swc/core': 1.3.96
749
+ vite: 4.5.0(@types/node@20.9.0)
750
+ transitivePeerDependencies:
751
+ - '@swc/helpers'
752
+ dev: true
753
+
754
+ /acorn-jsx@5.3.2(acorn@8.11.2):
755
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
756
+ peerDependencies:
757
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
758
+ dependencies:
759
+ acorn: 8.11.2
760
+ dev: true
761
+
762
+ /acorn@8.11.2:
763
+ resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
764
+ engines: {node: '>=0.4.0'}
765
+ hasBin: true
766
+ dev: true
767
+
768
+ /ajv@6.12.6:
769
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
770
+ dependencies:
771
+ fast-deep-equal: 3.1.3
772
+ fast-json-stable-stringify: 2.1.0
773
+ json-schema-traverse: 0.4.1
774
+ uri-js: 4.4.1
775
+ dev: true
776
+
777
+ /ansi-regex@5.0.1:
778
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
779
+ engines: {node: '>=8'}
780
+ dev: true
781
+
782
+ /ansi-styles@4.3.0:
783
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
784
+ engines: {node: '>=8'}
785
+ dependencies:
786
+ color-convert: 2.0.1
787
+ dev: true
788
+
789
+ /any-promise@1.3.0:
790
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
791
+
792
+ /anymatch@3.1.3:
793
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
794
+ engines: {node: '>= 8'}
795
+ dependencies:
796
+ normalize-path: 3.0.0
797
+ picomatch: 2.3.1
798
+
799
+ /arg@5.0.2:
800
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
801
+
802
+ /argparse@2.0.1:
803
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
804
+ dev: true
805
+
806
+ /array-union@2.1.0:
807
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
808
+ engines: {node: '>=8'}
809
+ dev: true
810
+
811
+ /autoprefixer@10.4.16(postcss@8.4.31):
812
+ resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
813
+ engines: {node: ^10 || ^12 || >=14}
814
+ hasBin: true
815
+ peerDependencies:
816
+ postcss: ^8.1.0
817
+ dependencies:
818
+ browserslist: 4.22.1
819
+ caniuse-lite: 1.0.30001562
820
+ fraction.js: 4.3.7
821
+ normalize-range: 0.1.2
822
+ picocolors: 1.0.0
823
+ postcss: 8.4.31
824
+ postcss-value-parser: 4.2.0
825
+ dev: true
826
+
827
+ /balanced-match@1.0.2:
828
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
829
+
830
+ /binary-extensions@2.2.0:
831
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
832
+ engines: {node: '>=8'}
833
+
834
+ /brace-expansion@1.1.11:
835
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
836
+ dependencies:
837
+ balanced-match: 1.0.2
838
+ concat-map: 0.0.1
839
+
840
+ /braces@3.0.2:
841
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
842
+ engines: {node: '>=8'}
843
+ dependencies:
844
+ fill-range: 7.0.1
845
+
846
+ /browserslist@4.22.1:
847
+ resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
848
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
849
+ hasBin: true
850
+ dependencies:
851
+ caniuse-lite: 1.0.30001562
852
+ electron-to-chromium: 1.4.585
853
+ node-releases: 2.0.13
854
+ update-browserslist-db: 1.0.13(browserslist@4.22.1)
855
+ dev: true
856
+
857
+ /callsites@3.1.0:
858
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
859
+ engines: {node: '>=6'}
860
+ dev: true
861
+
862
+ /camelcase-css@2.0.1:
863
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
864
+ engines: {node: '>= 6'}
865
+
866
+ /caniuse-lite@1.0.30001562:
867
+ resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==}
868
+ dev: true
869
+
870
+ /chalk@4.1.2:
871
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
872
+ engines: {node: '>=10'}
873
+ dependencies:
874
+ ansi-styles: 4.3.0
875
+ supports-color: 7.2.0
876
+ dev: true
877
+
878
+ /chokidar@3.5.3:
879
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
880
+ engines: {node: '>= 8.10.0'}
881
+ dependencies:
882
+ anymatch: 3.1.3
883
+ braces: 3.0.2
884
+ glob-parent: 5.1.2
885
+ is-binary-path: 2.1.0
886
+ is-glob: 4.0.3
887
+ normalize-path: 3.0.0
888
+ readdirp: 3.6.0
889
+ optionalDependencies:
890
+ fsevents: 2.3.3
891
+
892
+ /class-variance-authority@0.7.0:
893
+ resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
894
+ dependencies:
895
+ clsx: 2.0.0
896
+ dev: false
897
+
898
+ /client-only@0.0.1:
899
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
900
+ dev: false
901
+
902
+ /clsx@2.0.0:
903
+ resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
904
+ engines: {node: '>=6'}
905
+ dev: false
906
+
907
+ /color-convert@2.0.1:
908
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
909
+ engines: {node: '>=7.0.0'}
910
+ dependencies:
911
+ color-name: 1.1.4
912
+ dev: true
913
+
914
+ /color-name@1.1.4:
915
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
916
+ dev: true
917
+
918
+ /commander@4.1.1:
919
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
920
+ engines: {node: '>= 6'}
921
+
922
+ /concat-map@0.0.1:
923
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
924
+
925
+ /cross-spawn@7.0.3:
926
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
927
+ engines: {node: '>= 8'}
928
+ dependencies:
929
+ path-key: 3.1.1
930
+ shebang-command: 2.0.0
931
+ which: 2.0.2
932
+ dev: true
933
+
934
+ /cssesc@3.0.0:
935
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
936
+ engines: {node: '>=4'}
937
+ hasBin: true
938
+
939
+ /csstype@3.1.2:
940
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
941
+
942
+ /debug@4.3.4:
943
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
944
+ engines: {node: '>=6.0'}
945
+ peerDependencies:
946
+ supports-color: '*'
947
+ peerDependenciesMeta:
948
+ supports-color:
949
+ optional: true
950
+ dependencies:
951
+ ms: 2.1.2
952
+
953
+ /deep-is@0.1.4:
954
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
955
+ dev: true
956
+
957
+ /didyoumean@1.2.2:
958
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
959
+
960
+ /dir-glob@3.0.1:
961
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
962
+ engines: {node: '>=8'}
963
+ dependencies:
964
+ path-type: 4.0.0
965
+ dev: true
966
+
967
+ /dlv@1.1.3:
968
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
969
+
970
+ /doctrine@3.0.0:
971
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
972
+ engines: {node: '>=6.0.0'}
973
+ dependencies:
974
+ esutils: 2.0.3
975
+ dev: true
976
+
977
+ /electron-to-chromium@1.4.585:
978
+ resolution: {integrity: sha512-B4yBlX0azdA3rVMxpYwLQfDpdwOgcnLCkpvSOd68iFmeedo+WYjaBJS3/W58LVD8CB2nf+o7C4K9xz1l09RkWg==}
979
+ dev: true
980
+
981
+ /engine.io-client@6.5.3:
982
+ resolution: {integrity: sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==}
983
+ dependencies:
984
+ '@socket.io/component-emitter': 3.1.0
985
+ debug: 4.3.4
986
+ engine.io-parser: 5.2.1
987
+ ws: 8.11.0
988
+ xmlhttprequest-ssl: 2.0.0
989
+ transitivePeerDependencies:
990
+ - bufferutil
991
+ - supports-color
992
+ - utf-8-validate
993
+ dev: false
994
+
995
+ /engine.io-parser@5.2.1:
996
+ resolution: {integrity: sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==}
997
+ engines: {node: '>=10.0.0'}
998
+ dev: false
999
+
1000
+ /esbuild@0.18.20:
1001
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
1002
+ engines: {node: '>=12'}
1003
+ hasBin: true
1004
+ requiresBuild: true
1005
+ optionalDependencies:
1006
+ '@esbuild/android-arm': 0.18.20
1007
+ '@esbuild/android-arm64': 0.18.20
1008
+ '@esbuild/android-x64': 0.18.20
1009
+ '@esbuild/darwin-arm64': 0.18.20
1010
+ '@esbuild/darwin-x64': 0.18.20
1011
+ '@esbuild/freebsd-arm64': 0.18.20
1012
+ '@esbuild/freebsd-x64': 0.18.20
1013
+ '@esbuild/linux-arm': 0.18.20
1014
+ '@esbuild/linux-arm64': 0.18.20
1015
+ '@esbuild/linux-ia32': 0.18.20
1016
+ '@esbuild/linux-loong64': 0.18.20
1017
+ '@esbuild/linux-mips64el': 0.18.20
1018
+ '@esbuild/linux-ppc64': 0.18.20
1019
+ '@esbuild/linux-riscv64': 0.18.20
1020
+ '@esbuild/linux-s390x': 0.18.20
1021
+ '@esbuild/linux-x64': 0.18.20
1022
+ '@esbuild/netbsd-x64': 0.18.20
1023
+ '@esbuild/openbsd-x64': 0.18.20
1024
+ '@esbuild/sunos-x64': 0.18.20
1025
+ '@esbuild/win32-arm64': 0.18.20
1026
+ '@esbuild/win32-ia32': 0.18.20
1027
+ '@esbuild/win32-x64': 0.18.20
1028
+ dev: true
1029
+
1030
+ /escalade@3.1.1:
1031
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
1032
+ engines: {node: '>=6'}
1033
+ dev: true
1034
+
1035
+ /escape-string-regexp@4.0.0:
1036
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
1037
+ engines: {node: '>=10'}
1038
+ dev: true
1039
+
1040
+ /eslint-plugin-react-hooks@4.6.0(eslint@8.53.0):
1041
+ resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
1042
+ engines: {node: '>=10'}
1043
+ peerDependencies:
1044
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
1045
+ dependencies:
1046
+ eslint: 8.53.0
1047
+ dev: true
1048
+
1049
+ /eslint-plugin-react-refresh@0.4.4(eslint@8.53.0):
1050
+ resolution: {integrity: sha512-eD83+65e8YPVg6603Om2iCIwcQJf/y7++MWm4tACtEswFLYMwxwVWAfwN+e19f5Ad/FOyyNg9Dfi5lXhH3Y3rA==}
1051
+ peerDependencies:
1052
+ eslint: '>=7'
1053
+ dependencies:
1054
+ eslint: 8.53.0
1055
+ dev: true
1056
+
1057
+ /eslint-scope@7.2.2:
1058
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
1059
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1060
+ dependencies:
1061
+ esrecurse: 4.3.0
1062
+ estraverse: 5.3.0
1063
+ dev: true
1064
+
1065
+ /eslint-visitor-keys@3.4.3:
1066
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
1067
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1068
+ dev: true
1069
+
1070
+ /eslint@8.53.0:
1071
+ resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==}
1072
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1073
+ hasBin: true
1074
+ dependencies:
1075
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
1076
+ '@eslint-community/regexpp': 4.10.0
1077
+ '@eslint/eslintrc': 2.1.3
1078
+ '@eslint/js': 8.53.0
1079
+ '@humanwhocodes/config-array': 0.11.13
1080
+ '@humanwhocodes/module-importer': 1.0.1
1081
+ '@nodelib/fs.walk': 1.2.8
1082
+ '@ungap/structured-clone': 1.2.0
1083
+ ajv: 6.12.6
1084
+ chalk: 4.1.2
1085
+ cross-spawn: 7.0.3
1086
+ debug: 4.3.4
1087
+ doctrine: 3.0.0
1088
+ escape-string-regexp: 4.0.0
1089
+ eslint-scope: 7.2.2
1090
+ eslint-visitor-keys: 3.4.3
1091
+ espree: 9.6.1
1092
+ esquery: 1.5.0
1093
+ esutils: 2.0.3
1094
+ fast-deep-equal: 3.1.3
1095
+ file-entry-cache: 6.0.1
1096
+ find-up: 5.0.0
1097
+ glob-parent: 6.0.2
1098
+ globals: 13.23.0
1099
+ graphemer: 1.4.0
1100
+ ignore: 5.3.0
1101
+ imurmurhash: 0.1.4
1102
+ is-glob: 4.0.3
1103
+ is-path-inside: 3.0.3
1104
+ js-yaml: 4.1.0
1105
+ json-stable-stringify-without-jsonify: 1.0.1
1106
+ levn: 0.4.1
1107
+ lodash.merge: 4.6.2
1108
+ minimatch: 3.1.2
1109
+ natural-compare: 1.4.0
1110
+ optionator: 0.9.3
1111
+ strip-ansi: 6.0.1
1112
+ text-table: 0.2.0
1113
+ transitivePeerDependencies:
1114
+ - supports-color
1115
+ dev: true
1116
+
1117
+ /espree@9.6.1:
1118
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
1119
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
1120
+ dependencies:
1121
+ acorn: 8.11.2
1122
+ acorn-jsx: 5.3.2(acorn@8.11.2)
1123
+ eslint-visitor-keys: 3.4.3
1124
+ dev: true
1125
+
1126
+ /esquery@1.5.0:
1127
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
1128
+ engines: {node: '>=0.10'}
1129
+ dependencies:
1130
+ estraverse: 5.3.0
1131
+ dev: true
1132
+
1133
+ /esrecurse@4.3.0:
1134
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
1135
+ engines: {node: '>=4.0'}
1136
+ dependencies:
1137
+ estraverse: 5.3.0
1138
+ dev: true
1139
+
1140
+ /estraverse@5.3.0:
1141
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
1142
+ engines: {node: '>=4.0'}
1143
+ dev: true
1144
+
1145
+ /esutils@2.0.3:
1146
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
1147
+ engines: {node: '>=0.10.0'}
1148
+ dev: true
1149
+
1150
+ /fast-deep-equal@3.1.3:
1151
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
1152
+ dev: true
1153
+
1154
+ /fast-glob@3.3.2:
1155
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
1156
+ engines: {node: '>=8.6.0'}
1157
+ dependencies:
1158
+ '@nodelib/fs.stat': 2.0.5
1159
+ '@nodelib/fs.walk': 1.2.8
1160
+ glob-parent: 5.1.2
1161
+ merge2: 1.4.1
1162
+ micromatch: 4.0.5
1163
+
1164
+ /fast-json-stable-stringify@2.1.0:
1165
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
1166
+ dev: true
1167
+
1168
+ /fast-levenshtein@2.0.6:
1169
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
1170
+ dev: true
1171
+
1172
+ /fastq@1.15.0:
1173
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
1174
+ dependencies:
1175
+ reusify: 1.0.4
1176
+
1177
+ /file-entry-cache@6.0.1:
1178
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
1179
+ engines: {node: ^10.12.0 || >=12.0.0}
1180
+ dependencies:
1181
+ flat-cache: 3.2.0
1182
+ dev: true
1183
+
1184
+ /fill-range@7.0.1:
1185
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
1186
+ engines: {node: '>=8'}
1187
+ dependencies:
1188
+ to-regex-range: 5.0.1
1189
+
1190
+ /find-up@5.0.0:
1191
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
1192
+ engines: {node: '>=10'}
1193
+ dependencies:
1194
+ locate-path: 6.0.0
1195
+ path-exists: 4.0.0
1196
+ dev: true
1197
+
1198
+ /flat-cache@3.2.0:
1199
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
1200
+ engines: {node: ^10.12.0 || >=12.0.0}
1201
+ dependencies:
1202
+ flatted: 3.2.9
1203
+ keyv: 4.5.4
1204
+ rimraf: 3.0.2
1205
+ dev: true
1206
+
1207
+ /flatted@3.2.9:
1208
+ resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
1209
+ dev: true
1210
+
1211
+ /fraction.js@4.3.7:
1212
+ resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
1213
+ dev: true
1214
+
1215
+ /fs.realpath@1.0.0:
1216
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
1217
+
1218
+ /fsevents@2.3.3:
1219
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
1220
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
1221
+ os: [darwin]
1222
+ requiresBuild: true
1223
+ optional: true
1224
+
1225
+ /function-bind@1.1.2:
1226
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
1227
+
1228
+ /glob-parent@5.1.2:
1229
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
1230
+ engines: {node: '>= 6'}
1231
+ dependencies:
1232
+ is-glob: 4.0.3
1233
+
1234
+ /glob-parent@6.0.2:
1235
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
1236
+ engines: {node: '>=10.13.0'}
1237
+ dependencies:
1238
+ is-glob: 4.0.3
1239
+
1240
+ /glob@7.1.6:
1241
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
1242
+ dependencies:
1243
+ fs.realpath: 1.0.0
1244
+ inflight: 1.0.6
1245
+ inherits: 2.0.4
1246
+ minimatch: 3.1.2
1247
+ once: 1.4.0
1248
+ path-is-absolute: 1.0.1
1249
+
1250
+ /glob@7.2.3:
1251
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
1252
+ dependencies:
1253
+ fs.realpath: 1.0.0
1254
+ inflight: 1.0.6
1255
+ inherits: 2.0.4
1256
+ minimatch: 3.1.2
1257
+ once: 1.4.0
1258
+ path-is-absolute: 1.0.1
1259
+ dev: true
1260
+
1261
+ /globals@13.23.0:
1262
+ resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==}
1263
+ engines: {node: '>=8'}
1264
+ dependencies:
1265
+ type-fest: 0.20.2
1266
+ dev: true
1267
+
1268
+ /globby@11.1.0:
1269
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
1270
+ engines: {node: '>=10'}
1271
+ dependencies:
1272
+ array-union: 2.1.0
1273
+ dir-glob: 3.0.1
1274
+ fast-glob: 3.3.2
1275
+ ignore: 5.3.0
1276
+ merge2: 1.4.1
1277
+ slash: 3.0.0
1278
+ dev: true
1279
+
1280
+ /graphemer@1.4.0:
1281
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
1282
+ dev: true
1283
+
1284
+ /hamt_plus@1.0.2:
1285
+ resolution: {integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==}
1286
+ dev: false
1287
+
1288
+ /has-flag@4.0.0:
1289
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
1290
+ engines: {node: '>=8'}
1291
+ dev: true
1292
+
1293
+ /hasown@2.0.0:
1294
+ resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
1295
+ engines: {node: '>= 0.4'}
1296
+ dependencies:
1297
+ function-bind: 1.1.2
1298
+
1299
+ /ignore@5.3.0:
1300
+ resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
1301
+ engines: {node: '>= 4'}
1302
+ dev: true
1303
+
1304
+ /import-fresh@3.3.0:
1305
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
1306
+ engines: {node: '>=6'}
1307
+ dependencies:
1308
+ parent-module: 1.0.1
1309
+ resolve-from: 4.0.0
1310
+ dev: true
1311
+
1312
+ /imurmurhash@0.1.4:
1313
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
1314
+ engines: {node: '>=0.8.19'}
1315
+ dev: true
1316
+
1317
+ /inflight@1.0.6:
1318
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
1319
+ dependencies:
1320
+ once: 1.4.0
1321
+ wrappy: 1.0.2
1322
+
1323
+ /inherits@2.0.4:
1324
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
1325
+
1326
+ /is-binary-path@2.1.0:
1327
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1328
+ engines: {node: '>=8'}
1329
+ dependencies:
1330
+ binary-extensions: 2.2.0
1331
+
1332
+ /is-core-module@2.13.1:
1333
+ resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
1334
+ dependencies:
1335
+ hasown: 2.0.0
1336
+
1337
+ /is-extglob@2.1.1:
1338
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1339
+ engines: {node: '>=0.10.0'}
1340
+
1341
+ /is-glob@4.0.3:
1342
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1343
+ engines: {node: '>=0.10.0'}
1344
+ dependencies:
1345
+ is-extglob: 2.1.1
1346
+
1347
+ /is-number@7.0.0:
1348
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1349
+ engines: {node: '>=0.12.0'}
1350
+
1351
+ /is-path-inside@3.0.3:
1352
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1353
+ engines: {node: '>=8'}
1354
+ dev: true
1355
+
1356
+ /isexe@2.0.0:
1357
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1358
+ dev: true
1359
+
1360
+ /jiti@1.21.0:
1361
+ resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
1362
+ hasBin: true
1363
+
1364
+ /js-tokens@4.0.0:
1365
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1366
+ dev: false
1367
+
1368
+ /js-yaml@4.1.0:
1369
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1370
+ hasBin: true
1371
+ dependencies:
1372
+ argparse: 2.0.1
1373
+ dev: true
1374
+
1375
+ /json-buffer@3.0.1:
1376
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1377
+ dev: true
1378
+
1379
+ /json-schema-traverse@0.4.1:
1380
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1381
+ dev: true
1382
+
1383
+ /json-stable-stringify-without-jsonify@1.0.1:
1384
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1385
+ dev: true
1386
+
1387
+ /jwt-decode@3.1.2:
1388
+ resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==}
1389
+ dev: false
1390
+
1391
+ /keyv@4.5.4:
1392
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1393
+ dependencies:
1394
+ json-buffer: 3.0.1
1395
+ dev: true
1396
+
1397
+ /levn@0.4.1:
1398
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1399
+ engines: {node: '>= 0.8.0'}
1400
+ dependencies:
1401
+ prelude-ls: 1.2.1
1402
+ type-check: 0.4.0
1403
+ dev: true
1404
+
1405
+ /lilconfig@2.1.0:
1406
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1407
+ engines: {node: '>=10'}
1408
+
1409
+ /lines-and-columns@1.2.4:
1410
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1411
+
1412
+ /locate-path@6.0.0:
1413
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1414
+ engines: {node: '>=10'}
1415
+ dependencies:
1416
+ p-locate: 5.0.0
1417
+ dev: true
1418
+
1419
+ /lodash.merge@4.6.2:
1420
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1421
+ dev: true
1422
+
1423
+ /lodash@4.17.21:
1424
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
1425
+ dev: false
1426
+
1427
+ /loose-envify@1.4.0:
1428
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1429
+ hasBin: true
1430
+ dependencies:
1431
+ js-tokens: 4.0.0
1432
+ dev: false
1433
+
1434
+ /lru-cache@6.0.0:
1435
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
1436
+ engines: {node: '>=10'}
1437
+ dependencies:
1438
+ yallist: 4.0.0
1439
+ dev: true
1440
+
1441
+ /lucide-react@0.292.0(react@18.2.0):
1442
+ resolution: {integrity: sha512-rRgUkpEHWpa5VCT66YscInCQmQuPCB1RFRzkkxMxg4b+jaL0V12E3riWWR2Sh5OIiUhCwGW/ZExuEO4Az32E6Q==}
1443
+ peerDependencies:
1444
+ react: ^16.5.1 || ^17.0.0 || ^18.0.0
1445
+ dependencies:
1446
+ react: 18.2.0
1447
+ dev: false
1448
+
1449
+ /merge2@1.4.1:
1450
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1451
+ engines: {node: '>= 8'}
1452
+
1453
+ /micromatch@4.0.5:
1454
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
1455
+ engines: {node: '>=8.6'}
1456
+ dependencies:
1457
+ braces: 3.0.2
1458
+ picomatch: 2.3.1
1459
+
1460
+ /minimatch@3.1.2:
1461
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1462
+ dependencies:
1463
+ brace-expansion: 1.1.11
1464
+
1465
+ /ms@2.1.2:
1466
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
1467
+
1468
+ /mz@2.7.0:
1469
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1470
+ dependencies:
1471
+ any-promise: 1.3.0
1472
+ object-assign: 4.1.1
1473
+ thenify-all: 1.6.0
1474
+
1475
+ /nanoid@3.3.7:
1476
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1477
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1478
+ hasBin: true
1479
+
1480
+ /natural-compare@1.4.0:
1481
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1482
+ dev: true
1483
+
1484
+ /node-releases@2.0.13:
1485
+ resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
1486
+ dev: true
1487
+
1488
+ /normalize-path@3.0.0:
1489
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1490
+ engines: {node: '>=0.10.0'}
1491
+
1492
+ /normalize-range@0.1.2:
1493
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1494
+ engines: {node: '>=0.10.0'}
1495
+ dev: true
1496
+
1497
+ /object-assign@4.1.1:
1498
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1499
+ engines: {node: '>=0.10.0'}
1500
+
1501
+ /object-hash@3.0.0:
1502
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1503
+ engines: {node: '>= 6'}
1504
+
1505
+ /once@1.4.0:
1506
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1507
+ dependencies:
1508
+ wrappy: 1.0.2
1509
+
1510
+ /optionator@0.9.3:
1511
+ resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
1512
+ engines: {node: '>= 0.8.0'}
1513
+ dependencies:
1514
+ '@aashutoshrathi/word-wrap': 1.2.6
1515
+ deep-is: 0.1.4
1516
+ fast-levenshtein: 2.0.6
1517
+ levn: 0.4.1
1518
+ prelude-ls: 1.2.1
1519
+ type-check: 0.4.0
1520
+ dev: true
1521
+
1522
+ /p-limit@3.1.0:
1523
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1524
+ engines: {node: '>=10'}
1525
+ dependencies:
1526
+ yocto-queue: 0.1.0
1527
+ dev: true
1528
+
1529
+ /p-locate@5.0.0:
1530
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1531
+ engines: {node: '>=10'}
1532
+ dependencies:
1533
+ p-limit: 3.1.0
1534
+ dev: true
1535
+
1536
+ /parent-module@1.0.1:
1537
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1538
+ engines: {node: '>=6'}
1539
+ dependencies:
1540
+ callsites: 3.1.0
1541
+ dev: true
1542
+
1543
+ /path-exists@4.0.0:
1544
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1545
+ engines: {node: '>=8'}
1546
+ dev: true
1547
+
1548
+ /path-is-absolute@1.0.1:
1549
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1550
+ engines: {node: '>=0.10.0'}
1551
+
1552
+ /path-key@3.1.1:
1553
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1554
+ engines: {node: '>=8'}
1555
+ dev: true
1556
+
1557
+ /path-parse@1.0.7:
1558
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1559
+
1560
+ /path-type@4.0.0:
1561
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1562
+ engines: {node: '>=8'}
1563
+ dev: true
1564
+
1565
+ /picocolors@1.0.0:
1566
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
1567
+
1568
+ /picomatch@2.3.1:
1569
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1570
+ engines: {node: '>=8.6'}
1571
+
1572
+ /pify@2.3.0:
1573
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1574
+ engines: {node: '>=0.10.0'}
1575
+
1576
+ /pirates@4.0.6:
1577
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1578
+ engines: {node: '>= 6'}
1579
+
1580
+ /postcss-import@15.1.0(postcss@8.4.31):
1581
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1582
+ engines: {node: '>=14.0.0'}
1583
+ peerDependencies:
1584
+ postcss: ^8.0.0
1585
+ dependencies:
1586
+ postcss: 8.4.31
1587
+ postcss-value-parser: 4.2.0
1588
+ read-cache: 1.0.0
1589
+ resolve: 1.22.8
1590
+
1591
+ /postcss-js@4.0.1(postcss@8.4.31):
1592
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1593
+ engines: {node: ^12 || ^14 || >= 16}
1594
+ peerDependencies:
1595
+ postcss: ^8.4.21
1596
+ dependencies:
1597
+ camelcase-css: 2.0.1
1598
+ postcss: 8.4.31
1599
+
1600
+ /postcss-load-config@4.0.1(postcss@8.4.31):
1601
+ resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
1602
+ engines: {node: '>= 14'}
1603
+ peerDependencies:
1604
+ postcss: '>=8.0.9'
1605
+ ts-node: '>=9.0.0'
1606
+ peerDependenciesMeta:
1607
+ postcss:
1608
+ optional: true
1609
+ ts-node:
1610
+ optional: true
1611
+ dependencies:
1612
+ lilconfig: 2.1.0
1613
+ postcss: 8.4.31
1614
+ yaml: 2.3.4
1615
+
1616
+ /postcss-nested@6.0.1(postcss@8.4.31):
1617
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
1618
+ engines: {node: '>=12.0'}
1619
+ peerDependencies:
1620
+ postcss: ^8.2.14
1621
+ dependencies:
1622
+ postcss: 8.4.31
1623
+ postcss-selector-parser: 6.0.13
1624
+
1625
+ /postcss-selector-parser@6.0.13:
1626
+ resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
1627
+ engines: {node: '>=4'}
1628
+ dependencies:
1629
+ cssesc: 3.0.0
1630
+ util-deprecate: 1.0.2
1631
+
1632
+ /postcss-value-parser@4.2.0:
1633
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1634
+
1635
+ /postcss@8.4.31:
1636
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
1637
+ engines: {node: ^10 || ^12 || >=14}
1638
+ dependencies:
1639
+ nanoid: 3.3.7
1640
+ picocolors: 1.0.0
1641
+ source-map-js: 1.0.2
1642
+
1643
+ /prelude-ls@1.2.1:
1644
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1645
+ engines: {node: '>= 0.8.0'}
1646
+ dev: true
1647
+
1648
+ /punycode@2.3.1:
1649
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1650
+ engines: {node: '>=6'}
1651
+ dev: true
1652
+
1653
+ /queue-microtask@1.2.3:
1654
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1655
+
1656
+ /react-dom@18.2.0(react@18.2.0):
1657
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
1658
+ peerDependencies:
1659
+ react: ^18.2.0
1660
+ dependencies:
1661
+ loose-envify: 1.4.0
1662
+ react: 18.2.0
1663
+ scheduler: 0.23.0
1664
+ dev: false
1665
+
1666
+ /react@18.2.0:
1667
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
1668
+ engines: {node: '>=0.10.0'}
1669
+ dependencies:
1670
+ loose-envify: 1.4.0
1671
+ dev: false
1672
+
1673
+ /read-cache@1.0.0:
1674
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1675
+ dependencies:
1676
+ pify: 2.3.0
1677
+
1678
+ /readdirp@3.6.0:
1679
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1680
+ engines: {node: '>=8.10.0'}
1681
+ dependencies:
1682
+ picomatch: 2.3.1
1683
+
1684
+ /recoil@0.7.7(react-dom@18.2.0)(react@18.2.0):
1685
+ resolution: {integrity: sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==}
1686
+ peerDependencies:
1687
+ react: '>=16.13.1'
1688
+ react-dom: '*'
1689
+ react-native: '*'
1690
+ peerDependenciesMeta:
1691
+ react-dom:
1692
+ optional: true
1693
+ react-native:
1694
+ optional: true
1695
+ dependencies:
1696
+ hamt_plus: 1.0.2
1697
+ react: 18.2.0
1698
+ react-dom: 18.2.0(react@18.2.0)
1699
+ dev: false
1700
+
1701
+ /regenerator-runtime@0.14.0:
1702
+ resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
1703
+ dev: false
1704
+
1705
+ /resolve-from@4.0.0:
1706
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1707
+ engines: {node: '>=4'}
1708
+ dev: true
1709
+
1710
+ /resolve@1.22.8:
1711
+ resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
1712
+ hasBin: true
1713
+ dependencies:
1714
+ is-core-module: 2.13.1
1715
+ path-parse: 1.0.7
1716
+ supports-preserve-symlinks-flag: 1.0.0
1717
+
1718
+ /reusify@1.0.4:
1719
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1720
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1721
+
1722
+ /rimraf@3.0.2:
1723
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1724
+ hasBin: true
1725
+ dependencies:
1726
+ glob: 7.2.3
1727
+ dev: true
1728
+
1729
+ /rollup@3.29.4:
1730
+ resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==}
1731
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
1732
+ hasBin: true
1733
+ optionalDependencies:
1734
+ fsevents: 2.3.3
1735
+ dev: true
1736
+
1737
+ /run-parallel@1.2.0:
1738
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1739
+ dependencies:
1740
+ queue-microtask: 1.2.3
1741
+
1742
+ /scheduler@0.23.0:
1743
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
1744
+ dependencies:
1745
+ loose-envify: 1.4.0
1746
+ dev: false
1747
+
1748
+ /semver@7.5.4:
1749
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
1750
+ engines: {node: '>=10'}
1751
+ hasBin: true
1752
+ dependencies:
1753
+ lru-cache: 6.0.0
1754
+ dev: true
1755
+
1756
+ /shebang-command@2.0.0:
1757
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1758
+ engines: {node: '>=8'}
1759
+ dependencies:
1760
+ shebang-regex: 3.0.0
1761
+ dev: true
1762
+
1763
+ /shebang-regex@3.0.0:
1764
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1765
+ engines: {node: '>=8'}
1766
+ dev: true
1767
+
1768
+ /slash@3.0.0:
1769
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1770
+ engines: {node: '>=8'}
1771
+ dev: true
1772
+
1773
+ /socket.io-client@4.7.2:
1774
+ resolution: {integrity: sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==}
1775
+ engines: {node: '>=10.0.0'}
1776
+ dependencies:
1777
+ '@socket.io/component-emitter': 3.1.0
1778
+ debug: 4.3.4
1779
+ engine.io-client: 6.5.3
1780
+ socket.io-parser: 4.2.4
1781
+ transitivePeerDependencies:
1782
+ - bufferutil
1783
+ - supports-color
1784
+ - utf-8-validate
1785
+ dev: false
1786
+
1787
+ /socket.io-parser@4.2.4:
1788
+ resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==}
1789
+ engines: {node: '>=10.0.0'}
1790
+ dependencies:
1791
+ '@socket.io/component-emitter': 3.1.0
1792
+ debug: 4.3.4
1793
+ transitivePeerDependencies:
1794
+ - supports-color
1795
+ dev: false
1796
+
1797
+ /source-map-js@1.0.2:
1798
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
1799
+ engines: {node: '>=0.10.0'}
1800
+
1801
+ /strip-ansi@6.0.1:
1802
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1803
+ engines: {node: '>=8'}
1804
+ dependencies:
1805
+ ansi-regex: 5.0.1
1806
+ dev: true
1807
+
1808
+ /strip-json-comments@3.1.1:
1809
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1810
+ engines: {node: '>=8'}
1811
+ dev: true
1812
+
1813
+ /sucrase@3.34.0:
1814
+ resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
1815
+ engines: {node: '>=8'}
1816
+ hasBin: true
1817
+ dependencies:
1818
+ '@jridgewell/gen-mapping': 0.3.3
1819
+ commander: 4.1.1
1820
+ glob: 7.1.6
1821
+ lines-and-columns: 1.2.4
1822
+ mz: 2.7.0
1823
+ pirates: 4.0.6
1824
+ ts-interface-checker: 0.1.13
1825
+
1826
+ /supports-color@7.2.0:
1827
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1828
+ engines: {node: '>=8'}
1829
+ dependencies:
1830
+ has-flag: 4.0.0
1831
+ dev: true
1832
+
1833
+ /supports-preserve-symlinks-flag@1.0.0:
1834
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1835
+ engines: {node: '>= 0.4'}
1836
+
1837
+ /swr@2.2.4(react@18.2.0):
1838
+ resolution: {integrity: sha512-njiZ/4RiIhoOlAaLYDqwz5qH/KZXVilRLvomrx83HjzCWTfa+InyfAjv05PSFxnmLzZkNO9ZfvgoqzAaEI4sGQ==}
1839
+ peerDependencies:
1840
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0
1841
+ dependencies:
1842
+ client-only: 0.0.1
1843
+ react: 18.2.0
1844
+ use-sync-external-store: 1.2.0(react@18.2.0)
1845
+ dev: false
1846
+
1847
+ /tailwind-merge@2.0.0:
1848
+ resolution: {integrity: sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==}
1849
+ dependencies:
1850
+ '@babel/runtime': 7.23.2
1851
+ dev: false
1852
+
1853
+ /tailwindcss-animate@1.0.7(tailwindcss@3.3.5):
1854
+ resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
1855
+ peerDependencies:
1856
+ tailwindcss: '>=3.0.0 || insiders'
1857
+ dependencies:
1858
+ tailwindcss: 3.3.5
1859
+ dev: false
1860
+
1861
+ /tailwindcss@3.3.5:
1862
+ resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==}
1863
+ engines: {node: '>=14.0.0'}
1864
+ hasBin: true
1865
+ dependencies:
1866
+ '@alloc/quick-lru': 5.2.0
1867
+ arg: 5.0.2
1868
+ chokidar: 3.5.3
1869
+ didyoumean: 1.2.2
1870
+ dlv: 1.1.3
1871
+ fast-glob: 3.3.2
1872
+ glob-parent: 6.0.2
1873
+ is-glob: 4.0.3
1874
+ jiti: 1.21.0
1875
+ lilconfig: 2.1.0
1876
+ micromatch: 4.0.5
1877
+ normalize-path: 3.0.0
1878
+ object-hash: 3.0.0
1879
+ picocolors: 1.0.0
1880
+ postcss: 8.4.31
1881
+ postcss-import: 15.1.0(postcss@8.4.31)
1882
+ postcss-js: 4.0.1(postcss@8.4.31)
1883
+ postcss-load-config: 4.0.1(postcss@8.4.31)
1884
+ postcss-nested: 6.0.1(postcss@8.4.31)
1885
+ postcss-selector-parser: 6.0.13
1886
+ resolve: 1.22.8
1887
+ sucrase: 3.34.0
1888
+ transitivePeerDependencies:
1889
+ - ts-node
1890
+
1891
+ /text-table@0.2.0:
1892
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1893
+ dev: true
1894
+
1895
+ /thenify-all@1.6.0:
1896
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1897
+ engines: {node: '>=0.8'}
1898
+ dependencies:
1899
+ thenify: 3.3.1
1900
+
1901
+ /thenify@3.3.1:
1902
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1903
+ dependencies:
1904
+ any-promise: 1.3.0
1905
+
1906
+ /to-regex-range@5.0.1:
1907
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1908
+ engines: {node: '>=8.0'}
1909
+ dependencies:
1910
+ is-number: 7.0.0
1911
+
1912
+ /ts-api-utils@1.0.3(typescript@5.2.2):
1913
+ resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==}
1914
+ engines: {node: '>=16.13.0'}
1915
+ peerDependencies:
1916
+ typescript: '>=4.2.0'
1917
+ dependencies:
1918
+ typescript: 5.2.2
1919
+ dev: true
1920
+
1921
+ /ts-interface-checker@0.1.13:
1922
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1923
+
1924
+ /type-check@0.4.0:
1925
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1926
+ engines: {node: '>= 0.8.0'}
1927
+ dependencies:
1928
+ prelude-ls: 1.2.1
1929
+ dev: true
1930
+
1931
+ /type-fest@0.20.2:
1932
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1933
+ engines: {node: '>=10'}
1934
+ dev: true
1935
+
1936
+ /typescript@5.2.2:
1937
+ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
1938
+ engines: {node: '>=14.17'}
1939
+ hasBin: true
1940
+ dev: true
1941
+
1942
+ /undici-types@5.26.5:
1943
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
1944
+ dev: true
1945
+
1946
+ /update-browserslist-db@1.0.13(browserslist@4.22.1):
1947
+ resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
1948
+ hasBin: true
1949
+ peerDependencies:
1950
+ browserslist: '>= 4.21.0'
1951
+ dependencies:
1952
+ browserslist: 4.22.1
1953
+ escalade: 3.1.1
1954
+ picocolors: 1.0.0
1955
+ dev: true
1956
+
1957
+ /uri-js@4.4.1:
1958
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1959
+ dependencies:
1960
+ punycode: 2.3.1
1961
+ dev: true
1962
+
1963
+ /use-sync-external-store@1.2.0(react@18.2.0):
1964
+ resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==}
1965
+ peerDependencies:
1966
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0
1967
+ dependencies:
1968
+ react: 18.2.0
1969
+ dev: false
1970
+
1971
+ /util-deprecate@1.0.2:
1972
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1973
+
1974
+ /uuid@9.0.1:
1975
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
1976
+ hasBin: true
1977
+ dev: false
1978
+
1979
+ /vite@4.5.0(@types/node@20.9.0):
1980
+ resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
1981
+ engines: {node: ^14.18.0 || >=16.0.0}
1982
+ hasBin: true
1983
+ peerDependencies:
1984
+ '@types/node': '>= 14'
1985
+ less: '*'
1986
+ lightningcss: ^1.21.0
1987
+ sass: '*'
1988
+ stylus: '*'
1989
+ sugarss: '*'
1990
+ terser: ^5.4.0
1991
+ peerDependenciesMeta:
1992
+ '@types/node':
1993
+ optional: true
1994
+ less:
1995
+ optional: true
1996
+ lightningcss:
1997
+ optional: true
1998
+ sass:
1999
+ optional: true
2000
+ stylus:
2001
+ optional: true
2002
+ sugarss:
2003
+ optional: true
2004
+ terser:
2005
+ optional: true
2006
+ dependencies:
2007
+ '@types/node': 20.9.0
2008
+ esbuild: 0.18.20
2009
+ postcss: 8.4.31
2010
+ rollup: 3.29.4
2011
+ optionalDependencies:
2012
+ fsevents: 2.3.3
2013
+ dev: true
2014
+
2015
+ /which@2.0.2:
2016
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
2017
+ engines: {node: '>= 8'}
2018
+ hasBin: true
2019
+ dependencies:
2020
+ isexe: 2.0.0
2021
+ dev: true
2022
+
2023
+ /wrappy@1.0.2:
2024
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
2025
+
2026
+ /ws@8.11.0:
2027
+ resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==}
2028
+ engines: {node: '>=10.0.0'}
2029
+ peerDependencies:
2030
+ bufferutil: ^4.0.1
2031
+ utf-8-validate: ^5.0.2
2032
+ peerDependenciesMeta:
2033
+ bufferutil:
2034
+ optional: true
2035
+ utf-8-validate:
2036
+ optional: true
2037
+ dev: false
2038
+
2039
+ /xmlhttprequest-ssl@2.0.0:
2040
+ resolution: {integrity: sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==}
2041
+ engines: {node: '>=0.4.0'}
2042
+ dev: false
2043
+
2044
+ /yallist@4.0.0:
2045
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
2046
+ dev: true
2047
+
2048
+ /yaml@2.3.4:
2049
+ resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==}
2050
+ engines: {node: '>= 14'}
2051
+
2052
+ /yocto-queue@0.1.0:
2053
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
2054
+ engines: {node: '>=10'}
2055
+ dev: true
frontend/postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
frontend/public/favicon.svg ADDED
frontend/src/App.tsx ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useEffect } from "react";
2
+ import { useState } from "react";
3
+ import { ChainlitAPI, sessionState, useChatSession } from "@chainlit/react-client";
4
+ import { Playground } from "./components/playground";
5
+ import { useRecoilValue } from "recoil";
6
+
7
+
8
+ import Header from "@/components/header";
9
+ import Banner from "@/components/banner";
10
+ import AlertComponent from "@/components/alertComponent";
11
+
12
+ const CHAINLIT_SERVER = "http://localhost:8000";
13
+ const userEnv = {};
14
+
15
+ const apiClient = new ChainlitAPI(CHAINLIT_SERVER);
16
+
17
+ interface Amounts {
18
+ [key: string]: number;
19
+ }
20
+ function App() {
21
+ const { connect } = useChatSession();
22
+ const session = useRecoilValue(sessionState);
23
+
24
+ useEffect(() => {
25
+ if (session?.socket.connected) {
26
+ return;
27
+ }
28
+ fetch(apiClient.buildEndpoint('/custom-auth'))
29
+ .then((res) => res.json())
30
+ .then((data) => {
31
+ connect({ client: apiClient, userEnv, accessToken: `Bearer: ${data.token}` });
32
+ });
33
+ }, [session, connect]);
34
+
35
+ // Initialize state to manage multiple amounts
36
+ const [amounts, setAmounts] = useState<Amounts>({});
37
+
38
+ // Function to update individual amount
39
+ const setAmount = (id: string, value: number) => {
40
+ setAmounts((prevAmounts) => ({
41
+ ...prevAmounts,
42
+ [id]: value,
43
+ }));
44
+
45
+
46
+
47
+
48
+ };
49
+
50
+
51
+
52
+ return (
53
+ <>
54
+
55
+
56
+ <Header />
57
+ <Banner />
58
+ <div className="relative" style={{ marginTop: '40px' }}>
59
+ <div className="absolute left-20">
60
+ <div className="flex flex-col">
61
+ <header className="text-2xl font-bold leading-8 text-black pl-16">
62
+ <h1>Your Personalised Package:</h1>
63
+ </header>
64
+ <AlertComponent
65
+ logoUrl="https://cdn.builder.io/api/v1/image/assets/TEMP/be051a227710fa99e9efda725e8d0dc36c64fad96e941813d07d6250884eadb2?apiKey=b1f64df9aada44c6ba1728b031344f7b&"
66
+ alertText="PUBLIC & PRODUCT LIABILITY"
67
+ status="?"
68
+ amount={amounts['publicLiability'] || 0}
69
+ setAmount={(value) => setAmount('publicLiability', value)}
70
+ />
71
+ <AlertComponent
72
+ logoUrl="https://cdn.builder.io/api/v1/image/assets/TEMP/fb7d406f3707aefeb694b288abea645b643e28df498e96faa3a88f8ae3b4f096?apiKey=b1f64df9aada44c6ba1728b031344f7b&"
73
+ alertText="FIRE AND ACCIDENTAL DAMAGE"
74
+ status="?"
75
+ amount={amounts['fireDamage'] || 0}
76
+ setAmount={(value) => setAmount('fireDamage', value)}
77
+ />
78
+ <AlertComponent
79
+ logoUrl="https://cdn.builder.io/api/v1/image/assets/TEMP/af6837406a2497c1255b86413c1138e2c55b3fc5c643e05f560bafd57e9bd20b?apiKey=b1f64df9aada44c6ba1728b031344f7b&"
80
+ alertText="GLASS"
81
+ status="?"
82
+ amount={amounts['glass'] || 0}
83
+ setAmount={(value) => setAmount('glass', value)}
84
+ />
85
+ <AlertComponent
86
+ logoUrl="https://cdn.builder.io/api/v1/image/assets/TEMP/a7ffd8559e286d4d85db00334a22a1a956d9835240ad8d97e82af98af62a149e?apiKey=b1f64df9aada44c6ba1728b031344f7b&"
87
+ alertText="PERSONAL EQUIPMENT"
88
+ status="?"
89
+ amount={amounts['personalEquipment'] || 0}
90
+ setAmount={(value) => setAmount('personalEquipment', value)}
91
+ />
92
+ <AlertComponent
93
+ logoUrl="https://cdn.builder.io/api/v1/image/assets/TEMP/89dc158bec91bc71c7b35c5b9752238d239eb70b38f3256e62653dee21b33b55?apiKey=b1f64df9aada44c6ba1728b031344f7b&"
94
+ alertText="THEFT"
95
+ status="?"
96
+ amount={amounts['theft'] || 0}
97
+ setAmount={(value) => setAmount('theft', value)}
98
+ />
99
+ </div>
100
+
101
+ <button className="justify-center items-center px-16 py-4 mt-3 ml-16 max-w-full text-base font-bold text-center text-lime-900 whitespace-nowrap rounded border border-solid border-[color:var(--Color-Functional-Primary--Dark,#558000)] w-[522px] max-md:px-5">
102
+ Go to quote
103
+ </button>
104
+
105
+ <button className="flex gap-2.5 justify-center px-5 py-2.5 mt-60 ml-16 text-base font-bold text-center text-lime-700 whitespace-nowrap bg-white rounded border border-solid border-[color:var(--Color-Functional-Primary--Dark,#558000)] max-md:mt-10 max-md:ml-2.5 items-center">
106
+ <img loading="lazy" src="https://cdn.builder.io/api/v1/image/assets/TEMP/91c9b9f5d1f2a509afd2c46fab93912852f90f3b085e3f35ce1e33c252fedf1b?apiKey=b1f64df9aada44c6ba1728b031344f7b&" alt="" className="w-4 aspect-square" />
107
+ Back to packages
108
+ </button>
109
+
110
+
111
+ </div>
112
+ </div>
113
+
114
+
115
+ <div className="playground-container">
116
+ <Playground />
117
+ </div>
118
+
119
+
120
+
121
+
122
+ </>
123
+ );
124
+ }
125
+
126
+ export default App;
frontend/src/components/alertComponent.tsx ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+ import StatusIndicator from "@/components/statusIndicator"; // Ensure this path matches your file structure
3
+
4
+ interface AlertComponentProps {
5
+ logoUrl: string;
6
+ alertText: string;
7
+ status: string;
8
+ amount: number;
9
+ setAmount: (amount: number) => void;
10
+ }
11
+
12
+ const AlertComponent: React.FC<AlertComponentProps> = ({ logoUrl, alertText, status, amount, setAmount }) => {
13
+ return (
14
+ <section className="flex justify-between items-center px-6 py-3 ml-16 max-w-full whitespace-nowrap border-solid border-b-[0.5px] border-b-black w-[522px] md:flex-wrap md:px-5">
15
+ <div className="flex gap-3 items-center pr-20 text-base">
16
+ <img
17
+ loading="lazy"
18
+ src={logoUrl}
19
+ className="w-8 h-8" // Adjusted to ensure the image does not stretch
20
+ alt={alertText}
21
+ />
22
+ <div className="text-black uppercase leading-[150%]">
23
+ {alertText}
24
+ </div>
25
+ <StatusIndicator status={status} />
26
+ </div>
27
+ <input
28
+ type="number"
29
+ value={amount}
30
+ onChange={(e) => setAmount(Number(e.target.value))}
31
+ className="py-2 pl-3 pr-3 text-sm leading-6 text-right text-black bg-white rounded border-black border-solid border-[0.5px] w-full max-w-xs" // Adjusted styles for input
32
+ style={{ textAlign: 'left' }} // Ensure text aligns left within the input
33
+ />
34
+ </section>
35
+ );
36
+ };
37
+
38
+ export default AlertComponent;
frontend/src/components/banner.tsx ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as React from 'react';
2
+
3
+ // Define a functional component using TypeScript
4
+ const Banner: React.FC = () => {
5
+ return (
6
+ <section className="flex overflow-hidden relative flex-col justify-center items-stretch w-full font-bold text-center text-white min-h-[200px]">
7
+ <img loading="lazy" src="https://cdn.builder.io/api/v1/image/assets/TEMP/90ef9e1531cfe343e66ab674d6be1a55e88e527744750fc2b64501844643db0a?apiKey=b1f64df9aada44c6ba1728b031344f7b&" className="object-cover absolute inset-0 w-full h-full" alt="Beauty Therapist Working" />
8
+ <div className="relative flex justify-center items-center px-16 py-12 w-full">
9
+ <div className="flex flex-col mt-10 mb-2">
10
+ <h1 className="text-3xl leading-10">Beauty Therapist Insurance</h1>
11
+ <h2 className="self-center mt-2 text-lg leading-6">Quote Builder</h2>
12
+ </div>
13
+ </div>
14
+ </section>
15
+ );
16
+ }
17
+
18
+ export default Banner;
frontend/src/components/header.tsx ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as React from "react";
2
+
3
+ const Header: React.FC = () => {
4
+ return (
5
+ <header className="flex flex-col justify-center items-start self-stretch px-16 w-full bg-white border-b border-solid border-gray-500 sm:px-5 sm:max-w-full">
6
+ <img src="https://cdn.builder.io/api/v1/image/assets/TEMP/c60110b7ac67e2ea9732724f30b5eaaba9c6a94aef679e23760dc88640ba1f9b?apiKey=b1f64df9aada44c6ba1728b031344f7b&" className="ml-48 max-w-full aspect-[2.78] w-[150px] sm:ml-2.5" alt="" />
7
+ </header>
8
+ );
9
+ }
10
+
11
+ export default Header;
frontend/src/components/playground.tsx ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useState } from "react";
2
+ import { Input } from "@/components/ui/input";
3
+ import { Button } from "@/components/ui/button";
4
+ import { v4 as uuidv4 } from "uuid";
5
+ import {
6
+ useChatInteract,
7
+ useChatMessages,
8
+ IStep,
9
+ } from "@chainlit/react-client";
10
+
11
+
12
+
13
+ export function Playground() {
14
+ const [inputValue, setInputValue] = useState("");
15
+ const { sendMessage } = useChatInteract();
16
+ const { messages } = useChatMessages();
17
+
18
+ const handleSendMessage = () => {
19
+ const content = inputValue.trim();
20
+ if (content) {
21
+ const message: IStep = {
22
+ id: uuidv4(),
23
+ name: "user",
24
+ type: "user_message",
25
+ output: content,
26
+ createdAt: new Date().toISOString(),
27
+ };
28
+ sendMessage(message, []);
29
+ setInputValue("");
30
+ }
31
+ };
32
+
33
+ const renderMessage = (message: IStep) => {
34
+ const dateOptions: Intl.DateTimeFormatOptions = {
35
+ hour: "2-digit",
36
+ minute: "2-digit",
37
+ };
38
+ const date = new Date(message.createdAt).toLocaleTimeString(undefined, dateOptions);
39
+ return (
40
+ <div key={message.id} className="flex items-start space-x-2">
41
+ <div className="w-20 text-sm text-green-500">{message.name}</div>
42
+ <div className="flex-1 border rounded-lg p-2">
43
+ <p className="text-black dark:text-white">{message.output}</p>
44
+ <small className="text-xs text-gray-500">{date}</small>
45
+ </div>
46
+ </div>
47
+ );
48
+ };
49
+
50
+ return (
51
+ // Apply the scrollable container to the entire Playground
52
+ <div className="playground-container bg-gray-100 dark:bg-gray-900 flex flex-col" style={{ borderRadius: '10px' }}>
53
+
54
+ <div style={{ backgroundColor: '#d00404', height: '50px' }}>
55
+ {/* Add your content for the red section here */}
56
+ </div>
57
+
58
+ <div className="flex-1 overflow-auto p-6">
59
+ <div className="space-y-4">
60
+ {messages.map((message) => renderMessage(message))}
61
+ </div>
62
+ </div>
63
+ <div className="border-t p-4 bg-white dark:bg-gray-800">
64
+ <div className="flex items-center space-x-2">
65
+ <Input
66
+ autoFocus
67
+ className="flex-1"
68
+ id="message-input"
69
+ placeholder="Type a message"
70
+ value={inputValue}
71
+ onChange={(e) => setInputValue(e.target.value)}
72
+ onKeyUp={(e) => {
73
+ if (e.key === "Enter") {
74
+ handleSendMessage();
75
+ }
76
+ }}
77
+ />
78
+ <Button onClick={handleSendMessage} type="submit">
79
+ Send
80
+ </Button>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ );
85
+ }
frontend/src/components/priceTag.tsx ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+
3
+ interface PriceTagProps {
4
+ amount: number | string;
5
+ }
6
+
7
+ const PriceTag: React.FC<PriceTagProps> = ({ amount }) => {
8
+ return (
9
+ <div className="justify-center items-end py-2 pl-16 text-sm leading-6 text-right text-black bg-white rounded border-black border-solid border-[0.5px]">
10
+ ${amount}
11
+ </div>
12
+ );
13
+ };
14
+
15
+ export default PriceTag;
frontend/src/components/statusIndicator.tsx ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+
3
+ interface StatusIndicatorProps {
4
+ status: string;
5
+ }
6
+
7
+ const StatusIndicator: React.FC<StatusIndicatorProps> = ({ status }) => {
8
+ return (
9
+ <div
10
+ className="justify-center items-center self-stretch px-2 my-auto h-6 font-bold text-right text-red-700 border-red-700 border-solid aspect-square border-[0.639px] leading-[92%] rounded-[127.778px]"
11
+ role="button"
12
+ tabIndex={0}
13
+ aria-label={status === '?' ? 'Status unknown' : `Status: ${status}`}
14
+ >
15
+ {status}
16
+ </div>
17
+ );
18
+ };
19
+
20
+ export default StatusIndicator;
frontend/src/components/ui/button.tsx ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as React from "react"
2
+ import { Slot } from "@radix-ui/react-slot"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ const buttonVariants = cva(
8
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
+ destructive:
14
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90",
15
+ outline:
16
+ "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
17
+ secondary:
18
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
19
+ ghost: "hover:bg-accent hover:text-accent-foreground",
20
+ link: "text-primary underline-offset-4 hover:underline",
21
+ },
22
+ size: {
23
+ default: "h-10 px-4 py-2",
24
+ sm: "h-9 rounded-md px-3",
25
+ lg: "h-11 rounded-md px-8",
26
+ icon: "h-10 w-10",
27
+ },
28
+ },
29
+ defaultVariants: {
30
+ variant: "default",
31
+ size: "default",
32
+ },
33
+ }
34
+ )
35
+
36
+ export interface ButtonProps
37
+ extends React.ButtonHTMLAttributes<HTMLButtonElement>,
38
+ VariantProps<typeof buttonVariants> {
39
+ asChild?: boolean
40
+ }
41
+
42
+ const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
43
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
44
+ const Comp = asChild ? Slot : "button"
45
+ return (
46
+ <Comp
47
+ className={cn(buttonVariants({ variant, size, className }))}
48
+ ref={ref}
49
+ {...props}
50
+ />
51
+ )
52
+ }
53
+ )
54
+ Button.displayName = "Button"
55
+
56
+ export { Button, buttonVariants }
frontend/src/components/ui/input.tsx ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as React from "react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ export interface InputProps
6
+ extends React.InputHTMLAttributes<HTMLInputElement> {}
7
+
8
+ const Input = React.forwardRef<HTMLInputElement, InputProps>(
9
+ ({ className, type, ...props }, ref) => {
10
+ return (
11
+ <input
12
+ type={type}
13
+ className={cn(
14
+ "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
15
+ className
16
+ )}
17
+ ref={ref}
18
+ {...props}
19
+ />
20
+ )
21
+ }
22
+ )
23
+ Input.displayName = "Input"
24
+
25
+ export { Input }
frontend/src/index.css ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ .playground-container {
6
+ max-height: 750px; /* Adjust based on your needs */
7
+ min-height :750px;
8
+ min-width: 1000px;
9
+ max-width: 1000px;
10
+ overflow-y: auto; /* Enables vertical scrolling */
11
+
12
+ position: fixed;
13
+ bottom: 125px; /* 20px from the bottom */
14
+ right: 500px; /* 20px from the right */
15
+
16
+
17
+ }
18
+
19
+
20
+ @layer base {
21
+ :root {
22
+ --background: 0 0% 100%;
23
+ --foreground: 222.2 84% 4.9%;
24
+
25
+ --card: 0 0% 100%;
26
+ --card-foreground: 222.2 84% 4.9%;
27
+
28
+ --popover: 0 0% 100%;
29
+ --popover-foreground: 222.2 84% 4.9%;
30
+
31
+ --primary: 222.2 47.4% 11.2%;
32
+ --primary-foreground: 210 40% 98%;
33
+
34
+ --secondary: 210 40% 96.1%;
35
+ --secondary-foreground: 222.2 47.4% 11.2%;
36
+
37
+ --muted: 210 40% 96.1%;
38
+ --muted-foreground: 215.4 16.3% 46.9%;
39
+
40
+ --accent: 210 40% 96.1%;
41
+ --accent-foreground: 222.2 47.4% 11.2%;
42
+
43
+ --destructive: 0 84.2% 60.2%;
44
+ --destructive-foreground: 210 40% 98%;
45
+
46
+ --border: 214.3 31.8% 91.4%;
47
+ --input: 214.3 31.8% 91.4%;
48
+ --ring: 222.2 84% 4.9%;
49
+
50
+ --radius: 0.5rem;
51
+ }
52
+
53
+ .dark {
54
+ --background: 222.2 84% 4.9%;
55
+ --foreground: 210 40% 98%;
56
+
57
+ --card: 222.2 84% 4.9%;
58
+ --card-foreground: 210 40% 98%;
59
+
60
+ --popover: 222.2 84% 4.9%;
61
+ --popover-foreground: 210 40% 98%;
62
+
63
+ --primary: 210 40% 98%;
64
+ --primary-foreground: 222.2 47.4% 11.2%;
65
+
66
+ --secondary: 217.2 32.6% 17.5%;
67
+ --secondary-foreground: 210 40% 98%;
68
+
69
+ --muted: 217.2 32.6% 17.5%;
70
+ --muted-foreground: 215 20.2% 65.1%;
71
+
72
+ --accent: 217.2 32.6% 17.5%;
73
+ --accent-foreground: 210 40% 98%;
74
+
75
+ --destructive: 0 62.8% 30.6%;
76
+ --destructive-foreground: 210 40% 98%;
77
+
78
+ --border: 217.2 32.6% 17.5%;
79
+ --input: 217.2 32.6% 17.5%;
80
+ --ring: 212.7 26.8% 83.9%;
81
+ }
82
+ }
83
+
84
+ @layer base {
85
+ * {
86
+ @apply border-border;
87
+ }
88
+ body {
89
+ @apply bg-background text-foreground;
90
+ }
91
+ }
frontend/src/lib/utils.ts ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import { type ClassValue, clsx } from "clsx"
2
+ import { twMerge } from "tailwind-merge"
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs))
6
+ }
frontend/src/main.tsx ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from "react";
2
+ import ReactDOM from "react-dom/client";
3
+ import App from "./App.tsx";
4
+ import { RecoilRoot } from "recoil";
5
+ import "./index.css";
6
+
7
+ ReactDOM.createRoot(document.getElementById("root")!).render(
8
+ <React.StrictMode>
9
+ <RecoilRoot>
10
+ <App />
11
+ </RecoilRoot>
12
+ </React.StrictMode>
13
+ );
frontend/src/vite-env.d.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ /// <reference types="vite/client" />
frontend/tailwind.config.js ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ darkMode: ["class"],
4
+ content: [
5
+ './pages/**/*.{ts,tsx}',
6
+ './components/**/*.{ts,tsx}',
7
+ './app/**/*.{ts,tsx}',
8
+ './src/**/*.{ts,tsx}',
9
+ ],
10
+ theme: {
11
+ container: {
12
+ center: true,
13
+ padding: "2rem",
14
+ screens: {
15
+ "2xl": "1280px",
16
+ },
17
+ },
18
+ extend: {
19
+ colors: {
20
+ border: "hsl(var(--border))",
21
+ input: "hsl(var(--input))",
22
+ ring: "hsl(var(--ring))",
23
+ background: "hsl(var(--background))",
24
+ foreground: "hsl(var(--foreground))",
25
+ primary: {
26
+ DEFAULT: "hsl(var(--primary))",
27
+ foreground: "hsl(var(--primary-foreground))",
28
+ },
29
+ secondary: {
30
+ DEFAULT: "hsl(var(--secondary))",
31
+ foreground: "hsl(var(--secondary-foreground))",
32
+ },
33
+ destructive: {
34
+ DEFAULT: "hsl(var(--destructive))",
35
+ foreground: "hsl(var(--destructive-foreground))",
36
+ },
37
+ muted: {
38
+ DEFAULT: "hsl(var(--muted))",
39
+ foreground: "hsl(var(--muted-foreground))",
40
+ },
41
+ accent: {
42
+ DEFAULT: "hsl(var(--accent))",
43
+ foreground: "hsl(var(--accent-foreground))",
44
+ },
45
+ popover: {
46
+ DEFAULT: "hsl(var(--popover))",
47
+ foreground: "hsl(var(--popover-foreground))",
48
+ },
49
+ card: {
50
+ DEFAULT: "hsl(var(--card))",
51
+ foreground: "hsl(var(--card-foreground))",
52
+ },
53
+ },
54
+ borderRadius: {
55
+ lg: "var(--radius)",
56
+ md: "calc(var(--radius) - 2px)",
57
+ sm: "calc(var(--radius) - 4px)",
58
+ },
59
+ keyframes: {
60
+ "accordion-down": {
61
+ from: { height: 0 },
62
+ to: { height: "var(--radix-accordion-content-height)" },
63
+ },
64
+ "accordion-up": {
65
+ from: { height: "var(--radix-accordion-content-height)" },
66
+ to: { height: 0 },
67
+ },
68
+ },
69
+ animation: {
70
+ "accordion-down": "accordion-down 0.2s ease-out",
71
+ "accordion-up": "accordion-up 0.2s ease-out",
72
+ },
73
+ },
74
+ },
75
+ plugins: [require("tailwindcss-animate")],
76
+ }
frontend/tsconfig.json ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
6
+ "module": "ESNext",
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "noEmit": true,
15
+ "jsx": "react-jsx",
16
+
17
+ "baseUrl": ".",
18
+ "paths": {
19
+ "@/*": ["./src/*"]
20
+ },
21
+
22
+ /* Linting */
23
+ "strict": true,
24
+ "noUnusedLocals": true,
25
+ "noUnusedParameters": true,
26
+ "noFallthroughCasesInSwitch": true
27
+ },
28
+ "include": ["src"],
29
+ "references": [{ "path": "./tsconfig.node.json" }]
30
+ }
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,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import path from "path";
2
+ import react from "@vitejs/plugin-react-swc";
3
+ import { defineConfig } from "vite";
4
+
5
+ export default defineConfig({
6
+ plugins: [react()],
7
+ resolve: {
8
+ alias: {
9
+ "@": path.resolve(__dirname, "./src"),
10
+ },
11
+ },
12
+ });
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ chainlit
2
+ langroid
3
+ uvicorn
4
+ openai
run.sh ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+
4
+ cd backend
5
+ # Start FastAPI app in the background on port 8000
6
+ uvicorn app:app --host 0.0.0.0 --port 8000 --reload &
7
+ # Start Nginx
8
+ nginx -g 'daemon off;'