├── src ├── vite-env.d.ts ├── components │ ├── index.tsx │ ├── List.tsx │ ├── Item.css │ ├── Checkbox.tsx │ ├── Header.tsx │ ├── Menubar.tsx │ ├── FormInput.tsx │ └── Item.tsx ├── lib │ ├── constants.ts │ └── utils.ts ├── schemas │ └── todos.ts ├── hooks │ ├── useStateContext.ts │ └── useDispatchContext.ts ├── main.tsx ├── index.css ├── App.tsx ├── providers │ └── TodoContext.tsx └── reducers │ └── todo.ts ├── postcss.config.js ├── tsconfig.json ├── vite.config.ts ├── tailwind.config.js ├── .gitignore ├── tsconfig.node.json ├── index.html ├── .prettierrc ├── tsconfig.app.json ├── public └── pen.svg ├── package.json ├── .eslintrc.cjs ├── README.md └── pnpm-lock.yaml /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/components/index.tsx: -------------------------------------------------------------------------------- 1 | export { Header } from './Header' 2 | export { FormInput } from './FormInput' 3 | -------------------------------------------------------------------------------- /src/lib/constants.ts: -------------------------------------------------------------------------------- 1 | export const EDIT_TODO_DELAY = 300 2 | 3 | export const TODO_LOCAL_STORAGE_KEY = 'todos' 4 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { 5 | "path": "./tsconfig.app.json" 6 | }, 7 | { 8 | "path": "./tsconfig.node.json" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import react from '@vitejs/plugin-react' 2 | import { defineConfig } from 'vite' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()], 7 | }) 8 | -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from 'clsx' 2 | import { twMerge } from 'tailwind-merge' 3 | 4 | export function cn(...inputs: Array) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], 4 | theme: { 5 | extend: {}, 6 | }, 7 | plugins: [], 8 | } 9 | -------------------------------------------------------------------------------- /src/schemas/todos.ts: -------------------------------------------------------------------------------- 1 | import { z } from 'zod' 2 | 3 | export const todoSchema = z.object({ 4 | id: z.string(), 5 | title: z.string(), 6 | isCompleted: z.boolean(), 7 | }) 8 | 9 | export type Todo = z.infer 10 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/hooks/useStateContext.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react' 2 | 3 | import { TodoStateContext } from '../providers/TodoContext' 4 | 5 | export const useTodoStateContext = () => { 6 | const context = useContext(TodoStateContext) 7 | if (context === undefined) { 8 | throw new Error('useStateContext must be used within a TodoProvider') 9 | } 10 | return context 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 5 | "skipLibCheck": true, 6 | "module": "ESNext", 7 | "moduleResolution": "bundler", 8 | "allowSyntheticDefaultImports": true, 9 | "strict": true, 10 | "noEmit": true 11 | }, 12 | "include": ["vite.config.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /src/hooks/useDispatchContext.ts: -------------------------------------------------------------------------------- 1 | import { useContext } from 'react' 2 | 3 | import { TodoDispatchContext } from '../providers/TodoContext' 4 | 5 | export const useTodoDispatchContext = () => { 6 | const context = useContext(TodoDispatchContext) 7 | if (context === undefined) { 8 | throw new Error('useDispatchContext must be used within a TodoProvider') 9 | } 10 | return context 11 | } 12 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Luffy 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/components/List.tsx: -------------------------------------------------------------------------------- 1 | import { Item } from './Item' 2 | import { useTodoStateContext } from '../hooks/useStateContext' 3 | 4 | export const List = () => { 5 | const state = useTodoStateContext() 6 | 7 | return ( 8 |
    9 | {state.todos.map((item) => ( 10 | 11 | ))} 12 |
