fumadocs-ui 15.1.2 → 15.2.0
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/css/shiki.css +11 -11
- package/dist/components/card.js +1 -1
- package/dist/components/dialog/search.d.ts.map +1 -1
- package/dist/components/dialog/search.js +1 -1
- package/dist/components/dynamic-codeblock.d.ts +1 -1
- package/dist/components/dynamic-codeblock.d.ts.map +1 -1
- package/dist/components/image-zoom.d.ts +1 -1
- package/dist/components/image-zoom.d.ts.map +1 -1
- package/dist/components/image-zoom.js +8 -4
- package/dist/components/layout/root-toggle.js +4 -4
- package/dist/components/layout/sidebar.d.ts.map +1 -1
- package/dist/components/layout/sidebar.js +5 -5
- package/dist/components/registry.js +5 -5
- package/dist/components/type-table.js +1 -1
- package/dist/contexts/i18n.d.ts +7 -1
- package/dist/contexts/i18n.d.ts.map +1 -1
- package/dist/contexts/i18n.js +5 -6
- package/dist/contexts/layout.d.ts.map +1 -1
- package/dist/contexts/layout.js +6 -5
- package/dist/contexts/search.d.ts.map +1 -1
- package/dist/contexts/search.js +4 -3
- package/dist/contexts/sidebar.d.ts +7 -1
- package/dist/contexts/sidebar.d.ts.map +1 -1
- package/dist/contexts/sidebar.js +5 -7
- package/dist/contexts/tree.d.ts.map +1 -1
- package/dist/contexts/tree.js +6 -9
- package/dist/layouts/docs/shared.d.ts +0 -2
- package/dist/layouts/docs/shared.d.ts.map +1 -1
- package/dist/layouts/docs/shared.js +8 -10
- package/dist/layouts/{docs.client.d.ts → docs-client.d.ts} +1 -1
- package/dist/layouts/{docs.client.d.ts.map → docs-client.d.ts.map} +1 -1
- package/dist/layouts/docs.d.ts +17 -4
- package/dist/layouts/docs.d.ts.map +1 -1
- package/dist/layouts/docs.js +19 -19
- package/dist/layouts/links.js +1 -1
- package/dist/layouts/{notebook.client.d.ts → notebook-client.d.ts} +4 -2
- package/dist/layouts/notebook-client.d.ts.map +1 -0
- package/dist/layouts/{notebook.client.js → notebook-client.js} +5 -8
- package/dist/layouts/notebook.d.ts +1 -1
- package/dist/layouts/notebook.d.ts.map +1 -1
- package/dist/layouts/notebook.js +7 -11
- package/dist/layouts/shared.d.ts.map +1 -1
- package/dist/layouts/shared.js +1 -1
- package/dist/mdx.d.ts +3 -1
- package/dist/mdx.d.ts.map +1 -1
- package/dist/mdx.js +2 -2
- package/dist/{page.client.d.ts → page-client.d.ts} +1 -1
- package/dist/{page.client.d.ts.map → page-client.d.ts.map} +1 -1
- package/dist/{page.client.js → page-client.js} +3 -7
- package/dist/page.d.ts +1 -1
- package/dist/page.js +1 -1
- package/dist/{provider.d.ts → provider/base.d.ts} +4 -8
- package/dist/provider/base.d.ts.map +1 -0
- package/dist/{provider.js → provider/base.js} +4 -9
- package/dist/provider/index.d.ts +9 -0
- package/dist/provider/index.d.ts.map +1 -0
- package/dist/provider/index.js +12 -0
- package/dist/style.css +25 -21
- package/package.json +22 -14
- package/dist/layouts/notebook.client.d.ts.map +0 -1
- package/dist/provider.d.ts.map +0 -1
- /package/dist/layouts/{docs.client.js → docs-client.js} +0 -0
package/dist/layouts/docs.js
CHANGED
|
@@ -1,25 +1,24 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
3
|
import { Languages, SidebarIcon } from 'lucide-react';
|
|
4
4
|
import { cn } from '../utils/cn.js';
|
|
5
5
|
import { buttonVariants } from '../components/ui/button.js';
|
|
6
6
|
import { CollapsibleSidebar, Sidebar, SidebarFooter, SidebarHeader, SidebarCollapseTrigger, SidebarViewport, SidebarPageTree, } from '../components/layout/sidebar.js';
|
|
7
7
|
import { replaceOrDefault } from '../layouts/shared.js';
|
|
8
|
-
import { BaseLinkItem } from '../layouts/links.js';
|
|
8
|
+
import { BaseLinkItem, } from '../layouts/links.js';
|
|
9
9
|
import { RootToggle } from '../components/layout/root-toggle.js';
|
|
10
10
|
import { getLinks } from './shared.js';
|
|
11
11
|
import { LanguageToggle, LanguageToggleText, } from '../components/layout/language-toggle.js';
|
|
12
|
-
import { CollapsibleControl, Navbar, NavbarSidebarTrigger, } from '../layouts/docs
|
|
12
|
+
import { CollapsibleControl, Navbar, NavbarSidebarTrigger, } from '../layouts/docs-client.js';
|
|
13
13
|
import { TreeContextProvider } from '../contexts/tree.js';
|
|
14
14
|
import { ThemeToggle } from '../components/layout/theme-toggle.js';
|
|
15
15
|
import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle.js';
|
|
16
16
|
import { checkPageTree, getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared.js';
|
|
17
17
|
import { StylesProvider, NavProvider, } from '../contexts/layout.js';
|
|
18
|
-
|
|
18
|
+
import Link from 'fumadocs-core/link';
|
|
19
|
+
export function DocsLayout({ nav: { enabled: navEnabled = true, component: navReplace, transparentMode, ...nav } = {}, themeSwitch, sidebar = {}, i18n = false, children, ...props }) {
|
|
19
20
|
checkPageTree(props.tree);
|
|
20
21
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
21
|
-
const Aside = collapsible ? CollapsibleSidebar : Sidebar;
|
|
22
|
-
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
23
22
|
const variables = cn('[--fd-tocnav-height:36px] md:[--fd-sidebar-width:268px] lg:[--fd-sidebar-width:286px] xl:[--fd-toc-width:286px] xl:[--fd-tocnav-height:0px]', !navReplace && navEnabled
|
|
24
23
|
? '[--fd-nav-height:calc(var(--spacing)*14)] md:[--fd-nav-height:0px]'
|
|
25
24
|
: undefined);
|
|
@@ -30,22 +29,23 @@ export function DocsLayout({ nav: { enabled: navEnabled = true, component: navRe
|
|
|
30
29
|
return (_jsx(TreeContextProvider, { tree: props.tree, children: _jsxs(NavProvider, { transparentMode: transparentMode, children: [replaceOrDefault({ enabled: navEnabled, component: navReplace }, _jsxs(Navbar, { className: "md:hidden", children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex items-center gap-2.5 font-semibold", children: nav.title }), _jsx("div", { className: "flex flex-1 flex-row items-center gap-1", children: nav.children }), _jsx(SearchToggle, { hideIfDisabled: true }), _jsx(NavbarSidebarTrigger, { className: "-me-2 md:hidden" })] }), nav), _jsxs("main", { id: "nd-docs-layout", ...props.containerProps, className: cn('flex flex-1 flex-row pe-(--fd-layout-offset)', variables, props.containerProps?.className), style: {
|
|
31
30
|
...layoutVariables,
|
|
32
31
|
...props.containerProps?.style,
|
|
33
|
-
}, children: [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
32
|
+
}, children: [replaceOrDefault(sidebar, _jsx(DocsLayoutSidebar, { tree: props.tree, ...sidebar, links: links, nav: _jsxs(_Fragment, { children: [_jsx(Link, { href: nav.url ?? '/', className: "inline-flex text-[15px] items-center gap-2.5 font-medium", children: nav.title }), nav.children] }), footer: _jsxs(_Fragment, { children: [_jsx(DocsLayoutSidebarFooter, { links: links.filter((item) => item.type === 'icon'), i18n: i18n, themeSwitch: themeSwitch }), sidebar.footer] }) })), _jsx(StylesProvider, { ...pageStyles, children: children })] })] }) }));
|
|
33
|
+
}
|
|
34
|
+
export function DocsLayoutSidebar({ collapsible = true, components, tabs: tabOptions, hideSearch, tree, nav, links = [], footer, banner, ...props }) {
|
|
35
|
+
const tabs = useMemo(() => getSidebarTabsFromOptions(tabOptions, tree) ?? [], [tabOptions, tree]);
|
|
36
|
+
const Aside = collapsible ? CollapsibleSidebar : Sidebar;
|
|
37
|
+
return (_jsxs(_Fragment, { children: [collapsible ? _jsx(CollapsibleControl, {}) : null, _jsxs(Aside, { ...props, className: cn('md:ps-(--fd-layout-offset)', props.className), children: [_jsxs(SidebarHeader, { children: [_jsxs("div", { className: "flex flex-row pt-1 max-md:hidden", children: [nav, collapsible && (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
38
|
+
color: 'ghost',
|
|
39
|
+
size: 'icon-sm',
|
|
40
|
+
}), 'ms-auto mb-auto text-fd-muted-foreground max-md:hidden'), children: _jsx(SidebarIcon, {}) }))] }), banner, tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null, !hideSearch ? (_jsx(LargeSearchToggle, { hideIfDisabled: true, className: "rounded-lg max-md:hidden" })) : null] }), _jsxs(SidebarViewport, { children: [_jsx("div", { className: "mb-4 empty:hidden", children: links
|
|
41
|
+
.filter((v) => v.type !== 'icon')
|
|
42
|
+
.map((item, i) => (_jsx(SidebarLinkItem, { item: item }, i))) }), _jsx(SidebarPageTree, { components: components })] }), _jsx(SidebarFooter, { children: footer })] })] }));
|
|
42
43
|
}
|
|
43
|
-
function
|
|
44
|
-
const iconItems = links.filter((v) => v.type === 'icon');
|
|
44
|
+
export function DocsLayoutSidebarFooter({ i18n, themeSwitch, links = [], }) {
|
|
45
45
|
// empty footer items
|
|
46
46
|
if (links.length === 0 && !i18n && themeSwitch?.enabled === false)
|
|
47
47
|
return null;
|
|
48
|
-
return (_jsxs("div", { className: "flex flex-row items-center", children: [
|
|
48
|
+
return (_jsxs("div", { className: "flex flex-row items-center", children: [links.map((item, i) => (_jsx(BaseLinkItem, { item: item, className: cn(buttonVariants({ size: 'icon', color: 'ghost' }), 'text-fd-muted-foreground md:[&_svg]:size-4.5'), "aria-label": item.label, children: item.icon }, i))), _jsx("div", { role: "separator", className: "flex-1" }), i18n ? (_jsxs(LanguageToggle, { className: "me-1.5", children: [_jsx(Languages, { className: "size-4.5" }), _jsx(LanguageToggleText, { className: "md:hidden" })] })) : null, replaceOrDefault(themeSwitch, _jsx(ThemeToggle, { className: "p-0", mode: themeSwitch?.mode }))] }));
|
|
49
49
|
}
|
|
50
50
|
export { CollapsibleControl, Navbar, NavbarSidebarTrigger };
|
|
51
51
|
export { getSidebarTabsFromOptions } from './docs/shared.js';
|
package/dist/layouts/links.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import Link from 'fumadocs-core/link';
|
|
4
|
-
import { usePathname } from '
|
|
4
|
+
import { usePathname } from 'fumadocs-core/framework';
|
|
5
5
|
import { forwardRef, } from 'react';
|
|
6
6
|
import { isActive } from '../utils/is-active.js';
|
|
7
7
|
export const BaseLinkItem = forwardRef(({ item, ...props }, ref) => {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type ButtonHTMLAttributes, type HTMLAttributes } from 'react';
|
|
2
2
|
import type { Option } from '../components/layout/root-toggle.js';
|
|
3
|
-
export declare function Navbar(props: HTMLAttributes<HTMLElement>
|
|
3
|
+
export declare function Navbar({ mode, ...props }: HTMLAttributes<HTMLElement> & {
|
|
4
|
+
mode: 'top' | 'auto';
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
4
6
|
export declare function NavbarSidebarTrigger(props: ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
5
7
|
export declare function LayoutTabs(props: HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export declare function LayoutTab(item: Option): import("react/jsx-runtime").JSX.Element;
|
|
7
9
|
export declare function SidebarLayoutTab({ item, ...props }: {
|
|
8
10
|
item: Option;
|
|
9
11
|
} & HTMLAttributes<HTMLElement>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=notebook
|
|
12
|
+
//# sourceMappingURL=notebook-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notebook-client.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook-client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AASvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAE9D,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,2CAoBxD;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,2CAkB/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,2CAY5D;AAUD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,2CAkBrC;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,GAAG,KAAK,EACT,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAC,WAAW,CAAC,2CAoBhD"}
|
|
@@ -7,17 +7,14 @@ import { SidebarTrigger } from 'fumadocs-core/sidebar';
|
|
|
7
7
|
import { buttonVariants } from '../components/ui/button.js';
|
|
8
8
|
import { Menu, X } from 'lucide-react';
|
|
9
9
|
import Link from 'fumadocs-core/link';
|
|
10
|
-
import { usePathname } from '
|
|
10
|
+
import { usePathname } from 'fumadocs-core/framework';
|
|
11
11
|
import { isActive } from '../utils/is-active.js';
|
|
12
|
-
export function Navbar(props) {
|
|
12
|
+
export function Navbar({ mode, ...props }) {
|
|
13
13
|
const { open, collapsed } = useSidebar();
|
|
14
14
|
const { isTransparent } = useNav();
|
|
15
|
-
return (_jsx("header", { id: "nd-subnav", ...props, className: cn('fixed inset-x-0 top-(--fd-banner-height) z-10
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
: 'calc(var(--fd-layout-offset) + var(--fd-sidebar-width))',
|
|
19
|
-
...props.style,
|
|
20
|
-
}, children: props.children }));
|
|
15
|
+
return (_jsx("header", { id: "nd-subnav", ...props, className: cn('fixed inset-x-0 top-(--fd-banner-height) z-10 px-(--fd-layout-offset) backdrop-blur-lg transition-colors', (!isTransparent || open) && 'bg-fd-background/80', mode === 'auto' &&
|
|
16
|
+
!collapsed &&
|
|
17
|
+
'ps-[calc(var(--fd-layout-offset)+var(--fd-sidebar-width))]', props.className), children: props.children }));
|
|
21
18
|
}
|
|
22
19
|
export function NavbarSidebarTrigger(props) {
|
|
23
20
|
const { open } = useSidebar();
|
|
@@ -2,7 +2,7 @@ import { type HTMLAttributes } from 'react';
|
|
|
2
2
|
import { type BaseLayoutProps } from '../layouts/shared.js';
|
|
3
3
|
import { type SidebarOptions } from '../layouts/docs/shared.js';
|
|
4
4
|
import type { PageTree } from 'fumadocs-core/server';
|
|
5
|
-
import { Navbar, NavbarSidebarTrigger } from './notebook
|
|
5
|
+
import { Navbar, NavbarSidebarTrigger } from './notebook-client.js';
|
|
6
6
|
export interface DocsLayoutProps extends BaseLayoutProps {
|
|
7
7
|
tree: PageTree.Root;
|
|
8
8
|
tabMode?: 'sidebar' | 'navbar';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"notebook.d.ts","sourceRoot":"","sources":["../../src/layouts/notebook.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAW,MAAM,OAAO,CAAC;AAC/D,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,kBAAkB,CAAC;AA0B1B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAGL,MAAM,EACN,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAS3B,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE/B,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG;QAC7B,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KACvB,CAAC;IAEF,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,OAAmB,EACnB,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,WAAW,EACX,GAAG,KAAK,EACT,EAAE,eAAe,2CAsIjB;AAiLD,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC"}
|
package/dist/layouts/notebook.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Fragment } from 'react';
|
|
2
|
+
import { Fragment, useMemo } from 'react';
|
|
3
3
|
import { getLinks, replaceOrDefault, } from '../layouts/shared.js';
|
|
4
4
|
import { CollapsibleSidebar, Sidebar, SidebarCollapseTrigger, SidebarFooter, SidebarHeader, SidebarViewport, SidebarPageTree, } from '../components/layout/sidebar.js';
|
|
5
5
|
import { TreeContextProvider } from '../contexts/tree.js';
|
|
6
6
|
import { LargeSearchToggle, SearchToggle, } from '../components/layout/search-toggle.js';
|
|
7
7
|
import { cn } from '../utils/cn.js';
|
|
8
|
-
import Link from 'next/link';
|
|
9
8
|
import { buttonVariants } from '../components/ui/button.js';
|
|
10
9
|
import { ChevronDown, Languages, SidebarIcon } from 'lucide-react';
|
|
11
10
|
import { BaseLinkItem } from '../layouts/links.js';
|
|
@@ -13,15 +12,16 @@ import { LanguageToggle } from '../components/layout/language-toggle.js';
|
|
|
13
12
|
import { ThemeToggle } from '../components/layout/theme-toggle.js';
|
|
14
13
|
import { Popover, PopoverContent, PopoverTrigger, } from '../components/ui/popover.js';
|
|
15
14
|
import { checkPageTree, getSidebarTabsFromOptions, layoutVariables, SidebarLinkItem, } from '../layouts/docs/shared.js';
|
|
16
|
-
import { LayoutTab, LayoutTabs, Navbar, NavbarSidebarTrigger, SidebarLayoutTab, } from './notebook
|
|
15
|
+
import { LayoutTab, LayoutTabs, Navbar, NavbarSidebarTrigger, SidebarLayoutTab, } from './notebook-client.js';
|
|
17
16
|
import { StylesProvider, NavProvider, } from '../contexts/layout.js';
|
|
18
17
|
import { RootToggle } from '../components/layout/root-toggle.js';
|
|
18
|
+
import Link from 'fumadocs-core/link';
|
|
19
19
|
export function DocsLayout({ tabMode = 'sidebar', nav: { transparentMode, ...nav } = {}, sidebar: { collapsible: sidebarCollapsible = true, tabs: tabOptions, banner: sidebarBanner, footer: sidebarFooter, components: sidebarComponents, ...sidebar } = {}, i18n = false, themeSwitch, ...props }) {
|
|
20
20
|
checkPageTree(props.tree);
|
|
21
21
|
const navMode = nav.mode ?? 'auto';
|
|
22
22
|
const links = getLinks(props.links ?? [], props.githubUrl);
|
|
23
|
+
const tabs = useMemo(() => getSidebarTabsFromOptions(tabOptions, props.tree) ?? [], [tabOptions, props.tree]);
|
|
23
24
|
const Aside = sidebarCollapsible ? CollapsibleSidebar : Sidebar;
|
|
24
|
-
const tabs = getSidebarTabsFromOptions(tabOptions, props.tree) ?? [];
|
|
25
25
|
const variables = cn('[--fd-nav-height:calc(var(--spacing)*14)] [--fd-tocnav-height:36px] md:[--fd-sidebar-width:286px] xl:[--fd-toc-width:286px] xl:[--fd-tocnav-height:0px]', tabs.length > 0 &&
|
|
26
26
|
tabMode === 'navbar' &&
|
|
27
27
|
'lg:[--fd-nav-height:calc(var(--spacing)*24)]');
|
|
@@ -41,20 +41,16 @@ export function DocsLayout({ tabMode = 'sidebar', nav: { transparentMode, ...nav
|
|
|
41
41
|
}), 'text-fd-muted-foreground mb-auto'), children: _jsx(SidebarIcon, {}) })] })), nav.children, sidebarBanner, tabMode === 'sidebar' && tabs.length > 0 ? (_jsx(RootToggle, { options: tabs, className: "-mx-2" })) : null] }), _jsxs(SidebarViewport, { children: [tabMode === 'navbar' &&
|
|
42
42
|
tabs.map((tab, i) => (_jsx(SidebarLayoutTab, { item: tab, className: cn('lg:hidden', i === tabs.length - 1 && 'mb-4') }, tab.url))), links.map((item, i) => (_jsx(SidebarLinkItem, { item: item, className: cn('lg:hidden', i === links.length - 1 && 'mb-4') }, i))), _jsx(SidebarPageTree, { components: sidebarComponents })] }), _jsxs(SidebarFooter, { className: cn('flex flex-row items-center', !sidebarFooter && 'md:hidden'), children: [i18n ? (_jsx(LanguageToggle, { className: "me-auto md:hidden", children: _jsx(Languages, { className: "size-5 text-fd-muted-foreground" }) })) : null, replaceOrDefault(themeSwitch, _jsx(ThemeToggle, { className: "md:hidden", mode: themeSwitch?.mode ?? 'light-dark-system' })), sidebarFooter] })] }), _jsx(DocsNavbar, { nav: nav, links: links, i18n: i18n, sidebarCollapsible: sidebarCollapsible, tabs: tabMode == 'navbar' ? tabs : [] }), _jsx(StylesProvider, { ...pageStyles, children: props.children })] }) }) }));
|
|
43
43
|
}
|
|
44
|
-
function DocsNavbar({ sidebarCollapsible, links, nav = {}, i18n, tabs, }) {
|
|
44
|
+
function DocsNavbar({ sidebarCollapsible, links, themeSwitch, nav = {}, i18n, tabs, }) {
|
|
45
45
|
const navMode = nav.mode ?? 'auto';
|
|
46
|
-
return (_jsxs(Navbar, {
|
|
47
|
-
? {
|
|
48
|
-
paddingInlineStart: 'var(--fd-layout-offset)',
|
|
49
|
-
}
|
|
50
|
-
: undefined, children: [_jsxs("div", { className: cn('flex flex-row border-b border-fd-foreground/10 px-4 h-14', navMode === 'auto' && 'md:px-6'), children: [_jsxs("div", { className: cn('flex flex-row items-center', navMode === 'top' && 'flex-1 pe-4'), children: [sidebarCollapsible && navMode === 'auto' ? (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
46
|
+
return (_jsxs(Navbar, { mode: navMode, children: [_jsxs("div", { className: cn('flex flex-row border-b border-fd-foreground/10 px-4 h-14', navMode === 'auto' && 'md:px-6'), children: [_jsxs("div", { className: cn('flex flex-row items-center', navMode === 'top' && 'flex-1 pe-4'), children: [sidebarCollapsible && navMode === 'auto' ? (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
51
47
|
color: 'ghost',
|
|
52
48
|
size: 'icon-sm',
|
|
53
49
|
}), 'text-fd-muted-foreground -ms-1.5 me-2 data-[collapsed=false]:hidden max-md:hidden'), children: _jsx(SidebarIcon, {}) })) : null, _jsx(Link, { href: nav.url ?? '/', className: cn('inline-flex items-center gap-2.5 font-semibold', navMode === 'auto' && 'md:hidden'), children: nav.title })] }), _jsx(LargeSearchToggle, { hideIfDisabled: true, className: cn('w-full my-auto rounded-xl max-md:hidden', navMode === 'top' ? 'max-w-sm px-2' : 'max-w-[240px]') }), _jsxs("div", { className: "flex flex-1 flex-row items-center justify-end", children: [_jsx("div", { className: "flex flex-row items-center gap-6 px-4 empty:hidden max-lg:hidden", children: links
|
|
54
50
|
.filter((item) => item.type !== 'icon')
|
|
55
51
|
.map((item, i) => (_jsx(NavbarLinkItem, { item: item, className: "text-sm text-fd-muted-foreground transition-colors hover:text-fd-accent-foreground" }, i))) }), nav.children, _jsx(SearchToggle, { hideIfDisabled: true, className: "md:hidden" }), _jsx(NavbarSidebarTrigger, { className: "md:hidden" }), links
|
|
56
52
|
.filter((item) => item.type === 'icon')
|
|
57
|
-
.map((item, i) => (_jsx(BaseLinkItem, { item: item, className: cn(buttonVariants({ size: 'icon-sm', color: 'ghost' }), 'text-fd-muted-foreground max-lg:hidden'), "aria-label": item.label, children: item.icon }, i))), i18n ? (_jsx(LanguageToggle, { className: "max-md:hidden", children: _jsx(Languages, { className: "size-4.5 text-fd-muted-foreground" }) })) : null, _jsx(ThemeToggle, { className: "ms-2 max-md:hidden", mode:
|
|
53
|
+
.map((item, i) => (_jsx(BaseLinkItem, { item: item, className: cn(buttonVariants({ size: 'icon-sm', color: 'ghost' }), 'text-fd-muted-foreground max-lg:hidden'), "aria-label": item.label, children: item.icon }, i))), i18n ? (_jsx(LanguageToggle, { className: "max-md:hidden", children: _jsx(Languages, { className: "size-4.5 text-fd-muted-foreground" }) })) : null, replaceOrDefault(themeSwitch, _jsx(ThemeToggle, { className: "ms-2 max-md:hidden", mode: themeSwitch?.mode ?? 'light-dark-system' })), sidebarCollapsible && navMode === 'top' ? (_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({
|
|
58
54
|
color: 'secondary',
|
|
59
55
|
size: 'icon-sm',
|
|
60
56
|
}), 'ms-2 text-fd-muted-foreground rounded-full max-md:hidden'), children: _jsx(SidebarIcon, {}) })) : null] })] }), tabs.length > 0 ? (_jsx(LayoutTabs, { className: "px-6 border-b border-fd-foreground/10 h-10 max-lg:hidden", children: tabs.map((tab) => (_jsx(LayoutTab, { ...tab }, tab.url))) })) : null] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/layouts/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,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,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,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;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;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,OAAO,EAAE,KAAK,YAAY,EAAE,CAAC;AAE7B;;GAEG;AACH,wBAAgB,QAAQ,CACtB,KAAK,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/layouts/shared.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,UAAW,SAAQ,gBAAgB;IAClD,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,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,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;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;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,OAAO,EAAE,KAAK,YAAY,EAAE,CAAC;AAE7B;;GAEG;AACH,wBAAgB,QAAQ,CACtB,KAAK,GAAE,YAAY,EAAO,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE,CAqBhB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EACC;IACE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,GACD,SAAS,EACb,GAAG,EAAE,SAAS,EACd,oBAAoB,CAAC,EAAE,MAAM,EAC7B,QAAQ,CAAC,EAAE,SAAS,GACnB,SAAS,CAMX"}
|
package/dist/layouts/shared.js
CHANGED
package/dist/mdx.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { AnchorHTMLAttributes, FC, HTMLAttributes, ImgHTMLAttributes, TableHTMLAttributes } from 'react';
|
|
2
2
|
import { Card, Cards } from './components/card.js';
|
|
3
|
-
declare function Image(props: ImgHTMLAttributes<HTMLImageElement>
|
|
3
|
+
declare function Image(props: ImgHTMLAttributes<HTMLImageElement> & {
|
|
4
|
+
sizes?: string;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
4
6
|
declare function Table(props: TableHTMLAttributes<HTMLTableElement>): import("react/jsx-runtime").JSX.Element;
|
|
5
7
|
declare const defaultMdxComponents: {
|
|
6
8
|
pre: (props: HTMLAttributes<HTMLPreElement>) => import("react/jsx-runtime").JSX.Element;
|
package/dist/mdx.d.ts.map
CHANGED
|
@@ -1 +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;
|
|
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;AAMhD,iBAAS,KAAK,CACZ,KAAK,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,2CASF;AAED,iBAAS,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,2CAM1D;AAED,QAAA,MAAM,oBAAoB;iBACX,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;;;;;;;CAK/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,cAAc,cAAc,EAAE,kBAK5D,CAAC;AAEJ,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,CAAC"}
|
package/dist/mdx.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import Link from 'fumadocs-core/link';
|
|
3
|
-
import
|
|
3
|
+
import { Image as FrameworkImage } from 'fumadocs-core/framework';
|
|
4
4
|
import { Card, Cards } from './components/card.js';
|
|
5
5
|
import { Callout } from './components/callout.js';
|
|
6
6
|
import { Heading } from './components/heading.js';
|
|
7
7
|
import { cn } from './utils/cn.js';
|
|
8
8
|
import { CodeBlock, Pre } from './components/codeblock.js';
|
|
9
9
|
function Image(props) {
|
|
10
|
-
return (_jsx(
|
|
10
|
+
return (_jsx(FrameworkImage, { sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px", ...props, className: cn('rounded-lg', props.className) }));
|
|
11
11
|
}
|
|
12
12
|
function Table(props) {
|
|
13
13
|
return (_jsx("div", { className: "relative overflow-auto", children: _jsx("table", { ...props }) }));
|
|
@@ -21,4 +21,4 @@ export declare function Footer({ items }: FooterProps): import("react/jsx-runtim
|
|
|
21
21
|
export type BreadcrumbProps = BreadcrumbOptions;
|
|
22
22
|
export declare function Breadcrumb(options: BreadcrumbProps): import("react/jsx-runtime").JSX.Element | null;
|
|
23
23
|
export {};
|
|
24
|
-
//# sourceMappingURL=page
|
|
24
|
+
//# sourceMappingURL=page-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page
|
|
1
|
+
{"version":3,"file":"page-client.d.ts","sourceRoot":"","sources":["../src/page-client.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EAKpB,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAMlC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,cAAc,CAAC,2CA8CrE;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,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,CAAC,CAAC;AAChE,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;CACH;AAyBD,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,2CA+B5C;AA8BD,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEhD,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,kDAsClD"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Fragment, useEffect, useMemo, useRef, useState, } from 'react';
|
|
4
4
|
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
5
|
-
import Link from '
|
|
5
|
+
import Link from 'fumadocs-core/link';
|
|
6
6
|
import { cn } from './utils/cn.js';
|
|
7
7
|
import { useI18n } from './contexts/i18n.js';
|
|
8
8
|
import { useTreeContext, useTreePath } from './contexts/tree.js';
|
|
9
9
|
import { useSidebar } from './contexts/sidebar.js';
|
|
10
|
-
import { usePathname } from '
|
|
10
|
+
import { usePathname } from 'fumadocs-core/framework';
|
|
11
11
|
import { getBreadcrumbItemsFromPath, } from 'fumadocs-core/breadcrumb';
|
|
12
12
|
import { usePageStyles, useNav } from './contexts/layout.js';
|
|
13
13
|
import { isActive } from './utils/is-active.js';
|
|
@@ -91,11 +91,7 @@ export function Footer({ items }) {
|
|
|
91
91
|
function FooterItem({ item, index }) {
|
|
92
92
|
const { text } = useI18n();
|
|
93
93
|
const Icon = index === 0 ? ChevronLeft : ChevronRight;
|
|
94
|
-
|
|
95
|
-
const description = item.description ?? item.name;
|
|
96
|
-
return (_jsxs(Link, { href: item.url, className: cn('flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full', index === 1 && 'text-end'), children: [_jsxs("div", { className: cn('inline-flex items-center gap-1.5', index === 1 && 'flex-row-reverse', title ? 'font-medium' : 'text-fd-muted-foreground'), children: [_jsx(Icon, { className: "-mx-1 size-4 shrink-0 rtl:rotate-180" }), _jsx("p", { children: title ?? text.nextPage })] }), _jsx("p", { className: cn(title
|
|
97
|
-
? 'text-fd-muted-foreground truncate'
|
|
98
|
-
: 'font-medium md:text-[15px]'), children: description })] }));
|
|
94
|
+
return (_jsxs(Link, { href: item.url, className: cn('flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full', index === 1 && 'text-end'), children: [_jsxs("div", { className: cn('inline-flex items-center gap-1.5 font-medium', index === 1 && 'flex-row-reverse'), children: [_jsx(Icon, { className: "-mx-1 size-4 shrink-0 rtl:rotate-180" }), _jsx("p", { children: item.name })] }), _jsx("p", { className: "text-fd-muted-foreground truncate", children: item.description ?? (index === 0 ? text.previousPage : text.nextPage) })] }));
|
|
99
95
|
}
|
|
100
96
|
export function Breadcrumb(options) {
|
|
101
97
|
const path = useTreePath();
|
package/dist/page.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type PageTree, type TableOfContents } from 'fumadocs-core/server';
|
|
|
2
2
|
import { type AnchorHTMLAttributes, type HTMLAttributes, type ReactNode } from 'react';
|
|
3
3
|
import type { LoaderConfig, LoaderOutput, Page } from 'fumadocs-core/source';
|
|
4
4
|
import { type AnchorProviderProps } from 'fumadocs-core/toc';
|
|
5
|
-
import { type FooterProps, type BreadcrumbProps } from './page
|
|
5
|
+
import { type FooterProps, type BreadcrumbProps } from './page-client.js';
|
|
6
6
|
import { type TOCProps } from './components/layout/toc.js';
|
|
7
7
|
type TableOfContentOptions = Omit<TOCProps, 'items' | 'children'> & Pick<AnchorProviderProps, 'single'> & {
|
|
8
8
|
enabled: boolean;
|
package/dist/page.js
CHANGED
|
@@ -4,7 +4,7 @@ import { AnchorProvider } from 'fumadocs-core/toc';
|
|
|
4
4
|
import { Card, Cards } from './components/card.js';
|
|
5
5
|
import { replaceOrDefault } from './layouts/shared.js';
|
|
6
6
|
import { cn } from './utils/cn.js';
|
|
7
|
-
import { Footer, LastUpdate, TocPopoverHeader, Breadcrumb, PageBody, PageArticle, } from './page
|
|
7
|
+
import { Footer, LastUpdate, TocPopoverHeader, Breadcrumb, PageBody, PageArticle, } from './page-client.js';
|
|
8
8
|
import { Toc, TOCItems, TocPopoverTrigger, TocPopoverContent, TOCScrollArea, } from './components/layout/toc.js';
|
|
9
9
|
import { buttonVariants } from './components/ui/button.js';
|
|
10
10
|
import { Edit, Text } from 'lucide-react';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ThemeProvider } from 'next-themes';
|
|
2
2
|
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
3
|
-
import type { DefaultSearchDialogProps } from '
|
|
4
|
-
import { type SearchProviderProps } from '
|
|
3
|
+
import type { DefaultSearchDialogProps } from '../components/dialog/search-default.js';
|
|
4
|
+
import { type SearchProviderProps } from '../contexts/search.js';
|
|
5
5
|
interface SearchOptions extends Omit<SearchProviderProps, 'options' | 'children'> {
|
|
6
6
|
options?: Partial<DefaultSearchDialogProps> | SearchProviderProps['options'];
|
|
7
7
|
/**
|
|
@@ -34,9 +34,5 @@ export interface RootProviderProps {
|
|
|
34
34
|
children?: ReactNode;
|
|
35
35
|
}
|
|
36
36
|
export declare function RootProvider({ children, dir, theme, search, }: RootProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
-
export {
|
|
38
|
-
|
|
39
|
-
export { SidebarProvider, useSidebar } from './contexts/sidebar.js';
|
|
40
|
-
export { useTreePath, useTreeContext, TreeContextProvider, } from './contexts/tree.js';
|
|
41
|
-
export { StylesProvider, usePageStyles, type PageStyles, } from './contexts/layout.js';
|
|
42
|
-
//# sourceMappingURL=provider.d.ts.map
|
|
37
|
+
export {};
|
|
38
|
+
//# 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,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,KAAK,wBAAwB,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5E,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,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,GAAW,EACX,KAAU,EACV,MAAM,GACP,EAAE,iBAAiB,2CA4BnB"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { ThemeProvider } from 'next-themes';
|
|
4
|
-
import
|
|
4
|
+
import { lazy } from 'react';
|
|
5
5
|
import { DirectionProvider } from '@radix-ui/react-direction';
|
|
6
|
-
import { SidebarProvider } from '
|
|
7
|
-
import { SearchProvider } from '
|
|
8
|
-
const DefaultSearchDialog =
|
|
6
|
+
import { SidebarProvider } from '../contexts/sidebar.js';
|
|
7
|
+
import { SearchProvider } from '../contexts/search.js';
|
|
8
|
+
const DefaultSearchDialog = lazy(() => import('../components/dialog/search-default.js'));
|
|
9
9
|
export function RootProvider({ children, dir = 'ltr', theme = {}, search, }) {
|
|
10
10
|
let body = children;
|
|
11
11
|
if (search?.enabled !== false)
|
|
@@ -14,8 +14,3 @@ export function RootProvider({ children, dir = 'ltr', theme = {}, search, }) {
|
|
|
14
14
|
body = (_jsx(ThemeProvider, { attribute: "class", defaultTheme: "system", enableSystem: true, disableTransitionOnChange: true, ...theme, children: body }));
|
|
15
15
|
return (_jsx(DirectionProvider, { dir: dir, children: _jsx(SidebarProvider, { children: body }) }));
|
|
16
16
|
}
|
|
17
|
-
export { useI18n, I18nLabel } from './contexts/i18n.js';
|
|
18
|
-
export { SearchProvider, SearchOnly, useSearchContext, } from './contexts/search.js';
|
|
19
|
-
export { SidebarProvider, useSidebar } from './contexts/sidebar.js';
|
|
20
|
-
export { useTreePath, useTreeContext, TreeContextProvider, } from './contexts/tree.js';
|
|
21
|
-
export { StylesProvider, usePageStyles, } from './contexts/layout.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RootProvider as BaseProvider } from './base.js';
|
|
2
|
+
import type { ComponentProps } from 'react';
|
|
3
|
+
export declare function RootProvider(props: ComponentProps<typeof BaseProvider>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { useI18n, I18nLabel } from '../contexts/i18n.js';
|
|
5
|
+
export { SearchProvider, SearchOnly, useSearchContext, type SearchProviderProps, } from '../contexts/search.js';
|
|
6
|
+
export { SidebarProvider, useSidebar } from '../contexts/sidebar.js';
|
|
7
|
+
export { useTreePath, useTreeContext, TreeContextProvider, } from '../contexts/tree.js';
|
|
8
|
+
export { useNav, NavProvider, type NavProviderProps, type PageStyles, StylesProvider, usePageStyles, } from '../contexts/layout.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,YAAY,CAAC,2CAMtE;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,MAAM,EACN,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,cAAc,EACd,aAAa,GACd,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RootProvider as BaseProvider } from './base.js';
|
|
4
|
+
import { NextProvider } from 'fumadocs-core/framework/next';
|
|
5
|
+
export function RootProvider(props) {
|
|
6
|
+
return (_jsx(NextProvider, { children: _jsx(BaseProvider, { ...props, children: props.children }) }));
|
|
7
|
+
}
|
|
8
|
+
export { useI18n, I18nLabel } from '../contexts/i18n.js';
|
|
9
|
+
export { SearchProvider, SearchOnly, useSearchContext, } from '../contexts/search.js';
|
|
10
|
+
export { SidebarProvider, useSidebar } from '../contexts/sidebar.js';
|
|
11
|
+
export { useTreePath, useTreeContext, TreeContextProvider, } from '../contexts/tree.js';
|
|
12
|
+
export { useNav, NavProvider, StylesProvider, usePageStyles, } from '../contexts/layout.js';
|
package/dist/style.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tailwindcss v4.0.
|
|
1
|
+
/*! tailwindcss v4.0.17 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer theme, base, components, utilities;
|
|
3
3
|
@layer theme {
|
|
4
4
|
:root, :host {
|
|
@@ -378,6 +378,9 @@
|
|
|
378
378
|
.mx-4 {
|
|
379
379
|
margin-inline: calc(var(--spacing) * 4);
|
|
380
380
|
}
|
|
381
|
+
.\!my-0 {
|
|
382
|
+
margin-block: calc(var(--spacing) * 0) !important;
|
|
383
|
+
}
|
|
381
384
|
.my-0 {
|
|
382
385
|
margin-block: calc(var(--spacing) * 0);
|
|
383
386
|
}
|
|
@@ -1251,6 +1254,9 @@
|
|
|
1251
1254
|
.p-4 {
|
|
1252
1255
|
padding: calc(var(--spacing) * 4);
|
|
1253
1256
|
}
|
|
1257
|
+
.px-\(--fd-layout-offset\) {
|
|
1258
|
+
padding-inline: var(--fd-layout-offset);
|
|
1259
|
+
}
|
|
1254
1260
|
.px-1\.5 {
|
|
1255
1261
|
padding-inline: calc(var(--spacing) * 1.5);
|
|
1256
1262
|
}
|
|
@@ -1296,6 +1302,9 @@
|
|
|
1296
1302
|
.ps-8 {
|
|
1297
1303
|
padding-inline-start: calc(var(--spacing) * 8);
|
|
1298
1304
|
}
|
|
1305
|
+
.ps-\[calc\(var\(--fd-layout-offset\)\+var\(--fd-sidebar-width\)\)\] {
|
|
1306
|
+
padding-inline-start: calc(var(--fd-layout-offset) + var(--fd-sidebar-width));
|
|
1307
|
+
}
|
|
1299
1308
|
.ps-px {
|
|
1300
1309
|
padding-inline-start: 1px;
|
|
1301
1310
|
}
|
|
@@ -1875,15 +1884,15 @@
|
|
|
1875
1884
|
width: var(--fd-sidebar-width);
|
|
1876
1885
|
}
|
|
1877
1886
|
}
|
|
1878
|
-
.md
|
|
1887
|
+
.md\:-translate-x-\(--fd-sidebar-offset\) {
|
|
1879
1888
|
@media (width >= 48rem) {
|
|
1880
|
-
--tw-translate-x: calc(var(--
|
|
1889
|
+
--tw-translate-x: calc(var(--fd-sidebar-offset) * -1);
|
|
1881
1890
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1882
1891
|
}
|
|
1883
1892
|
}
|
|
1884
|
-
.md\:translate-x
|
|
1893
|
+
.md\:translate-x-0 {
|
|
1885
1894
|
@media (width >= 48rem) {
|
|
1886
|
-
--tw-translate-x: calc(var(--
|
|
1895
|
+
--tw-translate-x: calc(var(--spacing) * 0);
|
|
1887
1896
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1888
1897
|
}
|
|
1889
1898
|
}
|
|
@@ -1938,11 +1947,6 @@
|
|
|
1938
1947
|
padding-top: calc(var(--spacing) * 12);
|
|
1939
1948
|
}
|
|
1940
1949
|
}
|
|
1941
|
-
.md\:text-\[15px\] {
|
|
1942
|
-
@media (width >= 48rem) {
|
|
1943
|
-
font-size: 15px;
|
|
1944
|
-
}
|
|
1945
|
-
}
|
|
1946
1950
|
.md\:opacity-0 {
|
|
1947
1951
|
@media (width >= 48rem) {
|
|
1948
1952
|
opacity: 0%;
|
|
@@ -2178,46 +2182,46 @@
|
|
|
2178
2182
|
--color-fd-secondary: hsl(0, 0%, 18%);
|
|
2179
2183
|
--color-fd-muted-foreground: hsl(0, 0%, 72%);
|
|
2180
2184
|
}
|
|
2181
|
-
.
|
|
2185
|
+
.fd-codeblock code span {
|
|
2182
2186
|
color: var(--shiki-light);
|
|
2183
2187
|
}
|
|
2184
|
-
.dark .
|
|
2188
|
+
.dark .fd-codeblock code span {
|
|
2185
2189
|
color: var(--shiki-dark);
|
|
2186
2190
|
}
|
|
2187
|
-
.fd-codeblock
|
|
2191
|
+
.fd-codeblock pre > * {
|
|
2188
2192
|
display: grid;
|
|
2189
2193
|
font-size: 13px;
|
|
2190
2194
|
}
|
|
2191
|
-
.
|
|
2195
|
+
.fd-codeblock code .diff.remove {
|
|
2192
2196
|
background-color: var(--fd-diff-remove-color);
|
|
2193
2197
|
opacity: 0.7;
|
|
2194
2198
|
}
|
|
2195
|
-
.
|
|
2199
|
+
.fd-codeblock code .diff::before {
|
|
2196
2200
|
position: absolute;
|
|
2197
2201
|
left: 6px;
|
|
2198
2202
|
}
|
|
2199
|
-
.
|
|
2203
|
+
.fd-codeblock code .diff.remove::before {
|
|
2200
2204
|
content: '-';
|
|
2201
2205
|
color: var(--fd-diff-remove-symbol-color);
|
|
2202
2206
|
}
|
|
2203
|
-
.
|
|
2207
|
+
.fd-codeblock code .diff.add {
|
|
2204
2208
|
background-color: var(--fd-diff-add-color);
|
|
2205
2209
|
}
|
|
2206
|
-
.
|
|
2210
|
+
.fd-codeblock code .diff.add::before {
|
|
2207
2211
|
content: '+';
|
|
2208
2212
|
color: var(--fd-diff-add-symbol-color);
|
|
2209
2213
|
}
|
|
2210
|
-
.
|
|
2214
|
+
.fd-codeblock code .diff {
|
|
2211
2215
|
margin: 0 -16px;
|
|
2212
2216
|
padding: 0 16px;
|
|
2213
2217
|
position: relative;
|
|
2214
2218
|
}
|
|
2215
|
-
.
|
|
2219
|
+
.fd-codeblock .highlighted {
|
|
2216
2220
|
margin: 0 -16px;
|
|
2217
2221
|
padding: 0 16px;
|
|
2218
2222
|
background-color: color-mix( in oklab, var(--color-fd-primary) 10%, transparent );
|
|
2219
2223
|
}
|
|
2220
|
-
.
|
|
2224
|
+
.fd-codeblock .highlighted-word {
|
|
2221
2225
|
padding: 1px 2px;
|
|
2222
2226
|
margin: -1px -3px;
|
|
2223
2227
|
border: 1px solid color-mix(in oklab, var(--color-fd-primary) 50%, transparent);
|