├── .npmrc ├── .npmignore ├── examples ├── images.ts ├── main.tsx ├── index.html ├── Default.tsx ├── Static.tsx ├── App.css ├── App.tsx └── global.css ├── .github └── workflows │ ├── test.yml │ └── deploy.yml ├── .gitignore ├── tsconfig.json ├── vite.config.js ├── package.json ├── __tests__ └── component.spec.jsx ├── src └── index.tsx ├── README.md └── pnpm-lock.yaml /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /__tests__ 3 | /examples 4 | /docs 5 | /src 6 | /.github 7 | index.html 8 | build.js 9 | build-doc.js 10 | vite.config.js -------------------------------------------------------------------------------- /examples/images.ts: -------------------------------------------------------------------------------- 1 | export const images = [ 2 | 'https://i.imgur.com/9xYjgCk.jpg', 3 | 'https://i.imgur.com/bAZWoqx.jpg', 4 | 'https://i.imgur.com/aboaFoB.jpg', 5 | 'https://i.imgur.com/8lEJtbg.jpg', 6 | 'https://i.imgur.com/lBKi66i.jpg' 7 | ] -------------------------------------------------------------------------------- /examples/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { createRoot } from 'react-dom/client'; 3 | import App from './App'; 4 | import './global.css'; 5 | 6 | const domNode = document.getElementById('root')!; 7 | 8 | createRoot(domNode).render( 9 | 10 | 11 | 12 | ); 13 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | test: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v2 10 | - uses: actions/setup-node@v1 11 | with: 12 | node-version: 20 13 | - uses: pnpm/action-setup@v2 14 | with: 15 | version: 9.10.0 16 | - run: pnpm i 17 | - run: pnpm pretty 18 | - run: pnpm test 19 | -------------------------------------------------------------------------------- /examples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | React-Flickity-Component 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled source # 2 | ################### 3 | *.com 4 | *.class 5 | *.dll 6 | *.exe 7 | *.o 8 | *.so 9 | 10 | # Packages # 11 | ############ 12 | # it's better to unpack these files and commit the raw source 13 | # git has its own built in compression methods 14 | *.7z 15 | *.dmg 16 | *.gz 17 | *.iso 18 | *.jar 19 | *.rar 20 | *.tar 21 | *.zip 22 | 23 | # Logs and databases # 24 | ###################### 25 | *.log 26 | *.sql 27 | *.sqlite 28 | 29 | # OS generated files # 30 | ###################### 31 | .DS_Store 32 | .DS_Store? 33 | ._* 34 | .Spotlight-V100 35 | .Trashes 36 | ehthumbs.db 37 | Thumbs.db 38 | 39 | # Editors # 40 | ########### 41 | .idea 42 | 43 | # Custom # 44 | ########## 45 | /node_modules 46 | /docs 47 | /dist -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 5 | "module": "ESNext", 6 | "allowJs": true, 7 | "skipLibCheck": true, 8 | "esModuleInterop": true, 9 | "allowSyntheticDefaultImports": true, 10 | "strict": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "noEmit": false, 16 | "jsx": "react-jsx", 17 | "declaration": true, 18 | "declarationDir": "./dist", 19 | "outDir": "./dist" 20 | }, 21 | "include": [ 22 | "src/**/*" 23 | ], 24 | "exclude": [ 25 | "node_modules", 26 | "dist", 27 | "examples", 28 | "__tests__" 29 | ] 30 | } -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy docs 2 | 3 | on: 4 | push: 5 | branches: ["master"] 6 | 7 | # Allows you to run this workflow manually from the Actions tab 8 | workflow_dispatch: 9 | 10 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 11 | permissions: 12 | contents: read 13 | pages: write 14 | id-token: write 15 | 16 | # Allow one concurrent deployment 17 | concurrency: 18 | group: "pages" 19 | cancel-in-progress: true 20 | 21 | jobs: 22 | deploy: 23 | runs-on: ubuntu-latest 24 | environment: 25 | name: github-pages 26 | url: ${{ steps.deployment.outputs.page_url }} 27 | steps: 28 | - name: Checkout your repository using git 29 | uses: actions/checkout@v4 30 | - uses: actions/setup-node@v4 31 | with: 32 | node-version: 22 33 | - uses: pnpm/action-setup@v2 34 | with: 35 | version: 10 36 | - run: pnpm i 37 | - run: pnpm build:docs 38 | - name: Upload artifact 39 | uses: actions/upload-pages-artifact@v3 40 | with: 41 | path: 'docs/' 42 | - name: Deploy to GitHub Pages 43 | id: deployment 44 | uses: actions/deploy-pages@v4 45 | -------------------------------------------------------------------------------- /examples/Default.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import Flickity from '../src/index'; 3 | import { images } from './images'; 4 | import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; 5 | import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism'; 6 | 7 | export default function Default() { 8 | const [imgs, setImages] = useState(images); 9 | 10 | function addImage() { 11 | const newImages = [...imgs]; 12 | newImages.push('https://picsum.photos/200/300'); 13 | setImages(newImages); 14 | } 15 | 16 | return ( 17 |
18 |

Default Usage

19 |

Basic Flickity carousel with default settings. Children are dynamically managed.

20 | 25 | {`{children}`} 26 | 27 |
28 | 29 | {imgs.map((image) => ( 30 | 31 | ))} 32 | 33 |
34 | 35 |
36 | ); 37 | } 38 | -------------------------------------------------------------------------------- /examples/Static.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import Flickity from '../src/index'; 3 | import { images } from './images'; 4 | import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; 5 | import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism'; 6 | 7 | export default function Static() { 8 | const [imgs, setImages] = useState(images); 9 | 10 | function addImage() { 11 | const newImages = [...imgs]; 12 | newImages.push('https://picsum.photos/200/300'); 13 | setImages(newImages); 14 | } 15 | 16 | return ( 17 |
18 |

Static Mode with Reload

19 |

Static carousel that reloads when content updates. Better for SSR but requires reloadOnUpdate for dynamic content.

20 | 25 | {` 26 | {children} 27 | `} 28 | 29 |
30 | 31 | {imgs.map((image) => ( 32 | 33 | ))} 34 | 35 |
36 | 37 |
38 | ); 39 | } 40 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { resolve } from 'path' 2 | import { fileURLToPath } from 'url' 3 | import { defineConfig } from 'vite' 4 | import react from '@vitejs/plugin-react' 5 | import { viteCommonjs } from '@originjs/vite-plugin-commonjs' 6 | import dts from 'vite-plugin-dts' 7 | 8 | const __dirname = fileURLToPath(new URL('.', import.meta.url)) 9 | 10 | export default defineConfig(({ command, mode }) => { 11 | const base = { 12 | plugins: [ 13 | react(), 14 | viteCommonjs(), 15 | ], 16 | test: { 17 | environment: 'jsdom', 18 | }, 19 | } 20 | 21 | if (command === 'build') { 22 | if (mode === 'docs') { 23 | return { 24 | ...base, 25 | base: '/react-flickity-component/', 26 | root: resolve(__dirname, 'examples'), 27 | build: { 28 | outDir: '../docs', 29 | emptyOutDir: true, 30 | }, 31 | } 32 | } else { 33 | return { 34 | ...base, 35 | plugins: [ 36 | ...base.plugins, 37 | dts({ 38 | include: ['src/**/*'], 39 | exclude: ['**/*.test.*', '**/*.spec.*'], 40 | }), 41 | ], 42 | build: { 43 | sourcemap: true, 44 | lib: { 45 | entry: resolve(__dirname, 'src/index.tsx'), 46 | name: 'ReactFlickityComponent', 47 | formats: ['es', 'umd'], 48 | fileName: (format) => `react-flickity-component.${format}.js`, 49 | }, 50 | rollupOptions: { 51 | external: ['react', 'react-dom', 'imagesloaded', 'flickity'], 52 | output: { 53 | globals: { 54 | react: 'React', 55 | 'react-dom': 'ReactDOM', 56 | imagesloaded: 'imagesloaded', 57 | }, 58 | }, 59 | }, 60 | }, 61 | } 62 | } 63 | } 64 | 65 | return base 66 | }) 67 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-flickity-component", 3 | "version": "5.0.0", 4 | "description": "react flickity component", 5 | "files": [ 6 | "dist" 7 | ], 8 | "main": "./dist/react-flickity-component.umd.js", 9 | "module": "./dist/react-flickity-component.es.js", 10 | "exports": { 11 | ".": { 12 | "types": "./dist/index.d.ts", 13 | "import": "./dist/react-flickity-component.es.js", 14 | "require": "./dist/react-flickity-component.umd.js" 15 | } 16 | }, 17 | "scripts": { 18 | "pretty": "prettier --single-quote --trailing-comma es5 --write \"src/**/*.ts[x]\" \"examples/**/*.ts[x]\"", 19 | "test": "vitest", 20 | "dev": "vite serve ./examples", 21 | "build": "vite build", 22 | "build:docs": "vite build --mode docs", 23 | "prepublishOnly": "vite build" 24 | }, 25 | "author": "theolampert", 26 | "license": "GPL3", 27 | "repository": { 28 | "type": "git", 29 | "url": "git://github.com/yaodingyd/react-flickity-component.git" 30 | }, 31 | "keywords": [ 32 | "react", 33 | "carousel", 34 | "slider", 35 | "flickity", 36 | "react-component" 37 | ], 38 | "dependencies": { 39 | "imagesloaded": "^4.1.4" 40 | }, 41 | "devDependencies": { 42 | "@originjs/vite-plugin-commonjs": "^1.0.3", 43 | "@testing-library/jest-dom": "^6.0.0", 44 | "@testing-library/react": "^16.0.0", 45 | "@types/flickity": "^2.2.0", 46 | "@types/imagesloaded": "^4.1.0", 47 | "@types/react": "^19.0.0", 48 | "@types/react-dom": "^19.0.0", 49 | "@types/react-syntax-highlighter": "^15.5.13", 50 | "@vitejs/plugin-react": "^4.0.0", 51 | "flickity": "^2.2.1", 52 | "jsdom": "^25.0.0", 53 | "prettier": "^3.0.0", 54 | "react": "^19.0.0", 55 | "react-dom": "^19.0.0", 56 | "react-syntax-highlighter": "^15.6.1", 57 | "typescript": "^5.0.0", 58 | "vite": "^6.0.0", 59 | "vite-plugin-dts": "^4.0.0", 60 | "vitest": "^2.0.0" 61 | }, 62 | "peerDependencies": { 63 | "flickity": "^2.2.1", 64 | "react": "^19.0.0", 65 | "react-dom": "^19.0.0" 66 | }, 67 | "typings": "./dist/index.d.ts", 68 | "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac" 69 | } 70 | -------------------------------------------------------------------------------- /__tests__/component.spec.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import {it, expect, vi, afterEach } from 'vitest'; 3 | import { render, cleanup, screen, waitFor } from '@testing-library/react'; 4 | import Flickity from '../src'; 5 | 6 | afterEach(async () => { 7 | await new Promise(resolve => setTimeout(resolve, 0)); 8 | cleanup(); 9 | }); 10 | 11 | 12 | it('Renders component successfully', async () => { 13 | const { container } = render(); 14 | 15 | await waitFor(() => { 16 | expect(container.firstChild).toBeTruthy(); 17 | }); 18 | 19 | expect(container.firstChild).toBeInstanceOf(HTMLElement); 20 | }); 21 | 22 | it('Renders children', async () => { 23 | const { getAllByAltText, unmount, container } = render( 24 | 25 | children 26 | children 27 | children 28 | 29 | ); 30 | 31 | await waitFor(() => { 32 | expect(container.firstChild).toBeTruthy(); 33 | }); 34 | 35 | await waitFor(() => expect(getAllByAltText('children').length).toEqual(3)); 36 | unmount(); 37 | }); 38 | 39 | it('Renders a static carousel', async () => { 40 | const { getAllByAltText, unmount } = render( 41 | 42 | children 43 | children 44 | 45 | ); 46 | 47 | await waitFor(() => expect(getAllByAltText('children').length).toEqual(2)); 48 | unmount(); 49 | }); 50 | 51 | it('Reload carousel even it\'s static', async () => { 52 | const { getAllByAltText, rerender, unmount } = render( 53 | 54 | children 55 | children 56 | 57 | ); 58 | 59 | await waitFor(() => expect(getAllByAltText('children').length).toEqual(2)); 60 | 61 | rerender( 62 | 63 | children 64 | children 65 | children 66 | 67 | ); 68 | 69 | await waitFor(() => expect(getAllByAltText('children').length).toEqual(3)); 70 | unmount(); 71 | }); 72 | -------------------------------------------------------------------------------- /examples/App.css: -------------------------------------------------------------------------------- 1 | /* Documentation site styles */ 2 | .tab-nav { 3 | display: flex; 4 | gap: 0; 5 | margin: 2rem 0; 6 | border-bottom: 1px solid var(--border); 7 | } 8 | 9 | .tab-nav button { 10 | background: transparent; 11 | border: none; 12 | border-bottom: 3px solid transparent; 13 | padding: 1rem 1.5rem; 14 | font-size: 1rem; 15 | font-weight: 500; 16 | color: var(--text-light); 17 | cursor: pointer; 18 | transition: all 0.2s ease; 19 | margin: 0; 20 | } 21 | 22 | .tab-nav button:hover { 23 | color: var(--accent); 24 | background: var(--accent-bg); 25 | filter: none; 26 | } 27 | 28 | .tab-nav button.active { 29 | color: var(--accent); 30 | border-bottom-color: var(--accent); 31 | background: transparent; 32 | } 33 | 34 | .examples-section { 35 | padding: 2rem 0; 36 | } 37 | 38 | .docs-section { 39 | display: grid; 40 | grid-template-columns: 150px 1fr; 41 | gap: 3rem; 42 | padding: 2rem 0; 43 | align-items: start; 44 | } 45 | 46 | .docs-nav { 47 | position: sticky; 48 | top: 2rem; 49 | } 50 | 51 | .docs-nav ul { 52 | list-style: none; 53 | padding: 0; 54 | margin: 0; 55 | } 56 | 57 | .docs-nav li { 58 | margin-bottom: 0.5rem; 59 | } 60 | 61 | .docs-nav a { 62 | display: block; 63 | padding: 0.5rem 1rem; 64 | text-decoration: none; 65 | color: var(--text-light); 66 | border-radius: 5px; 67 | transition: all 0.2s ease; 68 | } 69 | 70 | .docs-nav a:hover { 71 | background: var(--accent-bg); 72 | color: var(--accent); 73 | } 74 | 75 | .docs-content article { 76 | margin-bottom: 3rem; 77 | } 78 | 79 | .docs-content h2 { 80 | margin-top: 0; 81 | color: var(--accent); 82 | border-bottom: 2px solid var(--accent-bg); 83 | padding-bottom: 0.5rem; 84 | } 85 | 86 | .docs-content table { 87 | width: 100%; 88 | margin: 1.5rem 0; 89 | } 90 | 91 | .docs-content code { 92 | background: var(--accent-bg); 93 | padding: 0.2rem 0.4rem; 94 | border-radius: 3px; 95 | font-size: 0.9em; 96 | } 97 | 98 | .docs-content pre { 99 | background: var(--accent-bg); 100 | border: 1px solid var(--border); 101 | border-radius: 5px; 102 | overflow-x: auto; 103 | } 104 | 105 | /* Carousel styles */ 106 | .carousel { 107 | height: 300px; 108 | margin: 1rem 0; 109 | } 110 | 111 | .carousel-image { 112 | min-width: 200px; 113 | height: 250px; 114 | object-fit: cover; 115 | border-radius: 8px; 116 | margin-right: 1rem; 117 | } 118 | 119 | /* Example sections */ 120 | .example-card { 121 | margin-bottom: 3rem; 122 | padding: 2rem; 123 | border: 1px solid var(--border); 124 | border-radius: 8px; 125 | background: var(--accent-bg); 126 | } 127 | 128 | .examples-section h3 { 129 | margin-top: 0; 130 | color: var(--accent); 131 | } 132 | 133 | .examples-section pre { 134 | background: var(--bg); 135 | border: 1px solid var(--border); 136 | padding: 1rem; 137 | border-radius: 5px; 138 | font-size: 0.9rem; 139 | margin: 1rem 0; 140 | } 141 | 142 | .examples-section button { 143 | margin-top: 1rem; 144 | } 145 | 146 | /* Mobile responsiveness */ 147 | @media only screen and (max-width: 720px) { 148 | .docs-section { 149 | grid-template-columns: 1fr; 150 | gap: 1rem; 151 | } 152 | 153 | .docs-nav { 154 | position: static; 155 | order: 2; 156 | } 157 | 158 | .docs-content { 159 | order: 1; 160 | } 161 | 162 | .tab-nav { 163 | flex-direction: column; 164 | } 165 | 166 | .tab-nav button { 167 | text-align: left; 168 | border-bottom: 1px solid var(--border); 169 | border-radius: 0; 170 | } 171 | 172 | .carousel-image { 173 | min-width: 150px; 174 | height: 200px; 175 | } 176 | } -------------------------------------------------------------------------------- /src/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { Component, ReactNode } from 'react'; 2 | import { createPortal } from 'react-dom'; 3 | import imagesloaded from 'imagesloaded'; 4 | import Flickity from 'flickity'; 5 | 6 | const canUseDOM = !!( 7 | typeof window !== 'undefined' && 8 | window.document && 9 | window.document.createElement 10 | ); 11 | 12 | export type FlickityEventName = 13 | | 'ready' 14 | | 'change' 15 | | 'select' 16 | | 'settle' 17 | | 'scroll' 18 | | 'dragStart' 19 | | 'dragMove' 20 | | 'dragEnd' 21 | | 'pointerDown' 22 | | 'pointerMove' 23 | | 'pointerUp' 24 | | 'staticClick' 25 | | 'lazyLoad' 26 | | 'bgLazyLoad' 27 | | 'fullscreenChange'; 28 | 29 | export interface ReactFlickityComponentProps { 30 | className?: string; 31 | disableImagesLoaded?: boolean; 32 | elementType?: string; 33 | flickityRef?: (ref: Flickity) => void; 34 | options?: Flickity.Options; 35 | reloadOnUpdate?: boolean; 36 | static?: boolean; 37 | children?: ReactNode; 38 | } 39 | 40 | interface FlickityComponentState { 41 | flickityReady: boolean; 42 | flickityCreated: boolean; 43 | cellCount: number; 44 | } 45 | 46 | interface FlickityInstance extends Flickity { 47 | isActive: boolean; 48 | deactivate: () => void; 49 | selectedIndex: number; 50 | options: Flickity.Options; 51 | activate: () => void; 52 | } 53 | 54 | class FlickityComponent extends Component< 55 | ReactFlickityComponentProps, 56 | FlickityComponentState 57 | > { 58 | static defaultProps: Partial = { 59 | className: '', 60 | disableImagesLoaded: false, 61 | elementType: 'div', 62 | options: {}, 63 | reloadOnUpdate: false, 64 | static: false, 65 | }; 66 | 67 | private carousel: HTMLElement | null = null; 68 | private flkty: FlickityInstance | null = null; 69 | 70 | constructor(props: ReactFlickityComponentProps) { 71 | super(props); 72 | 73 | this.state = { 74 | flickityReady: false, 75 | flickityCreated: false, 76 | cellCount: 0, 77 | }; 78 | } 79 | 80 | static getDerivedStateFromProps( 81 | props: ReactFlickityComponentProps, 82 | state: FlickityComponentState 83 | ) { 84 | const cellCount = React.Children.count(props.children); 85 | if (cellCount !== state.cellCount) 86 | return { flickityReady: false, cellCount }; 87 | return null; 88 | } 89 | 90 | componentDidUpdate( 91 | prevProps: ReactFlickityComponentProps, 92 | prevState: FlickityComponentState 93 | ) { 94 | if (!this.flkty) return; 95 | const { 96 | children, 97 | options: { draggable, initialIndex } = {}, 98 | reloadOnUpdate, 99 | disableImagesLoaded, 100 | } = this.props; 101 | const { flickityReady } = this.state; 102 | 103 | if (reloadOnUpdate || (!prevState.flickityReady && flickityReady)) { 104 | const isActive = this.flkty.isActive; 105 | this.flkty.deactivate(); 106 | this.flkty.selectedIndex = Number(initialIndex) || 0; 107 | this.flkty.options.draggable = 108 | draggable === undefined 109 | ? children 110 | ? React.Children.count(children) > 1 111 | : false 112 | : draggable; 113 | if (isActive) this.flkty.activate(); 114 | if (!disableImagesLoaded && this.carousel) { 115 | imagesloaded(this.carousel, () => { 116 | this.flkty?.reloadCells(); 117 | }); 118 | } 119 | } else { 120 | this.flkty.reloadCells(); 121 | } 122 | } 123 | 124 | async componentDidMount() { 125 | if (!canUseDOM || !this.carousel) return; 126 | const FlickityClass = (await import('flickity')).default; 127 | const { flickityRef, options = {} } = this.props; 128 | this.flkty = new FlickityClass(this.carousel, options) as FlickityInstance; 129 | if (flickityRef) flickityRef(this.flkty); 130 | if (this.props.static) { 131 | this.setReady(); 132 | } else { 133 | this.setState({ flickityCreated: true }); 134 | } 135 | } 136 | 137 | setReady() { 138 | if (this.state.flickityReady) return; 139 | const setFlickityToReady = () => this.setState({ flickityReady: true }); 140 | if (this.props.disableImagesLoaded) setFlickityToReady(); 141 | else if (this.carousel) imagesloaded(this.carousel, setFlickityToReady); 142 | } 143 | 144 | renderPortal() { 145 | if (!this.carousel) return null; 146 | const mountNode = this.carousel.querySelector('.flickity-slider'); 147 | if (mountNode) { 148 | const element = createPortal(this.props.children, mountNode); 149 | setTimeout(() => this.setReady(), 0); 150 | return element; 151 | } 152 | } 153 | 154 | render() { 155 | const { 156 | elementType = 'div', 157 | className = '', 158 | static: isStatic, 159 | children, 160 | } = this.props; 161 | 162 | return React.createElement( 163 | elementType, 164 | { 165 | className, 166 | ref: (c: HTMLElement | null) => { 167 | this.carousel = c; 168 | }, 169 | }, 170 | isStatic ? children : this.renderPortal() 171 | ); 172 | } 173 | } 174 | 175 | export default FlickityComponent; 176 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | React Flickity Component 2 | ======================= 3 | 4 | # Introduction: 5 | A React.js Flickity component. 6 | 7 | # Install: 8 | 9 | ```shell 10 | # you need to install flickity as peer dependency, please use v2.3.0 for best experience 11 | npm install flickity@2.3.0 12 | npm install react-flickity-component 13 | ``` 14 | 15 | # Usage: 16 | 17 | ## V5 Updates 18 | V5 supports react v19 and above. 19 | 20 | ## V4 Updates 21 | V4 only supports react v18 and above. V4 also comes with an esmodule bundle format to support modern frontend tooling like vite. 22 | If you are staying on react v16, please keep using v3. 23 | 24 | ```javascript 25 | // Commonjs 26 | const Flickity = require('react-flickity-component'); 27 | // Or for ES2015 module 28 | import Flickity from 'react-flickity-component' 29 | 30 | const flickityOptions = { 31 | initialIndex: 2 32 | } 33 | 34 | function Carousel() { 35 | return ( 36 | 44 | 45 | 46 | 47 | 48 | ) 49 | } 50 | 51 | ``` 52 | ### Example Usage: 53 | See a codesandbox example here: 54 | https://codesandbox.io/s/react-flickity-demo-wwszqm 55 | 56 | See an example with server side rendering: 57 | 58 | https://github.com/theolampert/react-flickity-component-example 59 | 60 | And with typescript: 61 | 62 | https://github.com/theolampert/react-flickity-component-example/tree/typescript 63 | 64 | 65 | ### Props: 66 | 67 | | Property | Type | Default | Description | 68 | | -------------------- | -----------| --------|---------------------------------------------------------------| 69 | | `className` | `String` | `''` | Applied to top level wrapper | 70 | | `elementType` | `String` | `'div'` | Wrapper's element type | 71 | | `options` | `Object` | `{}` | Flickity initialization options | 72 | | `disableImagesLoaded`| `Boolean` | `false` | Disable call `reloadCells` images are loaded | 73 | | `flickityRef` | `Function` | | Like `ref` function, get Flickity instance in parent component| 74 | | `reloadOnUpdate` | `Boolean` | `false` | **Read next section before you set this prop.** Run `reloadCells` and `resize` on `componentDidUpdate` | 75 | | `static` | `Boolean` | `false` | **Read next section before you set this prop.** Carousel contents are static and not updated at runtime. Useful for smoother server-side rendering however the carousel contents cannot be updated dynamically. | 76 | 77 | ### How it works 78 | 79 | Under the hood, react-flickity-component uses a [React Portal](https://reactjs.org/docs/portals.html) to render children slides inside a Flickity instance. The need for a portal is because after Flickity is initialized, new DOM nodes (mostly Flickity wrapper elements) would be created, this changes the DOM hierarchy of the parent component, thus any future update, whether it's originated from Flickity, like adding/removing slides, or from parent, like a prop changes, will make React fail to reconcile for the DOM snapshot is out of sync. 80 | 81 | [#64](https://github.com/yaodingyd/react-flickity-component/pull/64) introduced a new prop to change the underlying render method: instead of using portal, react-flickity-component will directly render children. This is to create a smoother server-side rendering experience, but **please be aware using `static` prop possibly will cause all your future update to fail,** which means adding/removing slides will definitely fail to render, so use with caution. 82 | 83 | However there is a fail-safe option `reloadOnUpdate`. It means every time there is a update, we tear down and set up Flickity. This will ensure that Flickity is always rendered correctly, but it's a rather costly operation and it **will cause a flicker** since DOM nodes are destroyed and recreated. Please also note it means any update, either rerender of the parent, or any of the props change, will always cause an update in the Flickity component. For more information, see a detailed explanation and workaround in [#147](https://github.com/yaodingyd/react-flickity-component/issues/147). 84 | 85 | 86 | ### Use Flickity's API and events 87 | 88 | You can access the Flickity instance with `flickityRef` prop just like `ref`, and use this instance to register events and use API. 89 | 90 | ```javascript 91 | // function component 92 | function Carousel () { 93 | const ref = React.useRef(null); 94 | 95 | function myCustomNext = () { 96 | // You can use Flickity API 97 | ref.current.next() 98 | } 99 | 100 | React.useEffect(() => { 101 | if (ref.current) { 102 | ref.current.on("settle", () => { 103 | console.log(`current index is ${ref.current.selectedIndex}`); 104 | }); 105 | } 106 | }, []); 107 | 108 | return ( 109 | ref.current = c}> 110 | 111 | 112 | 113 | 114 | 115 | ) 116 | } 117 | // class component 118 | class Carousel extends React.Component { 119 | 120 | componentDidMount = () => { 121 | // You can register events in componentDidMount hook 122 | this.flkty.on('settle', () => { 123 | console.log(`current index is ${this.flkty.selectedIndex}`) 124 | }) 125 | } 126 | 127 | myCustomNext = () => { 128 | // You can use Flickity API 129 | this.flkty.next() 130 | } 131 | 132 | render() { 133 | return ( 134 | this.flkty = c}> 135 | 136 | 137 | 138 | 139 | 140 | ) 141 | } 142 | } 143 | ``` 144 | 145 | 146 | # License Information: 147 | [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html) 148 | 149 | Flickity may be used in commercial projects and applications with the one-time purchase of a commercial license. 150 | http://flickity.metafizzy.co/license.html 151 | 152 | See [this issue](https://github.com/theolampert/react-flickity-component/issues/23#issuecomment-493294512) for more information 153 | -------------------------------------------------------------------------------- /examples/App.tsx: -------------------------------------------------------------------------------- 1 | import Flickity from '../src/index'; 2 | import './App.css'; 3 | import React, { useState } from 'react'; 4 | import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'; 5 | import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism'; 6 | 7 | import Default from './Default'; 8 | import Static from './Static'; 9 | 10 | function App() { 11 | const [activeTab, setActiveTab] = useState('examples'); 12 | 13 | const apiDocs = { 14 | installation: { 15 | title: 'Installation', 16 | bash: `# Install flickity as peer dependency (use v2.3.0 for best experience) 17 | npm install flickity@2.3.0 18 | npm install react-flickity-component` 19 | }, 20 | basicUsage: { 21 | title: 'Basic Usage', 22 | javascript: `// CommonJS 23 | const Flickity = require('react-flickity-component'); 24 | 25 | // ES2015 module 26 | import Flickity from 'react-flickity-component' 27 | 28 | const flickityOptions = { 29 | initialIndex: 2 30 | } 31 | 32 | function Carousel() { 33 | return ( 34 | 42 | 43 | 44 | 45 | 46 | ) 47 | }` 48 | }, 49 | props: { 50 | title: 'Props', 51 | content: `# Props 52 | 53 | | Property | Type | Default | Description | 54 | |----------|------|---------|-------------| 55 | | \`className\` | \`String\` | \`''\` | Applied to top level wrapper | 56 | | \`elementType\` | \`String\` | \`'div'\` | Wrapper's element type | 57 | | \`options\` | \`Object\` | \`{}\` | Flickity initialization options | 58 | | \`disableImagesLoaded\` | \`Boolean\` | \`false\` | Disable call \`reloadCells\` images are loaded | 59 | | \`flickityRef\` | \`Function\` | | Like \`ref\` function, get Flickity instance in parent component | 60 | | \`reloadOnUpdate\` | \`Boolean\` | \`false\` | Run \`reloadCells\` and \`resize\` on \`componentDidUpdate\` | 61 | | \`static\` | \`Boolean\` | \`false\` | Carousel contents are static and not updated at runtime |` 62 | }, 63 | apiEvents: { 64 | title: 'API & Events', 65 | description: 'You can access the Flickity instance with `flickityRef` prop and use this instance to register events and use API.', 66 | javascript: `// Function component 67 | function Carousel() { 68 | const ref = React.useRef(null); 69 | 70 | const myCustomNext = () => { 71 | // You can use Flickity API 72 | ref.current.next() 73 | } 74 | 75 | React.useEffect(() => { 76 | if (ref.current) { 77 | ref.current.on("settle", () => { 78 | console.log(\`current index is \${ref.current.selectedIndex}\`); 79 | }); 80 | } 81 | }, []); 82 | 83 | return ( 84 | <> 85 | ref.current = c}> 86 | 87 | 88 | 89 | 90 | 91 | 92 | ) 93 | }` 94 | } 95 | }; 96 | 97 | const CodeBlock = ({ code, language }: { code: string; language: string }) => ( 98 | 107 | {code} 108 | 109 | ); 110 | 111 | return ( 112 | <> 113 |
114 | 120 |

