From 6fbe4279cccce663a8e3d11d29027f10f6ee8b46 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 16 Jan 2026 16:22:07 +0800 Subject: [PATCH] docs: use voidzero theme --- docs/.vitepress/config.ts | 55 +++-- docs/.vitepress/theme/Home.vue | 26 ++ docs/.vitepress/theme/index.ts | 16 +- docs/.vitepress/theme/styles.css | 7 +- docs/index.md | 10 +- docs/package.json | 1 + docs/public/hero.svg | 38 +++ docs/public/logo-dark.svg | 134 +++++++++++ docs/public/logo-light.svg | 134 +++++++++++ docs/public/logo_devtools.svg | 18 -- docs/public/logo_devtools_dark.svg | 21 -- pnpm-lock.yaml | 375 ++++++++++++++++++++++++++++- pnpm-workspace.yaml | 1 + 13 files changed, 764 insertions(+), 72 deletions(-) create mode 100644 docs/.vitepress/theme/Home.vue create mode 100644 docs/public/hero.svg create mode 100644 docs/public/logo-dark.svg create mode 100644 docs/public/logo-light.svg delete mode 100644 docs/public/logo_devtools.svg delete mode 100644 docs/public/logo_devtools_dark.svg diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 6e8d1cbc..eadd9b2a 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -1,4 +1,5 @@ import { transformerTwoslash } from '@shikijs/vitepress-twoslash' +import { extendConfig } from '@voidzero-dev/vitepress-theme/config' import { defineConfig } from 'vitepress' import { groupIconMdPlugin, @@ -7,26 +8,38 @@ import { import { withMermaid } from 'vitepress-plugin-mermaid' import { version } from '../../package.json' +const DevToolsKitNav = [ + { text: 'Introduction', link: '/kit/' }, + { text: 'DevTools Plugin', link: '/kit/devtools-plugin' }, + { text: 'Dock System', link: '/kit/dock-system' }, + { text: 'RPC', link: '/kit/rpc' }, + { text: 'Shared State', link: '/kit/shared-state' }, +] + +const SocialLinks = [ + { icon: 'bluesky', link: 'https://bsky.app/profile/vite.dev' }, + { icon: 'mastodon', link: 'https://elk.zone/m.webtoo.ls/@vite' }, + { icon: 'x', link: 'https://x.com/vite_js' }, + { icon: 'discord', link: 'https://chat.vite.dev' }, + { icon: 'github', link: 'https://github.com/vitejs/devtools' }, +] + // https://vitepress.dev/reference/site-config -export default withMermaid(defineConfig({ +export default extendConfig(withMermaid(defineConfig({ title: 'Vite DevTools', description: 'Visualize and analyze your Vite build process with powerful developer tools. Extensible architecture for building custom DevTools integrations.', head: [ ['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }], ], themeConfig: { + variant: 'vite', + // https://vitepress.dev/reference/default-theme-config nav: [ { text: 'Guide', link: '/guide/' }, { text: 'DevTools Kit', - items: [ - { text: 'Introduction', link: '/kit/' }, - { text: 'DevTools Plugin', link: '/kit/devtools-plugin' }, - { text: 'Dock System', link: '/kit/dock-system' }, - { text: 'RPC', link: '/kit/rpc' }, - { text: 'Shared State', link: '/kit/shared-state' }, - ], + items: DevToolsKitNav, }, { text: `v${version}`, @@ -69,6 +82,22 @@ export default withMermaid(defineConfig({ footer: { message: `Released under the MIT License.`, copyright: 'Copyright © 2025-present VoidZero Inc. & Vite Contributors', + nav: [ + { + title: 'Vite DevTools', + items: [ + { text: 'Guide', link: '/guide/' }, + { text: 'Features', link: '/guide/features' }, + { text: 'Release Notes', link: 'https://github.com/vitejs/devtools/releases' }, + { text: 'Contributing', link: 'https://github.com/vitejs/devtools/blob/main/CONTRIBUTING.md' }, + ], + }, + { + title: 'DevTools Kit', + items: DevToolsKitNav, + }, + ], + social: SocialLinks, }, lastUpdated: { @@ -80,13 +109,7 @@ export default withMermaid(defineConfig({ text: 'Suggest changes to this page', }, - socialLinks: [ - { icon: 'bluesky', link: 'https://bsky.app/profile/vite.dev' }, - { icon: 'mastodon', link: 'https://elk.zone/m.webtoo.ls/@vite' }, - { icon: 'x', link: 'https://x.com/vite_js' }, - { icon: 'discord', link: 'https://chat.vite.dev' }, - { icon: 'github', link: 'https://github.com/vitejs/devtools' }, - ], + socialLinks: SocialLinks, }, markdown: { codeTransformers: [ @@ -119,4 +142,4 @@ export default withMermaid(defineConfig({ useMaxWidth: true, }, }, -})) +}))) diff --git a/docs/.vitepress/theme/Home.vue b/docs/.vitepress/theme/Home.vue new file mode 100644 index 00000000..f06d1c90 --- /dev/null +++ b/docs/.vitepress/theme/Home.vue @@ -0,0 +1,26 @@ + + + diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 08e3cb1f..c96d96cd 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -1,13 +1,25 @@ +/// + import type { Theme } from 'vitepress' +import monoIcon from '@assets/icons/vite-mono.svg' +import footerBg from '@assets/vite/footer-background.jpg' import TwoslashFloatingVue from '@shikijs/vitepress-twoslash/client' -import DefaultTheme from 'vitepress/theme' +import BaseTheme, { themeContextKey } from '@voidzero-dev/vitepress-theme' import 'virtual:group-icons.css' import './styles.css' import '@shikijs/vitepress-twoslash/style.css' export default { - extends: DefaultTheme, + extends: BaseTheme, enhanceApp({ app }) { app.use(TwoslashFloatingVue) + + app.provide(themeContextKey, { + logoDark: '/logo-dark.svg', + logoLight: '/logo-light.svg', + logoAlt: 'Vite Devtools', + footerBg, + monoIcon, + }) }, } satisfies Theme diff --git a/docs/.vitepress/theme/styles.css b/docs/.vitepress/theme/styles.css index 5d1e684f..26cb5cb9 100644 --- a/docs/.vitepress/theme/styles.css +++ b/docs/.vitepress/theme/styles.css @@ -1,6 +1,7 @@ -.VPImage.logo { - height: 18px; -} +/* styles.css */ +@import "@voidzero-dev/vitepress-theme/src/styles/index.css"; + +@source "./**/*.vue"; .mermaid .node rect, .mermaid .node circle, diff --git a/docs/index.md b/docs/index.md index 861bd751..c6e99e3b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,6 @@ --- layout: home +theme: dark hero: name: Vite DevTools @@ -13,8 +14,7 @@ hero: text: View on GitHub link: https://github.com/vitejs/devtools image: - light: /logo_devtools.svg - dark: /logo_devtools_dark.svg + src: /hero.svg alt: Vite DevTools features: @@ -37,3 +37,9 @@ features: title: Framework Agnostic details: Works with any framework built on Vite. Use Vue, React, Svelte, or any other framework to build your DevTools UI. --- + + + + diff --git a/docs/package.json b/docs/package.json index 755e5f1b..14450a4b 100644 --- a/docs/package.json +++ b/docs/package.json @@ -10,6 +10,7 @@ "devDependencies": { "@shikijs/vitepress-twoslash": "catalog:docs", "@vitejs/devtools": "workspace:*", + "@voidzero-dev/vitepress-theme": "catalog:docs", "mermaid": "catalog:docs", "vitepress": "catalog:docs", "vitepress-plugin-group-icons": "catalog:docs", diff --git a/docs/public/hero.svg b/docs/public/hero.svg new file mode 100644 index 00000000..6bf69c76 --- /dev/null +++ b/docs/public/hero.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/logo-dark.svg b/docs/public/logo-dark.svg new file mode 100644 index 00000000..c562f07d --- /dev/null +++ b/docs/public/logo-dark.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/logo-light.svg b/docs/public/logo-light.svg new file mode 100644 index 00000000..25d94c1a --- /dev/null +++ b/docs/public/logo-light.svg @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/logo_devtools.svg b/docs/public/logo_devtools.svg deleted file mode 100644 index d6ac0bf8..00000000 --- a/docs/public/logo_devtools.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/public/logo_devtools_dark.svg b/docs/public/logo_devtools_dark.svg deleted file mode 100644 index bc60a8e8..00000000 --- a/docs/public/logo_devtools_dark.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ffede7aa..4c66bb4c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ catalogs: '@shikijs/vitepress-twoslash': specifier: ^3.21.0 version: 3.21.0 + '@voidzero-dev/vitepress-theme': + specifier: ^4.2.0 + version: 4.2.0 mermaid: specifier: ^11.12.2 version: 11.12.2 @@ -518,6 +521,9 @@ importers: '@vitejs/devtools': specifier: workspace:* version: link:../packages/core + '@voidzero-dev/vitepress-theme': + specifier: catalog:docs + version: 4.2.0(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3)) mermaid: specifier: catalog:docs version: 11.12.2 @@ -1473,6 +1479,9 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@floating-ui/vue@1.1.9': + resolution: {integrity: sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==} + '@gwhitney/detect-indent@7.0.1': resolution: {integrity: sha512-7bQW+gkKa2kKZPeJf6+c6gFK9ARxQfn+FKy9ScTBppyKRWH2KzsmweXUoklqeEiHiNVWaeP5csIdsNq6w7QhzA==} engines: {node: '>=12.20'} @@ -1541,6 +1550,12 @@ packages: '@iconify/utils@3.1.0': resolution: {integrity: sha512-Zlzem1ZXhI1iHeeERabLNzBHdOa4VhQbqAcOQaMKuTuyZCpwKbC2R4Dd0Zo3g9EAc+Y4fiarO8HIHRAth7+skw==} + '@internationalized/date@3.10.1': + resolution: {integrity: sha512-oJrXtQiAXLvT9clCf1K4kxp3eKsQhIaZqxEyowkBcsvZDdZkbWrVmnGknxs5flTD0VGsxrxKgBCZty1EzoiMzA==} + + '@internationalized/number@3.6.5': + resolution: {integrity: sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==} + '@ioredis/commands@1.5.0': resolution: {integrity: sha512-eUgLqrMf8nJkZxT24JvVRrQya1vZkQh8BBeYNwGDqa5I0VUi8ACx7uFvAaLxintokpTenkK6DASvo/bvNbBGow==} @@ -2164,6 +2179,9 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + '@rive-app/canvas-lite@2.34.1': + resolution: {integrity: sha512-KwUBRvwqwQpr3j7W2eDtKJ2cqtfMRe3s6N0W2T1zNaJ3nH19JnGUaJQRVMmwKea9WDouVhIibY5HcDsub2whJw==} + '@rolldown/binding-android-arm64@1.0.0-beta.60': resolution: {integrity: sha512-hOW6iQXtpG4uCW1zGK56+KhEXGttSkTp2ykncW/nkOIF/jOKTqbM944Q73HVeMXP1mPRvE2cZwNp3xeLIeyIGQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2251,9 +2269,6 @@ packages: '@rolldown/pluginutils@1.0.0-beta.53': resolution: {integrity: sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==} - '@rolldown/pluginutils@1.0.0-beta.59': - resolution: {integrity: sha512-aoh6LAJRyhtazs98ydgpNOYstxUlsOV1KJXcpf/0c0vFcUA8uyd/hwKRhqE/AAPNqAho9RliGsvitCoOzREoVA==} - '@rolldown/pluginutils@1.0.0-beta.60': resolution: {integrity: sha512-Jz4aqXRPVtqkH1E3jRDzLO5cgN5JwW+WG0wXGE4NiJd25nougv/AHzxmKCzmVQUYnxLmTM0M4wrZp+LlC2FKLg==} @@ -2523,6 +2538,116 @@ packages: peerDependencies: eslint: '>=9.0.0' + '@swc/helpers@0.5.18': + resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + + '@tailwindcss/node@4.1.18': + resolution: {integrity: sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==} + + '@tailwindcss/oxide-android-arm64@4.1.18': + resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.18': + resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.18': + resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} + engines: {node: '>= 10'} + + '@tailwindcss/typography@0.5.19': + resolution: {integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@tailwindcss/vite@4.1.18': + resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} + peerDependencies: + vite: ^8.0.0-beta.8 + + '@tanstack/virtual-core@3.13.18': + resolution: {integrity: sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==} + + '@tanstack/vue-virtual@3.13.18': + resolution: {integrity: sha512-6pT8HdHtTU5Z+t906cGdCroUNA5wHjFXsNss9gwk7QAr1VNZtz9IQCs2Nhx0gABK48c+OocHl2As+TMg8+Hy4A==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -3102,6 +3227,12 @@ packages: '@vitest/utils@4.0.17': resolution: {integrity: sha512-RG6iy+IzQpa9SB8HAFHJ9Y+pTzI+h8553MrciN9eC6TFBErqrQaTas4vG+MVj8S4uKk8uTT2p0vgZPnTdxd96w==} + '@voidzero-dev/vitepress-theme@4.2.0': + resolution: {integrity: sha512-h6WY3zvH8gJJ2bVaAi/kpNFYWm5rPBom645aXpBTBypugxIR/EzWCBRMGjiQw84N3LCR6CBtNhxXvI5dVYvlSA==} + peerDependencies: + vitepress: ^2.0.0-alpha.15 + vue: ^3.5.0 + '@volar/language-core@2.4.27': resolution: {integrity: sha512-DjmjBWZ4tJKxfNC1F6HyYERNHPYS7L7OPFyCrestykNdUZMFYzI9WTyvwPcaNaHlrEUwESHYsfEw3isInncZxQ==} @@ -3193,6 +3324,9 @@ packages: peerDependencies: vue: ^3.5.0 + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + '@vueuse/core@14.1.0': resolution: {integrity: sha512-rgBinKs07hAYyPF834mDTigH7BtPqvZ3Pryuzt1SD/lg5wEcWqvwzXXYGEDb2/cP0Sj5zSvHl3WkmMELr5kfWw==} peerDependencies: @@ -3240,6 +3374,9 @@ packages: universal-cookie: optional: true + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} + '@vueuse/metadata@14.1.0': resolution: {integrity: sha512-7hK4g015rWn2PhKcZ99NyT+ZD9sbwm7SGvp7k+k+rKGWnLjS/oQozoIZzWfCewSUeBmnJkIb+CNr7Zc/EyRnnA==} @@ -3255,6 +3392,9 @@ packages: vue: ^3.5.0 vue-router: ^4.0.0 + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} + '@vueuse/shared@14.1.0': resolution: {integrity: sha512-EcKxtYvn6gx1F8z9J5/rsg3+lTQnvOruQd8fUecW99DCK04BkWD7z5KQ/wTAx+DazyoEE9dJt/zV8OIEQbM6kw==} peerDependencies: @@ -3428,6 +3568,10 @@ packages: args-tokenizer@0.3.0: resolution: {integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -5926,6 +6070,10 @@ packages: peerDependencies: postcss: ^8.4.32 + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} @@ -6076,6 +6224,11 @@ packages: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true + reka-ui@2.7.0: + resolution: {integrity: sha512-m+XmxQN2xtFzBP3OAdIafKq7C8OETo2fqfxcIIxYmNN2Ch3r5oAf6yEYCIJg5tL/yJU2mHqF70dCCekUkrAnXA==} + peerDependencies: + vue: '>= 3.2.0' + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6474,6 +6627,9 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} + tailwindcss@4.1.18: + resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -7105,6 +7261,17 @@ packages: vue-bundle-renderer@2.2.0: resolution: {integrity: sha512-sz/0WEdYH1KfaOm0XaBmRZOWgYTEvUDt6yPYaUzl4E52qzgWLlknaPPTTZmp6benaPTlQAI/hN1x3tAzZygycg==} + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + vue-devtools-stub@0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} @@ -7998,6 +8165,15 @@ snapshots: '@floating-ui/utils@0.2.10': {} + '@floating-ui/vue@1.1.9(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@floating-ui/dom': 1.7.4 + '@floating-ui/utils': 0.2.10 + vue-demi: 0.14.10(vue@3.5.26(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@gwhitney/detect-indent@7.0.1': {} '@humanfs/core@0.19.1': {} @@ -8075,6 +8251,14 @@ snapshots: '@iconify/types': 2.0.0 mlly: 1.8.0 + '@internationalized/date@3.10.1': + dependencies: + '@swc/helpers': 0.5.18 + + '@internationalized/number@3.6.5': + dependencies: + '@swc/helpers': 0.5.18 + '@ioredis/commands@1.5.0': {} '@isaacs/balanced-match@4.0.1': {} @@ -8475,7 +8659,7 @@ snapshots: escape-string-regexp: 5.0.0 exsolve: 1.0.8 get-port-please: 3.2.0 - h3: 1.15.4 + h3: 1.15.5 jiti: 2.6.1 knitwork: 1.3.0 magic-string: 0.30.21 @@ -8488,7 +8672,7 @@ snapshots: rollup-plugin-visualizer: 6.0.5(rolldown@1.0.0-beta.60)(rollup@4.55.1) seroval: 1.4.2 std-env: 3.10.0 - ufo: 1.6.2 + ufo: 1.6.3 unenv: 2.0.0-rc.24 vite: 8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vite-node: 5.2.0(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) @@ -8818,6 +9002,8 @@ snapshots: dependencies: quansync: 1.0.0 + '@rive-app/canvas-lite@2.34.1': {} + '@rolldown/binding-android-arm64@1.0.0-beta.60': optional: true @@ -8863,8 +9049,6 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.53': {} - '@rolldown/pluginutils@1.0.0-beta.59': {} - '@rolldown/pluginutils@1.0.0-beta.60': {} '@rollup/plugin-alias@6.0.0(rollup@4.55.1)': @@ -9092,6 +9276,90 @@ snapshots: estraverse: 5.3.0 picomatch: 4.0.3 + '@swc/helpers@0.5.18': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.1.18': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.4 + jiti: 2.6.1 + lightningcss: 1.30.2 + magic-string: 0.30.21 + source-map-js: 1.2.1 + tailwindcss: 4.1.18 + + '@tailwindcss/oxide-android-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.18': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.18': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.18': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.18': + optional: true + + '@tailwindcss/oxide@4.1.18': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-arm64': 4.1.18 + '@tailwindcss/oxide-darwin-x64': 4.1.18 + '@tailwindcss/oxide-freebsd-x64': 4.1.18 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.18 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.18 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.18 + '@tailwindcss/oxide-linux-x64-musl': 4.1.18 + '@tailwindcss/oxide-wasm32-wasi': 4.1.18 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 + + '@tailwindcss/typography@0.5.19(tailwindcss@4.1.18)': + dependencies: + postcss-selector-parser: 6.0.10 + tailwindcss: 4.1.18 + + '@tailwindcss/vite@4.1.18(vite@8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@tailwindcss/node': 4.1.18 + '@tailwindcss/oxide': 4.1.18 + tailwindcss: 4.1.18 + vite: 8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) + + '@tanstack/virtual-core@3.13.18': {} + + '@tanstack/vue-virtual@3.13.18(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@tanstack/virtual-core': 3.13.18 + vue: 3.5.26(typescript@5.9.3) + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -9778,7 +10046,7 @@ snapshots: '@babel/core': 7.28.5 '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) - '@rolldown/pluginutils': 1.0.0-beta.59 + '@rolldown/pluginutils': 1.0.0-beta.60 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.28.5) vite: 8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.26(typescript@5.9.3) @@ -9841,6 +10109,45 @@ snapshots: '@vitest/pretty-format': 4.0.17 tinyrainbow: 3.0.3 + '@voidzero-dev/vitepress-theme@4.2.0(@algolia/client-search@5.46.2)(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(react@19.2.3)(search-insights@2.17.3)(typescript@5.9.3)(vite@8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vitepress@2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': + dependencies: + '@docsearch/css': 4.4.0 + '@docsearch/js': 4.4.0(@algolia/client-search@5.46.2)(react@19.2.3)(search-insights@2.17.3) + '@rive-app/canvas-lite': 2.34.1 + '@tailwindcss/typography': 0.5.19(tailwindcss@4.1.18) + '@tailwindcss/vite': 4.1.18(vite@8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vue/shared': 3.5.26 + '@vueuse/core': 14.1.0(vue@3.5.26(typescript@5.9.3)) + '@vueuse/integrations': 14.1.0(change-case@5.4.4)(focus-trap@7.7.1)(fuse.js@7.1.0)(idb-keyval@6.2.2)(vue@3.5.26(typescript@5.9.3)) + '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3)) + mark.js: 8.11.1 + minisearch: 7.2.0 + reka-ui: 2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)) + tailwindcss: 4.1.18 + vitepress: 2.0.0-alpha.15(@algolia/client-search@5.46.2)(@types/node@25.0.3)(change-case@5.4.4)(esbuild@0.27.2)(fuse.js@7.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(oxc-minify@0.102.0)(postcss@8.5.6)(react@19.2.3)(search-insights@2.17.3)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + vue: 3.5.26(typescript@5.9.3) + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - '@vue/composition-api' + - async-validator + - axios + - change-case + - drauu + - focus-trap + - fuse.js + - idb-keyval + - jwt-decode + - nprogress + - qrcode + - react + - react-dom + - search-insights + - sortablejs + - typescript + - universal-cookie + - vite + '@volar/language-core@2.4.27': dependencies: '@volar/source-map': 2.4.27 @@ -10002,6 +10309,15 @@ snapshots: '@vueuse/shared': 14.1.0(vue@3.5.26(typescript@5.9.3)) vue: 3.5.26(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.26(typescript@5.9.3) + transitivePeerDependencies: + - typescript + '@vueuse/core@14.1.0(vue@3.5.26(typescript@5.9.3))': dependencies: '@types/web-bluetooth': 0.0.21 @@ -10020,6 +10336,8 @@ snapshots: fuse.js: 7.1.0 idb-keyval: 6.2.2 + '@vueuse/metadata@12.8.2': {} + '@vueuse/metadata@14.1.0': {} '@vueuse/nuxt@14.1.0(magicast@0.5.1)(nuxt@4.2.2(@parcel/watcher@2.5.1)(@types/node@25.0.3)(@vue/compiler-sfc@3.5.26)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.2(jiti@2.6.1))(idb-keyval@6.2.2)(ioredis@5.9.1)(magicast@0.5.1)(optionator@0.9.4)(rolldown@1.0.0-beta.60)(rollup@4.55.1)(terser@5.44.1)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.8(@types/node@25.0.3)(esbuild@0.27.2)(jiti@2.6.1)(terser@5.44.1)(tsx@4.21.0)(yaml@2.8.2))(vue-tsc@3.2.2(typescript@5.9.3))(yaml@2.8.2))(vue@3.5.26(typescript@5.9.3))': @@ -10039,6 +10357,12 @@ snapshots: vue: 3.5.26(typescript@5.9.3) vue-router: 4.6.4(vue@3.5.26(typescript@5.9.3)) + '@vueuse/shared@12.8.2(typescript@5.9.3)': + dependencies: + vue: 3.5.26(typescript@5.9.3) + transitivePeerDependencies: + - typescript + '@vueuse/shared@14.1.0(vue@3.5.26(typescript@5.9.3))': dependencies: vue: 3.5.26(typescript@5.9.3) @@ -10249,6 +10573,10 @@ snapshots: args-tokenizer@0.3.0: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + assertion-error@2.0.1: {} ast-kit@2.2.0: @@ -13172,6 +13500,11 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 @@ -13312,6 +13645,23 @@ snapshots: dependencies: jsesc: 3.1.0 + reka-ui@2.7.0(typescript@5.9.3)(vue@3.5.26(typescript@5.9.3)): + dependencies: + '@floating-ui/dom': 1.7.4 + '@floating-ui/vue': 1.1.9(vue@3.5.26(typescript@5.9.3)) + '@internationalized/date': 3.10.1 + '@internationalized/number': 3.6.5 + '@tanstack/vue-virtual': 3.13.18(vue@3.5.26(typescript@5.9.3)) + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/shared': 12.8.2(typescript@5.9.3) + aria-hidden: 1.2.6 + defu: 6.1.4 + ohash: 2.0.11 + vue: 3.5.26(typescript@5.9.3) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript + require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -13732,6 +14082,8 @@ snapshots: tagged-tag@1.0.0: {} + tailwindcss@4.1.18: {} + tapable@2.3.0: {} tar-stream@3.1.7: @@ -13856,8 +14208,7 @@ snapshots: - synckit - vue-tsc - tslib@2.8.1: - optional: true + tslib@2.8.1: {} tsx@4.21.0: dependencies: @@ -14450,6 +14801,10 @@ snapshots: dependencies: ufo: 1.6.2 + vue-demi@0.14.10(vue@3.5.26(typescript@5.9.3)): + dependencies: + vue: 3.5.26(typescript@5.9.3) + vue-devtools-stub@0.1.0: {} vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)): diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 52336cff..3afe73cd 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -75,6 +75,7 @@ catalogs: vue-tsc: ^3.2.2 docs: '@shikijs/vitepress-twoslash': ^3.21.0 + '@voidzero-dev/vitepress-theme': ^4.2.0 mermaid: ^11.12.2 vitepress: ^2.0.0-alpha.15 vitepress-plugin-group-icons: ^1.6.5