chore: import upstream snapshot with attribution
CI: cua-driver distro-compat matrix / debian:12 (glibc 2.36) (push) Has been cancelled
CI: SPDX Headers / Check SPDX headers (warn-only) (push) Has been cancelled
CD: Docs MCP Server / build (linux/amd64) (push) Has been cancelled
CD: Docs MCP Server / build (linux/arm64) (push) Has been cancelled
CD: Docs MCP Server / merge (push) Has been cancelled
CI: cua-driver distro-compat matrix / Resolve release version (push) Has been cancelled
CI: cua-driver distro-compat matrix / fedora:41 (glibc 2.40) (push) Has been cancelled
CI: cua-driver distro-compat matrix / rockylinux:9 (glibc 2.34) (push) Has been cancelled
CI: cua-driver distro-compat matrix / ubuntu:22.04 (glibc 2.35) (push) Has been cancelled
CI: cua-driver distro-compat matrix / ubuntu:24.04 (glibc 2.39) (push) Has been cancelled
CI: cua-driver distro-compat matrix / Distro compat summary (push) Has been cancelled
CI: Rust Linux unit / Rust Linux unit and compile (push) Has been cancelled
CI: Rust Windows unit / Rust Windows unit and compile (push) Has been cancelled
CI: Nix Linux Rust source / Nix / compositor build (push) Has been cancelled
CI: Nix Linux Rust source / Nix / driver package (push) Has been cancelled
CI: Nix Linux Rust source / Nix / Rust unit tests (push) Has been cancelled
@@ -0,0 +1,293 @@
|
||||
import { getApiVersions, source } from '@/lib/source';
|
||||
import { getMDXComponents } from '@/mdx-components';
|
||||
import { buttonVariants } from 'fumadocs-ui/components/ui/button';
|
||||
import { Popover, PopoverContent, PopoverTrigger } from 'fumadocs-ui/components/ui/popover';
|
||||
import { createRelativeLink } from 'fumadocs-ui/mdx';
|
||||
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page';
|
||||
import { cn } from 'fumadocs-ui/utils/cn';
|
||||
import { ChevronDown, ExternalLink } from 'lucide-react';
|
||||
import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { DocActionsMenu } from '@/components/doc-actions-menu';
|
||||
|
||||
export default async function Page(props: { params: Promise<{ slug?: string[] }> }) {
|
||||
const params = await props.params;
|
||||
// Optional catch-all: the docs index (`/`) arrives as an undefined slug, which
|
||||
// resolves to content/docs/index.mdx. Any deeper path arrives as segments.
|
||||
const slug = params.slug ?? [];
|
||||
|
||||
const page = source.getPage(slug);
|
||||
if (!page) notFound();
|
||||
|
||||
// Detect if this is an API reference page: /api/[section] or /api/[section]/[version]
|
||||
let apiSection: string | null = null;
|
||||
let apiVersionSlug: string[] = [];
|
||||
if (slug[0] === 'api' && slug.length >= 2) {
|
||||
apiSection = slug[1];
|
||||
if (slug.length > 2) {
|
||||
apiVersionSlug = slug.slice(2);
|
||||
}
|
||||
}
|
||||
|
||||
let versionItems: { label: string; slug: string[] }[] = [];
|
||||
if (apiSection) {
|
||||
versionItems = await getApiVersions(apiSection);
|
||||
}
|
||||
|
||||
const macos = page.data.macos;
|
||||
const windows = page.data.windows;
|
||||
const linux = page.data.linux;
|
||||
const pypi = page.data.pypi;
|
||||
const npm = page.data.npm;
|
||||
const github = page.data.github;
|
||||
|
||||
const MDXContent = page.data.body;
|
||||
|
||||
// Platform icons component
|
||||
const PlatformIcons = () => {
|
||||
const hasAnyPlatform = macos || windows || linux;
|
||||
if (!hasAnyPlatform && !pypi) return null;
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-2">
|
||||
{hasAnyPlatform && (
|
||||
<div className="flex flex-row gap-2 items-left dark:text-neutral-400">
|
||||
{windows && (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
className="h-5"
|
||||
viewBox="0 0 448 512"
|
||||
>
|
||||
<title>Windows</title>
|
||||
<path d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z" />
|
||||
</svg>
|
||||
)}
|
||||
{macos && (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
className="h-5"
|
||||
viewBox="0 0 384 512"
|
||||
>
|
||||
<title>macOS</title>
|
||||
<path d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" />
|
||||
</svg>
|
||||
)}
|
||||
{linux && (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="currentColor"
|
||||
className="h-5"
|
||||
viewBox="0 0 448 512"
|
||||
>
|
||||
<title>Linux</title>
|
||||
<path d="M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7 .1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z" />
|
||||
</svg>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex flex-row gap-2 items-left">
|
||||
{pypi && (
|
||||
<a target="_blank" href={`https://pypi.org/project/${pypi}/`} rel="noreferrer">
|
||||
<img
|
||||
src={`https://img.shields.io/pypi/v/${pypi}?color=blue`}
|
||||
className="h-5"
|
||||
alt="PyPI"
|
||||
/>
|
||||
</a>
|
||||
)}
|
||||
{npm && (
|
||||
<a target="_blank" href={`https://www.npmjs.com/package/${npm}`} rel="noreferrer">
|
||||
<img
|
||||
src={`https://img.shields.io/npm/v/${npm}?color=bf4c4b`}
|
||||
className="h-5"
|
||||
alt="NPM"
|
||||
/>
|
||||
</a>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
const tocHeader = () => {
|
||||
return (
|
||||
<div className="w-fit">
|
||||
<PlatformIcons />
|
||||
<div className="flex gap-2 mt-2">
|
||||
{github &&
|
||||
github.length > 0 &&
|
||||
(github.length === 1 ? (
|
||||
<a
|
||||
href={github[0]}
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
className="inline-flex gap-2 w-fit items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&_svg]:size-5 text-fd-muted-foreground md:[&_svg]:size-4.5"
|
||||
aria-label="Source"
|
||||
data-active="false"
|
||||
>
|
||||
<svg role="img" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
|
||||
</svg>
|
||||
Source
|
||||
<ExternalLink className="w-4 h-4 ml-auto" />
|
||||
</a>
|
||||
) : (
|
||||
<Popover>
|
||||
<PopoverTrigger className="inline-flex gap-2 w-fit items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&_svg]:size-5 text-fd-muted-foreground md:[&_svg]:size-4.5">
|
||||
<svg role="img" viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path>
|
||||
</svg>
|
||||
Source
|
||||
<ChevronDown className="h-4 w-4" />
|
||||
</PopoverTrigger>
|
||||
<PopoverContent className="w-48 p-1">
|
||||
<div className="flex flex-col gap-1">
|
||||
{github.map((link, index) => (
|
||||
<a
|
||||
key={index}
|
||||
href={link}
|
||||
rel="noreferrer noopener"
|
||||
target="_blank"
|
||||
className="inline-flex gap-2 w-full items-center rounded-md p-2 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground"
|
||||
>
|
||||
{link.includes('python')
|
||||
? 'Python'
|
||||
: link.includes('typescript')
|
||||
? 'TypeScript'
|
||||
: `Source ${index + 1}`}
|
||||
<ExternalLink className="w-4 h-4 ml-auto" />
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
))}
|
||||
</div>
|
||||
<hr className="my-2 border-t border-fd-border" />
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
// Construct file path from slug; shared by the TOC footer (desktop) and the
|
||||
// mobile actions block below.
|
||||
const filePath = slug.length === 0 ? 'index.mdx' : `${slug.join('/')}.mdx`;
|
||||
|
||||
const tocFooter = () => (
|
||||
<div className="mt-4">
|
||||
<DocActionsMenu pageUrl={page.url} pageTitle={page.data.title} filePath={filePath} />
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<DocsPage
|
||||
toc={page.data.toc}
|
||||
tableOfContent={{ header: tocHeader(), footer: tocFooter() }}
|
||||
full={page.data.full}
|
||||
>
|
||||
<div className="flex flex-row w-full items-start">
|
||||
<div className="flex-1">
|
||||
<div className="flex flex-row w-full">
|
||||
{slug.length > 0 && <DocsTitle>{page.data.title}</DocsTitle>}
|
||||
|
||||
<div className="ml-auto flex items-center gap-2">
|
||||
{apiSection && versionItems.length > 1 && (
|
||||
<Popover>
|
||||
<PopoverTrigger
|
||||
className={cn(
|
||||
buttonVariants({
|
||||
color: 'secondary',
|
||||
size: 'sm',
|
||||
className: 'gap-2',
|
||||
})
|
||||
)}
|
||||
>
|
||||
{(() => {
|
||||
// Find the current version label
|
||||
let currentLabel = 'Current';
|
||||
if (apiVersionSlug.length > 0) {
|
||||
const found = versionItems.find(
|
||||
(item) => item.label !== 'Current' && apiVersionSlug[0] === item.label
|
||||
);
|
||||
if (found) currentLabel = found.label;
|
||||
}
|
||||
return (
|
||||
<>
|
||||
API Version: {currentLabel}
|
||||
<ChevronDown className="size-3.5 text-fd-muted-foreground" />
|
||||
</>
|
||||
);
|
||||
})()}
|
||||
</PopoverTrigger>
|
||||
<PopoverContent className="flex flex-col overflow-auto">
|
||||
{versionItems.map((item) => {
|
||||
// Build the href for each version
|
||||
const href =
|
||||
item.label === 'Current'
|
||||
? `/api/${apiSection}`
|
||||
: `/api/${apiSection}/${item.label}`;
|
||||
// Highlight current version
|
||||
const isCurrent =
|
||||
(item.label === 'Current' && apiVersionSlug.length === 0) ||
|
||||
(item.label !== 'Current' && apiVersionSlug[0] === item.label);
|
||||
return (
|
||||
<Link
|
||||
key={item.label}
|
||||
href={href}
|
||||
className={cn(
|
||||
'px-3 py-1 rounded hover:bg-fd-muted',
|
||||
isCurrent && 'font-bold bg-fd-muted'
|
||||
)}
|
||||
>
|
||||
API version: {item.label}
|
||||
</Link>
|
||||
);
|
||||
})}
|
||||
</PopoverContent>
|
||||
</Popover>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
<DocsDescription className="text-md mt-1">{page.data.description}</DocsDescription>
|
||||
{/* The doc actions (Copy as markdown, Edit on GitHub, Open in ChatGPT /
|
||||
Claude) normally live in the TOC footer, which fumadocs hides on
|
||||
small screens. Surface them inline here so they stay reachable on
|
||||
mobile; hidden at xl where the TOC and its footer are visible. */}
|
||||
<div className="mt-4 border-t border-fd-border pt-3 xl:hidden">
|
||||
<DocActionsMenu pageUrl={page.url} pageTitle={page.data.title} filePath={filePath} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<DocsBody>
|
||||
<MDXContent
|
||||
components={getMDXComponents({
|
||||
// this allows you to link to other pages with relative file paths
|
||||
a: createRelativeLink(source, page),
|
||||
})}
|
||||
/>
|
||||
</DocsBody>
|
||||
</DocsPage>
|
||||
);
|
||||
}
|
||||
|
||||
export function generateStaticParams() {
|
||||
return source.generateParams();
|
||||
}
|
||||
|
||||
export async function generateMetadata(props: {
|
||||
params: Promise<{ slug?: string[] }>;
|
||||
}): Promise<Metadata> {
|
||||
const params = await props.params;
|
||||
const page = source.getPage(params.slug ?? []);
|
||||
if (!page) notFound();
|
||||
|
||||
// Local MDX preview: just title + description. SEO/canonical/structured-data
|
||||
// indexing belongs to the production site on the website, not here.
|
||||
return {
|
||||
title: `${page.data.title} | Docs preview`,
|
||||
description: page.data.description,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import { DocsLayout } from 'fumadocs-ui/layouts/docs';
|
||||
import { source } from '@/lib/source';
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
// Stock fumadocs docs layout — sidebar tree from content/docs, no custom
|
||||
// header/branding. This app is a local MDX preview; production chrome lives on
|
||||
// the website.
|
||||
export default function Layout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<DocsLayout tree={source.pageTree} nav={{ title: 'Docs preview' }}>
|
||||
{children}
|
||||
</DocsLayout>
|
||||
);
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,4 @@
|
||||
/* Local MDX preview — stock fumadocs neutral theme, no custom branding. */
|
||||
@import 'tailwindcss';
|
||||
@import 'fumadocs-ui/css/neutral.css';
|
||||
@import 'fumadocs-ui/css/preset.css';
|
||||
@@ -0,0 +1,21 @@
|
||||
import './global.css';
|
||||
import { RootProvider } from 'fumadocs-ui/provider';
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
// Local MDX preview only — the production docs (and their analytics, cuabot
|
||||
// assistant, search index, and custom branding) are served from the website.
|
||||
|
||||
export default function Layout({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<head>
|
||||
<link rel="icon" href="/docs/favicon.ico" sizes="any" />
|
||||
</head>
|
||||
<body className="flex min-h-screen flex-col" suppressHydrationWarning>
|
||||
<RootProvider search={{ enabled: false }} theme={{ defaultTheme: 'dark' }}>
|
||||
{children}
|
||||
</RootProvider>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 86 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 476 KiB |
|
After Width: | Height: | Size: 477 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1112.31 1304.83C1086.81 1318.43 1061.35 1328.63 1034.34 1337.56C898.41 1382.49 759.69 1392.09 617.85 1374.35C550.555 1365.94 481.88 1349.18 421.09 1319.11C335.75 1276.88 273.02 1210.3 244.505 1118.64C242.145 1111.05 238.335 1103.46 231.975 1099.1C219.59 1090.61 207.695 1083.15 195.895 1074.12C163.825 1049.56 148.025 1010.57 153.55 970.621C154.635 962.776 151.12 956.116 144.83 952.051C135.425 945.971 126.815 939.881 118.16 932.911C93.1449 912.771 81.9899 881.911 88.2749 850.111C91.9149 831.686 100.245 815.286 110.93 799.846C116.555 791.716 117.97 782.471 113.66 773.286L88.8499 720.396C80.2549 702.076 76.7149 683.231 77.1999 663.001C77.6649 643.656 79.5449 624.986 87.2499 607.041C100.13 577.041 120.725 551.406 146.835 531.891C201.71 490.881 277.635 503.231 338.54 522.546C381.82 536.271 422.44 554.826 461.905 576.976C465.925 579.236 469.955 579.241 473.795 576.761C531.46 539.486 593.2 510.786 660.515 495.311C721.55 481.281 783.905 480.701 845.335 493.706C907.21 506.801 966.225 530.271 1020.28 562.646C1026.6 566.426 1032.07 570.721 1038.14 573.696C1045.5 577.311 1050.6 575.381 1056.92 571.686C1110.42 540.431 1156.99 518.716 1218.01 505.191C1259.61 495.971 1301.39 496.931 1339.13 518.086C1399.93 552.171 1439.55 624.181 1421.15 693.081C1415.4 714.596 1401.52 731.866 1395.63 756.391C1390.38 778.231 1404.86 787.106 1413.44 801.491C1424.99 820.881 1428.5 844.071 1424.2 866.101C1417.55 900.166 1395.08 918.656 1366.76 934.821C1362.49 937.261 1360.3 940.976 1360.71 946.011L1362.09 963.021C1363.21 976.701 1361.75 990.601 1356.31 1003.16L1349.94 1017.88C1333.83 1055.07 1289.39 1071.53 1286.22 1083.05L1275.4 1122.42C1268.52 1147.44 1256.5 1169.57 1241.54 1190.67C1207.72 1238.33 1164.44 1277.03 1112.3 1304.84L1112.31 1304.83ZM865.81 1313.35C946.885 1305.09 1030.2 1283.08 1100.25 1242.24C1129.41 1225.23 1155.02 1204.48 1176.99 1179.04C1199.56 1152.9 1215.72 1123.23 1224.84 1089.88C1239.57 1036.01 1236.52 977.056 1222.83 922.906C1209.12 868.706 1187.25 816.456 1156.31 769.681C1074.84 646.531 936.305 559.156 788.08 547.116C731.69 542.536 675.955 549.931 622.845 568.956C536.735 599.801 461.095 654.611 404.24 726.206C376.005 761.761 352.815 800.681 334.11 842.101C307.705 900.576 292.925 962.796 290.55 1026.94C289.35 1059.28 294.165 1090.04 306.265 1120.03C325.62 1168 358.775 1209.32 401.555 1238.42C445.57 1268.36 497.76 1284.03 549.105 1296.08C598.82 1307.74 648.48 1315.03 699.635 1317.45C755.115 1320.07 809.9 1319.04 865.81 1313.35V1313.35ZM1308.89 947.411C1309.09 916.696 1324.13 890.391 1349.49 874.266C1356.21 869.991 1362.76 865.976 1368.5 860.641C1378 851.816 1379.51 838.351 1371.41 828.316L1357.72 811.346C1349.21 800.791 1347.07 786.756 1346.64 772.991C1345.91 749.296 1351.88 726.501 1361.85 705.156C1365.96 696.351 1369.74 688.176 1373.13 679.156C1389.85 634.646 1362.54 594.771 1326.09 571.036C1297.26 552.256 1266.5 550.721 1232.86 557.086C1191.92 564.831 1153.34 578.981 1116.45 598.041C1110.99 600.861 1106.13 603.741 1102.08 607.906C1098.56 611.536 1098.65 616.611 1101.83 620.256C1119.15 640.171 1131.94 649.331 1148.32 666.911C1205.03 727.751 1246.43 801.576 1267.85 882.181C1276.26 913.801 1279.85 945.646 1284.07 977.891L1287.09 1000.96C1309.71 988.746 1308.74 970.676 1308.89 947.421V947.411ZM207.42 990.406C209.925 1004.27 221.49 1022.26 235.04 1027.15C237.38 1021 237.99 1015.41 238.105 1008.99C238.27 999.721 238.995 991.321 239.93 981.886C244.205 938.746 252.45 896.941 265.56 855.591C280.455 808.601 301.75 765.051 329.565 724.361C351.865 691.736 376.425 661.361 403.325 632.641C406.505 629.246 422.63 616.351 412.37 611.491C337.41 575.971 224.28 523.931 155.875 597.846C146.135 608.371 138.35 619.566 132.835 632.806C120.525 662.356 129.365 686.886 142.915 713.916C156.465 740.946 169.145 763.021 167.345 794.911C165.79 822.461 150.375 830.256 139.955 852.936C131.875 870.531 144.965 881.746 158.96 888.946C175.66 897.541 189.64 909.666 199.475 925.496C216.44 952.791 203.76 970.156 207.415 990.401L207.42 990.406Z" fill="black"/>
|
||||
<path d="M864.82 1166.84C844.015 1185.55 815.635 1193.41 787.945 1195.82C761.82 1198.1 736.23 1197.7 710.26 1194.61C679.735 1190.99 648.65 1180.69 628.635 1156.52C620.635 1146.86 615.805 1135.96 614.585 1123.37C613.365 1110.78 613.975 1098.79 616.25 1085.99C624.82 1037.81 639.51 991.526 660.5 947.396C673.015 921.081 691.48 895.581 718.25 883.246C745.48 870.696 776.11 874.821 798.855 894.156C808.025 901.956 815.655 910.661 822.265 920.851C829.12 931.411 835.16 941.981 840.115 953.691L864.57 1011.49C875.87 1038.19 890.45 1089.5 888.465 1118.38C887.16 1137.35 878.885 1154.19 864.815 1166.84H864.82Z" fill="black"/>
|
||||
<path d="M787.795 335.521C787.805 358.561 770.295 375.911 748.42 376.226C727.105 376.531 708.255 359.386 708.265 336.966L708.32 155.051C708.325 132.756 727.39 116.006 748.44 116.281C769.895 116.561 787.725 133.756 787.735 156.051L787.795 335.521Z" fill="black"/>
|
||||
<path d="M914.03 410.416C898.125 426.341 873.685 426.261 858.03 411.416C842.695 396.876 840.91 371.171 856.61 355.456L954.97 257.026C970.48 241.506 995.365 242.291 1010.46 257.071C1025.8 272.086 1026.85 297.466 1011.11 313.226L914.03 410.416Z" fill="black"/>
|
||||
<path d="M639.045 354.315C654.845 370.105 654.59 394.36 640.13 409.86C625.67 425.36 599.875 427.41 584.185 411.715L484.815 312.325C469.425 296.935 471.37 271.785 485.895 257.36C501.24 242.115 526.235 241.56 541.89 257.205L639.045 354.315Z" fill="black"/>
|
||||
<path d="M483.46 1028.51L430.895 1028.63C417.03 1028.66 404.075 1017.68 404.055 1003.03L403.885 867.05C403.865 852.08 414.83 839.435 430.125 839.42L483.01 839.375C497.715 839.36 509.565 851.32 509.565 866.135V1001.87C509.565 1016.21 498.15 1028.48 483.45 1028.51H483.46Z" fill="black"/>
|
||||
<path d="M1073.61 1028.08L1016.97 1027.9C1002.59 1027.86 991.7 1015.14 991.7 1000.96V866.079C991.7 850.634 1003.71 838.809 1018.99 838.804L1070.12 838.789C1083.81 838.789 1097.19 849.349 1097.19 864.024L1097.2 1002.96C1097.2 1016.23 1086.16 1026.08 1073.61 1028.08H1073.61Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1112.31 1304.83C1086.81 1318.43 1061.35 1328.63 1034.34 1337.56C898.41 1382.49 759.69 1392.09 617.85 1374.35C550.555 1365.94 481.88 1349.18 421.09 1319.11C335.75 1276.88 273.02 1210.3 244.505 1118.64C242.145 1111.05 238.335 1103.46 231.975 1099.1C219.59 1090.61 207.695 1083.15 195.895 1074.12C163.825 1049.56 148.025 1010.57 153.55 970.621C154.635 962.776 151.12 956.116 144.83 952.051C135.425 945.971 126.815 939.881 118.16 932.911C93.1449 912.771 81.9899 881.911 88.2749 850.111C91.9149 831.686 100.245 815.286 110.93 799.846C116.555 791.716 117.97 782.471 113.66 773.286L88.8499 720.396C80.2549 702.076 76.7149 683.231 77.1999 663.001C77.6649 643.656 79.5449 624.986 87.2499 607.041C100.13 577.041 120.725 551.406 146.835 531.891C201.71 490.881 277.635 503.231 338.54 522.546C381.82 536.271 422.44 554.826 461.905 576.976C465.925 579.236 469.955 579.241 473.795 576.761C531.46 539.486 593.2 510.786 660.515 495.311C721.55 481.281 783.905 480.701 845.335 493.706C907.21 506.801 966.225 530.271 1020.28 562.646C1026.6 566.426 1032.07 570.721 1038.14 573.696C1045.5 577.311 1050.6 575.381 1056.92 571.686C1110.42 540.431 1156.99 518.716 1218.01 505.191C1259.61 495.971 1301.39 496.931 1339.13 518.086C1399.93 552.171 1439.55 624.181 1421.15 693.081C1415.4 714.596 1401.52 731.866 1395.63 756.391C1390.38 778.231 1404.86 787.106 1413.44 801.491C1424.99 820.881 1428.5 844.071 1424.2 866.101C1417.55 900.166 1395.08 918.656 1366.76 934.821C1362.49 937.261 1360.3 940.976 1360.71 946.011L1362.09 963.021C1363.21 976.701 1361.75 990.601 1356.31 1003.16L1349.94 1017.88C1333.83 1055.07 1289.39 1071.53 1286.22 1083.05L1275.4 1122.42C1268.52 1147.44 1256.5 1169.57 1241.54 1190.67C1207.72 1238.33 1164.44 1277.03 1112.3 1304.84L1112.31 1304.83ZM865.81 1313.35C946.885 1305.09 1030.2 1283.08 1100.25 1242.24C1129.41 1225.23 1155.02 1204.48 1176.99 1179.04C1199.56 1152.9 1215.72 1123.23 1224.84 1089.88C1239.57 1036.01 1236.52 977.056 1222.83 922.906C1209.12 868.706 1187.25 816.456 1156.31 769.681C1074.84 646.531 936.305 559.156 788.08 547.116C731.69 542.536 675.955 549.931 622.845 568.956C536.735 599.801 461.095 654.611 404.24 726.206C376.005 761.761 352.815 800.681 334.11 842.101C307.705 900.576 292.925 962.796 290.55 1026.94C289.35 1059.28 294.165 1090.04 306.265 1120.03C325.62 1168 358.775 1209.32 401.555 1238.42C445.57 1268.36 497.76 1284.03 549.105 1296.08C598.82 1307.74 648.48 1315.03 699.635 1317.45C755.115 1320.07 809.9 1319.04 865.81 1313.35V1313.35ZM1308.89 947.411C1309.09 916.696 1324.13 890.391 1349.49 874.266C1356.21 869.991 1362.76 865.976 1368.5 860.641C1378 851.816 1379.51 838.351 1371.41 828.316L1357.72 811.346C1349.21 800.791 1347.07 786.756 1346.64 772.991C1345.91 749.296 1351.88 726.501 1361.85 705.156C1365.96 696.351 1369.74 688.176 1373.13 679.156C1389.85 634.646 1362.54 594.771 1326.09 571.036C1297.26 552.256 1266.5 550.721 1232.86 557.086C1191.92 564.831 1153.34 578.981 1116.45 598.041C1110.99 600.861 1106.13 603.741 1102.08 607.906C1098.56 611.536 1098.65 616.611 1101.83 620.256C1119.15 640.171 1131.94 649.331 1148.32 666.911C1205.03 727.751 1246.43 801.576 1267.85 882.181C1276.26 913.801 1279.85 945.646 1284.07 977.891L1287.09 1000.96C1309.71 988.746 1308.74 970.676 1308.89 947.421V947.411ZM207.42 990.406C209.925 1004.27 221.49 1022.26 235.04 1027.15C237.38 1021 237.99 1015.41 238.105 1008.99C238.27 999.721 238.995 991.321 239.93 981.886C244.205 938.746 252.45 896.941 265.56 855.591C280.455 808.601 301.75 765.051 329.565 724.361C351.865 691.736 376.425 661.361 403.325 632.641C406.505 629.246 422.63 616.351 412.37 611.491C337.41 575.971 224.28 523.931 155.875 597.846C146.135 608.371 138.35 619.566 132.835 632.806C120.525 662.356 129.365 686.886 142.915 713.916C156.465 740.946 169.145 763.021 167.345 794.911C165.79 822.461 150.375 830.256 139.955 852.936C131.875 870.531 144.965 881.746 158.96 888.946C175.66 897.541 189.64 909.666 199.475 925.496C216.44 952.791 203.76 970.156 207.415 990.401L207.42 990.406Z" fill="white"/>
|
||||
<path d="M864.82 1166.84C844.015 1185.55 815.635 1193.41 787.945 1195.82C761.82 1198.1 736.23 1197.7 710.26 1194.61C679.735 1190.99 648.65 1180.69 628.635 1156.52C620.635 1146.86 615.805 1135.96 614.585 1123.37C613.365 1110.78 613.975 1098.79 616.25 1085.99C624.82 1037.81 639.51 991.526 660.5 947.396C673.015 921.081 691.48 895.581 718.25 883.246C745.48 870.696 776.11 874.821 798.855 894.156C808.025 901.956 815.655 910.661 822.265 920.851C829.12 931.411 835.16 941.981 840.115 953.691L864.57 1011.49C875.87 1038.19 890.45 1089.5 888.465 1118.38C887.16 1137.35 878.885 1154.19 864.815 1166.84H864.82Z" fill="white"/>
|
||||
<path d="M787.795 335.521C787.805 358.561 770.295 375.911 748.42 376.226C727.105 376.531 708.255 359.386 708.265 336.966L708.32 155.051C708.325 132.756 727.39 116.006 748.44 116.281C769.895 116.561 787.725 133.756 787.735 156.051L787.795 335.521Z" fill="white"/>
|
||||
<path d="M914.03 410.416C898.125 426.341 873.685 426.261 858.03 411.416C842.695 396.876 840.91 371.171 856.61 355.456L954.97 257.026C970.48 241.506 995.365 242.291 1010.46 257.071C1025.8 272.086 1026.85 297.466 1011.11 313.226L914.03 410.416Z" fill="white"/>
|
||||
<path d="M639.045 354.315C654.845 370.105 654.59 394.36 640.13 409.86C625.67 425.36 599.875 427.41 584.185 411.715L484.815 312.325C469.425 296.935 471.37 271.785 485.895 257.36C501.24 242.115 526.235 241.56 541.89 257.205L639.045 354.315Z" fill="white"/>
|
||||
<path d="M483.46 1028.51L430.895 1028.63C417.03 1028.66 404.075 1017.68 404.055 1003.03L403.885 867.05C403.865 852.08 414.83 839.435 430.125 839.42L483.01 839.375C497.715 839.36 509.565 851.32 509.565 866.135V1001.87C509.565 1016.21 498.15 1028.48 483.45 1028.51H483.46Z" fill="white"/>
|
||||
<path d="M1073.61 1028.08L1016.97 1027.9C1002.59 1027.86 991.7 1015.14 991.7 1000.96V866.079C991.7 850.634 1003.71 838.809 1018.99 838.804L1070.12 838.789C1083.81 838.789 1097.19 849.349 1097.19 864.024L1097.2 1002.96C1097.2 1016.23 1086.16 1026.08 1073.61 1028.08H1073.61Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="Discord-Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126.644 96"><path fill="currentColor" id="Discord-Symbol-Black" d="M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="Discord-Logo" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 126.644 96"><defs><style>.cls-1{fill:#fff;}</style></defs><path id="Discord-Symbol-White" class="cls-1" d="M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1112.31 1304.83C1086.81 1318.43 1061.35 1328.63 1034.34 1337.56C898.41 1382.49 759.69 1392.09 617.85 1374.35C550.555 1365.94 481.88 1349.18 421.09 1319.11C335.75 1276.88 273.02 1210.3 244.505 1118.64C242.145 1111.05 238.335 1103.46 231.975 1099.1C219.59 1090.61 207.695 1083.15 195.895 1074.12C163.825 1049.56 148.025 1010.57 153.55 970.621C154.635 962.776 151.12 956.116 144.83 952.051C135.425 945.971 126.815 939.881 118.16 932.911C93.1449 912.771 81.9899 881.911 88.2749 850.111C91.9149 831.686 100.245 815.286 110.93 799.846C116.555 791.716 117.97 782.471 113.66 773.286L88.8499 720.396C80.2549 702.076 76.7149 683.231 77.1999 663.001C77.6649 643.656 79.5449 624.986 87.2499 607.041C100.13 577.041 120.725 551.406 146.835 531.891C201.71 490.881 277.635 503.231 338.54 522.546C381.82 536.271 422.44 554.826 461.905 576.976C465.925 579.236 469.955 579.241 473.795 576.761C531.46 539.486 593.2 510.786 660.515 495.311C721.55 481.281 783.905 480.701 845.335 493.706C907.21 506.801 966.225 530.271 1020.28 562.646C1026.6 566.426 1032.07 570.721 1038.14 573.696C1045.5 577.311 1050.6 575.381 1056.92 571.686C1110.42 540.431 1156.99 518.716 1218.01 505.191C1259.61 495.971 1301.39 496.931 1339.13 518.086C1399.93 552.171 1439.55 624.181 1421.15 693.081C1415.4 714.596 1401.52 731.866 1395.63 756.391C1390.38 778.231 1404.86 787.106 1413.44 801.491C1424.99 820.881 1428.5 844.071 1424.2 866.101C1417.55 900.166 1395.08 918.656 1366.76 934.821C1362.49 937.261 1360.3 940.976 1360.71 946.011L1362.09 963.021C1363.21 976.701 1361.75 990.601 1356.31 1003.16L1349.94 1017.88C1333.83 1055.07 1289.39 1071.53 1286.22 1083.05L1275.4 1122.42C1268.52 1147.44 1256.5 1169.57 1241.54 1190.67C1207.72 1238.33 1164.44 1277.03 1112.3 1304.84L1112.31 1304.83ZM865.81 1313.35C946.885 1305.09 1030.2 1283.08 1100.25 1242.24C1129.41 1225.23 1155.02 1204.48 1176.99 1179.04C1199.56 1152.9 1215.72 1123.23 1224.84 1089.88C1239.57 1036.01 1236.52 977.056 1222.83 922.906C1209.12 868.706 1187.25 816.456 1156.31 769.681C1074.84 646.531 936.305 559.156 788.08 547.116C731.69 542.536 675.955 549.931 622.845 568.956C536.735 599.801 461.095 654.611 404.24 726.206C376.005 761.761 352.815 800.681 334.11 842.101C307.705 900.576 292.925 962.796 290.55 1026.94C289.35 1059.28 294.165 1090.04 306.265 1120.03C325.62 1168 358.775 1209.32 401.555 1238.42C445.57 1268.36 497.76 1284.03 549.105 1296.08C598.82 1307.74 648.48 1315.03 699.635 1317.45C755.115 1320.07 809.9 1319.04 865.81 1313.35V1313.35ZM1308.89 947.411C1309.09 916.696 1324.13 890.391 1349.49 874.266C1356.21 869.991 1362.76 865.976 1368.5 860.641C1378 851.816 1379.51 838.351 1371.41 828.316L1357.72 811.346C1349.21 800.791 1347.07 786.756 1346.64 772.991C1345.91 749.296 1351.88 726.501 1361.85 705.156C1365.96 696.351 1369.74 688.176 1373.13 679.156C1389.85 634.646 1362.54 594.771 1326.09 571.036C1297.26 552.256 1266.5 550.721 1232.86 557.086C1191.92 564.831 1153.34 578.981 1116.45 598.041C1110.99 600.861 1106.13 603.741 1102.08 607.906C1098.56 611.536 1098.65 616.611 1101.83 620.256C1119.15 640.171 1131.94 649.331 1148.32 666.911C1205.03 727.751 1246.43 801.576 1267.85 882.181C1276.26 913.801 1279.85 945.646 1284.07 977.891L1287.09 1000.96C1309.71 988.746 1308.74 970.676 1308.89 947.421V947.411ZM207.42 990.406C209.925 1004.27 221.49 1022.26 235.04 1027.15C237.38 1021 237.99 1015.41 238.105 1008.99C238.27 999.721 238.995 991.321 239.93 981.886C244.205 938.746 252.45 896.941 265.56 855.591C280.455 808.601 301.75 765.051 329.565 724.361C351.865 691.736 376.425 661.361 403.325 632.641C406.505 629.246 422.63 616.351 412.37 611.491C337.41 575.971 224.28 523.931 155.875 597.846C146.135 608.371 138.35 619.566 132.835 632.806C120.525 662.356 129.365 686.886 142.915 713.916C156.465 740.946 169.145 763.021 167.345 794.911C165.79 822.461 150.375 830.256 139.955 852.936C131.875 870.531 144.965 881.746 158.96 888.946C175.66 897.541 189.64 909.666 199.475 925.496C216.44 952.791 203.76 970.156 207.415 990.401L207.42 990.406Z" fill="black"/>
|
||||
<path d="M864.82 1166.84C844.015 1185.55 815.635 1193.41 787.945 1195.82C761.82 1198.1 736.23 1197.7 710.26 1194.61C679.735 1190.99 648.65 1180.69 628.635 1156.52C620.635 1146.86 615.805 1135.96 614.585 1123.37C613.365 1110.78 613.975 1098.79 616.25 1085.99C624.82 1037.81 639.51 991.526 660.5 947.396C673.015 921.081 691.48 895.581 718.25 883.246C745.48 870.696 776.11 874.821 798.855 894.156C808.025 901.956 815.655 910.661 822.265 920.851C829.12 931.411 835.16 941.981 840.115 953.691L864.57 1011.49C875.87 1038.19 890.45 1089.5 888.465 1118.38C887.16 1137.35 878.885 1154.19 864.815 1166.84H864.82Z" fill="black"/>
|
||||
<path d="M787.795 335.521C787.805 358.561 770.295 375.911 748.42 376.226C727.105 376.531 708.255 359.386 708.265 336.966L708.32 155.051C708.325 132.756 727.39 116.006 748.44 116.281C769.895 116.561 787.725 133.756 787.735 156.051L787.795 335.521Z" fill="black"/>
|
||||
<path d="M914.03 410.416C898.125 426.341 873.685 426.261 858.03 411.416C842.695 396.876 840.91 371.171 856.61 355.456L954.97 257.026C970.48 241.506 995.365 242.291 1010.46 257.071C1025.8 272.086 1026.85 297.466 1011.11 313.226L914.03 410.416Z" fill="black"/>
|
||||
<path d="M639.045 354.315C654.845 370.105 654.59 394.36 640.13 409.86C625.67 425.36 599.875 427.41 584.185 411.715L484.815 312.325C469.425 296.935 471.37 271.785 485.895 257.36C501.24 242.115 526.235 241.56 541.89 257.205L639.045 354.315Z" fill="black"/>
|
||||
<path d="M483.46 1028.51L430.895 1028.63C417.03 1028.66 404.075 1017.68 404.055 1003.03L403.885 867.05C403.865 852.08 414.83 839.435 430.125 839.42L483.01 839.375C497.715 839.36 509.565 851.32 509.565 866.135V1001.87C509.565 1016.21 498.15 1028.48 483.45 1028.51H483.46Z" fill="black"/>
|
||||
<path d="M1073.61 1028.08L1016.97 1027.9C1002.59 1027.86 991.7 1015.14 991.7 1000.96V866.079C991.7 850.634 1003.71 838.809 1018.99 838.804L1070.12 838.789C1083.81 838.789 1097.19 849.349 1097.19 864.024L1097.2 1002.96C1097.2 1016.23 1086.16 1026.08 1073.61 1028.08H1073.61Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1112.31 1304.83C1086.81 1318.43 1061.35 1328.63 1034.34 1337.56C898.41 1382.49 759.69 1392.09 617.85 1374.35C550.555 1365.94 481.88 1349.18 421.09 1319.11C335.75 1276.88 273.02 1210.3 244.505 1118.64C242.145 1111.05 238.335 1103.46 231.975 1099.1C219.59 1090.61 207.695 1083.15 195.895 1074.12C163.825 1049.56 148.025 1010.57 153.55 970.621C154.635 962.776 151.12 956.116 144.83 952.051C135.425 945.971 126.815 939.881 118.16 932.911C93.1449 912.771 81.9899 881.911 88.2749 850.111C91.9149 831.686 100.245 815.286 110.93 799.846C116.555 791.716 117.97 782.471 113.66 773.286L88.8499 720.396C80.2549 702.076 76.7149 683.231 77.1999 663.001C77.6649 643.656 79.5449 624.986 87.2499 607.041C100.13 577.041 120.725 551.406 146.835 531.891C201.71 490.881 277.635 503.231 338.54 522.546C381.82 536.271 422.44 554.826 461.905 576.976C465.925 579.236 469.955 579.241 473.795 576.761C531.46 539.486 593.2 510.786 660.515 495.311C721.55 481.281 783.905 480.701 845.335 493.706C907.21 506.801 966.225 530.271 1020.28 562.646C1026.6 566.426 1032.07 570.721 1038.14 573.696C1045.5 577.311 1050.6 575.381 1056.92 571.686C1110.42 540.431 1156.99 518.716 1218.01 505.191C1259.61 495.971 1301.39 496.931 1339.13 518.086C1399.93 552.171 1439.55 624.181 1421.15 693.081C1415.4 714.596 1401.52 731.866 1395.63 756.391C1390.38 778.231 1404.86 787.106 1413.44 801.491C1424.99 820.881 1428.5 844.071 1424.2 866.101C1417.55 900.166 1395.08 918.656 1366.76 934.821C1362.49 937.261 1360.3 940.976 1360.71 946.011L1362.09 963.021C1363.21 976.701 1361.75 990.601 1356.31 1003.16L1349.94 1017.88C1333.83 1055.07 1289.39 1071.53 1286.22 1083.05L1275.4 1122.42C1268.52 1147.44 1256.5 1169.57 1241.54 1190.67C1207.72 1238.33 1164.44 1277.03 1112.3 1304.84L1112.31 1304.83ZM865.81 1313.35C946.885 1305.09 1030.2 1283.08 1100.25 1242.24C1129.41 1225.23 1155.02 1204.48 1176.99 1179.04C1199.56 1152.9 1215.72 1123.23 1224.84 1089.88C1239.57 1036.01 1236.52 977.056 1222.83 922.906C1209.12 868.706 1187.25 816.456 1156.31 769.681C1074.84 646.531 936.305 559.156 788.08 547.116C731.69 542.536 675.955 549.931 622.845 568.956C536.735 599.801 461.095 654.611 404.24 726.206C376.005 761.761 352.815 800.681 334.11 842.101C307.705 900.576 292.925 962.796 290.55 1026.94C289.35 1059.28 294.165 1090.04 306.265 1120.03C325.62 1168 358.775 1209.32 401.555 1238.42C445.57 1268.36 497.76 1284.03 549.105 1296.08C598.82 1307.74 648.48 1315.03 699.635 1317.45C755.115 1320.07 809.9 1319.04 865.81 1313.35V1313.35ZM1308.89 947.411C1309.09 916.696 1324.13 890.391 1349.49 874.266C1356.21 869.991 1362.76 865.976 1368.5 860.641C1378 851.816 1379.51 838.351 1371.41 828.316L1357.72 811.346C1349.21 800.791 1347.07 786.756 1346.64 772.991C1345.91 749.296 1351.88 726.501 1361.85 705.156C1365.96 696.351 1369.74 688.176 1373.13 679.156C1389.85 634.646 1362.54 594.771 1326.09 571.036C1297.26 552.256 1266.5 550.721 1232.86 557.086C1191.92 564.831 1153.34 578.981 1116.45 598.041C1110.99 600.861 1106.13 603.741 1102.08 607.906C1098.56 611.536 1098.65 616.611 1101.83 620.256C1119.15 640.171 1131.94 649.331 1148.32 666.911C1205.03 727.751 1246.43 801.576 1267.85 882.181C1276.26 913.801 1279.85 945.646 1284.07 977.891L1287.09 1000.96C1309.71 988.746 1308.74 970.676 1308.89 947.421V947.411ZM207.42 990.406C209.925 1004.27 221.49 1022.26 235.04 1027.15C237.38 1021 237.99 1015.41 238.105 1008.99C238.27 999.721 238.995 991.321 239.93 981.886C244.205 938.746 252.45 896.941 265.56 855.591C280.455 808.601 301.75 765.051 329.565 724.361C351.865 691.736 376.425 661.361 403.325 632.641C406.505 629.246 422.63 616.351 412.37 611.491C337.41 575.971 224.28 523.931 155.875 597.846C146.135 608.371 138.35 619.566 132.835 632.806C120.525 662.356 129.365 686.886 142.915 713.916C156.465 740.946 169.145 763.021 167.345 794.911C165.79 822.461 150.375 830.256 139.955 852.936C131.875 870.531 144.965 881.746 158.96 888.946C175.66 897.541 189.64 909.666 199.475 925.496C216.44 952.791 203.76 970.156 207.415 990.401L207.42 990.406Z" fill="white"/>
|
||||
<path d="M864.82 1166.84C844.015 1185.55 815.635 1193.41 787.945 1195.82C761.82 1198.1 736.23 1197.7 710.26 1194.61C679.735 1190.99 648.65 1180.69 628.635 1156.52C620.635 1146.86 615.805 1135.96 614.585 1123.37C613.365 1110.78 613.975 1098.79 616.25 1085.99C624.82 1037.81 639.51 991.526 660.5 947.396C673.015 921.081 691.48 895.581 718.25 883.246C745.48 870.696 776.11 874.821 798.855 894.156C808.025 901.956 815.655 910.661 822.265 920.851C829.12 931.411 835.16 941.981 840.115 953.691L864.57 1011.49C875.87 1038.19 890.45 1089.5 888.465 1118.38C887.16 1137.35 878.885 1154.19 864.815 1166.84H864.82Z" fill="white"/>
|
||||
<path d="M787.795 335.521C787.805 358.561 770.295 375.911 748.42 376.226C727.105 376.531 708.255 359.386 708.265 336.966L708.32 155.051C708.325 132.756 727.39 116.006 748.44 116.281C769.895 116.561 787.725 133.756 787.735 156.051L787.795 335.521Z" fill="white"/>
|
||||
<path d="M914.03 410.416C898.125 426.341 873.685 426.261 858.03 411.416C842.695 396.876 840.91 371.171 856.61 355.456L954.97 257.026C970.48 241.506 995.365 242.291 1010.46 257.071C1025.8 272.086 1026.85 297.466 1011.11 313.226L914.03 410.416Z" fill="white"/>
|
||||
<path d="M639.045 354.315C654.845 370.105 654.59 394.36 640.13 409.86C625.67 425.36 599.875 427.41 584.185 411.715L484.815 312.325C469.425 296.935 471.37 271.785 485.895 257.36C501.24 242.115 526.235 241.56 541.89 257.205L639.045 354.315Z" fill="white"/>
|
||||
<path d="M483.46 1028.51L430.895 1028.63C417.03 1028.66 404.075 1017.68 404.055 1003.03L403.885 867.05C403.865 852.08 414.83 839.435 430.125 839.42L483.01 839.375C497.715 839.36 509.565 851.32 509.565 866.135V1001.87C509.565 1016.21 498.15 1028.48 483.45 1028.51H483.46Z" fill="white"/>
|
||||
<path d="M1073.61 1028.08L1016.97 1027.9C1002.59 1027.86 991.7 1015.14 991.7 1000.96V866.079C991.7 850.634 1003.71 838.809 1018.99 838.804L1070.12 838.789C1083.81 838.789 1097.19 849.349 1097.19 864.024L1097.2 1002.96C1097.2 1016.23 1086.16 1026.08 1073.61 1028.08H1073.61Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.9 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1007.49 1356.89C937.911 1375.08 868.641 1384.86 797.131 1386.69C703.647 1389.08 610.986 1378.63 520.074 1357.56C479.469 1348.14 441.283 1334.3 404.692 1315.54C328.808 1276.66 271.4 1212.04 241.859 1132.27C236.764 1118.51 227.527 1109.71 215.638 1102.3C198.578 1091.64 182.959 1080.45 169.141 1066.06C146.316 1042.31 136.821 1010.82 144.824 978.55C146.033 973.687 144.515 968.746 140.038 965.941L109.185 946.591C85.0225 931.435 72.6969 906.526 73.0057 878.221C73.2887 852.077 84.0704 829.69 104.708 813.685C119.298 802.363 104.399 770.841 96.6534 757.924C61.1432 698.56 79.979 629.315 129.513 584.85C145.673 570.337 163.094 558.449 181.569 547.204C208.047 531.096 236.301 525.074 267.231 527.287C344.968 532.845 407.008 561.871 471.106 604.149C477.513 608.369 483.946 611.714 491.409 606.851C530.161 581.633 569.994 558.474 612.246 539.253C703.312 497.85 806.06 499.934 896.097 542.804C939.558 563.492 980.755 587.089 1022.11 613.773C1089.42 567.789 1152.23 534.055 1235.12 526.747C1295.9 521.961 1337.22 551.012 1378.98 591.025C1407.29 618.147 1423.17 654.944 1422.09 694.34C1421.47 717.447 1414.06 738.573 1402.25 758.052C1395.43 769.271 1384.41 794.643 1393.78 804.627C1415.32 827.529 1429.65 845.335 1427.1 879.765C1423.94 922.351 1397.15 937.533 1366.45 956.343C1346.97 968.283 1364.78 989.435 1358.78 1012.13C1350.22 1044.55 1327.16 1070.88 1298.42 1087.42C1288.9 1092.9 1282.64 1099.34 1280.64 1110.66C1277.65 1127.46 1273.2 1143.52 1266.28 1159.68C1220.35 1266.98 1117.7 1328.07 1007.49 1356.89ZM968.996 1304.63C1088.75 1279.2 1232.31 1199.82 1231.28 1061.74C1231.08 1035.75 1227.65 1011.41 1220.76 986.064C1188.21 866.101 1111.45 754.733 1011.43 680.805C958.137 641.409 898.541 606.336 834.906 586.908C760.334 564.136 691.424 574.814 620.481 605.049C478.594 665.52 366.428 780.851 311.49 925.182C301.095 952.484 296.489 979.708 290.313 1007.99C275.182 1077.28 295.691 1142.44 340.722 1195.83C375.692 1237.31 421.057 1265.77 472.496 1283.11C541.586 1306.4 612.632 1320.27 685.737 1324.93C780.483 1330.98 875.28 1324.52 968.996 1304.63ZM202.592 962.956C207.301 987.222 181.029 1008.24 230.434 1038.53L236.481 995.919C242.477 953.693 251.895 913.577 269.187 874.464C309.612 783.115 361.899 713.356 437.294 646.221C387.297 616.552 326.595 588.838 268.672 583.718C243.583 582.045 220.553 587.14 199.324 600.16C181.801 610.891 166.387 623.757 152.672 638.99C133.27 660.553 124.984 689.168 139.266 716.032C154.396 744.517 167.031 770.867 166.49 803.778C165.847 843.354 138.339 852.515 129.976 868.854C125.731 877.114 129.976 887.639 137.207 893.094C145.493 899.347 154.113 904.056 163.171 909.511C182.701 921.271 197.986 939.283 202.592 962.956ZM1365.45 886.867C1373.22 880.537 1376.57 868.597 1370.65 860.234C1359.27 844.229 1337.94 836.561 1336.71 802.389C1335.63 772.359 1344.61 744.389 1360.1 719.197C1375.38 694.314 1372.32 664.671 1354.05 642.67C1315.35 596.095 1266.25 573.039 1204.98 587.577C1155.91 599.208 1110.14 619.562 1067.32 648.022L1132.6 712.661C1203.26 782.626 1249.96 872.92 1272.09 969.878L1282.31 1023.68C1291.39 1022.22 1296.95 1016.09 1300.24 1007.94C1310.25 983.13 1290.34 959.74 1315.61 925.208C1331.95 902.872 1348.96 900.299 1365.45 886.867Z" fill="black"/>
|
||||
<path d="M680.617 439.772C678.069 459.355 640.295 453.256 627.506 448.856C602.906 440.364 579.927 427.344 561.58 408.405C527.871 373.615 511.84 326.268 513.307 278.458C513.487 272.334 512.664 267.316 516.909 263.173C520.177 259.983 526.868 256.818 531.988 258.542C581.034 275.062 613.816 315.59 642.893 356.735C655.965 375.236 666.927 393.969 675.985 414.812C679.279 422.352 681.775 430.946 680.617 439.772ZM631.546 406.655C612.581 365.819 585.46 333.216 551.493 305.914C560.654 354.985 589.01 386.404 631.546 406.655Z" fill="black"/>
|
||||
<path d="M1031.73 376.528C993.415 425.342 935.389 453.801 873.04 453.853C867.302 453.853 860.329 452.154 856.623 448.706C847.463 440.163 848.158 425.985 856.469 417.339C865.784 397.139 878.727 380.902 894.501 365.257C930.835 329.207 976.432 304.864 1027.2 296.244C1035.28 294.88 1043.75 295.498 1051 297.505C1059.11 299.743 1063.9 307.412 1062.33 315.826C1060.4 326.119 1055.12 335.176 1050.39 344.466C1044.62 355.788 1039.63 366.467 1031.73 376.528ZM1016.11 335.537C979.159 346.01 934.592 377.068 907.985 406.712C946.12 394.978 986.853 363.096 1016.11 335.537Z" fill="black"/>
|
||||
<path d="M737.664 484.419L726.677 438.358C706.837 355.244 695.438 281.007 736.841 202.292C757.993 162.073 788.742 120.722 836.398 112.513C870.493 106.672 879.088 152.089 879.577 177.229C880.529 226.095 872.32 274.78 855.543 320.66C836.63 372.407 805.185 416.254 762.599 450.452L766.175 479.838C767.127 487.609 760.669 494.609 754.622 495.586C747.211 496.822 739.723 493.065 737.664 484.419ZM785.063 369.345C822.529 315.256 850.139 230.263 840.901 165.238C822.631 205.457 809.946 245.368 800.116 287.646C793.812 314.844 787.584 340.834 785.063 369.345ZM749.604 376.704C760.463 303.522 774.976 239.784 801.222 172.855C747.648 221.694 730.691 308.952 749.604 376.704Z" fill="black"/>
|
||||
<path d="M687.693 1194.7C673.257 1190.94 661.523 1184.82 650.407 1176.53C621.33 1154.76 618.088 1120.72 624.675 1086.93C635.019 1034 652.877 983.569 678.661 936.35C683.884 926.752 689.648 918.955 696.442 910.593C723.126 877.63 771.013 872.509 804.233 899.193C814.243 907.247 821.808 916.871 828.421 928.296C858.09 979.554 879.577 1034.29 893.189 1092C895.376 1101.24 895.582 1110.09 895.582 1119.43C895.608 1157.44 871.6 1181.94 836.475 1192.41C788.074 1206.82 737.459 1207.59 687.693 1194.7Z" fill="black"/>
|
||||
<path d="M491.074 1034.73L438.169 1034.85C422.781 1034.91 410.945 1022.58 410.945 1007.17L411.022 872.51C411.022 858.589 422.859 846.315 436.754 846.263L490.251 846.135C503.451 846.109 516.626 857.148 516.626 871.146V1010C516.626 1023.15 504.146 1034.7 491.074 1034.73Z" fill="black"/>
|
||||
<path d="M1077.95 1034.7L1023.52 1034.47C1009.86 1034.42 997.713 1022.71 997.713 1008.68L997.79 871.224C997.79 857.097 1010.27 847.602 1023.01 845.98L1076.45 846.109C1089.68 846.135 1102.93 857.097 1102.93 871.146V1009.92C1102.96 1023.61 1090.76 1033.13 1077.95 1034.7Z" fill="black"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.0 KiB |
@@ -0,0 +1,9 @@
|
||||
<svg width="1500" height="1500" viewBox="0 0 1500 1500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M1007.5 1356.9C937.919 1375.09 868.647 1384.87 797.137 1386.7C703.652 1389.09 610.99 1378.64 520.078 1357.57C479.473 1348.15 441.286 1334.31 404.695 1315.55C328.81 1276.67 271.401 1212.05 241.861 1132.28C236.766 1118.52 227.528 1109.72 215.64 1102.3C198.579 1091.65 182.96 1080.46 169.141 1066.07C146.317 1042.32 136.822 1010.83 144.824 978.558C146.034 973.695 144.516 968.754 140.038 965.949L109.185 946.599C85.0226 931.442 72.6969 906.533 73.0056 878.228C73.2887 852.084 84.0705 829.697 104.708 813.691C119.298 802.369 104.399 770.847 96.6536 757.93C61.1431 698.565 79.9791 629.32 129.514 584.854C145.674 570.341 163.094 558.453 181.57 547.208C208.049 531.1 236.303 525.078 267.233 527.291C344.97 532.849 407.01 561.875 471.11 604.154C477.517 608.374 483.95 611.719 491.412 606.855C530.165 581.638 569.999 558.479 612.251 539.257C703.318 497.854 806.067 499.938 896.104 542.808C939.566 563.497 980.763 587.093 1022.11 613.777C1089.43 567.794 1152.24 534.059 1235.13 526.751C1295.91 521.965 1337.23 551.016 1379 591.03C1407.3 618.152 1423.18 654.949 1422.1 694.345C1421.48 717.453 1414.07 738.579 1402.26 758.058C1395.44 769.277 1384.43 794.65 1393.79 804.634C1415.33 827.535 1429.66 845.342 1427.11 879.772C1423.95 922.359 1397.16 937.541 1366.46 956.351C1346.98 968.291 1364.79 989.443 1358.8 1012.14C1350.23 1044.56 1327.17 1070.89 1298.43 1087.43C1288.91 1092.91 1282.65 1099.35 1280.65 1110.67C1277.66 1127.47 1273.21 1143.53 1266.29 1159.69C1220.36 1266.99 1117.71 1328.08 1007.5 1356.9ZM969.003 1304.64C1088.76 1279.21 1232.32 1199.83 1231.29 1061.75C1231.09 1035.76 1227.66 1011.42 1220.77 986.072C1188.22 866.108 1111.46 754.739 1011.44 680.81C958.144 641.414 898.548 606.341 834.912 586.913C760.34 564.14 691.429 574.819 620.485 605.054C478.598 665.525 366.431 780.857 311.492 925.189C301.096 952.491 296.49 979.716 290.315 1008C275.184 1077.29 295.693 1142.45 340.724 1195.84C375.694 1237.32 421.06 1265.78 472.499 1283.13C541.59 1306.41 612.637 1320.28 685.742 1324.94C780.489 1330.99 875.286 1324.53 969.003 1304.64ZM202.593 962.964C207.302 987.23 181.03 1008.25 230.436 1038.54L236.483 995.927C242.478 953.701 251.896 913.584 269.188 874.471C309.614 783.122 361.902 713.361 437.297 646.226C387.3 616.556 326.597 588.843 268.674 583.722C243.585 582.049 220.554 587.145 199.325 600.165C181.802 610.895 166.388 623.762 152.673 638.995C133.271 660.559 124.985 689.173 139.266 716.037C154.397 744.523 167.031 770.873 166.491 803.785C165.848 843.361 138.34 852.521 129.977 868.861C125.731 877.121 129.977 887.646 137.208 893.101C145.493 899.354 154.114 904.063 163.172 909.518C182.702 921.278 197.987 939.291 202.593 962.964ZM1365.46 886.874C1373.23 880.544 1376.58 868.604 1370.66 860.241C1359.28 844.236 1337.95 836.567 1336.72 802.395C1335.64 772.365 1344.62 744.394 1360.11 719.203C1375.39 694.319 1372.33 664.676 1354.06 642.675C1315.36 596.099 1266.26 573.043 1204.99 587.582C1155.92 599.213 1110.14 619.567 1067.33 648.027L1132.61 712.667C1203.27 782.633 1249.97 872.927 1272.1 969.886L1282.32 1023.69C1291.4 1022.23 1296.96 1016.1 1300.25 1007.94C1310.26 983.138 1290.35 959.748 1315.62 925.215C1331.96 902.879 1348.97 900.306 1365.46 886.874Z" fill="white"/>
|
||||
<path d="M680.622 439.776C678.074 459.358 640.299 453.26 627.51 448.859C602.91 440.368 579.931 427.347 561.584 408.408C527.875 373.618 511.844 326.271 513.311 278.46C513.491 272.336 512.667 267.318 516.913 263.175C520.181 259.985 526.871 256.819 531.992 258.544C581.038 275.064 613.821 315.592 642.898 356.738C655.97 375.239 666.932 393.973 675.99 414.816C679.284 422.355 681.78 430.95 680.622 439.776ZM631.55 406.659C612.586 365.821 585.464 333.219 551.497 305.917C560.658 354.988 589.015 386.407 631.55 406.659Z" fill="white"/>
|
||||
<path d="M1031.74 376.531C993.423 425.345 935.397 453.805 873.047 453.856C867.309 453.856 860.336 452.158 856.63 448.71C847.47 440.166 848.164 425.988 856.476 417.342C865.791 397.142 878.734 380.905 894.508 365.26C930.842 329.209 976.44 304.866 1027.21 296.246C1035.29 294.882 1043.76 295.5 1051.01 297.507C1059.12 299.745 1063.9 307.414 1062.33 315.828C1060.4 326.121 1055.13 335.179 1050.39 344.468C1044.63 355.79 1039.64 366.469 1031.74 376.531ZM1016.12 335.539C979.167 346.012 934.599 377.071 907.992 406.714C946.127 394.981 986.861 363.098 1016.12 335.539Z" fill="white"/>
|
||||
<path d="M737.67 484.422L726.682 438.361C706.843 355.246 695.443 281.008 736.847 202.293C757.998 162.074 788.749 120.722 836.405 112.513C870.5 106.672 879.095 152.09 879.583 177.23C880.536 226.096 872.327 274.781 855.55 320.662C836.636 372.409 805.191 416.257 762.605 450.455L766.181 479.841C767.133 487.613 760.675 494.612 754.628 495.59C747.217 496.825 739.729 493.068 737.67 484.422ZM785.069 369.347C822.535 315.258 850.146 230.264 840.908 165.239C822.638 205.458 809.952 245.369 800.122 287.647C793.818 314.846 787.591 340.836 785.069 369.347ZM749.61 376.707C760.469 303.524 774.982 239.785 801.229 172.855C747.654 221.695 730.697 308.953 749.61 376.707Z" fill="white"/>
|
||||
<path d="M687.698 1194.71C673.262 1190.95 661.528 1184.83 650.412 1176.54C621.334 1154.77 618.092 1120.73 624.68 1086.94C635.024 1034.01 652.882 983.577 678.666 936.359C683.89 926.76 689.654 918.964 696.447 910.601C723.131 877.638 771.019 872.517 804.239 899.201C814.249 907.255 821.815 916.879 828.428 928.304C858.097 979.563 879.584 1034.3 893.196 1092.01C895.383 1101.25 895.589 1110.1 895.589 1119.44C895.615 1157.45 871.607 1181.95 836.482 1192.42C788.08 1206.83 737.464 1207.6 687.698 1194.71Z" fill="white"/>
|
||||
<path d="M491.078 1034.73L438.172 1034.86C422.785 1034.91 410.948 1022.59 410.948 1007.18L411.025 872.518C411.025 858.597 422.862 846.323 436.757 846.271L490.255 846.143C503.455 846.117 516.63 857.156 516.63 871.154V1010.01C516.63 1023.15 504.15 1034.71 491.078 1034.73Z" fill="white"/>
|
||||
<path d="M1077.95 1034.71L1023.53 1034.48C1009.87 1034.43 997.721 1022.72 997.721 1008.69L997.798 871.232C997.798 857.105 1010.28 847.609 1023.02 845.988L1076.46 846.117C1089.69 846.143 1102.94 857.105 1102.94 871.154V1009.93C1102.97 1023.62 1090.77 1033.14 1077.95 1034.71Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.0 KiB |
@@ -0,0 +1,5 @@
|
||||
<svg width="24" height="24" viewBox="0 0 195 195" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M25 97.8528L92.8823 29.9706C102.255 20.598 117.451 20.598 126.823 29.9706V29.9706C136.196 39.3431 136.196 54.5391 126.823 63.9117L75.5581 115.177" stroke="black" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M76.2653 114.47L126.823 63.9117C136.196 54.5391 151.392 54.5391 160.765 63.9117L161.118 64.2652C170.491 73.6378 170.491 88.8338 161.118 98.2063L99.7248 159.6C96.6006 162.724 96.6006 167.789 99.7248 170.913L112.331 183.52" stroke="black" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M109.853 46.9411L59.6482 97.1457C50.2757 106.518 50.2757 121.714 59.6482 131.087V131.087C69.0208 140.459 84.2168 140.459 93.5894 131.087L143.794 80.8822" stroke="black" stroke-width="12" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 829 B |
@@ -0,0 +1,5 @@
|
||||
<svg width="24" height="24" viewBox="0 0 195 195" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M25 97.8528L92.8823 29.9706C102.255 20.598 117.451 20.598 126.823 29.9706V29.9706C136.196 39.3431 136.196 54.5391 126.823 63.9117L75.5581 115.177" stroke="white" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M76.2653 114.47L126.823 63.9117C136.196 54.5391 151.392 54.5391 160.765 63.9117L161.118 64.2652C170.491 73.6378 170.491 88.8338 161.118 98.2063L99.7248 159.6C96.6006 162.724 96.6006 167.789 99.7248 170.913L112.331 183.52" stroke="white" stroke-width="12" stroke-linecap="round"/>
|
||||
<path d="M109.853 46.9411L59.6482 97.1457C50.2757 106.518 50.2757 121.714 59.6482 131.087V131.087C69.0208 140.459 84.2168 140.459 93.5894 131.087L143.794 80.8822" stroke="white" stroke-width="12" stroke-linecap="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 829 B |
@@ -0,0 +1,108 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import { SiOpenai, SiAnthropic, SiMarkdown, SiGithub } from 'react-icons/si';
|
||||
|
||||
interface DocActionsMenuProps {
|
||||
pageUrl: string;
|
||||
pageTitle: string;
|
||||
filePath?: string;
|
||||
}
|
||||
|
||||
export function DocActionsMenu({ pageUrl, pageTitle, filePath }: DocActionsMenuProps) {
|
||||
const [copied, setCopied] = useState(false);
|
||||
|
||||
const handleCopyMarkdown = async () => {
|
||||
try {
|
||||
if (!filePath) {
|
||||
throw new Error('No file path available');
|
||||
}
|
||||
const githubRawUrl = `https://raw.githubusercontent.com/trycua/cua/refs/heads/main/docs/content/docs/${filePath}`;
|
||||
|
||||
const response = await fetch(githubRawUrl);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch markdown');
|
||||
}
|
||||
const markdown = await response.text();
|
||||
|
||||
await navigator.clipboard.writeText(markdown);
|
||||
|
||||
setCopied(true);
|
||||
setTimeout(() => setCopied(false), 2000);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error copying markdown:', error);
|
||||
|
||||
try {
|
||||
const urlWithUtm = `https://cua.ai${pageUrl}?utm_source=cua.ai/docs`;
|
||||
await navigator.clipboard.writeText(urlWithUtm);
|
||||
setCopied(true);
|
||||
setTimeout(() => setCopied(false), 2000);
|
||||
} catch (fallbackError) {
|
||||
console.error('Error copying URL:', fallbackError);
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
const handleEditGithub = () => {
|
||||
if (!filePath) {
|
||||
return;
|
||||
}
|
||||
|
||||
const githubEditUrl = `https://github.com/trycua/cua/edit/main/docs/content/docs/${filePath}`;
|
||||
window.open(githubEditUrl, '_blank', 'noopener,noreferrer');
|
||||
};
|
||||
|
||||
const handleOpenChatGPT = () => {
|
||||
|
||||
const docUrl = `https://cua.ai${pageUrl}?utm_source=cua.ai/docs`;
|
||||
const prompt = `I need help understanding this cua.ai documentation page: "${pageTitle}". Please read and help me with: ${docUrl}`;
|
||||
const chatgptUrl = `https://chatgpt.com/?q=${encodeURIComponent(prompt)}`;
|
||||
window.open(chatgptUrl, '_blank', 'noopener,noreferrer');
|
||||
};
|
||||
|
||||
const handleOpenClaude = () => {
|
||||
|
||||
const docUrl = `https://cua.ai${pageUrl}?utm_source=cua.ai/docs`;
|
||||
const prompt = `I need help understanding this cua.ai documentation page: "${pageTitle}". Please read and help me with: ${docUrl}`;
|
||||
const claudeUrl = `https://claude.ai/new?q=${encodeURIComponent(prompt)}`;
|
||||
window.open(claudeUrl, '_blank', 'noopener,noreferrer');
|
||||
};
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-2">
|
||||
<button
|
||||
onClick={handleCopyMarkdown}
|
||||
className="inline-flex gap-3 w-full items-center rounded-md p-1 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground text-left transition-colors px-2 hover:cursor-pointer"
|
||||
>
|
||||
<SiMarkdown className="w-2 h-4 flex-shrink-0" />
|
||||
<span>{copied ? 'Copied!' : 'Copy as markdown'}</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={handleEditGithub}
|
||||
className="inline-flex gap-3 w-full items-center rounded-md p-1 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground text-left transition-colors px-2 hover:cursor-pointer"
|
||||
>
|
||||
<SiGithub className="w-4 h-4 flex-shrink-0" />
|
||||
<span>Edit on GitHub</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={handleOpenChatGPT}
|
||||
className="inline-flex gap-3 w-full items-center rounded-md p-1 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground text-left transition-colors px-2 hover:cursor-pointer"
|
||||
>
|
||||
<SiOpenai className="w-4 h-4 flex-shrink-0" />
|
||||
<span>Open in ChatGPT</span>
|
||||
</button>
|
||||
|
||||
<button
|
||||
onClick={handleOpenClaude}
|
||||
className="inline-flex gap-3 w-full items-center rounded-md p-1 text-sm hover:bg-fd-accent hover:text-fd-accent-foreground text-left transition-colors px-2 hover:cursor-pointer"
|
||||
>
|
||||
<SiAnthropic className="w-4 h-4 flex-shrink-0" />
|
||||
<span>Open in Claude</span>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
import { docs } from '@/.source';
|
||||
import { loader } from 'fumadocs-core/source';
|
||||
import { icons } from 'lucide-react';
|
||||
import { createElement } from 'react';
|
||||
|
||||
import fs from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
|
||||
// Custom brand icons (not available in Lucide)
|
||||
const brandIcons: Record<string, () => React.ReactElement> = {
|
||||
github: () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '0 0 24 24',
|
||||
fill: 'currentColor',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
d: 'M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z',
|
||||
})
|
||||
),
|
||||
discord: () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '0 0 24 24',
|
||||
fill: 'currentColor',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
d: 'M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z',
|
||||
})
|
||||
),
|
||||
'claude-code': () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '0 0 24 24',
|
||||
fill: '#D97757',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
d: 'M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z',
|
||||
fillRule: 'nonzero',
|
||||
})
|
||||
),
|
||||
laminar: () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '0 16 76 76',
|
||||
fill: 'currentColor',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
fillRule: 'evenodd',
|
||||
clipRule: 'evenodd',
|
||||
d: 'M0.653968 84.1461C0.0802819 85.9866 0.00220402 88.0862 1.32507 89.4885C2.78376 91.0347 4.85185 91.9999 7.14535 91.9999H37.1454C58.1322 91.9999 75.1454 74.9867 75.1454 53.9999C75.1454 33.013 58.1322 15.9999 37.1454 15.9999H7.14535C4.56777 15.9999 2.27491 17.2189 0.811824 19.1119C-0.266346 20.5068-0.129499 22.4002 0.408998 24.079C3.48464 33.6675 5.14534 43.8898 5.14534 54.4999C5.14534 64.8247 3.57273 74.7823 0.653968 84.1461Z',
|
||||
})
|
||||
),
|
||||
hud: () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '140 320 750 350',
|
||||
fill: 'currentColor',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
d: 'M153.488 660.583V634.232H177.478V386.173L147.604 372.544V353.917L232.247 332.109H248.995V476.129L249.9 476.583C269.364 451.141 291.543 432.06 324.586 432.06C362.608 432.06 388.408 461.136 388.408 506.568V634.232H408.325V660.583H298.333V634.232H316.891V502.025C316.891 484.307 310.102 479.763 294.712 479.763C278.417 479.763 263.027 484.761 248.995 495.21V634.232H267.553V660.583H153.488Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M467.193 664.217C428.719 664.217 403.371 635.595 403.371 589.709V465.68H378.928V439.329H474.888V598.795C474.888 616.06 481.678 621.057 496.615 621.057C514.268 621.057 527.847 612.879 542.784 601.067V465.68H516.984V439.329H614.301V618.785L642.818 631.052V648.771L562.248 662.854H545.953V618.331L545.047 617.877C523.773 644.227 500.688 664.217 467.193 664.217Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M716.334 664.217C666.996 664.217 623.995 623.329 623.995 546.549C623.995 470.223 674.691 432.06 726.292 432.06C752.092 432.06 771.103 442.509 785.588 457.956V386.173L753.903 372.544V353.917L839.905 332.109H856.653V618.785L885.622 631.052V648.771L805.051 662.854H788.304V621.057L787.398 620.603C768.388 647.408 747.566 664.217 716.334 664.217ZM739.419 630.143C759.335 630.143 773.819 614.697 785.588 599.25V481.126C774.725 472.949 762.503 467.042 746.208 467.042C732.629 467.042 723.123 472.04 716.786 479.763C708.639 489.758 704.113 515.655 704.113 551.546C704.113 589.255 709.092 612.879 717.239 621.511C723.576 627.872 730.366 630.143 739.419 630.143Z',
|
||||
})
|
||||
),
|
||||
yutori: () =>
|
||||
createElement(
|
||||
'svg',
|
||||
{
|
||||
viewBox: '0 0 64 16',
|
||||
fill: 'currentColor',
|
||||
className: 'w-4 h-4',
|
||||
},
|
||||
createElement('path', {
|
||||
d: 'M60.4103 3.57025C59.896 3.57025 59.4699 3.40129 59.132 3.06336C58.7941 2.72544 58.6251 2.29936 58.6251 1.78512C58.6251 1.27089 58.7941 0.844812 59.132 0.506887C59.4699 0.168963 59.896 0 60.4103 0C60.9245 0 61.3506 0.168963 61.6885 0.506887C62.0264 0.844812 62.1954 1.27089 62.1954 1.78512C62.1954 2.29936 62.0264 2.72544 61.6885 3.06336C61.3506 3.40129 60.9245 3.57025 60.4103 3.57025ZM56.9502 15.7796V15.427L58.4709 14.7218V7.93388L57.0163 6.98623V6.63361L62.0852 5.42149H62.4378V14.7218L63.694 15.427V15.7796H56.9502Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M46.9587 15.78V15.4274L48.4794 14.7222V8.15466L47.0249 7.207V6.85438L51.8733 5.42188H52.226L52.4243 7.47146H52.5345C52.9165 6.89846 53.2471 6.46503 53.5262 6.17119C53.8054 5.87734 54.0625 5.67899 54.2976 5.57614C54.5474 5.4733 54.8265 5.42188 55.135 5.42188C55.2673 5.42188 55.4069 5.43657 55.5538 5.46595C55.7007 5.49534 55.8403 5.53207 55.9725 5.57614C56.2223 5.64961 56.3912 5.74511 56.4794 5.86265C56.5822 5.96549 56.6337 6.08303 56.6337 6.21526C56.6337 6.31811 56.6116 6.43565 56.5676 6.56788L55.9725 8.24281H55.8182L55.4216 8.11058C55.1718 8.02243 54.9514 7.96366 54.7604 7.93427C54.5841 7.89019 54.3564 7.86816 54.0772 7.86816C53.754 7.86816 53.4528 7.94896 53.1736 8.11058C52.8945 8.2575 52.652 8.4485 52.4463 8.68358V14.7222L54.3637 15.4274V15.78H46.9587Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M40.8815 16.0004C39.7943 16.0004 38.8319 15.758 37.9945 15.2731C37.157 14.7736 36.5032 14.1271 36.0331 13.3337C35.5776 12.5256 35.3499 11.6514 35.3499 10.7111C35.3499 9.77082 35.5776 8.89662 36.0331 8.08854C36.5032 7.28046 37.157 6.634 37.9945 6.14915C38.8319 5.6643 39.7943 5.42188 40.8815 5.42188C41.9688 5.42188 42.9311 5.6643 43.7686 6.14915C44.6061 6.634 45.2525 7.28046 45.708 8.08854C46.1781 8.89662 46.4132 9.77082 46.4132 10.7111C46.4132 11.6514 46.1781 12.5256 45.708 13.3337C45.2525 14.1271 44.6061 14.7736 43.7686 15.2731C42.9311 15.758 41.9688 16.0004 40.8815 16.0004ZM41.0799 14.8323C41.3884 14.8323 41.6455 14.6634 41.8512 14.3255C42.0569 13.9875 42.2038 13.5468 42.292 13.0031C42.3948 12.4448 42.4463 11.8278 42.4463 11.1519C42.4463 10.3291 42.3875 9.57247 42.27 8.88193C42.1524 8.19139 41.9614 7.63308 41.697 7.207C41.4472 6.78092 41.124 6.56788 40.7273 6.56788C40.3893 6.56788 40.1175 6.73684 39.9118 7.07477C39.7061 7.398 39.5519 7.83877 39.449 8.39708C39.3609 8.9407 39.3168 9.55778 39.3168 10.2483C39.3168 11.0564 39.3756 11.8131 39.4931 12.5183C39.6253 13.2088 39.8163 13.7671 40.0661 14.1932C40.3306 14.6193 40.6685 14.8323 41.0799 14.8323Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M31.9897 16.0001C30.9318 16.0001 30.0797 15.8091 29.4332 15.4271C28.7867 15.0451 28.4635 14.5089 28.4635 13.8183V6.61171H27.031V6.19298L29.1687 5.64202L31.7913 3.21777H32.4305V5.64202H35.5599V6.61171H32.4305V13.1351C32.4305 13.5171 32.5847 13.7963 32.8933 13.9726C33.2165 14.1489 33.5912 14.2371 34.0172 14.2371C34.2817 14.2371 34.5094 14.2224 34.7004 14.193C34.9061 14.1636 35.1192 14.1269 35.3395 14.0828L35.4057 14.1269V14.6117C35.1118 14.979 34.6343 15.3023 33.9732 15.5814C33.3267 15.8606 32.6655 16.0001 31.9897 16.0001Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M18.6262 15.9997C17.73 15.9997 16.9953 15.7647 16.4223 15.2945C15.864 14.8243 15.5849 14.1264 15.5849 13.2008V6.69945L14.0642 5.99422V5.6416H19.5518V12.3854C19.5518 12.8115 19.662 13.1421 19.8824 13.3771C20.1028 13.5975 20.3819 13.7077 20.7199 13.7077C20.9109 13.7077 21.1092 13.6636 21.3149 13.5755C21.5353 13.4873 21.7336 13.3845 21.9099 13.2669V6.69945L20.7199 5.99422V5.6416H25.8769V14.7215L27.1331 15.4267V15.7793H21.9099V14.3689H21.8218C21.3369 14.8537 20.8594 15.2504 20.3893 15.559C19.9191 15.8528 19.3314 15.9997 18.6262 15.9997Z',
|
||||
}),
|
||||
createElement('path', {
|
||||
d: 'M4.69158 15.7798V15.4272L6.65302 14.5016V8.99195L1.89269 2.51261L0.305908 1.58699V1.23438H8.08552V1.58699L6.38855 2.4465V2.53465L10.1571 7.60352L13.529 2.57873V2.49057L11.766 1.58699V1.23438H17.0111V1.58699L15.4905 2.31427L10.8403 8.99195V14.5016L12.8018 15.4272V15.7798H4.69158Z',
|
||||
})
|
||||
),
|
||||
};
|
||||
|
||||
// Icon resolver
|
||||
function iconResolver(icon: string | undefined) {
|
||||
if (!icon) return;
|
||||
// Check brand icons first (github, discord, etc.)
|
||||
if (icon in brandIcons) return brandIcons[icon]();
|
||||
// Fall back to Lucide icons
|
||||
if (icon in icons) return createElement(icons[icon as keyof typeof icons]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns available API doc versions for a given section (e.g., 'agent').
|
||||
* Each version is an object: { label, slug }
|
||||
* - 'Current' (index.mdx) → slug: []
|
||||
* - '[version].mdx' → slug: [version]
|
||||
*/
|
||||
export async function getApiVersions(
|
||||
section: string
|
||||
): Promise<{ label: string; slug: string[] }[]> {
|
||||
const dir = path.join(process.cwd(), 'content/docs/api', section);
|
||||
let files: string[] = [];
|
||||
try {
|
||||
files = (await fs.readdir(dir)).filter((f) => f.endsWith('.mdx'));
|
||||
} catch (_e) {
|
||||
return [];
|
||||
}
|
||||
const versions = files.map((file) => {
|
||||
if (file === 'index.mdx') {
|
||||
return { label: 'Current', slug: [] };
|
||||
}
|
||||
const version = file.replace(/\.mdx$/, '');
|
||||
return { label: version, slug: [version] };
|
||||
});
|
||||
// Always put 'Current' first, then others sorted descending (semver-ish)
|
||||
return [
|
||||
...versions.filter((v) => v.label === 'Current'),
|
||||
...versions
|
||||
.filter((v) => v.label !== 'Current')
|
||||
.sort((a, b) => b.label.localeCompare(a.label, undefined, { numeric: true })),
|
||||
];
|
||||
}
|
||||
|
||||
// Single docs source
|
||||
export const source = loader({
|
||||
baseUrl: '/',
|
||||
source: docs.toFumadocsSource(),
|
||||
icon: iconResolver,
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
import defaultMdxComponents from 'fumadocs-ui/mdx';
|
||||
import * as TabsComponents from 'fumadocs-ui/components/tabs';
|
||||
import type { MDXComponents } from 'mdx/types';
|
||||
|
||||
// Local MDX preview: fumadocs defaults + Tabs (the only custom component the
|
||||
// content uses). Hero/IOU/Mermaid/editable-code-block were unused by any page.
|
||||
export function getMDXComponents(components?: MDXComponents): MDXComponents {
|
||||
return {
|
||||
...defaultMdxComponents,
|
||||
...TabsComponents,
|
||||
...components,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
import { NextResponse } from 'next/server';
|
||||
import type { NextRequest } from 'next/server';
|
||||
|
||||
// Redirect section roots to their first content page
|
||||
// These paths don't include basePath because middleware receives paths without it
|
||||
const redirects: Record<string, string> = {
|
||||
'/': '/docs/cua/guide/get-started/what-is-cua',
|
||||
'/cua': '/docs/cua/guide/get-started/what-is-cua',
|
||||
'/cua/guide': '/docs/cua/guide/get-started/what-is-cua',
|
||||
'/cua/examples': '/docs/cua/examples/automation/form-filling',
|
||||
'/cua/reference': '/docs/cua/reference/computer-sdk',
|
||||
'/cua-driver': '/docs/cua-driver/guide/getting-started/introduction',
|
||||
'/cua-driver/guide': '/docs/cua-driver/guide/getting-started/introduction',
|
||||
'/cua-driver/reference': '/docs/cua-driver/reference/cli-reference',
|
||||
'/cuabench': '/docs/cuabench/guide/getting-started/introduction',
|
||||
'/cuabench/guide': '/docs/cuabench/guide/getting-started/introduction',
|
||||
'/cuabench/reference': '/docs/cuabench/reference/cli-reference',
|
||||
'/lume': '/docs/lume/guide/getting-started/introduction',
|
||||
'/lume/guide': '/docs/lume/guide/getting-started/introduction',
|
||||
'/lume/examples': '/docs/lume/examples/claude-code/sandbox',
|
||||
'/lume/reference': '/docs/lume/reference/cli-reference',
|
||||
// Legacy redirects for old URLs without /cua prefix
|
||||
'/guide': '/docs/cua/guide/get-started/what-is-cua',
|
||||
'/examples': '/docs/cua/examples/automation/form-filling',
|
||||
'/reference': '/docs/cua/reference/computer-sdk',
|
||||
};
|
||||
|
||||
export function middleware(request: NextRequest) {
|
||||
const { pathname } = request.nextUrl;
|
||||
|
||||
// Handle section root redirects
|
||||
if (redirects[pathname]) {
|
||||
return NextResponse.redirect(new URL(redirects[pathname], request.url));
|
||||
}
|
||||
|
||||
const requestHeaders = new Headers(request.headers);
|
||||
requestHeaders.set('x-pathname', pathname);
|
||||
|
||||
return NextResponse.next({
|
||||
request: {
|
||||
headers: requestHeaders,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export const config = {
|
||||
matcher: [
|
||||
// Match all paths except static files
|
||||
'/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
|
||||
],
|
||||
};
|
||||