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 @@
+
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 @@
+
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