├── bun.lockb ├── .gitattributes ├── public ├── favicon.ico ├── assets │ ├── hbd2.mp3 │ ├── hbd.lottie │ ├── korea-hbd.mp3 │ └── confetti.lottie ├── favicon-16x16.png ├── favicon-32x32.png ├── mstile-150x150.png ├── apple-touch-icon.png ├── android-chrome-192x192.png ├── android-chrome-384x384.png ├── browserconfig.xml ├── site.webmanifest ├── safari-pinned-tab.svg └── vite.svg ├── .codesandbox ├── icon.png ├── template.json └── tasks.json ├── src ├── assets │ ├── images │ │ ├── logo.jpg │ │ ├── logo.png │ │ └── urbanbrush-20210210104354908637.jpg │ ├── fonts │ │ └── Montserrat │ │ │ ├── static │ │ │ ├── Montserrat-Black.ttf │ │ │ ├── Montserrat-Bold.ttf │ │ │ ├── Montserrat-Italic.ttf │ │ │ ├── Montserrat-Light.ttf │ │ │ ├── Montserrat-Medium.ttf │ │ │ ├── Montserrat-Thin.ttf │ │ │ ├── Montserrat-Regular.ttf │ │ │ ├── Montserrat-SemiBold.ttf │ │ │ ├── Montserrat-BlackItalic.ttf │ │ │ ├── Montserrat-BoldItalic.ttf │ │ │ ├── Montserrat-ExtraBold.ttf │ │ │ ├── Montserrat-ExtraLight.ttf │ │ │ ├── Montserrat-LightItalic.ttf │ │ │ ├── Montserrat-ThinItalic.ttf │ │ │ ├── Montserrat-MediumItalic.ttf │ │ │ ├── Montserrat-ExtraBoldItalic.ttf │ │ │ ├── Montserrat-ExtraLightItalic.ttf │ │ │ └── Montserrat-SemiBoldItalic.ttf │ │ │ ├── Montserrat-VariableFont_wght.ttf │ │ │ ├── Montserrat-Italic-VariableFont_wght.ttf │ │ │ ├── README.txt │ │ │ └── OFL.txt │ └── react.svg ├── vite-env.d.ts ├── main.tsx ├── components │ ├── Cake │ │ └── index.tsx │ ├── Name │ │ └── index.tsx │ └── CakeActions │ │ └── index.tsx ├── App.css ├── index.scss └── App.tsx ├── vercel.json ├── .devcontainer └── devcontainer.json ├── tsconfig.node.json ├── .gitignore ├── .eslintrc.cjs ├── tsconfig.json ├── vite.config.ts ├── index.html ├── LICENSE ├── package.json ├── README.md ├── .github └── workflows │ └── deploy.yml └── pnpm-lock.yaml /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/bun.lockb -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /.codesandbox/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/.codesandbox/icon.png -------------------------------------------------------------------------------- /public/assets/hbd2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/assets/hbd2.mp3 -------------------------------------------------------------------------------- /public/assets/hbd.lottie: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/assets/hbd.lottie -------------------------------------------------------------------------------- /public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/favicon-32x32.png -------------------------------------------------------------------------------- /public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/mstile-150x150.png -------------------------------------------------------------------------------- /src/assets/images/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/images/logo.jpg -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/images/logo.png -------------------------------------------------------------------------------- /public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/apple-touch-icon.png -------------------------------------------------------------------------------- /public/assets/korea-hbd.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/assets/korea-hbd.mp3 -------------------------------------------------------------------------------- /public/assets/confetti.lottie: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/assets/confetti.lottie -------------------------------------------------------------------------------- /public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /public/android-chrome-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/public/android-chrome-384x384.png -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "public": false, 4 | "github": { 5 | "enabled": false 6 | } 7 | } -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Devcontainer", 3 | "image": "ghcr.io/codesandbox/devcontainers/typescript-node:latest" 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/images/urbanbrush-20210210104354908637.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/images/urbanbrush-20210210104354908637.jpg -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Black.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Bold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Italic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Light.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Medium.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Thin.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-SemiBold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/Montserrat-VariableFont_wght.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-BlackItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-BoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-ExtraBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-ExtraBold.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-ExtraLight.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-LightItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-ThinItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-MediumItalic.ttf -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace JSX { 4 | interface IntrinsicElements { 5 | "dotlottie-player": unknown; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-ExtraBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-ExtraBoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/static/Montserrat-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/static/Montserrat-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chnirt/birthday-cake/HEAD/src/assets/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": ["vite.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.codesandbox/template.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "React (Vite + TS)", 3 | "description": "React running from the Vite dev server!", 4 | "iconUrl": "https://github.com/codesandbox/sandbox-templates/blob/main/react-vite-ts/.codesandbox/icon.png?raw=true", 5 | "tags": ["react", "vite", "javascript", "typescript"], 6 | "published": true 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /src/main.tsx: -------------------------------------------------------------------------------- 1 | import "regenerator-runtime/runtime"; 2 | import React from "react"; 3 | import ReactDOM from "react-dom/client"; 4 | import App from "./App.tsx"; 5 | import "./index.scss"; 6 | import { ToastContainer } from "react-toastify"; 7 | import "react-toastify/dist/ReactToastify.css"; 8 | 9 | ReactDOM.createRoot(document.getElementById("root")!).render( 10 | 11 | 12 | 13 | 14 | ); 15 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: [ 5 | "eslint:recommended", 6 | "plugin:@typescript-eslint/recommended", 7 | "plugin:react-hooks/recommended", 8 | ], 9 | ignorePatterns: ["dist", ".eslintrc.cjs"], 10 | parser: "@typescript-eslint/parser", 11 | plugins: ["react-refresh"], 12 | rules: { 13 | "react-refresh/only-export-components": [ 14 | "warn", 15 | { allowConstantExport: true }, 16 | ], 17 | }, 18 | }; 19 | -------------------------------------------------------------------------------- /public/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-384x384.png", 12 | "sizes": "384x384", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /src/components/Cake/index.tsx: -------------------------------------------------------------------------------- 1 | export const Cake = ({ candleVisible }: { candleVisible: boolean }) => { 2 | return ( 3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | {candleVisible ?
: null} 14 |
15 |
16 | ); 17 | }; 18 | -------------------------------------------------------------------------------- /public/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.14, written by Peter Selinger 2001-2017 9 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true 22 | }, 23 | "include": ["src"], 24 | "references": [{ "path": "./tsconfig.node.json" }] 25 | } 26 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | text-align: center; 5 | } 6 | 7 | .logo { 8 | height: 6em; 9 | padding: 1.5em; 10 | will-change: filter; 11 | transition: filter 300ms; 12 | } 13 | .logo:hover { 14 | filter: drop-shadow(0 0 2em #646cffaa); 15 | } 16 | .logo.react:hover { 17 | filter: drop-shadow(0 0 2em #61dafbaa); 18 | } 19 | 20 | @keyframes logo-spin { 21 | from { 22 | transform: rotate(0deg); 23 | } 24 | to { 25 | transform: rotate(360deg); 26 | } 27 | } 28 | 29 | @media (prefers-reduced-motion: no-preference) { 30 | a:nth-of-type(2) .logo { 31 | animation: logo-spin infinite 20s linear; 32 | } 33 | } 34 | 35 | .card { 36 | padding: 2em; 37 | } 38 | 39 | .read-the-docs { 40 | color: #888; 41 | } 42 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import react from "@vitejs/plugin-react"; 3 | import version from "vite-plugin-package-version"; 4 | 5 | // https://vitejs.dev/config/ 6 | export default defineConfig({ 7 | plugins: [react(), version()], 8 | build: { 9 | rollupOptions: { 10 | output: { 11 | // manualChunks(id) { 12 | // if (id.includes("node_modules")) { 13 | // return id 14 | // .toString() 15 | // .split("node_modules/")[1] 16 | // .split("/")[0] 17 | // .toString(); 18 | // } 19 | // }, 20 | manualChunks: { 21 | // Specify manual chunk names and modules 22 | react: ["react", "react-dom"], 23 | lottie: ["react-lottie"], 24 | }, 25 | }, 26 | }, 27 | }, 28 | }); 29 | -------------------------------------------------------------------------------- /.codesandbox/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // These tasks will run in order when initializing your CodeSandbox project. 3 | "setupTasks": [ 4 | { 5 | "name": "Install Dependencies", 6 | "command": "pnpm install --force" 7 | } 8 | ], 9 | 10 | // These tasks can be run from CodeSandbox. Running one will open a log in the app. 11 | "tasks": { 12 | "dev": { 13 | "name": "dev", 14 | "command": "pnpm dev", 15 | "runAtStart": true, 16 | "preview": { 17 | "port": 5173 18 | } 19 | }, 20 | "build": { 21 | "name": "build", 22 | "command": "pnpm build", 23 | "runAtStart": false 24 | }, 25 | "preview": { 26 | "name": "preview", 27 | "command": "pnpm preview", 28 | "runAtStart": false 29 | }, 30 | "install": { 31 | "name": "install dependencies", 32 | "command": "pnpm install" 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Birthday Cake 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Chin Trinh 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "birthday-cake", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@dotlottie/player-component": "^2.7.12", 14 | "@types/react-lottie": "1.2.10", 15 | "react": "^18.2.0", 16 | "react-audio-player": "0.17.0", 17 | "react-copy-to-clipboard": "^5.1.0", 18 | "react-dom": "^18.2.0", 19 | "react-icons": "^5.1.0", 20 | "react-joyride": "^2.8.1", 21 | "react-lottie": "1.2.4", 22 | "react-toastify": "^10.0.5", 23 | "regenerator-runtime": "0.14.1", 24 | "sass": "1.72.0", 25 | "vite-plugin-package-version": "^1.1.0" 26 | }, 27 | "devDependencies": { 28 | "@types/react": "^18.2.65", 29 | "@types/react-copy-to-clipboard": "^5.0.7", 30 | "@types/react-dom": "^18.2.21", 31 | "@typescript-eslint/eslint-plugin": "^7.2.0", 32 | "@typescript-eslint/parser": "^7.2.0", 33 | "@vitejs/plugin-react": "^4.2.1", 34 | "eslint": "^8.57.0", 35 | "eslint-plugin-react-hooks": "^4.6.0", 36 | "eslint-plugin-react-refresh": "^0.4.5", 37 | "typescript": "^5.4.2", 38 | "vite": "^5.1.6" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # React + TypeScript + Vite 2 | 3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. 4 | 5 | Currently, two official plugins are available: 6 | 7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh 8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh 9 | 10 | ## Expanding the ESLint configuration 11 | 12 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: 13 | 14 | - Configure the top-level `parserOptions` property like this: 15 | 16 | ```js 17 | export default { 18 | // other rules... 19 | parserOptions: { 20 | ecmaVersion: "latest", 21 | sourceType: "module", 22 | project: ["./tsconfig.json", "./tsconfig.node.json"], 23 | tsconfigRootDir: __dirname, 24 | }, 25 | }; 26 | ``` 27 | 28 | - Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` 29 | - Optionally add `plugin:@typescript-eslint/stylistic-type-checked` 30 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list 31 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Name/index.tsx: -------------------------------------------------------------------------------- 1 | import { SetStateAction, forwardRef, useCallback, useEffect } from "react"; 2 | 3 | interface InputProps { 4 | name: string; 5 | setName: React.Dispatch>; 6 | shareMode: boolean; 7 | playing: boolean; 8 | run: boolean; 9 | } 10 | 11 | export const Name: React.FC & InputProps> = 12 | forwardRef( 13 | ( 14 | { name, setName, shareMode, playing, run, ...rest }: InputProps, 15 | ref: React.LegacyRef 16 | ) => { 17 | console.log("🚀 ~ playing:", playing); 18 | console.log("🚀 ~ shareMode:", shareMode); 19 | const onChange = useCallback( 20 | (e: { target: { value: SetStateAction } }) => { 21 | setName(e.target.value); 22 | window.history.pushState({}, "", `?name=${e.target.value}`); 23 | }, 24 | [setName] 25 | ); 26 | 27 | useEffect(() => { 28 | const queryString = window.location.search; 29 | const urlParams = new URLSearchParams(queryString); 30 | const nameParam = urlParams.get("name"); 31 | if (nameParam !== null) { 32 | setName(nameParam); 33 | } 34 | }, [setName]); 35 | 36 | return ( 37 |
49 | 0 ? "block" : "none", 69 | } 70 | : {}), 71 | }, 72 | value: name, 73 | onChange, 74 | disabled: shareMode || playing || run, 75 | readOnly: shareMode || playing || run, 76 | spellCheck: false, 77 | autoFocus: true, 78 | placeholder: "Enter your name", 79 | ...rest, 80 | }} 81 | /> 82 |
83 | ); 84 | } 85 | ); 86 | -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/README.txt: -------------------------------------------------------------------------------- 1 | Montserrat Variable Font 2 | ======================== 3 | 4 | This download contains Montserrat as both variable fonts and static fonts. 5 | 6 | Montserrat is a variable font with this axis: 7 | wght 8 | 9 | This means all the styles are contained in these files: 10 | Montserrat-VariableFont_wght.ttf 11 | Montserrat-Italic-VariableFont_wght.ttf 12 | 13 | If your app fully supports variable fonts, you can now pick intermediate styles 14 | that aren’t available as static fonts. Not all apps support variable fonts, and 15 | in those cases you can use the static font files for Montserrat: 16 | static/Montserrat-Thin.ttf 17 | static/Montserrat-ExtraLight.ttf 18 | static/Montserrat-Light.ttf 19 | static/Montserrat-Regular.ttf 20 | static/Montserrat-Medium.ttf 21 | static/Montserrat-SemiBold.ttf 22 | static/Montserrat-Bold.ttf 23 | static/Montserrat-ExtraBold.ttf 24 | static/Montserrat-Black.ttf 25 | static/Montserrat-ThinItalic.ttf 26 | static/Montserrat-ExtraLightItalic.ttf 27 | static/Montserrat-LightItalic.ttf 28 | static/Montserrat-Italic.ttf 29 | static/Montserrat-MediumItalic.ttf 30 | static/Montserrat-SemiBoldItalic.ttf 31 | static/Montserrat-BoldItalic.ttf 32 | static/Montserrat-ExtraBoldItalic.ttf 33 | static/Montserrat-BlackItalic.ttf 34 | 35 | Get started 36 | ----------- 37 | 38 | 1. Install the font files you want to use 39 | 40 | 2. Use your app's font picker to view the font family and all the 41 | available styles 42 | 43 | Learn more about variable fonts 44 | ------------------------------- 45 | 46 | https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts 47 | https://variablefonts.typenetwork.com 48 | https://medium.com/variable-fonts 49 | 50 | In desktop apps 51 | 52 | https://theblog.adobe.com/can-variable-fonts-illustrator-cc 53 | https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts 54 | 55 | Online 56 | 57 | https://developers.google.com/fonts/docs/getting_started 58 | https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide 59 | https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts 60 | 61 | Installing fonts 62 | 63 | MacOS: https://support.apple.com/en-us/HT201749 64 | Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux 65 | Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows 66 | 67 | Android Apps 68 | 69 | https://developers.google.com/fonts/docs/android 70 | https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts 71 | 72 | License 73 | ------- 74 | Please read the full license text (OFL.txt) to understand the permissions, 75 | restrictions and requirements for usage, redistribution, and modification. 76 | 77 | You can use them in your products & projects – print or digital, 78 | commercial or otherwise. 79 | 80 | This isn't legal advice, please consider consulting a lawyer and see the full 81 | license for all details. 82 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy and Tag Release 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | tags: 8 | - "*" 9 | 10 | # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 11 | # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 12 | concurrency: 13 | group: "deloy" 14 | cancel-in-progress: false 15 | 16 | jobs: 17 | update_version_build_and_deploy_production: 18 | if: startsWith(github.ref, 'refs/tags/') 19 | runs-on: ubuntu-latest 20 | steps: 21 | - name: Checkout repository 22 | uses: actions/checkout@v4 23 | 24 | - name: Reset Git working directory 25 | run: git reset --hard 26 | 27 | - name: Detect package manager 28 | id: detect-package-manager 29 | run: | 30 | if [ -f "${{ github.workspace }}/yarn.lock" ]; then 31 | echo "manager=yarn" >> $GITHUB_OUTPUT 32 | echo "command=install" >> $GITHUB_OUTPUT 33 | echo "runner=yarn" >> $GITHUB_OUTPUT 34 | exit 0 35 | elif [ -f "${{ github.workspace }}/package.json" ]; then 36 | echo "manager=npm" >> $GITHUB_OUTPUT 37 | echo "command=ci" >> $GITHUB_OUTPUT 38 | echo "runner=npx --no-install" >> $GITHUB_OUTPUT 39 | exit 0 40 | else 41 | echo "Unable to determine package manager" 42 | exit 1 43 | fi 44 | 45 | - name: Setup Node 46 | uses: actions/setup-node@v4 47 | with: 48 | node-version: "20" 49 | 50 | - name: Update Version in package.json 51 | id: update_version 52 | if: startsWith(github.ref, 'refs/tags/') 53 | run: | 54 | new_version=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') 55 | npm version $new_version --no-git-tag-version 56 | echo "Updated version to $new_version in package.json" 57 | echo "new_version=${new_version}" >> $GITHUB_ENV 58 | 59 | - name: Commit Version Change 60 | if: startsWith(github.ref, 'refs/tags/') 61 | run: | 62 | git config --local user.email "action@github.com" 63 | git config --local user.name "GitHub Action" 64 | git add package.json 65 | git commit -m "Update version to ${new_version}" 66 | git push origin HEAD:main 67 | 68 | - name: Restore cache 69 | uses: actions/cache@v4 70 | with: 71 | path: | 72 | .next/cache 73 | # Generate a new cache whenever packages or source files change. 74 | key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} 75 | # If source files changed but packages didn't, rebuild from a prior cache. 76 | restore-keys: | 77 | ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}- 78 | 79 | - name: Install dependencies 80 | run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} 81 | 82 | - name: Build 83 | run: ${{ steps.detect-package-manager.outputs.runner }} npx run build 84 | 85 | - name: Deploy to Vercel (Production) 86 | uses: amondnet/vercel-action@v25 #deploy 87 | with: 88 | vercel-token: ${{ secrets.VERCEL_TOKEN }} # Required 89 | github-token: ${{ secrets.GITHUB_TOKEN }} #Optional 90 | vercel-args: "--prod" #Optional 91 | vercel-org-id: ${{ secrets.VERCEL_ORG_ID}} #Required 92 | vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID}} #Required 93 | github-comment: false -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/CakeActions/index.tsx: -------------------------------------------------------------------------------- 1 | import { Fragment } from "react/jsx-runtime"; 2 | import { 3 | TbPlayerPlayFilled, 4 | TbPlayerPauseFilled, 5 | TbPlayerStopFilled, 6 | TbInfoCircleFilled, 7 | TbFlame, 8 | TbFlameOff, 9 | TbShare3, 10 | } from "react-icons/tb"; 11 | import { useCallback } from "react"; 12 | import { CopyToClipboard } from "react-copy-to-clipboard"; 13 | import { toast } from "react-toastify"; 14 | 15 | const buttonStyle = { 16 | color: "#ffffff", 17 | opacity: 0.9, 18 | borderWidth: 0, 19 | display: "flex", 20 | justifyContent: "center", 21 | alignItems: "center", 22 | backgroundColor: "#000000", 23 | }; 24 | 25 | export const CakeActions = ({ 26 | run, 27 | start, 28 | pause, 29 | stop, 30 | toggleLightCandle, 31 | setRun, 32 | playing, 33 | paused, 34 | candleVisible, 35 | }: // eslint-disable-next-line @typescript-eslint/no-explicit-any 36 | any) => { 37 | const guide = useCallback(() => setRun(true), [setRun]); 38 | 39 | const actions = useCallback(() => { 40 | return ( 41 | 42 | {!playing || paused ? ( 43 | 47 | ) : null} 48 | {playing && !paused ? ( 49 | 53 | ) : null} 54 | {playing ? ( 55 | 59 | ) : null} 60 | 68 | {!playing ? ( 69 | 73 | ) : null} 74 | toast("Copied to clipboard!")} 77 | > 78 | 81 | 82 | 83 | ); 84 | }, [ 85 | candleVisible, 86 | guide, 87 | pause, 88 | paused, 89 | playing, 90 | start, 91 | stop, 92 | toggleLightCandle, 93 | ]); 94 | 95 | const guideActions = useCallback(() => { 96 | return ( 97 | 98 | 102 | 106 | 110 | 119 | 122 | 123 | ); 124 | }, [candleVisible, pause, run, start, stop, toggleLightCandle]); 125 | 126 | return ( 127 |
138 | {run ? guideActions() : actions()} 139 |
140 | ); 141 | }; 142 | -------------------------------------------------------------------------------- /src/assets/fonts/Montserrat/OFL.txt: -------------------------------------------------------------------------------- 1 | Copyright 2011 The Montserrat Project Authors (https://github.com/JulietaUla/Montserrat) 2 | 3 | This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 | This license is copied below, and is also available with a FAQ at: 5 | https://openfontlicense.org 6 | 7 | 8 | ----------------------------------------------------------- 9 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 10 | ----------------------------------------------------------- 11 | 12 | PREAMBLE 13 | The goals of the Open Font License (OFL) are to stimulate worldwide 14 | development of collaborative font projects, to support the font creation 15 | efforts of academic and linguistic communities, and to provide a free and 16 | open framework in which fonts may be shared and improved in partnership 17 | with others. 18 | 19 | The OFL allows the licensed fonts to be used, studied, modified and 20 | redistributed freely as long as they are not sold by themselves. The 21 | fonts, including any derivative works, can be bundled, embedded, 22 | redistributed and/or sold with any software provided that any reserved 23 | names are not used by derivative works. The fonts and derivatives, 24 | however, cannot be released under any other type of license. The 25 | requirement for fonts to remain under this license does not apply 26 | to any document created using the fonts or their derivatives. 27 | 28 | DEFINITIONS 29 | "Font Software" refers to the set of files released by the Copyright 30 | Holder(s) under this license and clearly marked as such. This may 31 | include source files, build scripts and documentation. 32 | 33 | "Reserved Font Name" refers to any names specified as such after the 34 | copyright statement(s). 35 | 36 | "Original Version" refers to the collection of Font Software components as 37 | distributed by the Copyright Holder(s). 38 | 39 | "Modified Version" refers to any derivative made by adding to, deleting, 40 | or substituting -- in part or in whole -- any of the components of the 41 | Original Version, by changing formats or by porting the Font Software to a 42 | new environment. 43 | 44 | "Author" refers to any designer, engineer, programmer, technical 45 | writer or other person who contributed to the Font Software. 46 | 47 | PERMISSION & CONDITIONS 48 | Permission is hereby granted, free of charge, to any person obtaining 49 | a copy of the Font Software, to use, study, copy, merge, embed, modify, 50 | redistribute, and sell modified and unmodified copies of the Font 51 | Software, subject to the following conditions: 52 | 53 | 1) Neither the Font Software nor any of its individual components, 54 | in Original or Modified Versions, may be sold by itself. 55 | 56 | 2) Original or Modified Versions of the Font Software may be bundled, 57 | redistributed and/or sold with any software, provided that each copy 58 | contains the above copyright notice and this license. These can be 59 | included either as stand-alone text files, human-readable headers or 60 | in the appropriate machine-readable metadata fields within text or 61 | binary files as long as those fields can be easily viewed by the user. 62 | 63 | 3) No Modified Version of the Font Software may use the Reserved Font 64 | Name(s) unless explicit written permission is granted by the corresponding 65 | Copyright Holder. This restriction only applies to the primary font name as 66 | presented to the users. 67 | 68 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 69 | Software shall not be used to promote, endorse or advertise any 70 | Modified Version, except to acknowledge the contribution(s) of the 71 | Copyright Holder(s) and the Author(s) or with their explicit written 72 | permission. 73 | 74 | 5) The Font Software, modified or unmodified, in part or in whole, 75 | must be distributed entirely under this license, and must not be 76 | distributed under any other license. The requirement for fonts to 77 | remain under this license does not apply to any document created 78 | using the Font Software. 79 | 80 | TERMINATION 81 | This license becomes null and void if any of the above conditions are 82 | not met. 83 | 84 | DISCLAIMER 85 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 86 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 87 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 88 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 89 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 90 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 91 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 92 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 93 | OTHER DEALINGS IN THE FONT SOFTWARE. 94 | -------------------------------------------------------------------------------- /src/index.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | } 15 | 16 | a { 17 | font-weight: 500; 18 | color: #646cff; 19 | text-decoration: inherit; 20 | } 21 | a:hover { 22 | color: #535bf2; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | // display: flex; 28 | // place-items: center; 29 | min-width: 320px; 30 | height: 100dvh; 31 | } 32 | 33 | h1 { 34 | font-size: 3.2em; 35 | line-height: 1.1; 36 | } 37 | 38 | button { 39 | border-radius: 8px; 40 | border: 1px solid transparent; 41 | padding: 0.6em 1.2em; 42 | font-size: 1em; 43 | font-weight: 500; 44 | font-family: inherit; 45 | background-color: #1a1a1a; 46 | cursor: pointer; 47 | transition: border-color 0.25s; 48 | } 49 | button:hover { 50 | border-color: #646cff; 51 | } 52 | button:focus, 53 | button:focus-visible { 54 | outline: 4px auto -webkit-focus-ring-color; 55 | } 56 | 57 | @media (prefers-color-scheme: light) { 58 | :root { 59 | color: #213547; 60 | background-color: #ffffff; 61 | } 62 | a:hover { 63 | color: #747bff; 64 | } 65 | button { 66 | background-color: #f9f9f9; 67 | } 68 | } 69 | 70 | $vanilla: #f0e4d0; 71 | $chocolate: #553c13; 72 | 73 | body { 74 | background-color: #333; 75 | } 76 | 77 | @mixin foodColoring($color) { 78 | background-color: $color; 79 | box-shadow: 80 | 0 2px 0px lighten($color, 5%), 81 | 0 4px 0px darken($color, 8.2%), 82 | 0 6px 0px darken($color, 8.4%), 83 | 0 8px 0px darken($color, 8.6%), 84 | 0 10px 0px darken($color, 8.8%), 85 | 0 12px 0px darken($color, 9%), 86 | 0 14px 0px darken($color, 9.2%), 87 | 0 16px 0px darken($color, 9.4%), 88 | 0 18px 0px darken($color, 9.6%), 89 | 0 20px 0px darken($color, 9.8%), 90 | 0 22px 0px darken($color, 10%), 91 | 0 24px 0px darken($color, 10.2%), 92 | 0 26px 0px darken($color, 10.4%), 93 | 0 28px 0px darken($color, 10.6%), 94 | 0 30px 0px darken($color, 10.8%); 95 | } 96 | 97 | .cake { 98 | position: absolute; 99 | width: 250px; 100 | height: 200px; 101 | top: 50%; 102 | left: 50%; 103 | margin-top: -70px; 104 | margin-left: -125px; 105 | } 106 | 107 | .plate { 108 | width: 270px; 109 | height: 110px; 110 | position: absolute; 111 | bottom: -10px; 112 | left: -10px; 113 | background-color: #ccc; 114 | border-radius: 50%; 115 | box-shadow: 116 | 0 2px 0 darken(#ccc, 10%), 117 | 0 4px 0 darken(#ccc, 10%), 118 | 0 5px 40px rgba(black, 0.5); 119 | } 120 | 121 | .cake > * { 122 | position: absolute; 123 | } 124 | 125 | .layer { 126 | position: absolute; 127 | display: block; 128 | width: 250px; 129 | height: 100px; 130 | border-radius: 50%; 131 | @include foodColoring($chocolate); 132 | } 133 | 134 | .layer-top { 135 | top: 0px; 136 | } 137 | .layer-middle { 138 | top: 33px; 139 | } 140 | .layer-bottom { 141 | top: 66px; 142 | } 143 | 144 | .icing { 145 | top: 2px; 146 | left: 5px; 147 | background-color: $vanilla; 148 | width: 240px; 149 | height: 90px; 150 | border-radius: 50%; 151 | &:before { 152 | content: ""; 153 | position: absolute; 154 | top: 4px; 155 | right: 5px; 156 | bottom: 6px; 157 | left: 5px; 158 | background-color: lighten($vanilla, 3%); 159 | box-shadow: 160 | 0 0 4px lighten($vanilla, 5%), 161 | 0 0 4px lighten($vanilla, 5%), 162 | 0 0 4px lighten($vanilla, 5%); 163 | border-radius: 50%; 164 | z-index: 1; 165 | } 166 | } 167 | 168 | .drip { 169 | display: block; 170 | width: 50px; 171 | height: 60px; 172 | border-bottom-left-radius: 25px; 173 | border-bottom-right-radius: 25px; 174 | background-color: $vanilla; 175 | } 176 | 177 | .drip1 { 178 | top: 53px; 179 | left: 5px; 180 | transform: skewY(15deg); 181 | height: 48px; 182 | width: 40px; 183 | } 184 | 185 | .drip2 { 186 | top: 69px; 187 | left: 181px; 188 | transform: skewY(-15deg); 189 | } 190 | 191 | .drip3 { 192 | top: 54px; 193 | left: 90px; 194 | width: 80px; 195 | border-bottom-left-radius: 40px; 196 | border-bottom-right-radius: 40px; 197 | } 198 | 199 | .candle { 200 | background-color: #7b020b; 201 | width: 16px; 202 | height: 50px; 203 | border-radius: 8px / 4px; 204 | top: -20px; 205 | left: 50%; 206 | margin-left: -8px; 207 | z-index: 10; 208 | &:before { 209 | content: ""; 210 | position: absolute; 211 | top: 0; 212 | left: 0; 213 | width: 16px; 214 | height: 8px; 215 | border-radius: 50%; 216 | background-color: lighten(#7b020b, 10%); 217 | } 218 | } 219 | 220 | .flame { 221 | position: absolute; 222 | background-color: orange; 223 | width: 15px; 224 | height: 35px; 225 | border-radius: 10px 10px 10px 10px / 25px 25px 10px 10px; 226 | top: -34px; 227 | left: 50%; 228 | margin-left: -7.5px; 229 | z-index: 10; 230 | box-shadow: 231 | 0 0 10px rgba(orange, 0.5), 232 | 0 0 20px rgba(orange, 0.5), 233 | 0 0 60px rgba(orange, 0.5), 234 | 0 0 80px rgba(orange, 0.5); 235 | transform-origin: 50% 90%; 236 | animation: flicker 1s ease-in-out alternate infinite; 237 | } 238 | 239 | @keyframes flicker { 240 | 0% { 241 | transform: skewX(5deg); 242 | box-shadow: 243 | 0 0 10px rgba(orange, 0.2), 244 | 0 0 20px rgba(orange, 0.2), 245 | 0 0 60px rgba(orange, 0.2), 246 | 0 0 80px rgba(orange, 0.2); 247 | } 248 | 25% { 249 | transform: skewX(-5deg); 250 | box-shadow: 251 | 0 0 10px rgba(orange, 0.5), 252 | 0 0 20px rgba(orange, 0.5), 253 | 0 0 60px rgba(orange, 0.5), 254 | 0 0 80px rgba(orange, 0.5); 255 | } 256 | 50% { 257 | transform: skewX(10deg); 258 | box-shadow: 259 | 0 0 10px rgba(orange, 0.3), 260 | 0 0 20px rgba(orange, 0.3), 261 | 0 0 60px rgba(orange, 0.3), 262 | 0 0 80px rgba(orange, 0.3); 263 | } 264 | 75% { 265 | transform: skewX(-10deg); 266 | box-shadow: 267 | 0 0 10px rgba(orange, 0.4), 268 | 0 0 20px rgba(orange, 0.4), 269 | 0 0 60px rgba(orange, 0.4), 270 | 0 0 80px rgba(orange, 0.4); 271 | } 272 | 100% { 273 | transform: skewX(5deg); 274 | box-shadow: 275 | 0 0 10px rgba(orange, 0.5), 276 | 0 0 20px rgba(orange, 0.5), 277 | 0 0 60px rgba(orange, 0.5), 278 | 0 0 80px rgba(orange, 0.5); 279 | } 280 | } 281 | -------------------------------------------------------------------------------- /src/App.tsx: -------------------------------------------------------------------------------- 1 | // import reactLogo from "./assets/react.svg"; 2 | // import viteLogo from "/vite.svg"; 3 | import { 4 | KeyboardEvent, 5 | useCallback, 6 | useEffect, 7 | useLayoutEffect, 8 | useRef, 9 | useState, 10 | } from "react"; 11 | import "@dotlottie/player-component"; 12 | import "./App.css"; 13 | import { Cake } from "./components/Cake"; 14 | import { CakeActions } from "./components/CakeActions"; 15 | import { Name } from "./components/Name"; 16 | import Joyride, { ACTIONS, CallBackProps } from "react-joyride"; 17 | 18 | // const version = import.meta.env.PACKAGE_VERSION; 19 | 20 | const src = new URL("/assets/hbd2.mp3", import.meta.url).href; 21 | 22 | const steps = [ 23 | { 24 | target: "#name", 25 | content: "This is the input to enter the name.", 26 | placement: "bottom", 27 | disableBeacon: true, 28 | }, 29 | { 30 | target: "#candle", 31 | content: "Blow on the Lightning port to extinguish the candle.", 32 | placement: "bottom", 33 | }, 34 | { 35 | target: "#start", 36 | content: "Press start to play music and light the candle.", 37 | placement: "top", 38 | }, 39 | { 40 | target: "#pause", 41 | content: "Press pause if you want the music to pause temporarily.", 42 | placement: "top", 43 | }, 44 | { 45 | target: "#stop", 46 | content: "Press stop if you want to cancel temporarily.", 47 | placement: "top", 48 | }, 49 | { 50 | target: "#toggle-candle", 51 | content: "Press button if you want to light or blow out the candle.", 52 | placement: "top", 53 | }, 54 | { 55 | target: "#share", 56 | content: "Change the name and click 'Share' to send the gift to anyone.", 57 | placement: "top", 58 | }, 59 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 60 | ] as any; 61 | 62 | const sharedSteps = [ 63 | { 64 | target: "#start", 65 | content: "Click here", 66 | placement: "top", 67 | disableBeacon: true, 68 | }, 69 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 70 | ] as any; 71 | 72 | function App() { 73 | const [candleVisible, setCandleVisible] = useState(false); 74 | 75 | const audioRef = useRef(new Audio(src)); 76 | const microphoneStreamRef = useRef(undefined); 77 | 78 | const [playing, setPlaying] = useState(false); 79 | const [paused, setPaused] = useState(false); 80 | const [run, setRun] = useState(true); 81 | const [shareMode, setShareMode] = useState(false); 82 | 83 | const [name, setName] = useState(""); 84 | const nameRef = useRef(null); 85 | 86 | const visibility = shareMode || playing 87 | 88 | const lightCandle = useCallback(() => setCandleVisible(true), []); 89 | 90 | const turnOffTheCandle = useCallback(() => setCandleVisible(false), []); 91 | 92 | const toggleLightCandle = useCallback( 93 | () => setCandleVisible((prevState) => !prevState), 94 | [] 95 | ); 96 | 97 | const startAudio = useCallback(() => { 98 | setPlaying(true); 99 | audioRef.current.load(); 100 | audioRef.current.play(); 101 | setPaused(false); 102 | }, []); 103 | 104 | const pause = useCallback(() => { 105 | audioRef.current.pause(); 106 | setPaused(true); 107 | }, []); 108 | 109 | const stopAudio = useCallback(() => { 110 | setPlaying(false); 111 | audioRef.current.pause(); 112 | audioRef.current.currentTime = 0; 113 | setPaused(false); 114 | }, []); 115 | 116 | const start = useCallback(() => { 117 | startAudio(); 118 | lightCandle(); 119 | }, [lightCandle, startAudio]); 120 | 121 | const stop = useCallback(() => { 122 | stopAudio(); 123 | turnOffTheCandle(); 124 | setTimeout(() => { 125 | nameRef.current ? nameRef.current.focus() : undefined; 126 | }, 0); 127 | }, [stopAudio, turnOffTheCandle]); 128 | 129 | const blowCandles = useCallback(async (stream: MediaStream) => { 130 | try { 131 | microphoneStreamRef.current = stream; 132 | 133 | const audioContext = new AudioContext(); 134 | const source = audioContext.createMediaStreamSource(stream); 135 | const analyser = audioContext.createAnalyser(); 136 | source.connect(analyser); 137 | analyser.fftSize = 2048; 138 | 139 | const bufferLength = analyser.frequencyBinCount; 140 | const dataArray = new Uint8Array(bufferLength); 141 | 142 | const detectBlow = () => { 143 | analyser.getByteFrequencyData(dataArray); 144 | const average = 145 | dataArray.reduce((acc, val) => acc + val, 0) / bufferLength; 146 | const threshold = 43; 147 | 148 | if (average > threshold) { 149 | setCandleVisible(false); 150 | } 151 | }; 152 | 153 | setInterval(detectBlow, 100); 154 | } catch (error) { 155 | console.error("Error accessing microphone:", error); 156 | } 157 | }, []); 158 | 159 | const handleJoyrideCallback = useCallback( 160 | (data: CallBackProps) => { 161 | const { action } = data; 162 | if (action === ACTIONS.RESET || action === ACTIONS.CLOSE) { 163 | // do something 164 | setRun(false); 165 | setTimeout(() => { 166 | nameRef.current ? nameRef.current.focus() : undefined; 167 | }, 0); 168 | } 169 | }, 170 | [setRun] 171 | ); 172 | 173 | const onEnded = useCallback(() => { }, []); 174 | 175 | const onKeyPress = (event: KeyboardEvent) => { 176 | if (event.key === "Enter") { 177 | setTimeout(() => { 178 | nameRef.current ? nameRef.current.blur() : undefined; 179 | }, 0); 180 | } 181 | }; 182 | 183 | useEffect(() => { 184 | (async () => { 185 | try { 186 | const stream = await navigator.mediaDevices.getUserMedia({ 187 | audio: true, 188 | }); 189 | 190 | if (stream) { 191 | blowCandles(stream); 192 | } 193 | } catch (error) { 194 | console.error("Error accessing microphone:", error); 195 | } 196 | })(); 197 | 198 | return () => { 199 | if (microphoneStreamRef.current) { 200 | microphoneStreamRef.current 201 | .getTracks() 202 | .forEach((track) => track.stop()); 203 | } 204 | }; 205 | }, [blowCandles]); 206 | 207 | useLayoutEffect(() => { 208 | const queryString = window.location.search; 209 | const urlParams = new URLSearchParams(queryString); 210 | const sharedParam = urlParams.get("shared"); 211 | if (sharedParam) { 212 | setCandleVisible(true); 213 | setShareMode(true); 214 | } 215 | }, []); 216 | 217 | return ( 218 |
227 | 255 | 283 | 284 |
376 | ); 377 | } 378 | 379 | export default App; 380 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@dotlottie/player-component': 9 | specifier: ^2.7.12 10 | version: 2.7.12 11 | '@types/react-lottie': 12 | specifier: 1.2.10 13 | version: 1.2.10 14 | react: 15 | specifier: ^18.2.0 16 | version: 18.2.0 17 | react-audio-player: 18 | specifier: 0.17.0 19 | version: 0.17.0(react-dom@18.2.0)(react@18.2.0) 20 | react-copy-to-clipboard: 21 | specifier: ^5.1.0 22 | version: 5.1.0(react@18.2.0) 23 | react-dom: 24 | specifier: ^18.2.0 25 | version: 18.2.0(react@18.2.0) 26 | react-icons: 27 | specifier: ^5.1.0 28 | version: 5.1.0(react@18.2.0) 29 | react-joyride: 30 | specifier: ^2.8.1 31 | version: 2.8.1(@types/react@18.2.65)(react-dom@18.2.0)(react@18.2.0) 32 | react-lottie: 33 | specifier: 1.2.4 34 | version: 1.2.4(react@18.2.0) 35 | react-toastify: 36 | specifier: ^10.0.5 37 | version: 10.0.5(react-dom@18.2.0)(react@18.2.0) 38 | regenerator-runtime: 39 | specifier: 0.14.1 40 | version: 0.14.1 41 | sass: 42 | specifier: 1.72.0 43 | version: 1.72.0 44 | vite-plugin-package-version: 45 | specifier: ^1.1.0 46 | version: 1.1.0(vite@5.1.6) 47 | 48 | devDependencies: 49 | '@types/react': 50 | specifier: ^18.2.65 51 | version: 18.2.65 52 | '@types/react-copy-to-clipboard': 53 | specifier: ^5.0.7 54 | version: 5.0.7 55 | '@types/react-dom': 56 | specifier: ^18.2.21 57 | version: 18.2.21 58 | '@typescript-eslint/eslint-plugin': 59 | specifier: ^7.2.0 60 | version: 7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2) 61 | '@typescript-eslint/parser': 62 | specifier: ^7.2.0 63 | version: 7.2.0(eslint@8.57.0)(typescript@5.4.2) 64 | '@vitejs/plugin-react': 65 | specifier: ^4.2.1 66 | version: 4.2.1(vite@5.1.6) 67 | eslint: 68 | specifier: ^8.57.0 69 | version: 8.57.0 70 | eslint-plugin-react-hooks: 71 | specifier: ^4.6.0 72 | version: 4.6.0(eslint@8.57.0) 73 | eslint-plugin-react-refresh: 74 | specifier: ^0.4.5 75 | version: 0.4.5(eslint@8.57.0) 76 | typescript: 77 | specifier: ^5.4.2 78 | version: 5.4.2 79 | vite: 80 | specifier: ^5.1.6 81 | version: 5.1.6(sass@1.72.0) 82 | 83 | packages: 84 | 85 | /@aashutoshrathi/word-wrap@1.2.6: 86 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 87 | engines: {node: '>=0.10.0'} 88 | dev: true 89 | 90 | /@ampproject/remapping@2.2.1: 91 | resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} 92 | engines: {node: '>=6.0.0'} 93 | dependencies: 94 | '@jridgewell/gen-mapping': 0.3.3 95 | '@jridgewell/trace-mapping': 0.3.21 96 | dev: true 97 | 98 | /@babel/code-frame@7.23.5: 99 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 100 | engines: {node: '>=6.9.0'} 101 | dependencies: 102 | '@babel/highlight': 7.23.4 103 | chalk: 2.4.2 104 | dev: true 105 | 106 | /@babel/compat-data@7.23.5: 107 | resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} 108 | engines: {node: '>=6.9.0'} 109 | dev: true 110 | 111 | /@babel/core@7.23.7: 112 | resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} 113 | engines: {node: '>=6.9.0'} 114 | dependencies: 115 | '@ampproject/remapping': 2.2.1 116 | '@babel/code-frame': 7.23.5 117 | '@babel/generator': 7.23.6 118 | '@babel/helper-compilation-targets': 7.23.6 119 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) 120 | '@babel/helpers': 7.23.8 121 | '@babel/parser': 7.23.6 122 | '@babel/template': 7.22.15 123 | '@babel/traverse': 7.23.7 124 | '@babel/types': 7.23.6 125 | convert-source-map: 2.0.0 126 | debug: 4.3.4 127 | gensync: 1.0.0-beta.2 128 | json5: 2.2.3 129 | semver: 6.3.1 130 | transitivePeerDependencies: 131 | - supports-color 132 | dev: true 133 | 134 | /@babel/generator@7.23.6: 135 | resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} 136 | engines: {node: '>=6.9.0'} 137 | dependencies: 138 | '@babel/types': 7.23.6 139 | '@jridgewell/gen-mapping': 0.3.3 140 | '@jridgewell/trace-mapping': 0.3.21 141 | jsesc: 2.5.2 142 | dev: true 143 | 144 | /@babel/helper-compilation-targets@7.23.6: 145 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 146 | engines: {node: '>=6.9.0'} 147 | dependencies: 148 | '@babel/compat-data': 7.23.5 149 | '@babel/helper-validator-option': 7.23.5 150 | browserslist: 4.22.2 151 | lru-cache: 5.1.1 152 | semver: 6.3.1 153 | dev: true 154 | 155 | /@babel/helper-environment-visitor@7.22.20: 156 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 157 | engines: {node: '>=6.9.0'} 158 | dev: true 159 | 160 | /@babel/helper-function-name@7.23.0: 161 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 162 | engines: {node: '>=6.9.0'} 163 | dependencies: 164 | '@babel/template': 7.22.15 165 | '@babel/types': 7.23.6 166 | dev: true 167 | 168 | /@babel/helper-hoist-variables@7.22.5: 169 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 170 | engines: {node: '>=6.9.0'} 171 | dependencies: 172 | '@babel/types': 7.23.6 173 | dev: true 174 | 175 | /@babel/helper-module-imports@7.22.15: 176 | resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} 177 | engines: {node: '>=6.9.0'} 178 | dependencies: 179 | '@babel/types': 7.23.6 180 | dev: true 181 | 182 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): 183 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 184 | engines: {node: '>=6.9.0'} 185 | peerDependencies: 186 | '@babel/core': ^7.0.0 187 | dependencies: 188 | '@babel/core': 7.23.7 189 | '@babel/helper-environment-visitor': 7.22.20 190 | '@babel/helper-module-imports': 7.22.15 191 | '@babel/helper-simple-access': 7.22.5 192 | '@babel/helper-split-export-declaration': 7.22.6 193 | '@babel/helper-validator-identifier': 7.22.20 194 | dev: true 195 | 196 | /@babel/helper-plugin-utils@7.22.5: 197 | resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} 198 | engines: {node: '>=6.9.0'} 199 | dev: true 200 | 201 | /@babel/helper-simple-access@7.22.5: 202 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 203 | engines: {node: '>=6.9.0'} 204 | dependencies: 205 | '@babel/types': 7.23.6 206 | dev: true 207 | 208 | /@babel/helper-split-export-declaration@7.22.6: 209 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 210 | engines: {node: '>=6.9.0'} 211 | dependencies: 212 | '@babel/types': 7.23.6 213 | dev: true 214 | 215 | /@babel/helper-string-parser@7.23.4: 216 | resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} 217 | engines: {node: '>=6.9.0'} 218 | dev: true 219 | 220 | /@babel/helper-validator-identifier@7.22.20: 221 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 222 | engines: {node: '>=6.9.0'} 223 | dev: true 224 | 225 | /@babel/helper-validator-option@7.23.5: 226 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 227 | engines: {node: '>=6.9.0'} 228 | dev: true 229 | 230 | /@babel/helpers@7.23.8: 231 | resolution: {integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==} 232 | engines: {node: '>=6.9.0'} 233 | dependencies: 234 | '@babel/template': 7.22.15 235 | '@babel/traverse': 7.23.7 236 | '@babel/types': 7.23.6 237 | transitivePeerDependencies: 238 | - supports-color 239 | dev: true 240 | 241 | /@babel/highlight@7.23.4: 242 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 243 | engines: {node: '>=6.9.0'} 244 | dependencies: 245 | '@babel/helper-validator-identifier': 7.22.20 246 | chalk: 2.4.2 247 | js-tokens: 4.0.0 248 | dev: true 249 | 250 | /@babel/parser@7.23.6: 251 | resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} 252 | engines: {node: '>=6.0.0'} 253 | hasBin: true 254 | dependencies: 255 | '@babel/types': 7.23.6 256 | dev: true 257 | 258 | /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.7): 259 | resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} 260 | engines: {node: '>=6.9.0'} 261 | peerDependencies: 262 | '@babel/core': ^7.0.0-0 263 | dependencies: 264 | '@babel/core': 7.23.7 265 | '@babel/helper-plugin-utils': 7.22.5 266 | dev: true 267 | 268 | /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.7): 269 | resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} 270 | engines: {node: '>=6.9.0'} 271 | peerDependencies: 272 | '@babel/core': ^7.0.0-0 273 | dependencies: 274 | '@babel/core': 7.23.7 275 | '@babel/helper-plugin-utils': 7.22.5 276 | dev: true 277 | 278 | /@babel/template@7.22.15: 279 | resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} 280 | engines: {node: '>=6.9.0'} 281 | dependencies: 282 | '@babel/code-frame': 7.23.5 283 | '@babel/parser': 7.23.6 284 | '@babel/types': 7.23.6 285 | dev: true 286 | 287 | /@babel/traverse@7.23.7: 288 | resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} 289 | engines: {node: '>=6.9.0'} 290 | dependencies: 291 | '@babel/code-frame': 7.23.5 292 | '@babel/generator': 7.23.6 293 | '@babel/helper-environment-visitor': 7.22.20 294 | '@babel/helper-function-name': 7.23.0 295 | '@babel/helper-hoist-variables': 7.22.5 296 | '@babel/helper-split-export-declaration': 7.22.6 297 | '@babel/parser': 7.23.6 298 | '@babel/types': 7.23.6 299 | debug: 4.3.4 300 | globals: 11.12.0 301 | transitivePeerDependencies: 302 | - supports-color 303 | dev: true 304 | 305 | /@babel/types@7.23.6: 306 | resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} 307 | engines: {node: '>=6.9.0'} 308 | dependencies: 309 | '@babel/helper-string-parser': 7.23.4 310 | '@babel/helper-validator-identifier': 7.22.20 311 | to-fast-properties: 2.0.0 312 | dev: true 313 | 314 | /@dotlottie/common@0.7.11: 315 | resolution: {integrity: sha512-0ThV1uZVfKJ2pwYQy52EKH8edKnvEsSDGdxRf/n1Wz15xbqI+8qKs0BHSIQ7yLyaU5gFSaEooEgK1kTiKJaE4g==} 316 | engines: {node: '>18.0.0'} 317 | dependencies: 318 | '@dotlottie/dotlottie-js': 0.7.2 319 | '@preact/signals-core': 1.6.0 320 | howler: 2.2.4 321 | lottie-web: 5.12.2 322 | xstate: 4.38.3 323 | dev: false 324 | 325 | /@dotlottie/dotlottie-js@0.7.2: 326 | resolution: {integrity: sha512-BIEFkaKCRzVSHgKoZ2d/Squ1Rw4U93/YmHvON04PCx2gOBRAM2//GYUPcVijYHT8dQtom07KoyTKpXh0cRzKKw==} 327 | engines: {node: '>=18.0.0'} 328 | dependencies: 329 | browser-image-hash: 0.0.5 330 | fflate: 0.8.2 331 | sharp: 0.33.3 332 | sharp-phash: 2.1.0(sharp@0.33.3) 333 | valibot: 0.13.1 334 | dev: false 335 | 336 | /@dotlottie/player-component@2.7.12: 337 | resolution: {integrity: sha512-oNv/+bVnmBY3DILdY+ehBWk15Q76m8OByq8gPDpyEQwHf0kRJ6GUO074X1m8WPgvPKw0o8dYnz+UrbOFhZmmqA==} 338 | dependencies: 339 | '@dotlottie/common': 0.7.11 340 | lit: 2.8.0 341 | dev: false 342 | 343 | /@emnapi/runtime@1.1.1: 344 | resolution: {integrity: sha512-3bfqkzuR1KLx57nZfjr2NLnFOobvyS0aTszaEGCGqmYMVDRaGvgIZbjGSV/MHSSmLgQ/b9JFHQ5xm5WRZYd+XQ==} 345 | requiresBuild: true 346 | dependencies: 347 | tslib: 2.6.2 348 | dev: false 349 | optional: true 350 | 351 | /@esbuild/aix-ppc64@0.19.12: 352 | resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 353 | engines: {node: '>=12'} 354 | cpu: [ppc64] 355 | os: [aix] 356 | requiresBuild: true 357 | optional: true 358 | 359 | /@esbuild/android-arm64@0.19.12: 360 | resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 361 | engines: {node: '>=12'} 362 | cpu: [arm64] 363 | os: [android] 364 | requiresBuild: true 365 | optional: true 366 | 367 | /@esbuild/android-arm@0.19.12: 368 | resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 369 | engines: {node: '>=12'} 370 | cpu: [arm] 371 | os: [android] 372 | requiresBuild: true 373 | optional: true 374 | 375 | /@esbuild/android-x64@0.19.12: 376 | resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 377 | engines: {node: '>=12'} 378 | cpu: [x64] 379 | os: [android] 380 | requiresBuild: true 381 | optional: true 382 | 383 | /@esbuild/darwin-arm64@0.19.12: 384 | resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 385 | engines: {node: '>=12'} 386 | cpu: [arm64] 387 | os: [darwin] 388 | requiresBuild: true 389 | optional: true 390 | 391 | /@esbuild/darwin-x64@0.19.12: 392 | resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 393 | engines: {node: '>=12'} 394 | cpu: [x64] 395 | os: [darwin] 396 | requiresBuild: true 397 | optional: true 398 | 399 | /@esbuild/freebsd-arm64@0.19.12: 400 | resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 401 | engines: {node: '>=12'} 402 | cpu: [arm64] 403 | os: [freebsd] 404 | requiresBuild: true 405 | optional: true 406 | 407 | /@esbuild/freebsd-x64@0.19.12: 408 | resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 409 | engines: {node: '>=12'} 410 | cpu: [x64] 411 | os: [freebsd] 412 | requiresBuild: true 413 | optional: true 414 | 415 | /@esbuild/linux-arm64@0.19.12: 416 | resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 417 | engines: {node: '>=12'} 418 | cpu: [arm64] 419 | os: [linux] 420 | requiresBuild: true 421 | optional: true 422 | 423 | /@esbuild/linux-arm@0.19.12: 424 | resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 425 | engines: {node: '>=12'} 426 | cpu: [arm] 427 | os: [linux] 428 | requiresBuild: true 429 | optional: true 430 | 431 | /@esbuild/linux-ia32@0.19.12: 432 | resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 433 | engines: {node: '>=12'} 434 | cpu: [ia32] 435 | os: [linux] 436 | requiresBuild: true 437 | optional: true 438 | 439 | /@esbuild/linux-loong64@0.19.12: 440 | resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 441 | engines: {node: '>=12'} 442 | cpu: [loong64] 443 | os: [linux] 444 | requiresBuild: true 445 | optional: true 446 | 447 | /@esbuild/linux-mips64el@0.19.12: 448 | resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 449 | engines: {node: '>=12'} 450 | cpu: [mips64el] 451 | os: [linux] 452 | requiresBuild: true 453 | optional: true 454 | 455 | /@esbuild/linux-ppc64@0.19.12: 456 | resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 457 | engines: {node: '>=12'} 458 | cpu: [ppc64] 459 | os: [linux] 460 | requiresBuild: true 461 | optional: true 462 | 463 | /@esbuild/linux-riscv64@0.19.12: 464 | resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 465 | engines: {node: '>=12'} 466 | cpu: [riscv64] 467 | os: [linux] 468 | requiresBuild: true 469 | optional: true 470 | 471 | /@esbuild/linux-s390x@0.19.12: 472 | resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 473 | engines: {node: '>=12'} 474 | cpu: [s390x] 475 | os: [linux] 476 | requiresBuild: true 477 | optional: true 478 | 479 | /@esbuild/linux-x64@0.19.12: 480 | resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 481 | engines: {node: '>=12'} 482 | cpu: [x64] 483 | os: [linux] 484 | requiresBuild: true 485 | optional: true 486 | 487 | /@esbuild/netbsd-x64@0.19.12: 488 | resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 489 | engines: {node: '>=12'} 490 | cpu: [x64] 491 | os: [netbsd] 492 | requiresBuild: true 493 | optional: true 494 | 495 | /@esbuild/openbsd-x64@0.19.12: 496 | resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 497 | engines: {node: '>=12'} 498 | cpu: [x64] 499 | os: [openbsd] 500 | requiresBuild: true 501 | optional: true 502 | 503 | /@esbuild/sunos-x64@0.19.12: 504 | resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 505 | engines: {node: '>=12'} 506 | cpu: [x64] 507 | os: [sunos] 508 | requiresBuild: true 509 | optional: true 510 | 511 | /@esbuild/win32-arm64@0.19.12: 512 | resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 513 | engines: {node: '>=12'} 514 | cpu: [arm64] 515 | os: [win32] 516 | requiresBuild: true 517 | optional: true 518 | 519 | /@esbuild/win32-ia32@0.19.12: 520 | resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 521 | engines: {node: '>=12'} 522 | cpu: [ia32] 523 | os: [win32] 524 | requiresBuild: true 525 | optional: true 526 | 527 | /@esbuild/win32-x64@0.19.12: 528 | resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 529 | engines: {node: '>=12'} 530 | cpu: [x64] 531 | os: [win32] 532 | requiresBuild: true 533 | optional: true 534 | 535 | /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): 536 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 537 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 538 | peerDependencies: 539 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 540 | dependencies: 541 | eslint: 8.57.0 542 | eslint-visitor-keys: 3.4.3 543 | dev: true 544 | 545 | /@eslint-community/regexpp@4.10.0: 546 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 547 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 548 | dev: true 549 | 550 | /@eslint/eslintrc@2.1.4: 551 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 552 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 553 | dependencies: 554 | ajv: 6.12.6 555 | debug: 4.3.4 556 | espree: 9.6.1 557 | globals: 13.24.0 558 | ignore: 5.3.1 559 | import-fresh: 3.3.0 560 | js-yaml: 4.1.0 561 | minimatch: 3.1.2 562 | strip-json-comments: 3.1.1 563 | transitivePeerDependencies: 564 | - supports-color 565 | dev: true 566 | 567 | /@eslint/js@8.57.0: 568 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 569 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 570 | dev: true 571 | 572 | /@gilbarbara/deep-equal@0.1.2: 573 | resolution: {integrity: sha512-jk+qzItoEb0D0xSSmrKDDzf9sheQj/BAPxlgNxgmOaA3mxpUa6ndJLYGZKsJnIVEQSD8zcTbyILz7I0HcnBCRA==} 574 | dev: false 575 | 576 | /@gilbarbara/deep-equal@0.3.1: 577 | resolution: {integrity: sha512-I7xWjLs2YSVMc5gGx1Z3ZG1lgFpITPndpi8Ku55GeEIKpACCPQNS/OTqQbxgTCfq0Ncvcc+CrFov96itVh6Qvw==} 578 | dev: false 579 | 580 | /@humanwhocodes/config-array@0.11.14: 581 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 582 | engines: {node: '>=10.10.0'} 583 | dependencies: 584 | '@humanwhocodes/object-schema': 2.0.2 585 | debug: 4.3.4 586 | minimatch: 3.1.2 587 | transitivePeerDependencies: 588 | - supports-color 589 | dev: true 590 | 591 | /@humanwhocodes/module-importer@1.0.1: 592 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 593 | engines: {node: '>=12.22'} 594 | dev: true 595 | 596 | /@humanwhocodes/object-schema@2.0.2: 597 | resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} 598 | dev: true 599 | 600 | /@img/sharp-darwin-arm64@0.33.3: 601 | resolution: {integrity: sha512-FaNiGX1MrOuJ3hxuNzWgsT/mg5OHG/Izh59WW2mk1UwYHUwtfbhk5QNKYZgxf0pLOhx9ctGiGa2OykD71vOnSw==} 602 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 603 | cpu: [arm64] 604 | os: [darwin] 605 | requiresBuild: true 606 | optionalDependencies: 607 | '@img/sharp-libvips-darwin-arm64': 1.0.2 608 | dev: false 609 | optional: true 610 | 611 | /@img/sharp-darwin-x64@0.33.3: 612 | resolution: {integrity: sha512-2QeSl7QDK9ru//YBT4sQkoq7L0EAJZA3rtV+v9p8xTKl4U1bUqTIaCnoC7Ctx2kCjQgwFXDasOtPTCT8eCTXvw==} 613 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 614 | cpu: [x64] 615 | os: [darwin] 616 | requiresBuild: true 617 | optionalDependencies: 618 | '@img/sharp-libvips-darwin-x64': 1.0.2 619 | dev: false 620 | optional: true 621 | 622 | /@img/sharp-libvips-darwin-arm64@1.0.2: 623 | resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} 624 | engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 625 | cpu: [arm64] 626 | os: [darwin] 627 | requiresBuild: true 628 | dev: false 629 | optional: true 630 | 631 | /@img/sharp-libvips-darwin-x64@1.0.2: 632 | resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} 633 | engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 634 | cpu: [x64] 635 | os: [darwin] 636 | requiresBuild: true 637 | dev: false 638 | optional: true 639 | 640 | /@img/sharp-libvips-linux-arm64@1.0.2: 641 | resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} 642 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 643 | cpu: [arm64] 644 | os: [linux] 645 | requiresBuild: true 646 | dev: false 647 | optional: true 648 | 649 | /@img/sharp-libvips-linux-arm@1.0.2: 650 | resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} 651 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 652 | cpu: [arm] 653 | os: [linux] 654 | requiresBuild: true 655 | dev: false 656 | optional: true 657 | 658 | /@img/sharp-libvips-linux-s390x@1.0.2: 659 | resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} 660 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 661 | cpu: [s390x] 662 | os: [linux] 663 | requiresBuild: true 664 | dev: false 665 | optional: true 666 | 667 | /@img/sharp-libvips-linux-x64@1.0.2: 668 | resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} 669 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 670 | cpu: [x64] 671 | os: [linux] 672 | requiresBuild: true 673 | dev: false 674 | optional: true 675 | 676 | /@img/sharp-libvips-linuxmusl-arm64@1.0.2: 677 | resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} 678 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 679 | cpu: [arm64] 680 | os: [linux] 681 | requiresBuild: true 682 | dev: false 683 | optional: true 684 | 685 | /@img/sharp-libvips-linuxmusl-x64@1.0.2: 686 | resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} 687 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 688 | cpu: [x64] 689 | os: [linux] 690 | requiresBuild: true 691 | dev: false 692 | optional: true 693 | 694 | /@img/sharp-linux-arm64@0.33.3: 695 | resolution: {integrity: sha512-Zf+sF1jHZJKA6Gor9hoYG2ljr4wo9cY4twaxgFDvlG0Xz9V7sinsPp8pFd1XtlhTzYo0IhDbl3rK7P6MzHpnYA==} 696 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 697 | cpu: [arm64] 698 | os: [linux] 699 | requiresBuild: true 700 | optionalDependencies: 701 | '@img/sharp-libvips-linux-arm64': 1.0.2 702 | dev: false 703 | optional: true 704 | 705 | /@img/sharp-linux-arm@0.33.3: 706 | resolution: {integrity: sha512-Q7Ee3fFSC9P7vUSqVEF0zccJsZ8GiiCJYGWDdhEjdlOeS9/jdkyJ6sUSPj+bL8VuOYFSbofrW0t/86ceVhx32w==} 707 | engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 708 | cpu: [arm] 709 | os: [linux] 710 | requiresBuild: true 711 | optionalDependencies: 712 | '@img/sharp-libvips-linux-arm': 1.0.2 713 | dev: false 714 | optional: true 715 | 716 | /@img/sharp-linux-s390x@0.33.3: 717 | resolution: {integrity: sha512-vFk441DKRFepjhTEH20oBlFrHcLjPfI8B0pMIxGm3+yilKyYeHEVvrZhYFdqIseSclIqbQ3SnZMwEMWonY5XFA==} 718 | engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 719 | cpu: [s390x] 720 | os: [linux] 721 | requiresBuild: true 722 | optionalDependencies: 723 | '@img/sharp-libvips-linux-s390x': 1.0.2 724 | dev: false 725 | optional: true 726 | 727 | /@img/sharp-linux-x64@0.33.3: 728 | resolution: {integrity: sha512-Q4I++herIJxJi+qmbySd072oDPRkCg/SClLEIDh5IL9h1zjhqjv82H0Seupd+q2m0yOfD+/fJnjSoDFtKiHu2g==} 729 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 730 | cpu: [x64] 731 | os: [linux] 732 | requiresBuild: true 733 | optionalDependencies: 734 | '@img/sharp-libvips-linux-x64': 1.0.2 735 | dev: false 736 | optional: true 737 | 738 | /@img/sharp-linuxmusl-arm64@0.33.3: 739 | resolution: {integrity: sha512-qnDccehRDXadhM9PM5hLvcPRYqyFCBN31kq+ErBSZtZlsAc1U4Z85xf/RXv1qolkdu+ibw64fUDaRdktxTNP9A==} 740 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 741 | cpu: [arm64] 742 | os: [linux] 743 | requiresBuild: true 744 | optionalDependencies: 745 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 746 | dev: false 747 | optional: true 748 | 749 | /@img/sharp-linuxmusl-x64@0.33.3: 750 | resolution: {integrity: sha512-Jhchim8kHWIU/GZ+9poHMWRcefeaxFIs9EBqf9KtcC14Ojk6qua7ghKiPs0sbeLbLj/2IGBtDcxHyjCdYWkk2w==} 751 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 752 | cpu: [x64] 753 | os: [linux] 754 | requiresBuild: true 755 | optionalDependencies: 756 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 757 | dev: false 758 | optional: true 759 | 760 | /@img/sharp-wasm32@0.33.3: 761 | resolution: {integrity: sha512-68zivsdJ0koE96stdUfM+gmyaK/NcoSZK5dV5CAjES0FUXS9lchYt8LAB5rTbM7nlWtxaU/2GON0HVN6/ZYJAQ==} 762 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 763 | cpu: [wasm32] 764 | requiresBuild: true 765 | dependencies: 766 | '@emnapi/runtime': 1.1.1 767 | dev: false 768 | optional: true 769 | 770 | /@img/sharp-win32-ia32@0.33.3: 771 | resolution: {integrity: sha512-CyimAduT2whQD8ER4Ux7exKrtfoaUiVr7HG0zZvO0XTFn2idUWljjxv58GxNTkFb8/J9Ub9AqITGkJD6ZginxQ==} 772 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 773 | cpu: [ia32] 774 | os: [win32] 775 | requiresBuild: true 776 | dev: false 777 | optional: true 778 | 779 | /@img/sharp-win32-x64@0.33.3: 780 | resolution: {integrity: sha512-viT4fUIDKnli3IfOephGnolMzhz5VaTvDRkYqtZxOMIoMQ4MrAziO7pT1nVnOt2FAm7qW5aa+CCc13aEY6Le0g==} 781 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 782 | cpu: [x64] 783 | os: [win32] 784 | requiresBuild: true 785 | dev: false 786 | optional: true 787 | 788 | /@jridgewell/gen-mapping@0.3.3: 789 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 790 | engines: {node: '>=6.0.0'} 791 | dependencies: 792 | '@jridgewell/set-array': 1.1.2 793 | '@jridgewell/sourcemap-codec': 1.4.15 794 | '@jridgewell/trace-mapping': 0.3.21 795 | dev: true 796 | 797 | /@jridgewell/resolve-uri@3.1.1: 798 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 799 | engines: {node: '>=6.0.0'} 800 | dev: true 801 | 802 | /@jridgewell/set-array@1.1.2: 803 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 804 | engines: {node: '>=6.0.0'} 805 | dev: true 806 | 807 | /@jridgewell/sourcemap-codec@1.4.15: 808 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 809 | dev: true 810 | 811 | /@jridgewell/trace-mapping@0.3.21: 812 | resolution: {integrity: sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==} 813 | dependencies: 814 | '@jridgewell/resolve-uri': 3.1.1 815 | '@jridgewell/sourcemap-codec': 1.4.15 816 | dev: true 817 | 818 | /@lit-labs/ssr-dom-shim@1.2.0: 819 | resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} 820 | dev: false 821 | 822 | /@lit/reactive-element@1.6.3: 823 | resolution: {integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==} 824 | dependencies: 825 | '@lit-labs/ssr-dom-shim': 1.2.0 826 | dev: false 827 | 828 | /@nodelib/fs.scandir@2.1.5: 829 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 830 | engines: {node: '>= 8'} 831 | dependencies: 832 | '@nodelib/fs.stat': 2.0.5 833 | run-parallel: 1.2.0 834 | dev: true 835 | 836 | /@nodelib/fs.stat@2.0.5: 837 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 838 | engines: {node: '>= 8'} 839 | dev: true 840 | 841 | /@nodelib/fs.walk@1.2.8: 842 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 843 | engines: {node: '>= 8'} 844 | dependencies: 845 | '@nodelib/fs.scandir': 2.1.5 846 | fastq: 1.17.1 847 | dev: true 848 | 849 | /@preact/signals-core@1.6.0: 850 | resolution: {integrity: sha512-O/XGxwP85h1F7+ouqTMOIZ3+V1whfaV9ToIVcuyGriD4JkSD00cQo54BKdqjvBJxbenvp7ynfqRHEwI6e+NIhw==} 851 | dev: false 852 | 853 | /@rgba-image/common@0.1.13: 854 | resolution: {integrity: sha512-AnOBmBpjSgcymTuVhTGy+RB4FfmEQqR2GeJY3d3xfvR9fl3HfhzwgVqopuh3bKSAT6KRpJr7wNmug0qr3oI7bA==} 855 | dev: false 856 | 857 | /@rgba-image/copy@0.1.3: 858 | resolution: {integrity: sha512-fscJhpp8YtVELGIwQsv1Pj6BEN4PEWAlMJ6a/HWzYxzVr3y/dut4BUrqeWRKiKeRXAGqaV6QxkBxAgYMQYZEvw==} 859 | dependencies: 860 | '@rgba-image/common': 0.1.13 861 | dev: false 862 | 863 | /@rgba-image/create-image@0.1.1: 864 | resolution: {integrity: sha512-ndExUNyi9Ooa/OZqiJS53vYrQ48FX7MDmMrEslDxhsorDsXpeKI9w689r4AYhT9CF9KZlBe8SmI++3BwSvvwAQ==} 865 | dependencies: 866 | '@rgba-image/common': 0.1.13 867 | dev: false 868 | 869 | /@rgba-image/lanczos@0.1.1: 870 | resolution: {integrity: sha512-MSGGU7BZmEbg1xHtNp+StARoN7R38zJnFgSEvSzB710nXsHGEaJt//z2VnPfRQTtKSKUXEnp95JSuqDlXTBrYA==} 871 | dependencies: 872 | '@rgba-image/common': 0.1.13 873 | '@rgba-image/copy': 0.1.3 874 | '@rgba-image/create-image': 0.1.1 875 | dev: false 876 | 877 | /@rollup/rollup-android-arm-eabi@4.13.0: 878 | resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} 879 | cpu: [arm] 880 | os: [android] 881 | requiresBuild: true 882 | optional: true 883 | 884 | /@rollup/rollup-android-arm64@4.13.0: 885 | resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} 886 | cpu: [arm64] 887 | os: [android] 888 | requiresBuild: true 889 | optional: true 890 | 891 | /@rollup/rollup-darwin-arm64@4.13.0: 892 | resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} 893 | cpu: [arm64] 894 | os: [darwin] 895 | requiresBuild: true 896 | optional: true 897 | 898 | /@rollup/rollup-darwin-x64@4.13.0: 899 | resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} 900 | cpu: [x64] 901 | os: [darwin] 902 | requiresBuild: true 903 | optional: true 904 | 905 | /@rollup/rollup-linux-arm-gnueabihf@4.13.0: 906 | resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} 907 | cpu: [arm] 908 | os: [linux] 909 | requiresBuild: true 910 | optional: true 911 | 912 | /@rollup/rollup-linux-arm64-gnu@4.13.0: 913 | resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} 914 | cpu: [arm64] 915 | os: [linux] 916 | requiresBuild: true 917 | optional: true 918 | 919 | /@rollup/rollup-linux-arm64-musl@4.13.0: 920 | resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} 921 | cpu: [arm64] 922 | os: [linux] 923 | requiresBuild: true 924 | optional: true 925 | 926 | /@rollup/rollup-linux-riscv64-gnu@4.13.0: 927 | resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} 928 | cpu: [riscv64] 929 | os: [linux] 930 | requiresBuild: true 931 | optional: true 932 | 933 | /@rollup/rollup-linux-x64-gnu@4.13.0: 934 | resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} 935 | cpu: [x64] 936 | os: [linux] 937 | requiresBuild: true 938 | optional: true 939 | 940 | /@rollup/rollup-linux-x64-musl@4.13.0: 941 | resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} 942 | cpu: [x64] 943 | os: [linux] 944 | requiresBuild: true 945 | optional: true 946 | 947 | /@rollup/rollup-win32-arm64-msvc@4.13.0: 948 | resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} 949 | cpu: [arm64] 950 | os: [win32] 951 | requiresBuild: true 952 | optional: true 953 | 954 | /@rollup/rollup-win32-ia32-msvc@4.13.0: 955 | resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} 956 | cpu: [ia32] 957 | os: [win32] 958 | requiresBuild: true 959 | optional: true 960 | 961 | /@rollup/rollup-win32-x64-msvc@4.13.0: 962 | resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} 963 | cpu: [x64] 964 | os: [win32] 965 | requiresBuild: true 966 | optional: true 967 | 968 | /@types/babel__core@7.20.5: 969 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 970 | dependencies: 971 | '@babel/parser': 7.23.6 972 | '@babel/types': 7.23.6 973 | '@types/babel__generator': 7.6.8 974 | '@types/babel__template': 7.4.4 975 | '@types/babel__traverse': 7.20.5 976 | dev: true 977 | 978 | /@types/babel__generator@7.6.8: 979 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 980 | dependencies: 981 | '@babel/types': 7.23.6 982 | dev: true 983 | 984 | /@types/babel__template@7.4.4: 985 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 986 | dependencies: 987 | '@babel/parser': 7.23.6 988 | '@babel/types': 7.23.6 989 | dev: true 990 | 991 | /@types/babel__traverse@7.20.5: 992 | resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} 993 | dependencies: 994 | '@babel/types': 7.23.6 995 | dev: true 996 | 997 | /@types/estree@1.0.5: 998 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 999 | 1000 | /@types/json-schema@7.0.15: 1001 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 1002 | dev: true 1003 | 1004 | /@types/prop-types@15.7.11: 1005 | resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} 1006 | 1007 | /@types/react-copy-to-clipboard@5.0.7: 1008 | resolution: {integrity: sha512-Gft19D+as4M+9Whq1oglhmK49vqPhcLzk8WfvfLvaYMIPYanyfLy0+CwFucMJfdKoSFyySPmkkWn8/E6voQXjQ==} 1009 | dependencies: 1010 | '@types/react': 18.2.65 1011 | dev: true 1012 | 1013 | /@types/react-dom@18.2.21: 1014 | resolution: {integrity: sha512-gnvBA/21SA4xxqNXEwNiVcP0xSGHh/gi1VhWv9Bl46a0ItbTT5nFY+G9VSQpaG/8N/qdJpJ+vftQ4zflTtnjLw==} 1015 | dependencies: 1016 | '@types/react': 18.2.65 1017 | dev: true 1018 | 1019 | /@types/react-lottie@1.2.10: 1020 | resolution: {integrity: sha512-rCd1p3US4ELKJlqwVnP0h5b24zt5p9OCvKUoNpYExLqwbFZMWEiJ6EGLMmH7nmq5V7KomBIbWO2X/XRFsL0vCA==} 1021 | dependencies: 1022 | '@types/react': 18.2.65 1023 | dev: false 1024 | 1025 | /@types/react@18.2.65: 1026 | resolution: {integrity: sha512-98TsY0aW4jqx/3RqsUXwMDZSWR1Z4CUlJNue8ueS2/wcxZOsz4xmW1X8ieaWVRHcmmQM3R8xVA4XWB3dJnWwDQ==} 1027 | dependencies: 1028 | '@types/prop-types': 15.7.11 1029 | '@types/scheduler': 0.16.8 1030 | csstype: 3.1.3 1031 | 1032 | /@types/scheduler@0.16.8: 1033 | resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} 1034 | 1035 | /@types/semver@7.5.8: 1036 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 1037 | dev: true 1038 | 1039 | /@types/trusted-types@2.0.7: 1040 | resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} 1041 | dev: false 1042 | 1043 | /@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0)(eslint@8.57.0)(typescript@5.4.2): 1044 | resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==} 1045 | engines: {node: ^16.0.0 || >=18.0.0} 1046 | peerDependencies: 1047 | '@typescript-eslint/parser': ^7.0.0 1048 | eslint: ^8.56.0 1049 | typescript: '*' 1050 | peerDependenciesMeta: 1051 | typescript: 1052 | optional: true 1053 | dependencies: 1054 | '@eslint-community/regexpp': 4.10.0 1055 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.2) 1056 | '@typescript-eslint/scope-manager': 7.2.0 1057 | '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) 1058 | '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) 1059 | '@typescript-eslint/visitor-keys': 7.2.0 1060 | debug: 4.3.4 1061 | eslint: 8.57.0 1062 | graphemer: 1.4.0 1063 | ignore: 5.3.1 1064 | natural-compare: 1.4.0 1065 | semver: 7.6.0 1066 | ts-api-utils: 1.3.0(typescript@5.4.2) 1067 | typescript: 5.4.2 1068 | transitivePeerDependencies: 1069 | - supports-color 1070 | dev: true 1071 | 1072 | /@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.2): 1073 | resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} 1074 | engines: {node: ^16.0.0 || >=18.0.0} 1075 | peerDependencies: 1076 | eslint: ^8.56.0 1077 | typescript: '*' 1078 | peerDependenciesMeta: 1079 | typescript: 1080 | optional: true 1081 | dependencies: 1082 | '@typescript-eslint/scope-manager': 7.2.0 1083 | '@typescript-eslint/types': 7.2.0 1084 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) 1085 | '@typescript-eslint/visitor-keys': 7.2.0 1086 | debug: 4.3.4 1087 | eslint: 8.57.0 1088 | typescript: 5.4.2 1089 | transitivePeerDependencies: 1090 | - supports-color 1091 | dev: true 1092 | 1093 | /@typescript-eslint/scope-manager@7.2.0: 1094 | resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} 1095 | engines: {node: ^16.0.0 || >=18.0.0} 1096 | dependencies: 1097 | '@typescript-eslint/types': 7.2.0 1098 | '@typescript-eslint/visitor-keys': 7.2.0 1099 | dev: true 1100 | 1101 | /@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): 1102 | resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==} 1103 | engines: {node: ^16.0.0 || >=18.0.0} 1104 | peerDependencies: 1105 | eslint: ^8.56.0 1106 | typescript: '*' 1107 | peerDependenciesMeta: 1108 | typescript: 1109 | optional: true 1110 | dependencies: 1111 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) 1112 | '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.4.2) 1113 | debug: 4.3.4 1114 | eslint: 8.57.0 1115 | ts-api-utils: 1.3.0(typescript@5.4.2) 1116 | typescript: 5.4.2 1117 | transitivePeerDependencies: 1118 | - supports-color 1119 | dev: true 1120 | 1121 | /@typescript-eslint/types@7.2.0: 1122 | resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} 1123 | engines: {node: ^16.0.0 || >=18.0.0} 1124 | dev: true 1125 | 1126 | /@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.2): 1127 | resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} 1128 | engines: {node: ^16.0.0 || >=18.0.0} 1129 | peerDependencies: 1130 | typescript: '*' 1131 | peerDependenciesMeta: 1132 | typescript: 1133 | optional: true 1134 | dependencies: 1135 | '@typescript-eslint/types': 7.2.0 1136 | '@typescript-eslint/visitor-keys': 7.2.0 1137 | debug: 4.3.4 1138 | globby: 11.1.0 1139 | is-glob: 4.0.3 1140 | minimatch: 9.0.3 1141 | semver: 7.6.0 1142 | ts-api-utils: 1.3.0(typescript@5.4.2) 1143 | typescript: 5.4.2 1144 | transitivePeerDependencies: 1145 | - supports-color 1146 | dev: true 1147 | 1148 | /@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.4.2): 1149 | resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==} 1150 | engines: {node: ^16.0.0 || >=18.0.0} 1151 | peerDependencies: 1152 | eslint: ^8.56.0 1153 | dependencies: 1154 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1155 | '@types/json-schema': 7.0.15 1156 | '@types/semver': 7.5.8 1157 | '@typescript-eslint/scope-manager': 7.2.0 1158 | '@typescript-eslint/types': 7.2.0 1159 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) 1160 | eslint: 8.57.0 1161 | semver: 7.6.0 1162 | transitivePeerDependencies: 1163 | - supports-color 1164 | - typescript 1165 | dev: true 1166 | 1167 | /@typescript-eslint/visitor-keys@7.2.0: 1168 | resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} 1169 | engines: {node: ^16.0.0 || >=18.0.0} 1170 | dependencies: 1171 | '@typescript-eslint/types': 7.2.0 1172 | eslint-visitor-keys: 3.4.3 1173 | dev: true 1174 | 1175 | /@ungap/structured-clone@1.2.0: 1176 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 1177 | dev: true 1178 | 1179 | /@vitejs/plugin-react@4.2.1(vite@5.1.6): 1180 | resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} 1181 | engines: {node: ^14.18.0 || >=16.0.0} 1182 | peerDependencies: 1183 | vite: ^4.2.0 || ^5.0.0 1184 | dependencies: 1185 | '@babel/core': 7.23.7 1186 | '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.7) 1187 | '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) 1188 | '@types/babel__core': 7.20.5 1189 | react-refresh: 0.14.0 1190 | vite: 5.1.6(sass@1.72.0) 1191 | transitivePeerDependencies: 1192 | - supports-color 1193 | dev: true 1194 | 1195 | /acorn-jsx@5.3.2(acorn@8.11.3): 1196 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1197 | peerDependencies: 1198 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1199 | dependencies: 1200 | acorn: 8.11.3 1201 | dev: true 1202 | 1203 | /acorn@8.11.3: 1204 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1205 | engines: {node: '>=0.4.0'} 1206 | hasBin: true 1207 | dev: true 1208 | 1209 | /ajv@6.12.6: 1210 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1211 | dependencies: 1212 | fast-deep-equal: 3.1.3 1213 | fast-json-stable-stringify: 2.1.0 1214 | json-schema-traverse: 0.4.1 1215 | uri-js: 4.4.1 1216 | dev: true 1217 | 1218 | /ansi-regex@5.0.1: 1219 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 1220 | engines: {node: '>=8'} 1221 | dev: true 1222 | 1223 | /ansi-styles@3.2.1: 1224 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1225 | engines: {node: '>=4'} 1226 | dependencies: 1227 | color-convert: 1.9.3 1228 | dev: true 1229 | 1230 | /ansi-styles@4.3.0: 1231 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1232 | engines: {node: '>=8'} 1233 | dependencies: 1234 | color-convert: 2.0.1 1235 | dev: true 1236 | 1237 | /anymatch@3.1.3: 1238 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 1239 | engines: {node: '>= 8'} 1240 | dependencies: 1241 | normalize-path: 3.0.0 1242 | picomatch: 2.3.1 1243 | 1244 | /argparse@2.0.1: 1245 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1246 | dev: true 1247 | 1248 | /array-union@2.1.0: 1249 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1250 | engines: {node: '>=8'} 1251 | dev: true 1252 | 1253 | /babel-runtime@6.26.0: 1254 | resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} 1255 | dependencies: 1256 | core-js: 2.6.12 1257 | regenerator-runtime: 0.11.1 1258 | dev: false 1259 | 1260 | /balanced-match@1.0.2: 1261 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1262 | dev: true 1263 | 1264 | /binary-extensions@2.3.0: 1265 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 1266 | engines: {node: '>=8'} 1267 | 1268 | /brace-expansion@1.1.11: 1269 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 1270 | dependencies: 1271 | balanced-match: 1.0.2 1272 | concat-map: 0.0.1 1273 | dev: true 1274 | 1275 | /brace-expansion@2.0.1: 1276 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 1277 | dependencies: 1278 | balanced-match: 1.0.2 1279 | dev: true 1280 | 1281 | /braces@3.0.2: 1282 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 1283 | engines: {node: '>=8'} 1284 | dependencies: 1285 | fill-range: 7.0.1 1286 | 1287 | /browser-image-hash@0.0.5: 1288 | resolution: {integrity: sha512-j+rsA1L3vL8k8ji4pFPFAOU/wN/hegwk1eoMshFk3OtjzEzdDrT9Dz94OkLc43NhWGck2a9t5eQQok6zjJSPHQ==} 1289 | dependencies: 1290 | '@rgba-image/lanczos': 0.1.1 1291 | decimal.js: 10.4.3 1292 | wasm-imagemagick: 1.2.8 1293 | dev: false 1294 | 1295 | /browserslist@4.22.2: 1296 | resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} 1297 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1298 | hasBin: true 1299 | dependencies: 1300 | caniuse-lite: 1.0.30001576 1301 | electron-to-chromium: 1.4.629 1302 | node-releases: 2.0.14 1303 | update-browserslist-db: 1.0.13(browserslist@4.22.2) 1304 | dev: true 1305 | 1306 | /callsites@3.1.0: 1307 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1308 | engines: {node: '>=6'} 1309 | dev: true 1310 | 1311 | /caniuse-lite@1.0.30001576: 1312 | resolution: {integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==} 1313 | dev: true 1314 | 1315 | /chalk@2.4.2: 1316 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1317 | engines: {node: '>=4'} 1318 | dependencies: 1319 | ansi-styles: 3.2.1 1320 | escape-string-regexp: 1.0.5 1321 | supports-color: 5.5.0 1322 | dev: true 1323 | 1324 | /chalk@4.1.2: 1325 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1326 | engines: {node: '>=10'} 1327 | dependencies: 1328 | ansi-styles: 4.3.0 1329 | supports-color: 7.2.0 1330 | dev: true 1331 | 1332 | /chokidar@3.6.0: 1333 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 1334 | engines: {node: '>= 8.10.0'} 1335 | dependencies: 1336 | anymatch: 3.1.3 1337 | braces: 3.0.2 1338 | glob-parent: 5.1.2 1339 | is-binary-path: 2.1.0 1340 | is-glob: 4.0.3 1341 | normalize-path: 3.0.0 1342 | readdirp: 3.6.0 1343 | optionalDependencies: 1344 | fsevents: 2.3.3 1345 | 1346 | /clsx@2.1.1: 1347 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 1348 | engines: {node: '>=6'} 1349 | dev: false 1350 | 1351 | /color-convert@1.9.3: 1352 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1353 | dependencies: 1354 | color-name: 1.1.3 1355 | dev: true 1356 | 1357 | /color-convert@2.0.1: 1358 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1359 | engines: {node: '>=7.0.0'} 1360 | dependencies: 1361 | color-name: 1.1.4 1362 | 1363 | /color-name@1.1.3: 1364 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1365 | dev: true 1366 | 1367 | /color-name@1.1.4: 1368 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1369 | 1370 | /color-string@1.9.1: 1371 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 1372 | dependencies: 1373 | color-name: 1.1.4 1374 | simple-swizzle: 0.2.2 1375 | dev: false 1376 | 1377 | /color@4.2.3: 1378 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 1379 | engines: {node: '>=12.5.0'} 1380 | dependencies: 1381 | color-convert: 2.0.1 1382 | color-string: 1.9.1 1383 | dev: false 1384 | 1385 | /concat-map@0.0.1: 1386 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1387 | dev: true 1388 | 1389 | /convert-source-map@2.0.0: 1390 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1391 | dev: true 1392 | 1393 | /copy-to-clipboard@3.3.3: 1394 | resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} 1395 | dependencies: 1396 | toggle-selection: 1.0.6 1397 | dev: false 1398 | 1399 | /core-js@2.6.12: 1400 | resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} 1401 | deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. 1402 | requiresBuild: true 1403 | dev: false 1404 | 1405 | /cross-spawn@7.0.3: 1406 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1407 | engines: {node: '>= 8'} 1408 | dependencies: 1409 | path-key: 3.1.1 1410 | shebang-command: 2.0.0 1411 | which: 2.0.2 1412 | dev: true 1413 | 1414 | /csstype@3.1.3: 1415 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1416 | 1417 | /debug@4.3.4: 1418 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1419 | engines: {node: '>=6.0'} 1420 | peerDependencies: 1421 | supports-color: '*' 1422 | peerDependenciesMeta: 1423 | supports-color: 1424 | optional: true 1425 | dependencies: 1426 | ms: 2.1.2 1427 | dev: true 1428 | 1429 | /decimal.js@10.4.3: 1430 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 1431 | dev: false 1432 | 1433 | /deep-diff@1.0.2: 1434 | resolution: {integrity: sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==} 1435 | dev: false 1436 | 1437 | /deep-is@0.1.4: 1438 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1439 | dev: true 1440 | 1441 | /deepmerge@4.3.1: 1442 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1443 | engines: {node: '>=0.10.0'} 1444 | dev: false 1445 | 1446 | /detect-libc@2.0.3: 1447 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 1448 | engines: {node: '>=8'} 1449 | dev: false 1450 | 1451 | /dir-glob@3.0.1: 1452 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1453 | engines: {node: '>=8'} 1454 | dependencies: 1455 | path-type: 4.0.0 1456 | dev: true 1457 | 1458 | /doctrine@3.0.0: 1459 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1460 | engines: {node: '>=6.0.0'} 1461 | dependencies: 1462 | esutils: 2.0.3 1463 | dev: true 1464 | 1465 | /electron-to-chromium@1.4.629: 1466 | resolution: {integrity: sha512-5UUkr3k3CZ/k+9Sw7vaaIMyOzMC0XbPyprKI3n0tbKDqkzTDOjK4izm7DxlkueRMim6ZZQ1ja9F7hoFVplHihA==} 1467 | dev: true 1468 | 1469 | /error-stack-parser@2.1.4: 1470 | resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} 1471 | dependencies: 1472 | stackframe: 1.3.4 1473 | dev: false 1474 | 1475 | /esbuild@0.19.12: 1476 | resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1477 | engines: {node: '>=12'} 1478 | hasBin: true 1479 | requiresBuild: true 1480 | optionalDependencies: 1481 | '@esbuild/aix-ppc64': 0.19.12 1482 | '@esbuild/android-arm': 0.19.12 1483 | '@esbuild/android-arm64': 0.19.12 1484 | '@esbuild/android-x64': 0.19.12 1485 | '@esbuild/darwin-arm64': 0.19.12 1486 | '@esbuild/darwin-x64': 0.19.12 1487 | '@esbuild/freebsd-arm64': 0.19.12 1488 | '@esbuild/freebsd-x64': 0.19.12 1489 | '@esbuild/linux-arm': 0.19.12 1490 | '@esbuild/linux-arm64': 0.19.12 1491 | '@esbuild/linux-ia32': 0.19.12 1492 | '@esbuild/linux-loong64': 0.19.12 1493 | '@esbuild/linux-mips64el': 0.19.12 1494 | '@esbuild/linux-ppc64': 0.19.12 1495 | '@esbuild/linux-riscv64': 0.19.12 1496 | '@esbuild/linux-s390x': 0.19.12 1497 | '@esbuild/linux-x64': 0.19.12 1498 | '@esbuild/netbsd-x64': 0.19.12 1499 | '@esbuild/openbsd-x64': 0.19.12 1500 | '@esbuild/sunos-x64': 0.19.12 1501 | '@esbuild/win32-arm64': 0.19.12 1502 | '@esbuild/win32-ia32': 0.19.12 1503 | '@esbuild/win32-x64': 0.19.12 1504 | 1505 | /escalade@3.1.1: 1506 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1507 | engines: {node: '>=6'} 1508 | dev: true 1509 | 1510 | /escape-string-regexp@1.0.5: 1511 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1512 | engines: {node: '>=0.8.0'} 1513 | dev: true 1514 | 1515 | /escape-string-regexp@4.0.0: 1516 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1517 | engines: {node: '>=10'} 1518 | dev: true 1519 | 1520 | /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): 1521 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1522 | engines: {node: '>=10'} 1523 | peerDependencies: 1524 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1525 | dependencies: 1526 | eslint: 8.57.0 1527 | dev: true 1528 | 1529 | /eslint-plugin-react-refresh@0.4.5(eslint@8.57.0): 1530 | resolution: {integrity: sha512-D53FYKJa+fDmZMtriODxvhwrO+IOqrxoEo21gMA0sjHdU6dPVH4OhyFip9ypl8HOF5RV5KdTo+rBQLvnY2cO8w==} 1531 | peerDependencies: 1532 | eslint: '>=7' 1533 | dependencies: 1534 | eslint: 8.57.0 1535 | dev: true 1536 | 1537 | /eslint-scope@7.2.2: 1538 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1539 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1540 | dependencies: 1541 | esrecurse: 4.3.0 1542 | estraverse: 5.3.0 1543 | dev: true 1544 | 1545 | /eslint-visitor-keys@3.4.3: 1546 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1547 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1548 | dev: true 1549 | 1550 | /eslint@8.57.0: 1551 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1552 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1553 | hasBin: true 1554 | dependencies: 1555 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1556 | '@eslint-community/regexpp': 4.10.0 1557 | '@eslint/eslintrc': 2.1.4 1558 | '@eslint/js': 8.57.0 1559 | '@humanwhocodes/config-array': 0.11.14 1560 | '@humanwhocodes/module-importer': 1.0.1 1561 | '@nodelib/fs.walk': 1.2.8 1562 | '@ungap/structured-clone': 1.2.0 1563 | ajv: 6.12.6 1564 | chalk: 4.1.2 1565 | cross-spawn: 7.0.3 1566 | debug: 4.3.4 1567 | doctrine: 3.0.0 1568 | escape-string-regexp: 4.0.0 1569 | eslint-scope: 7.2.2 1570 | eslint-visitor-keys: 3.4.3 1571 | espree: 9.6.1 1572 | esquery: 1.5.0 1573 | esutils: 2.0.3 1574 | fast-deep-equal: 3.1.3 1575 | file-entry-cache: 6.0.1 1576 | find-up: 5.0.0 1577 | glob-parent: 6.0.2 1578 | globals: 13.24.0 1579 | graphemer: 1.4.0 1580 | ignore: 5.3.1 1581 | imurmurhash: 0.1.4 1582 | is-glob: 4.0.3 1583 | is-path-inside: 3.0.3 1584 | js-yaml: 4.1.0 1585 | json-stable-stringify-without-jsonify: 1.0.1 1586 | levn: 0.4.1 1587 | lodash.merge: 4.6.2 1588 | minimatch: 3.1.2 1589 | natural-compare: 1.4.0 1590 | optionator: 0.9.3 1591 | strip-ansi: 6.0.1 1592 | text-table: 0.2.0 1593 | transitivePeerDependencies: 1594 | - supports-color 1595 | dev: true 1596 | 1597 | /espree@9.6.1: 1598 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1599 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1600 | dependencies: 1601 | acorn: 8.11.3 1602 | acorn-jsx: 5.3.2(acorn@8.11.3) 1603 | eslint-visitor-keys: 3.4.3 1604 | dev: true 1605 | 1606 | /esquery@1.5.0: 1607 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1608 | engines: {node: '>=0.10'} 1609 | dependencies: 1610 | estraverse: 5.3.0 1611 | dev: true 1612 | 1613 | /esrecurse@4.3.0: 1614 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1615 | engines: {node: '>=4.0'} 1616 | dependencies: 1617 | estraverse: 5.3.0 1618 | dev: true 1619 | 1620 | /estraverse@5.3.0: 1621 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1622 | engines: {node: '>=4.0'} 1623 | dev: true 1624 | 1625 | /esutils@2.0.3: 1626 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1627 | engines: {node: '>=0.10.0'} 1628 | dev: true 1629 | 1630 | /fast-deep-equal@3.1.3: 1631 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1632 | dev: true 1633 | 1634 | /fast-glob@3.3.2: 1635 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1636 | engines: {node: '>=8.6.0'} 1637 | dependencies: 1638 | '@nodelib/fs.stat': 2.0.5 1639 | '@nodelib/fs.walk': 1.2.8 1640 | glob-parent: 5.1.2 1641 | merge2: 1.4.1 1642 | micromatch: 4.0.5 1643 | dev: true 1644 | 1645 | /fast-json-stable-stringify@2.1.0: 1646 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1647 | dev: true 1648 | 1649 | /fast-levenshtein@2.0.6: 1650 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1651 | dev: true 1652 | 1653 | /fastq@1.17.1: 1654 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1655 | dependencies: 1656 | reusify: 1.0.4 1657 | dev: true 1658 | 1659 | /fflate@0.8.2: 1660 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} 1661 | dev: false 1662 | 1663 | /file-entry-cache@6.0.1: 1664 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1665 | engines: {node: ^10.12.0 || >=12.0.0} 1666 | dependencies: 1667 | flat-cache: 3.2.0 1668 | dev: true 1669 | 1670 | /fill-range@7.0.1: 1671 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1672 | engines: {node: '>=8'} 1673 | dependencies: 1674 | to-regex-range: 5.0.1 1675 | 1676 | /find-up@5.0.0: 1677 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1678 | engines: {node: '>=10'} 1679 | dependencies: 1680 | locate-path: 6.0.0 1681 | path-exists: 4.0.0 1682 | dev: true 1683 | 1684 | /flat-cache@3.2.0: 1685 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1686 | engines: {node: ^10.12.0 || >=12.0.0} 1687 | dependencies: 1688 | flatted: 3.3.1 1689 | keyv: 4.5.4 1690 | rimraf: 3.0.2 1691 | dev: true 1692 | 1693 | /flatted@3.3.1: 1694 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1695 | dev: true 1696 | 1697 | /fs.realpath@1.0.0: 1698 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1699 | dev: true 1700 | 1701 | /fsevents@2.3.3: 1702 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1703 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1704 | os: [darwin] 1705 | requiresBuild: true 1706 | optional: true 1707 | 1708 | /gensync@1.0.0-beta.2: 1709 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1710 | engines: {node: '>=6.9.0'} 1711 | dev: true 1712 | 1713 | /glob-parent@5.1.2: 1714 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1715 | engines: {node: '>= 6'} 1716 | dependencies: 1717 | is-glob: 4.0.3 1718 | 1719 | /glob-parent@6.0.2: 1720 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1721 | engines: {node: '>=10.13.0'} 1722 | dependencies: 1723 | is-glob: 4.0.3 1724 | dev: true 1725 | 1726 | /glob@7.2.3: 1727 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1728 | dependencies: 1729 | fs.realpath: 1.0.0 1730 | inflight: 1.0.6 1731 | inherits: 2.0.4 1732 | minimatch: 3.1.2 1733 | once: 1.4.0 1734 | path-is-absolute: 1.0.1 1735 | dev: true 1736 | 1737 | /globals@11.12.0: 1738 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1739 | engines: {node: '>=4'} 1740 | dev: true 1741 | 1742 | /globals@13.24.0: 1743 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1744 | engines: {node: '>=8'} 1745 | dependencies: 1746 | type-fest: 0.20.2 1747 | dev: true 1748 | 1749 | /globby@11.1.0: 1750 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1751 | engines: {node: '>=10'} 1752 | dependencies: 1753 | array-union: 2.1.0 1754 | dir-glob: 3.0.1 1755 | fast-glob: 3.3.2 1756 | ignore: 5.3.1 1757 | merge2: 1.4.1 1758 | slash: 3.0.0 1759 | dev: true 1760 | 1761 | /graphemer@1.4.0: 1762 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1763 | dev: true 1764 | 1765 | /has-flag@3.0.0: 1766 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1767 | engines: {node: '>=4'} 1768 | dev: true 1769 | 1770 | /has-flag@4.0.0: 1771 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1772 | engines: {node: '>=8'} 1773 | dev: true 1774 | 1775 | /howler@2.2.4: 1776 | resolution: {integrity: sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==} 1777 | dev: false 1778 | 1779 | /ignore@5.3.1: 1780 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1781 | engines: {node: '>= 4'} 1782 | dev: true 1783 | 1784 | /immutable@4.3.5: 1785 | resolution: {integrity: sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==} 1786 | 1787 | /import-fresh@3.3.0: 1788 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1789 | engines: {node: '>=6'} 1790 | dependencies: 1791 | parent-module: 1.0.1 1792 | resolve-from: 4.0.0 1793 | dev: true 1794 | 1795 | /imurmurhash@0.1.4: 1796 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1797 | engines: {node: '>=0.8.19'} 1798 | dev: true 1799 | 1800 | /inflight@1.0.6: 1801 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1802 | dependencies: 1803 | once: 1.4.0 1804 | wrappy: 1.0.2 1805 | dev: true 1806 | 1807 | /inherits@2.0.4: 1808 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1809 | dev: true 1810 | 1811 | /is-arrayish@0.3.2: 1812 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1813 | dev: false 1814 | 1815 | /is-binary-path@2.1.0: 1816 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1817 | engines: {node: '>=8'} 1818 | dependencies: 1819 | binary-extensions: 2.3.0 1820 | 1821 | /is-extglob@2.1.1: 1822 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1823 | engines: {node: '>=0.10.0'} 1824 | 1825 | /is-glob@4.0.3: 1826 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1827 | engines: {node: '>=0.10.0'} 1828 | dependencies: 1829 | is-extglob: 2.1.1 1830 | 1831 | /is-lite@0.8.2: 1832 | resolution: {integrity: sha512-JZfH47qTsslwaAsqbMI3Q6HNNjUuq6Cmzzww50TdP5Esb6e1y2sK2UAaZZuzfAzpoI2AkxoPQapZdlDuP6Vlsw==} 1833 | dev: false 1834 | 1835 | /is-lite@1.2.1: 1836 | resolution: {integrity: sha512-pgF+L5bxC+10hLBgf6R2P4ZZUBOQIIacbdo8YvuCP8/JvsWxG7aZ9p10DYuLtifFci4l3VITphhMlMV4Y+urPw==} 1837 | dev: false 1838 | 1839 | /is-number@7.0.0: 1840 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1841 | engines: {node: '>=0.12.0'} 1842 | 1843 | /is-path-inside@3.0.3: 1844 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1845 | engines: {node: '>=8'} 1846 | dev: true 1847 | 1848 | /isexe@2.0.0: 1849 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1850 | dev: true 1851 | 1852 | /js-tokens@4.0.0: 1853 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1854 | 1855 | /js-yaml@4.1.0: 1856 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1857 | hasBin: true 1858 | dependencies: 1859 | argparse: 2.0.1 1860 | dev: true 1861 | 1862 | /jsesc@2.5.2: 1863 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1864 | engines: {node: '>=4'} 1865 | hasBin: true 1866 | dev: true 1867 | 1868 | /json-buffer@3.0.1: 1869 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1870 | dev: true 1871 | 1872 | /json-schema-traverse@0.4.1: 1873 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1874 | dev: true 1875 | 1876 | /json-stable-stringify-without-jsonify@1.0.1: 1877 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1878 | dev: true 1879 | 1880 | /json5@2.2.3: 1881 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1882 | engines: {node: '>=6'} 1883 | hasBin: true 1884 | dev: true 1885 | 1886 | /keyv@4.5.4: 1887 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1888 | dependencies: 1889 | json-buffer: 3.0.1 1890 | dev: true 1891 | 1892 | /levn@0.4.1: 1893 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1894 | engines: {node: '>= 0.8.0'} 1895 | dependencies: 1896 | prelude-ls: 1.2.1 1897 | type-check: 0.4.0 1898 | dev: true 1899 | 1900 | /lit-element@3.3.3: 1901 | resolution: {integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==} 1902 | dependencies: 1903 | '@lit-labs/ssr-dom-shim': 1.2.0 1904 | '@lit/reactive-element': 1.6.3 1905 | lit-html: 2.8.0 1906 | dev: false 1907 | 1908 | /lit-html@2.8.0: 1909 | resolution: {integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==} 1910 | dependencies: 1911 | '@types/trusted-types': 2.0.7 1912 | dev: false 1913 | 1914 | /lit@2.8.0: 1915 | resolution: {integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==} 1916 | dependencies: 1917 | '@lit/reactive-element': 1.6.3 1918 | lit-element: 3.3.3 1919 | lit-html: 2.8.0 1920 | dev: false 1921 | 1922 | /locate-path@6.0.0: 1923 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1924 | engines: {node: '>=10'} 1925 | dependencies: 1926 | p-locate: 5.0.0 1927 | dev: true 1928 | 1929 | /lodash.merge@4.6.2: 1930 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1931 | dev: true 1932 | 1933 | /loose-envify@1.4.0: 1934 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1935 | hasBin: true 1936 | dependencies: 1937 | js-tokens: 4.0.0 1938 | dev: false 1939 | 1940 | /lottie-web@5.12.2: 1941 | resolution: {integrity: sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==} 1942 | dev: false 1943 | 1944 | /lru-cache@5.1.1: 1945 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1946 | dependencies: 1947 | yallist: 3.1.1 1948 | dev: true 1949 | 1950 | /lru-cache@6.0.0: 1951 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1952 | engines: {node: '>=10'} 1953 | dependencies: 1954 | yallist: 4.0.0 1955 | 1956 | /merge2@1.4.1: 1957 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1958 | engines: {node: '>= 8'} 1959 | dev: true 1960 | 1961 | /micromatch@4.0.5: 1962 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1963 | engines: {node: '>=8.6'} 1964 | dependencies: 1965 | braces: 3.0.2 1966 | picomatch: 2.3.1 1967 | dev: true 1968 | 1969 | /minimatch@3.1.2: 1970 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1971 | dependencies: 1972 | brace-expansion: 1.1.11 1973 | dev: true 1974 | 1975 | /minimatch@9.0.3: 1976 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1977 | engines: {node: '>=16 || 14 >=14.17'} 1978 | dependencies: 1979 | brace-expansion: 2.0.1 1980 | dev: true 1981 | 1982 | /ms@2.1.2: 1983 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1984 | dev: true 1985 | 1986 | /nanoid@3.3.7: 1987 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1988 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1989 | hasBin: true 1990 | 1991 | /natural-compare@1.4.0: 1992 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1993 | dev: true 1994 | 1995 | /node-releases@2.0.14: 1996 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1997 | dev: true 1998 | 1999 | /normalize-path@3.0.0: 2000 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2001 | engines: {node: '>=0.10.0'} 2002 | 2003 | /object-assign@4.1.1: 2004 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2005 | engines: {node: '>=0.10.0'} 2006 | dev: false 2007 | 2008 | /once@1.4.0: 2009 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2010 | dependencies: 2011 | wrappy: 1.0.2 2012 | dev: true 2013 | 2014 | /optionator@0.9.3: 2015 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2016 | engines: {node: '>= 0.8.0'} 2017 | dependencies: 2018 | '@aashutoshrathi/word-wrap': 1.2.6 2019 | deep-is: 0.1.4 2020 | fast-levenshtein: 2.0.6 2021 | levn: 0.4.1 2022 | prelude-ls: 1.2.1 2023 | type-check: 0.4.0 2024 | dev: true 2025 | 2026 | /p-limit@3.1.0: 2027 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2028 | engines: {node: '>=10'} 2029 | dependencies: 2030 | yocto-queue: 0.1.0 2031 | dev: true 2032 | 2033 | /p-locate@5.0.0: 2034 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2035 | engines: {node: '>=10'} 2036 | dependencies: 2037 | p-limit: 3.1.0 2038 | dev: true 2039 | 2040 | /p-map@2.1.0: 2041 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 2042 | engines: {node: '>=6'} 2043 | dev: false 2044 | 2045 | /parent-module@1.0.1: 2046 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2047 | engines: {node: '>=6'} 2048 | dependencies: 2049 | callsites: 3.1.0 2050 | dev: true 2051 | 2052 | /path-exists@4.0.0: 2053 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2054 | engines: {node: '>=8'} 2055 | dev: true 2056 | 2057 | /path-is-absolute@1.0.1: 2058 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2059 | engines: {node: '>=0.10.0'} 2060 | dev: true 2061 | 2062 | /path-key@3.1.1: 2063 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2064 | engines: {node: '>=8'} 2065 | dev: true 2066 | 2067 | /path-type@4.0.0: 2068 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2069 | engines: {node: '>=8'} 2070 | dev: true 2071 | 2072 | /picocolors@1.0.0: 2073 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2074 | 2075 | /picomatch@2.3.1: 2076 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2077 | engines: {node: '>=8.6'} 2078 | 2079 | /popper.js@1.16.1: 2080 | resolution: {integrity: sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==} 2081 | deprecated: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 2082 | dev: false 2083 | 2084 | /postcss@8.4.35: 2085 | resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} 2086 | engines: {node: ^10 || ^12 || >=14} 2087 | dependencies: 2088 | nanoid: 3.3.7 2089 | picocolors: 1.0.0 2090 | source-map-js: 1.0.2 2091 | 2092 | /prelude-ls@1.2.1: 2093 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2094 | engines: {node: '>= 0.8.0'} 2095 | dev: true 2096 | 2097 | /prop-types@15.8.1: 2098 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2099 | dependencies: 2100 | loose-envify: 1.4.0 2101 | object-assign: 4.1.1 2102 | react-is: 16.13.1 2103 | dev: false 2104 | 2105 | /punycode@2.3.1: 2106 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2107 | engines: {node: '>=6'} 2108 | dev: true 2109 | 2110 | /queue-microtask@1.2.3: 2111 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2112 | dev: true 2113 | 2114 | /react-audio-player@0.17.0(react-dom@18.2.0)(react@18.2.0): 2115 | resolution: {integrity: sha512-aCZgusPxA9HK7rLZcTdhTbBH9l6do9vn3NorgoDZRxRxJlOy9uZWzPaKjd7QdcuP2vXpxGA/61JMnnOEY7NXeA==} 2116 | peerDependencies: 2117 | react: '>=16' 2118 | react-dom: '>=16' 2119 | dependencies: 2120 | prop-types: 15.8.1 2121 | react: 18.2.0 2122 | react-dom: 18.2.0(react@18.2.0) 2123 | dev: false 2124 | 2125 | /react-copy-to-clipboard@5.1.0(react@18.2.0): 2126 | resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} 2127 | peerDependencies: 2128 | react: ^15.3.0 || 16 || 17 || 18 2129 | dependencies: 2130 | copy-to-clipboard: 3.3.3 2131 | prop-types: 15.8.1 2132 | react: 18.2.0 2133 | dev: false 2134 | 2135 | /react-dom@18.2.0(react@18.2.0): 2136 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2137 | peerDependencies: 2138 | react: ^18.2.0 2139 | dependencies: 2140 | loose-envify: 1.4.0 2141 | react: 18.2.0 2142 | scheduler: 0.23.0 2143 | dev: false 2144 | 2145 | /react-floater@0.7.9(react-dom@18.2.0)(react@18.2.0): 2146 | resolution: {integrity: sha512-NXqyp9o8FAXOATOEo0ZpyaQ2KPb4cmPMXGWkx377QtJkIXHlHRAGer7ai0r0C1kG5gf+KJ6Gy+gdNIiosvSicg==} 2147 | peerDependencies: 2148 | react: 15 - 18 2149 | react-dom: 15 - 18 2150 | dependencies: 2151 | deepmerge: 4.3.1 2152 | is-lite: 0.8.2 2153 | popper.js: 1.16.1 2154 | prop-types: 15.8.1 2155 | react: 18.2.0 2156 | react-dom: 18.2.0(react@18.2.0) 2157 | tree-changes: 0.9.3 2158 | dev: false 2159 | 2160 | /react-icons@5.1.0(react@18.2.0): 2161 | resolution: {integrity: sha512-D3zug1270S4hbSlIRJ0CUS97QE1yNNKDjzQe3HqY0aefp2CBn9VgzgES27sRR2gOvFK+0CNx/BW0ggOESp6fqQ==} 2162 | peerDependencies: 2163 | react: '*' 2164 | dependencies: 2165 | react: 18.2.0 2166 | dev: false 2167 | 2168 | /react-innertext@1.1.5(@types/react@18.2.65)(react@18.2.0): 2169 | resolution: {integrity: sha512-PWAqdqhxhHIv80dT9znP2KvS+hfkbRovFp4zFYHFFlOoQLRiawIic81gKb3U1wEyJZgMwgs3JoLtwryASRWP3Q==} 2170 | peerDependencies: 2171 | '@types/react': '>=0.0.0 <=99' 2172 | react: '>=0.0.0 <=99' 2173 | dependencies: 2174 | '@types/react': 18.2.65 2175 | react: 18.2.0 2176 | dev: false 2177 | 2178 | /react-is@16.13.1: 2179 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2180 | dev: false 2181 | 2182 | /react-joyride@2.8.1(@types/react@18.2.65)(react-dom@18.2.0)(react@18.2.0): 2183 | resolution: {integrity: sha512-fVwCmoOvJsiFKKHn8mvPUYc4JUUkgAsQMvarpZDtFPTc4duj240b12+AB8+3NXlTYGZVnKNSTgFFzoSh9RxjmQ==} 2184 | peerDependencies: 2185 | react: 15 - 18 2186 | react-dom: 15 - 18 2187 | dependencies: 2188 | '@gilbarbara/deep-equal': 0.3.1 2189 | deep-diff: 1.0.2 2190 | deepmerge: 4.3.1 2191 | is-lite: 1.2.1 2192 | react: 18.2.0 2193 | react-dom: 18.2.0(react@18.2.0) 2194 | react-floater: 0.7.9(react-dom@18.2.0)(react@18.2.0) 2195 | react-innertext: 1.1.5(@types/react@18.2.65)(react@18.2.0) 2196 | react-is: 16.13.1 2197 | scroll: 3.0.1 2198 | scrollparent: 2.1.0 2199 | tree-changes: 0.11.2 2200 | type-fest: 4.17.0 2201 | transitivePeerDependencies: 2202 | - '@types/react' 2203 | dev: false 2204 | 2205 | /react-lottie@1.2.4(react@18.2.0): 2206 | resolution: {integrity: sha512-kBGxI+MIZGBf4wZhNCWwHkMcVP+kbpmrLWH/SkO0qCKc7D7eSPcxQbfpsmsCo8v2KCBYjuGSou+xTqK44D/jMg==} 2207 | engines: {npm: ^3.0.0} 2208 | peerDependencies: 2209 | react: '>=15.0.0' 2210 | dependencies: 2211 | babel-runtime: 6.26.0 2212 | lottie-web: 5.12.2 2213 | react: 18.2.0 2214 | dev: false 2215 | 2216 | /react-refresh@0.14.0: 2217 | resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} 2218 | engines: {node: '>=0.10.0'} 2219 | dev: true 2220 | 2221 | /react-toastify@10.0.5(react-dom@18.2.0)(react@18.2.0): 2222 | resolution: {integrity: sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==} 2223 | peerDependencies: 2224 | react: '>=18' 2225 | react-dom: '>=18' 2226 | dependencies: 2227 | clsx: 2.1.1 2228 | react: 18.2.0 2229 | react-dom: 18.2.0(react@18.2.0) 2230 | dev: false 2231 | 2232 | /react@18.2.0: 2233 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2234 | engines: {node: '>=0.10.0'} 2235 | dependencies: 2236 | loose-envify: 1.4.0 2237 | dev: false 2238 | 2239 | /readdirp@3.6.0: 2240 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2241 | engines: {node: '>=8.10.0'} 2242 | dependencies: 2243 | picomatch: 2.3.1 2244 | 2245 | /regenerator-runtime@0.11.1: 2246 | resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} 2247 | dev: false 2248 | 2249 | /regenerator-runtime@0.14.1: 2250 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 2251 | dev: false 2252 | 2253 | /resolve-from@4.0.0: 2254 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2255 | engines: {node: '>=4'} 2256 | dev: true 2257 | 2258 | /reusify@1.0.4: 2259 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2260 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2261 | dev: true 2262 | 2263 | /rimraf@3.0.2: 2264 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2265 | hasBin: true 2266 | dependencies: 2267 | glob: 7.2.3 2268 | dev: true 2269 | 2270 | /rollup@4.13.0: 2271 | resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} 2272 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2273 | hasBin: true 2274 | dependencies: 2275 | '@types/estree': 1.0.5 2276 | optionalDependencies: 2277 | '@rollup/rollup-android-arm-eabi': 4.13.0 2278 | '@rollup/rollup-android-arm64': 4.13.0 2279 | '@rollup/rollup-darwin-arm64': 4.13.0 2280 | '@rollup/rollup-darwin-x64': 4.13.0 2281 | '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 2282 | '@rollup/rollup-linux-arm64-gnu': 4.13.0 2283 | '@rollup/rollup-linux-arm64-musl': 4.13.0 2284 | '@rollup/rollup-linux-riscv64-gnu': 4.13.0 2285 | '@rollup/rollup-linux-x64-gnu': 4.13.0 2286 | '@rollup/rollup-linux-x64-musl': 4.13.0 2287 | '@rollup/rollup-win32-arm64-msvc': 4.13.0 2288 | '@rollup/rollup-win32-ia32-msvc': 4.13.0 2289 | '@rollup/rollup-win32-x64-msvc': 4.13.0 2290 | fsevents: 2.3.3 2291 | 2292 | /run-parallel@1.2.0: 2293 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2294 | dependencies: 2295 | queue-microtask: 1.2.3 2296 | dev: true 2297 | 2298 | /sass@1.72.0: 2299 | resolution: {integrity: sha512-Gpczt3WA56Ly0Mn8Sl21Vj94s1axi9hDIzDFn9Ph9x3C3p4nNyvsqJoQyVXKou6cBlfFWEgRW4rT8Tb4i3XnVA==} 2300 | engines: {node: '>=14.0.0'} 2301 | hasBin: true 2302 | dependencies: 2303 | chokidar: 3.6.0 2304 | immutable: 4.3.5 2305 | source-map-js: 1.0.2 2306 | 2307 | /scheduler@0.23.0: 2308 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2309 | dependencies: 2310 | loose-envify: 1.4.0 2311 | dev: false 2312 | 2313 | /scroll@3.0.1: 2314 | resolution: {integrity: sha512-pz7y517OVls1maEzlirKO5nPYle9AXsFzTMNJrRGmT951mzpIBy7sNHOg5o/0MQd/NqliCiWnAi0kZneMPFLcg==} 2315 | dev: false 2316 | 2317 | /scrollparent@2.1.0: 2318 | resolution: {integrity: sha512-bnnvJL28/Rtz/kz2+4wpBjHzWoEzXhVg/TE8BeVGJHUqE8THNIRnDxDWMktwM+qahvlRdvlLdsQfYe+cuqfZeA==} 2319 | dev: false 2320 | 2321 | /semver@6.3.1: 2322 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2323 | hasBin: true 2324 | dev: true 2325 | 2326 | /semver@7.6.0: 2327 | resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} 2328 | engines: {node: '>=10'} 2329 | hasBin: true 2330 | dependencies: 2331 | lru-cache: 6.0.0 2332 | 2333 | /sharp-phash@2.1.0(sharp@0.33.3): 2334 | resolution: {integrity: sha512-9JYWr4tiKpjRA5Mi0qHn6LP2evS+GjdRVGjDFOSnO761m5Pavkpm83SyzauO2Ntt7znVqTn7J3XTUwHjRPAonw==} 2335 | engines: {node: '>= 10'} 2336 | peerDependencies: 2337 | sharp: '>= 0.25.4' 2338 | dependencies: 2339 | sharp: 0.33.3 2340 | dev: false 2341 | 2342 | /sharp@0.33.3: 2343 | resolution: {integrity: sha512-vHUeXJU1UvlO/BNwTpT0x/r53WkLUVxrmb5JTgW92fdFCFk0ispLMAeu/jPO2vjkXM1fYUi3K7/qcLF47pwM1A==} 2344 | engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} 2345 | requiresBuild: true 2346 | dependencies: 2347 | color: 4.2.3 2348 | detect-libc: 2.0.3 2349 | semver: 7.6.0 2350 | optionalDependencies: 2351 | '@img/sharp-darwin-arm64': 0.33.3 2352 | '@img/sharp-darwin-x64': 0.33.3 2353 | '@img/sharp-libvips-darwin-arm64': 1.0.2 2354 | '@img/sharp-libvips-darwin-x64': 1.0.2 2355 | '@img/sharp-libvips-linux-arm': 1.0.2 2356 | '@img/sharp-libvips-linux-arm64': 1.0.2 2357 | '@img/sharp-libvips-linux-s390x': 1.0.2 2358 | '@img/sharp-libvips-linux-x64': 1.0.2 2359 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 2360 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 2361 | '@img/sharp-linux-arm': 0.33.3 2362 | '@img/sharp-linux-arm64': 0.33.3 2363 | '@img/sharp-linux-s390x': 0.33.3 2364 | '@img/sharp-linux-x64': 0.33.3 2365 | '@img/sharp-linuxmusl-arm64': 0.33.3 2366 | '@img/sharp-linuxmusl-x64': 0.33.3 2367 | '@img/sharp-wasm32': 0.33.3 2368 | '@img/sharp-win32-ia32': 0.33.3 2369 | '@img/sharp-win32-x64': 0.33.3 2370 | dev: false 2371 | 2372 | /shebang-command@2.0.0: 2373 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2374 | engines: {node: '>=8'} 2375 | dependencies: 2376 | shebang-regex: 3.0.0 2377 | dev: true 2378 | 2379 | /shebang-regex@3.0.0: 2380 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2381 | engines: {node: '>=8'} 2382 | dev: true 2383 | 2384 | /simple-swizzle@0.2.2: 2385 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 2386 | dependencies: 2387 | is-arrayish: 0.3.2 2388 | dev: false 2389 | 2390 | /slash@3.0.0: 2391 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2392 | engines: {node: '>=8'} 2393 | dev: true 2394 | 2395 | /source-map-js@1.0.2: 2396 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2397 | engines: {node: '>=0.10.0'} 2398 | 2399 | /source-map@0.5.6: 2400 | resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} 2401 | engines: {node: '>=0.10.0'} 2402 | dev: false 2403 | 2404 | /stack-generator@2.0.10: 2405 | resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} 2406 | dependencies: 2407 | stackframe: 1.3.4 2408 | dev: false 2409 | 2410 | /stackframe@1.3.4: 2411 | resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} 2412 | dev: false 2413 | 2414 | /stacktrace-gps@3.1.2: 2415 | resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} 2416 | dependencies: 2417 | source-map: 0.5.6 2418 | stackframe: 1.3.4 2419 | dev: false 2420 | 2421 | /stacktrace-js@2.0.2: 2422 | resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} 2423 | dependencies: 2424 | error-stack-parser: 2.1.4 2425 | stack-generator: 2.0.10 2426 | stacktrace-gps: 3.1.2 2427 | dev: false 2428 | 2429 | /strip-ansi@6.0.1: 2430 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2431 | engines: {node: '>=8'} 2432 | dependencies: 2433 | ansi-regex: 5.0.1 2434 | dev: true 2435 | 2436 | /strip-json-comments@3.1.1: 2437 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2438 | engines: {node: '>=8'} 2439 | dev: true 2440 | 2441 | /supports-color@5.5.0: 2442 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2443 | engines: {node: '>=4'} 2444 | dependencies: 2445 | has-flag: 3.0.0 2446 | dev: true 2447 | 2448 | /supports-color@7.2.0: 2449 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2450 | engines: {node: '>=8'} 2451 | dependencies: 2452 | has-flag: 4.0.0 2453 | dev: true 2454 | 2455 | /text-table@0.2.0: 2456 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2457 | dev: true 2458 | 2459 | /to-fast-properties@2.0.0: 2460 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2461 | engines: {node: '>=4'} 2462 | dev: true 2463 | 2464 | /to-regex-range@5.0.1: 2465 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2466 | engines: {node: '>=8.0'} 2467 | dependencies: 2468 | is-number: 7.0.0 2469 | 2470 | /toggle-selection@1.0.6: 2471 | resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} 2472 | dev: false 2473 | 2474 | /tree-changes@0.11.2: 2475 | resolution: {integrity: sha512-4gXlUthrl+RabZw6lLvcCDl6KfJOCmrC16BC5CRdut1EAH509Omgg0BfKLY+ViRlzrvYOTWR0FMS2SQTwzumrw==} 2476 | dependencies: 2477 | '@gilbarbara/deep-equal': 0.3.1 2478 | is-lite: 1.2.1 2479 | dev: false 2480 | 2481 | /tree-changes@0.9.3: 2482 | resolution: {integrity: sha512-vvvS+O6kEeGRzMglTKbc19ltLWNtmNt1cpBoSYLj/iEcPVvpJasemKOlxBrmZaCtDJoF+4bwv3m01UKYi8mukQ==} 2483 | dependencies: 2484 | '@gilbarbara/deep-equal': 0.1.2 2485 | is-lite: 0.8.2 2486 | dev: false 2487 | 2488 | /ts-api-utils@1.3.0(typescript@5.4.2): 2489 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 2490 | engines: {node: '>=16'} 2491 | peerDependencies: 2492 | typescript: '>=4.2.0' 2493 | dependencies: 2494 | typescript: 5.4.2 2495 | dev: true 2496 | 2497 | /tslib@2.6.2: 2498 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 2499 | requiresBuild: true 2500 | dev: false 2501 | optional: true 2502 | 2503 | /type-check@0.4.0: 2504 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2505 | engines: {node: '>= 0.8.0'} 2506 | dependencies: 2507 | prelude-ls: 1.2.1 2508 | dev: true 2509 | 2510 | /type-fest@0.20.2: 2511 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2512 | engines: {node: '>=10'} 2513 | dev: true 2514 | 2515 | /type-fest@4.17.0: 2516 | resolution: {integrity: sha512-9flrz1zkfLRH3jO3bLflmTxryzKMxVa7841VeMgBaNQGY6vH4RCcpN/sQLB7mQQYh1GZ5utT2deypMuCy4yicw==} 2517 | engines: {node: '>=16'} 2518 | dev: false 2519 | 2520 | /typescript@5.4.2: 2521 | resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} 2522 | engines: {node: '>=14.17'} 2523 | hasBin: true 2524 | dev: true 2525 | 2526 | /update-browserslist-db@1.0.13(browserslist@4.22.2): 2527 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 2528 | hasBin: true 2529 | peerDependencies: 2530 | browserslist: '>= 4.21.0' 2531 | dependencies: 2532 | browserslist: 4.22.2 2533 | escalade: 3.1.1 2534 | picocolors: 1.0.0 2535 | dev: true 2536 | 2537 | /uri-js@4.4.1: 2538 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2539 | dependencies: 2540 | punycode: 2.3.1 2541 | dev: true 2542 | 2543 | /valibot@0.13.1: 2544 | resolution: {integrity: sha512-SG2W1RHqE2LShl3p6tyERt6I+G6PQa9ZFVfkyNKXz01HBzL+tBeH5kXw/5AQeAzPJSjI3djVGBl1CyozA1kyBQ==} 2545 | dev: false 2546 | 2547 | /vite-plugin-package-version@1.1.0(vite@5.1.6): 2548 | resolution: {integrity: sha512-TPoFZXNanzcaKCIrC3e2L/TVRkkRLB6l4RPN/S7KbG7rWfyLcCEGsnXvxn6qR7fyZwXalnnSN/I9d6pSFjHpEA==} 2549 | peerDependencies: 2550 | vite: '>=2.0.0-beta.69' 2551 | dependencies: 2552 | vite: 5.1.6(sass@1.72.0) 2553 | dev: false 2554 | 2555 | /vite@5.1.6(sass@1.72.0): 2556 | resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} 2557 | engines: {node: ^18.0.0 || >=20.0.0} 2558 | hasBin: true 2559 | peerDependencies: 2560 | '@types/node': ^18.0.0 || >=20.0.0 2561 | less: '*' 2562 | lightningcss: ^1.21.0 2563 | sass: '*' 2564 | stylus: '*' 2565 | sugarss: '*' 2566 | terser: ^5.4.0 2567 | peerDependenciesMeta: 2568 | '@types/node': 2569 | optional: true 2570 | less: 2571 | optional: true 2572 | lightningcss: 2573 | optional: true 2574 | sass: 2575 | optional: true 2576 | stylus: 2577 | optional: true 2578 | sugarss: 2579 | optional: true 2580 | terser: 2581 | optional: true 2582 | dependencies: 2583 | esbuild: 0.19.12 2584 | postcss: 8.4.35 2585 | rollup: 4.13.0 2586 | sass: 1.72.0 2587 | optionalDependencies: 2588 | fsevents: 2.3.3 2589 | 2590 | /wasm-imagemagick@1.2.8: 2591 | resolution: {integrity: sha512-V7u80n7g+iAoV7sYgQKGSdG59J6/aSMGO0DDK0zxKnwOGjmVXyjP0yU4tX4cMrfC0t/Wk3I8TX7cmdbFQOYHpg==} 2592 | dependencies: 2593 | p-map: 2.1.0 2594 | stacktrace-js: 2.0.2 2595 | dev: false 2596 | 2597 | /which@2.0.2: 2598 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2599 | engines: {node: '>= 8'} 2600 | hasBin: true 2601 | dependencies: 2602 | isexe: 2.0.0 2603 | dev: true 2604 | 2605 | /wrappy@1.0.2: 2606 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2607 | dev: true 2608 | 2609 | /xstate@4.38.3: 2610 | resolution: {integrity: sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==} 2611 | dev: false 2612 | 2613 | /yallist@3.1.1: 2614 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2615 | dev: true 2616 | 2617 | /yallist@4.0.0: 2618 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2619 | 2620 | /yocto-queue@0.1.0: 2621 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2622 | engines: {node: '>=10'} 2623 | dev: true 2624 | --------------------------------------------------------------------------------