├── src ├── vite-env.d.ts ├── lib │ ├── utils.ts │ └── initial-editor-state.json ├── App.tsx ├── main.tsx ├── components │ ├── editor │ │ ├── plugins │ │ │ ├── components │ │ │ │ ├── block-types.ts │ │ │ │ └── block-type-dropdown.tsx │ │ │ └── toolbar-plugin.tsx │ │ └── index.tsx │ └── ui │ │ ├── separator.tsx │ │ ├── toggle.tsx │ │ ├── button.tsx │ │ ├── select.tsx │ │ └── dropdown-menu.tsx ├── index.css └── assets │ └── react.svg ├── postcss.config.js ├── README.md ├── tsconfig.node.json ├── vite.config.ts ├── .gitignore ├── components.json ├── index.html ├── .eslintrc.cjs ├── tsconfig.json ├── public └── vite.svg ├── package.json ├── tailwind.config.js └── pnpm-lock.yaml /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Shadcn-Lexical 2 | 3 | A simple lexical editor with Shadcn UI components. 4 | 5 | This repository is the codebase for blog ["Use Lexical Editor with Shadcn UI"](https://www.chunxuyang.com/blogs/shadcn-lexical-editor). 6 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import Editor from "@/components/editor"; 2 | 3 | function App() { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | } 10 | 11 | export default App; 12 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App.tsx' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')!).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true, 8 | "strict": true 9 | }, 10 | "include": ["vite.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import path from "path"; 2 | import { defineConfig } from "vite"; 3 | 4 | import react from "@vitejs/plugin-react"; 5 | 6 | // https://vitejs.dev/config/ 7 | export default defineConfig({ 8 | plugins: [react()], 9 | resolve: { 10 | alias: { 11 | "@": path.resolve(__dirname, "./src"), 12 | }, 13 | }, 14 | }); 15 | -------------------------------------------------------------------------------- /src/components/editor/plugins/components/block-types.ts: -------------------------------------------------------------------------------- 1 | export const blockTypeToBlockName: Record = { 2 | h1: "Heading 1", 3 | h2: "Heading 2", 4 | h3: "Heading 3", 5 | h4: "Heading 4", 6 | h5: "Heading 5", 7 | h6: "Heading 6", 8 | paragraph: "Normal", 9 | quote: "Quote", 10 | bullet: "Bulleted List", 11 | number: "Numbered List", 12 | }; 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | *.code-workspace 27 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": false, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.js", 8 | "css": "src/index.css", 9 | "baseColor": "zinc", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | 'eslint:recommended', 6 | 'plugin:@typescript-eslint/recommended', 7 | 'plugin:react-hooks/recommended', 8 | ], 9 | ignorePatterns: ['dist', '.eslintrc.cjs'], 10 | parser: '@typescript-eslint/parser', 11 | plugins: ['react-refresh'], 12 | rules: { 13 | 'react-refresh/only-export-components': [ 14 | 'warn', 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true, 22 | 23 | "baseUrl": ".", 24 | "paths": { 25 | "@/*": [ 26 | "./src/*" 27 | ] 28 | } 29 | }, 30 | "include": ["src"], 31 | "references": [{ "path": "./tsconfig.node.json" }] 32 | } 33 | -------------------------------------------------------------------------------- /src/components/ui/separator.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | 3 | import { cn } from '@/lib/utils'; 4 | import * as SeparatorPrimitive from '@radix-ui/react-separator'; 5 | 6 | const Separator = React.forwardRef< 7 | React.ElementRef, 8 | React.ComponentPropsWithoutRef 9 | >( 10 | ( 11 | { className, orientation = "horizontal", decorative = true, ...props }, 12 | ref 13 | ) => ( 14 | 25 | ) 26 | ); 27 | Separator.displayName = SeparatorPrimitive.Root.displayName; 28 | 29 | export { Separator }; 30 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/ui/toggle.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import * as TogglePrimitive from "@radix-ui/react-toggle" 3 | import { cva, type VariantProps } from "class-variance-authority" 4 | 5 | import { cn } from "@/lib/utils" 6 | 7 | const toggleVariants = cva( 8 | "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground", 9 | { 10 | variants: { 11 | variant: { 12 | default: "bg-transparent", 13 | outline: 14 | "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground", 15 | }, 16 | size: { 17 | default: "h-9 px-3", 18 | sm: "h-8 px-2", 19 | lg: "h-10 px-3", 20 | }, 21 | }, 22 | defaultVariants: { 23 | variant: "default", 24 | size: "default", 25 | }, 26 | } 27 | ) 28 | 29 | const Toggle = React.forwardRef< 30 | React.ElementRef, 31 | React.ComponentPropsWithoutRef & 32 | VariantProps 33 | >(({ className, variant, size, ...props }, ref) => ( 34 | 39 | )) 40 | 41 | Toggle.displayName = TogglePrimitive.Root.displayName 42 | 43 | export { Toggle, toggleVariants } 44 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | :root { 7 | --background: 0 0% 100%; 8 | --foreground: 240 10% 3.9%; 9 | 10 | --card: 0 0% 100%; 11 | --card-foreground: 240 10% 3.9%; 12 | 13 | --popover: 0 0% 100%; 14 | --popover-foreground: 240 10% 3.9%; 15 | 16 | --primary: 240 5.9% 10%; 17 | --primary-foreground: 0 0% 98%; 18 | 19 | --secondary: 240 4.8% 95.9%; 20 | --secondary-foreground: 240 5.9% 10%; 21 | 22 | --muted: 240 4.8% 95.9%; 23 | --muted-foreground: 240 3.8% 46.1%; 24 | 25 | --accent: 240 4.8% 95.9%; 26 | --accent-foreground: 240 5.9% 10%; 27 | 28 | --destructive: 0 84.2% 60.2%; 29 | --destructive-foreground: 0 0% 98%; 30 | 31 | --border: 240 5.9% 90%; 32 | --input: 240 5.9% 90%; 33 | --ring: 240 10% 3.9%; 34 | 35 | --radius: 0.5rem; 36 | } 37 | 38 | .dark { 39 | --background: 240 10% 3.9%; 40 | --foreground: 0 0% 98%; 41 | 42 | --card: 240 10% 3.9%; 43 | --card-foreground: 0 0% 98%; 44 | 45 | --popover: 240 10% 3.9%; 46 | --popover-foreground: 0 0% 98%; 47 | 48 | --primary: 0 0% 98%; 49 | --primary-foreground: 240 5.9% 10%; 50 | 51 | --secondary: 240 3.7% 15.9%; 52 | --secondary-foreground: 0 0% 98%; 53 | 54 | --muted: 240 3.7% 15.9%; 55 | --muted-foreground: 240 5% 64.9%; 56 | 57 | --accent: 240 3.7% 15.9%; 58 | --accent-foreground: 0 0% 98%; 59 | 60 | --destructive: 0 62.8% 30.6%; 61 | --destructive-foreground: 0 0% 98%; 62 | 63 | --border: 240 3.7% 15.9%; 64 | --input: 240 3.7% 15.9%; 65 | --ring: 240 4.9% 83.9%; 66 | } 67 | } 68 | 69 | @layer base { 70 | * { 71 | @apply border-border; 72 | } 73 | body { 74 | @apply bg-background text-foreground; 75 | } 76 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "shadcn-lexical", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@lexical/code": "^0.14.3", 14 | "@lexical/link": "^0.14.3", 15 | "@lexical/list": "^0.14.3", 16 | "@lexical/markdown": "^0.14.3", 17 | "@lexical/react": "^0.14.3", 18 | "@lexical/rich-text": "^0.14.3", 19 | "@lexical/selection": "^0.14.3", 20 | "@lexical/utils": "^0.14.3", 21 | "@radix-ui/react-dropdown-menu": "^2.0.6", 22 | "@radix-ui/react-icons": "^1.3.0", 23 | "@radix-ui/react-select": "^2.0.0", 24 | "@radix-ui/react-separator": "^1.0.3", 25 | "@radix-ui/react-slot": "^1.0.2", 26 | "@radix-ui/react-toggle": "^1.0.3", 27 | "@radix-ui/react-toggle-group": "^1.0.4", 28 | "class-variance-authority": "^0.7.0", 29 | "clsx": "^2.1.0", 30 | "lexical": "^0.14.3", 31 | "lucide-react": "^0.366.0", 32 | "react": "^18.2.0", 33 | "react-dom": "^18.2.0", 34 | "tailwind-merge": "^2.2.2", 35 | "tailwindcss-animate": "^1.0.7" 36 | }, 37 | "devDependencies": { 38 | "@tailwindcss/typography": "^0.5.12", 39 | "@types/node": "^20.12.7", 40 | "@types/react": "^18.2.66", 41 | "@types/react-dom": "^18.2.22", 42 | "@typescript-eslint/eslint-plugin": "^7.2.0", 43 | "@typescript-eslint/parser": "^7.2.0", 44 | "@vitejs/plugin-react": "^4.2.1", 45 | "autoprefixer": "^10.4.19", 46 | "eslint": "^8.57.0", 47 | "eslint-plugin-react-hooks": "^4.6.0", 48 | "eslint-plugin-react-refresh": "^0.4.6", 49 | "postcss": "^8.4.38", 50 | "tailwindcss": "^3.4.3", 51 | "typescript": "^5.2.2", 52 | "vite": "^5.2.0" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/components/ui/button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Slot } from "@radix-ui/react-slot" 3 | import { cva, type VariantProps } from "class-variance-authority" 4 | 5 | import { cn } from "@/lib/utils" 6 | 7 | const buttonVariants = cva( 8 | "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50", 9 | { 10 | variants: { 11 | variant: { 12 | default: 13 | "bg-primary text-primary-foreground shadow hover:bg-primary/90", 14 | destructive: 15 | "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", 16 | outline: 17 | "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", 18 | secondary: 19 | "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", 20 | ghost: "hover:bg-accent hover:text-accent-foreground", 21 | link: "text-primary underline-offset-4 hover:underline", 22 | }, 23 | size: { 24 | default: "h-9 px-4 py-2", 25 | sm: "h-8 rounded-md px-3 text-xs", 26 | lg: "h-10 rounded-md px-8", 27 | icon: "h-9 w-9", 28 | }, 29 | }, 30 | defaultVariants: { 31 | variant: "default", 32 | size: "default", 33 | }, 34 | } 35 | ) 36 | 37 | export interface ButtonProps 38 | extends React.ButtonHTMLAttributes, 39 | VariantProps { 40 | asChild?: boolean 41 | } 42 | 43 | const Button = React.forwardRef( 44 | ({ className, variant, size, asChild = false, ...props }, ref) => { 45 | const Comp = asChild ? Slot : "button" 46 | return ( 47 | 52 | ) 53 | } 54 | ) 55 | Button.displayName = "Button" 56 | 57 | export { Button, buttonVariants } 58 | -------------------------------------------------------------------------------- /src/lib/initial-editor-state.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": { 3 | "children": [ 4 | { 5 | "children": [ 6 | { 7 | "detail": 0, 8 | "format": 0, 9 | "mode": "normal", 10 | "style": "", 11 | "text": "I found myself adrift in a ", 12 | "type": "text", 13 | "version": 1 14 | }, 15 | { 16 | "detail": 0, 17 | "format": 1, 18 | "mode": "normal", 19 | "style": "", 20 | "text": "meadow resplendent", 21 | "type": "text", 22 | "version": 1 23 | }, 24 | { 25 | "detail": 0, 26 | "format": 0, 27 | "mode": "normal", 28 | "style": "", 29 | "text": ", awash in verdant grasses that undulated like emerald tides caressed by zephyrs unseen. Above, an azure firmament arched in endless splendor, while on the horizon majestic peaks pierced the heavens, crowns of pristine snow blazing with celestial fire.", 30 | "type": "text", 31 | "version": 1 32 | } 33 | ], 34 | "direction": "ltr", 35 | "format": "start", 36 | "indent": 0, 37 | "type": "paragraph", 38 | "version": 1 39 | }, 40 | { 41 | "children": [ 42 | { 43 | "detail": 0, 44 | "format": 0, 45 | "mode": "normal", 46 | "style": "", 47 | "text": "As I began traversing this Elysian expanse, the pastoral countryside metamorphosed into a primordial eden. Towering ceibas draped in kaleidoscopic orchids reached skyward, while strange, alien serenades issued from uncounted throats amidst the riotous profusion of fronds and blossoms.", 48 | "type": "text", 49 | "version": 1 50 | } 51 | ], 52 | "direction": "ltr", 53 | "format": "start", 54 | "indent": 0, 55 | "type": "paragraph", 56 | "version": 1 57 | } 58 | ], 59 | "direction": "ltr", 60 | "format": "", 61 | "indent": 0, 62 | "type": "root", 63 | "version": 1 64 | } 65 | } -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | darkMode: ["class"], 4 | content: [ 5 | "./pages/**/*.{ts,tsx}", 6 | "./components/**/*.{ts,tsx}", 7 | "./app/**/*.{ts,tsx}", 8 | "./src/**/*.{ts,tsx}", 9 | ], 10 | prefix: "", 11 | theme: { 12 | container: { 13 | center: true, 14 | padding: "2rem", 15 | screens: { 16 | "2xl": "1400px", 17 | }, 18 | }, 19 | extend: { 20 | colors: { 21 | border: "hsl(var(--border))", 22 | input: "hsl(var(--input))", 23 | ring: "hsl(var(--ring))", 24 | background: "hsl(var(--background))", 25 | foreground: "hsl(var(--foreground))", 26 | primary: { 27 | DEFAULT: "hsl(var(--primary))", 28 | foreground: "hsl(var(--primary-foreground))", 29 | }, 30 | secondary: { 31 | DEFAULT: "hsl(var(--secondary))", 32 | foreground: "hsl(var(--secondary-foreground))", 33 | }, 34 | destructive: { 35 | DEFAULT: "hsl(var(--destructive))", 36 | foreground: "hsl(var(--destructive-foreground))", 37 | }, 38 | muted: { 39 | DEFAULT: "hsl(var(--muted))", 40 | foreground: "hsl(var(--muted-foreground))", 41 | }, 42 | accent: { 43 | DEFAULT: "hsl(var(--accent))", 44 | foreground: "hsl(var(--accent-foreground))", 45 | }, 46 | popover: { 47 | DEFAULT: "hsl(var(--popover))", 48 | foreground: "hsl(var(--popover-foreground))", 49 | }, 50 | card: { 51 | DEFAULT: "hsl(var(--card))", 52 | foreground: "hsl(var(--card-foreground))", 53 | }, 54 | }, 55 | borderRadius: { 56 | lg: "var(--radius)", 57 | md: "calc(var(--radius) - 2px)", 58 | sm: "calc(var(--radius) - 4px)", 59 | }, 60 | keyframes: { 61 | "accordion-down": { 62 | from: { height: "0" }, 63 | to: { height: "var(--radix-accordion-content-height)" }, 64 | }, 65 | "accordion-up": { 66 | from: { height: "var(--radix-accordion-content-height)" }, 67 | to: { height: "0" }, 68 | }, 69 | }, 70 | animation: { 71 | "accordion-down": "accordion-down 0.2s ease-out", 72 | "accordion-up": "accordion-up 0.2s ease-out", 73 | }, 74 | }, 75 | }, 76 | plugins: [require("tailwindcss-animate"), require("@tailwindcss/typography")], 77 | }; 78 | -------------------------------------------------------------------------------- /src/components/editor/index.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import React from "react"; 4 | 5 | import InitialEditorState from "@/lib/initial-editor-state.json"; 6 | import { CodeHighlightNode, CodeNode } from "@lexical/code"; 7 | import { AutoLinkNode, LinkNode } from "@lexical/link"; 8 | import { ListItemNode, ListNode } from "@lexical/list"; 9 | import { TRANSFORMERS } from "@lexical/markdown"; 10 | import { 11 | InitialConfigType, 12 | LexicalComposer, 13 | } from "@lexical/react/LexicalComposer"; 14 | import { ContentEditable } from "@lexical/react/LexicalContentEditable"; 15 | import LexicalErrorBoundary from "@lexical/react/LexicalErrorBoundary"; 16 | import { HistoryPlugin } from "@lexical/react/LexicalHistoryPlugin"; 17 | import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin"; 18 | import { ListPlugin } from "@lexical/react/LexicalListPlugin"; 19 | import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin"; 20 | import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin"; 21 | import { HeadingNode, QuoteNode } from "@lexical/rich-text"; 22 | 23 | import ToolbarPlugin from "./plugins/toolbar-plugin"; 24 | 25 | const Editor: React.FC = () => { 26 | const config: InitialConfigType = { 27 | namespace: "lexical-editor", 28 | 29 | theme: { 30 | text: { 31 | underline: "underline", 32 | }, 33 | }, 34 | 35 | nodes: [ 36 | HeadingNode, 37 | ListNode, 38 | 39 | ListItemNode, 40 | QuoteNode, 41 | CodeNode, 42 | CodeHighlightNode, 43 | 44 | AutoLinkNode, 45 | LinkNode, 46 | ], 47 | 48 | editorState: JSON.stringify(InitialEditorState), 49 | 50 | onError: (error) => { 51 | console.error(error); 52 | }, 53 | }; 54 | 55 | return ( 56 | 57 |
60 | 61 | 62 |
63 | 66 | } 67 | placeholder={ 68 |

69 | Enter some text... 70 |

71 | } 72 | ErrorBoundary={LexicalErrorBoundary} 73 | /> 74 | 75 |
76 | {/* */} 77 | 78 | 79 | 80 | 81 |
82 |
83 | ); 84 | }; 85 | 86 | export default Editor; 87 | -------------------------------------------------------------------------------- /src/components/editor/plugins/components/block-type-dropdown.tsx: -------------------------------------------------------------------------------- 1 | import { $createParagraphNode, $getSelection } from "lexical"; 2 | 3 | import { 4 | Select, 5 | SelectContent, 6 | SelectItem, 7 | SelectTrigger, 8 | SelectValue, 9 | } from "@/components/ui/select"; 10 | import { 11 | INSERT_ORDERED_LIST_COMMAND, 12 | INSERT_UNORDERED_LIST_COMMAND, 13 | REMOVE_LIST_COMMAND, 14 | } from "@lexical/list"; 15 | import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext"; 16 | import { 17 | $createHeadingNode, 18 | $createQuoteNode, 19 | HeadingTagType, 20 | } from "@lexical/rich-text"; 21 | import { $setBlocksType } from "@lexical/selection"; 22 | 23 | import { blockTypeToBlockName } from "./block-types"; 24 | 25 | interface BlockTypeDropdownProps { 26 | blockType: keyof typeof blockTypeToBlockName; 27 | } 28 | 29 | export default function BlockTypeDropdown({ 30 | blockType, 31 | }: BlockTypeDropdownProps) { 32 | const [editor] = useLexicalComposerContext(); 33 | 34 | const formatHeading = (headingLevel: HeadingTagType) => { 35 | editor.update(() => { 36 | const selection = $getSelection(); 37 | $setBlocksType(selection, () => $createHeadingNode(headingLevel)); 38 | }); 39 | }; 40 | 41 | const formatParagraph = () => { 42 | editor.update(() => { 43 | const selection = $getSelection(); 44 | $setBlocksType(selection, () => $createParagraphNode()); 45 | }); 46 | }; 47 | 48 | const formatOrderedList = () => { 49 | if (blockType !== "number") { 50 | editor.dispatchCommand(INSERT_ORDERED_LIST_COMMAND, undefined); 51 | } else { 52 | editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined); 53 | } 54 | }; 55 | 56 | const formatUnorderedList = () => { 57 | if (blockType !== "bullet") { 58 | editor.dispatchCommand(INSERT_UNORDERED_LIST_COMMAND, undefined); 59 | } else { 60 | editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined); 61 | } 62 | }; 63 | 64 | const formatQuote = () => { 65 | editor.update(() => { 66 | const selection = $getSelection(); 67 | $setBlocksType(selection, () => $createQuoteNode()); 68 | }); 69 | }; 70 | 71 | return ( 72 | 123 | ); 124 | } 125 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/ui/select.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { 3 | CaretSortIcon, 4 | CheckIcon, 5 | ChevronDownIcon, 6 | ChevronUpIcon, 7 | } from "@radix-ui/react-icons" 8 | import * as SelectPrimitive from "@radix-ui/react-select" 9 | 10 | import { cn } from "@/lib/utils" 11 | 12 | const Select = SelectPrimitive.Root 13 | 14 | const SelectGroup = SelectPrimitive.Group 15 | 16 | const SelectValue = SelectPrimitive.Value 17 | 18 | const SelectTrigger = React.forwardRef< 19 | React.ElementRef, 20 | React.ComponentPropsWithoutRef 21 | >(({ className, children, ...props }, ref) => ( 22 | span]:line-clamp-1", 26 | className 27 | )} 28 | {...props} 29 | > 30 | {children} 31 | 32 | 33 | 34 | 35 | )) 36 | SelectTrigger.displayName = SelectPrimitive.Trigger.displayName 37 | 38 | const SelectScrollUpButton = React.forwardRef< 39 | React.ElementRef, 40 | React.ComponentPropsWithoutRef 41 | >(({ className, ...props }, ref) => ( 42 | 50 | 51 | 52 | )) 53 | SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName 54 | 55 | const SelectScrollDownButton = React.forwardRef< 56 | React.ElementRef, 57 | React.ComponentPropsWithoutRef 58 | >(({ className, ...props }, ref) => ( 59 | 67 | 68 | 69 | )) 70 | SelectScrollDownButton.displayName = 71 | SelectPrimitive.ScrollDownButton.displayName 72 | 73 | const SelectContent = React.forwardRef< 74 | React.ElementRef, 75 | React.ComponentPropsWithoutRef 76 | >(({ className, children, position = "popper", ...props }, ref) => ( 77 | 78 | 89 | 90 | 97 | {children} 98 | 99 | 100 | 101 | 102 | )) 103 | SelectContent.displayName = SelectPrimitive.Content.displayName 104 | 105 | const SelectLabel = React.forwardRef< 106 | React.ElementRef, 107 | React.ComponentPropsWithoutRef 108 | >(({ className, ...props }, ref) => ( 109 | 114 | )) 115 | SelectLabel.displayName = SelectPrimitive.Label.displayName 116 | 117 | const SelectItem = React.forwardRef< 118 | React.ElementRef, 119 | React.ComponentPropsWithoutRef 120 | >(({ className, children, ...props }, ref) => ( 121 | 129 | 130 | 131 | 132 | 133 | 134 | {children} 135 | 136 | )) 137 | SelectItem.displayName = SelectPrimitive.Item.displayName 138 | 139 | const SelectSeparator = React.forwardRef< 140 | React.ElementRef, 141 | React.ComponentPropsWithoutRef 142 | >(({ className, ...props }, ref) => ( 143 | 148 | )) 149 | SelectSeparator.displayName = SelectPrimitive.Separator.displayName 150 | 151 | export { 152 | Select, 153 | SelectGroup, 154 | SelectValue, 155 | SelectTrigger, 156 | SelectContent, 157 | SelectLabel, 158 | SelectItem, 159 | SelectSeparator, 160 | SelectScrollUpButton, 161 | SelectScrollDownButton, 162 | } 163 | -------------------------------------------------------------------------------- /src/components/editor/plugins/toolbar-plugin.tsx: -------------------------------------------------------------------------------- 1 | import { 2 | $getSelection, 3 | $isRangeSelection, 4 | $isRootOrShadowRoot, 5 | CAN_REDO_COMMAND, 6 | CAN_UNDO_COMMAND, 7 | COMMAND_PRIORITY_CRITICAL, 8 | FORMAT_TEXT_COMMAND, 9 | REDO_COMMAND, 10 | SELECTION_CHANGE_COMMAND, 11 | UNDO_COMMAND, 12 | } from "lexical"; 13 | import { useCallback, useEffect, useState } from "react"; 14 | 15 | import { Button } from "@/components/ui/button"; 16 | import { Separator } from "@/components/ui/separator"; 17 | import { Toggle } from "@/components/ui/toggle"; 18 | import { $isListNode, ListNode } from "@lexical/list"; 19 | import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext"; 20 | import { $isHeadingNode } from "@lexical/rich-text"; 21 | import { 22 | $findMatchingParent, 23 | $getNearestNodeOfType, 24 | mergeRegister, 25 | } from "@lexical/utils"; 26 | import { 27 | FontBoldIcon, 28 | FontItalicIcon, 29 | ReloadIcon, 30 | UnderlineIcon, 31 | } from "@radix-ui/react-icons"; 32 | 33 | import BlockTypeDropdown from "./components/block-type-dropdown"; 34 | import { blockTypeToBlockName } from "./components/block-types"; 35 | 36 | export default function ToolbarPlugin() { 37 | const [editor] = useLexicalComposerContext(); 38 | const [isBold, setIsBold] = useState(false); 39 | const [isItalic, setIsItalic] = useState(false); 40 | const [isUnderline, setIsUnderline] = useState(false); 41 | const [blockType, setBlockType] = 42 | useState("paragraph"); 43 | 44 | const [canUndo, setCanUndo] = useState(false); 45 | const [canRedo, setCanRedo] = useState(false); 46 | 47 | const $updateToolbar = useCallback(() => { 48 | const selection = $getSelection(); 49 | if ($isRangeSelection(selection)) { 50 | setIsBold(selection.hasFormat("bold")); 51 | setIsItalic(selection.hasFormat("italic")); 52 | setIsUnderline(selection.hasFormat("underline")); 53 | 54 | const anchorNode = selection.anchor.getNode(); 55 | 56 | let element = 57 | anchorNode.getKey() === "root" 58 | ? anchorNode 59 | : $findMatchingParent(anchorNode, (e) => { 60 | const parent = e.getParent(); 61 | return parent !== null && $isRootOrShadowRoot(parent); 62 | }); 63 | 64 | if (element === null) { 65 | element = anchorNode.getTopLevelElementOrThrow(); 66 | } 67 | 68 | const elementDOM = editor.getElementByKey(element.getKey()); 69 | 70 | if (elementDOM !== null) { 71 | if ($isListNode(element)) { 72 | const parentList = $getNearestNodeOfType( 73 | anchorNode, 74 | ListNode 75 | ); 76 | const type = parentList 77 | ? parentList.getListType() 78 | : element.getListType(); 79 | setBlockType(type); 80 | } else { 81 | const type = $isHeadingNode(element) 82 | ? element.getTag() 83 | : element.getType(); 84 | if (type in blockTypeToBlockName) { 85 | setBlockType(type as keyof typeof blockTypeToBlockName); 86 | } 87 | } 88 | } 89 | } 90 | }, [editor]); 91 | 92 | useEffect(() => { 93 | return mergeRegister( 94 | editor.registerCommand( 95 | SELECTION_CHANGE_COMMAND, 96 | () => { 97 | $updateToolbar(); 98 | return false; 99 | }, 100 | COMMAND_PRIORITY_CRITICAL 101 | ), 102 | editor.registerUpdateListener(({ editorState }) => { 103 | editorState.read(() => { 104 | $updateToolbar(); 105 | }); 106 | }) 107 | ); 108 | }, [editor, $updateToolbar]); 109 | 110 | useEffect(() => { 111 | return mergeRegister( 112 | editor.registerCommand( 113 | CAN_UNDO_COMMAND, 114 | (payload) => { 115 | setCanUndo(payload); 116 | return false; 117 | }, 118 | COMMAND_PRIORITY_CRITICAL 119 | ), 120 | editor.registerCommand( 121 | CAN_REDO_COMMAND, 122 | (payload) => { 123 | setCanRedo(payload); 124 | return false; 125 | }, 126 | COMMAND_PRIORITY_CRITICAL 127 | ) 128 | ); 129 | }, [editor]); 130 | 131 | return ( 132 |
133 |
134 | 143 | 144 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | { 164 | console.log(editor.getEditorState().toJSON()); 165 | editor.dispatchCommand(FORMAT_TEXT_COMMAND, "bold"); 166 | setIsBold(pressed); 167 | }} 168 | > 169 | 170 | 171 | 172 | { 177 | editor.dispatchCommand(FORMAT_TEXT_COMMAND, "italic"); 178 | setIsItalic(pressed); 179 | }} 180 | > 181 | 182 | 183 | 184 | { 189 | editor.dispatchCommand(FORMAT_TEXT_COMMAND, "underline"); 190 | setIsUnderline(pressed); 191 | }} 192 | > 193 | 194 | 195 |
196 |
197 | ); 198 | } 199 | -------------------------------------------------------------------------------- /src/components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" 3 | import { 4 | CheckIcon, 5 | ChevronRightIcon, 6 | DotFilledIcon, 7 | } from "@radix-ui/react-icons" 8 | 9 | import { cn } from "@/lib/utils" 10 | 11 | const DropdownMenu = DropdownMenuPrimitive.Root 12 | 13 | const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger 14 | 15 | const DropdownMenuGroup = DropdownMenuPrimitive.Group 16 | 17 | const DropdownMenuPortal = DropdownMenuPrimitive.Portal 18 | 19 | const DropdownMenuSub = DropdownMenuPrimitive.Sub 20 | 21 | const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup 22 | 23 | const DropdownMenuSubTrigger = React.forwardRef< 24 | React.ElementRef, 25 | React.ComponentPropsWithoutRef & { 26 | inset?: boolean 27 | } 28 | >(({ className, inset, children, ...props }, ref) => ( 29 | 38 | {children} 39 | 40 | 41 | )) 42 | DropdownMenuSubTrigger.displayName = 43 | DropdownMenuPrimitive.SubTrigger.displayName 44 | 45 | const DropdownMenuSubContent = React.forwardRef< 46 | React.ElementRef, 47 | React.ComponentPropsWithoutRef 48 | >(({ className, ...props }, ref) => ( 49 | 57 | )) 58 | DropdownMenuSubContent.displayName = 59 | DropdownMenuPrimitive.SubContent.displayName 60 | 61 | const DropdownMenuContent = React.forwardRef< 62 | React.ElementRef, 63 | React.ComponentPropsWithoutRef 64 | >(({ className, sideOffset = 4, ...props }, ref) => ( 65 | 66 | 76 | 77 | )) 78 | DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName 79 | 80 | const DropdownMenuItem = React.forwardRef< 81 | React.ElementRef, 82 | React.ComponentPropsWithoutRef & { 83 | inset?: boolean 84 | } 85 | >(({ className, inset, ...props }, ref) => ( 86 | 95 | )) 96 | DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName 97 | 98 | const DropdownMenuCheckboxItem = React.forwardRef< 99 | React.ElementRef, 100 | React.ComponentPropsWithoutRef 101 | >(({ className, children, checked, ...props }, ref) => ( 102 | 111 | 112 | 113 | 114 | 115 | 116 | {children} 117 | 118 | )) 119 | DropdownMenuCheckboxItem.displayName = 120 | DropdownMenuPrimitive.CheckboxItem.displayName 121 | 122 | const DropdownMenuRadioItem = React.forwardRef< 123 | React.ElementRef, 124 | React.ComponentPropsWithoutRef 125 | >(({ className, children, ...props }, ref) => ( 126 | 134 | 135 | 136 | 137 | 138 | 139 | {children} 140 | 141 | )) 142 | DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName 143 | 144 | const DropdownMenuLabel = React.forwardRef< 145 | React.ElementRef, 146 | React.ComponentPropsWithoutRef & { 147 | inset?: boolean 148 | } 149 | >(({ className, inset, ...props }, ref) => ( 150 | 159 | )) 160 | DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName 161 | 162 | const DropdownMenuSeparator = React.forwardRef< 163 | React.ElementRef, 164 | React.ComponentPropsWithoutRef 165 | >(({ className, ...props }, ref) => ( 166 | 171 | )) 172 | DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName 173 | 174 | const DropdownMenuShortcut = ({ 175 | className, 176 | ...props 177 | }: React.HTMLAttributes) => { 178 | return ( 179 | 183 | ) 184 | } 185 | DropdownMenuShortcut.displayName = "DropdownMenuShortcut" 186 | 187 | export { 188 | DropdownMenu, 189 | DropdownMenuTrigger, 190 | DropdownMenuContent, 191 | DropdownMenuItem, 192 | DropdownMenuCheckboxItem, 193 | DropdownMenuRadioItem, 194 | DropdownMenuLabel, 195 | DropdownMenuSeparator, 196 | DropdownMenuShortcut, 197 | DropdownMenuGroup, 198 | DropdownMenuPortal, 199 | DropdownMenuSub, 200 | DropdownMenuSubContent, 201 | DropdownMenuSubTrigger, 202 | DropdownMenuRadioGroup, 203 | } 204 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@lexical/code': 9 | specifier: ^0.14.3 10 | version: 0.14.3 11 | '@lexical/link': 12 | specifier: ^0.14.3 13 | version: 0.14.3 14 | '@lexical/list': 15 | specifier: ^0.14.3 16 | version: 0.14.3 17 | '@lexical/markdown': 18 | specifier: ^0.14.3 19 | version: 0.14.3 20 | '@lexical/react': 21 | specifier: ^0.14.3 22 | version: 0.14.3(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14) 23 | '@lexical/rich-text': 24 | specifier: ^0.14.3 25 | version: 0.14.3 26 | '@lexical/selection': 27 | specifier: ^0.14.3 28 | version: 0.14.3 29 | '@lexical/utils': 30 | specifier: ^0.14.3 31 | version: 0.14.3 32 | '@radix-ui/react-dropdown-menu': 33 | specifier: ^2.0.6 34 | version: 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 35 | '@radix-ui/react-icons': 36 | specifier: ^1.3.0 37 | version: 1.3.0(react@18.2.0) 38 | '@radix-ui/react-select': 39 | specifier: ^2.0.0 40 | version: 2.0.0(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 41 | '@radix-ui/react-separator': 42 | specifier: ^1.0.3 43 | version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 44 | '@radix-ui/react-slot': 45 | specifier: ^1.0.2 46 | version: 1.0.2(@types/react@18.2.75)(react@18.2.0) 47 | '@radix-ui/react-toggle': 48 | specifier: ^1.0.3 49 | version: 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 50 | '@radix-ui/react-toggle-group': 51 | specifier: ^1.0.4 52 | version: 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 53 | class-variance-authority: 54 | specifier: ^0.7.0 55 | version: 0.7.0 56 | clsx: 57 | specifier: ^2.1.0 58 | version: 2.1.0 59 | lexical: 60 | specifier: ^0.14.3 61 | version: 0.14.3 62 | lucide-react: 63 | specifier: ^0.366.0 64 | version: 0.366.0(react@18.2.0) 65 | react: 66 | specifier: ^18.2.0 67 | version: 18.2.0 68 | react-dom: 69 | specifier: ^18.2.0 70 | version: 18.2.0(react@18.2.0) 71 | tailwind-merge: 72 | specifier: ^2.2.2 73 | version: 2.2.2 74 | tailwindcss-animate: 75 | specifier: ^1.0.7 76 | version: 1.0.7(tailwindcss@3.4.3) 77 | 78 | devDependencies: 79 | '@tailwindcss/typography': 80 | specifier: ^0.5.12 81 | version: 0.5.12(tailwindcss@3.4.3) 82 | '@types/node': 83 | specifier: ^20.12.7 84 | version: 20.12.7 85 | '@types/react': 86 | specifier: ^18.2.66 87 | version: 18.2.75 88 | '@types/react-dom': 89 | specifier: ^18.2.22 90 | version: 18.2.24 91 | '@typescript-eslint/eslint-plugin': 92 | specifier: ^7.2.0 93 | version: 7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.4) 94 | '@typescript-eslint/parser': 95 | specifier: ^7.2.0 96 | version: 7.6.0(eslint@8.57.0)(typescript@5.4.4) 97 | '@vitejs/plugin-react': 98 | specifier: ^4.2.1 99 | version: 4.2.1(vite@5.2.8) 100 | autoprefixer: 101 | specifier: ^10.4.19 102 | version: 10.4.19(postcss@8.4.38) 103 | eslint: 104 | specifier: ^8.57.0 105 | version: 8.57.0 106 | eslint-plugin-react-hooks: 107 | specifier: ^4.6.0 108 | version: 4.6.0(eslint@8.57.0) 109 | eslint-plugin-react-refresh: 110 | specifier: ^0.4.6 111 | version: 0.4.6(eslint@8.57.0) 112 | postcss: 113 | specifier: ^8.4.38 114 | version: 8.4.38 115 | tailwindcss: 116 | specifier: ^3.4.3 117 | version: 3.4.3 118 | typescript: 119 | specifier: ^5.2.2 120 | version: 5.4.4 121 | vite: 122 | specifier: ^5.2.0 123 | version: 5.2.8(@types/node@20.12.7) 124 | 125 | packages: 126 | 127 | /@aashutoshrathi/word-wrap@1.2.6: 128 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 129 | engines: {node: '>=0.10.0'} 130 | dev: true 131 | 132 | /@alloc/quick-lru@5.2.0: 133 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 134 | engines: {node: '>=10'} 135 | 136 | /@ampproject/remapping@2.3.0: 137 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 138 | engines: {node: '>=6.0.0'} 139 | dependencies: 140 | '@jridgewell/gen-mapping': 0.3.5 141 | '@jridgewell/trace-mapping': 0.3.25 142 | dev: true 143 | 144 | /@babel/code-frame@7.24.2: 145 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 146 | engines: {node: '>=6.9.0'} 147 | dependencies: 148 | '@babel/highlight': 7.24.2 149 | picocolors: 1.0.0 150 | dev: true 151 | 152 | /@babel/compat-data@7.24.4: 153 | resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} 154 | engines: {node: '>=6.9.0'} 155 | dev: true 156 | 157 | /@babel/core@7.24.4: 158 | resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} 159 | engines: {node: '>=6.9.0'} 160 | dependencies: 161 | '@ampproject/remapping': 2.3.0 162 | '@babel/code-frame': 7.24.2 163 | '@babel/generator': 7.24.4 164 | '@babel/helper-compilation-targets': 7.23.6 165 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) 166 | '@babel/helpers': 7.24.4 167 | '@babel/parser': 7.24.4 168 | '@babel/template': 7.24.0 169 | '@babel/traverse': 7.24.1 170 | '@babel/types': 7.24.0 171 | convert-source-map: 2.0.0 172 | debug: 4.3.4 173 | gensync: 1.0.0-beta.2 174 | json5: 2.2.3 175 | semver: 6.3.1 176 | transitivePeerDependencies: 177 | - supports-color 178 | dev: true 179 | 180 | /@babel/generator@7.24.4: 181 | resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} 182 | engines: {node: '>=6.9.0'} 183 | dependencies: 184 | '@babel/types': 7.24.0 185 | '@jridgewell/gen-mapping': 0.3.5 186 | '@jridgewell/trace-mapping': 0.3.25 187 | jsesc: 2.5.2 188 | dev: true 189 | 190 | /@babel/helper-compilation-targets@7.23.6: 191 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 192 | engines: {node: '>=6.9.0'} 193 | dependencies: 194 | '@babel/compat-data': 7.24.4 195 | '@babel/helper-validator-option': 7.23.5 196 | browserslist: 4.23.0 197 | lru-cache: 5.1.1 198 | semver: 6.3.1 199 | dev: true 200 | 201 | /@babel/helper-environment-visitor@7.22.20: 202 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 203 | engines: {node: '>=6.9.0'} 204 | dev: true 205 | 206 | /@babel/helper-function-name@7.23.0: 207 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 208 | engines: {node: '>=6.9.0'} 209 | dependencies: 210 | '@babel/template': 7.24.0 211 | '@babel/types': 7.24.0 212 | dev: true 213 | 214 | /@babel/helper-hoist-variables@7.22.5: 215 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 216 | engines: {node: '>=6.9.0'} 217 | dependencies: 218 | '@babel/types': 7.24.0 219 | dev: true 220 | 221 | /@babel/helper-module-imports@7.24.3: 222 | resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} 223 | engines: {node: '>=6.9.0'} 224 | dependencies: 225 | '@babel/types': 7.24.0 226 | dev: true 227 | 228 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): 229 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 230 | engines: {node: '>=6.9.0'} 231 | peerDependencies: 232 | '@babel/core': ^7.0.0 233 | dependencies: 234 | '@babel/core': 7.24.4 235 | '@babel/helper-environment-visitor': 7.22.20 236 | '@babel/helper-module-imports': 7.24.3 237 | '@babel/helper-simple-access': 7.22.5 238 | '@babel/helper-split-export-declaration': 7.22.6 239 | '@babel/helper-validator-identifier': 7.22.20 240 | dev: true 241 | 242 | /@babel/helper-plugin-utils@7.24.0: 243 | resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} 244 | engines: {node: '>=6.9.0'} 245 | dev: true 246 | 247 | /@babel/helper-simple-access@7.22.5: 248 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 249 | engines: {node: '>=6.9.0'} 250 | dependencies: 251 | '@babel/types': 7.24.0 252 | dev: true 253 | 254 | /@babel/helper-split-export-declaration@7.22.6: 255 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 256 | engines: {node: '>=6.9.0'} 257 | dependencies: 258 | '@babel/types': 7.24.0 259 | dev: true 260 | 261 | /@babel/helper-string-parser@7.24.1: 262 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 263 | engines: {node: '>=6.9.0'} 264 | dev: true 265 | 266 | /@babel/helper-validator-identifier@7.22.20: 267 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 268 | engines: {node: '>=6.9.0'} 269 | dev: true 270 | 271 | /@babel/helper-validator-option@7.23.5: 272 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 273 | engines: {node: '>=6.9.0'} 274 | dev: true 275 | 276 | /@babel/helpers@7.24.4: 277 | resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} 278 | engines: {node: '>=6.9.0'} 279 | dependencies: 280 | '@babel/template': 7.24.0 281 | '@babel/traverse': 7.24.1 282 | '@babel/types': 7.24.0 283 | transitivePeerDependencies: 284 | - supports-color 285 | dev: true 286 | 287 | /@babel/highlight@7.24.2: 288 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 289 | engines: {node: '>=6.9.0'} 290 | dependencies: 291 | '@babel/helper-validator-identifier': 7.22.20 292 | chalk: 2.4.2 293 | js-tokens: 4.0.0 294 | picocolors: 1.0.0 295 | dev: true 296 | 297 | /@babel/parser@7.24.4: 298 | resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} 299 | engines: {node: '>=6.0.0'} 300 | hasBin: true 301 | dependencies: 302 | '@babel/types': 7.24.0 303 | dev: true 304 | 305 | /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): 306 | resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} 307 | engines: {node: '>=6.9.0'} 308 | peerDependencies: 309 | '@babel/core': ^7.0.0-0 310 | dependencies: 311 | '@babel/core': 7.24.4 312 | '@babel/helper-plugin-utils': 7.24.0 313 | dev: true 314 | 315 | /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): 316 | resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} 317 | engines: {node: '>=6.9.0'} 318 | peerDependencies: 319 | '@babel/core': ^7.0.0-0 320 | dependencies: 321 | '@babel/core': 7.24.4 322 | '@babel/helper-plugin-utils': 7.24.0 323 | dev: true 324 | 325 | /@babel/runtime@7.24.4: 326 | resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} 327 | engines: {node: '>=6.9.0'} 328 | dependencies: 329 | regenerator-runtime: 0.14.1 330 | dev: false 331 | 332 | /@babel/template@7.24.0: 333 | resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} 334 | engines: {node: '>=6.9.0'} 335 | dependencies: 336 | '@babel/code-frame': 7.24.2 337 | '@babel/parser': 7.24.4 338 | '@babel/types': 7.24.0 339 | dev: true 340 | 341 | /@babel/traverse@7.24.1: 342 | resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} 343 | engines: {node: '>=6.9.0'} 344 | dependencies: 345 | '@babel/code-frame': 7.24.2 346 | '@babel/generator': 7.24.4 347 | '@babel/helper-environment-visitor': 7.22.20 348 | '@babel/helper-function-name': 7.23.0 349 | '@babel/helper-hoist-variables': 7.22.5 350 | '@babel/helper-split-export-declaration': 7.22.6 351 | '@babel/parser': 7.24.4 352 | '@babel/types': 7.24.0 353 | debug: 4.3.4 354 | globals: 11.12.0 355 | transitivePeerDependencies: 356 | - supports-color 357 | dev: true 358 | 359 | /@babel/types@7.24.0: 360 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 361 | engines: {node: '>=6.9.0'} 362 | dependencies: 363 | '@babel/helper-string-parser': 7.24.1 364 | '@babel/helper-validator-identifier': 7.22.20 365 | to-fast-properties: 2.0.0 366 | dev: true 367 | 368 | /@esbuild/aix-ppc64@0.20.2: 369 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 370 | engines: {node: '>=12'} 371 | cpu: [ppc64] 372 | os: [aix] 373 | requiresBuild: true 374 | dev: true 375 | optional: true 376 | 377 | /@esbuild/android-arm64@0.20.2: 378 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 379 | engines: {node: '>=12'} 380 | cpu: [arm64] 381 | os: [android] 382 | requiresBuild: true 383 | dev: true 384 | optional: true 385 | 386 | /@esbuild/android-arm@0.20.2: 387 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 388 | engines: {node: '>=12'} 389 | cpu: [arm] 390 | os: [android] 391 | requiresBuild: true 392 | dev: true 393 | optional: true 394 | 395 | /@esbuild/android-x64@0.20.2: 396 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 397 | engines: {node: '>=12'} 398 | cpu: [x64] 399 | os: [android] 400 | requiresBuild: true 401 | dev: true 402 | optional: true 403 | 404 | /@esbuild/darwin-arm64@0.20.2: 405 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 406 | engines: {node: '>=12'} 407 | cpu: [arm64] 408 | os: [darwin] 409 | requiresBuild: true 410 | dev: true 411 | optional: true 412 | 413 | /@esbuild/darwin-x64@0.20.2: 414 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 415 | engines: {node: '>=12'} 416 | cpu: [x64] 417 | os: [darwin] 418 | requiresBuild: true 419 | dev: true 420 | optional: true 421 | 422 | /@esbuild/freebsd-arm64@0.20.2: 423 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 424 | engines: {node: '>=12'} 425 | cpu: [arm64] 426 | os: [freebsd] 427 | requiresBuild: true 428 | dev: true 429 | optional: true 430 | 431 | /@esbuild/freebsd-x64@0.20.2: 432 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 433 | engines: {node: '>=12'} 434 | cpu: [x64] 435 | os: [freebsd] 436 | requiresBuild: true 437 | dev: true 438 | optional: true 439 | 440 | /@esbuild/linux-arm64@0.20.2: 441 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 442 | engines: {node: '>=12'} 443 | cpu: [arm64] 444 | os: [linux] 445 | requiresBuild: true 446 | dev: true 447 | optional: true 448 | 449 | /@esbuild/linux-arm@0.20.2: 450 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 451 | engines: {node: '>=12'} 452 | cpu: [arm] 453 | os: [linux] 454 | requiresBuild: true 455 | dev: true 456 | optional: true 457 | 458 | /@esbuild/linux-ia32@0.20.2: 459 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 460 | engines: {node: '>=12'} 461 | cpu: [ia32] 462 | os: [linux] 463 | requiresBuild: true 464 | dev: true 465 | optional: true 466 | 467 | /@esbuild/linux-loong64@0.20.2: 468 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 469 | engines: {node: '>=12'} 470 | cpu: [loong64] 471 | os: [linux] 472 | requiresBuild: true 473 | dev: true 474 | optional: true 475 | 476 | /@esbuild/linux-mips64el@0.20.2: 477 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 478 | engines: {node: '>=12'} 479 | cpu: [mips64el] 480 | os: [linux] 481 | requiresBuild: true 482 | dev: true 483 | optional: true 484 | 485 | /@esbuild/linux-ppc64@0.20.2: 486 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 487 | engines: {node: '>=12'} 488 | cpu: [ppc64] 489 | os: [linux] 490 | requiresBuild: true 491 | dev: true 492 | optional: true 493 | 494 | /@esbuild/linux-riscv64@0.20.2: 495 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 496 | engines: {node: '>=12'} 497 | cpu: [riscv64] 498 | os: [linux] 499 | requiresBuild: true 500 | dev: true 501 | optional: true 502 | 503 | /@esbuild/linux-s390x@0.20.2: 504 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 505 | engines: {node: '>=12'} 506 | cpu: [s390x] 507 | os: [linux] 508 | requiresBuild: true 509 | dev: true 510 | optional: true 511 | 512 | /@esbuild/linux-x64@0.20.2: 513 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 514 | engines: {node: '>=12'} 515 | cpu: [x64] 516 | os: [linux] 517 | requiresBuild: true 518 | dev: true 519 | optional: true 520 | 521 | /@esbuild/netbsd-x64@0.20.2: 522 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 523 | engines: {node: '>=12'} 524 | cpu: [x64] 525 | os: [netbsd] 526 | requiresBuild: true 527 | dev: true 528 | optional: true 529 | 530 | /@esbuild/openbsd-x64@0.20.2: 531 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 532 | engines: {node: '>=12'} 533 | cpu: [x64] 534 | os: [openbsd] 535 | requiresBuild: true 536 | dev: true 537 | optional: true 538 | 539 | /@esbuild/sunos-x64@0.20.2: 540 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 541 | engines: {node: '>=12'} 542 | cpu: [x64] 543 | os: [sunos] 544 | requiresBuild: true 545 | dev: true 546 | optional: true 547 | 548 | /@esbuild/win32-arm64@0.20.2: 549 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 550 | engines: {node: '>=12'} 551 | cpu: [arm64] 552 | os: [win32] 553 | requiresBuild: true 554 | dev: true 555 | optional: true 556 | 557 | /@esbuild/win32-ia32@0.20.2: 558 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 559 | engines: {node: '>=12'} 560 | cpu: [ia32] 561 | os: [win32] 562 | requiresBuild: true 563 | dev: true 564 | optional: true 565 | 566 | /@esbuild/win32-x64@0.20.2: 567 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 568 | engines: {node: '>=12'} 569 | cpu: [x64] 570 | os: [win32] 571 | requiresBuild: true 572 | dev: true 573 | optional: true 574 | 575 | /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): 576 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 577 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 578 | peerDependencies: 579 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 580 | dependencies: 581 | eslint: 8.57.0 582 | eslint-visitor-keys: 3.4.3 583 | dev: true 584 | 585 | /@eslint-community/regexpp@4.10.0: 586 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 587 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 588 | dev: true 589 | 590 | /@eslint/eslintrc@2.1.4: 591 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 592 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 593 | dependencies: 594 | ajv: 6.12.6 595 | debug: 4.3.4 596 | espree: 9.6.1 597 | globals: 13.24.0 598 | ignore: 5.3.1 599 | import-fresh: 3.3.0 600 | js-yaml: 4.1.0 601 | minimatch: 3.1.2 602 | strip-json-comments: 3.1.1 603 | transitivePeerDependencies: 604 | - supports-color 605 | dev: true 606 | 607 | /@eslint/js@8.57.0: 608 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 609 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 610 | dev: true 611 | 612 | /@floating-ui/core@1.6.0: 613 | resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} 614 | dependencies: 615 | '@floating-ui/utils': 0.2.1 616 | dev: false 617 | 618 | /@floating-ui/dom@1.6.3: 619 | resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} 620 | dependencies: 621 | '@floating-ui/core': 1.6.0 622 | '@floating-ui/utils': 0.2.1 623 | dev: false 624 | 625 | /@floating-ui/react-dom@2.0.8(react-dom@18.2.0)(react@18.2.0): 626 | resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} 627 | peerDependencies: 628 | react: '>=16.8.0' 629 | react-dom: '>=16.8.0' 630 | dependencies: 631 | '@floating-ui/dom': 1.6.3 632 | react: 18.2.0 633 | react-dom: 18.2.0(react@18.2.0) 634 | dev: false 635 | 636 | /@floating-ui/utils@0.2.1: 637 | resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} 638 | dev: false 639 | 640 | /@humanwhocodes/config-array@0.11.14: 641 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 642 | engines: {node: '>=10.10.0'} 643 | dependencies: 644 | '@humanwhocodes/object-schema': 2.0.3 645 | debug: 4.3.4 646 | minimatch: 3.1.2 647 | transitivePeerDependencies: 648 | - supports-color 649 | dev: true 650 | 651 | /@humanwhocodes/module-importer@1.0.1: 652 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 653 | engines: {node: '>=12.22'} 654 | dev: true 655 | 656 | /@humanwhocodes/object-schema@2.0.3: 657 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 658 | dev: true 659 | 660 | /@isaacs/cliui@8.0.2: 661 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 662 | engines: {node: '>=12'} 663 | dependencies: 664 | string-width: 5.1.2 665 | string-width-cjs: /string-width@4.2.3 666 | strip-ansi: 7.1.0 667 | strip-ansi-cjs: /strip-ansi@6.0.1 668 | wrap-ansi: 8.1.0 669 | wrap-ansi-cjs: /wrap-ansi@7.0.0 670 | 671 | /@jridgewell/gen-mapping@0.3.5: 672 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 673 | engines: {node: '>=6.0.0'} 674 | dependencies: 675 | '@jridgewell/set-array': 1.2.1 676 | '@jridgewell/sourcemap-codec': 1.4.15 677 | '@jridgewell/trace-mapping': 0.3.25 678 | 679 | /@jridgewell/resolve-uri@3.1.2: 680 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 681 | engines: {node: '>=6.0.0'} 682 | 683 | /@jridgewell/set-array@1.2.1: 684 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 685 | engines: {node: '>=6.0.0'} 686 | 687 | /@jridgewell/sourcemap-codec@1.4.15: 688 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 689 | 690 | /@jridgewell/trace-mapping@0.3.25: 691 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 692 | dependencies: 693 | '@jridgewell/resolve-uri': 3.1.2 694 | '@jridgewell/sourcemap-codec': 1.4.15 695 | 696 | /@lexical/clipboard@0.14.3: 697 | resolution: {integrity: sha512-kMasHJQCNSSdD6US8XF/GJEZAgdmIUIoqwcV/7Q8jVUICYT53bcr+Rh7RxL+1c7ZpJE2rXg5KTELsUPGjs0uwA==} 698 | dependencies: 699 | '@lexical/html': 0.14.3 700 | '@lexical/list': 0.14.3 701 | '@lexical/selection': 0.14.3 702 | '@lexical/utils': 0.14.3 703 | lexical: 0.14.3 704 | dev: false 705 | 706 | /@lexical/code@0.14.3: 707 | resolution: {integrity: sha512-eBhs+TsJ5z7Vg/0e77bau86lN7R5nqO7effkPNNndn0XV2VSDpjMF+PTj4Cd1peenFlfqVivBr9gdewDrvPQng==} 708 | dependencies: 709 | '@lexical/utils': 0.14.3 710 | lexical: 0.14.3 711 | prismjs: 1.29.0 712 | dev: false 713 | 714 | /@lexical/dragon@0.14.3: 715 | resolution: {integrity: sha512-GTnt5a5Zs1f3q5Z9tC63VPzCFNAG+37ySHO+mQpVqlTsDmwSeJzFKGZyxq81tZXsKaXQZ4llc9K6I1f/XJoypw==} 716 | dependencies: 717 | lexical: 0.14.3 718 | dev: false 719 | 720 | /@lexical/hashtag@0.14.3: 721 | resolution: {integrity: sha512-BlMhegitxNscJyM0QGjnzpt7QQaiftVf80dqfiVGdgFJi9hS4wrYEsPpA7jlsZG5Q46DSw/zMRp3tpHfdU6TCQ==} 722 | dependencies: 723 | '@lexical/utils': 0.14.3 724 | lexical: 0.14.3 725 | dev: false 726 | 727 | /@lexical/history@0.14.3: 728 | resolution: {integrity: sha512-I5Ssaz+uRYsFmqN5WfKCyTkPPV1CTnEQ21vuKp8PVI4hBdlIy5aJdeQXbQhg0BdCtQVSjpm7WRGMk5ATiAXLPw==} 729 | dependencies: 730 | '@lexical/utils': 0.14.3 731 | lexical: 0.14.3 732 | dev: false 733 | 734 | /@lexical/html@0.14.3: 735 | resolution: {integrity: sha512-ID4RdHdOXv2qIg6cqNhbYiqgcV5aEJFAV+zZ14CMpxPlW71tiRlmy/Pp4WqCFgjnZ2GZRq34+kag+cT2H69ILQ==} 736 | dependencies: 737 | '@lexical/selection': 0.14.3 738 | '@lexical/utils': 0.14.3 739 | lexical: 0.14.3 740 | dev: false 741 | 742 | /@lexical/link@0.14.3: 743 | resolution: {integrity: sha512-txhuzcx2OfOtZ/fy9cgauDGW1gi2vSU0iQdde4i0UP2KK4ltioA9eFkjqAacGiPvwJ8w2CZV9q5Ck4DgFAKQ7w==} 744 | dependencies: 745 | '@lexical/utils': 0.14.3 746 | lexical: 0.14.3 747 | dev: false 748 | 749 | /@lexical/list@0.14.3: 750 | resolution: {integrity: sha512-d9ZiEkZ34DpzBNq2GkedJpXF8sIxSQvHOGhNbVvTuBvgDcCwbmXL0KY4k+xu+jMScRO/3oR7C6YZpZT3GaUO+Q==} 751 | dependencies: 752 | '@lexical/utils': 0.14.3 753 | lexical: 0.14.3 754 | dev: false 755 | 756 | /@lexical/mark@0.14.3: 757 | resolution: {integrity: sha512-HegYMuiCazmM4XXVUzteA5bOFEiWxeIZSMK98rCV7t5czYlQmgaV5PWIT5/wLnSgrJA6apa02JHLINE9CuUHlw==} 758 | dependencies: 759 | '@lexical/utils': 0.14.3 760 | lexical: 0.14.3 761 | dev: false 762 | 763 | /@lexical/markdown@0.14.3: 764 | resolution: {integrity: sha512-G97Twk0qq5Mkj7S95fFODN6D7nBZsHiXgd2QeCZQ+qbrItEsjEsM0vCtVBELpZzyl700ExfIJCA9eHrq28VNxw==} 765 | dependencies: 766 | '@lexical/code': 0.14.3 767 | '@lexical/link': 0.14.3 768 | '@lexical/list': 0.14.3 769 | '@lexical/rich-text': 0.14.3 770 | '@lexical/text': 0.14.3 771 | '@lexical/utils': 0.14.3 772 | lexical: 0.14.3 773 | dev: false 774 | 775 | /@lexical/offset@0.14.3: 776 | resolution: {integrity: sha512-xzyHLED9N3VPsLSpxs235W1xnh1xLl0SFqLLN9fkZs4fBLPtoPrzfYjjTMx6KgRPCa96GauAMsAaKn+JWHaD4g==} 777 | dependencies: 778 | lexical: 0.14.3 779 | dev: false 780 | 781 | /@lexical/overflow@0.14.3: 782 | resolution: {integrity: sha512-2PabHT5vCtfN1lx2d3j1AW6naGJEcjLyUxEMrPzqNZ8IDGuLbD3uRi/wS8evmFLgKkF5mqRnPPlpwGbqGg+qUw==} 783 | dependencies: 784 | lexical: 0.14.3 785 | dev: false 786 | 787 | /@lexical/plain-text@0.14.3: 788 | resolution: {integrity: sha512-Ct3sQmhc34Iuj0YWT5dlLzTcuCLAMx7uaLKb0lxb7A6bcUBPfC1eBv2KtILZ9eW/GEUCMTqYEnmixTY7vPR9AA==} 789 | dependencies: 790 | '@lexical/clipboard': 0.14.3 791 | '@lexical/selection': 0.14.3 792 | '@lexical/utils': 0.14.3 793 | lexical: 0.14.3 794 | dev: false 795 | 796 | /@lexical/react@0.14.3(react-dom@18.2.0)(react@18.2.0)(yjs@13.6.14): 797 | resolution: {integrity: sha512-sUgF7dStJTYvkS14QzlpB5XJ5p498JDSEBSADRsf0KOJsTINAQhh27vXuS8/I2FH3FanonH/RrLwSildL/FnzA==} 798 | peerDependencies: 799 | react: '>=17.x' 800 | react-dom: '>=17.x' 801 | dependencies: 802 | '@lexical/clipboard': 0.14.3 803 | '@lexical/code': 0.14.3 804 | '@lexical/dragon': 0.14.3 805 | '@lexical/hashtag': 0.14.3 806 | '@lexical/history': 0.14.3 807 | '@lexical/link': 0.14.3 808 | '@lexical/list': 0.14.3 809 | '@lexical/mark': 0.14.3 810 | '@lexical/markdown': 0.14.3 811 | '@lexical/overflow': 0.14.3 812 | '@lexical/plain-text': 0.14.3 813 | '@lexical/rich-text': 0.14.3 814 | '@lexical/selection': 0.14.3 815 | '@lexical/table': 0.14.3 816 | '@lexical/text': 0.14.3 817 | '@lexical/utils': 0.14.3 818 | '@lexical/yjs': 0.14.3(yjs@13.6.14) 819 | lexical: 0.14.3 820 | react: 18.2.0 821 | react-dom: 18.2.0(react@18.2.0) 822 | react-error-boundary: 3.1.4(react@18.2.0) 823 | transitivePeerDependencies: 824 | - yjs 825 | dev: false 826 | 827 | /@lexical/rich-text@0.14.3: 828 | resolution: {integrity: sha512-o8wGvRDyPSRcfb6bauF5lzK5u/kzCW+hAQq0ExM1e8p4GHDb0vwz9DA6NH5D0BPHb2fUgknwClHOoJX95WUA8A==} 829 | dependencies: 830 | '@lexical/clipboard': 0.14.3 831 | '@lexical/selection': 0.14.3 832 | '@lexical/utils': 0.14.3 833 | lexical: 0.14.3 834 | dev: false 835 | 836 | /@lexical/selection@0.14.3: 837 | resolution: {integrity: sha512-43EmqG6flLqFJJNZ7GCxFlx3qXy7osB3AQBgxKTthWtQeBrJPdgacctL1jhO7etTIQWP5C1DExy3opDLVKyDjg==} 838 | dependencies: 839 | lexical: 0.14.3 840 | dev: false 841 | 842 | /@lexical/table@0.14.3: 843 | resolution: {integrity: sha512-9btpU2lfAE34ucIqlMu5RiSVlxREXY7Zp+s26oFsXNoNPhW57iND96TrqwYo9FJl/6zXXfvqYxnUEcUD2dLgwQ==} 844 | dependencies: 845 | '@lexical/utils': 0.14.3 846 | lexical: 0.14.3 847 | dev: false 848 | 849 | /@lexical/text@0.14.3: 850 | resolution: {integrity: sha512-7+B9KkA37iHTlPqt6GHdfBIoaA9dQfhKrQNP9+422/CO/adCru4S94yNxiHXFq7iCvgucfuFop9M8jOfqLQbBQ==} 851 | dependencies: 852 | lexical: 0.14.3 853 | dev: false 854 | 855 | /@lexical/utils@0.14.3: 856 | resolution: {integrity: sha512-coqG2AO7QhJCM0xBlYvtETjl0il9u4HQRuc8ye3j8jMfNadVvVVWO3Fodmm/8FTPyJuxIij1Ruma9zqhlAbN6Q==} 857 | dependencies: 858 | '@lexical/list': 0.14.3 859 | '@lexical/selection': 0.14.3 860 | '@lexical/table': 0.14.3 861 | lexical: 0.14.3 862 | dev: false 863 | 864 | /@lexical/yjs@0.14.3(yjs@13.6.14): 865 | resolution: {integrity: sha512-Ju+PQJg4NjQoNzfPlQKa6A71sjgGWj5lL4cbe+4xlNoknfK3NApVeznOi3xAM7rUCr6fPBAjzF9/uwfMXR451g==} 866 | peerDependencies: 867 | yjs: '>=13.5.22' 868 | dependencies: 869 | '@lexical/offset': 0.14.3 870 | lexical: 0.14.3 871 | yjs: 13.6.14 872 | dev: false 873 | 874 | /@nodelib/fs.scandir@2.1.5: 875 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 876 | engines: {node: '>= 8'} 877 | dependencies: 878 | '@nodelib/fs.stat': 2.0.5 879 | run-parallel: 1.2.0 880 | 881 | /@nodelib/fs.stat@2.0.5: 882 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 883 | engines: {node: '>= 8'} 884 | 885 | /@nodelib/fs.walk@1.2.8: 886 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 887 | engines: {node: '>= 8'} 888 | dependencies: 889 | '@nodelib/fs.scandir': 2.1.5 890 | fastq: 1.17.1 891 | 892 | /@pkgjs/parseargs@0.11.0: 893 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 894 | engines: {node: '>=14'} 895 | requiresBuild: true 896 | optional: true 897 | 898 | /@radix-ui/number@1.0.1: 899 | resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} 900 | dependencies: 901 | '@babel/runtime': 7.24.4 902 | dev: false 903 | 904 | /@radix-ui/primitive@1.0.1: 905 | resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} 906 | dependencies: 907 | '@babel/runtime': 7.24.4 908 | dev: false 909 | 910 | /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 911 | resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} 912 | peerDependencies: 913 | '@types/react': '*' 914 | '@types/react-dom': '*' 915 | react: ^16.8 || ^17.0 || ^18.0 916 | react-dom: ^16.8 || ^17.0 || ^18.0 917 | peerDependenciesMeta: 918 | '@types/react': 919 | optional: true 920 | '@types/react-dom': 921 | optional: true 922 | dependencies: 923 | '@babel/runtime': 7.24.4 924 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 925 | '@types/react': 18.2.75 926 | '@types/react-dom': 18.2.24 927 | react: 18.2.0 928 | react-dom: 18.2.0(react@18.2.0) 929 | dev: false 930 | 931 | /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 932 | resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} 933 | peerDependencies: 934 | '@types/react': '*' 935 | '@types/react-dom': '*' 936 | react: ^16.8 || ^17.0 || ^18.0 937 | react-dom: ^16.8 || ^17.0 || ^18.0 938 | peerDependenciesMeta: 939 | '@types/react': 940 | optional: true 941 | '@types/react-dom': 942 | optional: true 943 | dependencies: 944 | '@babel/runtime': 7.24.4 945 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 946 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 947 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 948 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.75)(react@18.2.0) 949 | '@types/react': 18.2.75 950 | '@types/react-dom': 18.2.24 951 | react: 18.2.0 952 | react-dom: 18.2.0(react@18.2.0) 953 | dev: false 954 | 955 | /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.75)(react@18.2.0): 956 | resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} 957 | peerDependencies: 958 | '@types/react': '*' 959 | react: ^16.8 || ^17.0 || ^18.0 960 | peerDependenciesMeta: 961 | '@types/react': 962 | optional: true 963 | dependencies: 964 | '@babel/runtime': 7.24.4 965 | '@types/react': 18.2.75 966 | react: 18.2.0 967 | dev: false 968 | 969 | /@radix-ui/react-context@1.0.1(@types/react@18.2.75)(react@18.2.0): 970 | resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} 971 | peerDependencies: 972 | '@types/react': '*' 973 | react: ^16.8 || ^17.0 || ^18.0 974 | peerDependenciesMeta: 975 | '@types/react': 976 | optional: true 977 | dependencies: 978 | '@babel/runtime': 7.24.4 979 | '@types/react': 18.2.75 980 | react: 18.2.0 981 | dev: false 982 | 983 | /@radix-ui/react-direction@1.0.1(@types/react@18.2.75)(react@18.2.0): 984 | resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} 985 | peerDependencies: 986 | '@types/react': '*' 987 | react: ^16.8 || ^17.0 || ^18.0 988 | peerDependenciesMeta: 989 | '@types/react': 990 | optional: true 991 | dependencies: 992 | '@babel/runtime': 7.24.4 993 | '@types/react': 18.2.75 994 | react: 18.2.0 995 | dev: false 996 | 997 | /@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 998 | resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} 999 | peerDependencies: 1000 | '@types/react': '*' 1001 | '@types/react-dom': '*' 1002 | react: ^16.8 || ^17.0 || ^18.0 1003 | react-dom: ^16.8 || ^17.0 || ^18.0 1004 | peerDependenciesMeta: 1005 | '@types/react': 1006 | optional: true 1007 | '@types/react-dom': 1008 | optional: true 1009 | dependencies: 1010 | '@babel/runtime': 7.24.4 1011 | '@radix-ui/primitive': 1.0.1 1012 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1013 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1014 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1015 | '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.75)(react@18.2.0) 1016 | '@types/react': 18.2.75 1017 | '@types/react-dom': 18.2.24 1018 | react: 18.2.0 1019 | react-dom: 18.2.0(react@18.2.0) 1020 | dev: false 1021 | 1022 | /@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1023 | resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} 1024 | peerDependencies: 1025 | '@types/react': '*' 1026 | '@types/react-dom': '*' 1027 | react: ^16.8 || ^17.0 || ^18.0 1028 | react-dom: ^16.8 || ^17.0 || ^18.0 1029 | peerDependenciesMeta: 1030 | '@types/react': 1031 | optional: true 1032 | '@types/react-dom': 1033 | optional: true 1034 | dependencies: 1035 | '@babel/runtime': 7.24.4 1036 | '@radix-ui/primitive': 1.0.1 1037 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1038 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1039 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1040 | '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1041 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1042 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1043 | '@types/react': 18.2.75 1044 | '@types/react-dom': 18.2.24 1045 | react: 18.2.0 1046 | react-dom: 18.2.0(react@18.2.0) 1047 | dev: false 1048 | 1049 | /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.75)(react@18.2.0): 1050 | resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} 1051 | peerDependencies: 1052 | '@types/react': '*' 1053 | react: ^16.8 || ^17.0 || ^18.0 1054 | peerDependenciesMeta: 1055 | '@types/react': 1056 | optional: true 1057 | dependencies: 1058 | '@babel/runtime': 7.24.4 1059 | '@types/react': 18.2.75 1060 | react: 18.2.0 1061 | dev: false 1062 | 1063 | /@radix-ui/react-focus-scope@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1064 | resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} 1065 | peerDependencies: 1066 | '@types/react': '*' 1067 | '@types/react-dom': '*' 1068 | react: ^16.8 || ^17.0 || ^18.0 1069 | react-dom: ^16.8 || ^17.0 || ^18.0 1070 | peerDependenciesMeta: 1071 | '@types/react': 1072 | optional: true 1073 | '@types/react-dom': 1074 | optional: true 1075 | dependencies: 1076 | '@babel/runtime': 7.24.4 1077 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1078 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1079 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1080 | '@types/react': 18.2.75 1081 | '@types/react-dom': 18.2.24 1082 | react: 18.2.0 1083 | react-dom: 18.2.0(react@18.2.0) 1084 | dev: false 1085 | 1086 | /@radix-ui/react-icons@1.3.0(react@18.2.0): 1087 | resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} 1088 | peerDependencies: 1089 | react: ^16.x || ^17.x || ^18.x 1090 | dependencies: 1091 | react: 18.2.0 1092 | dev: false 1093 | 1094 | /@radix-ui/react-id@1.0.1(@types/react@18.2.75)(react@18.2.0): 1095 | resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} 1096 | peerDependencies: 1097 | '@types/react': '*' 1098 | react: ^16.8 || ^17.0 || ^18.0 1099 | peerDependenciesMeta: 1100 | '@types/react': 1101 | optional: true 1102 | dependencies: 1103 | '@babel/runtime': 7.24.4 1104 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1105 | '@types/react': 18.2.75 1106 | react: 18.2.0 1107 | dev: false 1108 | 1109 | /@radix-ui/react-menu@2.0.6(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1110 | resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} 1111 | peerDependencies: 1112 | '@types/react': '*' 1113 | '@types/react-dom': '*' 1114 | react: ^16.8 || ^17.0 || ^18.0 1115 | react-dom: ^16.8 || ^17.0 || ^18.0 1116 | peerDependenciesMeta: 1117 | '@types/react': 1118 | optional: true 1119 | '@types/react-dom': 1120 | optional: true 1121 | dependencies: 1122 | '@babel/runtime': 7.24.4 1123 | '@radix-ui/primitive': 1.0.1 1124 | '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1125 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1126 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1127 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1128 | '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1129 | '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1130 | '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1131 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1132 | '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1133 | '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1134 | '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1135 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1136 | '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1137 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.75)(react@18.2.0) 1138 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1139 | '@types/react': 18.2.75 1140 | '@types/react-dom': 18.2.24 1141 | aria-hidden: 1.2.4 1142 | react: 18.2.0 1143 | react-dom: 18.2.0(react@18.2.0) 1144 | react-remove-scroll: 2.5.5(@types/react@18.2.75)(react@18.2.0) 1145 | dev: false 1146 | 1147 | /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1148 | resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} 1149 | peerDependencies: 1150 | '@types/react': '*' 1151 | '@types/react-dom': '*' 1152 | react: ^16.8 || ^17.0 || ^18.0 1153 | react-dom: ^16.8 || ^17.0 || ^18.0 1154 | peerDependenciesMeta: 1155 | '@types/react': 1156 | optional: true 1157 | '@types/react-dom': 1158 | optional: true 1159 | dependencies: 1160 | '@babel/runtime': 7.24.4 1161 | '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) 1162 | '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1163 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1164 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1165 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1166 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1167 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1168 | '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1169 | '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1170 | '@radix-ui/rect': 1.0.1 1171 | '@types/react': 18.2.75 1172 | '@types/react-dom': 18.2.24 1173 | react: 18.2.0 1174 | react-dom: 18.2.0(react@18.2.0) 1175 | dev: false 1176 | 1177 | /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1178 | resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} 1179 | peerDependencies: 1180 | '@types/react': '*' 1181 | '@types/react-dom': '*' 1182 | react: ^16.8 || ^17.0 || ^18.0 1183 | react-dom: ^16.8 || ^17.0 || ^18.0 1184 | peerDependenciesMeta: 1185 | '@types/react': 1186 | optional: true 1187 | '@types/react-dom': 1188 | optional: true 1189 | dependencies: 1190 | '@babel/runtime': 7.24.4 1191 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1192 | '@types/react': 18.2.75 1193 | '@types/react-dom': 18.2.24 1194 | react: 18.2.0 1195 | react-dom: 18.2.0(react@18.2.0) 1196 | dev: false 1197 | 1198 | /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1199 | resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} 1200 | peerDependencies: 1201 | '@types/react': '*' 1202 | '@types/react-dom': '*' 1203 | react: ^16.8 || ^17.0 || ^18.0 1204 | react-dom: ^16.8 || ^17.0 || ^18.0 1205 | peerDependenciesMeta: 1206 | '@types/react': 1207 | optional: true 1208 | '@types/react-dom': 1209 | optional: true 1210 | dependencies: 1211 | '@babel/runtime': 7.24.4 1212 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1213 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1214 | '@types/react': 18.2.75 1215 | '@types/react-dom': 18.2.24 1216 | react: 18.2.0 1217 | react-dom: 18.2.0(react@18.2.0) 1218 | dev: false 1219 | 1220 | /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1221 | resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} 1222 | peerDependencies: 1223 | '@types/react': '*' 1224 | '@types/react-dom': '*' 1225 | react: ^16.8 || ^17.0 || ^18.0 1226 | react-dom: ^16.8 || ^17.0 || ^18.0 1227 | peerDependenciesMeta: 1228 | '@types/react': 1229 | optional: true 1230 | '@types/react-dom': 1231 | optional: true 1232 | dependencies: 1233 | '@babel/runtime': 7.24.4 1234 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.75)(react@18.2.0) 1235 | '@types/react': 18.2.75 1236 | '@types/react-dom': 18.2.24 1237 | react: 18.2.0 1238 | react-dom: 18.2.0(react@18.2.0) 1239 | dev: false 1240 | 1241 | /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1242 | resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} 1243 | peerDependencies: 1244 | '@types/react': '*' 1245 | '@types/react-dom': '*' 1246 | react: ^16.8 || ^17.0 || ^18.0 1247 | react-dom: ^16.8 || ^17.0 || ^18.0 1248 | peerDependenciesMeta: 1249 | '@types/react': 1250 | optional: true 1251 | '@types/react-dom': 1252 | optional: true 1253 | dependencies: 1254 | '@babel/runtime': 7.24.4 1255 | '@radix-ui/primitive': 1.0.1 1256 | '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1257 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1258 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1259 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1260 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1261 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1262 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1263 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1264 | '@types/react': 18.2.75 1265 | '@types/react-dom': 18.2.24 1266 | react: 18.2.0 1267 | react-dom: 18.2.0(react@18.2.0) 1268 | dev: false 1269 | 1270 | /@radix-ui/react-select@2.0.0(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1271 | resolution: {integrity: sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==} 1272 | peerDependencies: 1273 | '@types/react': '*' 1274 | '@types/react-dom': '*' 1275 | react: ^16.8 || ^17.0 || ^18.0 1276 | react-dom: ^16.8 || ^17.0 || ^18.0 1277 | peerDependenciesMeta: 1278 | '@types/react': 1279 | optional: true 1280 | '@types/react-dom': 1281 | optional: true 1282 | dependencies: 1283 | '@babel/runtime': 7.24.4 1284 | '@radix-ui/number': 1.0.1 1285 | '@radix-ui/primitive': 1.0.1 1286 | '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1287 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1288 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1289 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1290 | '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1291 | '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1292 | '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1293 | '@radix-ui/react-id': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1294 | '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1295 | '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1296 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1297 | '@radix-ui/react-slot': 1.0.2(@types/react@18.2.75)(react@18.2.0) 1298 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1299 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1300 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1301 | '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1302 | '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1303 | '@types/react': 18.2.75 1304 | '@types/react-dom': 18.2.24 1305 | aria-hidden: 1.2.4 1306 | react: 18.2.0 1307 | react-dom: 18.2.0(react@18.2.0) 1308 | react-remove-scroll: 2.5.5(@types/react@18.2.75)(react@18.2.0) 1309 | dev: false 1310 | 1311 | /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1312 | resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} 1313 | peerDependencies: 1314 | '@types/react': '*' 1315 | '@types/react-dom': '*' 1316 | react: ^16.8 || ^17.0 || ^18.0 1317 | react-dom: ^16.8 || ^17.0 || ^18.0 1318 | peerDependenciesMeta: 1319 | '@types/react': 1320 | optional: true 1321 | '@types/react-dom': 1322 | optional: true 1323 | dependencies: 1324 | '@babel/runtime': 7.24.4 1325 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1326 | '@types/react': 18.2.75 1327 | '@types/react-dom': 18.2.24 1328 | react: 18.2.0 1329 | react-dom: 18.2.0(react@18.2.0) 1330 | dev: false 1331 | 1332 | /@radix-ui/react-slot@1.0.2(@types/react@18.2.75)(react@18.2.0): 1333 | resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} 1334 | peerDependencies: 1335 | '@types/react': '*' 1336 | react: ^16.8 || ^17.0 || ^18.0 1337 | peerDependenciesMeta: 1338 | '@types/react': 1339 | optional: true 1340 | dependencies: 1341 | '@babel/runtime': 7.24.4 1342 | '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1343 | '@types/react': 18.2.75 1344 | react: 18.2.0 1345 | dev: false 1346 | 1347 | /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1348 | resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} 1349 | peerDependencies: 1350 | '@types/react': '*' 1351 | '@types/react-dom': '*' 1352 | react: ^16.8 || ^17.0 || ^18.0 1353 | react-dom: ^16.8 || ^17.0 || ^18.0 1354 | peerDependenciesMeta: 1355 | '@types/react': 1356 | optional: true 1357 | '@types/react-dom': 1358 | optional: true 1359 | dependencies: 1360 | '@babel/runtime': 7.24.4 1361 | '@radix-ui/primitive': 1.0.1 1362 | '@radix-ui/react-context': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1363 | '@radix-ui/react-direction': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1364 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1365 | '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1366 | '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1367 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1368 | '@types/react': 18.2.75 1369 | '@types/react-dom': 18.2.24 1370 | react: 18.2.0 1371 | react-dom: 18.2.0(react@18.2.0) 1372 | dev: false 1373 | 1374 | /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1375 | resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} 1376 | peerDependencies: 1377 | '@types/react': '*' 1378 | '@types/react-dom': '*' 1379 | react: ^16.8 || ^17.0 || ^18.0 1380 | react-dom: ^16.8 || ^17.0 || ^18.0 1381 | peerDependenciesMeta: 1382 | '@types/react': 1383 | optional: true 1384 | '@types/react-dom': 1385 | optional: true 1386 | dependencies: 1387 | '@babel/runtime': 7.24.4 1388 | '@radix-ui/primitive': 1.0.1 1389 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1390 | '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1391 | '@types/react': 18.2.75 1392 | '@types/react-dom': 18.2.24 1393 | react: 18.2.0 1394 | react-dom: 18.2.0(react@18.2.0) 1395 | dev: false 1396 | 1397 | /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.75)(react@18.2.0): 1398 | resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} 1399 | peerDependencies: 1400 | '@types/react': '*' 1401 | react: ^16.8 || ^17.0 || ^18.0 1402 | peerDependenciesMeta: 1403 | '@types/react': 1404 | optional: true 1405 | dependencies: 1406 | '@babel/runtime': 7.24.4 1407 | '@types/react': 18.2.75 1408 | react: 18.2.0 1409 | dev: false 1410 | 1411 | /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.75)(react@18.2.0): 1412 | resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} 1413 | peerDependencies: 1414 | '@types/react': '*' 1415 | react: ^16.8 || ^17.0 || ^18.0 1416 | peerDependenciesMeta: 1417 | '@types/react': 1418 | optional: true 1419 | dependencies: 1420 | '@babel/runtime': 7.24.4 1421 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1422 | '@types/react': 18.2.75 1423 | react: 18.2.0 1424 | dev: false 1425 | 1426 | /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.75)(react@18.2.0): 1427 | resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} 1428 | peerDependencies: 1429 | '@types/react': '*' 1430 | react: ^16.8 || ^17.0 || ^18.0 1431 | peerDependenciesMeta: 1432 | '@types/react': 1433 | optional: true 1434 | dependencies: 1435 | '@babel/runtime': 7.24.4 1436 | '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1437 | '@types/react': 18.2.75 1438 | react: 18.2.0 1439 | dev: false 1440 | 1441 | /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.75)(react@18.2.0): 1442 | resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} 1443 | peerDependencies: 1444 | '@types/react': '*' 1445 | react: ^16.8 || ^17.0 || ^18.0 1446 | peerDependenciesMeta: 1447 | '@types/react': 1448 | optional: true 1449 | dependencies: 1450 | '@babel/runtime': 7.24.4 1451 | '@types/react': 18.2.75 1452 | react: 18.2.0 1453 | dev: false 1454 | 1455 | /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.75)(react@18.2.0): 1456 | resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} 1457 | peerDependencies: 1458 | '@types/react': '*' 1459 | react: ^16.8 || ^17.0 || ^18.0 1460 | peerDependenciesMeta: 1461 | '@types/react': 1462 | optional: true 1463 | dependencies: 1464 | '@babel/runtime': 7.24.4 1465 | '@types/react': 18.2.75 1466 | react: 18.2.0 1467 | dev: false 1468 | 1469 | /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.75)(react@18.2.0): 1470 | resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} 1471 | peerDependencies: 1472 | '@types/react': '*' 1473 | react: ^16.8 || ^17.0 || ^18.0 1474 | peerDependenciesMeta: 1475 | '@types/react': 1476 | optional: true 1477 | dependencies: 1478 | '@babel/runtime': 7.24.4 1479 | '@radix-ui/rect': 1.0.1 1480 | '@types/react': 18.2.75 1481 | react: 18.2.0 1482 | dev: false 1483 | 1484 | /@radix-ui/react-use-size@1.0.1(@types/react@18.2.75)(react@18.2.0): 1485 | resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} 1486 | peerDependencies: 1487 | '@types/react': '*' 1488 | react: ^16.8 || ^17.0 || ^18.0 1489 | peerDependenciesMeta: 1490 | '@types/react': 1491 | optional: true 1492 | dependencies: 1493 | '@babel/runtime': 7.24.4 1494 | '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.75)(react@18.2.0) 1495 | '@types/react': 18.2.75 1496 | react: 18.2.0 1497 | dev: false 1498 | 1499 | /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0): 1500 | resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} 1501 | peerDependencies: 1502 | '@types/react': '*' 1503 | '@types/react-dom': '*' 1504 | react: ^16.8 || ^17.0 || ^18.0 1505 | react-dom: ^16.8 || ^17.0 || ^18.0 1506 | peerDependenciesMeta: 1507 | '@types/react': 1508 | optional: true 1509 | '@types/react-dom': 1510 | optional: true 1511 | dependencies: 1512 | '@babel/runtime': 7.24.4 1513 | '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.75)(react-dom@18.2.0)(react@18.2.0) 1514 | '@types/react': 18.2.75 1515 | '@types/react-dom': 18.2.24 1516 | react: 18.2.0 1517 | react-dom: 18.2.0(react@18.2.0) 1518 | dev: false 1519 | 1520 | /@radix-ui/rect@1.0.1: 1521 | resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} 1522 | dependencies: 1523 | '@babel/runtime': 7.24.4 1524 | dev: false 1525 | 1526 | /@rollup/rollup-android-arm-eabi@4.14.1: 1527 | resolution: {integrity: sha512-fH8/o8nSUek8ceQnT7K4EQbSiV7jgkHq81m9lWZFIXjJ7lJzpWXbQFpT/Zh6OZYnpFykvzC3fbEvEAFZu03dPA==} 1528 | cpu: [arm] 1529 | os: [android] 1530 | requiresBuild: true 1531 | dev: true 1532 | optional: true 1533 | 1534 | /@rollup/rollup-android-arm64@4.14.1: 1535 | resolution: {integrity: sha512-Y/9OHLjzkunF+KGEoJr3heiD5X9OLa8sbT1lm0NYeKyaM3oMhhQFvPB0bNZYJwlq93j8Z6wSxh9+cyKQaxS7PQ==} 1536 | cpu: [arm64] 1537 | os: [android] 1538 | requiresBuild: true 1539 | dev: true 1540 | optional: true 1541 | 1542 | /@rollup/rollup-darwin-arm64@4.14.1: 1543 | resolution: {integrity: sha512-+kecg3FY84WadgcuSVm6llrABOdQAEbNdnpi5X3UwWiFVhZIZvKgGrF7kmLguvxHNQy+UuRV66cLVl3S+Rkt+Q==} 1544 | cpu: [arm64] 1545 | os: [darwin] 1546 | requiresBuild: true 1547 | dev: true 1548 | optional: true 1549 | 1550 | /@rollup/rollup-darwin-x64@4.14.1: 1551 | resolution: {integrity: sha512-2pYRzEjVqq2TB/UNv47BV/8vQiXkFGVmPFwJb+1E0IFFZbIX8/jo1olxqqMbo6xCXf8kabANhp5bzCij2tFLUA==} 1552 | cpu: [x64] 1553 | os: [darwin] 1554 | requiresBuild: true 1555 | dev: true 1556 | optional: true 1557 | 1558 | /@rollup/rollup-linux-arm-gnueabihf@4.14.1: 1559 | resolution: {integrity: sha512-mS6wQ6Do6/wmrF9aTFVpIJ3/IDXhg1EZcQFYHZLHqw6AzMBjTHWnCG35HxSqUNphh0EHqSM6wRTT8HsL1C0x5g==} 1560 | cpu: [arm] 1561 | os: [linux] 1562 | requiresBuild: true 1563 | dev: true 1564 | optional: true 1565 | 1566 | /@rollup/rollup-linux-arm64-gnu@4.14.1: 1567 | resolution: {integrity: sha512-p9rGKYkHdFMzhckOTFubfxgyIO1vw//7IIjBBRVzyZebWlzRLeNhqxuSaZ7kCEKVkm/kuC9fVRW9HkC/zNRG2w==} 1568 | cpu: [arm64] 1569 | os: [linux] 1570 | requiresBuild: true 1571 | dev: true 1572 | optional: true 1573 | 1574 | /@rollup/rollup-linux-arm64-musl@4.14.1: 1575 | resolution: {integrity: sha512-nDY6Yz5xS/Y4M2i9JLQd3Rofh5OR8Bn8qe3Mv/qCVpHFlwtZSBYSPaU4mrGazWkXrdQ98GB//H0BirGR/SKFSw==} 1576 | cpu: [arm64] 1577 | os: [linux] 1578 | requiresBuild: true 1579 | dev: true 1580 | optional: true 1581 | 1582 | /@rollup/rollup-linux-powerpc64le-gnu@4.14.1: 1583 | resolution: {integrity: sha512-im7HE4VBL+aDswvcmfx88Mp1soqL9OBsdDBU8NqDEYtkri0qV0THhQsvZtZeNNlLeCUQ16PZyv7cqutjDF35qw==} 1584 | cpu: [ppc64le] 1585 | os: [linux] 1586 | requiresBuild: true 1587 | dev: true 1588 | optional: true 1589 | 1590 | /@rollup/rollup-linux-riscv64-gnu@4.14.1: 1591 | resolution: {integrity: sha512-RWdiHuAxWmzPJgaHJdpvUUlDz8sdQz4P2uv367T2JocdDa98iRw2UjIJ4QxSyt077mXZT2X6pKfT2iYtVEvOFw==} 1592 | cpu: [riscv64] 1593 | os: [linux] 1594 | requiresBuild: true 1595 | dev: true 1596 | optional: true 1597 | 1598 | /@rollup/rollup-linux-s390x-gnu@4.14.1: 1599 | resolution: {integrity: sha512-VMgaGQ5zRX6ZqV/fas65/sUGc9cPmsntq2FiGmayW9KMNfWVG/j0BAqImvU4KTeOOgYSf1F+k6at1UfNONuNjA==} 1600 | cpu: [s390x] 1601 | os: [linux] 1602 | requiresBuild: true 1603 | dev: true 1604 | optional: true 1605 | 1606 | /@rollup/rollup-linux-x64-gnu@4.14.1: 1607 | resolution: {integrity: sha512-9Q7DGjZN+hTdJomaQ3Iub4m6VPu1r94bmK2z3UeWP3dGUecRC54tmVu9vKHTm1bOt3ASoYtEz6JSRLFzrysKlA==} 1608 | cpu: [x64] 1609 | os: [linux] 1610 | requiresBuild: true 1611 | dev: true 1612 | optional: true 1613 | 1614 | /@rollup/rollup-linux-x64-musl@4.14.1: 1615 | resolution: {integrity: sha512-JNEG/Ti55413SsreTguSx0LOVKX902OfXIKVg+TCXO6Gjans/k9O6ww9q3oLGjNDaTLxM+IHFMeXy/0RXL5R/g==} 1616 | cpu: [x64] 1617 | os: [linux] 1618 | requiresBuild: true 1619 | dev: true 1620 | optional: true 1621 | 1622 | /@rollup/rollup-win32-arm64-msvc@4.14.1: 1623 | resolution: {integrity: sha512-ryS22I9y0mumlLNwDFYZRDFLwWh3aKaC72CWjFcFvxK0U6v/mOkM5Up1bTbCRAhv3kEIwW2ajROegCIQViUCeA==} 1624 | cpu: [arm64] 1625 | os: [win32] 1626 | requiresBuild: true 1627 | dev: true 1628 | optional: true 1629 | 1630 | /@rollup/rollup-win32-ia32-msvc@4.14.1: 1631 | resolution: {integrity: sha512-TdloItiGk+T0mTxKx7Hp279xy30LspMso+GzQvV2maYePMAWdmrzqSNZhUpPj3CGw12aGj57I026PgLCTu8CGg==} 1632 | cpu: [ia32] 1633 | os: [win32] 1634 | requiresBuild: true 1635 | dev: true 1636 | optional: true 1637 | 1638 | /@rollup/rollup-win32-x64-msvc@4.14.1: 1639 | resolution: {integrity: sha512-wQGI+LY/Py20zdUPq+XCem7JcPOyzIJBm3dli+56DJsQOHbnXZFEwgmnC6el1TPAfC8lBT3m+z69RmLykNUbew==} 1640 | cpu: [x64] 1641 | os: [win32] 1642 | requiresBuild: true 1643 | dev: true 1644 | optional: true 1645 | 1646 | /@tailwindcss/typography@0.5.12(tailwindcss@3.4.3): 1647 | resolution: {integrity: sha512-CNwpBpconcP7ppxmuq3qvaCxiRWnbhANpY/ruH4L5qs2GCiVDJXde/pjj2HWPV1+Q4G9+V/etrwUYopdcjAlyg==} 1648 | peerDependencies: 1649 | tailwindcss: '>=3.0.0 || insiders' 1650 | dependencies: 1651 | lodash.castarray: 4.4.0 1652 | lodash.isplainobject: 4.0.6 1653 | lodash.merge: 4.6.2 1654 | postcss-selector-parser: 6.0.10 1655 | tailwindcss: 3.4.3 1656 | dev: true 1657 | 1658 | /@types/babel__core@7.20.5: 1659 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 1660 | dependencies: 1661 | '@babel/parser': 7.24.4 1662 | '@babel/types': 7.24.0 1663 | '@types/babel__generator': 7.6.8 1664 | '@types/babel__template': 7.4.4 1665 | '@types/babel__traverse': 7.20.5 1666 | dev: true 1667 | 1668 | /@types/babel__generator@7.6.8: 1669 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 1670 | dependencies: 1671 | '@babel/types': 7.24.0 1672 | dev: true 1673 | 1674 | /@types/babel__template@7.4.4: 1675 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 1676 | dependencies: 1677 | '@babel/parser': 7.24.4 1678 | '@babel/types': 7.24.0 1679 | dev: true 1680 | 1681 | /@types/babel__traverse@7.20.5: 1682 | resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} 1683 | dependencies: 1684 | '@babel/types': 7.24.0 1685 | dev: true 1686 | 1687 | /@types/estree@1.0.5: 1688 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 1689 | dev: true 1690 | 1691 | /@types/json-schema@7.0.15: 1692 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 1693 | dev: true 1694 | 1695 | /@types/node@20.12.7: 1696 | resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} 1697 | dependencies: 1698 | undici-types: 5.26.5 1699 | dev: true 1700 | 1701 | /@types/prop-types@15.7.12: 1702 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 1703 | 1704 | /@types/react-dom@18.2.24: 1705 | resolution: {integrity: sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==} 1706 | dependencies: 1707 | '@types/react': 18.2.75 1708 | 1709 | /@types/react@18.2.75: 1710 | resolution: {integrity: sha512-+DNnF7yc5y0bHkBTiLKqXFe+L4B3nvOphiMY3tuA5X10esmjqk7smyBZzbGTy2vsiy/Bnzj8yFIBL8xhRacoOg==} 1711 | dependencies: 1712 | '@types/prop-types': 15.7.12 1713 | csstype: 3.1.3 1714 | 1715 | /@types/semver@7.5.8: 1716 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 1717 | dev: true 1718 | 1719 | /@typescript-eslint/eslint-plugin@7.6.0(@typescript-eslint/parser@7.6.0)(eslint@8.57.0)(typescript@5.4.4): 1720 | resolution: {integrity: sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==} 1721 | engines: {node: ^18.18.0 || >=20.0.0} 1722 | peerDependencies: 1723 | '@typescript-eslint/parser': ^7.0.0 1724 | eslint: ^8.56.0 1725 | typescript: '*' 1726 | peerDependenciesMeta: 1727 | typescript: 1728 | optional: true 1729 | dependencies: 1730 | '@eslint-community/regexpp': 4.10.0 1731 | '@typescript-eslint/parser': 7.6.0(eslint@8.57.0)(typescript@5.4.4) 1732 | '@typescript-eslint/scope-manager': 7.6.0 1733 | '@typescript-eslint/type-utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) 1734 | '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) 1735 | '@typescript-eslint/visitor-keys': 7.6.0 1736 | debug: 4.3.4 1737 | eslint: 8.57.0 1738 | graphemer: 1.4.0 1739 | ignore: 5.3.1 1740 | natural-compare: 1.4.0 1741 | semver: 7.6.0 1742 | ts-api-utils: 1.3.0(typescript@5.4.4) 1743 | typescript: 5.4.4 1744 | transitivePeerDependencies: 1745 | - supports-color 1746 | dev: true 1747 | 1748 | /@typescript-eslint/parser@7.6.0(eslint@8.57.0)(typescript@5.4.4): 1749 | resolution: {integrity: sha512-usPMPHcwX3ZoPWnBnhhorc14NJw9J4HpSXQX4urF2TPKG0au0XhJoZyX62fmvdHONUkmyUe74Hzm1//XA+BoYg==} 1750 | engines: {node: ^18.18.0 || >=20.0.0} 1751 | peerDependencies: 1752 | eslint: ^8.56.0 1753 | typescript: '*' 1754 | peerDependenciesMeta: 1755 | typescript: 1756 | optional: true 1757 | dependencies: 1758 | '@typescript-eslint/scope-manager': 7.6.0 1759 | '@typescript-eslint/types': 7.6.0 1760 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1761 | '@typescript-eslint/visitor-keys': 7.6.0 1762 | debug: 4.3.4 1763 | eslint: 8.57.0 1764 | typescript: 5.4.4 1765 | transitivePeerDependencies: 1766 | - supports-color 1767 | dev: true 1768 | 1769 | /@typescript-eslint/scope-manager@7.6.0: 1770 | resolution: {integrity: sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==} 1771 | engines: {node: ^18.18.0 || >=20.0.0} 1772 | dependencies: 1773 | '@typescript-eslint/types': 7.6.0 1774 | '@typescript-eslint/visitor-keys': 7.6.0 1775 | dev: true 1776 | 1777 | /@typescript-eslint/type-utils@7.6.0(eslint@8.57.0)(typescript@5.4.4): 1778 | resolution: {integrity: sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==} 1779 | engines: {node: ^18.18.0 || >=20.0.0} 1780 | peerDependencies: 1781 | eslint: ^8.56.0 1782 | typescript: '*' 1783 | peerDependenciesMeta: 1784 | typescript: 1785 | optional: true 1786 | dependencies: 1787 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1788 | '@typescript-eslint/utils': 7.6.0(eslint@8.57.0)(typescript@5.4.4) 1789 | debug: 4.3.4 1790 | eslint: 8.57.0 1791 | ts-api-utils: 1.3.0(typescript@5.4.4) 1792 | typescript: 5.4.4 1793 | transitivePeerDependencies: 1794 | - supports-color 1795 | dev: true 1796 | 1797 | /@typescript-eslint/types@7.6.0: 1798 | resolution: {integrity: sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==} 1799 | engines: {node: ^18.18.0 || >=20.0.0} 1800 | dev: true 1801 | 1802 | /@typescript-eslint/typescript-estree@7.6.0(typescript@5.4.4): 1803 | resolution: {integrity: sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==} 1804 | engines: {node: ^18.18.0 || >=20.0.0} 1805 | peerDependencies: 1806 | typescript: '*' 1807 | peerDependenciesMeta: 1808 | typescript: 1809 | optional: true 1810 | dependencies: 1811 | '@typescript-eslint/types': 7.6.0 1812 | '@typescript-eslint/visitor-keys': 7.6.0 1813 | debug: 4.3.4 1814 | globby: 11.1.0 1815 | is-glob: 4.0.3 1816 | minimatch: 9.0.4 1817 | semver: 7.6.0 1818 | ts-api-utils: 1.3.0(typescript@5.4.4) 1819 | typescript: 5.4.4 1820 | transitivePeerDependencies: 1821 | - supports-color 1822 | dev: true 1823 | 1824 | /@typescript-eslint/utils@7.6.0(eslint@8.57.0)(typescript@5.4.4): 1825 | resolution: {integrity: sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==} 1826 | engines: {node: ^18.18.0 || >=20.0.0} 1827 | peerDependencies: 1828 | eslint: ^8.56.0 1829 | dependencies: 1830 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1831 | '@types/json-schema': 7.0.15 1832 | '@types/semver': 7.5.8 1833 | '@typescript-eslint/scope-manager': 7.6.0 1834 | '@typescript-eslint/types': 7.6.0 1835 | '@typescript-eslint/typescript-estree': 7.6.0(typescript@5.4.4) 1836 | eslint: 8.57.0 1837 | semver: 7.6.0 1838 | transitivePeerDependencies: 1839 | - supports-color 1840 | - typescript 1841 | dev: true 1842 | 1843 | /@typescript-eslint/visitor-keys@7.6.0: 1844 | resolution: {integrity: sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==} 1845 | engines: {node: ^18.18.0 || >=20.0.0} 1846 | dependencies: 1847 | '@typescript-eslint/types': 7.6.0 1848 | eslint-visitor-keys: 3.4.3 1849 | dev: true 1850 | 1851 | /@ungap/structured-clone@1.2.0: 1852 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 1853 | dev: true 1854 | 1855 | /@vitejs/plugin-react@4.2.1(vite@5.2.8): 1856 | resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} 1857 | engines: {node: ^14.18.0 || >=16.0.0} 1858 | peerDependencies: 1859 | vite: ^4.2.0 || ^5.0.0 1860 | dependencies: 1861 | '@babel/core': 7.24.4 1862 | '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) 1863 | '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) 1864 | '@types/babel__core': 7.20.5 1865 | react-refresh: 0.14.0 1866 | vite: 5.2.8(@types/node@20.12.7) 1867 | transitivePeerDependencies: 1868 | - supports-color 1869 | dev: true 1870 | 1871 | /acorn-jsx@5.3.2(acorn@8.11.3): 1872 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1873 | peerDependencies: 1874 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1875 | dependencies: 1876 | acorn: 8.11.3 1877 | dev: true 1878 | 1879 | /acorn@8.11.3: 1880 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1881 | engines: {node: '>=0.4.0'} 1882 | hasBin: true 1883 | dev: true 1884 | 1885 | /ajv@6.12.6: 1886 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1887 | dependencies: 1888 | fast-deep-equal: 3.1.3 1889 | fast-json-stable-stringify: 2.1.0 1890 | json-schema-traverse: 0.4.1 1891 | uri-js: 4.4.1 1892 | dev: true 1893 | 1894 | /ansi-regex@5.0.1: 1895 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1896 | engines: {node: '>=8'} 1897 | 1898 | /ansi-regex@6.0.1: 1899 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 1900 | engines: {node: '>=12'} 1901 | 1902 | /ansi-styles@3.2.1: 1903 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1904 | engines: {node: '>=4'} 1905 | dependencies: 1906 | color-convert: 1.9.3 1907 | dev: true 1908 | 1909 | /ansi-styles@4.3.0: 1910 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1911 | engines: {node: '>=8'} 1912 | dependencies: 1913 | color-convert: 2.0.1 1914 | 1915 | /ansi-styles@6.2.1: 1916 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 1917 | engines: {node: '>=12'} 1918 | 1919 | /any-promise@1.3.0: 1920 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 1921 | 1922 | /anymatch@3.1.3: 1923 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1924 | engines: {node: '>= 8'} 1925 | dependencies: 1926 | normalize-path: 3.0.0 1927 | picomatch: 2.3.1 1928 | 1929 | /arg@5.0.2: 1930 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 1931 | 1932 | /argparse@2.0.1: 1933 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1934 | dev: true 1935 | 1936 | /aria-hidden@1.2.4: 1937 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 1938 | engines: {node: '>=10'} 1939 | dependencies: 1940 | tslib: 2.6.2 1941 | dev: false 1942 | 1943 | /array-union@2.1.0: 1944 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1945 | engines: {node: '>=8'} 1946 | dev: true 1947 | 1948 | /autoprefixer@10.4.19(postcss@8.4.38): 1949 | resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} 1950 | engines: {node: ^10 || ^12 || >=14} 1951 | hasBin: true 1952 | peerDependencies: 1953 | postcss: ^8.1.0 1954 | dependencies: 1955 | browserslist: 4.23.0 1956 | caniuse-lite: 1.0.30001607 1957 | fraction.js: 4.3.7 1958 | normalize-range: 0.1.2 1959 | picocolors: 1.0.0 1960 | postcss: 8.4.38 1961 | postcss-value-parser: 4.2.0 1962 | dev: true 1963 | 1964 | /balanced-match@1.0.2: 1965 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1966 | 1967 | /binary-extensions@2.3.0: 1968 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1969 | engines: {node: '>=8'} 1970 | 1971 | /brace-expansion@1.1.11: 1972 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1973 | dependencies: 1974 | balanced-match: 1.0.2 1975 | concat-map: 0.0.1 1976 | dev: true 1977 | 1978 | /brace-expansion@2.0.1: 1979 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1980 | dependencies: 1981 | balanced-match: 1.0.2 1982 | 1983 | /braces@3.0.2: 1984 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1985 | engines: {node: '>=8'} 1986 | dependencies: 1987 | fill-range: 7.0.1 1988 | 1989 | /browserslist@4.23.0: 1990 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 1991 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1992 | hasBin: true 1993 | dependencies: 1994 | caniuse-lite: 1.0.30001607 1995 | electron-to-chromium: 1.4.731 1996 | node-releases: 2.0.14 1997 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 1998 | dev: true 1999 | 2000 | /callsites@3.1.0: 2001 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 2002 | engines: {node: '>=6'} 2003 | dev: true 2004 | 2005 | /camelcase-css@2.0.1: 2006 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 2007 | engines: {node: '>= 6'} 2008 | 2009 | /caniuse-lite@1.0.30001607: 2010 | resolution: {integrity: sha512-WcvhVRjXLKFB/kmOFVwELtMxyhq3iM/MvmXcyCe2PNf166c39mptscOc/45TTS96n2gpNV2z7+NakArTWZCQ3w==} 2011 | dev: true 2012 | 2013 | /chalk@2.4.2: 2014 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 2015 | engines: {node: '>=4'} 2016 | dependencies: 2017 | ansi-styles: 3.2.1 2018 | escape-string-regexp: 1.0.5 2019 | supports-color: 5.5.0 2020 | dev: true 2021 | 2022 | /chalk@4.1.2: 2023 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 2024 | engines: {node: '>=10'} 2025 | dependencies: 2026 | ansi-styles: 4.3.0 2027 | supports-color: 7.2.0 2028 | dev: true 2029 | 2030 | /chokidar@3.6.0: 2031 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 2032 | engines: {node: '>= 8.10.0'} 2033 | dependencies: 2034 | anymatch: 3.1.3 2035 | braces: 3.0.2 2036 | glob-parent: 5.1.2 2037 | is-binary-path: 2.1.0 2038 | is-glob: 4.0.3 2039 | normalize-path: 3.0.0 2040 | readdirp: 3.6.0 2041 | optionalDependencies: 2042 | fsevents: 2.3.3 2043 | 2044 | /class-variance-authority@0.7.0: 2045 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 2046 | dependencies: 2047 | clsx: 2.0.0 2048 | dev: false 2049 | 2050 | /clsx@2.0.0: 2051 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 2052 | engines: {node: '>=6'} 2053 | dev: false 2054 | 2055 | /clsx@2.1.0: 2056 | resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} 2057 | engines: {node: '>=6'} 2058 | dev: false 2059 | 2060 | /color-convert@1.9.3: 2061 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 2062 | dependencies: 2063 | color-name: 1.1.3 2064 | dev: true 2065 | 2066 | /color-convert@2.0.1: 2067 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 2068 | engines: {node: '>=7.0.0'} 2069 | dependencies: 2070 | color-name: 1.1.4 2071 | 2072 | /color-name@1.1.3: 2073 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 2074 | dev: true 2075 | 2076 | /color-name@1.1.4: 2077 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 2078 | 2079 | /commander@4.1.1: 2080 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 2081 | engines: {node: '>= 6'} 2082 | 2083 | /concat-map@0.0.1: 2084 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 2085 | dev: true 2086 | 2087 | /convert-source-map@2.0.0: 2088 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 2089 | dev: true 2090 | 2091 | /cross-spawn@7.0.3: 2092 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 2093 | engines: {node: '>= 8'} 2094 | dependencies: 2095 | path-key: 3.1.1 2096 | shebang-command: 2.0.0 2097 | which: 2.0.2 2098 | 2099 | /cssesc@3.0.0: 2100 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 2101 | engines: {node: '>=4'} 2102 | hasBin: true 2103 | 2104 | /csstype@3.1.3: 2105 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 2106 | 2107 | /debug@4.3.4: 2108 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 2109 | engines: {node: '>=6.0'} 2110 | peerDependencies: 2111 | supports-color: '*' 2112 | peerDependenciesMeta: 2113 | supports-color: 2114 | optional: true 2115 | dependencies: 2116 | ms: 2.1.2 2117 | dev: true 2118 | 2119 | /deep-is@0.1.4: 2120 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 2121 | dev: true 2122 | 2123 | /detect-node-es@1.1.0: 2124 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 2125 | dev: false 2126 | 2127 | /didyoumean@1.2.2: 2128 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 2129 | 2130 | /dir-glob@3.0.1: 2131 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 2132 | engines: {node: '>=8'} 2133 | dependencies: 2134 | path-type: 4.0.0 2135 | dev: true 2136 | 2137 | /dlv@1.1.3: 2138 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 2139 | 2140 | /doctrine@3.0.0: 2141 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 2142 | engines: {node: '>=6.0.0'} 2143 | dependencies: 2144 | esutils: 2.0.3 2145 | dev: true 2146 | 2147 | /eastasianwidth@0.2.0: 2148 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 2149 | 2150 | /electron-to-chromium@1.4.731: 2151 | resolution: {integrity: sha512-+TqVfZjpRz2V/5SPpmJxq9qK620SC5SqCnxQIOi7i/U08ZDcTpKbT7Xjj9FU5CbXTMUb4fywbIr8C7cGv4hcjw==} 2152 | dev: true 2153 | 2154 | /emoji-regex@8.0.0: 2155 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 2156 | 2157 | /emoji-regex@9.2.2: 2158 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 2159 | 2160 | /esbuild@0.20.2: 2161 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 2162 | engines: {node: '>=12'} 2163 | hasBin: true 2164 | requiresBuild: true 2165 | optionalDependencies: 2166 | '@esbuild/aix-ppc64': 0.20.2 2167 | '@esbuild/android-arm': 0.20.2 2168 | '@esbuild/android-arm64': 0.20.2 2169 | '@esbuild/android-x64': 0.20.2 2170 | '@esbuild/darwin-arm64': 0.20.2 2171 | '@esbuild/darwin-x64': 0.20.2 2172 | '@esbuild/freebsd-arm64': 0.20.2 2173 | '@esbuild/freebsd-x64': 0.20.2 2174 | '@esbuild/linux-arm': 0.20.2 2175 | '@esbuild/linux-arm64': 0.20.2 2176 | '@esbuild/linux-ia32': 0.20.2 2177 | '@esbuild/linux-loong64': 0.20.2 2178 | '@esbuild/linux-mips64el': 0.20.2 2179 | '@esbuild/linux-ppc64': 0.20.2 2180 | '@esbuild/linux-riscv64': 0.20.2 2181 | '@esbuild/linux-s390x': 0.20.2 2182 | '@esbuild/linux-x64': 0.20.2 2183 | '@esbuild/netbsd-x64': 0.20.2 2184 | '@esbuild/openbsd-x64': 0.20.2 2185 | '@esbuild/sunos-x64': 0.20.2 2186 | '@esbuild/win32-arm64': 0.20.2 2187 | '@esbuild/win32-ia32': 0.20.2 2188 | '@esbuild/win32-x64': 0.20.2 2189 | dev: true 2190 | 2191 | /escalade@3.1.2: 2192 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 2193 | engines: {node: '>=6'} 2194 | dev: true 2195 | 2196 | /escape-string-regexp@1.0.5: 2197 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 2198 | engines: {node: '>=0.8.0'} 2199 | dev: true 2200 | 2201 | /escape-string-regexp@4.0.0: 2202 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 2203 | engines: {node: '>=10'} 2204 | dev: true 2205 | 2206 | /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): 2207 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 2208 | engines: {node: '>=10'} 2209 | peerDependencies: 2210 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 2211 | dependencies: 2212 | eslint: 8.57.0 2213 | dev: true 2214 | 2215 | /eslint-plugin-react-refresh@0.4.6(eslint@8.57.0): 2216 | resolution: {integrity: sha512-NjGXdm7zgcKRkKMua34qVO9doI7VOxZ6ancSvBELJSSoX97jyndXcSoa8XBh69JoB31dNz3EEzlMcizZl7LaMA==} 2217 | peerDependencies: 2218 | eslint: '>=7' 2219 | dependencies: 2220 | eslint: 8.57.0 2221 | dev: true 2222 | 2223 | /eslint-scope@7.2.2: 2224 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 2225 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2226 | dependencies: 2227 | esrecurse: 4.3.0 2228 | estraverse: 5.3.0 2229 | dev: true 2230 | 2231 | /eslint-visitor-keys@3.4.3: 2232 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 2233 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2234 | dev: true 2235 | 2236 | /eslint@8.57.0: 2237 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 2238 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2239 | hasBin: true 2240 | dependencies: 2241 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2242 | '@eslint-community/regexpp': 4.10.0 2243 | '@eslint/eslintrc': 2.1.4 2244 | '@eslint/js': 8.57.0 2245 | '@humanwhocodes/config-array': 0.11.14 2246 | '@humanwhocodes/module-importer': 1.0.1 2247 | '@nodelib/fs.walk': 1.2.8 2248 | '@ungap/structured-clone': 1.2.0 2249 | ajv: 6.12.6 2250 | chalk: 4.1.2 2251 | cross-spawn: 7.0.3 2252 | debug: 4.3.4 2253 | doctrine: 3.0.0 2254 | escape-string-regexp: 4.0.0 2255 | eslint-scope: 7.2.2 2256 | eslint-visitor-keys: 3.4.3 2257 | espree: 9.6.1 2258 | esquery: 1.5.0 2259 | esutils: 2.0.3 2260 | fast-deep-equal: 3.1.3 2261 | file-entry-cache: 6.0.1 2262 | find-up: 5.0.0 2263 | glob-parent: 6.0.2 2264 | globals: 13.24.0 2265 | graphemer: 1.4.0 2266 | ignore: 5.3.1 2267 | imurmurhash: 0.1.4 2268 | is-glob: 4.0.3 2269 | is-path-inside: 3.0.3 2270 | js-yaml: 4.1.0 2271 | json-stable-stringify-without-jsonify: 1.0.1 2272 | levn: 0.4.1 2273 | lodash.merge: 4.6.2 2274 | minimatch: 3.1.2 2275 | natural-compare: 1.4.0 2276 | optionator: 0.9.3 2277 | strip-ansi: 6.0.1 2278 | text-table: 0.2.0 2279 | transitivePeerDependencies: 2280 | - supports-color 2281 | dev: true 2282 | 2283 | /espree@9.6.1: 2284 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 2285 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 2286 | dependencies: 2287 | acorn: 8.11.3 2288 | acorn-jsx: 5.3.2(acorn@8.11.3) 2289 | eslint-visitor-keys: 3.4.3 2290 | dev: true 2291 | 2292 | /esquery@1.5.0: 2293 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 2294 | engines: {node: '>=0.10'} 2295 | dependencies: 2296 | estraverse: 5.3.0 2297 | dev: true 2298 | 2299 | /esrecurse@4.3.0: 2300 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 2301 | engines: {node: '>=4.0'} 2302 | dependencies: 2303 | estraverse: 5.3.0 2304 | dev: true 2305 | 2306 | /estraverse@5.3.0: 2307 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 2308 | engines: {node: '>=4.0'} 2309 | dev: true 2310 | 2311 | /esutils@2.0.3: 2312 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 2313 | engines: {node: '>=0.10.0'} 2314 | dev: true 2315 | 2316 | /fast-deep-equal@3.1.3: 2317 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 2318 | dev: true 2319 | 2320 | /fast-glob@3.3.2: 2321 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 2322 | engines: {node: '>=8.6.0'} 2323 | dependencies: 2324 | '@nodelib/fs.stat': 2.0.5 2325 | '@nodelib/fs.walk': 1.2.8 2326 | glob-parent: 5.1.2 2327 | merge2: 1.4.1 2328 | micromatch: 4.0.5 2329 | 2330 | /fast-json-stable-stringify@2.1.0: 2331 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 2332 | dev: true 2333 | 2334 | /fast-levenshtein@2.0.6: 2335 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 2336 | dev: true 2337 | 2338 | /fastq@1.17.1: 2339 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 2340 | dependencies: 2341 | reusify: 1.0.4 2342 | 2343 | /file-entry-cache@6.0.1: 2344 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 2345 | engines: {node: ^10.12.0 || >=12.0.0} 2346 | dependencies: 2347 | flat-cache: 3.2.0 2348 | dev: true 2349 | 2350 | /fill-range@7.0.1: 2351 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 2352 | engines: {node: '>=8'} 2353 | dependencies: 2354 | to-regex-range: 5.0.1 2355 | 2356 | /find-up@5.0.0: 2357 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 2358 | engines: {node: '>=10'} 2359 | dependencies: 2360 | locate-path: 6.0.0 2361 | path-exists: 4.0.0 2362 | dev: true 2363 | 2364 | /flat-cache@3.2.0: 2365 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 2366 | engines: {node: ^10.12.0 || >=12.0.0} 2367 | dependencies: 2368 | flatted: 3.3.1 2369 | keyv: 4.5.4 2370 | rimraf: 3.0.2 2371 | dev: true 2372 | 2373 | /flatted@3.3.1: 2374 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 2375 | dev: true 2376 | 2377 | /foreground-child@3.1.1: 2378 | resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 2379 | engines: {node: '>=14'} 2380 | dependencies: 2381 | cross-spawn: 7.0.3 2382 | signal-exit: 4.1.0 2383 | 2384 | /fraction.js@4.3.7: 2385 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 2386 | dev: true 2387 | 2388 | /fs.realpath@1.0.0: 2389 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 2390 | dev: true 2391 | 2392 | /fsevents@2.3.3: 2393 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 2394 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 2395 | os: [darwin] 2396 | requiresBuild: true 2397 | optional: true 2398 | 2399 | /function-bind@1.1.2: 2400 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 2401 | 2402 | /gensync@1.0.0-beta.2: 2403 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 2404 | engines: {node: '>=6.9.0'} 2405 | dev: true 2406 | 2407 | /get-nonce@1.0.1: 2408 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 2409 | engines: {node: '>=6'} 2410 | dev: false 2411 | 2412 | /glob-parent@5.1.2: 2413 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 2414 | engines: {node: '>= 6'} 2415 | dependencies: 2416 | is-glob: 4.0.3 2417 | 2418 | /glob-parent@6.0.2: 2419 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 2420 | engines: {node: '>=10.13.0'} 2421 | dependencies: 2422 | is-glob: 4.0.3 2423 | 2424 | /glob@10.3.12: 2425 | resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} 2426 | engines: {node: '>=16 || 14 >=14.17'} 2427 | hasBin: true 2428 | dependencies: 2429 | foreground-child: 3.1.1 2430 | jackspeak: 2.3.6 2431 | minimatch: 9.0.4 2432 | minipass: 7.0.4 2433 | path-scurry: 1.10.2 2434 | 2435 | /glob@7.2.3: 2436 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 2437 | dependencies: 2438 | fs.realpath: 1.0.0 2439 | inflight: 1.0.6 2440 | inherits: 2.0.4 2441 | minimatch: 3.1.2 2442 | once: 1.4.0 2443 | path-is-absolute: 1.0.1 2444 | dev: true 2445 | 2446 | /globals@11.12.0: 2447 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 2448 | engines: {node: '>=4'} 2449 | dev: true 2450 | 2451 | /globals@13.24.0: 2452 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 2453 | engines: {node: '>=8'} 2454 | dependencies: 2455 | type-fest: 0.20.2 2456 | dev: true 2457 | 2458 | /globby@11.1.0: 2459 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 2460 | engines: {node: '>=10'} 2461 | dependencies: 2462 | array-union: 2.1.0 2463 | dir-glob: 3.0.1 2464 | fast-glob: 3.3.2 2465 | ignore: 5.3.1 2466 | merge2: 1.4.1 2467 | slash: 3.0.0 2468 | dev: true 2469 | 2470 | /graphemer@1.4.0: 2471 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 2472 | dev: true 2473 | 2474 | /has-flag@3.0.0: 2475 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 2476 | engines: {node: '>=4'} 2477 | dev: true 2478 | 2479 | /has-flag@4.0.0: 2480 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 2481 | engines: {node: '>=8'} 2482 | dev: true 2483 | 2484 | /hasown@2.0.2: 2485 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 2486 | engines: {node: '>= 0.4'} 2487 | dependencies: 2488 | function-bind: 1.1.2 2489 | 2490 | /ignore@5.3.1: 2491 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 2492 | engines: {node: '>= 4'} 2493 | dev: true 2494 | 2495 | /import-fresh@3.3.0: 2496 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 2497 | engines: {node: '>=6'} 2498 | dependencies: 2499 | parent-module: 1.0.1 2500 | resolve-from: 4.0.0 2501 | dev: true 2502 | 2503 | /imurmurhash@0.1.4: 2504 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 2505 | engines: {node: '>=0.8.19'} 2506 | dev: true 2507 | 2508 | /inflight@1.0.6: 2509 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 2510 | dependencies: 2511 | once: 1.4.0 2512 | wrappy: 1.0.2 2513 | dev: true 2514 | 2515 | /inherits@2.0.4: 2516 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 2517 | dev: true 2518 | 2519 | /invariant@2.2.4: 2520 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 2521 | dependencies: 2522 | loose-envify: 1.4.0 2523 | dev: false 2524 | 2525 | /is-binary-path@2.1.0: 2526 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 2527 | engines: {node: '>=8'} 2528 | dependencies: 2529 | binary-extensions: 2.3.0 2530 | 2531 | /is-core-module@2.13.1: 2532 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 2533 | dependencies: 2534 | hasown: 2.0.2 2535 | 2536 | /is-extglob@2.1.1: 2537 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 2538 | engines: {node: '>=0.10.0'} 2539 | 2540 | /is-fullwidth-code-point@3.0.0: 2541 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 2542 | engines: {node: '>=8'} 2543 | 2544 | /is-glob@4.0.3: 2545 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 2546 | engines: {node: '>=0.10.0'} 2547 | dependencies: 2548 | is-extglob: 2.1.1 2549 | 2550 | /is-number@7.0.0: 2551 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 2552 | engines: {node: '>=0.12.0'} 2553 | 2554 | /is-path-inside@3.0.3: 2555 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 2556 | engines: {node: '>=8'} 2557 | dev: true 2558 | 2559 | /isexe@2.0.0: 2560 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 2561 | 2562 | /isomorphic.js@0.2.5: 2563 | resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} 2564 | dev: false 2565 | 2566 | /jackspeak@2.3.6: 2567 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 2568 | engines: {node: '>=14'} 2569 | dependencies: 2570 | '@isaacs/cliui': 8.0.2 2571 | optionalDependencies: 2572 | '@pkgjs/parseargs': 0.11.0 2573 | 2574 | /jiti@1.21.0: 2575 | resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 2576 | hasBin: true 2577 | 2578 | /js-tokens@4.0.0: 2579 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 2580 | 2581 | /js-yaml@4.1.0: 2582 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 2583 | hasBin: true 2584 | dependencies: 2585 | argparse: 2.0.1 2586 | dev: true 2587 | 2588 | /jsesc@2.5.2: 2589 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 2590 | engines: {node: '>=4'} 2591 | hasBin: true 2592 | dev: true 2593 | 2594 | /json-buffer@3.0.1: 2595 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 2596 | dev: true 2597 | 2598 | /json-schema-traverse@0.4.1: 2599 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2600 | dev: true 2601 | 2602 | /json-stable-stringify-without-jsonify@1.0.1: 2603 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2604 | dev: true 2605 | 2606 | /json5@2.2.3: 2607 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 2608 | engines: {node: '>=6'} 2609 | hasBin: true 2610 | dev: true 2611 | 2612 | /keyv@4.5.4: 2613 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 2614 | dependencies: 2615 | json-buffer: 3.0.1 2616 | dev: true 2617 | 2618 | /levn@0.4.1: 2619 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2620 | engines: {node: '>= 0.8.0'} 2621 | dependencies: 2622 | prelude-ls: 1.2.1 2623 | type-check: 0.4.0 2624 | dev: true 2625 | 2626 | /lexical@0.14.3: 2627 | resolution: {integrity: sha512-LaWSKj6OpvJ+bdfQA2AybEzho0YoWfAdRGkuCtPNYd/uf7IHyoEwCFQsIBvWCQF23saDgE1NONR4uiwl6iaJ9g==} 2628 | dev: false 2629 | 2630 | /lib0@0.2.93: 2631 | resolution: {integrity: sha512-M5IKsiFJYulS+8Eal8f+zAqf5ckm1vffW0fFDxfgxJ+uiVopvDdd3PxJmz0GsVi3YNO7QCFSq0nAsiDmNhLj9Q==} 2632 | engines: {node: '>=16'} 2633 | hasBin: true 2634 | dependencies: 2635 | isomorphic.js: 0.2.5 2636 | dev: false 2637 | 2638 | /lilconfig@2.1.0: 2639 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2640 | engines: {node: '>=10'} 2641 | 2642 | /lilconfig@3.1.1: 2643 | resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 2644 | engines: {node: '>=14'} 2645 | 2646 | /lines-and-columns@1.2.4: 2647 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2648 | 2649 | /locate-path@6.0.0: 2650 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2651 | engines: {node: '>=10'} 2652 | dependencies: 2653 | p-locate: 5.0.0 2654 | dev: true 2655 | 2656 | /lodash.castarray@4.4.0: 2657 | resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} 2658 | dev: true 2659 | 2660 | /lodash.isplainobject@4.0.6: 2661 | resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} 2662 | dev: true 2663 | 2664 | /lodash.merge@4.6.2: 2665 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2666 | dev: true 2667 | 2668 | /loose-envify@1.4.0: 2669 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2670 | hasBin: true 2671 | dependencies: 2672 | js-tokens: 4.0.0 2673 | dev: false 2674 | 2675 | /lru-cache@10.2.0: 2676 | resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 2677 | engines: {node: 14 || >=16.14} 2678 | 2679 | /lru-cache@5.1.1: 2680 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 2681 | dependencies: 2682 | yallist: 3.1.1 2683 | dev: true 2684 | 2685 | /lru-cache@6.0.0: 2686 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2687 | engines: {node: '>=10'} 2688 | dependencies: 2689 | yallist: 4.0.0 2690 | dev: true 2691 | 2692 | /lucide-react@0.366.0(react@18.2.0): 2693 | resolution: {integrity: sha512-iUOsp/35wOkrgEzigZlZI/OhVxQZ8CmxjebdIjfSDzNBmrNYjQfKSpeKderaEFfGt3OycF1BE+wLlaqWRuoh4w==} 2694 | peerDependencies: 2695 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 2696 | dependencies: 2697 | react: 18.2.0 2698 | dev: false 2699 | 2700 | /merge2@1.4.1: 2701 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2702 | engines: {node: '>= 8'} 2703 | 2704 | /micromatch@4.0.5: 2705 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2706 | engines: {node: '>=8.6'} 2707 | dependencies: 2708 | braces: 3.0.2 2709 | picomatch: 2.3.1 2710 | 2711 | /minimatch@3.1.2: 2712 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2713 | dependencies: 2714 | brace-expansion: 1.1.11 2715 | dev: true 2716 | 2717 | /minimatch@9.0.4: 2718 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 2719 | engines: {node: '>=16 || 14 >=14.17'} 2720 | dependencies: 2721 | brace-expansion: 2.0.1 2722 | 2723 | /minipass@7.0.4: 2724 | resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 2725 | engines: {node: '>=16 || 14 >=14.17'} 2726 | 2727 | /ms@2.1.2: 2728 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2729 | dev: true 2730 | 2731 | /mz@2.7.0: 2732 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2733 | dependencies: 2734 | any-promise: 1.3.0 2735 | object-assign: 4.1.1 2736 | thenify-all: 1.6.0 2737 | 2738 | /nanoid@3.3.7: 2739 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 2740 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2741 | hasBin: true 2742 | 2743 | /natural-compare@1.4.0: 2744 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2745 | dev: true 2746 | 2747 | /node-releases@2.0.14: 2748 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 2749 | dev: true 2750 | 2751 | /normalize-path@3.0.0: 2752 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2753 | engines: {node: '>=0.10.0'} 2754 | 2755 | /normalize-range@0.1.2: 2756 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 2757 | engines: {node: '>=0.10.0'} 2758 | dev: true 2759 | 2760 | /object-assign@4.1.1: 2761 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2762 | engines: {node: '>=0.10.0'} 2763 | 2764 | /object-hash@3.0.0: 2765 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2766 | engines: {node: '>= 6'} 2767 | 2768 | /once@1.4.0: 2769 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2770 | dependencies: 2771 | wrappy: 1.0.2 2772 | dev: true 2773 | 2774 | /optionator@0.9.3: 2775 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2776 | engines: {node: '>= 0.8.0'} 2777 | dependencies: 2778 | '@aashutoshrathi/word-wrap': 1.2.6 2779 | deep-is: 0.1.4 2780 | fast-levenshtein: 2.0.6 2781 | levn: 0.4.1 2782 | prelude-ls: 1.2.1 2783 | type-check: 0.4.0 2784 | dev: true 2785 | 2786 | /p-limit@3.1.0: 2787 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2788 | engines: {node: '>=10'} 2789 | dependencies: 2790 | yocto-queue: 0.1.0 2791 | dev: true 2792 | 2793 | /p-locate@5.0.0: 2794 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2795 | engines: {node: '>=10'} 2796 | dependencies: 2797 | p-limit: 3.1.0 2798 | dev: true 2799 | 2800 | /parent-module@1.0.1: 2801 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2802 | engines: {node: '>=6'} 2803 | dependencies: 2804 | callsites: 3.1.0 2805 | dev: true 2806 | 2807 | /path-exists@4.0.0: 2808 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2809 | engines: {node: '>=8'} 2810 | dev: true 2811 | 2812 | /path-is-absolute@1.0.1: 2813 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2814 | engines: {node: '>=0.10.0'} 2815 | dev: true 2816 | 2817 | /path-key@3.1.1: 2818 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2819 | engines: {node: '>=8'} 2820 | 2821 | /path-parse@1.0.7: 2822 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2823 | 2824 | /path-scurry@1.10.2: 2825 | resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} 2826 | engines: {node: '>=16 || 14 >=14.17'} 2827 | dependencies: 2828 | lru-cache: 10.2.0 2829 | minipass: 7.0.4 2830 | 2831 | /path-type@4.0.0: 2832 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2833 | engines: {node: '>=8'} 2834 | dev: true 2835 | 2836 | /picocolors@1.0.0: 2837 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2838 | 2839 | /picomatch@2.3.1: 2840 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2841 | engines: {node: '>=8.6'} 2842 | 2843 | /pify@2.3.0: 2844 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 2845 | engines: {node: '>=0.10.0'} 2846 | 2847 | /pirates@4.0.6: 2848 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2849 | engines: {node: '>= 6'} 2850 | 2851 | /postcss-import@15.1.0(postcss@8.4.38): 2852 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 2853 | engines: {node: '>=14.0.0'} 2854 | peerDependencies: 2855 | postcss: ^8.0.0 2856 | dependencies: 2857 | postcss: 8.4.38 2858 | postcss-value-parser: 4.2.0 2859 | read-cache: 1.0.0 2860 | resolve: 1.22.8 2861 | 2862 | /postcss-js@4.0.1(postcss@8.4.38): 2863 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2864 | engines: {node: ^12 || ^14 || >= 16} 2865 | peerDependencies: 2866 | postcss: ^8.4.21 2867 | dependencies: 2868 | camelcase-css: 2.0.1 2869 | postcss: 8.4.38 2870 | 2871 | /postcss-load-config@4.0.2(postcss@8.4.38): 2872 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 2873 | engines: {node: '>= 14'} 2874 | peerDependencies: 2875 | postcss: '>=8.0.9' 2876 | ts-node: '>=9.0.0' 2877 | peerDependenciesMeta: 2878 | postcss: 2879 | optional: true 2880 | ts-node: 2881 | optional: true 2882 | dependencies: 2883 | lilconfig: 3.1.1 2884 | postcss: 8.4.38 2885 | yaml: 2.4.1 2886 | 2887 | /postcss-nested@6.0.1(postcss@8.4.38): 2888 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 2889 | engines: {node: '>=12.0'} 2890 | peerDependencies: 2891 | postcss: ^8.2.14 2892 | dependencies: 2893 | postcss: 8.4.38 2894 | postcss-selector-parser: 6.0.16 2895 | 2896 | /postcss-selector-parser@6.0.10: 2897 | resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} 2898 | engines: {node: '>=4'} 2899 | dependencies: 2900 | cssesc: 3.0.0 2901 | util-deprecate: 1.0.2 2902 | dev: true 2903 | 2904 | /postcss-selector-parser@6.0.16: 2905 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 2906 | engines: {node: '>=4'} 2907 | dependencies: 2908 | cssesc: 3.0.0 2909 | util-deprecate: 1.0.2 2910 | 2911 | /postcss-value-parser@4.2.0: 2912 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2913 | 2914 | /postcss@8.4.38: 2915 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 2916 | engines: {node: ^10 || ^12 || >=14} 2917 | dependencies: 2918 | nanoid: 3.3.7 2919 | picocolors: 1.0.0 2920 | source-map-js: 1.2.0 2921 | 2922 | /prelude-ls@1.2.1: 2923 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2924 | engines: {node: '>= 0.8.0'} 2925 | dev: true 2926 | 2927 | /prismjs@1.29.0: 2928 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 2929 | engines: {node: '>=6'} 2930 | dev: false 2931 | 2932 | /punycode@2.3.1: 2933 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2934 | engines: {node: '>=6'} 2935 | dev: true 2936 | 2937 | /queue-microtask@1.2.3: 2938 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2939 | 2940 | /react-dom@18.2.0(react@18.2.0): 2941 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2942 | peerDependencies: 2943 | react: ^18.2.0 2944 | dependencies: 2945 | loose-envify: 1.4.0 2946 | react: 18.2.0 2947 | scheduler: 0.23.0 2948 | dev: false 2949 | 2950 | /react-error-boundary@3.1.4(react@18.2.0): 2951 | resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} 2952 | engines: {node: '>=10', npm: '>=6'} 2953 | peerDependencies: 2954 | react: '>=16.13.1' 2955 | dependencies: 2956 | '@babel/runtime': 7.24.4 2957 | react: 18.2.0 2958 | dev: false 2959 | 2960 | /react-refresh@0.14.0: 2961 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 2962 | engines: {node: '>=0.10.0'} 2963 | dev: true 2964 | 2965 | /react-remove-scroll-bar@2.3.6(@types/react@18.2.75)(react@18.2.0): 2966 | resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 2967 | engines: {node: '>=10'} 2968 | peerDependencies: 2969 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2970 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2971 | peerDependenciesMeta: 2972 | '@types/react': 2973 | optional: true 2974 | dependencies: 2975 | '@types/react': 18.2.75 2976 | react: 18.2.0 2977 | react-style-singleton: 2.2.1(@types/react@18.2.75)(react@18.2.0) 2978 | tslib: 2.6.2 2979 | dev: false 2980 | 2981 | /react-remove-scroll@2.5.5(@types/react@18.2.75)(react@18.2.0): 2982 | resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} 2983 | engines: {node: '>=10'} 2984 | peerDependencies: 2985 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2986 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2987 | peerDependenciesMeta: 2988 | '@types/react': 2989 | optional: true 2990 | dependencies: 2991 | '@types/react': 18.2.75 2992 | react: 18.2.0 2993 | react-remove-scroll-bar: 2.3.6(@types/react@18.2.75)(react@18.2.0) 2994 | react-style-singleton: 2.2.1(@types/react@18.2.75)(react@18.2.0) 2995 | tslib: 2.6.2 2996 | use-callback-ref: 1.3.2(@types/react@18.2.75)(react@18.2.0) 2997 | use-sidecar: 1.1.2(@types/react@18.2.75)(react@18.2.0) 2998 | dev: false 2999 | 3000 | /react-style-singleton@2.2.1(@types/react@18.2.75)(react@18.2.0): 3001 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 3002 | engines: {node: '>=10'} 3003 | peerDependencies: 3004 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 3005 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3006 | peerDependenciesMeta: 3007 | '@types/react': 3008 | optional: true 3009 | dependencies: 3010 | '@types/react': 18.2.75 3011 | get-nonce: 1.0.1 3012 | invariant: 2.2.4 3013 | react: 18.2.0 3014 | tslib: 2.6.2 3015 | dev: false 3016 | 3017 | /react@18.2.0: 3018 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 3019 | engines: {node: '>=0.10.0'} 3020 | dependencies: 3021 | loose-envify: 1.4.0 3022 | dev: false 3023 | 3024 | /read-cache@1.0.0: 3025 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 3026 | dependencies: 3027 | pify: 2.3.0 3028 | 3029 | /readdirp@3.6.0: 3030 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 3031 | engines: {node: '>=8.10.0'} 3032 | dependencies: 3033 | picomatch: 2.3.1 3034 | 3035 | /regenerator-runtime@0.14.1: 3036 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 3037 | dev: false 3038 | 3039 | /resolve-from@4.0.0: 3040 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 3041 | engines: {node: '>=4'} 3042 | dev: true 3043 | 3044 | /resolve@1.22.8: 3045 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 3046 | hasBin: true 3047 | dependencies: 3048 | is-core-module: 2.13.1 3049 | path-parse: 1.0.7 3050 | supports-preserve-symlinks-flag: 1.0.0 3051 | 3052 | /reusify@1.0.4: 3053 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 3054 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 3055 | 3056 | /rimraf@3.0.2: 3057 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 3058 | hasBin: true 3059 | dependencies: 3060 | glob: 7.2.3 3061 | dev: true 3062 | 3063 | /rollup@4.14.1: 3064 | resolution: {integrity: sha512-4LnHSdd3QK2pa1J6dFbfm1HN0D7vSK/ZuZTsdyUAlA6Rr1yTouUTL13HaDOGJVgby461AhrNGBS7sCGXXtT+SA==} 3065 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 3066 | hasBin: true 3067 | dependencies: 3068 | '@types/estree': 1.0.5 3069 | optionalDependencies: 3070 | '@rollup/rollup-android-arm-eabi': 4.14.1 3071 | '@rollup/rollup-android-arm64': 4.14.1 3072 | '@rollup/rollup-darwin-arm64': 4.14.1 3073 | '@rollup/rollup-darwin-x64': 4.14.1 3074 | '@rollup/rollup-linux-arm-gnueabihf': 4.14.1 3075 | '@rollup/rollup-linux-arm64-gnu': 4.14.1 3076 | '@rollup/rollup-linux-arm64-musl': 4.14.1 3077 | '@rollup/rollup-linux-powerpc64le-gnu': 4.14.1 3078 | '@rollup/rollup-linux-riscv64-gnu': 4.14.1 3079 | '@rollup/rollup-linux-s390x-gnu': 4.14.1 3080 | '@rollup/rollup-linux-x64-gnu': 4.14.1 3081 | '@rollup/rollup-linux-x64-musl': 4.14.1 3082 | '@rollup/rollup-win32-arm64-msvc': 4.14.1 3083 | '@rollup/rollup-win32-ia32-msvc': 4.14.1 3084 | '@rollup/rollup-win32-x64-msvc': 4.14.1 3085 | fsevents: 2.3.3 3086 | dev: true 3087 | 3088 | /run-parallel@1.2.0: 3089 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 3090 | dependencies: 3091 | queue-microtask: 1.2.3 3092 | 3093 | /scheduler@0.23.0: 3094 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 3095 | dependencies: 3096 | loose-envify: 1.4.0 3097 | dev: false 3098 | 3099 | /semver@6.3.1: 3100 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 3101 | hasBin: true 3102 | dev: true 3103 | 3104 | /semver@7.6.0: 3105 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 3106 | engines: {node: '>=10'} 3107 | hasBin: true 3108 | dependencies: 3109 | lru-cache: 6.0.0 3110 | dev: true 3111 | 3112 | /shebang-command@2.0.0: 3113 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 3114 | engines: {node: '>=8'} 3115 | dependencies: 3116 | shebang-regex: 3.0.0 3117 | 3118 | /shebang-regex@3.0.0: 3119 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 3120 | engines: {node: '>=8'} 3121 | 3122 | /signal-exit@4.1.0: 3123 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 3124 | engines: {node: '>=14'} 3125 | 3126 | /slash@3.0.0: 3127 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 3128 | engines: {node: '>=8'} 3129 | dev: true 3130 | 3131 | /source-map-js@1.2.0: 3132 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 3133 | engines: {node: '>=0.10.0'} 3134 | 3135 | /string-width@4.2.3: 3136 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 3137 | engines: {node: '>=8'} 3138 | dependencies: 3139 | emoji-regex: 8.0.0 3140 | is-fullwidth-code-point: 3.0.0 3141 | strip-ansi: 6.0.1 3142 | 3143 | /string-width@5.1.2: 3144 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 3145 | engines: {node: '>=12'} 3146 | dependencies: 3147 | eastasianwidth: 0.2.0 3148 | emoji-regex: 9.2.2 3149 | strip-ansi: 7.1.0 3150 | 3151 | /strip-ansi@6.0.1: 3152 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 3153 | engines: {node: '>=8'} 3154 | dependencies: 3155 | ansi-regex: 5.0.1 3156 | 3157 | /strip-ansi@7.1.0: 3158 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 3159 | engines: {node: '>=12'} 3160 | dependencies: 3161 | ansi-regex: 6.0.1 3162 | 3163 | /strip-json-comments@3.1.1: 3164 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 3165 | engines: {node: '>=8'} 3166 | dev: true 3167 | 3168 | /sucrase@3.35.0: 3169 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 3170 | engines: {node: '>=16 || 14 >=14.17'} 3171 | hasBin: true 3172 | dependencies: 3173 | '@jridgewell/gen-mapping': 0.3.5 3174 | commander: 4.1.1 3175 | glob: 10.3.12 3176 | lines-and-columns: 1.2.4 3177 | mz: 2.7.0 3178 | pirates: 4.0.6 3179 | ts-interface-checker: 0.1.13 3180 | 3181 | /supports-color@5.5.0: 3182 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 3183 | engines: {node: '>=4'} 3184 | dependencies: 3185 | has-flag: 3.0.0 3186 | dev: true 3187 | 3188 | /supports-color@7.2.0: 3189 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 3190 | engines: {node: '>=8'} 3191 | dependencies: 3192 | has-flag: 4.0.0 3193 | dev: true 3194 | 3195 | /supports-preserve-symlinks-flag@1.0.0: 3196 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 3197 | engines: {node: '>= 0.4'} 3198 | 3199 | /tailwind-merge@2.2.2: 3200 | resolution: {integrity: sha512-tWANXsnmJzgw6mQ07nE3aCDkCK4QdT3ThPMCzawoYA2Pws7vSTCvz3Vrjg61jVUGfFZPJzxEP+NimbcW+EdaDw==} 3201 | dependencies: 3202 | '@babel/runtime': 7.24.4 3203 | dev: false 3204 | 3205 | /tailwindcss-animate@1.0.7(tailwindcss@3.4.3): 3206 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 3207 | peerDependencies: 3208 | tailwindcss: '>=3.0.0 || insiders' 3209 | dependencies: 3210 | tailwindcss: 3.4.3 3211 | dev: false 3212 | 3213 | /tailwindcss@3.4.3: 3214 | resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} 3215 | engines: {node: '>=14.0.0'} 3216 | hasBin: true 3217 | dependencies: 3218 | '@alloc/quick-lru': 5.2.0 3219 | arg: 5.0.2 3220 | chokidar: 3.6.0 3221 | didyoumean: 1.2.2 3222 | dlv: 1.1.3 3223 | fast-glob: 3.3.2 3224 | glob-parent: 6.0.2 3225 | is-glob: 4.0.3 3226 | jiti: 1.21.0 3227 | lilconfig: 2.1.0 3228 | micromatch: 4.0.5 3229 | normalize-path: 3.0.0 3230 | object-hash: 3.0.0 3231 | picocolors: 1.0.0 3232 | postcss: 8.4.38 3233 | postcss-import: 15.1.0(postcss@8.4.38) 3234 | postcss-js: 4.0.1(postcss@8.4.38) 3235 | postcss-load-config: 4.0.2(postcss@8.4.38) 3236 | postcss-nested: 6.0.1(postcss@8.4.38) 3237 | postcss-selector-parser: 6.0.16 3238 | resolve: 1.22.8 3239 | sucrase: 3.35.0 3240 | transitivePeerDependencies: 3241 | - ts-node 3242 | 3243 | /text-table@0.2.0: 3244 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 3245 | dev: true 3246 | 3247 | /thenify-all@1.6.0: 3248 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 3249 | engines: {node: '>=0.8'} 3250 | dependencies: 3251 | thenify: 3.3.1 3252 | 3253 | /thenify@3.3.1: 3254 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 3255 | dependencies: 3256 | any-promise: 1.3.0 3257 | 3258 | /to-fast-properties@2.0.0: 3259 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 3260 | engines: {node: '>=4'} 3261 | dev: true 3262 | 3263 | /to-regex-range@5.0.1: 3264 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 3265 | engines: {node: '>=8.0'} 3266 | dependencies: 3267 | is-number: 7.0.0 3268 | 3269 | /ts-api-utils@1.3.0(typescript@5.4.4): 3270 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 3271 | engines: {node: '>=16'} 3272 | peerDependencies: 3273 | typescript: '>=4.2.0' 3274 | dependencies: 3275 | typescript: 5.4.4 3276 | dev: true 3277 | 3278 | /ts-interface-checker@0.1.13: 3279 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 3280 | 3281 | /tslib@2.6.2: 3282 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 3283 | dev: false 3284 | 3285 | /type-check@0.4.0: 3286 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 3287 | engines: {node: '>= 0.8.0'} 3288 | dependencies: 3289 | prelude-ls: 1.2.1 3290 | dev: true 3291 | 3292 | /type-fest@0.20.2: 3293 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 3294 | engines: {node: '>=10'} 3295 | dev: true 3296 | 3297 | /typescript@5.4.4: 3298 | resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} 3299 | engines: {node: '>=14.17'} 3300 | hasBin: true 3301 | dev: true 3302 | 3303 | /undici-types@5.26.5: 3304 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 3305 | dev: true 3306 | 3307 | /update-browserslist-db@1.0.13(browserslist@4.23.0): 3308 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 3309 | hasBin: true 3310 | peerDependencies: 3311 | browserslist: '>= 4.21.0' 3312 | dependencies: 3313 | browserslist: 4.23.0 3314 | escalade: 3.1.2 3315 | picocolors: 1.0.0 3316 | dev: true 3317 | 3318 | /uri-js@4.4.1: 3319 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 3320 | dependencies: 3321 | punycode: 2.3.1 3322 | dev: true 3323 | 3324 | /use-callback-ref@1.3.2(@types/react@18.2.75)(react@18.2.0): 3325 | resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 3326 | engines: {node: '>=10'} 3327 | peerDependencies: 3328 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 3329 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3330 | peerDependenciesMeta: 3331 | '@types/react': 3332 | optional: true 3333 | dependencies: 3334 | '@types/react': 18.2.75 3335 | react: 18.2.0 3336 | tslib: 2.6.2 3337 | dev: false 3338 | 3339 | /use-sidecar@1.1.2(@types/react@18.2.75)(react@18.2.0): 3340 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 3341 | engines: {node: '>=10'} 3342 | peerDependencies: 3343 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 3344 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 3345 | peerDependenciesMeta: 3346 | '@types/react': 3347 | optional: true 3348 | dependencies: 3349 | '@types/react': 18.2.75 3350 | detect-node-es: 1.1.0 3351 | react: 18.2.0 3352 | tslib: 2.6.2 3353 | dev: false 3354 | 3355 | /util-deprecate@1.0.2: 3356 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 3357 | 3358 | /vite@5.2.8(@types/node@20.12.7): 3359 | resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} 3360 | engines: {node: ^18.0.0 || >=20.0.0} 3361 | hasBin: true 3362 | peerDependencies: 3363 | '@types/node': ^18.0.0 || >=20.0.0 3364 | less: '*' 3365 | lightningcss: ^1.21.0 3366 | sass: '*' 3367 | stylus: '*' 3368 | sugarss: '*' 3369 | terser: ^5.4.0 3370 | peerDependenciesMeta: 3371 | '@types/node': 3372 | optional: true 3373 | less: 3374 | optional: true 3375 | lightningcss: 3376 | optional: true 3377 | sass: 3378 | optional: true 3379 | stylus: 3380 | optional: true 3381 | sugarss: 3382 | optional: true 3383 | terser: 3384 | optional: true 3385 | dependencies: 3386 | '@types/node': 20.12.7 3387 | esbuild: 0.20.2 3388 | postcss: 8.4.38 3389 | rollup: 4.14.1 3390 | optionalDependencies: 3391 | fsevents: 2.3.3 3392 | dev: true 3393 | 3394 | /which@2.0.2: 3395 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3396 | engines: {node: '>= 8'} 3397 | hasBin: true 3398 | dependencies: 3399 | isexe: 2.0.0 3400 | 3401 | /wrap-ansi@7.0.0: 3402 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 3403 | engines: {node: '>=10'} 3404 | dependencies: 3405 | ansi-styles: 4.3.0 3406 | string-width: 4.2.3 3407 | strip-ansi: 6.0.1 3408 | 3409 | /wrap-ansi@8.1.0: 3410 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 3411 | engines: {node: '>=12'} 3412 | dependencies: 3413 | ansi-styles: 6.2.1 3414 | string-width: 5.1.2 3415 | strip-ansi: 7.1.0 3416 | 3417 | /wrappy@1.0.2: 3418 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3419 | dev: true 3420 | 3421 | /yallist@3.1.1: 3422 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 3423 | dev: true 3424 | 3425 | /yallist@4.0.0: 3426 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3427 | dev: true 3428 | 3429 | /yaml@2.4.1: 3430 | resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 3431 | engines: {node: '>= 14'} 3432 | hasBin: true 3433 | 3434 | /yjs@13.6.14: 3435 | resolution: {integrity: sha512-D+7KcUr0j+vBCUSKXXEWfA+bG4UQBviAwP3gYBhkstkgwy5+8diOPMx0iqLIOxNo/HxaREUimZRxqHGAHCL2BQ==} 3436 | engines: {node: '>=16.0.0', npm: '>=8.0.0'} 3437 | dependencies: 3438 | lib0: 0.2.93 3439 | dev: false 3440 | 3441 | /yocto-queue@0.1.0: 3442 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3443 | engines: {node: '>=10'} 3444 | dev: true 3445 | --------------------------------------------------------------------------------