splitfire desktop
Seto Elkahfi committed
Jul 30, 2024 at 01:14 UTC
14fd26b95335586bf8e16912dc94aace8d391e76
38 files changed
+19909
-34
frontend/splitfire-desktop/.npmrc
new
+1
@@ -0,0 +1 @@
1
+registry=https://registry.npmjs.org
frontend/splitfire-desktop/README.md
+7
@@ -2,6 +2,13 @@
2
3
SplitFire AI is an artificial intelligence app for music enthusiasts. This repo builds desktop version of SplitFire AI.
4
5
+## Bazel
6
+
7
+Run under bazel for more faster iteration:
8
+```bash
9
+bazel run //frontend/splitfire-desktop:dev
10
+```
11
+
12
## Local development
13
14
Run only the web target:
frontend/splitfire-desktop/app/_lib/hooks/use-enter-submit.tsx
new
+23
@@ -0,0 +1,23 @@
1
+import { useRef, type RefObject } from 'react'
2
+
3
+export function useEnterSubmit(): {
4
+ formRef: RefObject<HTMLFormElement>
5
+ onKeyDown: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void
6
+} {
7
+ const formRef = useRef<HTMLFormElement>(null)
8
+
9
+ const handleKeyDown = (
10
+ event: React.KeyboardEvent<HTMLTextAreaElement>
11
+ ): void => {
12
+ if (
13
+ event.key === 'Enter' &&
14
+ !event.shiftKey &&
15
+ !event.nativeEvent.isComposing
16
+ ) {
17
+ formRef.current?.requestSubmit()
18
+ event.preventDefault()
19
+ }
20
+ }
21
+
22
+ return { formRef, onKeyDown: handleKeyDown }
23
+}
frontend/splitfire-desktop/app/_lib/hooks/use-local-storage.ts
new
+24
@@ -0,0 +1,24 @@
1
+import { useEffect, useState } from 'react'
2
+
3
+export const useLocalStorage = <T>(
4
+ key: string,
5
+ initialValue: T
6
+): [T, (value: T) => void] => {
7
+ const [storedValue, setStoredValue] = useState(initialValue)
8
+
9
+ useEffect(() => {
10
+ // Retrieve from localStorage
11
+ const item = window.localStorage.getItem(key)
12
+ if (item) {
13
+ setStoredValue(JSON.parse(item))
14
+ }
15
+ }, [key])
16
+
17
+ const setValue = (value: T) => {
18
+ // Save state
19
+ setStoredValue(value)
20
+ // Save to localStorage
21
+ window.localStorage.setItem(key, JSON.stringify(value))
22
+ }
23
+ return [storedValue, setValue]
24
+}
frontend/splitfire-desktop/app/_lib/menus.ts
new
+20
@@ -0,0 +1,20 @@
1
+export type Item = {
2
+ name: string;
3
+ slug: string;
4
+ description?: string;
5
+};
6
+
7
+export const menus: { items: Item[] }[] = [
8
+ {
9
+ items: [
10
+ {
11
+ name: 'Play',
12
+ slug: 'play',
13
+ },
14
+ {
15
+ name: 'Chat 🤖',
16
+ slug: 'chat',
17
+ },
18
+ ],
19
+ },
20
+];
frontend/splitfire-desktop/app/_lib/utils.ts
new
+43
@@ -0,0 +1,43 @@
1
+import { clsx, type ClassValue } from 'clsx'
2
+import { customAlphabet } from 'nanoid'
3
+import { twMerge } from 'tailwind-merge'
4
+
5
+export function cn(...inputs: ClassValue[]) {
6
+ return twMerge(clsx(inputs))
7
+}
8
+
9
+export const nanoid = customAlphabet(
10
+ '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
11
+ 7
12
+) // 7-character random string
13
+
14
+export async function fetcher<JSON = any>(
15
+ input: RequestInfo,
16
+ init?: RequestInit
17
+): Promise<JSON> {
18
+ const res = await fetch(input, init)
19
+
20
+ if (!res.ok) {
21
+ const json = await res.json()
22
+ if (json.error) {
23
+ const error = new Error(json.error) as Error & {
24
+ status: number
25
+ }
26
+ error.status = res.status
27
+ throw error
28
+ } else {
29
+ throw new Error('An unexpected error occurred')
30
+ }
31
+ }
32
+
33
+ return res.json()
34
+}
35
+
36
+export function formatDate(input: string | number | Date): string {
37
+ const date = new Date(input)
38
+ return date.toLocaleDateString('en-US', {
39
+ month: 'long',
40
+ day: 'numeric',
41
+ year: 'numeric'
42
+ })
43
+}
frontend/splitfire-desktop/app/_ui/address-bar.tsx
new
+79
@@ -0,0 +1,79 @@
1
+'use client';
2
+
3
+import React, { Suspense } from 'react';
4
+import { usePathname, useSearchParams } from 'next/navigation';
5
+import { HomeIcon } from '@heroicons/react/solid';
6
+
7
+function Params() {
8
+ const searchParams = useSearchParams()!;
9
+
10
+ return searchParams.toString().length !== 0 ? (
11
+ <div className="px-2 text-gray-500">
12
+ <span>?</span>
13
+ {Array.from(searchParams.entries()).map(([key, value], index) => {
14
+ return (
15
+ <React.Fragment key={key}>
16
+ {index !== 0 ? <span>&</span> : null}
17
+ <span className="px-1">
18
+ <span
19
+ key={key}
20
+ className="animate-[highlight_1s_ease-in-out_1] text-gray-100"
21
+ >
22
+ {key}
23
+ </span>
24
+ <span>=</span>
25
+ <span
26
+ key={value}
27
+ className="animate-[highlight_1s_ease-in-out_1] text-gray-100"
28
+ >
29
+ {value}
30
+ </span>
31
+ </span>
32
+ </React.Fragment>
33
+ );
34
+ })}
35
+ </div>
36
+ ) : null;
37
+}
38
+
39
+export function AddressBar() {
40
+ const pathname = usePathname();
41
+ console.log('pathname', pathname);
42
+ return (
43
+ <div className="flex items-center gap-x-2 p-3.5 lg:px-5 lg:py-3">
44
+ <div className="text-gray-600">
45
+ <HomeIcon width={16} />
46
+ </div>
47
+ <div className="flex gap-x-1 text-sm font-medium">
48
+ {pathname ? (
49
+ <>
50
+ <span className="text-gray-600">/</span>
51
+ {pathname
52
+ .split('/')
53
+ .slice(1)
54
+ .map((segment) => {
55
+ return (
56
+ <React.Fragment key={segment}>
57
+ <span>
58
+ <span
59
+ key={segment}
60
+ className="animate-[highlight_1s_ease-in-out_1] rounded-full px-1.5 py-0.5 text-gray-100"
61
+ >
62
+ {segment}
63
+ </span>
64
+ </span>
65
+
66
+ <span className="text-gray-600">/</span>
67
+ </React.Fragment>
68
+ );
69
+ })}
70
+ </>
71
+ ) : null}
72
+
73
+ <Suspense>
74
+ <Params />
75
+ </Suspense>
76
+ </div>
77
+ </div>
78
+ );
79
+}
frontend/splitfire-desktop/app/_ui/boundary.tsx
new
+82
@@ -0,0 +1,82 @@
1
+import clsx from 'clsx';
2
+import React from 'react';
3
+
4
+const Label = ({
5
+ children,
6
+ animateRerendering,
7
+ color,
8
+}: {
9
+ children: React.ReactNode;
10
+ animateRerendering?: boolean;
11
+ color?: 'default' | 'pink' | 'blue' | 'violet' | 'cyan' | 'orange';
12
+}) => {
13
+ return (
14
+ <div
15
+ className={clsx('rounded-full px-1.5 shadow-[0_0_1px_3px_black]', {
16
+ 'bg-gray-800 text-gray-300': color === 'default',
17
+ 'bg-vercel-pink text-white': color === 'pink',
18
+ 'bg-vercel-blue text-white': color === 'blue',
19
+ 'bg-vercel-cyan text-white': color === 'cyan',
20
+ 'bg-vercel-violet text-violet-100': color === 'violet',
21
+ 'bg-vercel-orange text-white': color === 'orange',
22
+ 'animate-[highlight_1s_ease-in-out_1]': animateRerendering,
23
+ })}
24
+ >
25
+ {children}
26
+ </div>
27
+ );
28
+};
29
+export const Boundary = ({
30
+ children,
31
+ labels = ['children'],
32
+ size = 'default',
33
+ color = 'default',
34
+ animateRerendering = true,
35
+}: {
36
+ children: React.ReactNode;
37
+ labels?: string[];
38
+ size?: 'small' | 'default';
39
+ color?: 'default' | 'pink' | 'blue' | 'violet' | 'cyan' | 'orange';
40
+ animateRerendering?: boolean;
41
+}) => {
42
+ return (
43
+ <div
44
+ className={clsx('relative rounded-lg border border-dashed', {
45
+ 'p-3 lg:p-5': size === 'small',
46
+ 'p-4 lg:p-9': size === 'default',
47
+ 'border-gray-700': color === 'default',
48
+ 'border-vercel-pink': color === 'pink',
49
+ 'border-vercel-blue': color === 'blue',
50
+ 'border-vercel-cyan': color === 'cyan',
51
+ 'border-vercel-violet': color === 'violet',
52
+ 'border-vercel-orange': color === 'orange',
53
+ 'text-vercel-pink animate-[rerender_1s_ease-in-out_1]':
54
+ animateRerendering,
55
+ })}
56
+ >
57
+ <div
58
+ className={clsx(
59
+ 'absolute -top-2.5 flex gap-x-1 text-[9px] uppercase leading-4 tracking-widest',
60
+ {
61
+ 'left-3 lg:left-5': size === 'small',
62
+ 'left-4 lg:left-9': size === 'default',
63
+ },
64
+ )}
65
+ >
66
+ {labels.map((label) => {
67
+ return (
68
+ <Label
69
+ key={label}
70
+ color={color}
71
+ animateRerendering={animateRerendering}
72
+ >
73
+ {label}
74
+ </Label>
75
+ );
76
+ })}
77
+ </div>
78
+
79
+ {children}
80
+ </div>
81
+ );
82
+};
frontend/splitfire-desktop/app/_ui/click-counter.tsx
new
+16
@@ -0,0 +1,16 @@
1
+'use client';
2
+
3
+import React from 'react';
4
+
5
+export function ClickCounter() {
6
+ const [count, setCount] = React.useState(0);
7
+
8
+ return (
9
+ <button
10
+ onClick={() => setCount(count + 1)}
11
+ className="whitespace-nowrap rounded-lg bg-gray-700 px-3 py-1 text-sm font-medium tabular-nums text-gray-100 hover:bg-gray-500 hover:text-white"
12
+ >
13
+ {count} Clicks
14
+ </button>
15
+ );
16
+}
frontend/splitfire-desktop/app/_ui/components/button.tsx
new
+57
@@ -0,0 +1,57 @@
1
+import * as React from 'react'
2
+import { Slot } from '@radix-ui/react-slot'
3
+import { cva, type VariantProps } from 'class-variance-authority'
4
+import { cn } from '@/app/_lib/utils'
5
+
6
+
7
+const buttonVariants = cva(
8
+ 'inline-flex items-center justify-center rounded-md text-sm font-medium shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default:
13
+ 'bg-primary text-primary-foreground shadow-md hover:bg-primary/90',
14
+ destructive:
15
+ 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
16
+ outline:
17
+ 'border border-input hover:bg-accent hover:text-accent-foreground',
18
+ secondary:
19
+ 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
20
+ ghost: 'shadow-none hover:bg-accent hover:text-accent-foreground',
21
+ link: 'text-primary underline-offset-4 shadow-none hover:underline'
22
+ },
23
+ size: {
24
+ default: 'h-8 px-4 py-2',
25
+ sm: 'h-8 rounded-md px-3',
26
+ lg: 'h-11 rounded-md px-8',
27
+ icon: 'size-8 p-0'
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ variant: 'default',
32
+ size: 'default'
33
+ }
34
+ }
35
+)
36
+
37
+export interface ButtonProps
38
+ extends React.ButtonHTMLAttributes<HTMLButtonElement>,
39
+ VariantProps<typeof buttonVariants> {
40
+ asChild?: boolean
41
+}
42
+
43
+const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
44
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
45
+ const Comp = asChild ? Slot : 'button'
46
+ return (
47
+ <Comp
48
+ className={cn(buttonVariants({ variant, size, className }))}
49
+ ref={ref}
50
+ {...props}
51
+ />
52
+ )
53
+ }
54
+)
55
+Button.displayName = 'Button'
56
+
57
+export { Button, buttonVariants }
frontend/splitfire-desktop/app/_ui/components/chat-panel.tsx
new
+57
@@ -0,0 +1,57 @@
1
+'use client'
2
+
3
+import * as React from 'react'
4
+import { type UseChatHelpers } from 'ai/react'
5
+
6
+import { PromptForm } from './prompt-form'
7
+
8
+export interface ChatPanelProps
9
+ extends Pick<
10
+ UseChatHelpers,
11
+ | 'append'
12
+ | 'isLoading'
13
+ | 'reload'
14
+ | 'messages'
15
+ | 'stop'
16
+ | 'input'
17
+ | 'setInput'
18
+ > {
19
+ id?: string
20
+ title?: string
21
+}
22
+
23
+export function ChatPanel({
24
+ id,
25
+ title,
26
+ isLoading,
27
+ stop,
28
+ append,
29
+ reload,
30
+ input,
31
+ setInput,
32
+ messages
33
+}: ChatPanelProps) {
34
+ const [shareDialogOpen, setShareDialogOpen] = React.useState(false)
35
+
36
+ return (
37
+ <div className="fixed inset-x-0 bottom-0 w-full bg-gradient-to-b from-muted/30 from-0% to-muted/30 to-50% animate-in duration-300 ease-in-out dark:from-background/10 dark:from-10% dark:to-background/80 peer-[[data-state=open]]:group-[]:lg:pl-[250px] peer-[[data-state=open]]:group-[]:xl:pl-[300px]">
38
+ <div className="mx-auto sm:max-w-2xl sm:px-4">
39
+ <div className="flex items-center justify-center h-12"></div>
40
+ <div className="px-4 py-2 space-y-4 border-t shadow-lg bg-background sm:rounded-t-xl sm:border md:py-4">
41
+ <PromptForm
42
+ onSubmit={async value => {
43
+ await append({
44
+ id,
45
+ content: value,
46
+ role: 'user'
47
+ })
48
+ }}
49
+ input={input}
50
+ setInput={setInput}
51
+ isLoading={isLoading}
52
+ />
53
+ </div>
54
+ </div>
55
+ </div>
56
+ )
57
+}
frontend/splitfire-desktop/app/_ui/components/empty-screen.tsx
new
+56
@@ -0,0 +1,56 @@
1
+import { UseChatHelpers } from 'ai/react'
2
+
3
+import { Button } from './button'
4
+import { ExternalLink } from './external-link'
5
+import { IconArrowRight } from './icons'
6
+
7
+const exampleMessages = [
8
+ {
9
+ heading: 'Explain technical concepts',
10
+ message: `What is a "serverless function"?`
11
+ },
12
+ {
13
+ heading: 'Summarize an article',
14
+ message: 'Summarize the following article for a 2nd grader: \n'
15
+ },
16
+ {
17
+ heading: 'Draft an email',
18
+ message: `Draft an email to my boss about the following: \n`
19
+ }
20
+]
21
+
22
+export function EmptyScreen({ setInput }: Pick<UseChatHelpers, 'setInput'>) {
23
+ return (
24
+ <div className="mx-auto max-w-2xl px-4">
25
+ <div className="rounded-lg border bg-background p-8">
26
+ <h1 className="mb-2 text-lg font-semibold">
27
+ Welcome to Next.js AI Chatbot!
28
+ </h1>
29
+ <p className="mb-2 leading-normal text-muted-foreground">
30
+ This is an open source AI chatbot app template built with{' '}
31
+ <ExternalLink href="https://nextjs.org">Next.js</ExternalLink> and{' '}
32
+ <ExternalLink href="https://vercel.com/storage/kv">
33
+ Vercel KV
34
+ </ExternalLink>
35
+ .
36
+ </p>
37
+ <p className="leading-normal text-muted-foreground">
38
+ You can start a conversation here or try the following examples:
39
+ </p>
40
+ <div className="mt-4 flex flex-col items-start space-y-2">
41
+ {exampleMessages.map((message, index) => (
42
+ <Button
43
+ key={index}
44
+ variant="link"
45
+ className="h-auto p-0 text-base"
46
+ onClick={() => setInput(message.message)}
47
+ >
48
+ <IconArrowRight className="mr-2 text-muted-foreground" />
49
+ {message.heading}
50
+ </Button>
51
+ ))}
52
+ </div>
53
+ </div>
54
+ </div>
55
+ )
56
+}
frontend/splitfire-desktop/app/_ui/components/external-link.tsx
new
+29
@@ -0,0 +1,29 @@
1
+export function ExternalLink({
2
+ href,
3
+ children
4
+}: {
5
+ href: string
6
+ children: React.ReactNode
7
+}) {
8
+ return (
9
+ <a
10
+ href={href}
11
+ target="_blank"
12
+ className="inline-flex flex-1 justify-center gap-1 leading-4 hover:underline"
13
+ >
14
+ <span>{children}</span>
15
+ <svg
16
+ aria-hidden="true"
17
+ height="7"
18
+ viewBox="0 0 6 6"
19
+ width="7"
20
+ className="opacity-70"
21
+ >
22
+ <path
23
+ d="M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z"
24
+ fill="currentColor"
25
+ ></path>
26
+ </svg>
27
+ </a>
28
+ )
29
+}
frontend/splitfire-desktop/app/_ui/components/icons.tsx
new
+506
@@ -0,0 +1,506 @@
1
+'use client'
2
+
3
+import { cn } from '@/app/_lib/utils'
4
+import * as React from 'react'
5
+
6
+function IconNextChat({
7
+ className,
8
+ inverted,
9
+ ...props
10
+}: React.ComponentProps<'svg'> & { inverted?: boolean }) {
11
+ const id = React.useId()
12
+
13
+ return (
14
+ <svg
15
+ viewBox="0 0 17 17"
16
+ fill="none"
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ className={cn('size-4', className)}
19
+ {...props}
20
+ >
21
+ <defs>
22
+ <linearGradient
23
+ id={`gradient-${id}-1`}
24
+ x1="10.6889"
25
+ y1="10.3556"
26
+ x2="13.8445"
27
+ y2="14.2667"
28
+ gradientUnits="userSpaceOnUse"
29
+ >
30
+ <stop stopColor={inverted ? 'white' : 'black'} />
31
+ <stop
32
+ offset={1}
33
+ stopColor={inverted ? 'white' : 'black'}
34
+ stopOpacity={0}
35
+ />
36
+ </linearGradient>
37
+ <linearGradient
38
+ id={`gradient-${id}-2`}
39
+ x1="11.7555"
40
+ y1="4.8"
41
+ x2="11.7376"
42
+ y2="9.50002"
43
+ gradientUnits="userSpaceOnUse"
44
+ >
45
+ <stop stopColor={inverted ? 'white' : 'black'} />
46
+ <stop
47
+ offset={1}
48
+ stopColor={inverted ? 'white' : 'black'}
49
+ stopOpacity={0}
50
+ />
51
+ </linearGradient>
52
+ </defs>
53
+ <path
54
+ d="M1 16L2.58314 11.2506C1.83084 9.74642 1.63835 8.02363 2.04013 6.39052C2.4419 4.75741 3.41171 3.32057 4.776 2.33712C6.1403 1.35367 7.81003 0.887808 9.4864 1.02289C11.1628 1.15798 12.7364 1.8852 13.9256 3.07442C15.1148 4.26363 15.842 5.83723 15.9771 7.5136C16.1122 9.18997 15.6463 10.8597 14.6629 12.224C13.6794 13.5883 12.2426 14.5581 10.6095 14.9599C8.97637 15.3616 7.25358 15.1692 5.74942 14.4169L1 16Z"
55
+ fill={inverted ? 'black' : 'white'}
56
+ stroke={inverted ? 'black' : 'white'}
57
+ strokeWidth={2}
58
+ strokeLinecap="round"
59
+ strokeLinejoin="round"
60
+ />
61
+ <mask
62
+ id="mask0_91_2047"
63
+ style={{ maskType: 'alpha' }}
64
+ maskUnits="userSpaceOnUse"
65
+ x={1}
66
+ y={0}
67
+ width={16}
68
+ height={16}
69
+ >
70
+ <circle cx={9} cy={8} r={8} fill={inverted ? 'black' : 'white'} />
71
+ </mask>
72
+ <g mask="url(#mask0_91_2047)">
73
+ <circle cx={9} cy={8} r={8} fill={inverted ? 'black' : 'white'} />
74
+ <path
75
+ d="M14.2896 14.0018L7.146 4.8H5.80005V11.1973H6.87681V6.16743L13.4444 14.6529C13.7407 14.4545 14.0231 14.2369 14.2896 14.0018Z"
76
+ fill={`url(#gradient-${id}-1)`}
77
+ />
78
+ <rect
79
+ x="11.2222"
80
+ y="4.8"
81
+ width="1.06667"
82
+ height="6.4"
83
+ fill={`url(#gradient-${id}-2)`}
84
+ />
85
+ </g>
86
+ </svg>
87
+ )
88
+}
89
+
90
+function IconOpenAI({ className, ...props }: React.ComponentProps<'svg'>) {
91
+ return (
92
+ <svg
93
+ fill="currentColor"
94
+ viewBox="0 0 24 24"
95
+ role="img"
96
+ xmlns="http://www.w3.org/2000/svg"
97
+ className={cn('size-4', className)}
98
+ {...props}
99
+ >
100
+ <title>OpenAI icon</title>
101
+ <path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z" />
102
+ </svg>
103
+ )
104
+}
105
+
106
+function IconVercel({ className, ...props }: React.ComponentProps<'svg'>) {
107
+ return (
108
+ <svg
109
+ aria-label="Vercel logomark"
110
+ role="img"
111
+ viewBox="0 0 74 64"
112
+ className={cn('size-4', className)}
113
+ {...props}
114
+ >
115
+ <path
116
+ d="M37.5896 0.25L74.5396 64.25H0.639648L37.5896 0.25Z"
117
+ fill="currentColor"
118
+ ></path>
119
+ </svg>
120
+ )
121
+}
122
+
123
+function IconGitHub({ className, ...props }: React.ComponentProps<'svg'>) {
124
+ return (
125
+ <svg
126
+ role="img"
127
+ viewBox="0 0 24 24"
128
+ xmlns="http://www.w3.org/2000/svg"
129
+ fill="currentColor"
130
+ className={cn('size-4', className)}
131
+ {...props}
132
+ >
133
+ <title>GitHub</title>
134
+ <path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
135
+ </svg>
136
+ )
137
+}
138
+
139
+function IconSeparator({ className, ...props }: React.ComponentProps<'svg'>) {
140
+ return (
141
+ <svg
142
+ fill="none"
143
+ shapeRendering="geometricPrecision"
144
+ stroke="currentColor"
145
+ strokeLinecap="round"
146
+ strokeLinejoin="round"
147
+ strokeWidth="1"
148
+ viewBox="0 0 24 24"
149
+ aria-hidden="true"
150
+ className={cn('size-4', className)}
151
+ {...props}
152
+ >
153
+ <path d="M16.88 3.549L7.12 20.451"></path>
154
+ </svg>
155
+ )
156
+}
157
+
158
+function IconArrowDown({ className, ...props }: React.ComponentProps<'svg'>) {
159
+ return (
160
+ <svg
161
+ xmlns="http://www.w3.org/2000/svg"
162
+ viewBox="0 0 256 256"
163
+ fill="currentColor"
164
+ className={cn('size-4', className)}
165
+ {...props}
166
+ >
167
+ <path d="m205.66 149.66-72 72a8 8 0 0 1-11.32 0l-72-72a8 8 0 0 1 11.32-11.32L120 196.69V40a8 8 0 0 1 16 0v156.69l58.34-58.35a8 8 0 0 1 11.32 11.32Z" />
168
+ </svg>
169
+ )
170
+}
171
+
172
+function IconArrowRight({ className, ...props }: React.ComponentProps<'svg'>) {
173
+ return (
174
+ <svg
175
+ xmlns="http://www.w3.org/2000/svg"
176
+ viewBox="0 0 256 256"
177
+ fill="currentColor"
178
+ className={cn('size-4', className)}
179
+ {...props}
180
+ >
181
+ <path d="m221.66 133.66-72 72a8 8 0 0 1-11.32-11.32L196.69 136H40a8 8 0 0 1 0-16h156.69l-58.35-58.34a8 8 0 0 1 11.32-11.32l72 72a8 8 0 0 1 0 11.32Z" />
182
+ </svg>
183
+ )
184
+}
185
+
186
+function IconUser({ className, ...props }: React.ComponentProps<'svg'>) {
187
+ return (
188
+ <svg
189
+ xmlns="http://www.w3.org/2000/svg"
190
+ viewBox="0 0 256 256"
191
+ fill="currentColor"
192
+ className={cn('size-4', className)}
193
+ {...props}
194
+ >
195
+ <path d="M230.92 212c-15.23-26.33-38.7-45.21-66.09-54.16a72 72 0 1 0-73.66 0c-27.39 8.94-50.86 27.82-66.09 54.16a8 8 0 1 0 13.85 8c18.84-32.56 52.14-52 89.07-52s70.23 19.44 89.07 52a8 8 0 1 0 13.85-8ZM72 96a56 56 0 1 1 56 56 56.06 56.06 0 0 1-56-56Z" />
196
+ </svg>
197
+ )
198
+}
199
+
200
+function IconPlus({ className, ...props }: React.ComponentProps<'svg'>) {
201
+ return (
202
+ <svg
203
+ xmlns="http://www.w3.org/2000/svg"
204
+ viewBox="0 0 256 256"
205
+ fill="currentColor"
206
+ className={cn('size-4', className)}
207
+ {...props}
208
+ >
209
+ <path d="M224 128a8 8 0 0 1-8 8h-80v80a8 8 0 0 1-16 0v-80H40a8 8 0 0 1 0-16h80V40a8 8 0 0 1 16 0v80h80a8 8 0 0 1 8 8Z" />
210
+ </svg>
211
+ )
212
+}
213
+
214
+function IconArrowElbow({ className, ...props }: React.ComponentProps<'svg'>) {
215
+ return (
216
+ <svg
217
+ xmlns="http://www.w3.org/2000/svg"
218
+ viewBox="0 0 256 256"
219
+ fill="currentColor"
220
+ className={cn('size-4', className)}
221
+ {...props}
222
+ >
223
+ <path d="M200 32v144a8 8 0 0 1-8 8H67.31l34.35 34.34a8 8 0 0 1-11.32 11.32l-48-48a8 8 0 0 1 0-11.32l48-48a8 8 0 0 1 11.32 11.32L67.31 168H184V32a8 8 0 0 1 16 0Z" />
224
+ </svg>
225
+ )
226
+}
227
+
228
+function IconSpinner({ className, ...props }: React.ComponentProps<'svg'>) {
229
+ return (
230
+ <svg
231
+ xmlns="http://www.w3.org/2000/svg"
232
+ viewBox="0 0 256 256"
233
+ fill="currentColor"
234
+ className={cn('size-4 animate-spin', className)}
235
+ {...props}
236
+ >
237
+ <path d="M232 128a104 104 0 0 1-208 0c0-41 23.81-78.36 60.66-95.27a8 8 0 0 1 6.68 14.54C60.15 61.59 40 93.27 40 128a88 88 0 0 0 176 0c0-34.73-20.15-66.41-51.34-80.73a8 8 0 0 1 6.68-14.54C208.19 49.64 232 87 232 128Z" />
238
+ </svg>
239
+ )
240
+}
241
+
242
+function IconMessage({ className, ...props }: React.ComponentProps<'svg'>) {
243
+ return (
244
+ <svg
245
+ xmlns="http://www.w3.org/2000/svg"
246
+ viewBox="0 0 256 256"
247
+ fill="currentColor"
248
+ className={cn('size-4', className)}
249
+ {...props}
250
+ >
251
+ <path d="M216 48H40a16 16 0 0 0-16 16v160a15.84 15.84 0 0 0 9.25 14.5A16.05 16.05 0 0 0 40 240a15.89 15.89 0 0 0 10.25-3.78.69.69 0 0 0 .13-.11L82.5 208H216a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16ZM40 224Zm176-32H82.5a16 16 0 0 0-10.3 3.75l-.12.11L40 224V64h176Z" />
252
+ </svg>
253
+ )
254
+}
255
+
256
+function IconTrash({ className, ...props }: React.ComponentProps<'svg'>) {
257
+ return (
258
+ <svg
259
+ xmlns="http://www.w3.org/2000/svg"
260
+ viewBox="0 0 256 256"
261
+ fill="currentColor"
262
+ className={cn('size-4', className)}
263
+ {...props}
264
+ >
265
+ <path d="M216 48h-40v-8a24 24 0 0 0-24-24h-48a24 24 0 0 0-24 24v8H40a8 8 0 0 0 0 16h8v144a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16V64h8a8 8 0 0 0 0-16ZM96 40a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v8H96Zm96 168H64V64h128Zm-80-104v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0Zm48 0v64a8 8 0 0 1-16 0v-64a8 8 0 0 1 16 0Z" />
266
+ </svg>
267
+ )
268
+}
269
+
270
+function IconRefresh({ className, ...props }: React.ComponentProps<'svg'>) {
271
+ return (
272
+ <svg
273
+ xmlns="http://www.w3.org/2000/svg"
274
+ viewBox="0 0 256 256"
275
+ fill="currentColor"
276
+ className={cn('size-4', className)}
277
+ {...props}
278
+ >
279
+ <path d="M197.67 186.37a8 8 0 0 1 0 11.29C196.58 198.73 170.82 224 128 224c-37.39 0-64.53-22.4-80-39.85V208a8 8 0 0 1-16 0v-48a8 8 0 0 1 8-8h48a8 8 0 0 1 0 16H55.44C67.76 183.35 93 208 128 208c36 0 58.14-21.46 58.36-21.68a8 8 0 0 1 11.31.05ZM216 40a8 8 0 0 0-8 8v23.85C192.53 54.4 165.39 32 128 32c-42.82 0-68.58 25.27-69.66 26.34a8 8 0 0 0 11.3 11.34C69.86 69.46 92 48 128 48c35 0 60.24 24.65 72.56 40H168a8 8 0 0 0 0 16h48a8 8 0 0 0 8-8V48a8 8 0 0 0-8-8Z" />
280
+ </svg>
281
+ )
282
+}
283
+
284
+function IconStop({ className, ...props }: React.ComponentProps<'svg'>) {
285
+ return (
286
+ <svg
287
+ xmlns="http://www.w3.org/2000/svg"
288
+ viewBox="0 0 256 256"
289
+ fill="currentColor"
290
+ className={cn('size-4', className)}
291
+ {...props}
292
+ >
293
+ <path d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24Zm0 192a88 88 0 1 1 88-88 88.1 88.1 0 0 1-88 88Zm24-120h-48a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8Zm-8 48h-32v-32h32Z" />
294
+ </svg>
295
+ )
296
+}
297
+
298
+function IconSidebar({ className, ...props }: React.ComponentProps<'svg'>) {
299
+ return (
300
+ <svg
301
+ xmlns="http://www.w3.org/2000/svg"
302
+ viewBox="0 0 256 256"
303
+ fill="currentColor"
304
+ className={cn('size-4', className)}
305
+ {...props}
306
+ >
307
+ <path d="M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16ZM40 56h40v144H40Zm176 144H96V56h120v144Z" />
308
+ </svg>
309
+ )
310
+}
311
+
312
+function IconMoon({ className, ...props }: React.ComponentProps<'svg'>) {
313
+ return (
314
+ <svg
315
+ xmlns="http://www.w3.org/2000/svg"
316
+ viewBox="0 0 256 256"
317
+ fill="currentColor"
318
+ className={cn('size-4', className)}
319
+ {...props}
320
+ >
321
+ <path d="M233.54 142.23a8 8 0 0 0-8-2 88.08 88.08 0 0 1-109.8-109.8 8 8 0 0 0-10-10 104.84 104.84 0 0 0-52.91 37A104 104 0 0 0 136 224a103.09 103.09 0 0 0 62.52-20.88 104.84 104.84 0 0 0 37-52.91 8 8 0 0 0-1.98-7.98Zm-44.64 48.11A88 88 0 0 1 65.66 67.11a89 89 0 0 1 31.4-26A106 106 0 0 0 96 56a104.11 104.11 0 0 0 104 104 106 106 0 0 0 14.92-1.06 89 89 0 0 1-26.02 31.4Z" />
322
+ </svg>
323
+ )
324
+}
325
+
326
+function IconSun({ className, ...props }: React.ComponentProps<'svg'>) {
327
+ return (
328
+ <svg
329
+ xmlns="http://www.w3.org/2000/svg"
330
+ viewBox="0 0 256 256"
331
+ fill="currentColor"
332
+ className={cn('size-4', className)}
333
+ {...props}
334
+ >
335
+ <path d="M120 40V16a8 8 0 0 1 16 0v24a8 8 0 0 1-16 0Zm72 88a64 64 0 1 1-64-64 64.07 64.07 0 0 1 64 64Zm-16 0a48 48 0 1 0-48 48 48.05 48.05 0 0 0 48-48ZM58.34 69.66a8 8 0 0 0 11.32-11.32l-16-16a8 8 0 0 0-11.32 11.32Zm0 116.68-16 16a8 8 0 0 0 11.32 11.32l16-16a8 8 0 0 0-11.32-11.32ZM192 72a8 8 0 0 0 5.66-2.34l16-16a8 8 0 0 0-11.32-11.32l-16 16A8 8 0 0 0 192 72Zm5.66 114.34a8 8 0 0 0-11.32 11.32l16 16a8 8 0 0 0 11.32-11.32ZM48 128a8 8 0 0 0-8-8H16a8 8 0 0 0 0 16h24a8 8 0 0 0 8-8Zm80 80a8 8 0 0 0-8 8v24a8 8 0 0 0 16 0v-24a8 8 0 0 0-8-8Zm112-88h-24a8 8 0 0 0 0 16h24a8 8 0 0 0 0-16Z" />
336
+ </svg>
337
+ )
338
+}
339
+
340
+function IconCopy({ className, ...props }: React.ComponentProps<'svg'>) {
341
+ return (
342
+ <svg
343
+ xmlns="http://www.w3.org/2000/svg"
344
+ viewBox="0 0 256 256"
345
+ fill="currentColor"
346
+ className={cn('size-4', className)}
347
+ {...props}
348
+ >
349
+ <path d="M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8Zm-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z" />
350
+ </svg>
351
+ )
352
+}
353
+
354
+function IconCheck({ className, ...props }: React.ComponentProps<'svg'>) {
355
+ return (
356
+ <svg
357
+ xmlns="http://www.w3.org/2000/svg"
358
+ viewBox="0 0 256 256"
359
+ fill="currentColor"
360
+ className={cn('size-4', className)}
361
+ {...props}
362
+ >
363
+ <path d="m229.66 77.66-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69 218.34 66.34a8 8 0 0 1 11.32 11.32Z" />
364
+ </svg>
365
+ )
366
+}
367
+
368
+function IconDownload({ className, ...props }: React.ComponentProps<'svg'>) {
369
+ return (
370
+ <svg
371
+ xmlns="http://www.w3.org/2000/svg"
372
+ viewBox="0 0 256 256"
373
+ fill="currentColor"
374
+ className={cn('size-4', className)}
375
+ {...props}
376
+ >
377
+ <path d="M224 152v56a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16v-56a8 8 0 0 1 16 0v56h160v-56a8 8 0 0 1 16 0Zm-101.66 5.66a8 8 0 0 0 11.32 0l40-40a8 8 0 0 0-11.32-11.32L136 132.69V40a8 8 0 0 0-16 0v92.69l-26.34-26.35a8 8 0 0 0-11.32 11.32Z" />
378
+ </svg>
379
+ )
380
+}
381
+
382
+function IconClose({ className, ...props }: React.ComponentProps<'svg'>) {
383
+ return (
384
+ <svg
385
+ xmlns="http://www.w3.org/2000/svg"
386
+ viewBox="0 0 256 256"
387
+ fill="currentColor"
388
+ className={cn('size-4', className)}
389
+ {...props}
390
+ >
391
+ <path d="M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128 50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z" />
392
+ </svg>
393
+ )
394
+}
395
+
396
+function IconEdit({ className, ...props }: React.ComponentProps<'svg'>) {
397
+ return (
398
+ <svg
399
+ xmlns="http://www.w3.org/2000/svg"
400
+ fill="none"
401
+ viewBox="0 0 24 24"
402
+ strokeWidth={1.5}
403
+ stroke="currentColor"
404
+ className={cn('size-4', className)}
405
+ {...props}
406
+ >
407
+ <path
408
+ strokeLinecap="round"
409
+ strokeLinejoin="round"
410
+ d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L10.582 16.07a4.5 4.5 0 01-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 011.13-1.897l8.932-8.931zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0115.75 21H5.25A2.25 2.25 0 013 18.75V8.25A2.25 2.25 0 015.25 6H10"
411
+ />
412
+ </svg>
413
+ )
414
+}
415
+
416
+function IconShare({ className, ...props }: React.ComponentProps<'svg'>) {
417
+ return (
418
+ <svg
419
+ xmlns="http://www.w3.org/2000/svg"
420
+ fill="currentColor"
421
+ className={cn('size-4', className)}
422
+ viewBox="0 0 256 256"
423
+ {...props}
424
+ >
425
+ <path d="m237.66 106.35-80-80A8 8 0 0 0 144 32v40.35c-25.94 2.22-54.59 14.92-78.16 34.91-28.38 24.08-46.05 55.11-49.76 87.37a12 12 0 0 0 20.68 9.58c11-11.71 50.14-48.74 107.24-52V192a8 8 0 0 0 13.66 5.65l80-80a8 8 0 0 0 0-11.3ZM160 172.69V144a8 8 0 0 0-8-8c-28.08 0-55.43 7.33-81.29 21.8a196.17 196.17 0 0 0-36.57 26.52c5.8-23.84 20.42-46.51 42.05-64.86C99.41 99.77 127.75 88 152 88a8 8 0 0 0 8-8V51.32L220.69 112Z" />
426
+ </svg>
427
+ )
428
+}
429
+
430
+function IconUsers({ className, ...props }: React.ComponentProps<'svg'>) {
431
+ return (
432
+ <svg
433
+ xmlns="http://www.w3.org/2000/svg"
434
+ fill="currentColor"
435
+ className={cn('size-4', className)}
436
+ viewBox="0 0 256 256"
437
+ {...props}
438
+ >
439
+ <path d="M117.25 157.92a60 60 0 1 0-66.5 0 95.83 95.83 0 0 0-47.22 37.71 8 8 0 1 0 13.4 8.74 80 80 0 0 1 134.14 0 8 8 0 0 0 13.4-8.74 95.83 95.83 0 0 0-47.22-37.71ZM40 108a44 44 0 1 1 44 44 44.05 44.05 0 0 1-44-44Zm210.14 98.7a8 8 0 0 1-11.07-2.33A79.83 79.83 0 0 0 172 168a8 8 0 0 1 0-16 44 44 0 1 0-16.34-84.87 8 8 0 1 1-5.94-14.85 60 60 0 0 1 55.53 105.64 95.83 95.83 0 0 1 47.22 37.71 8 8 0 0 1-2.33 11.07Z" />
440
+ </svg>
441
+ )
442
+}
443
+
444
+function IconExternalLink({
445
+ className,
446
+ ...props
447
+}: React.ComponentProps<'svg'>) {
448
+ return (
449
+ <svg
450
+ xmlns="http://www.w3.org/2000/svg"
451
+ fill="currentColor"
452
+ className={cn('size-4', className)}
453
+ viewBox="0 0 256 256"
454
+ {...props}
455
+ >
456
+ <path d="M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8Z" />
457
+ </svg>
458
+ )
459
+}
460
+
461
+function IconChevronUpDown({
462
+ className,
463
+ ...props
464
+}: React.ComponentProps<'svg'>) {
465
+ return (
466
+ <svg
467
+ xmlns="http://www.w3.org/2000/svg"
468
+ fill="currentColor"
469
+ className={cn('size-4', className)}
470
+ viewBox="0 0 256 256"
471
+ {...props}
472
+ >
473
+ <path d="M181.66 170.34a8 8 0 0 1 0 11.32l-48 48a8 8 0 0 1-11.32 0l-48-48a8 8 0 0 1 11.32-11.32L128 212.69l42.34-42.35a8 8 0 0 1 11.32 0Zm-96-84.68L128 43.31l42.34 42.35a8 8 0 0 0 11.32-11.32l-48-48a8 8 0 0 0-11.32 0l-48 48a8 8 0 0 0 11.32 11.32Z" />
474
+ </svg>
475
+ )
476
+}
477
+
478
+export {
479
+ IconEdit,
480
+ IconNextChat,
481
+ IconOpenAI,
482
+ IconVercel,
483
+ IconGitHub,
484
+ IconSeparator,
485
+ IconArrowDown,
486
+ IconArrowRight,
487
+ IconUser,
488
+ IconPlus,
489
+ IconArrowElbow,
490
+ IconSpinner,
491
+ IconMessage,
492
+ IconTrash,
493
+ IconRefresh,
494
+ IconStop,
495
+ IconSidebar,
496
+ IconMoon,
497
+ IconSun,
498
+ IconCopy,
499
+ IconCheck,
500
+ IconDownload,
501
+ IconClose,
502
+ IconShare,
503
+ IconUsers,
504
+ IconExternalLink,
505
+ IconChevronUpDown
506
+}
frontend/splitfire-desktop/app/_ui/components/prompt-form.tsx
new
+99
@@ -0,0 +1,99 @@
1
+'use client';
2
+
3
+import * as React from 'react'
4
+import Textarea from 'react-textarea-autosize'
5
+import { UseChatHelpers } from 'ai/react'
6
+import {
7
+ Tooltip,
8
+ TooltipContent,
9
+ TooltipTrigger
10
+} from './tooltip'
11
+import { IconArrowElbow, IconPlus } from './icons'
12
+import { useRouter } from 'next/navigation'
13
+import { Button, buttonVariants } from './button';
14
+import { useEnterSubmit } from '@/app/_lib/hooks/use-enter-submit';
15
+import { cn } from '@/app/_lib/utils';
16
+
17
+export interface PromptProps
18
+ extends Pick<UseChatHelpers, 'input' | 'setInput'> {
19
+ onSubmit: (value: string) => void
20
+ isLoading: boolean
21
+}
22
+
23
+export function PromptForm({
24
+ onSubmit,
25
+ input,
26
+ setInput,
27
+ isLoading
28
+}: PromptProps) {
29
+ const { formRef, onKeyDown } = useEnterSubmit()
30
+ const inputRef = React.useRef<HTMLTextAreaElement>(null)
31
+ const router = useRouter()
32
+ React.useEffect(() => {
33
+ if (inputRef.current) {
34
+ inputRef.current.focus()
35
+ }
36
+ }, [])
37
+
38
+ return (
39
+ <form
40
+ onSubmit={async e => {
41
+ e.preventDefault()
42
+ if (!input?.trim()) {
43
+ return
44
+ }
45
+ setInput('')
46
+ await onSubmit(input)
47
+ }}
48
+ ref={formRef}
49
+ >
50
+ <div className="relative flex flex-col w-full px-8 overflow-hidden max-h-60 grow bg-background sm:rounded-md sm:border sm:px-12">
51
+ <Tooltip>
52
+ <TooltipTrigger asChild>
53
+ <button
54
+ onClick={e => {
55
+ e.preventDefault()
56
+ router.refresh()
57
+ router.push('/')
58
+ }}
59
+ className={cn(
60
+ buttonVariants({ size: 'sm', variant: 'outline' }),
61
+ 'absolute left-0 top-4 size-8 rounded-full bg-background p-0 sm:left-4'
62
+ )}
63
+ >
64
+ <IconPlus />
65
+ <span className="sr-only">New Chat</span>
66
+ </button>
67
+ </TooltipTrigger>
68
+ <TooltipContent>New Chat</TooltipContent>
69
+ </Tooltip>
70
+ <Textarea
71
+ ref={inputRef}
72
+ tabIndex={0}
73
+ onKeyDown={onKeyDown}
74
+ rows={1}
75
+ value={input}
76
+ onChange={e => setInput(e.target.value)}
77
+ placeholder="Send a message."
78
+ spellCheck={false}
79
+ className="min-h-[60px] w-full resize-none bg-transparent px-4 py-[1.3rem] focus-within:outline-none sm:text-sm"
80
+ />
81
+ <div className="absolute right-0 top-4 sm:right-4">
82
+ <Tooltip>
83
+ <TooltipTrigger asChild>
84
+ <Button
85
+ type="submit"
86
+ size="icon"
87
+ disabled={isLoading || input === ''}
88
+ >
89
+ <IconArrowElbow />
90
+ <span className="sr-only">Send message</span>
91
+ </Button>
92
+ </TooltipTrigger>
93
+ <TooltipContent>Send message</TooltipContent>
94
+ </Tooltip>
95
+ </div>
96
+ </div>
97
+ </form>
98
+ )
99
+}
frontend/splitfire-desktop/app/_ui/components/tooltip.tsx
new
+29
@@ -0,0 +1,29 @@
1
+'use client'
2
+
3
+import * as React from 'react'
4
+import * as TooltipPrimitive from '@radix-ui/react-tooltip'
5
+import { cn } from '@/app/_lib/utils'
6
+
7
+const TooltipProvider = TooltipPrimitive.Provider
8
+
9
+const Tooltip = TooltipPrimitive.Root
10
+
11
+const TooltipTrigger = TooltipPrimitive.Trigger
12
+
13
+const TooltipContent = React.forwardRef<
14
+ React.ElementRef<typeof TooltipPrimitive.Content>,
15
+ React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>
16
+>(({ className, sideOffset = 4, ...props }, ref) => (
17
+ <TooltipPrimitive.Content
18
+ ref={ref}
19
+ sideOffset={sideOffset}
20
+ className={cn(
21
+ 'z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1',
22
+ className
23
+ )}
24
+ {...props}
25
+ />
26
+))
27
+TooltipContent.displayName = TooltipPrimitive.Content.displayName
28
+
29
+export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
frontend/splitfire-desktop/app/_ui/external-link.tsx
new
+20
@@ -0,0 +1,20 @@
1
+import { ArrowRightIcon } from '@heroicons/react/outline';
2
+
3
+export const ExternalLink = ({
4
+ children,
5
+ href,
6
+}: {
7
+ children: React.ReactNode;
8
+ href: string;
9
+}) => {
10
+ return (
11
+ <a
12
+ href={href}
13
+ className="inline-flex gap-x-2 rounded-lg bg-gray-700 px-3 py-1 text-sm font-medium text-gray-100 no-underline hover:bg-gray-500 hover:text-white"
14
+ >
15
+ <div>{children}</div>
16
+
17
+ <ArrowRightIcon className="block w-4" />
18
+ </a>
19
+ );
20
+};
frontend/splitfire-desktop/app/_ui/global-nav.tsx
new
+97
@@ -0,0 +1,97 @@
1
+'use client';
2
+
3
+import { menus, type Item } from '../_lib/menus';
4
+import Link from 'next/link';
5
+import { useSelectedLayoutSegment } from 'next/navigation';
6
+import { MenuAlt2Icon, XIcon } from '@heroicons/react/solid';
7
+import clsx from 'clsx';
8
+import { useState } from 'react';
9
+import Image from 'next/image';
10
+
11
+export function GlobalNav() {
12
+ const [isOpen, setIsOpen] = useState(false);
13
+ const close = () => setIsOpen(false);
14
+
15
+ return (
16
+ <div className="fixed top-0 z-10 flex w-full flex-col border-b border-gray-800 bg-black lg:bottom-0 lg:z-auto lg:w-72 lg:border-b-0 lg:border-r lg:border-gray-800">
17
+ <div className="flex h-14 items-center px-4 py-4 lg:h-auto">
18
+ <Link
19
+ href="/"
20
+ className="group flex w-full items-center gap-x-2.5"
21
+ onClick={close}
22
+ >
23
+ <div className="h-7 w-7 rounded-sm border border-white/30 group-hover:border-white/50">
24
+ <Image src="/logo192.png" alt="Tauri on Bazel" width={40} height={40} />
25
+ </div>
26
+
27
+ <h3 className="font-semibold tracking-wide text-gray-400 group-hover:text-gray-50">
28
+ Tauri on Bazel
29
+ </h3>
30
+ </Link>
31
+ </div>
32
+ <button
33
+ type="button"
34
+ className="group absolute right-0 top-0 flex h-14 items-center gap-x-2 px-4 lg:hidden"
35
+ onClick={() => setIsOpen(!isOpen)}
36
+ >
37
+ <div className="font-medium text-gray-100 group-hover:text-gray-400">
38
+ Menu
39
+ </div>
40
+ {isOpen ? (
41
+ <XIcon className="block w-6 text-gray-400" />
42
+ ) : (
43
+ <MenuAlt2Icon className="block w-6 text-gray-400" />
44
+ )}
45
+ </button>
46
+
47
+ <div
48
+ className={clsx('overflow-y-auto lg:static lg:block', {
49
+ 'fixed inset-x-0 bottom-0 top-14 mt-px bg-black': isOpen,
50
+ hidden: !isOpen,
51
+ })}
52
+ >
53
+ <nav className="space-y-6 px-2 pb-24 pt-5">
54
+ {menus.map((section, index) => {
55
+ return (
56
+ <div key={index}>
57
+
58
+ <div className="space-y-1">
59
+ {section.items.map((item) => (
60
+ <GlobalNavItem key={item.slug} item={item} close={close} />
61
+ ))}
62
+ </div>
63
+ </div>
64
+ );
65
+ })}
66
+ </nav>
67
+ </div>
68
+ </div>
69
+ );
70
+}
71
+
72
+function GlobalNavItem({
73
+ item,
74
+ close,
75
+}: {
76
+ item: Item;
77
+ close: () => false | void;
78
+}) {
79
+ const segment = useSelectedLayoutSegment();
80
+ const isActive = item.slug === segment;
81
+
82
+ return (
83
+ <Link
84
+ onClick={close}
85
+ href={`/${item.slug}`}
86
+ className={clsx(
87
+ 'block rounded-md px-3 py-2 text-sm font-medium hover:text-gray-300',
88
+ {
89
+ 'text-gray-400 hover:bg-gray-800': !isActive,
90
+ 'text-white': isActive,
91
+ },
92
+ )}
93
+ >
94
+ {item.name}
95
+ </Link>
96
+ );
97
+}
frontend/splitfire-desktop/app/_ui/skeleton-card.tsx
new
+16
@@ -0,0 +1,16 @@
1
+import clsx from 'clsx';
2
+
3
+export const SkeletonCard = ({ isLoading }: { isLoading?: boolean }) => (
4
+ <div
5
+ className={clsx('rounded-2xl bg-gray-900/80 p-4', {
6
+ 'relative overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_1.5s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/10 before:to-transparent':
7
+ isLoading,
8
+ })}
9
+ >
10
+ <div className="space-y-3">
11
+ <div className="h-14 rounded-lg bg-gray-700" />
12
+ <div className="h-3 w-11/12 rounded-lg bg-gray-700" />
13
+ <div className="h-3 w-8/12 rounded-lg bg-gray-700" />
14
+ </div>
15
+ </div>
16
+);
frontend/splitfire-desktop/app/_ui/tab-group.tsx
new
+31
@@ -0,0 +1,31 @@
1
+import { Tab } from "./tab";
2
+
3
+export type Item = {
4
+ text: string;
5
+ slug?: string;
6
+ segment?: string;
7
+ parallelRoutesKey?: string;
8
+};
9
+
10
+export const TabGroup = ({
11
+ path,
12
+ parallelRoutesKey,
13
+ items,
14
+}: {
15
+ path: string;
16
+ parallelRoutesKey?: string;
17
+ items: Item[];
18
+}) => {
19
+ return (
20
+ <div className="flex flex-wrap items-center gap-2">
21
+ {items.map((item) => (
22
+ <Tab
23
+ key={path + item.slug}
24
+ item={item}
25
+ path={path}
26
+ parallelRoutesKey={parallelRoutesKey}
27
+ />
28
+ ))}
29
+ </div>
30
+ );
31
+};
frontend/splitfire-desktop/app/_ui/tab-nav-item.tsx
new
+25
@@ -0,0 +1,25 @@
1
+import clsx from 'clsx';
2
+import Link from 'next/link';
3
+
4
+export const TabNavItem = ({
5
+ children,
6
+ href,
7
+ isActive,
8
+}: {
9
+ children: React.ReactNode;
10
+ href: string;
11
+ isActive?: boolean;
12
+}) => {
13
+ return (
14
+ <Link
15
+ href={href}
16
+ className={clsx('rounded-lg px-3 py-1 text-sm font-medium', {
17
+ 'bg-gray-700 text-gray-100 hover:bg-gray-500 hover:text-white':
18
+ !isActive,
19
+ 'bg-vercel-blue text-white': isActive,
20
+ })}
21
+ >
22
+ {children}
23
+ </Link>
24
+ );
25
+};
frontend/splitfire-desktop/app/_ui/tab.tsx
new
+39
@@ -0,0 +1,39 @@
1
+'use client';
2
+
3
+import type { Item } from '@/app/_ui/tab-group';
4
+import clsx from 'clsx';
5
+import Link from 'next/link';
6
+import { useSelectedLayoutSegment } from 'next/navigation';
7
+
8
+export const Tab = ({
9
+ path,
10
+ parallelRoutesKey,
11
+ item,
12
+}: {
13
+ path: string;
14
+ parallelRoutesKey?: string;
15
+ item: Item;
16
+}) => {
17
+ const segment = useSelectedLayoutSegment(parallelRoutesKey);
18
+
19
+ const href = item.slug ? path + '/' + item.slug : path;
20
+ const isActive =
21
+ // Example home pages e.g. `/layouts`
22
+ (!item.slug && segment === null) ||
23
+ segment === item.segment ||
24
+ // Nested pages e.g. `/layouts/electronics`
25
+ segment === item.slug;
26
+
27
+ return (
28
+ <Link
29
+ href={href}
30
+ className={clsx('rounded-lg px-3 py-1 text-sm font-medium', {
31
+ 'bg-gray-700 text-gray-100 hover:bg-gray-500 hover:text-white':
32
+ !isActive,
33
+ 'bg-vercel-blue text-white': isActive,
34
+ })}
35
+ >
36
+ {item.text}
37
+ </Link>
38
+ );
39
+};
frontend/splitfire-desktop/app/globals.css
new
+3
@@ -0,0 +1,3 @@
1
+@tailwind base;
2
+@tailwind components;
3
+@tailwind utilities;
frontend/splitfire-desktop/app/layout.tsx
new
+31
@@ -0,0 +1,31 @@
1
+'use client'
2
+
3
+import { AddressBar } from './_ui/address-bar';
4
+import { GlobalNav } from './_ui/global-nav';
5
+import './globals.css';
6
+
7
+export default function RootLayout({
8
+ children,
9
+}: {
10
+ children: React.ReactNode;
11
+}) {
12
+ return (
13
+ <html lang="en" className="[color-scheme:dark]">
14
+ <body className="bg-gray-1100 overflow-y-scroll bg-[url('/grid.svg')] pb-36">
15
+ <GlobalNav />
16
+ <div className="lg:pl-72">
17
+ <div className="bg-vc-border-gradient rounded-lg p-px shadow-lg shadow-black/20">
18
+ <div className="rounded-lg bg-black">
19
+ <AddressBar />
20
+ </div>
21
+ </div>
22
+ <div className="mx-auto max-w-4xl space-y-8 px-2 pt-20 lg:px-8 lg:py-8">
23
+ <div className="bg-vc-border-gradient rounded-lg p-px shadow-lg shadow-black/20">
24
+ <div className="rounded-lg bg-black p-3.5 lg:p-6">{children}</div>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </body>
29
+ </html>
30
+ );
31
+}
frontend/splitfire-desktop/app/page.tsx
new
+12
@@ -0,0 +1,12 @@
1
+export default function Page() {
2
+ return (
3
+ <div className="space-y-8">
4
+ <h1 className="text-xl font-medium text-gray-300">Hello, Tauri on Bazel!</h1>
5
+ <div className="space-y-10 text-white">
6
+ <div className="space-y-5">
7
+ <div className="grid grid-cols-1 gap-5 lg:grid-cols-2"></div>
8
+ </div>
9
+ </div>
10
+ </div>
11
+ );
12
+}
frontend/splitfire-desktop/app/play/(checkout)/checkout/page.tsx
new
+15
@@ -0,0 +1,15 @@
1
+export async function generateStaticParams() {
2
+ const posts = [
3
+ { slug: "post-1" },
4
+ { slug: "post-2" },
5
+ { slug: "post-3" },
6
+ ];
7
+
8
+ return posts.map((post) => ({
9
+ slug: post.slug,
10
+ }))
11
+}
12
+
13
+export default function Page() {
14
+ return <h1 className="text-xl font-medium text-gray-400/80">Checkout</h1>;
15
+}
frontend/splitfire-desktop/app/play/(checkout)/layout.tsx
new
+23
@@ -0,0 +1,23 @@
1
+import { Boundary } from '@/app/_ui/boundary';
2
+import { TabNavItem } from '@/app/_ui/tab-nav-item';
3
+import React from 'react';
4
+
5
+export default function Layout({ children }: { children: React.ReactNode }) {
6
+ return (
7
+ <Boundary
8
+ labels={['checkout layout']}
9
+ color="blue"
10
+ animateRerendering={false}
11
+ >
12
+ <div className="space-y-9">
13
+ <div className="flex items-center justify-between">
14
+ <div className="flex items-center gap-x-4">
15
+ <TabNavItem href="/play">Back</TabNavItem>
16
+ </div>
17
+ </div>
18
+
19
+ <div>{children}</div>
20
+ </div>
21
+ </Boundary>
22
+ );
23
+}
frontend/splitfire-desktop/app/play/(checkout)/template.tsx
new
+6
@@ -0,0 +1,6 @@
1
+import { Boundary } from '@/app/_ui/boundary';
2
+import React from 'react';
3
+
4
+export default function Template({ children }: { children: React.ReactNode }) {
5
+ return <Boundary>{children}</Boundary>;
6
+}
frontend/splitfire-desktop/app/play/layout.tsx
new
+29
@@ -0,0 +1,29 @@
1
+import React from 'react';
2
+
3
+const title = 'Nested Layouts';
4
+
5
+export const metadata = {
6
+ metadataBase: new URL('https://splitfire.ai'),
7
+ title,
8
+ openGraph: {
9
+ title,
10
+ images: [`/api/og?title=${title}`],
11
+ },
12
+};
13
+
14
+export default async function Layout({
15
+ children,
16
+}: {
17
+ children: React.ReactNode;
18
+}) {
19
+ return (
20
+ <div className="space-y-9">
21
+ <div className="flex justify-between">
22
+ <div className="self-start">
23
+ <h1 className="text-3xl font-bold">Ready to play!</h1>
24
+ </div>
25
+ </div>
26
+ <div>{children}</div>
27
+ </div>
28
+ );
29
+}
frontend/splitfire-desktop/app/play/page.tsx
new
+25
@@ -0,0 +1,25 @@
1
+import { SkeletonCard } from '../_ui/skeleton-card';
2
+
3
+export async function generateStaticParams() {
4
+ const posts = [
5
+ { slug: "post-1" },
6
+ { slug: "post-2" },
7
+ { slug: "post-3" },
8
+ ];
9
+
10
+ return posts.map((post) => ({
11
+ slug: post.slug,
12
+ }))
13
+}
14
+
15
+export default function Page() {
16
+ return (
17
+ <div className="prose prose-sm prose-invert max-w-none">
18
+ <div className="grid grid-cols-1 gap-6 lg:grid-cols-3">
19
+ {Array.from({ length: 6 }).map((_, i) => (
20
+ <SkeletonCard key={i} />
21
+ ))}
22
+ </div>
23
+ </div>
24
+ );
25
+}
frontend/splitfire-desktop/bun.lockb
Binary files a/frontend/splitfire-desktop/bun.lockb and /dev/null differ
frontend/splitfire-desktop/next.config.js
new
+7
@@ -0,0 +1,7 @@
1
+/** @type {import('next').NextConfig} */
2
+const nextConfig = {
3
+ output: 'export',
4
+ images: { unoptimized: true }
5
+};
6
+
7
+module.exports = nextConfig;
frontend/splitfire-desktop/package-lock.json
new
+18253
@@ -0,0 +1,18253 @@
1
+{
2
+ "name": "splitfire",
3
+ "version": "0.3.4",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "splitfire",
9
+ "version": "0.3.4",
10
+ "license": "MIT",
11
+ "dependencies": {
12
+ "@heroicons/react": "1.0.6",
13
+ "@radix-ui/react-slot": "^1.0.2",
14
+ "@radix-ui/react-tooltip": "^1.0.7",
15
+ "@sentry/react": "^7.12.1",
16
+ "@sentry/tracing": "^7.12.1",
17
+ "@tauri-apps/api": "^1.5.3",
18
+ "@types/actioncable": "^5.2.7",
19
+ "@types/jest": "^27.4.0",
20
+ "@types/node": "18.17.0",
21
+ "@types/react": "18.2.78",
22
+ "@types/react-dom": "18.2.25",
23
+ "actioncable": "^5.2.6",
24
+ "axios": "^0.25.0",
25
+ "bootstrap": "5.1.3",
26
+ "class-variance-authority": "^0.7.0",
27
+ "clsx": "1.2.1",
28
+ "dexie": "^3.2.0",
29
+ "dexie-observable": "^3.0.0-beta.11",
30
+ "eslint": "8.32.0",
31
+ "eslint-config-next": "14.1.0",
32
+ "lodash.debounce": "^4.0.8",
33
+ "next": "14.2.5",
34
+ "react": "18.2.0",
35
+ "react-bootstrap": "^2.1.1",
36
+ "react-dnd": "^16.0.1",
37
+ "react-dnd-html5-backend": "^16.0.1",
38
+ "react-dom": "18.2.0",
39
+ "react-hot-toast": "^2.4.1",
40
+ "react-icons": "^4.3.1",
41
+ "react-intl": "^5.24.4",
42
+ "react-router-dom": "6",
43
+ "react-scripts": "5.0.0",
44
+ "react-textarea-autosize": "^8.5.3",
45
+ "react-transition-group": "4.x",
46
+ "react-youtube": "^7.14.0",
47
+ "tailwind-merge": "^2.2.1",
48
+ "tone": "^14.7.77",
49
+ "tslog": "^4.9.2",
50
+ "typescript": "4.9.4",
51
+ "web-vitals": "^2.1.3"
52
+ },
53
+ "devDependencies": {
54
+ "@tailwindcss/forms": "0.5.3",
55
+ "@tailwindcss/typography": "0.5.9",
56
+ "@tauri-apps/cli": "^1.5.14",
57
+ "@types/lodash.debounce": "^4.0.7",
58
+ "autoprefixer": "^10.4.19",
59
+ "postcss": "^8.4.38",
60
+ "tailwindcss": "^3.4.3"
61
+ }
62
+ },
63
+ "node_modules/@alloc/quick-lru": {
64
+ "version": "5.2.0",
65
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
66
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
67
+ "engines": {
68
+ "node": ">=10"
69
+ },
70
+ "funding": {
71
+ "url": "https://github.com/sponsors/sindresorhus"
72
+ }
73
+ },
74
+ "node_modules/@ampproject/remapping": {
75
+ "version": "2.3.0",
76
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
77
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
78
+ "dependencies": {
79
+ "@jridgewell/gen-mapping": "^0.3.5",
80
+ "@jridgewell/trace-mapping": "^0.3.24"
81
+ },
82
+ "engines": {
83
+ "node": ">=6.0.0"
84
+ }
85
+ },
86
+ "node_modules/@babel/code-frame": {
87
+ "version": "7.24.7",
88
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
89
+ "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
90
+ "dependencies": {
91
+ "@babel/highlight": "^7.24.7",
92
+ "picocolors": "^1.0.0"
93
+ },
94
+ "engines": {
95
+ "node": ">=6.9.0"
96
+ }
97
+ },
98
+ "node_modules/@babel/compat-data": {
99
+ "version": "7.25.0",
100
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.0.tgz",
101
+ "integrity": "sha512-P4fwKI2mjEb3ZU5cnMJzvRsRKGBUcs8jvxIoRmr6ufAY9Xk2Bz7JubRTTivkw55c7WQJfTECeqYVa+HZ0FzREg==",
102
+ "engines": {
103
+ "node": ">=6.9.0"
104
+ }
105
+ },
106
+ "node_modules/@babel/core": {
107
+ "version": "7.24.9",
108
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz",
109
+ "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==",
110
+ "dependencies": {
111
+ "@ampproject/remapping": "^2.2.0",
112
+ "@babel/code-frame": "^7.24.7",
113
+ "@babel/generator": "^7.24.9",
114
+ "@babel/helper-compilation-targets": "^7.24.8",
115
+ "@babel/helper-module-transforms": "^7.24.9",
116
+ "@babel/helpers": "^7.24.8",
117
+ "@babel/parser": "^7.24.8",
118
+ "@babel/template": "^7.24.7",
119
+ "@babel/traverse": "^7.24.8",
120
+ "@babel/types": "^7.24.9",
121
+ "convert-source-map": "^2.0.0",
122
+ "debug": "^4.1.0",
123
+ "gensync": "^1.0.0-beta.2",
124
+ "json5": "^2.2.3",
125
+ "semver": "^6.3.1"
126
+ },
127
+ "engines": {
128
+ "node": ">=6.9.0"
129
+ },
130
+ "funding": {
131
+ "type": "opencollective",
132
+ "url": "https://opencollective.com/babel"
133
+ }
134
+ },
135
+ "node_modules/@babel/core/node_modules/semver": {
136
+ "version": "6.3.1",
137
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
138
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
139
+ "bin": {
140
+ "semver": "bin/semver.js"
141
+ }
142
+ },
143
+ "node_modules/@babel/eslint-parser": {
144
+ "version": "7.25.1",
145
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz",
146
+ "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==",
147
+ "dependencies": {
148
+ "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
149
+ "eslint-visitor-keys": "^2.1.0",
150
+ "semver": "^6.3.1"
151
+ },
152
+ "engines": {
153
+ "node": "^10.13.0 || ^12.13.0 || >=14.0.0"
154
+ },
155
+ "peerDependencies": {
156
+ "@babel/core": "^7.11.0",
157
+ "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0"
158
+ }
159
+ },
160
+ "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": {
161
+ "version": "2.1.0",
162
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
163
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
164
+ "engines": {
165
+ "node": ">=10"
166
+ }
167
+ },
168
+ "node_modules/@babel/eslint-parser/node_modules/semver": {
169
+ "version": "6.3.1",
170
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
171
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
172
+ "bin": {
173
+ "semver": "bin/semver.js"
174
+ }
175
+ },
176
+ "node_modules/@babel/generator": {
177
+ "version": "7.25.0",
178
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz",
179
+ "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==",
180
+ "dependencies": {
181
+ "@babel/types": "^7.25.0",
182
+ "@jridgewell/gen-mapping": "^0.3.5",
183
+ "@jridgewell/trace-mapping": "^0.3.25",
184
+ "jsesc": "^2.5.1"
185
+ },
186
+ "engines": {
187
+ "node": ">=6.9.0"
188
+ }
189
+ },
190
+ "node_modules/@babel/helper-annotate-as-pure": {
191
+ "version": "7.24.7",
192
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
193
+ "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
194
+ "dependencies": {
195
+ "@babel/types": "^7.24.7"
196
+ },
197
+ "engines": {
198
+ "node": ">=6.9.0"
199
+ }
200
+ },
201
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
202
+ "version": "7.24.7",
203
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
204
+ "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
205
+ "dependencies": {
206
+ "@babel/traverse": "^7.24.7",
207
+ "@babel/types": "^7.24.7"
208
+ },
209
+ "engines": {
210
+ "node": ">=6.9.0"
211
+ }
212
+ },
213
+ "node_modules/@babel/helper-compilation-targets": {
214
+ "version": "7.24.8",
215
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz",
216
+ "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==",
217
+ "dependencies": {
218
+ "@babel/compat-data": "^7.24.8",
219
+ "@babel/helper-validator-option": "^7.24.8",
220
+ "browserslist": "^4.23.1",
221
+ "lru-cache": "^5.1.1",
222
+ "semver": "^6.3.1"
223
+ },
224
+ "engines": {
225
+ "node": ">=6.9.0"
226
+ }
227
+ },
228
+ "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
229
+ "version": "5.1.1",
230
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
231
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
232
+ "dependencies": {
233
+ "yallist": "^3.0.2"
234
+ }
235
+ },
236
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
237
+ "version": "6.3.1",
238
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
239
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
240
+ "bin": {
241
+ "semver": "bin/semver.js"
242
+ }
243
+ },
244
+ "node_modules/@babel/helper-create-class-features-plugin": {
245
+ "version": "7.25.0",
246
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz",
247
+ "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==",
248
+ "dependencies": {
249
+ "@babel/helper-annotate-as-pure": "^7.24.7",
250
+ "@babel/helper-member-expression-to-functions": "^7.24.8",
251
+ "@babel/helper-optimise-call-expression": "^7.24.7",
252
+ "@babel/helper-replace-supers": "^7.25.0",
253
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
254
+ "@babel/traverse": "^7.25.0",
255
+ "semver": "^6.3.1"
256
+ },
257
+ "engines": {
258
+ "node": ">=6.9.0"
259
+ },
260
+ "peerDependencies": {
261
+ "@babel/core": "^7.0.0"
262
+ }
263
+ },
264
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
265
+ "version": "6.3.1",
266
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
267
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
268
+ "bin": {
269
+ "semver": "bin/semver.js"
270
+ }
271
+ },
272
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
273
+ "version": "7.25.0",
274
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.0.tgz",
275
+ "integrity": "sha512-q0T+dknZS+L5LDazIP+02gEZITG5unzvb6yIjcmj5i0eFrs5ToBV2m2JGH4EsE/gtP8ygEGLGApBgRIZkTm7zg==",
276
+ "dependencies": {
277
+ "@babel/helper-annotate-as-pure": "^7.24.7",
278
+ "regexpu-core": "^5.3.1",
279
+ "semver": "^6.3.1"
280
+ },
281
+ "engines": {
282
+ "node": ">=6.9.0"
283
+ },
284
+ "peerDependencies": {
285
+ "@babel/core": "^7.0.0"
286
+ }
287
+ },
288
+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
289
+ "version": "6.3.1",
290
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
291
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
292
+ "bin": {
293
+ "semver": "bin/semver.js"
294
+ }
295
+ },
296
+ "node_modules/@babel/helper-define-polyfill-provider": {
297
+ "version": "0.6.2",
298
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
299
+ "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
300
+ "dependencies": {
301
+ "@babel/helper-compilation-targets": "^7.22.6",
302
+ "@babel/helper-plugin-utils": "^7.22.5",
303
+ "debug": "^4.1.1",
304
+ "lodash.debounce": "^4.0.8",
305
+ "resolve": "^1.14.2"
306
+ },
307
+ "peerDependencies": {
308
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
309
+ }
310
+ },
311
+ "node_modules/@babel/helper-member-expression-to-functions": {
312
+ "version": "7.24.8",
313
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
314
+ "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
315
+ "dependencies": {
316
+ "@babel/traverse": "^7.24.8",
317
+ "@babel/types": "^7.24.8"
318
+ },
319
+ "engines": {
320
+ "node": ">=6.9.0"
321
+ }
322
+ },
323
+ "node_modules/@babel/helper-module-imports": {
324
+ "version": "7.24.7",
325
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
326
+ "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
327
+ "dependencies": {
328
+ "@babel/traverse": "^7.24.7",
329
+ "@babel/types": "^7.24.7"
330
+ },
331
+ "engines": {
332
+ "node": ">=6.9.0"
333
+ }
334
+ },
335
+ "node_modules/@babel/helper-module-transforms": {
336
+ "version": "7.25.0",
337
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.0.tgz",
338
+ "integrity": "sha512-bIkOa2ZJYn7FHnepzr5iX9Kmz8FjIz4UKzJ9zhX3dnYuVW0xul9RuR3skBfoLu+FPTQw90EHW9rJsSZhyLQ3fQ==",
339
+ "dependencies": {
340
+ "@babel/helper-module-imports": "^7.24.7",
341
+ "@babel/helper-simple-access": "^7.24.7",
342
+ "@babel/helper-validator-identifier": "^7.24.7",
343
+ "@babel/traverse": "^7.25.0"
344
+ },
345
+ "engines": {
346
+ "node": ">=6.9.0"
347
+ },
348
+ "peerDependencies": {
349
+ "@babel/core": "^7.0.0"
350
+ }
351
+ },
352
+ "node_modules/@babel/helper-optimise-call-expression": {
353
+ "version": "7.24.7",
354
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
355
+ "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
356
+ "dependencies": {
357
+ "@babel/types": "^7.24.7"
358
+ },
359
+ "engines": {
360
+ "node": ">=6.9.0"
361
+ }
362
+ },
363
+ "node_modules/@babel/helper-plugin-utils": {
364
+ "version": "7.24.8",
365
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
366
+ "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
367
+ "engines": {
368
+ "node": ">=6.9.0"
369
+ }
370
+ },
371
+ "node_modules/@babel/helper-remap-async-to-generator": {
372
+ "version": "7.25.0",
373
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz",
374
+ "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==",
375
+ "dependencies": {
376
+ "@babel/helper-annotate-as-pure": "^7.24.7",
377
+ "@babel/helper-wrap-function": "^7.25.0",
378
+ "@babel/traverse": "^7.25.0"
379
+ },
380
+ "engines": {
381
+ "node": ">=6.9.0"
382
+ },
383
+ "peerDependencies": {
384
+ "@babel/core": "^7.0.0"
385
+ }
386
+ },
387
+ "node_modules/@babel/helper-replace-supers": {
388
+ "version": "7.25.0",
389
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz",
390
+ "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==",
391
+ "dependencies": {
392
+ "@babel/helper-member-expression-to-functions": "^7.24.8",
393
+ "@babel/helper-optimise-call-expression": "^7.24.7",
394
+ "@babel/traverse": "^7.25.0"
395
+ },
396
+ "engines": {
397
+ "node": ">=6.9.0"
398
+ },
399
+ "peerDependencies": {
400
+ "@babel/core": "^7.0.0"
401
+ }
402
+ },
403
+ "node_modules/@babel/helper-simple-access": {
404
+ "version": "7.24.7",
405
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
406
+ "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
407
+ "dependencies": {
408
+ "@babel/traverse": "^7.24.7",
409
+ "@babel/types": "^7.24.7"
410
+ },
411
+ "engines": {
412
+ "node": ">=6.9.0"
413
+ }
414
+ },
415
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
416
+ "version": "7.24.7",
417
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
418
+ "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
419
+ "dependencies": {
420
+ "@babel/traverse": "^7.24.7",
421
+ "@babel/types": "^7.24.7"
422
+ },
423
+ "engines": {
424
+ "node": ">=6.9.0"
425
+ }
426
+ },
427
+ "node_modules/@babel/helper-string-parser": {
428
+ "version": "7.24.8",
429
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
430
+ "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
431
+ "engines": {
432
+ "node": ">=6.9.0"
433
+ }
434
+ },
435
+ "node_modules/@babel/helper-validator-identifier": {
436
+ "version": "7.24.7",
437
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
438
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
439
+ "engines": {
440
+ "node": ">=6.9.0"
441
+ }
442
+ },
443
+ "node_modules/@babel/helper-validator-option": {
444
+ "version": "7.24.8",
445
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
446
+ "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==",
447
+ "engines": {
448
+ "node": ">=6.9.0"
449
+ }
450
+ },
451
+ "node_modules/@babel/helper-wrap-function": {
452
+ "version": "7.25.0",
453
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz",
454
+ "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==",
455
+ "dependencies": {
456
+ "@babel/template": "^7.25.0",
457
+ "@babel/traverse": "^7.25.0",
458
+ "@babel/types": "^7.25.0"
459
+ },
460
+ "engines": {
461
+ "node": ">=6.9.0"
462
+ }
463
+ },
464
+ "node_modules/@babel/helpers": {
465
+ "version": "7.25.0",
466
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
467
+ "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
468
+ "dependencies": {
469
+ "@babel/template": "^7.25.0",
470
+ "@babel/types": "^7.25.0"
471
+ },
472
+ "engines": {
473
+ "node": ">=6.9.0"
474
+ }
475
+ },
476
+ "node_modules/@babel/highlight": {
477
+ "version": "7.24.7",
478
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
479
+ "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
480
+ "dependencies": {
481
+ "@babel/helper-validator-identifier": "^7.24.7",
482
+ "chalk": "^2.4.2",
483
+ "js-tokens": "^4.0.0",
484
+ "picocolors": "^1.0.0"
485
+ },
486
+ "engines": {
487
+ "node": ">=6.9.0"
488
+ }
489
+ },
490
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
491
+ "version": "3.2.1",
492
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
493
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
494
+ "dependencies": {
495
+ "color-convert": "^1.9.0"
496
+ },
497
+ "engines": {
498
+ "node": ">=4"
499
+ }
500
+ },
501
+ "node_modules/@babel/highlight/node_modules/chalk": {
502
+ "version": "2.4.2",
503
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
504
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
505
+ "dependencies": {
506
+ "ansi-styles": "^3.2.1",
507
+ "escape-string-regexp": "^1.0.5",
508
+ "supports-color": "^5.3.0"
509
+ },
510
+ "engines": {
511
+ "node": ">=4"
512
+ }
513
+ },
514
+ "node_modules/@babel/highlight/node_modules/color-convert": {
515
+ "version": "1.9.3",
516
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
517
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
518
+ "dependencies": {
519
+ "color-name": "1.1.3"
520
+ }
521
+ },
522
+ "node_modules/@babel/highlight/node_modules/color-name": {
523
+ "version": "1.1.3",
524
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
525
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
526
+ },
527
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
528
+ "version": "1.0.5",
529
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
530
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
531
+ "engines": {
532
+ "node": ">=0.8.0"
533
+ }
534
+ },
535
+ "node_modules/@babel/highlight/node_modules/has-flag": {
536
+ "version": "3.0.0",
537
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
538
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
539
+ "engines": {
540
+ "node": ">=4"
541
+ }
542
+ },
543
+ "node_modules/@babel/highlight/node_modules/supports-color": {
544
+ "version": "5.5.0",
545
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
546
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
547
+ "dependencies": {
548
+ "has-flag": "^3.0.0"
549
+ },
550
+ "engines": {
551
+ "node": ">=4"
552
+ }
553
+ },
554
+ "node_modules/@babel/parser": {
555
+ "version": "7.25.0",
556
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
557
+ "integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==",
558
+ "bin": {
559
+ "parser": "bin/babel-parser.js"
560
+ },
561
+ "engines": {
562
+ "node": ">=6.0.0"
563
+ }
564
+ },
565
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
566
+ "version": "7.25.0",
567
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.0.tgz",
568
+ "integrity": "sha512-dG0aApncVQwAUJa8tP1VHTnmU67BeIQvKafd3raEx315H54FfkZSz3B/TT+33ZQAjatGJA79gZqTtqL5QZUKXw==",
569
+ "dependencies": {
570
+ "@babel/helper-plugin-utils": "^7.24.8",
571
+ "@babel/traverse": "^7.25.0"
572
+ },
573
+ "engines": {
574
+ "node": ">=6.9.0"
575
+ },
576
+ "peerDependencies": {
577
+ "@babel/core": "^7.0.0"
578
+ }
579
+ },
580
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
581
+ "version": "7.25.0",
582
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz",
583
+ "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==",
584
+ "dependencies": {
585
+ "@babel/helper-plugin-utils": "^7.24.8"
586
+ },
587
+ "engines": {
588
+ "node": ">=6.9.0"
589
+ },
590
+ "peerDependencies": {
591
+ "@babel/core": "^7.0.0"
592
+ }
593
+ },
594
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
595
+ "version": "7.25.0",
596
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz",
597
+ "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==",
598
+ "dependencies": {
599
+ "@babel/helper-plugin-utils": "^7.24.8"
600
+ },
601
+ "engines": {
602
+ "node": ">=6.9.0"
603
+ },
604
+ "peerDependencies": {
605
+ "@babel/core": "^7.0.0"
606
+ }
607
+ },
608
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
609
+ "version": "7.24.7",
610
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
611
+ "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
612
+ "dependencies": {
613
+ "@babel/helper-plugin-utils": "^7.24.7",
614
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
615
+ "@babel/plugin-transform-optional-chaining": "^7.24.7"
616
+ },
617
+ "engines": {
618
+ "node": ">=6.9.0"
619
+ },
620
+ "peerDependencies": {
621
+ "@babel/core": "^7.13.0"
622
+ }
623
+ },
624
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
625
+ "version": "7.25.0",
626
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz",
627
+ "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==",
628
+ "dependencies": {
629
+ "@babel/helper-plugin-utils": "^7.24.8",
630
+ "@babel/traverse": "^7.25.0"
631
+ },
632
+ "engines": {
633
+ "node": ">=6.9.0"
634
+ },
635
+ "peerDependencies": {
636
+ "@babel/core": "^7.0.0"
637
+ }
638
+ },
639
+ "node_modules/@babel/plugin-proposal-class-properties": {
640
+ "version": "7.18.6",
641
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
642
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
643
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
644
+ "dependencies": {
645
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
646
+ "@babel/helper-plugin-utils": "^7.18.6"
647
+ },
648
+ "engines": {
649
+ "node": ">=6.9.0"
650
+ },
651
+ "peerDependencies": {
652
+ "@babel/core": "^7.0.0-0"
653
+ }
654
+ },
655
+ "node_modules/@babel/plugin-proposal-decorators": {
656
+ "version": "7.24.7",
657
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
658
+ "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
659
+ "dependencies": {
660
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
661
+ "@babel/helper-plugin-utils": "^7.24.7",
662
+ "@babel/plugin-syntax-decorators": "^7.24.7"
663
+ },
664
+ "engines": {
665
+ "node": ">=6.9.0"
666
+ },
667
+ "peerDependencies": {
668
+ "@babel/core": "^7.0.0-0"
669
+ }
670
+ },
671
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
672
+ "version": "7.18.6",
673
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
674
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
675
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.",
676
+ "dependencies": {
677
+ "@babel/helper-plugin-utils": "^7.18.6",
678
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
679
+ },
680
+ "engines": {
681
+ "node": ">=6.9.0"
682
+ },
683
+ "peerDependencies": {
684
+ "@babel/core": "^7.0.0-0"
685
+ }
686
+ },
687
+ "node_modules/@babel/plugin-proposal-numeric-separator": {
688
+ "version": "7.18.6",
689
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
690
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
691
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.",
692
+ "dependencies": {
693
+ "@babel/helper-plugin-utils": "^7.18.6",
694
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
695
+ },
696
+ "engines": {
697
+ "node": ">=6.9.0"
698
+ },
699
+ "peerDependencies": {
700
+ "@babel/core": "^7.0.0-0"
701
+ }
702
+ },
703
+ "node_modules/@babel/plugin-proposal-optional-chaining": {
704
+ "version": "7.21.0",
705
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz",
706
+ "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==",
707
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.",
708
+ "dependencies": {
709
+ "@babel/helper-plugin-utils": "^7.20.2",
710
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
711
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
712
+ },
713
+ "engines": {
714
+ "node": ">=6.9.0"
715
+ },
716
+ "peerDependencies": {
717
+ "@babel/core": "^7.0.0-0"
718
+ }
719
+ },
720
+ "node_modules/@babel/plugin-proposal-private-methods": {
721
+ "version": "7.18.6",
722
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
723
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
724
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.",
725
+ "dependencies": {
726
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
727
+ "@babel/helper-plugin-utils": "^7.18.6"
728
+ },
729
+ "engines": {
730
+ "node": ">=6.9.0"
731
+ },
732
+ "peerDependencies": {
733
+ "@babel/core": "^7.0.0-0"
734
+ }
735
+ },
736
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
737
+ "version": "7.21.0-placeholder-for-preset-env.2",
738
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
739
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
740
+ "engines": {
741
+ "node": ">=6.9.0"
742
+ },
743
+ "peerDependencies": {
744
+ "@babel/core": "^7.0.0-0"
745
+ }
746
+ },
747
+ "node_modules/@babel/plugin-syntax-async-generators": {
748
+ "version": "7.8.4",
749
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
750
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
751
+ "dependencies": {
752
+ "@babel/helper-plugin-utils": "^7.8.0"
753
+ },
754
+ "peerDependencies": {
755
+ "@babel/core": "^7.0.0-0"
756
+ }
757
+ },
758
+ "node_modules/@babel/plugin-syntax-bigint": {
759
+ "version": "7.8.3",
760
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
761
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
762
+ "dependencies": {
763
+ "@babel/helper-plugin-utils": "^7.8.0"
764
+ },
765
+ "peerDependencies": {
766
+ "@babel/core": "^7.0.0-0"
767
+ }
768
+ },
769
+ "node_modules/@babel/plugin-syntax-class-properties": {
770
+ "version": "7.12.13",
771
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
772
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
773
+ "dependencies": {
774
+ "@babel/helper-plugin-utils": "^7.12.13"
775
+ },
776
+ "peerDependencies": {
777
+ "@babel/core": "^7.0.0-0"
778
+ }
779
+ },
780
+ "node_modules/@babel/plugin-syntax-class-static-block": {
781
+ "version": "7.14.5",
782
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
783
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
784
+ "dependencies": {
785
+ "@babel/helper-plugin-utils": "^7.14.5"
786
+ },
787
+ "engines": {
788
+ "node": ">=6.9.0"
789
+ },
790
+ "peerDependencies": {
791
+ "@babel/core": "^7.0.0-0"
792
+ }
793
+ },
794
+ "node_modules/@babel/plugin-syntax-decorators": {
795
+ "version": "7.24.7",
796
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
797
+ "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
798
+ "dependencies": {
799
+ "@babel/helper-plugin-utils": "^7.24.7"
800
+ },
801
+ "engines": {
802
+ "node": ">=6.9.0"
803
+ },
804
+ "peerDependencies": {
805
+ "@babel/core": "^7.0.0-0"
806
+ }
807
+ },
808
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
809
+ "version": "7.8.3",
810
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
811
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
812
+ "dependencies": {
813
+ "@babel/helper-plugin-utils": "^7.8.0"
814
+ },
815
+ "peerDependencies": {
816
+ "@babel/core": "^7.0.0-0"
817
+ }
818
+ },
819
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
820
+ "version": "7.8.3",
821
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
822
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
823
+ "dependencies": {
824
+ "@babel/helper-plugin-utils": "^7.8.3"
825
+ },
826
+ "peerDependencies": {
827
+ "@babel/core": "^7.0.0-0"
828
+ }
829
+ },
830
+ "node_modules/@babel/plugin-syntax-flow": {
831
+ "version": "7.24.7",
832
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz",
833
+ "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==",
834
+ "dependencies": {
835
+ "@babel/helper-plugin-utils": "^7.24.7"
836
+ },
837
+ "engines": {
838
+ "node": ">=6.9.0"
839
+ },
840
+ "peerDependencies": {
841
+ "@babel/core": "^7.0.0-0"
842
+ }
843
+ },
844
+ "node_modules/@babel/plugin-syntax-import-assertions": {
845
+ "version": "7.24.7",
846
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
847
+ "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
848
+ "dependencies": {
849
+ "@babel/helper-plugin-utils": "^7.24.7"
850
+ },
851
+ "engines": {
852
+ "node": ">=6.9.0"
853
+ },
854
+ "peerDependencies": {
855
+ "@babel/core": "^7.0.0-0"
856
+ }
857
+ },
858
+ "node_modules/@babel/plugin-syntax-import-attributes": {
859
+ "version": "7.24.7",
860
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
861
+ "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
862
+ "dependencies": {
863
+ "@babel/helper-plugin-utils": "^7.24.7"
864
+ },
865
+ "engines": {
866
+ "node": ">=6.9.0"
867
+ },
868
+ "peerDependencies": {
869
+ "@babel/core": "^7.0.0-0"
870
+ }
871
+ },
872
+ "node_modules/@babel/plugin-syntax-import-meta": {
873
+ "version": "7.10.4",
874
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
875
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
876
+ "dependencies": {
877
+ "@babel/helper-plugin-utils": "^7.10.4"
878
+ },
879
+ "peerDependencies": {
880
+ "@babel/core": "^7.0.0-0"
881
+ }
882
+ },
883
+ "node_modules/@babel/plugin-syntax-json-strings": {
884
+ "version": "7.8.3",
885
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
886
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
887
+ "dependencies": {
888
+ "@babel/helper-plugin-utils": "^7.8.0"
889
+ },
890
+ "peerDependencies": {
891
+ "@babel/core": "^7.0.0-0"
892
+ }
893
+ },
894
+ "node_modules/@babel/plugin-syntax-jsx": {
895
+ "version": "7.24.7",
896
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
897
+ "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
898
+ "dependencies": {
899
+ "@babel/helper-plugin-utils": "^7.24.7"
900
+ },
901
+ "engines": {
902
+ "node": ">=6.9.0"
903
+ },
904
+ "peerDependencies": {
905
+ "@babel/core": "^7.0.0-0"
906
+ }
907
+ },
908
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
909
+ "version": "7.10.4",
910
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
911
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
912
+ "dependencies": {
913
+ "@babel/helper-plugin-utils": "^7.10.4"
914
+ },
915
+ "peerDependencies": {
916
+ "@babel/core": "^7.0.0-0"
917
+ }
918
+ },
919
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
920
+ "version": "7.8.3",
921
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
922
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
923
+ "dependencies": {
924
+ "@babel/helper-plugin-utils": "^7.8.0"
925
+ },
926
+ "peerDependencies": {
927
+ "@babel/core": "^7.0.0-0"
928
+ }
929
+ },
930
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
931
+ "version": "7.10.4",
932
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
933
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
934
+ "dependencies": {
935
+ "@babel/helper-plugin-utils": "^7.10.4"
936
+ },
937
+ "peerDependencies": {
938
+ "@babel/core": "^7.0.0-0"
939
+ }
940
+ },
941
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
942
+ "version": "7.8.3",
943
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
944
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
945
+ "dependencies": {
946
+ "@babel/helper-plugin-utils": "^7.8.0"
947
+ },
948
+ "peerDependencies": {
949
+ "@babel/core": "^7.0.0-0"
950
+ }
951
+ },
952
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
953
+ "version": "7.8.3",
954
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
955
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
956
+ "dependencies": {
957
+ "@babel/helper-plugin-utils": "^7.8.0"
958
+ },
959
+ "peerDependencies": {
960
+ "@babel/core": "^7.0.0-0"
961
+ }
962
+ },
963
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
964
+ "version": "7.8.3",
965
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
966
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
967
+ "dependencies": {
968
+ "@babel/helper-plugin-utils": "^7.8.0"
969
+ },
970
+ "peerDependencies": {
971
+ "@babel/core": "^7.0.0-0"
972
+ }
973
+ },
974
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
975
+ "version": "7.14.5",
976
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
977
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
978
+ "dependencies": {
979
+ "@babel/helper-plugin-utils": "^7.14.5"
980
+ },
981
+ "engines": {
982
+ "node": ">=6.9.0"
983
+ },
984
+ "peerDependencies": {
985
+ "@babel/core": "^7.0.0-0"
986
+ }
987
+ },
988
+ "node_modules/@babel/plugin-syntax-top-level-await": {
989
+ "version": "7.14.5",
990
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
991
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
992
+ "dependencies": {
993
+ "@babel/helper-plugin-utils": "^7.14.5"
994
+ },
995
+ "engines": {
996
+ "node": ">=6.9.0"
997
+ },
998
+ "peerDependencies": {
999
+ "@babel/core": "^7.0.0-0"
1000
+ }
1001
+ },
1002
+ "node_modules/@babel/plugin-syntax-typescript": {
1003
+ "version": "7.24.7",
1004
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
1005
+ "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
1006
+ "dependencies": {
1007
+ "@babel/helper-plugin-utils": "^7.24.7"
1008
+ },
1009
+ "engines": {
1010
+ "node": ">=6.9.0"
1011
+ },
1012
+ "peerDependencies": {
1013
+ "@babel/core": "^7.0.0-0"
1014
+ }
1015
+ },
1016
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
1017
+ "version": "7.18.6",
1018
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
1019
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
1020
+ "dependencies": {
1021
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
1022
+ "@babel/helper-plugin-utils": "^7.18.6"
1023
+ },
1024
+ "engines": {
1025
+ "node": ">=6.9.0"
1026
+ },
1027
+ "peerDependencies": {
1028
+ "@babel/core": "^7.0.0"
1029
+ }
1030
+ },
1031
+ "node_modules/@babel/plugin-transform-arrow-functions": {
1032
+ "version": "7.24.7",
1033
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
1034
+ "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
1035
+ "dependencies": {
1036
+ "@babel/helper-plugin-utils": "^7.24.7"
1037
+ },
1038
+ "engines": {
1039
+ "node": ">=6.9.0"
1040
+ },
1041
+ "peerDependencies": {
1042
+ "@babel/core": "^7.0.0-0"
1043
+ }
1044
+ },
1045
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
1046
+ "version": "7.25.0",
1047
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz",
1048
+ "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==",
1049
+ "dependencies": {
1050
+ "@babel/helper-plugin-utils": "^7.24.8",
1051
+ "@babel/helper-remap-async-to-generator": "^7.25.0",
1052
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
1053
+ "@babel/traverse": "^7.25.0"
1054
+ },
1055
+ "engines": {
1056
+ "node": ">=6.9.0"
1057
+ },
1058
+ "peerDependencies": {
1059
+ "@babel/core": "^7.0.0-0"
1060
+ }
1061
+ },
1062
+ "node_modules/@babel/plugin-transform-async-to-generator": {
1063
+ "version": "7.24.7",
1064
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
1065
+ "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
1066
+ "dependencies": {
1067
+ "@babel/helper-module-imports": "^7.24.7",
1068
+ "@babel/helper-plugin-utils": "^7.24.7",
1069
+ "@babel/helper-remap-async-to-generator": "^7.24.7"
1070
+ },
1071
+ "engines": {
1072
+ "node": ">=6.9.0"
1073
+ },
1074
+ "peerDependencies": {
1075
+ "@babel/core": "^7.0.0-0"
1076
+ }
1077
+ },
1078
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
1079
+ "version": "7.24.7",
1080
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
1081
+ "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
1082
+ "dependencies": {
1083
+ "@babel/helper-plugin-utils": "^7.24.7"
1084
+ },
1085
+ "engines": {
1086
+ "node": ">=6.9.0"
1087
+ },
1088
+ "peerDependencies": {
1089
+ "@babel/core": "^7.0.0-0"
1090
+ }
1091
+ },
1092
+ "node_modules/@babel/plugin-transform-block-scoping": {
1093
+ "version": "7.25.0",
1094
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz",
1095
+ "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==",
1096
+ "dependencies": {
1097
+ "@babel/helper-plugin-utils": "^7.24.8"
1098
+ },
1099
+ "engines": {
1100
+ "node": ">=6.9.0"
1101
+ },
1102
+ "peerDependencies": {
1103
+ "@babel/core": "^7.0.0-0"
1104
+ }
1105
+ },
1106
+ "node_modules/@babel/plugin-transform-class-properties": {
1107
+ "version": "7.24.7",
1108
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz",
1109
+ "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==",
1110
+ "dependencies": {
1111
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
1112
+ "@babel/helper-plugin-utils": "^7.24.7"
1113
+ },
1114
+ "engines": {
1115
+ "node": ">=6.9.0"
1116
+ },
1117
+ "peerDependencies": {
1118
+ "@babel/core": "^7.0.0-0"
1119
+ }
1120
+ },
1121
+ "node_modules/@babel/plugin-transform-class-static-block": {
1122
+ "version": "7.24.7",
1123
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
1124
+ "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
1125
+ "dependencies": {
1126
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
1127
+ "@babel/helper-plugin-utils": "^7.24.7",
1128
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
1129
+ },
1130
+ "engines": {
1131
+ "node": ">=6.9.0"
1132
+ },
1133
+ "peerDependencies": {
1134
+ "@babel/core": "^7.12.0"
1135
+ }
1136
+ },
1137
+ "node_modules/@babel/plugin-transform-classes": {
1138
+ "version": "7.25.0",
1139
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz",
1140
+ "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==",
1141
+ "dependencies": {
1142
+ "@babel/helper-annotate-as-pure": "^7.24.7",
1143
+ "@babel/helper-compilation-targets": "^7.24.8",
1144
+ "@babel/helper-plugin-utils": "^7.24.8",
1145
+ "@babel/helper-replace-supers": "^7.25.0",
1146
+ "@babel/traverse": "^7.25.0",
1147
+ "globals": "^11.1.0"
1148
+ },
1149
+ "engines": {
1150
+ "node": ">=6.9.0"
1151
+ },
1152
+ "peerDependencies": {
1153
+ "@babel/core": "^7.0.0-0"
1154
+ }
1155
+ },
1156
+ "node_modules/@babel/plugin-transform-classes/node_modules/globals": {
1157
+ "version": "11.12.0",
1158
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1159
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1160
+ "engines": {
1161
+ "node": ">=4"
1162
+ }
1163
+ },
1164
+ "node_modules/@babel/plugin-transform-computed-properties": {
1165
+ "version": "7.24.7",
1166
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
1167
+ "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
1168
+ "dependencies": {
1169
+ "@babel/helper-plugin-utils": "^7.24.7",
1170
+ "@babel/template": "^7.24.7"
1171
+ },
1172
+ "engines": {
1173
+ "node": ">=6.9.0"
1174
+ },
1175
+ "peerDependencies": {
1176
+ "@babel/core": "^7.0.0-0"
1177
+ }
1178
+ },
1179
+ "node_modules/@babel/plugin-transform-destructuring": {
1180
+ "version": "7.24.8",
1181
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
1182
+ "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
1183
+ "dependencies": {
1184
+ "@babel/helper-plugin-utils": "^7.24.8"
1185
+ },
1186
+ "engines": {
1187
+ "node": ">=6.9.0"
1188
+ },
1189
+ "peerDependencies": {
1190
+ "@babel/core": "^7.0.0-0"
1191
+ }
1192
+ },
1193
+ "node_modules/@babel/plugin-transform-dotall-regex": {
1194
+ "version": "7.24.7",
1195
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
1196
+ "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
1197
+ "dependencies": {
1198
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1199
+ "@babel/helper-plugin-utils": "^7.24.7"
1200
+ },
1201
+ "engines": {
1202
+ "node": ">=6.9.0"
1203
+ },
1204
+ "peerDependencies": {
1205
+ "@babel/core": "^7.0.0-0"
1206
+ }
1207
+ },
1208
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
1209
+ "version": "7.24.7",
1210
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
1211
+ "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
1212
+ "dependencies": {
1213
+ "@babel/helper-plugin-utils": "^7.24.7"
1214
+ },
1215
+ "engines": {
1216
+ "node": ">=6.9.0"
1217
+ },
1218
+ "peerDependencies": {
1219
+ "@babel/core": "^7.0.0-0"
1220
+ }
1221
+ },
1222
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
1223
+ "version": "7.25.0",
1224
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz",
1225
+ "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==",
1226
+ "dependencies": {
1227
+ "@babel/helper-create-regexp-features-plugin": "^7.25.0",
1228
+ "@babel/helper-plugin-utils": "^7.24.8"
1229
+ },
1230
+ "engines": {
1231
+ "node": ">=6.9.0"
1232
+ },
1233
+ "peerDependencies": {
1234
+ "@babel/core": "^7.0.0"
1235
+ }
1236
+ },
1237
+ "node_modules/@babel/plugin-transform-dynamic-import": {
1238
+ "version": "7.24.7",
1239
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
1240
+ "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
1241
+ "dependencies": {
1242
+ "@babel/helper-plugin-utils": "^7.24.7",
1243
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
1244
+ },
1245
+ "engines": {
1246
+ "node": ">=6.9.0"
1247
+ },
1248
+ "peerDependencies": {
1249
+ "@babel/core": "^7.0.0-0"
1250
+ }
1251
+ },
1252
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
1253
+ "version": "7.24.7",
1254
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
1255
+ "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
1256
+ "dependencies": {
1257
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
1258
+ "@babel/helper-plugin-utils": "^7.24.7"
1259
+ },
1260
+ "engines": {
1261
+ "node": ">=6.9.0"
1262
+ },
1263
+ "peerDependencies": {
1264
+ "@babel/core": "^7.0.0-0"
1265
+ }
1266
+ },
1267
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
1268
+ "version": "7.24.7",
1269
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
1270
+ "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
1271
+ "dependencies": {
1272
+ "@babel/helper-plugin-utils": "^7.24.7",
1273
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
1274
+ },
1275
+ "engines": {
1276
+ "node": ">=6.9.0"
1277
+ },
1278
+ "peerDependencies": {
1279
+ "@babel/core": "^7.0.0-0"
1280
+ }
1281
+ },
1282
+ "node_modules/@babel/plugin-transform-flow-strip-types": {
1283
+ "version": "7.24.7",
1284
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz",
1285
+ "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==",
1286
+ "dependencies": {
1287
+ "@babel/helper-plugin-utils": "^7.24.7",
1288
+ "@babel/plugin-syntax-flow": "^7.24.7"
1289
+ },
1290
+ "engines": {
1291
+ "node": ">=6.9.0"
1292
+ },
1293
+ "peerDependencies": {
1294
+ "@babel/core": "^7.0.0-0"
1295
+ }
1296
+ },
1297
+ "node_modules/@babel/plugin-transform-for-of": {
1298
+ "version": "7.24.7",
1299
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
1300
+ "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
1301
+ "dependencies": {
1302
+ "@babel/helper-plugin-utils": "^7.24.7",
1303
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1304
+ },
1305
+ "engines": {
1306
+ "node": ">=6.9.0"
1307
+ },
1308
+ "peerDependencies": {
1309
+ "@babel/core": "^7.0.0-0"
1310
+ }
1311
+ },
1312
+ "node_modules/@babel/plugin-transform-function-name": {
1313
+ "version": "7.25.1",
1314
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz",
1315
+ "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==",
1316
+ "dependencies": {
1317
+ "@babel/helper-compilation-targets": "^7.24.8",
1318
+ "@babel/helper-plugin-utils": "^7.24.8",
1319
+ "@babel/traverse": "^7.25.1"
1320
+ },
1321
+ "engines": {
1322
+ "node": ">=6.9.0"
1323
+ },
1324
+ "peerDependencies": {
1325
+ "@babel/core": "^7.0.0-0"
1326
+ }
1327
+ },
1328
+ "node_modules/@babel/plugin-transform-json-strings": {
1329
+ "version": "7.24.7",
1330
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
1331
+ "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
1332
+ "dependencies": {
1333
+ "@babel/helper-plugin-utils": "^7.24.7",
1334
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
1335
+ },
1336
+ "engines": {
1337
+ "node": ">=6.9.0"
1338
+ },
1339
+ "peerDependencies": {
1340
+ "@babel/core": "^7.0.0-0"
1341
+ }
1342
+ },
1343
+ "node_modules/@babel/plugin-transform-literals": {
1344
+ "version": "7.24.7",
1345
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
1346
+ "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
1347
+ "dependencies": {
1348
+ "@babel/helper-plugin-utils": "^7.24.7"
1349
+ },
1350
+ "engines": {
1351
+ "node": ">=6.9.0"
1352
+ },
1353
+ "peerDependencies": {
1354
+ "@babel/core": "^7.0.0-0"
1355
+ }
1356
+ },
1357
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
1358
+ "version": "7.24.7",
1359
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
1360
+ "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
1361
+ "dependencies": {
1362
+ "@babel/helper-plugin-utils": "^7.24.7",
1363
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
1364
+ },
1365
+ "engines": {
1366
+ "node": ">=6.9.0"
1367
+ },
1368
+ "peerDependencies": {
1369
+ "@babel/core": "^7.0.0-0"
1370
+ }
1371
+ },
1372
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
1373
+ "version": "7.24.7",
1374
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
1375
+ "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
1376
+ "dependencies": {
1377
+ "@babel/helper-plugin-utils": "^7.24.7"
1378
+ },
1379
+ "engines": {
1380
+ "node": ">=6.9.0"
1381
+ },
1382
+ "peerDependencies": {
1383
+ "@babel/core": "^7.0.0-0"
1384
+ }
1385
+ },
1386
+ "node_modules/@babel/plugin-transform-modules-amd": {
1387
+ "version": "7.24.7",
1388
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
1389
+ "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
1390
+ "dependencies": {
1391
+ "@babel/helper-module-transforms": "^7.24.7",
1392
+ "@babel/helper-plugin-utils": "^7.24.7"
1393
+ },
1394
+ "engines": {
1395
+ "node": ">=6.9.0"
1396
+ },
1397
+ "peerDependencies": {
1398
+ "@babel/core": "^7.0.0-0"
1399
+ }
1400
+ },
1401
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
1402
+ "version": "7.24.8",
1403
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
1404
+ "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
1405
+ "dependencies": {
1406
+ "@babel/helper-module-transforms": "^7.24.8",
1407
+ "@babel/helper-plugin-utils": "^7.24.8",
1408
+ "@babel/helper-simple-access": "^7.24.7"
1409
+ },
1410
+ "engines": {
1411
+ "node": ">=6.9.0"
1412
+ },
1413
+ "peerDependencies": {
1414
+ "@babel/core": "^7.0.0-0"
1415
+ }
1416
+ },
1417
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
1418
+ "version": "7.25.0",
1419
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz",
1420
+ "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==",
1421
+ "dependencies": {
1422
+ "@babel/helper-module-transforms": "^7.25.0",
1423
+ "@babel/helper-plugin-utils": "^7.24.8",
1424
+ "@babel/helper-validator-identifier": "^7.24.7",
1425
+ "@babel/traverse": "^7.25.0"
1426
+ },
1427
+ "engines": {
1428
+ "node": ">=6.9.0"
1429
+ },
1430
+ "peerDependencies": {
1431
+ "@babel/core": "^7.0.0-0"
1432
+ }
1433
+ },
1434
+ "node_modules/@babel/plugin-transform-modules-umd": {
1435
+ "version": "7.24.7",
1436
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
1437
+ "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
1438
+ "dependencies": {
1439
+ "@babel/helper-module-transforms": "^7.24.7",
1440
+ "@babel/helper-plugin-utils": "^7.24.7"
1441
+ },
1442
+ "engines": {
1443
+ "node": ">=6.9.0"
1444
+ },
1445
+ "peerDependencies": {
1446
+ "@babel/core": "^7.0.0-0"
1447
+ }
1448
+ },
1449
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1450
+ "version": "7.24.7",
1451
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
1452
+ "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
1453
+ "dependencies": {
1454
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1455
+ "@babel/helper-plugin-utils": "^7.24.7"
1456
+ },
1457
+ "engines": {
1458
+ "node": ">=6.9.0"
1459
+ },
1460
+ "peerDependencies": {
1461
+ "@babel/core": "^7.0.0"
1462
+ }
1463
+ },
1464
+ "node_modules/@babel/plugin-transform-new-target": {
1465
+ "version": "7.24.7",
1466
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
1467
+ "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
1468
+ "dependencies": {
1469
+ "@babel/helper-plugin-utils": "^7.24.7"
1470
+ },
1471
+ "engines": {
1472
+ "node": ">=6.9.0"
1473
+ },
1474
+ "peerDependencies": {
1475
+ "@babel/core": "^7.0.0-0"
1476
+ }
1477
+ },
1478
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
1479
+ "version": "7.24.7",
1480
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
1481
+ "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
1482
+ "dependencies": {
1483
+ "@babel/helper-plugin-utils": "^7.24.7",
1484
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
1485
+ },
1486
+ "engines": {
1487
+ "node": ">=6.9.0"
1488
+ },
1489
+ "peerDependencies": {
1490
+ "@babel/core": "^7.0.0-0"
1491
+ }
1492
+ },
1493
+ "node_modules/@babel/plugin-transform-numeric-separator": {
1494
+ "version": "7.24.7",
1495
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
1496
+ "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
1497
+ "dependencies": {
1498
+ "@babel/helper-plugin-utils": "^7.24.7",
1499
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
1500
+ },
1501
+ "engines": {
1502
+ "node": ">=6.9.0"
1503
+ },
1504
+ "peerDependencies": {
1505
+ "@babel/core": "^7.0.0-0"
1506
+ }
1507
+ },
1508
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
1509
+ "version": "7.24.7",
1510
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
1511
+ "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
1512
+ "dependencies": {
1513
+ "@babel/helper-compilation-targets": "^7.24.7",
1514
+ "@babel/helper-plugin-utils": "^7.24.7",
1515
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1516
+ "@babel/plugin-transform-parameters": "^7.24.7"
1517
+ },
1518
+ "engines": {
1519
+ "node": ">=6.9.0"
1520
+ },
1521
+ "peerDependencies": {
1522
+ "@babel/core": "^7.0.0-0"
1523
+ }
1524
+ },
1525
+ "node_modules/@babel/plugin-transform-object-super": {
1526
+ "version": "7.24.7",
1527
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
1528
+ "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
1529
+ "dependencies": {
1530
+ "@babel/helper-plugin-utils": "^7.24.7",
1531
+ "@babel/helper-replace-supers": "^7.24.7"
1532
+ },
1533
+ "engines": {
1534
+ "node": ">=6.9.0"
1535
+ },
1536
+ "peerDependencies": {
1537
+ "@babel/core": "^7.0.0-0"
1538
+ }
1539
+ },
1540
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
1541
+ "version": "7.24.7",
1542
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
1543
+ "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
1544
+ "dependencies": {
1545
+ "@babel/helper-plugin-utils": "^7.24.7",
1546
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
1547
+ },
1548
+ "engines": {
1549
+ "node": ">=6.9.0"
1550
+ },
1551
+ "peerDependencies": {
1552
+ "@babel/core": "^7.0.0-0"
1553
+ }
1554
+ },
1555
+ "node_modules/@babel/plugin-transform-optional-chaining": {
1556
+ "version": "7.24.8",
1557
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
1558
+ "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
1559
+ "dependencies": {
1560
+ "@babel/helper-plugin-utils": "^7.24.8",
1561
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1562
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
1563
+ },
1564
+ "engines": {
1565
+ "node": ">=6.9.0"
1566
+ },
1567
+ "peerDependencies": {
1568
+ "@babel/core": "^7.0.0-0"
1569
+ }
1570
+ },
1571
+ "node_modules/@babel/plugin-transform-parameters": {
1572
+ "version": "7.24.7",
1573
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
1574
+ "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
1575
+ "dependencies": {
1576
+ "@babel/helper-plugin-utils": "^7.24.7"
1577
+ },
1578
+ "engines": {
1579
+ "node": ">=6.9.0"
1580
+ },
1581
+ "peerDependencies": {
1582
+ "@babel/core": "^7.0.0-0"
1583
+ }
1584
+ },
1585
+ "node_modules/@babel/plugin-transform-private-methods": {
1586
+ "version": "7.24.7",
1587
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz",
1588
+ "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==",
1589
+ "dependencies": {
1590
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
1591
+ "@babel/helper-plugin-utils": "^7.24.7"
1592
+ },
1593
+ "engines": {
1594
+ "node": ">=6.9.0"
1595
+ },
1596
+ "peerDependencies": {
1597
+ "@babel/core": "^7.0.0-0"
1598
+ }
1599
+ },
1600
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
1601
+ "version": "7.24.7",
1602
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
1603
+ "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
1604
+ "dependencies": {
1605
+ "@babel/helper-annotate-as-pure": "^7.24.7",
1606
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
1607
+ "@babel/helper-plugin-utils": "^7.24.7",
1608
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
1609
+ },
1610
+ "engines": {
1611
+ "node": ">=6.9.0"
1612
+ },
1613
+ "peerDependencies": {
1614
+ "@babel/core": "^7.0.0-0"
1615
+ }
1616
+ },
1617
+ "node_modules/@babel/plugin-transform-property-literals": {
1618
+ "version": "7.24.7",
1619
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
1620
+ "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
1621
+ "dependencies": {
1622
+ "@babel/helper-plugin-utils": "^7.24.7"
1623
+ },
1624
+ "engines": {
1625
+ "node": ">=6.9.0"
1626
+ },
1627
+ "peerDependencies": {
1628
+ "@babel/core": "^7.0.0-0"
1629
+ }
1630
+ },
1631
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
1632
+ "version": "7.25.1",
1633
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz",
1634
+ "integrity": "sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ==",
1635
+ "dependencies": {
1636
+ "@babel/helper-plugin-utils": "^7.24.8"
1637
+ },
1638
+ "engines": {
1639
+ "node": ">=6.9.0"
1640
+ },
1641
+ "peerDependencies": {
1642
+ "@babel/core": "^7.0.0-0"
1643
+ }
1644
+ },
1645
+ "node_modules/@babel/plugin-transform-react-display-name": {
1646
+ "version": "7.24.7",
1647
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz",
1648
+ "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==",
1649
+ "dependencies": {
1650
+ "@babel/helper-plugin-utils": "^7.24.7"
1651
+ },
1652
+ "engines": {
1653
+ "node": ">=6.9.0"
1654
+ },
1655
+ "peerDependencies": {
1656
+ "@babel/core": "^7.0.0-0"
1657
+ }
1658
+ },
1659
+ "node_modules/@babel/plugin-transform-react-jsx": {
1660
+ "version": "7.24.7",
1661
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz",
1662
+ "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==",
1663
+ "dependencies": {
1664
+ "@babel/helper-annotate-as-pure": "^7.24.7",
1665
+ "@babel/helper-module-imports": "^7.24.7",
1666
+ "@babel/helper-plugin-utils": "^7.24.7",
1667
+ "@babel/plugin-syntax-jsx": "^7.24.7",
1668
+ "@babel/types": "^7.24.7"
1669
+ },
1670
+ "engines": {
1671
+ "node": ">=6.9.0"
1672
+ },
1673
+ "peerDependencies": {
1674
+ "@babel/core": "^7.0.0-0"
1675
+ }
1676
+ },
1677
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
1678
+ "version": "7.24.7",
1679
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz",
1680
+ "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==",
1681
+ "dependencies": {
1682
+ "@babel/plugin-transform-react-jsx": "^7.24.7"
1683
+ },
1684
+ "engines": {
1685
+ "node": ">=6.9.0"
1686
+ },
1687
+ "peerDependencies": {
1688
+ "@babel/core": "^7.0.0-0"
1689
+ }
1690
+ },
1691
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
1692
+ "version": "7.24.7",
1693
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz",
1694
+ "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==",
1695
+ "dependencies": {
1696
+ "@babel/helper-annotate-as-pure": "^7.24.7",
1697
+ "@babel/helper-plugin-utils": "^7.24.7"
1698
+ },
1699
+ "engines": {
1700
+ "node": ">=6.9.0"
1701
+ },
1702
+ "peerDependencies": {
1703
+ "@babel/core": "^7.0.0-0"
1704
+ }
1705
+ },
1706
+ "node_modules/@babel/plugin-transform-regenerator": {
1707
+ "version": "7.24.7",
1708
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
1709
+ "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
1710
+ "dependencies": {
1711
+ "@babel/helper-plugin-utils": "^7.24.7",
1712
+ "regenerator-transform": "^0.15.2"
1713
+ },
1714
+ "engines": {
1715
+ "node": ">=6.9.0"
1716
+ },
1717
+ "peerDependencies": {
1718
+ "@babel/core": "^7.0.0-0"
1719
+ }
1720
+ },
1721
+ "node_modules/@babel/plugin-transform-reserved-words": {
1722
+ "version": "7.24.7",
1723
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
1724
+ "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
1725
+ "dependencies": {
1726
+ "@babel/helper-plugin-utils": "^7.24.7"
1727
+ },
1728
+ "engines": {
1729
+ "node": ">=6.9.0"
1730
+ },
1731
+ "peerDependencies": {
1732
+ "@babel/core": "^7.0.0-0"
1733
+ }
1734
+ },
1735
+ "node_modules/@babel/plugin-transform-runtime": {
1736
+ "version": "7.24.7",
1737
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz",
1738
+ "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==",
1739
+ "dependencies": {
1740
+ "@babel/helper-module-imports": "^7.24.7",
1741
+ "@babel/helper-plugin-utils": "^7.24.7",
1742
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
1743
+ "babel-plugin-polyfill-corejs3": "^0.10.1",
1744
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
1745
+ "semver": "^6.3.1"
1746
+ },
1747
+ "engines": {
1748
+ "node": ">=6.9.0"
1749
+ },
1750
+ "peerDependencies": {
1751
+ "@babel/core": "^7.0.0-0"
1752
+ }
1753
+ },
1754
+ "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
1755
+ "version": "6.3.1",
1756
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
1757
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
1758
+ "bin": {
1759
+ "semver": "bin/semver.js"
1760
+ }
1761
+ },
1762
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
1763
+ "version": "7.24.7",
1764
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
1765
+ "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
1766
+ "dependencies": {
1767
+ "@babel/helper-plugin-utils": "^7.24.7"
1768
+ },
1769
+ "engines": {
1770
+ "node": ">=6.9.0"
1771
+ },
1772
+ "peerDependencies": {
1773
+ "@babel/core": "^7.0.0-0"
1774
+ }
1775
+ },
1776
+ "node_modules/@babel/plugin-transform-spread": {
1777
+ "version": "7.24.7",
1778
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
1779
+ "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
1780
+ "dependencies": {
1781
+ "@babel/helper-plugin-utils": "^7.24.7",
1782
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1783
+ },
1784
+ "engines": {
1785
+ "node": ">=6.9.0"
1786
+ },
1787
+ "peerDependencies": {
1788
+ "@babel/core": "^7.0.0-0"
1789
+ }
1790
+ },
1791
+ "node_modules/@babel/plugin-transform-sticky-regex": {
1792
+ "version": "7.24.7",
1793
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
1794
+ "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
1795
+ "dependencies": {
1796
+ "@babel/helper-plugin-utils": "^7.24.7"
1797
+ },
1798
+ "engines": {
1799
+ "node": ">=6.9.0"
1800
+ },
1801
+ "peerDependencies": {
1802
+ "@babel/core": "^7.0.0-0"
1803
+ }
1804
+ },
1805
+ "node_modules/@babel/plugin-transform-template-literals": {
1806
+ "version": "7.24.7",
1807
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
1808
+ "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
1809
+ "dependencies": {
1810
+ "@babel/helper-plugin-utils": "^7.24.7"
1811
+ },
1812
+ "engines": {
1813
+ "node": ">=6.9.0"
1814
+ },
1815
+ "peerDependencies": {
1816
+ "@babel/core": "^7.0.0-0"
1817
+ }
1818
+ },
1819
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
1820
+ "version": "7.24.8",
1821
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
1822
+ "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
1823
+ "dependencies": {
1824
+ "@babel/helper-plugin-utils": "^7.24.8"
1825
+ },
1826
+ "engines": {
1827
+ "node": ">=6.9.0"
1828
+ },
1829
+ "peerDependencies": {
1830
+ "@babel/core": "^7.0.0-0"
1831
+ }
1832
+ },
1833
+ "node_modules/@babel/plugin-transform-typescript": {
1834
+ "version": "7.25.0",
1835
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.0.tgz",
1836
+ "integrity": "sha512-LZicxFzHIw+Sa3pzgMgSz6gdpsdkfiMObHUzhSIrwKF0+/rP/nuR49u79pSS+zIFJ1FeGeqQD2Dq4QGFbOVvSw==",
1837
+ "dependencies": {
1838
+ "@babel/helper-annotate-as-pure": "^7.24.7",
1839
+ "@babel/helper-create-class-features-plugin": "^7.25.0",
1840
+ "@babel/helper-plugin-utils": "^7.24.8",
1841
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1842
+ "@babel/plugin-syntax-typescript": "^7.24.7"
1843
+ },
1844
+ "engines": {
1845
+ "node": ">=6.9.0"
1846
+ },
1847
+ "peerDependencies": {
1848
+ "@babel/core": "^7.0.0-0"
1849
+ }
1850
+ },
1851
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
1852
+ "version": "7.24.7",
1853
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
1854
+ "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
1855
+ "dependencies": {
1856
+ "@babel/helper-plugin-utils": "^7.24.7"
1857
+ },
1858
+ "engines": {
1859
+ "node": ">=6.9.0"
1860
+ },
1861
+ "peerDependencies": {
1862
+ "@babel/core": "^7.0.0-0"
1863
+ }
1864
+ },
1865
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
1866
+ "version": "7.24.7",
1867
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
1868
+ "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
1869
+ "dependencies": {
1870
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1871
+ "@babel/helper-plugin-utils": "^7.24.7"
1872
+ },
1873
+ "engines": {
1874
+ "node": ">=6.9.0"
1875
+ },
1876
+ "peerDependencies": {
1877
+ "@babel/core": "^7.0.0-0"
1878
+ }
1879
+ },
1880
+ "node_modules/@babel/plugin-transform-unicode-regex": {
1881
+ "version": "7.24.7",
1882
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
1883
+ "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
1884
+ "dependencies": {
1885
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1886
+ "@babel/helper-plugin-utils": "^7.24.7"
1887
+ },
1888
+ "engines": {
1889
+ "node": ">=6.9.0"
1890
+ },
1891
+ "peerDependencies": {
1892
+ "@babel/core": "^7.0.0-0"
1893
+ }
1894
+ },
1895
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
1896
+ "version": "7.24.7",
1897
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
1898
+ "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
1899
+ "dependencies": {
1900
+ "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1901
+ "@babel/helper-plugin-utils": "^7.24.7"
1902
+ },
1903
+ "engines": {
1904
+ "node": ">=6.9.0"
1905
+ },
1906
+ "peerDependencies": {
1907
+ "@babel/core": "^7.0.0"
1908
+ }
1909
+ },
1910
+ "node_modules/@babel/preset-env": {
1911
+ "version": "7.25.0",
1912
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.0.tgz",
1913
+ "integrity": "sha512-vYAA8PrCOeZfG4D87hmw1KJ1BPubghXP1e2MacRFwECGNKL76dkA38JEwYllbvQCpf/kLxsTtir0b8MtxKoVCw==",
1914
+ "dependencies": {
1915
+ "@babel/compat-data": "^7.25.0",
1916
+ "@babel/helper-compilation-targets": "^7.24.8",
1917
+ "@babel/helper-plugin-utils": "^7.24.8",
1918
+ "@babel/helper-validator-option": "^7.24.8",
1919
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.0",
1920
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
1921
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
1922
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
1923
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
1924
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
1925
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
1926
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
1927
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
1928
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
1929
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1930
+ "@babel/plugin-syntax-import-assertions": "^7.24.7",
1931
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
1932
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
1933
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
1934
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1935
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1936
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1937
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1938
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1939
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
1940
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
1941
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
1942
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
1943
+ "@babel/plugin-transform-arrow-functions": "^7.24.7",
1944
+ "@babel/plugin-transform-async-generator-functions": "^7.25.0",
1945
+ "@babel/plugin-transform-async-to-generator": "^7.24.7",
1946
+ "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
1947
+ "@babel/plugin-transform-block-scoping": "^7.25.0",
1948
+ "@babel/plugin-transform-class-properties": "^7.24.7",
1949
+ "@babel/plugin-transform-class-static-block": "^7.24.7",
1950
+ "@babel/plugin-transform-classes": "^7.25.0",
1951
+ "@babel/plugin-transform-computed-properties": "^7.24.7",
1952
+ "@babel/plugin-transform-destructuring": "^7.24.8",
1953
+ "@babel/plugin-transform-dotall-regex": "^7.24.7",
1954
+ "@babel/plugin-transform-duplicate-keys": "^7.24.7",
1955
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
1956
+ "@babel/plugin-transform-dynamic-import": "^7.24.7",
1957
+ "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
1958
+ "@babel/plugin-transform-export-namespace-from": "^7.24.7",
1959
+ "@babel/plugin-transform-for-of": "^7.24.7",
1960
+ "@babel/plugin-transform-function-name": "^7.25.0",
1961
+ "@babel/plugin-transform-json-strings": "^7.24.7",
1962
+ "@babel/plugin-transform-literals": "^7.24.7",
1963
+ "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
1964
+ "@babel/plugin-transform-member-expression-literals": "^7.24.7",
1965
+ "@babel/plugin-transform-modules-amd": "^7.24.7",
1966
+ "@babel/plugin-transform-modules-commonjs": "^7.24.8",
1967
+ "@babel/plugin-transform-modules-systemjs": "^7.25.0",
1968
+ "@babel/plugin-transform-modules-umd": "^7.24.7",
1969
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
1970
+ "@babel/plugin-transform-new-target": "^7.24.7",
1971
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
1972
+ "@babel/plugin-transform-numeric-separator": "^7.24.7",
1973
+ "@babel/plugin-transform-object-rest-spread": "^7.24.7",
1974
+ "@babel/plugin-transform-object-super": "^7.24.7",
1975
+ "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
1976
+ "@babel/plugin-transform-optional-chaining": "^7.24.8",
1977
+ "@babel/plugin-transform-parameters": "^7.24.7",
1978
+ "@babel/plugin-transform-private-methods": "^7.24.7",
1979
+ "@babel/plugin-transform-private-property-in-object": "^7.24.7",
1980
+ "@babel/plugin-transform-property-literals": "^7.24.7",
1981
+ "@babel/plugin-transform-regenerator": "^7.24.7",
1982
+ "@babel/plugin-transform-reserved-words": "^7.24.7",
1983
+ "@babel/plugin-transform-shorthand-properties": "^7.24.7",
1984
+ "@babel/plugin-transform-spread": "^7.24.7",
1985
+ "@babel/plugin-transform-sticky-regex": "^7.24.7",
1986
+ "@babel/plugin-transform-template-literals": "^7.24.7",
1987
+ "@babel/plugin-transform-typeof-symbol": "^7.24.8",
1988
+ "@babel/plugin-transform-unicode-escapes": "^7.24.7",
1989
+ "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
1990
+ "@babel/plugin-transform-unicode-regex": "^7.24.7",
1991
+ "@babel/plugin-transform-unicode-sets-regex": "^7.24.7",
1992
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
1993
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
1994
+ "babel-plugin-polyfill-corejs3": "^0.10.4",
1995
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
1996
+ "core-js-compat": "^3.37.1",
1997
+ "semver": "^6.3.1"
1998
+ },
1999
+ "engines": {
2000
+ "node": ">=6.9.0"
2001
+ },
2002
+ "peerDependencies": {
2003
+ "@babel/core": "^7.0.0-0"
2004
+ }
2005
+ },
2006
+ "node_modules/@babel/preset-env/node_modules/semver": {
2007
+ "version": "6.3.1",
2008
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
2009
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2010
+ "bin": {
2011
+ "semver": "bin/semver.js"
2012
+ }
2013
+ },
2014
+ "node_modules/@babel/preset-modules": {
2015
+ "version": "0.1.6-no-external-plugins",
2016
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
2017
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
2018
+ "dependencies": {
2019
+ "@babel/helper-plugin-utils": "^7.0.0",
2020
+ "@babel/types": "^7.4.4",
2021
+ "esutils": "^2.0.2"
2022
+ },
2023
+ "peerDependencies": {
2024
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
2025
+ }
2026
+ },
2027
+ "node_modules/@babel/preset-react": {
2028
+ "version": "7.24.7",
2029
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz",
2030
+ "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==",
2031
+ "dependencies": {
2032
+ "@babel/helper-plugin-utils": "^7.24.7",
2033
+ "@babel/helper-validator-option": "^7.24.7",
2034
+ "@babel/plugin-transform-react-display-name": "^7.24.7",
2035
+ "@babel/plugin-transform-react-jsx": "^7.24.7",
2036
+ "@babel/plugin-transform-react-jsx-development": "^7.24.7",
2037
+ "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
2038
+ },
2039
+ "engines": {
2040
+ "node": ">=6.9.0"
2041
+ },
2042
+ "peerDependencies": {
2043
+ "@babel/core": "^7.0.0-0"
2044
+ }
2045
+ },
2046
+ "node_modules/@babel/preset-typescript": {
2047
+ "version": "7.24.7",
2048
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz",
2049
+ "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==",
2050
+ "dependencies": {
2051
+ "@babel/helper-plugin-utils": "^7.24.7",
2052
+ "@babel/helper-validator-option": "^7.24.7",
2053
+ "@babel/plugin-syntax-jsx": "^7.24.7",
2054
+ "@babel/plugin-transform-modules-commonjs": "^7.24.7",
2055
+ "@babel/plugin-transform-typescript": "^7.24.7"
2056
+ },
2057
+ "engines": {
2058
+ "node": ">=6.9.0"
2059
+ },
2060
+ "peerDependencies": {
2061
+ "@babel/core": "^7.0.0-0"
2062
+ }
2063
+ },
2064
+ "node_modules/@babel/regjsgen": {
2065
+ "version": "0.8.0",
2066
+ "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
2067
+ "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
2068
+ },
2069
+ "node_modules/@babel/runtime": {
2070
+ "version": "7.25.0",
2071
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz",
2072
+ "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==",
2073
+ "dependencies": {
2074
+ "regenerator-runtime": "^0.14.0"
2075
+ },
2076
+ "engines": {
2077
+ "node": ">=6.9.0"
2078
+ }
2079
+ },
2080
+ "node_modules/@babel/template": {
2081
+ "version": "7.25.0",
2082
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
2083
+ "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
2084
+ "dependencies": {
2085
+ "@babel/code-frame": "^7.24.7",
2086
+ "@babel/parser": "^7.25.0",
2087
+ "@babel/types": "^7.25.0"
2088
+ },
2089
+ "engines": {
2090
+ "node": ">=6.9.0"
2091
+ }
2092
+ },
2093
+ "node_modules/@babel/traverse": {
2094
+ "version": "7.25.1",
2095
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.1.tgz",
2096
+ "integrity": "sha512-LrHHoWq08ZpmmFqBAzN+hUdWwy5zt7FGa/hVwMcOqW6OVtwqaoD5utfuGYU87JYxdZgLUvktAsn37j/sYR9siA==",
2097
+ "dependencies": {
2098
+ "@babel/code-frame": "^7.24.7",
2099
+ "@babel/generator": "^7.25.0",
2100
+ "@babel/parser": "^7.25.0",
2101
+ "@babel/template": "^7.25.0",
2102
+ "@babel/types": "^7.25.0",
2103
+ "debug": "^4.3.1",
2104
+ "globals": "^11.1.0"
2105
+ },
2106
+ "engines": {
2107
+ "node": ">=6.9.0"
2108
+ }
2109
+ },
2110
+ "node_modules/@babel/traverse/node_modules/globals": {
2111
+ "version": "11.12.0",
2112
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2113
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2114
+ "engines": {
2115
+ "node": ">=4"
2116
+ }
2117
+ },
2118
+ "node_modules/@babel/types": {
2119
+ "version": "7.25.0",
2120
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz",
2121
+ "integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==",
2122
+ "dependencies": {
2123
+ "@babel/helper-string-parser": "^7.24.8",
2124
+ "@babel/helper-validator-identifier": "^7.24.7",
2125
+ "to-fast-properties": "^2.0.0"
2126
+ },
2127
+ "engines": {
2128
+ "node": ">=6.9.0"
2129
+ }
2130
+ },
2131
+ "node_modules/@bcoe/v8-coverage": {
2132
+ "version": "0.2.3",
2133
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
2134
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
2135
+ },
2136
+ "node_modules/@csstools/normalize.css": {
2137
+ "version": "12.1.1",
2138
+ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz",
2139
+ "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ=="
2140
+ },
2141
+ "node_modules/@csstools/postcss-cascade-layers": {
2142
+ "version": "1.1.1",
2143
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz",
2144
+ "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==",
2145
+ "dependencies": {
2146
+ "@csstools/selector-specificity": "^2.0.2",
2147
+ "postcss-selector-parser": "^6.0.10"
2148
+ },
2149
+ "engines": {
2150
+ "node": "^12 || ^14 || >=16"
2151
+ },
2152
+ "funding": {
2153
+ "type": "opencollective",
2154
+ "url": "https://opencollective.com/csstools"
2155
+ },
2156
+ "peerDependencies": {
2157
+ "postcss": "^8.2"
2158
+ }
2159
+ },
2160
+ "node_modules/@csstools/postcss-color-function": {
2161
+ "version": "1.1.1",
2162
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz",
2163
+ "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==",
2164
+ "dependencies": {
2165
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2166
+ "postcss-value-parser": "^4.2.0"
2167
+ },
2168
+ "engines": {
2169
+ "node": "^12 || ^14 || >=16"
2170
+ },
2171
+ "funding": {
2172
+ "type": "opencollective",
2173
+ "url": "https://opencollective.com/csstools"
2174
+ },
2175
+ "peerDependencies": {
2176
+ "postcss": "^8.2"
2177
+ }
2178
+ },
2179
+ "node_modules/@csstools/postcss-font-format-keywords": {
2180
+ "version": "1.0.1",
2181
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz",
2182
+ "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==",
2183
+ "dependencies": {
2184
+ "postcss-value-parser": "^4.2.0"
2185
+ },
2186
+ "engines": {
2187
+ "node": "^12 || ^14 || >=16"
2188
+ },
2189
+ "funding": {
2190
+ "type": "opencollective",
2191
+ "url": "https://opencollective.com/csstools"
2192
+ },
2193
+ "peerDependencies": {
2194
+ "postcss": "^8.2"
2195
+ }
2196
+ },
2197
+ "node_modules/@csstools/postcss-hwb-function": {
2198
+ "version": "1.0.2",
2199
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz",
2200
+ "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==",
2201
+ "dependencies": {
2202
+ "postcss-value-parser": "^4.2.0"
2203
+ },
2204
+ "engines": {
2205
+ "node": "^12 || ^14 || >=16"
2206
+ },
2207
+ "funding": {
2208
+ "type": "opencollective",
2209
+ "url": "https://opencollective.com/csstools"
2210
+ },
2211
+ "peerDependencies": {
2212
+ "postcss": "^8.2"
2213
+ }
2214
+ },
2215
+ "node_modules/@csstools/postcss-ic-unit": {
2216
+ "version": "1.0.1",
2217
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz",
2218
+ "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==",
2219
+ "dependencies": {
2220
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2221
+ "postcss-value-parser": "^4.2.0"
2222
+ },
2223
+ "engines": {
2224
+ "node": "^12 || ^14 || >=16"
2225
+ },
2226
+ "funding": {
2227
+ "type": "opencollective",
2228
+ "url": "https://opencollective.com/csstools"
2229
+ },
2230
+ "peerDependencies": {
2231
+ "postcss": "^8.2"
2232
+ }
2233
+ },
2234
+ "node_modules/@csstools/postcss-is-pseudo-class": {
2235
+ "version": "2.0.7",
2236
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz",
2237
+ "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==",
2238
+ "dependencies": {
2239
+ "@csstools/selector-specificity": "^2.0.0",
2240
+ "postcss-selector-parser": "^6.0.10"
2241
+ },
2242
+ "engines": {
2243
+ "node": "^12 || ^14 || >=16"
2244
+ },
2245
+ "funding": {
2246
+ "type": "opencollective",
2247
+ "url": "https://opencollective.com/csstools"
2248
+ },
2249
+ "peerDependencies": {
2250
+ "postcss": "^8.2"
2251
+ }
2252
+ },
2253
+ "node_modules/@csstools/postcss-nested-calc": {
2254
+ "version": "1.0.0",
2255
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz",
2256
+ "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==",
2257
+ "dependencies": {
2258
+ "postcss-value-parser": "^4.2.0"
2259
+ },
2260
+ "engines": {
2261
+ "node": "^12 || ^14 || >=16"
2262
+ },
2263
+ "funding": {
2264
+ "type": "opencollective",
2265
+ "url": "https://opencollective.com/csstools"
2266
+ },
2267
+ "peerDependencies": {
2268
+ "postcss": "^8.2"
2269
+ }
2270
+ },
2271
+ "node_modules/@csstools/postcss-normalize-display-values": {
2272
+ "version": "1.0.1",
2273
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz",
2274
+ "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==",
2275
+ "dependencies": {
2276
+ "postcss-value-parser": "^4.2.0"
2277
+ },
2278
+ "engines": {
2279
+ "node": "^12 || ^14 || >=16"
2280
+ },
2281
+ "funding": {
2282
+ "type": "opencollective",
2283
+ "url": "https://opencollective.com/csstools"
2284
+ },
2285
+ "peerDependencies": {
2286
+ "postcss": "^8.2"
2287
+ }
2288
+ },
2289
+ "node_modules/@csstools/postcss-oklab-function": {
2290
+ "version": "1.1.1",
2291
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz",
2292
+ "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==",
2293
+ "dependencies": {
2294
+ "@csstools/postcss-progressive-custom-properties": "^1.1.0",
2295
+ "postcss-value-parser": "^4.2.0"
2296
+ },
2297
+ "engines": {
2298
+ "node": "^12 || ^14 || >=16"
2299
+ },
2300
+ "funding": {
2301
+ "type": "opencollective",
2302
+ "url": "https://opencollective.com/csstools"
2303
+ },
2304
+ "peerDependencies": {
2305
+ "postcss": "^8.2"
2306
+ }
2307
+ },
2308
+ "node_modules/@csstools/postcss-progressive-custom-properties": {
2309
+ "version": "1.3.0",
2310
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz",
2311
+ "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==",
2312
+ "dependencies": {
2313
+ "postcss-value-parser": "^4.2.0"
2314
+ },
2315
+ "engines": {
2316
+ "node": "^12 || ^14 || >=16"
2317
+ },
2318
+ "peerDependencies": {
2319
+ "postcss": "^8.3"
2320
+ }
2321
+ },
2322
+ "node_modules/@csstools/postcss-stepped-value-functions": {
2323
+ "version": "1.0.1",
2324
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz",
2325
+ "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==",
2326
+ "dependencies": {
2327
+ "postcss-value-parser": "^4.2.0"
2328
+ },
2329
+ "engines": {
2330
+ "node": "^12 || ^14 || >=16"
2331
+ },
2332
+ "funding": {
2333
+ "type": "opencollective",
2334
+ "url": "https://opencollective.com/csstools"
2335
+ },
2336
+ "peerDependencies": {
2337
+ "postcss": "^8.2"
2338
+ }
2339
+ },
2340
+ "node_modules/@csstools/postcss-text-decoration-shorthand": {
2341
+ "version": "1.0.0",
2342
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz",
2343
+ "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==",
2344
+ "dependencies": {
2345
+ "postcss-value-parser": "^4.2.0"
2346
+ },
2347
+ "engines": {
2348
+ "node": "^12 || ^14 || >=16"
2349
+ },
2350
+ "funding": {
2351
+ "type": "opencollective",
2352
+ "url": "https://opencollective.com/csstools"
2353
+ },
2354
+ "peerDependencies": {
2355
+ "postcss": "^8.2"
2356
+ }
2357
+ },
2358
+ "node_modules/@csstools/postcss-trigonometric-functions": {
2359
+ "version": "1.0.2",
2360
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz",
2361
+ "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==",
2362
+ "dependencies": {
2363
+ "postcss-value-parser": "^4.2.0"
2364
+ },
2365
+ "engines": {
2366
+ "node": "^14 || >=16"
2367
+ },
2368
+ "funding": {
2369
+ "type": "opencollective",
2370
+ "url": "https://opencollective.com/csstools"
2371
+ },
2372
+ "peerDependencies": {
2373
+ "postcss": "^8.2"
2374
+ }
2375
+ },
2376
+ "node_modules/@csstools/postcss-unset-value": {
2377
+ "version": "1.0.2",
2378
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz",
2379
+ "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==",
2380
+ "engines": {
2381
+ "node": "^12 || ^14 || >=16"
2382
+ },
2383
+ "funding": {
2384
+ "type": "opencollective",
2385
+ "url": "https://opencollective.com/csstools"
2386
+ },
2387
+ "peerDependencies": {
2388
+ "postcss": "^8.2"
2389
+ }
2390
+ },
2391
+ "node_modules/@csstools/selector-specificity": {
2392
+ "version": "2.2.0",
2393
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz",
2394
+ "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==",
2395
+ "engines": {
2396
+ "node": "^14 || ^16 || >=18"
2397
+ },
2398
+ "funding": {
2399
+ "type": "opencollective",
2400
+ "url": "https://opencollective.com/csstools"
2401
+ },
2402
+ "peerDependencies": {
2403
+ "postcss-selector-parser": "^6.0.10"
2404
+ }
2405
+ },
2406
+ "node_modules/@eslint-community/eslint-utils": {
2407
+ "version": "4.4.0",
2408
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
2409
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
2410
+ "dependencies": {
2411
+ "eslint-visitor-keys": "^3.3.0"
2412
+ },
2413
+ "engines": {
2414
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2415
+ },
2416
+ "peerDependencies": {
2417
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
2418
+ }
2419
+ },
2420
+ "node_modules/@eslint-community/regexpp": {
2421
+ "version": "4.11.0",
2422
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
2423
+ "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
2424
+ "engines": {
2425
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
2426
+ }
2427
+ },
2428
+ "node_modules/@eslint/eslintrc": {
2429
+ "version": "1.4.1",
2430
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
2431
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
2432
+ "dependencies": {
2433
+ "ajv": "^6.12.4",
2434
+ "debug": "^4.3.2",
2435
+ "espree": "^9.4.0",
2436
+ "globals": "^13.19.0",
2437
+ "ignore": "^5.2.0",
2438
+ "import-fresh": "^3.2.1",
2439
+ "js-yaml": "^4.1.0",
2440
+ "minimatch": "^3.1.2",
2441
+ "strip-json-comments": "^3.1.1"
2442
+ },
2443
+ "engines": {
2444
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
2445
+ },
2446
+ "funding": {
2447
+ "url": "https://opencollective.com/eslint"
2448
+ }
2449
+ },
2450
+ "node_modules/@floating-ui/core": {
2451
+ "version": "1.6.5",
2452
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.5.tgz",
2453
+ "integrity": "sha512-8GrTWmoFhm5BsMZOTHeGD2/0FLKLQQHvO/ZmQga4tKempYRLz8aqJGqXVuQgisnMObq2YZ2SgkwctN1LOOxcqA==",
2454
+ "dependencies": {
2455
+ "@floating-ui/utils": "^0.2.5"
2456
+ }
2457
+ },
2458
+ "node_modules/@floating-ui/dom": {
2459
+ "version": "1.6.8",
2460
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.8.tgz",
2461
+ "integrity": "sha512-kx62rP19VZ767Q653wsP1XZCGIirkE09E0QUGNYTM/ttbbQHqcGPdSfWFxUyyNLc/W6aoJRBajOSXhP6GXjC0Q==",
2462
+ "dependencies": {
2463
+ "@floating-ui/core": "^1.6.0",
2464
+ "@floating-ui/utils": "^0.2.5"
2465
+ }
2466
+ },
2467
+ "node_modules/@floating-ui/react-dom": {
2468
+ "version": "2.1.1",
2469
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz",
2470
+ "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==",
2471
+ "dependencies": {
2472
+ "@floating-ui/dom": "^1.0.0"
2473
+ },
2474
+ "peerDependencies": {
2475
+ "react": ">=16.8.0",
2476
+ "react-dom": ">=16.8.0"
2477
+ }
2478
+ },
2479
+ "node_modules/@floating-ui/utils": {
2480
+ "version": "0.2.5",
2481
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.5.tgz",
2482
+ "integrity": "sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ=="
2483
+ },
2484
+ "node_modules/@formatjs/ecma402-abstract": {
2485
+ "version": "1.11.4",
2486
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz",
2487
+ "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==",
2488
+ "dependencies": {
2489
+ "@formatjs/intl-localematcher": "0.2.25",
2490
+ "tslib": "^2.1.0"
2491
+ }
2492
+ },
2493
+ "node_modules/@formatjs/fast-memoize": {
2494
+ "version": "1.2.1",
2495
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz",
2496
+ "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==",
2497
+ "dependencies": {
2498
+ "tslib": "^2.1.0"
2499
+ }
2500
+ },
2501
+ "node_modules/@formatjs/icu-messageformat-parser": {
2502
+ "version": "2.1.0",
2503
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz",
2504
+ "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==",
2505
+ "dependencies": {
2506
+ "@formatjs/ecma402-abstract": "1.11.4",
2507
+ "@formatjs/icu-skeleton-parser": "1.3.6",
2508
+ "tslib": "^2.1.0"
2509
+ }
2510
+ },
2511
+ "node_modules/@formatjs/icu-skeleton-parser": {
2512
+ "version": "1.3.6",
2513
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz",
2514
+ "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==",
2515
+ "dependencies": {
2516
+ "@formatjs/ecma402-abstract": "1.11.4",
2517
+ "tslib": "^2.1.0"
2518
+ }
2519
+ },
2520
+ "node_modules/@formatjs/intl": {
2521
+ "version": "2.2.1",
2522
+ "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.2.1.tgz",
2523
+ "integrity": "sha512-vgvyUOOrzqVaOFYzTf2d3+ToSkH2JpR7x/4U1RyoHQLmvEaTQvXJ7A2qm1Iy3brGNXC/+/7bUlc3lpH+h/LOJA==",
2524
+ "dependencies": {
2525
+ "@formatjs/ecma402-abstract": "1.11.4",
2526
+ "@formatjs/fast-memoize": "1.2.1",
2527
+ "@formatjs/icu-messageformat-parser": "2.1.0",
2528
+ "@formatjs/intl-displaynames": "5.4.3",
2529
+ "@formatjs/intl-listformat": "6.5.3",
2530
+ "intl-messageformat": "9.13.0",
2531
+ "tslib": "^2.1.0"
2532
+ },
2533
+ "peerDependencies": {
2534
+ "typescript": "^4.5"
2535
+ },
2536
+ "peerDependenciesMeta": {
2537
+ "typescript": {
2538
+ "optional": true
2539
+ }
2540
+ }
2541
+ },
2542
+ "node_modules/@formatjs/intl-displaynames": {
2543
+ "version": "5.4.3",
2544
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz",
2545
+ "integrity": "sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==",
2546
+ "dependencies": {
2547
+ "@formatjs/ecma402-abstract": "1.11.4",
2548
+ "@formatjs/intl-localematcher": "0.2.25",
2549
+ "tslib": "^2.1.0"
2550
+ }
2551
+ },
2552
+ "node_modules/@formatjs/intl-listformat": {
2553
+ "version": "6.5.3",
2554
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.5.3.tgz",
2555
+ "integrity": "sha512-ozpz515F/+3CU+HnLi5DYPsLa6JoCfBggBSSg/8nOB5LYSFW9+ZgNQJxJ8tdhKYeODT+4qVHX27EeJLoxLGLNg==",
2556
+ "dependencies": {
2557
+ "@formatjs/ecma402-abstract": "1.11.4",
2558
+ "@formatjs/intl-localematcher": "0.2.25",
2559
+ "tslib": "^2.1.0"
2560
+ }
2561
+ },
2562
+ "node_modules/@formatjs/intl-localematcher": {
2563
+ "version": "0.2.25",
2564
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz",
2565
+ "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==",
2566
+ "dependencies": {
2567
+ "tslib": "^2.1.0"
2568
+ }
2569
+ },
2570
+ "node_modules/@heroicons/react": {
2571
+ "version": "1.0.6",
2572
+ "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.6.tgz",
2573
+ "integrity": "sha512-JJCXydOFWMDpCP4q13iEplA503MQO3xLoZiKum+955ZCtHINWnx26CUxVxxFQu/uLb4LW3ge15ZpzIkXKkJ8oQ==",
2574
+ "peerDependencies": {
2575
+ "react": ">= 16"
2576
+ }
2577
+ },
2578
+ "node_modules/@humanwhocodes/config-array": {
2579
+ "version": "0.11.14",
2580
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
2581
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
2582
+ "deprecated": "Use @eslint/config-array instead",
2583
+ "dependencies": {
2584
+ "@humanwhocodes/object-schema": "^2.0.2",
2585
+ "debug": "^4.3.1",
2586
+ "minimatch": "^3.0.5"
2587
+ },
2588
+ "engines": {
2589
+ "node": ">=10.10.0"
2590
+ }
2591
+ },
2592
+ "node_modules/@humanwhocodes/module-importer": {
2593
+ "version": "1.0.1",
2594
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
2595
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
2596
+ "engines": {
2597
+ "node": ">=12.22"
2598
+ },
2599
+ "funding": {
2600
+ "type": "github",
2601
+ "url": "https://github.com/sponsors/nzakas"
2602
+ }
2603
+ },
2604
+ "node_modules/@humanwhocodes/object-schema": {
2605
+ "version": "2.0.3",
2606
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
2607
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
2608
+ "deprecated": "Use @eslint/object-schema instead"
2609
+ },
2610
+ "node_modules/@isaacs/cliui": {
2611
+ "version": "8.0.2",
2612
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
2613
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
2614
+ "dependencies": {
2615
+ "string-width": "^5.1.2",
2616
+ "string-width-cjs": "npm:string-width@^4.2.0",
2617
+ "strip-ansi": "^7.0.1",
2618
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
2619
+ "wrap-ansi": "^8.1.0",
2620
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
2621
+ },
2622
+ "engines": {
2623
+ "node": ">=12"
2624
+ }
2625
+ },
2626
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
2627
+ "version": "6.0.1",
2628
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
2629
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
2630
+ "engines": {
2631
+ "node": ">=12"
2632
+ },
2633
+ "funding": {
2634
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
2635
+ }
2636
+ },
2637
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
2638
+ "version": "7.1.0",
2639
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2640
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2641
+ "dependencies": {
2642
+ "ansi-regex": "^6.0.1"
2643
+ },
2644
+ "engines": {
2645
+ "node": ">=12"
2646
+ },
2647
+ "funding": {
2648
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
2649
+ }
2650
+ },
2651
+ "node_modules/@istanbuljs/load-nyc-config": {
2652
+ "version": "1.1.0",
2653
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
2654
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
2655
+ "dependencies": {
2656
+ "camelcase": "^5.3.1",
2657
+ "find-up": "^4.1.0",
2658
+ "get-package-type": "^0.1.0",
2659
+ "js-yaml": "^3.13.1",
2660
+ "resolve-from": "^5.0.0"
2661
+ },
2662
+ "engines": {
2663
+ "node": ">=8"
2664
+ }
2665
+ },
2666
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
2667
+ "version": "1.0.10",
2668
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
2669
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
2670
+ "dependencies": {
2671
+ "sprintf-js": "~1.0.2"
2672
+ }
2673
+ },
2674
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
2675
+ "version": "5.3.1",
2676
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
2677
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
2678
+ "engines": {
2679
+ "node": ">=6"
2680
+ }
2681
+ },
2682
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
2683
+ "version": "4.1.0",
2684
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
2685
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
2686
+ "dependencies": {
2687
+ "locate-path": "^5.0.0",
2688
+ "path-exists": "^4.0.0"
2689
+ },
2690
+ "engines": {
2691
+ "node": ">=8"
2692
+ }
2693
+ },
2694
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
2695
+ "version": "3.14.1",
2696
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
2697
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
2698
+ "dependencies": {
2699
+ "argparse": "^1.0.7",
2700
+ "esprima": "^4.0.0"
2701
+ },
2702
+ "bin": {
2703
+ "js-yaml": "bin/js-yaml.js"
2704
+ }
2705
+ },
2706
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
2707
+ "version": "5.0.0",
2708
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
2709
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
2710
+ "dependencies": {
2711
+ "p-locate": "^4.1.0"
2712
+ },
2713
+ "engines": {
2714
+ "node": ">=8"
2715
+ }
2716
+ },
2717
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
2718
+ "version": "2.3.0",
2719
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
2720
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
2721
+ "dependencies": {
2722
+ "p-try": "^2.0.0"
2723
+ },
2724
+ "engines": {
2725
+ "node": ">=6"
2726
+ },
2727
+ "funding": {
2728
+ "url": "https://github.com/sponsors/sindresorhus"
2729
+ }
2730
+ },
2731
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
2732
+ "version": "4.1.0",
2733
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
2734
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
2735
+ "dependencies": {
2736
+ "p-limit": "^2.2.0"
2737
+ },
2738
+ "engines": {
2739
+ "node": ">=8"
2740
+ }
2741
+ },
2742
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
2743
+ "version": "5.0.0",
2744
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
2745
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
2746
+ "engines": {
2747
+ "node": ">=8"
2748
+ }
2749
+ },
2750
+ "node_modules/@istanbuljs/schema": {
2751
+ "version": "0.1.3",
2752
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2753
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2754
+ "engines": {
2755
+ "node": ">=8"
2756
+ }
2757
+ },
2758
+ "node_modules/@jest/console": {
2759
+ "version": "27.5.1",
2760
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
2761
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
2762
+ "dependencies": {
2763
+ "@jest/types": "^27.5.1",
2764
+ "@types/node": "*",
2765
+ "chalk": "^4.0.0",
2766
+ "jest-message-util": "^27.5.1",
2767
+ "jest-util": "^27.5.1",
2768
+ "slash": "^3.0.0"
2769
+ },
2770
+ "engines": {
2771
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2772
+ }
2773
+ },
2774
+ "node_modules/@jest/core": {
2775
+ "version": "27.5.1",
2776
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
2777
+ "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
2778
+ "dependencies": {
2779
+ "@jest/console": "^27.5.1",
2780
+ "@jest/reporters": "^27.5.1",
2781
+ "@jest/test-result": "^27.5.1",
2782
+ "@jest/transform": "^27.5.1",
2783
+ "@jest/types": "^27.5.1",
2784
+ "@types/node": "*",
2785
+ "ansi-escapes": "^4.2.1",
2786
+ "chalk": "^4.0.0",
2787
+ "emittery": "^0.8.1",
2788
+ "exit": "^0.1.2",
2789
+ "graceful-fs": "^4.2.9",
2790
+ "jest-changed-files": "^27.5.1",
2791
+ "jest-config": "^27.5.1",
2792
+ "jest-haste-map": "^27.5.1",
2793
+ "jest-message-util": "^27.5.1",
2794
+ "jest-regex-util": "^27.5.1",
2795
+ "jest-resolve": "^27.5.1",
2796
+ "jest-resolve-dependencies": "^27.5.1",
2797
+ "jest-runner": "^27.5.1",
2798
+ "jest-runtime": "^27.5.1",
2799
+ "jest-snapshot": "^27.5.1",
2800
+ "jest-util": "^27.5.1",
2801
+ "jest-validate": "^27.5.1",
2802
+ "jest-watcher": "^27.5.1",
2803
+ "micromatch": "^4.0.4",
2804
+ "rimraf": "^3.0.0",
2805
+ "slash": "^3.0.0",
2806
+ "strip-ansi": "^6.0.0"
2807
+ },
2808
+ "engines": {
2809
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2810
+ },
2811
+ "peerDependencies": {
2812
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2813
+ },
2814
+ "peerDependenciesMeta": {
2815
+ "node-notifier": {
2816
+ "optional": true
2817
+ }
2818
+ }
2819
+ },
2820
+ "node_modules/@jest/environment": {
2821
+ "version": "27.5.1",
2822
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
2823
+ "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
2824
+ "dependencies": {
2825
+ "@jest/fake-timers": "^27.5.1",
2826
+ "@jest/types": "^27.5.1",
2827
+ "@types/node": "*",
2828
+ "jest-mock": "^27.5.1"
2829
+ },
2830
+ "engines": {
2831
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2832
+ }
2833
+ },
2834
+ "node_modules/@jest/fake-timers": {
2835
+ "version": "27.5.1",
2836
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
2837
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
2838
+ "dependencies": {
2839
+ "@jest/types": "^27.5.1",
2840
+ "@sinonjs/fake-timers": "^8.0.1",
2841
+ "@types/node": "*",
2842
+ "jest-message-util": "^27.5.1",
2843
+ "jest-mock": "^27.5.1",
2844
+ "jest-util": "^27.5.1"
2845
+ },
2846
+ "engines": {
2847
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2848
+ }
2849
+ },
2850
+ "node_modules/@jest/globals": {
2851
+ "version": "27.5.1",
2852
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
2853
+ "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
2854
+ "dependencies": {
2855
+ "@jest/environment": "^27.5.1",
2856
+ "@jest/types": "^27.5.1",
2857
+ "expect": "^27.5.1"
2858
+ },
2859
+ "engines": {
2860
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2861
+ }
2862
+ },
2863
+ "node_modules/@jest/reporters": {
2864
+ "version": "27.5.1",
2865
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
2866
+ "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
2867
+ "dependencies": {
2868
+ "@bcoe/v8-coverage": "^0.2.3",
2869
+ "@jest/console": "^27.5.1",
2870
+ "@jest/test-result": "^27.5.1",
2871
+ "@jest/transform": "^27.5.1",
2872
+ "@jest/types": "^27.5.1",
2873
+ "@types/node": "*",
2874
+ "chalk": "^4.0.0",
2875
+ "collect-v8-coverage": "^1.0.0",
2876
+ "exit": "^0.1.2",
2877
+ "glob": "^7.1.2",
2878
+ "graceful-fs": "^4.2.9",
2879
+ "istanbul-lib-coverage": "^3.0.0",
2880
+ "istanbul-lib-instrument": "^5.1.0",
2881
+ "istanbul-lib-report": "^3.0.0",
2882
+ "istanbul-lib-source-maps": "^4.0.0",
2883
+ "istanbul-reports": "^3.1.3",
2884
+ "jest-haste-map": "^27.5.1",
2885
+ "jest-resolve": "^27.5.1",
2886
+ "jest-util": "^27.5.1",
2887
+ "jest-worker": "^27.5.1",
2888
+ "slash": "^3.0.0",
2889
+ "source-map": "^0.6.0",
2890
+ "string-length": "^4.0.1",
2891
+ "terminal-link": "^2.0.0",
2892
+ "v8-to-istanbul": "^8.1.0"
2893
+ },
2894
+ "engines": {
2895
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2896
+ },
2897
+ "peerDependencies": {
2898
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
2899
+ },
2900
+ "peerDependenciesMeta": {
2901
+ "node-notifier": {
2902
+ "optional": true
2903
+ }
2904
+ }
2905
+ },
2906
+ "node_modules/@jest/reporters/node_modules/glob": {
2907
+ "version": "7.2.3",
2908
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
2909
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
2910
+ "deprecated": "Glob versions prior to v9 are no longer supported",
2911
+ "dependencies": {
2912
+ "fs.realpath": "^1.0.0",
2913
+ "inflight": "^1.0.4",
2914
+ "inherits": "2",
2915
+ "minimatch": "^3.1.1",
2916
+ "once": "^1.3.0",
2917
+ "path-is-absolute": "^1.0.0"
2918
+ },
2919
+ "engines": {
2920
+ "node": "*"
2921
+ },
2922
+ "funding": {
2923
+ "url": "https://github.com/sponsors/isaacs"
2924
+ }
2925
+ },
2926
+ "node_modules/@jest/reporters/node_modules/source-map": {
2927
+ "version": "0.6.1",
2928
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2929
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2930
+ "engines": {
2931
+ "node": ">=0.10.0"
2932
+ }
2933
+ },
2934
+ "node_modules/@jest/schemas": {
2935
+ "version": "28.1.3",
2936
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
2937
+ "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
2938
+ "dependencies": {
2939
+ "@sinclair/typebox": "^0.24.1"
2940
+ },
2941
+ "engines": {
2942
+ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
2943
+ }
2944
+ },
2945
+ "node_modules/@jest/source-map": {
2946
+ "version": "27.5.1",
2947
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
2948
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
2949
+ "dependencies": {
2950
+ "callsites": "^3.0.0",
2951
+ "graceful-fs": "^4.2.9",
2952
+ "source-map": "^0.6.0"
2953
+ },
2954
+ "engines": {
2955
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2956
+ }
2957
+ },
2958
+ "node_modules/@jest/source-map/node_modules/source-map": {
2959
+ "version": "0.6.1",
2960
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2961
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2962
+ "engines": {
2963
+ "node": ">=0.10.0"
2964
+ }
2965
+ },
2966
+ "node_modules/@jest/test-result": {
2967
+ "version": "27.5.1",
2968
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
2969
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
2970
+ "dependencies": {
2971
+ "@jest/console": "^27.5.1",
2972
+ "@jest/types": "^27.5.1",
2973
+ "@types/istanbul-lib-coverage": "^2.0.0",
2974
+ "collect-v8-coverage": "^1.0.0"
2975
+ },
2976
+ "engines": {
2977
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2978
+ }
2979
+ },
2980
+ "node_modules/@jest/test-sequencer": {
2981
+ "version": "27.5.1",
2982
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
2983
+ "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
2984
+ "dependencies": {
2985
+ "@jest/test-result": "^27.5.1",
2986
+ "graceful-fs": "^4.2.9",
2987
+ "jest-haste-map": "^27.5.1",
2988
+ "jest-runtime": "^27.5.1"
2989
+ },
2990
+ "engines": {
2991
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
2992
+ }
2993
+ },
2994
+ "node_modules/@jest/transform": {
2995
+ "version": "27.5.1",
2996
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
2997
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
2998
+ "dependencies": {
2999
+ "@babel/core": "^7.1.0",
3000
+ "@jest/types": "^27.5.1",
3001
+ "babel-plugin-istanbul": "^6.1.1",
3002
+ "chalk": "^4.0.0",
3003
+ "convert-source-map": "^1.4.0",
3004
+ "fast-json-stable-stringify": "^2.0.0",
3005
+ "graceful-fs": "^4.2.9",
3006
+ "jest-haste-map": "^27.5.1",
3007
+ "jest-regex-util": "^27.5.1",
3008
+ "jest-util": "^27.5.1",
3009
+ "micromatch": "^4.0.4",
3010
+ "pirates": "^4.0.4",
3011
+ "slash": "^3.0.0",
3012
+ "source-map": "^0.6.1",
3013
+ "write-file-atomic": "^3.0.0"
3014
+ },
3015
+ "engines": {
3016
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3017
+ }
3018
+ },
3019
+ "node_modules/@jest/transform/node_modules/convert-source-map": {
3020
+ "version": "1.9.0",
3021
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
3022
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A=="
3023
+ },
3024
+ "node_modules/@jest/transform/node_modules/source-map": {
3025
+ "version": "0.6.1",
3026
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3027
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3028
+ "engines": {
3029
+ "node": ">=0.10.0"
3030
+ }
3031
+ },
3032
+ "node_modules/@jest/types": {
3033
+ "version": "27.5.1",
3034
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
3035
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
3036
+ "dependencies": {
3037
+ "@types/istanbul-lib-coverage": "^2.0.0",
3038
+ "@types/istanbul-reports": "^3.0.0",
3039
+ "@types/node": "*",
3040
+ "@types/yargs": "^16.0.0",
3041
+ "chalk": "^4.0.0"
3042
+ },
3043
+ "engines": {
3044
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
3045
+ }
3046
+ },
3047
+ "node_modules/@jridgewell/gen-mapping": {
3048
+ "version": "0.3.5",
3049
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
3050
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
3051
+ "dependencies": {
3052
+ "@jridgewell/set-array": "^1.2.1",
3053
+ "@jridgewell/sourcemap-codec": "^1.4.10",
3054
+ "@jridgewell/trace-mapping": "^0.3.24"
3055
+ },
3056
+ "engines": {
3057
+ "node": ">=6.0.0"
3058
+ }
3059
+ },
3060
+ "node_modules/@jridgewell/resolve-uri": {
3061
+ "version": "3.1.2",
3062
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
3063
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
3064
+ "engines": {
3065
+ "node": ">=6.0.0"
3066
+ }
3067
+ },
3068
+ "node_modules/@jridgewell/set-array": {
3069
+ "version": "1.2.1",
3070
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
3071
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
3072
+ "engines": {
3073
+ "node": ">=6.0.0"
3074
+ }
3075
+ },
3076
+ "node_modules/@jridgewell/source-map": {
3077
+ "version": "0.3.6",
3078
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
3079
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
3080
+ "dependencies": {
3081
+ "@jridgewell/gen-mapping": "^0.3.5",
3082
+ "@jridgewell/trace-mapping": "^0.3.25"
3083
+ }
3084
+ },
3085
+ "node_modules/@jridgewell/sourcemap-codec": {
3086
+ "version": "1.5.0",
3087
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
3088
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="
3089
+ },
3090
+ "node_modules/@jridgewell/trace-mapping": {
3091
+ "version": "0.3.25",
3092
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
3093
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
3094
+ "dependencies": {
3095
+ "@jridgewell/resolve-uri": "^3.1.0",
3096
+ "@jridgewell/sourcemap-codec": "^1.4.14"
3097
+ }
3098
+ },
3099
+ "node_modules/@leichtgewicht/ip-codec": {
3100
+ "version": "2.0.5",
3101
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
3102
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw=="
3103
+ },
3104
+ "node_modules/@next/env": {
3105
+ "version": "14.2.5",
3106
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz",
3107
+ "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA=="
3108
+ },
3109
+ "node_modules/@next/eslint-plugin-next": {
3110
+ "version": "14.1.0",
3111
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.0.tgz",
3112
+ "integrity": "sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==",
3113
+ "dependencies": {
3114
+ "glob": "10.3.10"
3115
+ }
3116
+ },
3117
+ "node_modules/@next/swc-darwin-arm64": {
3118
+ "version": "14.2.5",
3119
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz",
3120
+ "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==",
3121
+ "cpu": [
3122
+ "arm64"
3123
+ ],
3124
+ "optional": true,
3125
+ "os": [
3126
+ "darwin"
3127
+ ],
3128
+ "engines": {
3129
+ "node": ">= 10"
3130
+ }
3131
+ },
3132
+ "node_modules/@next/swc-darwin-x64": {
3133
+ "version": "14.2.5",
3134
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz",
3135
+ "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==",
3136
+ "cpu": [
3137
+ "x64"
3138
+ ],
3139
+ "optional": true,
3140
+ "os": [
3141
+ "darwin"
3142
+ ],
3143
+ "engines": {
3144
+ "node": ">= 10"
3145
+ }
3146
+ },
3147
+ "node_modules/@next/swc-linux-arm64-gnu": {
3148
+ "version": "14.2.5",
3149
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz",
3150
+ "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==",
3151
+ "cpu": [
3152
+ "arm64"
3153
+ ],
3154
+ "optional": true,
3155
+ "os": [
3156
+ "linux"
3157
+ ],
3158
+ "engines": {
3159
+ "node": ">= 10"
3160
+ }
3161
+ },
3162
+ "node_modules/@next/swc-linux-arm64-musl": {
3163
+ "version": "14.2.5",
3164
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz",
3165
+ "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==",
3166
+ "cpu": [
3167
+ "arm64"
3168
+ ],
3169
+ "optional": true,
3170
+ "os": [
3171
+ "linux"
3172
+ ],
3173
+ "engines": {
3174
+ "node": ">= 10"
3175
+ }
3176
+ },
3177
+ "node_modules/@next/swc-linux-x64-gnu": {
3178
+ "version": "14.2.5",
3179
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz",
3180
+ "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==",
3181
+ "cpu": [
3182
+ "x64"
3183
+ ],
3184
+ "optional": true,
3185
+ "os": [
3186
+ "linux"
3187
+ ],
3188
+ "engines": {
3189
+ "node": ">= 10"
3190
+ }
3191
+ },
3192
+ "node_modules/@next/swc-linux-x64-musl": {
3193
+ "version": "14.2.5",
3194
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz",
3195
+ "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==",
3196
+ "cpu": [
3197
+ "x64"
3198
+ ],
3199
+ "optional": true,
3200
+ "os": [
3201
+ "linux"
3202
+ ],
3203
+ "engines": {
3204
+ "node": ">= 10"
3205
+ }
3206
+ },
3207
+ "node_modules/@next/swc-win32-arm64-msvc": {
3208
+ "version": "14.2.5",
3209
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz",
3210
+ "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==",
3211
+ "cpu": [
3212
+ "arm64"
3213
+ ],
3214
+ "optional": true,
3215
+ "os": [
3216
+ "win32"
3217
+ ],
3218
+ "engines": {
3219
+ "node": ">= 10"
3220
+ }
3221
+ },
3222
+ "node_modules/@next/swc-win32-ia32-msvc": {
3223
+ "version": "14.2.5",
3224
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz",
3225
+ "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==",
3226
+ "cpu": [
3227
+ "ia32"
3228
+ ],
3229
+ "optional": true,
3230
+ "os": [
3231
+ "win32"
3232
+ ],
3233
+ "engines": {
3234
+ "node": ">= 10"
3235
+ }
3236
+ },
3237
+ "node_modules/@next/swc-win32-x64-msvc": {
3238
+ "version": "14.2.5",
3239
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz",
3240
+ "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==",
3241
+ "cpu": [
3242
+ "x64"
3243
+ ],
3244
+ "optional": true,
3245
+ "os": [
3246
+ "win32"
3247
+ ],
3248
+ "engines": {
3249
+ "node": ">= 10"
3250
+ }
3251
+ },
3252
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": {
3253
+ "version": "5.1.1-v1",
3254
+ "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz",
3255
+ "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==",
3256
+ "dependencies": {
3257
+ "eslint-scope": "5.1.1"
3258
+ }
3259
+ },
3260
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": {
3261
+ "version": "5.1.1",
3262
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
3263
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
3264
+ "dependencies": {
3265
+ "esrecurse": "^4.3.0",
3266
+ "estraverse": "^4.1.1"
3267
+ },
3268
+ "engines": {
3269
+ "node": ">=8.0.0"
3270
+ }
3271
+ },
3272
+ "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": {
3273
+ "version": "4.3.0",
3274
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
3275
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
3276
+ "engines": {
3277
+ "node": ">=4.0"
3278
+ }
3279
+ },
3280
+ "node_modules/@nodelib/fs.scandir": {
3281
+ "version": "2.1.5",
3282
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
3283
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
3284
+ "dependencies": {
3285
+ "@nodelib/fs.stat": "2.0.5",
3286
+ "run-parallel": "^1.1.9"
3287
+ },
3288
+ "engines": {
3289
+ "node": ">= 8"
3290
+ }
3291
+ },
3292
+ "node_modules/@nodelib/fs.stat": {
3293
+ "version": "2.0.5",
3294
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
3295
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
3296
+ "engines": {
3297
+ "node": ">= 8"
3298
+ }
3299
+ },
3300
+ "node_modules/@nodelib/fs.walk": {
3301
+ "version": "1.2.8",
3302
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
3303
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
3304
+ "dependencies": {
3305
+ "@nodelib/fs.scandir": "2.1.5",
3306
+ "fastq": "^1.6.0"
3307
+ },
3308
+ "engines": {
3309
+ "node": ">= 8"
3310
+ }
3311
+ },
3312
+ "node_modules/@pkgjs/parseargs": {
3313
+ "version": "0.11.0",
3314
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
3315
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
3316
+ "optional": true,
3317
+ "engines": {
3318
+ "node": ">=14"
3319
+ }
3320
+ },
3321
+ "node_modules/@pmmmwh/react-refresh-webpack-plugin": {
3322
+ "version": "0.5.15",
3323
+ "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
3324
+ "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
3325
+ "dependencies": {
3326
+ "ansi-html": "^0.0.9",
3327
+ "core-js-pure": "^3.23.3",
3328
+ "error-stack-parser": "^2.0.6",
3329
+ "html-entities": "^2.1.0",
3330
+ "loader-utils": "^2.0.4",
3331
+ "schema-utils": "^4.2.0",
3332
+ "source-map": "^0.7.3"
3333
+ },
3334
+ "engines": {
3335
+ "node": ">= 10.13"
3336
+ },
3337
+ "peerDependencies": {
3338
+ "@types/webpack": "4.x || 5.x",
3339
+ "react-refresh": ">=0.10.0 <1.0.0",
3340
+ "sockjs-client": "^1.4.0",
3341
+ "type-fest": ">=0.17.0 <5.0.0",
3342
+ "webpack": ">=4.43.0 <6.0.0",
3343
+ "webpack-dev-server": "3.x || 4.x || 5.x",
3344
+ "webpack-hot-middleware": "2.x",
3345
+ "webpack-plugin-serve": "0.x || 1.x"
3346
+ },
3347
+ "peerDependenciesMeta": {
3348
+ "@types/webpack": {
3349
+ "optional": true
3350
+ },
3351
+ "sockjs-client": {
3352
+ "optional": true
3353
+ },
3354
+ "type-fest": {
3355
+ "optional": true
3356
+ },
3357
+ "webpack-dev-server": {
3358
+ "optional": true
3359
+ },
3360
+ "webpack-hot-middleware": {
3361
+ "optional": true
3362
+ },
3363
+ "webpack-plugin-serve": {
3364
+ "optional": true
3365
+ }
3366
+ }
3367
+ },
3368
+ "node_modules/@popperjs/core": {
3369
+ "version": "2.11.8",
3370
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz",
3371
+ "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==",
3372
+ "funding": {
3373
+ "type": "opencollective",
3374
+ "url": "https://opencollective.com/popperjs"
3375
+ }
3376
+ },
3377
+ "node_modules/@radix-ui/primitive": {
3378
+ "version": "1.1.0",
3379
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz",
3380
+ "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA=="
3381
+ },
3382
+ "node_modules/@radix-ui/react-arrow": {
3383
+ "version": "1.1.0",
3384
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz",
3385
+ "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==",
3386
+ "dependencies": {
3387
+ "@radix-ui/react-primitive": "2.0.0"
3388
+ },
3389
+ "peerDependencies": {
3390
+ "@types/react": "*",
3391
+ "@types/react-dom": "*",
3392
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3393
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3394
+ },
3395
+ "peerDependenciesMeta": {
3396
+ "@types/react": {
3397
+ "optional": true
3398
+ },
3399
+ "@types/react-dom": {
3400
+ "optional": true
3401
+ }
3402
+ }
3403
+ },
3404
+ "node_modules/@radix-ui/react-compose-refs": {
3405
+ "version": "1.1.0",
3406
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
3407
+ "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
3408
+ "peerDependencies": {
3409
+ "@types/react": "*",
3410
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3411
+ },
3412
+ "peerDependenciesMeta": {
3413
+ "@types/react": {
3414
+ "optional": true
3415
+ }
3416
+ }
3417
+ },
3418
+ "node_modules/@radix-ui/react-context": {
3419
+ "version": "1.1.0",
3420
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
3421
+ "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
3422
+ "peerDependencies": {
3423
+ "@types/react": "*",
3424
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3425
+ },
3426
+ "peerDependenciesMeta": {
3427
+ "@types/react": {
3428
+ "optional": true
3429
+ }
3430
+ }
3431
+ },
3432
+ "node_modules/@radix-ui/react-dismissable-layer": {
3433
+ "version": "1.1.0",
3434
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz",
3435
+ "integrity": "sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==",
3436
+ "dependencies": {
3437
+ "@radix-ui/primitive": "1.1.0",
3438
+ "@radix-ui/react-compose-refs": "1.1.0",
3439
+ "@radix-ui/react-primitive": "2.0.0",
3440
+ "@radix-ui/react-use-callback-ref": "1.1.0",
3441
+ "@radix-ui/react-use-escape-keydown": "1.1.0"
3442
+ },
3443
+ "peerDependencies": {
3444
+ "@types/react": "*",
3445
+ "@types/react-dom": "*",
3446
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3447
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3448
+ },
3449
+ "peerDependenciesMeta": {
3450
+ "@types/react": {
3451
+ "optional": true
3452
+ },
3453
+ "@types/react-dom": {
3454
+ "optional": true
3455
+ }
3456
+ }
3457
+ },
3458
+ "node_modules/@radix-ui/react-id": {
3459
+ "version": "1.1.0",
3460
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",
3461
+ "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",
3462
+ "dependencies": {
3463
+ "@radix-ui/react-use-layout-effect": "1.1.0"
3464
+ },
3465
+ "peerDependencies": {
3466
+ "@types/react": "*",
3467
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3468
+ },
3469
+ "peerDependenciesMeta": {
3470
+ "@types/react": {
3471
+ "optional": true
3472
+ }
3473
+ }
3474
+ },
3475
+ "node_modules/@radix-ui/react-popper": {
3476
+ "version": "1.2.0",
3477
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz",
3478
+ "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==",
3479
+ "dependencies": {
3480
+ "@floating-ui/react-dom": "^2.0.0",
3481
+ "@radix-ui/react-arrow": "1.1.0",
3482
+ "@radix-ui/react-compose-refs": "1.1.0",
3483
+ "@radix-ui/react-context": "1.1.0",
3484
+ "@radix-ui/react-primitive": "2.0.0",
3485
+ "@radix-ui/react-use-callback-ref": "1.1.0",
3486
+ "@radix-ui/react-use-layout-effect": "1.1.0",
3487
+ "@radix-ui/react-use-rect": "1.1.0",
3488
+ "@radix-ui/react-use-size": "1.1.0",
3489
+ "@radix-ui/rect": "1.1.0"
3490
+ },
3491
+ "peerDependencies": {
3492
+ "@types/react": "*",
3493
+ "@types/react-dom": "*",
3494
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3495
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3496
+ },
3497
+ "peerDependenciesMeta": {
3498
+ "@types/react": {
3499
+ "optional": true
3500
+ },
3501
+ "@types/react-dom": {
3502
+ "optional": true
3503
+ }
3504
+ }
3505
+ },
3506
+ "node_modules/@radix-ui/react-portal": {
3507
+ "version": "1.1.1",
3508
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.1.tgz",
3509
+ "integrity": "sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==",
3510
+ "dependencies": {
3511
+ "@radix-ui/react-primitive": "2.0.0",
3512
+ "@radix-ui/react-use-layout-effect": "1.1.0"
3513
+ },
3514
+ "peerDependencies": {
3515
+ "@types/react": "*",
3516
+ "@types/react-dom": "*",
3517
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3518
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3519
+ },
3520
+ "peerDependenciesMeta": {
3521
+ "@types/react": {
3522
+ "optional": true
3523
+ },
3524
+ "@types/react-dom": {
3525
+ "optional": true
3526
+ }
3527
+ }
3528
+ },
3529
+ "node_modules/@radix-ui/react-presence": {
3530
+ "version": "1.1.0",
3531
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.0.tgz",
3532
+ "integrity": "sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==",
3533
+ "dependencies": {
3534
+ "@radix-ui/react-compose-refs": "1.1.0",
3535
+ "@radix-ui/react-use-layout-effect": "1.1.0"
3536
+ },
3537
+ "peerDependencies": {
3538
+ "@types/react": "*",
3539
+ "@types/react-dom": "*",
3540
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3541
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3542
+ },
3543
+ "peerDependenciesMeta": {
3544
+ "@types/react": {
3545
+ "optional": true
3546
+ },
3547
+ "@types/react-dom": {
3548
+ "optional": true
3549
+ }
3550
+ }
3551
+ },
3552
+ "node_modules/@radix-ui/react-primitive": {
3553
+ "version": "2.0.0",
3554
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz",
3555
+ "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==",
3556
+ "dependencies": {
3557
+ "@radix-ui/react-slot": "1.1.0"
3558
+ },
3559
+ "peerDependencies": {
3560
+ "@types/react": "*",
3561
+ "@types/react-dom": "*",
3562
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3563
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3564
+ },
3565
+ "peerDependenciesMeta": {
3566
+ "@types/react": {
3567
+ "optional": true
3568
+ },
3569
+ "@types/react-dom": {
3570
+ "optional": true
3571
+ }
3572
+ }
3573
+ },
3574
+ "node_modules/@radix-ui/react-slot": {
3575
+ "version": "1.1.0",
3576
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
3577
+ "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
3578
+ "dependencies": {
3579
+ "@radix-ui/react-compose-refs": "1.1.0"
3580
+ },
3581
+ "peerDependencies": {
3582
+ "@types/react": "*",
3583
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3584
+ },
3585
+ "peerDependenciesMeta": {
3586
+ "@types/react": {
3587
+ "optional": true
3588
+ }
3589
+ }
3590
+ },
3591
+ "node_modules/@radix-ui/react-tooltip": {
3592
+ "version": "1.1.2",
3593
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.2.tgz",
3594
+ "integrity": "sha512-9XRsLwe6Yb9B/tlnYCPVUd/TFS4J7HuOZW345DCeC6vKIxQGMZdx21RK4VoZauPD5frgkXTYVS5y90L+3YBn4w==",
3595
+ "dependencies": {
3596
+ "@radix-ui/primitive": "1.1.0",
3597
+ "@radix-ui/react-compose-refs": "1.1.0",
3598
+ "@radix-ui/react-context": "1.1.0",
3599
+ "@radix-ui/react-dismissable-layer": "1.1.0",
3600
+ "@radix-ui/react-id": "1.1.0",
3601
+ "@radix-ui/react-popper": "1.2.0",
3602
+ "@radix-ui/react-portal": "1.1.1",
3603
+ "@radix-ui/react-presence": "1.1.0",
3604
+ "@radix-ui/react-primitive": "2.0.0",
3605
+ "@radix-ui/react-slot": "1.1.0",
3606
+ "@radix-ui/react-use-controllable-state": "1.1.0",
3607
+ "@radix-ui/react-visually-hidden": "1.1.0"
3608
+ },
3609
+ "peerDependencies": {
3610
+ "@types/react": "*",
3611
+ "@types/react-dom": "*",
3612
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3613
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3614
+ },
3615
+ "peerDependenciesMeta": {
3616
+ "@types/react": {
3617
+ "optional": true
3618
+ },
3619
+ "@types/react-dom": {
3620
+ "optional": true
3621
+ }
3622
+ }
3623
+ },
3624
+ "node_modules/@radix-ui/react-use-callback-ref": {
3625
+ "version": "1.1.0",
3626
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
3627
+ "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",
3628
+ "peerDependencies": {
3629
+ "@types/react": "*",
3630
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3631
+ },
3632
+ "peerDependenciesMeta": {
3633
+ "@types/react": {
3634
+ "optional": true
3635
+ }
3636
+ }
3637
+ },
3638
+ "node_modules/@radix-ui/react-use-controllable-state": {
3639
+ "version": "1.1.0",
3640
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",
3641
+ "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",
3642
+ "dependencies": {
3643
+ "@radix-ui/react-use-callback-ref": "1.1.0"
3644
+ },
3645
+ "peerDependencies": {
3646
+ "@types/react": "*",
3647
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3648
+ },
3649
+ "peerDependenciesMeta": {
3650
+ "@types/react": {
3651
+ "optional": true
3652
+ }
3653
+ }
3654
+ },
3655
+ "node_modules/@radix-ui/react-use-escape-keydown": {
3656
+ "version": "1.1.0",
3657
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
3658
+ "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
3659
+ "dependencies": {
3660
+ "@radix-ui/react-use-callback-ref": "1.1.0"
3661
+ },
3662
+ "peerDependencies": {
3663
+ "@types/react": "*",
3664
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3665
+ },
3666
+ "peerDependenciesMeta": {
3667
+ "@types/react": {
3668
+ "optional": true
3669
+ }
3670
+ }
3671
+ },
3672
+ "node_modules/@radix-ui/react-use-layout-effect": {
3673
+ "version": "1.1.0",
3674
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
3675
+ "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
3676
+ "peerDependencies": {
3677
+ "@types/react": "*",
3678
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3679
+ },
3680
+ "peerDependenciesMeta": {
3681
+ "@types/react": {
3682
+ "optional": true
3683
+ }
3684
+ }
3685
+ },
3686
+ "node_modules/@radix-ui/react-use-rect": {
3687
+ "version": "1.1.0",
3688
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
3689
+ "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
3690
+ "dependencies": {
3691
+ "@radix-ui/rect": "1.1.0"
3692
+ },
3693
+ "peerDependencies": {
3694
+ "@types/react": "*",
3695
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3696
+ },
3697
+ "peerDependenciesMeta": {
3698
+ "@types/react": {
3699
+ "optional": true
3700
+ }
3701
+ }
3702
+ },
3703
+ "node_modules/@radix-ui/react-use-size": {
3704
+ "version": "1.1.0",
3705
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
3706
+ "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
3707
+ "dependencies": {
3708
+ "@radix-ui/react-use-layout-effect": "1.1.0"
3709
+ },
3710
+ "peerDependencies": {
3711
+ "@types/react": "*",
3712
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3713
+ },
3714
+ "peerDependenciesMeta": {
3715
+ "@types/react": {
3716
+ "optional": true
3717
+ }
3718
+ }
3719
+ },
3720
+ "node_modules/@radix-ui/react-visually-hidden": {
3721
+ "version": "1.1.0",
3722
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz",
3723
+ "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==",
3724
+ "dependencies": {
3725
+ "@radix-ui/react-primitive": "2.0.0"
3726
+ },
3727
+ "peerDependencies": {
3728
+ "@types/react": "*",
3729
+ "@types/react-dom": "*",
3730
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
3731
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
3732
+ },
3733
+ "peerDependenciesMeta": {
3734
+ "@types/react": {
3735
+ "optional": true
3736
+ },
3737
+ "@types/react-dom": {
3738
+ "optional": true
3739
+ }
3740
+ }
3741
+ },
3742
+ "node_modules/@radix-ui/rect": {
3743
+ "version": "1.1.0",
3744
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
3745
+ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg=="
3746
+ },
3747
+ "node_modules/@react-aria/ssr": {
3748
+ "version": "3.9.5",
3749
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.5.tgz",
3750
+ "integrity": "sha512-xEwGKoysu+oXulibNUSkXf8itW0npHHTa6c4AyYeZIJyRoegeteYuFpZUBPtIDE8RfHdNsSmE1ssOkxRnwbkuQ==",
3751
+ "dependencies": {
3752
+ "@swc/helpers": "^0.5.0"
3753
+ },
3754
+ "engines": {
3755
+ "node": ">= 12"
3756
+ },
3757
+ "peerDependencies": {
3758
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0"
3759
+ }
3760
+ },
3761
+ "node_modules/@react-dnd/asap": {
3762
+ "version": "5.0.2",
3763
+ "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz",
3764
+ "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A=="
3765
+ },
3766
+ "node_modules/@react-dnd/invariant": {
3767
+ "version": "4.0.2",
3768
+ "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz",
3769
+ "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw=="
3770
+ },
3771
+ "node_modules/@react-dnd/shallowequal": {
3772
+ "version": "4.0.2",
3773
+ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz",
3774
+ "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA=="
3775
+ },
3776
+ "node_modules/@remix-run/router": {
3777
+ "version": "1.18.0",
3778
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz",
3779
+ "integrity": "sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==",
3780
+ "engines": {
3781
+ "node": ">=14.0.0"
3782
+ }
3783
+ },
3784
+ "node_modules/@restart/hooks": {
3785
+ "version": "0.4.16",
3786
+ "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz",
3787
+ "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==",
3788
+ "dependencies": {
3789
+ "dequal": "^2.0.3"
3790
+ },
3791
+ "peerDependencies": {
3792
+ "react": ">=16.8.0"
3793
+ }
3794
+ },
3795
+ "node_modules/@restart/ui": {
3796
+ "version": "1.6.9",
3797
+ "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.6.9.tgz",
3798
+ "integrity": "sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==",
3799
+ "dependencies": {
3800
+ "@babel/runtime": "^7.21.0",
3801
+ "@popperjs/core": "^2.11.6",
3802
+ "@react-aria/ssr": "^3.5.0",
3803
+ "@restart/hooks": "^0.4.9",
3804
+ "@types/warning": "^3.0.0",
3805
+ "dequal": "^2.0.3",
3806
+ "dom-helpers": "^5.2.0",
3807
+ "uncontrollable": "^8.0.1",
3808
+ "warning": "^4.0.3"
3809
+ },
3810
+ "peerDependencies": {
3811
+ "react": ">=16.14.0",
3812
+ "react-dom": ">=16.14.0"
3813
+ }
3814
+ },
3815
+ "node_modules/@restart/ui/node_modules/uncontrollable": {
3816
+ "version": "8.0.4",
3817
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz",
3818
+ "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==",
3819
+ "peerDependencies": {
3820
+ "react": ">=16.14.0"
3821
+ }
3822
+ },
3823
+ "node_modules/@rollup/plugin-babel": {
3824
+ "version": "5.3.1",
3825
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
3826
+ "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
3827
+ "dependencies": {
3828
+ "@babel/helper-module-imports": "^7.10.4",
3829
+ "@rollup/pluginutils": "^3.1.0"
3830
+ },
3831
+ "engines": {
3832
+ "node": ">= 10.0.0"
3833
+ },
3834
+ "peerDependencies": {
3835
+ "@babel/core": "^7.0.0",
3836
+ "@types/babel__core": "^7.1.9",
3837
+ "rollup": "^1.20.0||^2.0.0"
3838
+ },
3839
+ "peerDependenciesMeta": {
3840
+ "@types/babel__core": {
3841
+ "optional": true
3842
+ }
3843
+ }
3844
+ },
3845
+ "node_modules/@rollup/plugin-node-resolve": {
3846
+ "version": "11.2.1",
3847
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz",
3848
+ "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==",
3849
+ "dependencies": {
3850
+ "@rollup/pluginutils": "^3.1.0",
3851
+ "@types/resolve": "1.17.1",
3852
+ "builtin-modules": "^3.1.0",
3853
+ "deepmerge": "^4.2.2",
3854
+ "is-module": "^1.0.0",
3855
+ "resolve": "^1.19.0"
3856
+ },
3857
+ "engines": {
3858
+ "node": ">= 10.0.0"
3859
+ },
3860
+ "peerDependencies": {
3861
+ "rollup": "^1.20.0||^2.0.0"
3862
+ }
3863
+ },
3864
+ "node_modules/@rollup/plugin-replace": {
3865
+ "version": "2.4.2",
3866
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
3867
+ "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==",
3868
+ "dependencies": {
3869
+ "@rollup/pluginutils": "^3.1.0",
3870
+ "magic-string": "^0.25.7"
3871
+ },
3872
+ "peerDependencies": {
3873
+ "rollup": "^1.20.0 || ^2.0.0"
3874
+ }
3875
+ },
3876
+ "node_modules/@rollup/pluginutils": {
3877
+ "version": "3.1.0",
3878
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
3879
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
3880
+ "dependencies": {
3881
+ "@types/estree": "0.0.39",
3882
+ "estree-walker": "^1.0.1",
3883
+ "picomatch": "^2.2.2"
3884
+ },
3885
+ "engines": {
3886
+ "node": ">= 8.0.0"
3887
+ },
3888
+ "peerDependencies": {
3889
+ "rollup": "^1.20.0||^2.0.0"
3890
+ }
3891
+ },
3892
+ "node_modules/@rollup/pluginutils/node_modules/@types/estree": {
3893
+ "version": "0.0.39",
3894
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
3895
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw=="
3896
+ },
3897
+ "node_modules/@rushstack/eslint-patch": {
3898
+ "version": "1.10.4",
3899
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz",
3900
+ "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA=="
3901
+ },
3902
+ "node_modules/@sentry-internal/feedback": {
3903
+ "version": "7.118.0",
3904
+ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.118.0.tgz",
3905
+ "integrity": "sha512-IYOGRcqIqKJJpMwBBv+0JTu0FPpXnakJYvOx/XEa/SNyF5+l7b9gGEjUVWh1ok50kTLW/XPnpnXNAGQcoKHg+w==",
3906
+ "dependencies": {
3907
+ "@sentry/core": "7.118.0",
3908
+ "@sentry/types": "7.118.0",
3909
+ "@sentry/utils": "7.118.0"
3910
+ },
3911
+ "engines": {
3912
+ "node": ">=12"
3913
+ }
3914
+ },
3915
+ "node_modules/@sentry-internal/replay-canvas": {
3916
+ "version": "7.118.0",
3917
+ "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-7.118.0.tgz",
3918
+ "integrity": "sha512-XxHlCClvrxmVKpiZetFYyiBaPQNiojoBGFFVgbbWBIAPc+fWeLJ2BMoQEBjn/0NA/8u8T6lErK5YQo/eIx9+XQ==",
3919
+ "dependencies": {
3920
+ "@sentry/core": "7.118.0",
3921
+ "@sentry/replay": "7.118.0",
3922
+ "@sentry/types": "7.118.0",
3923
+ "@sentry/utils": "7.118.0"
3924
+ },
3925
+ "engines": {
3926
+ "node": ">=12"
3927
+ }
3928
+ },
3929
+ "node_modules/@sentry-internal/tracing": {
3930
+ "version": "7.118.0",
3931
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.118.0.tgz",
3932
+ "integrity": "sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==",
3933
+ "dependencies": {
3934
+ "@sentry/core": "7.118.0",
3935
+ "@sentry/types": "7.118.0",
3936
+ "@sentry/utils": "7.118.0"
3937
+ },
3938
+ "engines": {
3939
+ "node": ">=8"
3940
+ }
3941
+ },
3942
+ "node_modules/@sentry/browser": {
3943
+ "version": "7.118.0",
3944
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.118.0.tgz",
3945
+ "integrity": "sha512-8onDOFV1VLEoBuqA5yaJeR3FF1JNuxr5C7p1oN3OwY724iTVqQnOLmZKZaSnHV3RkY67wKDGQkQIie14sc+42g==",
3946
+ "dependencies": {
3947
+ "@sentry-internal/feedback": "7.118.0",
3948
+ "@sentry-internal/replay-canvas": "7.118.0",
3949
+ "@sentry-internal/tracing": "7.118.0",
3950
+ "@sentry/core": "7.118.0",
3951
+ "@sentry/integrations": "7.118.0",
3952
+ "@sentry/replay": "7.118.0",
3953
+ "@sentry/types": "7.118.0",
3954
+ "@sentry/utils": "7.118.0"
3955
+ },
3956
+ "engines": {
3957
+ "node": ">=8"
3958
+ }
3959
+ },
3960
+ "node_modules/@sentry/core": {
3961
+ "version": "7.118.0",
3962
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.118.0.tgz",
3963
+ "integrity": "sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==",
3964
+ "dependencies": {
3965
+ "@sentry/types": "7.118.0",
3966
+ "@sentry/utils": "7.118.0"
3967
+ },
3968
+ "engines": {
3969
+ "node": ">=8"
3970
+ }
3971
+ },
3972
+ "node_modules/@sentry/integrations": {
3973
+ "version": "7.118.0",
3974
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.118.0.tgz",
3975
+ "integrity": "sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==",
3976
+ "dependencies": {
3977
+ "@sentry/core": "7.118.0",
3978
+ "@sentry/types": "7.118.0",
3979
+ "@sentry/utils": "7.118.0",
3980
+ "localforage": "^1.8.1"
3981
+ },
3982
+ "engines": {
3983
+ "node": ">=8"
3984
+ }
3985
+ },
3986
+ "node_modules/@sentry/react": {
3987
+ "version": "7.118.0",
3988
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.118.0.tgz",
3989
+ "integrity": "sha512-oEYe5TGk8S7YzPsFqDf4xDHjfzs35/QFE+dou3S2d24OYpso8Tq4C5f1VzYmnOOyy85T7JNicYLSo0n0NSJvQg==",
3990
+ "dependencies": {
3991
+ "@sentry/browser": "7.118.0",
3992
+ "@sentry/core": "7.118.0",
3993
+ "@sentry/types": "7.118.0",
3994
+ "@sentry/utils": "7.118.0",
3995
+ "hoist-non-react-statics": "^3.3.2"
3996
+ },
3997
+ "engines": {
3998
+ "node": ">=8"
3999
+ },
4000
+ "peerDependencies": {
4001
+ "react": "15.x || 16.x || 17.x || 18.x"
4002
+ }
4003
+ },
4004
+ "node_modules/@sentry/replay": {
4005
+ "version": "7.118.0",
4006
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.118.0.tgz",
4007
+ "integrity": "sha512-boQfCL+1L/tSZ9Huwi00+VtU+Ih1Lcg8HtxBuAsBCJR9pQgUL5jp7ECYdTeeHyCh/RJO7JqV1CEoGTgohe10mA==",
4008
+ "dependencies": {
4009
+ "@sentry-internal/tracing": "7.118.0",
4010
+ "@sentry/core": "7.118.0",
4011
+ "@sentry/types": "7.118.0",
4012
+ "@sentry/utils": "7.118.0"
4013
+ },
4014
+ "engines": {
4015
+ "node": ">=12"
4016
+ }
4017
+ },
4018
+ "node_modules/@sentry/tracing": {
4019
+ "version": "7.114.0",
4020
+ "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.114.0.tgz",
4021
+ "integrity": "sha512-eldEYGADReZ4jWdN5u35yxLUSTOvjsiZAYd4KBEpf+Ii65n7g/kYOKAjNl7tHbrEG1EsMW4nDPWStUMk1w+tfg==",
4022
+ "dependencies": {
4023
+ "@sentry-internal/tracing": "7.114.0"
4024
+ },
4025
+ "engines": {
4026
+ "node": ">=8"
4027
+ }
4028
+ },
4029
+ "node_modules/@sentry/tracing/node_modules/@sentry-internal/tracing": {
4030
+ "version": "7.114.0",
4031
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.114.0.tgz",
4032
+ "integrity": "sha512-dOuvfJN7G+3YqLlUY4HIjyWHaRP8vbOgF+OsE5w2l7ZEn1rMAaUbPntAR8AF9GBA6j2zWNoSo8e7GjbJxVofSg==",
4033
+ "dependencies": {
4034
+ "@sentry/core": "7.114.0",
4035
+ "@sentry/types": "7.114.0",
4036
+ "@sentry/utils": "7.114.0"
4037
+ },
4038
+ "engines": {
4039
+ "node": ">=8"
4040
+ }
4041
+ },
4042
+ "node_modules/@sentry/tracing/node_modules/@sentry/core": {
4043
+ "version": "7.114.0",
4044
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz",
4045
+ "integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==",
4046
+ "dependencies": {
4047
+ "@sentry/types": "7.114.0",
4048
+ "@sentry/utils": "7.114.0"
4049
+ },
4050
+ "engines": {
4051
+ "node": ">=8"
4052
+ }
4053
+ },
4054
+ "node_modules/@sentry/tracing/node_modules/@sentry/types": {
4055
+ "version": "7.114.0",
4056
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz",
4057
+ "integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w==",
4058
+ "engines": {
4059
+ "node": ">=8"
4060
+ }
4061
+ },
4062
+ "node_modules/@sentry/tracing/node_modules/@sentry/utils": {
4063
+ "version": "7.114.0",
4064
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz",
4065
+ "integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==",
4066
+ "dependencies": {
4067
+ "@sentry/types": "7.114.0"
4068
+ },
4069
+ "engines": {
4070
+ "node": ">=8"
4071
+ }
4072
+ },
4073
+ "node_modules/@sentry/types": {
4074
+ "version": "7.118.0",
4075
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.118.0.tgz",
4076
+ "integrity": "sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==",
4077
+ "engines": {
4078
+ "node": ">=8"
4079
+ }
4080
+ },
4081
+ "node_modules/@sentry/utils": {
4082
+ "version": "7.118.0",
4083
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.118.0.tgz",
4084
+ "integrity": "sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==",
4085
+ "dependencies": {
4086
+ "@sentry/types": "7.118.0"
4087
+ },
4088
+ "engines": {
4089
+ "node": ">=8"
4090
+ }
4091
+ },
4092
+ "node_modules/@sinclair/typebox": {
4093
+ "version": "0.24.51",
4094
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz",
4095
+ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA=="
4096
+ },
4097
+ "node_modules/@sinonjs/commons": {
4098
+ "version": "1.8.6",
4099
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz",
4100
+ "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==",
4101
+ "dependencies": {
4102
+ "type-detect": "4.0.8"
4103
+ }
4104
+ },
4105
+ "node_modules/@sinonjs/fake-timers": {
4106
+ "version": "8.1.0",
4107
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz",
4108
+ "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==",
4109
+ "dependencies": {
4110
+ "@sinonjs/commons": "^1.7.0"
4111
+ }
4112
+ },
4113
+ "node_modules/@surma/rollup-plugin-off-main-thread": {
4114
+ "version": "2.2.3",
4115
+ "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz",
4116
+ "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==",
4117
+ "dependencies": {
4118
+ "ejs": "^3.1.6",
4119
+ "json5": "^2.2.0",
4120
+ "magic-string": "^0.25.0",
4121
+ "string.prototype.matchall": "^4.0.6"
4122
+ }
4123
+ },
4124
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
4125
+ "version": "5.4.0",
4126
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz",
4127
+ "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==",
4128
+ "engines": {
4129
+ "node": ">=10"
4130
+ },
4131
+ "funding": {
4132
+ "type": "github",
4133
+ "url": "https://github.com/sponsors/gregberge"
4134
+ }
4135
+ },
4136
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
4137
+ "version": "5.4.0",
4138
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz",
4139
+ "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==",
4140
+ "engines": {
4141
+ "node": ">=10"
4142
+ },
4143
+ "funding": {
4144
+ "type": "github",
4145
+ "url": "https://github.com/sponsors/gregberge"
4146
+ }
4147
+ },
4148
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
4149
+ "version": "5.0.1",
4150
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz",
4151
+ "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==",
4152
+ "engines": {
4153
+ "node": ">=10"
4154
+ },
4155
+ "funding": {
4156
+ "type": "github",
4157
+ "url": "https://github.com/sponsors/gregberge"
4158
+ }
4159
+ },
4160
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
4161
+ "version": "5.0.1",
4162
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz",
4163
+ "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==",
4164
+ "engines": {
4165
+ "node": ">=10"
4166
+ },
4167
+ "funding": {
4168
+ "type": "github",
4169
+ "url": "https://github.com/sponsors/gregberge"
4170
+ }
4171
+ },
4172
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
4173
+ "version": "5.4.0",
4174
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz",
4175
+ "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==",
4176
+ "engines": {
4177
+ "node": ">=10"
4178
+ },
4179
+ "funding": {
4180
+ "type": "github",
4181
+ "url": "https://github.com/sponsors/gregberge"
4182
+ }
4183
+ },
4184
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
4185
+ "version": "5.4.0",
4186
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz",
4187
+ "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==",
4188
+ "engines": {
4189
+ "node": ">=10"
4190
+ },
4191
+ "funding": {
4192
+ "type": "github",
4193
+ "url": "https://github.com/sponsors/gregberge"
4194
+ }
4195
+ },
4196
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
4197
+ "version": "5.4.0",
4198
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz",
4199
+ "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==",
4200
+ "engines": {
4201
+ "node": ">=10"
4202
+ },
4203
+ "funding": {
4204
+ "type": "github",
4205
+ "url": "https://github.com/sponsors/gregberge"
4206
+ }
4207
+ },
4208
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
4209
+ "version": "5.5.0",
4210
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz",
4211
+ "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==",
4212
+ "engines": {
4213
+ "node": ">=10"
4214
+ },
4215
+ "funding": {
4216
+ "type": "github",
4217
+ "url": "https://github.com/sponsors/gregberge"
4218
+ }
4219
+ },
4220
+ "node_modules/@svgr/babel-preset": {
4221
+ "version": "5.5.0",
4222
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz",
4223
+ "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==",
4224
+ "dependencies": {
4225
+ "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0",
4226
+ "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0",
4227
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1",
4228
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1",
4229
+ "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0",
4230
+ "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0",
4231
+ "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0",
4232
+ "@svgr/babel-plugin-transform-svg-component": "^5.5.0"
4233
+ },
4234
+ "engines": {
4235
+ "node": ">=10"
4236
+ },
4237
+ "funding": {
4238
+ "type": "github",
4239
+ "url": "https://github.com/sponsors/gregberge"
4240
+ }
4241
+ },
4242
+ "node_modules/@svgr/core": {
4243
+ "version": "5.5.0",
4244
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz",
4245
+ "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==",
4246
+ "dependencies": {
4247
+ "@svgr/plugin-jsx": "^5.5.0",
4248
+ "camelcase": "^6.2.0",
4249
+ "cosmiconfig": "^7.0.0"
4250
+ },
4251
+ "engines": {
4252
+ "node": ">=10"
4253
+ },
4254
+ "funding": {
4255
+ "type": "github",
4256
+ "url": "https://github.com/sponsors/gregberge"
4257
+ }
4258
+ },
4259
+ "node_modules/@svgr/hast-util-to-babel-ast": {
4260
+ "version": "5.5.0",
4261
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz",
4262
+ "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==",
4263
+ "dependencies": {
4264
+ "@babel/types": "^7.12.6"
4265
+ },
4266
+ "engines": {
4267
+ "node": ">=10"
4268
+ },
4269
+ "funding": {
4270
+ "type": "github",
4271
+ "url": "https://github.com/sponsors/gregberge"
4272
+ }
4273
+ },
4274
+ "node_modules/@svgr/plugin-jsx": {
4275
+ "version": "5.5.0",
4276
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz",
4277
+ "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==",
4278
+ "dependencies": {
4279
+ "@babel/core": "^7.12.3",
4280
+ "@svgr/babel-preset": "^5.5.0",
4281
+ "@svgr/hast-util-to-babel-ast": "^5.5.0",
4282
+ "svg-parser": "^2.0.2"
4283
+ },
4284
+ "engines": {
4285
+ "node": ">=10"
4286
+ },
4287
+ "funding": {
4288
+ "type": "github",
4289
+ "url": "https://github.com/sponsors/gregberge"
4290
+ }
4291
+ },
4292
+ "node_modules/@svgr/plugin-svgo": {
4293
+ "version": "5.5.0",
4294
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz",
4295
+ "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==",
4296
+ "dependencies": {
4297
+ "cosmiconfig": "^7.0.0",
4298
+ "deepmerge": "^4.2.2",
4299
+ "svgo": "^1.2.2"
4300
+ },
4301
+ "engines": {
4302
+ "node": ">=10"
4303
+ },
4304
+ "funding": {
4305
+ "type": "github",
4306
+ "url": "https://github.com/sponsors/gregberge"
4307
+ }
4308
+ },
4309
+ "node_modules/@svgr/webpack": {
4310
+ "version": "5.5.0",
4311
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz",
4312
+ "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==",
4313
+ "dependencies": {
4314
+ "@babel/core": "^7.12.3",
4315
+ "@babel/plugin-transform-react-constant-elements": "^7.12.1",
4316
+ "@babel/preset-env": "^7.12.1",
4317
+ "@babel/preset-react": "^7.12.5",
4318
+ "@svgr/core": "^5.5.0",
4319
+ "@svgr/plugin-jsx": "^5.5.0",
4320
+ "@svgr/plugin-svgo": "^5.5.0",
4321
+ "loader-utils": "^2.0.0"
4322
+ },
4323
+ "engines": {
4324
+ "node": ">=10"
4325
+ },
4326
+ "funding": {
4327
+ "type": "github",
4328
+ "url": "https://github.com/sponsors/gregberge"
4329
+ }
4330
+ },
4331
+ "node_modules/@swc/counter": {
4332
+ "version": "0.1.3",
4333
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
4334
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
4335
+ },
4336
+ "node_modules/@swc/helpers": {
4337
+ "version": "0.5.5",
4338
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
4339
+ "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
4340
+ "dependencies": {
4341
+ "@swc/counter": "^0.1.3",
4342
+ "tslib": "^2.4.0"
4343
+ }
4344
+ },
4345
+ "node_modules/@tailwindcss/forms": {
4346
+ "version": "0.5.3",
4347
+ "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.3.tgz",
4348
+ "integrity": "sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==",
4349
+ "dev": true,
4350
+ "dependencies": {
4351
+ "mini-svg-data-uri": "^1.2.3"
4352
+ },
4353
+ "peerDependencies": {
4354
+ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1"
4355
+ }
4356
+ },
4357
+ "node_modules/@tailwindcss/typography": {
4358
+ "version": "0.5.9",
4359
+ "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.9.tgz",
4360
+ "integrity": "sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==",
4361
+ "dev": true,
4362
+ "dependencies": {
4363
+ "lodash.castarray": "^4.4.0",
4364
+ "lodash.isplainobject": "^4.0.6",
4365
+ "lodash.merge": "^4.6.2",
4366
+ "postcss-selector-parser": "6.0.10"
4367
+ },
4368
+ "peerDependencies": {
4369
+ "tailwindcss": ">=3.0.0 || insiders"
4370
+ }
4371
+ },
4372
+ "node_modules/@tauri-apps/api": {
4373
+ "version": "1.6.0",
4374
+ "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.6.0.tgz",
4375
+ "integrity": "sha512-rqI++FWClU5I2UBp4HXFvl+sBWkdigBkxnpJDQUWttNyG7IZP4FwQGhTNL5EOw0vI8i6eSAJ5frLqO7n7jbJdg==",
4376
+ "engines": {
4377
+ "node": ">= 14.6.0",
4378
+ "npm": ">= 6.6.0",
4379
+ "yarn": ">= 1.19.1"
4380
+ },
4381
+ "funding": {
4382
+ "type": "opencollective",
4383
+ "url": "https://opencollective.com/tauri"
4384
+ }
4385
+ },
4386
+ "node_modules/@tauri-apps/cli": {
4387
+ "version": "1.6.0",
4388
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli/-/cli-1.6.0.tgz",
4389
+ "integrity": "sha512-DBBpBl6GhTzm8ImMbKkfaZ4fDTykWrC7Q5OXP4XqD91recmDEn2LExuvuiiS3HYe7uP8Eb5B9NPHhqJb+Zo7qQ==",
4390
+ "dev": true,
4391
+ "bin": {
4392
+ "tauri": "tauri.js"
4393
+ },
4394
+ "engines": {
4395
+ "node": ">= 10"
4396
+ },
4397
+ "funding": {
4398
+ "type": "opencollective",
4399
+ "url": "https://opencollective.com/tauri"
4400
+ },
4401
+ "optionalDependencies": {
4402
+ "@tauri-apps/cli-darwin-arm64": "1.6.0",
4403
+ "@tauri-apps/cli-darwin-x64": "1.6.0",
4404
+ "@tauri-apps/cli-linux-arm-gnueabihf": "1.6.0",
4405
+ "@tauri-apps/cli-linux-arm64-gnu": "1.6.0",
4406
+ "@tauri-apps/cli-linux-arm64-musl": "1.6.0",
4407
+ "@tauri-apps/cli-linux-x64-gnu": "1.6.0",
4408
+ "@tauri-apps/cli-linux-x64-musl": "1.6.0",
4409
+ "@tauri-apps/cli-win32-arm64-msvc": "1.6.0",
4410
+ "@tauri-apps/cli-win32-ia32-msvc": "1.6.0",
4411
+ "@tauri-apps/cli-win32-x64-msvc": "1.6.0"
4412
+ }
4413
+ },
4414
+ "node_modules/@tauri-apps/cli-darwin-arm64": {
4415
+ "version": "1.6.0",
4416
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-arm64/-/cli-darwin-arm64-1.6.0.tgz",
4417
+ "integrity": "sha512-SNRwUD9nqGxY47mbY1CGTt/jqyQOU7Ps7Mx/mpgahL0FVUDiCEY/5L9QfEPPhEgccgcelEVn7i6aQHIkHyUtCA==",
4418
+ "cpu": [
4419
+ "arm64"
4420
+ ],
4421
+ "dev": true,
4422
+ "optional": true,
4423
+ "os": [
4424
+ "darwin"
4425
+ ],
4426
+ "engines": {
4427
+ "node": ">= 10"
4428
+ }
4429
+ },
4430
+ "node_modules/@tauri-apps/cli-darwin-x64": {
4431
+ "version": "1.6.0",
4432
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-darwin-x64/-/cli-darwin-x64-1.6.0.tgz",
4433
+ "integrity": "sha512-g2/uDR/eeH2arvuawA4WwaEOqv/7jDO/ZLNI3JlBjP5Pk8GGb3Kdy0ro1xQzF94mtk2mOnOXa4dMgAet4sUJ1A==",
4434
+ "cpu": [
4435
+ "x64"
4436
+ ],
4437
+ "dev": true,
4438
+ "optional": true,
4439
+ "os": [
4440
+ "darwin"
4441
+ ],
4442
+ "engines": {
4443
+ "node": ">= 10"
4444
+ }
4445
+ },
4446
+ "node_modules/@tauri-apps/cli-linux-arm-gnueabihf": {
4447
+ "version": "1.6.0",
4448
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm-gnueabihf/-/cli-linux-arm-gnueabihf-1.6.0.tgz",
4449
+ "integrity": "sha512-EVwf4oRkQyG8BpSrk0gqO7oA0sDM2MdNDtJpMfleYFEgCxLIOGZKNqaOW3M7U+0Y4qikmG3TtRK+ngc8Ymtrjg==",
4450
+ "cpu": [
4451
+ "arm"
4452
+ ],
4453
+ "dev": true,
4454
+ "optional": true,
4455
+ "os": [
4456
+ "linux"
4457
+ ],
4458
+ "engines": {
4459
+ "node": ">= 10"
4460
+ }
4461
+ },
4462
+ "node_modules/@tauri-apps/cli-linux-arm64-gnu": {
4463
+ "version": "1.6.0",
4464
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-gnu/-/cli-linux-arm64-gnu-1.6.0.tgz",
4465
+ "integrity": "sha512-YdpY17cAySrhK9dX4BUVEmhAxE2o+6skIEFg8iN/xrDwRxhaNPI9I80YXPatUTX54Kx55T5++25VJG9+3iw83A==",
4466
+ "cpu": [
4467
+ "arm64"
4468
+ ],
4469
+ "dev": true,
4470
+ "optional": true,
4471
+ "os": [
4472
+ "linux"
4473
+ ],
4474
+ "engines": {
4475
+ "node": ">= 10"
4476
+ }
4477
+ },
4478
+ "node_modules/@tauri-apps/cli-linux-arm64-musl": {
4479
+ "version": "1.6.0",
4480
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.0.tgz",
4481
+ "integrity": "sha512-4U628tuf2U8pMr4tIBJhEkrFwt+46dwhXrDlpdyWSZtnop5RJAVKHODm0KbWns4xGKfTW1F3r6sSv+2ZxLcISA==",
4482
+ "cpu": [
4483
+ "arm64"
4484
+ ],
4485
+ "dev": true,
4486
+ "optional": true,
4487
+ "os": [
4488
+ "linux"
4489
+ ],
4490
+ "engines": {
4491
+ "node": ">= 10"
4492
+ }
4493
+ },
4494
+ "node_modules/@tauri-apps/cli-linux-x64-gnu": {
4495
+ "version": "1.6.0",
4496
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-gnu/-/cli-linux-x64-gnu-1.6.0.tgz",
4497
+ "integrity": "sha512-AKRzp76fVUaJyXj5KRJT9bJyhwZyUnRQU0RqIRqOtZCT5yr6qGP8rjtQ7YhCIzWrseBlOllc3Qvbgw3Yl0VQcA==",
4498
+ "cpu": [
4499
+ "x64"
4500
+ ],
4501
+ "dev": true,
4502
+ "optional": true,
4503
+ "os": [
4504
+ "linux"
4505
+ ],
4506
+ "engines": {
4507
+ "node": ">= 10"
4508
+ }
4509
+ },
4510
+ "node_modules/@tauri-apps/cli-linux-x64-musl": {
4511
+ "version": "1.6.0",
4512
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.0.tgz",
4513
+ "integrity": "sha512-0edIdq6aMBTaRMIXddHfyAFL361JqulLLd2Wi2aoOie7DkQ2MYh6gv3hA7NB9gqFwNIGE+xtJ4BkXIP2tSGPlg==",
4514
+ "cpu": [
4515
+ "x64"
4516
+ ],
4517
+ "dev": true,
4518
+ "optional": true,
4519
+ "os": [
4520
+ "linux"
4521
+ ],
4522
+ "engines": {
4523
+ "node": ">= 10"
4524
+ }
4525
+ },
4526
+ "node_modules/@tauri-apps/cli-win32-arm64-msvc": {
4527
+ "version": "1.6.0",
4528
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-arm64-msvc/-/cli-win32-arm64-msvc-1.6.0.tgz",
4529
+ "integrity": "sha512-QwWpWk4ubcwJ1rljsRAmINgB2AwkyzZhpYbalA+MmzyYMREcdXWGkyixWbRZgqc6fEWEBmq5UG73qz5eBJiIKg==",
4530
+ "cpu": [
4531
+ "arm64"
4532
+ ],
4533
+ "dev": true,
4534
+ "optional": true,
4535
+ "os": [
4536
+ "win32"
4537
+ ],
4538
+ "engines": {
4539
+ "node": ">= 10"
4540
+ }
4541
+ },
4542
+ "node_modules/@tauri-apps/cli-win32-ia32-msvc": {
4543
+ "version": "1.6.0",
4544
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-ia32-msvc/-/cli-win32-ia32-msvc-1.6.0.tgz",
4545
+ "integrity": "sha512-Vtw0yxO9+aEFuhuxQ57ALG43tjECopRimRuKGbtZYDCriB/ty5TrT3QWMdy0dxBkpDTu3Rqsz30sbDzw6tlP3Q==",
4546
+ "cpu": [
4547
+ "ia32"
4548
+ ],
4549
+ "dev": true,
4550
+ "optional": true,
4551
+ "os": [
4552
+ "win32"
4553
+ ],
4554
+ "engines": {
4555
+ "node": ">= 10"
4556
+ }
4557
+ },
4558
+ "node_modules/@tauri-apps/cli-win32-x64-msvc": {
4559
+ "version": "1.6.0",
4560
+ "resolved": "https://registry.npmjs.org/@tauri-apps/cli-win32-x64-msvc/-/cli-win32-x64-msvc-1.6.0.tgz",
4561
+ "integrity": "sha512-h54FHOvGi7+LIfRchzgZYSCHB1HDlP599vWXQQJ/XnwJY+6Rwr2E5bOe/EhqoG8rbGkfK0xX3KPAvXPbUlmggg==",
4562
+ "cpu": [
4563
+ "x64"
4564
+ ],
4565
+ "dev": true,
4566
+ "optional": true,
4567
+ "os": [
4568
+ "win32"
4569
+ ],
4570
+ "engines": {
4571
+ "node": ">= 10"
4572
+ }
4573
+ },
4574
+ "node_modules/@tootallnate/once": {
4575
+ "version": "1.1.2",
4576
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
4577
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
4578
+ "engines": {
4579
+ "node": ">= 6"
4580
+ }
4581
+ },
4582
+ "node_modules/@trysound/sax": {
4583
+ "version": "0.2.0",
4584
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
4585
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
4586
+ "engines": {
4587
+ "node": ">=10.13.0"
4588
+ }
4589
+ },
4590
+ "node_modules/@types/actioncable": {
4591
+ "version": "5.2.11",
4592
+ "resolved": "https://registry.npmjs.org/@types/actioncable/-/actioncable-5.2.11.tgz",
4593
+ "integrity": "sha512-aGzv5JS3razLvv4ZJW+wlDuNS5y1IFFVlm1EkZq3ZHs6txju7/2iee1e6sdK6DE4zsz8cIREs1K4BtfF5RMESQ=="
4594
+ },
4595
+ "node_modules/@types/babel__core": {
4596
+ "version": "7.20.5",
4597
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
4598
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
4599
+ "dependencies": {
4600
+ "@babel/parser": "^7.20.7",
4601
+ "@babel/types": "^7.20.7",
4602
+ "@types/babel__generator": "*",
4603
+ "@types/babel__template": "*",
4604
+ "@types/babel__traverse": "*"
4605
+ }
4606
+ },
4607
+ "node_modules/@types/babel__generator": {
4608
+ "version": "7.6.8",
4609
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
4610
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
4611
+ "dependencies": {
4612
+ "@babel/types": "^7.0.0"
4613
+ }
4614
+ },
4615
+ "node_modules/@types/babel__template": {
4616
+ "version": "7.4.4",
4617
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
4618
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
4619
+ "dependencies": {
4620
+ "@babel/parser": "^7.1.0",
4621
+ "@babel/types": "^7.0.0"
4622
+ }
4623
+ },
4624
+ "node_modules/@types/babel__traverse": {
4625
+ "version": "7.20.6",
4626
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz",
4627
+ "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==",
4628
+ "dependencies": {
4629
+ "@babel/types": "^7.20.7"
4630
+ }
4631
+ },
4632
+ "node_modules/@types/body-parser": {
4633
+ "version": "1.19.5",
4634
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
4635
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
4636
+ "dependencies": {
4637
+ "@types/connect": "*",
4638
+ "@types/node": "*"
4639
+ }
4640
+ },
4641
+ "node_modules/@types/bonjour": {
4642
+ "version": "3.5.13",
4643
+ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
4644
+ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
4645
+ "dependencies": {
4646
+ "@types/node": "*"
4647
+ }
4648
+ },
4649
+ "node_modules/@types/connect": {
4650
+ "version": "3.4.38",
4651
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
4652
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
4653
+ "dependencies": {
4654
+ "@types/node": "*"
4655
+ }
4656
+ },
4657
+ "node_modules/@types/connect-history-api-fallback": {
4658
+ "version": "1.5.4",
4659
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
4660
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
4661
+ "dependencies": {
4662
+ "@types/express-serve-static-core": "*",
4663
+ "@types/node": "*"
4664
+ }
4665
+ },
4666
+ "node_modules/@types/eslint": {
4667
+ "version": "8.56.11",
4668
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz",
4669
+ "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==",
4670
+ "dependencies": {
4671
+ "@types/estree": "*",
4672
+ "@types/json-schema": "*"
4673
+ }
4674
+ },
4675
+ "node_modules/@types/eslint-scope": {
4676
+ "version": "3.7.7",
4677
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
4678
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
4679
+ "dependencies": {
4680
+ "@types/eslint": "*",
4681
+ "@types/estree": "*"
4682
+ }
4683
+ },
4684
+ "node_modules/@types/estree": {
4685
+ "version": "1.0.5",
4686
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
4687
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw=="
4688
+ },
4689
+ "node_modules/@types/express": {
4690
+ "version": "4.17.21",
4691
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
4692
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
4693
+ "dependencies": {
4694
+ "@types/body-parser": "*",
4695
+ "@types/express-serve-static-core": "^4.17.33",
4696
+ "@types/qs": "*",
4697
+ "@types/serve-static": "*"
4698
+ }
4699
+ },
4700
+ "node_modules/@types/express-serve-static-core": {
4701
+ "version": "4.19.5",
4702
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz",
4703
+ "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==",
4704
+ "dependencies": {
4705
+ "@types/node": "*",
4706
+ "@types/qs": "*",
4707
+ "@types/range-parser": "*",
4708
+ "@types/send": "*"
4709
+ }
4710
+ },
4711
+ "node_modules/@types/graceful-fs": {
4712
+ "version": "4.1.9",
4713
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
4714
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
4715
+ "dependencies": {
4716
+ "@types/node": "*"
4717
+ }
4718
+ },
4719
+ "node_modules/@types/hoist-non-react-statics": {
4720
+ "version": "3.3.5",
4721
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz",
4722
+ "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==",
4723
+ "dependencies": {
4724
+ "@types/react": "*",
4725
+ "hoist-non-react-statics": "^3.3.0"
4726
+ }
4727
+ },
4728
+ "node_modules/@types/html-minifier-terser": {
4729
+ "version": "6.1.0",
4730
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
4731
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
4732
+ },
4733
+ "node_modules/@types/http-errors": {
4734
+ "version": "2.0.4",
4735
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
4736
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA=="
4737
+ },
4738
+ "node_modules/@types/http-proxy": {
4739
+ "version": "1.17.14",
4740
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz",
4741
+ "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==",
4742
+ "dependencies": {
4743
+ "@types/node": "*"
4744
+ }
4745
+ },
4746
+ "node_modules/@types/istanbul-lib-coverage": {
4747
+ "version": "2.0.6",
4748
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
4749
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w=="
4750
+ },
4751
+ "node_modules/@types/istanbul-lib-report": {
4752
+ "version": "3.0.3",
4753
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
4754
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
4755
+ "dependencies": {
4756
+ "@types/istanbul-lib-coverage": "*"
4757
+ }
4758
+ },
4759
+ "node_modules/@types/istanbul-reports": {
4760
+ "version": "3.0.4",
4761
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
4762
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
4763
+ "dependencies": {
4764
+ "@types/istanbul-lib-report": "*"
4765
+ }
4766
+ },
4767
+ "node_modules/@types/jest": {
4768
+ "version": "27.5.2",
4769
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz",
4770
+ "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==",
4771
+ "dependencies": {
4772
+ "jest-matcher-utils": "^27.0.0",
4773
+ "pretty-format": "^27.0.0"
4774
+ }
4775
+ },
4776
+ "node_modules/@types/json-schema": {
4777
+ "version": "7.0.15",
4778
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
4779
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="
4780
+ },
4781
+ "node_modules/@types/json5": {
4782
+ "version": "0.0.29",
4783
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
4784
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
4785
+ },
4786
+ "node_modules/@types/lodash": {
4787
+ "version": "4.17.7",
4788
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz",
4789
+ "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==",
4790
+ "dev": true
4791
+ },
4792
+ "node_modules/@types/lodash.debounce": {
4793
+ "version": "4.0.9",
4794
+ "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.9.tgz",
4795
+ "integrity": "sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==",
4796
+ "dev": true,
4797
+ "dependencies": {
4798
+ "@types/lodash": "*"
4799
+ }
4800
+ },
4801
+ "node_modules/@types/mime": {
4802
+ "version": "1.3.5",
4803
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
4804
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
4805
+ },
4806
+ "node_modules/@types/node": {
4807
+ "version": "18.17.0",
4808
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.0.tgz",
4809
+ "integrity": "sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg=="
4810
+ },
4811
+ "node_modules/@types/node-forge": {
4812
+ "version": "1.3.11",
4813
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
4814
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
4815
+ "dependencies": {
4816
+ "@types/node": "*"
4817
+ }
4818
+ },
4819
+ "node_modules/@types/parse-json": {
4820
+ "version": "4.0.2",
4821
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
4822
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw=="
4823
+ },
4824
+ "node_modules/@types/prettier": {
4825
+ "version": "2.7.3",
4826
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz",
4827
+ "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
4828
+ },
4829
+ "node_modules/@types/prop-types": {
4830
+ "version": "15.7.12",
4831
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz",
4832
+ "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q=="
4833
+ },
4834
+ "node_modules/@types/q": {
4835
+ "version": "1.5.8",
4836
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
4837
+ "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
4838
+ },
4839
+ "node_modules/@types/qs": {
4840
+ "version": "6.9.15",
4841
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz",
4842
+ "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg=="
4843
+ },
4844
+ "node_modules/@types/range-parser": {
4845
+ "version": "1.2.7",
4846
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
4847
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
4848
+ },
4849
+ "node_modules/@types/react": {
4850
+ "version": "18.2.78",
4851
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.78.tgz",
4852
+ "integrity": "sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==",
4853
+ "dependencies": {
4854
+ "@types/prop-types": "*",
4855
+ "csstype": "^3.0.2"
4856
+ }
4857
+ },
4858
+ "node_modules/@types/react-dom": {
4859
+ "version": "18.2.25",
4860
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz",
4861
+ "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==",
4862
+ "dependencies": {
4863
+ "@types/react": "*"
4864
+ }
4865
+ },
4866
+ "node_modules/@types/react-transition-group": {
4867
+ "version": "4.4.10",
4868
+ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz",
4869
+ "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==",
4870
+ "dependencies": {
4871
+ "@types/react": "*"
4872
+ }
4873
+ },
4874
+ "node_modules/@types/resolve": {
4875
+ "version": "1.17.1",
4876
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
4877
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
4878
+ "dependencies": {
4879
+ "@types/node": "*"
4880
+ }
4881
+ },
4882
+ "node_modules/@types/retry": {
4883
+ "version": "0.12.0",
4884
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
4885
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
4886
+ },
4887
+ "node_modules/@types/semver": {
4888
+ "version": "7.5.8",
4889
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
4890
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ=="
4891
+ },
4892
+ "node_modules/@types/send": {
4893
+ "version": "0.17.4",
4894
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
4895
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
4896
+ "dependencies": {
4897
+ "@types/mime": "^1",
4898
+ "@types/node": "*"
4899
+ }
4900
+ },
4901
+ "node_modules/@types/serve-index": {
4902
+ "version": "1.9.4",
4903
+ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
4904
+ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
4905
+ "dependencies": {
4906
+ "@types/express": "*"
4907
+ }
4908
+ },
4909
+ "node_modules/@types/serve-static": {
4910
+ "version": "1.15.7",
4911
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
4912
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
4913
+ "dependencies": {
4914
+ "@types/http-errors": "*",
4915
+ "@types/node": "*",
4916
+ "@types/send": "*"
4917
+ }
4918
+ },
4919
+ "node_modules/@types/sockjs": {
4920
+ "version": "0.3.36",
4921
+ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
4922
+ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
4923
+ "dependencies": {
4924
+ "@types/node": "*"
4925
+ }
4926
+ },
4927
+ "node_modules/@types/stack-utils": {
4928
+ "version": "2.0.3",
4929
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
4930
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="
4931
+ },
4932
+ "node_modules/@types/trusted-types": {
4933
+ "version": "2.0.7",
4934
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
4935
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
4936
+ },
4937
+ "node_modules/@types/warning": {
4938
+ "version": "3.0.3",
4939
+ "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz",
4940
+ "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
4941
+ },
4942
+ "node_modules/@types/ws": {
4943
+ "version": "8.5.12",
4944
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
4945
+ "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
4946
+ "dependencies": {
4947
+ "@types/node": "*"
4948
+ }
4949
+ },
4950
+ "node_modules/@types/yargs": {
4951
+ "version": "16.0.9",
4952
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
4953
+ "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
4954
+ "dependencies": {
4955
+ "@types/yargs-parser": "*"
4956
+ }
4957
+ },
4958
+ "node_modules/@types/yargs-parser": {
4959
+ "version": "21.0.3",
4960
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
4961
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
4962
+ },
4963
+ "node_modules/@typescript-eslint/eslint-plugin": {
4964
+ "version": "5.62.0",
4965
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
4966
+ "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
4967
+ "dependencies": {
4968
+ "@eslint-community/regexpp": "^4.4.0",
4969
+ "@typescript-eslint/scope-manager": "5.62.0",
4970
+ "@typescript-eslint/type-utils": "5.62.0",
4971
+ "@typescript-eslint/utils": "5.62.0",
4972
+ "debug": "^4.3.4",
4973
+ "graphemer": "^1.4.0",
4974
+ "ignore": "^5.2.0",
4975
+ "natural-compare-lite": "^1.4.0",
4976
+ "semver": "^7.3.7",
4977
+ "tsutils": "^3.21.0"
4978
+ },
4979
+ "engines": {
4980
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
4981
+ },
4982
+ "funding": {
4983
+ "type": "opencollective",
4984
+ "url": "https://opencollective.com/typescript-eslint"
4985
+ },
4986
+ "peerDependencies": {
4987
+ "@typescript-eslint/parser": "^5.0.0",
4988
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
4989
+ },
4990
+ "peerDependenciesMeta": {
4991
+ "typescript": {
4992
+ "optional": true
4993
+ }
4994
+ }
4995
+ },
4996
+ "node_modules/@typescript-eslint/experimental-utils": {
4997
+ "version": "5.62.0",
4998
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
4999
+ "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==",
This file is too large to show in full.
frontend/splitfire-desktop/package.json
+30
-17
@@ -6,42 +6,50 @@
6
"dependencies": {
7
"@sentry/react": "^7.12.1",
8
"@sentry/tracing": "^7.12.1",
9
- "@tauri-apps/api": "latest",
10
- "@testing-library/jest-dom": "^5.16.1",
11
- "@testing-library/react": "^12.1.2",
12
- "@testing-library/user-event": "^13.5.0",
9
"@types/actioncable": "^5.2.7",
10
"@types/jest": "^27.4.0",
15
- "@types/node": "^17.0.12",
16
- "@types/react": "^17.0.38",
17
- "@types/react-dom": "^17.0.11",
11
"actioncable": "^5.2.6",
12
"axios": "^0.25.0",
13
"bootstrap": "5.1.3",
14
"dexie": "^3.2.0",
15
"dexie-observable": "^3.0.0-beta.11",
16
"lodash.debounce": "^4.0.8",
24
- "react": "^17.0.2",
17
"react-bootstrap": "^2.1.1",
18
"react-dnd": "^16.0.1",
19
"react-dnd-html5-backend": "^16.0.1",
28
- "react-dom": "^17.0.2",
20
"react-icons": "^4.3.1",
21
"react-intl": "^5.24.4",
22
"react-router-dom": "6",
23
"react-scripts": "5.0.0",
33
- "react-transition-group": "1.x",
24
+ "react-transition-group": "4.x",
25
"react-youtube": "^7.14.0",
26
"tone": "^14.7.77",
27
"tslog": "^4.9.2",
37
- "typescript": "^4.5.5",
38
- "web-vitals": "^2.1.3"
28
+ "web-vitals": "^2.1.3",
29
+ "@heroicons/react": "1.0.6",
30
+ "@radix-ui/react-slot": "^1.0.2",
31
+ "@radix-ui/react-tooltip": "^1.0.7",
32
+ "@tauri-apps/api": "^1.5.3",
33
+ "@types/node": "18.17.0",
34
+ "@types/react": "18.2.78",
35
+ "@types/react-dom": "18.2.25",
36
+ "class-variance-authority": "^0.7.0",
37
+ "clsx": "1.2.1",
38
+ "eslint": "8.32.0",
39
+ "eslint-config-next": "14.1.0",
40
+ "next": "14.2.5",
41
+ "react": "18.2.0",
42
+ "react-hot-toast": "^2.4.1",
43
+ "react-textarea-autosize": "^8.5.3",
44
+ "react-dom": "18.2.0",
45
+ "typescript": "4.9.4",
46
+ "tailwind-merge": "^2.2.1"
47
},
48
"scripts": {
41
- "start": "PORT=3002 react-scripts start",
42
- "build": "react-scripts build",
43
- "test": "react-scripts test",
44
- "eject": "react-scripts eject"
49
+ "next-dev": "next dev",
50
+ "next-build": "next build",
51
+ "tauri-dev": "tauri dev",
52
+ "tauri-build": "tauri build"
53
},
54
"eslintConfig": {
55
"extends": [
@@ -66,6 +74,11 @@
74
},
75
"devDependencies": {
76
"@tauri-apps/cli": "^1.5.14",
69
- "@types/lodash.debounce": "^4.0.7"
77
+ "@types/lodash.debounce": "^4.0.7",
78
+ "@tailwindcss/forms": "0.5.3",
79
+ "@tailwindcss/typography": "0.5.9",
80
+ "autoprefixer": "^10.4.19",
81
+ "postcss": "^8.4.38",
82
+ "tailwindcss": "^3.4.3"
83
}
84
}
frontend/splitfire-desktop/postcss.config.js
new
+6
@@ -0,0 +1,6 @@
1
+module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+}
frontend/splitfire-desktop/src-tauri/tauri.conf.json
+5
-5
@@ -1,12 +1,12 @@
1
{
2
"build": {
3
- "beforeBuildCommand": "bun build",
4
- "beforeDevCommand": "bun start",
5
- "devPath": "http://localhost:3002",
3
+ "beforeDevCommand": "node node_modules/next/dist/bin/next dev -p 1420",
4
+ "beforeBuildCommand": "node node_modules/next/dist/bin/next build",
5
+ "devPath": "http://localhost:1420",
6
"distDir": "../build"
7
},
8
"package": {
9
- "productName": "SplitFire",
9
+ "productName": "SplitFire intelligent expression engine",
10
"version": "0.3.4"
11
},
12
"tauri": {
@@ -15,7 +15,7 @@
15
},
16
"bundle": {
17
"active": true,
18
- "category": "DeveloperTool",
18
+ "category": "artificial intelligence, music, community",
19
"copyright": "",
20
"deb": {
21
"depends": []
frontend/splitfire-desktop/tailwind.config.js
new
+88
@@ -0,0 +1,88 @@
1
+import colors from 'tailwindcss/colors';
2
+import { Config } from 'tailwindcss';
3
+
4
+export default {
5
+ content: [
6
+ './app/**/*.{js,ts,jsx,tsx,mdx}',
7
+ ],
8
+ future: {
9
+ hoverOnlyWhenSupported: true,
10
+ },
11
+ darkMode: 'class',
12
+ theme: {
13
+ extend: {
14
+ // https://vercel.com/design/color
15
+ colors: {
16
+ gray: colors.zinc,
17
+ 'gray-1000': 'rgb(17,17,19)',
18
+ 'gray-1100': 'rgb(10,10,11)',
19
+ vercel: {
20
+ pink: '#FF0080',
21
+ blue: '#0070F3',
22
+ cyan: '#50E3C2',
23
+ orange: '#F5A623',
24
+ violet: '#7928CA',
25
+ },
26
+ },
27
+ backgroundImage: ({ theme }) => ({
28
+ 'vc-border-gradient': `radial-gradient(at left top, ${theme(
29
+ 'colors.gray.500',
30
+ )}, 50px, ${theme('colors.gray.800')} 50%)`,
31
+ }),
32
+ keyframes: ({ theme }) => ({
33
+ rerender: {
34
+ '0%': {
35
+ ['border-color']: theme('colors.vercel.pink'),
36
+ },
37
+ '40%': {
38
+ ['border-color']: theme('colors.vercel.pink'),
39
+ },
40
+ },
41
+ highlight: {
42
+ '0%': {
43
+ background: theme('colors.vercel.pink'),
44
+ color: theme('colors.white'),
45
+ },
46
+ '40%': {
47
+ background: theme('colors.vercel.pink'),
48
+ color: theme('colors.white'),
49
+ },
50
+ },
51
+ loading: {
52
+ '0%': {
53
+ opacity: '.2',
54
+ },
55
+ '20%': {
56
+ opacity: '1',
57
+ transform: 'translateX(1px)',
58
+ },
59
+ to: {
60
+ opacity: '.2',
61
+ },
62
+ },
63
+ shimmer: {
64
+ '100%': {
65
+ transform: 'translateX(100%)',
66
+ },
67
+ },
68
+ translateXReset: {
69
+ '100%': {
70
+ transform: 'translateX(0)',
71
+ },
72
+ },
73
+ fadeToTransparent: {
74
+ '0%': {
75
+ opacity: '1',
76
+ },
77
+ '40%': {
78
+ opacity: '1',
79
+ },
80
+ '100%': {
81
+ opacity: '0',
82
+ },
83
+ },
84
+ }),
85
+ },
86
+ },
87
+ plugins: [require('@tailwindcss/typography'), require('@tailwindcss/forms')],
88
+} satisfies Config;
frontend/splitfire-desktop/tsconfig.json
+20
-12
@@ -8,27 +8,35 @@
8
],
9
"allowJs": true,
10
"skipLibCheck": true,
11
- "esModuleInterop": true,
12
- "allowSyntheticDefaultImports": true,
11
"strict": true,
12
"forceConsistentCasingInFileNames": true,
13
+ "noEmit": true,
14
+ "esModuleInterop": true,
15
"module": "esnext",
16
"moduleResolution": "node",
17
"resolveJsonModule": true,
18
"isolatedModules": true,
19
- "noEmit": true,
20
- "jsx": "react-jsx",
21
- "typeRoots": [
22
- "./types",
23
- "./node_modules/@types"
24
- ],
25
- "noFallthroughCasesInSwitch": true
19
+ "jsx": "preserve",
20
+ "incremental": true,
21
+ "baseUrl": ".",
22
+ "paths": {
23
+ "@/*": [
24
+ "./*"
25
+ ]
26
+ },
27
+ "plugins": [
28
+ {
29
+ "name": "next"
30
+ }
31
+ ]
32
},
33
"include": [
28
- "src"
34
+ "next-env.d.ts",
35
+ "**/*.ts",
36
+ "**/*.tsx",
37
+ ".next/types/**/*.ts"
38
],
39
"exclude": [
31
- "node_modules",
32
- "types"
40
+ "node_modules"
41
]
42
}