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.
Files changed (80) hide show
  1. package/css/emerald.css +1 -0
  2. package/css/ruby.css +1 -0
  3. package/dist/components/accordion.d.ts +3 -3
  4. package/dist/components/banner.d.ts +2 -2
  5. package/dist/components/callout.d.ts +5 -5
  6. package/dist/components/callout.d.ts.map +1 -1
  7. package/dist/components/card.d.ts +3 -3
  8. package/dist/components/card.d.ts.map +1 -1
  9. package/dist/components/codeblock.d.ts +7 -7
  10. package/dist/components/codeblock.d.ts.map +1 -1
  11. package/dist/components/dialog/search-algolia.d.ts +2 -2
  12. package/dist/components/dialog/search-default.d.ts +2 -2
  13. package/dist/components/dialog/search-orama.d.ts +2 -2
  14. package/dist/components/dialog/search.d.ts +13 -13
  15. package/dist/components/dynamic-codeblock.d.ts +2 -2
  16. package/dist/components/dynamic-codeblock.d.ts.map +1 -1
  17. package/dist/components/github-info.d.ts +2 -2
  18. package/dist/components/github-info.d.ts.map +1 -1
  19. package/dist/components/image-zoom.d.ts +2 -2
  20. package/dist/components/inline-toc.d.ts +2 -2
  21. package/dist/components/sidebar/base.d.ts +21 -17
  22. package/dist/components/sidebar/base.d.ts.map +1 -1
  23. package/dist/components/sidebar/base.js +4 -1
  24. package/dist/components/sidebar/base.js.map +1 -1
  25. package/dist/components/sidebar/link-item.d.ts +2 -2
  26. package/dist/components/sidebar/link-item.d.ts.map +1 -1
  27. package/dist/components/sidebar/page-tree.d.ts +2 -2
  28. package/dist/components/sidebar/tabs/dropdown.d.ts +2 -2
  29. package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
  30. package/dist/components/steps.d.ts +3 -3
  31. package/dist/components/tabs.d.ts +4 -4
  32. package/dist/components/type-table.d.ts +2 -2
  33. package/dist/components/ui/accordion.d.ts +6 -6
  34. package/dist/components/ui/button.d.ts +1 -1
  35. package/dist/components/ui/button.d.ts.map +1 -1
  36. package/dist/components/ui/tabs.d.ts +6 -6
  37. package/dist/components/ui/tabs.d.ts.map +1 -1
  38. package/dist/layouts/docs/index.d.ts +2 -2
  39. package/dist/layouts/docs/page/client.d.ts +9 -7
  40. package/dist/layouts/docs/page/client.d.ts.map +1 -1
  41. package/dist/layouts/docs/page/client.js +8 -8
  42. package/dist/layouts/docs/page/client.js.map +1 -1
  43. package/dist/layouts/docs/page/index.d.ts +19 -8
  44. package/dist/layouts/docs/page/index.d.ts.map +1 -1
  45. package/dist/layouts/docs/page/index.js +3 -3
  46. package/dist/layouts/docs/page/index.js.map +1 -1
  47. package/dist/layouts/docs/sidebar.d.ts +12 -12
  48. package/dist/layouts/docs/sidebar.d.ts.map +1 -1
  49. package/dist/layouts/home/client.d.ts +2 -2
  50. package/dist/layouts/home/index.d.ts +2 -2
  51. package/dist/layouts/home/navbar.d.ts +6 -6
  52. package/dist/layouts/home/navbar.d.ts.map +1 -1
  53. package/dist/layouts/notebook/client.d.ts +8 -8
  54. package/dist/layouts/notebook/client.d.ts.map +1 -1
  55. package/dist/layouts/notebook/index.d.ts +2 -2
  56. package/dist/layouts/notebook/page/client.d.ts +9 -7
  57. package/dist/layouts/notebook/page/client.d.ts.map +1 -1
  58. package/dist/layouts/notebook/page/client.js +8 -8
  59. package/dist/layouts/notebook/page/client.js.map +1 -1
  60. package/dist/layouts/notebook/page/index.d.ts +19 -8
  61. package/dist/layouts/notebook/page/index.d.ts.map +1 -1
  62. package/dist/layouts/notebook/page/index.js +3 -3
  63. package/dist/layouts/notebook/page/index.js.map +1 -1
  64. package/dist/layouts/notebook/sidebar.d.ts +17 -17
  65. package/dist/layouts/shared/index.d.ts +3 -3
  66. package/dist/layouts/shared/index.d.ts.map +1 -1
  67. package/dist/layouts/shared/language-toggle.d.ts +2 -2
  68. package/dist/layouts/shared/language-toggle.d.ts.map +1 -1
  69. package/dist/layouts/shared/search-toggle.d.ts +3 -3
  70. package/dist/layouts/shared/theme-toggle.d.ts +2 -2
  71. package/dist/layouts/shared/theme-toggle.d.ts.map +1 -1
  72. package/dist/page.d.ts +3 -3
  73. package/dist/page.d.ts.map +1 -1
  74. package/dist/provider/base.d.ts +2 -2
  75. package/dist/provider/next.d.ts +2 -2
  76. package/dist/provider/react-router.d.ts +2 -2
  77. package/dist/provider/tanstack.d.ts +2 -2
  78. package/dist/provider/tanstack.d.ts.map +1 -1
  79. package/dist/provider/waku.d.ts +2 -2
  80. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
