a reactive (signals based) hypermedia web framework (wip) stormlightlabs.github.io/volt/
hypermedia frontend signals
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

initial commit

Owais Jamil 2d3b72c2

+3267
+24
.gitignore
··· 1 + # Logs 2 + logs 3 + *.log 4 + npm-debug.log* 5 + yarn-debug.log* 6 + yarn-error.log* 7 + pnpm-debug.log* 8 + lerna-debug.log* 9 + 10 + node_modules 11 + dist 12 + dist-ssr 13 + *.local 14 + 15 + # Editor directories and files 16 + .vscode/* 17 + !.vscode/extensions.json 18 + .idea 19 + .DS_Store 20 + *.suo 21 + *.ntvs* 22 + *.njsproj 23 + *.sln 24 + *.sw?
+66
README.md
··· 1 + # Volt.js 2 + 3 + ## Philosophy/Goals 4 + 5 + - Behavior is declared via `data-x-*` attributes. 6 + - HTML drives the UI, not components. 7 + - Core under **20 KB gzipped**, zero dependencies. 8 + - Signals update the DOM directly without a virtual DOM. 9 + - Native Server-Sent Events (SSE) and WebSocket patch updates. 10 + - No reactivity scheduler, no VDOM diffing. 11 + - Extend behavior declaratively (persist, scroll, animate, etc.). 12 + - Progressive enhancement, i.e. works with static HTML out of the box. 13 + 14 + ### Values 15 + 16 + - Never exceed 15 KB for the core runtime. 17 + - No custom build systems — work with any backend. 18 + - All source in TypeScript, no magical DSLs. 19 + - Every feature ships with a test harness. 20 + 21 + ## Concepts 22 + 23 + | Concept | Description | 24 + | -------- | ---------------------------------------------------------------------------------------- | 25 + | Signals | Reactive primitives that automatically update DOM bindings when changed. | 26 + | Bindings | `data-x-text`, `data-x-html`, `data-x-class` connect attributes or text to expressions. | 27 + | Actions | `data-x-on-click`, `data-x-on-input`, etc. attach event handlers declaratively. | 28 + | Streams | `data-x-stream="/events"` listens for SSE or WebSocket updates and applies JSON patches. | 29 + | Plugins | Modular extensions (`data-x-persist`, `data-x-animate`, etc.) that enhance the core. | 30 + 31 + ## Project Structure 32 + 33 + ```sh 34 + volt/ 35 + ├── package.json 36 + ├── tsconfig.json 37 + ├── vite.config.ts 38 + ├── README.md 39 + ├── src/ 40 + │ ├── index.ts # entry point 41 + │ ├── core/ 42 + │ │ ├── signal.ts # reactive primitives 43 + │ │ ├── dom.ts # DOM helpers 44 + │ │ ├── patch.ts # JSON patch engine 45 + │ │ ├── stream.ts # SSE / WebSocket layer 46 + │ │ ├── plugin.ts # plugin registration API 47 + │ │ └── binder.ts # mounts and binds data-x-* attributes 48 + │ └── plugins/ 49 + │ ├── persist.ts 50 + │ ├── scroll.ts 51 + │ ├── animate.ts 52 + │ └── url.ts 53 + └── test/ 54 + ├── setupTests.ts 55 + ├── core/ 56 + │ ├── signal.test.ts 57 + │ ├── dom.test.ts 58 + │ └── patch.test.ts 59 + └── integration/ 60 + ├── mount.test.ts 61 + └── plugin.persist.test.ts 62 + ``` 63 + 64 + ## License 65 + 66 + MIT License © 2025 Stormlight Labs
+132
ROADMAP.md
··· 1 + # Roadmap 2 + 3 + | Version | Milestone | Summary | 4 + | ------- | ---------------------------------------------------------- | ------------------------------------------------------------------------ | 5 + | v0.1.0 | [Foundations](#foundations) | Initial project setup, tooling, and reactive signal prototype. | 6 + | v0.2.0 | [Reactivity & Bindings](#reactivity--bindings) | Core DOM bindings (`data-x-*`) and declarative updates. | 7 + | v0.3.0 | [Actions & Effects](#actions--effects) | Event system and derived reactivity primitives. | 8 + | v0.4.0 | [Plugins Framework](#plugins-framework) | Modular plugin system and first built-in plugin set. | 9 + | v0.5.0 | [Streaming & Patch Engine](#streaming--patch-engine) | SSE/WebSocket JSON patch streaming. | 10 + | v0.6.0 | [Persistence & Offline](#persistence--offline) | State persistence, storage sync, and fallback behaviors. | 11 + | v0.7.0 | [Animation & Transitions](#animation--transitions) | Declarative animation layer and browser View Transition API integration. | 12 + | v0.8.0 | [Inspector & Developer Tools](#inspector--developer-tools) | Built-in signal inspector, debug overlays, and dev tooling. | 13 + | v0.9.0 | [Docs & Stability](#documentation--stability-pass) | Comprehensive docs, tests, and performance review. | 14 + | v1.0.0 | [Release](#stable-release) | Public API freeze, plugin registry, and versioned documentation. | 15 + 16 + ## Details 17 + 18 + ### Foundations 19 + 20 + **Goal:** Establish project structure, tooling, and base reactivity primitives. 21 + **Outcome:** A bootable TypeScript project with working reactivity primitives and test coverage. 22 + **Deliverables:** 23 + - Project scaffolding 24 + - `signal()` implementation with subscribe/set/get 25 + - Initial tests (signals, reactivity basics) 26 + 27 + ### Reactivity & Bindings 28 + 29 + **Goal:** Connect signals to DOM via declarative `data-x-*` bindings. 30 + **Outcome:** Reactive text/attribute binding with signals → DOM synchronization. 31 + **Deliverables:** 32 + - `data-x-text`, `data-x-html`, `data-x-class` binding parser 33 + - Expression evaluator (safe, minimal subset) 34 + - DOM mutation batching & cleanup 35 + - Internal test harness for bindings 36 + - DOM Testing Library integration tests 37 + - Updated documentation examples 38 + 39 + ### Actions & Effects 40 + 41 + **Goal:** Add event-driven behavior and derived reactivity. 42 + **Outcome:** Fully functional reactive UI layer with event bindings and computed updates. 43 + **Deliverables:** 44 + - Event binding system (`data-x-on-*`) 45 + - `$el` and `$event` scoped references 46 + - Derived signals (`computed`, `effect`) 47 + - Async effects (e.g., fetch triggers) 48 + - End-to-end examples (counter, form, live field updates) 49 + - 90%+ unit test coverage on core modules 50 + 51 + ### Plugins Framework 52 + 53 + **Goal:** Build a modular plugin architecture with dynamic registration. 54 + **Outcome:** Stable plugin API enabling community-driven extensions. 55 + **Deliverables:** 56 + - `registerPlugin(name, fn)` API 57 + - Context and lifecycle hooks 58 + - Built-ins: 59 + - `data-x-persist` 60 + - `data-x-scroll` 61 + - `data-x-url` 62 + - Tests & registry 63 + - Example in docs 64 + 65 + ### Streaming & Patch Engine 66 + 67 + **Goal:** Enable real-time updates via SSE/WebSocket streaming. 68 + **Outcome:** Volt.js can receive and apply live updates from the server — the “reactive stream” milestone. 69 + **Deliverables:** 70 + - JSON Patch parser and DOM applier 71 + - `data-x-stream` attribute 72 + - Reconnection/backoff logic 73 + - Integration test with mock SSE server 74 + - Benchmarks for patch vs re-render 75 + - Performance test suite 76 + 77 + ### Persistence & Offline 78 + 79 + **Goal:** Introduce persistent storage and offline-first behaviors. 80 + **Outcome:** Resilient state persistence and offline replay built into Volt.js. 81 + **Deliverables:** 82 + - Persistent signals (localStorage, sessionStorage) 83 + - Storage plugin (`data-x-persist`) 84 + - Offline queue for deferred stream events 85 + - Sync strategy API (merge, overwrite, patch) 86 + - Example apps: note editor, counter with persistence 87 + 88 + ### Animation & Transitions 89 + 90 + **Goal:** Add animation primitives for smooth UI transitions. 91 + **Outcome:** Volt.js enables declarative animations and view transitions alongside reactivity. 92 + **Deliverables:** 93 + - `data-x-animate` plugin 94 + - View Transition API support (when available) 95 + - CSS-based transition helpers 96 + - Timing utilities (`transition`, `raf`) 97 + - Plugin tests and performance profiling 98 + 99 + ### Inspector & Developer Tools 100 + 101 + **Goal:** Improve developer experience and runtime introspection. 102 + **Outcome:** First-class developer ergonomics; Volt.js is enjoyable to debug and extend. 103 + **Deliverables:** 104 + - Developer overlay for inspecting signals, subscriptions, and effects 105 + - Dev logging toggle (`Volt.debug = true`) 106 + - Browser console integration (`window.$volt.inspect()`) 107 + - Visualization plugin for dependency graph 108 + - Testing coverage for dev mode 109 + 110 + ### Documentation & Stability Pass 111 + 112 + **Goal:** Prepare for stable release by finalizing docs, polish, and performance. 113 + **Outcome:** Volt.js is stable, documented, performant, and ready for production. 114 + **Deliverables:** 115 + - Documentation site (VitePress) 116 + - Full API reference with examples 117 + - Migration and versioning guide 118 + - Performance benchmarks (vs htmx, Alpine) 119 + - Browser matrix tests (Chromium, Gecko, WebKit) 120 + - Accessibility audits (ARIA reactivity) 121 + - Freeze API surface for 1.0 122 + 123 + ### Stable Release 124 + 125 + **Goal:** Ship the first stable version of Volt.js. 126 + **Outcome:** Volt.js 1.0 is released as a mature, fully documented, type-safe, reactive web framework 127 + **Deliverables:** 128 + - Finalized plugin registry and CLI (`volt plugins list/init`) 129 + - Versioned documentation (docs.voltjs.dev) 130 + - Announcement post and release notes 131 + - Long-term support plan (LTS cadence) 132 + - Community contribution guide & governance doc
+28
docs/.vitepress/config.ts
··· 1 + import { defineConfig } from 'vitepress' 2 + 3 + // https://vitepress.dev/reference/site-config 4 + export default defineConfig({ 5 + title: "Volt.js", 6 + description: "A reactive, hypermedia framework.", 7 + themeConfig: { 8 + // https://vitepress.dev/reference/default-theme-config 9 + nav: [ 10 + { text: 'Home', link: '/' }, 11 + { text: 'Examples', link: '/markdown-examples' } 12 + ], 13 + 14 + sidebar: [ 15 + { 16 + text: 'Examples', 17 + items: [ 18 + { text: 'Markdown Examples', link: '/markdown-examples' }, 19 + { text: 'Runtime API Examples', link: '/api-examples' } 20 + ] 21 + } 22 + ], 23 + 24 + socialLinks: [ 25 + { icon: 'github', link: 'https://github.com/vuejs/vitepress' } 26 + ] 27 + } 28 + })
+17
docs/.vitepress/theme/index.ts
··· 1 + // https://vitepress.dev/guide/custom-theme 2 + import { h } from 'vue' 3 + import type { Theme } from 'vitepress' 4 + import DefaultTheme from 'vitepress/theme' 5 + import './style.css' 6 + 7 + export default { 8 + extends: DefaultTheme, 9 + Layout: () => { 10 + return h(DefaultTheme.Layout, null, { 11 + // https://vitepress.dev/guide/extending-default-theme#layout-slots 12 + }) 13 + }, 14 + enhanceApp({ app, router, siteData }) { 15 + // ... 16 + } 17 + } satisfies Theme
+139
docs/.vitepress/theme/style.css
··· 1 + /** 2 + * Customize default theme styling by overriding CSS variables: 3 + * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css 4 + */ 5 + 6 + /** 7 + * Colors 8 + * 9 + * Each colors have exact same color scale system with 3 levels of solid 10 + * colors with different brightness, and 1 soft color. 11 + * 12 + * - `XXX-1`: The most solid color used mainly for colored text. It must 13 + * satisfy the contrast ratio against when used on top of `XXX-soft`. 14 + * 15 + * - `XXX-2`: The color used mainly for hover state of the button. 16 + * 17 + * - `XXX-3`: The color for solid background, such as bg color of the button. 18 + * It must satisfy the contrast ratio with pure white (#ffffff) text on 19 + * top of it. 20 + * 21 + * - `XXX-soft`: The color used for subtle background such as custom container 22 + * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors 23 + * on top of it. 24 + * 25 + * The soft color must be semi transparent alpha channel. This is crucial 26 + * because it allows adding multiple "soft" colors on top of each other 27 + * to create a accent, such as when having inline code block inside 28 + * custom containers. 29 + * 30 + * - `default`: The color used purely for subtle indication without any 31 + * special meanings attached to it such as bg color for menu hover state. 32 + * 33 + * - `brand`: Used for primary brand colors, such as link text, button with 34 + * brand theme, etc. 35 + * 36 + * - `tip`: Used to indicate useful information. The default theme uses the 37 + * brand color for this by default. 38 + * 39 + * - `warning`: Used to indicate warning to the users. Used in custom 40 + * container, badges, etc. 41 + * 42 + * - `danger`: Used to show error, or dangerous message to the users. Used 43 + * in custom container, badges, etc. 44 + * -------------------------------------------------------------------------- */ 45 + 46 + :root { 47 + --vp-c-default-1: var(--vp-c-gray-1); 48 + --vp-c-default-2: var(--vp-c-gray-2); 49 + --vp-c-default-3: var(--vp-c-gray-3); 50 + --vp-c-default-soft: var(--vp-c-gray-soft); 51 + 52 + --vp-c-brand-1: var(--vp-c-indigo-1); 53 + --vp-c-brand-2: var(--vp-c-indigo-2); 54 + --vp-c-brand-3: var(--vp-c-indigo-3); 55 + --vp-c-brand-soft: var(--vp-c-indigo-soft); 56 + 57 + --vp-c-tip-1: var(--vp-c-brand-1); 58 + --vp-c-tip-2: var(--vp-c-brand-2); 59 + --vp-c-tip-3: var(--vp-c-brand-3); 60 + --vp-c-tip-soft: var(--vp-c-brand-soft); 61 + 62 + --vp-c-warning-1: var(--vp-c-yellow-1); 63 + --vp-c-warning-2: var(--vp-c-yellow-2); 64 + --vp-c-warning-3: var(--vp-c-yellow-3); 65 + --vp-c-warning-soft: var(--vp-c-yellow-soft); 66 + 67 + --vp-c-danger-1: var(--vp-c-red-1); 68 + --vp-c-danger-2: var(--vp-c-red-2); 69 + --vp-c-danger-3: var(--vp-c-red-3); 70 + --vp-c-danger-soft: var(--vp-c-red-soft); 71 + } 72 + 73 + /** 74 + * Component: Button 75 + * -------------------------------------------------------------------------- */ 76 + 77 + :root { 78 + --vp-button-brand-border: transparent; 79 + --vp-button-brand-text: var(--vp-c-white); 80 + --vp-button-brand-bg: var(--vp-c-brand-3); 81 + --vp-button-brand-hover-border: transparent; 82 + --vp-button-brand-hover-text: var(--vp-c-white); 83 + --vp-button-brand-hover-bg: var(--vp-c-brand-2); 84 + --vp-button-brand-active-border: transparent; 85 + --vp-button-brand-active-text: var(--vp-c-white); 86 + --vp-button-brand-active-bg: var(--vp-c-brand-1); 87 + } 88 + 89 + /** 90 + * Component: Home 91 + * -------------------------------------------------------------------------- */ 92 + 93 + :root { 94 + --vp-home-hero-name-color: transparent; 95 + --vp-home-hero-name-background: -webkit-linear-gradient( 96 + 120deg, 97 + #bd34fe 30%, 98 + #41d1ff 99 + ); 100 + 101 + --vp-home-hero-image-background-image: linear-gradient( 102 + -45deg, 103 + #bd34fe 50%, 104 + #47caff 50% 105 + ); 106 + --vp-home-hero-image-filter: blur(44px); 107 + } 108 + 109 + @media (min-width: 640px) { 110 + :root { 111 + --vp-home-hero-image-filter: blur(56px); 112 + } 113 + } 114 + 115 + @media (min-width: 960px) { 116 + :root { 117 + --vp-home-hero-image-filter: blur(68px); 118 + } 119 + } 120 + 121 + /** 122 + * Component: Custom Block 123 + * -------------------------------------------------------------------------- */ 124 + 125 + :root { 126 + --vp-custom-block-tip-border: transparent; 127 + --vp-custom-block-tip-text: var(--vp-c-text-1); 128 + --vp-custom-block-tip-bg: var(--vp-c-brand-soft); 129 + --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft); 130 + } 131 + 132 + /** 133 + * Component: Algolia 134 + * -------------------------------------------------------------------------- */ 135 + 136 + .DocSearch { 137 + --docsearch-primary-color: var(--vp-c-brand-1) !important; 138 + } 139 +
+49
docs/api-examples.md
··· 1 + --- 2 + outline: deep 3 + --- 4 + 5 + # Runtime API Examples 6 + 7 + This page demonstrates usage of some of the runtime APIs provided by VitePress. 8 + 9 + The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: 10 + 11 + ```md 12 + <script setup> 13 + import { useData } from 'vitepress' 14 + 15 + const { theme, page, frontmatter } = useData() 16 + </script> 17 + 18 + ## Results 19 + 20 + ### Theme Data 21 + <pre>{{ theme }}</pre> 22 + 23 + ### Page Data 24 + <pre>{{ page }}</pre> 25 + 26 + ### Page Frontmatter 27 + <pre>{{ frontmatter }}</pre> 28 + ``` 29 + 30 + <script setup> 31 + import { useData } from 'vitepress' 32 + 33 + const { site, theme, page, frontmatter } = useData() 34 + </script> 35 + 36 + ## Results 37 + 38 + ### Theme Data 39 + <pre>{{ theme }}</pre> 40 + 41 + ### Page Data 42 + <pre>{{ page }}</pre> 43 + 44 + ### Page Frontmatter 45 + <pre>{{ frontmatter }}</pre> 46 + 47 + ## More 48 + 49 + Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).
+25
docs/index.md
··· 1 + --- 2 + # https://vitepress.dev/reference/default-theme-home-page 3 + layout: home 4 + 5 + hero: 6 + name: "Volt.js" 7 + text: "A reactive, hypermedia framework." 8 + tagline: My great project tagline 9 + actions: 10 + - theme: brand 11 + text: Markdown Examples 12 + link: /markdown-examples 13 + - theme: alt 14 + text: API Examples 15 + link: /api-examples 16 + 17 + features: 18 + - title: Feature A 19 + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit 20 + - title: Feature B 21 + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit 22 + - title: Feature C 23 + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit 24 + --- 25 +
+85
docs/markdown-examples.md
··· 1 + # Markdown Extension Examples 2 + 3 + This page demonstrates some of the built-in markdown extensions provided by VitePress. 4 + 5 + ## Syntax Highlighting 6 + 7 + VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: 8 + 9 + **Input** 10 + 11 + ````md 12 + ```js{4} 13 + export default { 14 + data () { 15 + return { 16 + msg: 'Highlighted!' 17 + } 18 + } 19 + } 20 + ``` 21 + ```` 22 + 23 + **Output** 24 + 25 + ```js{4} 26 + export default { 27 + data () { 28 + return { 29 + msg: 'Highlighted!' 30 + } 31 + } 32 + } 33 + ``` 34 + 35 + ## Custom Containers 36 + 37 + **Input** 38 + 39 + ```md 40 + ::: info 41 + This is an info box. 42 + ::: 43 + 44 + ::: tip 45 + This is a tip. 46 + ::: 47 + 48 + ::: warning 49 + This is a warning. 50 + ::: 51 + 52 + ::: danger 53 + This is a dangerous warning. 54 + ::: 55 + 56 + ::: details 57 + This is a details block. 58 + ::: 59 + ``` 60 + 61 + **Output** 62 + 63 + ::: info 64 + This is an info box. 65 + ::: 66 + 67 + ::: tip 68 + This is a tip. 69 + ::: 70 + 71 + ::: warning 72 + This is a warning. 73 + ::: 74 + 75 + ::: danger 76 + This is a dangerous warning. 77 + ::: 78 + 79 + ::: details 80 + This is a details block. 81 + ::: 82 + 83 + ## More 84 + 85 + Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).
+6
dprint.json
··· 1 + { 2 + "typescript": { "preferSingleLine": true, "jsx.bracketPosition": "sameLine" }, 3 + "json": { "preferSingleLine": true, "lineWidth": 121, "indentWidth": 2 }, 4 + "excludes": ["**/node_modules"], 5 + "plugins": ["https://plugins.dprint.dev/typescript-0.95.8.wasm", "https://plugins.dprint.dev/json-0.20.0.wasm"] 6 + }
+13
index.html
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>volt</title> 8 + </head> 9 + <body> 10 + <div id="app"></div> 11 + <script type="module" src="/src/main.ts"></script> 12 + </body> 13 + </html>
+26
package.json
··· 1 + { 2 + "name": "volt", 3 + "private": true, 4 + "version": "0.0.0", 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "tsc && vite build", 9 + "preview": "vite preview", 10 + "docs:dev": "vitepress dev docs", 11 + "docs:build": "vitepress build docs", 12 + "docs:preview": "vitepress preview docs" 13 + }, 14 + "devDependencies": { 15 + "@testing-library/dom": "^10.4.1", 16 + "@testing-library/jest-dom": "^6.9.1", 17 + "dprint": "^0.50.2", 18 + "jsdom": "^27.0.0", 19 + "typescript": "~5.9.3", 20 + "vite": "npm:rolldown-vite@7.1.14", 21 + "vitepress": "^1.6.4", 22 + "vitest": "^3.2.4", 23 + "vue": "^3.5.22" 24 + }, 25 + "pnpm": { "overrides": { "vite": "npm:rolldown-vite@7.1.14" }, "onlyBuiltDependencies": ["dprint"] } 26 + }
+2493
pnpm-lock.yaml
··· 1 + lockfileVersion: '9.0' 2 + 3 + settings: 4 + autoInstallPeers: true 5 + excludeLinksFromLockfile: false 6 + 7 + overrides: 8 + vite: npm:rolldown-vite@7.1.14 9 + 10 + importers: 11 + 12 + .: 13 + devDependencies: 14 + '@testing-library/dom': 15 + specifier: ^10.4.1 16 + version: 10.4.1 17 + '@testing-library/jest-dom': 18 + specifier: ^6.9.1 19 + version: 6.9.1 20 + dprint: 21 + specifier: ^0.50.2 22 + version: 0.50.2 23 + jsdom: 24 + specifier: ^27.0.0 25 + version: 27.0.0(postcss@8.5.6) 26 + typescript: 27 + specifier: ~5.9.3 28 + version: 5.9.3 29 + vite: 30 + specifier: npm:rolldown-vite@7.1.14 31 + version: rolldown-vite@7.1.14 32 + vitepress: 33 + specifier: ^1.6.4 34 + version: 1.6.4(@algolia/client-search@5.40.1)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3) 35 + vitest: 36 + specifier: ^3.2.4 37 + version: 3.2.4(jsdom@27.0.0(postcss@8.5.6)) 38 + vue: 39 + specifier: ^3.5.22 40 + version: 3.5.22(typescript@5.9.3) 41 + 42 + packages: 43 + 44 + '@adobe/css-tools@4.4.4': 45 + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} 46 + 47 + '@algolia/abtesting@1.6.1': 48 + resolution: {integrity: sha512-wV/gNRkzb7sI9vs1OneG129hwe3Q5zPj7zigz3Ps7M5Lpo2hSorrOnXNodHEOV+yXE/ks4Pd+G3CDFIjFTWhMQ==} 49 + engines: {node: '>= 14.0.0'} 50 + 51 + '@algolia/autocomplete-core@1.17.7': 52 + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} 53 + 54 + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': 55 + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} 56 + peerDependencies: 57 + search-insights: '>= 1 < 3' 58 + 59 + '@algolia/autocomplete-preset-algolia@1.17.7': 60 + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} 61 + peerDependencies: 62 + '@algolia/client-search': '>= 4.9.1 < 6' 63 + algoliasearch: '>= 4.9.1 < 6' 64 + 65 + '@algolia/autocomplete-shared@1.17.7': 66 + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} 67 + peerDependencies: 68 + '@algolia/client-search': '>= 4.9.1 < 6' 69 + algoliasearch: '>= 4.9.1 < 6' 70 + 71 + '@algolia/client-abtesting@5.40.1': 72 + resolution: {integrity: sha512-cxKNATPY5t+Mv8XAVTI57altkaPH+DZi4uMrnexPxPHODMljhGYY+GDZyHwv9a+8CbZHcY372OkxXrDMZA4Lnw==} 73 + engines: {node: '>= 14.0.0'} 74 + 75 + '@algolia/client-analytics@5.40.1': 76 + resolution: {integrity: sha512-XP008aMffJCRGAY8/70t+hyEyvqqV7YKm502VPu0+Ji30oefrTn2al7LXkITz7CK6I4eYXWRhN6NaIUi65F1OA==} 77 + engines: {node: '>= 14.0.0'} 78 + 79 + '@algolia/client-common@5.40.1': 80 + resolution: {integrity: sha512-gWfQuQUBtzUboJv/apVGZMoxSaB0M4Imwl1c9Ap+HpCW7V0KhjBddqF2QQt5tJZCOFsfNIgBbZDGsEPaeKUosw==} 81 + engines: {node: '>= 14.0.0'} 82 + 83 + '@algolia/client-insights@5.40.1': 84 + resolution: {integrity: sha512-RTLjST/t+lsLMouQ4zeLJq2Ss+UNkLGyNVu+yWHanx6kQ3LT5jv8UvPwyht9s7R6jCPnlSI77WnL80J32ZuyJg==} 85 + engines: {node: '>= 14.0.0'} 86 + 87 + '@algolia/client-personalization@5.40.1': 88 + resolution: {integrity: sha512-2FEK6bUomBzEYkTKzD0iRs7Ljtjb45rKK/VSkyHqeJnG+77qx557IeSO0qVFE3SfzapNcoytTofnZum0BQ6r3Q==} 89 + engines: {node: '>= 14.0.0'} 90 + 91 + '@algolia/client-query-suggestions@5.40.1': 92 + resolution: {integrity: sha512-Nju4NtxAvXjrV2hHZNLKVJLXjOlW6jAXHef/CwNzk1b2qIrCWDO589ELi5ZHH1uiWYoYyBXDQTtHmhaOVVoyXg==} 93 + engines: {node: '>= 14.0.0'} 94 + 95 + '@algolia/client-search@5.40.1': 96 + resolution: {integrity: sha512-Mw6pAUF121MfngQtcUb5quZVqMC68pSYYjCRZkSITC085S3zdk+h/g7i6FxnVdbSU6OztxikSDMh1r7Z+4iPlA==} 97 + engines: {node: '>= 14.0.0'} 98 + 99 + '@algolia/ingestion@1.40.1': 100 + resolution: {integrity: sha512-z+BPlhs45VURKJIxsR99NNBWpUEEqIgwt10v/fATlNxc4UlXvALdOsWzaFfe89/lbP5Bu4+mbO59nqBC87ZM/g==} 101 + engines: {node: '>= 14.0.0'} 102 + 103 + '@algolia/monitoring@1.40.1': 104 + resolution: {integrity: sha512-VJMUMbO0wD8Rd2VVV/nlFtLJsOAQvjnVNGkMkspFiFhpBA7s/xJOb+fJvvqwKFUjbKTUA7DjiSi1ljSMYBasXg==} 105 + engines: {node: '>= 14.0.0'} 106 + 107 + '@algolia/recommend@5.40.1': 108 + resolution: {integrity: sha512-ehvJLadKVwTp9Scg9NfzVSlBKH34KoWOQNTaN8i1Ac64AnO6iH2apJVSP6GOxssaghZ/s8mFQsDH3QIZoluFHA==} 109 + engines: {node: '>= 14.0.0'} 110 + 111 + '@algolia/requester-browser-xhr@5.40.1': 112 + resolution: {integrity: sha512-PbidVsPurUSQIr6X9/7s34mgOMdJnn0i6p+N6Ab+lsNhY5eiu+S33kZEpZwkITYBCIbhzDLOvb7xZD3gDi+USA==} 113 + engines: {node: '>= 14.0.0'} 114 + 115 + '@algolia/requester-fetch@5.40.1': 116 + resolution: {integrity: sha512-ThZ5j6uOZCF11fMw9IBkhigjOYdXGXQpj6h4k+T9UkZrF2RlKcPynFzDeRgaLdpYk8Yn3/MnFbwUmib7yxj5Lw==} 117 + engines: {node: '>= 14.0.0'} 118 + 119 + '@algolia/requester-node-http@5.40.1': 120 + resolution: {integrity: sha512-H1gYPojO6krWHnUXu/T44DrEun/Wl95PJzMXRcM/szstNQczSbwq6wIFJPI9nyE95tarZfUNU3rgorT+wZ6iCQ==} 121 + engines: {node: '>= 14.0.0'} 122 + 123 + '@asamuzakjp/css-color@4.0.5': 124 + resolution: {integrity: sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==} 125 + 126 + '@asamuzakjp/dom-selector@6.7.0': 127 + resolution: {integrity: sha512-GrYRsKf8oVnPHsA+4dOAnPybrhT3cQ0xykXxjj2DaOni5xOlV1T8/Nqo+iNUO7wh9bs3jViIFsxJKFzDTU/ulQ==} 128 + 129 + '@asamuzakjp/nwsapi@2.3.9': 130 + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} 131 + 132 + '@babel/code-frame@7.27.1': 133 + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 134 + engines: {node: '>=6.9.0'} 135 + 136 + '@babel/helper-string-parser@7.27.1': 137 + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 138 + engines: {node: '>=6.9.0'} 139 + 140 + '@babel/helper-validator-identifier@7.27.1': 141 + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 142 + engines: {node: '>=6.9.0'} 143 + 144 + '@babel/parser@7.28.4': 145 + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} 146 + engines: {node: '>=6.0.0'} 147 + hasBin: true 148 + 149 + '@babel/runtime@7.28.4': 150 + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} 151 + engines: {node: '>=6.9.0'} 152 + 153 + '@babel/types@7.28.4': 154 + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} 155 + engines: {node: '>=6.9.0'} 156 + 157 + '@csstools/color-helpers@5.1.0': 158 + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} 159 + engines: {node: '>=18'} 160 + 161 + '@csstools/css-calc@2.1.4': 162 + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} 163 + engines: {node: '>=18'} 164 + peerDependencies: 165 + '@csstools/css-parser-algorithms': ^3.0.5 166 + '@csstools/css-tokenizer': ^3.0.4 167 + 168 + '@csstools/css-color-parser@3.1.0': 169 + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} 170 + engines: {node: '>=18'} 171 + peerDependencies: 172 + '@csstools/css-parser-algorithms': ^3.0.5 173 + '@csstools/css-tokenizer': ^3.0.4 174 + 175 + '@csstools/css-parser-algorithms@3.0.5': 176 + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} 177 + engines: {node: '>=18'} 178 + peerDependencies: 179 + '@csstools/css-tokenizer': ^3.0.4 180 + 181 + '@csstools/css-syntax-patches-for-csstree@1.0.14': 182 + resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} 183 + engines: {node: '>=18'} 184 + peerDependencies: 185 + postcss: ^8.4 186 + 187 + '@csstools/css-tokenizer@3.0.4': 188 + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 189 + engines: {node: '>=18'} 190 + 191 + '@docsearch/css@3.8.2': 192 + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} 193 + 194 + '@docsearch/js@3.8.2': 195 + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} 196 + 197 + '@docsearch/react@3.8.2': 198 + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} 199 + peerDependencies: 200 + '@types/react': '>= 16.8.0 < 19.0.0' 201 + react: '>= 16.8.0 < 19.0.0' 202 + react-dom: '>= 16.8.0 < 19.0.0' 203 + search-insights: '>= 1 < 3' 204 + peerDependenciesMeta: 205 + '@types/react': 206 + optional: true 207 + react: 208 + optional: true 209 + react-dom: 210 + optional: true 211 + search-insights: 212 + optional: true 213 + 214 + '@dprint/darwin-arm64@0.50.2': 215 + resolution: {integrity: sha512-4d08INZlTxbPW9LK9W8+93viN543/qA2Kxn4azVnPW/xCb2Im03UqJBz8mMm3nJZdtNnK3uTVG3ib1VW+XJisw==} 216 + cpu: [arm64] 217 + os: [darwin] 218 + 219 + '@dprint/darwin-x64@0.50.2': 220 + resolution: {integrity: sha512-ZXWPBwdLojhdBATq+bKwJvB7D8bIzrD6eR/Xuq9UYE7evQazUiR069d9NPF0iVuzTo6wNf9ub9SXI7qDl11EGA==} 221 + cpu: [x64] 222 + os: [darwin] 223 + 224 + '@dprint/linux-arm64-glibc@0.50.2': 225 + resolution: {integrity: sha512-marxQzRw8atXAnaawwZHeeUaaAVewrGTlFKKcDASGyjPBhc23J5fHPUPremm8xCbgYZyTlokzrV8/1rDRWhJcw==} 226 + cpu: [arm64] 227 + os: [linux] 228 + 229 + '@dprint/linux-arm64-musl@0.50.2': 230 + resolution: {integrity: sha512-oGDq44ydzo0ZkJk6RHcUzUN5sOMT5HC6WA8kHXI6tkAsLUkaLO2DzZFfW4aAYZUn+hYNpQfQD8iGew0sjkyLyg==} 231 + cpu: [arm64] 232 + os: [linux] 233 + 234 + '@dprint/linux-riscv64-glibc@0.50.2': 235 + resolution: {integrity: sha512-QMmZoZYWsXezDcC03fBOwPfxhTpPEyHqutcgJ0oauN9QcSXGji9NSZITMmtLz2Ki3T1MIvdaLd1goGzNSvNqTQ==} 236 + cpu: [riscv64] 237 + os: [linux] 238 + 239 + '@dprint/linux-x64-glibc@0.50.2': 240 + resolution: {integrity: sha512-KMeHEzb4teQJChTgq8HuQzc+reRNDnarOTGTQovAZ9WNjOtKLViftsKWW5HsnRHtP5nUIPE9rF1QLjJ/gUsqvw==} 241 + cpu: [x64] 242 + os: [linux] 243 + 244 + '@dprint/linux-x64-musl@0.50.2': 245 + resolution: {integrity: sha512-qM37T7H69g5coBTfE7SsA+KZZaRBky6gaUhPgAYxW+fOsoVtZSVkXtfTtQauHTpqqOEtbxfCtum70Hz1fr1teg==} 246 + cpu: [x64] 247 + os: [linux] 248 + 249 + '@dprint/win32-arm64@0.50.2': 250 + resolution: {integrity: sha512-kuGVHGoxLwssVDsodefUIYQRoO2fQncurH/xKgXiZwMPOSzFcgUzYJQiyqmJEp+PENhO9VT1hXUHZtlyCAWBUQ==} 251 + cpu: [arm64] 252 + os: [win32] 253 + 254 + '@dprint/win32-x64@0.50.2': 255 + resolution: {integrity: sha512-N3l9k31c3IMfVXqL0L6ygIhJFvCIrfQ+Z5Jph6RnCcBO6oDYWeYhAv/qBk1vLsF2y/e79TKsR1tvaEwnrQ03XA==} 256 + cpu: [x64] 257 + os: [win32] 258 + 259 + '@emnapi/core@1.5.0': 260 + resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} 261 + 262 + '@emnapi/runtime@1.5.0': 263 + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} 264 + 265 + '@emnapi/wasi-threads@1.1.0': 266 + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} 267 + 268 + '@iconify-json/simple-icons@1.2.54': 269 + resolution: {integrity: sha512-OQQYl8yC5j3QklZOYnK31QYe5h47IhyCoxSLd53f0e0nA4dgi8VOZS30SgSAbsecQ+S0xlGJMjXIHTIqZ+ML3w==} 270 + 271 + '@iconify/types@2.0.0': 272 + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} 273 + 274 + '@jridgewell/sourcemap-codec@1.5.5': 275 + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 276 + 277 + '@napi-rs/wasm-runtime@1.0.7': 278 + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} 279 + 280 + '@oxc-project/runtime@0.92.0': 281 + resolution: {integrity: sha512-Z7x2dZOmznihvdvCvLKMl+nswtOSVxS2H2ocar+U9xx6iMfTp0VGIrX6a4xB1v80IwOPC7dT1LXIJrY70Xu3Jw==} 282 + engines: {node: ^20.19.0 || >=22.12.0} 283 + 284 + '@oxc-project/types@0.93.0': 285 + resolution: {integrity: sha512-yNtwmWZIBtJsMr5TEfoZFDxIWV6OdScOpza/f5YxbqUMJk+j6QX3Cf3jgZShGEFYWQJ5j9mJ6jM0tZHu2J9Yrg==} 286 + 287 + '@rolldown/binding-android-arm64@1.0.0-beta.41': 288 + resolution: {integrity: sha512-Edflndd9lU7JVhVIvJlZhdCj5DkhYDJPIRn4Dx0RUdfc8asP9xHOI5gMd8MesDDx+BJpdIT/uAmVTearteU/mQ==} 289 + engines: {node: ^20.19.0 || >=22.12.0} 290 + cpu: [arm64] 291 + os: [android] 292 + 293 + '@rolldown/binding-darwin-arm64@1.0.0-beta.41': 294 + resolution: {integrity: sha512-XGCzqfjdk7550PlyZRTBKbypXrB7ATtXhw/+bjtxnklLQs0mKP/XkQVOKyn9qGKSlvH8I56JLYryVxl0PCvSNw==} 295 + engines: {node: ^20.19.0 || >=22.12.0} 296 + cpu: [arm64] 297 + os: [darwin] 298 + 299 + '@rolldown/binding-darwin-x64@1.0.0-beta.41': 300 + resolution: {integrity: sha512-Ho6lIwGJed98zub7n0xcRKuEtnZgbxevAmO4x3zn3C3N4GVXZD5xvCvTVxSMoeBJwTcIYzkVDRTIhylQNsTgLQ==} 301 + engines: {node: ^20.19.0 || >=22.12.0} 302 + cpu: [x64] 303 + os: [darwin] 304 + 305 + '@rolldown/binding-freebsd-x64@1.0.0-beta.41': 306 + resolution: {integrity: sha512-ijAZETywvL+gACjbT4zBnCp5ez1JhTRs6OxRN4J+D6AzDRbU2zb01Esl51RP5/8ZOlvB37xxsRQ3X4YRVyYb3g==} 307 + engines: {node: ^20.19.0 || >=22.12.0} 308 + cpu: [x64] 309 + os: [freebsd] 310 + 311 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.41': 312 + resolution: {integrity: sha512-EgIOZt7UildXKFEFvaiLNBXm+4ggQyGe3E5Z1QP9uRcJJs9omihOnm897FwOBQdCuMvI49iBgjFrkhH+wMJ2MA==} 313 + engines: {node: ^20.19.0 || >=22.12.0} 314 + cpu: [arm] 315 + os: [linux] 316 + 317 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.41': 318 + resolution: {integrity: sha512-F8bUwJq8v/JAU8HSwgF4dztoqJ+FjdyjuvX4//3+Fbe2we9UktFeZ27U4lRMXF1vxWtdV4ey6oCSqI7yUrSEeg==} 319 + engines: {node: ^20.19.0 || >=22.12.0} 320 + cpu: [arm64] 321 + os: [linux] 322 + 323 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.41': 324 + resolution: {integrity: sha512-MioXcCIX/wB1pBnBoJx8q4OGucUAfC1+/X1ilKFsjDK05VwbLZGRgOVD5OJJpUQPK86DhQciNBrfOKDiatxNmg==} 325 + engines: {node: ^20.19.0 || >=22.12.0} 326 + cpu: [arm64] 327 + os: [linux] 328 + 329 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.41': 330 + resolution: {integrity: sha512-m66M61fizvRCwt5pOEiZQMiwBL9/y0bwU/+Kc4Ce/Pef6YfoEkR28y+DzN9rMdjo8Z28NXjsDPq9nH4mXnAP0g==} 331 + engines: {node: ^20.19.0 || >=22.12.0} 332 + cpu: [x64] 333 + os: [linux] 334 + 335 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.41': 336 + resolution: {integrity: sha512-yRxlSfBvWnnfrdtJfvi9lg8xfG5mPuyoSHm0X01oiE8ArmLRvoJGHUTJydCYz+wbK2esbq5J4B4Tq9WAsOlP1Q==} 337 + engines: {node: ^20.19.0 || >=22.12.0} 338 + cpu: [x64] 339 + os: [linux] 340 + 341 + '@rolldown/binding-openharmony-arm64@1.0.0-beta.41': 342 + resolution: {integrity: sha512-PHVxYhBpi8UViS3/hcvQQb9RFqCtvFmFU1PvUoTRiUdBtgHA6fONNHU4x796lgzNlVSD3DO/MZNk1s5/ozSMQg==} 343 + engines: {node: ^20.19.0 || >=22.12.0} 344 + cpu: [arm64] 345 + os: [openharmony] 346 + 347 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.41': 348 + resolution: {integrity: sha512-OAfcO37ME6GGWmj9qTaDT7jY4rM0T2z0/8ujdQIJQ2x2nl+ztO32EIwURfmXOK0U1tzkyuaKYvE34Pug/ucXlQ==} 349 + engines: {node: '>=14.0.0'} 350 + cpu: [wasm32] 351 + 352 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.41': 353 + resolution: {integrity: sha512-NIYGuCcuXaq5BC4Q3upbiMBvmZsTsEPG9k/8QKQdmrch+ocSy5Jv9tdpdmXJyighKqm182nh/zBt+tSJkYoNlg==} 354 + engines: {node: ^20.19.0 || >=22.12.0} 355 + cpu: [arm64] 356 + os: [win32] 357 + 358 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.41': 359 + resolution: {integrity: sha512-kANdsDbE5FkEOb5NrCGBJBCaZ2Sabp3D7d4PRqMYJqyLljwh9mDyYyYSv5+QNvdAmifj+f3lviNEUUuUZPEFPw==} 360 + engines: {node: ^20.19.0 || >=22.12.0} 361 + cpu: [ia32] 362 + os: [win32] 363 + 364 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.41': 365 + resolution: {integrity: sha512-UlpxKmFdik0Y2VjZrgUCgoYArZJiZllXgIipdBRV1hw6uK45UbQabSTW6Kp6enuOu7vouYWftwhuxfpE8J2JAg==} 366 + engines: {node: ^20.19.0 || >=22.12.0} 367 + cpu: [x64] 368 + os: [win32] 369 + 370 + '@rolldown/pluginutils@1.0.0-beta.41': 371 + resolution: {integrity: sha512-ycMEPrS3StOIeb87BT3/+bu+blEtyvwQ4zmo2IcJQy0Rd1DAAhKksA0iUZ3MYSpJtjlPhg0Eo6mvVS6ggPhRbw==} 372 + 373 + '@shikijs/core@2.5.0': 374 + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} 375 + 376 + '@shikijs/engine-javascript@2.5.0': 377 + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} 378 + 379 + '@shikijs/engine-oniguruma@2.5.0': 380 + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} 381 + 382 + '@shikijs/langs@2.5.0': 383 + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} 384 + 385 + '@shikijs/themes@2.5.0': 386 + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} 387 + 388 + '@shikijs/transformers@2.5.0': 389 + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} 390 + 391 + '@shikijs/types@2.5.0': 392 + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} 393 + 394 + '@shikijs/vscode-textmate@10.0.2': 395 + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} 396 + 397 + '@testing-library/dom@10.4.1': 398 + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} 399 + engines: {node: '>=18'} 400 + 401 + '@testing-library/jest-dom@6.9.1': 402 + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} 403 + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} 404 + 405 + '@tybys/wasm-util@0.10.1': 406 + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} 407 + 408 + '@types/aria-query@5.0.4': 409 + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 410 + 411 + '@types/chai@5.2.2': 412 + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} 413 + 414 + '@types/deep-eql@4.0.2': 415 + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} 416 + 417 + '@types/estree@1.0.8': 418 + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 419 + 420 + '@types/hast@3.0.4': 421 + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} 422 + 423 + '@types/linkify-it@5.0.0': 424 + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 425 + 426 + '@types/markdown-it@14.1.2': 427 + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 428 + 429 + '@types/mdast@4.0.4': 430 + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} 431 + 432 + '@types/mdurl@2.0.0': 433 + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 434 + 435 + '@types/unist@3.0.3': 436 + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} 437 + 438 + '@types/web-bluetooth@0.0.21': 439 + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} 440 + 441 + '@ungap/structured-clone@1.3.0': 442 + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 443 + 444 + '@vitejs/plugin-vue@5.2.4': 445 + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} 446 + engines: {node: ^18.0.0 || >=20.0.0} 447 + peerDependencies: 448 + vite: ^5.0.0 || ^6.0.0 449 + vue: ^3.2.25 450 + 451 + '@vitest/expect@3.2.4': 452 + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} 453 + 454 + '@vitest/mocker@3.2.4': 455 + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} 456 + peerDependencies: 457 + msw: ^2.4.9 458 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 459 + peerDependenciesMeta: 460 + msw: 461 + optional: true 462 + vite: 463 + optional: true 464 + 465 + '@vitest/pretty-format@3.2.4': 466 + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} 467 + 468 + '@vitest/runner@3.2.4': 469 + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} 470 + 471 + '@vitest/snapshot@3.2.4': 472 + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} 473 + 474 + '@vitest/spy@3.2.4': 475 + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} 476 + 477 + '@vitest/utils@3.2.4': 478 + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} 479 + 480 + '@vue/compiler-core@3.5.22': 481 + resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} 482 + 483 + '@vue/compiler-dom@3.5.22': 484 + resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} 485 + 486 + '@vue/compiler-sfc@3.5.22': 487 + resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} 488 + 489 + '@vue/compiler-ssr@3.5.22': 490 + resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} 491 + 492 + '@vue/devtools-api@7.7.7': 493 + resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==} 494 + 495 + '@vue/devtools-kit@7.7.7': 496 + resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} 497 + 498 + '@vue/devtools-shared@7.7.7': 499 + resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} 500 + 501 + '@vue/reactivity@3.5.22': 502 + resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} 503 + 504 + '@vue/runtime-core@3.5.22': 505 + resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} 506 + 507 + '@vue/runtime-dom@3.5.22': 508 + resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} 509 + 510 + '@vue/server-renderer@3.5.22': 511 + resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} 512 + peerDependencies: 513 + vue: 3.5.22 514 + 515 + '@vue/shared@3.5.22': 516 + resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} 517 + 518 + '@vueuse/core@12.8.2': 519 + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} 520 + 521 + '@vueuse/integrations@12.8.2': 522 + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} 523 + peerDependencies: 524 + async-validator: ^4 525 + axios: ^1 526 + change-case: ^5 527 + drauu: ^0.4 528 + focus-trap: ^7 529 + fuse.js: ^7 530 + idb-keyval: ^6 531 + jwt-decode: ^4 532 + nprogress: ^0.2 533 + qrcode: ^1.5 534 + sortablejs: ^1 535 + universal-cookie: ^7 536 + peerDependenciesMeta: 537 + async-validator: 538 + optional: true 539 + axios: 540 + optional: true 541 + change-case: 542 + optional: true 543 + drauu: 544 + optional: true 545 + focus-trap: 546 + optional: true 547 + fuse.js: 548 + optional: true 549 + idb-keyval: 550 + optional: true 551 + jwt-decode: 552 + optional: true 553 + nprogress: 554 + optional: true 555 + qrcode: 556 + optional: true 557 + sortablejs: 558 + optional: true 559 + universal-cookie: 560 + optional: true 561 + 562 + '@vueuse/metadata@12.8.2': 563 + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} 564 + 565 + '@vueuse/shared@12.8.2': 566 + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} 567 + 568 + agent-base@7.1.4: 569 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 570 + engines: {node: '>= 14'} 571 + 572 + algoliasearch@5.40.1: 573 + resolution: {integrity: sha512-iUNxcXUNg9085TJx0HJLjqtDE0r1RZ0GOGrt8KNQqQT5ugu8lZsHuMUYW/e0lHhq6xBvmktU9Bw4CXP9VQeKrg==} 574 + engines: {node: '>= 14.0.0'} 575 + 576 + ansi-regex@5.0.1: 577 + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 578 + engines: {node: '>=8'} 579 + 580 + ansi-styles@5.2.0: 581 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 582 + engines: {node: '>=10'} 583 + 584 + ansis@4.2.0: 585 + resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 586 + engines: {node: '>=14'} 587 + 588 + aria-query@5.3.0: 589 + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 590 + 591 + aria-query@5.3.2: 592 + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} 593 + engines: {node: '>= 0.4'} 594 + 595 + assertion-error@2.0.1: 596 + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 597 + engines: {node: '>=12'} 598 + 599 + bidi-js@1.0.3: 600 + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} 601 + 602 + birpc@2.6.1: 603 + resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} 604 + 605 + cac@6.7.14: 606 + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 607 + engines: {node: '>=8'} 608 + 609 + ccount@2.0.1: 610 + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} 611 + 612 + chai@5.3.3: 613 + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} 614 + engines: {node: '>=18'} 615 + 616 + character-entities-html4@2.1.0: 617 + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} 618 + 619 + character-entities-legacy@3.0.0: 620 + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} 621 + 622 + check-error@2.1.1: 623 + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 624 + engines: {node: '>= 16'} 625 + 626 + comma-separated-tokens@2.0.3: 627 + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} 628 + 629 + copy-anything@3.0.5: 630 + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} 631 + engines: {node: '>=12.13'} 632 + 633 + css-tree@3.1.0: 634 + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} 635 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 636 + 637 + css.escape@1.5.1: 638 + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} 639 + 640 + cssstyle@5.3.1: 641 + resolution: {integrity: sha512-g5PC9Aiph9eiczFpcgUhd9S4UUO3F+LHGRIi5NUMZ+4xtoIYbHNZwZnWA2JsFGe8OU8nl4WyaEFiZuGuxlutJQ==} 642 + engines: {node: '>=20'} 643 + 644 + csstype@3.1.3: 645 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 646 + 647 + data-urls@6.0.0: 648 + resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} 649 + engines: {node: '>=20'} 650 + 651 + debug@4.4.3: 652 + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 653 + engines: {node: '>=6.0'} 654 + peerDependencies: 655 + supports-color: '*' 656 + peerDependenciesMeta: 657 + supports-color: 658 + optional: true 659 + 660 + decimal.js@10.6.0: 661 + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} 662 + 663 + deep-eql@5.0.2: 664 + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 665 + engines: {node: '>=6'} 666 + 667 + dequal@2.0.3: 668 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 669 + engines: {node: '>=6'} 670 + 671 + detect-libc@2.1.2: 672 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 673 + engines: {node: '>=8'} 674 + 675 + devlop@1.1.0: 676 + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} 677 + 678 + dom-accessibility-api@0.5.16: 679 + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 680 + 681 + dom-accessibility-api@0.6.3: 682 + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} 683 + 684 + dprint@0.50.2: 685 + resolution: {integrity: sha512-+0Fzg+17jsMMUouK00/Fara5YtGOuE76EAJINHB8VpkXHd0n00rMXtw/03qorOgz23eo8Y0UpYvNZBJJo3aNtw==} 686 + hasBin: true 687 + 688 + emoji-regex-xs@1.0.0: 689 + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} 690 + 691 + entities@4.5.0: 692 + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 693 + engines: {node: '>=0.12'} 694 + 695 + entities@6.0.1: 696 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 697 + engines: {node: '>=0.12'} 698 + 699 + es-module-lexer@1.7.0: 700 + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 701 + 702 + estree-walker@2.0.2: 703 + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 704 + 705 + estree-walker@3.0.3: 706 + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 707 + 708 + expect-type@1.2.2: 709 + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} 710 + engines: {node: '>=12.0.0'} 711 + 712 + fdir@6.5.0: 713 + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 714 + engines: {node: '>=12.0.0'} 715 + peerDependencies: 716 + picomatch: ^3 || ^4 717 + peerDependenciesMeta: 718 + picomatch: 719 + optional: true 720 + 721 + focus-trap@7.6.5: 722 + resolution: {integrity: sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==} 723 + 724 + fsevents@2.3.3: 725 + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 726 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 727 + os: [darwin] 728 + 729 + hast-util-to-html@9.0.5: 730 + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} 731 + 732 + hast-util-whitespace@3.0.0: 733 + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} 734 + 735 + hookable@5.5.3: 736 + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 737 + 738 + html-encoding-sniffer@4.0.0: 739 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 740 + engines: {node: '>=18'} 741 + 742 + html-void-elements@3.0.0: 743 + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} 744 + 745 + http-proxy-agent@7.0.2: 746 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 747 + engines: {node: '>= 14'} 748 + 749 + https-proxy-agent@7.0.6: 750 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 751 + engines: {node: '>= 14'} 752 + 753 + iconv-lite@0.6.3: 754 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 755 + engines: {node: '>=0.10.0'} 756 + 757 + indent-string@4.0.0: 758 + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 759 + engines: {node: '>=8'} 760 + 761 + is-potential-custom-element-name@1.0.1: 762 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 763 + 764 + is-what@4.1.16: 765 + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} 766 + engines: {node: '>=12.13'} 767 + 768 + js-tokens@4.0.0: 769 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 770 + 771 + js-tokens@9.0.1: 772 + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 773 + 774 + jsdom@27.0.0: 775 + resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} 776 + engines: {node: '>=20'} 777 + peerDependencies: 778 + canvas: ^3.0.0 779 + peerDependenciesMeta: 780 + canvas: 781 + optional: true 782 + 783 + lightningcss-android-arm64@1.30.2: 784 + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} 785 + engines: {node: '>= 12.0.0'} 786 + cpu: [arm64] 787 + os: [android] 788 + 789 + lightningcss-darwin-arm64@1.30.2: 790 + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} 791 + engines: {node: '>= 12.0.0'} 792 + cpu: [arm64] 793 + os: [darwin] 794 + 795 + lightningcss-darwin-x64@1.30.2: 796 + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} 797 + engines: {node: '>= 12.0.0'} 798 + cpu: [x64] 799 + os: [darwin] 800 + 801 + lightningcss-freebsd-x64@1.30.2: 802 + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} 803 + engines: {node: '>= 12.0.0'} 804 + cpu: [x64] 805 + os: [freebsd] 806 + 807 + lightningcss-linux-arm-gnueabihf@1.30.2: 808 + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} 809 + engines: {node: '>= 12.0.0'} 810 + cpu: [arm] 811 + os: [linux] 812 + 813 + lightningcss-linux-arm64-gnu@1.30.2: 814 + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} 815 + engines: {node: '>= 12.0.0'} 816 + cpu: [arm64] 817 + os: [linux] 818 + 819 + lightningcss-linux-arm64-musl@1.30.2: 820 + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} 821 + engines: {node: '>= 12.0.0'} 822 + cpu: [arm64] 823 + os: [linux] 824 + 825 + lightningcss-linux-x64-gnu@1.30.2: 826 + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} 827 + engines: {node: '>= 12.0.0'} 828 + cpu: [x64] 829 + os: [linux] 830 + 831 + lightningcss-linux-x64-musl@1.30.2: 832 + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} 833 + engines: {node: '>= 12.0.0'} 834 + cpu: [x64] 835 + os: [linux] 836 + 837 + lightningcss-win32-arm64-msvc@1.30.2: 838 + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} 839 + engines: {node: '>= 12.0.0'} 840 + cpu: [arm64] 841 + os: [win32] 842 + 843 + lightningcss-win32-x64-msvc@1.30.2: 844 + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} 845 + engines: {node: '>= 12.0.0'} 846 + cpu: [x64] 847 + os: [win32] 848 + 849 + lightningcss@1.30.2: 850 + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} 851 + engines: {node: '>= 12.0.0'} 852 + 853 + loupe@3.2.1: 854 + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} 855 + 856 + lru-cache@11.2.2: 857 + resolution: {integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==} 858 + engines: {node: 20 || >=22} 859 + 860 + lz-string@1.5.0: 861 + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 862 + hasBin: true 863 + 864 + magic-string@0.30.19: 865 + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 866 + 867 + mark.js@8.11.1: 868 + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} 869 + 870 + mdast-util-to-hast@13.2.0: 871 + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} 872 + 873 + mdn-data@2.12.2: 874 + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} 875 + 876 + micromark-util-character@2.1.1: 877 + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} 878 + 879 + micromark-util-encode@2.0.1: 880 + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} 881 + 882 + micromark-util-sanitize-uri@2.0.1: 883 + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} 884 + 885 + micromark-util-symbol@2.0.1: 886 + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} 887 + 888 + micromark-util-types@2.0.2: 889 + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} 890 + 891 + min-indent@1.0.1: 892 + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 893 + engines: {node: '>=4'} 894 + 895 + minisearch@7.2.0: 896 + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} 897 + 898 + mitt@3.0.1: 899 + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} 900 + 901 + ms@2.1.3: 902 + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 903 + 904 + nanoid@3.3.11: 905 + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 906 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 907 + hasBin: true 908 + 909 + oniguruma-to-es@3.1.1: 910 + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} 911 + 912 + parse5@7.3.0: 913 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 914 + 915 + pathe@2.0.3: 916 + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 917 + 918 + pathval@2.0.1: 919 + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} 920 + engines: {node: '>= 14.16'} 921 + 922 + perfect-debounce@1.0.0: 923 + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} 924 + 925 + picocolors@1.1.1: 926 + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 927 + 928 + picomatch@4.0.3: 929 + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 930 + engines: {node: '>=12'} 931 + 932 + postcss@8.5.6: 933 + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 934 + engines: {node: ^10 || ^12 || >=14} 935 + 936 + preact@10.27.2: 937 + resolution: {integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==} 938 + 939 + pretty-format@27.5.1: 940 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 941 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 942 + 943 + property-information@7.1.0: 944 + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} 945 + 946 + punycode@2.3.1: 947 + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 948 + engines: {node: '>=6'} 949 + 950 + react-is@17.0.2: 951 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 952 + 953 + redent@3.0.0: 954 + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 955 + engines: {node: '>=8'} 956 + 957 + regex-recursion@6.0.2: 958 + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} 959 + 960 + regex-utilities@2.3.0: 961 + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} 962 + 963 + regex@6.0.1: 964 + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} 965 + 966 + require-from-string@2.0.2: 967 + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 968 + engines: {node: '>=0.10.0'} 969 + 970 + rfdc@1.4.1: 971 + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} 972 + 973 + rolldown-vite@7.1.14: 974 + resolution: {integrity: sha512-eSiiRJmovt8qDJkGyZuLnbxAOAdie6NCmmd0NkTC0RJI9duiSBTfr8X2mBYJOUFzxQa2USaHmL99J9uMxkjCyw==} 975 + engines: {node: ^20.19.0 || >=22.12.0} 976 + hasBin: true 977 + peerDependencies: 978 + '@types/node': ^20.19.0 || >=22.12.0 979 + esbuild: ^0.25.0 980 + jiti: '>=1.21.0' 981 + less: ^4.0.0 982 + sass: ^1.70.0 983 + sass-embedded: ^1.70.0 984 + stylus: '>=0.54.8' 985 + sugarss: ^5.0.0 986 + terser: ^5.16.0 987 + tsx: ^4.8.1 988 + yaml: ^2.4.2 989 + peerDependenciesMeta: 990 + '@types/node': 991 + optional: true 992 + esbuild: 993 + optional: true 994 + jiti: 995 + optional: true 996 + less: 997 + optional: true 998 + sass: 999 + optional: true 1000 + sass-embedded: 1001 + optional: true 1002 + stylus: 1003 + optional: true 1004 + sugarss: 1005 + optional: true 1006 + terser: 1007 + optional: true 1008 + tsx: 1009 + optional: true 1010 + yaml: 1011 + optional: true 1012 + 1013 + rolldown@1.0.0-beta.41: 1014 + resolution: {integrity: sha512-U+NPR0Bkg3wm61dteD2L4nAM1U9dtaqVrpDXwC36IKRHpEO/Ubpid4Nijpa2imPchcVNHfxVFwSSMJdwdGFUbg==} 1015 + engines: {node: ^20.19.0 || >=22.12.0} 1016 + hasBin: true 1017 + 1018 + rrweb-cssom@0.8.0: 1019 + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 1020 + 1021 + safer-buffer@2.1.2: 1022 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1023 + 1024 + saxes@6.0.0: 1025 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1026 + engines: {node: '>=v12.22.7'} 1027 + 1028 + search-insights@2.17.3: 1029 + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} 1030 + 1031 + shiki@2.5.0: 1032 + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} 1033 + 1034 + siginfo@2.0.0: 1035 + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1036 + 1037 + source-map-js@1.2.1: 1038 + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1039 + engines: {node: '>=0.10.0'} 1040 + 1041 + space-separated-tokens@2.0.2: 1042 + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} 1043 + 1044 + speakingurl@14.0.1: 1045 + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} 1046 + engines: {node: '>=0.10.0'} 1047 + 1048 + stackback@0.0.2: 1049 + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1050 + 1051 + std-env@3.10.0: 1052 + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} 1053 + 1054 + stringify-entities@4.0.4: 1055 + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} 1056 + 1057 + strip-indent@3.0.0: 1058 + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1059 + engines: {node: '>=8'} 1060 + 1061 + strip-literal@3.1.0: 1062 + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} 1063 + 1064 + superjson@2.2.2: 1065 + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} 1066 + engines: {node: '>=16'} 1067 + 1068 + symbol-tree@3.2.4: 1069 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1070 + 1071 + tabbable@6.2.0: 1072 + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 1073 + 1074 + tinybench@2.9.0: 1075 + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1076 + 1077 + tinyexec@0.3.2: 1078 + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} 1079 + 1080 + tinyglobby@0.2.15: 1081 + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} 1082 + engines: {node: '>=12.0.0'} 1083 + 1084 + tinypool@1.1.1: 1085 + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} 1086 + engines: {node: ^18.0.0 || >=20.0.0} 1087 + 1088 + tinyrainbow@2.0.0: 1089 + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} 1090 + engines: {node: '>=14.0.0'} 1091 + 1092 + tinyspy@4.0.4: 1093 + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} 1094 + engines: {node: '>=14.0.0'} 1095 + 1096 + tldts-core@7.0.17: 1097 + resolution: {integrity: sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==} 1098 + 1099 + tldts@7.0.17: 1100 + resolution: {integrity: sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==} 1101 + hasBin: true 1102 + 1103 + tough-cookie@6.0.0: 1104 + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} 1105 + engines: {node: '>=16'} 1106 + 1107 + tr46@6.0.0: 1108 + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} 1109 + engines: {node: '>=20'} 1110 + 1111 + trim-lines@3.0.1: 1112 + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} 1113 + 1114 + tslib@2.8.1: 1115 + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1116 + 1117 + typescript@5.9.3: 1118 + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} 1119 + engines: {node: '>=14.17'} 1120 + hasBin: true 1121 + 1122 + unist-util-is@6.0.1: 1123 + resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} 1124 + 1125 + unist-util-position@5.0.0: 1126 + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} 1127 + 1128 + unist-util-stringify-position@4.0.0: 1129 + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} 1130 + 1131 + unist-util-visit-parents@6.0.2: 1132 + resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==} 1133 + 1134 + unist-util-visit@5.0.0: 1135 + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} 1136 + 1137 + vfile-message@4.0.3: 1138 + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} 1139 + 1140 + vfile@6.0.3: 1141 + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} 1142 + 1143 + vite-node@3.2.4: 1144 + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} 1145 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1146 + hasBin: true 1147 + 1148 + vitepress@1.6.4: 1149 + resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} 1150 + hasBin: true 1151 + peerDependencies: 1152 + markdown-it-mathjax3: ^4 1153 + postcss: ^8 1154 + peerDependenciesMeta: 1155 + markdown-it-mathjax3: 1156 + optional: true 1157 + postcss: 1158 + optional: true 1159 + 1160 + vitest@3.2.4: 1161 + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} 1162 + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1163 + hasBin: true 1164 + peerDependencies: 1165 + '@edge-runtime/vm': '*' 1166 + '@types/debug': ^4.1.12 1167 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1168 + '@vitest/browser': 3.2.4 1169 + '@vitest/ui': 3.2.4 1170 + happy-dom: '*' 1171 + jsdom: '*' 1172 + peerDependenciesMeta: 1173 + '@edge-runtime/vm': 1174 + optional: true 1175 + '@types/debug': 1176 + optional: true 1177 + '@types/node': 1178 + optional: true 1179 + '@vitest/browser': 1180 + optional: true 1181 + '@vitest/ui': 1182 + optional: true 1183 + happy-dom: 1184 + optional: true 1185 + jsdom: 1186 + optional: true 1187 + 1188 + vue@3.5.22: 1189 + resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==} 1190 + peerDependencies: 1191 + typescript: '*' 1192 + peerDependenciesMeta: 1193 + typescript: 1194 + optional: true 1195 + 1196 + w3c-xmlserializer@5.0.0: 1197 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1198 + engines: {node: '>=18'} 1199 + 1200 + webidl-conversions@8.0.0: 1201 + resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} 1202 + engines: {node: '>=20'} 1203 + 1204 + whatwg-encoding@3.1.1: 1205 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1206 + engines: {node: '>=18'} 1207 + 1208 + whatwg-mimetype@4.0.0: 1209 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1210 + engines: {node: '>=18'} 1211 + 1212 + whatwg-url@15.1.0: 1213 + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} 1214 + engines: {node: '>=20'} 1215 + 1216 + why-is-node-running@2.3.0: 1217 + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1218 + engines: {node: '>=8'} 1219 + hasBin: true 1220 + 1221 + ws@8.18.3: 1222 + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 1223 + engines: {node: '>=10.0.0'} 1224 + peerDependencies: 1225 + bufferutil: ^4.0.1 1226 + utf-8-validate: '>=5.0.2' 1227 + peerDependenciesMeta: 1228 + bufferutil: 1229 + optional: true 1230 + utf-8-validate: 1231 + optional: true 1232 + 1233 + xml-name-validator@5.0.0: 1234 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 1235 + engines: {node: '>=18'} 1236 + 1237 + xmlchars@2.2.0: 1238 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 1239 + 1240 + zwitch@2.0.4: 1241 + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} 1242 + 1243 + snapshots: 1244 + 1245 + '@adobe/css-tools@4.4.4': {} 1246 + 1247 + '@algolia/abtesting@1.6.1': 1248 + dependencies: 1249 + '@algolia/client-common': 5.40.1 1250 + '@algolia/requester-browser-xhr': 5.40.1 1251 + '@algolia/requester-fetch': 5.40.1 1252 + '@algolia/requester-node-http': 5.40.1 1253 + 1254 + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3)': 1255 + dependencies: 1256 + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3) 1257 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) 1258 + transitivePeerDependencies: 1259 + - '@algolia/client-search' 1260 + - algoliasearch 1261 + - search-insights 1262 + 1263 + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3)': 1264 + dependencies: 1265 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) 1266 + search-insights: 2.17.3 1267 + transitivePeerDependencies: 1268 + - '@algolia/client-search' 1269 + - algoliasearch 1270 + 1271 + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)': 1272 + dependencies: 1273 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) 1274 + '@algolia/client-search': 5.40.1 1275 + algoliasearch: 5.40.1 1276 + 1277 + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)': 1278 + dependencies: 1279 + '@algolia/client-search': 5.40.1 1280 + algoliasearch: 5.40.1 1281 + 1282 + '@algolia/client-abtesting@5.40.1': 1283 + dependencies: 1284 + '@algolia/client-common': 5.40.1 1285 + '@algolia/requester-browser-xhr': 5.40.1 1286 + '@algolia/requester-fetch': 5.40.1 1287 + '@algolia/requester-node-http': 5.40.1 1288 + 1289 + '@algolia/client-analytics@5.40.1': 1290 + dependencies: 1291 + '@algolia/client-common': 5.40.1 1292 + '@algolia/requester-browser-xhr': 5.40.1 1293 + '@algolia/requester-fetch': 5.40.1 1294 + '@algolia/requester-node-http': 5.40.1 1295 + 1296 + '@algolia/client-common@5.40.1': {} 1297 + 1298 + '@algolia/client-insights@5.40.1': 1299 + dependencies: 1300 + '@algolia/client-common': 5.40.1 1301 + '@algolia/requester-browser-xhr': 5.40.1 1302 + '@algolia/requester-fetch': 5.40.1 1303 + '@algolia/requester-node-http': 5.40.1 1304 + 1305 + '@algolia/client-personalization@5.40.1': 1306 + dependencies: 1307 + '@algolia/client-common': 5.40.1 1308 + '@algolia/requester-browser-xhr': 5.40.1 1309 + '@algolia/requester-fetch': 5.40.1 1310 + '@algolia/requester-node-http': 5.40.1 1311 + 1312 + '@algolia/client-query-suggestions@5.40.1': 1313 + dependencies: 1314 + '@algolia/client-common': 5.40.1 1315 + '@algolia/requester-browser-xhr': 5.40.1 1316 + '@algolia/requester-fetch': 5.40.1 1317 + '@algolia/requester-node-http': 5.40.1 1318 + 1319 + '@algolia/client-search@5.40.1': 1320 + dependencies: 1321 + '@algolia/client-common': 5.40.1 1322 + '@algolia/requester-browser-xhr': 5.40.1 1323 + '@algolia/requester-fetch': 5.40.1 1324 + '@algolia/requester-node-http': 5.40.1 1325 + 1326 + '@algolia/ingestion@1.40.1': 1327 + dependencies: 1328 + '@algolia/client-common': 5.40.1 1329 + '@algolia/requester-browser-xhr': 5.40.1 1330 + '@algolia/requester-fetch': 5.40.1 1331 + '@algolia/requester-node-http': 5.40.1 1332 + 1333 + '@algolia/monitoring@1.40.1': 1334 + dependencies: 1335 + '@algolia/client-common': 5.40.1 1336 + '@algolia/requester-browser-xhr': 5.40.1 1337 + '@algolia/requester-fetch': 5.40.1 1338 + '@algolia/requester-node-http': 5.40.1 1339 + 1340 + '@algolia/recommend@5.40.1': 1341 + dependencies: 1342 + '@algolia/client-common': 5.40.1 1343 + '@algolia/requester-browser-xhr': 5.40.1 1344 + '@algolia/requester-fetch': 5.40.1 1345 + '@algolia/requester-node-http': 5.40.1 1346 + 1347 + '@algolia/requester-browser-xhr@5.40.1': 1348 + dependencies: 1349 + '@algolia/client-common': 5.40.1 1350 + 1351 + '@algolia/requester-fetch@5.40.1': 1352 + dependencies: 1353 + '@algolia/client-common': 5.40.1 1354 + 1355 + '@algolia/requester-node-http@5.40.1': 1356 + dependencies: 1357 + '@algolia/client-common': 5.40.1 1358 + 1359 + '@asamuzakjp/css-color@4.0.5': 1360 + dependencies: 1361 + '@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) 1362 + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 1363 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 1364 + '@csstools/css-tokenizer': 3.0.4 1365 + lru-cache: 11.2.2 1366 + 1367 + '@asamuzakjp/dom-selector@6.7.0': 1368 + dependencies: 1369 + '@asamuzakjp/nwsapi': 2.3.9 1370 + bidi-js: 1.0.3 1371 + css-tree: 3.1.0 1372 + is-potential-custom-element-name: 1.0.1 1373 + lru-cache: 11.2.2 1374 + 1375 + '@asamuzakjp/nwsapi@2.3.9': {} 1376 + 1377 + '@babel/code-frame@7.27.1': 1378 + dependencies: 1379 + '@babel/helper-validator-identifier': 7.27.1 1380 + js-tokens: 4.0.0 1381 + picocolors: 1.1.1 1382 + 1383 + '@babel/helper-string-parser@7.27.1': {} 1384 + 1385 + '@babel/helper-validator-identifier@7.27.1': {} 1386 + 1387 + '@babel/parser@7.28.4': 1388 + dependencies: 1389 + '@babel/types': 7.28.4 1390 + 1391 + '@babel/runtime@7.28.4': {} 1392 + 1393 + '@babel/types@7.28.4': 1394 + dependencies: 1395 + '@babel/helper-string-parser': 7.27.1 1396 + '@babel/helper-validator-identifier': 7.27.1 1397 + 1398 + '@csstools/color-helpers@5.1.0': {} 1399 + 1400 + '@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)': 1401 + dependencies: 1402 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 1403 + '@csstools/css-tokenizer': 3.0.4 1404 + 1405 + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 1406 + dependencies: 1407 + '@csstools/color-helpers': 5.1.0 1408 + '@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) 1409 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 1410 + '@csstools/css-tokenizer': 3.0.4 1411 + 1412 + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': 1413 + dependencies: 1414 + '@csstools/css-tokenizer': 3.0.4 1415 + 1416 + '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': 1417 + dependencies: 1418 + postcss: 8.5.6 1419 + 1420 + '@csstools/css-tokenizer@3.0.4': {} 1421 + 1422 + '@docsearch/css@3.8.2': {} 1423 + 1424 + '@docsearch/js@3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3)': 1425 + dependencies: 1426 + '@docsearch/react': 3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3) 1427 + preact: 10.27.2 1428 + transitivePeerDependencies: 1429 + - '@algolia/client-search' 1430 + - '@types/react' 1431 + - react 1432 + - react-dom 1433 + - search-insights 1434 + 1435 + '@docsearch/react@3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3)': 1436 + dependencies: 1437 + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1)(search-insights@2.17.3) 1438 + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.40.1)(algoliasearch@5.40.1) 1439 + '@docsearch/css': 3.8.2 1440 + algoliasearch: 5.40.1 1441 + optionalDependencies: 1442 + search-insights: 2.17.3 1443 + transitivePeerDependencies: 1444 + - '@algolia/client-search' 1445 + 1446 + '@dprint/darwin-arm64@0.50.2': 1447 + optional: true 1448 + 1449 + '@dprint/darwin-x64@0.50.2': 1450 + optional: true 1451 + 1452 + '@dprint/linux-arm64-glibc@0.50.2': 1453 + optional: true 1454 + 1455 + '@dprint/linux-arm64-musl@0.50.2': 1456 + optional: true 1457 + 1458 + '@dprint/linux-riscv64-glibc@0.50.2': 1459 + optional: true 1460 + 1461 + '@dprint/linux-x64-glibc@0.50.2': 1462 + optional: true 1463 + 1464 + '@dprint/linux-x64-musl@0.50.2': 1465 + optional: true 1466 + 1467 + '@dprint/win32-arm64@0.50.2': 1468 + optional: true 1469 + 1470 + '@dprint/win32-x64@0.50.2': 1471 + optional: true 1472 + 1473 + '@emnapi/core@1.5.0': 1474 + dependencies: 1475 + '@emnapi/wasi-threads': 1.1.0 1476 + tslib: 2.8.1 1477 + optional: true 1478 + 1479 + '@emnapi/runtime@1.5.0': 1480 + dependencies: 1481 + tslib: 2.8.1 1482 + optional: true 1483 + 1484 + '@emnapi/wasi-threads@1.1.0': 1485 + dependencies: 1486 + tslib: 2.8.1 1487 + optional: true 1488 + 1489 + '@iconify-json/simple-icons@1.2.54': 1490 + dependencies: 1491 + '@iconify/types': 2.0.0 1492 + 1493 + '@iconify/types@2.0.0': {} 1494 + 1495 + '@jridgewell/sourcemap-codec@1.5.5': {} 1496 + 1497 + '@napi-rs/wasm-runtime@1.0.7': 1498 + dependencies: 1499 + '@emnapi/core': 1.5.0 1500 + '@emnapi/runtime': 1.5.0 1501 + '@tybys/wasm-util': 0.10.1 1502 + optional: true 1503 + 1504 + '@oxc-project/runtime@0.92.0': {} 1505 + 1506 + '@oxc-project/types@0.93.0': {} 1507 + 1508 + '@rolldown/binding-android-arm64@1.0.0-beta.41': 1509 + optional: true 1510 + 1511 + '@rolldown/binding-darwin-arm64@1.0.0-beta.41': 1512 + optional: true 1513 + 1514 + '@rolldown/binding-darwin-x64@1.0.0-beta.41': 1515 + optional: true 1516 + 1517 + '@rolldown/binding-freebsd-x64@1.0.0-beta.41': 1518 + optional: true 1519 + 1520 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.41': 1521 + optional: true 1522 + 1523 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.41': 1524 + optional: true 1525 + 1526 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.41': 1527 + optional: true 1528 + 1529 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.41': 1530 + optional: true 1531 + 1532 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.41': 1533 + optional: true 1534 + 1535 + '@rolldown/binding-openharmony-arm64@1.0.0-beta.41': 1536 + optional: true 1537 + 1538 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.41': 1539 + dependencies: 1540 + '@napi-rs/wasm-runtime': 1.0.7 1541 + optional: true 1542 + 1543 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.41': 1544 + optional: true 1545 + 1546 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.41': 1547 + optional: true 1548 + 1549 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.41': 1550 + optional: true 1551 + 1552 + '@rolldown/pluginutils@1.0.0-beta.41': {} 1553 + 1554 + '@shikijs/core@2.5.0': 1555 + dependencies: 1556 + '@shikijs/engine-javascript': 2.5.0 1557 + '@shikijs/engine-oniguruma': 2.5.0 1558 + '@shikijs/types': 2.5.0 1559 + '@shikijs/vscode-textmate': 10.0.2 1560 + '@types/hast': 3.0.4 1561 + hast-util-to-html: 9.0.5 1562 + 1563 + '@shikijs/engine-javascript@2.5.0': 1564 + dependencies: 1565 + '@shikijs/types': 2.5.0 1566 + '@shikijs/vscode-textmate': 10.0.2 1567 + oniguruma-to-es: 3.1.1 1568 + 1569 + '@shikijs/engine-oniguruma@2.5.0': 1570 + dependencies: 1571 + '@shikijs/types': 2.5.0 1572 + '@shikijs/vscode-textmate': 10.0.2 1573 + 1574 + '@shikijs/langs@2.5.0': 1575 + dependencies: 1576 + '@shikijs/types': 2.5.0 1577 + 1578 + '@shikijs/themes@2.5.0': 1579 + dependencies: 1580 + '@shikijs/types': 2.5.0 1581 + 1582 + '@shikijs/transformers@2.5.0': 1583 + dependencies: 1584 + '@shikijs/core': 2.5.0 1585 + '@shikijs/types': 2.5.0 1586 + 1587 + '@shikijs/types@2.5.0': 1588 + dependencies: 1589 + '@shikijs/vscode-textmate': 10.0.2 1590 + '@types/hast': 3.0.4 1591 + 1592 + '@shikijs/vscode-textmate@10.0.2': {} 1593 + 1594 + '@testing-library/dom@10.4.1': 1595 + dependencies: 1596 + '@babel/code-frame': 7.27.1 1597 + '@babel/runtime': 7.28.4 1598 + '@types/aria-query': 5.0.4 1599 + aria-query: 5.3.0 1600 + dom-accessibility-api: 0.5.16 1601 + lz-string: 1.5.0 1602 + picocolors: 1.1.1 1603 + pretty-format: 27.5.1 1604 + 1605 + '@testing-library/jest-dom@6.9.1': 1606 + dependencies: 1607 + '@adobe/css-tools': 4.4.4 1608 + aria-query: 5.3.2 1609 + css.escape: 1.5.1 1610 + dom-accessibility-api: 0.6.3 1611 + picocolors: 1.1.1 1612 + redent: 3.0.0 1613 + 1614 + '@tybys/wasm-util@0.10.1': 1615 + dependencies: 1616 + tslib: 2.8.1 1617 + optional: true 1618 + 1619 + '@types/aria-query@5.0.4': {} 1620 + 1621 + '@types/chai@5.2.2': 1622 + dependencies: 1623 + '@types/deep-eql': 4.0.2 1624 + 1625 + '@types/deep-eql@4.0.2': {} 1626 + 1627 + '@types/estree@1.0.8': {} 1628 + 1629 + '@types/hast@3.0.4': 1630 + dependencies: 1631 + '@types/unist': 3.0.3 1632 + 1633 + '@types/linkify-it@5.0.0': {} 1634 + 1635 + '@types/markdown-it@14.1.2': 1636 + dependencies: 1637 + '@types/linkify-it': 5.0.0 1638 + '@types/mdurl': 2.0.0 1639 + 1640 + '@types/mdast@4.0.4': 1641 + dependencies: 1642 + '@types/unist': 3.0.3 1643 + 1644 + '@types/mdurl@2.0.0': {} 1645 + 1646 + '@types/unist@3.0.3': {} 1647 + 1648 + '@types/web-bluetooth@0.0.21': {} 1649 + 1650 + '@ungap/structured-clone@1.3.0': {} 1651 + 1652 + '@vitejs/plugin-vue@5.2.4(rolldown-vite@7.1.14)(vue@3.5.22(typescript@5.9.3))': 1653 + dependencies: 1654 + vite: rolldown-vite@7.1.14 1655 + vue: 3.5.22(typescript@5.9.3) 1656 + 1657 + '@vitest/expect@3.2.4': 1658 + dependencies: 1659 + '@types/chai': 5.2.2 1660 + '@vitest/spy': 3.2.4 1661 + '@vitest/utils': 3.2.4 1662 + chai: 5.3.3 1663 + tinyrainbow: 2.0.0 1664 + 1665 + '@vitest/mocker@3.2.4(rolldown-vite@7.1.14)': 1666 + dependencies: 1667 + '@vitest/spy': 3.2.4 1668 + estree-walker: 3.0.3 1669 + magic-string: 0.30.19 1670 + optionalDependencies: 1671 + vite: rolldown-vite@7.1.14 1672 + 1673 + '@vitest/pretty-format@3.2.4': 1674 + dependencies: 1675 + tinyrainbow: 2.0.0 1676 + 1677 + '@vitest/runner@3.2.4': 1678 + dependencies: 1679 + '@vitest/utils': 3.2.4 1680 + pathe: 2.0.3 1681 + strip-literal: 3.1.0 1682 + 1683 + '@vitest/snapshot@3.2.4': 1684 + dependencies: 1685 + '@vitest/pretty-format': 3.2.4 1686 + magic-string: 0.30.19 1687 + pathe: 2.0.3 1688 + 1689 + '@vitest/spy@3.2.4': 1690 + dependencies: 1691 + tinyspy: 4.0.4 1692 + 1693 + '@vitest/utils@3.2.4': 1694 + dependencies: 1695 + '@vitest/pretty-format': 3.2.4 1696 + loupe: 3.2.1 1697 + tinyrainbow: 2.0.0 1698 + 1699 + '@vue/compiler-core@3.5.22': 1700 + dependencies: 1701 + '@babel/parser': 7.28.4 1702 + '@vue/shared': 3.5.22 1703 + entities: 4.5.0 1704 + estree-walker: 2.0.2 1705 + source-map-js: 1.2.1 1706 + 1707 + '@vue/compiler-dom@3.5.22': 1708 + dependencies: 1709 + '@vue/compiler-core': 3.5.22 1710 + '@vue/shared': 3.5.22 1711 + 1712 + '@vue/compiler-sfc@3.5.22': 1713 + dependencies: 1714 + '@babel/parser': 7.28.4 1715 + '@vue/compiler-core': 3.5.22 1716 + '@vue/compiler-dom': 3.5.22 1717 + '@vue/compiler-ssr': 3.5.22 1718 + '@vue/shared': 3.5.22 1719 + estree-walker: 2.0.2 1720 + magic-string: 0.30.19 1721 + postcss: 8.5.6 1722 + source-map-js: 1.2.1 1723 + 1724 + '@vue/compiler-ssr@3.5.22': 1725 + dependencies: 1726 + '@vue/compiler-dom': 3.5.22 1727 + '@vue/shared': 3.5.22 1728 + 1729 + '@vue/devtools-api@7.7.7': 1730 + dependencies: 1731 + '@vue/devtools-kit': 7.7.7 1732 + 1733 + '@vue/devtools-kit@7.7.7': 1734 + dependencies: 1735 + '@vue/devtools-shared': 7.7.7 1736 + birpc: 2.6.1 1737 + hookable: 5.5.3 1738 + mitt: 3.0.1 1739 + perfect-debounce: 1.0.0 1740 + speakingurl: 14.0.1 1741 + superjson: 2.2.2 1742 + 1743 + '@vue/devtools-shared@7.7.7': 1744 + dependencies: 1745 + rfdc: 1.4.1 1746 + 1747 + '@vue/reactivity@3.5.22': 1748 + dependencies: 1749 + '@vue/shared': 3.5.22 1750 + 1751 + '@vue/runtime-core@3.5.22': 1752 + dependencies: 1753 + '@vue/reactivity': 3.5.22 1754 + '@vue/shared': 3.5.22 1755 + 1756 + '@vue/runtime-dom@3.5.22': 1757 + dependencies: 1758 + '@vue/reactivity': 3.5.22 1759 + '@vue/runtime-core': 3.5.22 1760 + '@vue/shared': 3.5.22 1761 + csstype: 3.1.3 1762 + 1763 + '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': 1764 + dependencies: 1765 + '@vue/compiler-ssr': 3.5.22 1766 + '@vue/shared': 3.5.22 1767 + vue: 3.5.22(typescript@5.9.3) 1768 + 1769 + '@vue/shared@3.5.22': {} 1770 + 1771 + '@vueuse/core@12.8.2(typescript@5.9.3)': 1772 + dependencies: 1773 + '@types/web-bluetooth': 0.0.21 1774 + '@vueuse/metadata': 12.8.2 1775 + '@vueuse/shared': 12.8.2(typescript@5.9.3) 1776 + vue: 3.5.22(typescript@5.9.3) 1777 + transitivePeerDependencies: 1778 + - typescript 1779 + 1780 + '@vueuse/integrations@12.8.2(focus-trap@7.6.5)(typescript@5.9.3)': 1781 + dependencies: 1782 + '@vueuse/core': 12.8.2(typescript@5.9.3) 1783 + '@vueuse/shared': 12.8.2(typescript@5.9.3) 1784 + vue: 3.5.22(typescript@5.9.3) 1785 + optionalDependencies: 1786 + focus-trap: 7.6.5 1787 + transitivePeerDependencies: 1788 + - typescript 1789 + 1790 + '@vueuse/metadata@12.8.2': {} 1791 + 1792 + '@vueuse/shared@12.8.2(typescript@5.9.3)': 1793 + dependencies: 1794 + vue: 3.5.22(typescript@5.9.3) 1795 + transitivePeerDependencies: 1796 + - typescript 1797 + 1798 + agent-base@7.1.4: {} 1799 + 1800 + algoliasearch@5.40.1: 1801 + dependencies: 1802 + '@algolia/abtesting': 1.6.1 1803 + '@algolia/client-abtesting': 5.40.1 1804 + '@algolia/client-analytics': 5.40.1 1805 + '@algolia/client-common': 5.40.1 1806 + '@algolia/client-insights': 5.40.1 1807 + '@algolia/client-personalization': 5.40.1 1808 + '@algolia/client-query-suggestions': 5.40.1 1809 + '@algolia/client-search': 5.40.1 1810 + '@algolia/ingestion': 1.40.1 1811 + '@algolia/monitoring': 1.40.1 1812 + '@algolia/recommend': 5.40.1 1813 + '@algolia/requester-browser-xhr': 5.40.1 1814 + '@algolia/requester-fetch': 5.40.1 1815 + '@algolia/requester-node-http': 5.40.1 1816 + 1817 + ansi-regex@5.0.1: {} 1818 + 1819 + ansi-styles@5.2.0: {} 1820 + 1821 + ansis@4.2.0: {} 1822 + 1823 + aria-query@5.3.0: 1824 + dependencies: 1825 + dequal: 2.0.3 1826 + 1827 + aria-query@5.3.2: {} 1828 + 1829 + assertion-error@2.0.1: {} 1830 + 1831 + bidi-js@1.0.3: 1832 + dependencies: 1833 + require-from-string: 2.0.2 1834 + 1835 + birpc@2.6.1: {} 1836 + 1837 + cac@6.7.14: {} 1838 + 1839 + ccount@2.0.1: {} 1840 + 1841 + chai@5.3.3: 1842 + dependencies: 1843 + assertion-error: 2.0.1 1844 + check-error: 2.1.1 1845 + deep-eql: 5.0.2 1846 + loupe: 3.2.1 1847 + pathval: 2.0.1 1848 + 1849 + character-entities-html4@2.1.0: {} 1850 + 1851 + character-entities-legacy@3.0.0: {} 1852 + 1853 + check-error@2.1.1: {} 1854 + 1855 + comma-separated-tokens@2.0.3: {} 1856 + 1857 + copy-anything@3.0.5: 1858 + dependencies: 1859 + is-what: 4.1.16 1860 + 1861 + css-tree@3.1.0: 1862 + dependencies: 1863 + mdn-data: 2.12.2 1864 + source-map-js: 1.2.1 1865 + 1866 + css.escape@1.5.1: {} 1867 + 1868 + cssstyle@5.3.1(postcss@8.5.6): 1869 + dependencies: 1870 + '@asamuzakjp/css-color': 4.0.5 1871 + '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) 1872 + css-tree: 3.1.0 1873 + transitivePeerDependencies: 1874 + - postcss 1875 + 1876 + csstype@3.1.3: {} 1877 + 1878 + data-urls@6.0.0: 1879 + dependencies: 1880 + whatwg-mimetype: 4.0.0 1881 + whatwg-url: 15.1.0 1882 + 1883 + debug@4.4.3: 1884 + dependencies: 1885 + ms: 2.1.3 1886 + 1887 + decimal.js@10.6.0: {} 1888 + 1889 + deep-eql@5.0.2: {} 1890 + 1891 + dequal@2.0.3: {} 1892 + 1893 + detect-libc@2.1.2: {} 1894 + 1895 + devlop@1.1.0: 1896 + dependencies: 1897 + dequal: 2.0.3 1898 + 1899 + dom-accessibility-api@0.5.16: {} 1900 + 1901 + dom-accessibility-api@0.6.3: {} 1902 + 1903 + dprint@0.50.2: 1904 + optionalDependencies: 1905 + '@dprint/darwin-arm64': 0.50.2 1906 + '@dprint/darwin-x64': 0.50.2 1907 + '@dprint/linux-arm64-glibc': 0.50.2 1908 + '@dprint/linux-arm64-musl': 0.50.2 1909 + '@dprint/linux-riscv64-glibc': 0.50.2 1910 + '@dprint/linux-x64-glibc': 0.50.2 1911 + '@dprint/linux-x64-musl': 0.50.2 1912 + '@dprint/win32-arm64': 0.50.2 1913 + '@dprint/win32-x64': 0.50.2 1914 + 1915 + emoji-regex-xs@1.0.0: {} 1916 + 1917 + entities@4.5.0: {} 1918 + 1919 + entities@6.0.1: {} 1920 + 1921 + es-module-lexer@1.7.0: {} 1922 + 1923 + estree-walker@2.0.2: {} 1924 + 1925 + estree-walker@3.0.3: 1926 + dependencies: 1927 + '@types/estree': 1.0.8 1928 + 1929 + expect-type@1.2.2: {} 1930 + 1931 + fdir@6.5.0(picomatch@4.0.3): 1932 + optionalDependencies: 1933 + picomatch: 4.0.3 1934 + 1935 + focus-trap@7.6.5: 1936 + dependencies: 1937 + tabbable: 6.2.0 1938 + 1939 + fsevents@2.3.3: 1940 + optional: true 1941 + 1942 + hast-util-to-html@9.0.5: 1943 + dependencies: 1944 + '@types/hast': 3.0.4 1945 + '@types/unist': 3.0.3 1946 + ccount: 2.0.1 1947 + comma-separated-tokens: 2.0.3 1948 + hast-util-whitespace: 3.0.0 1949 + html-void-elements: 3.0.0 1950 + mdast-util-to-hast: 13.2.0 1951 + property-information: 7.1.0 1952 + space-separated-tokens: 2.0.2 1953 + stringify-entities: 4.0.4 1954 + zwitch: 2.0.4 1955 + 1956 + hast-util-whitespace@3.0.0: 1957 + dependencies: 1958 + '@types/hast': 3.0.4 1959 + 1960 + hookable@5.5.3: {} 1961 + 1962 + html-encoding-sniffer@4.0.0: 1963 + dependencies: 1964 + whatwg-encoding: 3.1.1 1965 + 1966 + html-void-elements@3.0.0: {} 1967 + 1968 + http-proxy-agent@7.0.2: 1969 + dependencies: 1970 + agent-base: 7.1.4 1971 + debug: 4.4.3 1972 + transitivePeerDependencies: 1973 + - supports-color 1974 + 1975 + https-proxy-agent@7.0.6: 1976 + dependencies: 1977 + agent-base: 7.1.4 1978 + debug: 4.4.3 1979 + transitivePeerDependencies: 1980 + - supports-color 1981 + 1982 + iconv-lite@0.6.3: 1983 + dependencies: 1984 + safer-buffer: 2.1.2 1985 + 1986 + indent-string@4.0.0: {} 1987 + 1988 + is-potential-custom-element-name@1.0.1: {} 1989 + 1990 + is-what@4.1.16: {} 1991 + 1992 + js-tokens@4.0.0: {} 1993 + 1994 + js-tokens@9.0.1: {} 1995 + 1996 + jsdom@27.0.0(postcss@8.5.6): 1997 + dependencies: 1998 + '@asamuzakjp/dom-selector': 6.7.0 1999 + cssstyle: 5.3.1(postcss@8.5.6) 2000 + data-urls: 6.0.0 2001 + decimal.js: 10.6.0 2002 + html-encoding-sniffer: 4.0.0 2003 + http-proxy-agent: 7.0.2 2004 + https-proxy-agent: 7.0.6 2005 + is-potential-custom-element-name: 1.0.1 2006 + parse5: 7.3.0 2007 + rrweb-cssom: 0.8.0 2008 + saxes: 6.0.0 2009 + symbol-tree: 3.2.4 2010 + tough-cookie: 6.0.0 2011 + w3c-xmlserializer: 5.0.0 2012 + webidl-conversions: 8.0.0 2013 + whatwg-encoding: 3.1.1 2014 + whatwg-mimetype: 4.0.0 2015 + whatwg-url: 15.1.0 2016 + ws: 8.18.3 2017 + xml-name-validator: 5.0.0 2018 + transitivePeerDependencies: 2019 + - bufferutil 2020 + - postcss 2021 + - supports-color 2022 + - utf-8-validate 2023 + 2024 + lightningcss-android-arm64@1.30.2: 2025 + optional: true 2026 + 2027 + lightningcss-darwin-arm64@1.30.2: 2028 + optional: true 2029 + 2030 + lightningcss-darwin-x64@1.30.2: 2031 + optional: true 2032 + 2033 + lightningcss-freebsd-x64@1.30.2: 2034 + optional: true 2035 + 2036 + lightningcss-linux-arm-gnueabihf@1.30.2: 2037 + optional: true 2038 + 2039 + lightningcss-linux-arm64-gnu@1.30.2: 2040 + optional: true 2041 + 2042 + lightningcss-linux-arm64-musl@1.30.2: 2043 + optional: true 2044 + 2045 + lightningcss-linux-x64-gnu@1.30.2: 2046 + optional: true 2047 + 2048 + lightningcss-linux-x64-musl@1.30.2: 2049 + optional: true 2050 + 2051 + lightningcss-win32-arm64-msvc@1.30.2: 2052 + optional: true 2053 + 2054 + lightningcss-win32-x64-msvc@1.30.2: 2055 + optional: true 2056 + 2057 + lightningcss@1.30.2: 2058 + dependencies: 2059 + detect-libc: 2.1.2 2060 + optionalDependencies: 2061 + lightningcss-android-arm64: 1.30.2 2062 + lightningcss-darwin-arm64: 1.30.2 2063 + lightningcss-darwin-x64: 1.30.2 2064 + lightningcss-freebsd-x64: 1.30.2 2065 + lightningcss-linux-arm-gnueabihf: 1.30.2 2066 + lightningcss-linux-arm64-gnu: 1.30.2 2067 + lightningcss-linux-arm64-musl: 1.30.2 2068 + lightningcss-linux-x64-gnu: 1.30.2 2069 + lightningcss-linux-x64-musl: 1.30.2 2070 + lightningcss-win32-arm64-msvc: 1.30.2 2071 + lightningcss-win32-x64-msvc: 1.30.2 2072 + 2073 + loupe@3.2.1: {} 2074 + 2075 + lru-cache@11.2.2: {} 2076 + 2077 + lz-string@1.5.0: {} 2078 + 2079 + magic-string@0.30.19: 2080 + dependencies: 2081 + '@jridgewell/sourcemap-codec': 1.5.5 2082 + 2083 + mark.js@8.11.1: {} 2084 + 2085 + mdast-util-to-hast@13.2.0: 2086 + dependencies: 2087 + '@types/hast': 3.0.4 2088 + '@types/mdast': 4.0.4 2089 + '@ungap/structured-clone': 1.3.0 2090 + devlop: 1.1.0 2091 + micromark-util-sanitize-uri: 2.0.1 2092 + trim-lines: 3.0.1 2093 + unist-util-position: 5.0.0 2094 + unist-util-visit: 5.0.0 2095 + vfile: 6.0.3 2096 + 2097 + mdn-data@2.12.2: {} 2098 + 2099 + micromark-util-character@2.1.1: 2100 + dependencies: 2101 + micromark-util-symbol: 2.0.1 2102 + micromark-util-types: 2.0.2 2103 + 2104 + micromark-util-encode@2.0.1: {} 2105 + 2106 + micromark-util-sanitize-uri@2.0.1: 2107 + dependencies: 2108 + micromark-util-character: 2.1.1 2109 + micromark-util-encode: 2.0.1 2110 + micromark-util-symbol: 2.0.1 2111 + 2112 + micromark-util-symbol@2.0.1: {} 2113 + 2114 + micromark-util-types@2.0.2: {} 2115 + 2116 + min-indent@1.0.1: {} 2117 + 2118 + minisearch@7.2.0: {} 2119 + 2120 + mitt@3.0.1: {} 2121 + 2122 + ms@2.1.3: {} 2123 + 2124 + nanoid@3.3.11: {} 2125 + 2126 + oniguruma-to-es@3.1.1: 2127 + dependencies: 2128 + emoji-regex-xs: 1.0.0 2129 + regex: 6.0.1 2130 + regex-recursion: 6.0.2 2131 + 2132 + parse5@7.3.0: 2133 + dependencies: 2134 + entities: 6.0.1 2135 + 2136 + pathe@2.0.3: {} 2137 + 2138 + pathval@2.0.1: {} 2139 + 2140 + perfect-debounce@1.0.0: {} 2141 + 2142 + picocolors@1.1.1: {} 2143 + 2144 + picomatch@4.0.3: {} 2145 + 2146 + postcss@8.5.6: 2147 + dependencies: 2148 + nanoid: 3.3.11 2149 + picocolors: 1.1.1 2150 + source-map-js: 1.2.1 2151 + 2152 + preact@10.27.2: {} 2153 + 2154 + pretty-format@27.5.1: 2155 + dependencies: 2156 + ansi-regex: 5.0.1 2157 + ansi-styles: 5.2.0 2158 + react-is: 17.0.2 2159 + 2160 + property-information@7.1.0: {} 2161 + 2162 + punycode@2.3.1: {} 2163 + 2164 + react-is@17.0.2: {} 2165 + 2166 + redent@3.0.0: 2167 + dependencies: 2168 + indent-string: 4.0.0 2169 + strip-indent: 3.0.0 2170 + 2171 + regex-recursion@6.0.2: 2172 + dependencies: 2173 + regex-utilities: 2.3.0 2174 + 2175 + regex-utilities@2.3.0: {} 2176 + 2177 + regex@6.0.1: 2178 + dependencies: 2179 + regex-utilities: 2.3.0 2180 + 2181 + require-from-string@2.0.2: {} 2182 + 2183 + rfdc@1.4.1: {} 2184 + 2185 + rolldown-vite@7.1.14: 2186 + dependencies: 2187 + '@oxc-project/runtime': 0.92.0 2188 + fdir: 6.5.0(picomatch@4.0.3) 2189 + lightningcss: 1.30.2 2190 + picomatch: 4.0.3 2191 + postcss: 8.5.6 2192 + rolldown: 1.0.0-beta.41 2193 + tinyglobby: 0.2.15 2194 + optionalDependencies: 2195 + fsevents: 2.3.3 2196 + 2197 + rolldown@1.0.0-beta.41: 2198 + dependencies: 2199 + '@oxc-project/types': 0.93.0 2200 + '@rolldown/pluginutils': 1.0.0-beta.41 2201 + ansis: 4.2.0 2202 + optionalDependencies: 2203 + '@rolldown/binding-android-arm64': 1.0.0-beta.41 2204 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.41 2205 + '@rolldown/binding-darwin-x64': 1.0.0-beta.41 2206 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.41 2207 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.41 2208 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.41 2209 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.41 2210 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.41 2211 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.41 2212 + '@rolldown/binding-openharmony-arm64': 1.0.0-beta.41 2213 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.41 2214 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.41 2215 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.41 2216 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.41 2217 + 2218 + rrweb-cssom@0.8.0: {} 2219 + 2220 + safer-buffer@2.1.2: {} 2221 + 2222 + saxes@6.0.0: 2223 + dependencies: 2224 + xmlchars: 2.2.0 2225 + 2226 + search-insights@2.17.3: {} 2227 + 2228 + shiki@2.5.0: 2229 + dependencies: 2230 + '@shikijs/core': 2.5.0 2231 + '@shikijs/engine-javascript': 2.5.0 2232 + '@shikijs/engine-oniguruma': 2.5.0 2233 + '@shikijs/langs': 2.5.0 2234 + '@shikijs/themes': 2.5.0 2235 + '@shikijs/types': 2.5.0 2236 + '@shikijs/vscode-textmate': 10.0.2 2237 + '@types/hast': 3.0.4 2238 + 2239 + siginfo@2.0.0: {} 2240 + 2241 + source-map-js@1.2.1: {} 2242 + 2243 + space-separated-tokens@2.0.2: {} 2244 + 2245 + speakingurl@14.0.1: {} 2246 + 2247 + stackback@0.0.2: {} 2248 + 2249 + std-env@3.10.0: {} 2250 + 2251 + stringify-entities@4.0.4: 2252 + dependencies: 2253 + character-entities-html4: 2.1.0 2254 + character-entities-legacy: 3.0.0 2255 + 2256 + strip-indent@3.0.0: 2257 + dependencies: 2258 + min-indent: 1.0.1 2259 + 2260 + strip-literal@3.1.0: 2261 + dependencies: 2262 + js-tokens: 9.0.1 2263 + 2264 + superjson@2.2.2: 2265 + dependencies: 2266 + copy-anything: 3.0.5 2267 + 2268 + symbol-tree@3.2.4: {} 2269 + 2270 + tabbable@6.2.0: {} 2271 + 2272 + tinybench@2.9.0: {} 2273 + 2274 + tinyexec@0.3.2: {} 2275 + 2276 + tinyglobby@0.2.15: 2277 + dependencies: 2278 + fdir: 6.5.0(picomatch@4.0.3) 2279 + picomatch: 4.0.3 2280 + 2281 + tinypool@1.1.1: {} 2282 + 2283 + tinyrainbow@2.0.0: {} 2284 + 2285 + tinyspy@4.0.4: {} 2286 + 2287 + tldts-core@7.0.17: {} 2288 + 2289 + tldts@7.0.17: 2290 + dependencies: 2291 + tldts-core: 7.0.17 2292 + 2293 + tough-cookie@6.0.0: 2294 + dependencies: 2295 + tldts: 7.0.17 2296 + 2297 + tr46@6.0.0: 2298 + dependencies: 2299 + punycode: 2.3.1 2300 + 2301 + trim-lines@3.0.1: {} 2302 + 2303 + tslib@2.8.1: 2304 + optional: true 2305 + 2306 + typescript@5.9.3: {} 2307 + 2308 + unist-util-is@6.0.1: 2309 + dependencies: 2310 + '@types/unist': 3.0.3 2311 + 2312 + unist-util-position@5.0.0: 2313 + dependencies: 2314 + '@types/unist': 3.0.3 2315 + 2316 + unist-util-stringify-position@4.0.0: 2317 + dependencies: 2318 + '@types/unist': 3.0.3 2319 + 2320 + unist-util-visit-parents@6.0.2: 2321 + dependencies: 2322 + '@types/unist': 3.0.3 2323 + unist-util-is: 6.0.1 2324 + 2325 + unist-util-visit@5.0.0: 2326 + dependencies: 2327 + '@types/unist': 3.0.3 2328 + unist-util-is: 6.0.1 2329 + unist-util-visit-parents: 6.0.2 2330 + 2331 + vfile-message@4.0.3: 2332 + dependencies: 2333 + '@types/unist': 3.0.3 2334 + unist-util-stringify-position: 4.0.0 2335 + 2336 + vfile@6.0.3: 2337 + dependencies: 2338 + '@types/unist': 3.0.3 2339 + vfile-message: 4.0.3 2340 + 2341 + vite-node@3.2.4: 2342 + dependencies: 2343 + cac: 6.7.14 2344 + debug: 4.4.3 2345 + es-module-lexer: 1.7.0 2346 + pathe: 2.0.3 2347 + vite: rolldown-vite@7.1.14 2348 + transitivePeerDependencies: 2349 + - '@types/node' 2350 + - esbuild 2351 + - jiti 2352 + - less 2353 + - sass 2354 + - sass-embedded 2355 + - stylus 2356 + - sugarss 2357 + - supports-color 2358 + - terser 2359 + - tsx 2360 + - yaml 2361 + 2362 + vitepress@1.6.4(@algolia/client-search@5.40.1)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3): 2363 + dependencies: 2364 + '@docsearch/css': 3.8.2 2365 + '@docsearch/js': 3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3) 2366 + '@iconify-json/simple-icons': 1.2.54 2367 + '@shikijs/core': 2.5.0 2368 + '@shikijs/transformers': 2.5.0 2369 + '@shikijs/types': 2.5.0 2370 + '@types/markdown-it': 14.1.2 2371 + '@vitejs/plugin-vue': 5.2.4(rolldown-vite@7.1.14)(vue@3.5.22(typescript@5.9.3)) 2372 + '@vue/devtools-api': 7.7.7 2373 + '@vue/shared': 3.5.22 2374 + '@vueuse/core': 12.8.2(typescript@5.9.3) 2375 + '@vueuse/integrations': 12.8.2(focus-trap@7.6.5)(typescript@5.9.3) 2376 + focus-trap: 7.6.5 2377 + mark.js: 8.11.1 2378 + minisearch: 7.2.0 2379 + shiki: 2.5.0 2380 + vite: rolldown-vite@7.1.14 2381 + vue: 3.5.22(typescript@5.9.3) 2382 + optionalDependencies: 2383 + postcss: 8.5.6 2384 + transitivePeerDependencies: 2385 + - '@algolia/client-search' 2386 + - '@types/node' 2387 + - '@types/react' 2388 + - async-validator 2389 + - axios 2390 + - change-case 2391 + - drauu 2392 + - esbuild 2393 + - fuse.js 2394 + - idb-keyval 2395 + - jiti 2396 + - jwt-decode 2397 + - less 2398 + - nprogress 2399 + - qrcode 2400 + - react 2401 + - react-dom 2402 + - sass 2403 + - sass-embedded 2404 + - search-insights 2405 + - sortablejs 2406 + - stylus 2407 + - sugarss 2408 + - terser 2409 + - tsx 2410 + - typescript 2411 + - universal-cookie 2412 + - yaml 2413 + 2414 + vitest@3.2.4(jsdom@27.0.0(postcss@8.5.6)): 2415 + dependencies: 2416 + '@types/chai': 5.2.2 2417 + '@vitest/expect': 3.2.4 2418 + '@vitest/mocker': 3.2.4(rolldown-vite@7.1.14) 2419 + '@vitest/pretty-format': 3.2.4 2420 + '@vitest/runner': 3.2.4 2421 + '@vitest/snapshot': 3.2.4 2422 + '@vitest/spy': 3.2.4 2423 + '@vitest/utils': 3.2.4 2424 + chai: 5.3.3 2425 + debug: 4.4.3 2426 + expect-type: 1.2.2 2427 + magic-string: 0.30.19 2428 + pathe: 2.0.3 2429 + picomatch: 4.0.3 2430 + std-env: 3.10.0 2431 + tinybench: 2.9.0 2432 + tinyexec: 0.3.2 2433 + tinyglobby: 0.2.15 2434 + tinypool: 1.1.1 2435 + tinyrainbow: 2.0.0 2436 + vite: rolldown-vite@7.1.14 2437 + vite-node: 3.2.4 2438 + why-is-node-running: 2.3.0 2439 + optionalDependencies: 2440 + jsdom: 27.0.0(postcss@8.5.6) 2441 + transitivePeerDependencies: 2442 + - esbuild 2443 + - jiti 2444 + - less 2445 + - msw 2446 + - sass 2447 + - sass-embedded 2448 + - stylus 2449 + - sugarss 2450 + - supports-color 2451 + - terser 2452 + - tsx 2453 + - yaml 2454 + 2455 + vue@3.5.22(typescript@5.9.3): 2456 + dependencies: 2457 + '@vue/compiler-dom': 3.5.22 2458 + '@vue/compiler-sfc': 3.5.22 2459 + '@vue/runtime-dom': 3.5.22 2460 + '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3)) 2461 + '@vue/shared': 3.5.22 2462 + optionalDependencies: 2463 + typescript: 5.9.3 2464 + 2465 + w3c-xmlserializer@5.0.0: 2466 + dependencies: 2467 + xml-name-validator: 5.0.0 2468 + 2469 + webidl-conversions@8.0.0: {} 2470 + 2471 + whatwg-encoding@3.1.1: 2472 + dependencies: 2473 + iconv-lite: 0.6.3 2474 + 2475 + whatwg-mimetype@4.0.0: {} 2476 + 2477 + whatwg-url@15.1.0: 2478 + dependencies: 2479 + tr46: 6.0.0 2480 + webidl-conversions: 8.0.0 2481 + 2482 + why-is-node-running@2.3.0: 2483 + dependencies: 2484 + siginfo: 2.0.0 2485 + stackback: 0.0.2 2486 + 2487 + ws@8.18.3: {} 2488 + 2489 + xml-name-validator@5.0.0: {} 2490 + 2491 + xmlchars@2.2.0: {} 2492 + 2493 + zwitch@2.0.4: {}
+1
public/vite.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
+9
src/counter.ts
··· 1 + export function setupCounter(element: HTMLButtonElement) { 2 + let counter = 0 3 + const setCounter = (count: number) => { 4 + counter = count 5 + element.innerHTML = `count is ${counter}` 6 + } 7 + element.addEventListener('click', () => setCounter(counter + 1)) 8 + setCounter(0) 9 + }
+24
src/main.ts
··· 1 + import './style.css' 2 + import typescriptLogo from './typescript.svg' 3 + import viteLogo from '/vite.svg' 4 + import { setupCounter } from './counter.ts' 5 + 6 + document.querySelector<HTMLDivElement>('#app')!.innerHTML = ` 7 + <div> 8 + <a href="https://vite.dev" target="_blank"> 9 + <img src="${viteLogo}" class="logo" alt="Vite logo" /> 10 + </a> 11 + <a href="https://www.typescriptlang.org/" target="_blank"> 12 + <img src="${typescriptLogo}" class="logo vanilla" alt="TypeScript logo" /> 13 + </a> 14 + <h1>Vite + TypeScript</h1> 15 + <div class="card"> 16 + <button id="counter" type="button"></button> 17 + </div> 18 + <p class="read-the-docs"> 19 + Click on the Vite and TypeScript logos to learn more 20 + </p> 21 + </div> 22 + ` 23 + 24 + setupCounter(document.querySelector<HTMLButtonElement>('#counter')!)
+96
src/style.css
··· 1 + :root { 2 + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; 3 + line-height: 1.5; 4 + font-weight: 400; 5 + 6 + color-scheme: light dark; 7 + color: rgba(255, 255, 255, 0.87); 8 + background-color: #242424; 9 + 10 + font-synthesis: none; 11 + text-rendering: optimizeLegibility; 12 + -webkit-font-smoothing: antialiased; 13 + -moz-osx-font-smoothing: grayscale; 14 + } 15 + 16 + a { 17 + font-weight: 500; 18 + color: #646cff; 19 + text-decoration: inherit; 20 + } 21 + a:hover { 22 + color: #535bf2; 23 + } 24 + 25 + body { 26 + margin: 0; 27 + display: flex; 28 + place-items: center; 29 + min-width: 320px; 30 + min-height: 100vh; 31 + } 32 + 33 + h1 { 34 + font-size: 3.2em; 35 + line-height: 1.1; 36 + } 37 + 38 + #app { 39 + max-width: 1280px; 40 + margin: 0 auto; 41 + padding: 2rem; 42 + text-align: center; 43 + } 44 + 45 + .logo { 46 + height: 6em; 47 + padding: 1.5em; 48 + will-change: filter; 49 + transition: filter 300ms; 50 + } 51 + .logo:hover { 52 + filter: drop-shadow(0 0 2em #646cffaa); 53 + } 54 + .logo.vanilla:hover { 55 + filter: drop-shadow(0 0 2em #3178c6aa); 56 + } 57 + 58 + .card { 59 + padding: 2em; 60 + } 61 + 62 + .read-the-docs { 63 + color: #888; 64 + } 65 + 66 + button { 67 + border-radius: 8px; 68 + border: 1px solid transparent; 69 + padding: 0.6em 1.2em; 70 + font-size: 1em; 71 + font-weight: 500; 72 + font-family: inherit; 73 + background-color: #1a1a1a; 74 + cursor: pointer; 75 + transition: border-color 0.25s; 76 + } 77 + button:hover { 78 + border-color: #646cff; 79 + } 80 + button:focus, 81 + button:focus-visible { 82 + outline: 4px auto -webkit-focus-ring-color; 83 + } 84 + 85 + @media (prefers-color-scheme: light) { 86 + :root { 87 + color: #213547; 88 + background-color: #ffffff; 89 + } 90 + a:hover { 91 + color: #747bff; 92 + } 93 + button { 94 + background-color: #f9f9f9; 95 + } 96 + }
+6
src/tests/setupTests.ts
··· 1 + import "@testing-library/jest-dom/vitest"; 2 + import { afterEach } from "vitest"; 3 + 4 + afterEach(() => { 5 + document.body.innerHTML = ""; 6 + });
+1
src/typescript.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="32" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="#007ACC" d="M0 128v128h256V0H0z"></path><path fill="#FFF" d="m56.612 128.85l-.081 10.483h33.32v94.68h23.568v-94.68h33.321v-10.28c0-5.69-.122-10.444-.284-10.566c-.122-.162-20.4-.244-44.983-.203l-44.74.122l-.121 10.443Zm149.955-10.742c6.501 1.625 11.459 4.51 16.01 9.224c2.357 2.52 5.851 7.111 6.136 8.208c.08.325-11.053 7.802-17.798 11.988c-.244.162-1.22-.894-2.317-2.52c-3.291-4.795-6.745-6.867-12.028-7.233c-7.76-.528-12.759 3.535-12.718 10.321c0 1.992.284 3.17 1.097 4.795c1.707 3.536 4.876 5.649 14.832 9.956c18.326 7.883 26.168 13.084 31.045 20.48c5.445 8.249 6.664 21.415 2.966 31.208c-4.063 10.646-14.14 17.879-28.323 20.276c-4.388.772-14.79.65-19.504-.203c-10.28-1.828-20.033-6.908-26.047-13.572c-2.357-2.6-6.949-9.387-6.664-9.874c.122-.163 1.178-.813 2.356-1.504c1.138-.65 5.446-3.129 9.509-5.485l7.355-4.267l1.544 2.276c2.154 3.29 6.867 7.801 9.712 9.305c8.167 4.307 19.383 3.698 24.909-1.26c2.357-2.153 3.332-4.388 3.332-7.68c0-2.966-.366-4.266-1.91-6.501c-1.99-2.845-6.054-5.242-17.595-10.24c-13.206-5.69-18.895-9.224-24.096-14.832c-3.007-3.25-5.852-8.452-7.03-12.8c-.975-3.617-1.22-12.678-.447-16.335c2.723-12.76 12.353-21.659 26.25-24.3c4.51-.853 14.994-.528 19.424.569Z"></path></svg>
+24
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + "target": "ES2022", 4 + "useDefineForClassFields": true, 5 + "module": "ESNext", 6 + "lib": ["ES2022", "DOM", "DOM.Iterable"], 7 + "types": ["vite/client"], 8 + "skipLibCheck": true, 9 + /* Bundler mode */ 10 + "moduleResolution": "bundler", 11 + "allowImportingTsExtensions": true, 12 + "verbatimModuleSyntax": true, 13 + "moduleDetection": "force", 14 + "noEmit": true, 15 + /* Linting */ 16 + "strict": true, 17 + "noUnusedLocals": true, 18 + "noUnusedParameters": true, 19 + "erasableSyntaxOnly": true, 20 + "noFallthroughCasesInSwitch": true, 21 + "noUncheckedSideEffectImports": true 22 + }, 23 + "include": ["src"] 24 + }
+3
vite.config.ts
··· 1 + import { defineConfig } from "vitest/config"; 2 + 3 + export default defineConfig({ test: { environment: "jsdom", setupFiles: "./test/setupTests.ts", globals: true } });