React Flickity Component

121 |

A React.js component for Flickity to build touch-friendly carousels

122 |
123 | 124 |
125 | 139 | 140 | {activeTab === 'examples' && ( 141 |
142 | 143 | 144 |
145 | )} 146 | 147 | {activeTab === 'docs' && ( 148 |
149 | 157 | 158 |
159 |
160 |

{apiDocs.installation.title}

161 | 162 |
163 | 164 |
165 |

{apiDocs.basicUsage.title}

166 | 167 |
168 | 169 |
170 |

Props

171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 |
PropertyTypeDefaultDescription
classNameString''Applied to top level wrapper
elementTypeString'div'Wrapper's element type
optionsObject{}Flickity initialization options
disableImagesLoadedBooleanfalseDisable call reloadCells images are loaded
flickityRefFunctionLike ref function, get Flickity instance in parent component
reloadOnUpdateBooleanfalseRun reloadCells and resize on componentDidUpdate
staticBooleanfalseCarousel contents are static and not updated at runtime
190 |
191 | 192 |
193 |

{apiDocs.apiEvents.title}

194 |

{apiDocs.apiEvents.description}

195 | 196 |
197 |
198 |
199 | )} 200 |
201 | 202 | 205 | 206 | ); 207 | } 208 | 209 | export default App; 210 | -------------------------------------------------------------------------------- /examples/global.css: -------------------------------------------------------------------------------- 1 | /* simple.css https://github.com/kevquirk/simple.css/blob/main/simple.css */ 2 | /* Global variables. */ 3 | :root { 4 | /* Set sans-serif & mono fonts */ 5 | --sans-font: -apple-system, BlinkMacSystemFont, "Avenir Next", Avenir, 6 | "Nimbus Sans L", Roboto, "Noto Sans", "Segoe UI", Arial, Helvetica, 7 | "Helvetica Neue", sans-serif; 8 | --mono-font: Consolas, Menlo, Monaco, "Andale Mono", "Ubuntu Mono", monospace; 9 | 10 | /* Default (light) theme */ 11 | --bg: #fff; 12 | --accent-bg: #f5f7ff; 13 | --text: #212121; 14 | --text-light: #585858; 15 | --border: #898EA4; 16 | --accent: #0d47a1; 17 | --code: #d81b60; 18 | --preformatted: #444; 19 | --marked: #ffdd33; 20 | --disabled: #efefef; 21 | } 22 | 23 | /* Dark theme */ 24 | @media (prefers-color-scheme: dark) { 25 | :root { 26 | color-scheme: dark; 27 | --bg: #212121; 28 | --accent-bg: #2b2b2b; 29 | --text: #dcdcdc; 30 | --text-light: #ababab; 31 | --accent: #ffb300; 32 | --code: #f06292; 33 | --preformatted: #ccc; 34 | --disabled: #111; 35 | } 36 | /* Add a bit of transparency so light media isn't so glaring in dark mode */ 37 | img, 38 | video { 39 | opacity: 0.8; 40 | } 41 | } 42 | 43 | /* Reset box-sizing */ 44 | *, *::before, *::after { 45 | box-sizing: border-box; 46 | } 47 | 48 | /* Reset default appearance */ 49 | textarea, 50 | select, 51 | input, 52 | progress { 53 | appearance: none; 54 | -webkit-appearance: none; 55 | -moz-appearance: none; 56 | } 57 | 58 | html { 59 | /* Set the font globally */ 60 | font-family: var(--sans-font); 61 | scroll-behavior: smooth; 62 | } 63 | 64 | /* Make the body a nice central block */ 65 | body { 66 | color: var(--text); 67 | background-color: var(--bg); 68 | font-size: 1.15rem; 69 | line-height: 1.5; 70 | display: grid; 71 | grid-template-columns: 1fr min(45rem, 90%) 1fr; 72 | margin: 0; 73 | } 74 | body > * { 75 | grid-column: 2; 76 | } 77 | 78 | /* Make the header bg full width, but the content inline with body */ 79 | body > header { 80 | background-color: var(--accent-bg); 81 | border-bottom: 1px solid var(--border); 82 | text-align: center; 83 | padding: 0 0.5rem 2rem 0.5rem; 84 | grid-column: 1 / -1; 85 | } 86 | 87 | body > header h1 { 88 | max-width: 1200px; 89 | margin: 1rem auto; 90 | } 91 | 92 | body > header p { 93 | max-width: 40rem; 94 | margin: 1rem auto; 95 | } 96 | 97 | /* Add a little padding to ensure spacing is correct between content and header > nav */ 98 | main { 99 | padding-top: 1.5rem; 100 | } 101 | 102 | body > footer { 103 | margin-top: 4rem; 104 | padding: 2rem 1rem 1.5rem 1rem; 105 | color: var(--text-light); 106 | font-size: 0.9rem; 107 | text-align: center; 108 | border-top: 1px solid var(--border); 109 | } 110 | 111 | /* Format headers */ 112 | h1 { 113 | font-size: 3rem; 114 | } 115 | 116 | h2 { 117 | font-size: 2.6rem; 118 | margin-top: 3rem; 119 | } 120 | 121 | h3 { 122 | font-size: 2rem; 123 | margin-top: 3rem; 124 | } 125 | 126 | h4 { 127 | font-size: 1.44rem; 128 | } 129 | 130 | h5 { 131 | font-size: 1.15rem; 132 | } 133 | 134 | h6 { 135 | font-size: 0.96rem; 136 | } 137 | 138 | /* Prevent long strings from overflowing container */ 139 | p, h1, h2, h3, h4, h5, h6 { 140 | overflow-wrap: break-word; 141 | } 142 | 143 | /* Fix line height when title wraps */ 144 | h1, 145 | h2, 146 | h3 { 147 | line-height: 1.1; 148 | } 149 | 150 | /* Reduce header size on mobile */ 151 | @media only screen and (max-width: 720px) { 152 | h1 { 153 | font-size: 2.5rem; 154 | } 155 | 156 | h2 { 157 | font-size: 2.1rem; 158 | } 159 | 160 | h3 { 161 | font-size: 1.75rem; 162 | } 163 | 164 | h4 { 165 | font-size: 1.25rem; 166 | } 167 | } 168 | 169 | /* Format links & buttons */ 170 | a, 171 | a:visited { 172 | color: var(--accent); 173 | } 174 | 175 | a:hover { 176 | text-decoration: none; 177 | } 178 | 179 | button, 180 | [role="button"], 181 | input[type="submit"], 182 | input[type="reset"], 183 | input[type="button"], 184 | label[type="button"] { 185 | border: none; 186 | border-radius: 5px; 187 | background-color: var(--accent); 188 | font-size: 1rem; 189 | color: var(--bg); 190 | padding: 0.7rem 0.9rem; 191 | margin: 0.5rem 0; 192 | } 193 | 194 | button[disabled], 195 | [role="button"][aria-disabled="true"], 196 | input[type="submit"][disabled], 197 | input[type="reset"][disabled], 198 | input[type="button"][disabled], 199 | input[type="checkbox"][disabled], 200 | input[type="radio"][disabled], 201 | select[disabled] { 202 | opacity: 0.5; 203 | cursor: not-allowed; 204 | } 205 | 206 | input:disabled, 207 | textarea:disabled, 208 | select:disabled { 209 | cursor: not-allowed; 210 | background-color: var(--disabled); 211 | } 212 | 213 | input[type="range"] { 214 | padding: 0; 215 | } 216 | 217 | /* Set the cursor to '?' on an abbreviation and style the abbreviation to show that there is more information underneath */ 218 | abbr[title] { 219 | cursor: help; 220 | text-decoration-line: underline; 221 | text-decoration-style: dotted; 222 | } 223 | 224 | button:focus, 225 | button:enabled:hover, 226 | [role="button"]:focus, 227 | [role="button"]:not([aria-disabled="true"]):hover, 228 | input[type="submit"]:focus, 229 | input[type="submit"]:enabled:hover, 230 | input[type="reset"]:focus, 231 | input[type="reset"]:enabled:hover, 232 | input[type="button"]:focus, 233 | input[type="button"]:enabled:hover, 234 | label[type="button"]:focus, 235 | label[type="button"]:hover { 236 | filter: brightness(1.4); 237 | cursor: pointer; 238 | } 239 | 240 | /* Format navigation */ 241 | header > nav { 242 | font-size: 1rem; 243 | line-height: 2; 244 | padding: 1rem 0 0 0; 245 | } 246 | 247 | /* Use flexbox to allow items to wrap, as needed */ 248 | header > nav ul, 249 | header > nav ol { 250 | align-content: space-around; 251 | align-items: center; 252 | display: flex; 253 | flex-direction: row; 254 | flex-wrap: wrap; 255 | justify-content: center; 256 | list-style-type: none; 257 | margin: 0; 258 | padding: 0; 259 | } 260 | 261 | /* List items are inline elements, make them behave more like blocks */ 262 | header > nav ul li, 263 | header > nav ol li { 264 | display: inline-block; 265 | } 266 | 267 | header > nav a, 268 | header > nav a:visited { 269 | margin: 0 0.5rem 1rem 0.5rem; 270 | border: 1px solid var(--border); 271 | border-radius: 5px; 272 | color: var(--text); 273 | display: inline-block; 274 | padding: 0.1rem 1rem; 275 | text-decoration: none; 276 | } 277 | 278 | header > nav a:hover { 279 | border-color: var(--accent); 280 | color: var(--accent); 281 | cursor: pointer; 282 | } 283 | 284 | /* Reduce nav side on mobile */ 285 | @media only screen and (max-width: 720px) { 286 | header > nav a { 287 | border: none; 288 | padding: 0; 289 | text-decoration: underline; 290 | line-height: 1; 291 | } 292 | } 293 | 294 | /* Consolidate box styling */ 295 | aside, details, pre, progress { 296 | background-color: var(--accent-bg); 297 | border: 1px solid var(--border); 298 | border-radius: 5px; 299 | margin-bottom: 1rem; 300 | } 301 | 302 | aside { 303 | font-size: 1rem; 304 | width: 30%; 305 | padding: 0 15px; 306 | margin-left: 15px; 307 | float: right; 308 | } 309 | 310 | /* Make aside full-width on mobile */ 311 | @media only screen and (max-width: 720px) { 312 | aside { 313 | width: 100%; 314 | float: none; 315 | margin-left: 0; 316 | } 317 | } 318 | 319 | article, fieldset { 320 | border: 1px solid var(--border); 321 | padding: 1rem; 322 | border-radius: 5px; 323 | margin-bottom: 1rem; 324 | } 325 | 326 | article h2:first-child, 327 | section h2:first-child { 328 | margin-top: 1rem; 329 | } 330 | 331 | section { 332 | border-top: 1px solid var(--border); 333 | border-bottom: 1px solid var(--border); 334 | padding: 2rem 1rem; 335 | margin: 3rem 0; 336 | } 337 | 338 | /* Don't double separators when chaining sections */ 339 | section + section, 340 | section:first-child { 341 | border-top: 0; 342 | padding-top: 0; 343 | } 344 | 345 | section:last-child { 346 | border-bottom: 0; 347 | padding-bottom: 0; 348 | } 349 | 350 | details { 351 | padding: 0.7rem 1rem; 352 | } 353 | 354 | summary { 355 | cursor: pointer; 356 | font-weight: bold; 357 | padding: 0.7rem 1rem; 358 | margin: -0.7rem -1rem; 359 | word-break: break-all; 360 | } 361 | 362 | details[open] > summary + * { 363 | margin-top: 0; 364 | } 365 | 366 | details[open] > summary { 367 | margin-bottom: 0.5rem; 368 | } 369 | 370 | details[open] > :last-child { 371 | margin-bottom: 0; 372 | } 373 | 374 | /* Format tables */ 375 | table { 376 | border-collapse: collapse; 377 | display: block; 378 | margin: 1.5rem 0; 379 | overflow: auto; 380 | width: 100%; 381 | } 382 | 383 | td, 384 | th { 385 | border: 1px solid var(--border); 386 | text-align: left; 387 | padding: 0.5rem; 388 | } 389 | 390 | th { 391 | background-color: var(--accent-bg); 392 | font-weight: bold; 393 | } 394 | 395 | tr:nth-child(even) { 396 | /* Set every other cell slightly darker. Improves readability. */ 397 | background-color: var(--accent-bg); 398 | } 399 | 400 | table caption { 401 | font-weight: bold; 402 | margin-bottom: 0.5rem; 403 | } 404 | 405 | /* Format forms */ 406 | textarea, 407 | select, 408 | input { 409 | font-size: inherit; 410 | font-family: inherit; 411 | padding: 0.5rem; 412 | margin-bottom: 0.5rem; 413 | color: var(--text); 414 | background-color: var(--bg); 415 | border: 1px solid var(--border); 416 | border-radius: 5px; 417 | box-shadow: none; 418 | max-width: 100%; 419 | display: inline-block; 420 | } 421 | label { 422 | display: block; 423 | } 424 | textarea:not([cols]) { 425 | width: 100%; 426 | } 427 | 428 | /* Add arrow to drop-down */ 429 | select:not([multiple]) { 430 | background-image: linear-gradient(45deg, transparent 49%, var(--text) 51%), 431 | linear-gradient(135deg, var(--text) 51%, transparent 49%); 432 | background-position: calc(100% - 15px), calc(100% - 10px); 433 | background-size: 5px 5px, 5px 5px; 434 | background-repeat: no-repeat; 435 | padding-right: 25px; 436 | } 437 | 438 | /* checkbox and radio button style */ 439 | input[type="checkbox"], 440 | input[type="radio"] { 441 | vertical-align: middle; 442 | position: relative; 443 | width: min-content; 444 | } 445 | 446 | input[type="checkbox"] + label, 447 | input[type="radio"] + label { 448 | display: inline-block; 449 | } 450 | 451 | input[type="radio"] { 452 | border-radius: 100%; 453 | } 454 | 455 | input[type="checkbox"]:checked, 456 | input[type="radio"]:checked { 457 | background-color: var(--accent); 458 | } 459 | 460 | input[type="checkbox"]:checked::after { 461 | /* Creates a rectangle with colored right and bottom borders which is rotated to look like a check mark */ 462 | content: " "; 463 | width: 0.18em; 464 | height: 0.32em; 465 | border-radius: 0; 466 | position: absolute; 467 | top: 0.05em; 468 | left: 0.17em; 469 | background-color: transparent; 470 | border-right: solid var(--bg) 0.08em; 471 | border-bottom: solid var(--bg) 0.08em; 472 | font-size: 1.8em; 473 | transform: rotate(45deg); 474 | } 475 | input[type="radio"]:checked::after { 476 | /* creates a colored circle for the checked radio button */ 477 | content: " "; 478 | width: 0.25em; 479 | height: 0.25em; 480 | border-radius: 100%; 481 | position: absolute; 482 | top: 0.125em; 483 | background-color: var(--bg); 484 | left: 0.125em; 485 | font-size: 32px; 486 | } 487 | 488 | /* Makes input fields wider on smaller screens */ 489 | @media only screen and (max-width: 720px) { 490 | textarea, 491 | select, 492 | input { 493 | width: 100%; 494 | } 495 | } 496 | 497 | /* Set a height for color input */ 498 | input[type="color"] { 499 | height: 2.5rem; 500 | padding: 0.2rem; 501 | } 502 | 503 | /* do not show border around file selector button */ 504 | input[type="file"] { 505 | border: 0; 506 | } 507 | 508 | /* Misc body elements */ 509 | hr { 510 | border: none; 511 | height: 1px; 512 | background: var(--border); 513 | margin: 1rem auto; 514 | } 515 | 516 | mark { 517 | padding: 2px 5px; 518 | border-radius: 4px; 519 | background-color: var(--marked); 520 | } 521 | 522 | img, 523 | video { 524 | max-width: 100%; 525 | height: auto; 526 | border-radius: 5px; 527 | } 528 | 529 | figure { 530 | margin: 0; 531 | text-align: center; 532 | } 533 | 534 | figcaption { 535 | font-size: 0.9rem; 536 | color: var(--text-light); 537 | margin-bottom: 1rem; 538 | } 539 | 540 | blockquote { 541 | margin: 2rem 0 2rem 2rem; 542 | padding: 0.4rem 0.8rem; 543 | border-left: 0.35rem solid var(--accent); 544 | color: var(--text-light); 545 | font-style: italic; 546 | } 547 | 548 | cite { 549 | font-size: 0.9rem; 550 | color: var(--text-light); 551 | font-style: normal; 552 | } 553 | 554 | dt { 555 | color: var(--text-light); 556 | } 557 | 558 | /* Use mono font for code elements */ 559 | code, 560 | pre, 561 | pre span, 562 | kbd, 563 | samp { 564 | font-family: var(--mono-font); 565 | color: var(--code); 566 | } 567 | 568 | kbd { 569 | color: var(--preformatted); 570 | border: 1px solid var(--preformatted); 571 | border-bottom: 3px solid var(--preformatted); 572 | border-radius: 5px; 573 | padding: 0.1rem 0.4rem; 574 | } 575 | 576 | pre { 577 | padding: 1rem 1.4rem; 578 | max-width: 100%; 579 | overflow: auto; 580 | color: var(--preformatted); 581 | } 582 | 583 | /* Fix embedded code within pre */ 584 | pre code { 585 | color: var(--preformatted); 586 | background: none; 587 | margin: 0; 588 | padding: 0; 589 | } 590 | 591 | /* Progress bars */ 592 | /* Declarations are repeated because you */ 593 | /* cannot combine vendor-specific selectors */ 594 | progress { 595 | width: 100%; 596 | } 597 | 598 | progress:indeterminate { 599 | background-color: var(--accent-bg); 600 | } 601 | 602 | progress::-webkit-progress-bar { 603 | border-radius: 5px; 604 | background-color: var(--accent-bg); 605 | } 606 | 607 | progress::-webkit-progress-value { 608 | border-radius: 5px; 609 | background-color: var(--accent); 610 | } 611 | 612 | progress::-moz-progress-bar { 613 | border-radius: 5px; 614 | background-color: var(--accent); 615 | transition-property: width; 616 | transition-duration: 0.3s; 617 | } 618 | 619 | progress:indeterminate::-moz-progress-bar { 620 | background-color: var(--accent-bg); 621 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | imagesloaded: 12 | specifier: ^4.1.4 13 | version: 4.1.4 14 | devDependencies: 15 | '@originjs/vite-plugin-commonjs': 16 | specifier: ^1.0.3 17 | version: 1.0.3 18 | '@testing-library/jest-dom': 19 | specifier: ^6.0.0 20 | version: 6.6.3 21 | '@testing-library/react': 22 | specifier: ^16.0.0 23 | version: 16.3.0(@testing-library/dom@8.19.0)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) 24 | '@types/flickity': 25 | specifier: ^2.2.0 26 | version: 2.2.11 27 | '@types/imagesloaded': 28 | specifier: ^4.1.0 29 | version: 4.1.7 30 | '@types/react': 31 | specifier: ^19.0.0 32 | version: 19.1.8 33 | '@types/react-dom': 34 | specifier: ^19.0.0 35 | version: 19.1.6(@types/react@19.1.8) 36 | '@types/react-syntax-highlighter': 37 | specifier: ^15.5.13 38 | version: 15.5.13 39 | '@vitejs/plugin-react': 40 | specifier: ^4.0.0 41 | version: 4.3.4(vite@6.0.6(@types/node@18.11.13)) 42 | flickity: 43 | specifier: ^2.2.1 44 | version: 2.3.0 45 | jsdom: 46 | specifier: ^25.0.0 47 | version: 25.0.1 48 | prettier: 49 | specifier: ^3.0.0 50 | version: 3.5.3 51 | react: 52 | specifier: ^19.0.0 53 | version: 19.1.0 54 | react-dom: 55 | specifier: ^19.0.0 56 | version: 19.1.0(react@19.1.0) 57 | react-syntax-highlighter: 58 | specifier: ^15.6.1 59 | version: 15.6.1(react@19.1.0) 60 | typescript: 61 | specifier: ^5.0.0 62 | version: 5.8.3 63 | vite: 64 | specifier: ^6.0.0 65 | version: 6.0.6(@types/node@18.11.13) 66 | vite-plugin-dts: 67 | specifier: ^4.0.0 68 | version: 4.5.4(@types/node@18.11.13)(rollup@4.29.1)(typescript@5.8.3)(vite@6.0.6(@types/node@18.11.13)) 69 | vitest: 70 | specifier: ^2.0.0 71 | version: 2.1.9(@types/node@18.11.13)(jsdom@25.0.1) 72 | 73 | packages: 74 | 75 | '@adobe/css-tools@4.4.3': 76 | resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} 77 | 78 | '@ampproject/remapping@2.2.0': 79 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 80 | engines: {node: '>=6.0.0'} 81 | 82 | '@asamuzakjp/css-color@3.2.0': 83 | resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} 84 | 85 | '@babel/code-frame@7.26.2': 86 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 87 | engines: {node: '>=6.9.0'} 88 | 89 | '@babel/compat-data@7.26.3': 90 | resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} 91 | engines: {node: '>=6.9.0'} 92 | 93 | '@babel/core@7.26.0': 94 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} 95 | engines: {node: '>=6.9.0'} 96 | 97 | '@babel/generator@7.26.3': 98 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} 99 | engines: {node: '>=6.9.0'} 100 | 101 | '@babel/helper-compilation-targets@7.25.9': 102 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} 103 | engines: {node: '>=6.9.0'} 104 | 105 | '@babel/helper-module-imports@7.25.9': 106 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 107 | engines: {node: '>=6.9.0'} 108 | 109 | '@babel/helper-module-transforms@7.26.0': 110 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} 111 | engines: {node: '>=6.9.0'} 112 | peerDependencies: 113 | '@babel/core': ^7.0.0 114 | 115 | '@babel/helper-plugin-utils@7.25.9': 116 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} 117 | engines: {node: '>=6.9.0'} 118 | 119 | '@babel/helper-string-parser@7.25.9': 120 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 121 | engines: {node: '>=6.9.0'} 122 | 123 | '@babel/helper-string-parser@7.27.1': 124 | resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 125 | engines: {node: '>=6.9.0'} 126 | 127 | '@babel/helper-validator-identifier@7.25.9': 128 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 129 | engines: {node: '>=6.9.0'} 130 | 131 | '@babel/helper-validator-identifier@7.27.1': 132 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 133 | engines: {node: '>=6.9.0'} 134 | 135 | '@babel/helper-validator-option@7.25.9': 136 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} 137 | engines: {node: '>=6.9.0'} 138 | 139 | '@babel/helpers@7.26.0': 140 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} 141 | engines: {node: '>=6.9.0'} 142 | 143 | '@babel/parser@7.26.3': 144 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} 145 | engines: {node: '>=6.0.0'} 146 | hasBin: true 147 | 148 | '@babel/parser@7.27.5': 149 | resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} 150 | engines: {node: '>=6.0.0'} 151 | hasBin: true 152 | 153 | '@babel/plugin-transform-react-jsx-self@7.25.9': 154 | resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} 155 | engines: {node: '>=6.9.0'} 156 | peerDependencies: 157 | '@babel/core': ^7.0.0-0 158 | 159 | '@babel/plugin-transform-react-jsx-source@7.25.9': 160 | resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} 161 | engines: {node: '>=6.9.0'} 162 | peerDependencies: 163 | '@babel/core': ^7.0.0-0 164 | 165 | '@babel/runtime@7.20.6': 166 | resolution: {integrity: sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==} 167 | engines: {node: '>=6.9.0'} 168 | 169 | '@babel/template@7.25.9': 170 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} 171 | engines: {node: '>=6.9.0'} 172 | 173 | '@babel/traverse@7.26.4': 174 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} 175 | engines: {node: '>=6.9.0'} 176 | 177 | '@babel/types@7.26.3': 178 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 179 | engines: {node: '>=6.9.0'} 180 | 181 | '@babel/types@7.27.6': 182 | resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} 183 | engines: {node: '>=6.9.0'} 184 | 185 | '@csstools/color-helpers@5.0.2': 186 | resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} 187 | engines: {node: '>=18'} 188 | 189 | '@csstools/css-calc@2.1.4': 190 | resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} 191 | engines: {node: '>=18'} 192 | peerDependencies: 193 | '@csstools/css-parser-algorithms': ^3.0.5 194 | '@csstools/css-tokenizer': ^3.0.4 195 | 196 | '@csstools/css-color-parser@3.0.10': 197 | resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} 198 | engines: {node: '>=18'} 199 | peerDependencies: 200 | '@csstools/css-parser-algorithms': ^3.0.5 201 | '@csstools/css-tokenizer': ^3.0.4 202 | 203 | '@csstools/css-parser-algorithms@3.0.5': 204 | resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} 205 | engines: {node: '>=18'} 206 | peerDependencies: 207 | '@csstools/css-tokenizer': ^3.0.4 208 | 209 | '@csstools/css-tokenizer@3.0.4': 210 | resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 211 | engines: {node: '>=18'} 212 | 213 | '@esbuild/aix-ppc64@0.21.5': 214 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 215 | engines: {node: '>=12'} 216 | cpu: [ppc64] 217 | os: [aix] 218 | 219 | '@esbuild/aix-ppc64@0.24.2': 220 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 221 | engines: {node: '>=18'} 222 | cpu: [ppc64] 223 | os: [aix] 224 | 225 | '@esbuild/android-arm64@0.21.5': 226 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 227 | engines: {node: '>=12'} 228 | cpu: [arm64] 229 | os: [android] 230 | 231 | '@esbuild/android-arm64@0.24.2': 232 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 233 | engines: {node: '>=18'} 234 | cpu: [arm64] 235 | os: [android] 236 | 237 | '@esbuild/android-arm@0.21.5': 238 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 239 | engines: {node: '>=12'} 240 | cpu: [arm] 241 | os: [android] 242 | 243 | '@esbuild/android-arm@0.24.2': 244 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 245 | engines: {node: '>=18'} 246 | cpu: [arm] 247 | os: [android] 248 | 249 | '@esbuild/android-x64@0.21.5': 250 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 251 | engines: {node: '>=12'} 252 | cpu: [x64] 253 | os: [android] 254 | 255 | '@esbuild/android-x64@0.24.2': 256 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 257 | engines: {node: '>=18'} 258 | cpu: [x64] 259 | os: [android] 260 | 261 | '@esbuild/darwin-arm64@0.21.5': 262 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 263 | engines: {node: '>=12'} 264 | cpu: [arm64] 265 | os: [darwin] 266 | 267 | '@esbuild/darwin-arm64@0.24.2': 268 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 269 | engines: {node: '>=18'} 270 | cpu: [arm64] 271 | os: [darwin] 272 | 273 | '@esbuild/darwin-x64@0.21.5': 274 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 275 | engines: {node: '>=12'} 276 | cpu: [x64] 277 | os: [darwin] 278 | 279 | '@esbuild/darwin-x64@0.24.2': 280 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 281 | engines: {node: '>=18'} 282 | cpu: [x64] 283 | os: [darwin] 284 | 285 | '@esbuild/freebsd-arm64@0.21.5': 286 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 287 | engines: {node: '>=12'} 288 | cpu: [arm64] 289 | os: [freebsd] 290 | 291 | '@esbuild/freebsd-arm64@0.24.2': 292 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 293 | engines: {node: '>=18'} 294 | cpu: [arm64] 295 | os: [freebsd] 296 | 297 | '@esbuild/freebsd-x64@0.21.5': 298 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 299 | engines: {node: '>=12'} 300 | cpu: [x64] 301 | os: [freebsd] 302 | 303 | '@esbuild/freebsd-x64@0.24.2': 304 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 305 | engines: {node: '>=18'} 306 | cpu: [x64] 307 | os: [freebsd] 308 | 309 | '@esbuild/linux-arm64@0.21.5': 310 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 311 | engines: {node: '>=12'} 312 | cpu: [arm64] 313 | os: [linux] 314 | 315 | '@esbuild/linux-arm64@0.24.2': 316 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 317 | engines: {node: '>=18'} 318 | cpu: [arm64] 319 | os: [linux] 320 | 321 | '@esbuild/linux-arm@0.21.5': 322 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 323 | engines: {node: '>=12'} 324 | cpu: [arm] 325 | os: [linux] 326 | 327 | '@esbuild/linux-arm@0.24.2': 328 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 329 | engines: {node: '>=18'} 330 | cpu: [arm] 331 | os: [linux] 332 | 333 | '@esbuild/linux-ia32@0.21.5': 334 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 335 | engines: {node: '>=12'} 336 | cpu: [ia32] 337 | os: [linux] 338 | 339 | '@esbuild/linux-ia32@0.24.2': 340 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 341 | engines: {node: '>=18'} 342 | cpu: [ia32] 343 | os: [linux] 344 | 345 | '@esbuild/linux-loong64@0.14.54': 346 | resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} 347 | engines: {node: '>=12'} 348 | cpu: [loong64] 349 | os: [linux] 350 | 351 | '@esbuild/linux-loong64@0.21.5': 352 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 353 | engines: {node: '>=12'} 354 | cpu: [loong64] 355 | os: [linux] 356 | 357 | '@esbuild/linux-loong64@0.24.2': 358 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 359 | engines: {node: '>=18'} 360 | cpu: [loong64] 361 | os: [linux] 362 | 363 | '@esbuild/linux-mips64el@0.21.5': 364 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 365 | engines: {node: '>=12'} 366 | cpu: [mips64el] 367 | os: [linux] 368 | 369 | '@esbuild/linux-mips64el@0.24.2': 370 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 371 | engines: {node: '>=18'} 372 | cpu: [mips64el] 373 | os: [linux] 374 | 375 | '@esbuild/linux-ppc64@0.21.5': 376 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 377 | engines: {node: '>=12'} 378 | cpu: [ppc64] 379 | os: [linux] 380 | 381 | '@esbuild/linux-ppc64@0.24.2': 382 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 383 | engines: {node: '>=18'} 384 | cpu: [ppc64] 385 | os: [linux] 386 | 387 | '@esbuild/linux-riscv64@0.21.5': 388 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 389 | engines: {node: '>=12'} 390 | cpu: [riscv64] 391 | os: [linux] 392 | 393 | '@esbuild/linux-riscv64@0.24.2': 394 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 395 | engines: {node: '>=18'} 396 | cpu: [riscv64] 397 | os: [linux] 398 | 399 | '@esbuild/linux-s390x@0.21.5': 400 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 401 | engines: {node: '>=12'} 402 | cpu: [s390x] 403 | os: [linux] 404 | 405 | '@esbuild/linux-s390x@0.24.2': 406 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 407 | engines: {node: '>=18'} 408 | cpu: [s390x] 409 | os: [linux] 410 | 411 | '@esbuild/linux-x64@0.21.5': 412 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 413 | engines: {node: '>=12'} 414 | cpu: [x64] 415 | os: [linux] 416 | 417 | '@esbuild/linux-x64@0.24.2': 418 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 419 | engines: {node: '>=18'} 420 | cpu: [x64] 421 | os: [linux] 422 | 423 | '@esbuild/netbsd-arm64@0.24.2': 424 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 425 | engines: {node: '>=18'} 426 | cpu: [arm64] 427 | os: [netbsd] 428 | 429 | '@esbuild/netbsd-x64@0.21.5': 430 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 431 | engines: {node: '>=12'} 432 | cpu: [x64] 433 | os: [netbsd] 434 | 435 | '@esbuild/netbsd-x64@0.24.2': 436 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 437 | engines: {node: '>=18'} 438 | cpu: [x64] 439 | os: [netbsd] 440 | 441 | '@esbuild/openbsd-arm64@0.24.2': 442 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 443 | engines: {node: '>=18'} 444 | cpu: [arm64] 445 | os: [openbsd] 446 | 447 | '@esbuild/openbsd-x64@0.21.5': 448 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 449 | engines: {node: '>=12'} 450 | cpu: [x64] 451 | os: [openbsd] 452 | 453 | '@esbuild/openbsd-x64@0.24.2': 454 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 455 | engines: {node: '>=18'} 456 | cpu: [x64] 457 | os: [openbsd] 458 | 459 | '@esbuild/sunos-x64@0.21.5': 460 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 461 | engines: {node: '>=12'} 462 | cpu: [x64] 463 | os: [sunos] 464 | 465 | '@esbuild/sunos-x64@0.24.2': 466 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 467 | engines: {node: '>=18'} 468 | cpu: [x64] 469 | os: [sunos] 470 | 471 | '@esbuild/win32-arm64@0.21.5': 472 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 473 | engines: {node: '>=12'} 474 | cpu: [arm64] 475 | os: [win32] 476 | 477 | '@esbuild/win32-arm64@0.24.2': 478 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 479 | engines: {node: '>=18'} 480 | cpu: [arm64] 481 | os: [win32] 482 | 483 | '@esbuild/win32-ia32@0.21.5': 484 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 485 | engines: {node: '>=12'} 486 | cpu: [ia32] 487 | os: [win32] 488 | 489 | '@esbuild/win32-ia32@0.24.2': 490 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 491 | engines: {node: '>=18'} 492 | cpu: [ia32] 493 | os: [win32] 494 | 495 | '@esbuild/win32-x64@0.21.5': 496 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 497 | engines: {node: '>=12'} 498 | cpu: [x64] 499 | os: [win32] 500 | 501 | '@esbuild/win32-x64@0.24.2': 502 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 503 | engines: {node: '>=18'} 504 | cpu: [x64] 505 | os: [win32] 506 | 507 | '@jridgewell/gen-mapping@0.1.1': 508 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 509 | engines: {node: '>=6.0.0'} 510 | 511 | '@jridgewell/gen-mapping@0.3.8': 512 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 513 | engines: {node: '>=6.0.0'} 514 | 515 | '@jridgewell/resolve-uri@3.1.0': 516 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 517 | engines: {node: '>=6.0.0'} 518 | 519 | '@jridgewell/set-array@1.1.2': 520 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 521 | engines: {node: '>=6.0.0'} 522 | 523 | '@jridgewell/set-array@1.2.1': 524 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 525 | engines: {node: '>=6.0.0'} 526 | 527 | '@jridgewell/sourcemap-codec@1.4.14': 528 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 529 | 530 | '@jridgewell/sourcemap-codec@1.5.0': 531 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 532 | 533 | '@jridgewell/trace-mapping@0.3.17': 534 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 535 | 536 | '@jridgewell/trace-mapping@0.3.25': 537 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 538 | 539 | '@microsoft/api-extractor-model@7.30.6': 540 | resolution: {integrity: sha512-znmFn69wf/AIrwHya3fxX6uB5etSIn6vg4Q4RB/tb5VDDs1rqREc+AvMC/p19MUN13CZ7+V/8pkYPTj7q8tftg==} 541 | 542 | '@microsoft/api-extractor@7.52.8': 543 | resolution: {integrity: sha512-cszYIcjiNscDoMB1CIKZ3My61+JOhpERGlGr54i6bocvGLrcL/wo9o+RNXMBrb7XgLtKaizZWUpqRduQuHQLdg==} 544 | hasBin: true 545 | 546 | '@microsoft/tsdoc-config@0.17.1': 547 | resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} 548 | 549 | '@microsoft/tsdoc@0.15.1': 550 | resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} 551 | 552 | '@originjs/vite-plugin-commonjs@1.0.3': 553 | resolution: {integrity: sha512-KuEXeGPptM2lyxdIEJ4R11+5ztipHoE7hy8ClZt3PYaOVQ/pyngd2alaSrPnwyFeOW1UagRBaQ752aA1dTMdOQ==} 554 | 555 | '@rollup/pluginutils@5.1.4': 556 | resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} 557 | engines: {node: '>=14.0.0'} 558 | peerDependencies: 559 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 560 | peerDependenciesMeta: 561 | rollup: 562 | optional: true 563 | 564 | '@rollup/rollup-android-arm-eabi@4.29.1': 565 | resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} 566 | cpu: [arm] 567 | os: [android] 568 | 569 | '@rollup/rollup-android-arm64@4.29.1': 570 | resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} 571 | cpu: [arm64] 572 | os: [android] 573 | 574 | '@rollup/rollup-darwin-arm64@4.29.1': 575 | resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} 576 | cpu: [arm64] 577 | os: [darwin] 578 | 579 | '@rollup/rollup-darwin-x64@4.29.1': 580 | resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} 581 | cpu: [x64] 582 | os: [darwin] 583 | 584 | '@rollup/rollup-freebsd-arm64@4.29.1': 585 | resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} 586 | cpu: [arm64] 587 | os: [freebsd] 588 | 589 | '@rollup/rollup-freebsd-x64@4.29.1': 590 | resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} 591 | cpu: [x64] 592 | os: [freebsd] 593 | 594 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 595 | resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==} 596 | cpu: [arm] 597 | os: [linux] 598 | 599 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 600 | resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==} 601 | cpu: [arm] 602 | os: [linux] 603 | 604 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 605 | resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==} 606 | cpu: [arm64] 607 | os: [linux] 608 | 609 | '@rollup/rollup-linux-arm64-musl@4.29.1': 610 | resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==} 611 | cpu: [arm64] 612 | os: [linux] 613 | 614 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 615 | resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==} 616 | cpu: [loong64] 617 | os: [linux] 618 | 619 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 620 | resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==} 621 | cpu: [ppc64] 622 | os: [linux] 623 | 624 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 625 | resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==} 626 | cpu: [riscv64] 627 | os: [linux] 628 | 629 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 630 | resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==} 631 | cpu: [s390x] 632 | os: [linux] 633 | 634 | '@rollup/rollup-linux-x64-gnu@4.29.1': 635 | resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==} 636 | cpu: [x64] 637 | os: [linux] 638 | 639 | '@rollup/rollup-linux-x64-musl@4.29.1': 640 | resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==} 641 | cpu: [x64] 642 | os: [linux] 643 | 644 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 645 | resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==} 646 | cpu: [arm64] 647 | os: [win32] 648 | 649 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 650 | resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==} 651 | cpu: [ia32] 652 | os: [win32] 653 | 654 | '@rollup/rollup-win32-x64-msvc@4.29.1': 655 | resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==} 656 | cpu: [x64] 657 | os: [win32] 658 | 659 | '@rushstack/node-core-library@5.13.1': 660 | resolution: {integrity: sha512-5yXhzPFGEkVc9Fu92wsNJ9jlvdwz4RNb2bMso+/+TH0nMm1jDDDsOIf4l8GAkPxGuwPw5DH24RliWVfSPhlW/Q==} 661 | peerDependencies: 662 | '@types/node': '*' 663 | peerDependenciesMeta: 664 | '@types/node': 665 | optional: true 666 | 667 | '@rushstack/rig-package@0.5.3': 668 | resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} 669 | 670 | '@rushstack/terminal@0.15.3': 671 | resolution: {integrity: sha512-DGJ0B2Vm69468kZCJkPj3AH5nN+nR9SPmC0rFHtzsS4lBQ7/dgOwtwVxYP7W9JPDMuRBkJ4KHmWKr036eJsj9g==} 672 | peerDependencies: 673 | '@types/node': '*' 674 | peerDependenciesMeta: 675 | '@types/node': 676 | optional: true 677 | 678 | '@rushstack/ts-command-line@5.0.1': 679 | resolution: {integrity: sha512-bsbUucn41UXrQK7wgM8CNM/jagBytEyJqXw/umtI8d68vFm1Jwxh1OtLrlW7uGZgjCWiiPH6ooUNa1aVsuVr3Q==} 680 | 681 | '@testing-library/dom@8.19.0': 682 | resolution: {integrity: sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==} 683 | engines: {node: '>=12'} 684 | 685 | '@testing-library/jest-dom@6.6.3': 686 | resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} 687 | engines: {node: '>=14', npm: '>=6', yarn: '>=1'} 688 | 689 | '@testing-library/react@16.3.0': 690 | resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} 691 | engines: {node: '>=18'} 692 | peerDependencies: 693 | '@testing-library/dom': ^10.0.0 694 | '@types/react': ^18.0.0 || ^19.0.0 695 | '@types/react-dom': ^18.0.0 || ^19.0.0 696 | react: ^18.0.0 || ^19.0.0 697 | react-dom: ^18.0.0 || ^19.0.0 698 | peerDependenciesMeta: 699 | '@types/react': 700 | optional: true 701 | '@types/react-dom': 702 | optional: true 703 | 704 | '@types/argparse@1.0.38': 705 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 706 | 707 | '@types/aria-query@4.2.2': 708 | resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} 709 | 710 | '@types/babel__core@7.20.5': 711 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 712 | 713 | '@types/babel__generator@7.6.8': 714 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} 715 | 716 | '@types/babel__template@7.4.4': 717 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 718 | 719 | '@types/babel__traverse@7.20.6': 720 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} 721 | 722 | '@types/estree@1.0.6': 723 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 724 | 725 | '@types/flickity@2.2.11': 726 | resolution: {integrity: sha512-Bnx/+lDEG/Oq9hcyD3gU0/ET5lCAxsoJ+fHVJk8bZil1a1aT6V8m3BaR0aDEBv7Pzm55xmGzRd+i4PQp7glVjg==} 727 | 728 | '@types/hast@2.3.10': 729 | resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} 730 | 731 | '@types/imagesloaded@4.1.7': 732 | resolution: {integrity: sha512-N380qYSNvYsrF+TtQ7SvxP5rs/XVI/6+l/aUKJjXiVc2y3YHzhmeP283sX16ZimW89DAGguZEGc19esP1cJeLg==} 733 | 734 | '@types/jquery@3.5.32': 735 | resolution: {integrity: sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==} 736 | 737 | '@types/node@18.11.13': 738 | resolution: {integrity: sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==} 739 | 740 | '@types/react-dom@19.1.6': 741 | resolution: {integrity: sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==} 742 | peerDependencies: 743 | '@types/react': ^19.0.0 744 | 745 | '@types/react-syntax-highlighter@15.5.13': 746 | resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==} 747 | 748 | '@types/react@19.1.8': 749 | resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} 750 | 751 | '@types/sizzle@2.3.9': 752 | resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==} 753 | 754 | '@types/unist@2.0.11': 755 | resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} 756 | 757 | '@vitejs/plugin-react@4.3.4': 758 | resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} 759 | engines: {node: ^14.18.0 || >=16.0.0} 760 | peerDependencies: 761 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0 762 | 763 | '@vitest/expect@2.1.9': 764 | resolution: {integrity: sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==} 765 | 766 | '@vitest/mocker@2.1.9': 767 | resolution: {integrity: sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==} 768 | peerDependencies: 769 | msw: ^2.4.9 770 | vite: ^5.0.0 771 | peerDependenciesMeta: 772 | msw: 773 | optional: true 774 | vite: 775 | optional: true 776 | 777 | '@vitest/pretty-format@2.1.9': 778 | resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} 779 | 780 | '@vitest/runner@2.1.9': 781 | resolution: {integrity: sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==} 782 | 783 | '@vitest/snapshot@2.1.9': 784 | resolution: {integrity: sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==} 785 | 786 | '@vitest/spy@2.1.9': 787 | resolution: {integrity: sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==} 788 | 789 | '@vitest/utils@2.1.9': 790 | resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} 791 | 792 | '@volar/language-core@2.4.14': 793 | resolution: {integrity: sha512-X6beusV0DvuVseaOEy7GoagS4rYHgDHnTrdOj5jeUb49fW5ceQyP9Ej5rBhqgz2wJggl+2fDbbojq1XKaxDi6w==} 794 | 795 | '@volar/source-map@2.4.14': 796 | resolution: {integrity: sha512-5TeKKMh7Sfxo8021cJfmBzcjfY1SsXsPMMjMvjY7ivesdnybqqS+GxGAoXHAOUawQTwtdUxgP65Im+dEmvWtYQ==} 797 | 798 | '@volar/typescript@2.4.14': 799 | resolution: {integrity: sha512-p8Z6f/bZM3/HyCdRNFZOEEzts51uV8WHeN8Tnfnm2EBv6FDB2TQLzfVx7aJvnl8ofKAOnS64B2O8bImBFaauRw==} 800 | 801 | '@vue/compiler-core@3.5.16': 802 | resolution: {integrity: sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==} 803 | 804 | '@vue/compiler-dom@3.5.16': 805 | resolution: {integrity: sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==} 806 | 807 | '@vue/compiler-vue2@2.7.16': 808 | resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} 809 | 810 | '@vue/language-core@2.2.0': 811 | resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} 812 | peerDependencies: 813 | typescript: '*' 814 | peerDependenciesMeta: 815 | typescript: 816 | optional: true 817 | 818 | '@vue/shared@3.5.16': 819 | resolution: {integrity: sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==} 820 | 821 | acorn@8.15.0: 822 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 823 | engines: {node: '>=0.4.0'} 824 | hasBin: true 825 | 826 | agent-base@7.1.3: 827 | resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} 828 | engines: {node: '>= 14'} 829 | 830 | ajv-draft-04@1.0.0: 831 | resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} 832 | peerDependencies: 833 | ajv: ^8.5.0 834 | peerDependenciesMeta: 835 | ajv: 836 | optional: true 837 | 838 | ajv-formats@3.0.1: 839 | resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} 840 | peerDependencies: 841 | ajv: ^8.0.0 842 | peerDependenciesMeta: 843 | ajv: 844 | optional: true 845 | 846 | ajv@8.12.0: 847 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 848 | 849 | ajv@8.13.0: 850 | resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} 851 | 852 | alien-signals@0.4.14: 853 | resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} 854 | 855 | ansi-regex@5.0.1: 856 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 857 | engines: {node: '>=8'} 858 | 859 | ansi-styles@4.3.0: 860 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 861 | engines: {node: '>=8'} 862 | 863 | ansi-styles@5.2.0: 864 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 865 | engines: {node: '>=10'} 866 | 867 | argparse@1.0.10: 868 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 869 | 870 | aria-query@5.1.3: 871 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} 872 | 873 | assertion-error@2.0.1: 874 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 875 | engines: {node: '>=12'} 876 | 877 | asynckit@0.4.0: 878 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 879 | 880 | available-typed-arrays@1.0.5: 881 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 882 | engines: {node: '>= 0.4'} 883 | 884 | balanced-match@1.0.2: 885 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 886 | 887 | brace-expansion@1.1.12: 888 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 889 | 890 | brace-expansion@2.0.2: 891 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 892 | 893 | browserslist@4.24.3: 894 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} 895 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 896 | hasBin: true 897 | 898 | cac@6.7.14: 899 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 900 | engines: {node: '>=8'} 901 | 902 | call-bind@1.0.2: 903 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 904 | 905 | caniuse-lite@1.0.30001690: 906 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 907 | 908 | chai@5.2.0: 909 | resolution: {integrity: sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==} 910 | engines: {node: '>=12'} 911 | 912 | chalk@3.0.0: 913 | resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} 914 | engines: {node: '>=8'} 915 | 916 | chalk@4.1.2: 917 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 918 | engines: {node: '>=10'} 919 | 920 | character-entities-legacy@1.1.4: 921 | resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} 922 | 923 | character-entities@1.2.4: 924 | resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} 925 | 926 | character-reference-invalid@1.1.4: 927 | resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} 928 | 929 | check-error@2.1.1: 930 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 931 | engines: {node: '>= 16'} 932 | 933 | color-convert@2.0.1: 934 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 935 | engines: {node: '>=7.0.0'} 936 | 937 | color-name@1.1.4: 938 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 939 | 940 | combined-stream@1.0.8: 941 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 942 | engines: {node: '>= 0.8'} 943 | 944 | comma-separated-tokens@1.0.8: 945 | resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} 946 | 947 | compare-versions@6.1.1: 948 | resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} 949 | 950 | concat-map@0.0.1: 951 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 952 | 953 | confbox@0.1.8: 954 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 955 | 956 | confbox@0.2.2: 957 | resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} 958 | 959 | convert-source-map@2.0.0: 960 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 961 | 962 | css.escape@1.5.1: 963 | resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} 964 | 965 | cssstyle@4.4.0: 966 | resolution: {integrity: sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==} 967 | engines: {node: '>=18'} 968 | 969 | csstype@3.1.1: 970 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 971 | 972 | data-urls@5.0.0: 973 | resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 974 | engines: {node: '>=18'} 975 | 976 | de-indent@1.0.2: 977 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 978 | 979 | debug@4.3.4: 980 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 981 | engines: {node: '>=6.0'} 982 | peerDependencies: 983 | supports-color: '*' 984 | peerDependenciesMeta: 985 | supports-color: 986 | optional: true 987 | 988 | debug@4.4.1: 989 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 990 | engines: {node: '>=6.0'} 991 | peerDependencies: 992 | supports-color: '*' 993 | peerDependenciesMeta: 994 | supports-color: 995 | optional: true 996 | 997 | decimal.js@10.4.3: 998 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 999 | 1000 | deep-eql@5.0.2: 1001 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 1002 | engines: {node: '>=6'} 1003 | 1004 | deep-equal@2.1.0: 1005 | resolution: {integrity: sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==} 1006 | 1007 | define-properties@1.1.4: 1008 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 1009 | engines: {node: '>= 0.4'} 1010 | 1011 | delayed-stream@1.0.0: 1012 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1013 | engines: {node: '>=0.4.0'} 1014 | 1015 | desandro-matches-selector@2.0.2: 1016 | resolution: {integrity: sha512-+1q0nXhdzg1IpIJdMKalUwvvskeKnYyEe3shPRwedNcWtnhEKT3ZxvFjzywHDeGcKViIxTCAoOYQWP1qD7VNyg==} 1017 | 1018 | dom-accessibility-api@0.5.14: 1019 | resolution: {integrity: sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==} 1020 | 1021 | dom-accessibility-api@0.6.3: 1022 | resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} 1023 | 1024 | electron-to-chromium@1.5.76: 1025 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} 1026 | 1027 | entities@4.4.0: 1028 | resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} 1029 | engines: {node: '>=0.12'} 1030 | 1031 | entities@4.5.0: 1032 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1033 | engines: {node: '>=0.12'} 1034 | 1035 | es-get-iterator@1.1.2: 1036 | resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} 1037 | 1038 | es-module-lexer@1.7.0: 1039 | resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1040 | 1041 | esbuild-android-64@0.14.54: 1042 | resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==} 1043 | engines: {node: '>=12'} 1044 | cpu: [x64] 1045 | os: [android] 1046 | 1047 | esbuild-android-arm64@0.14.54: 1048 | resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==} 1049 | engines: {node: '>=12'} 1050 | cpu: [arm64] 1051 | os: [android] 1052 | 1053 | esbuild-darwin-64@0.14.54: 1054 | resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==} 1055 | engines: {node: '>=12'} 1056 | cpu: [x64] 1057 | os: [darwin] 1058 | 1059 | esbuild-darwin-arm64@0.14.54: 1060 | resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==} 1061 | engines: {node: '>=12'} 1062 | cpu: [arm64] 1063 | os: [darwin] 1064 | 1065 | esbuild-freebsd-64@0.14.54: 1066 | resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==} 1067 | engines: {node: '>=12'} 1068 | cpu: [x64] 1069 | os: [freebsd] 1070 | 1071 | esbuild-freebsd-arm64@0.14.54: 1072 | resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==} 1073 | engines: {node: '>=12'} 1074 | cpu: [arm64] 1075 | os: [freebsd] 1076 | 1077 | esbuild-linux-32@0.14.54: 1078 | resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==} 1079 | engines: {node: '>=12'} 1080 | cpu: [ia32] 1081 | os: [linux] 1082 | 1083 | esbuild-linux-64@0.14.54: 1084 | resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==} 1085 | engines: {node: '>=12'} 1086 | cpu: [x64] 1087 | os: [linux] 1088 | 1089 | esbuild-linux-arm64@0.14.54: 1090 | resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==} 1091 | engines: {node: '>=12'} 1092 | cpu: [arm64] 1093 | os: [linux] 1094 | 1095 | esbuild-linux-arm@0.14.54: 1096 | resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==} 1097 | engines: {node: '>=12'} 1098 | cpu: [arm] 1099 | os: [linux] 1100 | 1101 | esbuild-linux-mips64le@0.14.54: 1102 | resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==} 1103 | engines: {node: '>=12'} 1104 | cpu: [mips64el] 1105 | os: [linux] 1106 | 1107 | esbuild-linux-ppc64le@0.14.54: 1108 | resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==} 1109 | engines: {node: '>=12'} 1110 | cpu: [ppc64] 1111 | os: [linux] 1112 | 1113 | esbuild-linux-riscv64@0.14.54: 1114 | resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==} 1115 | engines: {node: '>=12'} 1116 | cpu: [riscv64] 1117 | os: [linux] 1118 | 1119 | esbuild-linux-s390x@0.14.54: 1120 | resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==} 1121 | engines: {node: '>=12'} 1122 | cpu: [s390x] 1123 | os: [linux] 1124 | 1125 | esbuild-netbsd-64@0.14.54: 1126 | resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==} 1127 | engines: {node: '>=12'} 1128 | cpu: [x64] 1129 | os: [netbsd] 1130 | 1131 | esbuild-openbsd-64@0.14.54: 1132 | resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==} 1133 | engines: {node: '>=12'} 1134 | cpu: [x64] 1135 | os: [openbsd] 1136 | 1137 | esbuild-sunos-64@0.14.54: 1138 | resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==} 1139 | engines: {node: '>=12'} 1140 | cpu: [x64] 1141 | os: [sunos] 1142 | 1143 | esbuild-windows-32@0.14.54: 1144 | resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==} 1145 | engines: {node: '>=12'} 1146 | cpu: [ia32] 1147 | os: [win32] 1148 | 1149 | esbuild-windows-64@0.14.54: 1150 | resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==} 1151 | engines: {node: '>=12'} 1152 | cpu: [x64] 1153 | os: [win32] 1154 | 1155 | esbuild-windows-arm64@0.14.54: 1156 | resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==} 1157 | engines: {node: '>=12'} 1158 | cpu: [arm64] 1159 | os: [win32] 1160 | 1161 | esbuild@0.14.54: 1162 | resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} 1163 | engines: {node: '>=12'} 1164 | hasBin: true 1165 | 1166 | esbuild@0.21.5: 1167 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1168 | engines: {node: '>=12'} 1169 | hasBin: true 1170 | 1171 | esbuild@0.24.2: 1172 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 1173 | engines: {node: '>=18'} 1174 | hasBin: true 1175 | 1176 | escalade@3.2.0: 1177 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1178 | engines: {node: '>=6'} 1179 | 1180 | estree-walker@2.0.2: 1181 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1182 | 1183 | estree-walker@3.0.3: 1184 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1185 | 1186 | ev-emitter@1.1.1: 1187 | resolution: {integrity: sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==} 1188 | 1189 | expect-type@1.2.1: 1190 | resolution: {integrity: sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==} 1191 | engines: {node: '>=12.0.0'} 1192 | 1193 | exsolve@1.0.5: 1194 | resolution: {integrity: sha512-pz5dvkYYKQ1AHVrgOzBKWeP4u4FRb3a6DNK2ucr0OoNwYIU4QWsJ+NM36LLzORT+z845MzKHHhpXiUF5nvQoJg==} 1195 | 1196 | fast-deep-equal@3.1.3: 1197 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1198 | 1199 | fault@1.0.4: 1200 | resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} 1201 | 1202 | fizzy-ui-utils@2.0.7: 1203 | resolution: {integrity: sha512-CZXDVXQ1If3/r8s0T+v+qVeMshhfcuq0rqIFgJnrtd+Bu8GmDmqMjntjUePypVtjHXKJ6V4sw9zeyox34n9aCg==} 1204 | 1205 | flickity@2.3.0: 1206 | resolution: {integrity: sha512-x4cJBVywsaCWmId3I6wvBYJtWk3gcr+gz8UJQ48P57W5G7ER5OUgc3GUK0rtTrbMy/HYB9wL6u+I7EC4qrLO8g==} 1207 | 1208 | for-each@0.3.3: 1209 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1210 | 1211 | form-data@4.0.0: 1212 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1213 | engines: {node: '>= 6'} 1214 | 1215 | format@0.2.2: 1216 | resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} 1217 | engines: {node: '>=0.4.x'} 1218 | 1219 | fs-extra@11.3.0: 1220 | resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} 1221 | engines: {node: '>=14.14'} 1222 | 1223 | fsevents@2.3.3: 1224 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1225 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1226 | os: [darwin] 1227 | 1228 | function-bind@1.1.1: 1229 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1230 | 1231 | function-bind@1.1.2: 1232 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1233 | 1234 | functions-have-names@1.2.3: 1235 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1236 | 1237 | gensync@1.0.0-beta.2: 1238 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1239 | engines: {node: '>=6.9.0'} 1240 | 1241 | get-intrinsic@1.1.3: 1242 | resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} 1243 | 1244 | get-size@2.0.3: 1245 | resolution: {integrity: sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==} 1246 | 1247 | globals@11.12.0: 1248 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1249 | engines: {node: '>=4'} 1250 | 1251 | gopd@1.0.1: 1252 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1253 | 1254 | graceful-fs@4.2.10: 1255 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1256 | 1257 | has-bigints@1.0.2: 1258 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1259 | 1260 | has-flag@4.0.0: 1261 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1262 | engines: {node: '>=8'} 1263 | 1264 | has-property-descriptors@1.0.0: 1265 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1266 | 1267 | has-symbols@1.0.3: 1268 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1269 | engines: {node: '>= 0.4'} 1270 | 1271 | has-tostringtag@1.0.0: 1272 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1273 | engines: {node: '>= 0.4'} 1274 | 1275 | has@1.0.3: 1276 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1277 | engines: {node: '>= 0.4.0'} 1278 | 1279 | hasown@2.0.2: 1280 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1281 | engines: {node: '>= 0.4'} 1282 | 1283 | hast-util-parse-selector@2.2.5: 1284 | resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} 1285 | 1286 | hastscript@6.0.0: 1287 | resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} 1288 | 1289 | he@1.2.0: 1290 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 1291 | hasBin: true 1292 | 1293 | highlight.js@10.7.3: 1294 | resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} 1295 | 1296 | highlightjs-vue@1.0.0: 1297 | resolution: {integrity: sha512-PDEfEF102G23vHmPhLyPboFCD+BkMGu+GuJe2d9/eH4FsCwvgBpnc9n0pGE+ffKdph38s6foEZiEjdgHdzp+IA==} 1298 | 1299 | html-encoding-sniffer@4.0.0: 1300 | resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 1301 | engines: {node: '>=18'} 1302 | 1303 | http-proxy-agent@7.0.2: 1304 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1305 | engines: {node: '>= 14'} 1306 | 1307 | https-proxy-agent@7.0.6: 1308 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 1309 | engines: {node: '>= 14'} 1310 | 1311 | iconv-lite@0.6.3: 1312 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1313 | engines: {node: '>=0.10.0'} 1314 | 1315 | imagesloaded@4.1.4: 1316 | resolution: {integrity: sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA==} 1317 | 1318 | import-lazy@4.0.0: 1319 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 1320 | engines: {node: '>=8'} 1321 | 1322 | indent-string@4.0.0: 1323 | resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1324 | engines: {node: '>=8'} 1325 | 1326 | is-alphabetical@1.0.4: 1327 | resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} 1328 | 1329 | is-alphanumerical@1.0.4: 1330 | resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} 1331 | 1332 | is-arguments@1.1.1: 1333 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 1334 | engines: {node: '>= 0.4'} 1335 | 1336 | is-bigint@1.0.4: 1337 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1338 | 1339 | is-boolean-object@1.1.2: 1340 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1341 | engines: {node: '>= 0.4'} 1342 | 1343 | is-callable@1.2.7: 1344 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1345 | engines: {node: '>= 0.4'} 1346 | 1347 | is-core-module@2.11.0: 1348 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1349 | 1350 | is-core-module@2.16.1: 1351 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1352 | engines: {node: '>= 0.4'} 1353 | 1354 | is-date-object@1.0.5: 1355 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1356 | engines: {node: '>= 0.4'} 1357 | 1358 | is-decimal@1.0.4: 1359 | resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} 1360 | 1361 | is-hexadecimal@1.0.4: 1362 | resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} 1363 | 1364 | is-map@2.0.2: 1365 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 1366 | 1367 | is-number-object@1.0.7: 1368 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1369 | engines: {node: '>= 0.4'} 1370 | 1371 | is-potential-custom-element-name@1.0.1: 1372 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1373 | 1374 | is-regex@1.1.4: 1375 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1376 | engines: {node: '>= 0.4'} 1377 | 1378 | is-set@2.0.2: 1379 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 1380 | 1381 | is-string@1.0.7: 1382 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1383 | engines: {node: '>= 0.4'} 1384 | 1385 | is-symbol@1.0.4: 1386 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1387 | engines: {node: '>= 0.4'} 1388 | 1389 | is-typed-array@1.1.10: 1390 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 1391 | engines: {node: '>= 0.4'} 1392 | 1393 | is-weakmap@2.0.1: 1394 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 1395 | 1396 | is-weakset@2.0.2: 1397 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 1398 | 1399 | isarray@2.0.5: 1400 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1401 | 1402 | jju@1.4.0: 1403 | resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} 1404 | 1405 | js-tokens@4.0.0: 1406 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1407 | 1408 | jsdom@25.0.1: 1409 | resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} 1410 | engines: {node: '>=18'} 1411 | peerDependencies: 1412 | canvas: ^2.11.2 1413 | peerDependenciesMeta: 1414 | canvas: 1415 | optional: true 1416 | 1417 | jsesc@3.1.0: 1418 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1419 | engines: {node: '>=6'} 1420 | hasBin: true 1421 | 1422 | json-schema-traverse@1.0.0: 1423 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1424 | 1425 | json5@2.2.3: 1426 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1427 | engines: {node: '>=6'} 1428 | hasBin: true 1429 | 1430 | jsonfile@6.1.0: 1431 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1432 | 1433 | kolorist@1.8.0: 1434 | resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 1435 | 1436 | local-pkg@1.1.1: 1437 | resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} 1438 | engines: {node: '>=14'} 1439 | 1440 | lodash@4.17.21: 1441 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1442 | 1443 | loupe@3.1.3: 1444 | resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} 1445 | 1446 | lowlight@1.20.0: 1447 | resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} 1448 | 1449 | lru-cache@10.4.3: 1450 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1451 | 1452 | lru-cache@5.1.1: 1453 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1454 | 1455 | lru-cache@6.0.0: 1456 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1457 | engines: {node: '>=10'} 1458 | 1459 | lz-string@1.4.4: 1460 | resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} 1461 | hasBin: true 1462 | 1463 | magic-string@0.30.17: 1464 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1465 | 1466 | mime-db@1.52.0: 1467 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1468 | engines: {node: '>= 0.6'} 1469 | 1470 | mime-types@2.1.35: 1471 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1472 | engines: {node: '>= 0.6'} 1473 | 1474 | min-indent@1.0.1: 1475 | resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1476 | engines: {node: '>=4'} 1477 | 1478 | minimatch@3.0.8: 1479 | resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} 1480 | 1481 | minimatch@9.0.5: 1482 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1483 | engines: {node: '>=16 || 14 >=14.17'} 1484 | 1485 | mlly@1.7.4: 1486 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 1487 | 1488 | ms@2.1.2: 1489 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1490 | 1491 | ms@2.1.3: 1492 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1493 | 1494 | muggle-string@0.4.1: 1495 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 1496 | 1497 | nanoid@3.3.8: 1498 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1499 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1500 | hasBin: true 1501 | 1502 | node-releases@2.0.19: 1503 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 1504 | 1505 | nwsapi@2.2.20: 1506 | resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} 1507 | 1508 | object-inspect@1.12.2: 1509 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 1510 | 1511 | object-is@1.1.5: 1512 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 1513 | engines: {node: '>= 0.4'} 1514 | 1515 | object-keys@1.1.1: 1516 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1517 | engines: {node: '>= 0.4'} 1518 | 1519 | object.assign@4.1.4: 1520 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 1521 | engines: {node: '>= 0.4'} 1522 | 1523 | parse-entities@2.0.0: 1524 | resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} 1525 | 1526 | parse5@7.1.2: 1527 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 1528 | 1529 | path-browserify@1.0.1: 1530 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 1531 | 1532 | path-parse@1.0.7: 1533 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1534 | 1535 | pathe@1.1.2: 1536 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1537 | 1538 | pathe@2.0.3: 1539 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1540 | 1541 | pathval@2.0.0: 1542 | resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 1543 | engines: {node: '>= 14.16'} 1544 | 1545 | picocolors@1.1.1: 1546 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1547 | 1548 | picomatch@4.0.2: 1549 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1550 | engines: {node: '>=12'} 1551 | 1552 | pkg-types@1.3.1: 1553 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1554 | 1555 | pkg-types@2.1.0: 1556 | resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} 1557 | 1558 | postcss@8.4.49: 1559 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1560 | engines: {node: ^10 || ^12 || >=14} 1561 | 1562 | prettier@3.5.3: 1563 | resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} 1564 | engines: {node: '>=14'} 1565 | hasBin: true 1566 | 1567 | pretty-format@27.5.1: 1568 | resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 1569 | engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 1570 | 1571 | prismjs@1.27.0: 1572 | resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} 1573 | engines: {node: '>=6'} 1574 | 1575 | prismjs@1.30.0: 1576 | resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 1577 | engines: {node: '>=6'} 1578 | 1579 | property-information@5.6.0: 1580 | resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} 1581 | 1582 | punycode@2.1.1: 1583 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 1584 | engines: {node: '>=6'} 1585 | 1586 | punycode@2.3.1: 1587 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1588 | engines: {node: '>=6'} 1589 | 1590 | quansync@0.2.10: 1591 | resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} 1592 | 1593 | react-dom@19.1.0: 1594 | resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} 1595 | peerDependencies: 1596 | react: ^19.1.0 1597 | 1598 | react-is@17.0.2: 1599 | resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 1600 | 1601 | react-refresh@0.14.2: 1602 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} 1603 | engines: {node: '>=0.10.0'} 1604 | 1605 | react-syntax-highlighter@15.6.1: 1606 | resolution: {integrity: sha512-OqJ2/vL7lEeV5zTJyG7kmARppUjiB9h9udl4qHQjjgEos66z00Ia0OckwYfRxCSFrW8RJIBnsBwQsHZbVPspqg==} 1607 | peerDependencies: 1608 | react: '>= 0.14.0' 1609 | 1610 | react@19.1.0: 1611 | resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} 1612 | engines: {node: '>=0.10.0'} 1613 | 1614 | redent@3.0.0: 1615 | resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 1616 | engines: {node: '>=8'} 1617 | 1618 | refractor@3.6.0: 1619 | resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} 1620 | 1621 | regenerator-runtime@0.13.11: 1622 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 1623 | 1624 | regexp.prototype.flags@1.4.3: 1625 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 1626 | engines: {node: '>= 0.4'} 1627 | 1628 | require-from-string@2.0.2: 1629 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1630 | engines: {node: '>=0.10.0'} 1631 | 1632 | resolve@1.22.1: 1633 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 1634 | hasBin: true 1635 | 1636 | resolve@1.22.10: 1637 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1638 | engines: {node: '>= 0.4'} 1639 | hasBin: true 1640 | 1641 | rollup@4.29.1: 1642 | resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==} 1643 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1644 | hasBin: true 1645 | 1646 | rrweb-cssom@0.7.1: 1647 | resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 1648 | 1649 | rrweb-cssom@0.8.0: 1650 | resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 1651 | 1652 | safer-buffer@2.1.2: 1653 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1654 | 1655 | saxes@6.0.0: 1656 | resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1657 | engines: {node: '>=v12.22.7'} 1658 | 1659 | scheduler@0.26.0: 1660 | resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} 1661 | 1662 | semver@6.3.1: 1663 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1664 | hasBin: true 1665 | 1666 | semver@7.5.4: 1667 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1668 | engines: {node: '>=10'} 1669 | hasBin: true 1670 | 1671 | side-channel@1.0.4: 1672 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 1673 | 1674 | siginfo@2.0.0: 1675 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1676 | 1677 | source-map-js@1.2.1: 1678 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1679 | engines: {node: '>=0.10.0'} 1680 | 1681 | source-map@0.6.1: 1682 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1683 | engines: {node: '>=0.10.0'} 1684 | 1685 | space-separated-tokens@1.1.5: 1686 | resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} 1687 | 1688 | sprintf-js@1.0.3: 1689 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1690 | 1691 | stackback@0.0.2: 1692 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1693 | 1694 | std-env@3.9.0: 1695 | resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 1696 | 1697 | string-argv@0.3.2: 1698 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1699 | engines: {node: '>=0.6.19'} 1700 | 1701 | strip-indent@3.0.0: 1702 | resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1703 | engines: {node: '>=8'} 1704 | 1705 | strip-json-comments@3.1.1: 1706 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1707 | engines: {node: '>=8'} 1708 | 1709 | supports-color@7.2.0: 1710 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1711 | engines: {node: '>=8'} 1712 | 1713 | supports-color@8.1.1: 1714 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1715 | engines: {node: '>=10'} 1716 | 1717 | supports-preserve-symlinks-flag@1.0.0: 1718 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1719 | engines: {node: '>= 0.4'} 1720 | 1721 | symbol-tree@3.2.4: 1722 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1723 | 1724 | tinybench@2.9.0: 1725 | resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1726 | 1727 | tinyexec@0.3.2: 1728 | resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1729 | 1730 | tinypool@1.1.0: 1731 | resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} 1732 | engines: {node: ^18.0.0 || >=20.0.0} 1733 | 1734 | tinyrainbow@1.2.0: 1735 | resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} 1736 | engines: {node: '>=14.0.0'} 1737 | 1738 | tinyspy@3.0.2: 1739 | resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} 1740 | engines: {node: '>=14.0.0'} 1741 | 1742 | tldts-core@6.1.86: 1743 | resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} 1744 | 1745 | tldts@6.1.86: 1746 | resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} 1747 | hasBin: true 1748 | 1749 | tough-cookie@5.1.2: 1750 | resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} 1751 | engines: {node: '>=16'} 1752 | 1753 | tr46@5.1.1: 1754 | resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} 1755 | engines: {node: '>=18'} 1756 | 1757 | typescript@5.8.2: 1758 | resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} 1759 | engines: {node: '>=14.17'} 1760 | hasBin: true 1761 | 1762 | typescript@5.8.3: 1763 | resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} 1764 | engines: {node: '>=14.17'} 1765 | hasBin: true 1766 | 1767 | ufo@1.6.1: 1768 | resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 1769 | 1770 | unidragger@2.4.0: 1771 | resolution: {integrity: sha512-MueZK2oXuGE6OAlGKIrSXK2zCq+8yb1QUZgqyTDCSJzvwYL0g2Llrad+TtoQTYxtFnNyxxSw0IMnKNIgEMia1w==} 1772 | 1773 | unipointer@2.4.0: 1774 | resolution: {integrity: sha512-VjzDLPjGK7aYpQKH7bnDZS8X4axF5AFU/LQi+NQe1oyEHfaz6lWKhaQ7n4o7vJ1iJ4i2T0quCIfrQM139p05Sw==} 1775 | 1776 | universalify@2.0.1: 1777 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1778 | engines: {node: '>= 10.0.0'} 1779 | 1780 | update-browserslist-db@1.1.1: 1781 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 1782 | hasBin: true 1783 | peerDependencies: 1784 | browserslist: '>= 4.21.0' 1785 | 1786 | uri-js@4.4.1: 1787 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1788 | 1789 | vite-node@2.1.9: 1790 | resolution: {integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==} 1791 | engines: {node: ^18.0.0 || >=20.0.0} 1792 | hasBin: true 1793 | 1794 | vite-plugin-dts@4.5.4: 1795 | resolution: {integrity: sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg==} 1796 | peerDependencies: 1797 | typescript: '*' 1798 | vite: '*' 1799 | peerDependenciesMeta: 1800 | vite: 1801 | optional: true 1802 | 1803 | vite@5.4.19: 1804 | resolution: {integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==} 1805 | engines: {node: ^18.0.0 || >=20.0.0} 1806 | hasBin: true 1807 | peerDependencies: 1808 | '@types/node': ^18.0.0 || >=20.0.0 1809 | less: '*' 1810 | lightningcss: ^1.21.0 1811 | sass: '*' 1812 | sass-embedded: '*' 1813 | stylus: '*' 1814 | sugarss: '*' 1815 | terser: ^5.4.0 1816 | peerDependenciesMeta: 1817 | '@types/node': 1818 | optional: true 1819 | less: 1820 | optional: true 1821 | lightningcss: 1822 | optional: true 1823 | sass: 1824 | optional: true 1825 | sass-embedded: 1826 | optional: true 1827 | stylus: 1828 | optional: true 1829 | sugarss: 1830 | optional: true 1831 | terser: 1832 | optional: true 1833 | 1834 | vite@6.0.6: 1835 | resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==} 1836 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1837 | hasBin: true 1838 | peerDependencies: 1839 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1840 | jiti: '>=1.21.0' 1841 | less: '*' 1842 | lightningcss: ^1.21.0 1843 | sass: '*' 1844 | sass-embedded: '*' 1845 | stylus: '*' 1846 | sugarss: '*' 1847 | terser: ^5.16.0 1848 | tsx: ^4.8.1 1849 | yaml: ^2.4.2 1850 | peerDependenciesMeta: 1851 | '@types/node': 1852 | optional: true 1853 | jiti: 1854 | optional: true 1855 | less: 1856 | optional: true 1857 | lightningcss: 1858 | optional: true 1859 | sass: 1860 | optional: true 1861 | sass-embedded: 1862 | optional: true 1863 | stylus: 1864 | optional: true 1865 | sugarss: 1866 | optional: true 1867 | terser: 1868 | optional: true 1869 | tsx: 1870 | optional: true 1871 | yaml: 1872 | optional: true 1873 | 1874 | vitest@2.1.9: 1875 | resolution: {integrity: sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==} 1876 | engines: {node: ^18.0.0 || >=20.0.0} 1877 | hasBin: true 1878 | peerDependencies: 1879 | '@edge-runtime/vm': '*' 1880 | '@types/node': ^18.0.0 || >=20.0.0 1881 | '@vitest/browser': 2.1.9 1882 | '@vitest/ui': 2.1.9 1883 | happy-dom: '*' 1884 | jsdom: '*' 1885 | peerDependenciesMeta: 1886 | '@edge-runtime/vm': 1887 | optional: true 1888 | '@types/node': 1889 | optional: true 1890 | '@vitest/browser': 1891 | optional: true 1892 | '@vitest/ui': 1893 | optional: true 1894 | happy-dom: 1895 | optional: true 1896 | jsdom: 1897 | optional: true 1898 | 1899 | vscode-uri@3.1.0: 1900 | resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 1901 | 1902 | w3c-xmlserializer@5.0.0: 1903 | resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1904 | engines: {node: '>=18'} 1905 | 1906 | webidl-conversions@7.0.0: 1907 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1908 | engines: {node: '>=12'} 1909 | 1910 | whatwg-encoding@3.1.1: 1911 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1912 | engines: {node: '>=18'} 1913 | 1914 | whatwg-mimetype@4.0.0: 1915 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1916 | engines: {node: '>=18'} 1917 | 1918 | whatwg-url@14.2.0: 1919 | resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} 1920 | engines: {node: '>=18'} 1921 | 1922 | which-boxed-primitive@1.0.2: 1923 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1924 | 1925 | which-collection@1.0.1: 1926 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 1927 | 1928 | which-typed-array@1.1.9: 1929 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 1930 | engines: {node: '>= 0.4'} 1931 | 1932 | why-is-node-running@2.3.0: 1933 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1934 | engines: {node: '>=8'} 1935 | hasBin: true 1936 | 1937 | ws@8.18.2: 1938 | resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} 1939 | engines: {node: '>=10.0.0'} 1940 | peerDependencies: 1941 | bufferutil: ^4.0.1 1942 | utf-8-validate: '>=5.0.2' 1943 | peerDependenciesMeta: 1944 | bufferutil: 1945 | optional: true 1946 | utf-8-validate: 1947 | optional: true 1948 | 1949 | xml-name-validator@5.0.0: 1950 | resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 1951 | engines: {node: '>=18'} 1952 | 1953 | xmlchars@2.2.0: 1954 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 1955 | 1956 | xtend@4.0.2: 1957 | resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} 1958 | engines: {node: '>=0.4'} 1959 | 1960 | yallist@3.1.1: 1961 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 1962 | 1963 | yallist@4.0.0: 1964 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1965 | 1966 | snapshots: 1967 | 1968 | '@adobe/css-tools@4.4.3': {} 1969 | 1970 | '@ampproject/remapping@2.2.0': 1971 | dependencies: 1972 | '@jridgewell/gen-mapping': 0.1.1 1973 | '@jridgewell/trace-mapping': 0.3.17 1974 | 1975 | '@asamuzakjp/css-color@3.2.0': 1976 | dependencies: 1977 | '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 1978 | '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 1979 | '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 1980 | '@csstools/css-tokenizer': 3.0.4 1981 | lru-cache: 10.4.3 1982 | 1983 | '@babel/code-frame@7.26.2': 1984 | dependencies: 1985 | '@babel/helper-validator-identifier': 7.25.9 1986 | js-tokens: 4.0.0 1987 | picocolors: 1.1.1 1988 | 1989 | '@babel/compat-data@7.26.3': {} 1990 | 1991 | '@babel/core@7.26.0': 1992 | dependencies: 1993 | '@ampproject/remapping': 2.2.0 1994 | '@babel/code-frame': 7.26.2 1995 | '@babel/generator': 7.26.3 1996 | '@babel/helper-compilation-targets': 7.25.9 1997 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) 1998 | '@babel/helpers': 7.26.0 1999 | '@babel/parser': 7.26.3 2000 | '@babel/template': 7.25.9 2001 | '@babel/traverse': 7.26.4 2002 | '@babel/types': 7.26.3 2003 | convert-source-map: 2.0.0 2004 | debug: 4.3.4 2005 | gensync: 1.0.0-beta.2 2006 | json5: 2.2.3 2007 | semver: 6.3.1 2008 | transitivePeerDependencies: 2009 | - supports-color 2010 | 2011 | '@babel/generator@7.26.3': 2012 | dependencies: 2013 | '@babel/parser': 7.26.3 2014 | '@babel/types': 7.26.3 2015 | '@jridgewell/gen-mapping': 0.3.8 2016 | '@jridgewell/trace-mapping': 0.3.25 2017 | jsesc: 3.1.0 2018 | 2019 | '@babel/helper-compilation-targets@7.25.9': 2020 | dependencies: 2021 | '@babel/compat-data': 7.26.3 2022 | '@babel/helper-validator-option': 7.25.9 2023 | browserslist: 4.24.3 2024 | lru-cache: 5.1.1 2025 | semver: 6.3.1 2026 | 2027 | '@babel/helper-module-imports@7.25.9': 2028 | dependencies: 2029 | '@babel/traverse': 7.26.4 2030 | '@babel/types': 7.26.3 2031 | transitivePeerDependencies: 2032 | - supports-color 2033 | 2034 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': 2035 | dependencies: 2036 | '@babel/core': 7.26.0 2037 | '@babel/helper-module-imports': 7.25.9 2038 | '@babel/helper-validator-identifier': 7.25.9 2039 | '@babel/traverse': 7.26.4 2040 | transitivePeerDependencies: 2041 | - supports-color 2042 | 2043 | '@babel/helper-plugin-utils@7.25.9': {} 2044 | 2045 | '@babel/helper-string-parser@7.25.9': {} 2046 | 2047 | '@babel/helper-string-parser@7.27.1': {} 2048 | 2049 | '@babel/helper-validator-identifier@7.25.9': {} 2050 | 2051 | '@babel/helper-validator-identifier@7.27.1': {} 2052 | 2053 | '@babel/helper-validator-option@7.25.9': {} 2054 | 2055 | '@babel/helpers@7.26.0': 2056 | dependencies: 2057 | '@babel/template': 7.25.9 2058 | '@babel/types': 7.26.3 2059 | 2060 | '@babel/parser@7.26.3': 2061 | dependencies: 2062 | '@babel/types': 7.26.3 2063 | 2064 | '@babel/parser@7.27.5': 2065 | dependencies: 2066 | '@babel/types': 7.27.6 2067 | 2068 | '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': 2069 | dependencies: 2070 | '@babel/core': 7.26.0 2071 | '@babel/helper-plugin-utils': 7.25.9 2072 | 2073 | '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': 2074 | dependencies: 2075 | '@babel/core': 7.26.0 2076 | '@babel/helper-plugin-utils': 7.25.9 2077 | 2078 | '@babel/runtime@7.20.6': 2079 | dependencies: 2080 | regenerator-runtime: 0.13.11 2081 | 2082 | '@babel/template@7.25.9': 2083 | dependencies: 2084 | '@babel/code-frame': 7.26.2 2085 | '@babel/parser': 7.26.3 2086 | '@babel/types': 7.26.3 2087 | 2088 | '@babel/traverse@7.26.4': 2089 | dependencies: 2090 | '@babel/code-frame': 7.26.2 2091 | '@babel/generator': 7.26.3 2092 | '@babel/parser': 7.26.3 2093 | '@babel/template': 7.25.9 2094 | '@babel/types': 7.26.3 2095 | debug: 4.3.4 2096 | globals: 11.12.0 2097 | transitivePeerDependencies: 2098 | - supports-color 2099 | 2100 | '@babel/types@7.26.3': 2101 | dependencies: 2102 | '@babel/helper-string-parser': 7.25.9 2103 | '@babel/helper-validator-identifier': 7.25.9 2104 | 2105 | '@babel/types@7.27.6': 2106 | dependencies: 2107 | '@babel/helper-string-parser': 7.27.1 2108 | '@babel/helper-validator-identifier': 7.27.1 2109 | 2110 | '@csstools/color-helpers@5.0.2': {} 2111 | 2112 | '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 2113 | dependencies: 2114 | '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 2115 | '@csstools/css-tokenizer': 3.0.4 2116 | 2117 | '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 2118 | dependencies: 2119 | '@csstools/color-helpers': 5.0.2 2120 | '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 2121 | '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 2122 | '@csstools/css-tokenizer': 3.0.4 2123 | 2124 | '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': 2125 | dependencies: 2126 | '@csstools/css-tokenizer': 3.0.4 2127 | 2128 | '@csstools/css-tokenizer@3.0.4': {} 2129 | 2130 | '@esbuild/aix-ppc64@0.21.5': 2131 | optional: true 2132 | 2133 | '@esbuild/aix-ppc64@0.24.2': 2134 | optional: true 2135 | 2136 | '@esbuild/android-arm64@0.21.5': 2137 | optional: true 2138 | 2139 | '@esbuild/android-arm64@0.24.2': 2140 | optional: true 2141 | 2142 | '@esbuild/android-arm@0.21.5': 2143 | optional: true 2144 | 2145 | '@esbuild/android-arm@0.24.2': 2146 | optional: true 2147 | 2148 | '@esbuild/android-x64@0.21.5': 2149 | optional: true 2150 | 2151 | '@esbuild/android-x64@0.24.2': 2152 | optional: true 2153 | 2154 | '@esbuild/darwin-arm64@0.21.5': 2155 | optional: true 2156 | 2157 | '@esbuild/darwin-arm64@0.24.2': 2158 | optional: true 2159 | 2160 | '@esbuild/darwin-x64@0.21.5': 2161 | optional: true 2162 | 2163 | '@esbuild/darwin-x64@0.24.2': 2164 | optional: true 2165 | 2166 | '@esbuild/freebsd-arm64@0.21.5': 2167 | optional: true 2168 | 2169 | '@esbuild/freebsd-arm64@0.24.2': 2170 | optional: true 2171 | 2172 | '@esbuild/freebsd-x64@0.21.5': 2173 | optional: true 2174 | 2175 | '@esbuild/freebsd-x64@0.24.2': 2176 | optional: true 2177 | 2178 | '@esbuild/linux-arm64@0.21.5': 2179 | optional: true 2180 | 2181 | '@esbuild/linux-arm64@0.24.2': 2182 | optional: true 2183 | 2184 | '@esbuild/linux-arm@0.21.5': 2185 | optional: true 2186 | 2187 | '@esbuild/linux-arm@0.24.2': 2188 | optional: true 2189 | 2190 | '@esbuild/linux-ia32@0.21.5': 2191 | optional: true 2192 | 2193 | '@esbuild/linux-ia32@0.24.2': 2194 | optional: true 2195 | 2196 | '@esbuild/linux-loong64@0.14.54': 2197 | optional: true 2198 | 2199 | '@esbuild/linux-loong64@0.21.5': 2200 | optional: true 2201 | 2202 | '@esbuild/linux-loong64@0.24.2': 2203 | optional: true 2204 | 2205 | '@esbuild/linux-mips64el@0.21.5': 2206 | optional: true 2207 | 2208 | '@esbuild/linux-mips64el@0.24.2': 2209 | optional: true 2210 | 2211 | '@esbuild/linux-ppc64@0.21.5': 2212 | optional: true 2213 | 2214 | '@esbuild/linux-ppc64@0.24.2': 2215 | optional: true 2216 | 2217 | '@esbuild/linux-riscv64@0.21.5': 2218 | optional: true 2219 | 2220 | '@esbuild/linux-riscv64@0.24.2': 2221 | optional: true 2222 | 2223 | '@esbuild/linux-s390x@0.21.5': 2224 | optional: true 2225 | 2226 | '@esbuild/linux-s390x@0.24.2': 2227 | optional: true 2228 | 2229 | '@esbuild/linux-x64@0.21.5': 2230 | optional: true 2231 | 2232 | '@esbuild/linux-x64@0.24.2': 2233 | optional: true 2234 | 2235 | '@esbuild/netbsd-arm64@0.24.2': 2236 | optional: true 2237 | 2238 | '@esbuild/netbsd-x64@0.21.5': 2239 | optional: true 2240 | 2241 | '@esbuild/netbsd-x64@0.24.2': 2242 | optional: true 2243 | 2244 | '@esbuild/openbsd-arm64@0.24.2': 2245 | optional: true 2246 | 2247 | '@esbuild/openbsd-x64@0.21.5': 2248 | optional: true 2249 | 2250 | '@esbuild/openbsd-x64@0.24.2': 2251 | optional: true 2252 | 2253 | '@esbuild/sunos-x64@0.21.5': 2254 | optional: true 2255 | 2256 | '@esbuild/sunos-x64@0.24.2': 2257 | optional: true 2258 | 2259 | '@esbuild/win32-arm64@0.21.5': 2260 | optional: true 2261 | 2262 | '@esbuild/win32-arm64@0.24.2': 2263 | optional: true 2264 | 2265 | '@esbuild/win32-ia32@0.21.5': 2266 | optional: true 2267 | 2268 | '@esbuild/win32-ia32@0.24.2': 2269 | optional: true 2270 | 2271 | '@esbuild/win32-x64@0.21.5': 2272 | optional: true 2273 | 2274 | '@esbuild/win32-x64@0.24.2': 2275 | optional: true 2276 | 2277 | '@jridgewell/gen-mapping@0.1.1': 2278 | dependencies: 2279 | '@jridgewell/set-array': 1.1.2 2280 | '@jridgewell/sourcemap-codec': 1.4.14 2281 | 2282 | '@jridgewell/gen-mapping@0.3.8': 2283 | dependencies: 2284 | '@jridgewell/set-array': 1.2.1 2285 | '@jridgewell/sourcemap-codec': 1.4.14 2286 | '@jridgewell/trace-mapping': 0.3.25 2287 | 2288 | '@jridgewell/resolve-uri@3.1.0': {} 2289 | 2290 | '@jridgewell/set-array@1.1.2': {} 2291 | 2292 | '@jridgewell/set-array@1.2.1': {} 2293 | 2294 | '@jridgewell/sourcemap-codec@1.4.14': {} 2295 | 2296 | '@jridgewell/sourcemap-codec@1.5.0': {} 2297 | 2298 | '@jridgewell/trace-mapping@0.3.17': 2299 | dependencies: 2300 | '@jridgewell/resolve-uri': 3.1.0 2301 | '@jridgewell/sourcemap-codec': 1.4.14 2302 | 2303 | '@jridgewell/trace-mapping@0.3.25': 2304 | dependencies: 2305 | '@jridgewell/resolve-uri': 3.1.0 2306 | '@jridgewell/sourcemap-codec': 1.4.14 2307 | 2308 | '@microsoft/api-extractor-model@7.30.6(@types/node@18.11.13)': 2309 | dependencies: 2310 | '@microsoft/tsdoc': 0.15.1 2311 | '@microsoft/tsdoc-config': 0.17.1 2312 | '@rushstack/node-core-library': 5.13.1(@types/node@18.11.13) 2313 | transitivePeerDependencies: 2314 | - '@types/node' 2315 | 2316 | '@microsoft/api-extractor@7.52.8(@types/node@18.11.13)': 2317 | dependencies: 2318 | '@microsoft/api-extractor-model': 7.30.6(@types/node@18.11.13) 2319 | '@microsoft/tsdoc': 0.15.1 2320 | '@microsoft/tsdoc-config': 0.17.1 2321 | '@rushstack/node-core-library': 5.13.1(@types/node@18.11.13) 2322 | '@rushstack/rig-package': 0.5.3 2323 | '@rushstack/terminal': 0.15.3(@types/node@18.11.13) 2324 | '@rushstack/ts-command-line': 5.0.1(@types/node@18.11.13) 2325 | lodash: 4.17.21 2326 | minimatch: 3.0.8 2327 | resolve: 1.22.1 2328 | semver: 7.5.4 2329 | source-map: 0.6.1 2330 | typescript: 5.8.2 2331 | transitivePeerDependencies: 2332 | - '@types/node' 2333 | 2334 | '@microsoft/tsdoc-config@0.17.1': 2335 | dependencies: 2336 | '@microsoft/tsdoc': 0.15.1 2337 | ajv: 8.12.0 2338 | jju: 1.4.0 2339 | resolve: 1.22.10 2340 | 2341 | '@microsoft/tsdoc@0.15.1': {} 2342 | 2343 | '@originjs/vite-plugin-commonjs@1.0.3': 2344 | dependencies: 2345 | esbuild: 0.14.54 2346 | 2347 | '@rollup/pluginutils@5.1.4(rollup@4.29.1)': 2348 | dependencies: 2349 | '@types/estree': 1.0.6 2350 | estree-walker: 2.0.2 2351 | picomatch: 4.0.2 2352 | optionalDependencies: 2353 | rollup: 4.29.1 2354 | 2355 | '@rollup/rollup-android-arm-eabi@4.29.1': 2356 | optional: true 2357 | 2358 | '@rollup/rollup-android-arm64@4.29.1': 2359 | optional: true 2360 | 2361 | '@rollup/rollup-darwin-arm64@4.29.1': 2362 | optional: true 2363 | 2364 | '@rollup/rollup-darwin-x64@4.29.1': 2365 | optional: true 2366 | 2367 | '@rollup/rollup-freebsd-arm64@4.29.1': 2368 | optional: true 2369 | 2370 | '@rollup/rollup-freebsd-x64@4.29.1': 2371 | optional: true 2372 | 2373 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1': 2374 | optional: true 2375 | 2376 | '@rollup/rollup-linux-arm-musleabihf@4.29.1': 2377 | optional: true 2378 | 2379 | '@rollup/rollup-linux-arm64-gnu@4.29.1': 2380 | optional: true 2381 | 2382 | '@rollup/rollup-linux-arm64-musl@4.29.1': 2383 | optional: true 2384 | 2385 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1': 2386 | optional: true 2387 | 2388 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1': 2389 | optional: true 2390 | 2391 | '@rollup/rollup-linux-riscv64-gnu@4.29.1': 2392 | optional: true 2393 | 2394 | '@rollup/rollup-linux-s390x-gnu@4.29.1': 2395 | optional: true 2396 | 2397 | '@rollup/rollup-linux-x64-gnu@4.29.1': 2398 | optional: true 2399 | 2400 | '@rollup/rollup-linux-x64-musl@4.29.1': 2401 | optional: true 2402 | 2403 | '@rollup/rollup-win32-arm64-msvc@4.29.1': 2404 | optional: true 2405 | 2406 | '@rollup/rollup-win32-ia32-msvc@4.29.1': 2407 | optional: true 2408 | 2409 | '@rollup/rollup-win32-x64-msvc@4.29.1': 2410 | optional: true 2411 | 2412 | '@rushstack/node-core-library@5.13.1(@types/node@18.11.13)': 2413 | dependencies: 2414 | ajv: 8.13.0 2415 | ajv-draft-04: 1.0.0(ajv@8.13.0) 2416 | ajv-formats: 3.0.1(ajv@8.13.0) 2417 | fs-extra: 11.3.0 2418 | import-lazy: 4.0.0 2419 | jju: 1.4.0 2420 | resolve: 1.22.1 2421 | semver: 7.5.4 2422 | optionalDependencies: 2423 | '@types/node': 18.11.13 2424 | 2425 | '@rushstack/rig-package@0.5.3': 2426 | dependencies: 2427 | resolve: 1.22.1 2428 | strip-json-comments: 3.1.1 2429 | 2430 | '@rushstack/terminal@0.15.3(@types/node@18.11.13)': 2431 | dependencies: 2432 | '@rushstack/node-core-library': 5.13.1(@types/node@18.11.13) 2433 | supports-color: 8.1.1 2434 | optionalDependencies: 2435 | '@types/node': 18.11.13 2436 | 2437 | '@rushstack/ts-command-line@5.0.1(@types/node@18.11.13)': 2438 | dependencies: 2439 | '@rushstack/terminal': 0.15.3(@types/node@18.11.13) 2440 | '@types/argparse': 1.0.38 2441 | argparse: 1.0.10 2442 | string-argv: 0.3.2 2443 | transitivePeerDependencies: 2444 | - '@types/node' 2445 | 2446 | '@testing-library/dom@8.19.0': 2447 | dependencies: 2448 | '@babel/code-frame': 7.26.2 2449 | '@babel/runtime': 7.20.6 2450 | '@types/aria-query': 4.2.2 2451 | aria-query: 5.1.3 2452 | chalk: 4.1.2 2453 | dom-accessibility-api: 0.5.14 2454 | lz-string: 1.4.4 2455 | pretty-format: 27.5.1 2456 | 2457 | '@testing-library/jest-dom@6.6.3': 2458 | dependencies: 2459 | '@adobe/css-tools': 4.4.3 2460 | aria-query: 5.1.3 2461 | chalk: 3.0.0 2462 | css.escape: 1.5.1 2463 | dom-accessibility-api: 0.6.3 2464 | lodash: 4.17.21 2465 | redent: 3.0.0 2466 | 2467 | '@testing-library/react@16.3.0(@testing-library/dom@8.19.0)(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': 2468 | dependencies: 2469 | '@babel/runtime': 7.20.6 2470 | '@testing-library/dom': 8.19.0 2471 | react: 19.1.0 2472 | react-dom: 19.1.0(react@19.1.0) 2473 | optionalDependencies: 2474 | '@types/react': 19.1.8 2475 | '@types/react-dom': 19.1.6(@types/react@19.1.8) 2476 | 2477 | '@types/argparse@1.0.38': {} 2478 | 2479 | '@types/aria-query@4.2.2': {} 2480 | 2481 | '@types/babel__core@7.20.5': 2482 | dependencies: 2483 | '@babel/parser': 7.26.3 2484 | '@babel/types': 7.26.3 2485 | '@types/babel__generator': 7.6.8 2486 | '@types/babel__template': 7.4.4 2487 | '@types/babel__traverse': 7.20.6 2488 | 2489 | '@types/babel__generator@7.6.8': 2490 | dependencies: 2491 | '@babel/types': 7.26.3 2492 | 2493 | '@types/babel__template@7.4.4': 2494 | dependencies: 2495 | '@babel/parser': 7.26.3 2496 | '@babel/types': 7.26.3 2497 | 2498 | '@types/babel__traverse@7.20.6': 2499 | dependencies: 2500 | '@babel/types': 7.26.3 2501 | 2502 | '@types/estree@1.0.6': {} 2503 | 2504 | '@types/flickity@2.2.11': {} 2505 | 2506 | '@types/hast@2.3.10': 2507 | dependencies: 2508 | '@types/unist': 2.0.11 2509 | 2510 | '@types/imagesloaded@4.1.7': 2511 | dependencies: 2512 | '@types/jquery': 3.5.32 2513 | 2514 | '@types/jquery@3.5.32': 2515 | dependencies: 2516 | '@types/sizzle': 2.3.9 2517 | 2518 | '@types/node@18.11.13': 2519 | optional: true 2520 | 2521 | '@types/react-dom@19.1.6(@types/react@19.1.8)': 2522 | dependencies: 2523 | '@types/react': 19.1.8 2524 | 2525 | '@types/react-syntax-highlighter@15.5.13': 2526 | dependencies: 2527 | '@types/react': 19.1.8 2528 | 2529 | '@types/react@19.1.8': 2530 | dependencies: 2531 | csstype: 3.1.1 2532 | 2533 | '@types/sizzle@2.3.9': {} 2534 | 2535 | '@types/unist@2.0.11': {} 2536 | 2537 | '@vitejs/plugin-react@4.3.4(vite@6.0.6(@types/node@18.11.13))': 2538 | dependencies: 2539 | '@babel/core': 7.26.0 2540 | '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) 2541 | '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) 2542 | '@types/babel__core': 7.20.5 2543 | react-refresh: 0.14.2 2544 | vite: 6.0.6(@types/node@18.11.13) 2545 | transitivePeerDependencies: 2546 | - supports-color 2547 | 2548 | '@vitest/expect@2.1.9': 2549 | dependencies: 2550 | '@vitest/spy': 2.1.9 2551 | '@vitest/utils': 2.1.9 2552 | chai: 5.2.0 2553 | tinyrainbow: 1.2.0 2554 | 2555 | '@vitest/mocker@2.1.9(vite@5.4.19(@types/node@18.11.13))': 2556 | dependencies: 2557 | '@vitest/spy': 2.1.9 2558 | estree-walker: 3.0.3 2559 | magic-string: 0.30.17 2560 | optionalDependencies: 2561 | vite: 5.4.19(@types/node@18.11.13) 2562 | 2563 | '@vitest/pretty-format@2.1.9': 2564 | dependencies: 2565 | tinyrainbow: 1.2.0 2566 | 2567 | '@vitest/runner@2.1.9': 2568 | dependencies: 2569 | '@vitest/utils': 2.1.9 2570 | pathe: 1.1.2 2571 | 2572 | '@vitest/snapshot@2.1.9': 2573 | dependencies: 2574 | '@vitest/pretty-format': 2.1.9 2575 | magic-string: 0.30.17 2576 | pathe: 1.1.2 2577 | 2578 | '@vitest/spy@2.1.9': 2579 | dependencies: 2580 | tinyspy: 3.0.2 2581 | 2582 | '@vitest/utils@2.1.9': 2583 | dependencies: 2584 | '@vitest/pretty-format': 2.1.9 2585 | loupe: 3.1.3 2586 | tinyrainbow: 1.2.0 2587 | 2588 | '@volar/language-core@2.4.14': 2589 | dependencies: 2590 | '@volar/source-map': 2.4.14 2591 | 2592 | '@volar/source-map@2.4.14': {} 2593 | 2594 | '@volar/typescript@2.4.14': 2595 | dependencies: 2596 | '@volar/language-core': 2.4.14 2597 | path-browserify: 1.0.1 2598 | vscode-uri: 3.1.0 2599 | 2600 | '@vue/compiler-core@3.5.16': 2601 | dependencies: 2602 | '@babel/parser': 7.27.5 2603 | '@vue/shared': 3.5.16 2604 | entities: 4.5.0 2605 | estree-walker: 2.0.2 2606 | source-map-js: 1.2.1 2607 | 2608 | '@vue/compiler-dom@3.5.16': 2609 | dependencies: 2610 | '@vue/compiler-core': 3.5.16 2611 | '@vue/shared': 3.5.16 2612 | 2613 | '@vue/compiler-vue2@2.7.16': 2614 | dependencies: 2615 | de-indent: 1.0.2 2616 | he: 1.2.0 2617 | 2618 | '@vue/language-core@2.2.0(typescript@5.8.3)': 2619 | dependencies: 2620 | '@volar/language-core': 2.4.14 2621 | '@vue/compiler-dom': 3.5.16 2622 | '@vue/compiler-vue2': 2.7.16 2623 | '@vue/shared': 3.5.16 2624 | alien-signals: 0.4.14 2625 | minimatch: 9.0.5 2626 | muggle-string: 0.4.1 2627 | path-browserify: 1.0.1 2628 | optionalDependencies: 2629 | typescript: 5.8.3 2630 | 2631 | '@vue/shared@3.5.16': {} 2632 | 2633 | acorn@8.15.0: {} 2634 | 2635 | agent-base@7.1.3: {} 2636 | 2637 | ajv-draft-04@1.0.0(ajv@8.13.0): 2638 | optionalDependencies: 2639 | ajv: 8.13.0 2640 | 2641 | ajv-formats@3.0.1(ajv@8.13.0): 2642 | optionalDependencies: 2643 | ajv: 8.13.0 2644 | 2645 | ajv@8.12.0: 2646 | dependencies: 2647 | fast-deep-equal: 3.1.3 2648 | json-schema-traverse: 1.0.0 2649 | require-from-string: 2.0.2 2650 | uri-js: 4.4.1 2651 | 2652 | ajv@8.13.0: 2653 | dependencies: 2654 | fast-deep-equal: 3.1.3 2655 | json-schema-traverse: 1.0.0 2656 | require-from-string: 2.0.2 2657 | uri-js: 4.4.1 2658 | 2659 | alien-signals@0.4.14: {} 2660 | 2661 | ansi-regex@5.0.1: {} 2662 | 2663 | ansi-styles@4.3.0: 2664 | dependencies: 2665 | color-convert: 2.0.1 2666 | 2667 | ansi-styles@5.2.0: {} 2668 | 2669 | argparse@1.0.10: 2670 | dependencies: 2671 | sprintf-js: 1.0.3 2672 | 2673 | aria-query@5.1.3: 2674 | dependencies: 2675 | deep-equal: 2.1.0 2676 | 2677 | assertion-error@2.0.1: {} 2678 | 2679 | asynckit@0.4.0: {} 2680 | 2681 | available-typed-arrays@1.0.5: {} 2682 | 2683 | balanced-match@1.0.2: {} 2684 | 2685 | brace-expansion@1.1.12: 2686 | dependencies: 2687 | balanced-match: 1.0.2 2688 | concat-map: 0.0.1 2689 | 2690 | brace-expansion@2.0.2: 2691 | dependencies: 2692 | balanced-match: 1.0.2 2693 | 2694 | browserslist@4.24.3: 2695 | dependencies: 2696 | caniuse-lite: 1.0.30001690 2697 | electron-to-chromium: 1.5.76 2698 | node-releases: 2.0.19 2699 | update-browserslist-db: 1.1.1(browserslist@4.24.3) 2700 | 2701 | cac@6.7.14: {} 2702 | 2703 | call-bind@1.0.2: 2704 | dependencies: 2705 | function-bind: 1.1.1 2706 | get-intrinsic: 1.1.3 2707 | 2708 | caniuse-lite@1.0.30001690: {} 2709 | 2710 | chai@5.2.0: 2711 | dependencies: 2712 | assertion-error: 2.0.1 2713 | check-error: 2.1.1 2714 | deep-eql: 5.0.2 2715 | loupe: 3.1.3 2716 | pathval: 2.0.0 2717 | 2718 | chalk@3.0.0: 2719 | dependencies: 2720 | ansi-styles: 4.3.0 2721 | supports-color: 7.2.0 2722 | 2723 | chalk@4.1.2: 2724 | dependencies: 2725 | ansi-styles: 4.3.0 2726 | supports-color: 7.2.0 2727 | 2728 | character-entities-legacy@1.1.4: {} 2729 | 2730 | character-entities@1.2.4: {} 2731 | 2732 | character-reference-invalid@1.1.4: {} 2733 | 2734 | check-error@2.1.1: {} 2735 | 2736 | color-convert@2.0.1: 2737 | dependencies: 2738 | color-name: 1.1.4 2739 | 2740 | color-name@1.1.4: {} 2741 | 2742 | combined-stream@1.0.8: 2743 | dependencies: 2744 | delayed-stream: 1.0.0 2745 | 2746 | comma-separated-tokens@1.0.8: {} 2747 | 2748 | compare-versions@6.1.1: {} 2749 | 2750 | concat-map@0.0.1: {} 2751 | 2752 | confbox@0.1.8: {} 2753 | 2754 | confbox@0.2.2: {} 2755 | 2756 | convert-source-map@2.0.0: {} 2757 | 2758 | css.escape@1.5.1: {} 2759 | 2760 | cssstyle@4.4.0: 2761 | dependencies: 2762 | '@asamuzakjp/css-color': 3.2.0 2763 | rrweb-cssom: 0.8.0 2764 | 2765 | csstype@3.1.1: {} 2766 | 2767 | data-urls@5.0.0: 2768 | dependencies: 2769 | whatwg-mimetype: 4.0.0 2770 | whatwg-url: 14.2.0 2771 | 2772 | de-indent@1.0.2: {} 2773 | 2774 | debug@4.3.4: 2775 | dependencies: 2776 | ms: 2.1.2 2777 | 2778 | debug@4.4.1: 2779 | dependencies: 2780 | ms: 2.1.3 2781 | 2782 | decimal.js@10.4.3: {} 2783 | 2784 | deep-eql@5.0.2: {} 2785 | 2786 | deep-equal@2.1.0: 2787 | dependencies: 2788 | call-bind: 1.0.2 2789 | es-get-iterator: 1.1.2 2790 | get-intrinsic: 1.1.3 2791 | is-arguments: 1.1.1 2792 | is-date-object: 1.0.5 2793 | is-regex: 1.1.4 2794 | isarray: 2.0.5 2795 | object-is: 1.1.5 2796 | object-keys: 1.1.1 2797 | object.assign: 4.1.4 2798 | regexp.prototype.flags: 1.4.3 2799 | side-channel: 1.0.4 2800 | which-boxed-primitive: 1.0.2 2801 | which-collection: 1.0.1 2802 | which-typed-array: 1.1.9 2803 | 2804 | define-properties@1.1.4: 2805 | dependencies: 2806 | has-property-descriptors: 1.0.0 2807 | object-keys: 1.1.1 2808 | 2809 | delayed-stream@1.0.0: {} 2810 | 2811 | desandro-matches-selector@2.0.2: {} 2812 | 2813 | dom-accessibility-api@0.5.14: {} 2814 | 2815 | dom-accessibility-api@0.6.3: {} 2816 | 2817 | electron-to-chromium@1.5.76: {} 2818 | 2819 | entities@4.4.0: {} 2820 | 2821 | entities@4.5.0: {} 2822 | 2823 | es-get-iterator@1.1.2: 2824 | dependencies: 2825 | call-bind: 1.0.2 2826 | get-intrinsic: 1.1.3 2827 | has-symbols: 1.0.3 2828 | is-arguments: 1.1.1 2829 | is-map: 2.0.2 2830 | is-set: 2.0.2 2831 | is-string: 1.0.7 2832 | isarray: 2.0.5 2833 | 2834 | es-module-lexer@1.7.0: {} 2835 | 2836 | esbuild-android-64@0.14.54: 2837 | optional: true 2838 | 2839 | esbuild-android-arm64@0.14.54: 2840 | optional: true 2841 | 2842 | esbuild-darwin-64@0.14.54: 2843 | optional: true 2844 | 2845 | esbuild-darwin-arm64@0.14.54: 2846 | optional: true 2847 | 2848 | esbuild-freebsd-64@0.14.54: 2849 | optional: true 2850 | 2851 | esbuild-freebsd-arm64@0.14.54: 2852 | optional: true 2853 | 2854 | esbuild-linux-32@0.14.54: 2855 | optional: true 2856 | 2857 | esbuild-linux-64@0.14.54: 2858 | optional: true 2859 | 2860 | esbuild-linux-arm64@0.14.54: 2861 | optional: true 2862 | 2863 | esbuild-linux-arm@0.14.54: 2864 | optional: true 2865 | 2866 | esbuild-linux-mips64le@0.14.54: 2867 | optional: true 2868 | 2869 | esbuild-linux-ppc64le@0.14.54: 2870 | optional: true 2871 | 2872 | esbuild-linux-riscv64@0.14.54: 2873 | optional: true 2874 | 2875 | esbuild-linux-s390x@0.14.54: 2876 | optional: true 2877 | 2878 | esbuild-netbsd-64@0.14.54: 2879 | optional: true 2880 | 2881 | esbuild-openbsd-64@0.14.54: 2882 | optional: true 2883 | 2884 | esbuild-sunos-64@0.14.54: 2885 | optional: true 2886 | 2887 | esbuild-windows-32@0.14.54: 2888 | optional: true 2889 | 2890 | esbuild-windows-64@0.14.54: 2891 | optional: true 2892 | 2893 | esbuild-windows-arm64@0.14.54: 2894 | optional: true 2895 | 2896 | esbuild@0.14.54: 2897 | optionalDependencies: 2898 | '@esbuild/linux-loong64': 0.14.54 2899 | esbuild-android-64: 0.14.54 2900 | esbuild-android-arm64: 0.14.54 2901 | esbuild-darwin-64: 0.14.54 2902 | esbuild-darwin-arm64: 0.14.54 2903 | esbuild-freebsd-64: 0.14.54 2904 | esbuild-freebsd-arm64: 0.14.54 2905 | esbuild-linux-32: 0.14.54 2906 | esbuild-linux-64: 0.14.54 2907 | esbuild-linux-arm: 0.14.54 2908 | esbuild-linux-arm64: 0.14.54 2909 | esbuild-linux-mips64le: 0.14.54 2910 | esbuild-linux-ppc64le: 0.14.54 2911 | esbuild-linux-riscv64: 0.14.54 2912 | esbuild-linux-s390x: 0.14.54 2913 | esbuild-netbsd-64: 0.14.54 2914 | esbuild-openbsd-64: 0.14.54 2915 | esbuild-sunos-64: 0.14.54 2916 | esbuild-windows-32: 0.14.54 2917 | esbuild-windows-64: 0.14.54 2918 | esbuild-windows-arm64: 0.14.54 2919 | 2920 | esbuild@0.21.5: 2921 | optionalDependencies: 2922 | '@esbuild/aix-ppc64': 0.21.5 2923 | '@esbuild/android-arm': 0.21.5 2924 | '@esbuild/android-arm64': 0.21.5 2925 | '@esbuild/android-x64': 0.21.5 2926 | '@esbuild/darwin-arm64': 0.21.5 2927 | '@esbuild/darwin-x64': 0.21.5 2928 | '@esbuild/freebsd-arm64': 0.21.5 2929 | '@esbuild/freebsd-x64': 0.21.5 2930 | '@esbuild/linux-arm': 0.21.5 2931 | '@esbuild/linux-arm64': 0.21.5 2932 | '@esbuild/linux-ia32': 0.21.5 2933 | '@esbuild/linux-loong64': 0.21.5 2934 | '@esbuild/linux-mips64el': 0.21.5 2935 | '@esbuild/linux-ppc64': 0.21.5 2936 | '@esbuild/linux-riscv64': 0.21.5 2937 | '@esbuild/linux-s390x': 0.21.5 2938 | '@esbuild/linux-x64': 0.21.5 2939 | '@esbuild/netbsd-x64': 0.21.5 2940 | '@esbuild/openbsd-x64': 0.21.5 2941 | '@esbuild/sunos-x64': 0.21.5 2942 | '@esbuild/win32-arm64': 0.21.5 2943 | '@esbuild/win32-ia32': 0.21.5 2944 | '@esbuild/win32-x64': 0.21.5 2945 | 2946 | esbuild@0.24.2: 2947 | optionalDependencies: 2948 | '@esbuild/aix-ppc64': 0.24.2 2949 | '@esbuild/android-arm': 0.24.2 2950 | '@esbuild/android-arm64': 0.24.2 2951 | '@esbuild/android-x64': 0.24.2 2952 | '@esbuild/darwin-arm64': 0.24.2 2953 | '@esbuild/darwin-x64': 0.24.2 2954 | '@esbuild/freebsd-arm64': 0.24.2 2955 | '@esbuild/freebsd-x64': 0.24.2 2956 | '@esbuild/linux-arm': 0.24.2 2957 | '@esbuild/linux-arm64': 0.24.2 2958 | '@esbuild/linux-ia32': 0.24.2 2959 | '@esbuild/linux-loong64': 0.24.2 2960 | '@esbuild/linux-mips64el': 0.24.2 2961 | '@esbuild/linux-ppc64': 0.24.2 2962 | '@esbuild/linux-riscv64': 0.24.2 2963 | '@esbuild/linux-s390x': 0.24.2 2964 | '@esbuild/linux-x64': 0.24.2 2965 | '@esbuild/netbsd-arm64': 0.24.2 2966 | '@esbuild/netbsd-x64': 0.24.2 2967 | '@esbuild/openbsd-arm64': 0.24.2 2968 | '@esbuild/openbsd-x64': 0.24.2 2969 | '@esbuild/sunos-x64': 0.24.2 2970 | '@esbuild/win32-arm64': 0.24.2 2971 | '@esbuild/win32-ia32': 0.24.2 2972 | '@esbuild/win32-x64': 0.24.2 2973 | 2974 | escalade@3.2.0: {} 2975 | 2976 | estree-walker@2.0.2: {} 2977 | 2978 | estree-walker@3.0.3: 2979 | dependencies: 2980 | '@types/estree': 1.0.6 2981 | 2982 | ev-emitter@1.1.1: {} 2983 | 2984 | expect-type@1.2.1: {} 2985 | 2986 | exsolve@1.0.5: {} 2987 | 2988 | fast-deep-equal@3.1.3: {} 2989 | 2990 | fault@1.0.4: 2991 | dependencies: 2992 | format: 0.2.2 2993 | 2994 | fizzy-ui-utils@2.0.7: 2995 | dependencies: 2996 | desandro-matches-selector: 2.0.2 2997 | 2998 | flickity@2.3.0: 2999 | dependencies: 3000 | desandro-matches-selector: 2.0.2 3001 | ev-emitter: 1.1.1 3002 | fizzy-ui-utils: 2.0.7 3003 | get-size: 2.0.3 3004 | unidragger: 2.4.0 3005 | unipointer: 2.4.0 3006 | 3007 | for-each@0.3.3: 3008 | dependencies: 3009 | is-callable: 1.2.7 3010 | 3011 | form-data@4.0.0: 3012 | dependencies: 3013 | asynckit: 0.4.0 3014 | combined-stream: 1.0.8 3015 | mime-types: 2.1.35 3016 | 3017 | format@0.2.2: {} 3018 | 3019 | fs-extra@11.3.0: 3020 | dependencies: 3021 | graceful-fs: 4.2.10 3022 | jsonfile: 6.1.0 3023 | universalify: 2.0.1 3024 | 3025 | fsevents@2.3.3: 3026 | optional: true 3027 | 3028 | function-bind@1.1.1: {} 3029 | 3030 | function-bind@1.1.2: {} 3031 | 3032 | functions-have-names@1.2.3: {} 3033 | 3034 | gensync@1.0.0-beta.2: {} 3035 | 3036 | get-intrinsic@1.1.3: 3037 | dependencies: 3038 | function-bind: 1.1.1 3039 | has: 1.0.3 3040 | has-symbols: 1.0.3 3041 | 3042 | get-size@2.0.3: {} 3043 | 3044 | globals@11.12.0: {} 3045 | 3046 | gopd@1.0.1: 3047 | dependencies: 3048 | get-intrinsic: 1.1.3 3049 | 3050 | graceful-fs@4.2.10: {} 3051 | 3052 | has-bigints@1.0.2: {} 3053 | 3054 | has-flag@4.0.0: {} 3055 | 3056 | has-property-descriptors@1.0.0: 3057 | dependencies: 3058 | get-intrinsic: 1.1.3 3059 | 3060 | has-symbols@1.0.3: {} 3061 | 3062 | has-tostringtag@1.0.0: 3063 | dependencies: 3064 | has-symbols: 1.0.3 3065 | 3066 | has@1.0.3: 3067 | dependencies: 3068 | function-bind: 1.1.1 3069 | 3070 | hasown@2.0.2: 3071 | dependencies: 3072 | function-bind: 1.1.2 3073 | 3074 | hast-util-parse-selector@2.2.5: {} 3075 | 3076 | hastscript@6.0.0: 3077 | dependencies: 3078 | '@types/hast': 2.3.10 3079 | comma-separated-tokens: 1.0.8 3080 | hast-util-parse-selector: 2.2.5 3081 | property-information: 5.6.0 3082 | space-separated-tokens: 1.1.5 3083 | 3084 | he@1.2.0: {} 3085 | 3086 | highlight.js@10.7.3: {} 3087 | 3088 | highlightjs-vue@1.0.0: {} 3089 | 3090 | html-encoding-sniffer@4.0.0: 3091 | dependencies: 3092 | whatwg-encoding: 3.1.1 3093 | 3094 | http-proxy-agent@7.0.2: 3095 | dependencies: 3096 | agent-base: 7.1.3 3097 | debug: 4.3.4 3098 | transitivePeerDependencies: 3099 | - supports-color 3100 | 3101 | https-proxy-agent@7.0.6: 3102 | dependencies: 3103 | agent-base: 7.1.3 3104 | debug: 4.3.4 3105 | transitivePeerDependencies: 3106 | - supports-color 3107 | 3108 | iconv-lite@0.6.3: 3109 | dependencies: 3110 | safer-buffer: 2.1.2 3111 | 3112 | imagesloaded@4.1.4: 3113 | dependencies: 3114 | ev-emitter: 1.1.1 3115 | 3116 | import-lazy@4.0.0: {} 3117 | 3118 | indent-string@4.0.0: {} 3119 | 3120 | is-alphabetical@1.0.4: {} 3121 | 3122 | is-alphanumerical@1.0.4: 3123 | dependencies: 3124 | is-alphabetical: 1.0.4 3125 | is-decimal: 1.0.4 3126 | 3127 | is-arguments@1.1.1: 3128 | dependencies: 3129 | call-bind: 1.0.2 3130 | has-tostringtag: 1.0.0 3131 | 3132 | is-bigint@1.0.4: 3133 | dependencies: 3134 | has-bigints: 1.0.2 3135 | 3136 | is-boolean-object@1.1.2: 3137 | dependencies: 3138 | call-bind: 1.0.2 3139 | has-tostringtag: 1.0.0 3140 | 3141 | is-callable@1.2.7: {} 3142 | 3143 | is-core-module@2.11.0: 3144 | dependencies: 3145 | has: 1.0.3 3146 | 3147 | is-core-module@2.16.1: 3148 | dependencies: 3149 | hasown: 2.0.2 3150 | 3151 | is-date-object@1.0.5: 3152 | dependencies: 3153 | has-tostringtag: 1.0.0 3154 | 3155 | is-decimal@1.0.4: {} 3156 | 3157 | is-hexadecimal@1.0.4: {} 3158 | 3159 | is-map@2.0.2: {} 3160 | 3161 | is-number-object@1.0.7: 3162 | dependencies: 3163 | has-tostringtag: 1.0.0 3164 | 3165 | is-potential-custom-element-name@1.0.1: {} 3166 | 3167 | is-regex@1.1.4: 3168 | dependencies: 3169 | call-bind: 1.0.2 3170 | has-tostringtag: 1.0.0 3171 | 3172 | is-set@2.0.2: {} 3173 | 3174 | is-string@1.0.7: 3175 | dependencies: 3176 | has-tostringtag: 1.0.0 3177 | 3178 | is-symbol@1.0.4: 3179 | dependencies: 3180 | has-symbols: 1.0.3 3181 | 3182 | is-typed-array@1.1.10: 3183 | dependencies: 3184 | available-typed-arrays: 1.0.5 3185 | call-bind: 1.0.2 3186 | for-each: 0.3.3 3187 | gopd: 1.0.1 3188 | has-tostringtag: 1.0.0 3189 | 3190 | is-weakmap@2.0.1: {} 3191 | 3192 | is-weakset@2.0.2: 3193 | dependencies: 3194 | call-bind: 1.0.2 3195 | get-intrinsic: 1.1.3 3196 | 3197 | isarray@2.0.5: {} 3198 | 3199 | jju@1.4.0: {} 3200 | 3201 | js-tokens@4.0.0: {} 3202 | 3203 | jsdom@25.0.1: 3204 | dependencies: 3205 | cssstyle: 4.4.0 3206 | data-urls: 5.0.0 3207 | decimal.js: 10.4.3 3208 | form-data: 4.0.0 3209 | html-encoding-sniffer: 4.0.0 3210 | http-proxy-agent: 7.0.2 3211 | https-proxy-agent: 7.0.6 3212 | is-potential-custom-element-name: 1.0.1 3213 | nwsapi: 2.2.20 3214 | parse5: 7.1.2 3215 | rrweb-cssom: 0.7.1 3216 | saxes: 6.0.0 3217 | symbol-tree: 3.2.4 3218 | tough-cookie: 5.1.2 3219 | w3c-xmlserializer: 5.0.0 3220 | webidl-conversions: 7.0.0 3221 | whatwg-encoding: 3.1.1 3222 | whatwg-mimetype: 4.0.0 3223 | whatwg-url: 14.2.0 3224 | ws: 8.18.2 3225 | xml-name-validator: 5.0.0 3226 | transitivePeerDependencies: 3227 | - bufferutil 3228 | - supports-color 3229 | - utf-8-validate 3230 | 3231 | jsesc@3.1.0: {} 3232 | 3233 | json-schema-traverse@1.0.0: {} 3234 | 3235 | json5@2.2.3: {} 3236 | 3237 | jsonfile@6.1.0: 3238 | dependencies: 3239 | universalify: 2.0.1 3240 | optionalDependencies: 3241 | graceful-fs: 4.2.10 3242 | 3243 | kolorist@1.8.0: {} 3244 | 3245 | local-pkg@1.1.1: 3246 | dependencies: 3247 | mlly: 1.7.4 3248 | pkg-types: 2.1.0 3249 | quansync: 0.2.10 3250 | 3251 | lodash@4.17.21: {} 3252 | 3253 | loupe@3.1.3: {} 3254 | 3255 | lowlight@1.20.0: 3256 | dependencies: 3257 | fault: 1.0.4 3258 | highlight.js: 10.7.3 3259 | 3260 | lru-cache@10.4.3: {} 3261 | 3262 | lru-cache@5.1.1: 3263 | dependencies: 3264 | yallist: 3.1.1 3265 | 3266 | lru-cache@6.0.0: 3267 | dependencies: 3268 | yallist: 4.0.0 3269 | 3270 | lz-string@1.4.4: {} 3271 | 3272 | magic-string@0.30.17: 3273 | dependencies: 3274 | '@jridgewell/sourcemap-codec': 1.5.0 3275 | 3276 | mime-db@1.52.0: {} 3277 | 3278 | mime-types@2.1.35: 3279 | dependencies: 3280 | mime-db: 1.52.0 3281 | 3282 | min-indent@1.0.1: {} 3283 | 3284 | minimatch@3.0.8: 3285 | dependencies: 3286 | brace-expansion: 1.1.12 3287 | 3288 | minimatch@9.0.5: 3289 | dependencies: 3290 | brace-expansion: 2.0.2 3291 | 3292 | mlly@1.7.4: 3293 | dependencies: 3294 | acorn: 8.15.0 3295 | pathe: 2.0.3 3296 | pkg-types: 1.3.1 3297 | ufo: 1.6.1 3298 | 3299 | ms@2.1.2: {} 3300 | 3301 | ms@2.1.3: {} 3302 | 3303 | muggle-string@0.4.1: {} 3304 | 3305 | nanoid@3.3.8: {} 3306 | 3307 | node-releases@2.0.19: {} 3308 | 3309 | nwsapi@2.2.20: {} 3310 | 3311 | object-inspect@1.12.2: {} 3312 | 3313 | object-is@1.1.5: 3314 | dependencies: 3315 | call-bind: 1.0.2 3316 | define-properties: 1.1.4 3317 | 3318 | object-keys@1.1.1: {} 3319 | 3320 | object.assign@4.1.4: 3321 | dependencies: 3322 | call-bind: 1.0.2 3323 | define-properties: 1.1.4 3324 | has-symbols: 1.0.3 3325 | object-keys: 1.1.1 3326 | 3327 | parse-entities@2.0.0: 3328 | dependencies: 3329 | character-entities: 1.2.4 3330 | character-entities-legacy: 1.1.4 3331 | character-reference-invalid: 1.1.4 3332 | is-alphanumerical: 1.0.4 3333 | is-decimal: 1.0.4 3334 | is-hexadecimal: 1.0.4 3335 | 3336 | parse5@7.1.2: 3337 | dependencies: 3338 | entities: 4.4.0 3339 | 3340 | path-browserify@1.0.1: {} 3341 | 3342 | path-parse@1.0.7: {} 3343 | 3344 | pathe@1.1.2: {} 3345 | 3346 | pathe@2.0.3: {} 3347 | 3348 | pathval@2.0.0: {} 3349 | 3350 | picocolors@1.1.1: {} 3351 | 3352 | picomatch@4.0.2: {} 3353 | 3354 | pkg-types@1.3.1: 3355 | dependencies: 3356 | confbox: 0.1.8 3357 | mlly: 1.7.4 3358 | pathe: 2.0.3 3359 | 3360 | pkg-types@2.1.0: 3361 | dependencies: 3362 | confbox: 0.2.2 3363 | exsolve: 1.0.5 3364 | pathe: 2.0.3 3365 | 3366 | postcss@8.4.49: 3367 | dependencies: 3368 | nanoid: 3.3.8 3369 | picocolors: 1.1.1 3370 | source-map-js: 1.2.1 3371 | 3372 | prettier@3.5.3: {} 3373 | 3374 | pretty-format@27.5.1: 3375 | dependencies: 3376 | ansi-regex: 5.0.1 3377 | ansi-styles: 5.2.0 3378 | react-is: 17.0.2 3379 | 3380 | prismjs@1.27.0: {} 3381 | 3382 | prismjs@1.30.0: {} 3383 | 3384 | property-information@5.6.0: 3385 | dependencies: 3386 | xtend: 4.0.2 3387 | 3388 | punycode@2.1.1: {} 3389 | 3390 | punycode@2.3.1: {} 3391 | 3392 | quansync@0.2.10: {} 3393 | 3394 | react-dom@19.1.0(react@19.1.0): 3395 | dependencies: 3396 | react: 19.1.0 3397 | scheduler: 0.26.0 3398 | 3399 | react-is@17.0.2: {} 3400 | 3401 | react-refresh@0.14.2: {} 3402 | 3403 | react-syntax-highlighter@15.6.1(react@19.1.0): 3404 | dependencies: 3405 | '@babel/runtime': 7.20.6 3406 | highlight.js: 10.7.3 3407 | highlightjs-vue: 1.0.0 3408 | lowlight: 1.20.0 3409 | prismjs: 1.30.0 3410 | react: 19.1.0 3411 | refractor: 3.6.0 3412 | 3413 | react@19.1.0: {} 3414 | 3415 | redent@3.0.0: 3416 | dependencies: 3417 | indent-string: 4.0.0 3418 | strip-indent: 3.0.0 3419 | 3420 | refractor@3.6.0: 3421 | dependencies: 3422 | hastscript: 6.0.0 3423 | parse-entities: 2.0.0 3424 | prismjs: 1.27.0 3425 | 3426 | regenerator-runtime@0.13.11: {} 3427 | 3428 | regexp.prototype.flags@1.4.3: 3429 | dependencies: 3430 | call-bind: 1.0.2 3431 | define-properties: 1.1.4 3432 | functions-have-names: 1.2.3 3433 | 3434 | require-from-string@2.0.2: {} 3435 | 3436 | resolve@1.22.1: 3437 | dependencies: 3438 | is-core-module: 2.11.0 3439 | path-parse: 1.0.7 3440 | supports-preserve-symlinks-flag: 1.0.0 3441 | 3442 | resolve@1.22.10: 3443 | dependencies: 3444 | is-core-module: 2.16.1 3445 | path-parse: 1.0.7 3446 | supports-preserve-symlinks-flag: 1.0.0 3447 | 3448 | rollup@4.29.1: 3449 | dependencies: 3450 | '@types/estree': 1.0.6 3451 | optionalDependencies: 3452 | '@rollup/rollup-android-arm-eabi': 4.29.1 3453 | '@rollup/rollup-android-arm64': 4.29.1 3454 | '@rollup/rollup-darwin-arm64': 4.29.1 3455 | '@rollup/rollup-darwin-x64': 4.29.1 3456 | '@rollup/rollup-freebsd-arm64': 4.29.1 3457 | '@rollup/rollup-freebsd-x64': 4.29.1 3458 | '@rollup/rollup-linux-arm-gnueabihf': 4.29.1 3459 | '@rollup/rollup-linux-arm-musleabihf': 4.29.1 3460 | '@rollup/rollup-linux-arm64-gnu': 4.29.1 3461 | '@rollup/rollup-linux-arm64-musl': 4.29.1 3462 | '@rollup/rollup-linux-loongarch64-gnu': 4.29.1 3463 | '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1 3464 | '@rollup/rollup-linux-riscv64-gnu': 4.29.1 3465 | '@rollup/rollup-linux-s390x-gnu': 4.29.1 3466 | '@rollup/rollup-linux-x64-gnu': 4.29.1 3467 | '@rollup/rollup-linux-x64-musl': 4.29.1 3468 | '@rollup/rollup-win32-arm64-msvc': 4.29.1 3469 | '@rollup/rollup-win32-ia32-msvc': 4.29.1 3470 | '@rollup/rollup-win32-x64-msvc': 4.29.1 3471 | fsevents: 2.3.3 3472 | 3473 | rrweb-cssom@0.7.1: {} 3474 | 3475 | rrweb-cssom@0.8.0: {} 3476 | 3477 | safer-buffer@2.1.2: {} 3478 | 3479 | saxes@6.0.0: 3480 | dependencies: 3481 | xmlchars: 2.2.0 3482 | 3483 | scheduler@0.26.0: {} 3484 | 3485 | semver@6.3.1: {} 3486 | 3487 | semver@7.5.4: 3488 | dependencies: 3489 | lru-cache: 6.0.0 3490 | 3491 | side-channel@1.0.4: 3492 | dependencies: 3493 | call-bind: 1.0.2 3494 | get-intrinsic: 1.1.3 3495 | object-inspect: 1.12.2 3496 | 3497 | siginfo@2.0.0: {} 3498 | 3499 | source-map-js@1.2.1: {} 3500 | 3501 | source-map@0.6.1: {} 3502 | 3503 | space-separated-tokens@1.1.5: {} 3504 | 3505 | sprintf-js@1.0.3: {} 3506 | 3507 | stackback@0.0.2: {} 3508 | 3509 | std-env@3.9.0: {} 3510 | 3511 | string-argv@0.3.2: {} 3512 | 3513 | strip-indent@3.0.0: 3514 | dependencies: 3515 | min-indent: 1.0.1 3516 | 3517 | strip-json-comments@3.1.1: {} 3518 | 3519 | supports-color@7.2.0: 3520 | dependencies: 3521 | has-flag: 4.0.0 3522 | 3523 | supports-color@8.1.1: 3524 | dependencies: 3525 | has-flag: 4.0.0 3526 | 3527 | supports-preserve-symlinks-flag@1.0.0: {} 3528 | 3529 | symbol-tree@3.2.4: {} 3530 | 3531 | tinybench@2.9.0: {} 3532 | 3533 | tinyexec@0.3.2: {} 3534 | 3535 | tinypool@1.1.0: {} 3536 | 3537 | tinyrainbow@1.2.0: {} 3538 | 3539 | tinyspy@3.0.2: {} 3540 | 3541 | tldts-core@6.1.86: {} 3542 | 3543 | tldts@6.1.86: 3544 | dependencies: 3545 | tldts-core: 6.1.86 3546 | 3547 | tough-cookie@5.1.2: 3548 | dependencies: 3549 | tldts: 6.1.86 3550 | 3551 | tr46@5.1.1: 3552 | dependencies: 3553 | punycode: 2.3.1 3554 | 3555 | typescript@5.8.2: {} 3556 | 3557 | typescript@5.8.3: {} 3558 | 3559 | ufo@1.6.1: {} 3560 | 3561 | unidragger@2.4.0: 3562 | dependencies: 3563 | unipointer: 2.4.0 3564 | 3565 | unipointer@2.4.0: 3566 | dependencies: 3567 | ev-emitter: 1.1.1 3568 | 3569 | universalify@2.0.1: {} 3570 | 3571 | update-browserslist-db@1.1.1(browserslist@4.24.3): 3572 | dependencies: 3573 | browserslist: 4.24.3 3574 | escalade: 3.2.0 3575 | picocolors: 1.1.1 3576 | 3577 | uri-js@4.4.1: 3578 | dependencies: 3579 | punycode: 2.1.1 3580 | 3581 | vite-node@2.1.9(@types/node@18.11.13): 3582 | dependencies: 3583 | cac: 6.7.14 3584 | debug: 4.4.1 3585 | es-module-lexer: 1.7.0 3586 | pathe: 1.1.2 3587 | vite: 5.4.19(@types/node@18.11.13) 3588 | transitivePeerDependencies: 3589 | - '@types/node' 3590 | - less 3591 | - lightningcss 3592 | - sass 3593 | - sass-embedded 3594 | - stylus 3595 | - sugarss 3596 | - supports-color 3597 | - terser 3598 | 3599 | vite-plugin-dts@4.5.4(@types/node@18.11.13)(rollup@4.29.1)(typescript@5.8.3)(vite@6.0.6(@types/node@18.11.13)): 3600 | dependencies: 3601 | '@microsoft/api-extractor': 7.52.8(@types/node@18.11.13) 3602 | '@rollup/pluginutils': 5.1.4(rollup@4.29.1) 3603 | '@volar/typescript': 2.4.14 3604 | '@vue/language-core': 2.2.0(typescript@5.8.3) 3605 | compare-versions: 6.1.1 3606 | debug: 4.4.1 3607 | kolorist: 1.8.0 3608 | local-pkg: 1.1.1 3609 | magic-string: 0.30.17 3610 | typescript: 5.8.3 3611 | optionalDependencies: 3612 | vite: 6.0.6(@types/node@18.11.13) 3613 | transitivePeerDependencies: 3614 | - '@types/node' 3615 | - rollup 3616 | - supports-color 3617 | 3618 | vite@5.4.19(@types/node@18.11.13): 3619 | dependencies: 3620 | esbuild: 0.21.5 3621 | postcss: 8.4.49 3622 | rollup: 4.29.1 3623 | optionalDependencies: 3624 | '@types/node': 18.11.13 3625 | fsevents: 2.3.3 3626 | 3627 | vite@6.0.6(@types/node@18.11.13): 3628 | dependencies: 3629 | esbuild: 0.24.2 3630 | postcss: 8.4.49 3631 | rollup: 4.29.1 3632 | optionalDependencies: 3633 | '@types/node': 18.11.13 3634 | fsevents: 2.3.3 3635 | 3636 | vitest@2.1.9(@types/node@18.11.13)(jsdom@25.0.1): 3637 | dependencies: 3638 | '@vitest/expect': 2.1.9 3639 | '@vitest/mocker': 2.1.9(vite@5.4.19(@types/node@18.11.13)) 3640 | '@vitest/pretty-format': 2.1.9 3641 | '@vitest/runner': 2.1.9 3642 | '@vitest/snapshot': 2.1.9 3643 | '@vitest/spy': 2.1.9 3644 | '@vitest/utils': 2.1.9 3645 | chai: 5.2.0 3646 | debug: 4.4.1 3647 | expect-type: 1.2.1 3648 | magic-string: 0.30.17 3649 | pathe: 1.1.2 3650 | std-env: 3.9.0 3651 | tinybench: 2.9.0 3652 | tinyexec: 0.3.2 3653 | tinypool: 1.1.0 3654 | tinyrainbow: 1.2.0 3655 | vite: 5.4.19(@types/node@18.11.13) 3656 | vite-node: 2.1.9(@types/node@18.11.13) 3657 | why-is-node-running: 2.3.0 3658 | optionalDependencies: 3659 | '@types/node': 18.11.13 3660 | jsdom: 25.0.1 3661 | transitivePeerDependencies: 3662 | - less 3663 | - lightningcss 3664 | - msw 3665 | - sass 3666 | - sass-embedded 3667 | - stylus 3668 | - sugarss 3669 | - supports-color 3670 | - terser 3671 | 3672 | vscode-uri@3.1.0: {} 3673 | 3674 | w3c-xmlserializer@5.0.0: 3675 | dependencies: 3676 | xml-name-validator: 5.0.0 3677 | 3678 | webidl-conversions@7.0.0: {} 3679 | 3680 | whatwg-encoding@3.1.1: 3681 | dependencies: 3682 | iconv-lite: 0.6.3 3683 | 3684 | whatwg-mimetype@4.0.0: {} 3685 | 3686 | whatwg-url@14.2.0: 3687 | dependencies: 3688 | tr46: 5.1.1 3689 | webidl-conversions: 7.0.0 3690 | 3691 | which-boxed-primitive@1.0.2: 3692 | dependencies: 3693 | is-bigint: 1.0.4 3694 | is-boolean-object: 1.1.2 3695 | is-number-object: 1.0.7 3696 | is-string: 1.0.7 3697 | is-symbol: 1.0.4 3698 | 3699 | which-collection@1.0.1: 3700 | dependencies: 3701 | is-map: 2.0.2 3702 | is-set: 2.0.2 3703 | is-weakmap: 2.0.1 3704 | is-weakset: 2.0.2 3705 | 3706 | which-typed-array@1.1.9: 3707 | dependencies: 3708 | available-typed-arrays: 1.0.5 3709 | call-bind: 1.0.2 3710 | for-each: 0.3.3 3711 | gopd: 1.0.1 3712 | has-tostringtag: 1.0.0 3713 | is-typed-array: 1.1.10 3714 | 3715 | why-is-node-running@2.3.0: 3716 | dependencies: 3717 | siginfo: 2.0.0 3718 | stackback: 0.0.2 3719 | 3720 | ws@8.18.2: {} 3721 | 3722 | xml-name-validator@5.0.0: {} 3723 | 3724 | xmlchars@2.2.0: {} 3725 | 3726 | xtend@4.0.2: {} 3727 | 3728 | yallist@3.1.1: {} 3729 | 3730 | yallist@4.0.0: {} 3731 | --------------------------------------------------------------------------------