13 | ) 14 | } 15 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | 4 | import App from './App.tsx' 5 | import '@fontsource-variable/inter' 6 | import './index.css' 7 | import { TodoProvider } from './providers/TodoContext.tsx' 8 | 9 | ReactDOM.createRoot(document.getElementById('root')!).render( 10 | 11 | 12 | 13 | 14 | 15 | ) 16 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "bracketSpacing": true, 4 | "embeddedLanguageFormatting": "auto", 5 | "htmlWhitespaceSensitivity": "css", 6 | "insertPragma": false, 7 | "jsxBracketSameLine": false, 8 | "jsxSingleQuote": false, 9 | "printWidth": 80, 10 | "proseWrap": "preserve", 11 | "quoteProps": "as-needed", 12 | "requirePragma": false, 13 | "semi": false, 14 | "singleQuote": true, 15 | "tabWidth": 2, 16 | "trailingComma": "es5", 17 | "useTabs": false, 18 | "vueIndentScriptAndStyle": false 19 | } 20 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | html, 6 | body { 7 | height: 100%; 8 | width: 100%; 9 | font-family: 'Inter Variable', sans-serif; 10 | background-color: white; 11 | -webkit-font-smoothing: antialiased; 12 | -moz-osx-font-smoothing: grayscale; 13 | } 14 | 15 | #root { 16 | height: 100%; 17 | width: 100%; 18 | display: flex; 19 | flex-direction: column; 20 | align-items: center; 21 | } 22 | 23 | a:focus-visible, 24 | button:focus-visible { 25 | outline: 2px solid #000; 26 | outline-offset: 4px; 27 | } 28 | -------------------------------------------------------------------------------- /src/components/Item.css: -------------------------------------------------------------------------------- 1 | li { 2 | view-transition-class: item; 3 | } 4 | 5 | @keyframes slide-out { 6 | to { 7 | translate: 100% 0; 8 | opacity: 0; 9 | } 10 | } 11 | 12 | @keyframes slide-in { 13 | from { 14 | translate: 100% 0; 15 | opacity: 0; 16 | } 17 | } 18 | 19 | ::view-transition-group(.item) { 20 | animation-duration: 400ms; 21 | } 22 | 23 | /* Items gets added */ 24 | ::view-transition-new(.item):only-child { 25 | animation-name: slide-in; 26 | } 27 | 28 | /* Item gets removed */ 29 | ::view-transition-old(.item):only-child { 30 | animation-name: slide-out; 31 | } 32 | -------------------------------------------------------------------------------- /src/components/Checkbox.tsx: -------------------------------------------------------------------------------- 1 | import * as RadixCheckbox from '@radix-ui/react-checkbox' 2 | import { Check } from 'lucide-react' 3 | 4 | export const Checkbox = ({ 5 | checked, 6 | onCheckedChange, 7 | }: { 8 | checked: boolean 9 | onCheckedChange: (checked: boolean) => void 10 | }) => { 11 | return ( 12 | 17 | 18 | 19 | 20 | 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 5 | "target": "ES2020", 6 | "useDefineForClassFields": true, 7 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 8 | "module": "ESNext", 9 | "skipLibCheck": true, 10 | "types": ["dom-view-transitions"], 11 | 12 | /* Bundler mode */ 13 | "moduleResolution": "bundler", 14 | "allowImportingTsExtensions": true, 15 | "resolveJsonModule": true, 16 | "isolatedModules": true, 17 | "moduleDetection": "force", 18 | "noEmit": true, 19 | "jsx": "react-jsx", 20 | 21 | /* Linting */ 22 | "strict": true, 23 | "noUnusedLocals": true, 24 | "noUnusedParameters": true, 25 | "noFallthroughCasesInSwitch": true 26 | }, 27 | "include": ["src"] 28 | } 29 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | import { useEffect } from 'react' 2 | 3 | import { FormInput, Header } from './components' 4 | import { List } from './components/List' 5 | import { useTodoDispatchContext } from './hooks/useDispatchContext' 6 | import { TODO_LOCAL_STORAGE_KEY } from './lib/constants' 7 | import { todoSchema } from './schemas/todos' 8 | 9 | function App() { 10 | const dispatch = useTodoDispatchContext() 11 | 12 | useEffect(() => { 13 | const todos = localStorage.getItem(TODO_LOCAL_STORAGE_KEY) 14 | 15 | if (todos) { 16 | dispatch({ 17 | type: 'SET_TODOS', 18 | payload: { todos: todoSchema.array().parse(JSON.parse(todos)) }, 19 | }) 20 | } 21 | }, [dispatch]) 22 | 23 | return ( 24 |
25 |
26 | 27 | 28 |
29 | ) 30 | } 31 | 32 | export default App 33 | -------------------------------------------------------------------------------- /src/components/Header.tsx: -------------------------------------------------------------------------------- 1 | import { useTodoStateContext } from '../hooks/useStateContext' 2 | 3 | export const Header = () => { 4 | const state = useTodoStateContext() 5 | 6 | const completedTodos = state.todos.filter((todo) => todo.isCompleted) 7 | const completedTodosCount = completedTodos.length 8 | const todosCount = state.todos.length 9 | 10 | return ( 11 |
12 |
13 |

Luffy

14 |

Todos done

15 |

16 | Keep working hard 17 |

18 |
19 |
20 | 21 | {completedTodosCount}/{todosCount} 22 | 23 |
24 |
25 | ) 26 | } 27 | -------------------------------------------------------------------------------- /src/providers/TodoContext.tsx: -------------------------------------------------------------------------------- 1 | import type { Action } from '../reducers/todo' 2 | import type { Todo } from '../schemas/todos' 3 | import type { ReactNode, Dispatch } from 'react' 4 | 5 | import { createContext, useReducer } from 'react' 6 | 7 | import { todoReducer } from '../reducers/todo' 8 | 9 | export type State = { 10 | todos: Array 11 | } 12 | 13 | const initialState: State = { 14 | todos: [], 15 | } 16 | 17 | export const TodoStateContext = createContext(undefined) 18 | export const TodoDispatchContext = createContext | undefined>( 19 | undefined 20 | ) 21 | 22 | type StateProviderProps = { 23 | children: ReactNode 24 | } 25 | 26 | const TodoProvider = ({ children }: StateProviderProps) => { 27 | const [state, dispatch] = useReducer(todoReducer, initialState) 28 | 29 | return ( 30 | 31 | 32 | {children} 33 | 34 | 35 | ) 36 | } 37 | 38 | export { TodoProvider } 39 | -------------------------------------------------------------------------------- /public/pen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "-luffy", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc -b && vite build", 9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@fontsource-variable/inter": "^5.0.18", 14 | "@radix-ui/react-checkbox": "^1.1.1", 15 | "@radix-ui/react-menubar": "^1.1.1", 16 | "class-variance-authority": "^0.7.0", 17 | "clsx": "^2.1.1", 18 | "lucide-react": "^0.397.0", 19 | "react": "^18.3.1", 20 | "react-dom": "^18.3.1", 21 | "tailwind-merge": "^2.3.0", 22 | "zod": "^3.23.8" 23 | }, 24 | "devDependencies": { 25 | "@types/dom-view-transitions": "^1.0.4", 26 | "@types/react": "^18.3.3", 27 | "@types/react-dom": "^18.3.0", 28 | "@typescript-eslint/eslint-plugin": "^7.13.1", 29 | "@typescript-eslint/parser": "^7.14.1", 30 | "@vitejs/plugin-react": "^4.3.1", 31 | "autoprefixer": "^10.4.19", 32 | "eslint": "^8.57.0", 33 | "eslint-plugin-import": "^2.29.1", 34 | "eslint-plugin-react-hooks": "^4.6.2", 35 | "eslint-plugin-react-refresh": "^0.4.7", 36 | "postcss": "^8.4.38", 37 | "tailwindcss": "^3.4.4", 38 | "typescript": "^5.2.2", 39 | "vite": "^5.3.1" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/components/Menubar.tsx: -------------------------------------------------------------------------------- 1 | import * as RadixMenubar from '@radix-ui/react-menubar' 2 | import { Pen, EllipsisVertical, Trash } from 'lucide-react' 3 | 4 | type MenubarProps = { 5 | onEdit: () => void 6 | onDelete: () => void 7 | } 8 | 9 | export const Menubar = ({ onEdit, onDelete }: MenubarProps) => { 10 | return ( 11 | 12 | 13 | 14 | 15 | 16 | 17 | 22 | 26 | 27 | Edit 28 | 29 | 30 | 34 | 35 | 36 | Delete 37 | 38 | 39 | 40 | 41 | 42 | 43 | ) 44 | } 45 | -------------------------------------------------------------------------------- /src/components/FormInput.tsx: -------------------------------------------------------------------------------- 1 | import { useRef, useState } from 'react' 2 | import { flushSync } from 'react-dom' 3 | 4 | import { useTodoDispatchContext } from '../hooks/useDispatchContext' 5 | 6 | export const FormInput = () => { 7 | const [todoValue, setTodoValue] = useState('') 8 | 9 | const inputRef = useRef(null) 10 | 11 | const dispatch = useTodoDispatchContext() 12 | 13 | const handleSubmit = (event: React.FormEvent) => { 14 | event.preventDefault() 15 | if (!todoValue) return 16 | 17 | // not supported by all browsers 18 | if (document.startViewTransition) { 19 | document.startViewTransition(() => { 20 | flushSync(() => { 21 | console.log('dispatching inside view transition') 22 | dispatch({ type: 'ADD_TODO', payload: { title: todoValue } }) 23 | }) 24 | }) 25 | } else { 26 | dispatch({ type: 'ADD_TODO', payload: { title: todoValue } }) 27 | } 28 | 29 | setTodoValue('') 30 | inputRef.current?.focus() 31 | } 32 | 33 | return ( 34 |
35 | setTodoValue(event.target.value)} 40 | placeholder="Wash dishes" 41 | className="flex-grow px-3 py-2 border border-gray-800 rounded-md text-gray-800 placeholder:opacity-80 text-lg font-medium bg-white focus:outline-none focus:shadow-md" 42 | /> 43 | 50 |
51 | ) 52 | } 53 | -------------------------------------------------------------------------------- /.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 | 'plugin:import/errors', 9 | 'plugin:import/warnings', 10 | 'plugin:import/typescript', 11 | ], 12 | ignorePatterns: ['dist', '.eslintrc.cjs'], 13 | parser: '@typescript-eslint/parser', 14 | plugins: ['react-refresh'], 15 | parserOptions: { 16 | project: ['./tsconfig.json', './tsconfig.app.json', './tsconfig.node.json'], 17 | }, 18 | rules: { 19 | '@typescript-eslint/consistent-type-imports': 'error', 20 | '@typescript-eslint/no-redeclare': 'error', 21 | '@typescript-eslint/no-floating-promises': 'warn', 22 | '@typescript-eslint/consistent-type-definitions': ['error', 'type'], 23 | '@typescript-eslint/naming-convention': [ 24 | 'error', 25 | { 26 | selector: 'variable', 27 | types: ['boolean'], 28 | format: ['PascalCase'], 29 | prefix: ['is', 'should', 'has', 'are', 'can', 'was'], 30 | }, 31 | ], 32 | 'no-restricted-syntax': [ 33 | 'error', 34 | { 35 | selector: 'TSEnumDeclaration', 36 | message: "Don't declare enums", 37 | }, 38 | ], 39 | '@typescript-eslint/array-type': ['error', { default: 'generic' }], 40 | '@typescript-eslint/no-misused-promises': [ 41 | 'error', 42 | { 43 | checksVoidReturn: true, 44 | checksConditionals: true, 45 | checksSpreads: true, 46 | }, 47 | ], 48 | 'no-await-in-loop': 'error', 49 | 'import/order': [ 50 | 'error', 51 | { 52 | 'newlines-between': 'always', 53 | groups: ['type', 'builtin', 'external', ['parent', 'sibling'], 'index'], 54 | alphabetize: { 55 | order: 'asc', 56 | caseInsensitive: true, 57 | }, 58 | }, 59 | ], 60 | 'react-refresh/only-export-components': [ 61 | 'warn', 62 | { allowConstantExport: true }, 63 | ], 64 | }, 65 | } 66 | -------------------------------------------------------------------------------- /src/reducers/todo.ts: -------------------------------------------------------------------------------- 1 | import type { State } from '../providers/TodoContext' 2 | import type { Todo } from '../schemas/todos' 3 | 4 | import { TODO_LOCAL_STORAGE_KEY } from '../lib/constants' 5 | 6 | export type Action = 7 | | { type: 'ADD_TODO'; payload: { title: string } } 8 | | { type: 'CHECK_TODO'; payload: { id: string; isCompleted: boolean } } 9 | | { type: 'DELETE_TODO'; payload: { id: string } } 10 | | { type: 'EDIT_TODO'; payload: { id: string; title: string } } 11 | | { type: 'SET_TODOS'; payload: { todos: Array } } 12 | 13 | export const todoReducer = (state: State, action: Action): State => { 14 | if (action.type === 'ADD_TODO') { 15 | const newTodos = [ 16 | ...state.todos, 17 | { 18 | id: Date.now().toString(), 19 | title: action.payload.title, 20 | isCompleted: false, 21 | }, 22 | ] 23 | 24 | localStorage.setItem(TODO_LOCAL_STORAGE_KEY, JSON.stringify(newTodos)) 25 | 26 | return { 27 | ...state, 28 | todos: newTodos, 29 | } 30 | } 31 | 32 | if (action.type === 'CHECK_TODO') { 33 | const newTodos = state.todos.map((todo) => 34 | todo.id === action.payload.id 35 | ? { ...todo, isCompleted: action.payload.isCompleted } 36 | : todo 37 | ) 38 | 39 | localStorage.setItem(TODO_LOCAL_STORAGE_KEY, JSON.stringify(newTodos)) 40 | 41 | return { 42 | ...state, 43 | todos: newTodos, 44 | } 45 | } 46 | 47 | if (action.type === 'DELETE_TODO') { 48 | const newTodos = state.todos.filter((todo) => todo.id !== action.payload.id) 49 | 50 | localStorage.setItem(TODO_LOCAL_STORAGE_KEY, JSON.stringify(newTodos)) 51 | 52 | return { 53 | ...state, 54 | todos: newTodos, 55 | } 56 | } 57 | 58 | if (action.type === 'EDIT_TODO') { 59 | const newTodos = state.todos.map((todo) => 60 | todo.id === action.payload.id 61 | ? { ...todo, title: action.payload.title } 62 | : todo 63 | ) 64 | 65 | localStorage.setItem(TODO_LOCAL_STORAGE_KEY, JSON.stringify(newTodos)) 66 | 67 | return { 68 | ...state, 69 | todos: newTodos, 70 | } 71 | } 72 | 73 | if (action.type === 'SET_TODOS') { 74 | return { 75 | ...state, 76 | todos: action.payload.todos, 77 | } 78 | } 79 | 80 | return state 81 | } 82 | -------------------------------------------------------------------------------- /src/components/Item.tsx: -------------------------------------------------------------------------------- 1 | import type { Todo } from '../schemas/todos' 2 | 3 | import { useEffect, useState } from 'react' 4 | import { flushSync } from 'react-dom' 5 | 6 | import { Checkbox } from './Checkbox' 7 | import { Menubar } from './Menubar' 8 | import { useTodoDispatchContext } from '../hooks/useDispatchContext' 9 | import { EDIT_TODO_DELAY } from '../lib/constants' 10 | import { cn } from '../lib/utils' 11 | 12 | import './Item.css' 13 | 14 | type ItemProps = { 15 | item: Todo 16 | } 17 | 18 | export const Item = ({ item }: ItemProps) => { 19 | const dispatch = useTodoDispatchContext() 20 | 21 | const [isEditing, setIsEditing] = useState(false) 22 | const [newTitle, setNewTitle] = useState(item.title) 23 | 24 | function onCheckedChange(checked: boolean) { 25 | dispatch({ 26 | type: 'CHECK_TODO', 27 | payload: { id: item.id, isCompleted: checked }, 28 | }) 29 | } 30 | 31 | function onEdit() { 32 | setIsEditing(!isEditing) 33 | } 34 | 35 | function onDelete() { 36 | if (document.startViewTransition) { 37 | document.startViewTransition(() => { 38 | flushSync(() => { 39 | dispatch({ type: 'DELETE_TODO', payload: { id: item.id } }) 40 | }) 41 | }) 42 | } else { 43 | dispatch({ type: 'DELETE_TODO', payload: { id: item.id } }) 44 | } 45 | } 46 | 47 | useEffect(() => { 48 | let timeout: number | null = null 49 | 50 | if (isEditing && newTitle && newTitle !== item.title) { 51 | timeout = setTimeout(() => { 52 | dispatch({ 53 | type: 'EDIT_TODO', 54 | payload: { id: item.id, title: newTitle }, 55 | }) 56 | }, EDIT_TODO_DELAY) 57 | } 58 | 59 | return () => { 60 | if (timeout) { 61 | clearTimeout(timeout) 62 | } 63 | } 64 | }, [dispatch, isEditing, item.id, item.title, newTitle]) 65 | 66 | return ( 67 |
  • 73 | 74 | 75 | {isEditing ? ( 76 | setNewTitle(event.target.value)} 81 | onBlur={() => setIsEditing(false)} 82 | placeholder="Cook food" 83 | aria-label="Edit title" 84 | className="text-base bg-transparent font-medium text-gray-800 placeholder:opacity-80 focus:outline-none flex-grow" 85 | /> 86 | ) : ( 87 |

    92 | {item.title} 93 |

    94 | )} 95 | 96 | 97 |
  • 98 | ) 99 | } 100 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Todo App built with React 2 | 3 | I decided to build another Todo App and try out two things: 4 | 5 | - Context and Reducer pattern: Two contexts, one for the state and one for dispatch. 6 | - View Transitions API: To animate the items when they are added or removed. 7 | 8 | # Demo 9 | 10 | https://github.com/tigerabrodi/luffy/assets/49603590/4038c33e-88d4-4923-93ae-3a80afe5322d 11 | 12 | # Get it up and running 13 | 14 | 1. Clone the repository 15 | 2. Run `pnpm install` 16 | 3. Run `pnpm dev` 17 | 18 | # Context and Reducer pattern 19 | 20 | ## Problem with a single context 21 | 22 | Whenever you update state in a context, all components that consume the context are re-rendered. Even if the state they consume isn't the one that changed. 23 | 24 | This isn't always a problem, but it's not efficient. If a component is simply triggering an update to happen, it doesn't need to re-render. Therefore, it shouldn't. 25 | 26 | To be clear: A component that consume a `setState` function shouldn't re-render when the state changes. It's only causing the update to happen but doesn't need to know about the state. 27 | 28 | ## Solution: Two contexts 29 | 30 | The solution to this is to use two contexts and a reducer. One for the state and one for the dispatch. 31 | 32 | Components that dispatch actions will not re-render when state changes. 33 | 34 | Mind you, this isn't always needed and of course an overkill for a todo app, but I wanted to try it out and see how it re-renders behave. 35 | 36 |
    37 | 🍿 Todo Context Code 38 | 39 | ```tsx 40 | import type { Action } from '../reducers/todo' 41 | import type { Todo } from '../schemas/todos' 42 | import type { ReactNode, Dispatch } from 'react' 43 | 44 | import { createContext, useReducer } from 'react' 45 | 46 | import { todoReducer } from '../reducers/todo' 47 | 48 | export type State = { 49 | todos: Array 50 | } 51 | 52 | const initialState: State = { 53 | todos: [], 54 | } 55 | 56 | export const TodoStateContext = createContext(undefined) 57 | export const TodoDispatchContext = createContext | undefined>( 58 | undefined 59 | ) 60 | 61 | type StateProviderProps = { 62 | children: ReactNode 63 | } 64 | 65 | const TodoProvider = ({ children }: StateProviderProps) => { 66 | const [state, dispatch] = useReducer(todoReducer, initialState) 67 | 68 | return ( 69 | 70 | 71 | {children} 72 | 73 | 74 | ) 75 | } 76 | 77 | export { TodoProvider } 78 | ``` 79 | 80 |
    81 | 82 | # View Transitions API 83 | 84 | The View Transitions API is a new API that allows you to animate the UI between two different states. 85 | 86 | It's supported in Chrome, under feature flag in Safari and not yet in Firefox. 87 | 88 |
    89 | 🍿 View Transitions API Explained 90 | 91 | --- 92 | 93 | ## What is it? 94 | 95 | A view transition in its essence is a way to animate the UI between two different states. 96 | 97 | ## Anatomy of a View Transition 98 | 99 | During a view transition, the browser constructs a pseudo-element tree that represents the old and new views. 100 | 101 | ``` 102 | ::view-transition 103 | └─ ::view-transition-group(root) 104 | └─ ::view-transition-image-pair(root) 105 | ├─ ::view-transition-old(root) 106 | └─ ::view-transition-new(root) 107 | ``` 108 | 109 | - `::view-transition` is the main element that represents the view transition. 110 | - `::view-transition-group(root)` represents a single view transition group. In a to-do list app, ::view-transition-group(root) would represent the transition for the entire to-do list container. 111 | - `::view-transition-image-pair(root)` This is a container for the view transition's "old" and "new" view states, before and after the transition. In a to-do list app, ::view-transition-image-pair(root) would contain the old and new states of the to-do list container during the transition. 112 | - `::view-transition-old(root)` is the old view transition element. In a to-do list app, ::view-transition-old(root) would represent the snapshot of the to-do list before an item is added, removed, or updated. 113 | - `::view-transition-new(root)` is the new view transition element. In a to-do list app, ::view-transition-new(root) would represent the snapshot of the to-do list after an item is added, removed, or updated. 114 | 115 | ## Transition Name 116 | 117 | All the elements involved in a transition must have a unique `view-transition-name` style property. This tells the browser to capture the element's visual state for the transition. 118 | 119 | In a todo app, this doesn't just mean the item that gets removed, but also all the other items. Because if an item gets removed, the other items will shift their positioning. 120 | 121 | That's one of the confusions I had. I wanted to explicit about it. 122 | 123 | If the name isn't unique, the transition won't work. 124 | 125 | It's kind of like React's key prop. 126 | 127 | How I implemented it in `src/components/Item.tsx`: 128 | 129 | ```tsx 130 |
  • 136 | // ... 137 |
  • 138 | ``` 139 | 140 | ## Transition Class 141 | 142 | Transition class is different. It's a shared class to the elements involved in a transition. Both class and name are required for the view transition to work. 143 | 144 | How I implemented it in `src/components/Item.css`: 145 | 146 | ```css 147 | li { 148 | view-transition-class: item; 149 | } 150 | ``` 151 | 152 | ## Starting a transition 153 | 154 | The stuff I've showed you so far is all you need to start a view transition. By default, it's a simple transition with a fade-in and fade-out effect. 155 | 156 | To start the transition, you do the state updates inside `document.startViewTransition`. 157 | 158 | ```jsx 159 | document.startViewTransition(() => { 160 | flushSync(() => { 161 | dispatch({ type: 'ADD_TODO', payload: { title: todoValue } }) 162 | }) 163 | }) 164 | ``` 165 | 166 | What's the deal with `flushSync` you may wonder? 167 | 168 | Well, React batches state updates together asynchronously. So if you do a state update inside a view transition, it won't be reflected immediately. 169 | 170 | To make sure the state update is reflected immediately, you need to wrap it in `flushSync`. 171 | 172 | I've written about it here: [Understanding flushSync](https://tigerabrodi.blog/understanding-flushsync-mastering-batching-behavior-in-reactjs). 173 | 174 | ## More stuff 175 | 176 | If you look at my CSS, you'll see some more things: 177 | 178 | ```css 179 | @keyframes slide-out { 180 | to { 181 | translate: 100% 0; 182 | opacity: 0; 183 | } 184 | } 185 | 186 | @keyframes slide-in { 187 | from { 188 | translate: 100% 0; 189 | opacity: 0; 190 | } 191 | } 192 | 193 | ::view-transition-group(.item) { 194 | animation-duration: 400ms; 195 | } 196 | 197 | /* Item gets added */ 198 | ::view-transition-new(.item):only-child { 199 | animation-name: slide-in; 200 | } 201 | 202 | /* Item gets removed */ 203 | ::view-transition-old(.item):only-child { 204 | animation-name: slide-out; 205 | } 206 | ``` 207 | 208 | We got two animations: `slide-in` and `slide-out`. 209 | 210 | The `::view-transition-group(.item)` is the wrapper around the image pair which contains the old and new views. The child views will inherit the animation duration from the parent. 211 | 212 | Here comes the very interesting part: 213 | 214 | ```css 215 | /* Item gets added */ 216 | ::view-transition-new(.item):only-child { 217 | animation-name: slide-in; 218 | } 219 | 220 | /* Item gets removed */ 221 | ::view-transition-old(.item):only-child { 222 | animation-name: slide-out; 223 | } 224 | ``` 225 | 226 | When a view transition happens, we have the snapshot of the old and new view. Each view contains the children elements. In our case, we target the transition class `.item` which is applied to each `li` element. 227 | 228 | Both the old and new view will have the entire view of the list. 229 | 230 | However, if an item gets added, it means the old view does NOT have the item that was added. While the new view does. 231 | 232 | If an item is deleted, the old view has the item that was deleted. The new view doesn't have it. 233 | 234 | When we use `:only-child`, we're saying in a human language e.g. if an item is added: "If the element with transition class `.item` only exists in the new view but not the old one, use the `slide-in` animation." 235 | 236 | So, we're telling the browser to animate the item that didn't exist but now does. 237 | 238 | It's the same way the other way around. 239 | 240 | It's a bit tricky to understand. But the key here is to understand that there is a difference in the old and new view. 241 | 242 | We want to target the `li` element that was added or removed. If removed, it doesn't exist in the new view during the view transition. 243 | 244 | ## Future 245 | 246 | I'm excited about this API. 247 | 248 | It's fun because it's not tried to specific animations. The way it's constructed is super cool. It unlocks many doors. 249 | 250 | You have a transition happening between two states. The old and new state. And you decide what should animate during this transition. 251 | 252 | I'm stoked for its future. 253 | 254 |
    255 | 256 | # Zod and TypeScript baby 257 | 258 | If you know me, you know I love type safe code. 259 | 260 | So yeah, using em too, cheers. 261 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@fontsource-variable/inter': 12 | specifier: ^5.0.18 13 | version: 5.0.18 14 | '@radix-ui/react-checkbox': 15 | specifier: ^1.1.1 16 | version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 17 | '@radix-ui/react-menubar': 18 | specifier: ^1.1.1 19 | version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 20 | class-variance-authority: 21 | specifier: ^0.7.0 22 | version: 0.7.0 23 | clsx: 24 | specifier: ^2.1.1 25 | version: 2.1.1 26 | lucide-react: 27 | specifier: ^0.397.0 28 | version: 0.397.0(react@18.3.1) 29 | react: 30 | specifier: ^18.3.1 31 | version: 18.3.1 32 | react-dom: 33 | specifier: ^18.3.1 34 | version: 18.3.1(react@18.3.1) 35 | tailwind-merge: 36 | specifier: ^2.3.0 37 | version: 2.3.0 38 | zod: 39 | specifier: ^3.23.8 40 | version: 3.23.8 41 | devDependencies: 42 | '@types/dom-view-transitions': 43 | specifier: ^1.0.4 44 | version: 1.0.4 45 | '@types/react': 46 | specifier: ^18.3.3 47 | version: 18.3.3 48 | '@types/react-dom': 49 | specifier: ^18.3.0 50 | version: 18.3.0 51 | '@typescript-eslint/eslint-plugin': 52 | specifier: ^7.13.1 53 | version: 7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2) 54 | '@typescript-eslint/parser': 55 | specifier: ^7.14.1 56 | version: 7.14.1(eslint@8.57.0)(typescript@5.5.2) 57 | '@vitejs/plugin-react': 58 | specifier: ^4.3.1 59 | version: 4.3.1(vite@5.3.1(@types/node@20.14.9)) 60 | autoprefixer: 61 | specifier: ^10.4.19 62 | version: 10.4.19(postcss@8.4.38) 63 | eslint: 64 | specifier: ^8.57.0 65 | version: 8.57.0 66 | eslint-plugin-import: 67 | specifier: ^2.29.1 68 | version: 2.29.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0) 69 | eslint-plugin-react-hooks: 70 | specifier: ^4.6.2 71 | version: 4.6.2(eslint@8.57.0) 72 | eslint-plugin-react-refresh: 73 | specifier: ^0.4.7 74 | version: 0.4.7(eslint@8.57.0) 75 | postcss: 76 | specifier: ^8.4.38 77 | version: 8.4.38 78 | tailwindcss: 79 | specifier: ^3.4.4 80 | version: 3.4.4 81 | typescript: 82 | specifier: ^5.2.2 83 | version: 5.5.2 84 | vite: 85 | specifier: ^5.3.1 86 | version: 5.3.1(@types/node@20.14.9) 87 | 88 | packages: 89 | 90 | '@alloc/quick-lru@5.2.0': 91 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 92 | engines: {node: '>=10'} 93 | 94 | '@ampproject/remapping@2.3.0': 95 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 96 | engines: {node: '>=6.0.0'} 97 | 98 | '@babel/code-frame@7.24.7': 99 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 100 | engines: {node: '>=6.9.0'} 101 | 102 | '@babel/compat-data@7.24.7': 103 | resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} 104 | engines: {node: '>=6.9.0'} 105 | 106 | '@babel/core@7.24.7': 107 | resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} 108 | engines: {node: '>=6.9.0'} 109 | 110 | '@babel/generator@7.24.7': 111 | resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} 112 | engines: {node: '>=6.9.0'} 113 | 114 | '@babel/helper-compilation-targets@7.24.7': 115 | resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} 116 | engines: {node: '>=6.9.0'} 117 | 118 | '@babel/helper-environment-visitor@7.24.7': 119 | resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} 120 | engines: {node: '>=6.9.0'} 121 | 122 | '@babel/helper-function-name@7.24.7': 123 | resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} 124 | engines: {node: '>=6.9.0'} 125 | 126 | '@babel/helper-hoist-variables@7.24.7': 127 | resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} 128 | engines: {node: '>=6.9.0'} 129 | 130 | '@babel/helper-module-imports@7.24.7': 131 | resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} 132 | engines: {node: '>=6.9.0'} 133 | 134 | '@babel/helper-module-transforms@7.24.7': 135 | resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} 136 | engines: {node: '>=6.9.0'} 137 | peerDependencies: 138 | '@babel/core': ^7.0.0 139 | 140 | '@babel/helper-plugin-utils@7.24.7': 141 | resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} 142 | engines: {node: '>=6.9.0'} 143 | 144 | '@babel/helper-simple-access@7.24.7': 145 | resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 146 | engines: {node: '>=6.9.0'} 147 | 148 | '@babel/helper-split-export-declaration@7.24.7': 149 | resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} 150 | engines: {node: '>=6.9.0'} 151 | 152 | '@babel/helper-string-parser@7.24.7': 153 | resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} 154 | engines: {node: '>=6.9.0'} 155 | 156 | '@babel/helper-validator-identifier@7.24.7': 157 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 158 | engines: {node: '>=6.9.0'} 159 | 160 | '@babel/helper-validator-option@7.24.7': 161 | resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} 162 | engines: {node: '>=6.9.0'} 163 | 164 | '@babel/helpers@7.24.7': 165 | resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} 166 | engines: {node: '>=6.9.0'} 167 | 168 | '@babel/highlight@7.24.7': 169 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 170 | engines: {node: '>=6.9.0'} 171 | 172 | '@babel/parser@7.24.7': 173 | resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} 174 | engines: {node: '>=6.0.0'} 175 | hasBin: true 176 | 177 | '@babel/plugin-transform-react-jsx-self@7.24.7': 178 | resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} 179 | engines: {node: '>=6.9.0'} 180 | peerDependencies: 181 | '@babel/core': ^7.0.0-0 182 | 183 | '@babel/plugin-transform-react-jsx-source@7.24.7': 184 | resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} 185 | engines: {node: '>=6.9.0'} 186 | peerDependencies: 187 | '@babel/core': ^7.0.0-0 188 | 189 | '@babel/runtime@7.24.7': 190 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} 191 | engines: {node: '>=6.9.0'} 192 | 193 | '@babel/template@7.24.7': 194 | resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} 195 | engines: {node: '>=6.9.0'} 196 | 197 | '@babel/traverse@7.24.7': 198 | resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} 199 | engines: {node: '>=6.9.0'} 200 | 201 | '@babel/types@7.24.7': 202 | resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} 203 | engines: {node: '>=6.9.0'} 204 | 205 | '@esbuild/aix-ppc64@0.21.5': 206 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 207 | engines: {node: '>=12'} 208 | cpu: [ppc64] 209 | os: [aix] 210 | 211 | '@esbuild/android-arm64@0.21.5': 212 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 213 | engines: {node: '>=12'} 214 | cpu: [arm64] 215 | os: [android] 216 | 217 | '@esbuild/android-arm@0.21.5': 218 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 219 | engines: {node: '>=12'} 220 | cpu: [arm] 221 | os: [android] 222 | 223 | '@esbuild/android-x64@0.21.5': 224 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 225 | engines: {node: '>=12'} 226 | cpu: [x64] 227 | os: [android] 228 | 229 | '@esbuild/darwin-arm64@0.21.5': 230 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 231 | engines: {node: '>=12'} 232 | cpu: [arm64] 233 | os: [darwin] 234 | 235 | '@esbuild/darwin-x64@0.21.5': 236 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 237 | engines: {node: '>=12'} 238 | cpu: [x64] 239 | os: [darwin] 240 | 241 | '@esbuild/freebsd-arm64@0.21.5': 242 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 243 | engines: {node: '>=12'} 244 | cpu: [arm64] 245 | os: [freebsd] 246 | 247 | '@esbuild/freebsd-x64@0.21.5': 248 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 249 | engines: {node: '>=12'} 250 | cpu: [x64] 251 | os: [freebsd] 252 | 253 | '@esbuild/linux-arm64@0.21.5': 254 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 255 | engines: {node: '>=12'} 256 | cpu: [arm64] 257 | os: [linux] 258 | 259 | '@esbuild/linux-arm@0.21.5': 260 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 261 | engines: {node: '>=12'} 262 | cpu: [arm] 263 | os: [linux] 264 | 265 | '@esbuild/linux-ia32@0.21.5': 266 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 267 | engines: {node: '>=12'} 268 | cpu: [ia32] 269 | os: [linux] 270 | 271 | '@esbuild/linux-loong64@0.21.5': 272 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 273 | engines: {node: '>=12'} 274 | cpu: [loong64] 275 | os: [linux] 276 | 277 | '@esbuild/linux-mips64el@0.21.5': 278 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 279 | engines: {node: '>=12'} 280 | cpu: [mips64el] 281 | os: [linux] 282 | 283 | '@esbuild/linux-ppc64@0.21.5': 284 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 285 | engines: {node: '>=12'} 286 | cpu: [ppc64] 287 | os: [linux] 288 | 289 | '@esbuild/linux-riscv64@0.21.5': 290 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 291 | engines: {node: '>=12'} 292 | cpu: [riscv64] 293 | os: [linux] 294 | 295 | '@esbuild/linux-s390x@0.21.5': 296 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 297 | engines: {node: '>=12'} 298 | cpu: [s390x] 299 | os: [linux] 300 | 301 | '@esbuild/linux-x64@0.21.5': 302 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 303 | engines: {node: '>=12'} 304 | cpu: [x64] 305 | os: [linux] 306 | 307 | '@esbuild/netbsd-x64@0.21.5': 308 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 309 | engines: {node: '>=12'} 310 | cpu: [x64] 311 | os: [netbsd] 312 | 313 | '@esbuild/openbsd-x64@0.21.5': 314 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 315 | engines: {node: '>=12'} 316 | cpu: [x64] 317 | os: [openbsd] 318 | 319 | '@esbuild/sunos-x64@0.21.5': 320 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 321 | engines: {node: '>=12'} 322 | cpu: [x64] 323 | os: [sunos] 324 | 325 | '@esbuild/win32-arm64@0.21.5': 326 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 327 | engines: {node: '>=12'} 328 | cpu: [arm64] 329 | os: [win32] 330 | 331 | '@esbuild/win32-ia32@0.21.5': 332 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 333 | engines: {node: '>=12'} 334 | cpu: [ia32] 335 | os: [win32] 336 | 337 | '@esbuild/win32-x64@0.21.5': 338 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 339 | engines: {node: '>=12'} 340 | cpu: [x64] 341 | os: [win32] 342 | 343 | '@eslint-community/eslint-utils@4.4.0': 344 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 345 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 346 | peerDependencies: 347 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 348 | 349 | '@eslint-community/regexpp@4.10.1': 350 | resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} 351 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 352 | 353 | '@eslint/eslintrc@2.1.4': 354 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 355 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 356 | 357 | '@eslint/js@8.57.0': 358 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 359 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 360 | 361 | '@floating-ui/core@1.6.3': 362 | resolution: {integrity: sha512-1ZpCvYf788/ZXOhRQGFxnYQOVgeU+pi0i+d0Ow34La7qjIXETi6RNswGVKkA6KcDO8/+Ysu2E/CeUmmeEBDvTg==} 363 | 364 | '@floating-ui/dom@1.6.6': 365 | resolution: {integrity: sha512-qiTYajAnh3P+38kECeffMSQgbvXty2VB6rS+42iWR4FPIlZjLK84E9qtLnMTLIpPz2znD/TaFqaiavMUrS+Hcw==} 366 | 367 | '@floating-ui/react-dom@2.1.1': 368 | resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} 369 | peerDependencies: 370 | react: '>=16.8.0' 371 | react-dom: '>=16.8.0' 372 | 373 | '@floating-ui/utils@0.2.3': 374 | resolution: {integrity: sha512-XGndio0l5/Gvd6CLIABvsav9HHezgDFFhDfHk1bvLfr9ni8dojqLSvBbotJEjmIwNHL7vK4QzBJTdBRoB+c1ww==} 375 | 376 | '@fontsource-variable/inter@5.0.18': 377 | resolution: {integrity: sha512-rJzSrtJ3b7djiGFvRuTe6stDfbYJGhdQSfn2SI2WfXviee7Er0yKAHE5u7FU7OWVQQQ1x3+cxdmx9NdiAkcrcA==} 378 | 379 | '@humanwhocodes/config-array@0.11.14': 380 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 381 | engines: {node: '>=10.10.0'} 382 | deprecated: Use @eslint/config-array instead 383 | 384 | '@humanwhocodes/module-importer@1.0.1': 385 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 386 | engines: {node: '>=12.22'} 387 | 388 | '@humanwhocodes/object-schema@2.0.3': 389 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 390 | deprecated: Use @eslint/object-schema instead 391 | 392 | '@isaacs/cliui@8.0.2': 393 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 394 | engines: {node: '>=12'} 395 | 396 | '@jridgewell/gen-mapping@0.3.5': 397 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 398 | engines: {node: '>=6.0.0'} 399 | 400 | '@jridgewell/resolve-uri@3.1.2': 401 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 402 | engines: {node: '>=6.0.0'} 403 | 404 | '@jridgewell/set-array@1.2.1': 405 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 406 | engines: {node: '>=6.0.0'} 407 | 408 | '@jridgewell/sourcemap-codec@1.4.15': 409 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 410 | 411 | '@jridgewell/trace-mapping@0.3.25': 412 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 413 | 414 | '@nodelib/fs.scandir@2.1.5': 415 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 416 | engines: {node: '>= 8'} 417 | 418 | '@nodelib/fs.stat@2.0.5': 419 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 420 | engines: {node: '>= 8'} 421 | 422 | '@nodelib/fs.walk@1.2.8': 423 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 424 | engines: {node: '>= 8'} 425 | 426 | '@pkgjs/parseargs@0.11.0': 427 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 428 | engines: {node: '>=14'} 429 | 430 | '@radix-ui/primitive@1.1.0': 431 | resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} 432 | 433 | '@radix-ui/react-arrow@1.1.0': 434 | resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} 435 | peerDependencies: 436 | '@types/react': '*' 437 | '@types/react-dom': '*' 438 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 439 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 440 | peerDependenciesMeta: 441 | '@types/react': 442 | optional: true 443 | '@types/react-dom': 444 | optional: true 445 | 446 | '@radix-ui/react-checkbox@1.1.1': 447 | resolution: {integrity: sha512-0i/EKJ222Afa1FE0C6pNJxDq1itzcl3HChE9DwskA4th4KRse8ojx8a1nVcOjwJdbpDLcz7uol77yYnQNMHdKw==} 448 | peerDependencies: 449 | '@types/react': '*' 450 | '@types/react-dom': '*' 451 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 452 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 453 | peerDependenciesMeta: 454 | '@types/react': 455 | optional: true 456 | '@types/react-dom': 457 | optional: true 458 | 459 | '@radix-ui/react-collection@1.1.0': 460 | resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} 461 | peerDependencies: 462 | '@types/react': '*' 463 | '@types/react-dom': '*' 464 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 465 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 466 | peerDependenciesMeta: 467 | '@types/react': 468 | optional: true 469 | '@types/react-dom': 470 | optional: true 471 | 472 | '@radix-ui/react-compose-refs@1.1.0': 473 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} 474 | peerDependencies: 475 | '@types/react': '*' 476 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 477 | peerDependenciesMeta: 478 | '@types/react': 479 | optional: true 480 | 481 | '@radix-ui/react-context@1.1.0': 482 | resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} 483 | peerDependencies: 484 | '@types/react': '*' 485 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 486 | peerDependenciesMeta: 487 | '@types/react': 488 | optional: true 489 | 490 | '@radix-ui/react-direction@1.1.0': 491 | resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} 492 | peerDependencies: 493 | '@types/react': '*' 494 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 495 | peerDependenciesMeta: 496 | '@types/react': 497 | optional: true 498 | 499 | '@radix-ui/react-dismissable-layer@1.1.0': 500 | resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} 501 | peerDependencies: 502 | '@types/react': '*' 503 | '@types/react-dom': '*' 504 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 505 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 506 | peerDependenciesMeta: 507 | '@types/react': 508 | optional: true 509 | '@types/react-dom': 510 | optional: true 511 | 512 | '@radix-ui/react-focus-guards@1.1.0': 513 | resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} 514 | peerDependencies: 515 | '@types/react': '*' 516 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 517 | peerDependenciesMeta: 518 | '@types/react': 519 | optional: true 520 | 521 | '@radix-ui/react-focus-scope@1.1.0': 522 | resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} 523 | peerDependencies: 524 | '@types/react': '*' 525 | '@types/react-dom': '*' 526 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 527 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 528 | peerDependenciesMeta: 529 | '@types/react': 530 | optional: true 531 | '@types/react-dom': 532 | optional: true 533 | 534 | '@radix-ui/react-id@1.1.0': 535 | resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} 536 | peerDependencies: 537 | '@types/react': '*' 538 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 539 | peerDependenciesMeta: 540 | '@types/react': 541 | optional: true 542 | 543 | '@radix-ui/react-menu@2.1.1': 544 | resolution: {integrity: sha512-oa3mXRRVjHi6DZu/ghuzdylyjaMXLymx83irM7hTxutQbD+7IhPKdMdRHD26Rm+kHRrWcrUkkRPv5pd47a2xFQ==} 545 | peerDependencies: 546 | '@types/react': '*' 547 | '@types/react-dom': '*' 548 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 549 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 550 | peerDependenciesMeta: 551 | '@types/react': 552 | optional: true 553 | '@types/react-dom': 554 | optional: true 555 | 556 | '@radix-ui/react-menubar@1.1.1': 557 | resolution: {integrity: sha512-V05Hryq/BE2m+rs8d5eLfrS0jmSWSDHEbG7jEyLA5D5J9jTvWj/o3v3xDN9YsOlH6QIkJgiaNDaP+S4T1rdykw==} 558 | peerDependencies: 559 | '@types/react': '*' 560 | '@types/react-dom': '*' 561 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 562 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 563 | peerDependenciesMeta: 564 | '@types/react': 565 | optional: true 566 | '@types/react-dom': 567 | optional: true 568 | 569 | '@radix-ui/react-popper@1.2.0': 570 | resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} 571 | peerDependencies: 572 | '@types/react': '*' 573 | '@types/react-dom': '*' 574 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 575 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 576 | peerDependenciesMeta: 577 | '@types/react': 578 | optional: true 579 | '@types/react-dom': 580 | optional: true 581 | 582 | '@radix-ui/react-portal@1.1.1': 583 | resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} 584 | peerDependencies: 585 | '@types/react': '*' 586 | '@types/react-dom': '*' 587 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 588 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 589 | peerDependenciesMeta: 590 | '@types/react': 591 | optional: true 592 | '@types/react-dom': 593 | optional: true 594 | 595 | '@radix-ui/react-presence@1.1.0': 596 | resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} 597 | peerDependencies: 598 | '@types/react': '*' 599 | '@types/react-dom': '*' 600 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 601 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 602 | peerDependenciesMeta: 603 | '@types/react': 604 | optional: true 605 | '@types/react-dom': 606 | optional: true 607 | 608 | '@radix-ui/react-primitive@2.0.0': 609 | resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} 610 | peerDependencies: 611 | '@types/react': '*' 612 | '@types/react-dom': '*' 613 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 614 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 615 | peerDependenciesMeta: 616 | '@types/react': 617 | optional: true 618 | '@types/react-dom': 619 | optional: true 620 | 621 | '@radix-ui/react-roving-focus@1.1.0': 622 | resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} 623 | peerDependencies: 624 | '@types/react': '*' 625 | '@types/react-dom': '*' 626 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 627 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 628 | peerDependenciesMeta: 629 | '@types/react': 630 | optional: true 631 | '@types/react-dom': 632 | optional: true 633 | 634 | '@radix-ui/react-slot@1.1.0': 635 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} 636 | peerDependencies: 637 | '@types/react': '*' 638 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 639 | peerDependenciesMeta: 640 | '@types/react': 641 | optional: true 642 | 643 | '@radix-ui/react-use-callback-ref@1.1.0': 644 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 645 | peerDependencies: 646 | '@types/react': '*' 647 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 648 | peerDependenciesMeta: 649 | '@types/react': 650 | optional: true 651 | 652 | '@radix-ui/react-use-controllable-state@1.1.0': 653 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 654 | peerDependencies: 655 | '@types/react': '*' 656 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 657 | peerDependenciesMeta: 658 | '@types/react': 659 | optional: true 660 | 661 | '@radix-ui/react-use-escape-keydown@1.1.0': 662 | resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} 663 | peerDependencies: 664 | '@types/react': '*' 665 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 666 | peerDependenciesMeta: 667 | '@types/react': 668 | optional: true 669 | 670 | '@radix-ui/react-use-layout-effect@1.1.0': 671 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 672 | peerDependencies: 673 | '@types/react': '*' 674 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 675 | peerDependenciesMeta: 676 | '@types/react': 677 | optional: true 678 | 679 | '@radix-ui/react-use-previous@1.1.0': 680 | resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} 681 | peerDependencies: 682 | '@types/react': '*' 683 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 684 | peerDependenciesMeta: 685 | '@types/react': 686 | optional: true 687 | 688 | '@radix-ui/react-use-rect@1.1.0': 689 | resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} 690 | peerDependencies: 691 | '@types/react': '*' 692 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 693 | peerDependenciesMeta: 694 | '@types/react': 695 | optional: true 696 | 697 | '@radix-ui/react-use-size@1.1.0': 698 | resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} 699 | peerDependencies: 700 | '@types/react': '*' 701 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 702 | peerDependenciesMeta: 703 | '@types/react': 704 | optional: true 705 | 706 | '@radix-ui/rect@1.1.0': 707 | resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} 708 | 709 | '@rollup/rollup-android-arm-eabi@4.18.0': 710 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 711 | cpu: [arm] 712 | os: [android] 713 | 714 | '@rollup/rollup-android-arm64@4.18.0': 715 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 716 | cpu: [arm64] 717 | os: [android] 718 | 719 | '@rollup/rollup-darwin-arm64@4.18.0': 720 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 721 | cpu: [arm64] 722 | os: [darwin] 723 | 724 | '@rollup/rollup-darwin-x64@4.18.0': 725 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 726 | cpu: [x64] 727 | os: [darwin] 728 | 729 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 730 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 731 | cpu: [arm] 732 | os: [linux] 733 | 734 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 735 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 736 | cpu: [arm] 737 | os: [linux] 738 | 739 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 740 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 741 | cpu: [arm64] 742 | os: [linux] 743 | 744 | '@rollup/rollup-linux-arm64-musl@4.18.0': 745 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 746 | cpu: [arm64] 747 | os: [linux] 748 | 749 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 750 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 751 | cpu: [ppc64] 752 | os: [linux] 753 | 754 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 755 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 756 | cpu: [riscv64] 757 | os: [linux] 758 | 759 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 760 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 761 | cpu: [s390x] 762 | os: [linux] 763 | 764 | '@rollup/rollup-linux-x64-gnu@4.18.0': 765 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 766 | cpu: [x64] 767 | os: [linux] 768 | 769 | '@rollup/rollup-linux-x64-musl@4.18.0': 770 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 771 | cpu: [x64] 772 | os: [linux] 773 | 774 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 775 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 776 | cpu: [arm64] 777 | os: [win32] 778 | 779 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 780 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 781 | cpu: [ia32] 782 | os: [win32] 783 | 784 | '@rollup/rollup-win32-x64-msvc@4.18.0': 785 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 786 | cpu: [x64] 787 | os: [win32] 788 | 789 | '@types/babel__core@7.20.5': 790 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 791 | 792 | '@types/babel__generator@7.6.8': 793 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 794 | 795 | '@types/babel__template@7.4.4': 796 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 797 | 798 | '@types/babel__traverse@7.20.6': 799 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 800 | 801 | '@types/dom-view-transitions@1.0.4': 802 | resolution: {integrity: sha512-oDuagM6G+xPLrLU4KeCKlr1oalMF5mJqV5pDPMDVIEaa8AkUW00i6u+5P02XCjdEEUQJC9dpnxqSLsZeAciSLQ==} 803 | 804 | '@types/estree@1.0.5': 805 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 806 | 807 | '@types/json5@0.0.29': 808 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 809 | 810 | '@types/node@20.14.9': 811 | resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} 812 | 813 | '@types/prop-types@15.7.12': 814 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 815 | 816 | '@types/react-dom@18.3.0': 817 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 818 | 819 | '@types/react@18.3.3': 820 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 821 | 822 | '@typescript-eslint/eslint-plugin@7.14.1': 823 | resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} 824 | engines: {node: ^18.18.0 || >=20.0.0} 825 | peerDependencies: 826 | '@typescript-eslint/parser': ^7.0.0 827 | eslint: ^8.56.0 828 | typescript: '*' 829 | peerDependenciesMeta: 830 | typescript: 831 | optional: true 832 | 833 | '@typescript-eslint/parser@7.14.1': 834 | resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} 835 | engines: {node: ^18.18.0 || >=20.0.0} 836 | peerDependencies: 837 | eslint: ^8.56.0 838 | typescript: '*' 839 | peerDependenciesMeta: 840 | typescript: 841 | optional: true 842 | 843 | '@typescript-eslint/scope-manager@7.14.1': 844 | resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} 845 | engines: {node: ^18.18.0 || >=20.0.0} 846 | 847 | '@typescript-eslint/type-utils@7.14.1': 848 | resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} 849 | engines: {node: ^18.18.0 || >=20.0.0} 850 | peerDependencies: 851 | eslint: ^8.56.0 852 | typescript: '*' 853 | peerDependenciesMeta: 854 | typescript: 855 | optional: true 856 | 857 | '@typescript-eslint/types@7.14.1': 858 | resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} 859 | engines: {node: ^18.18.0 || >=20.0.0} 860 | 861 | '@typescript-eslint/typescript-estree@7.14.1': 862 | resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} 863 | engines: {node: ^18.18.0 || >=20.0.0} 864 | peerDependencies: 865 | typescript: '*' 866 | peerDependenciesMeta: 867 | typescript: 868 | optional: true 869 | 870 | '@typescript-eslint/utils@7.14.1': 871 | resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} 872 | engines: {node: ^18.18.0 || >=20.0.0} 873 | peerDependencies: 874 | eslint: ^8.56.0 875 | 876 | '@typescript-eslint/visitor-keys@7.14.1': 877 | resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} 878 | engines: {node: ^18.18.0 || >=20.0.0} 879 | 880 | '@ungap/structured-clone@1.2.0': 881 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 882 | 883 | '@vitejs/plugin-react@4.3.1': 884 | resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} 885 | engines: {node: ^14.18.0 || >=16.0.0} 886 | peerDependencies: 887 | vite: ^4.2.0 || ^5.0.0 888 | 889 | acorn-jsx@5.3.2: 890 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 891 | peerDependencies: 892 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 893 | 894 | acorn@8.12.0: 895 | resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} 896 | engines: {node: '>=0.4.0'} 897 | hasBin: true 898 | 899 | ajv@6.12.6: 900 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 901 | 902 | ansi-regex@5.0.1: 903 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 904 | engines: {node: '>=8'} 905 | 906 | ansi-regex@6.0.1: 907 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 908 | engines: {node: '>=12'} 909 | 910 | ansi-styles@3.2.1: 911 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 912 | engines: {node: '>=4'} 913 | 914 | ansi-styles@4.3.0: 915 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 916 | engines: {node: '>=8'} 917 | 918 | ansi-styles@6.2.1: 919 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 920 | engines: {node: '>=12'} 921 | 922 | any-promise@1.3.0: 923 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 924 | 925 | anymatch@3.1.3: 926 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 927 | engines: {node: '>= 8'} 928 | 929 | arg@5.0.2: 930 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 931 | 932 | argparse@2.0.1: 933 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 934 | 935 | aria-hidden@1.2.4: 936 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 937 | engines: {node: '>=10'} 938 | 939 | array-buffer-byte-length@1.0.1: 940 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 941 | engines: {node: '>= 0.4'} 942 | 943 | array-includes@3.1.8: 944 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 945 | engines: {node: '>= 0.4'} 946 | 947 | array-union@2.1.0: 948 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 949 | engines: {node: '>=8'} 950 | 951 | array.prototype.findlastindex@1.2.5: 952 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 953 | engines: {node: '>= 0.4'} 954 | 955 | array.prototype.flat@1.3.2: 956 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 957 | engines: {node: '>= 0.4'} 958 | 959 | array.prototype.flatmap@1.3.2: 960 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 961 | engines: {node: '>= 0.4'} 962 | 963 | arraybuffer.prototype.slice@1.0.3: 964 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 965 | engines: {node: '>= 0.4'} 966 | 967 | autoprefixer@10.4.19: 968 | resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} 969 | engines: {node: ^10 || ^12 || >=14} 970 | hasBin: true 971 | peerDependencies: 972 | postcss: ^8.1.0 973 | 974 | available-typed-arrays@1.0.7: 975 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 976 | engines: {node: '>= 0.4'} 977 | 978 | balanced-match@1.0.2: 979 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 980 | 981 | binary-extensions@2.3.0: 982 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 983 | engines: {node: '>=8'} 984 | 985 | brace-expansion@1.1.11: 986 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 987 | 988 | brace-expansion@2.0.1: 989 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 990 | 991 | braces@3.0.3: 992 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 993 | engines: {node: '>=8'} 994 | 995 | browserslist@4.23.1: 996 | resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} 997 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 998 | hasBin: true 999 | 1000 | call-bind@1.0.7: 1001 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 1002 | engines: {node: '>= 0.4'} 1003 | 1004 | callsites@3.1.0: 1005 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1006 | engines: {node: '>=6'} 1007 | 1008 | camelcase-css@2.0.1: 1009 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 1010 | engines: {node: '>= 6'} 1011 | 1012 | caniuse-lite@1.0.30001638: 1013 | resolution: {integrity: sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==} 1014 | 1015 | chalk@2.4.2: 1016 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1017 | engines: {node: '>=4'} 1018 | 1019 | chalk@4.1.2: 1020 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1021 | engines: {node: '>=10'} 1022 | 1023 | chokidar@3.6.0: 1024 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1025 | engines: {node: '>= 8.10.0'} 1026 | 1027 | class-variance-authority@0.7.0: 1028 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} 1029 | 1030 | clsx@2.0.0: 1031 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} 1032 | engines: {node: '>=6'} 1033 | 1034 | clsx@2.1.1: 1035 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 1036 | engines: {node: '>=6'} 1037 | 1038 | color-convert@1.9.3: 1039 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1040 | 1041 | color-convert@2.0.1: 1042 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1043 | engines: {node: '>=7.0.0'} 1044 | 1045 | color-name@1.1.3: 1046 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1047 | 1048 | color-name@1.1.4: 1049 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1050 | 1051 | commander@4.1.1: 1052 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1053 | engines: {node: '>= 6'} 1054 | 1055 | concat-map@0.0.1: 1056 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1057 | 1058 | convert-source-map@2.0.0: 1059 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1060 | 1061 | cross-spawn@7.0.3: 1062 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1063 | engines: {node: '>= 8'} 1064 | 1065 | cssesc@3.0.0: 1066 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1067 | engines: {node: '>=4'} 1068 | hasBin: true 1069 | 1070 | csstype@3.1.3: 1071 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1072 | 1073 | data-view-buffer@1.0.1: 1074 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 1075 | engines: {node: '>= 0.4'} 1076 | 1077 | data-view-byte-length@1.0.1: 1078 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 1079 | engines: {node: '>= 0.4'} 1080 | 1081 | data-view-byte-offset@1.0.0: 1082 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 1083 | engines: {node: '>= 0.4'} 1084 | 1085 | debug@3.2.7: 1086 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1087 | peerDependencies: 1088 | supports-color: '*' 1089 | peerDependenciesMeta: 1090 | supports-color: 1091 | optional: true 1092 | 1093 | debug@4.3.5: 1094 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 1095 | engines: {node: '>=6.0'} 1096 | peerDependencies: 1097 | supports-color: '*' 1098 | peerDependenciesMeta: 1099 | supports-color: 1100 | optional: true 1101 | 1102 | deep-is@0.1.4: 1103 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1104 | 1105 | define-data-property@1.1.4: 1106 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 1107 | engines: {node: '>= 0.4'} 1108 | 1109 | define-properties@1.2.1: 1110 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1111 | engines: {node: '>= 0.4'} 1112 | 1113 | detect-node-es@1.1.0: 1114 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 1115 | 1116 | didyoumean@1.2.2: 1117 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1118 | 1119 | dir-glob@3.0.1: 1120 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1121 | engines: {node: '>=8'} 1122 | 1123 | dlv@1.1.3: 1124 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1125 | 1126 | doctrine@2.1.0: 1127 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1128 | engines: {node: '>=0.10.0'} 1129 | 1130 | doctrine@3.0.0: 1131 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1132 | engines: {node: '>=6.0.0'} 1133 | 1134 | eastasianwidth@0.2.0: 1135 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1136 | 1137 | electron-to-chromium@1.4.812: 1138 | resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==} 1139 | 1140 | emoji-regex@8.0.0: 1141 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1142 | 1143 | emoji-regex@9.2.2: 1144 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1145 | 1146 | es-abstract@1.23.3: 1147 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 1148 | engines: {node: '>= 0.4'} 1149 | 1150 | es-define-property@1.0.0: 1151 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 1152 | engines: {node: '>= 0.4'} 1153 | 1154 | es-errors@1.3.0: 1155 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1156 | engines: {node: '>= 0.4'} 1157 | 1158 | es-object-atoms@1.0.0: 1159 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 1160 | engines: {node: '>= 0.4'} 1161 | 1162 | es-set-tostringtag@2.0.3: 1163 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 1164 | engines: {node: '>= 0.4'} 1165 | 1166 | es-shim-unscopables@1.0.2: 1167 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 1168 | 1169 | es-to-primitive@1.2.1: 1170 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1171 | engines: {node: '>= 0.4'} 1172 | 1173 | esbuild@0.21.5: 1174 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1175 | engines: {node: '>=12'} 1176 | hasBin: true 1177 | 1178 | escalade@3.1.2: 1179 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1180 | engines: {node: '>=6'} 1181 | 1182 | escape-string-regexp@1.0.5: 1183 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1184 | engines: {node: '>=0.8.0'} 1185 | 1186 | escape-string-regexp@4.0.0: 1187 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1188 | engines: {node: '>=10'} 1189 | 1190 | eslint-import-resolver-node@0.3.9: 1191 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1192 | 1193 | eslint-module-utils@2.8.1: 1194 | resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} 1195 | engines: {node: '>=4'} 1196 | peerDependencies: 1197 | '@typescript-eslint/parser': '*' 1198 | eslint: '*' 1199 | eslint-import-resolver-node: '*' 1200 | eslint-import-resolver-typescript: '*' 1201 | eslint-import-resolver-webpack: '*' 1202 | peerDependenciesMeta: 1203 | '@typescript-eslint/parser': 1204 | optional: true 1205 | eslint: 1206 | optional: true 1207 | eslint-import-resolver-node: 1208 | optional: true 1209 | eslint-import-resolver-typescript: 1210 | optional: true 1211 | eslint-import-resolver-webpack: 1212 | optional: true 1213 | 1214 | eslint-plugin-import@2.29.1: 1215 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} 1216 | engines: {node: '>=4'} 1217 | peerDependencies: 1218 | '@typescript-eslint/parser': '*' 1219 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1220 | peerDependenciesMeta: 1221 | '@typescript-eslint/parser': 1222 | optional: true 1223 | 1224 | eslint-plugin-react-hooks@4.6.2: 1225 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} 1226 | engines: {node: '>=10'} 1227 | peerDependencies: 1228 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1229 | 1230 | eslint-plugin-react-refresh@0.4.7: 1231 | resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==} 1232 | peerDependencies: 1233 | eslint: '>=7' 1234 | 1235 | eslint-scope@7.2.2: 1236 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1237 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1238 | 1239 | eslint-visitor-keys@3.4.3: 1240 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1241 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1242 | 1243 | eslint@8.57.0: 1244 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1245 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1246 | hasBin: true 1247 | 1248 | espree@9.6.1: 1249 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1250 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1251 | 1252 | esquery@1.5.0: 1253 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1254 | engines: {node: '>=0.10'} 1255 | 1256 | esrecurse@4.3.0: 1257 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1258 | engines: {node: '>=4.0'} 1259 | 1260 | estraverse@5.3.0: 1261 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1262 | engines: {node: '>=4.0'} 1263 | 1264 | esutils@2.0.3: 1265 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1266 | engines: {node: '>=0.10.0'} 1267 | 1268 | fast-deep-equal@3.1.3: 1269 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1270 | 1271 | fast-glob@3.3.2: 1272 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1273 | engines: {node: '>=8.6.0'} 1274 | 1275 | fast-json-stable-stringify@2.1.0: 1276 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1277 | 1278 | fast-levenshtein@2.0.6: 1279 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1280 | 1281 | fastq@1.17.1: 1282 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1283 | 1284 | file-entry-cache@6.0.1: 1285 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1286 | engines: {node: ^10.12.0 || >=12.0.0} 1287 | 1288 | fill-range@7.1.1: 1289 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1290 | engines: {node: '>=8'} 1291 | 1292 | find-up@5.0.0: 1293 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1294 | engines: {node: '>=10'} 1295 | 1296 | flat-cache@3.2.0: 1297 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1298 | engines: {node: ^10.12.0 || >=12.0.0} 1299 | 1300 | flatted@3.3.1: 1301 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1302 | 1303 | for-each@0.3.3: 1304 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1305 | 1306 | foreground-child@3.2.1: 1307 | resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} 1308 | engines: {node: '>=14'} 1309 | 1310 | fraction.js@4.3.7: 1311 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1312 | 1313 | fs.realpath@1.0.0: 1314 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1315 | 1316 | fsevents@2.3.3: 1317 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1318 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1319 | os: [darwin] 1320 | 1321 | function-bind@1.1.2: 1322 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1323 | 1324 | function.prototype.name@1.1.6: 1325 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1326 | engines: {node: '>= 0.4'} 1327 | 1328 | functions-have-names@1.2.3: 1329 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1330 | 1331 | gensync@1.0.0-beta.2: 1332 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1333 | engines: {node: '>=6.9.0'} 1334 | 1335 | get-intrinsic@1.2.4: 1336 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 1337 | engines: {node: '>= 0.4'} 1338 | 1339 | get-nonce@1.0.1: 1340 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 1341 | engines: {node: '>=6'} 1342 | 1343 | get-symbol-description@1.0.2: 1344 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 1345 | engines: {node: '>= 0.4'} 1346 | 1347 | glob-parent@5.1.2: 1348 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1349 | engines: {node: '>= 6'} 1350 | 1351 | glob-parent@6.0.2: 1352 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1353 | engines: {node: '>=10.13.0'} 1354 | 1355 | glob@10.4.2: 1356 | resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} 1357 | engines: {node: '>=16 || 14 >=14.18'} 1358 | hasBin: true 1359 | 1360 | glob@7.2.3: 1361 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1362 | deprecated: Glob versions prior to v9 are no longer supported 1363 | 1364 | globals@11.12.0: 1365 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1366 | engines: {node: '>=4'} 1367 | 1368 | globals@13.24.0: 1369 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1370 | engines: {node: '>=8'} 1371 | 1372 | globalthis@1.0.4: 1373 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 1374 | engines: {node: '>= 0.4'} 1375 | 1376 | globby@11.1.0: 1377 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1378 | engines: {node: '>=10'} 1379 | 1380 | gopd@1.0.1: 1381 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1382 | 1383 | graphemer@1.4.0: 1384 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1385 | 1386 | has-bigints@1.0.2: 1387 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1388 | 1389 | has-flag@3.0.0: 1390 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1391 | engines: {node: '>=4'} 1392 | 1393 | has-flag@4.0.0: 1394 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1395 | engines: {node: '>=8'} 1396 | 1397 | has-property-descriptors@1.0.2: 1398 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1399 | 1400 | has-proto@1.0.3: 1401 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1402 | engines: {node: '>= 0.4'} 1403 | 1404 | has-symbols@1.0.3: 1405 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1406 | engines: {node: '>= 0.4'} 1407 | 1408 | has-tostringtag@1.0.2: 1409 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1410 | engines: {node: '>= 0.4'} 1411 | 1412 | hasown@2.0.2: 1413 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1414 | engines: {node: '>= 0.4'} 1415 | 1416 | ignore@5.3.1: 1417 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1418 | engines: {node: '>= 4'} 1419 | 1420 | import-fresh@3.3.0: 1421 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1422 | engines: {node: '>=6'} 1423 | 1424 | imurmurhash@0.1.4: 1425 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1426 | engines: {node: '>=0.8.19'} 1427 | 1428 | inflight@1.0.6: 1429 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1430 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1431 | 1432 | inherits@2.0.4: 1433 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1434 | 1435 | internal-slot@1.0.7: 1436 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 1437 | engines: {node: '>= 0.4'} 1438 | 1439 | invariant@2.2.4: 1440 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 1441 | 1442 | is-array-buffer@3.0.4: 1443 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 1444 | engines: {node: '>= 0.4'} 1445 | 1446 | is-bigint@1.0.4: 1447 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1448 | 1449 | is-binary-path@2.1.0: 1450 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1451 | engines: {node: '>=8'} 1452 | 1453 | is-boolean-object@1.1.2: 1454 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1455 | engines: {node: '>= 0.4'} 1456 | 1457 | is-callable@1.2.7: 1458 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1459 | engines: {node: '>= 0.4'} 1460 | 1461 | is-core-module@2.14.0: 1462 | resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} 1463 | engines: {node: '>= 0.4'} 1464 | 1465 | is-data-view@1.0.1: 1466 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 1467 | engines: {node: '>= 0.4'} 1468 | 1469 | is-date-object@1.0.5: 1470 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1471 | engines: {node: '>= 0.4'} 1472 | 1473 | is-extglob@2.1.1: 1474 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1475 | engines: {node: '>=0.10.0'} 1476 | 1477 | is-fullwidth-code-point@3.0.0: 1478 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1479 | engines: {node: '>=8'} 1480 | 1481 | is-glob@4.0.3: 1482 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1483 | engines: {node: '>=0.10.0'} 1484 | 1485 | is-negative-zero@2.0.3: 1486 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 1487 | engines: {node: '>= 0.4'} 1488 | 1489 | is-number-object@1.0.7: 1490 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1491 | engines: {node: '>= 0.4'} 1492 | 1493 | is-number@7.0.0: 1494 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1495 | engines: {node: '>=0.12.0'} 1496 | 1497 | is-path-inside@3.0.3: 1498 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1499 | engines: {node: '>=8'} 1500 | 1501 | is-regex@1.1.4: 1502 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1503 | engines: {node: '>= 0.4'} 1504 | 1505 | is-shared-array-buffer@1.0.3: 1506 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 1507 | engines: {node: '>= 0.4'} 1508 | 1509 | is-string@1.0.7: 1510 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1511 | engines: {node: '>= 0.4'} 1512 | 1513 | is-symbol@1.0.4: 1514 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1515 | engines: {node: '>= 0.4'} 1516 | 1517 | is-typed-array@1.1.13: 1518 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 1519 | engines: {node: '>= 0.4'} 1520 | 1521 | is-weakref@1.0.2: 1522 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1523 | 1524 | isarray@2.0.5: 1525 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1526 | 1527 | isexe@2.0.0: 1528 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1529 | 1530 | jackspeak@3.4.0: 1531 | resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} 1532 | engines: {node: '>=14'} 1533 | 1534 | jiti@1.21.6: 1535 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 1536 | hasBin: true 1537 | 1538 | js-tokens@4.0.0: 1539 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1540 | 1541 | js-yaml@4.1.0: 1542 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1543 | hasBin: true 1544 | 1545 | jsesc@2.5.2: 1546 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1547 | engines: {node: '>=4'} 1548 | hasBin: true 1549 | 1550 | json-buffer@3.0.1: 1551 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1552 | 1553 | json-schema-traverse@0.4.1: 1554 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1555 | 1556 | json-stable-stringify-without-jsonify@1.0.1: 1557 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1558 | 1559 | json5@1.0.2: 1560 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1561 | hasBin: true 1562 | 1563 | json5@2.2.3: 1564 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1565 | engines: {node: '>=6'} 1566 | hasBin: true 1567 | 1568 | keyv@4.5.4: 1569 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1570 | 1571 | levn@0.4.1: 1572 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1573 | engines: {node: '>= 0.8.0'} 1574 | 1575 | lilconfig@2.1.0: 1576 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1577 | engines: {node: '>=10'} 1578 | 1579 | lilconfig@3.1.2: 1580 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 1581 | engines: {node: '>=14'} 1582 | 1583 | lines-and-columns@1.2.4: 1584 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1585 | 1586 | locate-path@6.0.0: 1587 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1588 | engines: {node: '>=10'} 1589 | 1590 | lodash.merge@4.6.2: 1591 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1592 | 1593 | loose-envify@1.4.0: 1594 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1595 | hasBin: true 1596 | 1597 | lru-cache@10.2.2: 1598 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 1599 | engines: {node: 14 || >=16.14} 1600 | 1601 | lru-cache@5.1.1: 1602 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1603 | 1604 | lucide-react@0.397.0: 1605 | resolution: {integrity: sha512-rUcbRY5jFP/4za/OJvaRUUmdPsPb940Tw9zE1ehrRZmr9JnkDcW8OV3POR3XfEAAMDkssiTc5IWBFv8Y//pkDQ==} 1606 | peerDependencies: 1607 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 1608 | 1609 | merge2@1.4.1: 1610 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1611 | engines: {node: '>= 8'} 1612 | 1613 | micromatch@4.0.7: 1614 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1615 | engines: {node: '>=8.6'} 1616 | 1617 | minimatch@3.1.2: 1618 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1619 | 1620 | minimatch@9.0.5: 1621 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1622 | engines: {node: '>=16 || 14 >=14.17'} 1623 | 1624 | minimist@1.2.8: 1625 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1626 | 1627 | minipass@7.1.2: 1628 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1629 | engines: {node: '>=16 || 14 >=14.17'} 1630 | 1631 | ms@2.1.2: 1632 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1633 | 1634 | mz@2.7.0: 1635 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1636 | 1637 | nanoid@3.3.7: 1638 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1639 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1640 | hasBin: true 1641 | 1642 | natural-compare@1.4.0: 1643 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1644 | 1645 | node-releases@2.0.14: 1646 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1647 | 1648 | normalize-path@3.0.0: 1649 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1650 | engines: {node: '>=0.10.0'} 1651 | 1652 | normalize-range@0.1.2: 1653 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1654 | engines: {node: '>=0.10.0'} 1655 | 1656 | object-assign@4.1.1: 1657 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1658 | engines: {node: '>=0.10.0'} 1659 | 1660 | object-hash@3.0.0: 1661 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1662 | engines: {node: '>= 6'} 1663 | 1664 | object-inspect@1.13.2: 1665 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 1666 | engines: {node: '>= 0.4'} 1667 | 1668 | object-keys@1.1.1: 1669 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1670 | engines: {node: '>= 0.4'} 1671 | 1672 | object.assign@4.1.5: 1673 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 1674 | engines: {node: '>= 0.4'} 1675 | 1676 | object.fromentries@2.0.8: 1677 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1678 | engines: {node: '>= 0.4'} 1679 | 1680 | object.groupby@1.0.3: 1681 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1682 | engines: {node: '>= 0.4'} 1683 | 1684 | object.values@1.2.0: 1685 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 1686 | engines: {node: '>= 0.4'} 1687 | 1688 | once@1.4.0: 1689 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1690 | 1691 | optionator@0.9.4: 1692 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1693 | engines: {node: '>= 0.8.0'} 1694 | 1695 | p-limit@3.1.0: 1696 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1697 | engines: {node: '>=10'} 1698 | 1699 | p-locate@5.0.0: 1700 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1701 | engines: {node: '>=10'} 1702 | 1703 | package-json-from-dist@1.0.0: 1704 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 1705 | 1706 | parent-module@1.0.1: 1707 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1708 | engines: {node: '>=6'} 1709 | 1710 | path-exists@4.0.0: 1711 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1712 | engines: {node: '>=8'} 1713 | 1714 | path-is-absolute@1.0.1: 1715 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1716 | engines: {node: '>=0.10.0'} 1717 | 1718 | path-key@3.1.1: 1719 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1720 | engines: {node: '>=8'} 1721 | 1722 | path-parse@1.0.7: 1723 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1724 | 1725 | path-scurry@1.11.1: 1726 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1727 | engines: {node: '>=16 || 14 >=14.18'} 1728 | 1729 | path-type@4.0.0: 1730 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1731 | engines: {node: '>=8'} 1732 | 1733 | picocolors@1.0.1: 1734 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1735 | 1736 | picomatch@2.3.1: 1737 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1738 | engines: {node: '>=8.6'} 1739 | 1740 | pify@2.3.0: 1741 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1742 | engines: {node: '>=0.10.0'} 1743 | 1744 | pirates@4.0.6: 1745 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1746 | engines: {node: '>= 6'} 1747 | 1748 | possible-typed-array-names@1.0.0: 1749 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1750 | engines: {node: '>= 0.4'} 1751 | 1752 | postcss-import@15.1.0: 1753 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1754 | engines: {node: '>=14.0.0'} 1755 | peerDependencies: 1756 | postcss: ^8.0.0 1757 | 1758 | postcss-js@4.0.1: 1759 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1760 | engines: {node: ^12 || ^14 || >= 16} 1761 | peerDependencies: 1762 | postcss: ^8.4.21 1763 | 1764 | postcss-load-config@4.0.2: 1765 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1766 | engines: {node: '>= 14'} 1767 | peerDependencies: 1768 | postcss: '>=8.0.9' 1769 | ts-node: '>=9.0.0' 1770 | peerDependenciesMeta: 1771 | postcss: 1772 | optional: true 1773 | ts-node: 1774 | optional: true 1775 | 1776 | postcss-nested@6.0.1: 1777 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1778 | engines: {node: '>=12.0'} 1779 | peerDependencies: 1780 | postcss: ^8.2.14 1781 | 1782 | postcss-selector-parser@6.1.0: 1783 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} 1784 | engines: {node: '>=4'} 1785 | 1786 | postcss-value-parser@4.2.0: 1787 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1788 | 1789 | postcss@8.4.38: 1790 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1791 | engines: {node: ^10 || ^12 || >=14} 1792 | 1793 | prelude-ls@1.2.1: 1794 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1795 | engines: {node: '>= 0.8.0'} 1796 | 1797 | punycode@2.3.1: 1798 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1799 | engines: {node: '>=6'} 1800 | 1801 | queue-microtask@1.2.3: 1802 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1803 | 1804 | react-dom@18.3.1: 1805 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1806 | peerDependencies: 1807 | react: ^18.3.1 1808 | 1809 | react-refresh@0.14.2: 1810 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1811 | engines: {node: '>=0.10.0'} 1812 | 1813 | react-remove-scroll-bar@2.3.6: 1814 | resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 1815 | engines: {node: '>=10'} 1816 | peerDependencies: 1817 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1818 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1819 | peerDependenciesMeta: 1820 | '@types/react': 1821 | optional: true 1822 | 1823 | react-remove-scroll@2.5.7: 1824 | resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} 1825 | engines: {node: '>=10'} 1826 | peerDependencies: 1827 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1828 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1829 | peerDependenciesMeta: 1830 | '@types/react': 1831 | optional: true 1832 | 1833 | react-style-singleton@2.2.1: 1834 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 1835 | engines: {node: '>=10'} 1836 | peerDependencies: 1837 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1838 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1839 | peerDependenciesMeta: 1840 | '@types/react': 1841 | optional: true 1842 | 1843 | react@18.3.1: 1844 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1845 | engines: {node: '>=0.10.0'} 1846 | 1847 | read-cache@1.0.0: 1848 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1849 | 1850 | readdirp@3.6.0: 1851 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1852 | engines: {node: '>=8.10.0'} 1853 | 1854 | regenerator-runtime@0.14.1: 1855 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1856 | 1857 | regexp.prototype.flags@1.5.2: 1858 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 1859 | engines: {node: '>= 0.4'} 1860 | 1861 | resolve-from@4.0.0: 1862 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1863 | engines: {node: '>=4'} 1864 | 1865 | resolve@1.22.8: 1866 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1867 | hasBin: true 1868 | 1869 | reusify@1.0.4: 1870 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1871 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1872 | 1873 | rimraf@3.0.2: 1874 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1875 | deprecated: Rimraf versions prior to v4 are no longer supported 1876 | hasBin: true 1877 | 1878 | rollup@4.18.0: 1879 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 1880 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1881 | hasBin: true 1882 | 1883 | run-parallel@1.2.0: 1884 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1885 | 1886 | safe-array-concat@1.1.2: 1887 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 1888 | engines: {node: '>=0.4'} 1889 | 1890 | safe-regex-test@1.0.3: 1891 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 1892 | engines: {node: '>= 0.4'} 1893 | 1894 | scheduler@0.23.2: 1895 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1896 | 1897 | semver@6.3.1: 1898 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1899 | hasBin: true 1900 | 1901 | semver@7.6.2: 1902 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1903 | engines: {node: '>=10'} 1904 | hasBin: true 1905 | 1906 | set-function-length@1.2.2: 1907 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1908 | engines: {node: '>= 0.4'} 1909 | 1910 | set-function-name@2.0.2: 1911 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1912 | engines: {node: '>= 0.4'} 1913 | 1914 | shebang-command@2.0.0: 1915 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1916 | engines: {node: '>=8'} 1917 | 1918 | shebang-regex@3.0.0: 1919 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1920 | engines: {node: '>=8'} 1921 | 1922 | side-channel@1.0.6: 1923 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1924 | engines: {node: '>= 0.4'} 1925 | 1926 | signal-exit@4.1.0: 1927 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1928 | engines: {node: '>=14'} 1929 | 1930 | slash@3.0.0: 1931 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1932 | engines: {node: '>=8'} 1933 | 1934 | source-map-js@1.2.0: 1935 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1936 | engines: {node: '>=0.10.0'} 1937 | 1938 | string-width@4.2.3: 1939 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1940 | engines: {node: '>=8'} 1941 | 1942 | string-width@5.1.2: 1943 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1944 | engines: {node: '>=12'} 1945 | 1946 | string.prototype.trim@1.2.9: 1947 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 1948 | engines: {node: '>= 0.4'} 1949 | 1950 | string.prototype.trimend@1.0.8: 1951 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 1952 | 1953 | string.prototype.trimstart@1.0.8: 1954 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1955 | engines: {node: '>= 0.4'} 1956 | 1957 | strip-ansi@6.0.1: 1958 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1959 | engines: {node: '>=8'} 1960 | 1961 | strip-ansi@7.1.0: 1962 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1963 | engines: {node: '>=12'} 1964 | 1965 | strip-bom@3.0.0: 1966 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1967 | engines: {node: '>=4'} 1968 | 1969 | strip-json-comments@3.1.1: 1970 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1971 | engines: {node: '>=8'} 1972 | 1973 | sucrase@3.35.0: 1974 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1975 | engines: {node: '>=16 || 14 >=14.17'} 1976 | hasBin: true 1977 | 1978 | supports-color@5.5.0: 1979 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1980 | engines: {node: '>=4'} 1981 | 1982 | supports-color@7.2.0: 1983 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1984 | engines: {node: '>=8'} 1985 | 1986 | supports-preserve-symlinks-flag@1.0.0: 1987 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1988 | engines: {node: '>= 0.4'} 1989 | 1990 | tailwind-merge@2.3.0: 1991 | resolution: {integrity: sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==} 1992 | 1993 | tailwindcss@3.4.4: 1994 | resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} 1995 | engines: {node: '>=14.0.0'} 1996 | hasBin: true 1997 | 1998 | text-table@0.2.0: 1999 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2000 | 2001 | thenify-all@1.6.0: 2002 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2003 | engines: {node: '>=0.8'} 2004 | 2005 | thenify@3.3.1: 2006 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2007 | 2008 | to-fast-properties@2.0.0: 2009 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2010 | engines: {node: '>=4'} 2011 | 2012 | to-regex-range@5.0.1: 2013 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2014 | engines: {node: '>=8.0'} 2015 | 2016 | ts-api-utils@1.3.0: 2017 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 2018 | engines: {node: '>=16'} 2019 | peerDependencies: 2020 | typescript: '>=4.2.0' 2021 | 2022 | ts-interface-checker@0.1.13: 2023 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2024 | 2025 | tsconfig-paths@3.15.0: 2026 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 2027 | 2028 | tslib@2.6.3: 2029 | resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} 2030 | 2031 | type-check@0.4.0: 2032 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2033 | engines: {node: '>= 0.8.0'} 2034 | 2035 | type-fest@0.20.2: 2036 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2037 | engines: {node: '>=10'} 2038 | 2039 | typed-array-buffer@1.0.2: 2040 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 2041 | engines: {node: '>= 0.4'} 2042 | 2043 | typed-array-byte-length@1.0.1: 2044 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 2045 | engines: {node: '>= 0.4'} 2046 | 2047 | typed-array-byte-offset@1.0.2: 2048 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 2049 | engines: {node: '>= 0.4'} 2050 | 2051 | typed-array-length@1.0.6: 2052 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 2053 | engines: {node: '>= 0.4'} 2054 | 2055 | typescript@5.5.2: 2056 | resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} 2057 | engines: {node: '>=14.17'} 2058 | hasBin: true 2059 | 2060 | unbox-primitive@1.0.2: 2061 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2062 | 2063 | undici-types@5.26.5: 2064 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 2065 | 2066 | update-browserslist-db@1.0.16: 2067 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} 2068 | hasBin: true 2069 | peerDependencies: 2070 | browserslist: '>= 4.21.0' 2071 | 2072 | uri-js@4.4.1: 2073 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2074 | 2075 | use-callback-ref@1.3.2: 2076 | resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 2077 | engines: {node: '>=10'} 2078 | peerDependencies: 2079 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 2080 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2081 | peerDependenciesMeta: 2082 | '@types/react': 2083 | optional: true 2084 | 2085 | use-sidecar@1.1.2: 2086 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 2087 | engines: {node: '>=10'} 2088 | peerDependencies: 2089 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 2090 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2091 | peerDependenciesMeta: 2092 | '@types/react': 2093 | optional: true 2094 | 2095 | util-deprecate@1.0.2: 2096 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2097 | 2098 | vite@5.3.1: 2099 | resolution: {integrity: sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==} 2100 | engines: {node: ^18.0.0 || >=20.0.0} 2101 | hasBin: true 2102 | peerDependencies: 2103 | '@types/node': ^18.0.0 || >=20.0.0 2104 | less: '*' 2105 | lightningcss: ^1.21.0 2106 | sass: '*' 2107 | stylus: '*' 2108 | sugarss: '*' 2109 | terser: ^5.4.0 2110 | peerDependenciesMeta: 2111 | '@types/node': 2112 | optional: true 2113 | less: 2114 | optional: true 2115 | lightningcss: 2116 | optional: true 2117 | sass: 2118 | optional: true 2119 | stylus: 2120 | optional: true 2121 | sugarss: 2122 | optional: true 2123 | terser: 2124 | optional: true 2125 | 2126 | which-boxed-primitive@1.0.2: 2127 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2128 | 2129 | which-typed-array@1.1.15: 2130 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 2131 | engines: {node: '>= 0.4'} 2132 | 2133 | which@2.0.2: 2134 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2135 | engines: {node: '>= 8'} 2136 | hasBin: true 2137 | 2138 | word-wrap@1.2.5: 2139 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2140 | engines: {node: '>=0.10.0'} 2141 | 2142 | wrap-ansi@7.0.0: 2143 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2144 | engines: {node: '>=10'} 2145 | 2146 | wrap-ansi@8.1.0: 2147 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2148 | engines: {node: '>=12'} 2149 | 2150 | wrappy@1.0.2: 2151 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2152 | 2153 | yallist@3.1.1: 2154 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2155 | 2156 | yaml@2.4.5: 2157 | resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} 2158 | engines: {node: '>= 14'} 2159 | hasBin: true 2160 | 2161 | yocto-queue@0.1.0: 2162 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2163 | engines: {node: '>=10'} 2164 | 2165 | zod@3.23.8: 2166 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 2167 | 2168 | snapshots: 2169 | 2170 | '@alloc/quick-lru@5.2.0': {} 2171 | 2172 | '@ampproject/remapping@2.3.0': 2173 | dependencies: 2174 | '@jridgewell/gen-mapping': 0.3.5 2175 | '@jridgewell/trace-mapping': 0.3.25 2176 | 2177 | '@babel/code-frame@7.24.7': 2178 | dependencies: 2179 | '@babel/highlight': 7.24.7 2180 | picocolors: 1.0.1 2181 | 2182 | '@babel/compat-data@7.24.7': {} 2183 | 2184 | '@babel/core@7.24.7': 2185 | dependencies: 2186 | '@ampproject/remapping': 2.3.0 2187 | '@babel/code-frame': 7.24.7 2188 | '@babel/generator': 7.24.7 2189 | '@babel/helper-compilation-targets': 7.24.7 2190 | '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) 2191 | '@babel/helpers': 7.24.7 2192 | '@babel/parser': 7.24.7 2193 | '@babel/template': 7.24.7 2194 | '@babel/traverse': 7.24.7 2195 | '@babel/types': 7.24.7 2196 | convert-source-map: 2.0.0 2197 | debug: 4.3.5 2198 | gensync: 1.0.0-beta.2 2199 | json5: 2.2.3 2200 | semver: 6.3.1 2201 | transitivePeerDependencies: 2202 | - supports-color 2203 | 2204 | '@babel/generator@7.24.7': 2205 | dependencies: 2206 | '@babel/types': 7.24.7 2207 | '@jridgewell/gen-mapping': 0.3.5 2208 | '@jridgewell/trace-mapping': 0.3.25 2209 | jsesc: 2.5.2 2210 | 2211 | '@babel/helper-compilation-targets@7.24.7': 2212 | dependencies: 2213 | '@babel/compat-data': 7.24.7 2214 | '@babel/helper-validator-option': 7.24.7 2215 | browserslist: 4.23.1 2216 | lru-cache: 5.1.1 2217 | semver: 6.3.1 2218 | 2219 | '@babel/helper-environment-visitor@7.24.7': 2220 | dependencies: 2221 | '@babel/types': 7.24.7 2222 | 2223 | '@babel/helper-function-name@7.24.7': 2224 | dependencies: 2225 | '@babel/template': 7.24.7 2226 | '@babel/types': 7.24.7 2227 | 2228 | '@babel/helper-hoist-variables@7.24.7': 2229 | dependencies: 2230 | '@babel/types': 7.24.7 2231 | 2232 | '@babel/helper-module-imports@7.24.7': 2233 | dependencies: 2234 | '@babel/traverse': 7.24.7 2235 | '@babel/types': 7.24.7 2236 | transitivePeerDependencies: 2237 | - supports-color 2238 | 2239 | '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': 2240 | dependencies: 2241 | '@babel/core': 7.24.7 2242 | '@babel/helper-environment-visitor': 7.24.7 2243 | '@babel/helper-module-imports': 7.24.7 2244 | '@babel/helper-simple-access': 7.24.7 2245 | '@babel/helper-split-export-declaration': 7.24.7 2246 | '@babel/helper-validator-identifier': 7.24.7 2247 | transitivePeerDependencies: 2248 | - supports-color 2249 | 2250 | '@babel/helper-plugin-utils@7.24.7': {} 2251 | 2252 | '@babel/helper-simple-access@7.24.7': 2253 | dependencies: 2254 | '@babel/traverse': 7.24.7 2255 | '@babel/types': 7.24.7 2256 | transitivePeerDependencies: 2257 | - supports-color 2258 | 2259 | '@babel/helper-split-export-declaration@7.24.7': 2260 | dependencies: 2261 | '@babel/types': 7.24.7 2262 | 2263 | '@babel/helper-string-parser@7.24.7': {} 2264 | 2265 | '@babel/helper-validator-identifier@7.24.7': {} 2266 | 2267 | '@babel/helper-validator-option@7.24.7': {} 2268 | 2269 | '@babel/helpers@7.24.7': 2270 | dependencies: 2271 | '@babel/template': 7.24.7 2272 | '@babel/types': 7.24.7 2273 | 2274 | '@babel/highlight@7.24.7': 2275 | dependencies: 2276 | '@babel/helper-validator-identifier': 7.24.7 2277 | chalk: 2.4.2 2278 | js-tokens: 4.0.0 2279 | picocolors: 1.0.1 2280 | 2281 | '@babel/parser@7.24.7': 2282 | dependencies: 2283 | '@babel/types': 7.24.7 2284 | 2285 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': 2286 | dependencies: 2287 | '@babel/core': 7.24.7 2288 | '@babel/helper-plugin-utils': 7.24.7 2289 | 2290 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': 2291 | dependencies: 2292 | '@babel/core': 7.24.7 2293 | '@babel/helper-plugin-utils': 7.24.7 2294 | 2295 | '@babel/runtime@7.24.7': 2296 | dependencies: 2297 | regenerator-runtime: 0.14.1 2298 | 2299 | '@babel/template@7.24.7': 2300 | dependencies: 2301 | '@babel/code-frame': 7.24.7 2302 | '@babel/parser': 7.24.7 2303 | '@babel/types': 7.24.7 2304 | 2305 | '@babel/traverse@7.24.7': 2306 | dependencies: 2307 | '@babel/code-frame': 7.24.7 2308 | '@babel/generator': 7.24.7 2309 | '@babel/helper-environment-visitor': 7.24.7 2310 | '@babel/helper-function-name': 7.24.7 2311 | '@babel/helper-hoist-variables': 7.24.7 2312 | '@babel/helper-split-export-declaration': 7.24.7 2313 | '@babel/parser': 7.24.7 2314 | '@babel/types': 7.24.7 2315 | debug: 4.3.5 2316 | globals: 11.12.0 2317 | transitivePeerDependencies: 2318 | - supports-color 2319 | 2320 | '@babel/types@7.24.7': 2321 | dependencies: 2322 | '@babel/helper-string-parser': 7.24.7 2323 | '@babel/helper-validator-identifier': 7.24.7 2324 | to-fast-properties: 2.0.0 2325 | 2326 | '@esbuild/aix-ppc64@0.21.5': 2327 | optional: true 2328 | 2329 | '@esbuild/android-arm64@0.21.5': 2330 | optional: true 2331 | 2332 | '@esbuild/android-arm@0.21.5': 2333 | optional: true 2334 | 2335 | '@esbuild/android-x64@0.21.5': 2336 | optional: true 2337 | 2338 | '@esbuild/darwin-arm64@0.21.5': 2339 | optional: true 2340 | 2341 | '@esbuild/darwin-x64@0.21.5': 2342 | optional: true 2343 | 2344 | '@esbuild/freebsd-arm64@0.21.5': 2345 | optional: true 2346 | 2347 | '@esbuild/freebsd-x64@0.21.5': 2348 | optional: true 2349 | 2350 | '@esbuild/linux-arm64@0.21.5': 2351 | optional: true 2352 | 2353 | '@esbuild/linux-arm@0.21.5': 2354 | optional: true 2355 | 2356 | '@esbuild/linux-ia32@0.21.5': 2357 | optional: true 2358 | 2359 | '@esbuild/linux-loong64@0.21.5': 2360 | optional: true 2361 | 2362 | '@esbuild/linux-mips64el@0.21.5': 2363 | optional: true 2364 | 2365 | '@esbuild/linux-ppc64@0.21.5': 2366 | optional: true 2367 | 2368 | '@esbuild/linux-riscv64@0.21.5': 2369 | optional: true 2370 | 2371 | '@esbuild/linux-s390x@0.21.5': 2372 | optional: true 2373 | 2374 | '@esbuild/linux-x64@0.21.5': 2375 | optional: true 2376 | 2377 | '@esbuild/netbsd-x64@0.21.5': 2378 | optional: true 2379 | 2380 | '@esbuild/openbsd-x64@0.21.5': 2381 | optional: true 2382 | 2383 | '@esbuild/sunos-x64@0.21.5': 2384 | optional: true 2385 | 2386 | '@esbuild/win32-arm64@0.21.5': 2387 | optional: true 2388 | 2389 | '@esbuild/win32-ia32@0.21.5': 2390 | optional: true 2391 | 2392 | '@esbuild/win32-x64@0.21.5': 2393 | optional: true 2394 | 2395 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 2396 | dependencies: 2397 | eslint: 8.57.0 2398 | eslint-visitor-keys: 3.4.3 2399 | 2400 | '@eslint-community/regexpp@4.10.1': {} 2401 | 2402 | '@eslint/eslintrc@2.1.4': 2403 | dependencies: 2404 | ajv: 6.12.6 2405 | debug: 4.3.5 2406 | espree: 9.6.1 2407 | globals: 13.24.0 2408 | ignore: 5.3.1 2409 | import-fresh: 3.3.0 2410 | js-yaml: 4.1.0 2411 | minimatch: 3.1.2 2412 | strip-json-comments: 3.1.1 2413 | transitivePeerDependencies: 2414 | - supports-color 2415 | 2416 | '@eslint/js@8.57.0': {} 2417 | 2418 | '@floating-ui/core@1.6.3': 2419 | dependencies: 2420 | '@floating-ui/utils': 0.2.3 2421 | 2422 | '@floating-ui/dom@1.6.6': 2423 | dependencies: 2424 | '@floating-ui/core': 1.6.3 2425 | '@floating-ui/utils': 0.2.3 2426 | 2427 | '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2428 | dependencies: 2429 | '@floating-ui/dom': 1.6.6 2430 | react: 18.3.1 2431 | react-dom: 18.3.1(react@18.3.1) 2432 | 2433 | '@floating-ui/utils@0.2.3': {} 2434 | 2435 | '@fontsource-variable/inter@5.0.18': {} 2436 | 2437 | '@humanwhocodes/config-array@0.11.14': 2438 | dependencies: 2439 | '@humanwhocodes/object-schema': 2.0.3 2440 | debug: 4.3.5 2441 | minimatch: 3.1.2 2442 | transitivePeerDependencies: 2443 | - supports-color 2444 | 2445 | '@humanwhocodes/module-importer@1.0.1': {} 2446 | 2447 | '@humanwhocodes/object-schema@2.0.3': {} 2448 | 2449 | '@isaacs/cliui@8.0.2': 2450 | dependencies: 2451 | string-width: 5.1.2 2452 | string-width-cjs: string-width@4.2.3 2453 | strip-ansi: 7.1.0 2454 | strip-ansi-cjs: strip-ansi@6.0.1 2455 | wrap-ansi: 8.1.0 2456 | wrap-ansi-cjs: wrap-ansi@7.0.0 2457 | 2458 | '@jridgewell/gen-mapping@0.3.5': 2459 | dependencies: 2460 | '@jridgewell/set-array': 1.2.1 2461 | '@jridgewell/sourcemap-codec': 1.4.15 2462 | '@jridgewell/trace-mapping': 0.3.25 2463 | 2464 | '@jridgewell/resolve-uri@3.1.2': {} 2465 | 2466 | '@jridgewell/set-array@1.2.1': {} 2467 | 2468 | '@jridgewell/sourcemap-codec@1.4.15': {} 2469 | 2470 | '@jridgewell/trace-mapping@0.3.25': 2471 | dependencies: 2472 | '@jridgewell/resolve-uri': 3.1.2 2473 | '@jridgewell/sourcemap-codec': 1.4.15 2474 | 2475 | '@nodelib/fs.scandir@2.1.5': 2476 | dependencies: 2477 | '@nodelib/fs.stat': 2.0.5 2478 | run-parallel: 1.2.0 2479 | 2480 | '@nodelib/fs.stat@2.0.5': {} 2481 | 2482 | '@nodelib/fs.walk@1.2.8': 2483 | dependencies: 2484 | '@nodelib/fs.scandir': 2.1.5 2485 | fastq: 1.17.1 2486 | 2487 | '@pkgjs/parseargs@0.11.0': 2488 | optional: true 2489 | 2490 | '@radix-ui/primitive@1.1.0': {} 2491 | 2492 | '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2493 | dependencies: 2494 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2495 | react: 18.3.1 2496 | react-dom: 18.3.1(react@18.3.1) 2497 | optionalDependencies: 2498 | '@types/react': 18.3.3 2499 | '@types/react-dom': 18.3.0 2500 | 2501 | '@radix-ui/react-checkbox@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2502 | dependencies: 2503 | '@radix-ui/primitive': 1.1.0 2504 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2505 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2506 | '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2507 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2508 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2509 | '@radix-ui/react-use-previous': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2510 | '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2511 | react: 18.3.1 2512 | react-dom: 18.3.1(react@18.3.1) 2513 | optionalDependencies: 2514 | '@types/react': 18.3.3 2515 | '@types/react-dom': 18.3.0 2516 | 2517 | '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2518 | dependencies: 2519 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2520 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2521 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2522 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2523 | react: 18.3.1 2524 | react-dom: 18.3.1(react@18.3.1) 2525 | optionalDependencies: 2526 | '@types/react': 18.3.3 2527 | '@types/react-dom': 18.3.0 2528 | 2529 | '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2530 | dependencies: 2531 | react: 18.3.1 2532 | optionalDependencies: 2533 | '@types/react': 18.3.3 2534 | 2535 | '@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2536 | dependencies: 2537 | react: 18.3.1 2538 | optionalDependencies: 2539 | '@types/react': 18.3.3 2540 | 2541 | '@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2542 | dependencies: 2543 | react: 18.3.1 2544 | optionalDependencies: 2545 | '@types/react': 18.3.3 2546 | 2547 | '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2548 | dependencies: 2549 | '@radix-ui/primitive': 1.1.0 2550 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2551 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2552 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2553 | '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2554 | react: 18.3.1 2555 | react-dom: 18.3.1(react@18.3.1) 2556 | optionalDependencies: 2557 | '@types/react': 18.3.3 2558 | '@types/react-dom': 18.3.0 2559 | 2560 | '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2561 | dependencies: 2562 | react: 18.3.1 2563 | optionalDependencies: 2564 | '@types/react': 18.3.3 2565 | 2566 | '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2567 | dependencies: 2568 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2569 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2570 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2571 | react: 18.3.1 2572 | react-dom: 18.3.1(react@18.3.1) 2573 | optionalDependencies: 2574 | '@types/react': 18.3.3 2575 | '@types/react-dom': 18.3.0 2576 | 2577 | '@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2578 | dependencies: 2579 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2580 | react: 18.3.1 2581 | optionalDependencies: 2582 | '@types/react': 18.3.3 2583 | 2584 | '@radix-ui/react-menu@2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2585 | dependencies: 2586 | '@radix-ui/primitive': 1.1.0 2587 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2588 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2589 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2590 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2591 | '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2592 | '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2593 | '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2594 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2595 | '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2596 | '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2597 | '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2598 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2599 | '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2600 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2601 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2602 | aria-hidden: 1.2.4 2603 | react: 18.3.1 2604 | react-dom: 18.3.1(react@18.3.1) 2605 | react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1) 2606 | optionalDependencies: 2607 | '@types/react': 18.3.3 2608 | '@types/react-dom': 18.3.0 2609 | 2610 | '@radix-ui/react-menubar@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2611 | dependencies: 2612 | '@radix-ui/primitive': 1.1.0 2613 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2614 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2615 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2616 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2617 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2618 | '@radix-ui/react-menu': 2.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2619 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2620 | '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2621 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2622 | react: 18.3.1 2623 | react-dom: 18.3.1(react@18.3.1) 2624 | optionalDependencies: 2625 | '@types/react': 18.3.3 2626 | '@types/react-dom': 18.3.0 2627 | 2628 | '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2629 | dependencies: 2630 | '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2631 | '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2632 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2633 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2634 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2635 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2636 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2637 | '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2638 | '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2639 | '@radix-ui/rect': 1.1.0 2640 | react: 18.3.1 2641 | react-dom: 18.3.1(react@18.3.1) 2642 | optionalDependencies: 2643 | '@types/react': 18.3.3 2644 | '@types/react-dom': 18.3.0 2645 | 2646 | '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2647 | dependencies: 2648 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2649 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2650 | react: 18.3.1 2651 | react-dom: 18.3.1(react@18.3.1) 2652 | optionalDependencies: 2653 | '@types/react': 18.3.3 2654 | '@types/react-dom': 18.3.0 2655 | 2656 | '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2657 | dependencies: 2658 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2659 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2660 | react: 18.3.1 2661 | react-dom: 18.3.1(react@18.3.1) 2662 | optionalDependencies: 2663 | '@types/react': 18.3.3 2664 | '@types/react-dom': 18.3.0 2665 | 2666 | '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2667 | dependencies: 2668 | '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2669 | react: 18.3.1 2670 | react-dom: 18.3.1(react@18.3.1) 2671 | optionalDependencies: 2672 | '@types/react': 18.3.3 2673 | '@types/react-dom': 18.3.0 2674 | 2675 | '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2676 | dependencies: 2677 | '@radix-ui/primitive': 1.1.0 2678 | '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2679 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2680 | '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2681 | '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2682 | '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2683 | '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2684 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2685 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2686 | react: 18.3.1 2687 | react-dom: 18.3.1(react@18.3.1) 2688 | optionalDependencies: 2689 | '@types/react': 18.3.3 2690 | '@types/react-dom': 18.3.0 2691 | 2692 | '@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2693 | dependencies: 2694 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2695 | react: 18.3.1 2696 | optionalDependencies: 2697 | '@types/react': 18.3.3 2698 | 2699 | '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2700 | dependencies: 2701 | react: 18.3.1 2702 | optionalDependencies: 2703 | '@types/react': 18.3.3 2704 | 2705 | '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2706 | dependencies: 2707 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2708 | react: 18.3.1 2709 | optionalDependencies: 2710 | '@types/react': 18.3.3 2711 | 2712 | '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2713 | dependencies: 2714 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2715 | react: 18.3.1 2716 | optionalDependencies: 2717 | '@types/react': 18.3.3 2718 | 2719 | '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2720 | dependencies: 2721 | react: 18.3.1 2722 | optionalDependencies: 2723 | '@types/react': 18.3.3 2724 | 2725 | '@radix-ui/react-use-previous@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2726 | dependencies: 2727 | react: 18.3.1 2728 | optionalDependencies: 2729 | '@types/react': 18.3.3 2730 | 2731 | '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2732 | dependencies: 2733 | '@radix-ui/rect': 1.1.0 2734 | react: 18.3.1 2735 | optionalDependencies: 2736 | '@types/react': 18.3.3 2737 | 2738 | '@radix-ui/react-use-size@1.1.0(@types/react@18.3.3)(react@18.3.1)': 2739 | dependencies: 2740 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1) 2741 | react: 18.3.1 2742 | optionalDependencies: 2743 | '@types/react': 18.3.3 2744 | 2745 | '@radix-ui/rect@1.1.0': {} 2746 | 2747 | '@rollup/rollup-android-arm-eabi@4.18.0': 2748 | optional: true 2749 | 2750 | '@rollup/rollup-android-arm64@4.18.0': 2751 | optional: true 2752 | 2753 | '@rollup/rollup-darwin-arm64@4.18.0': 2754 | optional: true 2755 | 2756 | '@rollup/rollup-darwin-x64@4.18.0': 2757 | optional: true 2758 | 2759 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 2760 | optional: true 2761 | 2762 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 2763 | optional: true 2764 | 2765 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 2766 | optional: true 2767 | 2768 | '@rollup/rollup-linux-arm64-musl@4.18.0': 2769 | optional: true 2770 | 2771 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 2772 | optional: true 2773 | 2774 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 2775 | optional: true 2776 | 2777 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 2778 | optional: true 2779 | 2780 | '@rollup/rollup-linux-x64-gnu@4.18.0': 2781 | optional: true 2782 | 2783 | '@rollup/rollup-linux-x64-musl@4.18.0': 2784 | optional: true 2785 | 2786 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 2787 | optional: true 2788 | 2789 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 2790 | optional: true 2791 | 2792 | '@rollup/rollup-win32-x64-msvc@4.18.0': 2793 | optional: true 2794 | 2795 | '@types/babel__core@7.20.5': 2796 | dependencies: 2797 | '@babel/parser': 7.24.7 2798 | '@babel/types': 7.24.7 2799 | '@types/babel__generator': 7.6.8 2800 | '@types/babel__template': 7.4.4 2801 | '@types/babel__traverse': 7.20.6 2802 | 2803 | '@types/babel__generator@7.6.8': 2804 | dependencies: 2805 | '@babel/types': 7.24.7 2806 | 2807 | '@types/babel__template@7.4.4': 2808 | dependencies: 2809 | '@babel/parser': 7.24.7 2810 | '@babel/types': 7.24.7 2811 | 2812 | '@types/babel__traverse@7.20.6': 2813 | dependencies: 2814 | '@babel/types': 7.24.7 2815 | 2816 | '@types/dom-view-transitions@1.0.4': {} 2817 | 2818 | '@types/estree@1.0.5': {} 2819 | 2820 | '@types/json5@0.0.29': {} 2821 | 2822 | '@types/node@20.14.9': 2823 | dependencies: 2824 | undici-types: 5.26.5 2825 | optional: true 2826 | 2827 | '@types/prop-types@15.7.12': {} 2828 | 2829 | '@types/react-dom@18.3.0': 2830 | dependencies: 2831 | '@types/react': 18.3.3 2832 | 2833 | '@types/react@18.3.3': 2834 | dependencies: 2835 | '@types/prop-types': 15.7.12 2836 | csstype: 3.1.3 2837 | 2838 | '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)': 2839 | dependencies: 2840 | '@eslint-community/regexpp': 4.10.1 2841 | '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 2842 | '@typescript-eslint/scope-manager': 7.14.1 2843 | '@typescript-eslint/type-utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 2844 | '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 2845 | '@typescript-eslint/visitor-keys': 7.14.1 2846 | eslint: 8.57.0 2847 | graphemer: 1.4.0 2848 | ignore: 5.3.1 2849 | natural-compare: 1.4.0 2850 | ts-api-utils: 1.3.0(typescript@5.5.2) 2851 | optionalDependencies: 2852 | typescript: 5.5.2 2853 | transitivePeerDependencies: 2854 | - supports-color 2855 | 2856 | '@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2)': 2857 | dependencies: 2858 | '@typescript-eslint/scope-manager': 7.14.1 2859 | '@typescript-eslint/types': 7.14.1 2860 | '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) 2861 | '@typescript-eslint/visitor-keys': 7.14.1 2862 | debug: 4.3.5 2863 | eslint: 8.57.0 2864 | optionalDependencies: 2865 | typescript: 5.5.2 2866 | transitivePeerDependencies: 2867 | - supports-color 2868 | 2869 | '@typescript-eslint/scope-manager@7.14.1': 2870 | dependencies: 2871 | '@typescript-eslint/types': 7.14.1 2872 | '@typescript-eslint/visitor-keys': 7.14.1 2873 | 2874 | '@typescript-eslint/type-utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': 2875 | dependencies: 2876 | '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) 2877 | '@typescript-eslint/utils': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 2878 | debug: 4.3.5 2879 | eslint: 8.57.0 2880 | ts-api-utils: 1.3.0(typescript@5.5.2) 2881 | optionalDependencies: 2882 | typescript: 5.5.2 2883 | transitivePeerDependencies: 2884 | - supports-color 2885 | 2886 | '@typescript-eslint/types@7.14.1': {} 2887 | 2888 | '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2)': 2889 | dependencies: 2890 | '@typescript-eslint/types': 7.14.1 2891 | '@typescript-eslint/visitor-keys': 7.14.1 2892 | debug: 4.3.5 2893 | globby: 11.1.0 2894 | is-glob: 4.0.3 2895 | minimatch: 9.0.5 2896 | semver: 7.6.2 2897 | ts-api-utils: 1.3.0(typescript@5.5.2) 2898 | optionalDependencies: 2899 | typescript: 5.5.2 2900 | transitivePeerDependencies: 2901 | - supports-color 2902 | 2903 | '@typescript-eslint/utils@7.14.1(eslint@8.57.0)(typescript@5.5.2)': 2904 | dependencies: 2905 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2906 | '@typescript-eslint/scope-manager': 7.14.1 2907 | '@typescript-eslint/types': 7.14.1 2908 | '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) 2909 | eslint: 8.57.0 2910 | transitivePeerDependencies: 2911 | - supports-color 2912 | - typescript 2913 | 2914 | '@typescript-eslint/visitor-keys@7.14.1': 2915 | dependencies: 2916 | '@typescript-eslint/types': 7.14.1 2917 | eslint-visitor-keys: 3.4.3 2918 | 2919 | '@ungap/structured-clone@1.2.0': {} 2920 | 2921 | '@vitejs/plugin-react@4.3.1(vite@5.3.1(@types/node@20.14.9))': 2922 | dependencies: 2923 | '@babel/core': 7.24.7 2924 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) 2925 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) 2926 | '@types/babel__core': 7.20.5 2927 | react-refresh: 0.14.2 2928 | vite: 5.3.1(@types/node@20.14.9) 2929 | transitivePeerDependencies: 2930 | - supports-color 2931 | 2932 | acorn-jsx@5.3.2(acorn@8.12.0): 2933 | dependencies: 2934 | acorn: 8.12.0 2935 | 2936 | acorn@8.12.0: {} 2937 | 2938 | ajv@6.12.6: 2939 | dependencies: 2940 | fast-deep-equal: 3.1.3 2941 | fast-json-stable-stringify: 2.1.0 2942 | json-schema-traverse: 0.4.1 2943 | uri-js: 4.4.1 2944 | 2945 | ansi-regex@5.0.1: {} 2946 | 2947 | ansi-regex@6.0.1: {} 2948 | 2949 | ansi-styles@3.2.1: 2950 | dependencies: 2951 | color-convert: 1.9.3 2952 | 2953 | ansi-styles@4.3.0: 2954 | dependencies: 2955 | color-convert: 2.0.1 2956 | 2957 | ansi-styles@6.2.1: {} 2958 | 2959 | any-promise@1.3.0: {} 2960 | 2961 | anymatch@3.1.3: 2962 | dependencies: 2963 | normalize-path: 3.0.0 2964 | picomatch: 2.3.1 2965 | 2966 | arg@5.0.2: {} 2967 | 2968 | argparse@2.0.1: {} 2969 | 2970 | aria-hidden@1.2.4: 2971 | dependencies: 2972 | tslib: 2.6.3 2973 | 2974 | array-buffer-byte-length@1.0.1: 2975 | dependencies: 2976 | call-bind: 1.0.7 2977 | is-array-buffer: 3.0.4 2978 | 2979 | array-includes@3.1.8: 2980 | dependencies: 2981 | call-bind: 1.0.7 2982 | define-properties: 1.2.1 2983 | es-abstract: 1.23.3 2984 | es-object-atoms: 1.0.0 2985 | get-intrinsic: 1.2.4 2986 | is-string: 1.0.7 2987 | 2988 | array-union@2.1.0: {} 2989 | 2990 | array.prototype.findlastindex@1.2.5: 2991 | dependencies: 2992 | call-bind: 1.0.7 2993 | define-properties: 1.2.1 2994 | es-abstract: 1.23.3 2995 | es-errors: 1.3.0 2996 | es-object-atoms: 1.0.0 2997 | es-shim-unscopables: 1.0.2 2998 | 2999 | array.prototype.flat@1.3.2: 3000 | dependencies: 3001 | call-bind: 1.0.7 3002 | define-properties: 1.2.1 3003 | es-abstract: 1.23.3 3004 | es-shim-unscopables: 1.0.2 3005 | 3006 | array.prototype.flatmap@1.3.2: 3007 | dependencies: 3008 | call-bind: 1.0.7 3009 | define-properties: 1.2.1 3010 | es-abstract: 1.23.3 3011 | es-shim-unscopables: 1.0.2 3012 | 3013 | arraybuffer.prototype.slice@1.0.3: 3014 | dependencies: 3015 | array-buffer-byte-length: 1.0.1 3016 | call-bind: 1.0.7 3017 | define-properties: 1.2.1 3018 | es-abstract: 1.23.3 3019 | es-errors: 1.3.0 3020 | get-intrinsic: 1.2.4 3021 | is-array-buffer: 3.0.4 3022 | is-shared-array-buffer: 1.0.3 3023 | 3024 | autoprefixer@10.4.19(postcss@8.4.38): 3025 | dependencies: 3026 | browserslist: 4.23.1 3027 | caniuse-lite: 1.0.30001638 3028 | fraction.js: 4.3.7 3029 | normalize-range: 0.1.2 3030 | picocolors: 1.0.1 3031 | postcss: 8.4.38 3032 | postcss-value-parser: 4.2.0 3033 | 3034 | available-typed-arrays@1.0.7: 3035 | dependencies: 3036 | possible-typed-array-names: 1.0.0 3037 | 3038 | balanced-match@1.0.2: {} 3039 | 3040 | binary-extensions@2.3.0: {} 3041 | 3042 | brace-expansion@1.1.11: 3043 | dependencies: 3044 | balanced-match: 1.0.2 3045 | concat-map: 0.0.1 3046 | 3047 | brace-expansion@2.0.1: 3048 | dependencies: 3049 | balanced-match: 1.0.2 3050 | 3051 | braces@3.0.3: 3052 | dependencies: 3053 | fill-range: 7.1.1 3054 | 3055 | browserslist@4.23.1: 3056 | dependencies: 3057 | caniuse-lite: 1.0.30001638 3058 | electron-to-chromium: 1.4.812 3059 | node-releases: 2.0.14 3060 | update-browserslist-db: 1.0.16(browserslist@4.23.1) 3061 | 3062 | call-bind@1.0.7: 3063 | dependencies: 3064 | es-define-property: 1.0.0 3065 | es-errors: 1.3.0 3066 | function-bind: 1.1.2 3067 | get-intrinsic: 1.2.4 3068 | set-function-length: 1.2.2 3069 | 3070 | callsites@3.1.0: {} 3071 | 3072 | camelcase-css@2.0.1: {} 3073 | 3074 | caniuse-lite@1.0.30001638: {} 3075 | 3076 | chalk@2.4.2: 3077 | dependencies: 3078 | ansi-styles: 3.2.1 3079 | escape-string-regexp: 1.0.5 3080 | supports-color: 5.5.0 3081 | 3082 | chalk@4.1.2: 3083 | dependencies: 3084 | ansi-styles: 4.3.0 3085 | supports-color: 7.2.0 3086 | 3087 | chokidar@3.6.0: 3088 | dependencies: 3089 | anymatch: 3.1.3 3090 | braces: 3.0.3 3091 | glob-parent: 5.1.2 3092 | is-binary-path: 2.1.0 3093 | is-glob: 4.0.3 3094 | normalize-path: 3.0.0 3095 | readdirp: 3.6.0 3096 | optionalDependencies: 3097 | fsevents: 2.3.3 3098 | 3099 | class-variance-authority@0.7.0: 3100 | dependencies: 3101 | clsx: 2.0.0 3102 | 3103 | clsx@2.0.0: {} 3104 | 3105 | clsx@2.1.1: {} 3106 | 3107 | color-convert@1.9.3: 3108 | dependencies: 3109 | color-name: 1.1.3 3110 | 3111 | color-convert@2.0.1: 3112 | dependencies: 3113 | color-name: 1.1.4 3114 | 3115 | color-name@1.1.3: {} 3116 | 3117 | color-name@1.1.4: {} 3118 | 3119 | commander@4.1.1: {} 3120 | 3121 | concat-map@0.0.1: {} 3122 | 3123 | convert-source-map@2.0.0: {} 3124 | 3125 | cross-spawn@7.0.3: 3126 | dependencies: 3127 | path-key: 3.1.1 3128 | shebang-command: 2.0.0 3129 | which: 2.0.2 3130 | 3131 | cssesc@3.0.0: {} 3132 | 3133 | csstype@3.1.3: {} 3134 | 3135 | data-view-buffer@1.0.1: 3136 | dependencies: 3137 | call-bind: 1.0.7 3138 | es-errors: 1.3.0 3139 | is-data-view: 1.0.1 3140 | 3141 | data-view-byte-length@1.0.1: 3142 | dependencies: 3143 | call-bind: 1.0.7 3144 | es-errors: 1.3.0 3145 | is-data-view: 1.0.1 3146 | 3147 | data-view-byte-offset@1.0.0: 3148 | dependencies: 3149 | call-bind: 1.0.7 3150 | es-errors: 1.3.0 3151 | is-data-view: 1.0.1 3152 | 3153 | debug@3.2.7: 3154 | dependencies: 3155 | ms: 2.1.2 3156 | 3157 | debug@4.3.5: 3158 | dependencies: 3159 | ms: 2.1.2 3160 | 3161 | deep-is@0.1.4: {} 3162 | 3163 | define-data-property@1.1.4: 3164 | dependencies: 3165 | es-define-property: 1.0.0 3166 | es-errors: 1.3.0 3167 | gopd: 1.0.1 3168 | 3169 | define-properties@1.2.1: 3170 | dependencies: 3171 | define-data-property: 1.1.4 3172 | has-property-descriptors: 1.0.2 3173 | object-keys: 1.1.1 3174 | 3175 | detect-node-es@1.1.0: {} 3176 | 3177 | didyoumean@1.2.2: {} 3178 | 3179 | dir-glob@3.0.1: 3180 | dependencies: 3181 | path-type: 4.0.0 3182 | 3183 | dlv@1.1.3: {} 3184 | 3185 | doctrine@2.1.0: 3186 | dependencies: 3187 | esutils: 2.0.3 3188 | 3189 | doctrine@3.0.0: 3190 | dependencies: 3191 | esutils: 2.0.3 3192 | 3193 | eastasianwidth@0.2.0: {} 3194 | 3195 | electron-to-chromium@1.4.812: {} 3196 | 3197 | emoji-regex@8.0.0: {} 3198 | 3199 | emoji-regex@9.2.2: {} 3200 | 3201 | es-abstract@1.23.3: 3202 | dependencies: 3203 | array-buffer-byte-length: 1.0.1 3204 | arraybuffer.prototype.slice: 1.0.3 3205 | available-typed-arrays: 1.0.7 3206 | call-bind: 1.0.7 3207 | data-view-buffer: 1.0.1 3208 | data-view-byte-length: 1.0.1 3209 | data-view-byte-offset: 1.0.0 3210 | es-define-property: 1.0.0 3211 | es-errors: 1.3.0 3212 | es-object-atoms: 1.0.0 3213 | es-set-tostringtag: 2.0.3 3214 | es-to-primitive: 1.2.1 3215 | function.prototype.name: 1.1.6 3216 | get-intrinsic: 1.2.4 3217 | get-symbol-description: 1.0.2 3218 | globalthis: 1.0.4 3219 | gopd: 1.0.1 3220 | has-property-descriptors: 1.0.2 3221 | has-proto: 1.0.3 3222 | has-symbols: 1.0.3 3223 | hasown: 2.0.2 3224 | internal-slot: 1.0.7 3225 | is-array-buffer: 3.0.4 3226 | is-callable: 1.2.7 3227 | is-data-view: 1.0.1 3228 | is-negative-zero: 2.0.3 3229 | is-regex: 1.1.4 3230 | is-shared-array-buffer: 1.0.3 3231 | is-string: 1.0.7 3232 | is-typed-array: 1.1.13 3233 | is-weakref: 1.0.2 3234 | object-inspect: 1.13.2 3235 | object-keys: 1.1.1 3236 | object.assign: 4.1.5 3237 | regexp.prototype.flags: 1.5.2 3238 | safe-array-concat: 1.1.2 3239 | safe-regex-test: 1.0.3 3240 | string.prototype.trim: 1.2.9 3241 | string.prototype.trimend: 1.0.8 3242 | string.prototype.trimstart: 1.0.8 3243 | typed-array-buffer: 1.0.2 3244 | typed-array-byte-length: 1.0.1 3245 | typed-array-byte-offset: 1.0.2 3246 | typed-array-length: 1.0.6 3247 | unbox-primitive: 1.0.2 3248 | which-typed-array: 1.1.15 3249 | 3250 | es-define-property@1.0.0: 3251 | dependencies: 3252 | get-intrinsic: 1.2.4 3253 | 3254 | es-errors@1.3.0: {} 3255 | 3256 | es-object-atoms@1.0.0: 3257 | dependencies: 3258 | es-errors: 1.3.0 3259 | 3260 | es-set-tostringtag@2.0.3: 3261 | dependencies: 3262 | get-intrinsic: 1.2.4 3263 | has-tostringtag: 1.0.2 3264 | hasown: 2.0.2 3265 | 3266 | es-shim-unscopables@1.0.2: 3267 | dependencies: 3268 | hasown: 2.0.2 3269 | 3270 | es-to-primitive@1.2.1: 3271 | dependencies: 3272 | is-callable: 1.2.7 3273 | is-date-object: 1.0.5 3274 | is-symbol: 1.0.4 3275 | 3276 | esbuild@0.21.5: 3277 | optionalDependencies: 3278 | '@esbuild/aix-ppc64': 0.21.5 3279 | '@esbuild/android-arm': 0.21.5 3280 | '@esbuild/android-arm64': 0.21.5 3281 | '@esbuild/android-x64': 0.21.5 3282 | '@esbuild/darwin-arm64': 0.21.5 3283 | '@esbuild/darwin-x64': 0.21.5 3284 | '@esbuild/freebsd-arm64': 0.21.5 3285 | '@esbuild/freebsd-x64': 0.21.5 3286 | '@esbuild/linux-arm': 0.21.5 3287 | '@esbuild/linux-arm64': 0.21.5 3288 | '@esbuild/linux-ia32': 0.21.5 3289 | '@esbuild/linux-loong64': 0.21.5 3290 | '@esbuild/linux-mips64el': 0.21.5 3291 | '@esbuild/linux-ppc64': 0.21.5 3292 | '@esbuild/linux-riscv64': 0.21.5 3293 | '@esbuild/linux-s390x': 0.21.5 3294 | '@esbuild/linux-x64': 0.21.5 3295 | '@esbuild/netbsd-x64': 0.21.5 3296 | '@esbuild/openbsd-x64': 0.21.5 3297 | '@esbuild/sunos-x64': 0.21.5 3298 | '@esbuild/win32-arm64': 0.21.5 3299 | '@esbuild/win32-ia32': 0.21.5 3300 | '@esbuild/win32-x64': 0.21.5 3301 | 3302 | escalade@3.1.2: {} 3303 | 3304 | escape-string-regexp@1.0.5: {} 3305 | 3306 | escape-string-regexp@4.0.0: {} 3307 | 3308 | eslint-import-resolver-node@0.3.9: 3309 | dependencies: 3310 | debug: 3.2.7 3311 | is-core-module: 2.14.0 3312 | resolve: 1.22.8 3313 | transitivePeerDependencies: 3314 | - supports-color 3315 | 3316 | eslint-module-utils@2.8.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): 3317 | dependencies: 3318 | debug: 3.2.7 3319 | optionalDependencies: 3320 | '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 3321 | eslint: 8.57.0 3322 | eslint-import-resolver-node: 0.3.9 3323 | transitivePeerDependencies: 3324 | - supports-color 3325 | 3326 | eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0): 3327 | dependencies: 3328 | array-includes: 3.1.8 3329 | array.prototype.findlastindex: 1.2.5 3330 | array.prototype.flat: 1.3.2 3331 | array.prototype.flatmap: 1.3.2 3332 | debug: 3.2.7 3333 | doctrine: 2.1.0 3334 | eslint: 8.57.0 3335 | eslint-import-resolver-node: 0.3.9 3336 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.14.1(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) 3337 | hasown: 2.0.2 3338 | is-core-module: 2.14.0 3339 | is-glob: 4.0.3 3340 | minimatch: 3.1.2 3341 | object.fromentries: 2.0.8 3342 | object.groupby: 1.0.3 3343 | object.values: 1.2.0 3344 | semver: 6.3.1 3345 | tsconfig-paths: 3.15.0 3346 | optionalDependencies: 3347 | '@typescript-eslint/parser': 7.14.1(eslint@8.57.0)(typescript@5.5.2) 3348 | transitivePeerDependencies: 3349 | - eslint-import-resolver-typescript 3350 | - eslint-import-resolver-webpack 3351 | - supports-color 3352 | 3353 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): 3354 | dependencies: 3355 | eslint: 8.57.0 3356 | 3357 | eslint-plugin-react-refresh@0.4.7(eslint@8.57.0): 3358 | dependencies: 3359 | eslint: 8.57.0 3360 | 3361 | eslint-scope@7.2.2: 3362 | dependencies: 3363 | esrecurse: 4.3.0 3364 | estraverse: 5.3.0 3365 | 3366 | eslint-visitor-keys@3.4.3: {} 3367 | 3368 | eslint@8.57.0: 3369 | dependencies: 3370 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 3371 | '@eslint-community/regexpp': 4.10.1 3372 | '@eslint/eslintrc': 2.1.4 3373 | '@eslint/js': 8.57.0 3374 | '@humanwhocodes/config-array': 0.11.14 3375 | '@humanwhocodes/module-importer': 1.0.1 3376 | '@nodelib/fs.walk': 1.2.8 3377 | '@ungap/structured-clone': 1.2.0 3378 | ajv: 6.12.6 3379 | chalk: 4.1.2 3380 | cross-spawn: 7.0.3 3381 | debug: 4.3.5 3382 | doctrine: 3.0.0 3383 | escape-string-regexp: 4.0.0 3384 | eslint-scope: 7.2.2 3385 | eslint-visitor-keys: 3.4.3 3386 | espree: 9.6.1 3387 | esquery: 1.5.0 3388 | esutils: 2.0.3 3389 | fast-deep-equal: 3.1.3 3390 | file-entry-cache: 6.0.1 3391 | find-up: 5.0.0 3392 | glob-parent: 6.0.2 3393 | globals: 13.24.0 3394 | graphemer: 1.4.0 3395 | ignore: 5.3.1 3396 | imurmurhash: 0.1.4 3397 | is-glob: 4.0.3 3398 | is-path-inside: 3.0.3 3399 | js-yaml: 4.1.0 3400 | json-stable-stringify-without-jsonify: 1.0.1 3401 | levn: 0.4.1 3402 | lodash.merge: 4.6.2 3403 | minimatch: 3.1.2 3404 | natural-compare: 1.4.0 3405 | optionator: 0.9.4 3406 | strip-ansi: 6.0.1 3407 | text-table: 0.2.0 3408 | transitivePeerDependencies: 3409 | - supports-color 3410 | 3411 | espree@9.6.1: 3412 | dependencies: 3413 | acorn: 8.12.0 3414 | acorn-jsx: 5.3.2(acorn@8.12.0) 3415 | eslint-visitor-keys: 3.4.3 3416 | 3417 | esquery@1.5.0: 3418 | dependencies: 3419 | estraverse: 5.3.0 3420 | 3421 | esrecurse@4.3.0: 3422 | dependencies: 3423 | estraverse: 5.3.0 3424 | 3425 | estraverse@5.3.0: {} 3426 | 3427 | esutils@2.0.3: {} 3428 | 3429 | fast-deep-equal@3.1.3: {} 3430 | 3431 | fast-glob@3.3.2: 3432 | dependencies: 3433 | '@nodelib/fs.stat': 2.0.5 3434 | '@nodelib/fs.walk': 1.2.8 3435 | glob-parent: 5.1.2 3436 | merge2: 1.4.1 3437 | micromatch: 4.0.7 3438 | 3439 | fast-json-stable-stringify@2.1.0: {} 3440 | 3441 | fast-levenshtein@2.0.6: {} 3442 | 3443 | fastq@1.17.1: 3444 | dependencies: 3445 | reusify: 1.0.4 3446 | 3447 | file-entry-cache@6.0.1: 3448 | dependencies: 3449 | flat-cache: 3.2.0 3450 | 3451 | fill-range@7.1.1: 3452 | dependencies: 3453 | to-regex-range: 5.0.1 3454 | 3455 | find-up@5.0.0: 3456 | dependencies: 3457 | locate-path: 6.0.0 3458 | path-exists: 4.0.0 3459 | 3460 | flat-cache@3.2.0: 3461 | dependencies: 3462 | flatted: 3.3.1 3463 | keyv: 4.5.4 3464 | rimraf: 3.0.2 3465 | 3466 | flatted@3.3.1: {} 3467 | 3468 | for-each@0.3.3: 3469 | dependencies: 3470 | is-callable: 1.2.7 3471 | 3472 | foreground-child@3.2.1: 3473 | dependencies: 3474 | cross-spawn: 7.0.3 3475 | signal-exit: 4.1.0 3476 | 3477 | fraction.js@4.3.7: {} 3478 | 3479 | fs.realpath@1.0.0: {} 3480 | 3481 | fsevents@2.3.3: 3482 | optional: true 3483 | 3484 | function-bind@1.1.2: {} 3485 | 3486 | function.prototype.name@1.1.6: 3487 | dependencies: 3488 | call-bind: 1.0.7 3489 | define-properties: 1.2.1 3490 | es-abstract: 1.23.3 3491 | functions-have-names: 1.2.3 3492 | 3493 | functions-have-names@1.2.3: {} 3494 | 3495 | gensync@1.0.0-beta.2: {} 3496 | 3497 | get-intrinsic@1.2.4: 3498 | dependencies: 3499 | es-errors: 1.3.0 3500 | function-bind: 1.1.2 3501 | has-proto: 1.0.3 3502 | has-symbols: 1.0.3 3503 | hasown: 2.0.2 3504 | 3505 | get-nonce@1.0.1: {} 3506 | 3507 | get-symbol-description@1.0.2: 3508 | dependencies: 3509 | call-bind: 1.0.7 3510 | es-errors: 1.3.0 3511 | get-intrinsic: 1.2.4 3512 | 3513 | glob-parent@5.1.2: 3514 | dependencies: 3515 | is-glob: 4.0.3 3516 | 3517 | glob-parent@6.0.2: 3518 | dependencies: 3519 | is-glob: 4.0.3 3520 | 3521 | glob@10.4.2: 3522 | dependencies: 3523 | foreground-child: 3.2.1 3524 | jackspeak: 3.4.0 3525 | minimatch: 9.0.5 3526 | minipass: 7.1.2 3527 | package-json-from-dist: 1.0.0 3528 | path-scurry: 1.11.1 3529 | 3530 | glob@7.2.3: 3531 | dependencies: 3532 | fs.realpath: 1.0.0 3533 | inflight: 1.0.6 3534 | inherits: 2.0.4 3535 | minimatch: 3.1.2 3536 | once: 1.4.0 3537 | path-is-absolute: 1.0.1 3538 | 3539 | globals@11.12.0: {} 3540 | 3541 | globals@13.24.0: 3542 | dependencies: 3543 | type-fest: 0.20.2 3544 | 3545 | globalthis@1.0.4: 3546 | dependencies: 3547 | define-properties: 1.2.1 3548 | gopd: 1.0.1 3549 | 3550 | globby@11.1.0: 3551 | dependencies: 3552 | array-union: 2.1.0 3553 | dir-glob: 3.0.1 3554 | fast-glob: 3.3.2 3555 | ignore: 5.3.1 3556 | merge2: 1.4.1 3557 | slash: 3.0.0 3558 | 3559 | gopd@1.0.1: 3560 | dependencies: 3561 | get-intrinsic: 1.2.4 3562 | 3563 | graphemer@1.4.0: {} 3564 | 3565 | has-bigints@1.0.2: {} 3566 | 3567 | has-flag@3.0.0: {} 3568 | 3569 | has-flag@4.0.0: {} 3570 | 3571 | has-property-descriptors@1.0.2: 3572 | dependencies: 3573 | es-define-property: 1.0.0 3574 | 3575 | has-proto@1.0.3: {} 3576 | 3577 | has-symbols@1.0.3: {} 3578 | 3579 | has-tostringtag@1.0.2: 3580 | dependencies: 3581 | has-symbols: 1.0.3 3582 | 3583 | hasown@2.0.2: 3584 | dependencies: 3585 | function-bind: 1.1.2 3586 | 3587 | ignore@5.3.1: {} 3588 | 3589 | import-fresh@3.3.0: 3590 | dependencies: 3591 | parent-module: 1.0.1 3592 | resolve-from: 4.0.0 3593 | 3594 | imurmurhash@0.1.4: {} 3595 | 3596 | inflight@1.0.6: 3597 | dependencies: 3598 | once: 1.4.0 3599 | wrappy: 1.0.2 3600 | 3601 | inherits@2.0.4: {} 3602 | 3603 | internal-slot@1.0.7: 3604 | dependencies: 3605 | es-errors: 1.3.0 3606 | hasown: 2.0.2 3607 | side-channel: 1.0.6 3608 | 3609 | invariant@2.2.4: 3610 | dependencies: 3611 | loose-envify: 1.4.0 3612 | 3613 | is-array-buffer@3.0.4: 3614 | dependencies: 3615 | call-bind: 1.0.7 3616 | get-intrinsic: 1.2.4 3617 | 3618 | is-bigint@1.0.4: 3619 | dependencies: 3620 | has-bigints: 1.0.2 3621 | 3622 | is-binary-path@2.1.0: 3623 | dependencies: 3624 | binary-extensions: 2.3.0 3625 | 3626 | is-boolean-object@1.1.2: 3627 | dependencies: 3628 | call-bind: 1.0.7 3629 | has-tostringtag: 1.0.2 3630 | 3631 | is-callable@1.2.7: {} 3632 | 3633 | is-core-module@2.14.0: 3634 | dependencies: 3635 | hasown: 2.0.2 3636 | 3637 | is-data-view@1.0.1: 3638 | dependencies: 3639 | is-typed-array: 1.1.13 3640 | 3641 | is-date-object@1.0.5: 3642 | dependencies: 3643 | has-tostringtag: 1.0.2 3644 | 3645 | is-extglob@2.1.1: {} 3646 | 3647 | is-fullwidth-code-point@3.0.0: {} 3648 | 3649 | is-glob@4.0.3: 3650 | dependencies: 3651 | is-extglob: 2.1.1 3652 | 3653 | is-negative-zero@2.0.3: {} 3654 | 3655 | is-number-object@1.0.7: 3656 | dependencies: 3657 | has-tostringtag: 1.0.2 3658 | 3659 | is-number@7.0.0: {} 3660 | 3661 | is-path-inside@3.0.3: {} 3662 | 3663 | is-regex@1.1.4: 3664 | dependencies: 3665 | call-bind: 1.0.7 3666 | has-tostringtag: 1.0.2 3667 | 3668 | is-shared-array-buffer@1.0.3: 3669 | dependencies: 3670 | call-bind: 1.0.7 3671 | 3672 | is-string@1.0.7: 3673 | dependencies: 3674 | has-tostringtag: 1.0.2 3675 | 3676 | is-symbol@1.0.4: 3677 | dependencies: 3678 | has-symbols: 1.0.3 3679 | 3680 | is-typed-array@1.1.13: 3681 | dependencies: 3682 | which-typed-array: 1.1.15 3683 | 3684 | is-weakref@1.0.2: 3685 | dependencies: 3686 | call-bind: 1.0.7 3687 | 3688 | isarray@2.0.5: {} 3689 | 3690 | isexe@2.0.0: {} 3691 | 3692 | jackspeak@3.4.0: 3693 | dependencies: 3694 | '@isaacs/cliui': 8.0.2 3695 | optionalDependencies: 3696 | '@pkgjs/parseargs': 0.11.0 3697 | 3698 | jiti@1.21.6: {} 3699 | 3700 | js-tokens@4.0.0: {} 3701 | 3702 | js-yaml@4.1.0: 3703 | dependencies: 3704 | argparse: 2.0.1 3705 | 3706 | jsesc@2.5.2: {} 3707 | 3708 | json-buffer@3.0.1: {} 3709 | 3710 | json-schema-traverse@0.4.1: {} 3711 | 3712 | json-stable-stringify-without-jsonify@1.0.1: {} 3713 | 3714 | json5@1.0.2: 3715 | dependencies: 3716 | minimist: 1.2.8 3717 | 3718 | json5@2.2.3: {} 3719 | 3720 | keyv@4.5.4: 3721 | dependencies: 3722 | json-buffer: 3.0.1 3723 | 3724 | levn@0.4.1: 3725 | dependencies: 3726 | prelude-ls: 1.2.1 3727 | type-check: 0.4.0 3728 | 3729 | lilconfig@2.1.0: {} 3730 | 3731 | lilconfig@3.1.2: {} 3732 | 3733 | lines-and-columns@1.2.4: {} 3734 | 3735 | locate-path@6.0.0: 3736 | dependencies: 3737 | p-locate: 5.0.0 3738 | 3739 | lodash.merge@4.6.2: {} 3740 | 3741 | loose-envify@1.4.0: 3742 | dependencies: 3743 | js-tokens: 4.0.0 3744 | 3745 | lru-cache@10.2.2: {} 3746 | 3747 | lru-cache@5.1.1: 3748 | dependencies: 3749 | yallist: 3.1.1 3750 | 3751 | lucide-react@0.397.0(react@18.3.1): 3752 | dependencies: 3753 | react: 18.3.1 3754 | 3755 | merge2@1.4.1: {} 3756 | 3757 | micromatch@4.0.7: 3758 | dependencies: 3759 | braces: 3.0.3 3760 | picomatch: 2.3.1 3761 | 3762 | minimatch@3.1.2: 3763 | dependencies: 3764 | brace-expansion: 1.1.11 3765 | 3766 | minimatch@9.0.5: 3767 | dependencies: 3768 | brace-expansion: 2.0.1 3769 | 3770 | minimist@1.2.8: {} 3771 | 3772 | minipass@7.1.2: {} 3773 | 3774 | ms@2.1.2: {} 3775 | 3776 | mz@2.7.0: 3777 | dependencies: 3778 | any-promise: 1.3.0 3779 | object-assign: 4.1.1 3780 | thenify-all: 1.6.0 3781 | 3782 | nanoid@3.3.7: {} 3783 | 3784 | natural-compare@1.4.0: {} 3785 | 3786 | node-releases@2.0.14: {} 3787 | 3788 | normalize-path@3.0.0: {} 3789 | 3790 | normalize-range@0.1.2: {} 3791 | 3792 | object-assign@4.1.1: {} 3793 | 3794 | object-hash@3.0.0: {} 3795 | 3796 | object-inspect@1.13.2: {} 3797 | 3798 | object-keys@1.1.1: {} 3799 | 3800 | object.assign@4.1.5: 3801 | dependencies: 3802 | call-bind: 1.0.7 3803 | define-properties: 1.2.1 3804 | has-symbols: 1.0.3 3805 | object-keys: 1.1.1 3806 | 3807 | object.fromentries@2.0.8: 3808 | dependencies: 3809 | call-bind: 1.0.7 3810 | define-properties: 1.2.1 3811 | es-abstract: 1.23.3 3812 | es-object-atoms: 1.0.0 3813 | 3814 | object.groupby@1.0.3: 3815 | dependencies: 3816 | call-bind: 1.0.7 3817 | define-properties: 1.2.1 3818 | es-abstract: 1.23.3 3819 | 3820 | object.values@1.2.0: 3821 | dependencies: 3822 | call-bind: 1.0.7 3823 | define-properties: 1.2.1 3824 | es-object-atoms: 1.0.0 3825 | 3826 | once@1.4.0: 3827 | dependencies: 3828 | wrappy: 1.0.2 3829 | 3830 | optionator@0.9.4: 3831 | dependencies: 3832 | deep-is: 0.1.4 3833 | fast-levenshtein: 2.0.6 3834 | levn: 0.4.1 3835 | prelude-ls: 1.2.1 3836 | type-check: 0.4.0 3837 | word-wrap: 1.2.5 3838 | 3839 | p-limit@3.1.0: 3840 | dependencies: 3841 | yocto-queue: 0.1.0 3842 | 3843 | p-locate@5.0.0: 3844 | dependencies: 3845 | p-limit: 3.1.0 3846 | 3847 | package-json-from-dist@1.0.0: {} 3848 | 3849 | parent-module@1.0.1: 3850 | dependencies: 3851 | callsites: 3.1.0 3852 | 3853 | path-exists@4.0.0: {} 3854 | 3855 | path-is-absolute@1.0.1: {} 3856 | 3857 | path-key@3.1.1: {} 3858 | 3859 | path-parse@1.0.7: {} 3860 | 3861 | path-scurry@1.11.1: 3862 | dependencies: 3863 | lru-cache: 10.2.2 3864 | minipass: 7.1.2 3865 | 3866 | path-type@4.0.0: {} 3867 | 3868 | picocolors@1.0.1: {} 3869 | 3870 | picomatch@2.3.1: {} 3871 | 3872 | pify@2.3.0: {} 3873 | 3874 | pirates@4.0.6: {} 3875 | 3876 | possible-typed-array-names@1.0.0: {} 3877 | 3878 | postcss-import@15.1.0(postcss@8.4.38): 3879 | dependencies: 3880 | postcss: 8.4.38 3881 | postcss-value-parser: 4.2.0 3882 | read-cache: 1.0.0 3883 | resolve: 1.22.8 3884 | 3885 | postcss-js@4.0.1(postcss@8.4.38): 3886 | dependencies: 3887 | camelcase-css: 2.0.1 3888 | postcss: 8.4.38 3889 | 3890 | postcss-load-config@4.0.2(postcss@8.4.38): 3891 | dependencies: 3892 | lilconfig: 3.1.2 3893 | yaml: 2.4.5 3894 | optionalDependencies: 3895 | postcss: 8.4.38 3896 | 3897 | postcss-nested@6.0.1(postcss@8.4.38): 3898 | dependencies: 3899 | postcss: 8.4.38 3900 | postcss-selector-parser: 6.1.0 3901 | 3902 | postcss-selector-parser@6.1.0: 3903 | dependencies: 3904 | cssesc: 3.0.0 3905 | util-deprecate: 1.0.2 3906 | 3907 | postcss-value-parser@4.2.0: {} 3908 | 3909 | postcss@8.4.38: 3910 | dependencies: 3911 | nanoid: 3.3.7 3912 | picocolors: 1.0.1 3913 | source-map-js: 1.2.0 3914 | 3915 | prelude-ls@1.2.1: {} 3916 | 3917 | punycode@2.3.1: {} 3918 | 3919 | queue-microtask@1.2.3: {} 3920 | 3921 | react-dom@18.3.1(react@18.3.1): 3922 | dependencies: 3923 | loose-envify: 1.4.0 3924 | react: 18.3.1 3925 | scheduler: 0.23.2 3926 | 3927 | react-refresh@0.14.2: {} 3928 | 3929 | react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): 3930 | dependencies: 3931 | react: 18.3.1 3932 | react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 3933 | tslib: 2.6.3 3934 | optionalDependencies: 3935 | '@types/react': 18.3.3 3936 | 3937 | react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1): 3938 | dependencies: 3939 | react: 18.3.1 3940 | react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) 3941 | react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 3942 | tslib: 2.6.3 3943 | use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) 3944 | use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) 3945 | optionalDependencies: 3946 | '@types/react': 18.3.3 3947 | 3948 | react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): 3949 | dependencies: 3950 | get-nonce: 1.0.1 3951 | invariant: 2.2.4 3952 | react: 18.3.1 3953 | tslib: 2.6.3 3954 | optionalDependencies: 3955 | '@types/react': 18.3.3 3956 | 3957 | react@18.3.1: 3958 | dependencies: 3959 | loose-envify: 1.4.0 3960 | 3961 | read-cache@1.0.0: 3962 | dependencies: 3963 | pify: 2.3.0 3964 | 3965 | readdirp@3.6.0: 3966 | dependencies: 3967 | picomatch: 2.3.1 3968 | 3969 | regenerator-runtime@0.14.1: {} 3970 | 3971 | regexp.prototype.flags@1.5.2: 3972 | dependencies: 3973 | call-bind: 1.0.7 3974 | define-properties: 1.2.1 3975 | es-errors: 1.3.0 3976 | set-function-name: 2.0.2 3977 | 3978 | resolve-from@4.0.0: {} 3979 | 3980 | resolve@1.22.8: 3981 | dependencies: 3982 | is-core-module: 2.14.0 3983 | path-parse: 1.0.7 3984 | supports-preserve-symlinks-flag: 1.0.0 3985 | 3986 | reusify@1.0.4: {} 3987 | 3988 | rimraf@3.0.2: 3989 | dependencies: 3990 | glob: 7.2.3 3991 | 3992 | rollup@4.18.0: 3993 | dependencies: 3994 | '@types/estree': 1.0.5 3995 | optionalDependencies: 3996 | '@rollup/rollup-android-arm-eabi': 4.18.0 3997 | '@rollup/rollup-android-arm64': 4.18.0 3998 | '@rollup/rollup-darwin-arm64': 4.18.0 3999 | '@rollup/rollup-darwin-x64': 4.18.0 4000 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 4001 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0 4002 | '@rollup/rollup-linux-arm64-gnu': 4.18.0 4003 | '@rollup/rollup-linux-arm64-musl': 4.18.0 4004 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 4005 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0 4006 | '@rollup/rollup-linux-s390x-gnu': 4.18.0 4007 | '@rollup/rollup-linux-x64-gnu': 4.18.0 4008 | '@rollup/rollup-linux-x64-musl': 4.18.0 4009 | '@rollup/rollup-win32-arm64-msvc': 4.18.0 4010 | '@rollup/rollup-win32-ia32-msvc': 4.18.0 4011 | '@rollup/rollup-win32-x64-msvc': 4.18.0 4012 | fsevents: 2.3.3 4013 | 4014 | run-parallel@1.2.0: 4015 | dependencies: 4016 | queue-microtask: 1.2.3 4017 | 4018 | safe-array-concat@1.1.2: 4019 | dependencies: 4020 | call-bind: 1.0.7 4021 | get-intrinsic: 1.2.4 4022 | has-symbols: 1.0.3 4023 | isarray: 2.0.5 4024 | 4025 | safe-regex-test@1.0.3: 4026 | dependencies: 4027 | call-bind: 1.0.7 4028 | es-errors: 1.3.0 4029 | is-regex: 1.1.4 4030 | 4031 | scheduler@0.23.2: 4032 | dependencies: 4033 | loose-envify: 1.4.0 4034 | 4035 | semver@6.3.1: {} 4036 | 4037 | semver@7.6.2: {} 4038 | 4039 | set-function-length@1.2.2: 4040 | dependencies: 4041 | define-data-property: 1.1.4 4042 | es-errors: 1.3.0 4043 | function-bind: 1.1.2 4044 | get-intrinsic: 1.2.4 4045 | gopd: 1.0.1 4046 | has-property-descriptors: 1.0.2 4047 | 4048 | set-function-name@2.0.2: 4049 | dependencies: 4050 | define-data-property: 1.1.4 4051 | es-errors: 1.3.0 4052 | functions-have-names: 1.2.3 4053 | has-property-descriptors: 1.0.2 4054 | 4055 | shebang-command@2.0.0: 4056 | dependencies: 4057 | shebang-regex: 3.0.0 4058 | 4059 | shebang-regex@3.0.0: {} 4060 | 4061 | side-channel@1.0.6: 4062 | dependencies: 4063 | call-bind: 1.0.7 4064 | es-errors: 1.3.0 4065 | get-intrinsic: 1.2.4 4066 | object-inspect: 1.13.2 4067 | 4068 | signal-exit@4.1.0: {} 4069 | 4070 | slash@3.0.0: {} 4071 | 4072 | source-map-js@1.2.0: {} 4073 | 4074 | string-width@4.2.3: 4075 | dependencies: 4076 | emoji-regex: 8.0.0 4077 | is-fullwidth-code-point: 3.0.0 4078 | strip-ansi: 6.0.1 4079 | 4080 | string-width@5.1.2: 4081 | dependencies: 4082 | eastasianwidth: 0.2.0 4083 | emoji-regex: 9.2.2 4084 | strip-ansi: 7.1.0 4085 | 4086 | string.prototype.trim@1.2.9: 4087 | dependencies: 4088 | call-bind: 1.0.7 4089 | define-properties: 1.2.1 4090 | es-abstract: 1.23.3 4091 | es-object-atoms: 1.0.0 4092 | 4093 | string.prototype.trimend@1.0.8: 4094 | dependencies: 4095 | call-bind: 1.0.7 4096 | define-properties: 1.2.1 4097 | es-object-atoms: 1.0.0 4098 | 4099 | string.prototype.trimstart@1.0.8: 4100 | dependencies: 4101 | call-bind: 1.0.7 4102 | define-properties: 1.2.1 4103 | es-object-atoms: 1.0.0 4104 | 4105 | strip-ansi@6.0.1: 4106 | dependencies: 4107 | ansi-regex: 5.0.1 4108 | 4109 | strip-ansi@7.1.0: 4110 | dependencies: 4111 | ansi-regex: 6.0.1 4112 | 4113 | strip-bom@3.0.0: {} 4114 | 4115 | strip-json-comments@3.1.1: {} 4116 | 4117 | sucrase@3.35.0: 4118 | dependencies: 4119 | '@jridgewell/gen-mapping': 0.3.5 4120 | commander: 4.1.1 4121 | glob: 10.4.2 4122 | lines-and-columns: 1.2.4 4123 | mz: 2.7.0 4124 | pirates: 4.0.6 4125 | ts-interface-checker: 0.1.13 4126 | 4127 | supports-color@5.5.0: 4128 | dependencies: 4129 | has-flag: 3.0.0 4130 | 4131 | supports-color@7.2.0: 4132 | dependencies: 4133 | has-flag: 4.0.0 4134 | 4135 | supports-preserve-symlinks-flag@1.0.0: {} 4136 | 4137 | tailwind-merge@2.3.0: 4138 | dependencies: 4139 | '@babel/runtime': 7.24.7 4140 | 4141 | tailwindcss@3.4.4: 4142 | dependencies: 4143 | '@alloc/quick-lru': 5.2.0 4144 | arg: 5.0.2 4145 | chokidar: 3.6.0 4146 | didyoumean: 1.2.2 4147 | dlv: 1.1.3 4148 | fast-glob: 3.3.2 4149 | glob-parent: 6.0.2 4150 | is-glob: 4.0.3 4151 | jiti: 1.21.6 4152 | lilconfig: 2.1.0 4153 | micromatch: 4.0.7 4154 | normalize-path: 3.0.0 4155 | object-hash: 3.0.0 4156 | picocolors: 1.0.1 4157 | postcss: 8.4.38 4158 | postcss-import: 15.1.0(postcss@8.4.38) 4159 | postcss-js: 4.0.1(postcss@8.4.38) 4160 | postcss-load-config: 4.0.2(postcss@8.4.38) 4161 | postcss-nested: 6.0.1(postcss@8.4.38) 4162 | postcss-selector-parser: 6.1.0 4163 | resolve: 1.22.8 4164 | sucrase: 3.35.0 4165 | transitivePeerDependencies: 4166 | - ts-node 4167 | 4168 | text-table@0.2.0: {} 4169 | 4170 | thenify-all@1.6.0: 4171 | dependencies: 4172 | thenify: 3.3.1 4173 | 4174 | thenify@3.3.1: 4175 | dependencies: 4176 | any-promise: 1.3.0 4177 | 4178 | to-fast-properties@2.0.0: {} 4179 | 4180 | to-regex-range@5.0.1: 4181 | dependencies: 4182 | is-number: 7.0.0 4183 | 4184 | ts-api-utils@1.3.0(typescript@5.5.2): 4185 | dependencies: 4186 | typescript: 5.5.2 4187 | 4188 | ts-interface-checker@0.1.13: {} 4189 | 4190 | tsconfig-paths@3.15.0: 4191 | dependencies: 4192 | '@types/json5': 0.0.29 4193 | json5: 1.0.2 4194 | minimist: 1.2.8 4195 | strip-bom: 3.0.0 4196 | 4197 | tslib@2.6.3: {} 4198 | 4199 | type-check@0.4.0: 4200 | dependencies: 4201 | prelude-ls: 1.2.1 4202 | 4203 | type-fest@0.20.2: {} 4204 | 4205 | typed-array-buffer@1.0.2: 4206 | dependencies: 4207 | call-bind: 1.0.7 4208 | es-errors: 1.3.0 4209 | is-typed-array: 1.1.13 4210 | 4211 | typed-array-byte-length@1.0.1: 4212 | dependencies: 4213 | call-bind: 1.0.7 4214 | for-each: 0.3.3 4215 | gopd: 1.0.1 4216 | has-proto: 1.0.3 4217 | is-typed-array: 1.1.13 4218 | 4219 | typed-array-byte-offset@1.0.2: 4220 | dependencies: 4221 | available-typed-arrays: 1.0.7 4222 | call-bind: 1.0.7 4223 | for-each: 0.3.3 4224 | gopd: 1.0.1 4225 | has-proto: 1.0.3 4226 | is-typed-array: 1.1.13 4227 | 4228 | typed-array-length@1.0.6: 4229 | dependencies: 4230 | call-bind: 1.0.7 4231 | for-each: 0.3.3 4232 | gopd: 1.0.1 4233 | has-proto: 1.0.3 4234 | is-typed-array: 1.1.13 4235 | possible-typed-array-names: 1.0.0 4236 | 4237 | typescript@5.5.2: {} 4238 | 4239 | unbox-primitive@1.0.2: 4240 | dependencies: 4241 | call-bind: 1.0.7 4242 | has-bigints: 1.0.2 4243 | has-symbols: 1.0.3 4244 | which-boxed-primitive: 1.0.2 4245 | 4246 | undici-types@5.26.5: 4247 | optional: true 4248 | 4249 | update-browserslist-db@1.0.16(browserslist@4.23.1): 4250 | dependencies: 4251 | browserslist: 4.23.1 4252 | escalade: 3.1.2 4253 | picocolors: 1.0.1 4254 | 4255 | uri-js@4.4.1: 4256 | dependencies: 4257 | punycode: 2.3.1 4258 | 4259 | use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): 4260 | dependencies: 4261 | react: 18.3.1 4262 | tslib: 2.6.3 4263 | optionalDependencies: 4264 | '@types/react': 18.3.3 4265 | 4266 | use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): 4267 | dependencies: 4268 | detect-node-es: 1.1.0 4269 | react: 18.3.1 4270 | tslib: 2.6.3 4271 | optionalDependencies: 4272 | '@types/react': 18.3.3 4273 | 4274 | util-deprecate@1.0.2: {} 4275 | 4276 | vite@5.3.1(@types/node@20.14.9): 4277 | dependencies: 4278 | esbuild: 0.21.5 4279 | postcss: 8.4.38 4280 | rollup: 4.18.0 4281 | optionalDependencies: 4282 | '@types/node': 20.14.9 4283 | fsevents: 2.3.3 4284 | 4285 | which-boxed-primitive@1.0.2: 4286 | dependencies: 4287 | is-bigint: 1.0.4 4288 | is-boolean-object: 1.1.2 4289 | is-number-object: 1.0.7 4290 | is-string: 1.0.7 4291 | is-symbol: 1.0.4 4292 | 4293 | which-typed-array@1.1.15: 4294 | dependencies: 4295 | available-typed-arrays: 1.0.7 4296 | call-bind: 1.0.7 4297 | for-each: 0.3.3 4298 | gopd: 1.0.1 4299 | has-tostringtag: 1.0.2 4300 | 4301 | which@2.0.2: 4302 | dependencies: 4303 | isexe: 2.0.0 4304 | 4305 | word-wrap@1.2.5: {} 4306 | 4307 | wrap-ansi@7.0.0: 4308 | dependencies: 4309 | ansi-styles: 4.3.0 4310 | string-width: 4.2.3 4311 | strip-ansi: 6.0.1 4312 | 4313 | wrap-ansi@8.1.0: 4314 | dependencies: 4315 | ansi-styles: 6.2.1 4316 | string-width: 5.1.2 4317 | strip-ansi: 7.1.0 4318 | 4319 | wrappy@1.0.2: {} 4320 | 4321 | yallist@3.1.1: {} 4322 | 4323 | yaml@2.4.5: {} 4324 | 4325 | yocto-queue@0.1.0: {} 4326 | 4327 | zod@3.23.8: {} 4328 | --------------------------------------------------------------------------------