├── .gitignore ├── app.d.ts ├── lib └── utils.ts ├── postcss.config.cjs ├── .vscode └── settings.json ├── README.md ├── next.config.mjs ├── components ├── Analytics.tsx ├── Tooltip.tsx ├── ChooseTechnologyDialogContent.tsx └── Gird.tsx ├── tailwind.config.cjs ├── app ├── [lang] │ └── page.tsx ├── layout.tsx └── page.tsx ├── next-env.d.ts ├── dicts ├── zh-cn.json ├── index.ts ├── en.json ├── fr.json └── de.json ├── pages └── api │ └── image.ts ├── tsconfig.json ├── package.json ├── css └── tailwind.css └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | *.log 4 | generated/ 5 | .next 6 | -------------------------------------------------------------------------------- /app.d.ts: -------------------------------------------------------------------------------- 1 | declare type Technology = { 2 | name: string 3 | icon?: string 4 | desc?: string 5 | } 6 | -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | export const getImageUrl = (icon: string) => 2 | `/api/image?icon=${encodeURIComponent(icon)}` 3 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib", 3 | "typescript.enablePromptUseWorkspaceTsdk": true 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Developer 3x3 2 | 3 | Generate a 3x3 table for projects you love and hate. 4 | 5 | https://3x3.egoist.dev 6 | 7 | ## License 8 | 9 | MIT. 10 | -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const config = { 3 | experimental: { 4 | appDir: true, 5 | }, 6 | } 7 | 8 | export default config 9 | -------------------------------------------------------------------------------- /components/Analytics.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import { Analytics } from "@vercel/analytics/react" 3 | 4 | export function AnalyticsWrapper() { 5 | return 6 | } 7 | -------------------------------------------------------------------------------- /tailwind.config.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: ["./{app,components}/**/*.{ts,tsx}"], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | -------------------------------------------------------------------------------- /app/[lang]/page.tsx: -------------------------------------------------------------------------------- 1 | import { langNames } from "../../dicts" 2 | 3 | export { default, metadata } from "../page" 4 | 5 | export async function generateStaticParams() { 6 | return langNames.map((name) => ({ lang: name })) 7 | } 8 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import "tippy.js/dist/tippy.css" 2 | import "../css/tailwind.css" 3 | import { AnalyticsWrapper } from "../components/Analytics" 4 | 5 | export default function Layout({ children }: { children: React.ReactNode }) { 6 | return ( 7 | 8 | 9 | {children} 10 | {process.env.NODE_ENV === "production" && } 11 | 12 | 13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /dicts/zh-cn.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway-project": "带我入门", 3 | "most-recommended": "最想推荐", 4 | "most-experienced": "经验最丰富", 5 | "most-challenging": "最具挑战性", 6 | "most-overrated": "最过誉", 7 | "most-underrated": "最被低估", 8 | "most-hated": "最讨厌", 9 | "most-want-to-learn": "最想学", 10 | "guilty-pleasure": "罪恶感", 11 | "guilty-pleasure-description": "你喜欢使用的技术,但用着却有罪恶感", 12 | "download-image": "下载图片", 13 | "copy-image": "复制图片" 14 | } 15 | -------------------------------------------------------------------------------- /dicts/index.ts: -------------------------------------------------------------------------------- 1 | import "server-only" 2 | 3 | const dictsMap = { 4 | en: () => import("./en.json"), 5 | fr: () => import("./fr.json"), 6 | de: () => import("./de.json"), 7 | "zh-cn": () => import("./zh-cn.json"), 8 | } 9 | 10 | export type Dicts = typeof import("./en.json") 11 | 12 | export const langNames = Object.keys(dictsMap) 13 | 14 | export const getDicts = ( 15 | lang: string | undefined 16 | ): (() => Promise<{ default: Dicts }>) => { 17 | const dicts = dictsMap[lang || "en"] || dictsMap.en 18 | return dicts 19 | } 20 | -------------------------------------------------------------------------------- /dicts/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway-project": "Gateway", 3 | "most-recommended": "Most recommended", 4 | "most-experienced": "Most experienced", 5 | "most-challenging": "Most challenging", 6 | "most-underrated": "Most underrated", 7 | "most-overrated": "Most overrated", 8 | "most-hated": "Most hated", 9 | "most-want-to-learn": "Most want to learn", 10 | "guilty-pleasure": "Guilty pleasure", 11 | "guilty-pleasure-description": "The technology you love to use that you're not proud of", 12 | "download-image": "Download Image", 13 | "copy-image": "Copy Image" 14 | } 15 | -------------------------------------------------------------------------------- /pages/api/image.ts: -------------------------------------------------------------------------------- 1 | import { PageConfig } from "next" 2 | import { NextRequest } from "next/server" 3 | 4 | export const config: PageConfig = { 5 | runtime: "edge", 6 | } 7 | 8 | export default async (req: NextRequest) => { 9 | const icon = req.nextUrl.searchParams.get("icon") 10 | const url = /^https?:\/\//.test(icon) 11 | ? icon 12 | : `https://www.wappalyzer.com/images/icons/${icon}` 13 | return fetch(url).then((res) => { 14 | return new Response(res.body, { 15 | headers: { 16 | "content-type": res.headers.get("content-type"), 17 | }, 18 | }) 19 | }) 20 | } 21 | -------------------------------------------------------------------------------- /dicts/fr.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway-project": "Gateway", 3 | "most-recommended": "Le plus recommandé", 4 | "most-experienced": "Le plus expérimenté", 5 | "most-challenging": "Le plus difficile", 6 | "most-underrated": "Le plus sous-estimé", 7 | "most-overrated": "Le plus surestimé", 8 | "most-hated": "Le plus détesté", 9 | "most-want-to-learn": "Le plus attractif", 10 | "guilty-pleasure": "Le plaisir coupable", 11 | "guilty-pleasure-description": "La technologie que vous aimez utiliser et dont vous n'êtes pas fier", 12 | "download-image": "Télécharger l'image", 13 | "copy-image": "Copier l'image" 14 | } 15 | -------------------------------------------------------------------------------- /dicts/de.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway-project": "Gateway", 3 | "most-recommended": "Am meisten empfohlen", 4 | "most-experienced": "Am erfahrensten", 5 | "most-challenging": "Am meisten herausfordernd", 6 | "most-underrated": "Am meisten unterschätzt", 7 | "most-overrated": "Am meisten überschätzt", 8 | "most-hated": "Am meisten gehasst", 9 | "most-want-to-learn": "Am meisten lernen wollend", 10 | "guilty-pleasure": "Heimliches Vergnügen", 11 | "guilty-pleasure-description": "Die Technologie, die du gerne benutzt, auf die du aber nicht stolz bist", 12 | "download-image": "Bild herunterladen", 13 | "copy-image": "Bild kopieren" 14 | } 15 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "dom", 5 | "dom.iterable", 6 | "esnext" 7 | ], 8 | "allowJs": true, 9 | "skipLibCheck": true, 10 | "strict": false, 11 | "forceConsistentCasingInFileNames": true, 12 | "noEmit": true, 13 | "incremental": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "plugins": [ 21 | { 22 | "name": "next" 23 | } 24 | ] 25 | }, 26 | "include": [ 27 | "next-env.d.ts", 28 | ".next/types/**/*.ts", 29 | "**/*.ts", 30 | "**/*.tsx" 31 | ], 32 | "exclude": [ 33 | "node_modules" 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /components/Tooltip.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | import * as RadixTooltip from "@radix-ui/react-tooltip" 3 | import { forwardRef } from "react" 4 | 5 | export const TooltipProvider = RadixTooltip.Provider 6 | 7 | export const Tooltip = ({ 8 | children, 9 | content, 10 | }: { 11 | children: React.ReactNode 12 | content?: React.ReactNode 13 | }) => { 14 | if (!content) return <>{children} 15 | return ( 16 | 17 | {children} 18 | 19 | 20 | {content} 21 | 22 | 23 | 24 | 25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /app/page.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next" 2 | import { Grid } from "../components/Gird" 3 | import { getDicts } from "../dicts" 4 | 5 | export const metadata: Metadata = { 6 | title: "Developer 3x3", 7 | description: "Developer 3x3 table for projects you're passionable about", 8 | twitter: { 9 | title: "Developer 3x3", 10 | description: "Developer 3x3 table for projects you're passionable about", 11 | card: "summary_large_image", 12 | images: [ 13 | "https://fastly.jsdelivr.net/gh/egoist-bot/images@main/uPic/azS6sQ.png", 14 | ], 15 | }, 16 | } 17 | 18 | export default async function Page({ params }: { params: { lang?: string } }) { 19 | const lang = params.lang || "en" 20 | const loadDicts = getDicts(lang) 21 | const dicts = await loadDicts() 22 | return ( 23 |
24 |

Developer 3x3

25 | 26 |
27 | ) 28 | } 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "developer-grid", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "build": "pnpm gen && next build", 9 | "dev": "pnpm gen && next", 10 | "gen": "node build-technologies.mjs" 11 | }, 12 | "keywords": [], 13 | "author": "", 14 | "license": "ISC", 15 | "dependencies": { 16 | "@radix-ui/react-dialog": "^1.0.2", 17 | "@radix-ui/react-tabs": "^1.0.2", 18 | "@radix-ui/react-tooltip": "^1.0.3", 19 | "@tippyjs/react": "^4.2.6", 20 | "@vercel/analytics": "^0.1.8", 21 | "copy-image-clipboard": "^2.1.2", 22 | "fuse.js": "^6.6.2", 23 | "html-to-image": "^1.11.11", 24 | "next": "13.1.7-canary.10", 25 | "react": "^18.2.0", 26 | "react-dom": "^18.2.0", 27 | "react-hook-form": "^7.43.1", 28 | "server-only": "^0.0.1", 29 | "use-debounce": "^9.0.3" 30 | }, 31 | "devDependencies": { 32 | "@types/node": "^18.13.0", 33 | "@types/react": "^18.0.28", 34 | "autoprefixer": "^10.4.13", 35 | "tailwindcss": "^3.2.6", 36 | "typescript": "^4.9.5" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /css/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | button, 6 | input { 7 | @apply outline-none; 8 | } 9 | 10 | .input { 11 | @apply h-10 flex items-center px-3 rounded-lg border bg-transparent outline-none focus:ring-2 ring-blue-500 focus:border-blue-500 w-full; 12 | } 13 | 14 | .DialogContent { 15 | @apply top-10 md:top-1/2 -translate-x-1/2 md:-translate-y-1/2 bg-white; 16 | border-radius: 6px; 17 | box-shadow: hsl(206 22% 7% / 35%) 0px 10px 38px -10px, 18 | hsl(206 22% 7% / 20%) 0px 10px 20px -15px; 19 | position: fixed; 20 | left: 50%; 21 | width: 90vw; 22 | max-width: 450px; 23 | max-height: 85vh; 24 | animation: contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1); 25 | } 26 | .DialogContent:focus { 27 | outline: none; 28 | } 29 | 30 | .DialogOverlay { 31 | @apply bg-white/50 backdrop-blur-sm; 32 | position: fixed; 33 | inset: 0; 34 | animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1); 35 | } 36 | @keyframes overlayShow { 37 | from { 38 | opacity: 0; 39 | } 40 | to { 41 | opacity: 1; 42 | } 43 | } 44 | 45 | @keyframes contentShow { 46 | from { 47 | opacity: 0; 48 | transform: translate(-50%, -48%) scale(0.96); 49 | } 50 | to { 51 | opacity: 1; 52 | transform: translate(-50%, -50%) scale(1); 53 | } 54 | } 55 | 56 | .TooltipContent { 57 | border-radius: 4px; 58 | padding: 10px 15px; 59 | font-size: 15px; 60 | line-height: 1; 61 | color: white; 62 | background-color: black; 63 | box-shadow: hsl(206 22% 7% / 35%) 0px 10px 38px -10px, 64 | hsl(206 22% 7% / 20%) 0px 10px 20px -15px; 65 | user-select: none; 66 | animation-duration: 400ms; 67 | animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1); 68 | will-change: transform, opacity; 69 | } 70 | .TooltipContent[data-state="delayed-open"][data-side="top"] { 71 | animation-name: slideDownAndFade; 72 | } 73 | .TooltipContent[data-state="delayed-open"][data-side="right"] { 74 | animation-name: slideLeftAndFade; 75 | } 76 | .TooltipContent[data-state="delayed-open"][data-side="bottom"] { 77 | animation-name: slideUpAndFade; 78 | } 79 | .TooltipContent[data-state="delayed-open"][data-side="left"] { 80 | animation-name: slideRightAndFade; 81 | } 82 | -------------------------------------------------------------------------------- /components/ChooseTechnologyDialogContent.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { forwardRef, useMemo, useState } from "react" 4 | import { useDebounce } from "use-debounce" 5 | import Fuse from "fuse.js" 6 | import { useForm } from "react-hook-form" 7 | import * as Tabs from "@radix-ui/react-tabs" 8 | import * as Dialog from "@radix-ui/react-dialog" 9 | import technologies from "../generated/technologies" 10 | import { getImageUrl } from "../lib/utils" 11 | 12 | export const ChooseTechnologyDialogContent = forwardRef< 13 | HTMLDivElement, 14 | { 15 | setTechnology: (item: Technology | undefined) => void 16 | open: boolean 17 | setOpen: (open: boolean) => void 18 | } 19 | >(({ setTechnology, setOpen }, ref) => { 20 | const [keyword, setKeyword] = useState("") 21 | const [debouncedKeyword] = useDebounce(keyword, 300) 22 | const fuse = useMemo( 23 | () => new Fuse(technologies, { keys: ["name", "desc"] }), 24 | [] 25 | ) 26 | const { register, handleSubmit, reset } = useForm({ 27 | defaultValues: { 28 | imageUrl: "", 29 | }, 30 | }) 31 | 32 | const result = useMemo(() => { 33 | return fuse.search(debouncedKeyword, { limit: 25 }) 34 | }, [debouncedKeyword, fuse]) 35 | return ( 36 | 37 | 38 | 39 | 40 | 41 | 45 | Default 46 | 47 | 51 | Custom Image 52 | 53 | 54 | 55 |
56 |
57 | setKeyword(e.target.value)} 62 | /> 63 | 64 | 71 | 72 |
73 |
74 | {result.length === 0 ? ( 75 |
76 | empty result 77 |
78 | ) : ( 79 |
80 | {result.map((item) => { 81 | return ( 82 |
83 | 84 | 98 | 99 |
103 | {item.item.name} 104 |
105 |
106 | ) 107 | })} 108 |
109 | )} 110 |
111 |
112 |
113 | 114 |
{ 117 | setTechnology({ 118 | name: "custom", 119 | icon: values.imageUrl, 120 | }) 121 | reset() 122 | setOpen(false) 123 | })} 124 | > 125 |
126 | 127 | 133 |
134 |
135 | 141 |
142 |
143 |
144 |
145 |
146 |
147 | ) 148 | }) 149 | -------------------------------------------------------------------------------- /components/Gird.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import { useRef, useState } from "react" 4 | import * as Dialog from "@radix-ui/react-dialog" 5 | import { toPng, toBlob } from "html-to-image" 6 | import { copyBlobToClipboard } from "copy-image-clipboard" 7 | import { Dicts } from "../dicts" 8 | import { useRouter } from "next/navigation" 9 | import { getImageUrl } from "../lib/utils" 10 | import { ChooseTechnologyDialogContent } from "./ChooseTechnologyDialogContent" 11 | 12 | type GridItemType = { name: string; technology?: Technology; tip?: string } 13 | 14 | const GridItem = ({ 15 | item, 16 | setTechnology, 17 | }: { 18 | item: GridItemType 19 | setTechnology: (item: Technology | undefined) => void 20 | }) => { 21 | const [openDialog, setOpenDialog] = useState(false) 22 | 23 | return ( 24 |
25 | 26 | 27 | 42 | 43 | 48 | 49 |
50 | {item.name} 51 |
52 |
53 | ) 54 | } 55 | 56 | export const Grid = ({ dicts, lang }: { dicts: Dicts; lang: string }) => { 57 | const router = useRouter() 58 | const wrapperRef = useRef(null) 59 | const [items, setItems] = useState([ 60 | { 61 | name: dicts["gateway-project"], 62 | }, 63 | { 64 | name: dicts["most-recommended"], 65 | }, 66 | { 67 | name: dicts["most-experienced"], 68 | }, 69 | { 70 | name: dicts["most-challenging"], 71 | }, 72 | { 73 | name: dicts["most-overrated"], 74 | }, 75 | { 76 | name: dicts["most-underrated"], 77 | }, 78 | { 79 | name: dicts["most-want-to-learn"], 80 | }, 81 | { 82 | name: dicts["most-hated"], 83 | }, 84 | { 85 | name: dicts["guilty-pleasure"], 86 | tip: dicts["guilty-pleasure-description"], 87 | }, 88 | ]) 89 | 90 | const setTechnology = (index: number, technology: Technology | undefined) => { 91 | setItems((items) => 92 | items.map((item, i) => { 93 | if (index === i) { 94 | return { 95 | ...item, 96 | technology, 97 | } 98 | } 99 | return item 100 | }) 101 | ) 102 | } 103 | 104 | const downloadImage = async () => { 105 | const dataUrl = await toPng(wrapperRef.current, { 106 | includeQueryParams: true, 107 | }) 108 | const link = document.createElement("a") 109 | link.download = `developer-3x3.png` 110 | link.href = dataUrl 111 | link.click() 112 | } 113 | 114 | const copyImage = async () => { 115 | const blob = await toBlob(wrapperRef.current, { 116 | includeQueryParams: true, 117 | }) 118 | await copyBlobToClipboard(blob) 119 | } 120 | 121 | return ( 122 |
123 |
124 |
125 | {items.map((item, index) => { 126 | return ( 127 | setTechnology(index, item)} 131 | /> 132 | ) 133 | })} 134 |
135 |
136 | made with 3x3.egoist.dev 137 |
138 |
139 |
140 |
141 | 148 | 155 |
156 | 157 |
158 | 168 | 174 | 182 | 183 | 184 | 185 | made by egoist 186 | 187 | 193 | 199 | 204 | 205 | 206 | 212 | 218 | 222 | 223 | 224 |
225 |
226 |
227 | ) 228 | } 229 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@radix-ui/react-dialog': ^1.0.2 5 | '@radix-ui/react-tabs': ^1.0.2 6 | '@radix-ui/react-tooltip': ^1.0.3 7 | '@tippyjs/react': ^4.2.6 8 | '@types/node': ^18.13.0 9 | '@types/react': ^18.0.28 10 | '@vercel/analytics': ^0.1.8 11 | autoprefixer: ^10.4.13 12 | copy-image-clipboard: ^2.1.2 13 | fuse.js: ^6.6.2 14 | html-to-image: ^1.11.11 15 | next: 13.1.7-canary.10 16 | react: ^18.2.0 17 | react-dom: ^18.2.0 18 | react-hook-form: ^7.43.1 19 | server-only: ^0.0.1 20 | tailwindcss: ^3.2.6 21 | typescript: ^4.9.5 22 | use-debounce: ^9.0.3 23 | 24 | dependencies: 25 | '@radix-ui/react-dialog': 1.0.2_zula6vjvt3wdocc4mwcxqa6nzi 26 | '@radix-ui/react-tabs': 1.0.2_biqbaboplfbrettd7655fr4n2y 27 | '@radix-ui/react-tooltip': 1.0.3_zula6vjvt3wdocc4mwcxqa6nzi 28 | '@tippyjs/react': 4.2.6_biqbaboplfbrettd7655fr4n2y 29 | '@vercel/analytics': 0.1.8_react@18.2.0 30 | copy-image-clipboard: 2.1.2 31 | fuse.js: 6.6.2 32 | html-to-image: 1.11.11 33 | next: 13.1.7-canary.10_biqbaboplfbrettd7655fr4n2y 34 | react: 18.2.0 35 | react-dom: 18.2.0_react@18.2.0 36 | react-hook-form: 7.43.1_react@18.2.0 37 | server-only: 0.0.1 38 | use-debounce: 9.0.3_react@18.2.0 39 | 40 | devDependencies: 41 | '@types/node': 18.13.0 42 | '@types/react': 18.0.28 43 | autoprefixer: 10.4.13 44 | tailwindcss: 3.2.6 45 | typescript: 4.9.5 46 | 47 | packages: 48 | 49 | /@babel/runtime/7.20.13: 50 | resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} 51 | engines: {node: '>=6.9.0'} 52 | dependencies: 53 | regenerator-runtime: 0.13.11 54 | dev: false 55 | 56 | /@floating-ui/core/0.7.3: 57 | resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} 58 | dev: false 59 | 60 | /@floating-ui/dom/0.5.4: 61 | resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} 62 | dependencies: 63 | '@floating-ui/core': 0.7.3 64 | dev: false 65 | 66 | /@floating-ui/react-dom/0.7.2_zula6vjvt3wdocc4mwcxqa6nzi: 67 | resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} 68 | peerDependencies: 69 | react: '>=16.8.0' 70 | react-dom: '>=16.8.0' 71 | dependencies: 72 | '@floating-ui/dom': 0.5.4 73 | react: 18.2.0 74 | react-dom: 18.2.0_react@18.2.0 75 | use-isomorphic-layout-effect: 1.1.2_pmekkgnqduwlme35zpnqhenc34 76 | transitivePeerDependencies: 77 | - '@types/react' 78 | dev: false 79 | 80 | /@next/env/13.1.7-canary.10: 81 | resolution: {integrity: sha512-KgUdbPdgpEIkU/urzIHajdvVOq4hP4U7JZA7w/B2LZo9PpBgzkL3h4OIUyplNco9Cvav+Aeucux1p7kLyYCeaA==} 82 | dev: false 83 | 84 | /@next/swc-android-arm-eabi/13.1.7-canary.10: 85 | resolution: {integrity: sha512-1tb1GxfR8iaeKYnyBnh8LFSMZuDKPGjv1haLf3fV8ITs6G6ILyIKM+wWaa5nqcckSbOHL4qNe0KuskwOLo9kVw==} 86 | engines: {node: '>= 10'} 87 | cpu: [arm] 88 | os: [android] 89 | requiresBuild: true 90 | dev: false 91 | optional: true 92 | 93 | /@next/swc-android-arm64/13.1.7-canary.10: 94 | resolution: {integrity: sha512-mBpkQMRyFUc9MLyq8gy1P/D/48sdrlqSLwtAnW/dKuK6dkxmUhFAtDCPDwfyU4UJaRVr+3D8HfnQheQItNLsbA==} 95 | engines: {node: '>= 10'} 96 | cpu: [arm64] 97 | os: [android] 98 | requiresBuild: true 99 | dev: false 100 | optional: true 101 | 102 | /@next/swc-darwin-arm64/13.1.7-canary.10: 103 | resolution: {integrity: sha512-ipyvCbov1siQVCYj8ux3uxufsrolfg3xsCh4V5a6fY/tLO8Mu78Kz0ISuy1/YZVU00HeHJCc2iJl1iufT9A9uQ==} 104 | engines: {node: '>= 10'} 105 | cpu: [arm64] 106 | os: [darwin] 107 | requiresBuild: true 108 | dev: false 109 | optional: true 110 | 111 | /@next/swc-darwin-x64/13.1.7-canary.10: 112 | resolution: {integrity: sha512-zcCCbCWMpaAelpbEIDQLjTwM54vJmYTN8Uj9u2rASJv7BsqXUywhNmEAthOlH9vN6wep0rstfYxcWJnRsS7aBQ==} 113 | engines: {node: '>= 10'} 114 | cpu: [x64] 115 | os: [darwin] 116 | requiresBuild: true 117 | dev: false 118 | optional: true 119 | 120 | /@next/swc-freebsd-x64/13.1.7-canary.10: 121 | resolution: {integrity: sha512-1JYgcY80MFbZBCU5z0P0Kbb8Os6Te+eUSjrwjM4QzgnVF+d4EEvrwG4xKegaRqJ+LjxgwgTywv5wj2xt8WkrKQ==} 122 | engines: {node: '>= 10'} 123 | cpu: [x64] 124 | os: [freebsd] 125 | requiresBuild: true 126 | dev: false 127 | optional: true 128 | 129 | /@next/swc-linux-arm-gnueabihf/13.1.7-canary.10: 130 | resolution: {integrity: sha512-pWaupZSrYG2JoQJ3BaU06V2qPrYlZ+TjbXVyEXUL6Cd3B9L/Ki3ls8SxM3BBYk0VFzrT5ey/ed9Uqq1e/tfpfg==} 131 | engines: {node: '>= 10'} 132 | cpu: [arm] 133 | os: [linux] 134 | requiresBuild: true 135 | dev: false 136 | optional: true 137 | 138 | /@next/swc-linux-arm64-gnu/13.1.7-canary.10: 139 | resolution: {integrity: sha512-bgZk7TpiK9CSoF9tL0836JhavZFhDOMNzfIX7qHWluoul+2Fr35eoRKclYjVcb4s524SWFi1D4qY8Jt8SmErtA==} 140 | engines: {node: '>= 10'} 141 | cpu: [arm64] 142 | os: [linux] 143 | libc: [glibc] 144 | requiresBuild: true 145 | dev: false 146 | optional: true 147 | 148 | /@next/swc-linux-arm64-musl/13.1.7-canary.10: 149 | resolution: {integrity: sha512-NCDfqXzXVFUZVkr3R46lpu4MzJeWJo7ZgITJ6yAluueECk/Rku3iXakaF93z13g2+gzg2idPcxQvjiI3ytGBFw==} 150 | engines: {node: '>= 10'} 151 | cpu: [arm64] 152 | os: [linux] 153 | libc: [musl] 154 | requiresBuild: true 155 | dev: false 156 | optional: true 157 | 158 | /@next/swc-linux-x64-gnu/13.1.7-canary.10: 159 | resolution: {integrity: sha512-U6yLicA6cdCYhr+7g2Evvf2VRogDfOiDilcjy1M754HnTT+i003sztZh1lZL5fl6ZgLatcovjgolog/A5/R0dQ==} 160 | engines: {node: '>= 10'} 161 | cpu: [x64] 162 | os: [linux] 163 | libc: [glibc] 164 | requiresBuild: true 165 | dev: false 166 | optional: true 167 | 168 | /@next/swc-linux-x64-musl/13.1.7-canary.10: 169 | resolution: {integrity: sha512-mTN+mcmSRNPiGzk0WJlXGh2D45whxCWBXu4HMOxHuzuYh0qH0qTixqHc2Ckb4B17Ee57l/gcZxAoh7vVfBt36g==} 170 | engines: {node: '>= 10'} 171 | cpu: [x64] 172 | os: [linux] 173 | libc: [musl] 174 | requiresBuild: true 175 | dev: false 176 | optional: true 177 | 178 | /@next/swc-win32-arm64-msvc/13.1.7-canary.10: 179 | resolution: {integrity: sha512-DCodFTVyf9MLwuCeJ6uO3mkcqwiEbZUb3fvk+CDLKCNkKKwcwvoJPn3HIuFSzJz3JLG5wXvYMvcTa3aUqwnurw==} 180 | engines: {node: '>= 10'} 181 | cpu: [arm64] 182 | os: [win32] 183 | requiresBuild: true 184 | dev: false 185 | optional: true 186 | 187 | /@next/swc-win32-ia32-msvc/13.1.7-canary.10: 188 | resolution: {integrity: sha512-TLh11MuFSUDdPj/oym6Dh8al8W2oMl4PXUzERSeRF++jK2TZmlGIvrv05j79M2fjQ0/bVq8BMQpviE9v5dbzpA==} 189 | engines: {node: '>= 10'} 190 | cpu: [ia32] 191 | os: [win32] 192 | requiresBuild: true 193 | dev: false 194 | optional: true 195 | 196 | /@next/swc-win32-x64-msvc/13.1.7-canary.10: 197 | resolution: {integrity: sha512-dPvQOiT+od45gHiACr7D82ImgXl8oSxza3geGyG/+wYBJG4pEHbN81Qi/MtKBhm7BGufRBwt6A6HYS2RypZPuw==} 198 | engines: {node: '>= 10'} 199 | cpu: [x64] 200 | os: [win32] 201 | requiresBuild: true 202 | dev: false 203 | optional: true 204 | 205 | /@nodelib/fs.scandir/2.1.5: 206 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 207 | engines: {node: '>= 8'} 208 | dependencies: 209 | '@nodelib/fs.stat': 2.0.5 210 | run-parallel: 1.2.0 211 | dev: true 212 | 213 | /@nodelib/fs.stat/2.0.5: 214 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 215 | engines: {node: '>= 8'} 216 | dev: true 217 | 218 | /@nodelib/fs.walk/1.2.8: 219 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 220 | engines: {node: '>= 8'} 221 | dependencies: 222 | '@nodelib/fs.scandir': 2.1.5 223 | fastq: 1.15.0 224 | dev: true 225 | 226 | /@popperjs/core/2.11.6: 227 | resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} 228 | dev: false 229 | 230 | /@radix-ui/primitive/1.0.0: 231 | resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} 232 | dependencies: 233 | '@babel/runtime': 7.20.13 234 | dev: false 235 | 236 | /@radix-ui/react-arrow/1.0.1_biqbaboplfbrettd7655fr4n2y: 237 | resolution: {integrity: sha512-1yientwXqXcErDHEv8av9ZVNEBldH8L9scVR3is20lL+jOCfcJyMFZFEY5cgIrgexsq1qggSXqiEL/d/4f+QXA==} 238 | peerDependencies: 239 | react: ^16.8 || ^17.0 || ^18.0 240 | react-dom: ^16.8 || ^17.0 || ^18.0 241 | dependencies: 242 | '@babel/runtime': 7.20.13 243 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 244 | react: 18.2.0 245 | react-dom: 18.2.0_react@18.2.0 246 | dev: false 247 | 248 | /@radix-ui/react-collection/1.0.1_biqbaboplfbrettd7655fr4n2y: 249 | resolution: {integrity: sha512-uuiFbs+YCKjn3X1DTSx9G7BHApu4GHbi3kgiwsnFUbOKCrwejAJv4eE4Vc8C0Oaxt9T0aV4ox0WCOdx+39Xo+g==} 250 | peerDependencies: 251 | react: ^16.8 || ^17.0 || ^18.0 252 | react-dom: ^16.8 || ^17.0 || ^18.0 253 | dependencies: 254 | '@babel/runtime': 7.20.13 255 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 256 | '@radix-ui/react-context': 1.0.0_react@18.2.0 257 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 258 | '@radix-ui/react-slot': 1.0.1_react@18.2.0 259 | react: 18.2.0 260 | react-dom: 18.2.0_react@18.2.0 261 | dev: false 262 | 263 | /@radix-ui/react-compose-refs/1.0.0_react@18.2.0: 264 | resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} 265 | peerDependencies: 266 | react: ^16.8 || ^17.0 || ^18.0 267 | dependencies: 268 | '@babel/runtime': 7.20.13 269 | react: 18.2.0 270 | dev: false 271 | 272 | /@radix-ui/react-context/1.0.0_react@18.2.0: 273 | resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} 274 | peerDependencies: 275 | react: ^16.8 || ^17.0 || ^18.0 276 | dependencies: 277 | '@babel/runtime': 7.20.13 278 | react: 18.2.0 279 | dev: false 280 | 281 | /@radix-ui/react-dialog/1.0.2_zula6vjvt3wdocc4mwcxqa6nzi: 282 | resolution: {integrity: sha512-EKxxp2WNSmUPkx4trtWNmZ4/vAYEg7JkAfa1HKBUnaubw9eHzf1Orr9B472lJYaYz327RHDrd4R95fsw7VR8DA==} 283 | peerDependencies: 284 | react: ^16.8 || ^17.0 || ^18.0 285 | react-dom: ^16.8 || ^17.0 || ^18.0 286 | dependencies: 287 | '@babel/runtime': 7.20.13 288 | '@radix-ui/primitive': 1.0.0 289 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 290 | '@radix-ui/react-context': 1.0.0_react@18.2.0 291 | '@radix-ui/react-dismissable-layer': 1.0.2_biqbaboplfbrettd7655fr4n2y 292 | '@radix-ui/react-focus-guards': 1.0.0_react@18.2.0 293 | '@radix-ui/react-focus-scope': 1.0.1_biqbaboplfbrettd7655fr4n2y 294 | '@radix-ui/react-id': 1.0.0_react@18.2.0 295 | '@radix-ui/react-portal': 1.0.1_biqbaboplfbrettd7655fr4n2y 296 | '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y 297 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 298 | '@radix-ui/react-slot': 1.0.1_react@18.2.0 299 | '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 300 | aria-hidden: 1.2.2_pmekkgnqduwlme35zpnqhenc34 301 | react: 18.2.0 302 | react-dom: 18.2.0_react@18.2.0 303 | react-remove-scroll: 2.5.5_pmekkgnqduwlme35zpnqhenc34 304 | transitivePeerDependencies: 305 | - '@types/react' 306 | dev: false 307 | 308 | /@radix-ui/react-direction/1.0.0_react@18.2.0: 309 | resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} 310 | peerDependencies: 311 | react: ^16.8 || ^17.0 || ^18.0 312 | dependencies: 313 | '@babel/runtime': 7.20.13 314 | react: 18.2.0 315 | dev: false 316 | 317 | /@radix-ui/react-dismissable-layer/1.0.2_biqbaboplfbrettd7655fr4n2y: 318 | resolution: {integrity: sha512-WjJzMrTWROozDqLB0uRWYvj4UuXsM/2L19EmQ3Au+IJWqwvwq9Bwd+P8ivo0Deg9JDPArR1I6MbWNi1CmXsskg==} 319 | peerDependencies: 320 | react: ^16.8 || ^17.0 || ^18.0 321 | react-dom: ^16.8 || ^17.0 || ^18.0 322 | dependencies: 323 | '@babel/runtime': 7.20.13 324 | '@radix-ui/primitive': 1.0.0 325 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 326 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 327 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 328 | '@radix-ui/react-use-escape-keydown': 1.0.2_react@18.2.0 329 | react: 18.2.0 330 | react-dom: 18.2.0_react@18.2.0 331 | dev: false 332 | 333 | /@radix-ui/react-focus-guards/1.0.0_react@18.2.0: 334 | resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} 335 | peerDependencies: 336 | react: ^16.8 || ^17.0 || ^18.0 337 | dependencies: 338 | '@babel/runtime': 7.20.13 339 | react: 18.2.0 340 | dev: false 341 | 342 | /@radix-ui/react-focus-scope/1.0.1_biqbaboplfbrettd7655fr4n2y: 343 | resolution: {integrity: sha512-Ej2MQTit8IWJiS2uuujGUmxXjF/y5xZptIIQnyd2JHLwtV0R2j9NRVoRj/1j/gJ7e3REdaBw4Hjf4a1ImhkZcQ==} 344 | peerDependencies: 345 | react: ^16.8 || ^17.0 || ^18.0 346 | react-dom: ^16.8 || ^17.0 || ^18.0 347 | dependencies: 348 | '@babel/runtime': 7.20.13 349 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 350 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 351 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 352 | react: 18.2.0 353 | react-dom: 18.2.0_react@18.2.0 354 | dev: false 355 | 356 | /@radix-ui/react-id/1.0.0_react@18.2.0: 357 | resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} 358 | peerDependencies: 359 | react: ^16.8 || ^17.0 || ^18.0 360 | dependencies: 361 | '@babel/runtime': 7.20.13 362 | '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 363 | react: 18.2.0 364 | dev: false 365 | 366 | /@radix-ui/react-popper/1.1.0_zula6vjvt3wdocc4mwcxqa6nzi: 367 | resolution: {integrity: sha512-07U7jpI0dZcLRAxT7L9qs6HecSoPhDSJybF7mEGHJDBDv+ZoGCvIlva0s+WxMXwJEav+ckX3hAlXBtnHmuvlCQ==} 368 | peerDependencies: 369 | react: ^16.8 || ^17.0 || ^18.0 370 | react-dom: ^16.8 || ^17.0 || ^18.0 371 | dependencies: 372 | '@babel/runtime': 7.20.13 373 | '@floating-ui/react-dom': 0.7.2_zula6vjvt3wdocc4mwcxqa6nzi 374 | '@radix-ui/react-arrow': 1.0.1_biqbaboplfbrettd7655fr4n2y 375 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 376 | '@radix-ui/react-context': 1.0.0_react@18.2.0 377 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 378 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 379 | '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 380 | '@radix-ui/react-use-rect': 1.0.0_react@18.2.0 381 | '@radix-ui/react-use-size': 1.0.0_react@18.2.0 382 | '@radix-ui/rect': 1.0.0 383 | react: 18.2.0 384 | react-dom: 18.2.0_react@18.2.0 385 | transitivePeerDependencies: 386 | - '@types/react' 387 | dev: false 388 | 389 | /@radix-ui/react-portal/1.0.1_biqbaboplfbrettd7655fr4n2y: 390 | resolution: {integrity: sha512-NY2vUWI5WENgAT1nfC6JS7RU5xRYBfjZVLq0HmgEN1Ezy3rk/UruMV4+Rd0F40PEaFC5SrLS1ixYvcYIQrb4Ig==} 391 | peerDependencies: 392 | react: ^16.8 || ^17.0 || ^18.0 393 | react-dom: ^16.8 || ^17.0 || ^18.0 394 | dependencies: 395 | '@babel/runtime': 7.20.13 396 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 397 | react: 18.2.0 398 | react-dom: 18.2.0_react@18.2.0 399 | dev: false 400 | 401 | /@radix-ui/react-presence/1.0.0_biqbaboplfbrettd7655fr4n2y: 402 | resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} 403 | peerDependencies: 404 | react: ^16.8 || ^17.0 || ^18.0 405 | react-dom: ^16.8 || ^17.0 || ^18.0 406 | dependencies: 407 | '@babel/runtime': 7.20.13 408 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 409 | '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 410 | react: 18.2.0 411 | react-dom: 18.2.0_react@18.2.0 412 | dev: false 413 | 414 | /@radix-ui/react-primitive/1.0.1_biqbaboplfbrettd7655fr4n2y: 415 | resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} 416 | peerDependencies: 417 | react: ^16.8 || ^17.0 || ^18.0 418 | react-dom: ^16.8 || ^17.0 || ^18.0 419 | dependencies: 420 | '@babel/runtime': 7.20.13 421 | '@radix-ui/react-slot': 1.0.1_react@18.2.0 422 | react: 18.2.0 423 | react-dom: 18.2.0_react@18.2.0 424 | dev: false 425 | 426 | /@radix-ui/react-roving-focus/1.0.2_biqbaboplfbrettd7655fr4n2y: 427 | resolution: {integrity: sha512-HLK+CqD/8pN6GfJm3U+cqpqhSKYAWiOJDe+A+8MfxBnOue39QEeMa43csUn2CXCHQT0/mewh1LrrG4tfkM9DMA==} 428 | peerDependencies: 429 | react: ^16.8 || ^17.0 || ^18.0 430 | react-dom: ^16.8 || ^17.0 || ^18.0 431 | dependencies: 432 | '@babel/runtime': 7.20.13 433 | '@radix-ui/primitive': 1.0.0 434 | '@radix-ui/react-collection': 1.0.1_biqbaboplfbrettd7655fr4n2y 435 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 436 | '@radix-ui/react-context': 1.0.0_react@18.2.0 437 | '@radix-ui/react-direction': 1.0.0_react@18.2.0 438 | '@radix-ui/react-id': 1.0.0_react@18.2.0 439 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 440 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 441 | '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 442 | react: 18.2.0 443 | react-dom: 18.2.0_react@18.2.0 444 | dev: false 445 | 446 | /@radix-ui/react-slot/1.0.1_react@18.2.0: 447 | resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} 448 | peerDependencies: 449 | react: ^16.8 || ^17.0 || ^18.0 450 | dependencies: 451 | '@babel/runtime': 7.20.13 452 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 453 | react: 18.2.0 454 | dev: false 455 | 456 | /@radix-ui/react-tabs/1.0.2_biqbaboplfbrettd7655fr4n2y: 457 | resolution: {integrity: sha512-gOUwh+HbjCuL0UCo8kZ+kdUEG8QtpdO4sMQduJ34ZEz0r4922g9REOBM+vIsfwtGxSug4Yb1msJMJYN2Bk8TpQ==} 458 | peerDependencies: 459 | react: ^16.8 || ^17.0 || ^18.0 460 | react-dom: ^16.8 || ^17.0 || ^18.0 461 | dependencies: 462 | '@babel/runtime': 7.20.13 463 | '@radix-ui/primitive': 1.0.0 464 | '@radix-ui/react-context': 1.0.0_react@18.2.0 465 | '@radix-ui/react-direction': 1.0.0_react@18.2.0 466 | '@radix-ui/react-id': 1.0.0_react@18.2.0 467 | '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y 468 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 469 | '@radix-ui/react-roving-focus': 1.0.2_biqbaboplfbrettd7655fr4n2y 470 | '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 471 | react: 18.2.0 472 | react-dom: 18.2.0_react@18.2.0 473 | dev: false 474 | 475 | /@radix-ui/react-tooltip/1.0.3_zula6vjvt3wdocc4mwcxqa6nzi: 476 | resolution: {integrity: sha512-cmc9qV4KpgqdXVTn1K8KN8MnuSXvw+E719pKwyvpCGrQ+0AA2qTjcIL3uxCj4jc4k3sDR36RF7R3H7N5hPybBQ==} 477 | peerDependencies: 478 | react: ^16.8 || ^17.0 || ^18.0 479 | react-dom: ^16.8 || ^17.0 || ^18.0 480 | dependencies: 481 | '@babel/runtime': 7.20.13 482 | '@radix-ui/primitive': 1.0.0 483 | '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 484 | '@radix-ui/react-context': 1.0.0_react@18.2.0 485 | '@radix-ui/react-dismissable-layer': 1.0.2_biqbaboplfbrettd7655fr4n2y 486 | '@radix-ui/react-id': 1.0.0_react@18.2.0 487 | '@radix-ui/react-popper': 1.1.0_zula6vjvt3wdocc4mwcxqa6nzi 488 | '@radix-ui/react-portal': 1.0.1_biqbaboplfbrettd7655fr4n2y 489 | '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y 490 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 491 | '@radix-ui/react-slot': 1.0.1_react@18.2.0 492 | '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 493 | '@radix-ui/react-visually-hidden': 1.0.1_biqbaboplfbrettd7655fr4n2y 494 | react: 18.2.0 495 | react-dom: 18.2.0_react@18.2.0 496 | transitivePeerDependencies: 497 | - '@types/react' 498 | dev: false 499 | 500 | /@radix-ui/react-use-callback-ref/1.0.0_react@18.2.0: 501 | resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} 502 | peerDependencies: 503 | react: ^16.8 || ^17.0 || ^18.0 504 | dependencies: 505 | '@babel/runtime': 7.20.13 506 | react: 18.2.0 507 | dev: false 508 | 509 | /@radix-ui/react-use-controllable-state/1.0.0_react@18.2.0: 510 | resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} 511 | peerDependencies: 512 | react: ^16.8 || ^17.0 || ^18.0 513 | dependencies: 514 | '@babel/runtime': 7.20.13 515 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 516 | react: 18.2.0 517 | dev: false 518 | 519 | /@radix-ui/react-use-escape-keydown/1.0.2_react@18.2.0: 520 | resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} 521 | peerDependencies: 522 | react: ^16.8 || ^17.0 || ^18.0 523 | dependencies: 524 | '@babel/runtime': 7.20.13 525 | '@radix-ui/react-use-callback-ref': 1.0.0_react@18.2.0 526 | react: 18.2.0 527 | dev: false 528 | 529 | /@radix-ui/react-use-layout-effect/1.0.0_react@18.2.0: 530 | resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} 531 | peerDependencies: 532 | react: ^16.8 || ^17.0 || ^18.0 533 | dependencies: 534 | '@babel/runtime': 7.20.13 535 | react: 18.2.0 536 | dev: false 537 | 538 | /@radix-ui/react-use-rect/1.0.0_react@18.2.0: 539 | resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} 540 | peerDependencies: 541 | react: ^16.8 || ^17.0 || ^18.0 542 | dependencies: 543 | '@babel/runtime': 7.20.13 544 | '@radix-ui/rect': 1.0.0 545 | react: 18.2.0 546 | dev: false 547 | 548 | /@radix-ui/react-use-size/1.0.0_react@18.2.0: 549 | resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} 550 | peerDependencies: 551 | react: ^16.8 || ^17.0 || ^18.0 552 | dependencies: 553 | '@babel/runtime': 7.20.13 554 | '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 555 | react: 18.2.0 556 | dev: false 557 | 558 | /@radix-ui/react-visually-hidden/1.0.1_biqbaboplfbrettd7655fr4n2y: 559 | resolution: {integrity: sha512-K1hJcCMfWfiYUibRqf3V8r5Drpyf7rh44jnrwAbdvI5iCCijilBBeyQv9SKidYNZIopMdCyR9FnIjkHxHN0FcQ==} 560 | peerDependencies: 561 | react: ^16.8 || ^17.0 || ^18.0 562 | react-dom: ^16.8 || ^17.0 || ^18.0 563 | dependencies: 564 | '@babel/runtime': 7.20.13 565 | '@radix-ui/react-primitive': 1.0.1_biqbaboplfbrettd7655fr4n2y 566 | react: 18.2.0 567 | react-dom: 18.2.0_react@18.2.0 568 | dev: false 569 | 570 | /@radix-ui/rect/1.0.0: 571 | resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} 572 | dependencies: 573 | '@babel/runtime': 7.20.13 574 | dev: false 575 | 576 | /@swc/helpers/0.4.14: 577 | resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} 578 | dependencies: 579 | tslib: 2.5.0 580 | dev: false 581 | 582 | /@tippyjs/react/4.2.6_biqbaboplfbrettd7655fr4n2y: 583 | resolution: {integrity: sha512-91RicDR+H7oDSyPycI13q3b7o4O60wa2oRbjlz2fyRLmHImc4vyDwuUP8NtZaN0VARJY5hybvDYrFzhY9+Lbyw==} 584 | peerDependencies: 585 | react: '>=16.8' 586 | react-dom: '>=16.8' 587 | dependencies: 588 | react: 18.2.0 589 | react-dom: 18.2.0_react@18.2.0 590 | tippy.js: 6.3.7 591 | dev: false 592 | 593 | /@types/node/18.13.0: 594 | resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==} 595 | dev: true 596 | 597 | /@types/prop-types/15.7.5: 598 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 599 | 600 | /@types/react/18.0.28: 601 | resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} 602 | dependencies: 603 | '@types/prop-types': 15.7.5 604 | '@types/scheduler': 0.16.2 605 | csstype: 3.1.1 606 | 607 | /@types/scheduler/0.16.2: 608 | resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} 609 | 610 | /@vercel/analytics/0.1.8_react@18.2.0: 611 | resolution: {integrity: sha512-PQrOI8BJ9qUiVJuQfnKiJd15eDjDJH9TBKsNeMrtelT4NAk7d9mBVz1CoZkvoFnHQ0OW7Xnqmr1F2nScfAnznQ==} 612 | peerDependencies: 613 | react: ^16.8||^17||^18 614 | dependencies: 615 | react: 18.2.0 616 | dev: false 617 | 618 | /acorn-node/1.8.2: 619 | resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} 620 | dependencies: 621 | acorn: 7.4.1 622 | acorn-walk: 7.2.0 623 | xtend: 4.0.2 624 | dev: true 625 | 626 | /acorn-walk/7.2.0: 627 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 628 | engines: {node: '>=0.4.0'} 629 | dev: true 630 | 631 | /acorn/7.4.1: 632 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 633 | engines: {node: '>=0.4.0'} 634 | hasBin: true 635 | dev: true 636 | 637 | /anymatch/3.1.3: 638 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 639 | engines: {node: '>= 8'} 640 | dependencies: 641 | normalize-path: 3.0.0 642 | picomatch: 2.3.1 643 | dev: true 644 | 645 | /arg/5.0.2: 646 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 647 | dev: true 648 | 649 | /aria-hidden/1.2.2_pmekkgnqduwlme35zpnqhenc34: 650 | resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==} 651 | engines: {node: '>=10'} 652 | peerDependencies: 653 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 654 | react: ^16.9.0 || ^17.0.0 || ^18.0.0 655 | peerDependenciesMeta: 656 | '@types/react': 657 | optional: true 658 | dependencies: 659 | '@types/react': 18.0.28 660 | react: 18.2.0 661 | tslib: 2.5.0 662 | dev: false 663 | 664 | /autoprefixer/10.4.13: 665 | resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} 666 | engines: {node: ^10 || ^12 || >=14} 667 | hasBin: true 668 | peerDependencies: 669 | postcss: ^8.1.0 670 | dependencies: 671 | browserslist: 4.21.5 672 | caniuse-lite: 1.0.30001451 673 | fraction.js: 4.2.0 674 | normalize-range: 0.1.2 675 | picocolors: 1.0.0 676 | postcss-value-parser: 4.2.0 677 | dev: true 678 | 679 | /binary-extensions/2.2.0: 680 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 681 | engines: {node: '>=8'} 682 | dev: true 683 | 684 | /braces/3.0.2: 685 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 686 | engines: {node: '>=8'} 687 | dependencies: 688 | fill-range: 7.0.1 689 | dev: true 690 | 691 | /browserslist/4.21.5: 692 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 693 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 694 | hasBin: true 695 | dependencies: 696 | caniuse-lite: 1.0.30001451 697 | electron-to-chromium: 1.4.295 698 | node-releases: 2.0.10 699 | update-browserslist-db: 1.0.10_browserslist@4.21.5 700 | dev: true 701 | 702 | /camelcase-css/2.0.1: 703 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 704 | engines: {node: '>= 6'} 705 | dev: true 706 | 707 | /caniuse-lite/1.0.30001451: 708 | resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==} 709 | 710 | /chokidar/3.5.3: 711 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 712 | engines: {node: '>= 8.10.0'} 713 | dependencies: 714 | anymatch: 3.1.3 715 | braces: 3.0.2 716 | glob-parent: 5.1.2 717 | is-binary-path: 2.1.0 718 | is-glob: 4.0.3 719 | normalize-path: 3.0.0 720 | readdirp: 3.6.0 721 | optionalDependencies: 722 | fsevents: 2.3.2 723 | dev: true 724 | 725 | /client-only/0.0.1: 726 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 727 | dev: false 728 | 729 | /color-name/1.1.4: 730 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 731 | dev: true 732 | 733 | /copy-image-clipboard/2.1.2: 734 | resolution: {integrity: sha512-3VCXVl2IpFfOyD8drv9DozcNlwmqBqxOlsgkEGyVAzadjlPk1go8YNZyy8QmTnwHPxSFpeCR9OdsStEdVK7qDA==} 735 | dev: false 736 | 737 | /cssesc/3.0.0: 738 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 739 | engines: {node: '>=4'} 740 | hasBin: true 741 | dev: true 742 | 743 | /csstype/3.1.1: 744 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 745 | 746 | /defined/1.0.1: 747 | resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} 748 | dev: true 749 | 750 | /detect-node-es/1.1.0: 751 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 752 | dev: false 753 | 754 | /detective/5.2.1: 755 | resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} 756 | engines: {node: '>=0.8.0'} 757 | hasBin: true 758 | dependencies: 759 | acorn-node: 1.8.2 760 | defined: 1.0.1 761 | minimist: 1.2.8 762 | dev: true 763 | 764 | /didyoumean/1.2.2: 765 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 766 | dev: true 767 | 768 | /dlv/1.1.3: 769 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 770 | dev: true 771 | 772 | /electron-to-chromium/1.4.295: 773 | resolution: {integrity: sha512-lEO94zqf1bDA3aepxwnWoHUjA8sZ+2owgcSZjYQy0+uOSEclJX0VieZC+r+wLpSxUHRd6gG32znTWmr+5iGzFw==} 774 | dev: true 775 | 776 | /escalade/3.1.1: 777 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 778 | engines: {node: '>=6'} 779 | dev: true 780 | 781 | /fast-glob/3.2.12: 782 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 783 | engines: {node: '>=8.6.0'} 784 | dependencies: 785 | '@nodelib/fs.stat': 2.0.5 786 | '@nodelib/fs.walk': 1.2.8 787 | glob-parent: 5.1.2 788 | merge2: 1.4.1 789 | micromatch: 4.0.5 790 | dev: true 791 | 792 | /fastq/1.15.0: 793 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 794 | dependencies: 795 | reusify: 1.0.4 796 | dev: true 797 | 798 | /fill-range/7.0.1: 799 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 800 | engines: {node: '>=8'} 801 | dependencies: 802 | to-regex-range: 5.0.1 803 | dev: true 804 | 805 | /fraction.js/4.2.0: 806 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 807 | dev: true 808 | 809 | /fsevents/2.3.2: 810 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 811 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 812 | os: [darwin] 813 | requiresBuild: true 814 | dev: true 815 | optional: true 816 | 817 | /function-bind/1.1.1: 818 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 819 | dev: true 820 | 821 | /fuse.js/6.6.2: 822 | resolution: {integrity: sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==} 823 | engines: {node: '>=10'} 824 | dev: false 825 | 826 | /get-nonce/1.0.1: 827 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 828 | engines: {node: '>=6'} 829 | dev: false 830 | 831 | /glob-parent/5.1.2: 832 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 833 | engines: {node: '>= 6'} 834 | dependencies: 835 | is-glob: 4.0.3 836 | dev: true 837 | 838 | /glob-parent/6.0.2: 839 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 840 | engines: {node: '>=10.13.0'} 841 | dependencies: 842 | is-glob: 4.0.3 843 | dev: true 844 | 845 | /has/1.0.3: 846 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 847 | engines: {node: '>= 0.4.0'} 848 | dependencies: 849 | function-bind: 1.1.1 850 | dev: true 851 | 852 | /html-to-image/1.11.11: 853 | resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==} 854 | dev: false 855 | 856 | /invariant/2.2.4: 857 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 858 | dependencies: 859 | loose-envify: 1.4.0 860 | dev: false 861 | 862 | /is-binary-path/2.1.0: 863 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 864 | engines: {node: '>=8'} 865 | dependencies: 866 | binary-extensions: 2.2.0 867 | dev: true 868 | 869 | /is-core-module/2.11.0: 870 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 871 | dependencies: 872 | has: 1.0.3 873 | dev: true 874 | 875 | /is-extglob/2.1.1: 876 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 877 | engines: {node: '>=0.10.0'} 878 | dev: true 879 | 880 | /is-glob/4.0.3: 881 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 882 | engines: {node: '>=0.10.0'} 883 | dependencies: 884 | is-extglob: 2.1.1 885 | dev: true 886 | 887 | /is-number/7.0.0: 888 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 889 | engines: {node: '>=0.12.0'} 890 | dev: true 891 | 892 | /js-tokens/4.0.0: 893 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 894 | dev: false 895 | 896 | /lilconfig/2.0.6: 897 | resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} 898 | engines: {node: '>=10'} 899 | dev: true 900 | 901 | /loose-envify/1.4.0: 902 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 903 | hasBin: true 904 | dependencies: 905 | js-tokens: 4.0.0 906 | dev: false 907 | 908 | /merge2/1.4.1: 909 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 910 | engines: {node: '>= 8'} 911 | dev: true 912 | 913 | /micromatch/4.0.5: 914 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 915 | engines: {node: '>=8.6'} 916 | dependencies: 917 | braces: 3.0.2 918 | picomatch: 2.3.1 919 | dev: true 920 | 921 | /minimist/1.2.8: 922 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 923 | dev: true 924 | 925 | /nanoid/3.3.4: 926 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 927 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 928 | hasBin: true 929 | 930 | /next/13.1.7-canary.10_biqbaboplfbrettd7655fr4n2y: 931 | resolution: {integrity: sha512-d2GuwJountIXFSiXAi/lR+U6dBY9uF06HgNeZXwFBHTjyWw6XJHMVpXn16oYlsGHdW6qOeioO3ihJ4SOrkWcsg==} 932 | engines: {node: '>=14.6.0'} 933 | hasBin: true 934 | peerDependencies: 935 | fibers: '>= 3.1.0' 936 | node-sass: ^6.0.0 || ^7.0.0 937 | react: ^18.2.0 938 | react-dom: ^18.2.0 939 | sass: ^1.3.0 940 | peerDependenciesMeta: 941 | fibers: 942 | optional: true 943 | node-sass: 944 | optional: true 945 | sass: 946 | optional: true 947 | dependencies: 948 | '@next/env': 13.1.7-canary.10 949 | '@swc/helpers': 0.4.14 950 | caniuse-lite: 1.0.30001451 951 | postcss: 8.4.14 952 | react: 18.2.0 953 | react-dom: 18.2.0_react@18.2.0 954 | styled-jsx: 5.1.1_react@18.2.0 955 | optionalDependencies: 956 | '@next/swc-android-arm-eabi': 13.1.7-canary.10 957 | '@next/swc-android-arm64': 13.1.7-canary.10 958 | '@next/swc-darwin-arm64': 13.1.7-canary.10 959 | '@next/swc-darwin-x64': 13.1.7-canary.10 960 | '@next/swc-freebsd-x64': 13.1.7-canary.10 961 | '@next/swc-linux-arm-gnueabihf': 13.1.7-canary.10 962 | '@next/swc-linux-arm64-gnu': 13.1.7-canary.10 963 | '@next/swc-linux-arm64-musl': 13.1.7-canary.10 964 | '@next/swc-linux-x64-gnu': 13.1.7-canary.10 965 | '@next/swc-linux-x64-musl': 13.1.7-canary.10 966 | '@next/swc-win32-arm64-msvc': 13.1.7-canary.10 967 | '@next/swc-win32-ia32-msvc': 13.1.7-canary.10 968 | '@next/swc-win32-x64-msvc': 13.1.7-canary.10 969 | transitivePeerDependencies: 970 | - '@babel/core' 971 | - babel-plugin-macros 972 | dev: false 973 | 974 | /node-releases/2.0.10: 975 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 976 | dev: true 977 | 978 | /normalize-path/3.0.0: 979 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 980 | engines: {node: '>=0.10.0'} 981 | dev: true 982 | 983 | /normalize-range/0.1.2: 984 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 985 | engines: {node: '>=0.10.0'} 986 | dev: true 987 | 988 | /object-hash/3.0.0: 989 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 990 | engines: {node: '>= 6'} 991 | dev: true 992 | 993 | /path-parse/1.0.7: 994 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 995 | dev: true 996 | 997 | /picocolors/1.0.0: 998 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 999 | 1000 | /picomatch/2.3.1: 1001 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1002 | engines: {node: '>=8.6'} 1003 | dev: true 1004 | 1005 | /pify/2.3.0: 1006 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1007 | engines: {node: '>=0.10.0'} 1008 | dev: true 1009 | 1010 | /postcss-import/14.1.0_postcss@8.4.14: 1011 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 1012 | engines: {node: '>=10.0.0'} 1013 | peerDependencies: 1014 | postcss: ^8.0.0 1015 | dependencies: 1016 | postcss: 8.4.14 1017 | postcss-value-parser: 4.2.0 1018 | read-cache: 1.0.0 1019 | resolve: 1.22.1 1020 | dev: true 1021 | 1022 | /postcss-js/4.0.1_postcss@8.4.14: 1023 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1024 | engines: {node: ^12 || ^14 || >= 16} 1025 | peerDependencies: 1026 | postcss: ^8.4.21 1027 | dependencies: 1028 | camelcase-css: 2.0.1 1029 | postcss: 8.4.14 1030 | dev: true 1031 | 1032 | /postcss-load-config/3.1.4_postcss@8.4.14: 1033 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1034 | engines: {node: '>= 10'} 1035 | peerDependencies: 1036 | postcss: '>=8.0.9' 1037 | ts-node: '>=9.0.0' 1038 | peerDependenciesMeta: 1039 | postcss: 1040 | optional: true 1041 | ts-node: 1042 | optional: true 1043 | dependencies: 1044 | lilconfig: 2.0.6 1045 | postcss: 8.4.14 1046 | yaml: 1.10.2 1047 | dev: true 1048 | 1049 | /postcss-nested/6.0.0_postcss@8.4.14: 1050 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 1051 | engines: {node: '>=12.0'} 1052 | peerDependencies: 1053 | postcss: ^8.2.14 1054 | dependencies: 1055 | postcss: 8.4.14 1056 | postcss-selector-parser: 6.0.11 1057 | dev: true 1058 | 1059 | /postcss-selector-parser/6.0.11: 1060 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 1061 | engines: {node: '>=4'} 1062 | dependencies: 1063 | cssesc: 3.0.0 1064 | util-deprecate: 1.0.2 1065 | dev: true 1066 | 1067 | /postcss-value-parser/4.2.0: 1068 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1069 | dev: true 1070 | 1071 | /postcss/8.4.14: 1072 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 1073 | engines: {node: ^10 || ^12 || >=14} 1074 | dependencies: 1075 | nanoid: 3.3.4 1076 | picocolors: 1.0.0 1077 | source-map-js: 1.0.2 1078 | 1079 | /queue-microtask/1.2.3: 1080 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1081 | dev: true 1082 | 1083 | /quick-lru/5.1.1: 1084 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 1085 | engines: {node: '>=10'} 1086 | dev: true 1087 | 1088 | /react-dom/18.2.0_react@18.2.0: 1089 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 1090 | peerDependencies: 1091 | react: ^18.2.0 1092 | dependencies: 1093 | loose-envify: 1.4.0 1094 | react: 18.2.0 1095 | scheduler: 0.23.0 1096 | dev: false 1097 | 1098 | /react-hook-form/7.43.1_react@18.2.0: 1099 | resolution: {integrity: sha512-+s3+s8LLytRMriwwuSqeLStVjRXFGxgjjx2jED7Z+wz1J/88vpxieRQGvJVvzrzVxshZ0BRuocFERb779m2kNg==} 1100 | engines: {node: '>=12.22.0'} 1101 | peerDependencies: 1102 | react: ^16.8.0 || ^17 || ^18 1103 | dependencies: 1104 | react: 18.2.0 1105 | dev: false 1106 | 1107 | /react-remove-scroll-bar/2.3.4_pmekkgnqduwlme35zpnqhenc34: 1108 | resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} 1109 | engines: {node: '>=10'} 1110 | peerDependencies: 1111 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1112 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1113 | peerDependenciesMeta: 1114 | '@types/react': 1115 | optional: true 1116 | dependencies: 1117 | '@types/react': 18.0.28 1118 | react: 18.2.0 1119 | react-style-singleton: 2.2.1_pmekkgnqduwlme35zpnqhenc34 1120 | tslib: 2.5.0 1121 | dev: false 1122 | 1123 | /react-remove-scroll/2.5.5_pmekkgnqduwlme35zpnqhenc34: 1124 | resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} 1125 | engines: {node: '>=10'} 1126 | peerDependencies: 1127 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1128 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1129 | peerDependenciesMeta: 1130 | '@types/react': 1131 | optional: true 1132 | dependencies: 1133 | '@types/react': 18.0.28 1134 | react: 18.2.0 1135 | react-remove-scroll-bar: 2.3.4_pmekkgnqduwlme35zpnqhenc34 1136 | react-style-singleton: 2.2.1_pmekkgnqduwlme35zpnqhenc34 1137 | tslib: 2.5.0 1138 | use-callback-ref: 1.3.0_pmekkgnqduwlme35zpnqhenc34 1139 | use-sidecar: 1.1.2_pmekkgnqduwlme35zpnqhenc34 1140 | dev: false 1141 | 1142 | /react-style-singleton/2.2.1_pmekkgnqduwlme35zpnqhenc34: 1143 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 1144 | engines: {node: '>=10'} 1145 | peerDependencies: 1146 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1147 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1148 | peerDependenciesMeta: 1149 | '@types/react': 1150 | optional: true 1151 | dependencies: 1152 | '@types/react': 18.0.28 1153 | get-nonce: 1.0.1 1154 | invariant: 2.2.4 1155 | react: 18.2.0 1156 | tslib: 2.5.0 1157 | dev: false 1158 | 1159 | /react/18.2.0: 1160 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 1161 | engines: {node: '>=0.10.0'} 1162 | dependencies: 1163 | loose-envify: 1.4.0 1164 | dev: false 1165 | 1166 | /read-cache/1.0.0: 1167 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1168 | dependencies: 1169 | pify: 2.3.0 1170 | dev: true 1171 | 1172 | /readdirp/3.6.0: 1173 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1174 | engines: {node: '>=8.10.0'} 1175 | dependencies: 1176 | picomatch: 2.3.1 1177 | dev: true 1178 | 1179 | /regenerator-runtime/0.13.11: 1180 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 1181 | dev: false 1182 | 1183 | /resolve/1.22.1: 1184 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1185 | hasBin: true 1186 | dependencies: 1187 | is-core-module: 2.11.0 1188 | path-parse: 1.0.7 1189 | supports-preserve-symlinks-flag: 1.0.0 1190 | dev: true 1191 | 1192 | /reusify/1.0.4: 1193 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1194 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1195 | dev: true 1196 | 1197 | /run-parallel/1.2.0: 1198 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1199 | dependencies: 1200 | queue-microtask: 1.2.3 1201 | dev: true 1202 | 1203 | /scheduler/0.23.0: 1204 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 1205 | dependencies: 1206 | loose-envify: 1.4.0 1207 | dev: false 1208 | 1209 | /server-only/0.0.1: 1210 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} 1211 | dev: false 1212 | 1213 | /source-map-js/1.0.2: 1214 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1215 | engines: {node: '>=0.10.0'} 1216 | 1217 | /styled-jsx/5.1.1_react@18.2.0: 1218 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 1219 | engines: {node: '>= 12.0.0'} 1220 | peerDependencies: 1221 | '@babel/core': '*' 1222 | babel-plugin-macros: '*' 1223 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 1224 | peerDependenciesMeta: 1225 | '@babel/core': 1226 | optional: true 1227 | babel-plugin-macros: 1228 | optional: true 1229 | dependencies: 1230 | client-only: 0.0.1 1231 | react: 18.2.0 1232 | dev: false 1233 | 1234 | /supports-preserve-symlinks-flag/1.0.0: 1235 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1236 | engines: {node: '>= 0.4'} 1237 | dev: true 1238 | 1239 | /tailwindcss/3.2.6: 1240 | resolution: {integrity: sha512-BfgQWZrtqowOQMC2bwaSNe7xcIjdDEgixWGYOd6AL0CbKHJlvhfdbINeAW76l1sO+1ov/MJ93ODJ9yluRituIw==} 1241 | engines: {node: '>=12.13.0'} 1242 | hasBin: true 1243 | dependencies: 1244 | arg: 5.0.2 1245 | chokidar: 3.5.3 1246 | color-name: 1.1.4 1247 | detective: 5.2.1 1248 | didyoumean: 1.2.2 1249 | dlv: 1.1.3 1250 | fast-glob: 3.2.12 1251 | glob-parent: 6.0.2 1252 | is-glob: 4.0.3 1253 | lilconfig: 2.0.6 1254 | micromatch: 4.0.5 1255 | normalize-path: 3.0.0 1256 | object-hash: 3.0.0 1257 | picocolors: 1.0.0 1258 | postcss: 8.4.14 1259 | postcss-import: 14.1.0_postcss@8.4.14 1260 | postcss-js: 4.0.1_postcss@8.4.14 1261 | postcss-load-config: 3.1.4_postcss@8.4.14 1262 | postcss-nested: 6.0.0_postcss@8.4.14 1263 | postcss-selector-parser: 6.0.11 1264 | postcss-value-parser: 4.2.0 1265 | quick-lru: 5.1.1 1266 | resolve: 1.22.1 1267 | transitivePeerDependencies: 1268 | - ts-node 1269 | dev: true 1270 | 1271 | /tippy.js/6.3.7: 1272 | resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==} 1273 | dependencies: 1274 | '@popperjs/core': 2.11.6 1275 | dev: false 1276 | 1277 | /to-regex-range/5.0.1: 1278 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1279 | engines: {node: '>=8.0'} 1280 | dependencies: 1281 | is-number: 7.0.0 1282 | dev: true 1283 | 1284 | /tslib/2.5.0: 1285 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 1286 | dev: false 1287 | 1288 | /typescript/4.9.5: 1289 | resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} 1290 | engines: {node: '>=4.2.0'} 1291 | hasBin: true 1292 | dev: true 1293 | 1294 | /update-browserslist-db/1.0.10_browserslist@4.21.5: 1295 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 1296 | hasBin: true 1297 | peerDependencies: 1298 | browserslist: '>= 4.21.0' 1299 | dependencies: 1300 | browserslist: 4.21.5 1301 | escalade: 3.1.1 1302 | picocolors: 1.0.0 1303 | dev: true 1304 | 1305 | /use-callback-ref/1.3.0_pmekkgnqduwlme35zpnqhenc34: 1306 | resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} 1307 | engines: {node: '>=10'} 1308 | peerDependencies: 1309 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1310 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1311 | peerDependenciesMeta: 1312 | '@types/react': 1313 | optional: true 1314 | dependencies: 1315 | '@types/react': 18.0.28 1316 | react: 18.2.0 1317 | tslib: 2.5.0 1318 | dev: false 1319 | 1320 | /use-debounce/9.0.3_react@18.2.0: 1321 | resolution: {integrity: sha512-FhtlbDtDXILJV7Lix5OZj5yX/fW1tzq+VrvK1fnT2bUrPOGruU9Rw8NCEn+UI9wopfERBEZAOQ8lfeCJPllgnw==} 1322 | engines: {node: '>= 10.0.0'} 1323 | peerDependencies: 1324 | react: '>=16.8.0' 1325 | dependencies: 1326 | react: 18.2.0 1327 | dev: false 1328 | 1329 | /use-isomorphic-layout-effect/1.1.2_pmekkgnqduwlme35zpnqhenc34: 1330 | resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} 1331 | peerDependencies: 1332 | '@types/react': '*' 1333 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1334 | peerDependenciesMeta: 1335 | '@types/react': 1336 | optional: true 1337 | dependencies: 1338 | '@types/react': 18.0.28 1339 | react: 18.2.0 1340 | dev: false 1341 | 1342 | /use-sidecar/1.1.2_pmekkgnqduwlme35zpnqhenc34: 1343 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 1344 | engines: {node: '>=10'} 1345 | peerDependencies: 1346 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 1347 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1348 | peerDependenciesMeta: 1349 | '@types/react': 1350 | optional: true 1351 | dependencies: 1352 | '@types/react': 18.0.28 1353 | detect-node-es: 1.1.0 1354 | react: 18.2.0 1355 | tslib: 2.5.0 1356 | dev: false 1357 | 1358 | /util-deprecate/1.0.2: 1359 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1360 | dev: true 1361 | 1362 | /xtend/4.0.2: 1363 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1364 | engines: {node: '>=0.4'} 1365 | dev: true 1366 | 1367 | /yaml/1.10.2: 1368 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1369 | engines: {node: '>= 6'} 1370 | dev: true 1371 | --------------------------------------------------------------------------------