├── web ├── src │ ├── vite-env.d.ts │ ├── index.css │ ├── main.tsx │ ├── utils │ │ ├── fetchNui.ts │ │ ├── debugData.ts │ │ └── misc.ts │ ├── hooks │ │ └── useNuiEvent.ts │ ├── providers │ │ └── VisibilityProvider.tsx │ └── components │ │ └── SpeakersMenu.tsx ├── tsconfig.node.json ├── vite.config.ts ├── index.html ├── build │ └── index.html ├── tsconfig.json ├── package.json └── pnpm-lock.yaml ├── images ├── low_speaker.png ├── high_speaker.png └── medium_speaker.png ├── config.lua ├── .vscode └── settings.json ├── fxmanifest.lua ├── sql.sql ├── README.md ├── locales ├── pt.json └── en.json ├── client ├── functions.lua └── main.lua ├── server └── main.lua └── LICENSE /web/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /images/low_speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MT-Scripts/mt_speakers/HEAD/images/low_speaker.png -------------------------------------------------------------------------------- /images/high_speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MT-Scripts/mt_speakers/HEAD/images/high_speaker.png -------------------------------------------------------------------------------- /images/medium_speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MT-Scripts/mt_speakers/HEAD/images/medium_speaker.png -------------------------------------------------------------------------------- /web/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "esnext", 5 | "moduleResolution": "node" 6 | }, 7 | "include": ["vite.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /web/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | export default defineConfig({ 5 | plugins: [react()], 6 | base: './', 7 | build: { 8 | outDir: 'build', 9 | chunkSizeWarningLimit: 1000 10 | }, 11 | }); -------------------------------------------------------------------------------- /web/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: sans-serif; 4 | -webkit-font-smoothing: antialiased; 5 | -moz-osx-font-smoothing: grayscale; 6 | height: 100%; 7 | } 8 | 9 | #root { 10 | height: 100% 11 | } 12 | 13 | ::-webkit-scrollbar { 14 | display: none !important; 15 | } 16 | 17 | code { 18 | font-family: sans-serif; 19 | } -------------------------------------------------------------------------------- /config.lua: -------------------------------------------------------------------------------- 1 | return { 2 | target = 'ox_target', -- ox_target, interact or qb-target 3 | locale = 'en', -- UI locales (locales folder) 4 | 5 | speakers = { 6 | low_speaker = { prop = 'prop_boombox_01', maxVol = 30, maxDist = 20 }, 7 | medium_speaker = { prop = 'prop_speaker_03', maxVol = 50, maxDist = 60 }, 8 | high_speaker = { prop = 'ba_prop_battle_club_speaker_large', maxVol = 100, maxDist = 200 }, 9 | } 10 | } -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | NUI React Boilerplate 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Lua.diagnostics.globals": [ 3 | "lib", 4 | "rotationToDirection", 5 | "rayCastGamePlayCamera", 6 | "cache", 7 | "textUI", 8 | "hideTextUI", 9 | "locale", 10 | "MySQL", 11 | "createEntityTarget", 12 | "itemName" 13 | ], 14 | "Lua.diagnostics.disable": [ 15 | "missing-parameter", 16 | "param-type-mismatch", 17 | "undefined-field" 18 | ] 19 | } -------------------------------------------------------------------------------- /web/build/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | NUI React Boilerplate 8 | 9 | 10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /fxmanifest.lua: -------------------------------------------------------------------------------- 1 | fx_version 'cerulean' 2 | author 'Marttins' 3 | description 'Simple speakers script for FiveM' 4 | game 'gta5' 5 | lua54 'yes' 6 | 7 | shared_scripts { 8 | '@ox_lib/init.lua', 9 | 'config.lua' 10 | } 11 | 12 | client_scripts { 13 | 'client/*' 14 | } 15 | 16 | server_scripts { 17 | '@oxmysql/lib/MySQL.lua', 18 | 'server/*' 19 | } 20 | 21 | ui_page 'web/build/index.html' 22 | 23 | files { 24 | 'locales/*', 25 | 'web/build/**/*' 26 | } -------------------------------------------------------------------------------- /sql.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `speakers` ( 2 | `id` INT(11) NOT NULL AUTO_INCREMENT, 3 | `item` VARCHAR(50) NULL DEFAULT NULL, 4 | `location` LONGTEXT NULL DEFAULT '[]', 5 | `users` LONGTEXT NULL DEFAULT '[]', 6 | `owner` VARCHAR(50) NULL DEFAULT NULL, 7 | PRIMARY KEY (`id`) USING BTREE 8 | ); 9 | 10 | CREATE TABLE `speakers_musics` ( 11 | `musicId` INT(11) NOT NULL AUTO_INCREMENT, 12 | `citizenid` VARCHAR(50) NOT NULL, 13 | `label` LONGTEXT NOT NULL, 14 | `url` LONGTEXT NOT NULL, 15 | PRIMARY KEY (`musicId`) USING BTREE 16 | ); 17 | -------------------------------------------------------------------------------- /web/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "lib": ["DOM", "DOM.Iterable", "ESNext"], 6 | "allowJs": false, 7 | "skipLibCheck": true, 8 | "esModuleInterop": false, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "module": "ESNext", 13 | "moduleResolution": "Node", 14 | "resolveJsonModule": true, 15 | "isolatedModules": true, 16 | "noEmit": true, 17 | "jsx": "react-jsx", 18 | 19 | }, 20 | "include": ["src"], 21 | "references": [{ "path": "./tsconfig.node.json" }] 22 | } 23 | -------------------------------------------------------------------------------- /web/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import { VisibilityProvider } from './providers/VisibilityProvider' 4 | import { MantineProvider } from '@mantine/core' 5 | import { ModalsProvider } from '@mantine/modals' 6 | import { DatesProvider } from '@mantine/dates' 7 | import SpeakersMenu from './components/SpeakersMenu' 8 | 9 | ReactDOM.createRoot(document.getElementById('root')!).render( 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ) -------------------------------------------------------------------------------- /web/src/utils/fetchNui.ts: -------------------------------------------------------------------------------- 1 | import { isEnvBrowser } from "./misc" 2 | 3 | export async function fetchNui( 4 | eventName: string, 5 | data?: unknown, 6 | mockData?: T, 7 | ): Promise { 8 | const options = { 9 | method: "post", 10 | headers: { 11 | "Content-Type": "application/json; charset=UTF-8", 12 | }, 13 | body: JSON.stringify(data), 14 | }; 15 | 16 | if (isEnvBrowser() && mockData) return mockData 17 | 18 | const resourceName = (window as any).GetParentResourceName 19 | ? (window as any).GetParentResourceName() : "nui-frame-app" 20 | 21 | const resp = await fetch(`https://${resourceName}/${eventName}`, options) 22 | 23 | const respFormatted = await resp.json() 24 | 25 | return respFormatted 26 | } 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MT Speakers 2 | Simple speakers script for FiveM 3 | 4 | # Features 5 | - Clean and simple UI made in Typescript with React, Vite and Mantine 6 | - Play any song with youtube URL 7 | - Musics library (save any music on database) 8 | - Accesses list: Give access only to the players you want 9 | - Pressistant speakers: The speakers will stay in the place it was placed until any player remove it, even after server restart 10 | 11 | # Installation 12 | https://mt-scripts.dev/speakers 13 | 14 | # Dependicies 15 | - ox_target 16 | - qbx_core 17 | - ox_inventory 18 | - xsound 19 | 20 | # Disclaimer 21 | Based on Rockstar & CFX Terms of Service, the use of streaming content like youtube is not allowed, so it's totally your **responsability** to use this script!! 22 |
23 | (This is the why this script is no longer on our store and was made public for everyone now!) 24 | -------------------------------------------------------------------------------- /web/src/utils/debugData.ts: -------------------------------------------------------------------------------- 1 | import { isEnvBrowser } from "./misc"; 2 | 3 | interface DebugEvent { 4 | action: string; 5 | data: T; 6 | } 7 | 8 | /** 9 | * Emulates dispatching an event using SendNuiMessage in the lua scripts. 10 | * This is used when developing in browser 11 | * 12 | * @param events - The event you want to cover 13 | * @param timer - How long until it should trigger (ms) 14 | */ 15 | export const debugData =