1
  import { SidebarTab } from "./index.js";
2
- import * as react_jsx_runtime120 from "react/jsx-runtime";
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'>): react_jsx_runtime120.JSX.Element;
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,oBAAA,CAAA,GAAA,CAAA,OAL1B;AAGc,iBAkFA,WAAA,CAlFA,GAAA,EAkFiB,UAlFjB,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA"}
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 react_jsx_runtime26 from "react/jsx-runtime";
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
- }): react_jsx_runtime26.JSX.Element;
9
+ }): react_jsx_runtime50.JSX.Element;
10
10
  declare function Step({
11
11
  children
12
12
  }: {
13
13
  children: ReactNode;
14
- }): react_jsx_runtime26.JSX.Element;
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 react_jsx_runtime29 from "react/jsx-runtime";
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): react_jsx_runtime29.JSX.Element;
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): react_jsx_runtime29.JSX.Element;
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>): react_jsx_runtime29.JSX.Element;
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 react_jsx_runtime32 from "react/jsx-runtime";
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
- }): react_jsx_runtime32.JSX.Element;
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 react_jsx_runtime67 from "react/jsx-runtime";
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>): react_jsx_runtime67.JSX.Element;
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>): react_jsx_runtime67.JSX.Element;
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>): react_jsx_runtime67.JSX.Element;
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>): react_jsx_runtime67.JSX.Element;
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>): react_jsx_runtime67.JSX.Element;
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?: "sm" | "icon" | "icon-sm" | "icon-xs" | null | undefined;
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,IAAA,GAAA,MAeZ,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
+ {"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 react_jsx_runtime72 from "react/jsx-runtime";
2
- import * as react7 from "react";
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: react7.ForwardRefExoticComponent<Primitive.TabsListProps & react7.RefAttributes<HTMLDivElement>>;
22
- declare const TabsTrigger: react7.ForwardRefExoticComponent<Primitive.TabsTriggerProps & react7.RefAttributes<HTMLButtonElement>>;
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): react_jsx_runtime72.JSX.Element;
32
+ }: TabsProps): react_jsx_runtime139.JSX.Element;
33
33
  declare function TabsContent({
34
34
  value,
35
35
  ...props
36
- }: ComponentProps<typeof Primitive.TabsContent>): react_jsx_runtime72.JSX.Element;
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,MAAA,CAAA,yBAEG,CAFH,SAAA,CAAA,aAEG,GAFH,MAAA,CAAA,aAEG,CAFH,cAEG,CAAA,CAAA;AAAA,cAAX,WAAW,EAAA,MAAA,CAAA,yBAAA,CAAA,SAAA,CAAA,gBAAA,GAAA,MAAA,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,mBAAA,CAAA,GAAA,CAAA,OAXY;AAER,iBAgFA,WAAA,CAhFI;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAgF6B,cAhF7B,CAAA,OAgFmD,SAAA,CAAU,WAhF7D,CAAA,CAAA,EAgFyE,mBAAA,CAAA,GAAA,CAAA,OAhFzE"}
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 react_jsx_runtime78 from "react/jsx-runtime";
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): react_jsx_runtime78.JSX.Element;
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 react_jsx_runtime107 from "react/jsx-runtime";
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'>): react_jsx_runtime107.JSX.Element;
11
+ }: ComponentProps<'div'>): react_jsx_runtime78.JSX.Element;
12
12
  declare function PageTOCPopoverTrigger({
13
13
  className,
14
14
  ...props
15
- }: ComponentProps<'button'>): react_jsx_runtime107.JSX.Element;
16
- declare function PageTOCPopoverContent(props: ComponentProps<'div'>): react_jsx_runtime107.JSX.Element;
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
- }): react_jsx_runtime107.JSX.Element;
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): react_jsx_runtime107.JSX.Element;
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): react_jsx_runtime107.JSX.Element | null;
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,oBAAA,CAAA,GAAA,CAAA;iBAsDtE,qBAAA;;;GAA+C,2BAAwB,oBAAA,CAAA,GAAA,CAAA;iBA2GvE,qBAAA,QAA6B,wBAAqB,oBAAA,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,oBAAA,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,GAAA;AAAA,CAAA,EA6BwC,WA7BxC,CAAA,EA6BmD,oBAAA,CAAA,GAAA,CAAA,OA7BnD;AAEA,KAsFI,eAAA,GAAkB,iBAtFtB,GAsF0C,cAtF1C,CAAA,KAAA,CAAA;AAAL,iBAwFa,cAAA,CAxFb;EAAA,WAAA;EAAA,gBAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EA6FA,eA7FA,CAAA,EA6Fe,oBAAA,CAAA,GAAA,CAAA,OAAA,GA7Ff,IAAA"}
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
- className: cn("@container grid gap-4", previous && next ? "grid-cols-2" : "grid-cols-1", props.className),
167
- children: [previous ? /* @__PURE__ */ jsx(FooterItem, {
167
+ children: [previous && /* @__PURE__ */ jsx(FooterItem, {
168
168
  item: previous,
169
169
  index: 0
170
- }) : null, next ? /* @__PURE__ */ jsx(FooterItem, {
170
+ }), next && /* @__PURE__ */ jsx(FooterItem, {
171
171
  item: next,
172
172
  index: 1
173
- }) : null]
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":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BreadcrumbProps, FooterProps, PageBreadcrumb, PageLastUpdate } from "./client.js";
2
- import * as react_jsx_runtime126 from "react/jsx-runtime";
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, you can disable it by passing `false`
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'>): react_jsx_runtime126.JSX.Element;
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'>): react_jsx_runtime126.JSX.Element;
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'>): react_jsx_runtime126.JSX.Element | null;
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'>): react_jsx_runtime126.JSX.Element;
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;;;;;EAUV,IAAA,CAAA,EAAA,OAAA;EAA6B;;;EASvB,UAAA,CAAA,EAnBI,OAmBJ,CAnBY,iBAmBZ,CAAA;EAGE;;AAAS;EAUN,MAAA,CAAA,EA3BL,OA2Ba,CA3BL,aA2BK,CAAA;EACC,QAAA,CAAA,EA1BZ,SA0BY;;KAvBpB,qBAAA,GAAwB,IAwB3B,CAxBgC,mBAwBhC,EAAA,QAAA,CAAA,GAAA;EACA;;;EAM2B,MAAA,CAAA,EA3BlB,SA2BkB;EAAuB;;;EAGjD,MAAA,CAAA,EAzBQ,SAyBR;EAAa,OAAA,EAAA,OAAA;EAAA,SAAA,EAtBH,SAsBG;EA2EA;AA4BhB;;EAAqC,KAAA,CAAA,EAAA,QAAA,GAAA,OAAA;CAAuB;KArHvD,4BAAA,GAA+B,IAqH6C,CArHxC,qBAqHwC,EAAA,QAAA,CAAA;AAAA,iBAnHjE,QAAA,CAmHiE;EAAA,UAAA,EAAA;IAAA,OAAA,EAlHxD,iBAkHwD;IAAA,SAAA,EAlHnB,UAkHmB;IAAA,GAAA;EAAA,CAAA;EAAA,MAAA;EAAA,IAAA;EAAA,qBAAA,EAAA;IAAA,OAAA,EA9GpE,iBA8GoE;IAAA,SAAA,EA7GlE,UA6GkE;IAAA,GAAA;EAAA,CAAA;EAAA,cAAA,EAAA;IAAA,OAAA,EA1GpD,UA0GoD;IAAA,SAAA,EA1G7B,UA0G6B;IAAA,GAAA;EAAA,CAAA;EAAA,GAAA;EAAA;AAAA,CAAA,EAvG9E,aAuG8E,CAAA,EAvGjE,SAuGiE;AAQjE,iBApCA,YAAA,CAoCe,KAAA,EApCK,cAoCL,CAAA,GAAA,CAAA,CAAA,EApCwB,oBAAA,CAAA,GAAA,CAAA,OAoCxB;;;;AAAuD,iBARtE,QAAA,CAQsE;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAR1B,cAQ0B,CAAA,KAAA,CAAA,CAAA,EARL,oBAAA,CAAA,GAAA,CAAA,OAQK;AAAA,iBAAtE,eAAA,CAAsE;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAAnB,cAAmB,CAAA,GAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,IAAA;AAWtE,iBAAA,SAAA,CAAS;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAAoC,cAApC,CAAA,IAAA,CAAA,CAAA,EAAwD,oBAAA,CAAA,GAAA,CAAA,OAAxD"}
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
- footer.enabled !== false && (footer.component ?? /* @__PURE__ */ jsx(PageFooter, { items: footer.items }))
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, you can disable it by passing `false`\n */\n footer?: Partial<FooterOptions>;\n\n children?: ReactNode;\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 = {},\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}: 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 )}\n >\n {breadcrumbEnabled && (breadcrumb ?? <PageBreadcrumb {...breadcrumbProps} />)}\n {children}\n {footer.enabled !== false && (footer.component ?? <PageFooter items={footer.items} />)}\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":";;;;;;;;;;;;;;;;;;;;;AA4EA,SAAgB,SAAS,EACvB,YAAY,EAAE,SAAS,oBAAoB,MAAM,WAAW,YAAY,GAAG,oBAAoB,EAAE,EACjG,SAAS,EAAE,EACX,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,YACgB;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,mCAC3B;;IAEA,sBAAsB,cAAc,oBAAC,kBAAe,GAAI,kBAAmB;IAC3E;IACA,OAAO,YAAY,UAAU,OAAO,aAAa,oBAAC,cAAW,OAAO,OAAO,QAAS;;IAC7E;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
+ {"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 react_jsx_runtime132 from "react/jsx-runtime";
4
- import * as react23 from "react";
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'>): react_jsx_runtime132.JSX.Element;
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>): react_jsx_runtime132.JSX.Element;
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'>): react_jsx_runtime132.JSX.Element;
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>): react_jsx_runtime132.JSX.Element;
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>): react_jsx_runtime132.JSX.Element;
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>): react_jsx_runtime132.JSX.Element;
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>): react_jsx_runtime132.JSX.Element;
47
- declare const SidebarPageTree: (components: Partial<SidebarPageTreeComponents>) => react_jsx_runtime132.JSX.Element;
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
- }: react23.HTMLAttributes<HTMLElement> & {
51
+ }: react10.HTMLAttributes<HTMLElement> & {
52
52
  item: Exclude<_fumadocs_ui_link_item0.LinkItemType, {
53
53
  type: "icon";
54
54
  }>;
55
- }) => react_jsx_runtime132.JSX.Element;
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,oBAAA,CAAA,GAAA,CAAA;iBA8DV,aAAA;;;;GAIb,sBAAsB,wBAA0B,oBAAA,CAAA,GAAA,CAAA;iBAiBnC,gBAAA;;;;;GAA2D,sBAAmB,oBAAA,CAAA,GAAA,CAAA;iBAiB9E,WAAA;;;;;GAKb,sBAAsB,iBAAiB,oBAAA,CAAA,GAAA,CAAA;iBAiB1B,oBAAA;;;;GAIb,sBAAsB,0BAA0B,oBAAA,CAAA,GAAA,CAAA;AAnInC,iBAoJA,iBAAA,CApJc;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAwJ3B,cAxJ2B,CAAA,OAwJL,mBAxJK,CAAA,CAAA,EAwJkB,oBAAA,CAAA,GAAA,CAAA,OAxJlB;AACvB,iBAwKS,oBAAA,CAxKT;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA4KJ,cA5KI,CAAA,OA4KkB,sBA5KlB,CAAA,CAAA,EA4K4C,oBAAA,CAAA,GAAA,CAAA,OA5K5C;AACL,cA6LW,eA7LX,EAAA,CAAA,UAAA,EA6L0B,OA7L1B,CAoMA,yBAAA,CApMA,EAAA,GA6L0B,oBAAA,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,mCAA6B"}
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"}