From 236da87642c42279993df1a3d45c48e2df4961a5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:42:49 +0000 Subject: [PATCH 1/3] Initial plan From 95480e97b12eb31fb0e39646219d626228d0842f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:57:18 +0000 Subject: [PATCH 2/3] Update fumadocs template to latest version (16.5.1) with i18n support - Update fumadocs-core, fumadocs-mdx, fumadocs-ui to 16.5.1/14.2.6 - Update Next.js to 16.1.6, React to 19.2.4 - Migrate source.config.ts to new defineDocs API with schemas - Migrate lib/source.ts to use docs.toFumadocsSource() and lucideIconsPlugin - Move layout.config.tsx to lib/layout.shared.tsx (function-based) - Update mdx-components.tsx to getMDXComponents pattern - Update tsconfig.json with fumadocs-mdx:collections path mapping - Add postcss.config.mjs and app/global.css - Update search API to use createFromSource with localeMap - Update DocsPage to use DocsTitle/DocsDescription/DocsBody components - Add LLM routes (llms.txt, llms-full.txt, llms.mdx) - Add OG image generation route - Add AI page actions component (copy markdown, open in AI tools) - Add next.config.mjs rewrites for MDX URL support - Add lib/cn.ts utility Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- package.json | 6 +- .../site/app/[lang]/docs/[[...slug]]/page.tsx | 45 +- packages/site/app/[lang]/docs/layout.tsx | 4 +- packages/site/app/[lang]/layout.tsx | 14 +- packages/site/app/api/search/route.ts | 16 +- packages/site/app/global.css | 3 + packages/site/app/layout.config.tsx | 49 - packages/site/app/layout.tsx | 19 +- packages/site/app/llms-full.txt/route.ts | 18 + .../app/llms.mdx/docs/[[...slug]]/route.ts | 28 + packages/site/app/llms.txt/route.ts | 21 + packages/site/app/og/docs/[...slug]/route.tsx | 36 + packages/site/components/ai/page-actions.tsx | 174 +++ packages/site/lib/cn.ts | 9 + packages/site/lib/layout.shared.tsx | 50 + packages/site/lib/source.ts | 33 +- packages/site/mdx-components.tsx | 6 +- packages/site/middleware.ts | 4 +- packages/site/next.config.mjs | 8 + packages/site/package.json | 32 +- packages/site/postcss.config.mjs | 7 + packages/site/source.config.ts | 15 +- packages/site/tsconfig.json | 22 +- pnpm-lock.yaml | 1009 +++++++++-------- 24 files changed, 970 insertions(+), 658 deletions(-) create mode 100644 packages/site/app/global.css delete mode 100644 packages/site/app/layout.config.tsx create mode 100644 packages/site/app/llms-full.txt/route.ts create mode 100644 packages/site/app/llms.mdx/docs/[[...slug]]/route.ts create mode 100644 packages/site/app/llms.txt/route.ts create mode 100644 packages/site/app/og/docs/[...slug]/route.tsx create mode 100644 packages/site/components/ai/page-actions.tsx create mode 100644 packages/site/lib/cn.ts create mode 100644 packages/site/lib/layout.shared.tsx create mode 100644 packages/site/postcss.config.mjs diff --git a/package.json b/package.json index 66f3b93..e3e615f 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ }, "dependencies": { "client-only": "^0.0.1", - "lucide-react": "^0.562.0", - "react": "^19.2.3", - "react-dom": "^19.2.3", + "lucide-react": "^0.563.0", + "react": "^19.2.4", + "react-dom": "^19.2.4", "server-only": "^0.0.1", "tailwind-merge": "^3.4.0" }, diff --git a/packages/site/app/[lang]/docs/[[...slug]]/page.tsx b/packages/site/app/[lang]/docs/[[...slug]]/page.tsx index 36df286..2dc02c3 100644 --- a/packages/site/app/[lang]/docs/[[...slug]]/page.tsx +++ b/packages/site/app/[lang]/docs/[[...slug]]/page.tsx @@ -6,24 +6,13 @@ * LICENSE file in the root directory of this source tree. */ -import { source } from '@/lib/source'; +import { getPageImage, source } from '@/lib/source'; +import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/layouts/docs/page'; import type { Metadata } from 'next'; -import { DocsPage, DocsBody } from 'fumadocs-ui/page'; import { notFound } from 'next/navigation'; +import { getMDXComponents } from '@/mdx-components'; +import { createRelativeLink } from 'fumadocs-ui/mdx'; import { siteConfig } from '@/lib/site-config'; -import defaultComponents from 'fumadocs-ui/mdx'; -import { Callout } from 'fumadocs-ui/components/callout'; -import { Card, Cards } from 'fumadocs-ui/components/card'; -import { Steps, Step } from 'fumadocs-ui/components/steps'; - -const components = { - ...defaultComponents, - Callout, - Card, - Cards, - Steps, - Step, -}; interface PageProps { params: Promise<{ @@ -41,26 +30,25 @@ export default async function Page({ params }: PageProps) { notFound(); } - const MDX = page.data.body as any; + const MDX = page.data.body; return ( - 2 ? 'clerk' : 'normal', }} - editOnGithub={siteConfig.page.showEditLink ? { - owner: siteConfig.page.repoBaseUrl.split('/')[3], - repo: siteConfig.page.repoBaseUrl.split('/')[4], - sha: 'main', // Defaulting to main, could be extracted - path: siteConfig.page.repoBaseUrl.split('/').slice(7).join('/') // simplistic parsing - } : undefined} > + {page.data.title} + {page.data.description} - + ); @@ -80,5 +68,8 @@ export async function generateMetadata({ params }: PageProps): Promise return { title: page.data.title, description: page.data.description, + openGraph: { + images: getPageImage(page).url, + }, }; } diff --git a/packages/site/app/[lang]/docs/layout.tsx b/packages/site/app/[lang]/docs/layout.tsx index fea2696..7bdefd1 100644 --- a/packages/site/app/[lang]/docs/layout.tsx +++ b/packages/site/app/[lang]/docs/layout.tsx @@ -9,7 +9,7 @@ import { source } from '@/lib/source'; import { DocsLayout } from 'fumadocs-ui/layouts/docs'; import type { ReactNode } from 'react'; -import { baseOptions } from '@/app/layout.config'; +import { baseOptions } from '@/lib/layout.shared'; import { siteConfig } from '@/lib/site-config'; export default async function Layout({ @@ -24,7 +24,7 @@ export default async function Layout({ return ( ) { const { lang } = await params; return ( - - - {children} - - + {children} ); } diff --git a/packages/site/app/api/search/route.ts b/packages/site/app/api/search/route.ts index 7b848a7..ff2f661 100644 --- a/packages/site/app/api/search/route.ts +++ b/packages/site/app/api/search/route.ts @@ -7,14 +7,12 @@ */ import { source } from '@/lib/source'; -import { createSearchAPI } from 'fumadocs-core/search/server'; +import { createFromSource } from 'fumadocs-core/search/server'; -export const { GET } = createSearchAPI('advanced', { - indexes: source.getPages().map((page) => ({ - title: page.data.title, - description: page.data.description, - url: page.url, - id: page.url, - structuredData: page.data.structuredData, - })), +export const { GET } = createFromSource(source, { + localeMap: { + en: 'english', + // Map 'cn' locale to English tokenizer since Chinese is not supported by Orama + cn: 'english', + }, }); diff --git a/packages/site/app/global.css b/packages/site/app/global.css new file mode 100644 index 0000000..50b3bc2 --- /dev/null +++ b/packages/site/app/global.css @@ -0,0 +1,3 @@ +@import 'tailwindcss'; +@import 'fumadocs-ui/css/neutral.css'; +@import 'fumadocs-ui/css/preset.css'; diff --git a/packages/site/app/layout.config.tsx b/packages/site/app/layout.config.tsx deleted file mode 100644 index 7bd76a2..0000000 --- a/packages/site/app/layout.config.tsx +++ /dev/null @@ -1,49 +0,0 @@ -/** - * ObjectDocs - * Copyright (c) 2026-present ObjectStack Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -import { type BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; -import { siteConfig } from '@/lib/site-config'; -import Image from 'next/image'; - -export const baseOptions: BaseLayoutProps = { - nav: { - title: ( -
- {siteConfig.branding.logo.light && ( - {siteConfig.branding.logo.text - )} - {siteConfig.branding.logo.dark && ( - {siteConfig.branding.logo.text - )} - {siteConfig.branding.logo.text || 'ObjectStack'} -
- ), - transparentMode: siteConfig.layout.navbar.transparentMode, - }, - links: siteConfig.layout.navbar.links.map(link => ({ - text: link.text, - url: link.url, - active: link.active || 'nested-url', - external: link.external, - })), - githubUrl: siteConfig.layout.navbar.socials.find(s => s.platform === 'github')?.url, - i18n: siteConfig.i18n.enabled, -}; - diff --git a/packages/site/app/layout.tsx b/packages/site/app/layout.tsx index a28ae3d..af6c21e 100644 --- a/packages/site/app/layout.tsx +++ b/packages/site/app/layout.tsx @@ -6,27 +6,12 @@ * LICENSE file in the root directory of this source tree. */ -import 'fumadocs-ui/style.css'; -import { RootProvider } from 'fumadocs-ui/provider/next'; -import { defineI18nUI } from 'fumadocs-ui/i18n'; -import { i18n } from '@/lib/i18n'; -import { getTranslations } from '@/lib/translations'; - - -const { provider } = defineI18nUI(i18n, { - translations: getTranslations(), -}); +import './global.css'; export default function Layout({ children }: { children: React.ReactNode }) { return ( - + {children} diff --git a/packages/site/app/llms-full.txt/route.ts b/packages/site/app/llms-full.txt/route.ts new file mode 100644 index 0000000..a8c0f9f --- /dev/null +++ b/packages/site/app/llms-full.txt/route.ts @@ -0,0 +1,18 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { getLLMText, source } from '@/lib/source'; + +export const revalidate = false; + +export async function GET() { + const scan = source.getPages().map(getLLMText); + const scanned = await Promise.all(scan); + + return new Response(scanned.join('\n\n')); +} diff --git a/packages/site/app/llms.mdx/docs/[[...slug]]/route.ts b/packages/site/app/llms.mdx/docs/[[...slug]]/route.ts new file mode 100644 index 0000000..99bd6e0 --- /dev/null +++ b/packages/site/app/llms.mdx/docs/[[...slug]]/route.ts @@ -0,0 +1,28 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { getLLMText, source } from '@/lib/source'; +import { notFound } from 'next/navigation'; + +export const revalidate = false; + +export async function GET(_req: Request, { params }: RouteContext<'/llms.mdx/docs/[[...slug]]'>) { + const { slug } = await params; + const page = source.getPage(slug); + if (!page) notFound(); + + return new Response(await getLLMText(page), { + headers: { + 'Content-Type': 'text/markdown', + }, + }); +} + +export function generateStaticParams() { + return source.generateParams(); +} diff --git a/packages/site/app/llms.txt/route.ts b/packages/site/app/llms.txt/route.ts new file mode 100644 index 0000000..2f5e28c --- /dev/null +++ b/packages/site/app/llms.txt/route.ts @@ -0,0 +1,21 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { source } from '@/lib/source'; + +export const revalidate = false; + +export async function GET() { + const lines: string[] = []; + lines.push('# Documentation'); + lines.push(''); + for (const page of source.getPages()) { + lines.push(`- [${page.data.title}](${page.url}): ${page.data.description}`); + } + return new Response(lines.join('\n')); +} diff --git a/packages/site/app/og/docs/[...slug]/route.tsx b/packages/site/app/og/docs/[...slug]/route.tsx new file mode 100644 index 0000000..09bd3be --- /dev/null +++ b/packages/site/app/og/docs/[...slug]/route.tsx @@ -0,0 +1,36 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { getPageImage, source } from '@/lib/source'; +import { notFound } from 'next/navigation'; +import { ImageResponse } from 'next/og'; +import { generate as DefaultImage } from 'fumadocs-ui/og'; +import { siteConfig } from '@/lib/site-config'; + +export const revalidate = false; + +export async function GET(_req: Request, { params }: RouteContext<'/og/docs/[...slug]'>) { + const { slug } = await params; + const page = source.getPage(slug.slice(0, -1)); + if (!page) notFound(); + + return new ImageResponse( + , + { + width: 1200, + height: 630, + }, + ); +} + +export function generateStaticParams() { + return source.getPages().map((page) => ({ + lang: page.locale, + slug: getPageImage(page).segments, + })); +} diff --git a/packages/site/components/ai/page-actions.tsx b/packages/site/components/ai/page-actions.tsx new file mode 100644 index 0000000..5f42574 --- /dev/null +++ b/packages/site/components/ai/page-actions.tsx @@ -0,0 +1,174 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use client'; +import { useMemo, useState } from 'react'; +import { Check, ChevronDown, Copy, ExternalLinkIcon, MessageCircleIcon } from 'lucide-react'; +import { cn } from '@/lib/cn'; +import { useCopyButton } from 'fumadocs-ui/utils/use-copy-button'; +import { buttonVariants } from 'fumadocs-ui/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from 'fumadocs-ui/components/ui/popover'; + +const cache = new Map(); + +export function LLMCopyButton({ + /** + * A URL to fetch the raw Markdown/MDX content of page + */ + markdownUrl, +}: { + markdownUrl: string; +}) { + const [isLoading, setLoading] = useState(false); + const [checked, onClick] = useCopyButton(async () => { + const cached = cache.get(markdownUrl); + if (cached) return navigator.clipboard.writeText(cached); + + setLoading(true); + + try { + await navigator.clipboard.write([ + new ClipboardItem({ + 'text/plain': fetch(markdownUrl).then(async (res) => { + const content = await res.text(); + cache.set(markdownUrl, content); + + return content; + }), + }), + ]); + } finally { + setLoading(false); + } + }); + + return ( + + ); +} + +export function ViewOptions({ + markdownUrl, + githubUrl, +}: { + /** + * A URL to the raw Markdown/MDX content of page + */ + markdownUrl: string; + + /** + * Source file URL on GitHub + */ + githubUrl: string; +}) { + const items = useMemo(() => { + const fullMarkdownUrl = + typeof window !== 'undefined' ? new URL(markdownUrl, window.location.origin) : 'loading'; + const q = `Read ${fullMarkdownUrl}, I want to ask questions about it.`; + + return [ + { + title: 'Open in GitHub', + href: githubUrl, + icon: ( + + GitHub + + + ), + }, + { + title: 'Open in ChatGPT', + href: `https://chatgpt.com/?${new URLSearchParams({ + hints: 'search', + q, + })}`, + icon: ( + + OpenAI + + + ), + }, + { + title: 'Open in Claude', + href: `https://claude.ai/new?${new URLSearchParams({ + q, + })}`, + icon: ( + + Anthropic + + + ), + }, + { + title: 'Open in T3 Chat', + href: `https://t3.chat/new?${new URLSearchParams({ + q, + })}`, + icon: , + }, + ]; + }, [githubUrl, markdownUrl]); + + return ( + + + Open + + + + {items.map((item) => ( + + {item.icon} + {item.title} + + + ))} + + + ); +} diff --git a/packages/site/lib/cn.ts b/packages/site/lib/cn.ts new file mode 100644 index 0000000..2f6a675 --- /dev/null +++ b/packages/site/lib/cn.ts @@ -0,0 +1,9 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export { twMerge as cn } from 'tailwind-merge'; diff --git a/packages/site/lib/layout.shared.tsx b/packages/site/lib/layout.shared.tsx new file mode 100644 index 0000000..ecc1cdb --- /dev/null +++ b/packages/site/lib/layout.shared.tsx @@ -0,0 +1,50 @@ +/** + * ObjectDocs + * Copyright (c) 2026-present ObjectStack Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import { type BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; +import { siteConfig } from '@/lib/site-config'; +import Image from 'next/image'; + +export function baseOptions(): BaseLayoutProps { + return { + nav: { + title: ( +
+ {siteConfig.branding.logo.light && ( + {siteConfig.branding.logo.text + )} + {siteConfig.branding.logo.dark && ( + {siteConfig.branding.logo.text + )} + {siteConfig.branding.logo.text || 'ObjectStack'} +
+ ), + transparentMode: siteConfig.layout.navbar.transparentMode, + }, + links: siteConfig.layout.navbar.links.map(link => ({ + text: link.text, + url: link.url, + active: link.active || 'nested-url', + external: link.external, + })), + githubUrl: siteConfig.layout.navbar.socials.find(s => s.platform === 'github')?.url, + i18n: siteConfig.i18n.enabled, + }; +} diff --git a/packages/site/lib/source.ts b/packages/site/lib/source.ts index af91f7c..be21dab 100644 --- a/packages/site/lib/source.ts +++ b/packages/site/lib/source.ts @@ -6,19 +6,32 @@ * LICENSE file in the root directory of this source tree. */ -import { loader } from 'fumadocs-core/source'; -import { docs, meta } from '../.source/server'; // Relative import to .source in root -import { toFumadocsSource } from 'fumadocs-mdx/runtime/server'; +import { docs } from 'fumadocs-mdx:collections/server'; +import { type InferPageType, loader } from 'fumadocs-core/source'; +import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons'; import { i18n } from './i18n'; -const mainSource = toFumadocsSource(docs, meta); - export const source = loader({ baseUrl: '/docs', - source: { - files: [ - ...mainSource.files, - ], - }, + source: docs.toFumadocsSource(), + plugins: [lucideIconsPlugin()], i18n, }); + +export function getPageImage(page: InferPageType) { + const segments = [...page.slugs, 'image.png']; + + return { + segments, + url: `/og/docs/${segments.join('/')}`, + }; +} + +export async function getLLMText(page: InferPageType) { + const processed = await page.data.getText('processed'); + + return `# ${page.data.title} + +${processed}`; +} + diff --git a/packages/site/mdx-components.tsx b/packages/site/mdx-components.tsx index 8649618..f3deb82 100644 --- a/packages/site/mdx-components.tsx +++ b/packages/site/mdx-components.tsx @@ -6,13 +6,13 @@ * LICENSE file in the root directory of this source tree. */ -import defaultComponents from 'fumadocs-ui/mdx'; +import defaultMdxComponents from 'fumadocs-ui/mdx'; import type { MDXComponents } from 'mdx/types'; import { Steps, Step } from 'fumadocs-ui/components/steps'; -export function useMDXComponents(components: MDXComponents): MDXComponents { +export function getMDXComponents(components?: MDXComponents): MDXComponents { return { - ...defaultComponents, + ...defaultMdxComponents, Steps, Step, ...components, diff --git a/packages/site/middleware.ts b/packages/site/middleware.ts index b924756..d142472 100644 --- a/packages/site/middleware.ts +++ b/packages/site/middleware.ts @@ -39,6 +39,6 @@ export default function middleware(request: NextRequest, event: NextFetchEvent) } export const config = { - // Matcher ignoring `/_next/` and `/api/` - matcher: ['/((?!api|_next/static|_next/image|favicon.ico|logo.svg).*)'], + // Matcher ignoring `/_next/`, `/api/`, LLM routes, and OG image routes + matcher: ['/((?!api|_next/static|_next/image|favicon.ico|logo.svg|llms\\.txt|llms-full\\.txt|llms\\.mdx|og/).*)'], }; diff --git a/packages/site/next.config.mjs b/packages/site/next.config.mjs index d406462..0ee3530 100644 --- a/packages/site/next.config.mjs +++ b/packages/site/next.config.mjs @@ -17,6 +17,14 @@ const nextConfig = { images: { unoptimized: true }, output: 'standalone', transpilePackages: ['@objectdocs/site'], + async rewrites() { + return [ + { + source: '/docs/:path*.mdx', + destination: '/llms.mdx/docs/:path*', + }, + ]; + }, }; export default withMDX(nextConfig); diff --git a/packages/site/package.json b/packages/site/package.json index c69436a..dafbd97 100644 --- a/packages/site/package.json +++ b/packages/site/package.json @@ -15,28 +15,32 @@ "build": "next build", "start": "next start", "lint": "next lint", + "types:check": "fumadocs-mdx && next typegen && tsc --noEmit", + "postinstall": "fumadocs-mdx", "test": "echo \"No test specified\" && exit 0" }, "dependencies": { - "@fumadocs/ui": "^16.4.7", - "@tailwindcss/postcss": "^4.1.18", - "@types/mdx": "^2.0.13", - "@types/node": "^25.0.8", - "@types/react": "^19.2.8", - "autoprefixer": "^10.4.23", "client-only": "^0.0.1", "dotenv": "^16.4.5", - "lucide-react": "^0.562.0", - "fumadocs-core": "^16.4.7", - "fumadocs-mdx": "^14.2.5", - "fumadocs-ui": "^16.4.7", - "next": "^16.1.2", + "fumadocs-core": "16.5.1", + "fumadocs-mdx": "14.2.6", + "fumadocs-ui": "16.5.1", + "lucide-react": "^0.563.0", + "next": "16.1.6", "openai": "^4.0.0", - "postcss": "^8.5.6", - "react": "^19.2.3", - "react-dom": "^19.2.3", + "react": "^19.2.4", + "react-dom": "^19.2.4", "remark-directive": "^4.0.0", "server-only": "^0.0.1", + "tailwind-merge": "^3.4.0" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.18", + "@types/mdx": "^2.0.13", + "@types/node": "^25.1.0", + "@types/react": "^19.2.10", + "@types/react-dom": "^19.2.3", + "postcss": "^8.5.6", "tailwindcss": "^4.1.18", "typescript": "^5.9.3" } diff --git a/packages/site/postcss.config.mjs b/packages/site/postcss.config.mjs new file mode 100644 index 0000000..297374d --- /dev/null +++ b/packages/site/postcss.config.mjs @@ -0,0 +1,7 @@ +const config = { + plugins: { + '@tailwindcss/postcss': {}, + }, +}; + +export default config; diff --git a/packages/site/source.config.ts b/packages/site/source.config.ts index ac489f5..2f3ef3e 100644 --- a/packages/site/source.config.ts +++ b/packages/site/source.config.ts @@ -6,7 +6,7 @@ * LICENSE file in the root directory of this source tree. */ -import { defineConfig, defineDocs } from 'fumadocs-mdx/config'; +import { defineConfig, defineDocs, frontmatterSchema, metaSchema } from 'fumadocs-mdx/config'; import { siteConfig } from './lib/site-config'; import path from 'node:path'; import fs from 'node:fs'; @@ -28,8 +28,19 @@ function resolveContentDir(dir: string) { const docsDir = resolveContentDir('content/docs'); -export const { docs, meta } = defineDocs({ +// You can customise Zod schemas for frontmatter and meta.json here +// see https://fumadocs.dev/docs/mdx/collections +export const docs = defineDocs({ dir: docsDir, + docs: { + schema: frontmatterSchema, + postprocess: { + includeProcessedMarkdown: true, + }, + }, + meta: { + schema: metaSchema, + }, }); export default defineConfig({ diff --git a/packages/site/tsconfig.json b/packages/site/tsconfig.json index 47a6de1..70c9a33 100644 --- a/packages/site/tsconfig.json +++ b/packages/site/tsconfig.json @@ -1,5 +1,7 @@ { "compilerOptions": { + "baseUrl": ".", + "target": "ESNext", "lib": [ "dom", "dom.iterable", @@ -16,29 +18,23 @@ "isolatedModules": true, "jsx": "react-jsx", "incremental": true, + "forceConsistentCasingInFileNames": true, + "paths": { + "@/*": ["./*"], + "fumadocs-mdx:collections/*": [".source/*"] + }, "plugins": [ { "name": "next" } - ], - "paths": { - "@/*": [ - "./*" - ], - ".source/*": [ - "./.source/*" - ] - }, - "target": "ES2017" + ] }, "include": [ "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", - ".next/dev/types/**/*.ts", - "/Users/steedos/Documents/GitHub/docs/packages/site/.next/types/**/*.ts", - "/Users/steedos/Documents/GitHub/docs/packages/site/.next/dev/types/**/*.ts" + ".next/dev/types/**/*.ts" ], "exclude": [ "node_modules" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6484f9e..0bb43de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,14 +12,14 @@ importers: specifier: ^0.0.1 version: 0.0.1 lucide-react: - specifier: ^0.562.0 - version: 0.562.0(react@19.2.3) + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) server-only: specifier: ^0.0.1 version: 0.0.1 @@ -29,7 +29,7 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.29.8 - version: 2.29.8(@types/node@25.0.8) + version: 2.29.8(@types/node@25.2.2) '@objectdocs/cli': specifier: workspace:* version: link:packages/cli @@ -57,24 +57,6 @@ importers: packages/site: dependencies: - '@fumadocs/ui': - specifier: ^16.4.7 - version: 16.4.7(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(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) - '@tailwindcss/postcss': - specifier: ^4.1.18 - version: 4.1.18 - '@types/mdx': - specifier: ^2.0.13 - version: 2.0.13 - '@types/node': - specifier: ^25.0.8 - version: 25.0.8 - '@types/react': - specifier: ^19.2.8 - version: 19.2.8 - autoprefixer: - specifier: ^10.4.23 - version: 10.4.23(postcss@8.5.6) client-only: specifier: ^0.0.1 version: 0.0.1 @@ -82,38 +64,57 @@ importers: specifier: ^16.4.5 version: 16.6.1 fumadocs-core: - specifier: ^16.4.7 - version: 16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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) + specifier: 16.5.1 + version: 16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) fumadocs-mdx: - specifier: ^14.2.5 - version: 14.2.5(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + specifier: 14.2.6 + version: 14.2.6(@types/react@19.2.13)(fumadocs-core@16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) fumadocs-ui: - specifier: ^16.4.7 - version: 16.4.7(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(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) + specifier: 16.5.1 + version: 16.5.1(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(fumadocs-core@16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18) lucide-react: - specifier: ^0.562.0 - version: 0.562.0(react@19.2.3) + specifier: ^0.563.0 + version: 0.563.0(react@19.2.4) next: - specifier: ^16.1.2 - version: 16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + specifier: 16.1.6 + version: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) openai: specifier: ^4.0.0 version: 4.104.0 - postcss: - specifier: ^8.5.6 - version: 8.5.6 react: - specifier: ^19.2.3 - version: 19.2.3 + specifier: ^19.2.4 + version: 19.2.4 react-dom: - specifier: ^19.2.3 - version: 19.2.3(react@19.2.3) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) remark-directive: specifier: ^4.0.0 version: 4.0.0 server-only: specifier: ^0.0.1 version: 0.0.1 + tailwind-merge: + specifier: ^3.4.0 + version: 3.4.0 + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.18 + version: 4.1.18 + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 + '@types/node': + specifier: ^25.1.0 + version: 25.2.2 + '@types/react': + specifier: ^19.2.10 + version: 19.2.13 + '@types/react-dom': + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.13) + postcss: + specifier: ^8.5.6 + version: 8.5.6 tailwindcss: specifier: ^4.1.18 version: 4.1.18 @@ -360,26 +361,17 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@formatjs/fast-memoize@3.0.3': - resolution: {integrity: sha512-CArYtQKGLAOruCMeq5/RxCg6vUXFx3OuKBdTm30Wn/+gCefehmZ8Y2xSMxMrO2iel7hRyE3HKfV56t3vAU6D4Q==} + '@formatjs/fast-memoize@3.1.0': + resolution: {integrity: sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==} - '@formatjs/intl-localematcher@0.7.5': - resolution: {integrity: sha512-7/nd90cn5CT7SVF71/ybUKAcnvBlr9nZlJJp8O8xIZHXFgYOC4SXExZlSdgHv2l6utjw1byidL06QzChvQMHwA==} + '@formatjs/intl-localematcher@0.8.1': + resolution: {integrity: sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==} - '@fumadocs/ui@16.4.7': - resolution: {integrity: sha512-NnkMIN5BzBRh2OzA9rp2SgbGEkEwfCfq0sE4vq2n+GkIDIggicGYUNgSl2gtIBQsKYKP/a4/0wrkQKdq4eUJlw==} + '@fumadocs/tailwind@0.0.1': + resolution: {integrity: sha512-ZUoDIIqfXibEV3rftBVcBxUfQsmjWzO9ZCMnB6CAHp9JmVLjE8LNaeUGeZfwnaHUEeX+h66HaDCRGtsZN0JuAA==} peerDependencies: - '@types/react': '*' - fumadocs-core: 16.4.7 - next: 16.x.x - react: ^19.2.0 - react-dom: ^19.2.0 tailwindcss: ^4.0.0 peerDependenciesMeta: - '@types/react': - optional: true - next: - optional: true tailwindcss: optional: true @@ -570,57 +562,57 @@ packages: '@mdx-js/mdx@3.1.1': resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==} - '@next/env@16.1.2': - resolution: {integrity: sha512-r6TpLovDTvWtzw11UubUQxEK6IduT8rSAHbGX68yeFpA/1Oq9R4ovi5nqMUMgPN0jr2SpfeyFRbTZg3Inuuv3g==} + '@next/env@16.1.6': + resolution: {integrity: sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==} - '@next/swc-darwin-arm64@16.1.2': - resolution: {integrity: sha512-0N2baysDpTXASTVxTV+DkBnD97bo9PatUj8sHlKA+oR9CyvReaPQchQyhCbH0Jm0mC/Oka5F52intN+lNOhSlA==} + '@next/swc-darwin-arm64@16.1.6': + resolution: {integrity: sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.1.2': - resolution: {integrity: sha512-Q0wnSK0lmeC9ps+/w/bDsMSF3iWS45WEwF1bg8dvMH3CmKB2BV4346tVrjWxAkrZq20Ro6Of3R19IgrEJkXKyw==} + '@next/swc-darwin-x64@16.1.6': + resolution: {integrity: sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.1.2': - resolution: {integrity: sha512-4twW+h7ZatGKWq+2pUQ9SDiin6kfZE/mY+D8jOhSZ0NDzKhQfAPReXqwTDWVrNjvLzHzOcDL5kYjADHfXL/b/Q==} + '@next/swc-linux-arm64-gnu@16.1.6': + resolution: {integrity: sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.1.2': - resolution: {integrity: sha512-Sn6LxPIZcADe5AnqqMCfwBv6vRtDikhtrjwhu+19WM6jHZe31JDRcGuPZAlJrDk6aEbNBPUUAKmySJELkBOesg==} + '@next/swc-linux-arm64-musl@16.1.6': + resolution: {integrity: sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.1.2': - resolution: {integrity: sha512-nwzesEQBfQIOOnQ7JArzB08w9qwvBQ7nC1i8gb0tiEFH94apzQM3IRpY19MlE8RBHxc9ArG26t1DEg2aaLaqVQ==} + '@next/swc-linux-x64-gnu@16.1.6': + resolution: {integrity: sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.1.2': - resolution: {integrity: sha512-s60bLf16BDoICQHeKEm0lDgUNMsL1UpQCkRNZk08ZNnRpK0QUV+6TvVHuBcIA7oItzU0m7kVmXe8QjXngYxJVA==} + '@next/swc-linux-x64-musl@16.1.6': + resolution: {integrity: sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.1.2': - resolution: {integrity: sha512-Sq8k4SZd8Y8EokKdz304TvMO9HoiwGzo0CTacaiN1bBtbJSQ1BIwKzNFeFdxOe93SHn1YGnKXG6Mq3N+tVooyQ==} + '@next/swc-win32-arm64-msvc@16.1.6': + resolution: {integrity: sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.1.2': - resolution: {integrity: sha512-KQDBwspSaNX5/wwt6p7ed5oINJWIxcgpuqJdDNubAyq7dD+ZM76NuEjg8yUxNOl5R4NNgbMfqE/RyNrsbYmOKg==} + '@next/swc-win32-x64-msvc@16.1.6': + resolution: {integrity: sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1164,8 +1156,16 @@ packages: '@types/node@25.0.8': resolution: {integrity: sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==} - '@types/react@19.2.8': - resolution: {integrity: sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==} + '@types/node@25.2.2': + resolution: {integrity: sha512-BkmoP5/FhRYek5izySdkOneRyXYN35I860MFAGupTdebyE66uZaR+bXLHq8k4DirE5DwQi3NuhvRU1jqTVwUrQ==} + + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 + + '@types/react@19.2.13': + resolution: {integrity: sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -1223,13 +1223,6 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.23: - resolution: {integrity: sha512-YYTXSFulfwytnjAPlw8QHncHJmlvFKtczb8InXaAx9Q0LbfDnfEYDE55omerIJKihhmU61Ft+cAOSzQVaBUmeA==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -1245,11 +1238,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.1: - resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1368,9 +1356,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.267: - resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} - enhanced-resolve@5.18.4: resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} engines: {node: '>=10.13.0'} @@ -1406,10 +1391,6 @@ packages: engines: {node: '>=18'} hasBin: true - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -1488,8 +1469,19 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} - fraction.js@5.3.4: - resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + framer-motion@12.33.0: + resolution: {integrity: sha512-ca8d+rRPcDP5iIF+MoT3WNc0KHJMjIyFAbtVLvM9eA7joGSpeqDfiNH/kCs1t4CHi04njYvWyj0jS4QlEK/rJQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} @@ -1499,8 +1491,8 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fumadocs-core@16.4.7: - resolution: {integrity: sha512-oEsoha5EjyQnhRb6s5tNYEM+AiDA4BN80RyevRohsKPXGRQ2K3ddMaFAQq5kBaqA/Xxb+vqrElyRtzmdif7w2A==} + fumadocs-core@16.5.1: + resolution: {integrity: sha512-6jvt7hBHh8H9uOKQ8uIzIkvpswPN8WxC+yGis9/vExJ8lSowINhN1zIbPgp0kMD5runU+2+l4qj5k7QwOTVe1g==} peerDependencies: '@mixedbread/sdk': ^0.46.0 '@orama/core': 1.x.x @@ -1543,8 +1535,8 @@ packages: zod: optional: true - fumadocs-mdx@14.2.5: - resolution: {integrity: sha512-1WJeJ1Xago2lRq6GhTvTb+hxDtWUBr7lHi4YgHNBYSpWKsTfOor3UxgZV1UYBrd32cq4xHdtMK33LM67gA0eBA==} + fumadocs-mdx@14.2.6: + resolution: {integrity: sha512-T8i5IllZ6OGaZ3/4Wwjl1zovvypSsr6Cco9ZACvoABLqpqTQ2TDfrW1nBt1o9YUKyfzkwDnjKdrnrq/nDexfcg==} hasBin: true peerDependencies: '@fumadocs/mdx-remote': ^1.4.0 @@ -1565,11 +1557,11 @@ packages: vite: optional: true - fumadocs-ui@16.4.7: - resolution: {integrity: sha512-ShEftF54mj89EW7Wll2wwGcH6bNTmPrPtUUmO+ThakK13skJmY7GSBH3Ft51TzQNLhN3kBKEQipIlJWc7LT5NQ==} + fumadocs-ui@16.5.1: + resolution: {integrity: sha512-c+9BrSZ9GSmhQ2vhL+aophnn+qoEBB7PavyiNoNAFKHQswRjDhqhEuocLJJZB8n5MTbC15ZQ6AECg9OB5hDPTA==} peerDependencies: '@types/react': '*' - fumadocs-core: 16.4.7 + fumadocs-core: 16.5.1 next: 16.x.x react: ^19.2.0 react-dom: ^19.2.0 @@ -1806,8 +1798,8 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - lucide-react@0.562.0: - resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==} + lucide-react@0.563.0: + resolution: {integrity: sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -2000,6 +1992,26 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + motion-dom@12.33.0: + resolution: {integrity: sha512-XRPebVypsl0UM+7v0Hr8o9UAj0S2djsQWRdHBd5iVouVpMrQqAI0C/rDAT3QaYnXnHuC5hMcwDHCboNeyYjPoQ==} + + motion-utils@12.29.2: + resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + + motion@12.33.0: + resolution: {integrity: sha512-TcND7PijsrTeIA9SRVUB8TOJQ+6mJnJ5K4a9oAJZvyI0Zy47Gq5oofU+VkTxbLcvDoKXnHspQcII2mnk3TbFsQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -2022,8 +2034,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.1.2: - resolution: {integrity: sha512-SVSWX7wjUUDrIDVqhl4xm/jiOrvYGMG7NzVE/dGzzgs7r3dFGm4V19ia0xn3GDNtHCKM7C9h+5BoimnJBhmt9A==} + next@16.1.6: + resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -2057,9 +2069,6 @@ packages: encoding: optional: true - node-releases@2.0.27: - resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} - npm-to-yarn@3.0.1: resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2145,9 +2154,6 @@ packages: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} - postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -2170,10 +2176,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: - react: ^19.2.3 + react: ^19.2.4 react-medium-image-zoom@5.4.0: resolution: {integrity: sha512-BsE+EnFVQzFIlyuuQrZ9iTwyKpKkqdFZV1ImEQN573QPqGrIUuNni7aF+sZwDcxlsuOMayCr6oO/PZR/yJnbRg==} @@ -2211,8 +2217,8 @@ packages: '@types/react': optional: true - react@19.2.3: - resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} read-yaml-file@1.1.0: @@ -2441,16 +2447,13 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + unist-util-visit@5.1.0: + resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==} + universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - update-browserslist-db@1.2.3: - resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -2536,7 +2539,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.8(@types/node@25.0.8)': + '@changesets/cli@2.29.8(@types/node@25.2.2)': dependencies: '@changesets/apply-release-plan': 7.0.14 '@changesets/assemble-release-plan': 6.0.9 @@ -2552,7 +2555,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@25.0.8) + '@inquirer/external-editor': 1.0.3(@types/node@25.2.2) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -2743,34 +2746,27 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@floating-ui/react-dom@2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@floating-ui/utils@0.2.10': {} - '@formatjs/fast-memoize@3.0.3': + '@formatjs/fast-memoize@3.1.0': dependencies: tslib: 2.8.1 - '@formatjs/intl-localematcher@0.7.5': + '@formatjs/intl-localematcher@0.8.1': dependencies: - '@formatjs/fast-memoize': 3.0.3 + '@formatjs/fast-memoize': 3.1.0 tslib: 2.8.1 - '@fumadocs/ui@16.4.7(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(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)': + '@fumadocs/tailwind@0.0.1(tailwindcss@4.1.18)': dependencies: - fumadocs-core: 16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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) - next-themes: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) postcss-selector-parser: 7.1.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - tailwind-merge: 3.4.0 optionalDependencies: - '@types/react': 19.2.8 - next: 16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tailwindcss: 4.1.18 '@img/colour@1.0.0': @@ -2870,12 +2866,12 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@inquirer/external-editor@1.0.3(@types/node@25.0.8)': + '@inquirer/external-editor@1.0.3(@types/node@25.2.2)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 25.0.8 + '@types/node': 25.2.2 '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -2942,30 +2938,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@next/env@16.1.2': {} + '@next/env@16.1.6': {} - '@next/swc-darwin-arm64@16.1.2': + '@next/swc-darwin-arm64@16.1.6': optional: true - '@next/swc-darwin-x64@16.1.2': + '@next/swc-darwin-x64@16.1.6': optional: true - '@next/swc-linux-arm64-gnu@16.1.2': + '@next/swc-linux-arm64-gnu@16.1.6': optional: true - '@next/swc-linux-arm64-musl@16.1.2': + '@next/swc-linux-arm64-musl@16.1.6': optional: true - '@next/swc-linux-x64-gnu@16.1.2': + '@next/swc-linux-x64-gnu@16.1.6': optional: true - '@next/swc-linux-x64-musl@16.1.2': + '@next/swc-linux-x64-musl@16.1.6': optional: true - '@next/swc-win32-arm64-msvc@16.1.2': + '@next/swc-win32-arm64-msvc@16.1.6': optional: true - '@next/swc-win32-x64-msvc@16.1.2': + '@next/swc-win32-x64-msvc@16.1.6': optional: true '@nodelib/fs.scandir@2.1.5': @@ -2986,338 +2982,355 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-collection': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-arrow@1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-collapsible@1.1.12(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-collection@1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-context@1.1.2(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-dialog@1.1.15(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.8)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.13)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-direction@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-focus-scope@1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-id@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-navigation-menu@1.2.14(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-popover@1.1.15(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) aria-hidden: 1.2.6 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.8)(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.13)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 - - '@radix-ui/react-popper@1.2.8(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': - dependencies: - '@floating-ui/react-dom': 2.1.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-arrow': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.8)(react@19.2.3) + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.13)(react@19.2.4) '@radix-ui/rect': 1.1.1 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-portal@1.1.9(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-presence@1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-primitive@2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-roving-focus@1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-scroll-area@1.2.10(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-slot@1.2.4(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-tabs@1.1.13(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-roving-focus': 1.1.11(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.2.3 + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.8)(react@19.2.3)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.13)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.8)(react@19.2.3) - react: 19.2.3 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.13)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - '@radix-ui/react-visually-hidden@1.2.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 + '@types/react-dom': 19.2.3(@types/react@19.2.13) '@radix-ui/rect@1.1.1': {} @@ -3350,7 +3363,7 @@ snapshots: hast-util-to-string: 3.0.1 shiki: 3.21.0 unified: 11.0.5 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 '@shikijs/themes@3.21.0': dependencies: @@ -3467,7 +3480,7 @@ snapshots: '@types/node-fetch@2.6.13': dependencies: - '@types/node': 25.0.8 + '@types/node': 25.2.2 form-data: 4.0.5 '@types/node@12.20.55': {} @@ -3480,7 +3493,15 @@ snapshots: dependencies: undici-types: 7.16.0 - '@types/react@19.2.8': + '@types/node@25.2.2': + dependencies: + undici-types: 7.16.0 + + '@types/react-dom@19.2.3(@types/react@19.2.13)': + dependencies: + '@types/react': 19.2.13 + + '@types/react@19.2.13': dependencies: csstype: 3.2.3 @@ -3524,15 +3545,6 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.23(postcss@8.5.6): - dependencies: - browserslist: 4.28.1 - caniuse-lite: 1.0.30001764 - fraction.js: 5.3.4 - picocolors: 1.1.1 - postcss: 8.5.6 - postcss-value-parser: 4.2.0 - bail@2.0.2: {} baseline-browser-mapping@2.9.14: {} @@ -3545,14 +3557,6 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.1: - dependencies: - baseline-browser-mapping: 2.9.14 - caniuse-lite: 1.0.30001764 - electron-to-chromium: 1.5.267 - node-releases: 2.0.27 - update-browserslist-db: 1.2.3(browserslist@4.28.1) - cac@6.7.14: {} call-bind-apply-helpers@1.0.2: @@ -3642,8 +3646,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.267: {} - enhanced-resolve@5.18.4: dependencies: graceful-fs: 4.2.11 @@ -3712,8 +3714,6 @@ snapshots: '@esbuild/win32-ia32': 0.27.2 '@esbuild/win32-x64': 0.27.2 - escalade@3.2.0: {} - escape-string-regexp@5.0.0: {} esprima@4.0.1: {} @@ -3801,7 +3801,14 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 - fraction.js@5.3.4: {} + framer-motion@12.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + motion-dom: 12.33.0 + motion-utils: 12.29.2 + tslib: 2.8.1 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) fs-extra@7.0.1: dependencies: @@ -3815,9 +3822,9 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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): + fumadocs-core@16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@formatjs/intl-localematcher': 0.7.5 + '@formatjs/intl-localematcher': 0.8.1 '@orama/orama': 3.1.18 '@shikijs/rehype': 3.21.0 '@shikijs/transformers': 3.21.0 @@ -3835,24 +3842,24 @@ snapshots: scroll-into-view-if-needed: 3.1.0 shiki: 3.21.0 tinyglobby: 0.2.15 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 optionalDependencies: - '@types/react': 19.2.8 - lucide-react: 0.562.0(react@19.2.3) - next: 16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + '@types/react': 19.2.13 + lucide-react: 0.563.0(react@19.2.4) + next: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - supports-color - fumadocs-mdx@14.2.5(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + fumadocs-mdx@14.2.6(@types/react@19.2.13)(fumadocs-core@16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.1.0 chokidar: 5.0.0 esbuild: 0.27.2 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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) + fumadocs-core: 16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) js-yaml: 4.1.1 mdast-util-to-markdown: 2.1.2 picocolors: 1.1.1 @@ -3866,38 +3873,42 @@ snapshots: vfile: 6.0.3 zod: 4.3.5 optionalDependencies: - '@types/react': 19.2.8 - next: 16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 + '@types/react': 19.2.13 + next: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 transitivePeerDependencies: - supports-color - fumadocs-ui@16.4.7(@types/react@19.2.8)(fumadocs-core@16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(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)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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))(next@16.1.2(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) - '@radix-ui/react-accordion': 1.2.12(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-collapsible': 1.1.12(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-dialog': 1.1.15(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-direction': 1.1.1(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-navigation-menu': 1.2.14(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-popover': 1.1.15(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-scroll-area': 1.2.10(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.4(@types/react@19.2.8)(react@19.2.3) - '@radix-ui/react-tabs': 1.1.13(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fumadocs-ui@16.5.1(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(fumadocs-core@16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tailwindcss@4.1.18): + dependencies: + '@fumadocs/tailwind': 0.0.1(tailwindcss@4.1.18) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.13)(react@19.2.4) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.13))(@types/react@19.2.13)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) class-variance-authority: 0.7.1 - fumadocs-core: 16.4.7(@types/react@19.2.8)(lucide-react@0.562.0(react@19.2.3))(next@16.1.2(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) - lucide-react: 0.562.0(react@19.2.3) - next-themes: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - react-medium-image-zoom: 5.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + fumadocs-core: 16.5.1(@types/react@19.2.13)(lucide-react@0.563.0(react@19.2.4))(next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + lucide-react: 0.563.0(react@19.2.4) + motion: 12.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + next-themes: 0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-medium-image-zoom: 5.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react-remove-scroll: 2.7.2(@types/react@19.2.13)(react@19.2.4) scroll-into-view-if-needed: 3.1.0 + tailwind-merge: 3.4.0 optionalDependencies: - '@types/react': 19.2.8 - next: 16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@types/react': 19.2.13 + next: 16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4) tailwindcss: 4.1.18 transitivePeerDependencies: + - '@emotion/is-prop-valid' - '@types/react-dom' function-bind@1.1.2: {} @@ -4133,9 +4144,9 @@ snapshots: longest-streak@3.1.0: {} - lucide-react@0.562.0(react@19.2.3): + lucide-react@0.563.0(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 magic-string@0.30.21: dependencies: @@ -4305,7 +4316,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-markdown@2.1.2: @@ -4611,6 +4622,20 @@ snapshots: dependencies: mime-db: 1.52.0 + motion-dom@12.33.0: + dependencies: + motion-utils: 12.29.2 + + motion-utils@12.29.2: {} + + motion@12.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): + dependencies: + framer-motion: 12.33.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + tslib: 2.8.1 + optionalDependencies: + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + mri@1.2.0: {} ms@2.1.3: {} @@ -4619,30 +4644,30 @@ snapshots: negotiator@1.0.0: {} - next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next-themes@0.4.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - next@16.1.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@16.1.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@next/env': 16.1.2 + '@next/env': 16.1.6 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.9.14 caniuse-lite: 1.0.30001764 postcss: 8.4.31 - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - styled-jsx: 5.1.6(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + styled-jsx: 5.1.6(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 16.1.2 - '@next/swc-darwin-x64': 16.1.2 - '@next/swc-linux-arm64-gnu': 16.1.2 - '@next/swc-linux-arm64-musl': 16.1.2 - '@next/swc-linux-x64-gnu': 16.1.2 - '@next/swc-linux-x64-musl': 16.1.2 - '@next/swc-win32-arm64-msvc': 16.1.2 - '@next/swc-win32-x64-msvc': 16.1.2 + '@next/swc-darwin-arm64': 16.1.6 + '@next/swc-darwin-x64': 16.1.6 + '@next/swc-linux-arm64-gnu': 16.1.6 + '@next/swc-linux-arm64-musl': 16.1.6 + '@next/swc-linux-x64-gnu': 16.1.6 + '@next/swc-linux-x64-musl': 16.1.6 + '@next/swc-win32-arm64-msvc': 16.1.6 + '@next/swc-win32-x64-msvc': 16.1.6 sharp: 0.34.5 transitivePeerDependencies: - '@babel/core' @@ -4654,8 +4679,6 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.27: {} - npm-to-yarn@3.0.1: {} oniguruma-parser@0.12.1: {} @@ -4731,8 +4754,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} - postcss@8.4.31: dependencies: nanoid: 3.3.11 @@ -4753,44 +4774,44 @@ snapshots: queue-microtask@1.2.3: {} - react-dom@19.2.3(react@19.2.3): + react-dom@19.2.4(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 scheduler: 0.27.0 - react-medium-image-zoom@5.4.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-medium-image-zoom@5.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react-remove-scroll-bar@2.3.8(@types/react@19.2.8)(react@19.2.3): + react-remove-scroll-bar@2.3.8(@types/react@19.2.13)(react@19.2.4): dependencies: - react: 19.2.3 - react-style-singleton: 2.2.3(@types/react@19.2.8)(react@19.2.3) + react: 19.2.4 + react-style-singleton: 2.2.3(@types/react@19.2.13)(react@19.2.4) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - react-remove-scroll@2.7.2(@types/react@19.2.8)(react@19.2.3): + react-remove-scroll@2.7.2(@types/react@19.2.13)(react@19.2.4): dependencies: - react: 19.2.3 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.8)(react@19.2.3) - react-style-singleton: 2.2.3(@types/react@19.2.8)(react@19.2.3) + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.13)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.13)(react@19.2.4) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.8)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.8)(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.13)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.13)(react@19.2.4) optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - react-style-singleton@2.2.3(@types/react@19.2.8)(react@19.2.3): + react-style-singleton@2.2.3(@types/react@19.2.13)(react@19.2.4): dependencies: get-nonce: 1.0.1 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - react@19.2.3: {} + react@19.2.4: {} read-yaml-file@1.1.0: dependencies: @@ -5012,10 +5033,10 @@ snapshots: dependencies: inline-style-parser: 0.2.7 - styled-jsx@5.1.6(react@19.2.3): + styled-jsx@5.1.6(react@19.2.4): dependencies: client-only: 0.0.1 - react: 19.2.3 + react: 19.2.4 tailwind-merge@3.4.0: {} @@ -5092,28 +5113,28 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - universalify@0.1.2: {} - - update-browserslist-db@1.2.3(browserslist@4.28.1): + unist-util-visit@5.1.0: dependencies: - browserslist: 4.28.1 - escalade: 3.2.0 - picocolors: 1.1.1 + '@types/unist': 3.0.3 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 + + universalify@0.1.2: {} - use-callback-ref@1.3.3(@types/react@19.2.8)(react@19.2.3): + use-callback-ref@1.3.3(@types/react@19.2.13)(react@19.2.4): dependencies: - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 - use-sidecar@1.1.3(@types/react@19.2.8)(react@19.2.3): + use-sidecar@1.1.3(@types/react@19.2.13)(react@19.2.4): dependencies: detect-node-es: 1.1.0 - react: 19.2.3 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.8 + '@types/react': 19.2.13 util-deprecate@1.0.2: {} From 7b9043b9d0390ca6cb9cb9497f68d650f8e184c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 11:59:03 +0000 Subject: [PATCH 3/3] Address code review: add error handling for getLLMText and clarify includeProcessedMarkdown comment Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com> --- packages/site/lib/source.ts | 10 ++++++++-- packages/site/source.config.ts | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/site/lib/source.ts b/packages/site/lib/source.ts index be21dab..1bb7641 100644 --- a/packages/site/lib/source.ts +++ b/packages/site/lib/source.ts @@ -28,10 +28,16 @@ export function getPageImage(page: InferPageType) { } export async function getLLMText(page: InferPageType) { - const processed = await page.data.getText('processed'); + try { + const processed = await page.data.getText('processed'); - return `# ${page.data.title} + return `# ${page.data.title} ${processed}`; + } catch { + return `# ${page.data.title} + +${page.data.description ?? ''}`; + } } diff --git a/packages/site/source.config.ts b/packages/site/source.config.ts index 2f3ef3e..336d7a4 100644 --- a/packages/site/source.config.ts +++ b/packages/site/source.config.ts @@ -35,6 +35,7 @@ export const docs = defineDocs({ docs: { schema: frontmatterSchema, postprocess: { + // Required for LLM text generation (getLLMText in lib/source.ts) includeProcessedMarkdown: true, }, },