mirror of
https://github.com/hanzo-docs/docs.git
synced 2026-10-26 23:49:51 +00:00
UI: Pass props to replaced components via Slot
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
---
|
||||
'fumadocs-mdx': major
|
||||
---
|
||||
|
||||
**Require Fumadocs v14**
|
||||
@@ -56,7 +56,7 @@
|
||||
"@next/bundle-analyzer": "15.0.0",
|
||||
"@next/eslint-plugin-next": "15.0.0",
|
||||
"@types/mdx": "^2.0.13",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/cross-spawn": "^6.0.6",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"fast-glob": "^3.3.1",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
"devDependencies": {
|
||||
"@content-collections/core": "^0.7.2",
|
||||
"@content-collections/mdx": "^0.1.6",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"fumadocs-core": "workspace:*",
|
||||
"tsconfig": "workspace:*",
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
"@types/hast": "^3.0.4",
|
||||
"@types/mdast": "^4.0.3",
|
||||
"@types/negotiator": "^0.6.3",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"algoliasearch": "4.24.0",
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
"@content-collections/mdx": "^0.1.6",
|
||||
"@content-collections/next": "^0.2.3",
|
||||
"@types/mdx": "^2.0.13",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/cross-spawn": "^6.0.6",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"fast-glob": "^3.3.1",
|
||||
"tsconfig": "workspace:*"
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
"@types/estree": "^1.0.6",
|
||||
"@types/hast": "^3.0.4",
|
||||
"@types/mdast": "^4.0.3",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"remark": "^15.0.0",
|
||||
"tsconfig": "workspace:*",
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"devDependencies": {
|
||||
"@types/mdx": "^2.0.13",
|
||||
"@types/micromatch": "^4.0.9",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/ws": "^8.5.12",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"webpack": "^5.95.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"fumadocs-core": "^13.2.1 || ^14.0.0",
|
||||
"fumadocs-core": "^14.0.0",
|
||||
"next": "14.x.x || 15.x.x"
|
||||
},
|
||||
"publishConfig": {
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/js-yaml": "^4.0.9",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/openapi-sampler": "^1.0.3",
|
||||
"@types/react": "^18.3.11",
|
||||
"bunchee": "^5.5.1",
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
"devDependencies": {
|
||||
"@types/hast": "^3.0.4",
|
||||
"@types/mdast": "^4.0.3",
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"@types/react": "^18.3.11",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"fumadocs-ui": "workspace:*",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"types:check": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/node": "22.7.7",
|
||||
"@types/node": "22.7.8",
|
||||
"fast-glob": "^3.3.1",
|
||||
"hast-util-to-jsx-runtime": "^2.3.2",
|
||||
"mdast-util-from-markdown": "^2.0.1",
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
"@radix-ui/react-navigation-menu": "^1.2.1",
|
||||
"@radix-ui/react-popover": "^1.1.2",
|
||||
"@radix-ui/react-scroll-area": "^1.2.0",
|
||||
"@radix-ui/react-slot": "^1.1.0",
|
||||
"@radix-ui/react-tabs": "^1.1.1",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
@@ -103,7 +104,7 @@
|
||||
"optionalDependencies": {
|
||||
"@algolia/client-search": "^4.0.0",
|
||||
"algoliasearch": "^4.24.0",
|
||||
"tailwindcss": "3.4.14"
|
||||
"tailwindcss": "^3.4.14"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
||||
@@ -81,7 +81,7 @@ export const Sidebar = memo(
|
||||
...props
|
||||
}: SidebarProps & {
|
||||
aside?: HTMLAttributes<HTMLElement> & Record<string, unknown>;
|
||||
}): React.ReactElement => {
|
||||
}) => {
|
||||
const search = useSearchContext();
|
||||
const hasSearch = search.enabled && !props.hideSearch;
|
||||
const context = useMemo<InternalContext>(
|
||||
|
||||
+147
-110
@@ -1,5 +1,5 @@
|
||||
import type { PageTree } from 'fumadocs-core/server';
|
||||
import { type ReactNode, type HTMLAttributes, Fragment } from 'react';
|
||||
import { type ReactNode, type HTMLAttributes } from 'react';
|
||||
import Link from 'next/link';
|
||||
import { Languages, MoreHorizontal } from 'lucide-react';
|
||||
import { notFound } from 'next/navigation';
|
||||
@@ -7,8 +7,8 @@ import dynamic from 'next/dynamic';
|
||||
import { cn } from '@/utils/cn';
|
||||
import { buttonVariants } from '@/components/ui/button';
|
||||
import type { SidebarProps } from '@/components/layout/sidebar';
|
||||
import { replaceOrDefault } from '@/layouts/shared';
|
||||
import type { LinkItemType } from '@/layouts/links';
|
||||
import { replaceOrDefault, type SharedNavProps } from '@/layouts/shared';
|
||||
import type { LinkItemType, IconItem as IconItemType } from '@/layouts/links';
|
||||
import { getSidebarTabs, type TabOptions } from '@/utils/get-sidebar-tabs';
|
||||
import type { Option } from '@/components/layout/root-toggle';
|
||||
import { type BaseLayoutProps, getLinks } from './shared';
|
||||
@@ -32,8 +32,6 @@ const DynamicSidebar = dynamic(
|
||||
() => import('@/components/layout/dynamic-sidebar'),
|
||||
);
|
||||
|
||||
export type { LinkItemType };
|
||||
|
||||
interface SidebarOptions extends Omit<SidebarProps, 'children'> {
|
||||
enabled: boolean;
|
||||
component: ReactNode;
|
||||
@@ -54,7 +52,12 @@ export interface DocsLayoutProps extends BaseLayoutProps {
|
||||
}
|
||||
|
||||
export function DocsLayout({
|
||||
nav: { transparentMode, ...nav } = {},
|
||||
nav: {
|
||||
enabled: navEnabled = true,
|
||||
component: navReplace,
|
||||
transparentMode,
|
||||
...nav
|
||||
} = {},
|
||||
sidebar: {
|
||||
enabled: sidebarEnabled = true,
|
||||
collapsible = true,
|
||||
@@ -67,127 +70,61 @@ export function DocsLayout({
|
||||
}: DocsLayoutProps): ReactNode {
|
||||
const links = getLinks(props.links ?? [], props.githubUrl);
|
||||
const Aside = collapsible ? DynamicSidebar : Sidebar;
|
||||
|
||||
if (props.tree === undefined) notFound();
|
||||
|
||||
const header: ReactNode[] = [];
|
||||
const footer: ReactNode[] = [];
|
||||
|
||||
if (nav.title)
|
||||
header.push(
|
||||
<Link
|
||||
key="title"
|
||||
href={nav.url ?? '/'}
|
||||
className="inline-flex items-center gap-2.5 py-1 font-medium"
|
||||
>
|
||||
{nav.title}
|
||||
</Link>,
|
||||
);
|
||||
|
||||
if (nav.children)
|
||||
header.push(<Fragment key="children">{nav.children}</Fragment>);
|
||||
|
||||
if (links.length > 0)
|
||||
header.push(
|
||||
<LinksMenu
|
||||
key="links"
|
||||
items={links.map((item, i) => (
|
||||
<MenuItem key={i} item={item} />
|
||||
))}
|
||||
className={cn(
|
||||
buttonVariants({
|
||||
size: 'icon',
|
||||
color: 'ghost',
|
||||
className: 'ms-auto',
|
||||
}),
|
||||
)}
|
||||
>
|
||||
<MoreHorizontal />
|
||||
</LinksMenu>,
|
||||
);
|
||||
|
||||
const iconLinks = links.filter((v) => v.type === 'icon');
|
||||
if (iconLinks.length > 0) {
|
||||
footer.push(
|
||||
<div key="links" className="flex flex-row items-center md:hidden">
|
||||
{iconLinks.map((item, i) => (
|
||||
<IconItem key={i} item={item} className="text-fd-muted-foreground" />
|
||||
))}
|
||||
</div>,
|
||||
);
|
||||
}
|
||||
|
||||
if (!props.disableThemeSwitch) {
|
||||
footer.push(
|
||||
<ThemeToggle
|
||||
key="theme"
|
||||
className={cn('md:me-auto', !i18n && 'max-md:ms-auto')}
|
||||
/>,
|
||||
);
|
||||
}
|
||||
|
||||
if (i18n) {
|
||||
footer.push(
|
||||
<LanguageToggle key="i18n" className="max-md:order-first max-md:me-auto">
|
||||
<Languages className="size-5" />
|
||||
<LanguageToggleText className="md:hidden" />
|
||||
</LanguageToggle>,
|
||||
);
|
||||
}
|
||||
|
||||
if (collapsible) {
|
||||
footer.push(
|
||||
<SidebarCollapseTrigger key="sidebar" className="max-md:hidden" />,
|
||||
);
|
||||
}
|
||||
|
||||
let tabs: Option[] = [];
|
||||
if (Array.isArray(tabOptions)) tabs = tabOptions;
|
||||
else if (typeof tabOptions === 'object')
|
||||
if (Array.isArray(tabOptions)) {
|
||||
tabs = tabOptions;
|
||||
} else if (typeof tabOptions === 'object') {
|
||||
tabs = getSidebarTabs(props.tree, tabOptions);
|
||||
else if (tabOptions !== false) tabs = getSidebarTabs(props.tree);
|
||||
} else if (tabOptions !== false) {
|
||||
tabs = getSidebarTabs(props.tree);
|
||||
}
|
||||
|
||||
const banner = (
|
||||
<div className="flex flex-col gap-1 px-4 empty:hidden md:px-3 md:pb-2">
|
||||
<SidebarHeader {...nav} links={links} />
|
||||
{tabs.length > 0 ? <RootToggle className="-mx-1" options={tabs} /> : null}
|
||||
{sidebar.banner}
|
||||
</div>
|
||||
);
|
||||
|
||||
const footer = (
|
||||
<>
|
||||
<div className="flex flex-row items-center border-t py-1 empty:hidden max-md:gap-1.5 max-md:px-3 md:mx-3">
|
||||
<SidebarFooter
|
||||
sidebarCollapsible={collapsible}
|
||||
i18n={i18n}
|
||||
disableThemeSwitch={props.disableThemeSwitch ?? false}
|
||||
iconItems={links.filter((v) => v.type === 'icon')}
|
||||
/>
|
||||
</div>
|
||||
{sidebar.footer}
|
||||
</>
|
||||
);
|
||||
|
||||
return (
|
||||
<TreeContextProvider tree={props.tree}>
|
||||
<NavProvider transparentMode={transparentMode}>
|
||||
{replaceOrDefault(nav, <SubNav className="h-14 md:hidden" {...nav} />)}
|
||||
{replaceOrDefault(
|
||||
{ enabled: navEnabled, component: navReplace },
|
||||
<SubNav className="h-14 md:hidden" {...nav} />,
|
||||
nav,
|
||||
)}
|
||||
<main
|
||||
id="nd-docs-layout"
|
||||
{...props.containerProps}
|
||||
className={cn(
|
||||
'flex flex-1 flex-row',
|
||||
!nav.component &&
|
||||
nav.enabled !== false &&
|
||||
'[--fd-nav-height:3.5rem] md:[--fd-nav-height:0px]',
|
||||
!navReplace && navEnabled
|
||||
? '[--fd-nav-height:3.5rem] md:[--fd-nav-height:0px]'
|
||||
: null,
|
||||
props.containerProps?.className,
|
||||
)}
|
||||
>
|
||||
{replaceOrDefault(
|
||||
{ enabled: sidebarEnabled, component: sidebarReplace },
|
||||
<Aside
|
||||
{...sidebar}
|
||||
banner={
|
||||
<div className="flex flex-col gap-1 px-4 empty:hidden md:px-3 md:pb-2">
|
||||
{header.length > 0 ? (
|
||||
<div className="flex flex-row items-center border-b pb-2 max-md:hidden">
|
||||
{header}
|
||||
</div>
|
||||
) : null}
|
||||
{tabs.length > 0 ? (
|
||||
<RootToggle className="-mx-1" options={tabs} />
|
||||
) : null}
|
||||
{sidebar.banner}
|
||||
</div>
|
||||
}
|
||||
footer={
|
||||
<>
|
||||
<div className="flex flex-row items-center border-t py-1 empty:hidden max-md:gap-1.5 max-md:px-3 md:mx-3">
|
||||
{footer}
|
||||
</div>
|
||||
{sidebar.footer}
|
||||
</>
|
||||
}
|
||||
>
|
||||
<Aside {...sidebar} banner={banner} footer={footer}>
|
||||
<div className="flex flex-col px-2 pt-4 empty:hidden md:hidden">
|
||||
{links
|
||||
.filter((v) => v.type !== 'icon')
|
||||
@@ -196,6 +133,11 @@ export function DocsLayout({
|
||||
))}
|
||||
</div>
|
||||
</Aside>,
|
||||
{
|
||||
...sidebar,
|
||||
banner,
|
||||
footer,
|
||||
},
|
||||
)}
|
||||
{props.children}
|
||||
</main>
|
||||
@@ -204,4 +146,99 @@ export function DocsLayout({
|
||||
);
|
||||
}
|
||||
|
||||
export { getSidebarTabs, type TabOptions };
|
||||
function SidebarHeader({
|
||||
links,
|
||||
...props
|
||||
}: SharedNavProps & { links: LinkItemType[] }): ReactNode {
|
||||
if (!props.title || !props.children || links.length === 0) return null;
|
||||
|
||||
return (
|
||||
<div className="flex flex-row items-center border-b pb-2 max-md:hidden">
|
||||
{props.title ? (
|
||||
<Link
|
||||
href={props.url ?? '/'}
|
||||
className="inline-flex items-center gap-2.5 py-1 font-medium"
|
||||
>
|
||||
{props.title}
|
||||
</Link>
|
||||
) : null}
|
||||
{props.children}
|
||||
{links.length > 0 ? (
|
||||
<LinksMenu
|
||||
items={links.map((item, i) => (
|
||||
<MenuItem key={i} item={item} />
|
||||
))}
|
||||
className={cn(
|
||||
buttonVariants({
|
||||
size: 'icon',
|
||||
color: 'ghost',
|
||||
}),
|
||||
'ms-auto',
|
||||
)}
|
||||
>
|
||||
<MoreHorizontal />
|
||||
</LinksMenu>
|
||||
) : null}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function SidebarFooter({
|
||||
iconItems,
|
||||
...props
|
||||
}: {
|
||||
i18n: boolean;
|
||||
iconItems: IconItemType[];
|
||||
disableThemeSwitch: boolean;
|
||||
sidebarCollapsible: boolean;
|
||||
}): ReactNode {
|
||||
if (props.i18n) {
|
||||
return (
|
||||
<>
|
||||
{iconItems.length > 0 ? (
|
||||
<div className="flex flex-row items-center md:hidden">
|
||||
{iconItems.map((item, i) => (
|
||||
<IconItem
|
||||
key={i}
|
||||
item={item}
|
||||
className="text-fd-muted-foreground"
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
) : null}
|
||||
{!props.disableThemeSwitch ? <ThemeToggle /> : null}
|
||||
<LanguageToggle className="max-md:order-first max-md:me-auto md:ms-auto">
|
||||
<Languages className="size-5" />
|
||||
<LanguageToggleText className="md:hidden" />
|
||||
</LanguageToggle>
|
||||
{props.sidebarCollapsible ? (
|
||||
<SidebarCollapseTrigger className="max-md:hidden" />
|
||||
) : null}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
{iconItems.length > 0 ? (
|
||||
<div className="flex flex-row items-center md:hidden">
|
||||
{iconItems.map((item, i) => (
|
||||
<IconItem
|
||||
key={i}
|
||||
item={item}
|
||||
className="text-fd-muted-foreground"
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
) : null}
|
||||
{!props.disableThemeSwitch ? (
|
||||
<ThemeToggle className="max-md:ms-auto" />
|
||||
) : null}
|
||||
{props.sidebarCollapsible ? (
|
||||
<SidebarCollapseTrigger className="ms-auto max-md:hidden" />
|
||||
) : null}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export { getSidebarTabs, type TabOptions, type LinkItemType };
|
||||
|
||||
@@ -41,6 +41,12 @@ export function HomeLayout({
|
||||
disableThemeSwitch={disableThemeSwitch}
|
||||
{...nav}
|
||||
/>,
|
||||
{
|
||||
items: finalLinks,
|
||||
i18n,
|
||||
disableThemeSwitch,
|
||||
...nav,
|
||||
},
|
||||
)}
|
||||
{props.children}
|
||||
</main>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { ReactNode } from 'react';
|
||||
import type { LinkItemType } from '@/layouts/links';
|
||||
import type { NavProviderProps, TitleProps } from '@/components/layout/nav';
|
||||
import { Slot } from '@radix-ui/react-slot';
|
||||
|
||||
interface NavOptions extends SharedNavProps {
|
||||
enabled: boolean;
|
||||
@@ -80,10 +81,12 @@ export function replaceOrDefault(
|
||||
}
|
||||
| undefined,
|
||||
def: ReactNode,
|
||||
customComponentProps?: object,
|
||||
disabled?: ReactNode,
|
||||
): ReactNode {
|
||||
if (obj?.enabled === false) return disabled;
|
||||
if (obj?.component !== undefined) return obj.component;
|
||||
if (obj?.component !== undefined)
|
||||
return <Slot {...customComponentProps}>{obj.component}</Slot>;
|
||||
|
||||
return def;
|
||||
}
|
||||
|
||||
+26
-15
@@ -80,15 +80,19 @@ export function DocsPage({
|
||||
breadcrumb = {},
|
||||
full = false,
|
||||
footer = {},
|
||||
tableOfContentPopover: {
|
||||
enabled: tocPopoverEnabled = true,
|
||||
component: tocPopoverReplace,
|
||||
...tocPopoverOptions
|
||||
} = {},
|
||||
tableOfContent: {
|
||||
// disable TOC on full mode, you can still enable it with `enabled` option.
|
||||
enabled: tocEnabled = !full,
|
||||
component: tocReplace,
|
||||
...tocOptions
|
||||
} = {},
|
||||
...props
|
||||
}: DocsPageProps): React.ReactElement {
|
||||
const tocPopoverOptions = props.tableOfContentPopover ?? {};
|
||||
const tocOptions = {
|
||||
// disable TOC on full mode, you can still enable it with `enabled` option.
|
||||
enabled: props.tableOfContent?.enabled ?? !full,
|
||||
...props.tableOfContent,
|
||||
};
|
||||
|
||||
return (
|
||||
<AnchorProvider toc={toc} single={tocOptions.single}>
|
||||
<div
|
||||
@@ -98,17 +102,16 @@ export function DocsPage({
|
||||
{
|
||||
'--fd-page-width':
|
||||
'calc(min(100vw, var(--fd-layout-width)) - var(--fd-sidebar-width) - var(--fd-toc-width))',
|
||||
'--fd-toc-width': tocOptions.enabled ? undefined : '0px',
|
||||
'--fd-toc-width': tocEnabled ? undefined : '0px',
|
||||
} as object
|
||||
}
|
||||
>
|
||||
{replaceOrDefault(
|
||||
tocPopoverOptions,
|
||||
{ enabled: tocPopoverEnabled, component: tocPopoverReplace },
|
||||
<TocPopover
|
||||
items={toc}
|
||||
header={tocPopoverOptions.header}
|
||||
footer={tocPopoverOptions.footer}
|
||||
className={cn(tocPopoverOptions.enabled !== true && 'lg:hidden')}
|
||||
{...tocPopoverOptions}
|
||||
className={cn(!tocPopoverEnabled && 'lg:hidden')}
|
||||
>
|
||||
{tocPopoverOptions.style === 'clerk' ? (
|
||||
<ClerkTOCItems items={toc} isMenu />
|
||||
@@ -116,11 +119,15 @@ export function DocsPage({
|
||||
<TOCItems items={toc} isMenu />
|
||||
)}
|
||||
</TocPopover>,
|
||||
{
|
||||
items: toc,
|
||||
...tocPopoverOptions,
|
||||
},
|
||||
)}
|
||||
<article
|
||||
className={cn(
|
||||
'mx-auto flex w-full flex-1 flex-col gap-6 px-4 pt-10 md:px-6 md:pt-12',
|
||||
tocOptions.enabled ? 'max-w-[860px]' : 'max-w-[1120px]',
|
||||
tocEnabled ? 'max-w-[860px]' : 'max-w-[1120px]',
|
||||
)}
|
||||
>
|
||||
{replaceOrDefault(breadcrumb, <Breadcrumb {...breadcrumb} />)}
|
||||
@@ -138,14 +145,18 @@ export function DocsPage({
|
||||
</article>
|
||||
</div>
|
||||
{replaceOrDefault(
|
||||
tocOptions,
|
||||
<Toc header={tocOptions.header} footer={tocOptions.footer}>
|
||||
{ enabled: tocEnabled, component: tocReplace },
|
||||
<Toc {...tocOptions}>
|
||||
{tocOptions.style === 'clerk' ? (
|
||||
<ClerkTOCItems items={toc} />
|
||||
) : (
|
||||
<TOCItems items={toc} />
|
||||
)}
|
||||
</Toc>,
|
||||
{
|
||||
items: toc,
|
||||
...tocOptions,
|
||||
},
|
||||
<div role="none" className="flex-1" />,
|
||||
)}
|
||||
</AnchorProvider>
|
||||
|
||||
Generated
+49
-46
@@ -52,7 +52,7 @@ importers:
|
||||
version: 8.11.0([email protected]([email protected]))([email protected])
|
||||
vitest:
|
||||
specifier: ^2.1.3
|
||||
version: 2.1.3(@types/[email protected].7)([email protected])([email protected])
|
||||
version: 2.1.3(@types/[email protected].8)([email protected])([email protected])
|
||||
|
||||
apps/docs:
|
||||
dependencies:
|
||||
@@ -178,8 +178,8 @@ importers:
|
||||
specifier: ^2.0.13
|
||||
version: 2.0.13
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -457,8 +457,8 @@ importers:
|
||||
specifier: ^6.0.6
|
||||
version: 6.0.6
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -484,8 +484,8 @@ importers:
|
||||
specifier: ^0.1.6
|
||||
version: 0.1.6(@content-collections/[email protected]([email protected]))([email protected])([email protected]([email protected]))([email protected])
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
eslint-config-custom:
|
||||
specifier: workspace:*
|
||||
version: link:../eslint-config-custom
|
||||
@@ -579,8 +579,8 @@ importers:
|
||||
specifier: ^0.6.3
|
||||
version: 0.6.3
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -625,8 +625,8 @@ importers:
|
||||
specifier: ^6.0.6
|
||||
version: 6.0.6
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
eslint-config-custom:
|
||||
specifier: workspace:*
|
||||
version: link:../eslint-config-custom
|
||||
@@ -652,8 +652,8 @@ importers:
|
||||
specifier: ^2.0.13
|
||||
version: 2.0.13
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -719,8 +719,8 @@ importers:
|
||||
specifier: ^4.0.3
|
||||
version: 4.0.4
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
eslint-config-custom:
|
||||
specifier: workspace:*
|
||||
version: link:../eslint-config-custom
|
||||
@@ -846,8 +846,8 @@ importers:
|
||||
specifier: ^4.0.9
|
||||
version: 4.0.9
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -934,8 +934,8 @@ importers:
|
||||
specifier: ^4.0.9
|
||||
version: 4.0.9
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/openapi-sampler':
|
||||
specifier: ^1.0.3
|
||||
version: 1.0.3
|
||||
@@ -994,8 +994,8 @@ importers:
|
||||
specifier: ^4.0.3
|
||||
version: 4.0.4
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
'@types/react':
|
||||
specifier: ^18.3.11
|
||||
version: 18.3.11
|
||||
@@ -1024,8 +1024,8 @@ importers:
|
||||
packages/typescript:
|
||||
dependencies:
|
||||
'@types/node':
|
||||
specifier: 22.7.7
|
||||
version: 22.7.7
|
||||
specifier: 22.7.8
|
||||
version: 22.7.8
|
||||
fast-glob:
|
||||
specifier: ^3.3.1
|
||||
version: 3.3.2
|
||||
@@ -1099,6 +1099,9 @@ importers:
|
||||
'@radix-ui/react-scroll-area':
|
||||
specifier: ^1.2.0
|
||||
version: 1.2.0(@types/[email protected])(@types/[email protected])([email protected]([email protected]))([email protected])
|
||||
'@radix-ui/react-slot':
|
||||
specifier: ^1.1.0
|
||||
version: 1.1.0(@types/[email protected])([email protected])
|
||||
'@radix-ui/react-tabs':
|
||||
specifier: ^1.1.1
|
||||
version: 1.1.1(@types/[email protected])(@types/[email protected])([email protected]([email protected]))([email protected])
|
||||
@@ -1137,7 +1140,7 @@ importers:
|
||||
specifier: ^4.24.0
|
||||
version: 4.24.0
|
||||
tailwindcss:
|
||||
specifier: 3.4.14
|
||||
specifier: ^3.4.14
|
||||
version: 3.4.14
|
||||
devDependencies:
|
||||
'@next/eslint-plugin-next':
|
||||
@@ -3045,11 +3048,11 @@ packages:
|
||||
'@types/[email protected]':
|
||||
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
|
||||
|
||||
'@types/[email protected]7':
|
||||
resolution: {integrity: sha512-I2ioBd/IPrYDMv9UNR5NlPElOZ68QB7yY5V2EsLtSrTO0LM0PnCEFF9biLWHf5k+sIy4ohueCV9t4gk1AEdlVA==}
|
||||
'@types/[email protected]8':
|
||||
resolution: {integrity: sha512-2ryJttbOAWCYuZMdk4rmZZ6oqE+GSL5LxbaTVe4PCs0FUrHObZZAQL4ihMw9/cH1Pn8lSQ9TXVhsM4LrnfZ0aA==}
|
||||
|
||||
'@types/[email protected].7':
|
||||
resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==}
|
||||
'@types/[email protected].8':
|
||||
resolution: {integrity: sha512-a922jJy31vqR5sk+kAdIENJjHblqcZ4RmERviFsER4WJcEONqxKcjNOlk0q7OUfrF5sddT+vng070cdfMlrPLg==}
|
||||
|
||||
'@types/[email protected]':
|
||||
resolution: {integrity: sha512-SwTm7ZahuDRKirbFSBu30X64mvdwITxS5yeC9JNV20Vp23Ymbl+hVdYxegkLDtYvXIxnUngJb8Ok+m3iEYfZiQ==}
|
||||
@@ -8218,7 +8221,7 @@ snapshots:
|
||||
|
||||
'@types/[email protected]':
|
||||
dependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
|
||||
'@types/[email protected]':
|
||||
dependencies:
|
||||
@@ -8265,16 +8268,16 @@ snapshots:
|
||||
|
||||
'@types/[email protected]':
|
||||
dependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
form-data: 4.0.1
|
||||
|
||||
'@types/[email protected]': {}
|
||||
|
||||
'@types/[email protected]7':
|
||||
'@types/[email protected]8':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/[email protected].7':
|
||||
'@types/[email protected].8':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
@@ -8301,7 +8304,7 @@ snapshots:
|
||||
|
||||
'@types/[email protected]':
|
||||
dependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
|
||||
'@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
|
||||
dependencies:
|
||||
@@ -8400,13 +8403,13 @@ snapshots:
|
||||
chai: 5.1.1
|
||||
tinyrainbow: 1.2.0
|
||||
|
||||
'@vitest/[email protected](@vitest/[email protected])([email protected](@types/[email protected].7)([email protected])([email protected]))':
|
||||
'@vitest/[email protected](@vitest/[email protected])([email protected](@types/[email protected].8)([email protected])([email protected]))':
|
||||
dependencies:
|
||||
'@vitest/spy': 2.1.3
|
||||
estree-walker: 3.0.3
|
||||
magic-string: 0.30.12
|
||||
optionalDependencies:
|
||||
vite: 5.4.9(@types/[email protected].7)([email protected])([email protected])
|
||||
vite: 5.4.9(@types/[email protected].8)([email protected])([email protected])
|
||||
|
||||
'@vitest/[email protected]':
|
||||
dependencies:
|
||||
@@ -10201,7 +10204,7 @@ snapshots:
|
||||
|
||||
[email protected]:
|
||||
dependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
merge-stream: 2.0.0
|
||||
supports-color: 8.1.1
|
||||
|
||||
@@ -11039,7 +11042,7 @@ snapshots:
|
||||
|
||||
[email protected]([email protected]):
|
||||
dependencies:
|
||||
'@types/node': 18.19.57
|
||||
'@types/node': 18.19.58
|
||||
'@types/node-fetch': 2.6.11
|
||||
abort-controller: 3.0.0
|
||||
agentkeepalive: 4.5.0
|
||||
@@ -12342,12 +12345,12 @@ snapshots:
|
||||
'@types/unist': 3.0.3
|
||||
vfile-message: 4.0.2
|
||||
|
||||
[email protected](@types/[email protected].7)([email protected])([email protected]):
|
||||
[email protected](@types/[email protected].8)([email protected])([email protected]):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.7
|
||||
pathe: 1.1.2
|
||||
vite: 5.4.9(@types/[email protected].7)([email protected])([email protected])
|
||||
vite: 5.4.9(@types/[email protected].8)([email protected])([email protected])
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@@ -12359,21 +12362,21 @@ snapshots:
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
[email protected](@types/[email protected].7)([email protected])([email protected]):
|
||||
[email protected](@types/[email protected].8)([email protected])([email protected]):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.47
|
||||
rollup: 4.24.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
fsevents: 2.3.3
|
||||
lightningcss: 1.27.0
|
||||
terser: 5.34.1
|
||||
|
||||
[email protected](@types/[email protected].7)([email protected])([email protected]):
|
||||
[email protected](@types/[email protected].8)([email protected])([email protected]):
|
||||
dependencies:
|
||||
'@vitest/expect': 2.1.3
|
||||
'@vitest/mocker': 2.1.3(@vitest/[email protected])([email protected](@types/[email protected].7)([email protected])([email protected]))
|
||||
'@vitest/mocker': 2.1.3(@vitest/[email protected])([email protected](@types/[email protected].8)([email protected])([email protected]))
|
||||
'@vitest/pretty-format': 2.1.3
|
||||
'@vitest/runner': 2.1.3
|
||||
'@vitest/snapshot': 2.1.3
|
||||
@@ -12388,11 +12391,11 @@ snapshots:
|
||||
tinyexec: 0.3.1
|
||||
tinypool: 1.0.1
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.4.9(@types/[email protected].7)([email protected])([email protected])
|
||||
vite-node: 2.1.3(@types/[email protected].7)([email protected])([email protected])
|
||||
vite: 5.4.9(@types/[email protected].8)([email protected])([email protected])
|
||||
vite-node: 2.1.3(@types/[email protected].8)([email protected])([email protected])
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.7.7
|
||||
'@types/node': 22.7.8
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- lightningcss
|
||||
|
||||
Reference in New Issue
Block a user