fumadocs-ui 16.4.3 → 16.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/emerald.css +1 -0
- package/css/ruby.css +1 -0
- package/dist/components/accordion.d.ts +3 -3
- package/dist/components/banner.d.ts +2 -2
- package/dist/components/callout.d.ts +5 -5
- package/dist/components/callout.d.ts.map +1 -1
- package/dist/components/card.d.ts +3 -3
- package/dist/components/card.d.ts.map +1 -1
- package/dist/components/codeblock.d.ts +7 -7
- package/dist/components/codeblock.d.ts.map +1 -1
- package/dist/components/dialog/search-algolia.d.ts +2 -2
- package/dist/components/dialog/search-default.d.ts +2 -2
- package/dist/components/dialog/search-orama.d.ts +2 -2
- package/dist/components/dialog/search.d.ts +13 -13
- package/dist/components/dynamic-codeblock.d.ts +2 -2
- package/dist/components/dynamic-codeblock.d.ts.map +1 -1
- package/dist/components/github-info.d.ts +2 -2
- package/dist/components/github-info.d.ts.map +1 -1
- package/dist/components/image-zoom.d.ts +2 -2
- package/dist/components/inline-toc.d.ts +2 -2
- package/dist/components/sidebar/base.d.ts +21 -17
- package/dist/components/sidebar/base.d.ts.map +1 -1
- package/dist/components/sidebar/base.js +4 -1
- package/dist/components/sidebar/base.js.map +1 -1
- package/dist/components/sidebar/link-item.d.ts +2 -2
- package/dist/components/sidebar/link-item.d.ts.map +1 -1
- package/dist/components/sidebar/page-tree.d.ts +2 -2
- package/dist/components/sidebar/tabs/dropdown.d.ts +2 -2
- package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
- package/dist/components/steps.d.ts +3 -3
- package/dist/components/tabs.d.ts +4 -4
- package/dist/components/type-table.d.ts +2 -2
- package/dist/components/ui/accordion.d.ts +6 -6
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +6 -6
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/layouts/docs/index.d.ts +2 -2
- package/dist/layouts/docs/page/client.d.ts +9 -7
- package/dist/layouts/docs/page/client.d.ts.map +1 -1
- package/dist/layouts/docs/page/client.js +8 -8
- package/dist/layouts/docs/page/client.js.map +1 -1
- package/dist/layouts/docs/page/index.d.ts +19 -8
- package/dist/layouts/docs/page/index.d.ts.map +1 -1
- package/dist/layouts/docs/page/index.js +3 -3
- package/dist/layouts/docs/page/index.js.map +1 -1
- package/dist/layouts/docs/sidebar.d.ts +12 -12
- package/dist/layouts/docs/sidebar.d.ts.map +1 -1
- package/dist/layouts/home/client.d.ts +2 -2
- package/dist/layouts/home/index.d.ts +2 -2
- package/dist/layouts/home/navbar.d.ts +6 -6
- package/dist/layouts/home/navbar.d.ts.map +1 -1
- package/dist/layouts/notebook/client.d.ts +8 -8
- package/dist/layouts/notebook/client.d.ts.map +1 -1
- package/dist/layouts/notebook/index.d.ts +2 -2
- package/dist/layouts/notebook/page/client.d.ts +9 -7
- package/dist/layouts/notebook/page/client.d.ts.map +1 -1
- package/dist/layouts/notebook/page/client.js +8 -8
- package/dist/layouts/notebook/page/client.js.map +1 -1
- package/dist/layouts/notebook/page/index.d.ts +19 -8
- package/dist/layouts/notebook/page/index.d.ts.map +1 -1
- package/dist/layouts/notebook/page/index.js +3 -3
- package/dist/layouts/notebook/page/index.js.map +1 -1
- package/dist/layouts/notebook/sidebar.d.ts +17 -17
- package/dist/layouts/shared/index.d.ts +3 -3
- package/dist/layouts/shared/index.d.ts.map +1 -1
- package/dist/layouts/shared/language-toggle.d.ts +2 -2
- package/dist/layouts/shared/language-toggle.d.ts.map +1 -1
- package/dist/layouts/shared/search-toggle.d.ts +3 -3
- package/dist/layouts/shared/theme-toggle.d.ts +2 -2
- package/dist/layouts/shared/theme-toggle.d.ts.map +1 -1
- package/dist/page.d.ts +3 -3
- package/dist/page.d.ts.map +1 -1
- package/dist/provider/base.d.ts +2 -2
- package/dist/provider/next.d.ts +2 -2
- package/dist/provider/react-router.d.ts +2 -2
- package/dist/provider/tanstack.d.ts +2 -2
- package/dist/provider/tanstack.d.ts.map +1 -1
- package/dist/provider/waku.d.ts +2 -2
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SidebarTab } from "./index.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime52 from "react/jsx-runtime";
|
|
3
3
|
import { ComponentProps, ReactNode } from "react";
|
|
4
4
|
|
|
5
5
|
//#region src/components/sidebar/tabs/dropdown.d.ts
|
|
@@ -13,7 +13,7 @@ declare function SidebarTabsDropdown({
|
|
|
13
13
|
}: {
|
|
14
14
|
placeholder?: ReactNode;
|
|
15
15
|
options: SidebarTabWithProps[];
|
|
16
|
-
} & ComponentProps<'button'>):
|
|
16
|
+
} & ComponentProps<'button'>): react_jsx_runtime52.JSX.Element;
|
|
17
17
|
declare function isTabActive(tab: SidebarTab, pathname: string): boolean;
|
|
18
18
|
//#endregion
|
|
19
19
|
export { SidebarTabWithProps, SidebarTabsDropdown, isTabActive };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.d.ts","names":[],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":[],"mappings":";;;;;UAWiB,mBAAA,SAA4B;UACnC;;AADO,iBAID,mBAAA,CAHN;EAAA,OAAA;EADmC,WAAU;EAAA,GAAA;AAMrD,CANqD,EAAA;EAIvC,WAAA,CAAA,EAKA,SALmB;EACjC,OAAA,EAKS,mBALT,EAAA;CACA,GAKE,cALF,CAAA,QAAA,CAAA,CAAA,EAK0B,
|
|
1
|
+
{"version":3,"file":"dropdown.d.ts","names":[],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":[],"mappings":";;;;;UAWiB,mBAAA,SAA4B;UACnC;;AADO,iBAID,mBAAA,CAHN;EAAA,OAAA;EADmC,WAAU;EAAA,GAAA;AAMrD,CANqD,EAAA;EAIvC,WAAA,CAAA,EAKA,SALmB;EACjC,OAAA,EAKS,mBALT,EAAA;CACA,GAKE,cALF,CAAA,QAAA,CAAA,CAAA,EAK0B,mBAAA,CAAA,GAAA,CAAA,OAL1B;AAGc,iBAkFA,WAAA,CAlFA,GAAA,EAkFiB,UAlFjB,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime50 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/steps.d.ts
|
|
@@ -6,12 +6,12 @@ declare function Steps({
|
|
|
6
6
|
children
|
|
7
7
|
}: {
|
|
8
8
|
children: ReactNode;
|
|
9
|
-
}):
|
|
9
|
+
}): react_jsx_runtime50.JSX.Element;
|
|
10
10
|
declare function Step({
|
|
11
11
|
children
|
|
12
12
|
}: {
|
|
13
13
|
children: ReactNode;
|
|
14
|
-
}):
|
|
14
|
+
}): react_jsx_runtime50.JSX.Element;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { Step, Steps };
|
|
17
17
|
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Tabs as Tabs$1, TabsContent as TabsContent$1 } from "./ui/tabs.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime46 from "react/jsx-runtime";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { ComponentProps, ReactNode } from "react";
|
|
5
5
|
import * as _radix_ui_react_tabs0 from "@radix-ui/react-tabs";
|
|
@@ -31,7 +31,7 @@ declare function Tabs({
|
|
|
31
31
|
defaultIndex,
|
|
32
32
|
defaultValue,
|
|
33
33
|
...props
|
|
34
|
-
}: TabsProps):
|
|
34
|
+
}: TabsProps): react_jsx_runtime46.JSX.Element;
|
|
35
35
|
interface TabProps extends Omit<ComponentProps<typeof TabsContent$1>, 'value'> {
|
|
36
36
|
/**
|
|
37
37
|
* Value of tab, detect from index if unspecified.
|
|
@@ -41,12 +41,12 @@ interface TabProps extends Omit<ComponentProps<typeof TabsContent$1>, 'value'> {
|
|
|
41
41
|
declare function Tab({
|
|
42
42
|
value,
|
|
43
43
|
...props
|
|
44
|
-
}: TabProps):
|
|
44
|
+
}: TabProps): react_jsx_runtime46.JSX.Element;
|
|
45
45
|
declare function TabsContent({
|
|
46
46
|
value,
|
|
47
47
|
className,
|
|
48
48
|
...props
|
|
49
|
-
}: ComponentProps<typeof TabsContent$1>):
|
|
49
|
+
}: ComponentProps<typeof TabsContent$1>): react_jsx_runtime46.JSX.Element;
|
|
50
50
|
//#endregion
|
|
51
51
|
export { Tab, TabProps, Tabs, TabsContent, TabsList, TabsProps, TabsTrigger };
|
|
52
52
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime45 from "react/jsx-runtime";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/type-table.d.ts
|
|
@@ -33,7 +33,7 @@ declare function TypeTable({
|
|
|
33
33
|
type
|
|
34
34
|
}: {
|
|
35
35
|
type: Record<string, TypeNode>;
|
|
36
|
-
}):
|
|
36
|
+
}): react_jsx_runtime45.JSX.Element;
|
|
37
37
|
//#endregion
|
|
38
38
|
export { ParameterNode, TypeNode, TypeTable };
|
|
39
39
|
//# sourceMappingURL=type-table.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime10 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps } from "react";
|
|
3
3
|
import * as Primitive from "@radix-ui/react-accordion";
|
|
4
4
|
|
|
@@ -6,27 +6,27 @@ import * as Primitive from "@radix-ui/react-accordion";
|
|
|
6
6
|
declare function Accordion({
|
|
7
7
|
className,
|
|
8
8
|
...props
|
|
9
|
-
}: ComponentProps<typeof Primitive.Root>):
|
|
9
|
+
}: ComponentProps<typeof Primitive.Root>): react_jsx_runtime10.JSX.Element;
|
|
10
10
|
declare function AccordionItem({
|
|
11
11
|
className,
|
|
12
12
|
children,
|
|
13
13
|
...props
|
|
14
|
-
}: ComponentProps<typeof Primitive.Item>):
|
|
14
|
+
}: ComponentProps<typeof Primitive.Item>): react_jsx_runtime10.JSX.Element;
|
|
15
15
|
declare function AccordionHeader({
|
|
16
16
|
className,
|
|
17
17
|
children,
|
|
18
18
|
...props
|
|
19
|
-
}: ComponentProps<typeof Primitive.Header>):
|
|
19
|
+
}: ComponentProps<typeof Primitive.Header>): react_jsx_runtime10.JSX.Element;
|
|
20
20
|
declare function AccordionTrigger({
|
|
21
21
|
className,
|
|
22
22
|
children,
|
|
23
23
|
...props
|
|
24
|
-
}: ComponentProps<typeof Primitive.Trigger>):
|
|
24
|
+
}: ComponentProps<typeof Primitive.Trigger>): react_jsx_runtime10.JSX.Element;
|
|
25
25
|
declare function AccordionContent({
|
|
26
26
|
className,
|
|
27
27
|
children,
|
|
28
28
|
...props
|
|
29
|
-
}: ComponentProps<typeof Primitive.Content>):
|
|
29
|
+
}: ComponentProps<typeof Primitive.Content>): react_jsx_runtime10.JSX.Element;
|
|
30
30
|
//#endregion
|
|
31
31
|
export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionTrigger };
|
|
32
32
|
//# sourceMappingURL=accordion.d.ts.map
|
|
@@ -5,7 +5,7 @@ import * as class_variance_authority_types0 from "class-variance-authority/types
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
6
|
variant?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
7
7
|
color?: "primary" | "outline" | "ghost" | "secondary" | null | undefined;
|
|
8
|
-
size?: "
|
|
8
|
+
size?: "icon" | "sm" | "icon-sm" | "icon-xs" | null | undefined;
|
|
9
9
|
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
10
10
|
type ButtonProps = VariantProps<typeof buttonVariants>;
|
|
11
11
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","names":[],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":[],"mappings":";;;;cAUa,sBAiByB;;;EAjBzB,IAAA,CAAA,EAAA,
|
|
1
|
+
{"version":3,"file":"button.d.ts","names":[],"sources":["../../../src/components/ui/button.tsx"],"sourcesContent":[],"mappings":";;;;cAUa,sBAiByB;;;EAjBzB,IAAA,CAAA,EAAA,MAAA,GAAA,IAeZ,GAAA,SAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;AAED,CAAA,GAFC,+BAAA,CAAA,SAEyB,CAAA,GAAA,SAAY,EAAA,GAAA,MAAA;KAA1B,WAAA,GAAc,oBAAoB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime139 from "react/jsx-runtime";
|
|
2
|
+
import * as react20 from "react";
|
|
3
3
|
import { ComponentProps } from "react";
|
|
4
4
|
import * as Primitive from "@radix-ui/react-tabs";
|
|
5
5
|
|
|
@@ -18,8 +18,8 @@ interface TabsProps extends ComponentProps<typeof Primitive.Tabs> {
|
|
|
18
18
|
*/
|
|
19
19
|
updateAnchor?: boolean;
|
|
20
20
|
}
|
|
21
|
-
declare const TabsList:
|
|
22
|
-
declare const TabsTrigger:
|
|
21
|
+
declare const TabsList: react20.ForwardRefExoticComponent<Primitive.TabsListProps & react20.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const TabsTrigger: react20.ForwardRefExoticComponent<Primitive.TabsTriggerProps & react20.RefAttributes<HTMLButtonElement>>;
|
|
23
23
|
declare function Tabs({
|
|
24
24
|
ref,
|
|
25
25
|
groupId,
|
|
@@ -29,11 +29,11 @@ declare function Tabs({
|
|
|
29
29
|
value: _value,
|
|
30
30
|
onValueChange: _onValueChange,
|
|
31
31
|
...props
|
|
32
|
-
}: TabsProps):
|
|
32
|
+
}: TabsProps): react_jsx_runtime139.JSX.Element;
|
|
33
33
|
declare function TabsContent({
|
|
34
34
|
value,
|
|
35
35
|
...props
|
|
36
|
-
}: ComponentProps<typeof Primitive.TabsContent>):
|
|
36
|
+
}: ComponentProps<typeof Primitive.TabsContent>): react_jsx_runtime139.JSX.Element;
|
|
37
37
|
//#endregion
|
|
38
38
|
export { Tabs, TabsContent, TabsList, TabsProps, TabsTrigger };
|
|
39
39
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../../src/components/ui/tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;UAkBiB,SAAA,SAAkB,sBAAsB,SAAA,CAAU;;;;EAAlD,OAAA,CAAA,EAAA,MAAU;EA2Bd;;;EAAQ,OAAA,CAAA,EAAA,OAAA;EAAA;;AAErB;EAAwB,YAAA,CAAA,EAAA,OAAA;;AAAA,cAFX,QAEW,EAFH,
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","names":[],"sources":["../../../src/components/ui/tabs.tsx"],"sourcesContent":[],"mappings":";;;;;;UAkBiB,SAAA,SAAkB,sBAAsB,SAAA,CAAU;;;;EAAlD,OAAA,CAAA,EAAA,MAAU;EA2Bd;;;EAAQ,OAAA,CAAA,EAAA,OAAA;EAAA;;AAErB;EAAwB,YAAA,CAAA,EAAA,OAAA;;AAAA,cAFX,QAEW,EAFH,OAAA,CAAA,yBAEG,CAFH,SAAA,CAAA,aAEG,GAFH,OAAA,CAAA,aAEG,CAFH,cAEG,CAAA,CAAA;AAAA,cAAX,WAAW,EAAA,OAAA,CAAA,yBAAA,CAAA,SAAA,CAAA,gBAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA,CAAA,CAAA;AAAA,iBAER,IAAA,CAFQ;EAAA,GAAA;EAAA,OAAA;EAAA,OAAA;EAAA,YAAA;EAAA,YAAA;EAAA,KAAA,EAQf,MARe;EAAA,aAAA,EASP,cATO;EAAA,GAAA;AAAA,CAAA,EAWrB,SAXqB,CAAA,EAWZ,oBAAA,CAAA,GAAA,CAAA,OAXY;AAER,iBAgFA,WAAA,CAhFI;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAgF6B,cAhF7B,CAAA,OAgFmD,SAAA,CAAU,WAhF7D,CAAA,CAAA,EAgFyE,oBAAA,CAAA,GAAA,CAAA,OAhFzE"}
|
|
@@ -4,7 +4,7 @@ import { GetSidebarTabsOptions } from "../../components/sidebar/tabs/index.js";
|
|
|
4
4
|
import { SidebarTabWithProps } from "../../components/sidebar/tabs/dropdown.js";
|
|
5
5
|
import "./sidebar.js";
|
|
6
6
|
import { BaseLayoutProps } from "../shared/index.js";
|
|
7
|
-
import * as
|
|
7
|
+
import * as react_jsx_runtime84 from "react/jsx-runtime";
|
|
8
8
|
import { ComponentProps, HTMLAttributes, ReactNode } from "react";
|
|
9
9
|
import * as PageTree from "fumadocs-core/page-tree";
|
|
10
10
|
|
|
@@ -54,7 +54,7 @@ declare function DocsLayout({
|
|
|
54
54
|
children,
|
|
55
55
|
tree,
|
|
56
56
|
...props
|
|
57
|
-
}: DocsLayoutProps):
|
|
57
|
+
}: DocsLayoutProps): react_jsx_runtime84.JSX.Element;
|
|
58
58
|
//#endregion
|
|
59
59
|
export { DocsLayout, DocsLayoutProps };
|
|
60
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime78 from "react/jsx-runtime";
|
|
2
2
|
import { ComponentProps } from "react";
|
|
3
3
|
import { BreadcrumbOptions } from "fumadocs-core/breadcrumb";
|
|
4
4
|
import * as PageTree from "fumadocs-core/page-tree";
|
|
@@ -8,18 +8,18 @@ declare function PageTOCPopover({
|
|
|
8
8
|
className,
|
|
9
9
|
children,
|
|
10
10
|
...rest
|
|
11
|
-
}: ComponentProps<'div'>):
|
|
11
|
+
}: ComponentProps<'div'>): react_jsx_runtime78.JSX.Element;
|
|
12
12
|
declare function PageTOCPopoverTrigger({
|
|
13
13
|
className,
|
|
14
14
|
...props
|
|
15
|
-
}: ComponentProps<'button'>):
|
|
16
|
-
declare function PageTOCPopoverContent(props: ComponentProps<'div'>):
|
|
15
|
+
}: ComponentProps<'button'>): react_jsx_runtime78.JSX.Element;
|
|
16
|
+
declare function PageTOCPopoverContent(props: ComponentProps<'div'>): react_jsx_runtime78.JSX.Element;
|
|
17
17
|
declare function PageLastUpdate({
|
|
18
18
|
date: value,
|
|
19
19
|
...props
|
|
20
20
|
}: Omit<ComponentProps<'p'>, 'children'> & {
|
|
21
21
|
date: Date;
|
|
22
|
-
}):
|
|
22
|
+
}): react_jsx_runtime78.JSX.Element;
|
|
23
23
|
type Item = Pick<PageTree.Item, 'name' | 'description' | 'url'>;
|
|
24
24
|
interface FooterProps extends ComponentProps<'div'> {
|
|
25
25
|
/**
|
|
@@ -32,15 +32,17 @@ interface FooterProps extends ComponentProps<'div'> {
|
|
|
32
32
|
}
|
|
33
33
|
declare function PageFooter({
|
|
34
34
|
items,
|
|
35
|
+
children,
|
|
36
|
+
className,
|
|
35
37
|
...props
|
|
36
|
-
}: FooterProps):
|
|
38
|
+
}: FooterProps): react_jsx_runtime78.JSX.Element;
|
|
37
39
|
type BreadcrumbProps = BreadcrumbOptions & ComponentProps<'div'>;
|
|
38
40
|
declare function PageBreadcrumb({
|
|
39
41
|
includeRoot,
|
|
40
42
|
includeSeparator,
|
|
41
43
|
includePage,
|
|
42
44
|
...props
|
|
43
|
-
}: BreadcrumbProps):
|
|
45
|
+
}: BreadcrumbProps): react_jsx_runtime78.JSX.Element | null;
|
|
44
46
|
//#endregion
|
|
45
47
|
export { BreadcrumbProps, FooterProps, PageBreadcrumb, PageFooter, PageLastUpdate, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger };
|
|
46
48
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","names":[],"sources":["../../../../src/layouts/docs/page/client.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAiCgB,cAAA;;;;GAAiD,wBAAqB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","names":[],"sources":["../../../../src/layouts/docs/page/client.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAiCgB,cAAA;;;;GAAiD,wBAAqB,mBAAA,CAAA,GAAA,CAAA;iBAsDtE,qBAAA;;;GAA+C,2BAAwB,mBAAA,CAAA,GAAA,CAAA;iBA2GvE,qBAAA,QAA6B,wBAAqB,mBAAA,CAAA,GAAA,CAAA;AAjKlD,iBA6KA,cAAA,CA7Kc;EAAA,IAAA,EA8KtB,KA9KsB;EAAA,GAAA;CAAA,EAgL3B,IAhL2B,CAgLtB,cAhLsB,CAAA,GAAA,CAAA,EAAA,UAAA,CAAA,GAAA;EAAG,IAAA,EAgLkB,IAhLlB;CAAW,CAAA,EAgLa,mBAAA,CAAA,GAAA,CAAA,OAhLb;KAgMvC,IAAA,GAAO,IAhMqD,CAgMhD,QAAA,CAAS,IAhMuC,EAAA,MAAA,GAAA,aAAA,GAAA,KAAA,CAAA;AAAqB,UAiMrE,WAAA,SAAoB,cAjMiD,CAAA,KAAA,CAAA,CAAA;EAAA;AAsDtF;;EAA+D,KAAA,CAAA,EAAA;IAAwB,QAAA,CAAA,EAgJxE,IAhJwE;IAAA,IAAA,CAAA,EAiJ5E,IAjJ4E;EA2GvE,CAAA;AAYhB;AACQ,iBA6BQ,UAAA,CA7BR;EAAA,KAAA;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6B6D,WA7B7D,CAAA,EA6BwE,mBAAA,CAAA,GAAA,CAAA,OA7BxE;AAEA,KAwFI,eAAA,GAAkB,iBAxFtB,GAwF0C,cAxF1C,CAAA,KAAA,CAAA;AAAL,iBA0Fa,cAAA,CA1Fb;EAAA,WAAA;EAAA,gBAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EA+FA,eA/FA,CAAA,EA+Fe,mBAAA,CAAA,GAAA,CAAA,OAAA,GA/Ff,IAAA"}
|
|
@@ -8,7 +8,7 @@ import { LayoutContext } from "../client.js";
|
|
|
8
8
|
import Link from "fumadocs-core/link";
|
|
9
9
|
import { usePathname } from "fumadocs-core/framework";
|
|
10
10
|
import { cn } from "@fumadocs/ui/cn";
|
|
11
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { ChevronDown, ChevronLeft, ChevronRight } from "lucide-react";
|
|
13
13
|
import { Fragment as Fragment$1, createContext, use, useEffect, useEffectEvent, useMemo, useRef, useState } from "react";
|
|
14
14
|
import { getBreadcrumbItemsFromPath } from "fumadocs-core/breadcrumb";
|
|
@@ -145,7 +145,7 @@ function PageLastUpdate({ date: value, ...props }) {
|
|
|
145
145
|
]
|
|
146
146
|
});
|
|
147
147
|
}
|
|
148
|
-
function PageFooter({ items, ...props }) {
|
|
148
|
+
function PageFooter({ items, children, className, ...props }) {
|
|
149
149
|
const footerList = useFooterItems();
|
|
150
150
|
const pathname = usePathname();
|
|
151
151
|
const { previous, next } = useMemo(() => {
|
|
@@ -161,17 +161,17 @@ function PageFooter({ items, ...props }) {
|
|
|
161
161
|
items,
|
|
162
162
|
pathname
|
|
163
163
|
]);
|
|
164
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
164
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
|
|
165
|
+
className: cn("@container grid gap-4", previous && next ? "grid-cols-2" : "grid-cols-1", className),
|
|
165
166
|
...props,
|
|
166
|
-
|
|
167
|
-
children: [previous ? /* @__PURE__ */ jsx(FooterItem, {
|
|
167
|
+
children: [previous && /* @__PURE__ */ jsx(FooterItem, {
|
|
168
168
|
item: previous,
|
|
169
169
|
index: 0
|
|
170
|
-
})
|
|
170
|
+
}), next && /* @__PURE__ */ jsx(FooterItem, {
|
|
171
171
|
item: next,
|
|
172
172
|
index: 1
|
|
173
|
-
})
|
|
174
|
-
});
|
|
173
|
+
})]
|
|
174
|
+
}), children] });
|
|
175
175
|
}
|
|
176
176
|
function FooterItem({ item, index }) {
|
|
177
177
|
const { text } = (0, i18n_exports.useI18n)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["Fragment"],"sources":["../../../../src/layouts/docs/page/client.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ComponentProps,\n createContext,\n Fragment,\n use,\n useEffect,\n useEffectEvent,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ChevronDown, ChevronLeft, ChevronRight } from 'lucide-react';\nimport Link from 'fumadocs-core/link';\nimport { cn } from '@fumadocs/ui/cn';\nimport { useI18n } from '@/contexts/i18n';\nimport { useTreeContext, useTreePath } from '@/contexts/tree';\nimport type * as PageTree from 'fumadocs-core/page-tree';\nimport { usePathname } from 'fumadocs-core/framework';\nimport { type BreadcrumbOptions, getBreadcrumbItemsFromPath } from 'fumadocs-core/breadcrumb';\nimport { isActive } from '@fumadocs/ui/urls';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { useTOCItems } from '@/components/toc';\nimport { useActiveAnchor } from 'fumadocs-core/toc';\nimport { LayoutContext } from '../client';\nimport { useFooterItems } from '@fumadocs/ui/hooks/use-footer-items';\n\nconst TocPopoverContext = createContext<{\n open: boolean;\n setOpen: (open: boolean) => void;\n} | null>(null);\n\nexport function PageTOCPopover({ className, children, ...rest }: ComponentProps<'div'>) {\n const ref = useRef<HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const { isNavTransparent } = use(LayoutContext)!;\n\n const onClick = useEffectEvent((e: Event) => {\n if (!open) return;\n\n if (ref.current && !ref.current.contains(e.target as HTMLElement)) setOpen(false);\n });\n\n useEffect(() => {\n window.addEventListener('click', onClick);\n\n return () => {\n window.removeEventListener('click', onClick);\n };\n }, []);\n\n return (\n <TocPopoverContext\n value={useMemo(\n () => ({\n open,\n setOpen,\n }),\n [setOpen, open],\n )}\n >\n <Collapsible\n open={open}\n onOpenChange={setOpen}\n data-toc-popover=\"\"\n className={cn(\n 'sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]',\n className,\n )}\n {...rest}\n >\n <header\n ref={ref}\n className={cn(\n 'border-b backdrop-blur-sm transition-colors',\n (!isNavTransparent || open) && 'bg-fd-background/80',\n open && 'shadow-lg',\n )}\n >\n {children}\n </header>\n </Collapsible>\n </TocPopoverContext>\n );\n}\n\nexport function PageTOCPopoverTrigger({ className, ...props }: ComponentProps<'button'>) {\n const { text } = useI18n();\n const { open } = use(TocPopoverContext)!;\n const items = useTOCItems();\n const active = useActiveAnchor();\n const selected = useMemo(\n () => items.findIndex((item) => active === item.url.slice(1)),\n [items, active],\n );\n const path = useTreePath().at(-1);\n const showItem = selected !== -1 && !open;\n\n return (\n <CollapsibleTrigger\n className={cn(\n 'flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:size-4 md:px-6',\n className,\n )}\n data-toc-popover-trigger=\"\"\n {...props}\n >\n <ProgressCircle\n value={(selected + 1) / Math.max(1, items.length)}\n max={1}\n className={cn('shrink-0', open && 'text-fd-primary')}\n />\n <span className=\"grid flex-1 *:my-auto *:row-start-1 *:col-start-1\">\n <span\n className={cn(\n 'truncate transition-[opacity,translate,color]',\n open && 'text-fd-foreground',\n showItem && 'opacity-0 -translate-y-full pointer-events-none',\n )}\n >\n {path?.name ?? text.toc}\n </span>\n <span\n className={cn(\n 'truncate transition-[opacity,translate]',\n !showItem && 'opacity-0 translate-y-full pointer-events-none',\n )}\n >\n {items[selected]?.title}\n </span>\n </span>\n <ChevronDown className={cn('shrink-0 transition-transform mx-0.5', open && 'rotate-180')} />\n </CollapsibleTrigger>\n );\n}\n\ninterface ProgressCircleProps extends Omit<React.ComponentProps<'svg'>, 'strokeWidth'> {\n value: number;\n strokeWidth?: number;\n size?: number;\n min?: number;\n max?: number;\n}\n\nfunction clamp(input: number, min: number, max: number): number {\n if (input < min) return min;\n if (input > max) return max;\n return input;\n}\n\nfunction ProgressCircle({\n value,\n strokeWidth = 2,\n size = 24,\n min = 0,\n max = 100,\n ...restSvgProps\n}: ProgressCircleProps) {\n const normalizedValue = clamp(value, min, max);\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const progress = (normalizedValue / max) * circumference;\n const circleProps = {\n cx: size / 2,\n cy: size / 2,\n r: radius,\n fill: 'none',\n strokeWidth,\n };\n\n return (\n <svg\n role=\"progressbar\"\n viewBox={`0 0 ${size} ${size}`}\n aria-valuenow={normalizedValue}\n aria-valuemin={min}\n aria-valuemax={max}\n {...restSvgProps}\n >\n <circle {...circleProps} className=\"stroke-current/25\" />\n <circle\n {...circleProps}\n stroke=\"currentColor\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference - progress}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n className=\"transition-all\"\n />\n </svg>\n );\n}\n\nexport function PageTOCPopoverContent(props: ComponentProps<'div'>) {\n return (\n <CollapsibleContent\n data-toc-popover-content=\"\"\n {...props}\n className={cn('flex flex-col px-4 max-h-[50vh] md:px-6', props.className)}\n >\n {props.children}\n </CollapsibleContent>\n );\n}\n\nexport function PageLastUpdate({\n date: value,\n ...props\n}: Omit<ComponentProps<'p'>, 'children'> & { date: Date }) {\n const { text } = useI18n();\n const [date, setDate] = useState('');\n\n useEffect(() => {\n // to the timezone of client\n setDate(value.toLocaleDateString());\n }, [value]);\n\n return (\n <p {...props} className={cn('text-sm text-fd-muted-foreground', props.className)}>\n {text.lastUpdate} {date}\n </p>\n );\n}\n\ntype Item = Pick<PageTree.Item, 'name' | 'description' | 'url'>;\nexport interface FooterProps extends ComponentProps<'div'> {\n /**\n * Items including information for the next and previous page\n */\n items?: {\n previous?: Item;\n next?: Item;\n };\n}\n\nexport function PageFooter({ items, ...props }: FooterProps) {\n const footerList = useFooterItems();\n const pathname = usePathname();\n\n const { previous, next } = useMemo(() => {\n if (items) return items;\n\n const idx = footerList.findIndex((item) => isActive(item.url, pathname, false));\n\n if (idx === -1) return {};\n return {\n previous: footerList[idx - 1],\n next: footerList[idx + 1],\n };\n }, [footerList, items, pathname]);\n\n return (\n <div\n {...props}\n className={cn(\n '@container grid gap-4',\n previous && next ? 'grid-cols-2' : 'grid-cols-1',\n props.className,\n )}\n >\n {previous ? <FooterItem item={previous} index={0} /> : null}\n {next ? <FooterItem item={next} index={1} /> : null}\n </div>\n );\n}\n\nfunction FooterItem({ item, index }: { item: Item; index: 0 | 1 }) {\n const { text } = useI18n();\n const Icon = index === 0 ? ChevronLeft : ChevronRight;\n\n return (\n <Link\n href={item.url}\n className={cn(\n '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',\n index === 1 && 'text-end',\n )}\n >\n <div\n className={cn(\n 'inline-flex items-center gap-1.5 font-medium',\n index === 1 && 'flex-row-reverse',\n )}\n >\n <Icon className=\"-mx-1 size-4 shrink-0 rtl:rotate-180\" />\n <p>{item.name}</p>\n </div>\n <p className=\"text-fd-muted-foreground truncate\">\n {item.description ?? (index === 0 ? text.previousPage : text.nextPage)}\n </p>\n </Link>\n );\n}\n\nexport type BreadcrumbProps = BreadcrumbOptions & ComponentProps<'div'>;\n\nexport function PageBreadcrumb({\n includeRoot,\n includeSeparator,\n includePage,\n ...props\n}: BreadcrumbProps) {\n const path = useTreePath();\n const { root } = useTreeContext();\n const items = useMemo(() => {\n return getBreadcrumbItemsFromPath(root, path, {\n includePage,\n includeSeparator,\n includeRoot,\n });\n }, [includePage, includeRoot, includeSeparator, path, root]);\n\n if (items.length === 0) return null;\n\n return (\n <div\n {...props}\n className={cn('flex items-center gap-1.5 text-sm text-fd-muted-foreground', props.className)}\n >\n {items.map((item, i) => {\n const className = cn('truncate', i === items.length - 1 && 'text-fd-primary font-medium');\n\n return (\n <Fragment key={i}>\n {i !== 0 && <ChevronRight className=\"size-3.5 shrink-0\" />}\n {item.url ? (\n <Link\n href={item.url}\n className={cn(className, 'transition-opacity hover:opacity-80')}\n >\n {item.name}\n </Link>\n ) : (\n <span className={className}>{item.name}</span>\n )}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["Fragment"],"sources":["../../../../src/layouts/docs/page/client.tsx"],"sourcesContent":["'use client';\n\nimport {\n type ComponentProps,\n createContext,\n Fragment,\n use,\n useEffect,\n useEffectEvent,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ChevronDown, ChevronLeft, ChevronRight } from 'lucide-react';\nimport Link from 'fumadocs-core/link';\nimport { cn } from '@fumadocs/ui/cn';\nimport { useI18n } from '@/contexts/i18n';\nimport { useTreeContext, useTreePath } from '@/contexts/tree';\nimport type * as PageTree from 'fumadocs-core/page-tree';\nimport { usePathname } from 'fumadocs-core/framework';\nimport { type BreadcrumbOptions, getBreadcrumbItemsFromPath } from 'fumadocs-core/breadcrumb';\nimport { isActive } from '@fumadocs/ui/urls';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible';\nimport { useTOCItems } from '@/components/toc';\nimport { useActiveAnchor } from 'fumadocs-core/toc';\nimport { LayoutContext } from '../client';\nimport { useFooterItems } from '@fumadocs/ui/hooks/use-footer-items';\n\nconst TocPopoverContext = createContext<{\n open: boolean;\n setOpen: (open: boolean) => void;\n} | null>(null);\n\nexport function PageTOCPopover({ className, children, ...rest }: ComponentProps<'div'>) {\n const ref = useRef<HTMLElement>(null);\n const [open, setOpen] = useState(false);\n const { isNavTransparent } = use(LayoutContext)!;\n\n const onClick = useEffectEvent((e: Event) => {\n if (!open) return;\n\n if (ref.current && !ref.current.contains(e.target as HTMLElement)) setOpen(false);\n });\n\n useEffect(() => {\n window.addEventListener('click', onClick);\n\n return () => {\n window.removeEventListener('click', onClick);\n };\n }, []);\n\n return (\n <TocPopoverContext\n value={useMemo(\n () => ({\n open,\n setOpen,\n }),\n [setOpen, open],\n )}\n >\n <Collapsible\n open={open}\n onOpenChange={setOpen}\n data-toc-popover=\"\"\n className={cn(\n 'sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]',\n className,\n )}\n {...rest}\n >\n <header\n ref={ref}\n className={cn(\n 'border-b backdrop-blur-sm transition-colors',\n (!isNavTransparent || open) && 'bg-fd-background/80',\n open && 'shadow-lg',\n )}\n >\n {children}\n </header>\n </Collapsible>\n </TocPopoverContext>\n );\n}\n\nexport function PageTOCPopoverTrigger({ className, ...props }: ComponentProps<'button'>) {\n const { text } = useI18n();\n const { open } = use(TocPopoverContext)!;\n const items = useTOCItems();\n const active = useActiveAnchor();\n const selected = useMemo(\n () => items.findIndex((item) => active === item.url.slice(1)),\n [items, active],\n );\n const path = useTreePath().at(-1);\n const showItem = selected !== -1 && !open;\n\n return (\n <CollapsibleTrigger\n className={cn(\n 'flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&_svg]:size-4 md:px-6',\n className,\n )}\n data-toc-popover-trigger=\"\"\n {...props}\n >\n <ProgressCircle\n value={(selected + 1) / Math.max(1, items.length)}\n max={1}\n className={cn('shrink-0', open && 'text-fd-primary')}\n />\n <span className=\"grid flex-1 *:my-auto *:row-start-1 *:col-start-1\">\n <span\n className={cn(\n 'truncate transition-[opacity,translate,color]',\n open && 'text-fd-foreground',\n showItem && 'opacity-0 -translate-y-full pointer-events-none',\n )}\n >\n {path?.name ?? text.toc}\n </span>\n <span\n className={cn(\n 'truncate transition-[opacity,translate]',\n !showItem && 'opacity-0 translate-y-full pointer-events-none',\n )}\n >\n {items[selected]?.title}\n </span>\n </span>\n <ChevronDown className={cn('shrink-0 transition-transform mx-0.5', open && 'rotate-180')} />\n </CollapsibleTrigger>\n );\n}\n\ninterface ProgressCircleProps extends Omit<React.ComponentProps<'svg'>, 'strokeWidth'> {\n value: number;\n strokeWidth?: number;\n size?: number;\n min?: number;\n max?: number;\n}\n\nfunction clamp(input: number, min: number, max: number): number {\n if (input < min) return min;\n if (input > max) return max;\n return input;\n}\n\nfunction ProgressCircle({\n value,\n strokeWidth = 2,\n size = 24,\n min = 0,\n max = 100,\n ...restSvgProps\n}: ProgressCircleProps) {\n const normalizedValue = clamp(value, min, max);\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const progress = (normalizedValue / max) * circumference;\n const circleProps = {\n cx: size / 2,\n cy: size / 2,\n r: radius,\n fill: 'none',\n strokeWidth,\n };\n\n return (\n <svg\n role=\"progressbar\"\n viewBox={`0 0 ${size} ${size}`}\n aria-valuenow={normalizedValue}\n aria-valuemin={min}\n aria-valuemax={max}\n {...restSvgProps}\n >\n <circle {...circleProps} className=\"stroke-current/25\" />\n <circle\n {...circleProps}\n stroke=\"currentColor\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference - progress}\n strokeLinecap=\"round\"\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n className=\"transition-all\"\n />\n </svg>\n );\n}\n\nexport function PageTOCPopoverContent(props: ComponentProps<'div'>) {\n return (\n <CollapsibleContent\n data-toc-popover-content=\"\"\n {...props}\n className={cn('flex flex-col px-4 max-h-[50vh] md:px-6', props.className)}\n >\n {props.children}\n </CollapsibleContent>\n );\n}\n\nexport function PageLastUpdate({\n date: value,\n ...props\n}: Omit<ComponentProps<'p'>, 'children'> & { date: Date }) {\n const { text } = useI18n();\n const [date, setDate] = useState('');\n\n useEffect(() => {\n // to the timezone of client\n setDate(value.toLocaleDateString());\n }, [value]);\n\n return (\n <p {...props} className={cn('text-sm text-fd-muted-foreground', props.className)}>\n {text.lastUpdate} {date}\n </p>\n );\n}\n\ntype Item = Pick<PageTree.Item, 'name' | 'description' | 'url'>;\nexport interface FooterProps extends ComponentProps<'div'> {\n /**\n * Items including information for the next and previous page\n */\n items?: {\n previous?: Item;\n next?: Item;\n };\n}\n\nexport function PageFooter({ items, children, className, ...props }: FooterProps) {\n const footerList = useFooterItems();\n const pathname = usePathname();\n const { previous, next } = useMemo(() => {\n if (items) return items;\n\n const idx = footerList.findIndex((item) => isActive(item.url, pathname, false));\n\n if (idx === -1) return {};\n return {\n previous: footerList[idx - 1],\n next: footerList[idx + 1],\n };\n }, [footerList, items, pathname]);\n\n return (\n <>\n <div\n className={cn(\n '@container grid gap-4',\n previous && next ? 'grid-cols-2' : 'grid-cols-1',\n className,\n )}\n {...props}\n >\n {previous && <FooterItem item={previous} index={0} />}\n {next && <FooterItem item={next} index={1} />}\n </div>\n {children}\n </>\n );\n}\n\nfunction FooterItem({ item, index }: { item: Item; index: 0 | 1 }) {\n const { text } = useI18n();\n const Icon = index === 0 ? ChevronLeft : ChevronRight;\n\n return (\n <Link\n href={item.url}\n className={cn(\n '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',\n index === 1 && 'text-end',\n )}\n >\n <div\n className={cn(\n 'inline-flex items-center gap-1.5 font-medium',\n index === 1 && 'flex-row-reverse',\n )}\n >\n <Icon className=\"-mx-1 size-4 shrink-0 rtl:rotate-180\" />\n <p>{item.name}</p>\n </div>\n <p className=\"text-fd-muted-foreground truncate\">\n {item.description ?? (index === 0 ? text.previousPage : text.nextPage)}\n </p>\n </Link>\n );\n}\n\nexport type BreadcrumbProps = BreadcrumbOptions & ComponentProps<'div'>;\n\nexport function PageBreadcrumb({\n includeRoot,\n includeSeparator,\n includePage,\n ...props\n}: BreadcrumbProps) {\n const path = useTreePath();\n const { root } = useTreeContext();\n const items = useMemo(() => {\n return getBreadcrumbItemsFromPath(root, path, {\n includePage,\n includeSeparator,\n includeRoot,\n });\n }, [includePage, includeRoot, includeSeparator, path, root]);\n\n if (items.length === 0) return null;\n\n return (\n <div\n {...props}\n className={cn('flex items-center gap-1.5 text-sm text-fd-muted-foreground', props.className)}\n >\n {items.map((item, i) => {\n const className = cn('truncate', i === items.length - 1 && 'text-fd-primary font-medium');\n\n return (\n <Fragment key={i}>\n {i !== 0 && <ChevronRight className=\"size-3.5 shrink-0\" />}\n {item.url ? (\n <Link\n href={item.url}\n className={cn(className, 'transition-opacity hover:opacity-80')}\n >\n {item.name}\n </Link>\n ) : (\n <span className={className}>{item.name}</span>\n )}\n </Fragment>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AA4BA,MAAM,oBAAoB,cAGhB,KAAK;AAEf,SAAgB,eAAe,EAAE,WAAW,UAAU,GAAG,QAA+B;CACtF,MAAM,MAAM,OAAoB,KAAK;CACrC,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,EAAE,qBAAqB,IAAI,cAAc;CAE/C,MAAM,UAAU,gBAAgB,MAAa;AAC3C,MAAI,CAAC,KAAM;AAEX,MAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,EAAE,OAAsB,CAAE,SAAQ,MAAM;GACjF;AAEF,iBAAgB;AACd,SAAO,iBAAiB,SAAS,QAAQ;AAEzC,eAAa;AACX,UAAO,oBAAoB,SAAS,QAAQ;;IAE7C,EAAE,CAAC;AAEN,QACE,oBAAC;EACC,OAAO,eACE;GACL;GACA;GACD,GACD,CAAC,SAAS,KAAK,CAChB;YAED,oBAAC;GACO;GACN,cAAc;GACd,oBAAiB;GACjB,WAAW,GACT,yJACA,UACD;GACD,GAAI;aAEJ,oBAAC;IACM;IACL,WAAW,GACT,gDACC,CAAC,oBAAoB,SAAS,uBAC/B,QAAQ,YACT;IAEA;KACM;IACG;GACI;;AAIxB,SAAgB,sBAAsB,EAAE,WAAW,GAAG,SAAmC;CACvF,MAAM,EAAE,oCAAkB;CAC1B,MAAM,EAAE,SAAS,IAAI,kBAAkB;CACvC,MAAM,sCAAqB;CAC3B,MAAM,SAAS,iBAAiB;CAChC,MAAM,WAAW,cACT,MAAM,WAAW,SAAS,WAAW,KAAK,IAAI,MAAM,EAAE,CAAC,EAC7D,CAAC,OAAO,OAAO,CAChB;CACD,MAAM,sCAAoB,CAAC,GAAG,GAAG;CACjC,MAAM,WAAW,aAAa,MAAM,CAAC;AAErC,QACE,qBAAC;EACC,WAAW,GACT,mJACA,UACD;EACD,4BAAyB;EACzB,GAAI;;GAEJ,oBAAC;IACC,QAAQ,WAAW,KAAK,KAAK,IAAI,GAAG,MAAM,OAAO;IACjD,KAAK;IACL,WAAW,GAAG,YAAY,QAAQ,kBAAkB;KACpD;GACF,qBAAC;IAAK,WAAU;eACd,oBAAC;KACC,WAAW,GACT,iDACA,QAAQ,sBACR,YAAY,kDACb;eAEA,MAAM,QAAQ,KAAK;MACf,EACP,oBAAC;KACC,WAAW,GACT,2CACA,CAAC,YAAY,iDACd;eAEA,MAAM,WAAW;MACb;KACF;GACP,oBAAC,eAAY,WAAW,GAAG,wCAAwC,QAAQ,aAAa,GAAI;;GACzE;;AAYzB,SAAS,MAAM,OAAe,KAAa,KAAqB;AAC9D,KAAI,QAAQ,IAAK,QAAO;AACxB,KAAI,QAAQ,IAAK,QAAO;AACxB,QAAO;;AAGT,SAAS,eAAe,EACtB,OACA,cAAc,GACd,OAAO,IACP,MAAM,GACN,MAAM,KACN,GAAG,gBACmB;CACtB,MAAM,kBAAkB,MAAM,OAAO,KAAK,IAAI;CAC9C,MAAM,UAAU,OAAO,eAAe;CACtC,MAAM,gBAAgB,IAAI,KAAK,KAAK;CACpC,MAAM,WAAY,kBAAkB,MAAO;CAC3C,MAAM,cAAc;EAClB,IAAI,OAAO;EACX,IAAI,OAAO;EACX,GAAG;EACH,MAAM;EACN;EACD;AAED,QACE,qBAAC;EACC,MAAK;EACL,SAAS,OAAO,KAAK,GAAG;EACxB,iBAAe;EACf,iBAAe;EACf,iBAAe;EACf,GAAI;aAEJ,oBAAC;GAAO,GAAI;GAAa,WAAU;IAAsB,EACzD,oBAAC;GACC,GAAI;GACJ,QAAO;GACP,iBAAiB;GACjB,kBAAkB,gBAAgB;GAClC,eAAc;GACd,WAAW,cAAc,OAAO,EAAE,GAAG,OAAO,EAAE;GAC9C,WAAU;IACV;GACE;;AAIV,SAAgB,sBAAsB,OAA8B;AAClE,QACE,oBAAC;EACC,4BAAyB;EACzB,GAAI;EACJ,WAAW,GAAG,2CAA2C,MAAM,UAAU;YAExE,MAAM;GACY;;AAIzB,SAAgB,eAAe,EAC7B,MAAM,OACN,GAAG,SACsD;CACzD,MAAM,EAAE,oCAAkB;CAC1B,MAAM,CAAC,MAAM,WAAW,SAAS,GAAG;AAEpC,iBAAgB;AAEd,UAAQ,MAAM,oBAAoB,CAAC;IAClC,CAAC,MAAM,CAAC;AAEX,QACE,qBAAC;EAAE,GAAI;EAAO,WAAW,GAAG,oCAAoC,MAAM,UAAU;;GAC7E,KAAK;GAAW;GAAE;;GACjB;;AAeR,SAAgB,WAAW,EAAE,OAAO,UAAU,WAAW,GAAG,SAAsB;CAChF,MAAM,aAAa,gBAAgB;CACnC,MAAM,WAAW,aAAa;CAC9B,MAAM,EAAE,UAAU,SAAS,cAAc;AACvC,MAAI,MAAO,QAAO;EAElB,MAAM,MAAM,WAAW,WAAW,SAAS,SAAS,KAAK,KAAK,UAAU,MAAM,CAAC;AAE/E,MAAI,QAAQ,GAAI,QAAO,EAAE;AACzB,SAAO;GACL,UAAU,WAAW,MAAM;GAC3B,MAAM,WAAW,MAAM;GACxB;IACA;EAAC;EAAY;EAAO;EAAS,CAAC;AAEjC,QACE,4CACE,qBAAC;EACC,WAAW,GACT,yBACA,YAAY,OAAO,gBAAgB,eACnC,UACD;EACD,GAAI;aAEH,YAAY,oBAAC;GAAW,MAAM;GAAU,OAAO;IAAK,EACpD,QAAQ,oBAAC;GAAW,MAAM;GAAM,OAAO;IAAK;GACzC,EACL,YACA;;AAIP,SAAS,WAAW,EAAE,MAAM,SAAuC;CACjE,MAAM,EAAE,oCAAkB;CAC1B,MAAM,OAAO,UAAU,IAAI,cAAc;AAEzC,QACE,qBAAC;EACC,MAAM,KAAK;EACX,WAAW,GACT,mJACA,UAAU,KAAK,WAChB;aAED,qBAAC;GACC,WAAW,GACT,gDACA,UAAU,KAAK,mBAChB;cAED,oBAAC,QAAK,WAAU,yCAAyC,EACzD,oBAAC,iBAAG,KAAK,OAAS;IACd,EACN,oBAAC;GAAE,WAAU;aACV,KAAK,gBAAgB,UAAU,IAAI,KAAK,eAAe,KAAK;IAC3D;GACC;;AAMX,SAAgB,eAAe,EAC7B,aACA,kBACA,aACA,GAAG,SACe;CAClB,MAAM,sCAAoB;CAC1B,MAAM,EAAE,2CAAyB;CACjC,MAAM,QAAQ,cAAc;AAC1B,SAAO,2BAA2B,MAAM,MAAM;GAC5C;GACA;GACA;GACD,CAAC;IACD;EAAC;EAAa;EAAa;EAAkB;EAAM;EAAK,CAAC;AAE5D,KAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,QACE,oBAAC;EACC,GAAI;EACJ,WAAW,GAAG,8DAA8D,MAAM,UAAU;YAE3F,MAAM,KAAK,MAAM,MAAM;GACtB,MAAM,YAAY,GAAG,YAAY,MAAM,MAAM,SAAS,KAAK,8BAA8B;AAEzF,UACE,qBAACA,yBACE,MAAM,KAAK,oBAAC,gBAAa,WAAU,sBAAsB,EACzD,KAAK,MACJ,oBAAC;IACC,MAAM,KAAK;IACX,WAAW,GAAG,WAAW,sCAAsC;cAE9D,KAAK;KACD,GAEP,oBAAC;IAAgB;cAAY,KAAK;KAAY,KAVnC,EAYJ;IAEb;GACE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BreadcrumbProps, FooterProps, PageBreadcrumb, PageLastUpdate } from "./client.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime60 from "react/jsx-runtime";
|
|
3
3
|
import { ComponentProps, ReactNode } from "react";
|
|
4
4
|
import { AnchorProviderProps, TOCItemType } from "fumadocs-core/toc";
|
|
5
5
|
|
|
@@ -27,10 +27,16 @@ interface DocsPageProps {
|
|
|
27
27
|
*/
|
|
28
28
|
breadcrumb?: Partial<BreadcrumbOptions>;
|
|
29
29
|
/**
|
|
30
|
-
* Footer navigation,
|
|
30
|
+
* Footer navigation, located under the page body.
|
|
31
|
+
*
|
|
32
|
+
* You can specify `footer.children` to add extra components under the footer.
|
|
31
33
|
*/
|
|
32
34
|
footer?: Partial<FooterOptions>;
|
|
33
35
|
children?: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Apply class names to the `#nd-page` container.
|
|
38
|
+
*/
|
|
39
|
+
className?: string;
|
|
34
40
|
}
|
|
35
41
|
type TableOfContentOptions = Pick<AnchorProviderProps, 'single'> & {
|
|
36
42
|
/**
|
|
@@ -55,7 +61,11 @@ declare function DocsPage({
|
|
|
55
61
|
component: breadcrumb,
|
|
56
62
|
...breadcrumbProps
|
|
57
63
|
},
|
|
58
|
-
footer
|
|
64
|
+
footer: {
|
|
65
|
+
enabled: footerEnabled,
|
|
66
|
+
component: footerReplace,
|
|
67
|
+
...footerProps
|
|
68
|
+
},
|
|
59
69
|
full,
|
|
60
70
|
tableOfContentPopover: {
|
|
61
71
|
enabled: tocPopoverEnabled,
|
|
@@ -68,9 +78,10 @@ declare function DocsPage({
|
|
|
68
78
|
...tocOptions
|
|
69
79
|
},
|
|
70
80
|
toc,
|
|
71
|
-
children
|
|
81
|
+
children,
|
|
82
|
+
className
|
|
72
83
|
}: DocsPageProps): ReactNode;
|
|
73
|
-
declare function EditOnGitHub(props: ComponentProps<'a'>):
|
|
84
|
+
declare function EditOnGitHub(props: ComponentProps<'a'>): react_jsx_runtime60.JSX.Element;
|
|
74
85
|
/**
|
|
75
86
|
* Add typography styles
|
|
76
87
|
*/
|
|
@@ -78,17 +89,17 @@ declare function DocsBody({
|
|
|
78
89
|
children,
|
|
79
90
|
className,
|
|
80
91
|
...props
|
|
81
|
-
}: ComponentProps<'div'>):
|
|
92
|
+
}: ComponentProps<'div'>): react_jsx_runtime60.JSX.Element;
|
|
82
93
|
declare function DocsDescription({
|
|
83
94
|
children,
|
|
84
95
|
className,
|
|
85
96
|
...props
|
|
86
|
-
}: ComponentProps<'p'>):
|
|
97
|
+
}: ComponentProps<'p'>): react_jsx_runtime60.JSX.Element | null;
|
|
87
98
|
declare function DocsTitle({
|
|
88
99
|
children,
|
|
89
100
|
className,
|
|
90
101
|
...props
|
|
91
|
-
}: ComponentProps<'h1'>):
|
|
102
|
+
}: ComponentProps<'h1'>): react_jsx_runtime60.JSX.Element;
|
|
92
103
|
//#endregion
|
|
93
104
|
export { DocsBody, DocsDescription, DocsPage, DocsPageProps, DocsTitle, EditOnGitHub, PageBreadcrumb, PageLastUpdate };
|
|
94
105
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/layouts/docs/page/index.tsx"],"sourcesContent":[],"mappings":";;;;;;UAmBU,iBAAA,SAA0B;;aAEvB;AAP6D;AAKvB,UAKzC,aAAA,SAAsB,WAEnB,CAFmB;EAKf,OAAA,EAAA,OAAa;EACtB,SAAA,EAJK,SAIL;;AACW,UAFF,aAAA,CAEE;EACe,GAAA,CAAA,EAF1B,WAE0B,EAAA;EAAR,cAAA,CAAA,EADP,OACO,CADC,qBACD,CAAA;EAYH,qBAAA,CAAA,EAZG,OAYH,CAZW,4BAYX,CAAA;EAAR;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/layouts/docs/page/index.tsx"],"sourcesContent":[],"mappings":";;;;;;UAmBU,iBAAA,SAA0B;;aAEvB;AAP6D;AAKvB,UAKzC,aAAA,SAAsB,WAEnB,CAFmB;EAKf,OAAA,EAAA,OAAa;EACtB,SAAA,EAJK,SAIL;;AACW,UAFF,aAAA,CAEE;EACe,GAAA,CAAA,EAF1B,WAE0B,EAAA;EAAR,cAAA,CAAA,EADP,OACO,CADC,qBACD,CAAA;EAYH,qBAAA,CAAA,EAZG,OAYH,CAZW,4BAYX,CAAA;EAAR;;;;;EAiBV,IAAA,CAAA,EAAA,OAAA;EAA6B;;;EASvB,UAAA,CAAA,EA1BI,OA0BJ,CA1BY,iBA0BZ,CAAA;EAGE;;AAAS;AAUtB;;EAC8D,MAAA,CAAA,EAjCnD,OAiCmD,CAjC3C,aAiC2C,CAAA;EACzC,QAAA,CAAA,EAhCR,SAgCQ;EAA0B;;;EAIhC,SAAA,CAAA,EAAA,MAAA;;KA5BV,qBAAA,GAAwB,IA+BuB,CA/BlB,mBA+BkB,EAAA,QAAA,CAAA,GAAA;EAClD;;;EAGC,MAAA,CAAA,EA/BQ,SA+BR;EAAa;;AA4EhB;EA4BgB,MAAA,CAAA,EAlIL,SAkIa;EAAG,OAAA,EAAA,OAAA;EAAU,SAAA,EA/HxB,SA+HwB;EAAuB;;;EAQ5C,KAAA,CAAA,EAAA,QAAA,GAAe,OAAA;CAAG;KA/H7B,4BAAA,GAA+B,IA+HQ,CA/HH,qBA+HG,EAAA,QAAA,CAAA;AAAuB,iBA7HnD,QAAA,CA6HmD;EAAA,UAAA,EAAA;IAAA,OAAA,EA5H1C,iBA4H0C;IAAA,SAAA,EA5HL,UA4HK;IAAA,GAAA;EAAA,CAAA;EAAA,MAAA,EAAA;IAAA,OAAA,EA3H9C,aA2H8C;IAAA,SAAA,EA3HpB,aA2HoB;IAAA,GAAA;EAAA,CAAA;EAAA,IAAA;EAAA,qBAAA,EAAA;IAAA,OAAA,EAxHtD,iBAwHsD;IAAA,SAAA,EAvHpD,UAuHoD;IAAA,GAAA;EAAA,CAAA;EAAA,cAAA,EAAA;IAAA,OAAA,EApHtC,UAoHsC;IAAA,SAAA,EApHf,UAoHe;IAAA,GAAA;EAAA,CAAA;EAAA,GAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAhHhE,aAgHgE,CAAA,EAhHnD,SAgHmD;AAAmB,iBApCtE,YAAA,CAoCsE,KAAA,EApClD,cAoCkD,CAAA,GAAA,CAAA,CAAA,EApC/B,mBAAA,CAAA,GAAA,CAAA,OAoC+B;;AAWtF;;AAAsC,iBAnBtB,QAAA,CAmBsB;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAnBsB,cAmBtB,CAAA,KAAA,CAAA,CAAA,EAnB2C,mBAAA,CAAA,GAAA,CAAA,OAmB3C;AAAuB,iBAX7C,eAAA,CAW6C;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAXM,cAWN,CAAA,GAAA,CAAA,CAAA,EAXyB,mBAAA,CAAA,GAAA,CAAA,OAAA,GAWzB,IAAA;AAAoB,iBAAjE,SAAA,CAAiE;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAApB,cAAoB,CAAA,IAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -19,7 +19,7 @@ var page_exports = /* @__PURE__ */ __exportAll({
|
|
|
19
19
|
PageBreadcrumb: () => PageBreadcrumb,
|
|
20
20
|
PageLastUpdate: () => PageLastUpdate
|
|
21
21
|
});
|
|
22
|
-
function DocsPage({ breadcrumb: { enabled: breadcrumbEnabled = true, component: breadcrumb, ...breadcrumbProps } = {}, footer = {}, full = false, tableOfContentPopover: { enabled: tocPopoverEnabled, component: tocPopover, ...tocPopoverOptions } = {}, tableOfContent: { enabled: tocEnabled, component: tocReplace, ...tocOptions } = {}, toc = [], children }) {
|
|
22
|
+
function DocsPage({ breadcrumb: { enabled: breadcrumbEnabled = true, component: breadcrumb, ...breadcrumbProps } = {}, footer: { enabled: footerEnabled, component: footerReplace, ...footerProps } = {}, full = false, tableOfContentPopover: { enabled: tocPopoverEnabled, component: tocPopover, ...tocPopoverOptions } = {}, tableOfContent: { enabled: tocEnabled, component: tocReplace, ...tocOptions } = {}, toc = [], children, className }) {
|
|
23
23
|
tocEnabled ??= !full && (toc.length > 0 || tocOptions.footer !== void 0 || tocOptions.header !== void 0);
|
|
24
24
|
tocPopoverEnabled ??= toc.length > 0 || tocPopoverOptions.header !== void 0 || tocPopoverOptions.footer !== void 0;
|
|
25
25
|
let wrapper = (children$1) => children$1;
|
|
@@ -37,11 +37,11 @@ function DocsPage({ breadcrumb: { enabled: breadcrumbEnabled = true, component:
|
|
|
37
37
|
/* @__PURE__ */ jsxs("article", {
|
|
38
38
|
id: "nd-page",
|
|
39
39
|
"data-full": full,
|
|
40
|
-
className: cn("flex flex-col w-full max-w-[900px] mx-auto [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14", full ? "max-w-[1200px]" : "xl:layout:[--fd-toc-width:268px]"),
|
|
40
|
+
className: cn("flex flex-col w-full max-w-[900px] mx-auto [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14", full ? "max-w-[1200px]" : "xl:layout:[--fd-toc-width:268px]", className),
|
|
41
41
|
children: [
|
|
42
42
|
breadcrumbEnabled && (breadcrumb ?? /* @__PURE__ */ jsx(PageBreadcrumb, { ...breadcrumbProps })),
|
|
43
43
|
children,
|
|
44
|
-
|
|
44
|
+
footerEnabled !== false && (footerReplace ?? /* @__PURE__ */ jsx(PageFooter, { ...footerProps }))
|
|
45
45
|
]
|
|
46
46
|
}),
|
|
47
47
|
tocEnabled && (tocReplace ?? /* @__PURE__ */ jsxs("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["children","TOCProvider","TOCScrollArea","TocClerk","TocDefault","I18nLabel"],"sources":["../../../../src/layouts/docs/page/index.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@fumadocs/ui/cn';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Edit, Text } from 'lucide-react';\nimport { I18nLabel } from '@/contexts/i18n';\nimport {\n type BreadcrumbProps,\n type FooterProps,\n PageBreadcrumb,\n PageFooter,\n PageTOCPopover,\n PageTOCPopoverContent,\n PageTOCPopoverTrigger,\n} from './client';\nimport type { AnchorProviderProps, TOCItemType } from 'fumadocs-core/toc';\nimport * as TocDefault from '@/components/toc/default';\nimport * as TocClerk from '@/components/toc/clerk';\nimport { TOCProvider, TOCScrollArea } from '@/components/toc';\n\ninterface BreadcrumbOptions extends BreadcrumbProps {\n enabled: boolean;\n component: ReactNode;\n}\n\ninterface FooterOptions extends FooterProps {\n enabled: boolean;\n component: ReactNode;\n}\n\nexport interface DocsPageProps {\n toc?: TOCItemType[];\n tableOfContent?: Partial<TableOfContentOptions>;\n tableOfContentPopover?: Partial<TableOfContentPopoverOptions>;\n\n /**\n * Extend the page to fill all available space\n *\n * @defaultValue false\n */\n full?: boolean;\n\n /**\n * Replace or disable breadcrumb\n */\n breadcrumb?: Partial<BreadcrumbOptions>;\n\n /**\n * Footer navigation,
|
|
1
|
+
{"version":3,"file":"index.js","names":["children","TOCProvider","TOCScrollArea","TocClerk","TocDefault","I18nLabel"],"sources":["../../../../src/layouts/docs/page/index.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@fumadocs/ui/cn';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Edit, Text } from 'lucide-react';\nimport { I18nLabel } from '@/contexts/i18n';\nimport {\n type BreadcrumbProps,\n type FooterProps,\n PageBreadcrumb,\n PageFooter,\n PageTOCPopover,\n PageTOCPopoverContent,\n PageTOCPopoverTrigger,\n} from './client';\nimport type { AnchorProviderProps, TOCItemType } from 'fumadocs-core/toc';\nimport * as TocDefault from '@/components/toc/default';\nimport * as TocClerk from '@/components/toc/clerk';\nimport { TOCProvider, TOCScrollArea } from '@/components/toc';\n\ninterface BreadcrumbOptions extends BreadcrumbProps {\n enabled: boolean;\n component: ReactNode;\n}\n\ninterface FooterOptions extends FooterProps {\n enabled: boolean;\n component: ReactNode;\n}\n\nexport interface DocsPageProps {\n toc?: TOCItemType[];\n tableOfContent?: Partial<TableOfContentOptions>;\n tableOfContentPopover?: Partial<TableOfContentPopoverOptions>;\n\n /**\n * Extend the page to fill all available space\n *\n * @defaultValue false\n */\n full?: boolean;\n\n /**\n * Replace or disable breadcrumb\n */\n breadcrumb?: Partial<BreadcrumbOptions>;\n\n /**\n * Footer navigation, located under the page body.\n *\n * You can specify `footer.children` to add extra components under the footer.\n */\n footer?: Partial<FooterOptions>;\n\n children?: ReactNode;\n\n /**\n * Apply class names to the `#nd-page` container.\n */\n className?: string;\n}\n\ntype TableOfContentOptions = Pick<AnchorProviderProps, 'single'> & {\n /**\n * Custom content in TOC container, before the main TOC\n */\n header?: ReactNode;\n\n /**\n * Custom content in TOC container, after the main TOC\n */\n footer?: ReactNode;\n\n enabled: boolean;\n component: ReactNode;\n\n /**\n * @defaultValue 'normal'\n */\n style?: 'normal' | 'clerk';\n};\n\ntype TableOfContentPopoverOptions = Omit<TableOfContentOptions, 'single'>;\n\nexport function DocsPage({\n breadcrumb: { enabled: breadcrumbEnabled = true, component: breadcrumb, ...breadcrumbProps } = {},\n footer: { enabled: footerEnabled, component: footerReplace, ...footerProps } = {},\n full = false,\n tableOfContentPopover: {\n enabled: tocPopoverEnabled,\n component: tocPopover,\n ...tocPopoverOptions\n } = {},\n tableOfContent: { enabled: tocEnabled, component: tocReplace, ...tocOptions } = {},\n toc = [],\n children,\n className,\n}: DocsPageProps) {\n // disable TOC on full mode, you can still enable it with `enabled` option.\n tocEnabled ??=\n !full && (toc.length > 0 || tocOptions.footer !== undefined || tocOptions.header !== undefined);\n\n tocPopoverEnabled ??=\n toc.length > 0 ||\n tocPopoverOptions.header !== undefined ||\n tocPopoverOptions.footer !== undefined;\n\n let wrapper = (children: ReactNode) => children;\n\n if (tocEnabled || tocPopoverEnabled) {\n wrapper = (children) => (\n <TOCProvider single={tocOptions.single} toc={toc}>\n {children}\n </TOCProvider>\n );\n }\n\n return wrapper(\n <>\n {tocPopoverEnabled &&\n (tocPopover ?? (\n <PageTOCPopover>\n <PageTOCPopoverTrigger />\n <PageTOCPopoverContent>\n {tocPopoverOptions.header}\n <TOCScrollArea>\n {tocPopoverOptions.style === 'clerk' ? (\n <TocClerk.TOCItems />\n ) : (\n <TocDefault.TOCItems />\n )}\n </TOCScrollArea>\n {tocPopoverOptions.footer}\n </PageTOCPopoverContent>\n </PageTOCPopover>\n ))}\n <article\n id=\"nd-page\"\n data-full={full}\n className={cn(\n 'flex flex-col w-full max-w-[900px] mx-auto [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14',\n full ? 'max-w-[1200px]' : 'xl:layout:[--fd-toc-width:268px]',\n className,\n )}\n >\n {breadcrumbEnabled && (breadcrumb ?? <PageBreadcrumb {...breadcrumbProps} />)}\n {children}\n {footerEnabled !== false && (footerReplace ?? <PageFooter {...footerProps} />)}\n </article>\n {tocEnabled &&\n (tocReplace ?? (\n <div\n id=\"nd-toc\"\n className=\"sticky top-(--fd-docs-row-1) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] flex flex-col [grid-area:toc] w-(--fd-toc-width) pt-12 pe-4 pb-2 max-xl:hidden\"\n >\n {tocOptions.header}\n <h3\n id=\"toc-title\"\n className=\"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground\"\n >\n <Text className=\"size-4\" />\n <I18nLabel label=\"toc\" />\n </h3>\n <TOCScrollArea>\n {tocOptions.style === 'clerk' ? <TocClerk.TOCItems /> : <TocDefault.TOCItems />}\n </TOCScrollArea>\n {tocOptions.footer}\n </div>\n ))}\n </>,\n );\n}\n\nexport function EditOnGitHub(props: ComponentProps<'a'>) {\n return (\n <a\n target=\"_blank\"\n rel=\"noreferrer noopener\"\n {...props}\n className={cn(\n buttonVariants({\n color: 'secondary',\n size: 'sm',\n className: 'gap-1.5 not-prose',\n }),\n props.className,\n )}\n >\n {props.children ?? (\n <>\n <Edit className=\"size-3.5\" />\n <I18nLabel label=\"editOnGithub\" />\n </>\n )}\n </a>\n );\n}\n\n/**\n * Add typography styles\n */\nexport function DocsBody({ children, className, ...props }: ComponentProps<'div'>) {\n return (\n <div {...props} className={cn('prose flex-1', className)}>\n {children}\n </div>\n );\n}\n\nexport function DocsDescription({ children, className, ...props }: ComponentProps<'p'>) {\n // Don't render if no description provided\n if (children === undefined) return null;\n\n return (\n <p {...props} className={cn('mb-8 text-lg text-fd-muted-foreground', className)}>\n {children}\n </p>\n );\n}\n\nexport function DocsTitle({ children, className, ...props }: ComponentProps<'h1'>) {\n return (\n <h1 {...props} className={cn('text-[1.75em] font-semibold', className)}>\n {children}\n </h1>\n );\n}\n\nexport { PageLastUpdate, PageBreadcrumb } from './client';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmFA,SAAgB,SAAS,EACvB,YAAY,EAAE,SAAS,oBAAoB,MAAM,WAAW,YAAY,GAAG,oBAAoB,EAAE,EACjG,QAAQ,EAAE,SAAS,eAAe,WAAW,eAAe,GAAG,gBAAgB,EAAE,EACjF,OAAO,OACP,uBAAuB,EACrB,SAAS,mBACT,WAAW,YACX,GAAG,sBACD,EAAE,EACN,gBAAgB,EAAE,SAAS,YAAY,WAAW,YAAY,GAAG,eAAe,EAAE,EAClF,MAAM,EAAE,EACR,UACA,aACgB;AAEhB,gBACE,CAAC,SAAS,IAAI,SAAS,KAAK,WAAW,WAAW,UAAa,WAAW,WAAW;AAEvF,uBACE,IAAI,SAAS,KACb,kBAAkB,WAAW,UAC7B,kBAAkB,WAAW;CAE/B,IAAI,WAAW,eAAwBA;AAEvC,KAAI,cAAc,kBAChB,YAAW,eACT,oBAACC;EAAY,QAAQ,WAAW;EAAa;YAC1CD;GACW;AAIlB,QAAO,QACL;EACG,sBACE,cACC,qBAAC,6BACC,oBAAC,0BAAwB,EACzB,qBAAC;GACE,kBAAkB;GACnB,oBAACE,uCACE,kBAAkB,UAAU,UAC3B,oBAACC,cAAS,aAAW,GAErB,oBAACC,gBAAW,aAAW,GAEX;GACf,kBAAkB;MACG,IACT;EAErB,qBAAC;GACC,IAAG;GACH,aAAW;GACX,WAAW,GACT,gHACA,OAAO,mBAAmB,oCAC1B,UACD;;IAEA,sBAAsB,cAAc,oBAAC,kBAAe,GAAI,kBAAmB;IAC3E;IACA,kBAAkB,UAAU,iBAAiB,oBAAC,cAAW,GAAI,cAAe;;IACrE;EACT,eACE,cACC,qBAAC;GACC,IAAG;GACH,WAAU;;IAET,WAAW;IACZ,qBAAC;KACC,IAAG;KACH,WAAU;gBAEV,oBAAC,QAAK,WAAU,WAAW,EAC3B,oBAACC,0BAAU,OAAM,QAAQ;MACtB;IACL,oBAACH,uCACE,WAAW,UAAU,UAAU,oBAACC,cAAS,aAAW,GAAG,oBAACC,gBAAW,aAAW,GACjE;IACf,WAAW;;IACR;KAET,CACJ;;AAGH,SAAgB,aAAa,OAA4B;AACvD,QACE,oBAAC;EACC,QAAO;EACP,KAAI;EACJ,GAAI;EACJ,WAAW,GACT,eAAe;GACb,OAAO;GACP,MAAM;GACN,WAAW;GACZ,CAAC,EACF,MAAM,UACP;YAEA,MAAM,YACL,4CACE,oBAAC,QAAK,WAAU,aAAa,EAC7B,oBAACC,0BAAU,OAAM,iBAAiB,IACjC;GAEH;;;;;AAOR,SAAgB,SAAS,EAAE,UAAU,WAAW,GAAG,SAAgC;AACjF,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,gBAAgB,UAAU;EACrD;GACG;;AAIV,SAAgB,gBAAgB,EAAE,UAAU,WAAW,GAAG,SAA8B;AAEtF,KAAI,aAAa,OAAW,QAAO;AAEnC,QACE,oBAAC;EAAE,GAAI;EAAO,WAAW,GAAG,yCAAyC,UAAU;EAC5E;GACC;;AAIR,SAAgB,UAAU,EAAE,UAAU,WAAW,GAAG,SAA+B;AACjF,QACE,oBAAC;EAAG,GAAI;EAAO,WAAW,GAAG,+BAA+B,UAAU;EACnE;GACE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SidebarCollapseTrigger, SidebarDrawerContent, SidebarFolder, SidebarFolderContent as SidebarFolderContent$1, SidebarFolderLink as SidebarFolderLink$1, SidebarFolderTrigger as SidebarFolderTrigger$1, SidebarItem as SidebarItem$1, SidebarProvider, SidebarTrigger, SidebarViewport } from "../../components/sidebar/base.js";
|
|
2
2
|
import { SidebarPageTreeComponents } from "../../components/sidebar/page-tree.js";
|
|
3
|
-
import * as
|
|
4
|
-
import * as
|
|
3
|
+
import * as react_jsx_runtime64 from "react/jsx-runtime";
|
|
4
|
+
import * as react10 from "react";
|
|
5
5
|
import { ComponentProps } from "react";
|
|
6
6
|
import * as _fumadocs_ui_link_item0 from "@fumadocs/ui/link-item";
|
|
7
7
|
|
|
@@ -11,48 +11,48 @@ declare function SidebarContent({
|
|
|
11
11
|
className,
|
|
12
12
|
children,
|
|
13
13
|
...props
|
|
14
|
-
}: ComponentProps<'aside'>):
|
|
14
|
+
}: ComponentProps<'aside'>): react_jsx_runtime64.JSX.Element;
|
|
15
15
|
declare function SidebarDrawer({
|
|
16
16
|
children,
|
|
17
17
|
className,
|
|
18
18
|
...props
|
|
19
|
-
}: ComponentProps<typeof SidebarDrawerContent>):
|
|
19
|
+
}: ComponentProps<typeof SidebarDrawerContent>): react_jsx_runtime64.JSX.Element;
|
|
20
20
|
declare function SidebarSeparator({
|
|
21
21
|
className,
|
|
22
22
|
style,
|
|
23
23
|
children,
|
|
24
24
|
...props
|
|
25
|
-
}: ComponentProps<'p'>):
|
|
25
|
+
}: ComponentProps<'p'>): react_jsx_runtime64.JSX.Element;
|
|
26
26
|
declare function SidebarItem({
|
|
27
27
|
className,
|
|
28
28
|
style,
|
|
29
29
|
children,
|
|
30
30
|
...props
|
|
31
|
-
}: ComponentProps<typeof SidebarItem$1>):
|
|
31
|
+
}: ComponentProps<typeof SidebarItem$1>): react_jsx_runtime64.JSX.Element;
|
|
32
32
|
declare function SidebarFolderTrigger({
|
|
33
33
|
className,
|
|
34
34
|
style,
|
|
35
35
|
...props
|
|
36
|
-
}: ComponentProps<typeof SidebarFolderTrigger$1>):
|
|
36
|
+
}: ComponentProps<typeof SidebarFolderTrigger$1>): react_jsx_runtime64.JSX.Element;
|
|
37
37
|
declare function SidebarFolderLink({
|
|
38
38
|
className,
|
|
39
39
|
style,
|
|
40
40
|
...props
|
|
41
|
-
}: ComponentProps<typeof SidebarFolderLink$1>):
|
|
41
|
+
}: ComponentProps<typeof SidebarFolderLink$1>): react_jsx_runtime64.JSX.Element;
|
|
42
42
|
declare function SidebarFolderContent({
|
|
43
43
|
className,
|
|
44
44
|
children,
|
|
45
45
|
...props
|
|
46
|
-
}: ComponentProps<typeof SidebarFolderContent$1>):
|
|
47
|
-
declare const SidebarPageTree: (components: Partial<SidebarPageTreeComponents>) =>
|
|
46
|
+
}: ComponentProps<typeof SidebarFolderContent$1>): react_jsx_runtime64.JSX.Element;
|
|
47
|
+
declare const SidebarPageTree: (components: Partial<SidebarPageTreeComponents>) => react_jsx_runtime64.JSX.Element;
|
|
48
48
|
declare const SidebarLinkItem: ({
|
|
49
49
|
item,
|
|
50
50
|
...props
|
|
51
|
-
}:
|
|
51
|
+
}: react10.HTMLAttributes<HTMLElement> & {
|
|
52
52
|
item: Exclude<_fumadocs_ui_link_item0.LinkItemType, {
|
|
53
53
|
type: "icon";
|
|
54
54
|
}>;
|
|
55
|
-
}) =>
|
|
55
|
+
}) => react_jsx_runtime64.JSX.Element;
|
|
56
56
|
//#endregion
|
|
57
57
|
export { SidebarProvider as Sidebar, SidebarCollapseTrigger, SidebarContent, SidebarDrawer, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarLinkItem, SidebarPageTree, SidebarSeparator, SidebarTrigger, SidebarViewport };
|
|
58
58
|
//# sourceMappingURL=sidebar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../../src/layouts/docs/sidebar.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAwCgB,cAAA;OACT;;;;GAIJ,0BAAuB,
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../../src/layouts/docs/sidebar.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAwCgB,cAAA;OACT;;;;GAIJ,0BAAuB,mBAAA,CAAA,GAAA,CAAA;iBA8DV,aAAA;;;;GAIb,sBAAsB,wBAA0B,mBAAA,CAAA,GAAA,CAAA;iBAiBnC,gBAAA;;;;;GAA2D,sBAAmB,mBAAA,CAAA,GAAA,CAAA;iBAiB9E,WAAA;;;;;GAKb,sBAAsB,iBAAiB,mBAAA,CAAA,GAAA,CAAA;iBAiB1B,oBAAA;;;;GAIb,sBAAsB,0BAA0B,mBAAA,CAAA,GAAA,CAAA;AAnInC,iBAoJA,iBAAA,CApJc;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAwJ3B,cAxJ2B,CAAA,OAwJL,mBAxJK,CAAA,CAAA,EAwJkB,mBAAA,CAAA,GAAA,CAAA,OAxJlB;AACvB,iBAwKS,oBAAA,CAxKT;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA4KJ,cA5KI,CAAA,OA4KkB,sBA5KlB,CAAA,CAAA,EA4K4C,mBAAA,CAAA,GAAA,CAAA,OA5K5C;AACL,cA6LW,eA7LX,EAAA,CAAA,UAAA,EA6L0B,OA7L1B,CAoMA,yBAAA,CApMA,EAAA,GA6L0B,mBAAA,CAAA,GAAA,CAAA,OA7L1B;AACA,cAqMW,eArMX,EAAA,CAAA;EAAA,IAAA;EAAA,GAAA;AAgEF,CAhEE,EAqM0B,OAAA,CAAA,cArM1B,CAqM0B,WArM1B,CAAA,GAAA;EAEC,IAAA,SAAA,CAmMyB,uBAAA,CAAA,YAAA,EAnMzB;IAAuB,IAAA,EAAA,MAAA;EAAA,CAAA,CAAA;AA8D1B,CAAA,EAAA,kCAA6B"}
|