(events: DebugEvent

[], timer = 1000): void => { 16 | if (import.meta.env.MODE === "development" && isEnvBrowser()) { 17 | for (const event of events) { 18 | setTimeout(() => { 19 | window.dispatchEvent( 20 | new MessageEvent("message", { 21 | data: { 22 | action: event.action, 23 | data: event.data, 24 | }, 25 | }), 26 | ); 27 | }, timer); 28 | } 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /web/src/hooks/useNuiEvent.ts: -------------------------------------------------------------------------------- 1 | import { MutableRefObject, useEffect, useRef } from "react"; 2 | import { noop } from "../utils/misc"; 3 | 4 | interface NuiMessageData { 5 | action: string; 6 | data: T; 7 | } 8 | 9 | type NuiHandlerSignature = (data: T) => void; 10 | 11 | export const useNuiEvent = ( 12 | action: string, 13 | handler: (data: T) => void, 14 | ) => { 15 | const savedHandler: MutableRefObject> = useRef(noop); 16 | 17 | useEffect(() => { 18 | savedHandler.current = handler; 19 | }, [handler]); 20 | 21 | useEffect(() => { 22 | const eventListener = (event: MessageEvent>) => { 23 | const { action: eventAction, data } = event.data; 24 | 25 | if (savedHandler.current) { 26 | if (eventAction === action) { 27 | savedHandler.current(data); 28 | } 29 | } 30 | }; 31 | 32 | window.addEventListener("message", eventListener); 33 | return () => window.removeEventListener("message", eventListener); 34 | }, [action]); 35 | }; -------------------------------------------------------------------------------- /locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "textui_place": "[SCROLL] - Rotação \n[SHIFT + SCROLL] - Distância \n[ENTER] - Colocar \n[BACKSPACE] - Cancelar", 3 | 4 | "target_interact": "Usar", 5 | "target_pickup": "Apanhar", 6 | 7 | "notify_already_pickedup": "Alguém já está a pegar essa coluna..", 8 | 9 | "ui_playing": "A tocar", 10 | "ui_musics": "Musicas", 11 | "ui_accesses": "Acessos", 12 | "ui_music_url": "URL da música", 13 | "ui_url_description": "Apenas linkd o youtube", 14 | "ui_resume": "Resumir", 15 | "ui_pause": "Pausar", 16 | "ui_change": "Alterar", 17 | "ui_volume": "Volume", 18 | "ui_distance": "Distância", 19 | "ui_update": "Atualizar volume e distância", 20 | "ui_play": "Tocar", 21 | "ui_delete": "Eliminar", 22 | "ui_no_musics": "Sem músicas", 23 | "ui_music_label": "Nome da música", 24 | "ui_label_description": "O nome que vai identificar a música", 25 | "ui_add_music": "Adicionar música", 26 | "ui_players_added": "Players adicionados", 27 | "ui_remove": "Remover", 28 | "ui_no_players": "Sem players", 29 | "ui_add_player": "Adicionar", 30 | "ui_no_players_close": "Nenhum player perto", 31 | "ui_players_close": "Players perto" 32 | } -------------------------------------------------------------------------------- /locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "textui_place": "[SCROLL] - Speaker Rotation \n[SHIFT + SCROLL] - Speaker distance \n[ENTER] - Place speaker \n[BACKSPACE] - Cancel placement", 3 | 4 | "target_interact": "Use", 5 | "target_pickup": "Pick up", 6 | 7 | "notify_already_pickedup": "Someone is already picking it up..", 8 | 9 | "ui_playing": "Playing", 10 | "ui_musics": "Musics", 11 | "ui_accesses": "Accesses", 12 | "ui_music_url": "Music URL", 13 | "ui_url_description": "Only youtube URLs are supported", 14 | "ui_resume": "Resume", 15 | "ui_pause": "Pause", 16 | "ui_change": "Change", 17 | "ui_volume": "Volume", 18 | "ui_distance": "Distance", 19 | "ui_update": "Update volume and distance", 20 | "ui_play": "Play", 21 | "ui_delete": "Delete", 22 | "ui_no_musics": "No musics added", 23 | "ui_music_label": "Music label", 24 | "ui_label_description": "Name to identify the music", 25 | "ui_add_music": "Add music", 26 | "ui_players_added": "Players added", 27 | "ui_remove": "Remove", 28 | "ui_no_players": "No players added", 29 | "ui_add_player": "Add", 30 | "ui_no_players_close": "No players close", 31 | "ui_players_close": "Players close" 32 | } -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "homepage": "web/build", 4 | "private": true, 5 | "type": "module", 6 | "version": "0.1.0", 7 | "scripts": { 8 | "start": "vite", 9 | "start:game": "vite build --watch", 10 | "build": "tsc && vite build", 11 | "preview": "vite preview" 12 | }, 13 | "dependencies": { 14 | "@emotion/react": "^11.11.4", 15 | "@fortawesome/fontawesome-svg-core": "^6.5.2", 16 | "@fortawesome/free-solid-svg-icons": "^6.5.2", 17 | "@fortawesome/react-fontawesome": "^0.2.2", 18 | "@mantine/core": "^6.0.21", 19 | "@mantine/form": "^7.10.1", 20 | "@mantine/hooks": "^6.0.21", 21 | "@mantine/dates": "^6.0.21", 22 | "@mantine/modals": "^6.0.21", 23 | "@mantine/styles": "^6.0.21", 24 | "@tabler/icons-react": "^2.47.0", 25 | "html2canvas": "^1.4.1", 26 | "react": "^18.3.1", 27 | "react-dom": "^18.3.1", 28 | "react-icons": "^5.2.1", 29 | "sass": "^1.77.4", 30 | "styled-components": "^6.1.11" 31 | }, 32 | "devDependencies": { 33 | "@types/node": "^20.14.2", 34 | "@types/react": "^18.3.3", 35 | "@types/react-dom": "^18.3.0", 36 | "@typescript-eslint/eslint-plugin": "^6.21.0", 37 | "@typescript-eslint/parser": "^6.21.0", 38 | "@vitejs/plugin-react": "^4.3.0", 39 | "eslint": "^8.57.0", 40 | "eslint-plugin-react-hooks": "^4.6.2", 41 | "eslint-plugin-react-refresh": "^0.4.7", 42 | "postcss": "^8.4.38", 43 | "postcss-preset-mantine": "^1.15.0", 44 | "postcss-simple-vars": "^7.0.1", 45 | "typescript": "^5.4.5", 46 | "vite": "^5.2.13" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /web/src/providers/VisibilityProvider.tsx: -------------------------------------------------------------------------------- 1 | import React, { createContext, useContext, useEffect, useState } from "react"; 2 | import { useNuiEvent } from "../hooks/useNuiEvent"; 3 | import { fetchNui } from "../utils/fetchNui"; 4 | import { isEnvBrowser } from "../utils/misc"; 5 | 6 | 7 | const VisibilityCtx = createContext(null); 8 | 9 | 10 | interface VisibilityProviderValue { 11 | setVisible: (visible: boolean) => void; 12 | visible: boolean; 13 | } 14 | 15 | export const VisibilityProvider: React.FC<{ 16 | children: React.ReactNode; 17 | componentName: string; 18 | }> = ({ children, componentName }) => { 19 | const [visible, setVisible] = useState(false); 20 | 21 | useNuiEvent(`setVisible${componentName}`, setVisible); 22 | 23 | useEffect(() => { 24 | const keyHandler = (e: KeyboardEvent) => { 25 | if (visible && e.code === "Escape") { 26 | if (!isEnvBrowser()) fetchNui("hideFrame", { name: componentName }); 27 | else setVisible(false); 28 | } 29 | }; 30 | window.addEventListener("keydown", keyHandler); 31 | 32 | return () => window.removeEventListener("keydown", keyHandler); 33 | }, [visible, componentName]); 34 | 35 | return ( 36 | 37 |

38 | {children} 39 |
40 | 41 | ); 42 | }; 43 | 44 | export const useVisibility = () => 45 | useContext( 46 | VisibilityCtx as React.Context 47 | ); -------------------------------------------------------------------------------- /web/src/utils/misc.ts: -------------------------------------------------------------------------------- 1 | export const isEnvBrowser = (): boolean => !(window as any).invokeNative 2 | 3 | export const noop = () => {} 4 | 5 | export const getVehicleImage = async (model: string): Promise => { 6 | const localImagePath = `https://cfx-nui-mt_dealerships/vehiclesImages/${model}.png` 7 | const localImage = new Image() 8 | localImage.src = localImagePath 9 | 10 | return new Promise((resolve) => { 11 | localImage.onload = () => { 12 | resolve(localImagePath) 13 | } 14 | localImage.onerror = async () => { 15 | const websiteImagePath = `https://gta-images.s3.fr-par.scw.cloud/vehicle/${model}.webp` 16 | const websiteImage = new Image() 17 | websiteImage.src = websiteImagePath 18 | 19 | websiteImage.onload = () => { 20 | resolve(websiteImagePath) 21 | } 22 | websiteImage.onerror = () => { 23 | resolve('') 24 | } 25 | } 26 | }) 27 | } 28 | 29 | interface Vehicle { 30 | model: string 31 | name: string 32 | brand: string 33 | price: number 34 | category: string 35 | shop: string 36 | stock?: number 37 | class?: string 38 | seats?: string 39 | weight?: number 40 | } 41 | 42 | type VehiclesArray = { 43 | [key: string]: Vehicle[] 44 | } 45 | 46 | export const sortVehiclesByLowestPrice = (vehiclesArray: VehiclesArray): Vehicle[] => { 47 | const flatArray = Object.values(vehiclesArray).flat() 48 | flatArray.sort((a, b) => a.price - b.price) 49 | return flatArray 50 | } 51 | 52 | export const formatPrice = (amount: number, currency: string): string => { 53 | return Intl.NumberFormat('en-US', { style: 'currency', currency: currency, minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(amount) 54 | } -------------------------------------------------------------------------------- /client/functions.lua: -------------------------------------------------------------------------------- 1 | local Config = lib.load('config') 2 | 3 | ---@param rotation number 4 | ---@return table 5 | rotationToDirection = function(rotation) 6 | local adjustedRotation = { x = (math.pi / 180) * rotation.x, y = (math.pi / 180) * rotation.y, z = (math.pi / 180) * rotation.z } 7 | local direction = { x = -math.sin(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)), y = math.cos(adjustedRotation.z) * math.abs(math.cos(adjustedRotation.x)), z = math.sin(adjustedRotation.x) } 8 | return direction 9 | end 10 | 11 | ---@param distance number 12 | ---@return table 13 | rayCastGamePlayCamera = function(distance) 14 | local cameraRotation = GetGameplayCamRot() 15 | local cameraCoord = GetGameplayCamCoord() 16 | local direction = rotationToDirection(cameraRotation) 17 | local destination = { x = cameraCoord.x + direction.x * distance, y = cameraCoord.y + direction.y * distance, z = cameraCoord.z + direction.z * distance } 18 | local a, b, c, d, e = GetShapeTestResult(StartShapeTestRay(cameraCoord.x, cameraCoord.y, cameraCoord.z, destination.x, destination.y, destination.z, -1, cache.ped, 0)) 19 | return destination 20 | end 21 | 22 | ---@param text string 23 | textUI = function(text) 24 | lib.showTextUI(text) 25 | end 26 | 27 | hideTextUI = function() 28 | lib.hideTextUI() 29 | end 30 | 31 | ---@param message string 32 | ---@param type string 33 | notify = function(message, type) 34 | lib.notify({ description = message, type = type }) 35 | end 36 | 37 | ---@param entity integer 38 | ---@param options table 39 | ---@param distance number 40 | ---@param name string 41 | ---@return unknown 42 | createEntityTarget = function(entity, options, distance, name) 43 | if Config.target == 'ox_target' then 44 | return exports.ox_target:addLocalEntity(entity, options) 45 | elseif Config.target == 'interact' then 46 | return exports.interact:AddLocalEntityInteraction({ entity = entity, name = name, id = name, distance = 1.0, interactDst = 1.0, options = options }) 47 | else 48 | return exports[Config.target]:AddTargetEntity(entity, { name = name, options = options, distance = distance }) 49 | end 50 | end 51 | 52 | ---@param item string 53 | ---@return string 54 | itemName = function(item) 55 | return exports.ox_inventory:Items()[item].label 56 | end -------------------------------------------------------------------------------- /server/main.lua: -------------------------------------------------------------------------------- 1 | local Config = lib.load('config') 2 | local speakers = {} 3 | local pickupStatus = {} 4 | 5 | AddEventHandler('onResourceStop', function(res) 6 | if res == GetCurrentResourceName() then 7 | pickupStatus = {} 8 | end 9 | end) 10 | 11 | MySQL.ready(function() 12 | MySQL.Async.fetchAll('SELECT * FROM `speakers`', {}, function(result) 13 | for _, v in pairs(result) do 14 | speakers[v.id] = { prop = Config.speakers[v.item], item = v.item, location = json.decode(v.location), users = json.decode(v.users) or {}, id = v.id, owner = v.owner } 15 | end 16 | end) 17 | end) 18 | 19 | local updateSpeakers = function() 20 | TriggerClientEvent('mt_speakers:client:updateSpeakers', -1) 21 | end 22 | 23 | ---@param speakerId number 24 | local updateSpeakersById = function(speakerId) 25 | local speakerData = { 26 | item = speakers[speakerId].item, 27 | location = speakers[speakerId].location, 28 | users = speakers[speakerId].users, 29 | id = speakers[speakerId].id, 30 | owner = speakers[speakerId].owner 31 | --exclude 'prop' as it's client-side only 32 | } 33 | TriggerClientEvent('mt_speakers:client:updateSpeakerById', -1, speakerId, speakerData) 34 | end 35 | 36 | local updateSpeakerUsers = function(speakerId) 37 | TriggerClientEvent('mt_speakers:client:updateSpeakerUsers', -1, speakerId, speakers[speakerId].users) 38 | end 39 | 40 | ---@param citizenid string 41 | ---@param speakerId number 42 | ---@return boolean 43 | local getUserAccess = function(citizenid, speakerId) 44 | local userExists = false 45 | if not speakers[speakerId] then return false end 46 | if speakers[speakerId].owner == citizenid then return true end 47 | for _, uv in pairs(speakers[speakerId].users) do 48 | if (uv.citizenid == citizenid) then userExists = true break end 49 | end 50 | return userExists 51 | end 52 | 53 | ---@param speakerId number 54 | local deleteSpeaker = function(speakerId) 55 | TriggerClientEvent('mt_speakers:client:deleteSpeaker', -1, speakerId) 56 | end 57 | 58 | local pickupStatus = {} 59 | 60 | ---@param speakerId number 61 | ---@return boolean 62 | function canPickup(speakerId) 63 | if pickupStatus[speakerId] then 64 | return false 65 | end 66 | pickupStatus[speakerId] = true 67 | return true 68 | end 69 | 70 | ---@param speakerId number 71 | function releasePickup(speakerId) 72 | pickupStatus[speakerId] = false 73 | end 74 | 75 | lib.callback.register('mt_speakers:server:getUserAccess', function(source, speakerId) 76 | local src = source 77 | local Player = exports.qbx_core:GetPlayer(src) 78 | local citizenid = Player.PlayerData.citizenid 79 | return getUserAccess(citizenid, speakerId) 80 | end) 81 | 82 | ---@param source number 83 | ---@param speaker string 84 | ---@param coords any 85 | ---@param heading number 86 | ---@return boolean 87 | lib.callback.register('mt_speakers:server:placeSpeaker', function(source, speaker, coords, heading) 88 | local src = source 89 | local Player = exports.qbx_core:GetPlayer(src) 90 | coords = vec4(coords.x, coords.y, coords.z, heading) 91 | MySQL.insert('INSERT INTO `speakers` (item, location, users, owner) VALUES (?, ?, ?, ?)', { 92 | speaker, json.encode(coords), json.encode({}), Player.PlayerData.citizenid 93 | }, function(id) 94 | speakers[id] = { prop = Config.speakers[speaker], item = speaker, location = coords, users = {}, id = id, owner = Player.PlayerData.citizenid } 95 | updateSpeakers() 96 | end) 97 | return true 98 | end) 99 | 100 | lib.callback.register('mt_speakers:server:getSpeakers', function() 101 | return speakers 102 | end) 103 | 104 | lib.callback.register('mt_speakers:server:deleteSpeaker', function(source, speakerId) 105 | if not speakers[speakerId] then 106 | return false, 'Speaker não encontrado.' 107 | end 108 | 109 | if not canPickup(speakerId) then 110 | return false, 'Alguém já está pegando esse speaker.' 111 | end 112 | 113 | exports.xsound:Destroy(-1, 'speaker_'..speakerId) 114 | 115 | MySQL.Async.execute('DELETE FROM `speakers` WHERE `id` = ?', { speakerId }, function(rowsChanged) 116 | if rowsChanged > 0 then 117 | speakers[speakerId] = nil 118 | deleteSpeaker(speakerId) 119 | end 120 | releasePickup(speakerId) 121 | end) 122 | 123 | return true 124 | end) 125 | 126 | lib.callback.register('mt_speakers:server:songActions', function(source, data) 127 | if data.action == 'update' then 128 | exports.xsound:setVolume(-1, 'speaker_'..data.speakerId, (data.volume / 100)) 129 | exports.xsound:Distance(-1, 'speaker_'..data.speakerId, data.distance) 130 | elseif data.action == 'resume' then 131 | exports.xsound:Resume(-1, 'speaker_'..data.speakerId) 132 | elseif data.action == 'pause' then 133 | exports.xsound:Pause(-1, 'speaker_'..data.speakerId) 134 | else 135 | local coords = speakers[data.speakerId].location 136 | exports.xsound:PlayUrlPos(-1, 'speaker_'..data.speakerId, data.url, (Config.speakers[speakers[data.speakerId].item].maxVol / 200), vec3(coords.x, coords.y, coords.z), false) 137 | exports.xsound:Distance(-1, 'speaker_'..data.speakerId, (Config.speakers[speakers[data.speakerId].item].maxDist / 2)) 138 | end 139 | return data.speakerId, speakers[data.speakerId].item 140 | end) 141 | 142 | lib.callback.register('mt_speakers:server:getPlayerMusics', function(source) 143 | local Player = exports.qbx_core:GetPlayer(source) 144 | local citizenid = Player.PlayerData.citizenid 145 | return MySQL.query.await('SELECT * FROM `speakers_musics` WHERE `citizenid` = ?', { citizenid }) 146 | end) 147 | 148 | lib.callback.register('mt_speakers:server:addMusic', function(source, data) 149 | local Player = exports.qbx_core:GetPlayer(source) 150 | local citizenid = Player.PlayerData.citizenid 151 | MySQL.insert('INSERT INTO `speakers_musics` (citizenid, label, url) VALUES (?, ?, ?)', { citizenid, data.label, data.url }) 152 | return true 153 | end) 154 | 155 | lib.callback.register('mt_speakers:server:deleteMusic', function(source, id) 156 | MySQL.Async.execute('DELETE FROM `speakers_musics` WHERE `musicId` = ?', { id }) 157 | return true 158 | end) 159 | 160 | lib.callback.register('mt_speakers:server:getCloseUsers', function(source, speakerId) 161 | local closePlayers = {} 162 | for _, v in pairs(exports.qbx_core:GetQBPlayers()) do 163 | if not v then goto continue end 164 | if getUserAccess(v.PlayerData.citizenid, speakerId) then goto continue end 165 | closePlayers[#closePlayers+1] = { id = v.PlayerData.source, citizenid = v.PlayerData.citizenid, name = v.PlayerData.charinfo.firstname..' '..v.PlayerData.charinfo.lastname } 166 | :: continue :: 167 | end 168 | return closePlayers 169 | end) 170 | 171 | lib.callback.register('mt_speakers:server:addAccess', function(source, user, speakerId) 172 | local users = MySQL.query.await('SELECT users FROM `speakers` WHERE `id` = ?', { speakerId }) 173 | users = json.decode(users[1].users) 174 | if not users then users = {} end 175 | users[#users+1] = user 176 | speakers[speakerId].users = users 177 | updateSpeakerUsers(speakerId) -- Use specific update instead of full sync 178 | MySQL.update.await('UPDATE speakers SET `users` = ? WHERE id = ?', { json.encode(users), speakerId }) 179 | return true 180 | end) 181 | 182 | lib.callback.register('mt_speakers:server:removeAccess', function(source, user, speakerId) 183 | local users = MySQL.query.await('SELECT users FROM `speakers` WHERE `id` = ?', { speakerId }) 184 | users = json.decode(users[1].users) 185 | if not users then users = {} end 186 | for uk, uv in pairs(users) do 187 | if uv.citizenid == user.citizenid then users[uk] = nil end 188 | end 189 | speakers[speakerId].users = users 190 | updateSpeakerUsers(speakerId) -- Use specific update instead of full sync 191 | MySQL.update.await('UPDATE speakers SET `users` = ? WHERE id = ?', { json.encode(users), speakerId }) 192 | return true 193 | end) 194 | 195 | lib.callback.register('mt_speakers:server:itemActions', function(source, speaker, action) 196 | local src = source 197 | 198 | local isSpeakerItem = false 199 | for item, _ in pairs(Config.speakers) do 200 | if item == speaker then 201 | isSpeakerItem = true 202 | break 203 | end 204 | end 205 | if not isSpeakerItem then return end 206 | 207 | if action == 'remove' then 208 | exports.ox_inventory:RemoveItem(src, speaker, 1) 209 | else 210 | exports.ox_inventory:AddItem(src, speaker, 1) 211 | end 212 | end) -------------------------------------------------------------------------------- /client/main.lua: -------------------------------------------------------------------------------- 1 | local Config = lib.load('config') 2 | lib.locale() 3 | local clSpeakers = {} 4 | 5 | ---@param data any 6 | ---@param item any 7 | local useSpeaker = function(data, item) 8 | textUI(locale('textui_place')) 9 | Player(cache.serverId).state:set('speakerInteracting', true, true) 10 | lib.callback.await('mt_speakers:server:itemActions', false, item.name, 'remove') 11 | local prop = CreateObject(GetHashKey(Config.speakers[item.name].prop), 0, 0, 0, false, false, false) 12 | local heading = GetEntityHeading(prop) 13 | SetEntityAlpha(prop, 150, false) 14 | SetEntityCollision(prop, false, false) 15 | SetEntityDrawOutline(prop, true) 16 | SetEntityDrawOutlineColor(prop, 255, 255, 255) 17 | 18 | CreateThread(function() 19 | local distance = 3.0 20 | while true do 21 | Wait(0) 22 | local coords = rayCastGamePlayCamera(distance) 23 | SetEntityCoords(prop, coords.x, coords.y, coords.z, heading, false, false, false) 24 | PlaceObjectOnGroundProperly(prop) 25 | SetEntityHeading(prop, heading) 26 | 27 | if IsControlPressed(0, 21) then 28 | if IsControlJustPressed(0, 15) then 29 | if distance < 10.0 then distance += 0.2 end 30 | elseif IsControlJustPressed(0, 14) then 31 | if distance > 0.0 then distance -= 0.2 end 32 | end 33 | else 34 | if IsControlPressed(0, 15) then 35 | heading += 1.0 36 | elseif IsControlPressed(0, 14) then 37 | heading -= 1.0 38 | end 39 | end 40 | 41 | if IsControlJustPressed(0, 176) then 42 | DeleteObject(prop) 43 | DeleteEntity(prop) 44 | hideTextUI() 45 | lib.callback.await('mt_speakers:server:placeSpeaker', false, item.name, coords, heading) 46 | break 47 | elseif IsControlJustPressed(0, 177) then 48 | DeleteObject(prop) 49 | DeleteEntity(prop) 50 | hideTextUI() 51 | lib.callback.await('mt_speakers:server:itemActions', false, item.name, 'add') 52 | break 53 | end 54 | end 55 | end) 56 | end 57 | exports("useSpeaker", useSpeaker) 58 | lib.callback.register("useSpeaker", useSpeaker) 59 | 60 | ---@param speaker string 61 | ---@param speakerId number 62 | local updateSpeakerSettings = function(speaker, speakerId) 63 | SendNUIMessage({ 64 | action = 'setSpeakerSettings', 65 | data = { 66 | speakerId = speakerId, 67 | speakerName = itemName(speaker) .. ' ' .. speakerId, 68 | maxVolume = Config.speakers[speaker].maxVol, 69 | maxDistance = Config.speakers[speaker].maxDist, 70 | musicPlaying = exports.xsound:soundExists('speaker_'..speakerId) or false, 71 | volume = exports.xsound:soundExists('speaker_'..speakerId) and (exports.xsound:getInfo('speaker_'..speakerId).volume * 100) or 0, 72 | distance = exports.xsound:soundExists('speaker_'..speakerId) and exports.xsound:getInfo('speaker_'..speakerId).distance or 0, 73 | isPaused = exports.xsound:soundExists('speaker_'..speakerId) and exports.xsound:getInfo('speaker_'..speakerId).paused or false, 74 | locales = json.decode(LoadResourceFile(cache.resource, ('locales/%s.json'):format(Config.locale or 'en'))) 75 | } 76 | }) 77 | end 78 | 79 | ---@param coords vector 80 | ---@param distance number 81 | ---@return table 82 | local getPlayersFromCoords = function(coords, distance) 83 | coords = type(coords) == 'table' and vec3(coords.x, coords.y, coords.z) or coords or GetEntityCoords(cache.ped) 84 | local players = lib.getNearbyPlayers(coords, distance or 5, true) 85 | for i = 1, #players do players[i] = players[i].id end 86 | return players 87 | end 88 | 89 | ---@param speakerId number 90 | local updateSpeakerAccesses = function(speakerId) 91 | local closePlayers = lib.callback.await('mt_speakers:server:getCloseUsers', false, speakerId) 92 | 93 | for _, v in pairs(getPlayersFromCoords(GetEntityCoords(cache.ped), 100.0)) do 94 | local dist = #(GetEntityCoords(GetPlayerPed(v)) - GetEntityCoords(cache.ped)) 95 | for i = 1, #closePlayers do 96 | if (not closePlayers[i].id == GetPlayerServerId(v)) then closePlayers[i] = nil end 97 | end 98 | end 99 | 100 | SendNUIMessage({ 101 | action = 'setSpeakerAccesses', 102 | data = { 103 | users = clSpeakers[speakerId].users, 104 | close = closePlayers 105 | } 106 | }) 107 | end 108 | 109 | local updateSpeakerMusics = function() 110 | local musics = lib.callback.await('mt_speakers:server:getPlayerMusics') 111 | SendNUIMessage({ action = 'setSpeakersSongs', data = musics }) 112 | end 113 | 114 | ---@param speaker string 115 | ---@param speakerId number 116 | local openSpeakerUI = function(speaker, speakerId) 117 | updateSpeakerSettings(speaker, speakerId) 118 | updateSpeakerMusics() 119 | updateSpeakerAccesses(speakerId) 120 | SetNuiFocus(true, true) 121 | SendNUIMessage({ action = 'setVisibleSpeakersMenu', data = true }) 122 | end 123 | 124 | ---@param speakerId number 125 | local deleteSpeaker = function(speakerId) 126 | Player(cache.serverId).state:set('speakerInteracting', true, true) 127 | 128 | local success = lib.callback.await('mt_speakers:server:deleteSpeaker', false, speakerId) 129 | 130 | if not success then 131 | notify(locale('notify_already_pickedup'), 'error') 132 | else 133 | lib.callback.await('mt_speakers:server:itemActions', false, clSpeakers[speakerId].item, 'add') 134 | end 135 | 136 | Player(cache.serverId).state:set('speakerInteracting', false, true) 137 | end 138 | 139 | local spawnAllSpeakers = function() 140 | local speakers = lib.callback.await('mt_speakers:server:getSpeakers') 141 | for _, v in pairs(speakers) do 142 | if clSpeakers[v.id] then goto continue end 143 | local prop = CreateObject(GetHashKey(Config.speakers[v.item].prop), v.location.x, v.location.y, v.location.z, false, false, false) 144 | SetEntityHeading(prop, v.location.w) 145 | PlaceObjectOnGroundProperly(prop) 146 | Wait(200) 147 | FreezeEntityPosition(prop, true) 148 | createEntityTarget(prop, { 149 | { 150 | label = locale('target_interact'), 151 | icon = 'fas fa-music', 152 | onSelect = function() 153 | openSpeakerUI(v.item, v.id) 154 | end, 155 | canInteract = function() 156 | return lib.callback.await('mt_speakers:server:getUserAccess', false, v.id) 157 | end 158 | }, 159 | { 160 | label = locale('target_pickup'), 161 | icon = 'fas fa-hand-paper', 162 | onSelect = function() 163 | deleteSpeaker(v.id) 164 | end, 165 | canInteract = function() 166 | return lib.callback.await('mt_speakers:server:getUserAccess', false, v.id) 167 | end 168 | } 169 | }, 2.5, 'speaker_' .. v.id) 170 | clSpeakers[v.id] = { prop = prop, item = v.item, location = v.location, users = v.users } 171 | :: continue :: 172 | end 173 | end 174 | 175 | local despawnAllSpeakers = function() 176 | for _, v in pairs(clSpeakers) do 177 | DeleteObject(v.prop) 178 | DeleteEntity(v.prop) 179 | end 180 | clSpeakers = {} 181 | end 182 | 183 | RegisterNetEvent('mt_speakers:client:updateSpeakerById', function(speakerId, speaker) 184 | -- Preserve the existing prop entity handle if it exists 185 | local existingProp = clSpeakers[speakerId] and clSpeakers[speakerId].prop or nil 186 | 187 | -- Update the speaker data but keep the client-side prop 188 | clSpeakers[speakerId] = speaker 189 | 190 | -- Restore the prop entity handle (server doesn't have this) 191 | if existingProp and type(existingProp) == 'number' then 192 | clSpeakers[speakerId].prop = existingProp 193 | end 194 | 195 | return true 196 | end) 197 | 198 | RegisterNetEvent('mt_speakers:client:updateSpeakerUsers', function(speakerId, users) 199 | if clSpeakers[speakerId] then 200 | clSpeakers[speakerId].users = users 201 | end 202 | end) 203 | 204 | RegisterNetEvent('mt_speakers:client:deleteSpeaker', function(speakerId) 205 | if not clSpeakers[speakerId] then return end 206 | 207 | local prop = clSpeakers[speakerId].prop 208 | 209 | -- Handle both number (entity handle) and table (corrupted data) 210 | if type(prop) == 'number' and prop ~= 0 then 211 | local success, exists = pcall(DoesEntityExist, prop) 212 | if success and exists then 213 | pcall(DeleteObject, prop) 214 | Wait(10) 215 | local success2, exists2 = pcall(DoesEntityExist, prop) 216 | if success2 and exists2 then 217 | pcall(DeleteEntity, prop) 218 | end 219 | end 220 | elseif type(prop) == 'table' then 221 | -- Try to clean up if there's an entity reference in the table 222 | if prop.entity and type(prop.entity) == 'number' then 223 | local success, exists = pcall(DoesEntityExist, prop.entity) 224 | if success and exists then 225 | pcall(DeleteObject, prop.entity) 226 | end 227 | end 228 | end 229 | 230 | clSpeakers[speakerId] = nil 231 | end) 232 | 233 | RegisterNetEvent('mt_speakers:client:updateSpeakers', function() 234 | spawnAllSpeakers() 235 | end) 236 | 237 | RegisterNuiCallback('hideFrame', function(data, cb) 238 | SetNuiFocus(false, false) 239 | SendNUIMessage({ action = 'setVisible' .. data.name, data = false }) 240 | SendNUIMessage({ action = 'resetSpeakerSettings' }) 241 | cb(true) 242 | end) 243 | 244 | RegisterNuiCallback('songActions', function(data, cb) 245 | local id, item = lib.callback.await('mt_speakers:server:songActions', false, data) 246 | updateSpeakerSettings(item, id) 247 | cb(true) 248 | end) 249 | 250 | RegisterNuiCallback('addMusic', function(data, cb) 251 | lib.callback.await('mt_speakers:server:addMusic', false, data) 252 | updateSpeakerMusics() 253 | cb(true) 254 | end) 255 | 256 | RegisterNuiCallback('deleteMusic', function(data, cb) 257 | lib.callback.await('mt_speakers:server:deleteMusic', false, data.musicId) 258 | updateSpeakerMusics() 259 | cb(true) 260 | end) 261 | 262 | RegisterNuiCallback('addAccess', function(data, cb) 263 | lib.callback.await('mt_speakers:server:addAccess', false, data.user, data.speakerId) 264 | updateSpeakerAccesses(data.speakerId) 265 | cb(true) 266 | end) 267 | 268 | RegisterNuiCallback('removeAccess', function(data, cb) 269 | lib.callback.await('mt_speakers:server:removeAccess', false, data.user, data.speakerId) 270 | updateSpeakerAccesses(data.speakerId) 271 | cb(true) 272 | end) 273 | 274 | RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() 275 | Wait(500) 276 | spawnAllSpeakers() 277 | end) 278 | 279 | RegisterNetEvent('QBCore:Client:OnPlayerUnload', function() 280 | despawnAllSpeakers() 281 | end) 282 | 283 | AddEventHandler('onResourceStart', function(resourceName) 284 | if GetCurrentResourceName() ~= resourceName then return end 285 | Wait(500) 286 | spawnAllSpeakers() 287 | end) 288 | 289 | AddEventHandler('onResourceStop', function(resourceName) 290 | if GetCurrentResourceName() ~= resourceName then return end 291 | despawnAllSpeakers() 292 | end) -------------------------------------------------------------------------------- /web/src/components/SpeakersMenu.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect, useRef } from "react" 2 | import { DEFAULT_THEME, Divider, Paper, Text, Group, Switch, ScrollArea, ThemeIcon, CloseButton, Tabs, Image, Input, TextInput, Button, ActionIcon, Tooltip, Slider } from '@mantine/core' 3 | import { modals } from '@mantine/modals' 4 | import { fetchNui } from "../utils/fetchNui" 5 | import { useNuiEvent } from "../hooks/useNuiEvent" 6 | import { FaCheck, FaExchangeAlt, FaPause, FaPlay, FaPlus, FaTrashAlt } from "react-icons/fa"; 7 | import { FaXmark } from "react-icons/fa6"; 8 | 9 | interface Musics { 10 | musicId: number, 11 | citizenid: string, 12 | label: string, 13 | url: string 14 | } 15 | 16 | interface Accesses { 17 | citizenid: string, 18 | name: string 19 | } 20 | 21 | const SpeakersMenu: React.FC = () => { 22 | const theme = DEFAULT_THEME; 23 | const url = useRef(''); 24 | const urlAdd = useRef(''); 25 | const labelAdd = useRef(''); 26 | const [speakerId, setSpeakerId] = useState(0); 27 | const [speakerName, setSpeakerName] = useState(''); 28 | const [maxVolume, setMaxVolume] = useState(1); 29 | const [maxDistance, setMaxDistance] = useState(1); 30 | const [volume, setVolume] = useState(0); 31 | const [distance, setDistance] = useState(0); 32 | const [musicPlaying, setMusicPlaying] = useState(false); 33 | const [isPaused, setIsPaused] = useState(false); 34 | const [musics, setMusics] = useState([]); 35 | const [accesses, setAccesses] = useState([]); 36 | const [closePlayers, setClosePlayers] = useState([]); 37 | const [locales, setLocales] = useState({}); 38 | 39 | useNuiEvent('setSpeakerSettings', (data) => { 40 | setLocales(data.locales); 41 | setSpeakerId(data.speakerId); 42 | setSpeakerName(data.speakerName); 43 | setMaxVolume(data.maxVolume); 44 | setMaxDistance(data.maxDistance); 45 | setMusicPlaying(data.musicPlaying); 46 | if (data.musicPlaying) { 47 | setVolume(data.volume); 48 | setDistance(data.distance); 49 | setIsPaused(data.isPaused); 50 | } 51 | }); 52 | 53 | useNuiEvent('resetSpeakerSettings', (data) => { 54 | setSpeakerId(0); 55 | setSpeakerName(''); 56 | setMaxVolume(0); 57 | setMaxDistance(0); 58 | setVolume(0); 59 | setDistance(0); 60 | }); 61 | 62 | useNuiEvent('setSpeakersSongs', (data) => setMusics(data)); 63 | 64 | useNuiEvent('setSpeakerAccesses', (data) => { 65 | setAccesses(data.users); 66 | setClosePlayers(data.close); 67 | }); 68 | 69 | return ( 70 |
71 | 72 | 73 | {speakerName} 74 | fetchNui('hideFrame', { name: 'SpeakersMenu' })} /> 75 | 76 | 77 | 78 | 79 | {locales.ui_playing} 80 | {locales.ui_musics} 81 | {locales.ui_accesses} 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | fetchNui('songActions', { action: 'resume', speakerId: speakerId })}> 91 | 92 | 93 | 94 | 95 | fetchNui('songActions', { action: 'pause', speakerId: speakerId })}> 96 | 97 | 98 | 99 | 100 | { 101 | if (url.current?.value.match(/^(http(s)?:\/\/)?((w){3}.)?youtu(be|.be)?(\.com)?\/.+/gm)) fetchNui('songActions', { action: 'play', speakerId: speakerId, url: url.current?.value }) 102 | }}> 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | {locales.ui_volume} 111 | 112 | 113 | 114 | {locales.ui_distance} 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | {musics.length > 0 ? musics.map(({ musicId, citizenid, label, url: musicUrl }) => ( 124 | 125 | {label} 126 | 127 | 128 | fetchNui('songActions', { action: 'play', speakerId: speakerId, url: musicUrl })}> 129 | 130 | 131 | 132 | 133 | 134 | fetchNui('deleteMusic', { musicId: musicId })}> 135 | 136 | 137 | 138 | 139 | 140 | )) : {locales.ui_no_musics}} 141 | 142 | 143 | 170 | 171 | ) 172 | }) 173 | }}>{locales.ui_add_music} 174 | 175 | 176 | 177 | 178 | {accesses.length > 0 ? accesses.map(({ name, citizenid }) => ( 179 | 180 | {name} ({citizenid}) 181 | 182 | fetchNui('removeAccess', { user: { name, citizenid }, speakerId })}> 183 | 184 | 185 | 186 | 187 | 188 | 189 | )) : {locales.ui_no_players}} 190 | 191 | 192 | {closePlayers.length > 0 ? closePlayers.map(({ name, citizenid }) => ( 193 | 194 | {name} ({citizenid}) 195 | 196 | fetchNui('addAccess', { user: { name, citizenid }, speakerId })}> 197 | 198 | 199 | 200 | 201 | 202 | 203 | )) : {locales.ui_no_players_close}} 204 | 205 | 206 | 207 |
208 | ); 209 | } 210 | 211 | export default SpeakersMenu; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /web/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@emotion/react': 12 | specifier: ^11.11.4 13 | version: 11.11.4(@types/react@18.3.3)(react@18.3.1) 14 | '@fortawesome/fontawesome-svg-core': 15 | specifier: ^6.5.2 16 | version: 6.5.2 17 | '@fortawesome/free-solid-svg-icons': 18 | specifier: ^6.5.2 19 | version: 6.5.2 20 | '@fortawesome/react-fontawesome': 21 | specifier: ^0.2.2 22 | version: 0.2.2(@fortawesome/fontawesome-svg-core@6.5.2)(react@18.3.1) 23 | '@mantine/core': 24 | specifier: ^6.0.21 25 | version: 6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 26 | '@mantine/dates': 27 | specifier: ^6.0.21 28 | version: 6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(dayjs@1.11.11)(react@18.3.1) 29 | '@mantine/form': 30 | specifier: ^7.10.1 31 | version: 7.10.1(react@18.3.1) 32 | '@mantine/hooks': 33 | specifier: ^6.0.21 34 | version: 6.0.21(react@18.3.1) 35 | '@mantine/modals': 36 | specifier: ^6.0.21 37 | version: 6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 38 | '@mantine/styles': 39 | specifier: ^6.0.21 40 | version: 6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 41 | '@tabler/icons-react': 42 | specifier: ^2.47.0 43 | version: 2.47.0(react@18.3.1) 44 | html2canvas: 45 | specifier: ^1.4.1 46 | version: 1.4.1 47 | react: 48 | specifier: ^18.3.1 49 | version: 18.3.1 50 | react-dom: 51 | specifier: ^18.3.1 52 | version: 18.3.1(react@18.3.1) 53 | react-icons: 54 | specifier: ^5.2.1 55 | version: 5.2.1(react@18.3.1) 56 | sass: 57 | specifier: ^1.77.4 58 | version: 1.77.4 59 | styled-components: 60 | specifier: ^6.1.11 61 | version: 6.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 62 | devDependencies: 63 | '@types/node': 64 | specifier: ^20.14.2 65 | version: 20.14.2 66 | '@types/react': 67 | specifier: ^18.3.3 68 | version: 18.3.3 69 | '@types/react-dom': 70 | specifier: ^18.3.0 71 | version: 18.3.0 72 | '@typescript-eslint/eslint-plugin': 73 | specifier: ^6.21.0 74 | version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) 75 | '@typescript-eslint/parser': 76 | specifier: ^6.21.0 77 | version: 6.21.0(eslint@8.57.0)(typescript@5.4.5) 78 | '@vitejs/plugin-react': 79 | specifier: ^4.3.0 80 | version: 4.3.0(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(sugarss@4.0.1(postcss@8.4.38))) 81 | eslint: 82 | specifier: ^8.57.0 83 | version: 8.57.0 84 | eslint-plugin-react-hooks: 85 | specifier: ^4.6.2 86 | version: 4.6.2(eslint@8.57.0) 87 | eslint-plugin-react-refresh: 88 | specifier: ^0.4.7 89 | version: 0.4.7(eslint@8.57.0) 90 | postcss: 91 | specifier: ^8.4.38 92 | version: 8.4.38 93 | postcss-preset-mantine: 94 | specifier: ^1.15.0 95 | version: 1.15.0(postcss@8.4.38) 96 | postcss-simple-vars: 97 | specifier: ^7.0.1 98 | version: 7.0.1(postcss@8.4.38) 99 | typescript: 100 | specifier: ^5.4.5 101 | version: 5.4.5 102 | vite: 103 | specifier: ^5.2.13 104 | version: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(sugarss@4.0.1(postcss@8.4.38)) 105 | 106 | packages: 107 | 108 | '@ampproject/remapping@2.3.0': 109 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 110 | engines: {node: '>=6.0.0'} 111 | 112 | '@babel/code-frame@7.24.7': 113 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 114 | engines: {node: '>=6.9.0'} 115 | 116 | '@babel/compat-data@7.24.7': 117 | resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} 118 | engines: {node: '>=6.9.0'} 119 | 120 | '@babel/core@7.24.7': 121 | resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} 122 | engines: {node: '>=6.9.0'} 123 | 124 | '@babel/generator@7.24.7': 125 | resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} 126 | engines: {node: '>=6.9.0'} 127 | 128 | '@babel/helper-compilation-targets@7.24.7': 129 | resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} 130 | engines: {node: '>=6.9.0'} 131 | 132 | '@babel/helper-environment-visitor@7.24.7': 133 | resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} 134 | engines: {node: '>=6.9.0'} 135 | 136 | '@babel/helper-function-name@7.24.7': 137 | resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} 138 | engines: {node: '>=6.9.0'} 139 | 140 | '@babel/helper-hoist-variables@7.24.7': 141 | resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} 142 | engines: {node: '>=6.9.0'} 143 | 144 | '@babel/helper-module-imports@7.24.7': 145 | resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} 146 | engines: {node: '>=6.9.0'} 147 | 148 | '@babel/helper-module-transforms@7.24.7': 149 | resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} 150 | engines: {node: '>=6.9.0'} 151 | peerDependencies: 152 | '@babel/core': ^7.0.0 153 | 154 | '@babel/helper-plugin-utils@7.24.7': 155 | resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} 156 | engines: {node: '>=6.9.0'} 157 | 158 | '@babel/helper-simple-access@7.24.7': 159 | resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} 160 | engines: {node: '>=6.9.0'} 161 | 162 | '@babel/helper-split-export-declaration@7.24.7': 163 | resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} 164 | engines: {node: '>=6.9.0'} 165 | 166 | '@babel/helper-string-parser@7.24.7': 167 | resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} 168 | engines: {node: '>=6.9.0'} 169 | 170 | '@babel/helper-validator-identifier@7.24.7': 171 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 172 | engines: {node: '>=6.9.0'} 173 | 174 | '@babel/helper-validator-option@7.24.7': 175 | resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} 176 | engines: {node: '>=6.9.0'} 177 | 178 | '@babel/helpers@7.24.7': 179 | resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} 180 | engines: {node: '>=6.9.0'} 181 | 182 | '@babel/highlight@7.24.7': 183 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 184 | engines: {node: '>=6.9.0'} 185 | 186 | '@babel/parser@7.24.7': 187 | resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} 188 | engines: {node: '>=6.0.0'} 189 | hasBin: true 190 | 191 | '@babel/plugin-transform-react-jsx-self@7.24.7': 192 | resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} 193 | engines: {node: '>=6.9.0'} 194 | peerDependencies: 195 | '@babel/core': ^7.0.0-0 196 | 197 | '@babel/plugin-transform-react-jsx-source@7.24.7': 198 | resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} 199 | engines: {node: '>=6.9.0'} 200 | peerDependencies: 201 | '@babel/core': ^7.0.0-0 202 | 203 | '@babel/runtime@7.24.7': 204 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} 205 | engines: {node: '>=6.9.0'} 206 | 207 | '@babel/template@7.24.7': 208 | resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} 209 | engines: {node: '>=6.9.0'} 210 | 211 | '@babel/traverse@7.24.7': 212 | resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} 213 | engines: {node: '>=6.9.0'} 214 | 215 | '@babel/types@7.24.7': 216 | resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} 217 | engines: {node: '>=6.9.0'} 218 | 219 | '@emotion/babel-plugin@11.11.0': 220 | resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} 221 | 222 | '@emotion/cache@11.11.0': 223 | resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} 224 | 225 | '@emotion/hash@0.9.1': 226 | resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} 227 | 228 | '@emotion/is-prop-valid@1.2.2': 229 | resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} 230 | 231 | '@emotion/memoize@0.8.1': 232 | resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} 233 | 234 | '@emotion/react@11.11.4': 235 | resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} 236 | peerDependencies: 237 | '@types/react': '*' 238 | react: '>=16.8.0' 239 | peerDependenciesMeta: 240 | '@types/react': 241 | optional: true 242 | 243 | '@emotion/serialize@1.1.4': 244 | resolution: {integrity: sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==} 245 | 246 | '@emotion/sheet@1.2.2': 247 | resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} 248 | 249 | '@emotion/unitless@0.8.1': 250 | resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} 251 | 252 | '@emotion/use-insertion-effect-with-fallbacks@1.0.1': 253 | resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} 254 | peerDependencies: 255 | react: '>=16.8.0' 256 | 257 | '@emotion/utils@1.2.1': 258 | resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} 259 | 260 | '@emotion/weak-memoize@0.3.1': 261 | resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} 262 | 263 | '@esbuild/aix-ppc64@0.20.2': 264 | resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} 265 | engines: {node: '>=12'} 266 | cpu: [ppc64] 267 | os: [aix] 268 | 269 | '@esbuild/android-arm64@0.20.2': 270 | resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} 271 | engines: {node: '>=12'} 272 | cpu: [arm64] 273 | os: [android] 274 | 275 | '@esbuild/android-arm@0.20.2': 276 | resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} 277 | engines: {node: '>=12'} 278 | cpu: [arm] 279 | os: [android] 280 | 281 | '@esbuild/android-x64@0.20.2': 282 | resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} 283 | engines: {node: '>=12'} 284 | cpu: [x64] 285 | os: [android] 286 | 287 | '@esbuild/darwin-arm64@0.20.2': 288 | resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} 289 | engines: {node: '>=12'} 290 | cpu: [arm64] 291 | os: [darwin] 292 | 293 | '@esbuild/darwin-x64@0.20.2': 294 | resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} 295 | engines: {node: '>=12'} 296 | cpu: [x64] 297 | os: [darwin] 298 | 299 | '@esbuild/freebsd-arm64@0.20.2': 300 | resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} 301 | engines: {node: '>=12'} 302 | cpu: [arm64] 303 | os: [freebsd] 304 | 305 | '@esbuild/freebsd-x64@0.20.2': 306 | resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} 307 | engines: {node: '>=12'} 308 | cpu: [x64] 309 | os: [freebsd] 310 | 311 | '@esbuild/linux-arm64@0.20.2': 312 | resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} 313 | engines: {node: '>=12'} 314 | cpu: [arm64] 315 | os: [linux] 316 | 317 | '@esbuild/linux-arm@0.20.2': 318 | resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} 319 | engines: {node: '>=12'} 320 | cpu: [arm] 321 | os: [linux] 322 | 323 | '@esbuild/linux-ia32@0.20.2': 324 | resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} 325 | engines: {node: '>=12'} 326 | cpu: [ia32] 327 | os: [linux] 328 | 329 | '@esbuild/linux-loong64@0.20.2': 330 | resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} 331 | engines: {node: '>=12'} 332 | cpu: [loong64] 333 | os: [linux] 334 | 335 | '@esbuild/linux-mips64el@0.20.2': 336 | resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} 337 | engines: {node: '>=12'} 338 | cpu: [mips64el] 339 | os: [linux] 340 | 341 | '@esbuild/linux-ppc64@0.20.2': 342 | resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} 343 | engines: {node: '>=12'} 344 | cpu: [ppc64] 345 | os: [linux] 346 | 347 | '@esbuild/linux-riscv64@0.20.2': 348 | resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} 349 | engines: {node: '>=12'} 350 | cpu: [riscv64] 351 | os: [linux] 352 | 353 | '@esbuild/linux-s390x@0.20.2': 354 | resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} 355 | engines: {node: '>=12'} 356 | cpu: [s390x] 357 | os: [linux] 358 | 359 | '@esbuild/linux-x64@0.20.2': 360 | resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} 361 | engines: {node: '>=12'} 362 | cpu: [x64] 363 | os: [linux] 364 | 365 | '@esbuild/netbsd-x64@0.20.2': 366 | resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} 367 | engines: {node: '>=12'} 368 | cpu: [x64] 369 | os: [netbsd] 370 | 371 | '@esbuild/openbsd-x64@0.20.2': 372 | resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} 373 | engines: {node: '>=12'} 374 | cpu: [x64] 375 | os: [openbsd] 376 | 377 | '@esbuild/sunos-x64@0.20.2': 378 | resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} 379 | engines: {node: '>=12'} 380 | cpu: [x64] 381 | os: [sunos] 382 | 383 | '@esbuild/win32-arm64@0.20.2': 384 | resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} 385 | engines: {node: '>=12'} 386 | cpu: [arm64] 387 | os: [win32] 388 | 389 | '@esbuild/win32-ia32@0.20.2': 390 | resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} 391 | engines: {node: '>=12'} 392 | cpu: [ia32] 393 | os: [win32] 394 | 395 | '@esbuild/win32-x64@0.20.2': 396 | resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} 397 | engines: {node: '>=12'} 398 | cpu: [x64] 399 | os: [win32] 400 | 401 | '@eslint-community/eslint-utils@4.4.0': 402 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 403 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 404 | peerDependencies: 405 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 406 | 407 | '@eslint-community/regexpp@4.10.1': 408 | resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} 409 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 410 | 411 | '@eslint/eslintrc@2.1.4': 412 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 413 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 414 | 415 | '@eslint/js@8.57.0': 416 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 417 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 418 | 419 | '@floating-ui/core@1.6.2': 420 | resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} 421 | 422 | '@floating-ui/dom@1.6.5': 423 | resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} 424 | 425 | '@floating-ui/react-dom@1.3.0': 426 | resolution: {integrity: sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==} 427 | peerDependencies: 428 | react: '>=16.8.0' 429 | react-dom: '>=16.8.0' 430 | 431 | '@floating-ui/react@0.19.2': 432 | resolution: {integrity: sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w==} 433 | peerDependencies: 434 | react: '>=16.8.0' 435 | react-dom: '>=16.8.0' 436 | 437 | '@floating-ui/utils@0.2.2': 438 | resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} 439 | 440 | '@fortawesome/fontawesome-common-types@6.5.2': 441 | resolution: {integrity: sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==} 442 | engines: {node: '>=6'} 443 | 444 | '@fortawesome/fontawesome-svg-core@6.5.2': 445 | resolution: {integrity: sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==} 446 | engines: {node: '>=6'} 447 | 448 | '@fortawesome/free-solid-svg-icons@6.5.2': 449 | resolution: {integrity: sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==} 450 | engines: {node: '>=6'} 451 | 452 | '@fortawesome/react-fontawesome@0.2.2': 453 | resolution: {integrity: sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==} 454 | peerDependencies: 455 | '@fortawesome/fontawesome-svg-core': ~1 || ~6 456 | react: '>=16.3' 457 | 458 | '@humanwhocodes/config-array@0.11.14': 459 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 460 | engines: {node: '>=10.10.0'} 461 | 462 | '@humanwhocodes/module-importer@1.0.1': 463 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 464 | engines: {node: '>=12.22'} 465 | 466 | '@humanwhocodes/object-schema@2.0.3': 467 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 468 | 469 | '@jridgewell/gen-mapping@0.3.5': 470 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 471 | engines: {node: '>=6.0.0'} 472 | 473 | '@jridgewell/resolve-uri@3.1.2': 474 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 475 | engines: {node: '>=6.0.0'} 476 | 477 | '@jridgewell/set-array@1.2.1': 478 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 479 | engines: {node: '>=6.0.0'} 480 | 481 | '@jridgewell/sourcemap-codec@1.4.15': 482 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 483 | 484 | '@jridgewell/trace-mapping@0.3.25': 485 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 486 | 487 | '@mantine/core@6.0.21': 488 | resolution: {integrity: sha512-Kx4RrRfv0I+cOCIcsq/UA2aWcYLyXgW3aluAuW870OdXnbII6qg7RW28D+r9D76SHPxWFKwIKwmcucAG08Divg==} 489 | peerDependencies: 490 | '@mantine/hooks': 6.0.21 491 | react: '>=16.8.0' 492 | react-dom: '>=16.8.0' 493 | 494 | '@mantine/dates@6.0.21': 495 | resolution: {integrity: sha512-nSX7MxNkHyyDJqEJOT7Wg930jBfgWz+3pnoWo601cYDvFjh5GgcRz66v36rnMJFK1/56k5G9rWzUOzuM94j6hg==} 496 | peerDependencies: 497 | '@mantine/core': 6.0.21 498 | '@mantine/hooks': 6.0.21 499 | dayjs: '>=1.0.0' 500 | react: '>=16.8.0' 501 | 502 | '@mantine/form@7.10.1': 503 | resolution: {integrity: sha512-mZwzg4GEWKEDKEIZu9FmSpGFzYYhFD2YArVOXUM0MMciUqX7yxSCon1PaPJxrV8ldc6FE+JLVI2+G2KVxJ3ZXA==} 504 | peerDependencies: 505 | react: ^18.2.0 506 | 507 | '@mantine/hooks@6.0.21': 508 | resolution: {integrity: sha512-sYwt5wai25W6VnqHbS5eamey30/HD5dNXaZuaVEAJ2i2bBv8C0cCiczygMDpAFiSYdXoSMRr/SZ2CrrPTzeNew==} 509 | peerDependencies: 510 | react: '>=16.8.0' 511 | 512 | '@mantine/modals@6.0.21': 513 | resolution: {integrity: sha512-Gx2D/ZHMUuYF197JKMWey4K9FeGP9rxYp4lmAEXUrjXiST2fEhLZOdiD75KuOHXd1/sYAU9NcNRo9wXrlF/gUA==} 514 | peerDependencies: 515 | '@mantine/core': 6.0.21 516 | '@mantine/hooks': 6.0.21 517 | react: '>=16.8.0' 518 | react-dom: '>=16.8.0' 519 | 520 | '@mantine/styles@6.0.21': 521 | resolution: {integrity: sha512-PVtL7XHUiD/B5/kZ/QvZOZZQQOj12QcRs3Q6nPoqaoPcOX5+S7bMZLMH0iLtcGq5OODYk0uxlvuJkOZGoPj8Mg==} 522 | peerDependencies: 523 | '@emotion/react': '>=11.9.0' 524 | react: '>=16.8.0' 525 | react-dom: '>=16.8.0' 526 | 527 | '@mantine/utils@6.0.21': 528 | resolution: {integrity: sha512-33RVDRop5jiWFao3HKd3Yp7A9mEq4HAJxJPTuYm1NkdqX6aTKOQK7wT8v8itVodBp+sb4cJK6ZVdD1UurK/txQ==} 529 | peerDependencies: 530 | react: '>=16.8.0' 531 | 532 | '@nodelib/fs.scandir@2.1.5': 533 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 534 | engines: {node: '>= 8'} 535 | 536 | '@nodelib/fs.stat@2.0.5': 537 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 538 | engines: {node: '>= 8'} 539 | 540 | '@nodelib/fs.walk@1.2.8': 541 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 542 | engines: {node: '>= 8'} 543 | 544 | '@radix-ui/number@1.0.0': 545 | resolution: {integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==} 546 | 547 | '@radix-ui/primitive@1.0.0': 548 | resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} 549 | 550 | '@radix-ui/react-compose-refs@1.0.0': 551 | resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} 552 | peerDependencies: 553 | react: ^16.8 || ^17.0 || ^18.0 554 | 555 | '@radix-ui/react-context@1.0.0': 556 | resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} 557 | peerDependencies: 558 | react: ^16.8 || ^17.0 || ^18.0 559 | 560 | '@radix-ui/react-direction@1.0.0': 561 | resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} 562 | peerDependencies: 563 | react: ^16.8 || ^17.0 || ^18.0 564 | 565 | '@radix-ui/react-presence@1.0.0': 566 | resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} 567 | peerDependencies: 568 | react: ^16.8 || ^17.0 || ^18.0 569 | react-dom: ^16.8 || ^17.0 || ^18.0 570 | 571 | '@radix-ui/react-primitive@1.0.1': 572 | resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} 573 | peerDependencies: 574 | react: ^16.8 || ^17.0 || ^18.0 575 | react-dom: ^16.8 || ^17.0 || ^18.0 576 | 577 | '@radix-ui/react-scroll-area@1.0.2': 578 | resolution: {integrity: sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg==} 579 | peerDependencies: 580 | react: ^16.8 || ^17.0 || ^18.0 581 | react-dom: ^16.8 || ^17.0 || ^18.0 582 | 583 | '@radix-ui/react-slot@1.0.1': 584 | resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} 585 | peerDependencies: 586 | react: ^16.8 || ^17.0 || ^18.0 587 | 588 | '@radix-ui/react-use-callback-ref@1.0.0': 589 | resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} 590 | peerDependencies: 591 | react: ^16.8 || ^17.0 || ^18.0 592 | 593 | '@radix-ui/react-use-layout-effect@1.0.0': 594 | resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} 595 | peerDependencies: 596 | react: ^16.8 || ^17.0 || ^18.0 597 | 598 | '@rollup/rollup-android-arm-eabi@4.18.0': 599 | resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} 600 | cpu: [arm] 601 | os: [android] 602 | 603 | '@rollup/rollup-android-arm64@4.18.0': 604 | resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} 605 | cpu: [arm64] 606 | os: [android] 607 | 608 | '@rollup/rollup-darwin-arm64@4.18.0': 609 | resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} 610 | cpu: [arm64] 611 | os: [darwin] 612 | 613 | '@rollup/rollup-darwin-x64@4.18.0': 614 | resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} 615 | cpu: [x64] 616 | os: [darwin] 617 | 618 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 619 | resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} 620 | cpu: [arm] 621 | os: [linux] 622 | 623 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 624 | resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} 625 | cpu: [arm] 626 | os: [linux] 627 | 628 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 629 | resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} 630 | cpu: [arm64] 631 | os: [linux] 632 | 633 | '@rollup/rollup-linux-arm64-musl@4.18.0': 634 | resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} 635 | cpu: [arm64] 636 | os: [linux] 637 | 638 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 639 | resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} 640 | cpu: [ppc64] 641 | os: [linux] 642 | 643 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 644 | resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} 645 | cpu: [riscv64] 646 | os: [linux] 647 | 648 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 649 | resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} 650 | cpu: [s390x] 651 | os: [linux] 652 | 653 | '@rollup/rollup-linux-x64-gnu@4.18.0': 654 | resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} 655 | cpu: [x64] 656 | os: [linux] 657 | 658 | '@rollup/rollup-linux-x64-musl@4.18.0': 659 | resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} 660 | cpu: [x64] 661 | os: [linux] 662 | 663 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 664 | resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} 665 | cpu: [arm64] 666 | os: [win32] 667 | 668 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 669 | resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} 670 | cpu: [ia32] 671 | os: [win32] 672 | 673 | '@rollup/rollup-win32-x64-msvc@4.18.0': 674 | resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} 675 | cpu: [x64] 676 | os: [win32] 677 | 678 | '@tabler/icons-react@2.47.0': 679 | resolution: {integrity: sha512-iqly2FvCF/qUbgmvS8E40rVeYY7laltc5GUjRxQj59DuX0x/6CpKHTXt86YlI2whg4czvd/c8Ce8YR08uEku0g==} 680 | peerDependencies: 681 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 682 | 683 | '@tabler/icons@2.47.0': 684 | resolution: {integrity: sha512-4w5evLh+7FUUiA1GucvGj2ReX2TvOjEr4ejXdwL/bsjoSkof6r1gQmzqI+VHrE2CpJpB3al7bCTulOkFa/RcyA==} 685 | 686 | '@types/babel__core@7.20.5': 687 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 688 | 689 | '@types/babel__generator@7.6.8': 690 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 691 | 692 | '@types/babel__template@7.4.4': 693 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 694 | 695 | '@types/babel__traverse@7.20.6': 696 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 697 | 698 | '@types/estree@1.0.5': 699 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 700 | 701 | '@types/json-schema@7.0.15': 702 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 703 | 704 | '@types/node@20.14.2': 705 | resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} 706 | 707 | '@types/parse-json@4.0.2': 708 | resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} 709 | 710 | '@types/prop-types@15.7.12': 711 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 712 | 713 | '@types/react-dom@18.3.0': 714 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 715 | 716 | '@types/react@18.3.3': 717 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 718 | 719 | '@types/semver@7.5.8': 720 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 721 | 722 | '@types/stylis@4.2.5': 723 | resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} 724 | 725 | '@typescript-eslint/eslint-plugin@6.21.0': 726 | resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} 727 | engines: {node: ^16.0.0 || >=18.0.0} 728 | peerDependencies: 729 | '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha 730 | eslint: ^7.0.0 || ^8.0.0 731 | typescript: '*' 732 | peerDependenciesMeta: 733 | typescript: 734 | optional: true 735 | 736 | '@typescript-eslint/parser@6.21.0': 737 | resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} 738 | engines: {node: ^16.0.0 || >=18.0.0} 739 | peerDependencies: 740 | eslint: ^7.0.0 || ^8.0.0 741 | typescript: '*' 742 | peerDependenciesMeta: 743 | typescript: 744 | optional: true 745 | 746 | '@typescript-eslint/scope-manager@6.21.0': 747 | resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} 748 | engines: {node: ^16.0.0 || >=18.0.0} 749 | 750 | '@typescript-eslint/type-utils@6.21.0': 751 | resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} 752 | engines: {node: ^16.0.0 || >=18.0.0} 753 | peerDependencies: 754 | eslint: ^7.0.0 || ^8.0.0 755 | typescript: '*' 756 | peerDependenciesMeta: 757 | typescript: 758 | optional: true 759 | 760 | '@typescript-eslint/types@6.21.0': 761 | resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} 762 | engines: {node: ^16.0.0 || >=18.0.0} 763 | 764 | '@typescript-eslint/typescript-estree@6.21.0': 765 | resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} 766 | engines: {node: ^16.0.0 || >=18.0.0} 767 | peerDependencies: 768 | typescript: '*' 769 | peerDependenciesMeta: 770 | typescript: 771 | optional: true 772 | 773 | '@typescript-eslint/utils@6.21.0': 774 | resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} 775 | engines: {node: ^16.0.0 || >=18.0.0} 776 | peerDependencies: 777 | eslint: ^7.0.0 || ^8.0.0 778 | 779 | '@typescript-eslint/visitor-keys@6.21.0': 780 | resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} 781 | engines: {node: ^16.0.0 || >=18.0.0} 782 | 783 | '@ungap/structured-clone@1.2.0': 784 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 785 | 786 | '@vitejs/plugin-react@4.3.0': 787 | resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} 788 | engines: {node: ^14.18.0 || >=16.0.0} 789 | peerDependencies: 790 | vite: ^4.2.0 || ^5.0.0 791 | 792 | acorn-jsx@5.3.2: 793 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 794 | peerDependencies: 795 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 796 | 797 | acorn@8.11.3: 798 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 799 | engines: {node: '>=0.4.0'} 800 | hasBin: true 801 | 802 | ajv@6.12.6: 803 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 804 | 805 | ansi-regex@5.0.1: 806 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 807 | engines: {node: '>=8'} 808 | 809 | ansi-styles@3.2.1: 810 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 811 | engines: {node: '>=4'} 812 | 813 | ansi-styles@4.3.0: 814 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 815 | engines: {node: '>=8'} 816 | 817 | anymatch@3.1.3: 818 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 819 | engines: {node: '>= 8'} 820 | 821 | argparse@2.0.1: 822 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 823 | 824 | aria-hidden@1.2.4: 825 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 826 | engines: {node: '>=10'} 827 | 828 | array-union@2.1.0: 829 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 830 | engines: {node: '>=8'} 831 | 832 | babel-plugin-macros@3.1.0: 833 | resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} 834 | engines: {node: '>=10', npm: '>=6'} 835 | 836 | balanced-match@1.0.2: 837 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 838 | 839 | base64-arraybuffer@1.0.2: 840 | resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} 841 | engines: {node: '>= 0.6.0'} 842 | 843 | binary-extensions@2.3.0: 844 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 845 | engines: {node: '>=8'} 846 | 847 | brace-expansion@1.1.11: 848 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 849 | 850 | brace-expansion@2.0.1: 851 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 852 | 853 | braces@3.0.3: 854 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 855 | engines: {node: '>=8'} 856 | 857 | browserslist@4.23.1: 858 | resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} 859 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 860 | hasBin: true 861 | 862 | callsites@3.1.0: 863 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 864 | engines: {node: '>=6'} 865 | 866 | camelcase-css@2.0.1: 867 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 868 | engines: {node: '>= 6'} 869 | 870 | camelize@1.0.1: 871 | resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} 872 | 873 | caniuse-lite@1.0.30001629: 874 | resolution: {integrity: sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==} 875 | 876 | chalk@2.4.2: 877 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 878 | engines: {node: '>=4'} 879 | 880 | chalk@4.1.2: 881 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 882 | engines: {node: '>=10'} 883 | 884 | chokidar@3.6.0: 885 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 886 | engines: {node: '>= 8.10.0'} 887 | 888 | clsx@1.1.1: 889 | resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} 890 | engines: {node: '>=6'} 891 | 892 | color-convert@1.9.3: 893 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 894 | 895 | color-convert@2.0.1: 896 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 897 | engines: {node: '>=7.0.0'} 898 | 899 | color-name@1.1.3: 900 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 901 | 902 | color-name@1.1.4: 903 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 904 | 905 | concat-map@0.0.1: 906 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 907 | 908 | convert-source-map@1.9.0: 909 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 910 | 911 | convert-source-map@2.0.0: 912 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 913 | 914 | cosmiconfig@7.1.0: 915 | resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} 916 | engines: {node: '>=10'} 917 | 918 | cross-spawn@7.0.3: 919 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 920 | engines: {node: '>= 8'} 921 | 922 | css-color-keywords@1.0.0: 923 | resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} 924 | engines: {node: '>=4'} 925 | 926 | css-line-break@2.1.0: 927 | resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} 928 | 929 | css-to-react-native@3.2.0: 930 | resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} 931 | 932 | cssesc@3.0.0: 933 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 934 | engines: {node: '>=4'} 935 | hasBin: true 936 | 937 | csstype@3.0.9: 938 | resolution: {integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==} 939 | 940 | csstype@3.1.3: 941 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 942 | 943 | dayjs@1.11.11: 944 | resolution: {integrity: sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==} 945 | 946 | debug@4.3.5: 947 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 948 | engines: {node: '>=6.0'} 949 | peerDependencies: 950 | supports-color: '*' 951 | peerDependenciesMeta: 952 | supports-color: 953 | optional: true 954 | 955 | deep-is@0.1.4: 956 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 957 | 958 | detect-node-es@1.1.0: 959 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 960 | 961 | dir-glob@3.0.1: 962 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 963 | engines: {node: '>=8'} 964 | 965 | doctrine@3.0.0: 966 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 967 | engines: {node: '>=6.0.0'} 968 | 969 | electron-to-chromium@1.4.796: 970 | resolution: {integrity: sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA==} 971 | 972 | error-ex@1.3.2: 973 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 974 | 975 | esbuild@0.20.2: 976 | resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} 977 | engines: {node: '>=12'} 978 | hasBin: true 979 | 980 | escalade@3.1.2: 981 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 982 | engines: {node: '>=6'} 983 | 984 | escape-string-regexp@1.0.5: 985 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 986 | engines: {node: '>=0.8.0'} 987 | 988 | escape-string-regexp@4.0.0: 989 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 990 | engines: {node: '>=10'} 991 | 992 | eslint-plugin-react-hooks@4.6.2: 993 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} 994 | engines: {node: '>=10'} 995 | peerDependencies: 996 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 997 | 998 | eslint-plugin-react-refresh@0.4.7: 999 | resolution: {integrity: sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==} 1000 | peerDependencies: 1001 | eslint: '>=7' 1002 | 1003 | eslint-scope@7.2.2: 1004 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1005 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1006 | 1007 | eslint-visitor-keys@3.4.3: 1008 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1009 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1010 | 1011 | eslint@8.57.0: 1012 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1013 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1014 | hasBin: true 1015 | 1016 | espree@9.6.1: 1017 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1018 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1019 | 1020 | esquery@1.5.0: 1021 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1022 | engines: {node: '>=0.10'} 1023 | 1024 | esrecurse@4.3.0: 1025 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1026 | engines: {node: '>=4.0'} 1027 | 1028 | estraverse@5.3.0: 1029 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1030 | engines: {node: '>=4.0'} 1031 | 1032 | esutils@2.0.3: 1033 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1034 | engines: {node: '>=0.10.0'} 1035 | 1036 | fast-deep-equal@3.1.3: 1037 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1038 | 1039 | fast-glob@3.3.2: 1040 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1041 | engines: {node: '>=8.6.0'} 1042 | 1043 | fast-json-stable-stringify@2.1.0: 1044 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1045 | 1046 | fast-levenshtein@2.0.6: 1047 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1048 | 1049 | fastq@1.17.1: 1050 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1051 | 1052 | file-entry-cache@6.0.1: 1053 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1054 | engines: {node: ^10.12.0 || >=12.0.0} 1055 | 1056 | fill-range@7.1.1: 1057 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1058 | engines: {node: '>=8'} 1059 | 1060 | find-root@1.1.0: 1061 | resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} 1062 | 1063 | find-up@5.0.0: 1064 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1065 | engines: {node: '>=10'} 1066 | 1067 | flat-cache@3.2.0: 1068 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1069 | engines: {node: ^10.12.0 || >=12.0.0} 1070 | 1071 | flatted@3.3.1: 1072 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1073 | 1074 | fs.realpath@1.0.0: 1075 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1076 | 1077 | fsevents@2.3.3: 1078 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1079 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1080 | os: [darwin] 1081 | 1082 | function-bind@1.1.2: 1083 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1084 | 1085 | gensync@1.0.0-beta.2: 1086 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1087 | engines: {node: '>=6.9.0'} 1088 | 1089 | get-nonce@1.0.1: 1090 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 1091 | engines: {node: '>=6'} 1092 | 1093 | glob-parent@5.1.2: 1094 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1095 | engines: {node: '>= 6'} 1096 | 1097 | glob-parent@6.0.2: 1098 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1099 | engines: {node: '>=10.13.0'} 1100 | 1101 | glob@7.2.3: 1102 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1103 | deprecated: Glob versions prior to v9 are no longer supported 1104 | 1105 | globals@11.12.0: 1106 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1107 | engines: {node: '>=4'} 1108 | 1109 | globals@13.24.0: 1110 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1111 | engines: {node: '>=8'} 1112 | 1113 | globby@11.1.0: 1114 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1115 | engines: {node: '>=10'} 1116 | 1117 | graphemer@1.4.0: 1118 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1119 | 1120 | has-flag@3.0.0: 1121 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1122 | engines: {node: '>=4'} 1123 | 1124 | has-flag@4.0.0: 1125 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1126 | engines: {node: '>=8'} 1127 | 1128 | hasown@2.0.2: 1129 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1130 | engines: {node: '>= 0.4'} 1131 | 1132 | hoist-non-react-statics@3.3.2: 1133 | resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} 1134 | 1135 | html2canvas@1.4.1: 1136 | resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} 1137 | engines: {node: '>=8.0.0'} 1138 | 1139 | ignore@5.3.1: 1140 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1141 | engines: {node: '>= 4'} 1142 | 1143 | immutable@4.3.6: 1144 | resolution: {integrity: sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==} 1145 | 1146 | import-fresh@3.3.0: 1147 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1148 | engines: {node: '>=6'} 1149 | 1150 | imurmurhash@0.1.4: 1151 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1152 | engines: {node: '>=0.8.19'} 1153 | 1154 | inflight@1.0.6: 1155 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1156 | 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. 1157 | 1158 | inherits@2.0.4: 1159 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1160 | 1161 | invariant@2.2.4: 1162 | resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} 1163 | 1164 | is-arrayish@0.2.1: 1165 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1166 | 1167 | is-binary-path@2.1.0: 1168 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1169 | engines: {node: '>=8'} 1170 | 1171 | is-core-module@2.13.1: 1172 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1173 | 1174 | is-extglob@2.1.1: 1175 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1176 | engines: {node: '>=0.10.0'} 1177 | 1178 | is-glob@4.0.3: 1179 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1180 | engines: {node: '>=0.10.0'} 1181 | 1182 | is-number@7.0.0: 1183 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1184 | engines: {node: '>=0.12.0'} 1185 | 1186 | is-path-inside@3.0.3: 1187 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1188 | engines: {node: '>=8'} 1189 | 1190 | isexe@2.0.0: 1191 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1192 | 1193 | js-tokens@4.0.0: 1194 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1195 | 1196 | js-yaml@4.1.0: 1197 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1198 | hasBin: true 1199 | 1200 | jsesc@2.5.2: 1201 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1202 | engines: {node: '>=4'} 1203 | hasBin: true 1204 | 1205 | json-buffer@3.0.1: 1206 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1207 | 1208 | json-parse-even-better-errors@2.3.1: 1209 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1210 | 1211 | json-schema-traverse@0.4.1: 1212 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1213 | 1214 | json-stable-stringify-without-jsonify@1.0.1: 1215 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1216 | 1217 | json5@2.2.3: 1218 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1219 | engines: {node: '>=6'} 1220 | hasBin: true 1221 | 1222 | keyv@4.5.4: 1223 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1224 | 1225 | klona@2.0.6: 1226 | resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} 1227 | engines: {node: '>= 8'} 1228 | 1229 | levn@0.4.1: 1230 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1231 | engines: {node: '>= 0.8.0'} 1232 | 1233 | lines-and-columns@1.2.4: 1234 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1235 | 1236 | locate-path@6.0.0: 1237 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1238 | engines: {node: '>=10'} 1239 | 1240 | lodash.merge@4.6.2: 1241 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1242 | 1243 | loose-envify@1.4.0: 1244 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1245 | hasBin: true 1246 | 1247 | lru-cache@5.1.1: 1248 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1249 | 1250 | merge2@1.4.1: 1251 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1252 | engines: {node: '>= 8'} 1253 | 1254 | micromatch@4.0.7: 1255 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1256 | engines: {node: '>=8.6'} 1257 | 1258 | minimatch@3.1.2: 1259 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1260 | 1261 | minimatch@9.0.3: 1262 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1263 | engines: {node: '>=16 || 14 >=14.17'} 1264 | 1265 | ms@2.1.2: 1266 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1267 | 1268 | nanoid@3.3.7: 1269 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1270 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1271 | hasBin: true 1272 | 1273 | natural-compare@1.4.0: 1274 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1275 | 1276 | node-releases@2.0.14: 1277 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1278 | 1279 | normalize-path@3.0.0: 1280 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1281 | engines: {node: '>=0.10.0'} 1282 | 1283 | object-assign@4.1.1: 1284 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1285 | engines: {node: '>=0.10.0'} 1286 | 1287 | once@1.4.0: 1288 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1289 | 1290 | optionator@0.9.4: 1291 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1292 | engines: {node: '>= 0.8.0'} 1293 | 1294 | p-limit@3.1.0: 1295 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1296 | engines: {node: '>=10'} 1297 | 1298 | p-locate@5.0.0: 1299 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1300 | engines: {node: '>=10'} 1301 | 1302 | parent-module@1.0.1: 1303 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1304 | engines: {node: '>=6'} 1305 | 1306 | parse-json@5.2.0: 1307 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1308 | engines: {node: '>=8'} 1309 | 1310 | path-exists@4.0.0: 1311 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1312 | engines: {node: '>=8'} 1313 | 1314 | path-is-absolute@1.0.1: 1315 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1316 | engines: {node: '>=0.10.0'} 1317 | 1318 | path-key@3.1.1: 1319 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1320 | engines: {node: '>=8'} 1321 | 1322 | path-parse@1.0.7: 1323 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1324 | 1325 | path-type@4.0.0: 1326 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1327 | engines: {node: '>=8'} 1328 | 1329 | picocolors@1.0.1: 1330 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1331 | 1332 | picomatch@2.3.1: 1333 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1334 | engines: {node: '>=8.6'} 1335 | 1336 | postcss-js@4.0.1: 1337 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1338 | engines: {node: ^12 || ^14 || >= 16} 1339 | peerDependencies: 1340 | postcss: ^8.4.21 1341 | 1342 | postcss-mixins@9.0.4: 1343 | resolution: {integrity: sha512-XVq5jwQJDRu5M1XGkdpgASqLk37OqkH4JCFDXl/Dn7janOJjCTEKL+36cnRVy7bMtoBzALfO7bV7nTIsFnUWLA==} 1344 | engines: {node: '>=14.0'} 1345 | peerDependencies: 1346 | postcss: ^8.2.14 1347 | 1348 | postcss-nested@6.0.1: 1349 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1350 | engines: {node: '>=12.0'} 1351 | peerDependencies: 1352 | postcss: ^8.2.14 1353 | 1354 | postcss-preset-mantine@1.15.0: 1355 | resolution: {integrity: sha512-OKPs6uoORSXlU/GFH1ZtFaslecHBPwuoSikdL5W3WKJm4ZPAQM0mw9x9m3toa/Mo1JhoBmYMM28i+zEdav5Edg==} 1356 | peerDependencies: 1357 | postcss: '>=8.0.0' 1358 | 1359 | postcss-selector-parser@6.1.0: 1360 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} 1361 | engines: {node: '>=4'} 1362 | 1363 | postcss-simple-vars@7.0.1: 1364 | resolution: {integrity: sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==} 1365 | engines: {node: '>=14.0'} 1366 | peerDependencies: 1367 | postcss: ^8.2.1 1368 | 1369 | postcss-value-parser@4.2.0: 1370 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1371 | 1372 | postcss@8.4.38: 1373 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1374 | engines: {node: ^10 || ^12 || >=14} 1375 | 1376 | prelude-ls@1.2.1: 1377 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1378 | engines: {node: '>= 0.8.0'} 1379 | 1380 | prop-types@15.8.1: 1381 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1382 | 1383 | punycode@2.3.1: 1384 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1385 | engines: {node: '>=6'} 1386 | 1387 | queue-microtask@1.2.3: 1388 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1389 | 1390 | react-dom@18.3.1: 1391 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1392 | peerDependencies: 1393 | react: ^18.3.1 1394 | 1395 | react-icons@5.2.1: 1396 | resolution: {integrity: sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==} 1397 | peerDependencies: 1398 | react: '*' 1399 | 1400 | react-is@16.13.1: 1401 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1402 | 1403 | react-refresh@0.14.2: 1404 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1405 | engines: {node: '>=0.10.0'} 1406 | 1407 | react-remove-scroll-bar@2.3.6: 1408 | resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} 1409 | engines: {node: '>=10'} 1410 | peerDependencies: 1411 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1412 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1413 | peerDependenciesMeta: 1414 | '@types/react': 1415 | optional: true 1416 | 1417 | react-remove-scroll@2.5.10: 1418 | resolution: {integrity: sha512-m3zvBRANPBw3qxVVjEIPEQinkcwlFZ4qyomuWVpNJdv4c6MvHfXV0C3L9Jx5rr3HeBHKNRX+1jreB5QloDIJjA==} 1419 | engines: {node: '>=10'} 1420 | peerDependencies: 1421 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1422 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1423 | peerDependenciesMeta: 1424 | '@types/react': 1425 | optional: true 1426 | 1427 | react-style-singleton@2.2.1: 1428 | resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} 1429 | engines: {node: '>=10'} 1430 | peerDependencies: 1431 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1432 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1433 | peerDependenciesMeta: 1434 | '@types/react': 1435 | optional: true 1436 | 1437 | react-textarea-autosize@8.3.4: 1438 | resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} 1439 | engines: {node: '>=10'} 1440 | peerDependencies: 1441 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1442 | 1443 | react@18.3.1: 1444 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1445 | engines: {node: '>=0.10.0'} 1446 | 1447 | readdirp@3.6.0: 1448 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1449 | engines: {node: '>=8.10.0'} 1450 | 1451 | regenerator-runtime@0.14.1: 1452 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1453 | 1454 | resolve-from@4.0.0: 1455 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1456 | engines: {node: '>=4'} 1457 | 1458 | resolve@1.22.8: 1459 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1460 | hasBin: true 1461 | 1462 | reusify@1.0.4: 1463 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1464 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1465 | 1466 | rimraf@3.0.2: 1467 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1468 | deprecated: Rimraf versions prior to v4 are no longer supported 1469 | hasBin: true 1470 | 1471 | rollup@4.18.0: 1472 | resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} 1473 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1474 | hasBin: true 1475 | 1476 | run-parallel@1.2.0: 1477 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1478 | 1479 | sass@1.77.4: 1480 | resolution: {integrity: sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==} 1481 | engines: {node: '>=14.0.0'} 1482 | hasBin: true 1483 | 1484 | scheduler@0.23.2: 1485 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1486 | 1487 | semver@6.3.1: 1488 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1489 | hasBin: true 1490 | 1491 | semver@7.6.2: 1492 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1493 | engines: {node: '>=10'} 1494 | hasBin: true 1495 | 1496 | shallowequal@1.1.0: 1497 | resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} 1498 | 1499 | shebang-command@2.0.0: 1500 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1501 | engines: {node: '>=8'} 1502 | 1503 | shebang-regex@3.0.0: 1504 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1505 | engines: {node: '>=8'} 1506 | 1507 | slash@3.0.0: 1508 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1509 | engines: {node: '>=8'} 1510 | 1511 | source-map-js@1.2.0: 1512 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1513 | engines: {node: '>=0.10.0'} 1514 | 1515 | source-map@0.5.7: 1516 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 1517 | engines: {node: '>=0.10.0'} 1518 | 1519 | strip-ansi@6.0.1: 1520 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1521 | engines: {node: '>=8'} 1522 | 1523 | strip-json-comments@3.1.1: 1524 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1525 | engines: {node: '>=8'} 1526 | 1527 | styled-components@6.1.11: 1528 | resolution: {integrity: sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==} 1529 | engines: {node: '>= 16'} 1530 | peerDependencies: 1531 | react: '>= 16.8.0' 1532 | react-dom: '>= 16.8.0' 1533 | 1534 | stylis@4.2.0: 1535 | resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} 1536 | 1537 | stylis@4.3.2: 1538 | resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} 1539 | 1540 | sugarss@4.0.1: 1541 | resolution: {integrity: sha512-WCjS5NfuVJjkQzK10s8WOBY+hhDxxNt/N6ZaGwxFZ+wN3/lKKFSaaKUNecULcTTvE4urLcKaZFQD8vO0mOZujw==} 1542 | engines: {node: '>=12.0'} 1543 | peerDependencies: 1544 | postcss: ^8.3.3 1545 | 1546 | supports-color@5.5.0: 1547 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1548 | engines: {node: '>=4'} 1549 | 1550 | supports-color@7.2.0: 1551 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1552 | engines: {node: '>=8'} 1553 | 1554 | supports-preserve-symlinks-flag@1.0.0: 1555 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1556 | engines: {node: '>= 0.4'} 1557 | 1558 | tabbable@6.2.0: 1559 | resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 1560 | 1561 | text-segmentation@1.0.3: 1562 | resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} 1563 | 1564 | text-table@0.2.0: 1565 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1566 | 1567 | to-fast-properties@2.0.0: 1568 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1569 | engines: {node: '>=4'} 1570 | 1571 | to-regex-range@5.0.1: 1572 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1573 | engines: {node: '>=8.0'} 1574 | 1575 | ts-api-utils@1.3.0: 1576 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1577 | engines: {node: '>=16'} 1578 | peerDependencies: 1579 | typescript: '>=4.2.0' 1580 | 1581 | tslib@2.6.2: 1582 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1583 | 1584 | tslib@2.6.3: 1585 | resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} 1586 | 1587 | type-check@0.4.0: 1588 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1589 | engines: {node: '>= 0.8.0'} 1590 | 1591 | type-fest@0.20.2: 1592 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1593 | engines: {node: '>=10'} 1594 | 1595 | typescript@5.4.5: 1596 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 1597 | engines: {node: '>=14.17'} 1598 | hasBin: true 1599 | 1600 | undici-types@5.26.5: 1601 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 1602 | 1603 | update-browserslist-db@1.0.16: 1604 | resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} 1605 | hasBin: true 1606 | peerDependencies: 1607 | browserslist: '>= 4.21.0' 1608 | 1609 | uri-js@4.4.1: 1610 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1611 | 1612 | use-callback-ref@1.3.2: 1613 | resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} 1614 | engines: {node: '>=10'} 1615 | peerDependencies: 1616 | '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 1617 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1618 | peerDependenciesMeta: 1619 | '@types/react': 1620 | optional: true 1621 | 1622 | use-composed-ref@1.3.0: 1623 | resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} 1624 | peerDependencies: 1625 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1626 | 1627 | use-isomorphic-layout-effect@1.1.2: 1628 | resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} 1629 | peerDependencies: 1630 | '@types/react': '*' 1631 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1632 | peerDependenciesMeta: 1633 | '@types/react': 1634 | optional: true 1635 | 1636 | use-latest@1.2.1: 1637 | resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} 1638 | peerDependencies: 1639 | '@types/react': '*' 1640 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1641 | peerDependenciesMeta: 1642 | '@types/react': 1643 | optional: true 1644 | 1645 | use-sidecar@1.1.2: 1646 | resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} 1647 | engines: {node: '>=10'} 1648 | peerDependencies: 1649 | '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 1650 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 1651 | peerDependenciesMeta: 1652 | '@types/react': 1653 | optional: true 1654 | 1655 | util-deprecate@1.0.2: 1656 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1657 | 1658 | utrie@1.0.2: 1659 | resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==} 1660 | 1661 | vite@5.2.13: 1662 | resolution: {integrity: sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==} 1663 | engines: {node: ^18.0.0 || >=20.0.0} 1664 | hasBin: true 1665 | peerDependencies: 1666 | '@types/node': ^18.0.0 || >=20.0.0 1667 | less: '*' 1668 | lightningcss: ^1.21.0 1669 | sass: '*' 1670 | stylus: '*' 1671 | sugarss: '*' 1672 | terser: ^5.4.0 1673 | peerDependenciesMeta: 1674 | '@types/node': 1675 | optional: true 1676 | less: 1677 | optional: true 1678 | lightningcss: 1679 | optional: true 1680 | sass: 1681 | optional: true 1682 | stylus: 1683 | optional: true 1684 | sugarss: 1685 | optional: true 1686 | terser: 1687 | optional: true 1688 | 1689 | which@2.0.2: 1690 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1691 | engines: {node: '>= 8'} 1692 | hasBin: true 1693 | 1694 | word-wrap@1.2.5: 1695 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1696 | engines: {node: '>=0.10.0'} 1697 | 1698 | wrappy@1.0.2: 1699 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1700 | 1701 | yallist@3.1.1: 1702 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1703 | 1704 | yaml@1.10.2: 1705 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1706 | engines: {node: '>= 6'} 1707 | 1708 | yocto-queue@0.1.0: 1709 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1710 | engines: {node: '>=10'} 1711 | 1712 | snapshots: 1713 | 1714 | '@ampproject/remapping@2.3.0': 1715 | dependencies: 1716 | '@jridgewell/gen-mapping': 0.3.5 1717 | '@jridgewell/trace-mapping': 0.3.25 1718 | 1719 | '@babel/code-frame@7.24.7': 1720 | dependencies: 1721 | '@babel/highlight': 7.24.7 1722 | picocolors: 1.0.1 1723 | 1724 | '@babel/compat-data@7.24.7': {} 1725 | 1726 | '@babel/core@7.24.7': 1727 | dependencies: 1728 | '@ampproject/remapping': 2.3.0 1729 | '@babel/code-frame': 7.24.7 1730 | '@babel/generator': 7.24.7 1731 | '@babel/helper-compilation-targets': 7.24.7 1732 | '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) 1733 | '@babel/helpers': 7.24.7 1734 | '@babel/parser': 7.24.7 1735 | '@babel/template': 7.24.7 1736 | '@babel/traverse': 7.24.7 1737 | '@babel/types': 7.24.7 1738 | convert-source-map: 2.0.0 1739 | debug: 4.3.5 1740 | gensync: 1.0.0-beta.2 1741 | json5: 2.2.3 1742 | semver: 6.3.1 1743 | transitivePeerDependencies: 1744 | - supports-color 1745 | 1746 | '@babel/generator@7.24.7': 1747 | dependencies: 1748 | '@babel/types': 7.24.7 1749 | '@jridgewell/gen-mapping': 0.3.5 1750 | '@jridgewell/trace-mapping': 0.3.25 1751 | jsesc: 2.5.2 1752 | 1753 | '@babel/helper-compilation-targets@7.24.7': 1754 | dependencies: 1755 | '@babel/compat-data': 7.24.7 1756 | '@babel/helper-validator-option': 7.24.7 1757 | browserslist: 4.23.1 1758 | lru-cache: 5.1.1 1759 | semver: 6.3.1 1760 | 1761 | '@babel/helper-environment-visitor@7.24.7': 1762 | dependencies: 1763 | '@babel/types': 7.24.7 1764 | 1765 | '@babel/helper-function-name@7.24.7': 1766 | dependencies: 1767 | '@babel/template': 7.24.7 1768 | '@babel/types': 7.24.7 1769 | 1770 | '@babel/helper-hoist-variables@7.24.7': 1771 | dependencies: 1772 | '@babel/types': 7.24.7 1773 | 1774 | '@babel/helper-module-imports@7.24.7': 1775 | dependencies: 1776 | '@babel/traverse': 7.24.7 1777 | '@babel/types': 7.24.7 1778 | transitivePeerDependencies: 1779 | - supports-color 1780 | 1781 | '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': 1782 | dependencies: 1783 | '@babel/core': 7.24.7 1784 | '@babel/helper-environment-visitor': 7.24.7 1785 | '@babel/helper-module-imports': 7.24.7 1786 | '@babel/helper-simple-access': 7.24.7 1787 | '@babel/helper-split-export-declaration': 7.24.7 1788 | '@babel/helper-validator-identifier': 7.24.7 1789 | transitivePeerDependencies: 1790 | - supports-color 1791 | 1792 | '@babel/helper-plugin-utils@7.24.7': {} 1793 | 1794 | '@babel/helper-simple-access@7.24.7': 1795 | dependencies: 1796 | '@babel/traverse': 7.24.7 1797 | '@babel/types': 7.24.7 1798 | transitivePeerDependencies: 1799 | - supports-color 1800 | 1801 | '@babel/helper-split-export-declaration@7.24.7': 1802 | dependencies: 1803 | '@babel/types': 7.24.7 1804 | 1805 | '@babel/helper-string-parser@7.24.7': {} 1806 | 1807 | '@babel/helper-validator-identifier@7.24.7': {} 1808 | 1809 | '@babel/helper-validator-option@7.24.7': {} 1810 | 1811 | '@babel/helpers@7.24.7': 1812 | dependencies: 1813 | '@babel/template': 7.24.7 1814 | '@babel/types': 7.24.7 1815 | 1816 | '@babel/highlight@7.24.7': 1817 | dependencies: 1818 | '@babel/helper-validator-identifier': 7.24.7 1819 | chalk: 2.4.2 1820 | js-tokens: 4.0.0 1821 | picocolors: 1.0.1 1822 | 1823 | '@babel/parser@7.24.7': 1824 | dependencies: 1825 | '@babel/types': 7.24.7 1826 | 1827 | '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': 1828 | dependencies: 1829 | '@babel/core': 7.24.7 1830 | '@babel/helper-plugin-utils': 7.24.7 1831 | 1832 | '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.24.7)': 1833 | dependencies: 1834 | '@babel/core': 7.24.7 1835 | '@babel/helper-plugin-utils': 7.24.7 1836 | 1837 | '@babel/runtime@7.24.7': 1838 | dependencies: 1839 | regenerator-runtime: 0.14.1 1840 | 1841 | '@babel/template@7.24.7': 1842 | dependencies: 1843 | '@babel/code-frame': 7.24.7 1844 | '@babel/parser': 7.24.7 1845 | '@babel/types': 7.24.7 1846 | 1847 | '@babel/traverse@7.24.7': 1848 | dependencies: 1849 | '@babel/code-frame': 7.24.7 1850 | '@babel/generator': 7.24.7 1851 | '@babel/helper-environment-visitor': 7.24.7 1852 | '@babel/helper-function-name': 7.24.7 1853 | '@babel/helper-hoist-variables': 7.24.7 1854 | '@babel/helper-split-export-declaration': 7.24.7 1855 | '@babel/parser': 7.24.7 1856 | '@babel/types': 7.24.7 1857 | debug: 4.3.5 1858 | globals: 11.12.0 1859 | transitivePeerDependencies: 1860 | - supports-color 1861 | 1862 | '@babel/types@7.24.7': 1863 | dependencies: 1864 | '@babel/helper-string-parser': 7.24.7 1865 | '@babel/helper-validator-identifier': 7.24.7 1866 | to-fast-properties: 2.0.0 1867 | 1868 | '@emotion/babel-plugin@11.11.0': 1869 | dependencies: 1870 | '@babel/helper-module-imports': 7.24.7 1871 | '@babel/runtime': 7.24.7 1872 | '@emotion/hash': 0.9.1 1873 | '@emotion/memoize': 0.8.1 1874 | '@emotion/serialize': 1.1.4 1875 | babel-plugin-macros: 3.1.0 1876 | convert-source-map: 1.9.0 1877 | escape-string-regexp: 4.0.0 1878 | find-root: 1.1.0 1879 | source-map: 0.5.7 1880 | stylis: 4.2.0 1881 | transitivePeerDependencies: 1882 | - supports-color 1883 | 1884 | '@emotion/cache@11.11.0': 1885 | dependencies: 1886 | '@emotion/memoize': 0.8.1 1887 | '@emotion/sheet': 1.2.2 1888 | '@emotion/utils': 1.2.1 1889 | '@emotion/weak-memoize': 0.3.1 1890 | stylis: 4.2.0 1891 | 1892 | '@emotion/hash@0.9.1': {} 1893 | 1894 | '@emotion/is-prop-valid@1.2.2': 1895 | dependencies: 1896 | '@emotion/memoize': 0.8.1 1897 | 1898 | '@emotion/memoize@0.8.1': {} 1899 | 1900 | '@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1)': 1901 | dependencies: 1902 | '@babel/runtime': 7.24.7 1903 | '@emotion/babel-plugin': 11.11.0 1904 | '@emotion/cache': 11.11.0 1905 | '@emotion/serialize': 1.1.4 1906 | '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.3.1) 1907 | '@emotion/utils': 1.2.1 1908 | '@emotion/weak-memoize': 0.3.1 1909 | hoist-non-react-statics: 3.3.2 1910 | react: 18.3.1 1911 | optionalDependencies: 1912 | '@types/react': 18.3.3 1913 | transitivePeerDependencies: 1914 | - supports-color 1915 | 1916 | '@emotion/serialize@1.1.4': 1917 | dependencies: 1918 | '@emotion/hash': 0.9.1 1919 | '@emotion/memoize': 0.8.1 1920 | '@emotion/unitless': 0.8.1 1921 | '@emotion/utils': 1.2.1 1922 | csstype: 3.1.3 1923 | 1924 | '@emotion/sheet@1.2.2': {} 1925 | 1926 | '@emotion/unitless@0.8.1': {} 1927 | 1928 | '@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.3.1)': 1929 | dependencies: 1930 | react: 18.3.1 1931 | 1932 | '@emotion/utils@1.2.1': {} 1933 | 1934 | '@emotion/weak-memoize@0.3.1': {} 1935 | 1936 | '@esbuild/aix-ppc64@0.20.2': 1937 | optional: true 1938 | 1939 | '@esbuild/android-arm64@0.20.2': 1940 | optional: true 1941 | 1942 | '@esbuild/android-arm@0.20.2': 1943 | optional: true 1944 | 1945 | '@esbuild/android-x64@0.20.2': 1946 | optional: true 1947 | 1948 | '@esbuild/darwin-arm64@0.20.2': 1949 | optional: true 1950 | 1951 | '@esbuild/darwin-x64@0.20.2': 1952 | optional: true 1953 | 1954 | '@esbuild/freebsd-arm64@0.20.2': 1955 | optional: true 1956 | 1957 | '@esbuild/freebsd-x64@0.20.2': 1958 | optional: true 1959 | 1960 | '@esbuild/linux-arm64@0.20.2': 1961 | optional: true 1962 | 1963 | '@esbuild/linux-arm@0.20.2': 1964 | optional: true 1965 | 1966 | '@esbuild/linux-ia32@0.20.2': 1967 | optional: true 1968 | 1969 | '@esbuild/linux-loong64@0.20.2': 1970 | optional: true 1971 | 1972 | '@esbuild/linux-mips64el@0.20.2': 1973 | optional: true 1974 | 1975 | '@esbuild/linux-ppc64@0.20.2': 1976 | optional: true 1977 | 1978 | '@esbuild/linux-riscv64@0.20.2': 1979 | optional: true 1980 | 1981 | '@esbuild/linux-s390x@0.20.2': 1982 | optional: true 1983 | 1984 | '@esbuild/linux-x64@0.20.2': 1985 | optional: true 1986 | 1987 | '@esbuild/netbsd-x64@0.20.2': 1988 | optional: true 1989 | 1990 | '@esbuild/openbsd-x64@0.20.2': 1991 | optional: true 1992 | 1993 | '@esbuild/sunos-x64@0.20.2': 1994 | optional: true 1995 | 1996 | '@esbuild/win32-arm64@0.20.2': 1997 | optional: true 1998 | 1999 | '@esbuild/win32-ia32@0.20.2': 2000 | optional: true 2001 | 2002 | '@esbuild/win32-x64@0.20.2': 2003 | optional: true 2004 | 2005 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 2006 | dependencies: 2007 | eslint: 8.57.0 2008 | eslint-visitor-keys: 3.4.3 2009 | 2010 | '@eslint-community/regexpp@4.10.1': {} 2011 | 2012 | '@eslint/eslintrc@2.1.4': 2013 | dependencies: 2014 | ajv: 6.12.6 2015 | debug: 4.3.5 2016 | espree: 9.6.1 2017 | globals: 13.24.0 2018 | ignore: 5.3.1 2019 | import-fresh: 3.3.0 2020 | js-yaml: 4.1.0 2021 | minimatch: 3.1.2 2022 | strip-json-comments: 3.1.1 2023 | transitivePeerDependencies: 2024 | - supports-color 2025 | 2026 | '@eslint/js@8.57.0': {} 2027 | 2028 | '@floating-ui/core@1.6.2': 2029 | dependencies: 2030 | '@floating-ui/utils': 0.2.2 2031 | 2032 | '@floating-ui/dom@1.6.5': 2033 | dependencies: 2034 | '@floating-ui/core': 1.6.2 2035 | '@floating-ui/utils': 0.2.2 2036 | 2037 | '@floating-ui/react-dom@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2038 | dependencies: 2039 | '@floating-ui/dom': 1.6.5 2040 | react: 18.3.1 2041 | react-dom: 18.3.1(react@18.3.1) 2042 | 2043 | '@floating-ui/react@0.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2044 | dependencies: 2045 | '@floating-ui/react-dom': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2046 | aria-hidden: 1.2.4 2047 | react: 18.3.1 2048 | react-dom: 18.3.1(react@18.3.1) 2049 | tabbable: 6.2.0 2050 | 2051 | '@floating-ui/utils@0.2.2': {} 2052 | 2053 | '@fortawesome/fontawesome-common-types@6.5.2': {} 2054 | 2055 | '@fortawesome/fontawesome-svg-core@6.5.2': 2056 | dependencies: 2057 | '@fortawesome/fontawesome-common-types': 6.5.2 2058 | 2059 | '@fortawesome/free-solid-svg-icons@6.5.2': 2060 | dependencies: 2061 | '@fortawesome/fontawesome-common-types': 6.5.2 2062 | 2063 | '@fortawesome/react-fontawesome@0.2.2(@fortawesome/fontawesome-svg-core@6.5.2)(react@18.3.1)': 2064 | dependencies: 2065 | '@fortawesome/fontawesome-svg-core': 6.5.2 2066 | prop-types: 15.8.1 2067 | react: 18.3.1 2068 | 2069 | '@humanwhocodes/config-array@0.11.14': 2070 | dependencies: 2071 | '@humanwhocodes/object-schema': 2.0.3 2072 | debug: 4.3.5 2073 | minimatch: 3.1.2 2074 | transitivePeerDependencies: 2075 | - supports-color 2076 | 2077 | '@humanwhocodes/module-importer@1.0.1': {} 2078 | 2079 | '@humanwhocodes/object-schema@2.0.3': {} 2080 | 2081 | '@jridgewell/gen-mapping@0.3.5': 2082 | dependencies: 2083 | '@jridgewell/set-array': 1.2.1 2084 | '@jridgewell/sourcemap-codec': 1.4.15 2085 | '@jridgewell/trace-mapping': 0.3.25 2086 | 2087 | '@jridgewell/resolve-uri@3.1.2': {} 2088 | 2089 | '@jridgewell/set-array@1.2.1': {} 2090 | 2091 | '@jridgewell/sourcemap-codec@1.4.15': {} 2092 | 2093 | '@jridgewell/trace-mapping@0.3.25': 2094 | dependencies: 2095 | '@jridgewell/resolve-uri': 3.1.2 2096 | '@jridgewell/sourcemap-codec': 1.4.15 2097 | 2098 | '@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2099 | dependencies: 2100 | '@floating-ui/react': 0.19.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2101 | '@mantine/hooks': 6.0.21(react@18.3.1) 2102 | '@mantine/styles': 6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2103 | '@mantine/utils': 6.0.21(react@18.3.1) 2104 | '@radix-ui/react-scroll-area': 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2105 | react: 18.3.1 2106 | react-dom: 18.3.1(react@18.3.1) 2107 | react-remove-scroll: 2.5.10(@types/react@18.3.3)(react@18.3.1) 2108 | react-textarea-autosize: 8.3.4(@types/react@18.3.3)(react@18.3.1) 2109 | transitivePeerDependencies: 2110 | - '@emotion/react' 2111 | - '@types/react' 2112 | 2113 | '@mantine/dates@6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(dayjs@1.11.11)(react@18.3.1)': 2114 | dependencies: 2115 | '@mantine/core': 6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2116 | '@mantine/hooks': 6.0.21(react@18.3.1) 2117 | '@mantine/utils': 6.0.21(react@18.3.1) 2118 | dayjs: 1.11.11 2119 | react: 18.3.1 2120 | 2121 | '@mantine/form@7.10.1(react@18.3.1)': 2122 | dependencies: 2123 | fast-deep-equal: 3.1.3 2124 | klona: 2.0.6 2125 | react: 18.3.1 2126 | 2127 | '@mantine/hooks@6.0.21(react@18.3.1)': 2128 | dependencies: 2129 | react: 18.3.1 2130 | 2131 | '@mantine/modals@6.0.21(@mantine/core@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2132 | dependencies: 2133 | '@mantine/core': 6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(@mantine/hooks@6.0.21(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2134 | '@mantine/hooks': 6.0.21(react@18.3.1) 2135 | '@mantine/utils': 6.0.21(react@18.3.1) 2136 | react: 18.3.1 2137 | react-dom: 18.3.1(react@18.3.1) 2138 | 2139 | '@mantine/styles@6.0.21(@emotion/react@11.11.4(@types/react@18.3.3)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2140 | dependencies: 2141 | '@emotion/react': 11.11.4(@types/react@18.3.3)(react@18.3.1) 2142 | clsx: 1.1.1 2143 | csstype: 3.0.9 2144 | react: 18.3.1 2145 | react-dom: 18.3.1(react@18.3.1) 2146 | 2147 | '@mantine/utils@6.0.21(react@18.3.1)': 2148 | dependencies: 2149 | react: 18.3.1 2150 | 2151 | '@nodelib/fs.scandir@2.1.5': 2152 | dependencies: 2153 | '@nodelib/fs.stat': 2.0.5 2154 | run-parallel: 1.2.0 2155 | 2156 | '@nodelib/fs.stat@2.0.5': {} 2157 | 2158 | '@nodelib/fs.walk@1.2.8': 2159 | dependencies: 2160 | '@nodelib/fs.scandir': 2.1.5 2161 | fastq: 1.17.1 2162 | 2163 | '@radix-ui/number@1.0.0': 2164 | dependencies: 2165 | '@babel/runtime': 7.24.7 2166 | 2167 | '@radix-ui/primitive@1.0.0': 2168 | dependencies: 2169 | '@babel/runtime': 7.24.7 2170 | 2171 | '@radix-ui/react-compose-refs@1.0.0(react@18.3.1)': 2172 | dependencies: 2173 | '@babel/runtime': 7.24.7 2174 | react: 18.3.1 2175 | 2176 | '@radix-ui/react-context@1.0.0(react@18.3.1)': 2177 | dependencies: 2178 | '@babel/runtime': 7.24.7 2179 | react: 18.3.1 2180 | 2181 | '@radix-ui/react-direction@1.0.0(react@18.3.1)': 2182 | dependencies: 2183 | '@babel/runtime': 7.24.7 2184 | react: 18.3.1 2185 | 2186 | '@radix-ui/react-presence@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2187 | dependencies: 2188 | '@babel/runtime': 7.24.7 2189 | '@radix-ui/react-compose-refs': 1.0.0(react@18.3.1) 2190 | '@radix-ui/react-use-layout-effect': 1.0.0(react@18.3.1) 2191 | react: 18.3.1 2192 | react-dom: 18.3.1(react@18.3.1) 2193 | 2194 | '@radix-ui/react-primitive@1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2195 | dependencies: 2196 | '@babel/runtime': 7.24.7 2197 | '@radix-ui/react-slot': 1.0.1(react@18.3.1) 2198 | react: 18.3.1 2199 | react-dom: 18.3.1(react@18.3.1) 2200 | 2201 | '@radix-ui/react-scroll-area@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2202 | dependencies: 2203 | '@babel/runtime': 7.24.7 2204 | '@radix-ui/number': 1.0.0 2205 | '@radix-ui/primitive': 1.0.0 2206 | '@radix-ui/react-compose-refs': 1.0.0(react@18.3.1) 2207 | '@radix-ui/react-context': 1.0.0(react@18.3.1) 2208 | '@radix-ui/react-direction': 1.0.0(react@18.3.1) 2209 | '@radix-ui/react-presence': 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2210 | '@radix-ui/react-primitive': 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2211 | '@radix-ui/react-use-callback-ref': 1.0.0(react@18.3.1) 2212 | '@radix-ui/react-use-layout-effect': 1.0.0(react@18.3.1) 2213 | react: 18.3.1 2214 | react-dom: 18.3.1(react@18.3.1) 2215 | 2216 | '@radix-ui/react-slot@1.0.1(react@18.3.1)': 2217 | dependencies: 2218 | '@babel/runtime': 7.24.7 2219 | '@radix-ui/react-compose-refs': 1.0.0(react@18.3.1) 2220 | react: 18.3.1 2221 | 2222 | '@radix-ui/react-use-callback-ref@1.0.0(react@18.3.1)': 2223 | dependencies: 2224 | '@babel/runtime': 7.24.7 2225 | react: 18.3.1 2226 | 2227 | '@radix-ui/react-use-layout-effect@1.0.0(react@18.3.1)': 2228 | dependencies: 2229 | '@babel/runtime': 7.24.7 2230 | react: 18.3.1 2231 | 2232 | '@rollup/rollup-android-arm-eabi@4.18.0': 2233 | optional: true 2234 | 2235 | '@rollup/rollup-android-arm64@4.18.0': 2236 | optional: true 2237 | 2238 | '@rollup/rollup-darwin-arm64@4.18.0': 2239 | optional: true 2240 | 2241 | '@rollup/rollup-darwin-x64@4.18.0': 2242 | optional: true 2243 | 2244 | '@rollup/rollup-linux-arm-gnueabihf@4.18.0': 2245 | optional: true 2246 | 2247 | '@rollup/rollup-linux-arm-musleabihf@4.18.0': 2248 | optional: true 2249 | 2250 | '@rollup/rollup-linux-arm64-gnu@4.18.0': 2251 | optional: true 2252 | 2253 | '@rollup/rollup-linux-arm64-musl@4.18.0': 2254 | optional: true 2255 | 2256 | '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': 2257 | optional: true 2258 | 2259 | '@rollup/rollup-linux-riscv64-gnu@4.18.0': 2260 | optional: true 2261 | 2262 | '@rollup/rollup-linux-s390x-gnu@4.18.0': 2263 | optional: true 2264 | 2265 | '@rollup/rollup-linux-x64-gnu@4.18.0': 2266 | optional: true 2267 | 2268 | '@rollup/rollup-linux-x64-musl@4.18.0': 2269 | optional: true 2270 | 2271 | '@rollup/rollup-win32-arm64-msvc@4.18.0': 2272 | optional: true 2273 | 2274 | '@rollup/rollup-win32-ia32-msvc@4.18.0': 2275 | optional: true 2276 | 2277 | '@rollup/rollup-win32-x64-msvc@4.18.0': 2278 | optional: true 2279 | 2280 | '@tabler/icons-react@2.47.0(react@18.3.1)': 2281 | dependencies: 2282 | '@tabler/icons': 2.47.0 2283 | prop-types: 15.8.1 2284 | react: 18.3.1 2285 | 2286 | '@tabler/icons@2.47.0': {} 2287 | 2288 | '@types/babel__core@7.20.5': 2289 | dependencies: 2290 | '@babel/parser': 7.24.7 2291 | '@babel/types': 7.24.7 2292 | '@types/babel__generator': 7.6.8 2293 | '@types/babel__template': 7.4.4 2294 | '@types/babel__traverse': 7.20.6 2295 | 2296 | '@types/babel__generator@7.6.8': 2297 | dependencies: 2298 | '@babel/types': 7.24.7 2299 | 2300 | '@types/babel__template@7.4.4': 2301 | dependencies: 2302 | '@babel/parser': 7.24.7 2303 | '@babel/types': 7.24.7 2304 | 2305 | '@types/babel__traverse@7.20.6': 2306 | dependencies: 2307 | '@babel/types': 7.24.7 2308 | 2309 | '@types/estree@1.0.5': {} 2310 | 2311 | '@types/json-schema@7.0.15': {} 2312 | 2313 | '@types/node@20.14.2': 2314 | dependencies: 2315 | undici-types: 5.26.5 2316 | 2317 | '@types/parse-json@4.0.2': {} 2318 | 2319 | '@types/prop-types@15.7.12': {} 2320 | 2321 | '@types/react-dom@18.3.0': 2322 | dependencies: 2323 | '@types/react': 18.3.3 2324 | 2325 | '@types/react@18.3.3': 2326 | dependencies: 2327 | '@types/prop-types': 15.7.12 2328 | csstype: 3.1.3 2329 | 2330 | '@types/semver@7.5.8': {} 2331 | 2332 | '@types/stylis@4.2.5': {} 2333 | 2334 | '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': 2335 | dependencies: 2336 | '@eslint-community/regexpp': 4.10.1 2337 | '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.4.5) 2338 | '@typescript-eslint/scope-manager': 6.21.0 2339 | '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) 2340 | '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) 2341 | '@typescript-eslint/visitor-keys': 6.21.0 2342 | debug: 4.3.5 2343 | eslint: 8.57.0 2344 | graphemer: 1.4.0 2345 | ignore: 5.3.1 2346 | natural-compare: 1.4.0 2347 | semver: 7.6.2 2348 | ts-api-utils: 1.3.0(typescript@5.4.5) 2349 | optionalDependencies: 2350 | typescript: 5.4.5 2351 | transitivePeerDependencies: 2352 | - supports-color 2353 | 2354 | '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5)': 2355 | dependencies: 2356 | '@typescript-eslint/scope-manager': 6.21.0 2357 | '@typescript-eslint/types': 6.21.0 2358 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) 2359 | '@typescript-eslint/visitor-keys': 6.21.0 2360 | debug: 4.3.5 2361 | eslint: 8.57.0 2362 | optionalDependencies: 2363 | typescript: 5.4.5 2364 | transitivePeerDependencies: 2365 | - supports-color 2366 | 2367 | '@typescript-eslint/scope-manager@6.21.0': 2368 | dependencies: 2369 | '@typescript-eslint/types': 6.21.0 2370 | '@typescript-eslint/visitor-keys': 6.21.0 2371 | 2372 | '@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.5)': 2373 | dependencies: 2374 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) 2375 | '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) 2376 | debug: 4.3.5 2377 | eslint: 8.57.0 2378 | ts-api-utils: 1.3.0(typescript@5.4.5) 2379 | optionalDependencies: 2380 | typescript: 5.4.5 2381 | transitivePeerDependencies: 2382 | - supports-color 2383 | 2384 | '@typescript-eslint/types@6.21.0': {} 2385 | 2386 | '@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5)': 2387 | dependencies: 2388 | '@typescript-eslint/types': 6.21.0 2389 | '@typescript-eslint/visitor-keys': 6.21.0 2390 | debug: 4.3.5 2391 | globby: 11.1.0 2392 | is-glob: 4.0.3 2393 | minimatch: 9.0.3 2394 | semver: 7.6.2 2395 | ts-api-utils: 1.3.0(typescript@5.4.5) 2396 | optionalDependencies: 2397 | typescript: 5.4.5 2398 | transitivePeerDependencies: 2399 | - supports-color 2400 | 2401 | '@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5)': 2402 | dependencies: 2403 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2404 | '@types/json-schema': 7.0.15 2405 | '@types/semver': 7.5.8 2406 | '@typescript-eslint/scope-manager': 6.21.0 2407 | '@typescript-eslint/types': 6.21.0 2408 | '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) 2409 | eslint: 8.57.0 2410 | semver: 7.6.2 2411 | transitivePeerDependencies: 2412 | - supports-color 2413 | - typescript 2414 | 2415 | '@typescript-eslint/visitor-keys@6.21.0': 2416 | dependencies: 2417 | '@typescript-eslint/types': 6.21.0 2418 | eslint-visitor-keys: 3.4.3 2419 | 2420 | '@ungap/structured-clone@1.2.0': {} 2421 | 2422 | '@vitejs/plugin-react@4.3.0(vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(sugarss@4.0.1(postcss@8.4.38)))': 2423 | dependencies: 2424 | '@babel/core': 7.24.7 2425 | '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) 2426 | '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) 2427 | '@types/babel__core': 7.20.5 2428 | react-refresh: 0.14.2 2429 | vite: 5.2.13(@types/node@20.14.2)(sass@1.77.4)(sugarss@4.0.1(postcss@8.4.38)) 2430 | transitivePeerDependencies: 2431 | - supports-color 2432 | 2433 | acorn-jsx@5.3.2(acorn@8.11.3): 2434 | dependencies: 2435 | acorn: 8.11.3 2436 | 2437 | acorn@8.11.3: {} 2438 | 2439 | ajv@6.12.6: 2440 | dependencies: 2441 | fast-deep-equal: 3.1.3 2442 | fast-json-stable-stringify: 2.1.0 2443 | json-schema-traverse: 0.4.1 2444 | uri-js: 4.4.1 2445 | 2446 | ansi-regex@5.0.1: {} 2447 | 2448 | ansi-styles@3.2.1: 2449 | dependencies: 2450 | color-convert: 1.9.3 2451 | 2452 | ansi-styles@4.3.0: 2453 | dependencies: 2454 | color-convert: 2.0.1 2455 | 2456 | anymatch@3.1.3: 2457 | dependencies: 2458 | normalize-path: 3.0.0 2459 | picomatch: 2.3.1 2460 | 2461 | argparse@2.0.1: {} 2462 | 2463 | aria-hidden@1.2.4: 2464 | dependencies: 2465 | tslib: 2.6.3 2466 | 2467 | array-union@2.1.0: {} 2468 | 2469 | babel-plugin-macros@3.1.0: 2470 | dependencies: 2471 | '@babel/runtime': 7.24.7 2472 | cosmiconfig: 7.1.0 2473 | resolve: 1.22.8 2474 | 2475 | balanced-match@1.0.2: {} 2476 | 2477 | base64-arraybuffer@1.0.2: {} 2478 | 2479 | binary-extensions@2.3.0: {} 2480 | 2481 | brace-expansion@1.1.11: 2482 | dependencies: 2483 | balanced-match: 1.0.2 2484 | concat-map: 0.0.1 2485 | 2486 | brace-expansion@2.0.1: 2487 | dependencies: 2488 | balanced-match: 1.0.2 2489 | 2490 | braces@3.0.3: 2491 | dependencies: 2492 | fill-range: 7.1.1 2493 | 2494 | browserslist@4.23.1: 2495 | dependencies: 2496 | caniuse-lite: 1.0.30001629 2497 | electron-to-chromium: 1.4.796 2498 | node-releases: 2.0.14 2499 | update-browserslist-db: 1.0.16(browserslist@4.23.1) 2500 | 2501 | callsites@3.1.0: {} 2502 | 2503 | camelcase-css@2.0.1: {} 2504 | 2505 | camelize@1.0.1: {} 2506 | 2507 | caniuse-lite@1.0.30001629: {} 2508 | 2509 | chalk@2.4.2: 2510 | dependencies: 2511 | ansi-styles: 3.2.1 2512 | escape-string-regexp: 1.0.5 2513 | supports-color: 5.5.0 2514 | 2515 | chalk@4.1.2: 2516 | dependencies: 2517 | ansi-styles: 4.3.0 2518 | supports-color: 7.2.0 2519 | 2520 | chokidar@3.6.0: 2521 | dependencies: 2522 | anymatch: 3.1.3 2523 | braces: 3.0.3 2524 | glob-parent: 5.1.2 2525 | is-binary-path: 2.1.0 2526 | is-glob: 4.0.3 2527 | normalize-path: 3.0.0 2528 | readdirp: 3.6.0 2529 | optionalDependencies: 2530 | fsevents: 2.3.3 2531 | 2532 | clsx@1.1.1: {} 2533 | 2534 | color-convert@1.9.3: 2535 | dependencies: 2536 | color-name: 1.1.3 2537 | 2538 | color-convert@2.0.1: 2539 | dependencies: 2540 | color-name: 1.1.4 2541 | 2542 | color-name@1.1.3: {} 2543 | 2544 | color-name@1.1.4: {} 2545 | 2546 | concat-map@0.0.1: {} 2547 | 2548 | convert-source-map@1.9.0: {} 2549 | 2550 | convert-source-map@2.0.0: {} 2551 | 2552 | cosmiconfig@7.1.0: 2553 | dependencies: 2554 | '@types/parse-json': 4.0.2 2555 | import-fresh: 3.3.0 2556 | parse-json: 5.2.0 2557 | path-type: 4.0.0 2558 | yaml: 1.10.2 2559 | 2560 | cross-spawn@7.0.3: 2561 | dependencies: 2562 | path-key: 3.1.1 2563 | shebang-command: 2.0.0 2564 | which: 2.0.2 2565 | 2566 | css-color-keywords@1.0.0: {} 2567 | 2568 | css-line-break@2.1.0: 2569 | dependencies: 2570 | utrie: 1.0.2 2571 | 2572 | css-to-react-native@3.2.0: 2573 | dependencies: 2574 | camelize: 1.0.1 2575 | css-color-keywords: 1.0.0 2576 | postcss-value-parser: 4.2.0 2577 | 2578 | cssesc@3.0.0: {} 2579 | 2580 | csstype@3.0.9: {} 2581 | 2582 | csstype@3.1.3: {} 2583 | 2584 | dayjs@1.11.11: {} 2585 | 2586 | debug@4.3.5: 2587 | dependencies: 2588 | ms: 2.1.2 2589 | 2590 | deep-is@0.1.4: {} 2591 | 2592 | detect-node-es@1.1.0: {} 2593 | 2594 | dir-glob@3.0.1: 2595 | dependencies: 2596 | path-type: 4.0.0 2597 | 2598 | doctrine@3.0.0: 2599 | dependencies: 2600 | esutils: 2.0.3 2601 | 2602 | electron-to-chromium@1.4.796: {} 2603 | 2604 | error-ex@1.3.2: 2605 | dependencies: 2606 | is-arrayish: 0.2.1 2607 | 2608 | esbuild@0.20.2: 2609 | optionalDependencies: 2610 | '@esbuild/aix-ppc64': 0.20.2 2611 | '@esbuild/android-arm': 0.20.2 2612 | '@esbuild/android-arm64': 0.20.2 2613 | '@esbuild/android-x64': 0.20.2 2614 | '@esbuild/darwin-arm64': 0.20.2 2615 | '@esbuild/darwin-x64': 0.20.2 2616 | '@esbuild/freebsd-arm64': 0.20.2 2617 | '@esbuild/freebsd-x64': 0.20.2 2618 | '@esbuild/linux-arm': 0.20.2 2619 | '@esbuild/linux-arm64': 0.20.2 2620 | '@esbuild/linux-ia32': 0.20.2 2621 | '@esbuild/linux-loong64': 0.20.2 2622 | '@esbuild/linux-mips64el': 0.20.2 2623 | '@esbuild/linux-ppc64': 0.20.2 2624 | '@esbuild/linux-riscv64': 0.20.2 2625 | '@esbuild/linux-s390x': 0.20.2 2626 | '@esbuild/linux-x64': 0.20.2 2627 | '@esbuild/netbsd-x64': 0.20.2 2628 | '@esbuild/openbsd-x64': 0.20.2 2629 | '@esbuild/sunos-x64': 0.20.2 2630 | '@esbuild/win32-arm64': 0.20.2 2631 | '@esbuild/win32-ia32': 0.20.2 2632 | '@esbuild/win32-x64': 0.20.2 2633 | 2634 | escalade@3.1.2: {} 2635 | 2636 | escape-string-regexp@1.0.5: {} 2637 | 2638 | escape-string-regexp@4.0.0: {} 2639 | 2640 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): 2641 | dependencies: 2642 | eslint: 8.57.0 2643 | 2644 | eslint-plugin-react-refresh@0.4.7(eslint@8.57.0): 2645 | dependencies: 2646 | eslint: 8.57.0 2647 | 2648 | eslint-scope@7.2.2: 2649 | dependencies: 2650 | esrecurse: 4.3.0 2651 | estraverse: 5.3.0 2652 | 2653 | eslint-visitor-keys@3.4.3: {} 2654 | 2655 | eslint@8.57.0: 2656 | dependencies: 2657 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2658 | '@eslint-community/regexpp': 4.10.1 2659 | '@eslint/eslintrc': 2.1.4 2660 | '@eslint/js': 8.57.0 2661 | '@humanwhocodes/config-array': 0.11.14 2662 | '@humanwhocodes/module-importer': 1.0.1 2663 | '@nodelib/fs.walk': 1.2.8 2664 | '@ungap/structured-clone': 1.2.0 2665 | ajv: 6.12.6 2666 | chalk: 4.1.2 2667 | cross-spawn: 7.0.3 2668 | debug: 4.3.5 2669 | doctrine: 3.0.0 2670 | escape-string-regexp: 4.0.0 2671 | eslint-scope: 7.2.2 2672 | eslint-visitor-keys: 3.4.3 2673 | espree: 9.6.1 2674 | esquery: 1.5.0 2675 | esutils: 2.0.3 2676 | fast-deep-equal: 3.1.3 2677 | file-entry-cache: 6.0.1 2678 | find-up: 5.0.0 2679 | glob-parent: 6.0.2 2680 | globals: 13.24.0 2681 | graphemer: 1.4.0 2682 | ignore: 5.3.1 2683 | imurmurhash: 0.1.4 2684 | is-glob: 4.0.3 2685 | is-path-inside: 3.0.3 2686 | js-yaml: 4.1.0 2687 | json-stable-stringify-without-jsonify: 1.0.1 2688 | levn: 0.4.1 2689 | lodash.merge: 4.6.2 2690 | minimatch: 3.1.2 2691 | natural-compare: 1.4.0 2692 | optionator: 0.9.4 2693 | strip-ansi: 6.0.1 2694 | text-table: 0.2.0 2695 | transitivePeerDependencies: 2696 | - supports-color 2697 | 2698 | espree@9.6.1: 2699 | dependencies: 2700 | acorn: 8.11.3 2701 | acorn-jsx: 5.3.2(acorn@8.11.3) 2702 | eslint-visitor-keys: 3.4.3 2703 | 2704 | esquery@1.5.0: 2705 | dependencies: 2706 | estraverse: 5.3.0 2707 | 2708 | esrecurse@4.3.0: 2709 | dependencies: 2710 | estraverse: 5.3.0 2711 | 2712 | estraverse@5.3.0: {} 2713 | 2714 | esutils@2.0.3: {} 2715 | 2716 | fast-deep-equal@3.1.3: {} 2717 | 2718 | fast-glob@3.3.2: 2719 | dependencies: 2720 | '@nodelib/fs.stat': 2.0.5 2721 | '@nodelib/fs.walk': 1.2.8 2722 | glob-parent: 5.1.2 2723 | merge2: 1.4.1 2724 | micromatch: 4.0.7 2725 | 2726 | fast-json-stable-stringify@2.1.0: {} 2727 | 2728 | fast-levenshtein@2.0.6: {} 2729 | 2730 | fastq@1.17.1: 2731 | dependencies: 2732 | reusify: 1.0.4 2733 | 2734 | file-entry-cache@6.0.1: 2735 | dependencies: 2736 | flat-cache: 3.2.0 2737 | 2738 | fill-range@7.1.1: 2739 | dependencies: 2740 | to-regex-range: 5.0.1 2741 | 2742 | find-root@1.1.0: {} 2743 | 2744 | find-up@5.0.0: 2745 | dependencies: 2746 | locate-path: 6.0.0 2747 | path-exists: 4.0.0 2748 | 2749 | flat-cache@3.2.0: 2750 | dependencies: 2751 | flatted: 3.3.1 2752 | keyv: 4.5.4 2753 | rimraf: 3.0.2 2754 | 2755 | flatted@3.3.1: {} 2756 | 2757 | fs.realpath@1.0.0: {} 2758 | 2759 | fsevents@2.3.3: 2760 | optional: true 2761 | 2762 | function-bind@1.1.2: {} 2763 | 2764 | gensync@1.0.0-beta.2: {} 2765 | 2766 | get-nonce@1.0.1: {} 2767 | 2768 | glob-parent@5.1.2: 2769 | dependencies: 2770 | is-glob: 4.0.3 2771 | 2772 | glob-parent@6.0.2: 2773 | dependencies: 2774 | is-glob: 4.0.3 2775 | 2776 | glob@7.2.3: 2777 | dependencies: 2778 | fs.realpath: 1.0.0 2779 | inflight: 1.0.6 2780 | inherits: 2.0.4 2781 | minimatch: 3.1.2 2782 | once: 1.4.0 2783 | path-is-absolute: 1.0.1 2784 | 2785 | globals@11.12.0: {} 2786 | 2787 | globals@13.24.0: 2788 | dependencies: 2789 | type-fest: 0.20.2 2790 | 2791 | globby@11.1.0: 2792 | dependencies: 2793 | array-union: 2.1.0 2794 | dir-glob: 3.0.1 2795 | fast-glob: 3.3.2 2796 | ignore: 5.3.1 2797 | merge2: 1.4.1 2798 | slash: 3.0.0 2799 | 2800 | graphemer@1.4.0: {} 2801 | 2802 | has-flag@3.0.0: {} 2803 | 2804 | has-flag@4.0.0: {} 2805 | 2806 | hasown@2.0.2: 2807 | dependencies: 2808 | function-bind: 1.1.2 2809 | 2810 | hoist-non-react-statics@3.3.2: 2811 | dependencies: 2812 | react-is: 16.13.1 2813 | 2814 | html2canvas@1.4.1: 2815 | dependencies: 2816 | css-line-break: 2.1.0 2817 | text-segmentation: 1.0.3 2818 | 2819 | ignore@5.3.1: {} 2820 | 2821 | immutable@4.3.6: {} 2822 | 2823 | import-fresh@3.3.0: 2824 | dependencies: 2825 | parent-module: 1.0.1 2826 | resolve-from: 4.0.0 2827 | 2828 | imurmurhash@0.1.4: {} 2829 | 2830 | inflight@1.0.6: 2831 | dependencies: 2832 | once: 1.4.0 2833 | wrappy: 1.0.2 2834 | 2835 | inherits@2.0.4: {} 2836 | 2837 | invariant@2.2.4: 2838 | dependencies: 2839 | loose-envify: 1.4.0 2840 | 2841 | is-arrayish@0.2.1: {} 2842 | 2843 | is-binary-path@2.1.0: 2844 | dependencies: 2845 | binary-extensions: 2.3.0 2846 | 2847 | is-core-module@2.13.1: 2848 | dependencies: 2849 | hasown: 2.0.2 2850 | 2851 | is-extglob@2.1.1: {} 2852 | 2853 | is-glob@4.0.3: 2854 | dependencies: 2855 | is-extglob: 2.1.1 2856 | 2857 | is-number@7.0.0: {} 2858 | 2859 | is-path-inside@3.0.3: {} 2860 | 2861 | isexe@2.0.0: {} 2862 | 2863 | js-tokens@4.0.0: {} 2864 | 2865 | js-yaml@4.1.0: 2866 | dependencies: 2867 | argparse: 2.0.1 2868 | 2869 | jsesc@2.5.2: {} 2870 | 2871 | json-buffer@3.0.1: {} 2872 | 2873 | json-parse-even-better-errors@2.3.1: {} 2874 | 2875 | json-schema-traverse@0.4.1: {} 2876 | 2877 | json-stable-stringify-without-jsonify@1.0.1: {} 2878 | 2879 | json5@2.2.3: {} 2880 | 2881 | keyv@4.5.4: 2882 | dependencies: 2883 | json-buffer: 3.0.1 2884 | 2885 | klona@2.0.6: {} 2886 | 2887 | levn@0.4.1: 2888 | dependencies: 2889 | prelude-ls: 1.2.1 2890 | type-check: 0.4.0 2891 | 2892 | lines-and-columns@1.2.4: {} 2893 | 2894 | locate-path@6.0.0: 2895 | dependencies: 2896 | p-locate: 5.0.0 2897 | 2898 | lodash.merge@4.6.2: {} 2899 | 2900 | loose-envify@1.4.0: 2901 | dependencies: 2902 | js-tokens: 4.0.0 2903 | 2904 | lru-cache@5.1.1: 2905 | dependencies: 2906 | yallist: 3.1.1 2907 | 2908 | merge2@1.4.1: {} 2909 | 2910 | micromatch@4.0.7: 2911 | dependencies: 2912 | braces: 3.0.3 2913 | picomatch: 2.3.1 2914 | 2915 | minimatch@3.1.2: 2916 | dependencies: 2917 | brace-expansion: 1.1.11 2918 | 2919 | minimatch@9.0.3: 2920 | dependencies: 2921 | brace-expansion: 2.0.1 2922 | 2923 | ms@2.1.2: {} 2924 | 2925 | nanoid@3.3.7: {} 2926 | 2927 | natural-compare@1.4.0: {} 2928 | 2929 | node-releases@2.0.14: {} 2930 | 2931 | normalize-path@3.0.0: {} 2932 | 2933 | object-assign@4.1.1: {} 2934 | 2935 | once@1.4.0: 2936 | dependencies: 2937 | wrappy: 1.0.2 2938 | 2939 | optionator@0.9.4: 2940 | dependencies: 2941 | deep-is: 0.1.4 2942 | fast-levenshtein: 2.0.6 2943 | levn: 0.4.1 2944 | prelude-ls: 1.2.1 2945 | type-check: 0.4.0 2946 | word-wrap: 1.2.5 2947 | 2948 | p-limit@3.1.0: 2949 | dependencies: 2950 | yocto-queue: 0.1.0 2951 | 2952 | p-locate@5.0.0: 2953 | dependencies: 2954 | p-limit: 3.1.0 2955 | 2956 | parent-module@1.0.1: 2957 | dependencies: 2958 | callsites: 3.1.0 2959 | 2960 | parse-json@5.2.0: 2961 | dependencies: 2962 | '@babel/code-frame': 7.24.7 2963 | error-ex: 1.3.2 2964 | json-parse-even-better-errors: 2.3.1 2965 | lines-and-columns: 1.2.4 2966 | 2967 | path-exists@4.0.0: {} 2968 | 2969 | path-is-absolute@1.0.1: {} 2970 | 2971 | path-key@3.1.1: {} 2972 | 2973 | path-parse@1.0.7: {} 2974 | 2975 | path-type@4.0.0: {} 2976 | 2977 | picocolors@1.0.1: {} 2978 | 2979 | picomatch@2.3.1: {} 2980 | 2981 | postcss-js@4.0.1(postcss@8.4.38): 2982 | dependencies: 2983 | camelcase-css: 2.0.1 2984 | postcss: 8.4.38 2985 | 2986 | postcss-mixins@9.0.4(postcss@8.4.38): 2987 | dependencies: 2988 | fast-glob: 3.3.2 2989 | postcss: 8.4.38 2990 | postcss-js: 4.0.1(postcss@8.4.38) 2991 | postcss-simple-vars: 7.0.1(postcss@8.4.38) 2992 | sugarss: 4.0.1(postcss@8.4.38) 2993 | 2994 | postcss-nested@6.0.1(postcss@8.4.38): 2995 | dependencies: 2996 | postcss: 8.4.38 2997 | postcss-selector-parser: 6.1.0 2998 | 2999 | postcss-preset-mantine@1.15.0(postcss@8.4.38): 3000 | dependencies: 3001 | postcss: 8.4.38 3002 | postcss-mixins: 9.0.4(postcss@8.4.38) 3003 | postcss-nested: 6.0.1(postcss@8.4.38) 3004 | 3005 | postcss-selector-parser@6.1.0: 3006 | dependencies: 3007 | cssesc: 3.0.0 3008 | util-deprecate: 1.0.2 3009 | 3010 | postcss-simple-vars@7.0.1(postcss@8.4.38): 3011 | dependencies: 3012 | postcss: 8.4.38 3013 | 3014 | postcss-value-parser@4.2.0: {} 3015 | 3016 | postcss@8.4.38: 3017 | dependencies: 3018 | nanoid: 3.3.7 3019 | picocolors: 1.0.1 3020 | source-map-js: 1.2.0 3021 | 3022 | prelude-ls@1.2.1: {} 3023 | 3024 | prop-types@15.8.1: 3025 | dependencies: 3026 | loose-envify: 1.4.0 3027 | object-assign: 4.1.1 3028 | react-is: 16.13.1 3029 | 3030 | punycode@2.3.1: {} 3031 | 3032 | queue-microtask@1.2.3: {} 3033 | 3034 | react-dom@18.3.1(react@18.3.1): 3035 | dependencies: 3036 | loose-envify: 1.4.0 3037 | react: 18.3.1 3038 | scheduler: 0.23.2 3039 | 3040 | react-icons@5.2.1(react@18.3.1): 3041 | dependencies: 3042 | react: 18.3.1 3043 | 3044 | react-is@16.13.1: {} 3045 | 3046 | react-refresh@0.14.2: {} 3047 | 3048 | react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): 3049 | dependencies: 3050 | react: 18.3.1 3051 | react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 3052 | tslib: 2.6.3 3053 | optionalDependencies: 3054 | '@types/react': 18.3.3 3055 | 3056 | react-remove-scroll@2.5.10(@types/react@18.3.3)(react@18.3.1): 3057 | dependencies: 3058 | react: 18.3.1 3059 | react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) 3060 | react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) 3061 | tslib: 2.6.3 3062 | use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) 3063 | use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) 3064 | optionalDependencies: 3065 | '@types/react': 18.3.3 3066 | 3067 | react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): 3068 | dependencies: 3069 | get-nonce: 1.0.1 3070 | invariant: 2.2.4 3071 | react: 18.3.1 3072 | tslib: 2.6.3 3073 | optionalDependencies: 3074 | '@types/react': 18.3.3 3075 | 3076 | react-textarea-autosize@8.3.4(@types/react@18.3.3)(react@18.3.1): 3077 | dependencies: 3078 | '@babel/runtime': 7.24.7 3079 | react: 18.3.1 3080 | use-composed-ref: 1.3.0(react@18.3.1) 3081 | use-latest: 1.2.1(@types/react@18.3.3)(react@18.3.1) 3082 | transitivePeerDependencies: 3083 | - '@types/react' 3084 | 3085 | react@18.3.1: 3086 | dependencies: 3087 | loose-envify: 1.4.0 3088 | 3089 | readdirp@3.6.0: 3090 | dependencies: 3091 | picomatch: 2.3.1 3092 | 3093 | regenerator-runtime@0.14.1: {} 3094 | 3095 | resolve-from@4.0.0: {} 3096 | 3097 | resolve@1.22.8: 3098 | dependencies: 3099 | is-core-module: 2.13.1 3100 | path-parse: 1.0.7 3101 | supports-preserve-symlinks-flag: 1.0.0 3102 | 3103 | reusify@1.0.4: {} 3104 | 3105 | rimraf@3.0.2: 3106 | dependencies: 3107 | glob: 7.2.3 3108 | 3109 | rollup@4.18.0: 3110 | dependencies: 3111 | '@types/estree': 1.0.5 3112 | optionalDependencies: 3113 | '@rollup/rollup-android-arm-eabi': 4.18.0 3114 | '@rollup/rollup-android-arm64': 4.18.0 3115 | '@rollup/rollup-darwin-arm64': 4.18.0 3116 | '@rollup/rollup-darwin-x64': 4.18.0 3117 | '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 3118 | '@rollup/rollup-linux-arm-musleabihf': 4.18.0 3119 | '@rollup/rollup-linux-arm64-gnu': 4.18.0 3120 | '@rollup/rollup-linux-arm64-musl': 4.18.0 3121 | '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 3122 | '@rollup/rollup-linux-riscv64-gnu': 4.18.0 3123 | '@rollup/rollup-linux-s390x-gnu': 4.18.0 3124 | '@rollup/rollup-linux-x64-gnu': 4.18.0 3125 | '@rollup/rollup-linux-x64-musl': 4.18.0 3126 | '@rollup/rollup-win32-arm64-msvc': 4.18.0 3127 | '@rollup/rollup-win32-ia32-msvc': 4.18.0 3128 | '@rollup/rollup-win32-x64-msvc': 4.18.0 3129 | fsevents: 2.3.3 3130 | 3131 | run-parallel@1.2.0: 3132 | dependencies: 3133 | queue-microtask: 1.2.3 3134 | 3135 | sass@1.77.4: 3136 | dependencies: 3137 | chokidar: 3.6.0 3138 | immutable: 4.3.6 3139 | source-map-js: 1.2.0 3140 | 3141 | scheduler@0.23.2: 3142 | dependencies: 3143 | loose-envify: 1.4.0 3144 | 3145 | semver@6.3.1: {} 3146 | 3147 | semver@7.6.2: {} 3148 | 3149 | shallowequal@1.1.0: {} 3150 | 3151 | shebang-command@2.0.0: 3152 | dependencies: 3153 | shebang-regex: 3.0.0 3154 | 3155 | shebang-regex@3.0.0: {} 3156 | 3157 | slash@3.0.0: {} 3158 | 3159 | source-map-js@1.2.0: {} 3160 | 3161 | source-map@0.5.7: {} 3162 | 3163 | strip-ansi@6.0.1: 3164 | dependencies: 3165 | ansi-regex: 5.0.1 3166 | 3167 | strip-json-comments@3.1.1: {} 3168 | 3169 | styled-components@6.1.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 3170 | dependencies: 3171 | '@emotion/is-prop-valid': 1.2.2 3172 | '@emotion/unitless': 0.8.1 3173 | '@types/stylis': 4.2.5 3174 | css-to-react-native: 3.2.0 3175 | csstype: 3.1.3 3176 | postcss: 8.4.38 3177 | react: 18.3.1 3178 | react-dom: 18.3.1(react@18.3.1) 3179 | shallowequal: 1.1.0 3180 | stylis: 4.3.2 3181 | tslib: 2.6.2 3182 | 3183 | stylis@4.2.0: {} 3184 | 3185 | stylis@4.3.2: {} 3186 | 3187 | sugarss@4.0.1(postcss@8.4.38): 3188 | dependencies: 3189 | postcss: 8.4.38 3190 | 3191 | supports-color@5.5.0: 3192 | dependencies: 3193 | has-flag: 3.0.0 3194 | 3195 | supports-color@7.2.0: 3196 | dependencies: 3197 | has-flag: 4.0.0 3198 | 3199 | supports-preserve-symlinks-flag@1.0.0: {} 3200 | 3201 | tabbable@6.2.0: {} 3202 | 3203 | text-segmentation@1.0.3: 3204 | dependencies: 3205 | utrie: 1.0.2 3206 | 3207 | text-table@0.2.0: {} 3208 | 3209 | to-fast-properties@2.0.0: {} 3210 | 3211 | to-regex-range@5.0.1: 3212 | dependencies: 3213 | is-number: 7.0.0 3214 | 3215 | ts-api-utils@1.3.0(typescript@5.4.5): 3216 | dependencies: 3217 | typescript: 5.4.5 3218 | 3219 | tslib@2.6.2: {} 3220 | 3221 | tslib@2.6.3: {} 3222 | 3223 | type-check@0.4.0: 3224 | dependencies: 3225 | prelude-ls: 1.2.1 3226 | 3227 | type-fest@0.20.2: {} 3228 | 3229 | typescript@5.4.5: {} 3230 | 3231 | undici-types@5.26.5: {} 3232 | 3233 | update-browserslist-db@1.0.16(browserslist@4.23.1): 3234 | dependencies: 3235 | browserslist: 4.23.1 3236 | escalade: 3.1.2 3237 | picocolors: 1.0.1 3238 | 3239 | uri-js@4.4.1: 3240 | dependencies: 3241 | punycode: 2.3.1 3242 | 3243 | use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): 3244 | dependencies: 3245 | react: 18.3.1 3246 | tslib: 2.6.3 3247 | optionalDependencies: 3248 | '@types/react': 18.3.3 3249 | 3250 | use-composed-ref@1.3.0(react@18.3.1): 3251 | dependencies: 3252 | react: 18.3.1 3253 | 3254 | use-isomorphic-layout-effect@1.1.2(@types/react@18.3.3)(react@18.3.1): 3255 | dependencies: 3256 | react: 18.3.1 3257 | optionalDependencies: 3258 | '@types/react': 18.3.3 3259 | 3260 | use-latest@1.2.1(@types/react@18.3.3)(react@18.3.1): 3261 | dependencies: 3262 | react: 18.3.1 3263 | use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.3)(react@18.3.1) 3264 | optionalDependencies: 3265 | '@types/react': 18.3.3 3266 | 3267 | use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): 3268 | dependencies: 3269 | detect-node-es: 1.1.0 3270 | react: 18.3.1 3271 | tslib: 2.6.3 3272 | optionalDependencies: 3273 | '@types/react': 18.3.3 3274 | 3275 | util-deprecate@1.0.2: {} 3276 | 3277 | utrie@1.0.2: 3278 | dependencies: 3279 | base64-arraybuffer: 1.0.2 3280 | 3281 | vite@5.2.13(@types/node@20.14.2)(sass@1.77.4)(sugarss@4.0.1(postcss@8.4.38)): 3282 | dependencies: 3283 | esbuild: 0.20.2 3284 | postcss: 8.4.38 3285 | rollup: 4.18.0 3286 | optionalDependencies: 3287 | '@types/node': 20.14.2 3288 | fsevents: 2.3.3 3289 | sass: 1.77.4 3290 | sugarss: 4.0.1(postcss@8.4.38) 3291 | 3292 | which@2.0.2: 3293 | dependencies: 3294 | isexe: 2.0.0 3295 | 3296 | word-wrap@1.2.5: {} 3297 | 3298 | wrappy@1.0.2: {} 3299 | 3300 | yallist@3.1.1: {} 3301 | 3302 | yaml@1.10.2: {} 3303 | 3304 | yocto-queue@0.1.0: {} 3305 | --------------------------------------------------------------------------------