diff --git a/apps/site/app/docs/[[...slug]]/page.tsx b/apps/site/app/docs/[[...slug]]/page.tsx index 5f09c32..93bade8 100644 --- a/apps/site/app/docs/[[...slug]]/page.tsx +++ b/apps/site/app/docs/[[...slug]]/page.tsx @@ -12,11 +12,29 @@ export default async function Page(props: { if (!page) notFound(); const MDX = (page.data as any)._exports?.default || (page.data as any).exports?.default; + const githubPath = params.slug + ? `apps/site/content/docs/${params.slug.join('/')}.mdx` + : 'apps/site/content/docs/index.mdx'; return ( + + + + Edit this page on GitHub + + ), + }} >

{page.data.title}

diff --git a/apps/site/app/docs/layout.tsx b/apps/site/app/docs/layout.tsx index 4501714..9544882 100644 --- a/apps/site/app/docs/layout.tsx +++ b/apps/site/app/docs/layout.tsx @@ -9,6 +9,10 @@ export default function Layout({ children }: { children: ReactNode }) { {children} diff --git a/apps/site/app/global.css b/apps/site/app/global.css index 60ae68e..394052e 100644 --- a/apps/site/app/global.css +++ b/apps/site/app/global.css @@ -1,5 +1,6 @@ @import 'tailwindcss'; @import 'fumadocs-ui/style.css'; +@import 'fumadocs-twoslash/twoslash.css'; @theme { /* Colors - using CSS custom properties */ diff --git a/apps/site/app/layout.config.tsx b/apps/site/app/layout.config.tsx index 4869d99..2ee09ce 100644 --- a/apps/site/app/layout.config.tsx +++ b/apps/site/app/layout.config.tsx @@ -14,6 +14,7 @@ export const baseOptions: BaseLayoutProps = { ObjectOS ), + transparentMode: 'top', }, links: [ { @@ -29,6 +30,8 @@ export const baseOptions: BaseLayoutProps = { { text: 'GitHub', url: 'https://github.com/objectstack-ai/objectos', + external: true, }, ], + githubUrl: 'https://github.com/objectstack-ai/objectos', }; diff --git a/apps/site/app/layout.tsx b/apps/site/app/layout.tsx index 9de9baa..b4962c9 100644 --- a/apps/site/app/layout.tsx +++ b/apps/site/app/layout.tsx @@ -11,7 +11,16 @@ export default function Layout({ children }: { children: ReactNode }) { return ( - {children} + + {children} + ); diff --git a/apps/site/package.json b/apps/site/package.json index 7ee364d..aa05e52 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -11,7 +11,9 @@ }, "dependencies": { "fumadocs-core": "^16.4.7", + "fumadocs-docgen": "^3.0.5", "fumadocs-mdx": "^14.2.6", + "fumadocs-twoslash": "^3.1.12", "fumadocs-ui": "^16.4.7", "lucide-react": "^0.562.0", "next": "^16.1.4", diff --git a/apps/site/source.config.ts b/apps/site/source.config.ts index 8eac160..887da68 100644 --- a/apps/site/source.config.ts +++ b/apps/site/source.config.ts @@ -1,5 +1,8 @@ import { defineDocs, defineConfig, defineCollections } from 'fumadocs-mdx/config'; import { z } from 'zod'; +import { remarkInstall } from 'fumadocs-docgen'; +import { rehypeCodeDefaultOptions } from 'fumadocs-core/mdx-plugins'; +import { transformerTwoslash } from 'fumadocs-twoslash'; export const { docs, meta } = defineDocs({ dir: 'content/docs', @@ -16,4 +19,18 @@ export const blog = defineCollections({ type: 'doc', }); -export default defineConfig(); +export default defineConfig({ + mdxOptions: { + remarkPlugins: [remarkInstall], + rehypeCodeOptions: { + themes: { + light: 'github-light', + dark: 'github-dark', + }, + transformers: [ + ...(rehypeCodeDefaultOptions.transformers ?? []), + transformerTwoslash(), + ], + }, + }, +}); diff --git a/apps/site/tailwind.config.ts b/apps/site/tailwind.config.ts index 568eaf4..b7cc557 100644 --- a/apps/site/tailwind.config.ts +++ b/apps/site/tailwind.config.ts @@ -9,6 +9,10 @@ const config: Config = { './lib/**/*.{ts,tsx}', './mdx-components.{ts,tsx}', './node_modules/fumadocs-ui/dist/**/*.js', + './node_modules/fumadocs-twoslash/dist/**/*.js', + ], + plugins: [ + require('@tailwindcss/typography'), ], }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cb7e72..7b7e22a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,9 +72,15 @@ importers: fumadocs-core: specifier: ^16.4.7 version: 16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5) + fumadocs-docgen: + specifier: ^3.0.5 + version: 3.0.5(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5)) fumadocs-mdx: specifier: ^14.2.6 version: 14.2.6(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(vite@6.4.1(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)) + fumadocs-twoslash: + specifier: ^3.1.12 + version: 3.1.12(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-ui@16.4.7(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.6.3) fumadocs-ui: specifier: ^16.4.7 version: 16.4.7(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18) @@ -1890,6 +1896,9 @@ packages: '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + '@napi-rs/wasm-runtime@1.1.1': + resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} + '@nestjs/cli@10.4.9': resolution: {integrity: sha512-s8qYd97bggqeK7Op3iD49X2MpFtW4LVNLAwXFkfbRxKME6IYT7X0muNTJ2+QfI8hpbNx9isWkrLWIp+g5FOhiA==} engines: {node: '>= 16.14'} @@ -2114,6 +2123,95 @@ packages: resolution: {integrity: sha512-a61ljmRVVyG5MC/698C8/FfFDw5a8LOIvyOLW5fztgUXqUpc1jOfQzOitSCbge657OgXXThmY3Tk8fpiDb4UcA==} engines: {node: '>= 20.0.0'} + '@oxc-transform/binding-android-arm64@0.105.0': + resolution: {integrity: sha512-DGhC8KYewLlBebMbZxTZCnhvqPAwkyf5Sc+pyHMgCsusghhxR5qHd6GI4NRoHdM/0v5a/pSYyzjCPe32KzMp1g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxc-transform/binding-darwin-arm64@0.105.0': + resolution: {integrity: sha512-ut3WQibJJ+1Vcnzv9meVopm5qz62dRoeX2APU2YpkE1OY+VxHAKutJdfKjLGip05Ef5HItLt24ijBLYeTnh/fQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.105.0': + resolution: {integrity: sha512-1UCqWO+JIQ/qltM+qNaFxeSMydPRSe5JEFvnoyM0Kganl/NeCTlNrIUOEWdmY9pIitBHEBEotROoExBdp/CjpA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-freebsd-x64@0.105.0': + resolution: {integrity: sha512-W+aXW4tL3AJ7oIBSW8hbDcqYCHYeSrKc+Fe/ysFlN9rfBWE+Rq1hNWZ9OhC+HGQqZmNTozl/skO8BM0XXepzkw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxc-transform/binding-linux-arm-gnueabihf@0.105.0': + resolution: {integrity: sha512-SOkv+2LnRBrR2et5r/kVB835LW24b3oKdqOHlt4VpWHowUChmcEoLQ78Xj0lcO9WYz7oihMk+psKZSAisce7FQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxc-transform/binding-linux-arm64-gnu@0.105.0': + resolution: {integrity: sha512-CEoCuy4IB9oSgdTVWgP630c+PH5mhtyHxqWgeupTok/0U8WmZYOJv8ebks9qLB8ksKIn91F+ChuE5kmE+iJhJQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-arm64-musl@0.105.0': + resolution: {integrity: sha512-ZR5yR/Eh5ve8+cxMnnhscadN5ev6jpAQWPZpJd/PGMDPDbE5AFbhHFEBurmUo09vPF4s12QabMsRk3dz70jn0Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-riscv64-gnu@0.105.0': + resolution: {integrity: sha512-rowG6vGQMEoJPryhg40ksyfDpULbJeDHIZuNzIIDRuTi6GwxgXCA3fZk1F3gh6n+asCqEMYJJ3mcndcDXPIOtA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxc-transform/binding-linux-s390x-gnu@0.105.0': + resolution: {integrity: sha512-oN3wPVwFXmWRYgJpuKpKnGqFzE0wX6+ZDRB0SYMYzplTZeRWX/CDeIXYnEFCCWUeDf0PC/LEEc94ZndgiroddQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxc-transform/binding-linux-x64-gnu@0.105.0': + resolution: {integrity: sha512-AWYMf+rqSKsd208K0VF+InXs2QMaF5PIzMdHofelXJksIjhc2C4AJbQOWedeCyCJ8X04bjTtVJy4kD8RHvZP/Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-linux-x64-musl@0.105.0': + resolution: {integrity: sha512-0wJamm+2HyzegH1bmssak1K6uGFAU9bLuVAiSfiQrLMZQtRvorbdF0nn7TZspP3CjJivT8bYMUvzdJdUz7rYQw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-openharmony-arm64@0.105.0': + resolution: {integrity: sha512-auAZW1//kFGVosmTB4dehCK1c12V3/KbtoZXBzG4PV4BJmxl89m4qKQopi8l/CXmh1i/DrXyF5Wem13SK0QBbA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxc-transform/binding-wasm32-wasi@0.105.0': + resolution: {integrity: sha512-n8HnjlyxNaAOK4/eH2oltCGrM7PKzWY26cOXFV/linDxxWZNUs/0UCKDJSswzSITVDEzI07YFCS8bZmk7hLPxg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-transform/binding-win32-arm64-msvc@0.105.0': + resolution: {integrity: sha512-r7RvWk57bdZZ/7cQ4ypOsJWZT8l3j9CU6mntLde+8u4UXUX0RgkaEjMp72B5ytheA3mxSJdCoiPTG4CY56Ul3w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.105.0': + resolution: {integrity: sha512-/3JlrLpIVNzSwUjg0rGFU9zHXcF1KKVRUUV6HP34FCpr6vdX/bo7QELOrXevP76oQYfiqye1VjXeZeL+rgaM2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@paralleldrive/cuid2@2.3.1': resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==} @@ -2935,6 +3033,11 @@ packages: '@shikijs/transformers@3.21.0': resolution: {integrity: sha512-CZwvCWWIiRRiFk9/JKzdEooakAP8mQDtBOQ1TKiCaS2E1bYtyBCOkUzS8akO34/7ufICQ29oeSfkb3tT5KtrhA==} + '@shikijs/twoslash@3.21.0': + resolution: {integrity: sha512-iH360udAYON2JwfIldoCiMZr9MljuQA5QRBivKLpEuEpmVCSwrR+0WTQ0eS1ptgGBdH9weFiIsA5wJDzsEzTYg==} + peerDependencies: + typescript: '>=5.5.0' + '@shikijs/types@2.5.0': resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} @@ -3383,6 +3486,11 @@ packages: resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.6.2': + resolution: {integrity: sha512-hoBwJwcbKHmvd2QVebiytN1aELvpk9B74B4L1mFm/XT1Q/VOYAWl2vQ9AWRFtQq8zmz6enTpfTV8WRc4ATjW/g==} + peerDependencies: + typescript: '*' + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -5033,6 +5141,11 @@ packages: zod: optional: true + fumadocs-docgen@3.0.5: + resolution: {integrity: sha512-QNDzCFcG7tZusgGL5TY2WGaFMujwBBByiZHiEL0BTUO6DHrOUlH4+lmbnIiZYbAOM7axH4PHgA6caxMiPa/nSw==} + peerDependencies: + fumadocs-core: ^15.7.2 || ^16.0.0 + fumadocs-mdx@14.2.6: resolution: {integrity: sha512-T8i5IllZ6OGaZ3/4Wwjl1zovvypSsr6Cco9ZACvoABLqpqTQ2TDfrW1nBt1o9YUKyfzkwDnjKdrnrq/nDexfcg==} hasBin: true @@ -5055,6 +5168,16 @@ packages: vite: optional: true + fumadocs-twoslash@3.1.12: + resolution: {integrity: sha512-s+81vm0+VsWUNy49SifNjvuv5p1y98EKg3EA5wHA2sN0FQG83LRyKa840YMTw9szvQxUdM2Jc+8t7g4pxdjxVw==} + peerDependencies: + '@types/react': '*' + fumadocs-ui: ^15.0.0 || ^16.0.0 + react: 18.x.x || 19.x.x + peerDependenciesMeta: + '@types/react': + optional: true + fumadocs-ui@16.4.7: resolution: {integrity: sha512-ShEftF54mj89EW7Wll2wwGcH6bNTmPrPtUUmO+ThakK13skJmY7GSBH3Ft51TzQNLhN3kBKEQipIlJWc7LT5NQ==} peerDependencies: @@ -6447,6 +6570,10 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + oxc-transform@0.105.0: + resolution: {integrity: sha512-gp8peUNrB/hmSl2ijuWFkDv0PpAt///S9fwXEevORFpeuZlOJ9gE13ZItT9pP6B1f8vAKMwqYBwCxr7Fs9it6w==} + engines: {node: ^20.19.0 || >=22.12.0} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -7644,6 +7771,14 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + twoslash-protocol@0.3.6: + resolution: {integrity: sha512-FHGsJ9Q+EsNr5bEbgG3hnbkvEBdW5STgPU824AHUjB4kw0Dn4p8tABT7Ncg1Ie6V0+mDg3Qpy41VafZXcQhWMA==} + + twoslash@0.3.6: + resolution: {integrity: sha512-VuI5OKl+MaUO9UIW3rXKoPgHI3X40ZgB/j12VY6h98Ae1mCBihjPvhOPeJWlxCYcmSbmeZt5ZKkK0dsVtp+6pA==} + peerDependencies: + typescript: ^5.5.0 + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9539,6 +9674,13 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.1.1': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nestjs/cli@10.4.9': dependencies: '@angular-devkit/core': 17.3.11(chokidar@3.6.0) @@ -9789,6 +9931,53 @@ snapshots: '@orama/orama@3.1.18': {} + '@oxc-transform/binding-android-arm64@0.105.0': + optional: true + + '@oxc-transform/binding-darwin-arm64@0.105.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.105.0': + optional: true + + '@oxc-transform/binding-freebsd-x64@0.105.0': + optional: true + + '@oxc-transform/binding-linux-arm-gnueabihf@0.105.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.105.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.105.0': + optional: true + + '@oxc-transform/binding-linux-riscv64-gnu@0.105.0': + optional: true + + '@oxc-transform/binding-linux-s390x-gnu@0.105.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.105.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.105.0': + optional: true + + '@oxc-transform/binding-openharmony-arm64@0.105.0': + optional: true + + '@oxc-transform/binding-wasm32-wasi@0.105.0': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.105.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.105.0': + optional: true + '@paralleldrive/cuid2@2.3.1': dependencies: '@noble/hashes': 1.8.0 @@ -10973,6 +11162,15 @@ snapshots: '@shikijs/core': 3.21.0 '@shikijs/types': 3.21.0 + '@shikijs/twoslash@3.21.0(typescript@5.6.3)': + dependencies: + '@shikijs/core': 3.21.0 + '@shikijs/types': 3.21.0 + twoslash: 0.3.6(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + '@shikijs/types@2.5.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -11476,6 +11674,13 @@ snapshots: '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 + '@typescript/vfs@1.6.2(typescript@5.6.3)': + dependencies: + debug: 4.4.3 + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-android-arm-eabi@1.11.1': @@ -13253,6 +13458,16 @@ snapshots: transitivePeerDependencies: - supports-color + fumadocs-docgen@3.0.5(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5)): + dependencies: + estree-util-to-js: 2.0.0 + estree-util-value-to-estree: 3.5.0 + fumadocs-core: 16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5) + npm-to-yarn: 3.0.1 + oxc-transform: 0.105.0 + unist-util-visit: 5.0.0 + zod: 4.3.5 + fumadocs-mdx@14.2.6(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(vite@6.4.1(@types/node@22.19.7)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2)): dependencies: '@mdx-js/mdx': 3.1.1 @@ -13281,6 +13496,26 @@ snapshots: transitivePeerDependencies: - supports-color + fumadocs-twoslash@3.1.12(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-ui@16.4.7(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.6.3): + dependencies: + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@shikijs/twoslash': 3.21.0(typescript@5.6.3) + fumadocs-ui: 16.4.7(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18) + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm: 3.1.0 + mdast-util-to-hast: 13.2.1 + react: 19.2.3 + shiki: 3.21.0 + tailwind-merge: 3.4.0 + twoslash: 0.3.6(typescript@5.6.3) + optionalDependencies: + '@types/react': 19.2.8 + transitivePeerDependencies: + - '@types/react-dom' + - react-dom + - supports-color + - typescript + fumadocs-ui@16.4.7(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18): dependencies: '@fumadocs/ui': 16.4.7(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(algoliasearch@5.46.2)(lucide-react@0.562.0(react@19.2.3))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react-router@7.12.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(zod@4.3.5))(next@16.1.4(@babel/core@7.28.6)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(tailwindcss@4.1.18) @@ -15178,6 +15413,24 @@ snapshots: outdent@0.5.0: {} + oxc-transform@0.105.0: + optionalDependencies: + '@oxc-transform/binding-android-arm64': 0.105.0 + '@oxc-transform/binding-darwin-arm64': 0.105.0 + '@oxc-transform/binding-darwin-x64': 0.105.0 + '@oxc-transform/binding-freebsd-x64': 0.105.0 + '@oxc-transform/binding-linux-arm-gnueabihf': 0.105.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.105.0 + '@oxc-transform/binding-linux-arm64-musl': 0.105.0 + '@oxc-transform/binding-linux-riscv64-gnu': 0.105.0 + '@oxc-transform/binding-linux-s390x-gnu': 0.105.0 + '@oxc-transform/binding-linux-x64-gnu': 0.105.0 + '@oxc-transform/binding-linux-x64-musl': 0.105.0 + '@oxc-transform/binding-openharmony-arm64': 0.105.0 + '@oxc-transform/binding-wasm32-wasi': 0.105.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.105.0 + '@oxc-transform/binding-win32-x64-msvc': 0.105.0 + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -16522,6 +16775,16 @@ snapshots: dependencies: safe-buffer: 5.2.1 + twoslash-protocol@0.3.6: {} + + twoslash@0.3.6(typescript@5.6.3): + dependencies: + '@typescript/vfs': 1.6.2(typescript@5.6.3) + twoslash-protocol: 0.3.6 + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + type-check@0.4.0: dependencies: prelude-ls: 1.2.1