anzorq commited on
Commit
f817b5c
β€’
1 Parent(s): 46adb1c

~working mvp

Browse files
README.md CHANGED
@@ -14,9 +14,9 @@ pnpm dev
14
 
15
  Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
16
 
17
- You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.
18
 
19
- [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
20
 
21
  The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
22
 
 
14
 
15
  Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
16
 
17
+ You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file.
18
 
19
+ [API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.js`.
20
 
21
  The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
22
 
components/card.jsx ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from 'react';
2
+
3
+ const tailwindColors = {
4
+ red: '#dc2626',
5
+ yellow: '#d97706',
6
+ green: '#16a34a',
7
+ blue: '#2563eb',
8
+ indigo: '#4f46e5',
9
+ purple: '#7c3aed',
10
+ pink: '#db2777',
11
+ gray: '#4b5563',
12
+ };
13
+
14
+ const Card = ({
15
+ space_id,
16
+ author,
17
+ title,
18
+ description,
19
+ emoji,
20
+ lastModified,
21
+ colorFrom,
22
+ colorTo,
23
+ likes,
24
+ sdk,
25
+ runtimeStage,
26
+ currentHardware,
27
+ }) => {
28
+ const gradientStyle = {
29
+ background: `linear-gradient(to bottom right, ${tailwindColors[colorFrom]}, ${tailwindColors[colorTo]})`,
30
+ };
31
+
32
+ const spaceUrl = `https://huggingface.co/spaces/${space_id}`;
33
+
34
+ let runtimeStageIcon = null;
35
+ if (runtimeStage === 'STOPPED') {
36
+ runtimeStageIcon = <svg class="mr-0.5" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1.1em" height="1.1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32">
37
+ <rect x="11" y="9" width="2" height="14" fill="currentColor" />
38
+ <rect x="19" y="9" width="2" height="14" fill="currentColor" />
39
+ </svg>;
40
+ } else if (runtimeStage.includes('ERROR')) {
41
+ runtimeStageIcon = <svg class="mr-0.5" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1.1em" height="1.1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M24 9.4L22.6 8L16 14.6L9.4 8L8 9.4l6.6 6.6L8 22.6L9.4 24l6.6-6.6l6.6 6.6l1.4-1.4l-6.6-6.6L24 9.4z" fill="currentColor"></path></svg>;
42
+ }
43
+
44
+ return (
45
+ <div className="flex flex-col">
46
+ <a href={spaceUrl} target="_blank" rel="noopener noreferrer">
47
+ <div className="text-sm truncate px-2 py-1 w-full font-bold text-clip">
48
+ {emoji}{title}
49
+ </div>
50
+ </a>
51
+
52
+ <a href={spaceUrl} target="_blank" rel="noopener noreferrer">
53
+ <div
54
+ className={`relative z-0 mx-auto flex flex-col items-center justify-center p-4 filter hover:brightness-110 overflow-hidden h-52 rounded-lg`}
55
+ style={gradientStyle}
56
+ >
57
+ <div className="flex justify-between items-center w-full">
58
+ <div className="right-16 flex flex-wrap content-start gap-1.5 overflow-hidden top-3 left-3 text-xs">
59
+ <div className={`inline-flex select-none items-center overflow-hidden font-mono rounded bg-white/10 px-1 py-0 leading-tight text-white opacity-80`}>
60
+ {runtimeStageIcon}
61
+ <strong>{runtimeStage}</strong>
62
+ <span className="mx-1">on</span>
63
+ <strong>{currentHardware}</strong>
64
+ </div>
65
+ <div className="inline-flex select-none items-center overflow-hidden font-mono rounded bg-white/10 px-1 py-0 leading-tight text-white opacity-80">
66
+ <span>{lastModified}</span>
67
+ </div>
68
+ </div>
69
+ <div className="flex items-center">
70
+ <svg className="mr-1.5 text-white" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32" fill="currentColor">
71
+ <path d="M22.45,6a5.47,5.47,0,0,1,3.91,1.64,5.7,5.7,0,0,1,0,8L16,26.13,5.64,15.64a5.7,5.7,0,0,1,0-8,5.48,5.48,0,0,1,7.82,0L16,10.24l2.53-2.58A5.44,5.44,0,0,1,22.45,6m0-2a7.47,7.47,0,0,0-5.34,2.24L16,7.36,14.89,6.24a7.49,7.49,0,0,0-10.68,0,7.72,7.72,0,0,0,0,10.82L16,29,27.79,17.06a7.72,7.72,0,0,0,0-10.82A7.49,7.49,0,0,0,22.45,4Z"></path>
72
+ </svg>
73
+ <span className="text-white text-sm">{likes}</span>
74
+ </div>
75
+ </div>
76
+ <div className="flex items-center h-full">
77
+ <p className="text-white text-base text-center font-semibold text-ellipsis overflow-hidden">
78
+ {description}
79
+ </p>
80
+ </div>
81
+ </div>
82
+ </a>
83
+ </div>
84
+ );
85
+ };
86
+
87
+ export default Card;
components/card.tsx DELETED
@@ -1,41 +0,0 @@
1
- import React from 'react';
2
-
3
- interface CardProps {
4
- username: string;
5
- title: string;
6
- description: string;
7
- emoji: string;
8
- colorFrom: string;
9
- colorTo: string;
10
- updateDate: string;
11
- numLikes: number;
12
- }
13
-
14
- const Card: React.FC<CardProps> = ({
15
- username,
16
- title,
17
- description,
18
- emoji,
19
- colorFrom,
20
- colorTo,
21
- updateDate,
22
- numLikes,
23
- }) => {
24
- return (
25
- <div
26
- className={`bg-gradient-to-br from-${colorFrom}-500 to-${colorTo}-500 rounded-lg p-6 flex flex-col justify-between h-72`}
27
- >
28
- <div className="flex justify-between items-center">
29
- <h2 className="text-xl font-bold">{emoji}{username}/{title}</h2>
30
- <div className="flex items-center">
31
- <span>{numLikes}🀍</span>
32
- </div>
33
- </div>
34
- <div className="flex items-center h-full">
35
- <p className="text-2xl">{description}</p>
36
- </div>
37
- </div>
38
- );
39
- };
40
-
41
- export default Card;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
components/searchBar.jsx ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React, { useState, useEffect } from "react";
2
+
3
+ const SearchBar = ({ onSearch }) => {
4
+ const [query, setQuery] = useState("");
5
+ const [placeholderIndex, setPlaceholderIndex] = useState(0);
6
+ const [placeholder, setPlaceholder] = useState("");
7
+ const placeholders = [
8
+ "Generate music",
9
+ "Remove background from images",
10
+ "Translate text",
11
+ "Generate anime images",
12
+ "Recognize objects in images",
13
+ "Perform sentiment analysis",
14
+ "Help me pick a laptop",
15
+ "Face recognition",
16
+ "Drawing canvas",
17
+ "Create 3D objects from images",
18
+ "Play a text-based game",
19
+ "Predict stock prices",
20
+ "Recommend movies",
21
+ "Image classification",
22
+ "Summarize text",
23
+ "Generate video from text and audio",
24
+ "Help me organize a trip",
25
+ ];
26
+
27
+ useEffect(() => {
28
+ let typingInterval;
29
+ if (placeholder.length < placeholders[placeholderIndex].length) {
30
+ typingInterval = setInterval(() => {
31
+ setPlaceholder(prevPlaceholder => prevPlaceholder + placeholders[placeholderIndex][placeholder.length]);
32
+ }, 100); // The typing speed
33
+ }
34
+ return () => clearInterval(typingInterval);
35
+ }, [placeholder, placeholderIndex]);
36
+
37
+ useEffect(() => {
38
+ const indexInterval = setInterval(() => {
39
+ if (placeholder === placeholders[placeholderIndex]) {
40
+ setPlaceholderIndex(Math.floor(Math.random() * placeholders.length));
41
+ setPlaceholder(""); // reset the placeholder when the index changes
42
+ }
43
+ }, 1000);
44
+
45
+ return () => clearInterval(indexInterval);
46
+ }, [placeholder, placeholderIndex]);
47
+
48
+ const handleKeyDown = (event) => {
49
+ if (event.key === "Enter") {
50
+ onSearch(query);
51
+ }
52
+ };
53
+
54
+ return (
55
+ <div className="flex items-center justify-center bg-gray-900 rounded-md shadow-sm md:w-1/2 h-12">
56
+ <input
57
+ type="text"
58
+ placeholder={placeholder}
59
+ className="search-bar w-full h-full px-4 py-2 text-gray-200 bg-gray-800 border border-gray-700 rounded-md shadow-sm appearance-none focus:outline-none focus:ring-2"
60
+ value={query}
61
+ onChange={(e) => setQuery(e.target.value)}
62
+ onKeyDown={handleKeyDown}
63
+ />
64
+ </div>
65
+ );
66
+ };
67
+
68
+ export default SearchBar;
components/searchBar.tsx DELETED
@@ -1,30 +0,0 @@
1
- import React, { useState } from "react";
2
-
3
- interface SearchBarProps {
4
- onSearch: (query: string) => void;
5
- }
6
-
7
- const SearchBar: React.FC<SearchBarProps> = ({ onSearch }) => {
8
- const [query, setQuery] = useState("");
9
-
10
- const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
11
- if (event.key === "Enter") {
12
- onSearch(query);
13
- }
14
- };
15
-
16
- return (
17
- <div className="flex items-center justify-center bg-gray-900">
18
- <input
19
- type="text"
20
- placeholder="Search"
21
- className="w-64 px-4 py-2 text-gray-200 bg-gray-800 border border-gray-700 rounded-md shadow-sm appearance-none focus:outline-none focus:ring-2"
22
- value={query}
23
- onChange={(e) => setQuery(e.target.value)}
24
- onKeyDown={handleKeyDown}
25
- />
26
- </div>
27
- );
28
- };
29
-
30
- export default SearchBar;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
jsconfig.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@/*": ["./*"]
5
+ }
6
+ }
7
+ }
package-lock.json CHANGED
The diff for this file is too large to render. See raw diff
 
package.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "name": "my-app",
3
  "version": "0.1.0",
4
  "private": true,
5
  "scripts": {
@@ -9,15 +9,15 @@
9
  "lint": "next lint"
10
  },
11
  "dependencies": {
12
- "@types/node": "20.2.3",
13
- "@types/react": "18.2.7",
14
- "@types/react-dom": "18.2.4",
15
  "autoprefixer": "10.4.14",
 
 
16
  "next": "13.4.3",
 
17
  "postcss": "8.4.23",
18
  "react": "18.2.0",
19
  "react-dom": "18.2.0",
20
- "tailwindcss": "3.3.2",
21
- "typescript": "5.0.4"
22
  }
23
  }
 
1
  {
2
+ "name": "js-app",
3
  "version": "0.1.0",
4
  "private": true,
5
  "scripts": {
 
9
  "lint": "next lint"
10
  },
11
  "dependencies": {
12
+ "@gradio/client": "^0.1.1",
 
 
13
  "autoprefixer": "10.4.14",
14
+ "dayjs": "^1.11.7",
15
+ "net": "^1.0.2",
16
  "next": "13.4.3",
17
+ "npx": "^10.2.2",
18
  "postcss": "8.4.23",
19
  "react": "18.2.0",
20
  "react-dom": "18.2.0",
21
+ "tailwindcss": "3.3.2"
 
22
  }
23
  }
pages/{_app.tsx β†’ _app.js} RENAMED
@@ -1,6 +1,5 @@
1
  import '@/styles/globals.css'
2
- import type { AppProps } from 'next/app'
3
 
4
- export default function App({ Component, pageProps }: AppProps) {
5
  return <Component {...pageProps} />
6
  }
 
1
  import '@/styles/globals.css'
 
2
 
3
+ export default function App({ Component, pageProps }) {
4
  return <Component {...pageProps} />
5
  }
pages/{_document.tsx β†’ _document.js} RENAMED
File without changes
pages/api/api_hf.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ const predict = async (query, num_results=10) => {
3
+ try {
4
+
5
+ const response = await fetch("https://anzorq-spaces-semantic-search-api.hf.space/api/search", {
6
+ method: "POST",
7
+ headers: {
8
+ "Content-Type": "application/json",
9
+ },
10
+ body: JSON.stringify({ data: [query.trim(), num_results] }),
11
+ })
12
+ const json = await response.json()
13
+ // console.debug("API response: ", json)
14
+ return json.data[0].data
15
+ } catch (error) {
16
+ console.error(error)
17
+ throw error
18
+ }
19
+ }
20
+
21
+ export { predict }
pages/api/hello.ts DELETED
@@ -1,13 +0,0 @@
1
- // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2
- import type { NextApiRequest, NextApiResponse } from 'next'
3
-
4
- type Data = {
5
- name: string
6
- }
7
-
8
- export default function handler(
9
- req: NextApiRequest,
10
- res: NextApiResponse<Data>
11
- ) {
12
- res.status(200).json({ name: 'John Doe' })
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pages/api/hf_space.js ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ const get_space_info = async (space_id) => {
3
+ try {
4
+ const response = await fetch(`https://huggingface.co/api/spaces/${space_id}`)
5
+ const json = await response.json()
6
+
7
+ if (json.error) {
8
+ return null
9
+ }
10
+
11
+ const dayjs = require('dayjs')
12
+ const relativeTime = require('dayjs/plugin/relativeTime')
13
+ dayjs.extend(relativeTime)
14
+ const lastModified = dayjs(json.lastModified).fromNow()
15
+
16
+ const author = json.author
17
+ const title = json.cardData.title || 'Untitled'
18
+ const emoji = json.cardData.emoji
19
+ let colorFrom = json.cardData.colorFrom || 'pink'
20
+ let colorTo = json.cardData.colorTo || 'purple'
21
+ const likes = json.likes
22
+ const sdk = json.sdk
23
+ const runtime_stage = json.runtime.stage
24
+ const current_hardware = json.runtime.hardware.current
25
+
26
+ const colors = ['red', 'yellow', 'green', 'blue', 'indigo', 'purple', 'pink', 'gray']
27
+ if (!colors.includes(colorFrom)) {
28
+ colorFrom = 'pink'
29
+ }
30
+ if (!colors.includes(colorTo)) {
31
+ colorTo = 'purple'
32
+ }
33
+
34
+ const result = { space_id, author, title, emoji, lastModified, colorFrom, colorTo, likes, sdk, runtime_stage, current_hardware }
35
+
36
+ console.debug("API response: ", result)
37
+
38
+ return result
39
+
40
+ } catch (error) {
41
+ console.error(error)
42
+ throw error
43
+ }
44
+ }
45
+
46
+ export { get_space_info }
pages/index.js ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Inter } from 'next/font/google';
2
+ import SearchBar from '@/components/searchBar';
3
+ import Card from '@/components/card';
4
+ import { predict } from '@/pages/api/api_hf';
5
+ import { get_space_info } from '@/pages/api/hf_space';
6
+ import { useState, useEffect } from 'react';
7
+
8
+ const inter = Inter({ subsets: ['latin'] });
9
+
10
+ export default function Home() {
11
+ const [spaceInfo, setSpaceInfo] = useState(null);
12
+ const [searchResults, setSearchResults] = useState([]);
13
+
14
+ useEffect(() => {
15
+ async function fetchSpaceInfo(results) {
16
+ const spacePromises = results.map(async (result) => {
17
+ const [id, description] = result;
18
+ const space = await get_space_info(id);
19
+ if (space === null) {
20
+ return null;
21
+ }
22
+ space.description = description;
23
+ return space;
24
+ });
25
+ const spaceData = await Promise.all(spacePromises);
26
+ setSpaceInfo(spaceData);
27
+ }
28
+
29
+ if (searchResults.length > 0) {
30
+ fetchSpaceInfo(searchResults);
31
+ } else {
32
+ setSpaceInfo(null);
33
+ }
34
+ }, [searchResults]);
35
+
36
+ async function onSearch(query) {
37
+ if (query === '') {
38
+ setSearchResults([]);
39
+ return;
40
+ }
41
+ const results = await predict(query, 90);
42
+ setSearchResults(results);
43
+ }
44
+
45
+ useEffect(() => {
46
+ const focusSearchBar = () => {
47
+ document.querySelector('.search-bar').focus();
48
+ };
49
+
50
+ focusSearchBar();
51
+ }, []);
52
+
53
+ return (
54
+ <main className={`flex min-h-screen flex-col items-center justify-between p-8 md:p-24 ${inter.className}`}>
55
+ <SearchBar onSearch={onSearch} />
56
+ {spaceInfo !== null && (
57
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 w-full mt-8">
58
+ {spaceInfo.map((space, index) => space && (
59
+ <Card
60
+ key={index}
61
+ space_id={space.space_id}
62
+ author={space.author}
63
+ title={space.title}
64
+ description={space.description}
65
+ emoji={space.emoji}
66
+ lastModified={space.lastModified}
67
+ colorFrom={space.colorFrom}
68
+ colorTo={space.colorTo}
69
+ likes={space.likes}
70
+ sdk={space.sdk}
71
+ runtimeStage={space.runtime_stage}
72
+ currentHardware={space.current_hardware}
73
+ />
74
+ ))}
75
+ </div>
76
+ )}
77
+ </main>
78
+ );
79
+ }
pages/index.tsx DELETED
@@ -1,29 +0,0 @@
1
- import { Inter } from 'next/font/google'
2
- import SearchBar from '@/components/searchBar'
3
- import Card from '@/components/card'
4
-
5
- const inter = Inter({ subsets: ['latin'] })
6
-
7
- export default function Home() {
8
- function onSearch(query: string): void {
9
- alert(`Searching for ${query}`)
10
- }
11
-
12
- return (
13
- <main
14
- className={`flex min-h-screen flex-col items-center justify-between p-24 ${inter.className}`}
15
- >
16
- <SearchBar onSearch={onSearch} />
17
- <Card
18
- username='anzorq'
19
- title='zedzek'
20
- description='Circassian translator demo'
21
- emoji='πŸ’¬'
22
- colorFrom='green'
23
- colorTo='yellow'
24
- updateDate='19 days'
25
- numLikes={5}
26
- />
27
- </main>
28
- )
29
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pnpm-lock.yaml ADDED
@@ -0,0 +1,905 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ lockfileVersion: '6.0'
2
+
3
+ dependencies:
4
+ '@gradio/client':
5
+ specifier: ^0.1.1
6
+ version: 0.1.1
7
+ autoprefixer:
8
+ specifier: 10.4.14
9
+ version: 10.4.14(postcss@8.4.23)
10
+ next:
11
+ specifier: 13.4.3
12
+ version: 13.4.3(react-dom@18.2.0)(react@18.2.0)
13
+ postcss:
14
+ specifier: 8.4.23
15
+ version: 8.4.23
16
+ react:
17
+ specifier: 18.2.0
18
+ version: 18.2.0
19
+ react-dom:
20
+ specifier: 18.2.0
21
+ version: 18.2.0(react@18.2.0)
22
+ tailwindcss:
23
+ specifier: 3.3.2
24
+ version: 3.3.2
25
+
26
+ packages:
27
+
28
+ /@alloc/quick-lru@5.2.0:
29
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
30
+ engines: {node: '>=10'}
31
+ dev: false
32
+
33
+ /@gradio/client@0.1.1:
34
+ resolution: {integrity: sha512-BasdCFnRVyaXQwibJ9fxVsGDLYpH7YV9yhklE0KL2xQvVh+nyNgeJYoa735b7MatJxkfq3/Sqw700oPUrDXh3w==}
35
+ engines: {node: '>=18.0.0'}
36
+ dependencies:
37
+ bufferutil: 4.0.7
38
+ semiver: 1.1.0
39
+ ws: 8.13.0(bufferutil@4.0.7)
40
+ transitivePeerDependencies:
41
+ - utf-8-validate
42
+ dev: false
43
+
44
+ /@jridgewell/gen-mapping@0.3.3:
45
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
46
+ engines: {node: '>=6.0.0'}
47
+ dependencies:
48
+ '@jridgewell/set-array': 1.1.2
49
+ '@jridgewell/sourcemap-codec': 1.4.15
50
+ '@jridgewell/trace-mapping': 0.3.18
51
+ dev: false
52
+
53
+ /@jridgewell/resolve-uri@3.1.0:
54
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
55
+ engines: {node: '>=6.0.0'}
56
+ dev: false
57
+
58
+ /@jridgewell/set-array@1.1.2:
59
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
60
+ engines: {node: '>=6.0.0'}
61
+ dev: false
62
+
63
+ /@jridgewell/sourcemap-codec@1.4.14:
64
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
65
+ dev: false
66
+
67
+ /@jridgewell/sourcemap-codec@1.4.15:
68
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
69
+ dev: false
70
+
71
+ /@jridgewell/trace-mapping@0.3.18:
72
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
73
+ dependencies:
74
+ '@jridgewell/resolve-uri': 3.1.0
75
+ '@jridgewell/sourcemap-codec': 1.4.14
76
+ dev: false
77
+
78
+ /@next/env@13.4.3:
79
+ resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==}
80
+ dev: false
81
+
82
+ /@next/swc-darwin-arm64@13.4.3:
83
+ resolution: {integrity: sha512-yx18udH/ZmR4Bw4M6lIIPE3JxsAZwo04iaucEfA2GMt1unXr2iodHUX/LAKNyi6xoLP2ghi0E+Xi1f4Qb8f1LQ==}
84
+ engines: {node: '>= 10'}
85
+ cpu: [arm64]
86
+ os: [darwin]
87
+ requiresBuild: true
88
+ dev: false
89
+ optional: true
90
+
91
+ /@next/swc-darwin-x64@13.4.3:
92
+ resolution: {integrity: sha512-Mi8xJWh2IOjryAM1mx18vwmal9eokJ2njY4nDh04scy37F0LEGJ/diL6JL6kTXi0UfUCGbMsOItf7vpReNiD2A==}
93
+ engines: {node: '>= 10'}
94
+ cpu: [x64]
95
+ os: [darwin]
96
+ requiresBuild: true
97
+ dev: false
98
+ optional: true
99
+
100
+ /@next/swc-linux-arm64-gnu@13.4.3:
101
+ resolution: {integrity: sha512-aBvtry4bxJ1xwKZ/LVPeBGBwWVwxa4bTnNkRRw6YffJnn/f4Tv4EGDPaVeYHZGQVA56wsGbtA6nZMuWs/EIk4Q==}
102
+ engines: {node: '>= 10'}
103
+ cpu: [arm64]
104
+ os: [linux]
105
+ requiresBuild: true
106
+ dev: false
107
+ optional: true
108
+
109
+ /@next/swc-linux-arm64-musl@13.4.3:
110
+ resolution: {integrity: sha512-krT+2G3kEsEUvZoYte3/2IscscDraYPc2B+fDJFipPktJmrv088Pei/RjrhWm5TMIy5URYjZUoDZdh5k940Dyw==}
111
+ engines: {node: '>= 10'}
112
+ cpu: [arm64]
113
+ os: [linux]
114
+ requiresBuild: true
115
+ dev: false
116
+ optional: true
117
+
118
+ /@next/swc-linux-x64-gnu@13.4.3:
119
+ resolution: {integrity: sha512-AMdFX6EKJjC0G/CM6hJvkY8wUjCcbdj3Qg7uAQJ7PVejRWaVt0sDTMavbRfgMchx8h8KsAudUCtdFkG9hlEClw==}
120
+ engines: {node: '>= 10'}
121
+ cpu: [x64]
122
+ os: [linux]
123
+ requiresBuild: true
124
+ dev: false
125
+ optional: true
126
+
127
+ /@next/swc-linux-x64-musl@13.4.3:
128
+ resolution: {integrity: sha512-jySgSXE48shaLtcQbiFO9ajE9mqz7pcAVLnVLvRIlUHyQYR/WyZdK8ehLs65Mz6j9cLrJM+YdmdJPyV4WDaz2g==}
129
+ engines: {node: '>= 10'}
130
+ cpu: [x64]
131
+ os: [linux]
132
+ requiresBuild: true
133
+ dev: false
134
+ optional: true
135
+
136
+ /@next/swc-win32-arm64-msvc@13.4.3:
137
+ resolution: {integrity: sha512-5DxHo8uYcaADiE9pHrg8o28VMt/1kR8voDehmfs9AqS0qSClxAAl+CchjdboUvbCjdNWL1MISCvEfKY2InJ3JA==}
138
+ engines: {node: '>= 10'}
139
+ cpu: [arm64]
140
+ os: [win32]
141
+ requiresBuild: true
142
+ dev: false
143
+ optional: true
144
+
145
+ /@next/swc-win32-ia32-msvc@13.4.3:
146
+ resolution: {integrity: sha512-LaqkF3d+GXRA5X6zrUjQUrXm2MN/3E2arXBtn5C7avBCNYfm9G3Xc646AmmmpN3DJZVaMYliMyCIQCMDEzk80w==}
147
+ engines: {node: '>= 10'}
148
+ cpu: [ia32]
149
+ os: [win32]
150
+ requiresBuild: true
151
+ dev: false
152
+ optional: true
153
+
154
+ /@next/swc-win32-x64-msvc@13.4.3:
155
+ resolution: {integrity: sha512-jglUk/x7ZWeOJWlVoKyIAkHLTI+qEkOriOOV+3hr1GyiywzcqfI7TpFSiwC7kk1scOiH7NTFKp8mA3XPNO9bDw==}
156
+ engines: {node: '>= 10'}
157
+ cpu: [x64]
158
+ os: [win32]
159
+ requiresBuild: true
160
+ dev: false
161
+ optional: true
162
+
163
+ /@nodelib/fs.scandir@2.1.5:
164
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
165
+ engines: {node: '>= 8'}
166
+ dependencies:
167
+ '@nodelib/fs.stat': 2.0.5
168
+ run-parallel: 1.2.0
169
+ dev: false
170
+
171
+ /@nodelib/fs.stat@2.0.5:
172
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
173
+ engines: {node: '>= 8'}
174
+ dev: false
175
+
176
+ /@nodelib/fs.walk@1.2.8:
177
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
178
+ engines: {node: '>= 8'}
179
+ dependencies:
180
+ '@nodelib/fs.scandir': 2.1.5
181
+ fastq: 1.15.0
182
+ dev: false
183
+
184
+ /@swc/helpers@0.5.1:
185
+ resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
186
+ dependencies:
187
+ tslib: 2.5.2
188
+ dev: false
189
+
190
+ /any-promise@1.3.0:
191
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
192
+ dev: false
193
+
194
+ /anymatch@3.1.3:
195
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
196
+ engines: {node: '>= 8'}
197
+ dependencies:
198
+ normalize-path: 3.0.0
199
+ picomatch: 2.3.1
200
+ dev: false
201
+
202
+ /arg@5.0.2:
203
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
204
+ dev: false
205
+
206
+ /autoprefixer@10.4.14(postcss@8.4.23):
207
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
208
+ engines: {node: ^10 || ^12 || >=14}
209
+ hasBin: true
210
+ peerDependencies:
211
+ postcss: ^8.1.0
212
+ dependencies:
213
+ browserslist: 4.21.5
214
+ caniuse-lite: 1.0.30001489
215
+ fraction.js: 4.2.0
216
+ normalize-range: 0.1.2
217
+ picocolors: 1.0.0
218
+ postcss: 8.4.23
219
+ postcss-value-parser: 4.2.0
220
+ dev: false
221
+
222
+ /balanced-match@1.0.2:
223
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
224
+ dev: false
225
+
226
+ /binary-extensions@2.2.0:
227
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
228
+ engines: {node: '>=8'}
229
+ dev: false
230
+
231
+ /brace-expansion@1.1.11:
232
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
233
+ dependencies:
234
+ balanced-match: 1.0.2
235
+ concat-map: 0.0.1
236
+ dev: false
237
+
238
+ /braces@3.0.2:
239
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
240
+ engines: {node: '>=8'}
241
+ dependencies:
242
+ fill-range: 7.0.1
243
+ dev: false
244
+
245
+ /browserslist@4.21.5:
246
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
247
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
248
+ hasBin: true
249
+ dependencies:
250
+ caniuse-lite: 1.0.30001489
251
+ electron-to-chromium: 1.4.407
252
+ node-releases: 2.0.12
253
+ update-browserslist-db: 1.0.11(browserslist@4.21.5)
254
+ dev: false
255
+
256
+ /bufferutil@4.0.7:
257
+ resolution: {integrity: sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==}
258
+ engines: {node: '>=6.14.2'}
259
+ requiresBuild: true
260
+ dependencies:
261
+ node-gyp-build: 4.6.0
262
+ dev: false
263
+
264
+ /busboy@1.6.0:
265
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
266
+ engines: {node: '>=10.16.0'}
267
+ dependencies:
268
+ streamsearch: 1.1.0
269
+ dev: false
270
+
271
+ /camelcase-css@2.0.1:
272
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
273
+ engines: {node: '>= 6'}
274
+ dev: false
275
+
276
+ /caniuse-lite@1.0.30001489:
277
+ resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==}
278
+ dev: false
279
+
280
+ /chokidar@3.5.3:
281
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
282
+ engines: {node: '>= 8.10.0'}
283
+ dependencies:
284
+ anymatch: 3.1.3
285
+ braces: 3.0.2
286
+ glob-parent: 5.1.2
287
+ is-binary-path: 2.1.0
288
+ is-glob: 4.0.3
289
+ normalize-path: 3.0.0
290
+ readdirp: 3.6.0
291
+ optionalDependencies:
292
+ fsevents: 2.3.2
293
+ dev: false
294
+
295
+ /client-only@0.0.1:
296
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
297
+ dev: false
298
+
299
+ /commander@4.1.1:
300
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
301
+ engines: {node: '>= 6'}
302
+ dev: false
303
+
304
+ /concat-map@0.0.1:
305
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
306
+ dev: false
307
+
308
+ /cssesc@3.0.0:
309
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
310
+ engines: {node: '>=4'}
311
+ hasBin: true
312
+ dev: false
313
+
314
+ /didyoumean@1.2.2:
315
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
316
+ dev: false
317
+
318
+ /dlv@1.1.3:
319
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
320
+ dev: false
321
+
322
+ /electron-to-chromium@1.4.407:
323
+ resolution: {integrity: sha512-5smEvFSFYMv90tICOzRVP7Opp98DAC4KW7RRipg3BuNpGbbV3N+x24Zh3sbLb1T5haGtOSy/hrBfXsWnIM9aCg==}
324
+ dev: false
325
+
326
+ /escalade@3.1.1:
327
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
328
+ engines: {node: '>=6'}
329
+ dev: false
330
+
331
+ /fast-glob@3.2.12:
332
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
333
+ engines: {node: '>=8.6.0'}
334
+ dependencies:
335
+ '@nodelib/fs.stat': 2.0.5
336
+ '@nodelib/fs.walk': 1.2.8
337
+ glob-parent: 5.1.2
338
+ merge2: 1.4.1
339
+ micromatch: 4.0.5
340
+ dev: false
341
+
342
+ /fastq@1.15.0:
343
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
344
+ dependencies:
345
+ reusify: 1.0.4
346
+ dev: false
347
+
348
+ /fill-range@7.0.1:
349
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
350
+ engines: {node: '>=8'}
351
+ dependencies:
352
+ to-regex-range: 5.0.1
353
+ dev: false
354
+
355
+ /fraction.js@4.2.0:
356
+ resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
357
+ dev: false
358
+
359
+ /fs.realpath@1.0.0:
360
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
361
+ dev: false
362
+
363
+ /fsevents@2.3.2:
364
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
365
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
366
+ os: [darwin]
367
+ requiresBuild: true
368
+ dev: false
369
+ optional: true
370
+
371
+ /function-bind@1.1.1:
372
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
373
+ dev: false
374
+
375
+ /glob-parent@5.1.2:
376
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
377
+ engines: {node: '>= 6'}
378
+ dependencies:
379
+ is-glob: 4.0.3
380
+ dev: false
381
+
382
+ /glob-parent@6.0.2:
383
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
384
+ engines: {node: '>=10.13.0'}
385
+ dependencies:
386
+ is-glob: 4.0.3
387
+ dev: false
388
+
389
+ /glob@7.1.6:
390
+ resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
391
+ dependencies:
392
+ fs.realpath: 1.0.0
393
+ inflight: 1.0.6
394
+ inherits: 2.0.4
395
+ minimatch: 3.1.2
396
+ once: 1.4.0
397
+ path-is-absolute: 1.0.1
398
+ dev: false
399
+
400
+ /has@1.0.3:
401
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
402
+ engines: {node: '>= 0.4.0'}
403
+ dependencies:
404
+ function-bind: 1.1.1
405
+ dev: false
406
+
407
+ /inflight@1.0.6:
408
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
409
+ dependencies:
410
+ once: 1.4.0
411
+ wrappy: 1.0.2
412
+ dev: false
413
+
414
+ /inherits@2.0.4:
415
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
416
+ dev: false
417
+
418
+ /is-binary-path@2.1.0:
419
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
420
+ engines: {node: '>=8'}
421
+ dependencies:
422
+ binary-extensions: 2.2.0
423
+ dev: false
424
+
425
+ /is-core-module@2.12.1:
426
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
427
+ dependencies:
428
+ has: 1.0.3
429
+ dev: false
430
+
431
+ /is-extglob@2.1.1:
432
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
433
+ engines: {node: '>=0.10.0'}
434
+ dev: false
435
+
436
+ /is-glob@4.0.3:
437
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
438
+ engines: {node: '>=0.10.0'}
439
+ dependencies:
440
+ is-extglob: 2.1.1
441
+ dev: false
442
+
443
+ /is-number@7.0.0:
444
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
445
+ engines: {node: '>=0.12.0'}
446
+ dev: false
447
+
448
+ /jiti@1.18.2:
449
+ resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
450
+ hasBin: true
451
+ dev: false
452
+
453
+ /js-tokens@4.0.0:
454
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
455
+ dev: false
456
+
457
+ /lilconfig@2.1.0:
458
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
459
+ engines: {node: '>=10'}
460
+ dev: false
461
+
462
+ /lines-and-columns@1.2.4:
463
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
464
+ dev: false
465
+
466
+ /loose-envify@1.4.0:
467
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
468
+ hasBin: true
469
+ dependencies:
470
+ js-tokens: 4.0.0
471
+ dev: false
472
+
473
+ /merge2@1.4.1:
474
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
475
+ engines: {node: '>= 8'}
476
+ dev: false
477
+
478
+ /micromatch@4.0.5:
479
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
480
+ engines: {node: '>=8.6'}
481
+ dependencies:
482
+ braces: 3.0.2
483
+ picomatch: 2.3.1
484
+ dev: false
485
+
486
+ /minimatch@3.1.2:
487
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
488
+ dependencies:
489
+ brace-expansion: 1.1.11
490
+ dev: false
491
+
492
+ /mz@2.7.0:
493
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
494
+ dependencies:
495
+ any-promise: 1.3.0
496
+ object-assign: 4.1.1
497
+ thenify-all: 1.6.0
498
+ dev: false
499
+
500
+ /nanoid@3.3.6:
501
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
502
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
503
+ hasBin: true
504
+ dev: false
505
+
506
+ /next@13.4.3(react-dom@18.2.0)(react@18.2.0):
507
+ resolution: {integrity: sha512-FV3pBrAAnAIfOclTvncw9dDohyeuEEXPe5KNcva91anT/rdycWbgtu3IjUj4n5yHnWK8YEPo0vrUecHmnmUNbA==}
508
+ engines: {node: '>=16.8.0'}
509
+ hasBin: true
510
+ peerDependencies:
511
+ '@opentelemetry/api': ^1.1.0
512
+ fibers: '>= 3.1.0'
513
+ node-sass: ^6.0.0 || ^7.0.0
514
+ react: ^18.2.0
515
+ react-dom: ^18.2.0
516
+ sass: ^1.3.0
517
+ peerDependenciesMeta:
518
+ '@opentelemetry/api':
519
+ optional: true
520
+ fibers:
521
+ optional: true
522
+ node-sass:
523
+ optional: true
524
+ sass:
525
+ optional: true
526
+ dependencies:
527
+ '@next/env': 13.4.3
528
+ '@swc/helpers': 0.5.1
529
+ busboy: 1.6.0
530
+ caniuse-lite: 1.0.30001489
531
+ postcss: 8.4.14
532
+ react: 18.2.0
533
+ react-dom: 18.2.0(react@18.2.0)
534
+ styled-jsx: 5.1.1(react@18.2.0)
535
+ zod: 3.21.4
536
+ optionalDependencies:
537
+ '@next/swc-darwin-arm64': 13.4.3
538
+ '@next/swc-darwin-x64': 13.4.3
539
+ '@next/swc-linux-arm64-gnu': 13.4.3
540
+ '@next/swc-linux-arm64-musl': 13.4.3
541
+ '@next/swc-linux-x64-gnu': 13.4.3
542
+ '@next/swc-linux-x64-musl': 13.4.3
543
+ '@next/swc-win32-arm64-msvc': 13.4.3
544
+ '@next/swc-win32-ia32-msvc': 13.4.3
545
+ '@next/swc-win32-x64-msvc': 13.4.3
546
+ transitivePeerDependencies:
547
+ - '@babel/core'
548
+ - babel-plugin-macros
549
+ dev: false
550
+
551
+ /node-gyp-build@4.6.0:
552
+ resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==}
553
+ hasBin: true
554
+ dev: false
555
+
556
+ /node-releases@2.0.12:
557
+ resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==}
558
+ dev: false
559
+
560
+ /normalize-path@3.0.0:
561
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
562
+ engines: {node: '>=0.10.0'}
563
+ dev: false
564
+
565
+ /normalize-range@0.1.2:
566
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
567
+ engines: {node: '>=0.10.0'}
568
+ dev: false
569
+
570
+ /object-assign@4.1.1:
571
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
572
+ engines: {node: '>=0.10.0'}
573
+ dev: false
574
+
575
+ /object-hash@3.0.0:
576
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
577
+ engines: {node: '>= 6'}
578
+ dev: false
579
+
580
+ /once@1.4.0:
581
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
582
+ dependencies:
583
+ wrappy: 1.0.2
584
+ dev: false
585
+
586
+ /path-is-absolute@1.0.1:
587
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
588
+ engines: {node: '>=0.10.0'}
589
+ dev: false
590
+
591
+ /path-parse@1.0.7:
592
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
593
+ dev: false
594
+
595
+ /picocolors@1.0.0:
596
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
597
+ dev: false
598
+
599
+ /picomatch@2.3.1:
600
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
601
+ engines: {node: '>=8.6'}
602
+ dev: false
603
+
604
+ /pify@2.3.0:
605
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
606
+ engines: {node: '>=0.10.0'}
607
+ dev: false
608
+
609
+ /pirates@4.0.5:
610
+ resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
611
+ engines: {node: '>= 6'}
612
+ dev: false
613
+
614
+ /postcss-import@15.1.0(postcss@8.4.23):
615
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
616
+ engines: {node: '>=14.0.0'}
617
+ peerDependencies:
618
+ postcss: ^8.0.0
619
+ dependencies:
620
+ postcss: 8.4.23
621
+ postcss-value-parser: 4.2.0
622
+ read-cache: 1.0.0
623
+ resolve: 1.22.2
624
+ dev: false
625
+
626
+ /postcss-js@4.0.1(postcss@8.4.23):
627
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
628
+ engines: {node: ^12 || ^14 || >= 16}
629
+ peerDependencies:
630
+ postcss: ^8.4.21
631
+ dependencies:
632
+ camelcase-css: 2.0.1
633
+ postcss: 8.4.23
634
+ dev: false
635
+
636
+ /postcss-load-config@4.0.1(postcss@8.4.23):
637
+ resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
638
+ engines: {node: '>= 14'}
639
+ peerDependencies:
640
+ postcss: '>=8.0.9'
641
+ ts-node: '>=9.0.0'
642
+ peerDependenciesMeta:
643
+ postcss:
644
+ optional: true
645
+ ts-node:
646
+ optional: true
647
+ dependencies:
648
+ lilconfig: 2.1.0
649
+ postcss: 8.4.23
650
+ yaml: 2.3.0
651
+ dev: false
652
+
653
+ /postcss-nested@6.0.1(postcss@8.4.23):
654
+ resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
655
+ engines: {node: '>=12.0'}
656
+ peerDependencies:
657
+ postcss: ^8.2.14
658
+ dependencies:
659
+ postcss: 8.4.23
660
+ postcss-selector-parser: 6.0.13
661
+ dev: false
662
+
663
+ /postcss-selector-parser@6.0.13:
664
+ resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
665
+ engines: {node: '>=4'}
666
+ dependencies:
667
+ cssesc: 3.0.0
668
+ util-deprecate: 1.0.2
669
+ dev: false
670
+
671
+ /postcss-value-parser@4.2.0:
672
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
673
+ dev: false
674
+
675
+ /postcss@8.4.14:
676
+ resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==}
677
+ engines: {node: ^10 || ^12 || >=14}
678
+ dependencies:
679
+ nanoid: 3.3.6
680
+ picocolors: 1.0.0
681
+ source-map-js: 1.0.2
682
+ dev: false
683
+
684
+ /postcss@8.4.23:
685
+ resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
686
+ engines: {node: ^10 || ^12 || >=14}
687
+ dependencies:
688
+ nanoid: 3.3.6
689
+ picocolors: 1.0.0
690
+ source-map-js: 1.0.2
691
+ dev: false
692
+
693
+ /queue-microtask@1.2.3:
694
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
695
+ dev: false
696
+
697
+ /react-dom@18.2.0(react@18.2.0):
698
+ resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
699
+ peerDependencies:
700
+ react: ^18.2.0
701
+ dependencies:
702
+ loose-envify: 1.4.0
703
+ react: 18.2.0
704
+ scheduler: 0.23.0
705
+ dev: false
706
+
707
+ /react@18.2.0:
708
+ resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
709
+ engines: {node: '>=0.10.0'}
710
+ dependencies:
711
+ loose-envify: 1.4.0
712
+ dev: false
713
+
714
+ /read-cache@1.0.0:
715
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
716
+ dependencies:
717
+ pify: 2.3.0
718
+ dev: false
719
+
720
+ /readdirp@3.6.0:
721
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
722
+ engines: {node: '>=8.10.0'}
723
+ dependencies:
724
+ picomatch: 2.3.1
725
+ dev: false
726
+
727
+ /resolve@1.22.2:
728
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
729
+ hasBin: true
730
+ dependencies:
731
+ is-core-module: 2.12.1
732
+ path-parse: 1.0.7
733
+ supports-preserve-symlinks-flag: 1.0.0
734
+ dev: false
735
+
736
+ /reusify@1.0.4:
737
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
738
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
739
+ dev: false
740
+
741
+ /run-parallel@1.2.0:
742
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
743
+ dependencies:
744
+ queue-microtask: 1.2.3
745
+ dev: false
746
+
747
+ /scheduler@0.23.0:
748
+ resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
749
+ dependencies:
750
+ loose-envify: 1.4.0
751
+ dev: false
752
+
753
+ /semiver@1.1.0:
754
+ resolution: {integrity: sha512-QNI2ChmuioGC1/xjyYwyZYADILWyW6AmS1UH6gDj/SFUUUS4MBAWs/7mxnkRPc/F4iHezDP+O8t0dO8WHiEOdg==}
755
+ engines: {node: '>=6'}
756
+ dev: false
757
+
758
+ /source-map-js@1.0.2:
759
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
760
+ engines: {node: '>=0.10.0'}
761
+ dev: false
762
+
763
+ /streamsearch@1.1.0:
764
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
765
+ engines: {node: '>=10.0.0'}
766
+ dev: false
767
+
768
+ /styled-jsx@5.1.1(react@18.2.0):
769
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
770
+ engines: {node: '>= 12.0.0'}
771
+ peerDependencies:
772
+ '@babel/core': '*'
773
+ babel-plugin-macros: '*'
774
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
775
+ peerDependenciesMeta:
776
+ '@babel/core':
777
+ optional: true
778
+ babel-plugin-macros:
779
+ optional: true
780
+ dependencies:
781
+ client-only: 0.0.1
782
+ react: 18.2.0
783
+ dev: false
784
+
785
+ /sucrase@3.32.0:
786
+ resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
787
+ engines: {node: '>=8'}
788
+ hasBin: true
789
+ dependencies:
790
+ '@jridgewell/gen-mapping': 0.3.3
791
+ commander: 4.1.1
792
+ glob: 7.1.6
793
+ lines-and-columns: 1.2.4
794
+ mz: 2.7.0
795
+ pirates: 4.0.5
796
+ ts-interface-checker: 0.1.13
797
+ dev: false
798
+
799
+ /supports-preserve-symlinks-flag@1.0.0:
800
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
801
+ engines: {node: '>= 0.4'}
802
+ dev: false
803
+
804
+ /tailwindcss@3.3.2:
805
+ resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
806
+ engines: {node: '>=14.0.0'}
807
+ hasBin: true
808
+ dependencies:
809
+ '@alloc/quick-lru': 5.2.0
810
+ arg: 5.0.2
811
+ chokidar: 3.5.3
812
+ didyoumean: 1.2.2
813
+ dlv: 1.1.3
814
+ fast-glob: 3.2.12
815
+ glob-parent: 6.0.2
816
+ is-glob: 4.0.3
817
+ jiti: 1.18.2
818
+ lilconfig: 2.1.0
819
+ micromatch: 4.0.5
820
+ normalize-path: 3.0.0
821
+ object-hash: 3.0.0
822
+ picocolors: 1.0.0
823
+ postcss: 8.4.23
824
+ postcss-import: 15.1.0(postcss@8.4.23)
825
+ postcss-js: 4.0.1(postcss@8.4.23)
826
+ postcss-load-config: 4.0.1(postcss@8.4.23)
827
+ postcss-nested: 6.0.1(postcss@8.4.23)
828
+ postcss-selector-parser: 6.0.13
829
+ postcss-value-parser: 4.2.0
830
+ resolve: 1.22.2
831
+ sucrase: 3.32.0
832
+ transitivePeerDependencies:
833
+ - ts-node
834
+ dev: false
835
+
836
+ /thenify-all@1.6.0:
837
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
838
+ engines: {node: '>=0.8'}
839
+ dependencies:
840
+ thenify: 3.3.1
841
+ dev: false
842
+
843
+ /thenify@3.3.1:
844
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
845
+ dependencies:
846
+ any-promise: 1.3.0
847
+ dev: false
848
+
849
+ /to-regex-range@5.0.1:
850
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
851
+ engines: {node: '>=8.0'}
852
+ dependencies:
853
+ is-number: 7.0.0
854
+ dev: false
855
+
856
+ /ts-interface-checker@0.1.13:
857
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
858
+ dev: false
859
+
860
+ /tslib@2.5.2:
861
+ resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==}
862
+ dev: false
863
+
864
+ /update-browserslist-db@1.0.11(browserslist@4.21.5):
865
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
866
+ hasBin: true
867
+ peerDependencies:
868
+ browserslist: '>= 4.21.0'
869
+ dependencies:
870
+ browserslist: 4.21.5
871
+ escalade: 3.1.1
872
+ picocolors: 1.0.0
873
+ dev: false
874
+
875
+ /util-deprecate@1.0.2:
876
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
877
+ dev: false
878
+
879
+ /wrappy@1.0.2:
880
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
881
+ dev: false
882
+
883
+ /ws@8.13.0(bufferutil@4.0.7):
884
+ resolution: {integrity: sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==}
885
+ engines: {node: '>=10.0.0'}
886
+ peerDependencies:
887
+ bufferutil: ^4.0.1
888
+ utf-8-validate: '>=5.0.2'
889
+ peerDependenciesMeta:
890
+ bufferutil:
891
+ optional: true
892
+ utf-8-validate:
893
+ optional: true
894
+ dependencies:
895
+ bufferutil: 4.0.7
896
+ dev: false
897
+
898
+ /yaml@2.3.0:
899
+ resolution: {integrity: sha512-8/1wgzdKc7bc9E6my5wZjmdavHLvO/QOmLG1FBugblEvY4IXrLjlViIOmL24HthU042lWTDRO90Fz1Yp66UnMw==}
900
+ engines: {node: '>= 14', npm: '>= 7'}
901
+ dev: false
902
+
903
+ /zod@3.21.4:
904
+ resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
905
+ dev: false
public/favicon.ico ADDED
public/next.svg ADDED
public/vercel.svg ADDED
tailwind.config.js CHANGED
@@ -12,6 +12,7 @@ module.exports = {
12
  'gradient-conic':
13
  'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
14
  },
 
15
  },
16
  },
17
  plugins: [],
 
12
  'gradient-conic':
13
  'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
14
  },
15
+
16
  },
17
  },
18
  plugins: [],
tsconfig.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "strict": true,
8
- "forceConsistentCasingInFileNames": true,
9
- "noEmit": true,
10
- "esModuleInterop": true,
11
- "module": "esnext",
12
- "moduleResolution": "node",
13
- "resolveJsonModule": true,
14
- "isolatedModules": true,
15
- "jsx": "preserve",
16
- "incremental": true,
17
- "paths": {
18
- "@/*": ["./*"]
19
- }
20
- },
21
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
22
- "exclude": ["node_modules"]
23
- }