@fumadocs/base-ui 16.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/css/black.css +1 -0
- package/css/catppuccin.css +1 -0
- package/css/dusk.css +1 -0
- package/css/layouts/docs.css +1 -0
- package/css/layouts/home.css +1 -0
- package/css/layouts/notebook.css +1 -0
- package/css/neutral.css +1 -0
- package/css/ocean.css +1 -0
- package/css/preset.css +10 -0
- package/css/purple.css +1 -0
- package/css/shadcn.css +1 -0
- package/css/solar.css +1 -0
- package/css/style.css +9 -0
- package/css/vitepress.css +1 -0
- package/dist/components/accordion.d.ts +8 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +41 -0
- package/dist/components/banner.d.ts +24 -0
- package/dist/components/banner.d.ts.map +1 -0
- package/dist/components/banner.js +54 -0
- package/dist/components/callout.d.ts +19 -0
- package/dist/components/callout.d.ts.map +1 -0
- package/dist/components/callout.js +34 -0
- package/dist/components/card.d.ts +11 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +10 -0
- package/dist/components/codeblock.d.ts +42 -0
- package/dist/components/codeblock.d.ts.map +1 -0
- package/dist/components/codeblock.js +68 -0
- package/dist/components/dialog/search-algolia.d.ts +25 -0
- package/dist/components/dialog/search-algolia.d.ts.map +1 -0
- package/dist/components/dialog/search-algolia.js +35 -0
- package/dist/components/dialog/search-default.d.ts +29 -0
- package/dist/components/dialog/search-default.d.ts.map +1 -0
- package/dist/components/dialog/search-default.js +40 -0
- package/dist/components/dialog/search-orama.d.ts +30 -0
- package/dist/components/dialog/search-orama.d.ts.map +1 -0
- package/dist/components/dialog/search-orama.js +40 -0
- package/dist/components/dialog/search.d.ts +72 -0
- package/dist/components/dialog/search.d.ts.map +1 -0
- package/dist/components/dialog/search.js +192 -0
- package/dist/components/dynamic-codeblock.d.ts +21 -0
- package/dist/components/dynamic-codeblock.d.ts.map +1 -0
- package/dist/components/dynamic-codeblock.js +33 -0
- package/dist/components/files.d.ts +19 -0
- package/dist/components/files.d.ts.map +1 -0
- package/dist/components/files.js +18 -0
- package/dist/components/github-info.d.ts +8 -0
- package/dist/components/github-info.d.ts.map +1 -0
- package/dist/components/github-info.js +53 -0
- package/dist/components/heading.d.ts +8 -0
- package/dist/components/heading.d.ts.map +1 -0
- package/dist/components/heading.js +9 -0
- package/dist/components/image-zoom.css +77 -0
- package/dist/components/image-zoom.d.ts +16 -0
- package/dist/components/image-zoom.d.ts.map +1 -0
- package/dist/components/image-zoom.js +23 -0
- package/dist/components/inline-toc.d.ts +8 -0
- package/dist/components/inline-toc.d.ts.map +1 -0
- package/dist/components/inline-toc.js +10 -0
- package/dist/components/sidebar/base.d.ts +72 -0
- package/dist/components/sidebar/base.d.ts.map +1 -0
- package/dist/components/sidebar/base.js +197 -0
- package/dist/components/sidebar/link-item.d.ts +11 -0
- package/dist/components/sidebar/link-item.d.ts.map +1 -0
- package/dist/components/sidebar/link-item.js +13 -0
- package/dist/components/sidebar/page-tree.d.ts +19 -0
- package/dist/components/sidebar/page-tree.d.ts.map +1 -0
- package/dist/components/sidebar/page-tree.js +34 -0
- package/dist/components/sidebar/tabs/dropdown.d.ts +11 -0
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -0
- package/dist/components/sidebar/tabs/dropdown.js +34 -0
- package/dist/components/sidebar/tabs/index.d.ts +21 -0
- package/dist/components/sidebar/tabs/index.d.ts.map +1 -0
- package/dist/components/sidebar/tabs/index.js +49 -0
- package/dist/components/steps.d.ts +8 -0
- package/dist/components/steps.d.ts.map +1 -0
- package/dist/components/steps.js +7 -0
- package/dist/components/tabs.d.ts +31 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +64 -0
- package/dist/components/toc/clerk.d.ts +2 -0
- package/dist/components/toc/clerk.d.ts.map +1 -0
- package/dist/components/toc/clerk.js +1 -0
- package/dist/components/toc/default.d.ts +2 -0
- package/dist/components/toc/default.d.ts.map +1 -0
- package/dist/components/toc/default.js +1 -0
- package/dist/components/toc/index.d.ts +2 -0
- package/dist/components/toc/index.d.ts.map +1 -0
- package/dist/components/toc/index.js +1 -0
- package/dist/components/type-table.d.ts +32 -0
- package/dist/components/type-table.d.ts.map +1 -0
- package/dist/components/type-table.js +28 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +20 -0
- package/dist/components/ui/button.d.ts +8 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +20 -0
- package/dist/components/ui/collapsible.d.ts +9 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +9 -0
- package/dist/components/ui/navigation-menu.d.ts +12 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu.js +15 -0
- package/dist/components/ui/popover.d.ts +8 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +11 -0
- package/dist/components/ui/scroll-area.d.ts +8 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +11 -0
- package/dist/components/ui/tabs.d.ts +22 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +79 -0
- package/dist/contexts/i18n.d.ts +2 -0
- package/dist/contexts/i18n.d.ts.map +1 -0
- package/dist/contexts/i18n.js +1 -0
- package/dist/contexts/search.d.ts +2 -0
- package/dist/contexts/search.d.ts.map +1 -0
- package/dist/contexts/search.js +1 -0
- package/dist/contexts/tree.d.ts +2 -0
- package/dist/contexts/tree.d.ts.map +1 -0
- package/dist/contexts/tree.js +1 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +1 -0
- package/dist/layouts/docs/client.d.ts +15 -0
- package/dist/layouts/docs/client.d.ts.map +1 -0
- package/dist/layouts/docs/client.js +41 -0
- package/dist/layouts/docs/index.d.ts +36 -0
- package/dist/layouts/docs/index.d.ts.map +1 -0
- package/dist/layouts/docs/index.js +66 -0
- package/dist/layouts/docs/page/client.d.ts +24 -0
- package/dist/layouts/docs/page/client.d.ts.map +1 -0
- package/dist/layouts/docs/page/client.js +119 -0
- package/dist/layouts/docs/page/index.d.ts +58 -0
- package/dist/layouts/docs/page/index.d.ts.map +1 -0
- package/dist/layouts/docs/page/index.js +51 -0
- package/dist/layouts/docs/sidebar.d.ts +17 -0
- package/dist/layouts/docs/sidebar.d.ts.map +1 -0
- package/dist/layouts/docs/sidebar.js +94 -0
- package/dist/layouts/home/client.d.ts +6 -0
- package/dist/layouts/home/client.d.ts.map +1 -0
- package/dist/layouts/home/client.js +136 -0
- package/dist/layouts/home/index.d.ts +7 -0
- package/dist/layouts/home/index.d.ts.map +1 -0
- package/dist/layouts/home/index.js +8 -0
- package/dist/layouts/home/navbar.d.ts +7 -0
- package/dist/layouts/home/navbar.d.ts.map +1 -0
- package/dist/layouts/home/navbar.js +16 -0
- package/dist/layouts/notebook/client.d.ts +23 -0
- package/dist/layouts/notebook/client.d.ts.map +1 -0
- package/dist/layouts/notebook/client.js +104 -0
- package/dist/layouts/notebook/index.d.ts +34 -0
- package/dist/layouts/notebook/index.d.ts.map +1 -0
- package/dist/layouts/notebook/index.js +89 -0
- package/dist/layouts/notebook/page/client.d.ts +24 -0
- package/dist/layouts/notebook/page/client.d.ts.map +1 -0
- package/dist/layouts/notebook/page/client.js +119 -0
- package/dist/layouts/notebook/page/index.d.ts +58 -0
- package/dist/layouts/notebook/page/index.d.ts.map +1 -0
- package/dist/layouts/notebook/page/index.js +51 -0
- package/dist/layouts/notebook/sidebar.d.ts +17 -0
- package/dist/layouts/notebook/sidebar.d.ts.map +1 -0
- package/dist/layouts/notebook/sidebar.js +91 -0
- package/dist/layouts/shared/index.d.ts +56 -0
- package/dist/layouts/shared/index.d.ts.map +1 -0
- package/dist/layouts/shared/index.js +17 -0
- package/dist/layouts/shared/language-toggle.d.ts +5 -0
- package/dist/layouts/shared/language-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/language-toggle.js +24 -0
- package/dist/layouts/shared/search-toggle.d.ts +11 -0
- package/dist/layouts/shared/search-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/search-toggle.js +27 -0
- package/dist/layouts/shared/theme-toggle.d.ts +5 -0
- package/dist/layouts/shared/theme-toggle.d.ts.map +1 -0
- package/dist/layouts/shared/theme-toggle.js +38 -0
- package/dist/mdx.d.ts +33 -0
- package/dist/mdx.d.ts.map +1 -0
- package/dist/mdx.js +40 -0
- package/dist/mdx.server.d.ts +13 -0
- package/dist/mdx.server.d.ts.map +1 -0
- package/dist/mdx.server.js +15 -0
- package/dist/og.d.ts +2 -0
- package/dist/og.d.ts.map +1 -0
- package/dist/og.js +1 -0
- package/dist/page.d.ts +27 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +22 -0
- package/dist/provider/base.d.ts +40 -0
- package/dist/provider/base.d.ts.map +1 -0
- package/dist/provider/base.js +19 -0
- package/dist/provider/next.d.ts +14 -0
- package/dist/provider/next.d.ts.map +1 -0
- package/dist/provider/next.js +7 -0
- package/dist/provider/react-router.d.ts +14 -0
- package/dist/provider/react-router.d.ts.map +1 -0
- package/dist/provider/react-router.js +7 -0
- package/dist/provider/tanstack.d.ts +14 -0
- package/dist/provider/tanstack.d.ts.map +1 -0
- package/dist/provider/tanstack.js +7 -0
- package/dist/provider/waku.d.ts +14 -0
- package/dist/provider/waku.d.ts.map +1 -0
- package/dist/provider/waku.js +7 -0
- package/dist/style.css +3159 -0
- package/dist/utils/use-copy-button.d.ts +2 -0
- package/dist/utils/use-copy-button.d.ts.map +1 -0
- package/dist/utils/use-copy-button.js +1 -0
- package/dist/utils/use-footer-items.d.ts +2 -0
- package/dist/utils/use-footer-items.d.ts.map +1 -0
- package/dist/utils/use-footer-items.js +1 -0
- package/dist/utils/use-is-scroll-top.d.ts +2 -0
- package/dist/utils/use-is-scroll-top.d.ts.map +1 -0
- package/dist/utils/use-is-scroll-top.js +1 -0
- package/package.json +133 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import * as Base from '../../components/sidebar/base.js';
|
|
4
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
5
|
+
import { use, useRef } from 'react';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { LayoutContext } from './client.js';
|
|
8
|
+
import { createPageTreeRenderer } from '../../components/sidebar/page-tree.js';
|
|
9
|
+
import { createLinkItemRenderer } from '../../components/sidebar/link-item.js';
|
|
10
|
+
import { mergeRefs } from '@fumadocs/ui/merge-refs';
|
|
11
|
+
const itemVariants = cva('relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
12
|
+
variants: {
|
|
13
|
+
variant: {
|
|
14
|
+
link: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors',
|
|
15
|
+
button: 'transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none',
|
|
16
|
+
},
|
|
17
|
+
highlight: {
|
|
18
|
+
true: "data-[active=true]:before:content-[''] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5",
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
function getItemOffset(depth) {
|
|
23
|
+
return `calc(${2 + 3 * depth} * var(--spacing))`;
|
|
24
|
+
}
|
|
25
|
+
export const { SidebarProvider: Sidebar, SidebarFolder, SidebarCollapseTrigger, SidebarViewport, SidebarTrigger, } = Base;
|
|
26
|
+
export function SidebarContent({ ref: refProp, className, children, ...props }) {
|
|
27
|
+
const { navMode } = use(LayoutContext);
|
|
28
|
+
const ref = useRef(null);
|
|
29
|
+
return (_jsx(Base.SidebarContent, { children: ({ collapsed, hovered, ref: asideRef, ...rest }) => (_jsxs("div", { "data-sidebar-placeholder": "", className: cn('sticky z-20 [grid-area:sidebar] pointer-events-none *:pointer-events-auto md:layout:[--fd-sidebar-width:268px] max-md:hidden', navMode === 'auto'
|
|
30
|
+
? 'top-(--fd-docs-row-1) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))]'
|
|
31
|
+
: 'top-(--fd-docs-row-2) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-2))]'), children: [collapsed && (_jsx("div", { className: "absolute start-0 inset-y-0 w-4", ...rest })), _jsx("aside", { id: "nd-sidebar", ref: mergeRefs(ref, refProp, asideRef), "data-collapsed": collapsed, "data-hovered": collapsed && hovered, className: cn('absolute flex flex-col w-full start-0 inset-y-0 items-end text-sm duration-250 *:w-(--fd-sidebar-width)', navMode === 'auto' && 'bg-fd-card border-e', collapsed && [
|
|
32
|
+
'inset-y-2 rounded-xl bg-fd-card transition-transform border w-(--fd-sidebar-width)',
|
|
33
|
+
hovered
|
|
34
|
+
? 'shadow-lg translate-x-2 rtl:-translate-x-2'
|
|
35
|
+
: '-translate-x-(--fd-sidebar-width) rtl:translate-x-full',
|
|
36
|
+
], ref.current &&
|
|
37
|
+
(ref.current.getAttribute('data-collapsed') === 'true') !==
|
|
38
|
+
collapsed &&
|
|
39
|
+
'transition-[width,inset-block,translate,background-color]', className), ...props, ...rest, children: children })] })) }));
|
|
40
|
+
}
|
|
41
|
+
export function SidebarDrawer({ children, className, ...props }) {
|
|
42
|
+
return (_jsxs(_Fragment, { children: [_jsx(Base.SidebarDrawerOverlay, { className: "fixed z-40 inset-0 backdrop-blur-xs data-[state=open]:animate-fd-fade-in data-[state=closed]:animate-fd-fade-out" }), _jsx(Base.SidebarDrawerContent, { className: cn('fixed text-[0.9375rem] flex flex-col shadow-lg border-s end-0 inset-y-0 w-[85%] max-w-[380px] z-40 bg-fd-background data-[state=open]:animate-fd-sidebar-in data-[state=closed]:animate-fd-sidebar-out', className), ...props, children: children })] }));
|
|
43
|
+
}
|
|
44
|
+
export function SidebarSeparator({ className, style, children, ...props }) {
|
|
45
|
+
const depth = Base.useFolderDepth();
|
|
46
|
+
return (_jsx(Base.SidebarSeparator, { className: cn('[&_svg]:size-4 [&_svg]:shrink-0', className), style: {
|
|
47
|
+
paddingInlineStart: getItemOffset(depth),
|
|
48
|
+
...style,
|
|
49
|
+
}, ...props, children: children }));
|
|
50
|
+
}
|
|
51
|
+
export function SidebarItem({ className, style, children, ...props }) {
|
|
52
|
+
const depth = Base.useFolderDepth();
|
|
53
|
+
return (_jsx(Base.SidebarItem, { className: cn(itemVariants({ variant: 'link', highlight: depth >= 1 }), className), style: {
|
|
54
|
+
paddingInlineStart: getItemOffset(depth),
|
|
55
|
+
...style,
|
|
56
|
+
}, ...props, children: children }));
|
|
57
|
+
}
|
|
58
|
+
export function SidebarFolderTrigger({ className, style, ...props }) {
|
|
59
|
+
const { depth, collapsible } = Base.useFolder();
|
|
60
|
+
return (_jsx(Base.SidebarFolderTrigger, { className: (s) => cn(itemVariants({ variant: collapsible ? 'button' : null }), 'w-full', typeof className === 'function' ? className(s) : className), style: {
|
|
61
|
+
paddingInlineStart: getItemOffset(depth - 1),
|
|
62
|
+
...style,
|
|
63
|
+
}, ...props, children: props.children }));
|
|
64
|
+
}
|
|
65
|
+
export function SidebarFolderLink({ className, style, ...props }) {
|
|
66
|
+
const depth = Base.useFolderDepth();
|
|
67
|
+
return (_jsx(Base.SidebarFolderLink, { className: cn(itemVariants({ variant: 'link', highlight: depth > 1 }), 'w-full', className), style: {
|
|
68
|
+
paddingInlineStart: getItemOffset(depth - 1),
|
|
69
|
+
...style,
|
|
70
|
+
}, ...props, children: props.children }));
|
|
71
|
+
}
|
|
72
|
+
export function SidebarFolderContent({ className, children, ...props }) {
|
|
73
|
+
const depth = Base.useFolderDepth();
|
|
74
|
+
return (_jsx(Base.SidebarFolderContent, { className: (s) => cn('relative', depth === 1 &&
|
|
75
|
+
"before:content-[''] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:start-2.5", typeof className === 'function' ? className(s) : className), ...props, children: children }));
|
|
76
|
+
}
|
|
77
|
+
export const SidebarPageTree = createPageTreeRenderer({
|
|
78
|
+
SidebarFolder,
|
|
79
|
+
SidebarFolderContent,
|
|
80
|
+
SidebarFolderLink,
|
|
81
|
+
SidebarFolderTrigger,
|
|
82
|
+
SidebarItem,
|
|
83
|
+
SidebarSeparator,
|
|
84
|
+
});
|
|
85
|
+
export const SidebarLinkItem = createLinkItemRenderer({
|
|
86
|
+
SidebarFolder,
|
|
87
|
+
SidebarFolderContent,
|
|
88
|
+
SidebarFolderLink,
|
|
89
|
+
SidebarFolderTrigger,
|
|
90
|
+
SidebarItem,
|
|
91
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { I18nConfig } from 'fumadocs-core/i18n';
|
|
3
|
+
import type { LinkItemType } from '@fumadocs/ui/link-item';
|
|
4
|
+
export interface NavOptions {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
component: ReactNode;
|
|
7
|
+
title?: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Redirect url of title
|
|
10
|
+
* @defaultValue '/'
|
|
11
|
+
*/
|
|
12
|
+
url?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Use transparent background
|
|
15
|
+
*
|
|
16
|
+
* @defaultValue none
|
|
17
|
+
*/
|
|
18
|
+
transparentMode?: 'always' | 'top' | 'none';
|
|
19
|
+
children?: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export interface BaseLayoutProps {
|
|
22
|
+
themeSwitch?: {
|
|
23
|
+
enabled?: boolean;
|
|
24
|
+
component?: ReactNode;
|
|
25
|
+
mode?: 'light-dark' | 'light-dark-system';
|
|
26
|
+
};
|
|
27
|
+
searchToggle?: Partial<{
|
|
28
|
+
enabled: boolean;
|
|
29
|
+
components: Partial<{
|
|
30
|
+
sm: ReactNode;
|
|
31
|
+
lg: ReactNode;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* I18n options
|
|
36
|
+
*
|
|
37
|
+
* @defaultValue false
|
|
38
|
+
*/
|
|
39
|
+
i18n?: boolean | I18nConfig;
|
|
40
|
+
/**
|
|
41
|
+
* GitHub url
|
|
42
|
+
*/
|
|
43
|
+
githubUrl?: string;
|
|
44
|
+
links?: LinkItemType[];
|
|
45
|
+
/**
|
|
46
|
+
* Replace or disable navbar
|
|
47
|
+
*/
|
|
48
|
+
nav?: Partial<NavOptions>;
|
|
49
|
+
children?: ReactNode;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get link items with shortcuts
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveLinkItems({ links, githubUrl, }: Pick<BaseLayoutProps, 'links' | 'githubUrl'>): LinkItemType[];
|
|
55
|
+
export type * from '@fumadocs/ui/link-item';
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/shared/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAE5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE;QACZ,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,SAAS,CAAC;QACtB,IAAI,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;KAC3C,CAAC;IAEF,YAAY,CAAC,EAAE,OAAO,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;YAClB,EAAE,EAAE,SAAS,CAAC;YACd,EAAE,EAAE,SAAS,CAAC;SACf,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAU,EACV,SAAS,GACV,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,YAAY,EAAE,CAkB/D;AAED,mBAAmB,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Get link items with shortcuts
|
|
4
|
+
*/
|
|
5
|
+
export function resolveLinkItems({ links = [], githubUrl, }) {
|
|
6
|
+
const result = [...links];
|
|
7
|
+
if (githubUrl)
|
|
8
|
+
result.push({
|
|
9
|
+
type: 'icon',
|
|
10
|
+
url: githubUrl,
|
|
11
|
+
text: 'Github',
|
|
12
|
+
label: 'GitHub',
|
|
13
|
+
icon: (_jsx("svg", { role: "img", viewBox: "0 0 24 24", fill: "currentColor", children: _jsx("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" }) })),
|
|
14
|
+
external: true,
|
|
15
|
+
});
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
export type LanguageSelectProps = ComponentProps<'button'>;
|
|
3
|
+
export declare function LanguageToggle(props: LanguageSelectProps): React.ReactElement;
|
|
4
|
+
export declare function LanguageToggleText(props: ComponentProps<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
//# sourceMappingURL=language-toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-toggle.d.ts","sourceRoot":"","sources":["../../../src/layouts/shared/language-toggle.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAU5C,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,CA2C7E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,2CAO/D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useI18n } from '../../contexts/i18n.js';
|
|
4
|
+
import { Popover, PopoverContent, PopoverTrigger, } from '../../components/ui/popover.js';
|
|
5
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
6
|
+
import { buttonVariants } from '../../components/ui/button.js';
|
|
7
|
+
export function LanguageToggle(props) {
|
|
8
|
+
const context = useI18n();
|
|
9
|
+
if (!context.locales)
|
|
10
|
+
throw new Error('Missing `<I18nProvider />`');
|
|
11
|
+
return (_jsxs(Popover, { children: [_jsx(PopoverTrigger, { "aria-label": context.text.chooseLanguage, ...props, className: cn(buttonVariants({
|
|
12
|
+
color: 'ghost',
|
|
13
|
+
className: 'gap-1.5 p-1.5',
|
|
14
|
+
}), props.className), children: props.children }), _jsxs(PopoverContent, { className: "flex flex-col overflow-x-hidden p-0", children: [_jsx("p", { className: "mb-1 p-2 text-xs font-medium text-fd-muted-foreground", children: context.text.chooseLanguage }), context.locales.map((item) => (_jsx("button", { type: "button", className: cn('p-2 text-start text-sm', item.locale === context.locale
|
|
15
|
+
? 'bg-fd-primary/10 font-medium text-fd-primary'
|
|
16
|
+
: 'hover:bg-fd-accent hover:text-fd-accent-foreground'), onClick: () => {
|
|
17
|
+
context.onChange?.(item.locale);
|
|
18
|
+
}, children: item.name }, item.locale)))] })] }));
|
|
19
|
+
}
|
|
20
|
+
export function LanguageToggleText(props) {
|
|
21
|
+
const context = useI18n();
|
|
22
|
+
const text = context.locales?.find((item) => item.locale === context.locale)?.name;
|
|
23
|
+
return _jsx("span", { ...props, children: text });
|
|
24
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { type ButtonProps } from '../../components/ui/button.js';
|
|
3
|
+
interface SearchToggleProps extends Omit<ComponentProps<'button'>, 'color'>, ButtonProps {
|
|
4
|
+
hideIfDisabled?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function SearchToggle({ hideIfDisabled, size, color, ...props }: SearchToggleProps): import("react/jsx-runtime").JSX.Element | null;
|
|
7
|
+
export declare function LargeSearchToggle({ hideIfDisabled, ...props }: ComponentProps<'button'> & {
|
|
8
|
+
hideIfDisabled?: boolean;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=search-toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-toggle.d.ts","sourceRoot":"","sources":["../../../src/layouts/shared/search-toggle.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAE1E,UAAU,iBACR,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,cAAc,EACd,IAAgB,EAChB,KAAe,EACf,GAAG,KAAK,EACT,EAAE,iBAAiB,kDAuBnB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,cAAc,EACd,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,kDA6BA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Search } from '@fumadocs/ui/icons';
|
|
4
|
+
import { useSearchContext } from '../../contexts/search.js';
|
|
5
|
+
import { useI18n } from '../../contexts/i18n.js';
|
|
6
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
7
|
+
import { buttonVariants } from '../../components/ui/button.js';
|
|
8
|
+
export function SearchToggle({ hideIfDisabled, size = 'icon-sm', color = 'ghost', ...props }) {
|
|
9
|
+
const { setOpenSearch, enabled } = useSearchContext();
|
|
10
|
+
if (hideIfDisabled && !enabled)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsx("button", { type: "button", className: cn(buttonVariants({
|
|
13
|
+
size,
|
|
14
|
+
color,
|
|
15
|
+
}), props.className), "data-search": "", "aria-label": "Open Search", onClick: () => {
|
|
16
|
+
setOpenSearch(true);
|
|
17
|
+
}, children: _jsx(Search, {}) }));
|
|
18
|
+
}
|
|
19
|
+
export function LargeSearchToggle({ hideIfDisabled, ...props }) {
|
|
20
|
+
const { enabled, hotKey, setOpenSearch } = useSearchContext();
|
|
21
|
+
const { text } = useI18n();
|
|
22
|
+
if (hideIfDisabled && !enabled)
|
|
23
|
+
return null;
|
|
24
|
+
return (_jsxs("button", { type: "button", "data-search-full": "", ...props, className: cn('inline-flex items-center gap-2 rounded-lg border bg-fd-secondary/50 p-1.5 ps-2 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground', props.className), onClick: () => {
|
|
25
|
+
setOpenSearch(true);
|
|
26
|
+
}, children: [_jsx(Search, { className: "size-4" }), text.search, _jsx("div", { className: "ms-auto inline-flex gap-0.5", children: hotKey.map((k, i) => (_jsx("kbd", { className: "rounded-md border bg-fd-background px-1.5", children: k.display }, i))) })] }));
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../../src/layouts/shared/theme-toggle.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAuB,MAAM,OAAO,CAAC;AAqB5D,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,IAAmB,EACnB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG;IACzB,IAAI,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAAC;CAC3C,2CAsDA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { Airplay, Moon, Sun } from '@fumadocs/ui/icons';
|
|
5
|
+
import { useTheme } from 'next-themes';
|
|
6
|
+
import { useEffect, useState } from 'react';
|
|
7
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
8
|
+
const itemVariants = cva('size-6.5 rounded-full p-1.5 text-fd-muted-foreground', {
|
|
9
|
+
variants: {
|
|
10
|
+
active: {
|
|
11
|
+
true: 'bg-fd-accent text-fd-accent-foreground',
|
|
12
|
+
false: 'text-fd-muted-foreground',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const full = [
|
|
17
|
+
['light', Sun],
|
|
18
|
+
['dark', Moon],
|
|
19
|
+
['system', Airplay],
|
|
20
|
+
];
|
|
21
|
+
export function ThemeToggle({ className, mode = 'light-dark', ...props }) {
|
|
22
|
+
const { setTheme, theme, resolvedTheme } = useTheme();
|
|
23
|
+
const [mounted, setMounted] = useState(false);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
setMounted(true);
|
|
26
|
+
}, []);
|
|
27
|
+
const container = cn('inline-flex items-center rounded-full border p-1', className);
|
|
28
|
+
if (mode === 'light-dark') {
|
|
29
|
+
const value = mounted ? resolvedTheme : null;
|
|
30
|
+
return (_jsx("button", { className: container, "aria-label": `Toggle Theme`, onClick: () => setTheme(value === 'light' ? 'dark' : 'light'), "data-theme-toggle": "", children: full.map(([key, Icon]) => {
|
|
31
|
+
if (key === 'system')
|
|
32
|
+
return;
|
|
33
|
+
return (_jsx(Icon, { fill: "currentColor", className: cn(itemVariants({ active: value === key })) }, key));
|
|
34
|
+
}) }));
|
|
35
|
+
}
|
|
36
|
+
const value = mounted ? theme : null;
|
|
37
|
+
return (_jsx("div", { className: container, "data-theme-toggle": "", ...props, children: full.map(([key, Icon]) => (_jsx("button", { "aria-label": key, className: cn(itemVariants({ active: value === key })), onClick: () => setTheme(key), children: _jsx(Icon, { className: "size-full", fill: "currentColor" }) }, key))) }));
|
|
38
|
+
}
|
package/dist/mdx.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, FC, HTMLAttributes, ImgHTMLAttributes, TableHTMLAttributes } from 'react';
|
|
2
|
+
import { Card, Cards } from './components/card.js';
|
|
3
|
+
import { Callout, CalloutContainer, CalloutDescription, CalloutTitle } from './components/callout.js';
|
|
4
|
+
import { CodeBlockTab, CodeBlockTabs, CodeBlockTabsList, CodeBlockTabsTrigger } from './components/codeblock.js';
|
|
5
|
+
declare function Image(props: ImgHTMLAttributes<HTMLImageElement> & {
|
|
6
|
+
sizes?: string;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function Table(props: TableHTMLAttributes<HTMLTableElement>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const defaultMdxComponents: {
|
|
10
|
+
CodeBlockTab: typeof CodeBlockTab;
|
|
11
|
+
CodeBlockTabs: typeof CodeBlockTabs;
|
|
12
|
+
CodeBlockTabsList: typeof CodeBlockTabsList;
|
|
13
|
+
CodeBlockTabsTrigger: typeof CodeBlockTabsTrigger;
|
|
14
|
+
pre: (props: HTMLAttributes<HTMLPreElement>) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
Card: typeof Card;
|
|
16
|
+
Cards: typeof Cards;
|
|
17
|
+
a: FC<AnchorHTMLAttributes<HTMLAnchorElement>>;
|
|
18
|
+
img: typeof Image;
|
|
19
|
+
h1: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
h2: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
h3: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
h4: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
h5: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
h6: (props: HTMLAttributes<HTMLHeadingElement>) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
table: typeof Table;
|
|
26
|
+
Callout: typeof Callout;
|
|
27
|
+
CalloutContainer: typeof CalloutContainer;
|
|
28
|
+
CalloutTitle: typeof CalloutTitle;
|
|
29
|
+
CalloutDescription: typeof CalloutDescription;
|
|
30
|
+
};
|
|
31
|
+
export declare const createRelativeLink: typeof import('./mdx.server.js').createRelativeLink;
|
|
32
|
+
export { defaultMdxComponents as default };
|
|
33
|
+
//# sourceMappingURL=mdx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdx.d.ts","sourceRoot":"","sources":["../src/mdx.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,EAAE,EACF,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EAErB,MAAM,wBAAwB,CAAC;AAEhC,iBAAS,KAAK,CACZ,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CAUF;AAED,iBAAS,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,2CAM1D;AAED,QAAA,MAAM,oBAAoB;;;;;iBAKX,cAAc,CAAC,cAAc,CAAC;;;OAOhC,EAAE,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;;gBAE1C,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;gBAGlC,cAAc,CAAC,kBAAkB,CAAC;;;;;;CAQ/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAAc,cAAc,EAAE,kBAK5D,CAAC;AAEJ,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
|
package/dist/mdx.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import Link from 'fumadocs-core/link';
|
|
3
|
+
import { Image as FrameworkImage } from 'fumadocs-core/framework';
|
|
4
|
+
import { Card, Cards } from './components/card.js';
|
|
5
|
+
import { Callout, CalloutContainer, CalloutDescription, CalloutTitle, } from './components/callout.js';
|
|
6
|
+
import { Heading } from './components/heading.js';
|
|
7
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
8
|
+
import { CodeBlock, CodeBlockTab, CodeBlockTabs, CodeBlockTabsList, CodeBlockTabsTrigger, Pre, } from './components/codeblock.js';
|
|
9
|
+
function Image(props) {
|
|
10
|
+
return (_jsx(FrameworkImage, { sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px", ...props, src: props.src, className: cn('rounded-lg', props.className) }));
|
|
11
|
+
}
|
|
12
|
+
function Table(props) {
|
|
13
|
+
return (_jsx("div", { className: "relative overflow-auto prose-no-margin my-6", children: _jsx("table", { ...props }) }));
|
|
14
|
+
}
|
|
15
|
+
const defaultMdxComponents = {
|
|
16
|
+
CodeBlockTab,
|
|
17
|
+
CodeBlockTabs,
|
|
18
|
+
CodeBlockTabsList,
|
|
19
|
+
CodeBlockTabsTrigger,
|
|
20
|
+
pre: (props) => (_jsx(CodeBlock, { ...props, children: _jsx(Pre, { children: props.children }) })),
|
|
21
|
+
Card,
|
|
22
|
+
Cards,
|
|
23
|
+
a: Link,
|
|
24
|
+
img: Image,
|
|
25
|
+
h1: (props) => (_jsx(Heading, { as: "h1", ...props })),
|
|
26
|
+
h2: (props) => (_jsx(Heading, { as: "h2", ...props })),
|
|
27
|
+
h3: (props) => (_jsx(Heading, { as: "h3", ...props })),
|
|
28
|
+
h4: (props) => (_jsx(Heading, { as: "h4", ...props })),
|
|
29
|
+
h5: (props) => (_jsx(Heading, { as: "h5", ...props })),
|
|
30
|
+
h6: (props) => (_jsx(Heading, { as: "h6", ...props })),
|
|
31
|
+
table: Table,
|
|
32
|
+
Callout,
|
|
33
|
+
CalloutContainer,
|
|
34
|
+
CalloutTitle,
|
|
35
|
+
CalloutDescription,
|
|
36
|
+
};
|
|
37
|
+
export const createRelativeLink = () => {
|
|
38
|
+
throw new Error('`createRelativeLink` is only supported in Node.js environment');
|
|
39
|
+
};
|
|
40
|
+
export { defaultMdxComponents as default };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LoaderConfig, LoaderOutput, Page } from 'fumadocs-core/source';
|
|
2
|
+
import type { ComponentProps, FC } from 'react';
|
|
3
|
+
import defaultMdxComponents from './mdx.js';
|
|
4
|
+
/**
|
|
5
|
+
* Extend the default Link component to resolve relative file paths in `href`.
|
|
6
|
+
*
|
|
7
|
+
* @param page the current page
|
|
8
|
+
* @param source the source object
|
|
9
|
+
* @param OverrideLink The component to override from
|
|
10
|
+
*/
|
|
11
|
+
export declare function createRelativeLink<C extends LoaderConfig>(source: LoaderOutput<C>, page: Page, OverrideLink?: FC<ComponentProps<'a'>>): FC<ComponentProps<'a'>>;
|
|
12
|
+
export { defaultMdxComponents as default };
|
|
13
|
+
//# sourceMappingURL=mdx.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mdx.server.d.ts","sourceRoot":"","sources":["../src/mdx.server.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,oBAAoB,MAAM,OAAO,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,YAAY,EACvD,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,IAAI,EAAE,IAAI,EACV,YAAY,GAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAA0B,GAC7D,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CASzB;AAED,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import defaultMdxComponents from './mdx.js';
|
|
3
|
+
/**
|
|
4
|
+
* Extend the default Link component to resolve relative file paths in `href`.
|
|
5
|
+
*
|
|
6
|
+
* @param page the current page
|
|
7
|
+
* @param source the source object
|
|
8
|
+
* @param OverrideLink The component to override from
|
|
9
|
+
*/
|
|
10
|
+
export function createRelativeLink(source, page, OverrideLink = defaultMdxComponents.a) {
|
|
11
|
+
return async function RelativeLink({ href, ...props }) {
|
|
12
|
+
return (_jsx(OverrideLink, { href: href ? source.resolveHref(href, page) : href, ...props }));
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export { defaultMdxComponents as default };
|
package/dist/og.d.ts
ADDED
package/dist/og.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"og.d.ts","sourceRoot":"","sources":["../src/og.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
package/dist/og.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@fumadocs/ui/og/next';
|
package/dist/page.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ComponentProps } from 'react';
|
|
2
|
+
import * as Docs from './layouts/docs/page/index.js';
|
|
3
|
+
export { DocsDescription, DocsTitle, EditOnGitHub, DocsBody, PageBreadcrumb, PageLastUpdate, } from './layouts/docs/page/index.js';
|
|
4
|
+
interface EditOnGitHubOptions extends Omit<ComponentProps<'a'>, 'href' | 'children'> {
|
|
5
|
+
owner: string;
|
|
6
|
+
repo: string;
|
|
7
|
+
/**
|
|
8
|
+
* SHA or ref (branch or tag) name.
|
|
9
|
+
*
|
|
10
|
+
* @defaultValue main
|
|
11
|
+
*/
|
|
12
|
+
sha?: string;
|
|
13
|
+
/**
|
|
14
|
+
* File path in the repo
|
|
15
|
+
*/
|
|
16
|
+
path: string;
|
|
17
|
+
}
|
|
18
|
+
export interface DocsPageProps extends Docs.DocsPageProps {
|
|
19
|
+
editOnGithub?: EditOnGitHubOptions;
|
|
20
|
+
lastUpdate?: Date | string | number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* For separate MDX page
|
|
24
|
+
*/
|
|
25
|
+
export declare function withArticle(props: ComponentProps<'main'>): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function DocsPage({ lastUpdate, editOnGithub, children, ...props }: DocsPageProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=page.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAO,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,IAAI,MAAM,qBAAqB,CAAC;AAM5C,OAAO,EACL,eAAe,EACf,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,UAAU,mBAAoB,SAAQ,IAAI,CACxC,cAAc,CAAC,GAAG,CAAC,EACnB,MAAM,GAAG,UAAU,CACpB;IACC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,aAAa;IACvD,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,2CAYxD;AAED,wBAAgB,QAAQ,CAAC,EACvB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,2CAmBf"}
|
package/dist/page.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { use } from 'react';
|
|
4
|
+
import { cn } from '@fumadocs/ui/cn';
|
|
5
|
+
import * as Docs from './layouts/docs/page/index.js';
|
|
6
|
+
import * as Notebook from './layouts/notebook/page/index.js';
|
|
7
|
+
import { LayoutContext } from './layouts/docs/client.js';
|
|
8
|
+
// TODO: remove this compat layer on v17
|
|
9
|
+
export { DocsDescription, DocsTitle, EditOnGitHub, DocsBody, PageBreadcrumb, PageLastUpdate, } from './layouts/docs/page/index.js';
|
|
10
|
+
/**
|
|
11
|
+
* For separate MDX page
|
|
12
|
+
*/
|
|
13
|
+
export function withArticle(props) {
|
|
14
|
+
return (_jsx("main", { ...props, className: cn('w-full max-w-[1400px] mx-auto px-4 py-12', props.className), children: _jsx("article", { className: "prose", children: props.children }) }));
|
|
15
|
+
}
|
|
16
|
+
export function DocsPage({ lastUpdate, editOnGithub, children, ...props }) {
|
|
17
|
+
const docsLayoutCtx = use(LayoutContext);
|
|
18
|
+
const { DocsPage, EditOnGitHub, PageLastUpdate } = docsLayoutCtx
|
|
19
|
+
? Docs
|
|
20
|
+
: Notebook;
|
|
21
|
+
return (_jsxs(DocsPage, { ...props, children: [children, _jsxs("div", { className: "flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden", children: [editOnGithub && (_jsx(EditOnGitHub, { href: `https://github.com/${editOnGithub.owner}/${editOnGithub.repo}/blob/${editOnGithub.sha}/${editOnGithub.path.startsWith('/') ? editOnGithub.path.slice(1) : editOnGithub.path}` })), lastUpdate && _jsx(PageLastUpdate, { date: new Date(lastUpdate) })] })] }));
|
|
22
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
2
|
+
import type { DefaultSearchDialogProps } from '../components/dialog/search-default.js';
|
|
3
|
+
import { ThemeProvider } from 'next-themes';
|
|
4
|
+
import { type I18nProviderProps } from '@fumadocs/ui/contexts/i18n';
|
|
5
|
+
import { type SearchProviderProps } from '@fumadocs/ui/contexts/search';
|
|
6
|
+
interface SearchOptions extends Omit<SearchProviderProps, 'options' | 'children'> {
|
|
7
|
+
options?: Partial<DefaultSearchDialogProps>;
|
|
8
|
+
/**
|
|
9
|
+
* Enable search functionality
|
|
10
|
+
*
|
|
11
|
+
* @defaultValue `true`
|
|
12
|
+
*/
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface RootProviderProps {
|
|
16
|
+
/**
|
|
17
|
+
* `dir` option for Base UI
|
|
18
|
+
*/
|
|
19
|
+
dir?: 'rtl' | 'ltr';
|
|
20
|
+
/**
|
|
21
|
+
* @remarks `SearchProviderProps`
|
|
22
|
+
*/
|
|
23
|
+
search?: Partial<SearchOptions>;
|
|
24
|
+
/**
|
|
25
|
+
* Customise options of `next-themes`
|
|
26
|
+
*/
|
|
27
|
+
theme?: Partial<ComponentPropsWithoutRef<typeof ThemeProvider>> & {
|
|
28
|
+
/**
|
|
29
|
+
* Enable `next-themes`
|
|
30
|
+
*
|
|
31
|
+
* @defaultValue true
|
|
32
|
+
*/
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
};
|
|
35
|
+
i18n?: Omit<I18nProviderProps, 'children'>;
|
|
36
|
+
children?: ReactNode;
|
|
37
|
+
}
|
|
38
|
+
export declare function RootProvider({ children, dir, theme, search, i18n, }: RootProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/provider/base.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,wBAAwB,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,UAAU,aAAc,SAAQ,IAAI,CAClC,mBAAmB,EACnB,SAAS,GAAG,UAAU,CACvB;IACC,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE5C;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,OAAO,aAAa,CAAC,CAAC,GAAG;QAChE;;;;WAIG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAE3C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAW,EACX,KAAU,EACV,MAAM,EACN,IAAI,GACL,EAAE,iBAAiB,2CA4BnB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { lazy } from 'react';
|
|
4
|
+
import { DirectionProvider } from '@base-ui/react/direction-provider';
|
|
5
|
+
import { ThemeProvider } from 'next-themes';
|
|
6
|
+
import { I18nProvider, } from '@fumadocs/ui/contexts/i18n';
|
|
7
|
+
import { SearchProvider, } from '@fumadocs/ui/contexts/search';
|
|
8
|
+
const DefaultSearchDialog = lazy(() => import('../components/dialog/search-default.js'));
|
|
9
|
+
export function RootProvider({ children, dir = 'ltr', theme = {}, search, i18n, }) {
|
|
10
|
+
let body = children;
|
|
11
|
+
if (search?.enabled !== false)
|
|
12
|
+
body = (_jsx(SearchProvider, { SearchDialog: DefaultSearchDialog, ...search, children: body }));
|
|
13
|
+
if (theme?.enabled !== false)
|
|
14
|
+
body = (_jsx(ThemeProvider, { attribute: "class", defaultTheme: "system", enableSystem: true, disableTransitionOnChange: true, ...theme, children: body }));
|
|
15
|
+
if (i18n) {
|
|
16
|
+
body = _jsx(I18nProvider, { ...i18n, children: body });
|
|
17
|
+
}
|
|
18
|
+
return _jsx(DirectionProvider, { direction: dir, children: body });
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { RootProvider as BaseProvider } from '../provider/base.js';
|
|
3
|
+
import type { Framework } from 'fumadocs-core/framework';
|
|
4
|
+
export interface RootProviderProps extends ComponentProps<typeof BaseProvider> {
|
|
5
|
+
/**
|
|
6
|
+
* Custom framework components to override Next.js defaults
|
|
7
|
+
*/
|
|
8
|
+
components?: {
|
|
9
|
+
Link?: Framework['Link'];
|
|
10
|
+
Image?: Framework['Image'];
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function RootProvider({ components, ...props }: RootProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=next.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next.d.ts","sourceRoot":"","sources":["../../src/provider/next.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,OAAO,YAAY,CAAC;IAC5E;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC5B,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAMvE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RootProvider as BaseProvider } from '../provider/base.js';
|
|
4
|
+
import { NextProvider } from 'fumadocs-core/framework/next';
|
|
5
|
+
export function RootProvider({ components, ...props }) {
|
|
6
|
+
return (_jsx(NextProvider, { Link: components?.Link, Image: components?.Image, children: _jsx(BaseProvider, { ...props, children: props.children }) }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { RootProvider as BaseProvider } from '../provider/base.js';
|
|
3
|
+
import type { Framework } from 'fumadocs-core/framework';
|
|
4
|
+
export interface RootProviderProps extends ComponentProps<typeof BaseProvider> {
|
|
5
|
+
/**
|
|
6
|
+
* Custom framework components to override React Router defaults
|
|
7
|
+
*/
|
|
8
|
+
components?: {
|
|
9
|
+
Link?: Framework['Link'];
|
|
10
|
+
Image?: Framework['Image'];
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function RootProvider({ components, ...props }: RootProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=react-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-router.d.ts","sourceRoot":"","sources":["../../src/provider/react-router.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,OAAO,YAAY,CAAC;IAC5E;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;KAC5B,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAMvE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RootProvider as BaseProvider } from '../provider/base.js';
|
|
4
|
+
import { ReactRouterProvider } from 'fumadocs-core/framework/react-router';
|
|
5
|
+
export function RootProvider({ components, ...props }) {
|
|
6
|
+
return (_jsx(ReactRouterProvider, { Link: components?.Link, Image: components?.Image, children: _jsx(BaseProvider, { ...props, children: props.children }) }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import { RootProvider as BaseProvider } from '../provider/base.js';
|
|
3
|
+
import type { Framework } from 'fumadocs-core/framework';
|
|
4
|
+
export interface RootProviderProps extends ComponentProps<typeof BaseProvider> {
|
|
5
|
+
/**
|
|
6
|
+
* Custom framework components to override Tanstack Router defaults
|
|
7
|
+
*/
|
|
8
|
+
components?: {
|
|
9
|
+
Link?: Framework['Link'];
|
|
10
|
+
Image?: Framework['Image'];
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function RootProvider({ components, ...props }: RootProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=tanstack.d.ts.map
|