diff --git a/packages/docs/.gitignore b/packages/docs/.gitignore new file mode 100644 index 0000000..d4db458 --- /dev/null +++ b/packages/docs/.gitignore @@ -0,0 +1,4 @@ +.vitepress/cache +.vitepress/dist +.cssforge +docs.md diff --git a/packages/docs/.vitepress/config.ts b/packages/docs/.vitepress/config.ts new file mode 100644 index 0000000..939b8c5 --- /dev/null +++ b/packages/docs/.vitepress/config.ts @@ -0,0 +1,34 @@ +import { defineConfig } from "vitepress"; + +export default defineConfig({ + title: "CSS Forge", + description: + "0 runtime design tokens generator for modern style systems.", + cleanUrls: true, + appearance: "dark", + markdown: { + theme: "github-dark", + }, + themeConfig: { + nav: [ + { text: "Guide", link: "/docs" }, + { + text: "JSR", + link: "https://jsr.io/@hebilicious/cssforge", + }, + { + text: "GitHub", + link: "https://github.com/Hebilicious/cssforge", + }, + ], + search: { provider: "local" }, + editLink: { + pattern: + "https://github.com/Hebilicious/cssforge/edit/main/packages/cssforge-docs/:path", + }, + footer: { + message: "Released under the MIT License.", + copyright: "Copyright Hebilicious", + }, + }, +}); diff --git a/packages/docs/.vitepress/theme/AnvilAnimation.vue b/packages/docs/.vitepress/theme/AnvilAnimation.vue new file mode 100644 index 0000000..49d730e --- /dev/null +++ b/packages/docs/.vitepress/theme/AnvilAnimation.vue @@ -0,0 +1,312 @@ + + + diff --git a/packages/docs/.vitepress/theme/custom.css b/packages/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000..27e2e41 --- /dev/null +++ b/packages/docs/.vitepress/theme/custom.css @@ -0,0 +1,481 @@ +@import "../../.cssforge/output.css" layer(cssforge); + +/* ============================================================ + CSSForge Docs — Full Cyberpunk Theme + All colors sourced from the anvil animation palette via + cssforge-generated --palette-forge-* tokens. + ============================================================ */ + +/* ----- Typography ----- */ + +@font-face { + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.4.1/dist/fonts/geist-mono/GeistMono-Regular.woff2") + format("woff2"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.4.1/dist/fonts/geist-mono/GeistMono-Medium.woff2") + format("woff2"); + font-weight: 500; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Geist Mono"; + src: url("https://cdn.jsdelivr.net/npm/geist@1.4.1/dist/fonts/geist-mono/GeistMono-Bold.woff2") + format("woff2"); + font-weight: 700; + font-style: normal; + font-display: swap; +} + +/* ----- Root: Force dark everywhere ----- */ + +:root { + /* Font */ + --vp-font-family-base: "Geist Mono", "Courier New", Courier, monospace; + --vp-font-family-mono: "Geist Mono", "Courier New", Courier, monospace; + + /* Core palette — anvil metals */ + --vp-c-gray-1: var(--palette-forge-metal-8); + --vp-c-gray-2: var(--palette-forge-metal-6); + --vp-c-gray-3: var(--palette-forge-metal-5); + --vp-c-gray-soft: rgba(85, 85, 104, 0.16); + + /* Background — deep void / space */ + --vp-c-bg: var(--palette-forge-void); + --vp-c-bg-alt: var(--palette-forge-metal-1); + --vp-c-bg-elv: var(--palette-forge-metal-2); + --vp-c-bg-soft: var(--palette-forge-metal-2); + + /* Text — light on dark */ + --vp-c-text-1: var(--palette-forge-text-1); + --vp-c-text-2: var(--palette-forge-text-2); + --vp-c-text-3: var(--palette-forge-text-3); + + /* Borders — subtle metal edges */ + --vp-c-border: var(--palette-forge-metal-5); + --vp-c-divider: var(--palette-forge-metal-4); + --vp-c-gutter: var(--palette-forge-metal-1); + + /* Neutral */ + --vp-c-neutral: var(--palette-forge-white); + --vp-c-neutral-inverse: var(--palette-forge-void); + + /* Brand — cyan primary */ + --vp-c-brand-1: var(--palette-forge-cyan); + --vp-c-brand-2: var(--palette-forge-cyan); + --vp-c-brand-3: var(--palette-forge-cyan); + --vp-c-brand-soft: rgba(0, 243, 255, 0.12); + --vp-c-brand: var(--palette-forge-cyan); + + /* Tip / Note — cyan */ + --vp-c-tip-1: var(--palette-forge-cyan); + --vp-c-tip-2: var(--palette-forge-cyan); + --vp-c-tip-3: var(--palette-forge-cyan); + --vp-c-tip-soft: rgba(0, 243, 255, 0.08); + --vp-c-note-1: var(--palette-forge-cyan); + --vp-c-note-2: var(--palette-forge-cyan); + --vp-c-note-3: var(--palette-forge-cyan); + --vp-c-note-soft: rgba(0, 243, 255, 0.08); + + /* Important — magenta */ + --vp-c-important-1: var(--palette-forge-magenta); + --vp-c-important-2: var(--palette-forge-magenta); + --vp-c-important-3: var(--palette-forge-magenta); + --vp-c-important-soft: rgba(255, 0, 160, 0.1); + + /* Warning — keep yellow-ish but tinted */ + --vp-c-warning-1: #f9b44e; + --vp-c-warning-2: #da8b17; + --vp-c-warning-3: #a46a0a; + --vp-c-warning-soft: rgba(234, 179, 8, 0.1); + + /* Danger / Caution — magenta tint */ + --vp-c-danger-1: var(--palette-forge-magenta); + --vp-c-danger-2: var(--palette-forge-magenta); + --vp-c-danger-3: var(--palette-forge-magenta); + --vp-c-danger-soft: rgba(255, 0, 160, 0.08); + --vp-c-caution-1: var(--palette-forge-magenta); + --vp-c-caution-2: var(--palette-forge-magenta); + --vp-c-caution-3: var(--palette-forge-magenta); + --vp-c-caution-soft: rgba(255, 0, 160, 0.08); + + /* Success — cyan */ + --vp-c-success-1: var(--palette-forge-cyan); + --vp-c-success-2: var(--palette-forge-cyan); + --vp-c-success-3: var(--palette-forge-cyan); + --vp-c-success-soft: rgba(0, 243, 255, 0.08); + + /* Default (hover states) */ + --vp-c-default-1: var(--palette-forge-metal-8); + --vp-c-default-2: var(--palette-forge-metal-6); + --vp-c-default-3: var(--palette-forge-metal-5); + --vp-c-default-soft: rgba(85, 85, 104, 0.12); + + /* Sponsor */ + --vp-c-sponsor: var(--palette-forge-magenta); + + /* Shadows — deeper, tinted */ + --vp-shadow-1: 0 1px 2px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.4); + --vp-shadow-2: 0 3px 12px rgba(0, 0, 0, 0.4), 0 1px 4px rgba(0, 0, 0, 0.3); + --vp-shadow-3: 0 12px 32px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.4); + --vp-shadow-4: 0 14px 44px rgba(0, 0, 0, 0.6), 0 3px 9px rgba(0, 0, 0, 0.5); + --vp-shadow-5: 0 18px 56px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.6); + + /* Code */ + --vp-code-color: var(--palette-forge-cyan); + --vp-code-link-color: var(--palette-forge-cyan); + --vp-code-link-hover-color: var(--palette-forge-magenta); + --vp-code-bg: rgba(0, 243, 255, 0.06); + --vp-code-block-color: var(--palette-forge-text-2); + --vp-code-block-bg: var(--palette-forge-metal-1); + --vp-code-block-divider-color: var(--palette-forge-metal-4); + --vp-code-lang-color: var(--palette-forge-text-3); + --vp-code-line-highlight-color: rgba(0, 243, 255, 0.06); + --vp-code-line-number-color: var(--palette-forge-text-3); + --vp-code-copy-code-border-color: var(--palette-forge-metal-5); + --vp-code-copy-code-bg: var(--palette-forge-metal-3); + --vp-code-copy-code-hover-border-color: var(--palette-forge-cyan); + --vp-code-copy-code-hover-bg: var(--palette-forge-metal-4); + --vp-code-copy-code-active-text: var(--palette-forge-cyan); + --vp-code-tab-divider: var(--palette-forge-metal-4); + --vp-code-tab-text-color: var(--palette-forge-text-2); + --vp-code-tab-bg: var(--palette-forge-metal-1); + --vp-code-tab-hover-text-color: var(--palette-forge-text-1); + --vp-code-tab-active-text-color: var(--palette-forge-cyan); + --vp-code-tab-active-bar-color: var(--palette-forge-cyan); + + /* Buttons */ + --vp-button-brand-border: var(--palette-forge-cyan); + --vp-button-brand-text: var(--palette-forge-void); + --vp-button-brand-bg: var(--palette-forge-cyan); + --vp-button-brand-hover-border: var(--palette-forge-magenta); + --vp-button-brand-hover-text: var(--palette-forge-white); + --vp-button-brand-hover-bg: var(--palette-forge-magenta); + --vp-button-brand-active-border: var(--palette-forge-magenta); + --vp-button-brand-active-text: var(--palette-forge-white); + --vp-button-brand-active-bg: var(--palette-forge-magenta); + + --vp-button-alt-border: var(--palette-forge-metal-7); + --vp-button-alt-text: var(--palette-forge-text-1); + --vp-button-alt-bg: var(--palette-forge-metal-3); + --vp-button-alt-hover-border: var(--palette-forge-cyan); + --vp-button-alt-hover-text: var(--palette-forge-cyan); + --vp-button-alt-hover-bg: var(--palette-forge-metal-4); + --vp-button-alt-active-border: var(--palette-forge-cyan); + --vp-button-alt-active-text: var(--palette-forge-cyan); + --vp-button-alt-active-bg: var(--palette-forge-metal-5); + + /* Custom blocks */ + --vp-custom-block-info-border: var(--palette-forge-metal-5); + --vp-custom-block-info-text: var(--palette-forge-text-1); + --vp-custom-block-info-bg: var(--palette-forge-metal-2); + --vp-custom-block-info-code-bg: var(--palette-forge-metal-3); + --vp-custom-block-note-border: var(--palette-forge-metal-5); + --vp-custom-block-note-text: var(--palette-forge-text-1); + --vp-custom-block-note-bg: var(--palette-forge-metal-2); + --vp-custom-block-note-code-bg: var(--palette-forge-metal-3); + --vp-custom-block-tip-border: rgba(0, 243, 255, 0.3); + --vp-custom-block-tip-text: var(--palette-forge-text-1); + --vp-custom-block-tip-bg: rgba(0, 243, 255, 0.05); + --vp-custom-block-tip-code-bg: rgba(0, 243, 255, 0.08); + --vp-custom-block-important-border: rgba(255, 0, 160, 0.3); + --vp-custom-block-important-text: var(--palette-forge-text-1); + --vp-custom-block-important-bg: rgba(255, 0, 160, 0.06); + --vp-custom-block-important-code-bg: rgba(255, 0, 160, 0.08); + --vp-custom-block-warning-border: rgba(234, 179, 8, 0.3); + --vp-custom-block-warning-text: var(--palette-forge-text-1); + --vp-custom-block-warning-bg: rgba(234, 179, 8, 0.06); + --vp-custom-block-warning-code-bg: rgba(234, 179, 8, 0.08); + --vp-custom-block-danger-border: rgba(255, 0, 160, 0.3); + --vp-custom-block-danger-text: var(--palette-forge-text-1); + --vp-custom-block-danger-bg: rgba(255, 0, 160, 0.06); + --vp-custom-block-danger-code-bg: rgba(255, 0, 160, 0.08); + --vp-custom-block-caution-border: rgba(255, 0, 160, 0.3); + --vp-custom-block-caution-text: var(--palette-forge-text-1); + --vp-custom-block-caution-bg: rgba(255, 0, 160, 0.06); + --vp-custom-block-caution-code-bg: rgba(255, 0, 160, 0.08); + + /* Input / search */ + --vp-input-border-color: var(--palette-forge-metal-5); + --vp-input-bg-color: var(--palette-forge-metal-2); + --vp-input-switch-bg-color: var(--palette-forge-metal-4); + + /* Nav */ + --vp-nav-bg-color: rgba(3, 2, 6, 0.85); + --vp-nav-screen-bg-color: var(--palette-forge-void); + --vp-nav-logo-height: 28px; + + /* Local nav */ + --vp-local-nav-bg-color: rgba(3, 2, 6, 0.85); + + /* Sidebar */ + --vp-sidebar-bg-color: var(--palette-forge-metal-1); + + /* Backdrop */ + --vp-backdrop-bg-color: rgba(3, 2, 6, 0.7); + + /* Home */ + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: linear-gradient( + 135deg, + var(--palette-forge-cyan) 0%, + var(--palette-forge-magenta) 100% + ); + --vp-home-hero-image-background-image: radial-gradient( + circle at 50% 50%, + rgba(0, 243, 255, 0.15) 0%, + transparent 70% + ); + --vp-home-hero-image-filter: none; + + /* Search */ + --vp-local-search-bg: var(--palette-forge-metal-1); + --vp-local-search-result-bg: var(--palette-forge-metal-2); + --vp-local-search-result-border: var(--palette-forge-metal-5); + --vp-local-search-result-selected-bg: var(--palette-forge-metal-3); + --vp-local-search-result-selected-border: var(--palette-forge-cyan); + --vp-local-search-highlight-bg: var(--palette-forge-cyan); + --vp-local-search-highlight-text: var(--palette-forge-void); + + /* Badge */ + --vp-badge-info-border: var(--palette-forge-metal-5); + --vp-badge-info-text: var(--palette-forge-text-2); + --vp-badge-info-bg: var(--palette-forge-metal-3); + --vp-badge-tip-border: rgba(0, 243, 255, 0.3); + --vp-badge-tip-text: var(--palette-forge-cyan); + --vp-badge-tip-bg: rgba(0, 243, 255, 0.1); + --vp-badge-warning-border: rgba(234, 179, 8, 0.3); + --vp-badge-warning-text: #f9b44e; + --vp-badge-warning-bg: rgba(234, 179, 8, 0.1); + --vp-badge-danger-border: rgba(255, 0, 160, 0.3); + --vp-badge-danger-text: var(--palette-forge-magenta); + --vp-badge-danger-bg: rgba(255, 0, 160, 0.1); + + color-scheme: dark; +} + +/* Force dark mode class — disable light mode entirely */ +.dark { + --vp-c-bg: var(--palette-forge-void); + --vp-c-bg-alt: var(--palette-forge-metal-1); + --vp-c-bg-elv: var(--palette-forge-metal-2); + --vp-c-bg-soft: var(--palette-forge-metal-2); +} + +/* ----- Nav bar ----- */ + +.VPNav > .VPNavBar { + background: transparent !important; +} + +.VPNavBar { + border-bottom: 1px solid var(--palette-forge-metal-4) !important; + backdrop-filter: blur(16px); +} + +.VPNavBar .title { + color: var(--palette-forge-cyan) !important; + font-weight: 700; + letter-spacing: 0.05em; + text-transform: uppercase; +} + +.VPNavBarMenuLink { + color: var(--palette-forge-text-2) !important; + transition: color 0.2s; +} + +.VPNavBarMenuLink:hover, +.VPNavBarMenuLink.active { + color: var(--palette-forge-cyan) !important; +} + +/* ----- Sidebar ----- */ + +.VPSidebar { + border-right: 1px solid var(--palette-forge-metal-4) !important; +} + +/* ----- Links ----- */ + +.vp-doc a { + color: var(--palette-forge-cyan); + text-decoration-color: rgba(0, 243, 255, 0.3); + transition: color 0.2s, text-decoration-color 0.2s; +} + +.vp-doc a:hover { + color: var(--palette-forge-magenta); + text-decoration-color: var(--palette-forge-magenta); +} + +/* ----- Headings ----- */ + +.vp-doc h1, +.vp-doc h2, +.vp-doc h3 { + color: var(--palette-forge-white); +} + +.vp-doc h1 { + background: linear-gradient( + 90deg, + var(--palette-forge-cyan), + var(--palette-forge-magenta) + ); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} + +.vp-doc h2 { + border-top: 1px solid var(--palette-forge-metal-4); +} + +/* ----- Code blocks ----- */ + +div[class*="language-"] { + border: 1px solid var(--palette-forge-metal-4); +} + +.vp-doc :not(pre) > code { + color: var(--palette-forge-cyan); + background: rgba(0, 243, 255, 0.08); +} + +/* ----- Home hero ----- */ + +.VPHero { + position: relative; + background-image: + linear-gradient(rgba(0, 243, 255, 0.05) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 243, 255, 0.05) 1px, transparent 1px), + radial-gradient(circle at 50% 50%, var(--palette-forge-space) 0%, var(--palette-forge-void) 75%); + background-size: 60px 60px, 60px 60px, 100% 100%; + background-position: center center; + margin-top: calc(var(--vp-nav-height) * -1); /* Pull background under nav */ + padding-top: var(--vp-nav-height); +} + +.VPHero .name { + font-weight: 900 !important; + letter-spacing: 0.04em; +} + +.VPHero .text { + color: var(--palette-forge-text-1) !important; +} + +.VPHero .tagline { + color: var(--palette-forge-text-2) !important; +} + +/* ----- Feature cards ----- */ + +.VPFeature { + background: var(--palette-forge-metal-2) !important; + border: 1px solid var(--palette-forge-metal-5) !important; + transition: border-color 0.3s, box-shadow 0.3s; +} + +.VPFeature:hover { + border-color: var(--palette-forge-cyan) !important; + box-shadow: 0 0 20px rgba(0, 243, 255, 0.1); +} + +.VPFeature .title { + color: var(--palette-forge-white) !important; +} + +.VPFeature .details { + color: var(--palette-forge-text-2) !important; +} + +/* ----- Footer ----- */ + +.VPFooter { + border-top: 1px solid var(--palette-forge-metal-4) !important; + background: var(--palette-forge-metal-1) !important; +} + +.VPFooter .message, +.VPFooter .copyright { + color: var(--palette-forge-text-3) !important; +} + +/* ----- Outline (right TOC) ----- */ + +.VPDocAsideOutline .outline-link { + color: var(--palette-forge-text-3); + transition: color 0.2s; +} + +.VPDocAsideOutline .outline-link:hover, +.VPDocAsideOutline .outline-link.active { + color: var(--palette-forge-cyan); +} + +.VPDocAsideOutline .outline-marker { + background-color: var(--palette-forge-cyan) !important; +} + +/* ----- Doc footer (prev/next) ----- */ + +.VPDocFooter .pager-link { + border: 1px solid var(--palette-forge-metal-5); + background: var(--palette-forge-metal-2); + transition: border-color 0.2s; +} + +.VPDocFooter .pager-link:hover { + border-color: var(--palette-forge-cyan); +} + +.VPDocFooter .pager-link .title { + color: var(--palette-forge-text-2); +} + +.VPDocFooter .pager-link .desc { + color: var(--palette-forge-cyan); +} + +/* ----- Scrollbar ----- */ + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: var(--palette-forge-metal-1); +} + +::-webkit-scrollbar-thumb { + background: var(--palette-forge-metal-6); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--palette-forge-cyan); +} + +/* ----- Selection ----- */ + +::selection { + background: rgba(0, 243, 255, 0.25); + color: var(--palette-forge-white); +} + +/* ----- Hide appearance toggle (always dark) ----- */ + +.VPSwitchAppearance { + display: none !important; +} diff --git a/packages/docs/.vitepress/theme/index.ts b/packages/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..73d6f75 --- /dev/null +++ b/packages/docs/.vitepress/theme/index.ts @@ -0,0 +1,13 @@ +import { h } from "vue"; +import DefaultTheme from "vitepress/theme-without-fonts"; +import AnvilAnimation from "./AnvilAnimation.vue"; +import "./custom.css"; + +export default { + extends: DefaultTheme, + Layout() { + return h(DefaultTheme.Layout, null, { + "home-hero-image": () => h(AnvilAnimation), + }); + }, +}; diff --git a/packages/docs/cssforge.config.ts b/packages/docs/cssforge.config.ts new file mode 100644 index 0000000..8c769de --- /dev/null +++ b/packages/docs/cssforge.config.ts @@ -0,0 +1,72 @@ +import { defineConfig } from "@hebilicious/cssforge"; + +export default defineConfig({ + colors: { + palette: { + value: { + forge: { + value: { + // Anvil neon accents + cyan: "#00f3ff", + magenta: "#ff00a0", + + // Backgrounds + void: "#030206", + space: "#140d26", + "space-light": "#1c1333", + + // Metal surfaces + "metal-1": "#08080c", + "metal-2": "#111118", + "metal-3": "#15151c", + "metal-4": "#1a1a24", + "metal-5": "#2a2a35", + "metal-6": "#2b2b3a", + "metal-7": "#3b3b4f", + "metal-8": "#44445c", + "metal-9": "#555568", + "metal-10": "#6a6a82", + + // Text + white: "#ffffff", + "text-1": "#e0e0f0", + "text-2": "#8888aa", + "text-3": "#555570", + }, + }, + }, + }, + }, + spacing: { + fluid: { + space: { + value: { + minSize: 4, + maxSize: 24, + minWidth: 320, + maxWidth: 1280, + negativeSteps: [0], + positiveSteps: [2, 3, 4, 5], + prefix: "space", + }, + }, + }, + }, + typography: { + fluid: { + docs: { + value: { + minWidth: 320, + minFontSize: 15, + minTypeScale: 1.2, + maxWidth: 1280, + maxFontSize: 18, + maxTypeScale: 1.25, + negativeSteps: 1, + positiveSteps: 3, + prefix: "text", + }, + }, + }, + }, +}); diff --git a/packages/docs/index.md b/packages/docs/index.md new file mode 100644 index 0000000..e46dd01 --- /dev/null +++ b/packages/docs/index.md @@ -0,0 +1,43 @@ +--- +layout: home +hero: + name: CSS Forge + text: Design tokens for modern CSS + tagline: 0 runtime design tokens generator for modern style systems. + image: + light: /placeholder + dark: /placeholder + alt: CSS Forge Anvil + actions: + - theme: brand + text: Get Started + link: /docs#quick-start + - theme: alt + text: View on GitHub + link: https://github.com/Hebilicious/cssforge +features: + - title: Colors + details: Create palettes, gradients and themes. Automatically convert to OKLCH. + icon: + src: /icons/colors.svg + - title: Typography + details: Generate fluid typography scales with clamp-based responsive sizing. + icon: + src: /icons/typography.svg + - title: Spacing + details: Organize spacing utilities with fluid and custom scales. + icon: + src: /icons/spacing.svg + - title: Primitives + details: Define custom design tokens for any CSS property. + icon: + src: /icons/primitives.svg + - title: Zero Runtime + details: All processing happens at build time. Ship raw CSS, TypeScript, or JSON. + icon: + src: /icons/zero-runtime.svg + - title: Framework Agnostic + details: Use with any CSS workflow — Tailwind, vanilla CSS, or your own system. + icon: + src: /icons/framework.svg +--- diff --git a/packages/docs/moon.yml b/packages/docs/moon.yml new file mode 100644 index 0000000..de743a0 --- /dev/null +++ b/packages/docs/moon.yml @@ -0,0 +1,70 @@ +$schema: "https://moonrepo.dev/schemas/v2/project.json" + +language: "typescript" +layer: "application" + +dependsOn: + - "cssforge" + +tasks: + sync-docs: + command: "tsx" + args: ["./scripts/sync-readme.ts"] + inputs: + - "scripts/sync-readme.ts" + - "/packages/cssforge/README.md" + outputs: + - "docs.md" + options: + runInCI: false + + generate: + command: "tsx" + args: + - "../cssforge/src/cli.ts" + - "--prefix" + - "." + - "--config" + - "./cssforge.config.ts" + - "--mode" + - "css" + - "--css" + - "./.cssforge/output.css" + deps: + - "^:build" + inputs: + - "cssforge.config.ts" + outputs: + - ".cssforge/output.css" + options: + runInCI: false + + dev: + command: "vitepress" + args: ["dev"] + deps: + - "~:generate" + - "~:sync-docs" + preset: "server" + options: + runInCI: false + + build: + command: "vitepress" + args: ["build"] + deps: + - "~:generate" + - "~:sync-docs" + outputs: + - ".vitepress/dist" + options: + runInCI: false + + preview: + command: "vitepress" + args: ["preview"] + deps: + - "~:build" + preset: "server" + options: + runInCI: false diff --git a/packages/docs/package.json b/packages/docs/package.json new file mode 100644 index 0000000..ef1759f --- /dev/null +++ b/packages/docs/package.json @@ -0,0 +1,10 @@ +{ + "name": "cssforge-docs", + "private": true, + "type": "module", + "devDependencies": { + "@hebilicious/cssforge": "workspace:*", + "tsx": "4.20.6", + "vitepress": "1.6.3" + } +} diff --git a/packages/docs/public/icons/colors.svg b/packages/docs/public/icons/colors.svg new file mode 100644 index 0000000..c5be94f --- /dev/null +++ b/packages/docs/public/icons/colors.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/public/icons/framework.svg b/packages/docs/public/icons/framework.svg new file mode 100644 index 0000000..624ea72 --- /dev/null +++ b/packages/docs/public/icons/framework.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/public/icons/primitives.svg b/packages/docs/public/icons/primitives.svg new file mode 100644 index 0000000..178bf64 --- /dev/null +++ b/packages/docs/public/icons/primitives.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/public/icons/spacing.svg b/packages/docs/public/icons/spacing.svg new file mode 100644 index 0000000..da9fd07 --- /dev/null +++ b/packages/docs/public/icons/spacing.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/docs/public/icons/typography.svg b/packages/docs/public/icons/typography.svg new file mode 100644 index 0000000..8f35995 --- /dev/null +++ b/packages/docs/public/icons/typography.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + Aa + + + + + + diff --git a/packages/docs/public/icons/zero-runtime.svg b/packages/docs/public/icons/zero-runtime.svg new file mode 100644 index 0000000..6bea45d --- /dev/null +++ b/packages/docs/public/icons/zero-runtime.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0ms + diff --git a/packages/docs/scripts/sync-readme.ts b/packages/docs/scripts/sync-readme.ts new file mode 100644 index 0000000..6ac861f --- /dev/null +++ b/packages/docs/scripts/sync-readme.ts @@ -0,0 +1,44 @@ +import { readFileSync, writeFileSync } from "node:fs"; +import { resolve } from "node:path"; + +const root = resolve(import.meta.dirname, "../../.."); +const readmePath = resolve(root, "packages/cssforge/README.md"); +const outputPath = resolve(root, "packages/docs/docs.md"); + +const readme = readFileSync(readmePath, "utf-8"); + +const GITHUB_BASE = + "https://github.com/Hebilicious/cssforge/tree/main"; + +let content = readme; + +// Transform GitHub-flavored alerts to VitePress containers +content = content.replace( + /^> \[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\n((?:> .*\n?)*)/gm, + (_match, type: string, body: string) => { + const containerType = type.toLowerCase(); + const text = body + .split("\n") + .map((line: string) => line.replace(/^> ?/, "")) + .join("\n") + .trim(); + return `::: ${containerType}\n${text}\n:::\n`; + }, +); + +// Replace relative links like ./example/ with GitHub URLs +content = content.replace( + /\]\(\.\/([\w/.-]+)\)/g, + `](${GITHUB_BASE}/$1)`, +); + +// Prepend VitePress frontmatter +const frontmatter = `--- +title: Documentation +outline: [2, 3] +--- + +`; + +writeFileSync(outputPath, frontmatter + content, "utf-8"); +console.log(`Synced README → ${outputPath}`); diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json new file mode 100644 index 0000000..f4391f1 --- /dev/null +++ b/packages/docs/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "lib": [ + "ES2023", + "DOM" + ] + }, + "include": [ + "scripts/**/*.ts", + "cssforge.config.ts", + ".vitepress/**/*.ts" + ], + "references": [ + { + "path": "../cssforge" + } + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8ceaa3a..31351a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -343,8 +343,96 @@ importers: specifier: 4.0.18 version: 4.0.18(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2) + packages/docs: + devDependencies: + '@hebilicious/cssforge': + specifier: workspace:* + version: link:../cssforge + tsx: + specifier: 4.20.6 + version: 4.20.6 + vitepress: + specifier: 1.6.3 + version: 1.6.3(@algolia/client-search@5.49.0)(@types/node@24.10.13)(fuse.js@7.1.0)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3) + packages: + '@algolia/abtesting@1.15.0': + resolution: {integrity: sha512-D1QZ8dQx5zC9yrxNao9ER9bojmmzUdL1i2P9waIRiwnZ5fI26YswcCd6VHR/Q4W3PASfVf2My4YQ2FhGGDewTQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/autocomplete-core@1.17.7': + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.17.7': + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.17.7': + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/client-abtesting@5.49.0': + resolution: {integrity: sha512-Q1MSRhh4Du9WeLIl1S9O+BDUMaL01uuQtmzCyEzOBtu1xBDr3wvqrTJtfEceEkA5/Nw1BdGSHa6sDT3xTAF90A==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-analytics@5.49.0': + resolution: {integrity: sha512-v50elhC80oyQw+8o8BwM+VvPuOo36+3W8VCfR4hsHoafQtGbMtP63U5eNcUydbVsM0py3JLoBaL1yKBK4L01sg==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-common@5.49.0': + resolution: {integrity: sha512-BDmVDtpDvymfLE5YQ2cPnfWJUVTDJqwpJa03Fsb7yJFJmbeKsUOGsnRkYsTbdzf0FfcvyvBB5zdcbrAIL249bg==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-insights@5.49.0': + resolution: {integrity: sha512-lDCXsnZDx7zQ5GzSi1EL3l07EbksjrdpMgixFRCdi2QqeBe42HIQJfPPqdWtwrAXjORRopsPx2z+gGYJP/79Uw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-personalization@5.49.0': + resolution: {integrity: sha512-5k/KB+DsnesNKvMUEwTKSzExOf5zYbiPg7DVO7g1Y/+bhMb3wmxp9RFwfqwPfmoRTjptqvwhR6a0593tWVkmAw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-query-suggestions@5.49.0': + resolution: {integrity: sha512-pjHNcrdjn7p3RQ5Ql1Baiwfdn9bkS+z4gqONJJP8kuZFqYP8Olthy4G7fl5bCB29UjdUj5EWlaElQKCtPluCtQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-search@5.49.0': + resolution: {integrity: sha512-uGv2P3lcviuaZy8ZOAyN60cZdhOVyjXwaDC27a1qdp3Pb5Azn+lLSJwkHU4TNRpphHmIei9HZuUxwQroujdPjw==} + engines: {node: '>= 14.0.0'} + + '@algolia/ingestion@1.49.0': + resolution: {integrity: sha512-sH10mftYlmvfGbvAgTtHYbCIstmNUdiAkX//0NAyBcJRB6NnZmNsdLxdFGbE8ZqlGXzoe0zcUIau+DxKpXtqCw==} + engines: {node: '>= 14.0.0'} + + '@algolia/monitoring@1.49.0': + resolution: {integrity: sha512-RqhGcVVxLpK+lA0GZKywlQIXsI704flc12nv/hOdrwiuk/Uyhxs46KLM4ngip7wutU+7t0PYZWiVayrqBPN/ZQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/recommend@5.49.0': + resolution: {integrity: sha512-kg8omGRvmIPhhqtUqSIpS3regFKWuoWh3WqyUhGk27N4T7q8I++8TsDYsV8vK7oBEzw706m2vUBtN5fw2fDjmw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-browser-xhr@5.49.0': + resolution: {integrity: sha512-BaZ6NTI9VdSbDcsMucdKhTuFFxv6B+3dAZZBozX12fKopYsELh7dBLfZwm8evDCIicmNjIjobi4VNnNshrCSuw==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-fetch@5.49.0': + resolution: {integrity: sha512-2nxISxS5xO5DLAj6QzMImgJv6CqpZhJVkhcTFULESR/k4IpbkJTEHmViVTxw9MlrU8B5GfwHevFd7vKL3a7MXQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-node-http@5.49.0': + resolution: {integrity: sha512-S/B94C6piEUXGpN3y5ysmNKMEqdfNVAXYY+FxivEAV5IGJjbEuLZfT8zPPZUWGw9vh6lgP80Hye2G5aVBNIa8Q==} + engines: {node: '>= 14.0.0'} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -633,6 +721,29 @@ packages: '@deno/shim-deno@0.19.2': resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} + '@docsearch/css@3.8.2': + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} + + '@docsearch/js@3.8.2': + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} + + '@docsearch/react@3.8.2': + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + '@dxup/nuxt@0.3.2': resolution: {integrity: sha512-2f2usP4oLNsIGjPprvABe3f3GWuIhIDp0169pGLFxTDRI5A4d4sBbGpR+tD9bGZCT+1Btb6Q2GKlyv3LkDCW5g==} @@ -648,6 +759,12 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -660,6 +777,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -672,6 +795,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -684,6 +813,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -696,6 +831,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -708,6 +849,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -720,6 +867,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -732,6 +885,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -744,6 +903,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -756,6 +921,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -768,6 +939,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -780,6 +957,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -792,6 +975,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -804,6 +993,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -816,6 +1011,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -828,6 +1029,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -840,6 +1047,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -864,6 +1077,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -888,6 +1107,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -912,6 +1137,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -924,6 +1155,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -936,6 +1173,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -948,6 +1191,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -1014,6 +1263,12 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@iconify-json/simple-icons@1.2.71': + resolution: {integrity: sha512-rNoDFbq1fAYiEexBvrw613/xiUOPEu5MKVV/X8lI64AgdTzLQUUemr9f9fplxUMPoxCBP2rWzlhOEeTHk/Sf0Q==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} @@ -2097,21 +2352,42 @@ packages: '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -2336,9 +2612,18 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/micromatch@4.0.10': resolution: {integrity: sha512-5jOhFDElqr4DKTrTEbnW8DZ4Hz5LRUEmyrGpCMrD/NphYv3nUnaF08xmSLx1rGGnyEs/kFnhiw6dCgcDqMr5PQ==} @@ -2371,6 +2656,9 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@typescript-eslint/eslint-plugin@8.56.0': resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2573,6 +2861,13 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 vue: ^3.0.0 + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + '@vitejs/plugin-vue@6.0.4': resolution: {integrity: sha512-uM5iXipgYIn13UUQCZNdWkYk+sysBeA97d5mHsAoAt1u/wpN3+zxOmsVJWosuzX+IMGRzeYUNytztrYznboIkQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2658,14 +2953,23 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + '@vue/devtools-api@7.7.9': + resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + '@vue/devtools-core@8.0.6': resolution: {integrity: sha512-fN7iVtpSQQdtMORWwVZ1JiIAKriinhD+lCHqPw9Rr252ae2TczILEmW0zcAZifPW8HfYcbFkn+h7Wv6kQQCayw==} peerDependencies: vue: ^3.0.0 + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + '@vue/devtools-kit@8.0.6': resolution: {integrity: sha512-9zXZPTJW72OteDXeSa5RVML3zWDCRcO5t77aJqSs228mdopYj5AiTpihozbsfFJ0IodfNs7pSgOGO3qfCuxDtw==} + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + '@vue/devtools-shared@8.0.6': resolution: {integrity: sha512-Pp1JylTqlgMJvxW6MGyfTF8vGvlBSCAvMFaDCYa82Mgw7TT5eE5kkHgDvmOGHWeJE4zIDfCpCxHapsK2LtIAJg==} @@ -2700,6 +3004,56 @@ packages: vue: optional: true + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + + '@vueuse/integrations@12.8.2': + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} + + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} + abbrev@3.0.1: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -2739,6 +3093,10 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + algoliasearch@5.49.0: + resolution: {integrity: sha512-Tse7vx7WOvbU+kpq/L3BrBhSWTPbtMa59zIEhMn+Z2NoxZlpcCRUDCRxQ7kDFs1T3CHxDgvb+mDuILiBBpBaAA==} + engines: {node: '>= 14.0.0'} + alien-signals@3.1.2: resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} @@ -3506,6 +3864,11 @@ packages: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} @@ -3769,6 +4132,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -4517,6 +4883,9 @@ packages: magicast@0.5.2: resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -4615,6 +4984,9 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + minizlib@3.1.0: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} @@ -4830,6 +5202,9 @@ packages: oniguruma-to-es@2.3.0: resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + open@10.2.0: resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} engines: {node: '>=18'} @@ -4950,6 +5325,9 @@ packages: pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.1.0: resolution: {integrity: sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==} @@ -5187,6 +5565,9 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + preact@10.28.4: + resolution: {integrity: sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -5300,12 +5681,18 @@ packages: regex-recursion@5.1.1: resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} regex@5.1.1: resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -5412,6 +5799,9 @@ packages: scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5490,6 +5880,9 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -5744,6 +6137,9 @@ packages: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} engines: {node: '>=18'} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} @@ -6190,6 +6586,37 @@ packages: vite: ^6.0.0 || ^7.0.0 vue: ^3.5.0 + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@6.4.1: resolution: {integrity: sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -6278,6 +6705,18 @@ packages: vite: optional: true + vitepress@1.6.3: + resolution: {integrity: sha512-fCkfdOk8yRZT8GD9BFqusW3+GggWYZ/rYncOfmgcDtP3ualNHCAg+Robxp2/6xfH1WwPHtGpPwv7mbA3qomtBw==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + vitest@4.0.18: resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -6482,6 +6921,118 @@ packages: snapshots: + '@algolia/abtesting@1.15.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0) + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0) + '@algolia/client-search': 5.49.0 + algoliasearch: 5.49.0 + + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)': + dependencies: + '@algolia/client-search': 5.49.0 + algoliasearch: 5.49.0 + + '@algolia/client-abtesting@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/client-analytics@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/client-common@5.49.0': {} + + '@algolia/client-insights@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/client-personalization@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/client-query-suggestions@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/client-search@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/ingestion@1.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/monitoring@1.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/recommend@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + + '@algolia/requester-browser-xhr@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + + '@algolia/requester-fetch@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + + '@algolia/requester-node-http@5.49.0': + dependencies: + '@algolia/client-common': 5.49.0 + '@alloc/quick-lru@5.2.0': {} '@babel/code-frame@7.26.2': @@ -6877,6 +7428,30 @@ snapshots: '@deno/shim-deno-test': 0.5.0 which: 4.0.0 + '@docsearch/css@3.8.2': {} + + '@docsearch/js@3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)': + dependencies: + '@docsearch/react': 3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3) + preact: 10.28.4 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.49.0)(algoliasearch@5.49.0) + '@docsearch/css': 3.8.2 + algoliasearch: 5.49.0 + optionalDependencies: + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + '@dxup/nuxt@0.3.2(magicast@0.5.2)': dependencies: '@dxup/unimport': 0.1.2 @@ -6905,102 +7480,153 @@ snapshots: tslib: 2.8.1 optional: true + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/aix-ppc64@0.25.12': optional: true '@esbuild/aix-ppc64@0.27.3': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm64@0.27.3': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-arm@0.27.3': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/android-x64@0.25.12': optional: true '@esbuild/android-x64@0.27.3': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-arm64@0.27.3': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/darwin-x64@0.27.3': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.27.3': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/freebsd-x64@0.27.3': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm64@0.27.3': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-arm@0.27.3': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-ia32@0.27.3': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-loong64@0.27.3': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-mips64el@0.27.3': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-ppc64@0.27.3': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-riscv64@0.27.3': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-s390x@0.27.3': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/linux-x64@0.25.12': optional: true @@ -7013,6 +7639,9 @@ snapshots: '@esbuild/netbsd-arm64@0.27.3': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.25.12': optional: true @@ -7025,6 +7654,9 @@ snapshots: '@esbuild/openbsd-arm64@0.27.3': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.25.12': optional: true @@ -7037,24 +7669,36 @@ snapshots: '@esbuild/openharmony-arm64@0.27.3': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/sunos-x64@0.27.3': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-arm64@0.27.3': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-ia32@0.27.3': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@esbuild/win32-x64@0.25.12': optional: true @@ -7118,6 +7762,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@iconify-json/simple-icons@1.2.71': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + '@img/colour@1.0.0': optional: true @@ -8055,30 +8705,68 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@2.5.0': + dependencies: + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 2.3.0 + '@shikijs/engine-javascript@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 + '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/langs@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/themes@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/transformers@2.5.0': + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@2.5.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@sindresorhus/is@7.2.0': {} @@ -8334,10 +9022,19 @@ snapshots: '@types/json5@0.0.29': {} + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 + '@types/mdurl@2.0.0': {} + '@types/micromatch@4.0.10': dependencies: '@types/braces': 3.0.5 @@ -8370,6 +9067,8 @@ snapshots: '@types/unist@3.0.3': {} + '@types/web-bluetooth@0.0.21': {} + '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -8615,6 +9314,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@24.10.13)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.28(typescript@5.9.3))': + dependencies: + vite: 5.4.21(@types/node@24.10.13)(lightningcss@1.31.1)(terser@5.46.0) + vue: 3.5.28(typescript@5.9.3) + '@vitejs/plugin-vue@6.0.4(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 @@ -8743,6 +9447,10 @@ snapshots: '@vue/devtools-api@6.6.4': {} + '@vue/devtools-api@7.7.9': + dependencies: + '@vue/devtools-kit': 7.7.9 + '@vue/devtools-core@8.0.6(vite@7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2))(vue@3.5.28(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 8.0.6 @@ -8755,6 +9463,16 @@ snapshots: transitivePeerDependencies: - vite + '@vue/devtools-kit@7.7.9': + dependencies: + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + '@vue/devtools-kit@8.0.6': dependencies: '@vue/devtools-shared': 8.0.6 @@ -8765,6 +9483,10 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.6 + '@vue/devtools-shared@7.7.9': + dependencies: + rfdc: 1.4.1 + '@vue/devtools-shared@8.0.6': dependencies: rfdc: 1.4.1 @@ -8808,6 +9530,34 @@ snapshots: typescript: 5.9.3 vue: 3.5.28(typescript@5.9.3) + '@vueuse/core@12.8.2(typescript@5.9.3)': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 12.8.2 + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.28(typescript@5.9.3) + transitivePeerDependencies: + - typescript + + '@vueuse/integrations@12.8.2(focus-trap@7.8.0)(fuse.js@7.1.0)(typescript@5.9.3)': + dependencies: + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.28(typescript@5.9.3) + optionalDependencies: + focus-trap: 7.8.0 + fuse.js: 7.1.0 + transitivePeerDependencies: + - typescript + + '@vueuse/metadata@12.8.2': {} + + '@vueuse/shared@12.8.2(typescript@5.9.3)': + dependencies: + vue: 3.5.28(typescript@5.9.3) + transitivePeerDependencies: + - typescript + abbrev@3.0.1: {} abort-controller@3.0.0: @@ -8841,6 +9591,23 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + algoliasearch@5.49.0: + dependencies: + '@algolia/abtesting': 1.15.0 + '@algolia/client-abtesting': 5.49.0 + '@algolia/client-analytics': 5.49.0 + '@algolia/client-common': 5.49.0 + '@algolia/client-insights': 5.49.0 + '@algolia/client-personalization': 5.49.0 + '@algolia/client-query-suggestions': 5.49.0 + '@algolia/client-search': 5.49.0 + '@algolia/ingestion': 1.49.0 + '@algolia/monitoring': 1.49.0 + '@algolia/recommend': 5.49.0 + '@algolia/requester-browser-xhr': 5.49.0 + '@algolia/requester-fetch': 5.49.0 + '@algolia/requester-node-http': 5.49.0 + alien-signals@3.1.2: {} ansi-align@3.0.1: @@ -9646,6 +10413,32 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.12: optionalDependencies: '@esbuild/aix-ppc64': 0.25.12 @@ -10031,6 +10824,10 @@ snapshots: flatted@3.3.3: {} + focus-trap@7.8.0: + dependencies: + tabbable: 6.4.0 + follow-redirects@1.15.11: {} for-each@0.3.5: @@ -10780,6 +11577,8 @@ snapshots: '@babel/types': 7.29.0 source-map-js: 1.2.1 + mark.js@8.11.1: {} + math-intrinsics@1.1.0: {} md4w@0.2.7: {} @@ -10868,6 +11667,8 @@ snapshots: minipass@7.1.3: {} + minisearch@7.2.0: {} + minizlib@3.1.0: dependencies: minipass: 7.1.3 @@ -11277,6 +12078,12 @@ snapshots: regex: 5.1.1 regex-recursion: 5.1.1 + oniguruma-to-es@3.1.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 6.1.0 + regex-recursion: 6.0.2 + open@10.2.0: dependencies: default-browser: 5.5.0 @@ -11451,6 +12258,8 @@ snapshots: pathe@2.0.3: {} + perfect-debounce@1.0.0: {} + perfect-debounce@2.1.0: {} picocolors@1.1.1: {} @@ -11662,6 +12471,8 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + preact@10.28.4: {} + prelude-ls@1.2.1: {} prettier@2.8.8: {} @@ -11783,12 +12594,20 @@ snapshots: regex: 5.1.1 regex-utilities: 2.3.0 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + regex-utilities@2.3.0: {} regex@5.1.1: dependencies: regex-utilities: 2.3.0 + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + regexp-tree@0.1.27: {} regexp.prototype.flags@1.5.4: @@ -11912,6 +12731,8 @@ snapshots: scule@1.3.0: {} + search-insights@2.17.3: {} + semver@6.3.1: {} semver@7.7.4: {} @@ -12059,6 +12880,17 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@2.5.0: + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -12363,6 +13195,8 @@ snapshots: system-architecture@0.1.0: {} + tabbable@6.4.0: {} + tagged-tag@1.0.0: {} tailwindcss@4.2.0: {} @@ -12949,6 +13783,17 @@ snapshots: vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2) vue: 3.5.28(typescript@5.9.3) + vite@5.4.21(@types/node@24.10.13)(lightningcss@1.31.1)(terser@5.46.0): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.57.1 + optionalDependencies: + '@types/node': 24.10.13 + fsevents: 2.3.3 + lightningcss: 1.31.1 + terser: 5.46.0 + vite@6.4.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2): dependencies: esbuild: 0.25.12 @@ -13004,6 +13849,55 @@ snapshots: optionalDependencies: vite: 7.3.1(@types/node@24.10.13)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2) + vitepress@1.6.3(@algolia/client-search@5.49.0)(@types/node@24.10.13)(fuse.js@7.1.0)(lightningcss@1.31.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.46.0)(typescript@5.9.3): + dependencies: + '@docsearch/css': 3.8.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.49.0)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.71 + '@shikijs/core': 2.5.0 + '@shikijs/transformers': 2.5.0 + '@shikijs/types': 2.5.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@24.10.13)(lightningcss@1.31.1)(terser@5.46.0))(vue@3.5.28(typescript@5.9.3)) + '@vue/devtools-api': 7.7.9 + '@vue/shared': 3.5.28 + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/integrations': 12.8.2(focus-trap@7.8.0)(fuse.js@7.1.0)(typescript@5.9.3) + focus-trap: 7.8.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 2.5.0 + vite: 5.4.21(@types/node@24.10.13)(lightningcss@1.31.1)(terser@5.46.0) + vue: 3.5.28(typescript@5.9.3) + optionalDependencies: + postcss: 8.5.6 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - sass-embedded + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + vitest@4.0.18(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.20.6)(yaml@2.8.2): dependencies: '@vitest/expect': 4.0.18