fumadocs-ui 14.6.1 → 14.6.2
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/dist/components/dynamic-codeblock.d.ts.map +1 -1
- package/dist/components/dynamic-codeblock.js +2 -1
- package/dist/components/inline-toc.d.ts +4 -3
- package/dist/components/inline-toc.d.ts.map +1 -1
- package/dist/components/inline-toc.js +4 -3
- package/dist/components/layout/root-toggle.js +1 -1
- package/dist/components/layout/toc.d.ts.map +1 -1
- package/dist/components/layout/toc.js +4 -2
- package/dist/components/registry.d.ts.map +1 -1
- package/dist/components/registry.js +1 -0
- package/dist/contexts/layout.d.ts +12 -0
- package/dist/contexts/layout.d.ts.map +1 -0
- package/dist/contexts/layout.js +16 -0
- package/dist/contexts/sidebar.d.ts +2 -2
- package/dist/contexts/sidebar.d.ts.map +1 -1
- package/dist/contexts/tree.d.ts.map +1 -1
- package/dist/contexts/tree.js +2 -4
- package/dist/layouts/docs/shared.d.ts +3 -0
- package/dist/layouts/docs/shared.d.ts.map +1 -1
- package/dist/layouts/docs/shared.js +3 -0
- package/dist/layouts/docs/sidebar.d.ts.map +1 -1
- package/dist/layouts/docs/sidebar.js +8 -8
- package/dist/layouts/docs.client.d.ts +2 -5
- package/dist/layouts/docs.client.d.ts.map +1 -1
- package/dist/layouts/docs.client.js +16 -7
- package/dist/layouts/docs.d.ts.map +1 -1
- package/dist/layouts/docs.js +19 -9
- package/dist/layouts/home.d.ts +2 -2
- package/dist/layouts/home.d.ts.map +1 -1
- package/dist/layouts/home.js +25 -24
- package/dist/layouts/notebook.client.d.ts +1 -2
- package/dist/layouts/notebook.client.d.ts.map +1 -1
- package/dist/layouts/notebook.client.js +2 -10
- package/dist/layouts/notebook.d.ts.map +1 -1
- package/dist/layouts/notebook.js +14 -4
- package/dist/page.client.d.ts +3 -1
- package/dist/page.client.d.ts.map +1 -1
- package/dist/page.client.js +12 -2
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +12 -10
- package/dist/provider.d.ts +1 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -0
- package/dist/style.css +38 -95
- package/dist/theme/colors.js +3 -3
- package/dist/utils/get-sidebar-tabs.d.ts.map +1 -1
- package/dist/utils/get-sidebar-tabs.js +10 -1
- package/package.json +10 -10
- package/dist/layouts/docs/navbar.d.ts +0 -4
- package/dist/layouts/docs/navbar.d.ts.map +0 -1
- package/dist/layouts/docs/navbar.js +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-codeblock.d.ts","sourceRoot":"","sources":["../../src/components/dynamic-codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-codeblock.d.ts","sourceRoot":"","sources":["../../src/components/dynamic-codeblock.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAe7D,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,OAAO,GACR,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CAC1C,2CAuBA"}
|
|
@@ -3,9 +3,10 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { CodeBlock, Pre } from '../components/codeblock';
|
|
4
4
|
import { PrerenderScript, useShiki } from 'fumadocs-core/utils/use-shiki';
|
|
5
5
|
import { useId } from 'react';
|
|
6
|
+
import { cn } from '../utils/cn';
|
|
6
7
|
const components = {
|
|
7
8
|
pre(props) {
|
|
8
|
-
return (_jsx(CodeBlock, { ...props, children: _jsx(Pre, { children: props.children }) }));
|
|
9
|
+
return (_jsx(CodeBlock, { ...props, className: cn('my-0', props.className), children: _jsx(Pre, { children: props.children }) }));
|
|
9
10
|
},
|
|
10
11
|
};
|
|
11
12
|
export function DynamicCodeBlock({ lang, code, options, }) {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { TOCItemType } from 'fumadocs-core/server';
|
|
2
|
-
|
|
2
|
+
import { Collapsible } from './ui/collapsible';
|
|
3
|
+
import { ComponentProps } from 'react';
|
|
4
|
+
export interface InlineTocProps extends ComponentProps<typeof Collapsible> {
|
|
3
5
|
items: TOCItemType[];
|
|
4
|
-
defaultOpen?: boolean;
|
|
5
6
|
}
|
|
6
|
-
export declare function InlineTOC({ items,
|
|
7
|
+
export declare function InlineTOC({ items, ...props }: InlineTocProps): import("react/jsx-runtime").JSX.Element;
|
|
7
8
|
//# sourceMappingURL=inline-toc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-toc.d.ts","sourceRoot":"","sources":["../../src/components/inline-toc.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"inline-toc.d.ts","sourceRoot":"","sources":["../../src/components/inline-toc.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,WAAW,EAGZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,OAAO,WAAW,CAAC;IACxE,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CA+B5D"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { ChevronDown } from 'lucide-react';
|
|
4
4
|
import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from './ui/collapsible';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import { cn } from '../utils/cn';
|
|
6
|
+
export function InlineTOC({ items, ...props }) {
|
|
7
|
+
return (_jsxs(Collapsible, { ...props, className: cn('not-prose rounded-lg border bg-fd-card text-fd-card-foreground', props.className), children: [_jsxs(CollapsibleTrigger, { className: "group inline-flex w-full items-center justify-between px-4 py-2.5 font-medium", children: [props.children ?? 'Table of Contents', _jsx(ChevronDown, { className: "size-4 transition-transform duration-200 group-data-[state=open]:rotate-180" })] }), _jsx(CollapsibleContent, { children: _jsx("div", { className: "flex flex-col p-4 pt-0 text-sm text-fd-muted-foreground", children: items.map((item) => (_jsx("a", { href: item.url, className: "border-s py-1.5 hover:text-fd-accent-foreground", style: {
|
|
8
|
+
paddingInlineStart: 12 * Math.max(item.depth - 1, 0),
|
|
8
9
|
}, children: item.title }, item.url))) }) })] }));
|
|
9
10
|
}
|
|
@@ -22,7 +22,7 @@ export function RootToggle({ options, placeholder, ...props }) {
|
|
|
22
22
|
setOpen(false);
|
|
23
23
|
};
|
|
24
24
|
const item = selected ? _jsx(Item, { ...selected }) : placeholder;
|
|
25
|
-
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [item ? (_jsxs(PopoverTrigger, { ...props, className: cn('flex flex-row items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-fd-accent/50 hover:text-fd-accent-foreground', props.className), children: [item, _jsx(ChevronDown, { className: "me-
|
|
25
|
+
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [item ? (_jsxs(PopoverTrigger, { ...props, className: cn('flex flex-row items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-fd-accent/50 hover:text-fd-accent-foreground', props.className), children: [item, _jsx(ChevronDown, { className: "me-2 size-4 text-fd-muted-foreground" })] })) : null, _jsx(PopoverContent, { className: "w-[var(--radix-popover-trigger-width)] overflow-hidden p-0", children: options.map((item) => (_jsx(Link, { href: item.url, onClick: onClick, ...item.props, className: cn('flex w-full flex-row items-center gap-2 px-2 py-1.5', selected === item
|
|
26
26
|
? 'bg-fd-accent text-fd-accent-foreground'
|
|
27
27
|
: 'hover:bg-fd-accent/50', item.props?.className), children: _jsx(Item, { ...item }) }, item.url))) })] }));
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc.d.ts","sourceRoot":"","sources":["../../../src/components/layout/toc.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAmB,MAAM,OAAO,CAAC;AAU7E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"toc.d.ts","sourceRoot":"","sources":["../../../src/components/layout/toc.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAmB,MAAM,OAAO,CAAC;AAU7E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAyBxD;AAED,wBAAgB,aAAa,4CAQ5B;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAc,GACf,EAAE;IACD,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,2CA6BA;AAkBD,eAAO,MAAM,UAAU,oEAAU,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,GAAG,KAAK,EACT,EAAE,mBAAmB,GAAG;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,2CAyBhD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,2CAiB3D"}
|
|
@@ -8,11 +8,13 @@ import { TocThumb } from '../../components/layout/toc-thumb';
|
|
|
8
8
|
import { ScrollArea, ScrollViewport } from '../ui/scroll-area';
|
|
9
9
|
import { Popover, PopoverContent, PopoverTrigger, } from '../../components/ui/popover';
|
|
10
10
|
import { ChevronRight, Text } from 'lucide-react';
|
|
11
|
+
import { usePageStyles } from '../../contexts/layout';
|
|
11
12
|
export function Toc(props) {
|
|
12
|
-
|
|
13
|
+
const { toc } = usePageStyles();
|
|
14
|
+
return (_jsx("div", { id: "nd-toc", ...props, className: cn('sticky top-fd-layout-top h-[var(--fd-toc-height)] pb-2 pt-12', toc, props.className), style: {
|
|
13
15
|
...props.style,
|
|
14
16
|
'--fd-toc-height': 'calc(100dvh - var(--fd-banner-height) - var(--fd-nav-height))',
|
|
15
|
-
}, children: props.children }));
|
|
17
|
+
}, children: _jsx("div", { className: "flex h-full w-[var(--fd-toc-width)] max-w-full flex-col gap-3 pe-2", children: props.children }) }));
|
|
16
18
|
}
|
|
17
19
|
export function TocItemsEmpty() {
|
|
18
20
|
const { text } = useI18n();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/components/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAUpD,eAAO,MAAM,QAAQ,EAAE,QAmEtB,CAAC"}
|
|
@@ -4,6 +4,7 @@ const contextsMap = {
|
|
|
4
4
|
'../contexts/search.tsx': 'fumadocs-ui/provider',
|
|
5
5
|
'../contexts/tree.tsx': 'fumadocs-ui/provider',
|
|
6
6
|
'../contexts/i18n.tsx': 'fumadocs-ui/provider',
|
|
7
|
+
'../contexts/layout.tsx': 'fumadocs-ui/provider',
|
|
7
8
|
};
|
|
8
9
|
export const registry = {
|
|
9
10
|
path: fileURLToPath(import.meta.url),
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export interface PageStyles {
|
|
3
|
+
tocNav?: string;
|
|
4
|
+
toc?: string;
|
|
5
|
+
page?: string;
|
|
6
|
+
article?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function usePageStyles(): PageStyles;
|
|
9
|
+
export declare function StylesProvider({ children, ...value }: PageStyles & {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/contexts/layout.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAElE,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,wBAAgB,aAAa,eAE5B;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,UAAU,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAItC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* applied styles to different layout components in `Page` from layouts
|
|
6
|
+
*/
|
|
7
|
+
const StylesContext = createContext({
|
|
8
|
+
tocNav: 'xl:hidden',
|
|
9
|
+
toc: 'max-xl:hidden',
|
|
10
|
+
});
|
|
11
|
+
export function usePageStyles() {
|
|
12
|
+
return useContext(StylesContext);
|
|
13
|
+
}
|
|
14
|
+
export function StylesProvider({ children, ...value }) {
|
|
15
|
+
return (_jsx(StylesContext.Provider, { value: value, children: children }));
|
|
16
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
2
|
interface SidebarContext {
|
|
3
3
|
open: boolean;
|
|
4
4
|
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
@@ -7,7 +7,7 @@ interface SidebarContext {
|
|
|
7
7
|
/**
|
|
8
8
|
* When set to false, don't close the sidebar when navigate to another page
|
|
9
9
|
*/
|
|
10
|
-
closeOnRedirect:
|
|
10
|
+
closeOnRedirect: RefObject<boolean>;
|
|
11
11
|
}
|
|
12
12
|
declare const SidebarContext: import("react").Context<SidebarContext | undefined>;
|
|
13
13
|
export declare function useSidebar(): SidebarContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/contexts/sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/contexts/sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5D;;OAEG;IACH,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;CACrC;AAED,QAAA,MAAM,cAAc,qDAAuD,CAAC;AAE5E,wBAAgB,UAAU,IAAI,cAAc,CAI3C;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,SAAS,CAgCZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/contexts/tree.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../src/contexts/tree.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAA6B,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAG3E,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;CACvC;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,IAAI,GACL,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,SAAS,CAeZ;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,CAE7C;AAED,wBAAgB,cAAc,IAAI,eAAe,CAMhD"}
|
package/dist/contexts/tree.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { usePathname } from 'next/navigation';
|
|
4
|
-
import { createContext, useContext, useMemo
|
|
4
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
5
5
|
import { searchPath } from 'fumadocs-core/breadcrumb';
|
|
6
|
-
const TreeContext = createContext(
|
|
6
|
+
const TreeContext = createContext(null);
|
|
7
7
|
const PathContext = createContext([]);
|
|
8
8
|
export function TreeContextProvider({ children, tree, }) {
|
|
9
9
|
const pathname = usePathname();
|
|
10
10
|
const path = useMemo(() => searchPath(tree.children, pathname) ?? [], [pathname, tree]);
|
|
11
11
|
const root = (path.findLast((item) => item.type === 'folder' && item.root) ??
|
|
12
12
|
tree);
|
|
13
|
-
const pathnameRef = useRef(pathname);
|
|
14
|
-
pathnameRef.current = pathname;
|
|
15
13
|
return (_jsx(TreeContext.Provider, { value: useMemo(() => ({ root }), [root]), children: _jsx(PathContext.Provider, { value: path, children: children }) }));
|
|
16
14
|
}
|
|
17
15
|
export function useTreePath() {
|
|
@@ -4,6 +4,9 @@ import type { PageTree } from 'fumadocs-core/server';
|
|
|
4
4
|
import { type TabOptions } from '../../utils/get-sidebar-tabs';
|
|
5
5
|
import type { FC, ReactNode } from 'react';
|
|
6
6
|
import type { Option } from '../../components/layout/root-toggle';
|
|
7
|
+
export declare const layoutVariables: {
|
|
8
|
+
'--fd-layout-offset': string;
|
|
9
|
+
};
|
|
7
10
|
export interface SidebarOptions extends SidebarProps {
|
|
8
11
|
enabled: boolean;
|
|
9
12
|
component: ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,KAAK,CAAC;IAErC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;KAAE,CAAC,CAAC;IAClC,MAAM,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,2UA+C/D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,wBASpB"}
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAML,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,KAAK,CAAC;IAErC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;KAAE,CAAC,CAAC;IAClC,MAAM,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,2UA+C/D;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI,wBASpB"}
|
|
@@ -4,6 +4,9 @@ import { SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTr
|
|
|
4
4
|
import { cn } from '../../utils/cn';
|
|
5
5
|
import { buttonVariants } from '../../components/ui/button';
|
|
6
6
|
import { getSidebarTabs } from '../../utils/get-sidebar-tabs';
|
|
7
|
+
export const layoutVariables = {
|
|
8
|
+
'--fd-layout-offset': 'max(calc(50vw - var(--fd-layout-width) / 2), 0px)',
|
|
9
|
+
};
|
|
7
10
|
export function SidebarLinkItem({ item }) {
|
|
8
11
|
if (item.type === 'menu')
|
|
9
12
|
return (_jsxs(SidebarFolder, { children: [item.url ? (_jsxs(SidebarFolderLink, { href: item.url, children: [item.icon, item.text] })) : (_jsxs(SidebarFolderTrigger, { children: [item.icon, item.text] })), _jsx(SidebarFolderContent, { children: item.items.map((child, i) => (_jsx(SidebarLinkItem, { item: child }, i))) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA6BD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,2CAqDrD;AAED,wBAAgB,OAAO,CAAC,EACtB,gBAAoB,EACpB,QAAe,EACf,KAAK,EACL,GAAG,KAAK,EACT,EAAE,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAAE,2CAuC3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/sidebar.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EAEnB,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AACf,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC/D;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA6BD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,2CAqDrD;AAED,wBAAgB,OAAO,CAAC,EACtB,gBAAoB,EACpB,QAAe,EACf,KAAK,EACL,GAAG,KAAK,EACT,EAAE,YAAY,GAAG;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;CAAE,2CAuC3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CASlE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAYlE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,2CAarD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,oBAAoB,CAAC,2CAY3E;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,SAAS,GAAG;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB,2CAiBA;AAED,wBAAgB,aAAa,CAAC,EAC5B,WAAmB,EACnB,GAAG,KAAK,EACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,2CAgBA;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAelE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,2CA8BjD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,2CAQlE;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAyB/C;AAgBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzC,eA0CA"}
|
|
@@ -14,11 +14,11 @@ import { useSidebar } from '../../contexts/sidebar';
|
|
|
14
14
|
import { buttonVariants } from '../../components/ui/button';
|
|
15
15
|
import { cva } from 'class-variance-authority';
|
|
16
16
|
import { useTreeContext, useTreePath } from '../../contexts/tree';
|
|
17
|
-
const itemVariants = cva('flex flex-row items-center gap-2 rounded-md
|
|
17
|
+
const itemVariants = cva('flex flex-row items-center gap-2 rounded-md p-2 text-fd-muted-foreground [overflow-wrap:anywhere] md:py-1.5 [&_svg]:size-4', {
|
|
18
18
|
variants: {
|
|
19
19
|
active: {
|
|
20
20
|
true: 'bg-fd-primary/10 font-medium text-fd-primary',
|
|
21
|
-
false: 'hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none',
|
|
21
|
+
false: 'transition-colors duration-100 hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none',
|
|
22
22
|
},
|
|
23
23
|
},
|
|
24
24
|
});
|
|
@@ -68,18 +68,18 @@ export function Sidebar({ defaultOpenLevel = 0, prefetch = true, inner, ...props
|
|
|
68
68
|
}, children: _jsx("div", { ...inner, className: cn('flex size-full max-w-full flex-col pt-2 md:ms-auto md:w-[var(--fd-sidebar-width)] md:border-e md:pt-4', inner?.className), children: props.children }) }) }));
|
|
69
69
|
}
|
|
70
70
|
export function SidebarHeader(props) {
|
|
71
|
-
return (_jsx("div", { ...props, className: cn('flex flex-col gap-2 px-4 empty:hidden
|
|
71
|
+
return (_jsx("div", { ...props, className: cn('flex flex-col gap-2 px-4 empty:hidden', props.className), children: props.children }));
|
|
72
72
|
}
|
|
73
73
|
export function SidebarFooter(props) {
|
|
74
74
|
return (_jsx("div", { ...props, className: cn('flex flex-col border-t px-4 py-3 empty:hidden', props.className), children: props.children }));
|
|
75
75
|
}
|
|
76
76
|
export function SidebarViewport(props) {
|
|
77
|
-
return (_jsx(ScrollArea, { ...props, className: cn('h-full', props.className), children: _jsx(ScrollViewport, { style: {
|
|
77
|
+
return (_jsx(ScrollArea, { ...props, className: cn('h-full', props.className), children: _jsx(ScrollViewport, { className: "px-4", style: {
|
|
78
78
|
maskImage: 'linear-gradient(to bottom, transparent 2px, white 16px)',
|
|
79
79
|
}, children: props.children }) }));
|
|
80
80
|
}
|
|
81
81
|
export function SidebarSeparator(props) {
|
|
82
|
-
return (_jsx("p", { ...props, className: cn('mb-2 mt-8 px-
|
|
82
|
+
return (_jsx("p", { ...props, className: cn('mb-2 mt-8 px-2 text-sm font-medium first:mt-0', props.className), children: props.children }));
|
|
83
83
|
}
|
|
84
84
|
export function SidebarItem({ icon, ...props }) {
|
|
85
85
|
const pathname = usePathname();
|
|
@@ -97,14 +97,14 @@ export function SidebarFolder({ defaultOpen = false, ...props }) {
|
|
|
97
97
|
}
|
|
98
98
|
export function SidebarFolderTrigger(props) {
|
|
99
99
|
const { open } = useFolderContext();
|
|
100
|
-
return (_jsxs(CollapsibleTrigger, { ...props, className: cn(itemVariants({ active: false }), 'w-full
|
|
100
|
+
return (_jsxs(CollapsibleTrigger, { ...props, className: cn(itemVariants({ active: false }), 'w-full'), children: [props.children, _jsx(ChevronDown, { "data-icon": true, className: cn('ms-auto transition-transform', !open && '-rotate-90') })] }));
|
|
101
101
|
}
|
|
102
102
|
export function SidebarFolderLink(props) {
|
|
103
103
|
const { open, setOpen } = useFolderContext();
|
|
104
104
|
const { prefetch } = useInternalContext();
|
|
105
105
|
const pathname = usePathname();
|
|
106
106
|
const active = props.href !== undefined && isActive(props.href, pathname, false);
|
|
107
|
-
return (_jsxs(Link, { ...props, "data-active": active, className: cn(itemVariants({ active }), 'w-full
|
|
107
|
+
return (_jsxs(Link, { ...props, "data-active": active, className: cn(itemVariants({ active }), 'w-full', props.className), onClick: (e) => {
|
|
108
108
|
if (e.target.hasAttribute('data-icon')) {
|
|
109
109
|
setOpen((prev) => !prev);
|
|
110
110
|
e.preventDefault();
|
|
@@ -122,7 +122,7 @@ export function SidebarCollapseTrigger(props) {
|
|
|
122
122
|
return (_jsx("button", { type: "button", "aria-label": "Collapse Sidebar", "data-collapsed": collapsed, ...props, className: cn(buttonVariants({
|
|
123
123
|
color: 'ghost',
|
|
124
124
|
size: 'icon',
|
|
125
|
-
}), props.className), onClick: () => {
|
|
125
|
+
}), 'backdrop-blur-lg', props.className), onClick: () => {
|
|
126
126
|
setCollapsed((prev) => !prev);
|
|
127
127
|
}, children: props.children ?? _jsx(SidebarIcon, {}) }));
|
|
128
128
|
}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
|
|
2
2
|
import { type LinkItemType } from '../layouts/links';
|
|
3
|
-
export declare function LayoutBody(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
3
|
interface LinksMenuProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
4
|
items: LinkItemType[];
|
|
6
5
|
}
|
|
7
6
|
export declare function LinksMenu({ items, ...props }: LinksMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
export declare function MenuItem({ item, ...props }: MenuItemProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function Navbar(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function NavbarSidebarTrigger(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
12
9
|
export {};
|
|
13
10
|
//# sourceMappingURL=docs.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.client.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.client.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;AASf,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.client.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.client.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EAEpB,MAAM,OAAO,CAAC;AASf,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAgBlE,UAAU,cAAe,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IACtE,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAkB5D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,2CAiBxD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAkB/C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ChevronDown } from 'lucide-react';
|
|
3
|
+
import { ChevronDown, Menu, X } from 'lucide-react';
|
|
4
4
|
import { useState, } from 'react';
|
|
5
5
|
import { usePathname } from 'next/navigation';
|
|
6
6
|
import { useOnChange } from 'fumadocs-core/utils/use-on-change';
|
|
@@ -11,11 +11,8 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from '../compone
|
|
|
11
11
|
import { cva } from 'class-variance-authority';
|
|
12
12
|
import { buttonVariants } from '../components/ui/button';
|
|
13
13
|
import { useSidebar } from '../contexts/sidebar';
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return (_jsx("main", { ...props, className: cn(!collapsed &&
|
|
17
|
-
'[&_#nd-page]:max-w-[calc(min(100vw,var(--fd-layout-width))-var(--fd-sidebar-width)-var(--fd-toc-width))]', props.className), children: props.children }));
|
|
18
|
-
}
|
|
14
|
+
import { useNav } from '../components/layout/nav';
|
|
15
|
+
import { SidebarTrigger } from 'fumadocs-core/sidebar';
|
|
19
16
|
const itemVariants = cva('flex flex-row items-center gap-2 rounded-md px-3 py-2.5 text-fd-muted-foreground transition-colors duration-100 [overflow-wrap:anywhere] hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none md:px-2 md:py-1.5 [&_svg]:size-4');
|
|
20
17
|
export function LinksMenu({ items, ...props }) {
|
|
21
18
|
const [open, setOpen] = useState(false);
|
|
@@ -25,7 +22,19 @@ export function LinksMenu({ items, ...props }) {
|
|
|
25
22
|
});
|
|
26
23
|
return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [_jsx(PopoverTrigger, { ...props }), _jsx(PopoverContent, { className: "flex flex-col p-1", children: items.map((item, i) => (_jsx(MenuItem, { item: item }, i))) })] }));
|
|
27
24
|
}
|
|
28
|
-
export function
|
|
25
|
+
export function Navbar(props) {
|
|
26
|
+
const { open } = useSidebar();
|
|
27
|
+
const { isTransparent } = useNav();
|
|
28
|
+
return (_jsx("header", { id: "nd-subnav", ...props, className: cn('sticky top-[var(--fd-banner-height)] z-30 flex h-14 flex-row items-center border-b border-fd-foreground/10 px-4 backdrop-blur-lg transition-colors', (!isTransparent || open) && 'bg-fd-background/80', props.className), children: props.children }));
|
|
29
|
+
}
|
|
30
|
+
export function NavbarSidebarTrigger(props) {
|
|
31
|
+
const { open } = useSidebar();
|
|
32
|
+
return (_jsx(SidebarTrigger, { ...props, className: cn(buttonVariants({
|
|
33
|
+
color: 'ghost',
|
|
34
|
+
size: 'icon',
|
|
35
|
+
}), props.className), children: open ? _jsx(X, {}) : _jsx(Menu, {}) }));
|
|
36
|
+
}
|
|
37
|
+
function MenuItem({ item, ...props }) {
|
|
29
38
|
if (item.type === 'custom')
|
|
30
39
|
return (_jsx("div", { ...props, className: cn('grid', props.className), children: item.children }));
|
|
31
40
|
if (item.type === 'menu') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/layouts/docs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAe5D,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,eAAe,EAAY,MAAM,UAAU,CAAC;AAc1D,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAI/B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAElC,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EACH,OAAO,EAAE,UAAiB,EAC1B,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,GAAG,GAAG,EACF,EACN,OAAO,EAAE,EACP,OAAO,EAAE,cAAqB,EAC9B,WAAkB,EAClB,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,OAAO,EACN,EACN,IAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CA2G7B;AA0FD,OAAO,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,CAAC"}
|
package/dist/layouts/docs.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import Link from 'next/link';
|
|
3
3
|
import { Languages, MoreHorizontal } from 'lucide-react';
|
|
4
|
-
import { notFound } from 'next/navigation';
|
|
5
4
|
import { cn } from '../utils/cn';
|
|
6
5
|
import { buttonVariants } from '../components/ui/button';
|
|
7
6
|
import { CollapsibleSidebar, Sidebar, SidebarFooter, SidebarHeader, SidebarCollapseTrigger, SidebarViewport, SidebarPageTree, } from '../layouts/docs/sidebar';
|
|
@@ -11,28 +10,39 @@ import { getSidebarTabs } from '../utils/get-sidebar-tabs';
|
|
|
11
10
|
import { RootToggle } from '../components/layout/root-toggle';
|
|
12
11
|
import { getLinks } from './shared';
|
|
13
12
|
import { LanguageToggle, LanguageToggleText, } from '../components/layout/language-toggle';
|
|
14
|
-
import {
|
|
13
|
+
import { LinksMenu, Navbar, NavbarSidebarTrigger } from '../layouts/docs.client';
|
|
15
14
|
import { TreeContextProvider } from '../contexts/tree';
|
|
16
15
|
import { NavProvider, Title } from '../components/layout/nav';
|
|
17
16
|
import { ThemeToggle } from '../components/layout/theme-toggle';
|
|
18
|
-
import { Navbar, NavbarSidebarTrigger } from '../layouts/docs/navbar';
|
|
19
17
|
import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle';
|
|
20
18
|
import { SearchOnly } from '../contexts/search';
|
|
21
|
-
import { getSidebarTabsFromOptions, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
19
|
+
import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
20
|
+
import { StylesProvider } from '../contexts/layout';
|
|
21
|
+
import { notFound } from 'next/navigation';
|
|
22
22
|
export function DocsLayout({ nav: { enabled: navEnabled = true, component: navReplace, transparentMode, ...nav } = {}, sidebar: { enabled: sidebarEnabled = true, collapsible = true, component: sidebarReplace, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar } = {}, i18n = false, ...props }) {
|
|
23
23
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
24
24
|
const Aside = collapsible ? CollapsibleSidebar : Sidebar;
|
|
25
25
|
if (props.tree === undefined)
|
|
26
26
|
notFound();
|
|
27
27
|
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const variables = cn('[--fd-tocnav-height:36px] md:[--fd-sidebar-width:268px] xl:[--fd-toc-width:268px] xl:[--fd-tocnav-height:0px]', !navReplace && navEnabled
|
|
29
|
+
? '[--fd-nav-height:3.5rem] md:[--fd-nav-height:0px]'
|
|
30
|
+
: undefined);
|
|
31
|
+
const pageStyles = {
|
|
32
|
+
tocNav: cn('xl:hidden'),
|
|
33
|
+
toc: cn('max-xl:hidden'),
|
|
34
|
+
};
|
|
35
|
+
return (_jsx(TreeContextProvider, { tree: props.tree, children: _jsxs(NavProvider, { transparentMode: transparentMode, children: [replaceOrDefault({ enabled: navEnabled, component: navReplace }, _jsxs(Navbar, { className: "md:hidden", children: [_jsx(Title, { url: nav.url, title: nav.title }), _jsx("div", { className: "flex flex-1 flex-row items-center gap-1", children: nav.children }), _jsx(SearchOnly, { children: _jsx(SearchToggle, {}) }), _jsx(NavbarSidebarTrigger, { className: "-me-2 md:hidden" })] }), nav), _jsxs("main", { id: "nd-docs-layout", ...props.containerProps, className: cn('flex flex-1 flex-row pe-[var(--fd-layout-offset)]', variables, props.containerProps?.className), style: {
|
|
36
|
+
...layoutVariables,
|
|
37
|
+
...props.containerProps?.style,
|
|
38
|
+
}, children: [collapsible ? (_jsx(SidebarCollapseTrigger, { className: "fixed bottom-3 z-30 data-[collapsed=false]:invisible max-md:hidden", style: {
|
|
39
|
+
insetInlineStart: 'calc(var(--fd-layout-offset) + 0.5rem)',
|
|
40
|
+
} })) : null, replaceOrDefault({ enabled: sidebarEnabled, component: sidebarReplace }, _jsxs(Aside, { ...sidebar, className: cn('md:ps-[var(--fd-layout-offset)]', sidebar.className), children: [_jsxs(SidebarHeader, { children: [_jsx(SidebarHeaderItems, { ...nav, links: links }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null, _jsx(SearchOnly, { children: _jsx(LargeSearchToggle, { className: "rounded-lg max-md:hidden" }) })] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "pt-4 empty:hidden md:hidden", children: links
|
|
31
41
|
.filter((v) => v.type !== 'icon')
|
|
32
|
-
.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx("div", { className: "
|
|
42
|
+
.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx("div", { className: "py-4", children: _jsx(SidebarPageTree, { components: sidebarComponents }) })] }), _jsxs(SidebarFooter, { children: [_jsx(SidebarFooterItems, { sidebarCollapsible: collapsible, i18n: i18n, disableThemeSwitch: props.disableThemeSwitch ?? false, iconItems: links.filter((v) => v.type === 'icon') }), sidebarFooter] })] }), {
|
|
33
43
|
...sidebar,
|
|
34
44
|
tabs,
|
|
35
|
-
}), props.children] })] }) }));
|
|
45
|
+
}), _jsx(StylesProvider, { ...pageStyles, children: props.children })] })] }) }));
|
|
36
46
|
}
|
|
37
47
|
function SidebarHeaderItems({ links, ...props }) {
|
|
38
48
|
const isEmpty = !props.title && !props.children && links.length === 0;
|
package/dist/layouts/home.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { HTMLAttributes
|
|
1
|
+
import type { HTMLAttributes } from 'react';
|
|
2
2
|
import { type BaseLayoutProps } from './shared';
|
|
3
3
|
export type HomeLayoutProps = BaseLayoutProps & HTMLAttributes<HTMLElement>;
|
|
4
|
-
export declare function HomeLayout(
|
|
4
|
+
export declare function HomeLayout(props: HomeLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=home.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/layouts/home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../src/layouts/home.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAgC1D,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAE5E,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CA0ChD"}
|
package/dist/layouts/home.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { replaceOrDefault } from '../layouts/shared';
|
|
3
3
|
import { cn } from '../utils/cn';
|
|
4
4
|
import { getLinks } from './shared';
|
|
@@ -13,38 +13,39 @@ import { buttonVariants } from '../components/ui/button';
|
|
|
13
13
|
import { SearchOnly } from '../contexts/search';
|
|
14
14
|
import Link from 'fumadocs-core/link';
|
|
15
15
|
import { MenuLinkItem } from '../layouts/home/menu';
|
|
16
|
-
export function HomeLayout(
|
|
16
|
+
export function HomeLayout(props) {
|
|
17
|
+
const { nav, links, githubUrl, i18n: _i18n, disableThemeSwitch: _disableThemeSwitch, ...rest } = props;
|
|
17
18
|
const finalLinks = getLinks(links, githubUrl);
|
|
18
|
-
|
|
19
|
-
const menuItems = finalLinks.filter((item) => ['menu', 'all'].includes(item.on ?? 'all'));
|
|
20
|
-
return (_jsx(NavProvider, { transparentMode: transparentMode, children: _jsxs("main", { id: "nd-home-layout", ...props, className: cn('flex flex-1 flex-col pt-[var(--fd-nav-height)] [--fd-nav-height:56px]', props.className), children: [replaceOrDefault(nav, _jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": "true", className: "fixed inset-x-0 top-[var(--fd-banner-height)] z-40 h-6 bg-fd-background", style: {
|
|
19
|
+
return (_jsx(NavProvider, { transparentMode: nav?.transparentMode, children: _jsxs("main", { id: "nd-home-layout", ...rest, className: cn('flex flex-1 flex-col pt-[var(--fd-nav-height)] [--fd-nav-height:56px]', rest.className), children: [replaceOrDefault(nav, _jsxs(_Fragment, { children: [_jsx("div", { "aria-hidden": "true", className: "fixed inset-x-0 top-[var(--fd-banner-height)] z-40 h-6 bg-fd-background", style: {
|
|
21
20
|
maskImage: 'linear-gradient(to bottom,white,transparent)',
|
|
22
|
-
} }),
|
|
23
|
-
.filter((item) => !isSecondary(item))
|
|
24
|
-
.map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm" }, i))) }), _jsxs("div", { className: "flex flex-1 flex-row items-center justify-end lg:gap-1.5", children: [enableSearch ? (_jsxs(SearchOnly, { children: [_jsx(SearchToggle, { className: "lg:hidden" }), _jsx(LargeSearchToggle, { className: "w-full max-w-[240px] max-lg:hidden" })] })) : null, !disableThemeSwitch ? (_jsx(ThemeToggle, { className: "max-lg:hidden" })) : null, i18n ? (_jsx(LanguageToggle, { className: "-me-1.5 max-lg:hidden", children: _jsx(Languages, { className: "size-5" }) })) : null, navItems.filter(isSecondary).map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "-me-1.5 list-none max-lg:hidden" }, i))), _jsxs(NavigationMenuItem, { className: "list-none lg:hidden", children: [_jsx(NavigationMenuTrigger, { className: cn(buttonVariants({
|
|
25
|
-
size: 'icon',
|
|
26
|
-
color: 'ghost',
|
|
27
|
-
}), 'group -me-2'), children: _jsx(ChevronDown, { className: "size-3 transition-transform duration-300 group-data-[state=open]:rotate-180" }) }), _jsxs(NavigationMenuContent, { className: "flex flex-col p-4 sm:flex-row sm:items-center sm:justify-end", children: [menuItems
|
|
28
|
-
.filter((item) => !isSecondary(item))
|
|
29
|
-
.map((item, i) => (_jsx(MenuLinkItem, { item: item, className: "sm:hidden" }, i))), _jsxs("div", { className: "-ms-1.5 flex flex-row items-center gap-1.5 max-sm:mt-2", children: [menuItems.filter(isSecondary).map((item, i) => (_jsx(MenuLinkItem, { item: item, className: "-me-1.5" }, i))), _jsx("div", { role: "separator", className: "flex-1" }), i18n ? (_jsxs(LanguageToggle, { children: [_jsx(Languages, { className: "size-5" }), _jsx(LanguageToggleText, {}), _jsx(ChevronDown, { className: "size-3 text-fd-muted-foreground" })] })) : null, !disableThemeSwitch ? _jsx(ThemeToggle, {}) : null] })] })] })] })] })] }), {
|
|
21
|
+
} }), _jsx(Header, { finalLinks: finalLinks, ...props })] }), {
|
|
30
22
|
items: finalLinks,
|
|
31
|
-
i18n,
|
|
32
|
-
enableSearch,
|
|
33
|
-
disableThemeSwitch,
|
|
34
|
-
...nav,
|
|
35
23
|
}), props.children] }) }));
|
|
36
24
|
}
|
|
25
|
+
function Header({ nav: { enableSearch = true, ...nav } = {}, i18n = false, finalLinks, disableThemeSwitch, }) {
|
|
26
|
+
const navItems = finalLinks.filter((item) => ['nav', 'all'].includes(item.on ?? 'all'));
|
|
27
|
+
const menuItems = finalLinks.filter((item) => ['menu', 'all'].includes(item.on ?? 'all'));
|
|
28
|
+
return (_jsxs(Navbar, { children: [_jsx(Title, { title: nav.title, url: nav.url }), nav.children, _jsx(NavigationMenuList, { className: "flex flex-row items-center gap-2 max-sm:hidden", children: navItems
|
|
29
|
+
.filter((item) => !isSecondary(item))
|
|
30
|
+
.map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm" }, i))) }), _jsxs("div", { className: "flex flex-1 flex-row items-center justify-end lg:gap-1.5", children: [enableSearch ? (_jsxs(SearchOnly, { children: [_jsx(SearchToggle, { className: "lg:hidden" }), _jsx(LargeSearchToggle, { className: "w-full max-w-[240px] max-lg:hidden" })] })) : null, !disableThemeSwitch ? _jsx(ThemeToggle, { className: "max-lg:hidden" }) : null, i18n ? (_jsx(LanguageToggle, { className: "-me-1.5 max-lg:hidden", children: _jsx(Languages, { className: "size-5" }) })) : null, navItems.filter(isSecondary).map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "-me-1.5 list-none max-lg:hidden" }, i))), _jsxs(NavigationMenuItem, { className: "list-none lg:hidden", children: [_jsx(NavigationMenuTrigger, { className: cn(buttonVariants({
|
|
31
|
+
size: 'icon',
|
|
32
|
+
color: 'ghost',
|
|
33
|
+
}), 'group -me-2'), children: _jsx(ChevronDown, { className: "size-3 transition-transform duration-300 group-data-[state=open]:rotate-180" }) }), _jsxs(NavigationMenuContent, { className: "flex flex-col p-4 sm:flex-row sm:items-center sm:justify-end", children: [menuItems
|
|
34
|
+
.filter((item) => !isSecondary(item))
|
|
35
|
+
.map((item, i) => (_jsx(MenuLinkItem, { item: item, className: "sm:hidden" }, i))), _jsxs("div", { className: "-ms-1.5 flex flex-row items-center gap-1.5 max-sm:mt-2", children: [menuItems.filter(isSecondary).map((item, i) => (_jsx(MenuLinkItem, { item: item, className: "-me-1.5" }, i))), _jsx("div", { role: "separator", className: "flex-1" }), i18n ? (_jsxs(LanguageToggle, { children: [_jsx(Languages, { className: "size-5" }), _jsx(LanguageToggleText, {}), _jsx(ChevronDown, { className: "size-3 text-fd-muted-foreground" })] })) : null, !disableThemeSwitch ? _jsx(ThemeToggle, {}) : null] })] })] })] })] }));
|
|
36
|
+
}
|
|
37
37
|
function NavbarLinkItem({ item, ...props }) {
|
|
38
38
|
if (item.type === 'custom')
|
|
39
39
|
return _jsx("div", { ...props, children: item.children });
|
|
40
40
|
if (item.type === 'menu') {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
const children = item.items.map((child, j) => {
|
|
42
|
+
if (child.type === 'custom')
|
|
43
|
+
return _jsx("div", { children: child.children }, j);
|
|
44
|
+
const { banner, footer, ...rest } = child.menu ?? {};
|
|
45
|
+
return (_jsxs(NavbarMenuItem, { href: child.url, ...rest, children: [banner ??
|
|
46
|
+
(child.icon ? (_jsx("div", { className: "w-fit rounded-md border bg-fd-muted p-1 [&_svg]:size-4", children: child.icon })) : null), _jsx("p", { className: "-mb-1 text-sm font-medium", children: child.text }), child.description ? (_jsx("p", { className: "text-[13px] text-fd-muted-foreground", children: child.description })) : null, footer] }, j));
|
|
47
|
+
});
|
|
48
|
+
return (_jsxs(NavbarMenu, { children: [_jsx(NavbarMenuTrigger, { ...props, children: item.url ? _jsx(Link, { href: item.url, children: item.text }) : item.text }), _jsx(NavbarMenuContent, { children: children })] }));
|
|
48
49
|
}
|
|
49
50
|
return (_jsx(NavbarLink, { ...props, item: item, variant: item.type, "aria-label": item.type === 'icon' ? item.label : undefined, children: item.type === 'icon' ? item.icon : item.text }));
|
|
50
51
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { ButtonHTMLAttributes, HTMLAttributes } from 'react';
|
|
2
|
-
export declare function
|
|
3
|
-
export declare function SubNavbar(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function Navbar(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
3
|
export declare function NavbarSidebarTrigger(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
5
4
|
//# sourceMappingURL=notebook.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook.client.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOlE,wBAAgB,
|
|
1
|
+
{"version":3,"file":"notebook.client.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.client.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOlE,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,2CA0BxD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAkB/C"}
|
|
@@ -6,21 +6,13 @@ import { useNav } from '../components/layout/nav';
|
|
|
6
6
|
import { SidebarTrigger } from 'fumadocs-core/sidebar';
|
|
7
7
|
import { buttonVariants } from '../components/ui/button';
|
|
8
8
|
import { Menu, X } from 'lucide-react';
|
|
9
|
-
export function
|
|
10
|
-
return (_jsx("main", { id: "nd-docs-layout", ...props, className: cn('flex w-full flex-1 flex-row', props.className), style: {
|
|
11
|
-
...props.style,
|
|
12
|
-
'--fd-layout-offset': 'max(calc(50vw - var(--fd-layout-width) / 2), 0px)',
|
|
13
|
-
paddingInlineEnd: 'var(--fd-layout-offset)',
|
|
14
|
-
}, children: props.children }));
|
|
15
|
-
}
|
|
16
|
-
export function SubNavbar(props) {
|
|
9
|
+
export function Navbar(props) {
|
|
17
10
|
const { open, collapsed } = useSidebar();
|
|
18
11
|
const { isTransparent } = useNav();
|
|
19
|
-
return (_jsx("header", { id: "nd-subnav", ...props, className: cn('fixed inset-x-0 top-[var(--fd-banner-height)] z-10 h-14 backdrop-blur-lg transition-colors', (!isTransparent || open) && 'bg-fd-background/80', props.className), style: {
|
|
12
|
+
return (_jsx("header", { id: "nd-subnav", ...props, className: cn('fixed inset-x-0 top-[var(--fd-banner-height)] z-10 h-14 pe-[var(--fd-layout-offset)] backdrop-blur-lg transition-colors', (!isTransparent || open) && 'bg-fd-background/80', props.className), style: {
|
|
20
13
|
paddingInlineStart: collapsed
|
|
21
14
|
? 'calc(var(--fd-layout-offset))'
|
|
22
15
|
: 'calc(var(--fd-layout-offset) + var(--fd-sidebar-width))',
|
|
23
|
-
paddingInlineEnd: 'var(--fd-layout-offset)',
|
|
24
16
|
}, children: _jsx("div", { className: "mx-auto flex size-full flex-row items-center border-b border-fd-foreground/10 px-4 md:gap-1.5 lg:px-8", children: props.children }) }));
|
|
25
17
|
}
|
|
26
18
|
export function NavbarSidebarTrigger(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AA+B1B,OAAO,
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AA+B1B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;IAEjE,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,EAAE,eAAe,EAAE,GAAG,GAAG,EAAO,EACrC,OAAO,EAAE,EACP,WAAW,EAAE,kBAAyB,EACtC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,iBAAiB,EAC7B,GAAG,OAAO,EACN,EACN,IAAY,EACZ,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,SAAS,CA0E7B"}
|
package/dist/layouts/notebook.js
CHANGED
|
@@ -16,18 +16,28 @@ import { BaseLinkItem } from '../layouts/links';
|
|
|
16
16
|
import { LanguageToggle } from '../components/layout/language-toggle';
|
|
17
17
|
import { ThemeToggle } from '../components/layout/theme-toggle';
|
|
18
18
|
import { Popover, PopoverContent, PopoverTrigger, } from '../components/ui/popover';
|
|
19
|
-
import { getSidebarTabsFromOptions, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
20
|
-
import {
|
|
19
|
+
import { getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared';
|
|
20
|
+
import { Navbar, NavbarSidebarTrigger } from './notebook.client';
|
|
21
|
+
import { StylesProvider } from '../contexts/layout';
|
|
21
22
|
export function DocsLayout({ nav: { transparentMode, ...nav } = {}, sidebar: { collapsible: sidebarCollapsible = true, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar } = {}, i18n = false, ...props }) {
|
|
22
23
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
23
24
|
const Aside = sidebarCollapsible ? CollapsibleSidebar : Sidebar;
|
|
24
25
|
if (props.tree === undefined)
|
|
25
26
|
notFound();
|
|
26
27
|
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
27
|
-
|
|
28
|
+
const variables = cn('[--fd-nav-height:3.5rem] [--fd-tocnav-height:36px] md:[--fd-sidebar-width:268px] xl:[--fd-toc-width:268px] xl:[--fd-tocnav-height:0px]');
|
|
29
|
+
const pageStyles = {
|
|
30
|
+
tocNav: cn('lg:px-4 xl:hidden'),
|
|
31
|
+
toc: cn('max-xl:hidden'),
|
|
32
|
+
page: cn('mt-[var(--fd-nav-height)]'),
|
|
33
|
+
};
|
|
34
|
+
return (_jsx(TreeContextProvider, { tree: props.tree, children: _jsx(NavProvider, { transparentMode: transparentMode, children: _jsxs("main", { id: "nd-docs-layout", ...props.containerProps, className: cn('flex w-full flex-1 flex-row pe-[var(--fd-layout-offset)]', variables, props.containerProps?.className), style: {
|
|
35
|
+
...layoutVariables,
|
|
36
|
+
...props.containerProps?.style,
|
|
37
|
+
}, children: [_jsxs(Aside, { ...sidebar, className: cn('md:ps-[var(--fd-layout-offset)] md:[--fd-nav-height:0px]', sidebar.className), children: [_jsxs(SidebarHeader, { children: [_jsxs(SidebarHeaderItems, { nav: nav, links: links, children: [nav.children, sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "ms-auto text-fd-muted-foreground" })) : null] }), sidebarBanner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "pt-4 empty:hidden lg:hidden", children: links.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx("div", { className: "py-4", children: _jsx(SidebarPageTree, { components: sidebarComponents }) })] }), _jsx(SidebarFooter, { children: sidebarFooter })] }), _jsx(DocsNavbar, { nav: nav, links: links, i18n: i18n, sidebarCollapsible: sidebarCollapsible }), _jsx(StylesProvider, { ...pageStyles, children: props.children })] }) }) }));
|
|
28
38
|
}
|
|
29
39
|
function DocsNavbar({ sidebarCollapsible, links, nav = {}, i18n, }) {
|
|
30
|
-
return (_jsxs(
|
|
40
|
+
return (_jsxs(Navbar, { children: [sidebarCollapsible ? (_jsx(SidebarCollapseTrigger, { className: "-ms-1.5 text-fd-muted-foreground data-[collapsed=false]:hidden max-md:hidden" })) : null, _jsx(SearchOnly, { children: _jsx(LargeSearchToggle, { className: "w-full max-w-[240px] rounded-lg max-md:hidden" }) }), _jsx(Title, { url: nav.url, title: nav.title, className: "md:hidden" }), _jsxs("div", { className: "flex flex-1 flex-row items-center gap-6 px-2", children: [links
|
|
31
41
|
.filter((item) => item.type !== 'icon')
|
|
32
42
|
.map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground max-lg:hidden" }, i))), nav.children] }), _jsx(SearchOnly, { children: _jsx(SearchToggle, { className: "md:hidden" }) }), _jsx(NavbarSidebarTrigger, { className: "-me-1.5 md:hidden" }), _jsx("div", { className: "flex flex-row items-center empty:hidden max-lg:hidden", children: links
|
|
33
43
|
.filter((item) => item.type === 'icon')
|
package/dist/page.client.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type HTMLAttributes } from 'react';
|
|
2
2
|
import { type BreadcrumbOptions } from 'fumadocs-core/breadcrumb';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function TocNav(props: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function PageBody(props: HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare function PageArticle(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
6
|
export declare function LastUpdate(props: {
|
|
5
7
|
date: Date;
|
|
6
8
|
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.client.d.ts","sourceRoot":"","sources":["../src/page.client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,OAAO,CAAC;AAWf,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"page.client.d.ts","sourceRoot":"","sources":["../src/page.client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EAIpB,MAAM,OAAO,CAAC;AAWf,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CA2B3D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CAY7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,2CAe7D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,2CAc/C;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACzC,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;KACtC,CAAC;CACH;AAiCD,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CA8C5C;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEhD,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,kDAiClD"}
|
package/dist/page.client.js
CHANGED
|
@@ -11,14 +11,24 @@ import { useSidebar } from './contexts/sidebar';
|
|
|
11
11
|
import { usePathname } from 'next/navigation';
|
|
12
12
|
import { useNav } from './components/layout/nav';
|
|
13
13
|
import { getBreadcrumbItemsFromPath, } from 'fumadocs-core/breadcrumb';
|
|
14
|
-
|
|
14
|
+
import { usePageStyles } from './contexts/layout';
|
|
15
|
+
export function TocNav(props) {
|
|
15
16
|
const { open } = useSidebar();
|
|
17
|
+
const { tocNav } = usePageStyles();
|
|
16
18
|
const { isTransparent } = useNav();
|
|
17
|
-
return (_jsx("header", { ...props, className: cn('sticky top-fd-layout-top z-10 flex flex-row items-center border-b border-fd-foreground/10 text-sm backdrop-blur-md transition-colors', !isTransparent && 'bg-fd-background/80', open && 'opacity-0', props.className), style: {
|
|
19
|
+
return (_jsx("header", { id: "nd-tocnav", ...props, className: cn('sticky top-fd-layout-top z-10 flex flex-row items-center border-b border-fd-foreground/10 text-sm backdrop-blur-md transition-colors', !isTransparent && 'bg-fd-background/80', open && 'opacity-0', tocNav, props.className), style: {
|
|
18
20
|
...props.style,
|
|
19
21
|
'--fd-toc-top-with-offset': 'calc(4px + var(--fd-banner-height) + var(--fd-nav-height))',
|
|
20
22
|
}, children: props.children }));
|
|
21
23
|
}
|
|
24
|
+
export function PageBody(props) {
|
|
25
|
+
const { page } = usePageStyles();
|
|
26
|
+
return (_jsx("div", { id: "nd-page", ...props, className: cn('flex w-full min-w-0 flex-col', page, props.className), children: props.children }));
|
|
27
|
+
}
|
|
28
|
+
export function PageArticle(props) {
|
|
29
|
+
const { article } = usePageStyles();
|
|
30
|
+
return (_jsx("article", { ...props, className: cn('flex w-full flex-1 flex-col gap-6 px-4 pt-8 md:pt-12 lg:px-8 xl:mx-auto', article, props.className), children: props.children }));
|
|
31
|
+
}
|
|
22
32
|
export function LastUpdate(props) {
|
|
23
33
|
const { text } = useI18n();
|
|
24
34
|
const [date, setDate] = useState('');
|
package/dist/page.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,mBAAmB,CAAC;AAI7E,OAAO,EAEL,KAAK,WAAW,EAIhB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../src/page.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EACL,KAAK,oBAAoB,EAEzB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,mBAAmB,CAAC;AAI7E,OAAO,EAEL,KAAK,WAAW,EAIhB,KAAK,eAAe,EAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAML,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAMjC,KAAK,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAC,GAC/D,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEJ,KAAK,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;AAE1E,UAAU,mBACR,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1E,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,UAAU,iBAAkB,SAAQ,eAAe;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,aAAc,SAAQ,WAAW;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,eAAe,CAAC;IAEtB;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChD,qBAAqB,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAE9D;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEhC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAEpC,SAAS,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,EACvB,GAAQ,EACR,IAAY,EACZ,qBAAqB,EAAE,EACrB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,iBAAiB,EAC5B,GAAG,iBAAiB,EAChB,EACN,cAAc,EAAE,EACd,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,UAAU,EACrB,GAAG,UAAU,EACT,EACN,GAAG,KAAK,EACT,EAAE,aAAa,GAAG,SAAS,CAmG3B;AA+BD;;GAEG;AACH,eAAO,MAAM,QAAQ,2HAKnB,CAAC;AAIH,eAAO,MAAM,eAAe,uIAgB1B,CAAC;AAIH,eAAO,MAAM,SAAS,mIAapB,CAAC;AAwBH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,IAAI,EACJ,IAAI,EAAE,UAAU,EAChB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC;CACtB,kDAmCA;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,GAAG,SAAS,CAM5E"}
|
package/dist/page.js
CHANGED
|
@@ -4,7 +4,7 @@ import { AnchorProvider } from 'fumadocs-core/toc';
|
|
|
4
4
|
import { Card, Cards } from './components/card';
|
|
5
5
|
import { replaceOrDefault } from './layouts/shared';
|
|
6
6
|
import { cn } from './utils/cn';
|
|
7
|
-
import { Footer, LastUpdate,
|
|
7
|
+
import { Footer, LastUpdate, TocNav, Breadcrumb, PageBody, PageArticle, } from './page.client';
|
|
8
8
|
import { Toc, TOCItems, TocPopoverTrigger, TocPopover, TocPopoverContent, } from './components/layout/toc';
|
|
9
9
|
import { buttonVariants } from './components/ui/button';
|
|
10
10
|
import { Edit, Text } from 'lucide-react';
|
|
@@ -19,16 +19,16 @@ export function DocsPage({ toc = [], full = false, tableOfContentPopover: { enab
|
|
|
19
19
|
tocPopoverEnabled ?? (tocPopoverEnabled = toc.length > 0 ||
|
|
20
20
|
tocPopoverOptions.header !== undefined ||
|
|
21
21
|
tocPopoverOptions.footer !== undefined);
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}, children: [replaceOrDefault({ enabled: tocPopoverEnabled, component: tocPopoverReplace }, _jsx(
|
|
22
|
+
return (_jsxs(AnchorProvider, { toc: toc, single: tocOptions.single, children: [_jsxs(PageBody, { ...props.container, className: cn(props.container?.className), style: {
|
|
23
|
+
'--fd-tocnav-height': !tocPopoverEnabled ? '0px' : undefined,
|
|
24
|
+
...props.container?.style,
|
|
25
|
+
}, children: [replaceOrDefault({ enabled: tocPopoverEnabled, component: tocPopoverReplace }, _jsx(TocNav, { children: _jsxs(TocPopover, { children: [_jsx(TocPopoverTrigger, { className: "size-full", items: toc }), _jsxs(TocPopoverContent, { children: [tocPopoverOptions.header, tocPopoverOptions.style === 'clerk' ? (_jsx(ClerkTOCItems, { items: toc, isMenu: true })) : (_jsx(TOCItems, { items: toc, isMenu: true })), tocPopoverOptions.footer] })] }) }), {
|
|
26
26
|
items: toc,
|
|
27
27
|
...tocPopoverOptions,
|
|
28
|
-
}), _jsxs(
|
|
28
|
+
}), _jsxs(PageArticle, { ...props.article, className: cn(full || !tocEnabled ? 'max-w-[1120px]' : 'max-w-[860px]', props.article?.className), children: [replaceOrDefault(props.breadcrumb, _jsx(Breadcrumb, { includePage: props.breadcrumb?.full, ...props.breadcrumb })), props.children, _jsx("div", { role: "none", className: "flex-1" }), _jsxs("div", { className: "flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden", children: [props.editOnGithub ? (_jsx(EditOnGitHub, { ...props.editOnGithub })) : null, props.lastUpdate ? (_jsx(LastUpdate, { date: new Date(props.lastUpdate) })) : null] }), replaceOrDefault(props.footer, _jsx(Footer, { items: props.footer?.items }))] })] }), replaceOrDefault({ enabled: tocEnabled, component: tocReplace }, _jsxs(Toc, { children: [tocOptions.header, _jsxs("h3", { className: "-ms-0.5 inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground", children: [_jsx(Text, { className: "size-4" }), _jsx(I18nLabel, { label: "toc" })] }), tocOptions.style === 'clerk' ? (_jsx(ClerkTOCItems, { items: toc })) : (_jsx(TOCItems, { items: toc })), tocOptions.footer] }), {
|
|
29
29
|
items: toc,
|
|
30
30
|
...tocOptions,
|
|
31
|
-
}
|
|
31
|
+
})] }));
|
|
32
32
|
}
|
|
33
33
|
function EditOnGitHub({ owner, repo, sha, path, ...props }) {
|
|
34
34
|
const href = `https://github.com/${owner}/${repo}/blob/${sha}/${path.startsWith('/') ? path.slice(1) : path}`;
|
|
@@ -69,10 +69,12 @@ function findParent(node, page) {
|
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
export function DocsCategory({ page, from, tree: forcedTree, ...props }) {
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
let tree = forcedTree;
|
|
73
|
+
if (!tree) {
|
|
74
|
+
tree = from._i18n
|
|
74
75
|
? from.pageTree[page.locale ?? from._i18n.defaultLanguage]
|
|
75
|
-
: from.pageTree
|
|
76
|
+
: from.pageTree;
|
|
77
|
+
}
|
|
76
78
|
const parent = findParent(tree, page);
|
|
77
79
|
if (!parent)
|
|
78
80
|
return null;
|
package/dist/provider.d.ts
CHANGED
|
@@ -38,4 +38,5 @@ export { useI18n, I18nLabel } from './contexts/i18n';
|
|
|
38
38
|
export { SearchProvider, SearchOnly, useSearchContext, type SearchProviderProps, } from './contexts/search';
|
|
39
39
|
export { SidebarProvider, useSidebar } from './contexts/sidebar';
|
|
40
40
|
export { useTreePath, useTreeContext, TreeContextProvider, } from './contexts/tree';
|
|
41
|
+
export { StylesProvider, usePageStyles, type PageStyles, } from './contexts/layout';
|
|
41
42
|
//# sourceMappingURL=provider.d.ts.map
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,UAAU,aACR,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7E;;;;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,QAAQ,EAAE,SAAS,CAAC;CACrB;AAOD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAG,EACH,KAAK,EAAE,EAAE,OAAc,EAAE,GAAG,KAAK,EAAO,EACxC,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA4BxC;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,UAAU,aACR,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAC;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7E;;;;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,QAAQ,EAAE,SAAS,CAAC;CACrB;AAOD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAG,EACH,KAAK,EAAE,EAAE,OAAc,EAAE,GAAG,KAAK,EAAO,EACxC,MAAM,GACP,EAAE,iBAAiB,GAAG,KAAK,CAAC,YAAY,CA4BxC;AAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EACL,WAAW,EACX,cAAc,EACd,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,mBAAmB,CAAC"}
|
package/dist/provider.js
CHANGED
|
@@ -18,3 +18,4 @@ export { useI18n, I18nLabel } from './contexts/i18n';
|
|
|
18
18
|
export { SearchProvider, SearchOnly, useSearchContext, } from './contexts/search';
|
|
19
19
|
export { SidebarProvider, useSidebar } from './contexts/sidebar';
|
|
20
20
|
export { useTreePath, useTreeContext, TreeContextProvider, } from './contexts/tree';
|
|
21
|
+
export { StylesProvider, usePageStyles, } from './contexts/layout';
|
package/dist/style.css
CHANGED
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
--tw-contain-paint: ;
|
|
106
106
|
--tw-contain-style: ;
|
|
107
107
|
}/*
|
|
108
|
-
! tailwindcss v3.4.
|
|
108
|
+
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
|
|
109
109
|
*//*
|
|
110
110
|
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
|
111
111
|
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
|
|
@@ -530,15 +530,15 @@ video {
|
|
|
530
530
|
}
|
|
531
531
|
|
|
532
532
|
.dark {
|
|
533
|
-
--background: 0 0% 8.
|
|
533
|
+
--background: 0 0% 8.04%;
|
|
534
534
|
--foreground: 0 0% 92%;
|
|
535
535
|
--muted: 0 0% 12.9%;
|
|
536
536
|
--muted-foreground: 0 0% 60.9%;
|
|
537
537
|
--popover: 0 0% 9.8%;
|
|
538
538
|
--popover-foreground: 0 0% 88%;
|
|
539
|
-
--card: 0 0%
|
|
539
|
+
--card: 0 0% 9.8%;
|
|
540
540
|
--card-foreground: 0 0% 98%;
|
|
541
|
-
--border: 0 0%
|
|
541
|
+
--border: 0 0% 14%;
|
|
542
542
|
--primary: 0 0% 98%;
|
|
543
543
|
--primary-foreground: 0 0% 9%;
|
|
544
544
|
--secondary: 0 0% 12.9%;
|
|
@@ -1044,9 +1044,6 @@ body {
|
|
|
1044
1044
|
.start-0 {
|
|
1045
1045
|
inset-inline-start: 0px;
|
|
1046
1046
|
}
|
|
1047
|
-
.start-2 {
|
|
1048
|
-
inset-inline-start: 0.5rem;
|
|
1049
|
-
}
|
|
1050
1047
|
.top-0 {
|
|
1051
1048
|
top: 0px;
|
|
1052
1049
|
}
|
|
@@ -1173,6 +1170,9 @@ body {
|
|
|
1173
1170
|
.mt-8 {
|
|
1174
1171
|
margin-top: 2rem;
|
|
1175
1172
|
}
|
|
1173
|
+
.mt-\[var\(--fd-nav-height\)\] {
|
|
1174
|
+
margin-top: var(--fd-nav-height);
|
|
1175
|
+
}
|
|
1176
1176
|
.mt-\[var\(--fd-top\)\] {
|
|
1177
1177
|
margin-top: var(--fd-top);
|
|
1178
1178
|
}
|
|
@@ -1665,8 +1665,8 @@ body {
|
|
|
1665
1665
|
.pe-2 {
|
|
1666
1666
|
padding-inline-end: 0.5rem;
|
|
1667
1667
|
}
|
|
1668
|
-
.pe-
|
|
1669
|
-
padding-inline-end:
|
|
1668
|
+
.pe-\[var\(--fd-layout-offset\)\] {
|
|
1669
|
+
padding-inline-end: var(--fd-layout-offset);
|
|
1670
1670
|
}
|
|
1671
1671
|
.ps-1\.5 {
|
|
1672
1672
|
padding-inline-start: 0.375rem;
|
|
@@ -1903,6 +1903,9 @@ body {
|
|
|
1903
1903
|
.\[--fd-nav-height\:56px\] {
|
|
1904
1904
|
--fd-nav-height: 56px;
|
|
1905
1905
|
}
|
|
1906
|
+
.\[--fd-tocnav-height\:36px\] {
|
|
1907
|
+
--fd-tocnav-height: 36px;
|
|
1908
|
+
}
|
|
1906
1909
|
.\[--radix-collapsible-content-height\:0px\] {
|
|
1907
1910
|
--radix-collapsible-content-height: 0px;
|
|
1908
1911
|
}
|
|
@@ -2004,8 +2007,8 @@ body {
|
|
|
2004
2007
|
opacity: 1;
|
|
2005
2008
|
}
|
|
2006
2009
|
|
|
2007
|
-
.data-\[collapsed\=false\]\:
|
|
2008
|
-
|
|
2010
|
+
.data-\[collapsed\=false\]\:invisible[data-collapsed="false"] {
|
|
2011
|
+
visibility: hidden;
|
|
2009
2012
|
}
|
|
2010
2013
|
|
|
2011
2014
|
.data-\[collapsed\=false\]\:hidden[data-collapsed="false"] {
|
|
@@ -2304,10 +2307,6 @@ body {
|
|
|
2304
2307
|
color: hsl(var(--primary) / var(--tw-text-opacity, 1));
|
|
2305
2308
|
}
|
|
2306
2309
|
|
|
2307
|
-
.data-\[collapsed\=false\]\:opacity-0[data-collapsed="false"] {
|
|
2308
|
-
opacity: 0;
|
|
2309
|
-
}
|
|
2310
|
-
|
|
2311
2310
|
.group[data-state="closed"] .group-data-\[state\=closed\]\:-rotate-90 {
|
|
2312
2311
|
--tw-rotate: -90deg;
|
|
2313
2312
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
@@ -2348,9 +2347,8 @@ body {
|
|
|
2348
2347
|
|
|
2349
2348
|
@media not all and (min-width: 1280px) {
|
|
2350
2349
|
|
|
2351
|
-
.max-xl\:
|
|
2352
|
-
|
|
2353
|
-
margin-right: 0px;
|
|
2350
|
+
.max-xl\:hidden {
|
|
2351
|
+
display: none;
|
|
2354
2352
|
}
|
|
2355
2353
|
}
|
|
2356
2354
|
|
|
@@ -2439,11 +2437,6 @@ body {
|
|
|
2439
2437
|
order: -9999;
|
|
2440
2438
|
}
|
|
2441
2439
|
|
|
2442
|
-
.md\:-mx-2 {
|
|
2443
|
-
margin-left: -0.5rem;
|
|
2444
|
-
margin-right: -0.5rem;
|
|
2445
|
-
}
|
|
2446
|
-
|
|
2447
2440
|
.md\:-me-\[var\(--fd-sidebar-width\)\] {
|
|
2448
2441
|
margin-inline-end: calc(var(--fd-sidebar-width) * -1);
|
|
2449
2442
|
}
|
|
@@ -2468,10 +2461,6 @@ body {
|
|
|
2468
2461
|
width: var(--fd-sidebar-width);
|
|
2469
2462
|
}
|
|
2470
2463
|
|
|
2471
|
-
.md\:flex-1 {
|
|
2472
|
-
flex: 1 1 0%;
|
|
2473
|
-
}
|
|
2474
|
-
|
|
2475
2464
|
.md\:translate-x-0 {
|
|
2476
2465
|
--tw-translate-x: 0px;
|
|
2477
2466
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
@@ -2499,20 +2488,11 @@ body {
|
|
|
2499
2488
|
padding-right: 0.5rem;
|
|
2500
2489
|
}
|
|
2501
2490
|
|
|
2502
|
-
.md\:px-3 {
|
|
2503
|
-
padding-left: 0.75rem;
|
|
2504
|
-
padding-right: 0.75rem;
|
|
2505
|
-
}
|
|
2506
|
-
|
|
2507
2491
|
.md\:py-1\.5 {
|
|
2508
2492
|
padding-top: 0.375rem;
|
|
2509
2493
|
padding-bottom: 0.375rem;
|
|
2510
2494
|
}
|
|
2511
2495
|
|
|
2512
|
-
.md\:pe-1\.5 {
|
|
2513
|
-
padding-inline-end: 0.375rem;
|
|
2514
|
-
}
|
|
2515
|
-
|
|
2516
2496
|
.md\:ps-\[var\(--fd-layout-offset\)\] {
|
|
2517
2497
|
padding-inline-start: var(--fd-layout-offset);
|
|
2518
2498
|
}
|
|
@@ -2529,12 +2509,6 @@ body {
|
|
|
2529
2509
|
opacity: 0;
|
|
2530
2510
|
}
|
|
2531
2511
|
|
|
2532
|
-
.md\:transition-\[max-width\] {
|
|
2533
|
-
transition-property: max-width;
|
|
2534
|
-
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
2535
|
-
transition-duration: 150ms;
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
2512
|
.md\:transition-all {
|
|
2539
2513
|
transition-property: all;
|
|
2540
2514
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -2545,12 +2519,8 @@ body {
|
|
|
2545
2519
|
--fd-nav-height: 0px;
|
|
2546
2520
|
}
|
|
2547
2521
|
|
|
2548
|
-
.md\:\[--fd-sidebar-width\:
|
|
2549
|
-
--fd-sidebar-width:
|
|
2550
|
-
}
|
|
2551
|
-
|
|
2552
|
-
.md\:data-\[collapsed\=true\]\:flex-initial[data-collapsed="true"] {
|
|
2553
|
-
flex: 0 1 auto;
|
|
2522
|
+
.md\:\[--fd-sidebar-width\:268px\] {
|
|
2523
|
+
--fd-sidebar-width: 268px;
|
|
2554
2524
|
}
|
|
2555
2525
|
}
|
|
2556
2526
|
|
|
@@ -2588,20 +2558,34 @@ body {
|
|
|
2588
2558
|
border-width: 1px;
|
|
2589
2559
|
}
|
|
2590
2560
|
|
|
2561
|
+
.lg\:px-4 {
|
|
2562
|
+
padding-left: 1rem;
|
|
2563
|
+
padding-right: 1rem;
|
|
2564
|
+
}
|
|
2565
|
+
|
|
2591
2566
|
.lg\:px-8 {
|
|
2592
2567
|
padding-left: 2rem;
|
|
2593
2568
|
padding-right: 2rem;
|
|
2594
2569
|
}
|
|
2595
|
-
|
|
2596
|
-
.lg\:\[--fd-toc-width\:260px\] {
|
|
2597
|
-
--fd-toc-width: 260px;
|
|
2598
|
-
}
|
|
2599
2570
|
}
|
|
2600
2571
|
|
|
2601
2572
|
@media (min-width: 1280px) {
|
|
2602
2573
|
|
|
2603
|
-
.xl
|
|
2604
|
-
|
|
2574
|
+
.xl\:mx-auto {
|
|
2575
|
+
margin-left: auto;
|
|
2576
|
+
margin-right: auto;
|
|
2577
|
+
}
|
|
2578
|
+
|
|
2579
|
+
.xl\:hidden {
|
|
2580
|
+
display: none;
|
|
2581
|
+
}
|
|
2582
|
+
|
|
2583
|
+
.xl\:\[--fd-toc-width\:268px\] {
|
|
2584
|
+
--fd-toc-width: 268px;
|
|
2585
|
+
}
|
|
2586
|
+
|
|
2587
|
+
.xl\:\[--fd-tocnav-height\:0px\] {
|
|
2588
|
+
--fd-tocnav-height: 0px;
|
|
2605
2589
|
}
|
|
2606
2590
|
}
|
|
2607
2591
|
|
|
@@ -2635,47 +2619,6 @@ body {
|
|
|
2635
2619
|
border-style: none;
|
|
2636
2620
|
}
|
|
2637
2621
|
|
|
2638
|
-
.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg {
|
|
2639
|
-
--tw-rotate: 180deg;
|
|
2640
|
-
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
2641
|
-
}
|
|
2642
|
-
|
|
2643
|
-
.\[\&_\#nd-page\]\:mt-\[var\(--fd-nav-height\)\] #nd-page {
|
|
2644
|
-
margin-top: var(--fd-nav-height);
|
|
2645
|
-
}
|
|
2646
|
-
|
|
2647
|
-
.\[\&_\#nd-page\]\:max-w-\[calc\(min\(100vw\2c var\(--fd-layout-width\)\)-var\(--fd-sidebar-width\)-var\(--fd-toc-width\)\)\] #nd-page {
|
|
2648
|
-
max-width: calc(min(100vw,var(--fd-layout-width)) - var(--fd-sidebar-width) - var(--fd-toc-width));
|
|
2649
|
-
}
|
|
2650
|
-
|
|
2651
|
-
@media not all and (min-width: 1280px) {
|
|
2652
|
-
|
|
2653
|
-
.\[\&_\#nd-toc\]\:max-xl\:hidden #nd-toc {
|
|
2654
|
-
display: none;
|
|
2655
|
-
}
|
|
2656
|
-
}
|
|
2657
|
-
|
|
2658
|
-
@media not all and (min-width: 1024px) {
|
|
2659
|
-
|
|
2660
|
-
.\[\&_\#nd-toc\]\:max-lg\:hidden #nd-toc {
|
|
2661
|
-
display: none;
|
|
2662
|
-
}
|
|
2663
|
-
}
|
|
2664
|
-
|
|
2665
|
-
@media (min-width: 1024px) {
|
|
2666
|
-
|
|
2667
|
-
.\[\&_\#nd-tocnav\]\:lg\:hidden #nd-tocnav {
|
|
2668
|
-
display: none;
|
|
2669
|
-
}
|
|
2670
|
-
}
|
|
2671
|
-
|
|
2672
|
-
@media (min-width: 1280px) {
|
|
2673
|
-
|
|
2674
|
-
.\[\&_\#nd-tocnav\]\:xl\:hidden #nd-tocnav {
|
|
2675
|
-
display: none;
|
|
2676
|
-
}
|
|
2677
|
-
}
|
|
2678
|
-
|
|
2679
2622
|
.\[\&_svg\]\:size-3\.5 svg {
|
|
2680
2623
|
width: 0.875rem;
|
|
2681
2624
|
height: 0.875rem;
|
package/dist/theme/colors.js
CHANGED
|
@@ -100,15 +100,15 @@ const neutral = {
|
|
|
100
100
|
ring: '0 0% 63.9%',
|
|
101
101
|
},
|
|
102
102
|
dark: {
|
|
103
|
-
background: '0 0% 8.
|
|
103
|
+
background: '0 0% 8.04%',
|
|
104
104
|
foreground: '0 0% 92%',
|
|
105
105
|
muted: '0 0% 12.9%',
|
|
106
106
|
'muted-foreground': '0 0% 60.9%',
|
|
107
107
|
popover: '0 0% 9.8%',
|
|
108
108
|
'popover-foreground': '0 0% 88%',
|
|
109
|
-
card: '0 0%
|
|
109
|
+
card: '0 0% 9.8%',
|
|
110
110
|
'card-foreground': '0 0% 98%',
|
|
111
|
-
border: '0 0%
|
|
111
|
+
border: '0 0% 14%',
|
|
112
112
|
primary: '0 0% 98%',
|
|
113
113
|
'primary-foreground': '0 0% 9%',
|
|
114
114
|
secondary: '0 0% 12.9%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-sidebar-tabs.d.ts","sourceRoot":"","sources":["../../src/utils/get-sidebar-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;
|
|
1
|
+
{"version":3,"file":"get-sidebar-tabs.d.ts","sourceRoot":"","sources":["../../src/utils/get-sidebar-tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtE;AAeD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,CAAC,IAAI,EACvB,EAAE,SAA4B,EAAE,GAAE,UAAe,GAChD,MAAM,EAAE,CA8BV"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
const defaultTransform = (option, node) => {
|
|
3
|
+
if (!node.icon)
|
|
4
|
+
return option;
|
|
5
|
+
return {
|
|
6
|
+
...option,
|
|
7
|
+
icon: (_jsx("div", { className: "rounded-md border bg-fd-secondary p-1 shadow-md [&_svg]:size-5", children: node.icon })),
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export function getSidebarTabs(pageTree, { transform = defaultTransform } = {}) {
|
|
2
11
|
function findOptions(node) {
|
|
3
12
|
const results = [];
|
|
4
13
|
if (node.root) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fumadocs-ui",
|
|
3
|
-
"version": "14.6.
|
|
3
|
+
"version": "14.6.2",
|
|
4
4
|
"description": "The framework for building a documentation website in Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"NextJs",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@radix-ui/react-accordion": "^1.2.2",
|
|
56
56
|
"@radix-ui/react-collapsible": "^1.1.2",
|
|
57
|
-
"@radix-ui/react-dialog": "^1.1.
|
|
57
|
+
"@radix-ui/react-dialog": "^1.1.4",
|
|
58
58
|
"@radix-ui/react-direction": "^1.1.0",
|
|
59
|
-
"@radix-ui/react-navigation-menu": "^1.2.
|
|
60
|
-
"@radix-ui/react-popover": "^1.1.
|
|
59
|
+
"@radix-ui/react-navigation-menu": "^1.2.3",
|
|
60
|
+
"@radix-ui/react-popover": "^1.1.4",
|
|
61
61
|
"@radix-ui/react-scroll-area": "^1.2.2",
|
|
62
62
|
"@radix-ui/react-slot": "^1.1.1",
|
|
63
63
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
@@ -68,22 +68,22 @@
|
|
|
68
68
|
"postcss-selector-parser": "^7.0.0",
|
|
69
69
|
"react-medium-image-zoom": "^5.2.12",
|
|
70
70
|
"tailwind-merge": "^2.5.5",
|
|
71
|
-
"fumadocs-core": "14.6.
|
|
71
|
+
"fumadocs-core": "14.6.2"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@next/eslint-plugin-next": "^15.1.
|
|
74
|
+
"@next/eslint-plugin-next": "^15.1.1",
|
|
75
75
|
"@types/lodash.merge": "^4.6.9",
|
|
76
76
|
"@types/react": "^19.0.1",
|
|
77
77
|
"@types/react-dom": "^19.0.2",
|
|
78
78
|
"autoprefixer": "^10.4.20",
|
|
79
|
-
"next": "15.1.
|
|
79
|
+
"next": "15.1.1",
|
|
80
80
|
"postcss": "^8.4.49",
|
|
81
81
|
"postcss-cli": "^11.0.0",
|
|
82
|
-
"tailwindcss": "^3.4.
|
|
82
|
+
"tailwindcss": "^3.4.17",
|
|
83
83
|
"tsc-alias": "^1.8.10",
|
|
84
84
|
"@fumadocs/cli": "0.0.4",
|
|
85
|
-
"
|
|
86
|
-
"
|
|
85
|
+
"tsconfig": "0.0.0",
|
|
86
|
+
"eslint-config-custom": "0.0.0"
|
|
87
87
|
},
|
|
88
88
|
"peerDependencies": {
|
|
89
89
|
"next": "14.x.x || 15.x.x",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
|
|
2
|
-
export declare function Navbar(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare function NavbarSidebarTrigger(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
//# sourceMappingURL=navbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"navbar.d.ts","sourceRoot":"","sources":["../../../src/layouts/docs/navbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAOvE,wBAAgB,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,2CAgBxD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAkB/C"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useSidebar } from '../../contexts/sidebar';
|
|
4
|
-
import { useNav } from '../../components/layout/nav';
|
|
5
|
-
import { cn } from '../../utils/cn';
|
|
6
|
-
import { SidebarTrigger } from 'fumadocs-core/sidebar';
|
|
7
|
-
import { buttonVariants } from '../../components/ui/button';
|
|
8
|
-
import { Menu, X } from 'lucide-react';
|
|
9
|
-
export function Navbar(props) {
|
|
10
|
-
const { open } = useSidebar();
|
|
11
|
-
const { isTransparent } = useNav();
|
|
12
|
-
return (_jsx("header", { ...props, className: cn('sticky top-[var(--fd-banner-height)] z-30 flex flex-row items-center border-b border-fd-foreground/10 px-4 backdrop-blur-lg transition-colors', (!isTransparent || open) && 'bg-fd-background/80', props.className), children: props.children }));
|
|
13
|
-
}
|
|
14
|
-
export function NavbarSidebarTrigger(props) {
|
|
15
|
-
const { open } = useSidebar();
|
|
16
|
-
return (_jsx(SidebarTrigger, { ...props, className: cn(buttonVariants({
|
|
17
|
-
color: 'ghost',
|
|
18
|
-
size: 'icon',
|
|
19
|
-
}), props.className), children: open ? _jsx(X, {}) : _jsx(Menu, {}) }));
|
|
20
|
-
}
|