@fumadocs/base-ui 16.4.1 → 16.4.3

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 (265) hide show
  1. package/dist/_virtual/rolldown_runtime.js +36 -0
  2. package/dist/components/accordion.d.ts +23 -7
  3. package/dist/components/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion.js +66 -36
  5. package/dist/components/accordion.js.map +1 -0
  6. package/dist/components/banner.d.ts +33 -22
  7. package/dist/components/banner.d.ts.map +1 -1
  8. package/dist/components/banner.js +63 -47
  9. package/dist/components/banner.js.map +1 -0
  10. package/dist/components/callout.d.ts +41 -17
  11. package/dist/components/callout.d.ts.map +1 -1
  12. package/dist/components/callout.js +57 -28
  13. package/dist/components/callout.js.map +1 -0
  14. package/dist/components/card.d.ts +19 -9
  15. package/dist/components/card.d.ts.map +1 -1
  16. package/dist/components/card.js +39 -8
  17. package/dist/components/card.js.map +1 -0
  18. package/dist/components/codeblock.d.ts +66 -40
  19. package/dist/components/codeblock.d.ts.map +1 -1
  20. package/dist/components/codeblock.js +116 -58
  21. package/dist/components/codeblock.js.map +1 -0
  22. package/dist/components/dialog/search-algolia.d.ts +37 -23
  23. package/dist/components/dialog/search-algolia.d.ts.map +1 -1
  24. package/dist/components/dialog/search-algolia.js +64 -31
  25. package/dist/components/dialog/search-algolia.js.map +1 -0
  26. package/dist/components/dialog/search-default.d.ts +42 -27
  27. package/dist/components/dialog/search-default.d.ts.map +1 -1
  28. package/dist/components/dialog/search-default.js +64 -38
  29. package/dist/components/dialog/search-default.js.map +1 -0
  30. package/dist/components/dialog/search-orama.d.ts +41 -25
  31. package/dist/components/dialog/search-orama.d.ts.map +1 -1
  32. package/dist/components/dialog/search-orama.js +68 -35
  33. package/dist/components/dialog/search-orama.js.map +1 -0
  34. package/dist/components/dialog/search.d.ts +107 -64
  35. package/dist/components/dialog/search.d.ts.map +1 -1
  36. package/dist/components/dialog/search.js +264 -185
  37. package/dist/components/dialog/search.js.map +1 -0
  38. package/dist/components/dynamic-codeblock.d.ts +30 -19
  39. package/dist/components/dynamic-codeblock.d.ts.map +1 -1
  40. package/dist/components/dynamic-codeblock.js +60 -27
  41. package/dist/components/dynamic-codeblock.js.map +1 -0
  42. package/dist/components/files.d.ts +32 -16
  43. package/dist/components/files.d.ts.map +1 -1
  44. package/dist/components/files.js +40 -14
  45. package/dist/components/files.js.map +1 -0
  46. package/dist/components/github-info.d.ts +18 -7
  47. package/dist/components/github-info.d.ts.map +1 -1
  48. package/dist/components/github-info.js +63 -48
  49. package/dist/components/github-info.js.map +1 -0
  50. package/dist/components/heading.d.ts +11 -4
  51. package/dist/components/heading.d.ts.map +1 -1
  52. package/dist/components/heading.js +28 -8
  53. package/dist/components/heading.js.map +1 -0
  54. package/dist/components/image-zoom-CtfZieBH.css +80 -0
  55. package/dist/components/image-zoom-CtfZieBH.css.map +1 -0
  56. package/dist/components/image-zoom.d.ts +23 -14
  57. package/dist/components/image-zoom.d.ts.map +1 -1
  58. package/dist/components/image-zoom.js +32 -19
  59. package/dist/components/image-zoom.js.map +1 -0
  60. package/dist/components/image-zoom2.js +1 -0
  61. package/dist/components/inline-toc.d.ts +15 -6
  62. package/dist/components/inline-toc.d.ts.map +1 -1
  63. package/dist/components/inline-toc.js +28 -8
  64. package/dist/components/inline-toc.js.map +1 -0
  65. package/dist/components/sidebar/base.d.ts +103 -65
  66. package/dist/components/sidebar/base.d.ts.map +1 -1
  67. package/dist/components/sidebar/base.js +278 -191
  68. package/dist/components/sidebar/base.js.map +1 -0
  69. package/dist/components/sidebar/link-item.d.ts +23 -10
  70. package/dist/components/sidebar/link-item.d.ts.map +1 -1
  71. package/dist/components/sidebar/link-item.js +32 -12
  72. package/dist/components/sidebar/link-item.js.map +1 -0
  73. package/dist/components/sidebar/page-tree.d.ts +28 -17
  74. package/dist/components/sidebar/page-tree.d.ts.map +1 -1
  75. package/dist/components/sidebar/page-tree.js +57 -33
  76. package/dist/components/sidebar/page-tree.js.map +1 -0
  77. package/dist/components/sidebar/tabs/dropdown.d.ts +18 -9
  78. package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -1
  79. package/dist/components/sidebar/tabs/dropdown.js +75 -31
  80. package/dist/components/sidebar/tabs/dropdown.js.map +1 -0
  81. package/dist/components/sidebar/tabs/index.d.ts +24 -18
  82. package/dist/components/sidebar/tabs/index.d.ts.map +1 -1
  83. package/dist/components/sidebar/tabs/index.js +45 -45
  84. package/dist/components/sidebar/tabs/index.js.map +1 -0
  85. package/dist/components/steps.d.ts +16 -7
  86. package/dist/components/steps.d.ts.map +1 -1
  87. package/dist/components/steps.js +17 -5
  88. package/dist/components/steps.js.map +1 -0
  89. package/dist/components/tabs.d.ts +49 -28
  90. package/dist/components/tabs.d.ts.map +1 -1
  91. package/dist/components/tabs.js +88 -51
  92. package/dist/components/tabs.js.map +1 -0
  93. package/dist/components/toc/clerk.d.ts +1 -2
  94. package/dist/components/toc/clerk.js +12 -1
  95. package/dist/components/toc/clerk.js.map +1 -0
  96. package/dist/components/toc/default.d.ts +1 -2
  97. package/dist/components/toc/default.js +12 -1
  98. package/dist/components/toc/default.js.map +1 -0
  99. package/dist/components/toc/index.d.ts +1 -2
  100. package/dist/components/toc/index.js +12 -1
  101. package/dist/components/toc/index.js.map +1 -0
  102. package/dist/components/type-table.d.ts +36 -29
  103. package/dist/components/type-table.d.ts.map +1 -1
  104. package/dist/components/type-table.js +106 -25
  105. package/dist/components/type-table.js.map +1 -0
  106. package/dist/components/ui/accordion.d.ts +30 -7
  107. package/dist/components/ui/accordion.d.ts.map +1 -1
  108. package/dist/components/ui/accordion.js +39 -14
  109. package/dist/components/ui/accordion.js.map +1 -0
  110. package/dist/components/ui/button.d.ts +12 -7
  111. package/dist/components/ui/button.d.ts.map +1 -1
  112. package/dist/components/ui/button.js +21 -18
  113. package/dist/components/ui/button.js.map +1 -0
  114. package/dist/components/ui/collapsible.d.ts +19 -8
  115. package/dist/components/ui/collapsible.d.ts.map +1 -1
  116. package/dist/components/ui/collapsible.js +18 -7
  117. package/dist/components/ui/collapsible.js.map +1 -0
  118. package/dist/components/ui/navigation-menu.d.ts +15 -11
  119. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  120. package/dist/components/ui/navigation-menu.js +33 -14
  121. package/dist/components/ui/navigation-menu.js.map +1 -0
  122. package/dist/components/ui/popover.d.ts +11 -7
  123. package/dist/components/ui/popover.d.ts.map +1 -1
  124. package/dist/components/ui/popover.js +26 -10
  125. package/dist/components/ui/popover.js.map +1 -0
  126. package/dist/components/ui/scroll-area.d.ts +11 -7
  127. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  128. package/dist/components/ui/scroll-area.js +35 -10
  129. package/dist/components/ui/scroll-area.js.map +1 -0
  130. package/dist/components/ui/tabs.d.ts +39 -20
  131. package/dist/components/ui/tabs.d.ts.map +1 -1
  132. package/dist/components/ui/tabs.js +75 -73
  133. package/dist/components/ui/tabs.js.map +1 -0
  134. package/dist/contexts/i18n.d.ts +1 -2
  135. package/dist/contexts/i18n.js +12 -1
  136. package/dist/contexts/i18n.js.map +1 -0
  137. package/dist/contexts/search.d.ts +7 -1
  138. package/dist/contexts/search.d.ts.map +1 -1
  139. package/dist/contexts/search.js +12 -1
  140. package/dist/contexts/search.js.map +1 -0
  141. package/dist/contexts/tree.d.ts +1 -2
  142. package/dist/contexts/tree.js +12 -1
  143. package/dist/contexts/tree.js.map +1 -0
  144. package/dist/i18n.d.ts +1 -2
  145. package/dist/i18n.js +3 -1
  146. package/dist/layouts/docs/client.d.ts +30 -13
  147. package/dist/layouts/docs/client.d.ts.map +1 -1
  148. package/dist/layouts/docs/client.js +61 -34
  149. package/dist/layouts/docs/client.js.map +1 -0
  150. package/dist/layouts/docs/index.d.ts +55 -32
  151. package/dist/layouts/docs/index.d.ts.map +1 -1
  152. package/dist/layouts/docs/index.js +177 -68
  153. package/dist/layouts/docs/index.js.map +1 -0
  154. package/dist/layouts/docs/page/client.d.ts +43 -21
  155. package/dist/layouts/docs/page/client.d.ts.map +1 -1
  156. package/dist/layouts/docs/page/client.js +213 -105
  157. package/dist/layouts/docs/page/client.js.map +1 -0
  158. package/dist/layouts/docs/page/index.d.ts +82 -46
  159. package/dist/layouts/docs/page/index.d.ts.map +1 -1
  160. package/dist/layouts/docs/page/index.js +98 -45
  161. package/dist/layouts/docs/page/index.js.map +1 -0
  162. package/dist/layouts/docs/sidebar.d.ts +62 -20
  163. package/dist/layouts/docs/sidebar.d.ts.map +1 -1
  164. package/dist/layouts/docs/sidebar.js +145 -91
  165. package/dist/layouts/docs/sidebar.js.map +1 -0
  166. package/dist/layouts/home/client.d.ts +18 -5
  167. package/dist/layouts/home/client.d.ts.map +1 -1
  168. package/dist/layouts/home/client.js +273 -126
  169. package/dist/layouts/home/client.js.map +1 -0
  170. package/dist/layouts/home/index.d.ts +10 -5
  171. package/dist/layouts/home/index.d.ts.map +1 -1
  172. package/dist/layouts/home/index.js +24 -7
  173. package/dist/layouts/home/index.js.map +1 -0
  174. package/dist/layouts/home/navbar.d.ts +19 -6
  175. package/dist/layouts/home/navbar.d.ts.map +1 -1
  176. package/dist/layouts/home/navbar.js +31 -12
  177. package/dist/layouts/home/navbar.js.map +1 -0
  178. package/dist/layouts/notebook/client.d.ts +44 -20
  179. package/dist/layouts/notebook/client.d.ts.map +1 -1
  180. package/dist/layouts/notebook/client.js +148 -93
  181. package/dist/layouts/notebook/client.js.map +1 -0
  182. package/dist/layouts/notebook/index.d.ts +34 -30
  183. package/dist/layouts/notebook/index.d.ts.map +1 -1
  184. package/dist/layouts/notebook/index.js +216 -90
  185. package/dist/layouts/notebook/index.js.map +1 -0
  186. package/dist/layouts/notebook/page/client.d.ts +43 -21
  187. package/dist/layouts/notebook/page/client.d.ts.map +1 -1
  188. package/dist/layouts/notebook/page/client.js +213 -105
  189. package/dist/layouts/notebook/page/client.js.map +1 -0
  190. package/dist/layouts/notebook/page/index.d.ts +82 -46
  191. package/dist/layouts/notebook/page/index.d.ts.map +1 -1
  192. package/dist/layouts/notebook/page/index.js +98 -45
  193. package/dist/layouts/notebook/page/index.js.map +1 -0
  194. package/dist/layouts/notebook/sidebar.d.ts +58 -16
  195. package/dist/layouts/notebook/sidebar.d.ts.map +1 -1
  196. package/dist/layouts/notebook/sidebar.js +121 -79
  197. package/dist/layouts/notebook/sidebar.js.map +1 -0
  198. package/dist/layouts/shared/index.d.ts +62 -50
  199. package/dist/layouts/shared/index.d.ts.map +1 -1
  200. package/dist/layouts/shared/index.js +36 -20
  201. package/dist/layouts/shared/index.js.map +1 -0
  202. package/dist/layouts/shared/language-toggle.d.ts +9 -4
  203. package/dist/layouts/shared/language-toggle.d.ts.map +1 -1
  204. package/dist/layouts/shared/language-toggle.js +44 -21
  205. package/dist/layouts/shared/language-toggle.js.map +1 -0
  206. package/dist/layouts/shared/search-toggle.d.ts +20 -8
  207. package/dist/layouts/shared/search-toggle.d.ts.map +1 -1
  208. package/dist/layouts/shared/search-toggle.js +53 -24
  209. package/dist/layouts/shared/search-toggle.js.map +1 -0
  210. package/dist/layouts/shared/theme-toggle.d.ts +13 -4
  211. package/dist/layouts/shared/theme-toggle.d.ts.map +1 -1
  212. package/dist/layouts/shared/theme-toggle.js +58 -34
  213. package/dist/layouts/shared/theme-toggle.js.map +1 -0
  214. package/dist/mdx.d.ts +34 -29
  215. package/dist/mdx.d.ts.map +1 -1
  216. package/dist/mdx.js +68 -34
  217. package/dist/mdx.js.map +1 -0
  218. package/dist/mdx.server.d.ts +9 -5
  219. package/dist/mdx.server.d.ts.map +1 -1
  220. package/dist/mdx.server.js +21 -13
  221. package/dist/mdx.server.js.map +1 -0
  222. package/dist/og.d.ts +1 -2
  223. package/dist/og.js +3 -1
  224. package/dist/page.d.ts +30 -20
  225. package/dist/page.d.ts.map +1 -1
  226. package/dist/page.js +34 -18
  227. package/dist/page.js.map +1 -0
  228. package/dist/provider/base.d.ts +44 -34
  229. package/dist/provider/base.d.ts.map +1 -1
  230. package/dist/provider/base.js +37 -17
  231. package/dist/provider/base.js.map +1 -0
  232. package/dist/provider/next.d.ts +20 -12
  233. package/dist/provider/next.d.ts.map +1 -1
  234. package/dist/provider/next.js +19 -5
  235. package/dist/provider/next.js.map +1 -0
  236. package/dist/provider/react-router.d.ts +20 -12
  237. package/dist/provider/react-router.d.ts.map +1 -1
  238. package/dist/provider/react-router.js +19 -5
  239. package/dist/provider/react-router.js.map +1 -0
  240. package/dist/provider/tanstack.d.ts +20 -12
  241. package/dist/provider/tanstack.d.ts.map +1 -1
  242. package/dist/provider/tanstack.js +19 -5
  243. package/dist/provider/tanstack.js.map +1 -0
  244. package/dist/provider/waku.d.ts +20 -12
  245. package/dist/provider/waku.d.ts.map +1 -1
  246. package/dist/provider/waku.js +19 -5
  247. package/dist/provider/waku.js.map +1 -0
  248. package/dist/style.css +15 -9
  249. package/dist/utils/use-copy-button.d.ts +1 -2
  250. package/dist/utils/use-copy-button.js +3 -1
  251. package/dist/utils/use-footer-items.d.ts +1 -2
  252. package/dist/utils/use-footer-items.js +3 -1
  253. package/dist/utils/use-is-scroll-top.d.ts +1 -2
  254. package/dist/utils/use-is-scroll-top.js +3 -1
  255. package/package.json +47 -48
  256. package/dist/components/toc/clerk.d.ts.map +0 -1
  257. package/dist/components/toc/default.d.ts.map +0 -1
  258. package/dist/components/toc/index.d.ts.map +0 -1
  259. package/dist/contexts/i18n.d.ts.map +0 -1
  260. package/dist/contexts/tree.d.ts.map +0 -1
  261. package/dist/i18n.d.ts.map +0 -1
  262. package/dist/og.d.ts.map +0 -1
  263. package/dist/utils/use-copy-button.d.ts.map +0 -1
  264. package/dist/utils/use-footer-items.d.ts.map +0 -1
  265. package/dist/utils/use-is-scroll-top.d.ts.map +0 -1
@@ -1,19 +1,30 @@
1
- import { type FC, type ReactNode } from 'react';
2
- import type * as PageTree from 'fumadocs-core/page-tree';
3
- import type * as Base from './base.js';
4
- export interface SidebarPageTreeComponents {
5
- Item: FC<{
6
- item: PageTree.Item;
7
- }>;
8
- Folder: FC<{
9
- item: PageTree.Folder;
10
- children: ReactNode;
11
- }>;
12
- Separator: FC<{
13
- item: PageTree.Separator;
14
- }>;
1
+ import { base_d_exports } from "./base.js";
2
+ import * as react_jsx_runtime79 from "react/jsx-runtime";
3
+ import { FC, ReactNode } from "react";
4
+ import * as PageTree from "fumadocs-core/page-tree";
5
+
6
+ //#region src/components/sidebar/page-tree.d.ts
7
+ interface SidebarPageTreeComponents {
8
+ Item: FC<{
9
+ item: PageTree.Item;
10
+ }>;
11
+ Folder: FC<{
12
+ item: PageTree.Folder;
13
+ children: ReactNode;
14
+ }>;
15
+ Separator: FC<{
16
+ item: PageTree.Separator;
17
+ }>;
15
18
  }
16
- type InternalComponents = Pick<typeof Base, 'SidebarSeparator' | 'SidebarFolder' | 'SidebarFolderLink' | 'SidebarFolderContent' | 'SidebarFolderTrigger' | 'SidebarItem'>;
17
- export declare function createPageTreeRenderer({ SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarSeparator, SidebarItem, }: InternalComponents): (components: Partial<SidebarPageTreeComponents>) => import("react/jsx-runtime").JSX.Element;
18
- export {};
19
+ type InternalComponents = Pick<typeof base_d_exports, 'SidebarSeparator' | 'SidebarFolder' | 'SidebarFolderLink' | 'SidebarFolderContent' | 'SidebarFolderTrigger' | 'SidebarItem'>;
20
+ declare function createPageTreeRenderer({
21
+ SidebarFolder,
22
+ SidebarFolderContent,
23
+ SidebarFolderLink,
24
+ SidebarFolderTrigger,
25
+ SidebarSeparator,
26
+ SidebarItem
27
+ }: InternalComponents): (components: Partial<SidebarPageTreeComponents>) => react_jsx_runtime79.JSX.Element;
28
+ //#endregion
29
+ export { SidebarPageTreeComponents, createPageTreeRenderer };
19
30
  //# sourceMappingURL=page-tree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-tree.d.ts","sourceRoot":"","sources":["../../../src/components/sidebar/page-tree.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AACnE,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AAEpC,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAA;KAAE,CAAC,CAAC;IAClC,MAAM,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAC3D,SAAS,EAAE,EAAE,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7C;AAED,KAAK,kBAAkB,GAAG,IAAI,CAC5B,OAAO,IAAI,EACT,kBAAkB,GAClB,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,aAAa,CAChB,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,GACZ,EAAE,kBAAkB,IAuCjB,YAAY,OAAO,CAAC,yBAAyB,CAAC,6CA6CjD"}
1
+ {"version":3,"file":"page-tree.d.ts","names":[],"sources":["../../../src/components/sidebar/page-tree.tsx"],"sourcesContent":[],"mappings":";;;;;;UAKiB,yBAAA;QACT;UAAW,QAAA,CAAS;EADX,CAAA,CAAA;EACE,MAAS,EAClB,EADkB,CAAA;IAApB,IAAA,EACa,QAAA,CAAS,MADtB;IACa,QAAS,EAAkB,SAAlB;EAAkB,CAAA,CAAA;EAAtC,SAAA,EACG,EADH,CAAA;IACc,IAAS,EAAT,QAAA,CAAS,SAAA;EAApB,CAAA,CAAA;;AACZ,KAEI,kBAAA,GAAqB,IAAH,CAAA,OACd,cAAA,EAAA,kBADqB,GAAA,eAAA,GAAA,mBAAA,GAAA,sBAAA,GAAA,sBAAA,GAAA,aAAA,CAAA;AAUd,iBAAA,sBAAA,CAAsB;EAAA,aAAA;EAAA,oBAAA;EAAA,iBAAA;EAAA,oBAAA;EAAA,gBAAA;EAAA;AAAA,CAAA,EAOnC,kBAPmC,CAAA,EAAA,CAAA,UAAA,EAoCQ,OApCR,CAoCgB,yBApChB,CAAA,EAAA,GAoC0C,mBAAA,CAAA,GAAA,CAAA,OApC1C"}
@@ -1,34 +1,58 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import { useTreeContext, useTreePath } from '../../contexts/tree.js';
3
- import { useMemo, Fragment } from 'react';
4
- export function createPageTreeRenderer({ SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarSeparator, SidebarItem, }) {
5
- function PageTreeFolder({ item, children, }) {
6
- const path = useTreePath();
7
- return (_jsxs(SidebarFolder, { collapsible: item.collapsible, active: path.includes(item), defaultOpen: item.defaultOpen, children: [item.index ? (_jsxs(SidebarFolderLink, { href: item.index.url, external: item.index.external, children: [item.icon, item.name] })) : (_jsxs(SidebarFolderTrigger, { children: [item.icon, item.name] })), _jsx(SidebarFolderContent, { children: children })] }));
8
- }
9
- /**
10
- * Render sidebar items from page tree
11
- */
12
- return function SidebarPageTree(components) {
13
- const { root } = useTreeContext();
14
- const { Separator, Item, Folder = PageTreeFolder } = components;
15
- return useMemo(() => {
16
- function renderSidebarList(items) {
17
- return items.map((item, i) => {
18
- if (item.type === 'separator') {
19
- if (Separator)
20
- return _jsx(Separator, { item: item }, i);
21
- return (_jsxs(SidebarSeparator, { children: [item.icon, item.name] }, i));
22
- }
23
- if (item.type === 'folder') {
24
- return (_jsx(Folder, { item: item, children: renderSidebarList(item.children) }, i));
25
- }
26
- if (Item)
27
- return _jsx(Item, { item: item }, item.url);
28
- return (_jsx(SidebarItem, { href: item.url, external: item.external, icon: item.icon, children: item.name }, item.url));
29
- });
30
- }
31
- return (_jsx(Fragment, { children: renderSidebarList(root.children) }, root.$id));
32
- }, [Folder, Item, Separator, root]);
33
- };
1
+ import { tree_exports } from "../../contexts/tree.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Fragment as Fragment$1, useMemo } from "react";
4
+
5
+ //#region src/components/sidebar/page-tree.tsx
6
+ function createPageTreeRenderer({ SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarSeparator, SidebarItem }) {
7
+ function PageTreeFolder({ item, children }) {
8
+ const path = (0, tree_exports.useTreePath)();
9
+ return /* @__PURE__ */ jsxs(SidebarFolder, {
10
+ collapsible: item.collapsible,
11
+ active: path.includes(item),
12
+ defaultOpen: item.defaultOpen,
13
+ children: [item.index ? /* @__PURE__ */ jsxs(SidebarFolderLink, {
14
+ href: item.index.url,
15
+ external: item.index.external,
16
+ children: [item.icon, item.name]
17
+ }) : /* @__PURE__ */ jsxs(SidebarFolderTrigger, { children: [item.icon, item.name] }), /* @__PURE__ */ jsx(SidebarFolderContent, { children })]
18
+ });
19
+ }
20
+ /**
21
+ * Render sidebar items from page tree
22
+ */
23
+ return function SidebarPageTree(components) {
24
+ const { root } = (0, tree_exports.useTreeContext)();
25
+ const { Separator, Item, Folder = PageTreeFolder } = components;
26
+ return useMemo(() => {
27
+ function renderSidebarList(items) {
28
+ return items.map((item, i) => {
29
+ if (item.type === "separator") {
30
+ if (Separator) return /* @__PURE__ */ jsx(Separator, { item }, i);
31
+ return /* @__PURE__ */ jsxs(SidebarSeparator, { children: [item.icon, item.name] }, i);
32
+ }
33
+ if (item.type === "folder") return /* @__PURE__ */ jsx(Folder, {
34
+ item,
35
+ children: renderSidebarList(item.children)
36
+ }, i);
37
+ if (Item) return /* @__PURE__ */ jsx(Item, { item }, item.url);
38
+ return /* @__PURE__ */ jsx(SidebarItem, {
39
+ href: item.url,
40
+ external: item.external,
41
+ icon: item.icon,
42
+ children: item.name
43
+ }, item.url);
44
+ });
45
+ }
46
+ return /* @__PURE__ */ jsx(Fragment$1, { children: renderSidebarList(root.children) }, root.$id);
47
+ }, [
48
+ Folder,
49
+ Item,
50
+ Separator,
51
+ root
52
+ ]);
53
+ };
34
54
  }
55
+
56
+ //#endregion
57
+ export { createPageTreeRenderer };
58
+ //# sourceMappingURL=page-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-tree.js","names":["Fragment"],"sources":["../../../src/components/sidebar/page-tree.tsx"],"sourcesContent":["import { useTreeContext, useTreePath } from '@/contexts/tree';\nimport { type FC, type ReactNode, useMemo, Fragment } from 'react';\nimport type * as PageTree from 'fumadocs-core/page-tree';\nimport type * as Base from './base';\n\nexport interface SidebarPageTreeComponents {\n Item: FC<{ item: PageTree.Item }>;\n Folder: FC<{ item: PageTree.Folder; children: ReactNode }>;\n Separator: FC<{ item: PageTree.Separator }>;\n}\n\ntype InternalComponents = Pick<\n typeof Base,\n | 'SidebarSeparator'\n | 'SidebarFolder'\n | 'SidebarFolderLink'\n | 'SidebarFolderContent'\n | 'SidebarFolderTrigger'\n | 'SidebarItem'\n>;\n\nexport function createPageTreeRenderer({\n SidebarFolder,\n SidebarFolderContent,\n SidebarFolderLink,\n SidebarFolderTrigger,\n SidebarSeparator,\n SidebarItem,\n}: InternalComponents) {\n function PageTreeFolder({ item, children }: { item: PageTree.Folder; children: ReactNode }) {\n const path = useTreePath();\n\n return (\n <SidebarFolder\n collapsible={item.collapsible}\n active={path.includes(item)}\n defaultOpen={item.defaultOpen}\n >\n {item.index ? (\n <SidebarFolderLink href={item.index.url} external={item.index.external}>\n {item.icon}\n {item.name}\n </SidebarFolderLink>\n ) : (\n <SidebarFolderTrigger>\n {item.icon}\n {item.name}\n </SidebarFolderTrigger>\n )}\n <SidebarFolderContent>{children}</SidebarFolderContent>\n </SidebarFolder>\n );\n }\n\n /**\n * Render sidebar items from page tree\n */\n return function SidebarPageTree(components: Partial<SidebarPageTreeComponents>) {\n const { root } = useTreeContext();\n const { Separator, Item, Folder = PageTreeFolder } = components;\n\n return useMemo(() => {\n function renderSidebarList(items: PageTree.Node[]) {\n return items.map((item, i) => {\n if (item.type === 'separator') {\n if (Separator) return <Separator key={i} item={item} />;\n return (\n <SidebarSeparator key={i}>\n {item.icon}\n {item.name}\n </SidebarSeparator>\n );\n }\n\n if (item.type === 'folder') {\n return (\n <Folder key={i} item={item}>\n {renderSidebarList(item.children)}\n </Folder>\n );\n }\n\n if (Item) return <Item key={item.url} item={item} />;\n return (\n <SidebarItem key={item.url} href={item.url} external={item.external} icon={item.icon}>\n {item.name}\n </SidebarItem>\n );\n });\n }\n\n return <Fragment key={root.$id}>{renderSidebarList(root.children)}</Fragment>;\n }, [Folder, Item, Separator, root]);\n };\n}\n"],"mappings":";;;;;AAqBA,SAAgB,uBAAuB,EACrC,eACA,sBACA,mBACA,sBACA,kBACA,eACqB;CACrB,SAAS,eAAe,EAAE,MAAM,YAA4D;EAC1F,MAAM,sCAAoB;AAE1B,SACE,qBAAC;GACC,aAAa,KAAK;GAClB,QAAQ,KAAK,SAAS,KAAK;GAC3B,aAAa,KAAK;cAEjB,KAAK,QACJ,qBAAC;IAAkB,MAAM,KAAK,MAAM;IAAK,UAAU,KAAK,MAAM;eAC3D,KAAK,MACL,KAAK;KACY,GAEpB,qBAAC,mCACE,KAAK,MACL,KAAK,QACe,EAEzB,oBAAC,wBAAsB,WAAgC;IACzC;;;;;AAOpB,QAAO,SAAS,gBAAgB,YAAgD;EAC9E,MAAM,EAAE,2CAAyB;EACjC,MAAM,EAAE,WAAW,MAAM,SAAS,mBAAmB;AAErD,SAAO,cAAc;GACnB,SAAS,kBAAkB,OAAwB;AACjD,WAAO,MAAM,KAAK,MAAM,MAAM;AAC5B,SAAI,KAAK,SAAS,aAAa;AAC7B,UAAI,UAAW,QAAO,oBAAC,aAAwB,QAAT,EAAiB;AACvD,aACE,qBAAC,+BACE,KAAK,MACL,KAAK,SAFe,EAGJ;;AAIvB,SAAI,KAAK,SAAS,SAChB,QACE,oBAAC;MAAqB;gBACnB,kBAAkB,KAAK,SAAS;QADtB,EAEJ;AAIb,SAAI,KAAM,QAAO,oBAAC,QAA0B,QAAhB,KAAK,IAAmB;AACpD,YACE,oBAAC;MAA2B,MAAM,KAAK;MAAK,UAAU,KAAK;MAAU,MAAM,KAAK;gBAC7E,KAAK;QADU,KAAK,IAET;MAEhB;;AAGJ,UAAO,oBAACA,wBAAyB,kBAAkB,KAAK,SAAS,IAA3C,KAAK,IAAkD;KAC5E;GAAC;GAAQ;GAAM;GAAW;GAAK,CAAC"}
@@ -1,11 +1,20 @@
1
- import { type ComponentProps, type ReactNode } from 'react';
2
- import type { SidebarTab } from './index.js';
3
- export interface SidebarTabWithProps extends SidebarTab {
4
- props?: ComponentProps<'a'>;
1
+ import { SidebarTab } from "./index.js";
2
+ import * as react_jsx_runtime85 from "react/jsx-runtime";
3
+ import { ComponentProps, ReactNode } from "react";
4
+
5
+ //#region src/components/sidebar/tabs/dropdown.d.ts
6
+ interface SidebarTabWithProps extends SidebarTab {
7
+ props?: ComponentProps<'a'>;
5
8
  }
6
- export declare function SidebarTabsDropdown({ options, placeholder, ...props }: {
7
- placeholder?: ReactNode;
8
- options: SidebarTabWithProps[];
9
- } & ComponentProps<'button'>): import("react/jsx-runtime").JSX.Element;
10
- export declare function isTabActive(tab: SidebarTab, pathname: string): boolean;
9
+ declare function SidebarTabsDropdown({
10
+ options,
11
+ placeholder,
12
+ ...props
13
+ }: {
14
+ placeholder?: ReactNode;
15
+ options: SidebarTabWithProps[];
16
+ } & ComponentProps<'button'>): react_jsx_runtime85.JSX.Element;
17
+ declare function isTabActive(tab: SidebarTab, pathname: string): boolean;
18
+ //#endregion
19
+ export { SidebarTabWithProps, SidebarTabsDropdown, isTabActive };
11
20
  //# sourceMappingURL=dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAW/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAEpC,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,KAAK,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;CAC7B;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,WAAW,EACX,GAAG,KAAK,EACT,EAAE;IACD,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC,GAAG,cAAc,CAAC,QAAQ,CAAC,2CAkF3B;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAI5D"}
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,34 +1,78 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { Check, ChevronsUpDown } from '@fumadocs/ui/icons';
4
- import { useMemo, useState } from 'react';
5
- import Link from 'fumadocs-core/link';
6
- import { usePathname } from 'fumadocs-core/framework';
7
- import { cn } from '@fumadocs/ui/cn';
8
- import { normalize, isActive } from '@fumadocs/ui/urls';
9
- import { useSidebar } from '../../../components/sidebar/base.js';
10
- import { Popover, PopoverContent, PopoverTrigger, } from '../../../components/ui/popover.js';
11
- export function SidebarTabsDropdown({ options, placeholder, ...props }) {
12
- const [open, setOpen] = useState(false);
13
- const { closeOnRedirect } = useSidebar();
14
- const pathname = usePathname();
15
- const selected = useMemo(() => {
16
- return options.findLast((item) => isTabActive(item, pathname));
17
- }, [options, pathname]);
18
- const onClick = () => {
19
- closeOnRedirect.current = false;
20
- setOpen(false);
21
- };
22
- const item = selected ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "size-9 shrink-0 empty:hidden md:size-5", children: selected.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-medium", children: selected.title }), _jsx("p", { className: "text-sm text-fd-muted-foreground empty:hidden md:hidden", children: selected.description })] })] })) : (placeholder);
23
- return (_jsxs(Popover, { open: open, onOpenChange: setOpen, children: [item && (_jsxs(PopoverTrigger, { ...props, className: cn('flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[open]:bg-fd-accent data-[open]:text-fd-accent-foreground', props.className), children: [item, _jsx(ChevronsUpDown, { className: "shrink-0 ms-auto size-4 text-fd-muted-foreground" })] })), _jsx(PopoverContent, { className: "flex flex-col gap-1 w-(--anchor-width) p-1 fd-scroll-container", children: options.map((item) => {
24
- const isActive = selected && item.url === selected.url;
25
- if (!isActive && item.unlisted)
26
- return;
27
- return (_jsxs(Link, { href: item.url, onClick: onClick, ...item.props, className: cn('flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground', item.props?.className), children: [_jsx("div", { className: "shrink-0 size-9 md:mb-auto md:size-5 empty:hidden", children: item.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-medium leading-none", children: item.title }), _jsx("p", { className: "text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden", children: item.description })] }), _jsx(Check, { className: cn('shrink-0 ms-auto size-3.5 text-fd-primary', !isActive && 'invisible') })] }, item.url));
28
- }) })] }));
2
+
3
+ import { useSidebar } from "../base.js";
4
+ import { Popover, PopoverContent, PopoverTrigger } from "../../ui/popover.js";
5
+ import Link from "fumadocs-core/link";
6
+ import { usePathname } from "fumadocs-core/framework";
7
+ import { cn } from "@fumadocs/ui/cn";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { Check, ChevronsUpDown } from "lucide-react";
10
+ import { useMemo, useState } from "react";
11
+ import { isActive, normalize } from "@fumadocs/ui/urls";
12
+
13
+ //#region src/components/sidebar/tabs/dropdown.tsx
14
+ function SidebarTabsDropdown({ options, placeholder, ...props }) {
15
+ const [open, setOpen] = useState(false);
16
+ const { closeOnRedirect } = useSidebar();
17
+ const pathname = usePathname();
18
+ const selected = useMemo(() => {
19
+ return options.findLast((item$1) => isTabActive(item$1, pathname));
20
+ }, [options, pathname]);
21
+ const onClick = () => {
22
+ closeOnRedirect.current = false;
23
+ setOpen(false);
24
+ };
25
+ const item = selected ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
26
+ className: "size-9 shrink-0 empty:hidden md:size-5",
27
+ children: selected.icon
28
+ }), /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
29
+ className: "text-sm font-medium",
30
+ children: selected.title
31
+ }), /* @__PURE__ */ jsx("p", {
32
+ className: "text-sm text-fd-muted-foreground empty:hidden md:hidden",
33
+ children: selected.description
34
+ })] })] }) : placeholder;
35
+ return /* @__PURE__ */ jsxs(Popover, {
36
+ open,
37
+ onOpenChange: setOpen,
38
+ children: [item && /* @__PURE__ */ jsxs(PopoverTrigger, {
39
+ ...props,
40
+ className: cn("flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[open]:bg-fd-accent data-[open]:text-fd-accent-foreground", props.className),
41
+ children: [item, /* @__PURE__ */ jsx(ChevronsUpDown, { className: "shrink-0 ms-auto size-4 text-fd-muted-foreground" })]
42
+ }), /* @__PURE__ */ jsx(PopoverContent, {
43
+ className: "flex flex-col gap-1 w-(--anchor-width) p-1 fd-scroll-container",
44
+ children: options.map((item$1) => {
45
+ const isActive$1 = selected && item$1.url === selected.url;
46
+ if (!isActive$1 && item$1.unlisted) return;
47
+ return /* @__PURE__ */ jsxs(Link, {
48
+ href: item$1.url,
49
+ onClick,
50
+ ...item$1.props,
51
+ className: cn("flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground", item$1.props?.className),
52
+ children: [
53
+ /* @__PURE__ */ jsx("div", {
54
+ className: "shrink-0 size-9 md:mb-auto md:size-5 empty:hidden",
55
+ children: item$1.icon
56
+ }),
57
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
58
+ className: "text-sm font-medium leading-none",
59
+ children: item$1.title
60
+ }), /* @__PURE__ */ jsx("p", {
61
+ className: "text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden",
62
+ children: item$1.description
63
+ })] }),
64
+ /* @__PURE__ */ jsx(Check, { className: cn("shrink-0 ms-auto size-3.5 text-fd-primary", !isActive$1 && "invisible") })
65
+ ]
66
+ }, item$1.url);
67
+ })
68
+ })]
69
+ });
29
70
  }
30
- export function isTabActive(tab, pathname) {
31
- if (tab.urls)
32
- return tab.urls.has(normalize(pathname));
33
- return isActive(tab.url, pathname, true);
71
+ function isTabActive(tab, pathname) {
72
+ if (tab.urls) return tab.urls.has(normalize(pathname));
73
+ return isActive(tab.url, pathname, true);
34
74
  }
75
+
76
+ //#endregion
77
+ export { SidebarTabsDropdown, isTabActive };
78
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown.js","names":["item","isActive"],"sources":["../../../../src/components/sidebar/tabs/dropdown.tsx"],"sourcesContent":["'use client';\nimport { Check, ChevronsUpDown } from 'lucide-react';\nimport { type ComponentProps, type ReactNode, useMemo, useState } from 'react';\nimport Link from 'fumadocs-core/link';\nimport { usePathname } from 'fumadocs-core/framework';\nimport { cn } from '@fumadocs/ui/cn';\nimport { normalize, isActive } from '@fumadocs/ui/urls';\nimport { useSidebar } from '@/components/sidebar/base';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\nimport type { SidebarTab } from '.';\n\nexport interface SidebarTabWithProps extends SidebarTab {\n props?: ComponentProps<'a'>;\n}\n\nexport function SidebarTabsDropdown({\n options,\n placeholder,\n ...props\n}: {\n placeholder?: ReactNode;\n options: SidebarTabWithProps[];\n} & ComponentProps<'button'>) {\n const [open, setOpen] = useState(false);\n const { closeOnRedirect } = useSidebar();\n const pathname = usePathname();\n\n const selected = useMemo(() => {\n return options.findLast((item) => isTabActive(item, pathname));\n }, [options, pathname]);\n\n const onClick = () => {\n closeOnRedirect.current = false;\n setOpen(false);\n };\n\n const item = selected ? (\n <>\n <div className=\"size-9 shrink-0 empty:hidden md:size-5\">{selected.icon}</div>\n <div>\n <p className=\"text-sm font-medium\">{selected.title}</p>\n <p className=\"text-sm text-fd-muted-foreground empty:hidden md:hidden\">\n {selected.description}\n </p>\n </div>\n </>\n ) : (\n placeholder\n );\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n {item && (\n <PopoverTrigger\n {...props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-[open]:bg-fd-accent data-[open]:text-fd-accent-foreground',\n props.className,\n )}\n >\n {item}\n <ChevronsUpDown className=\"shrink-0 ms-auto size-4 text-fd-muted-foreground\" />\n </PopoverTrigger>\n )}\n <PopoverContent className=\"flex flex-col gap-1 w-(--anchor-width) p-1 fd-scroll-container\">\n {options.map((item) => {\n const isActive = selected && item.url === selected.url;\n if (!isActive && item.unlisted) return;\n\n return (\n <Link\n key={item.url}\n href={item.url}\n onClick={onClick}\n {...item.props}\n className={cn(\n 'flex items-center gap-2 rounded-lg p-1.5 hover:bg-fd-accent hover:text-fd-accent-foreground',\n item.props?.className,\n )}\n >\n <div className=\"shrink-0 size-9 md:mb-auto md:size-5 empty:hidden\">{item.icon}</div>\n <div>\n <p className=\"text-sm font-medium leading-none\">{item.title}</p>\n <p className=\"text-[0.8125rem] text-fd-muted-foreground mt-1 empty:hidden\">\n {item.description}\n </p>\n </div>\n\n <Check\n className={cn(\n 'shrink-0 ms-auto size-3.5 text-fd-primary',\n !isActive && 'invisible',\n )}\n />\n </Link>\n );\n })}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport function isTabActive(tab: SidebarTab, pathname: string) {\n if (tab.urls) return tab.urls.has(normalize(pathname));\n\n return isActive(tab.url, pathname, true);\n}\n"],"mappings":";;;;;;;;;;;;;AAeA,SAAgB,oBAAoB,EAClC,SACA,aACA,GAAG,SAIyB;CAC5B,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,EAAE,oBAAoB,YAAY;CACxC,MAAM,WAAW,aAAa;CAE9B,MAAM,WAAW,cAAc;AAC7B,SAAO,QAAQ,UAAU,WAAS,YAAYA,QAAM,SAAS,CAAC;IAC7D,CAAC,SAAS,SAAS,CAAC;CAEvB,MAAM,gBAAgB;AACpB,kBAAgB,UAAU;AAC1B,UAAQ,MAAM;;CAGhB,MAAM,OAAO,WACX,4CACE,oBAAC;EAAI,WAAU;YAA0C,SAAS;GAAW,EAC7E,qBAAC,oBACC,oBAAC;EAAE,WAAU;YAAuB,SAAS;GAAU,EACvD,oBAAC;EAAE,WAAU;YACV,SAAS;GACR,IACA,IACL,GAEH;AAGF,QACE,qBAAC;EAAc;EAAM,cAAc;aAChC,QACC,qBAAC;GACC,GAAI;GACJ,WAAW,GACT,gNACA,MAAM,UACP;cAEA,MACD,oBAAC,kBAAe,WAAU,qDAAqD;IAChE,EAEnB,oBAAC;GAAe,WAAU;aACvB,QAAQ,KAAK,WAAS;IACrB,MAAMC,aAAW,YAAYD,OAAK,QAAQ,SAAS;AACnD,QAAI,CAACC,cAAYD,OAAK,SAAU;AAEhC,WACE,qBAAC;KAEC,MAAMA,OAAK;KACF;KACT,GAAIA,OAAK;KACT,WAAW,GACT,+FACAA,OAAK,OAAO,UACb;;MAED,oBAAC;OAAI,WAAU;iBAAqDA,OAAK;QAAW;MACpF,qBAAC,oBACC,oBAAC;OAAE,WAAU;iBAAoCA,OAAK;QAAU,EAChE,oBAAC;OAAE,WAAU;iBACVA,OAAK;QACJ,IACA;MAEN,oBAAC,SACC,WAAW,GACT,6CACA,CAACC,cAAY,YACd,GACD;;OAtBGD,OAAK,IAuBL;KAET;IACa;GACT;;AAId,SAAgB,YAAY,KAAiB,UAAkB;AAC7D,KAAI,IAAI,KAAM,QAAO,IAAI,KAAK,IAAI,UAAU,SAAS,CAAC;AAEtD,QAAO,SAAS,IAAI,KAAK,UAAU,KAAK"}
@@ -1,21 +1,27 @@
1
- import type * as PageTree from 'fumadocs-core/page-tree';
2
- import type { ReactNode } from 'react';
3
- export interface SidebarTab {
4
- /**
5
- * Redirect URL of the folder, usually the index page
6
- */
7
- url: string;
8
- icon?: ReactNode;
9
- title: ReactNode;
10
- description?: ReactNode;
11
- /**
12
- * Detect from a list of urls
13
- */
14
- urls?: Set<string>;
15
- unlisted?: boolean;
1
+ import { ReactNode } from "react";
2
+ import * as PageTree from "fumadocs-core/page-tree";
3
+
4
+ //#region src/components/sidebar/tabs/index.d.ts
5
+ interface SidebarTab {
6
+ /**
7
+ * Redirect URL of the folder, usually the index page
8
+ */
9
+ url: string;
10
+ icon?: ReactNode;
11
+ title: ReactNode;
12
+ description?: ReactNode;
13
+ /**
14
+ * Detect from a list of urls
15
+ */
16
+ urls?: Set<string>;
17
+ unlisted?: boolean;
16
18
  }
17
- export interface GetSidebarTabsOptions {
18
- transform?: (option: SidebarTab, node: PageTree.Folder) => SidebarTab | null;
19
+ interface GetSidebarTabsOptions {
20
+ transform?: (option: SidebarTab, node: PageTree.Folder) => SidebarTab | null;
19
21
  }
20
- export declare function getSidebarTabs(tree: PageTree.Root, { transform }?: GetSidebarTabsOptions): SidebarTab[];
22
+ declare function getSidebarTabs(tree: PageTree.Root, {
23
+ transform
24
+ }?: GetSidebarTabsOptions): SidebarTab[];
25
+ //#endregion
26
+ export { GetSidebarTabsOptions, SidebarTab, getSidebarTabs };
21
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/sidebar/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,CAAC;IAExB;;OAEG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC;CAC9E;AAeD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,EAAE,SAA4B,EAAE,GAAE,qBAA0B,GAC3D,UAAU,EAAE,CAkCd"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../src/components/sidebar/tabs/index.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,UAAA;;AAAjB;;EAOS,GAAA,EAAA,MAAA;EACO,IAAA,CAAA,EAFP,SAEO;EAKP,KAAA,EANA,SAMA;EAAG,WAAA,CAAA,EALI,SAKJ;EAIK;;;EAC4C,IAAA,CAAA,EALpD,GAKoD,CAAA,MAAA,CAAA;EAAU,QAAA,CAAA,EAAA,OAAA;AAgBvE;AACQ,UAlBS,qBAAA,CAkBA;EACb,SAAA,CAAA,EAAA,CAAA,MAAA,EAlBmB,UAkBnB,EAAA,IAAA,EAlBqC,QAAA,CAAS,MAkB9C,EAAA,GAlByD,UAkBzD,GAAA,IAAA;;AACD,iBAHa,cAAA,CAGb,IAAA,EAFK,QAAA,CAAS,IAEd,EAAA;EAAA;AAAA,CAAA,CAAA,EADiC,qBACjC,CAAA,EAAA,UAAA,EAAA"}
@@ -1,49 +1,49 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
+
3
+ //#region src/components/sidebar/tabs/index.tsx
2
4
  const defaultTransform = (option, node) => {
3
- if (!node.icon)
4
- return option;
5
- return {
6
- ...option,
7
- icon: (_jsx("div", { className: "size-full [&_svg]:size-full max-md:p-1.5 max-md:rounded-md max-md:border max-md:bg-fd-secondary", children: node.icon })),
8
- };
5
+ if (!node.icon) return option;
6
+ return {
7
+ ...option,
8
+ icon: /* @__PURE__ */ jsx("div", {
9
+ className: "size-full [&_svg]:size-full max-md:p-1.5 max-md:rounded-md max-md:border max-md:bg-fd-secondary",
10
+ children: node.icon
11
+ })
12
+ };
9
13
  };
10
- export function getSidebarTabs(tree, { transform = defaultTransform } = {}) {
11
- const results = [];
12
- function scanOptions(node, unlisted) {
13
- if ('root' in node && node.root) {
14
- const urls = getFolderUrls(node);
15
- if (urls.size > 0) {
16
- const option = {
17
- url: urls.values().next().value ?? '',
18
- title: node.name,
19
- icon: node.icon,
20
- unlisted,
21
- description: node.description,
22
- urls,
23
- };
24
- const mapped = transform ? transform(option, node) : option;
25
- if (mapped)
26
- results.push(mapped);
27
- }
28
- }
29
- for (const child of node.children) {
30
- if (child.type === 'folder')
31
- scanOptions(child, unlisted);
32
- }
33
- }
34
- scanOptions(tree);
35
- if (tree.fallback)
36
- scanOptions(tree.fallback, true);
37
- return results;
14
+ function getSidebarTabs(tree, { transform = defaultTransform } = {}) {
15
+ const results = [];
16
+ function scanOptions(node, unlisted) {
17
+ if ("root" in node && node.root) {
18
+ const urls = getFolderUrls(node);
19
+ if (urls.size > 0) {
20
+ const option = {
21
+ url: urls.values().next().value ?? "",
22
+ title: node.name,
23
+ icon: node.icon,
24
+ unlisted,
25
+ description: node.description,
26
+ urls
27
+ };
28
+ const mapped = transform ? transform(option, node) : option;
29
+ if (mapped) results.push(mapped);
30
+ }
31
+ }
32
+ for (const child of node.children) if (child.type === "folder") scanOptions(child, unlisted);
33
+ }
34
+ scanOptions(tree);
35
+ if (tree.fallback) scanOptions(tree.fallback, true);
36
+ return results;
38
37
  }
39
- function getFolderUrls(folder, output = new Set()) {
40
- if (folder.index)
41
- output.add(folder.index.url);
42
- for (const child of folder.children) {
43
- if (child.type === 'page' && !child.external)
44
- output.add(child.url);
45
- if (child.type === 'folder')
46
- getFolderUrls(child, output);
47
- }
48
- return output;
38
+ function getFolderUrls(folder, output = /* @__PURE__ */ new Set()) {
39
+ if (folder.index) output.add(folder.index.url);
40
+ for (const child of folder.children) {
41
+ if (child.type === "page" && !child.external) output.add(child.url);
42
+ if (child.type === "folder") getFolderUrls(child, output);
43
+ }
44
+ return output;
49
45
  }
46
+
47
+ //#endregion
48
+ export { getSidebarTabs };
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["defaultTransform: GetSidebarTabsOptions['transform']","results: SidebarTab[]","option: SidebarTab"],"sources":["../../../../src/components/sidebar/tabs/index.tsx"],"sourcesContent":["import type * as PageTree from 'fumadocs-core/page-tree';\nimport type { ReactNode } from 'react';\n\nexport interface SidebarTab {\n /**\n * Redirect URL of the folder, usually the index page\n */\n url: string;\n\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n /**\n * Detect from a list of urls\n */\n urls?: Set<string>;\n unlisted?: boolean;\n}\n\nexport interface GetSidebarTabsOptions {\n transform?: (option: SidebarTab, node: PageTree.Folder) => SidebarTab | null;\n}\n\nconst defaultTransform: GetSidebarTabsOptions['transform'] = (option, node) => {\n if (!node.icon) return option;\n\n return {\n ...option,\n icon: (\n <div className=\"size-full [&_svg]:size-full max-md:p-1.5 max-md:rounded-md max-md:border max-md:bg-fd-secondary\">\n {node.icon}\n </div>\n ),\n };\n};\n\nexport function getSidebarTabs(\n tree: PageTree.Root,\n { transform = defaultTransform }: GetSidebarTabsOptions = {},\n): SidebarTab[] {\n const results: SidebarTab[] = [];\n\n function scanOptions(node: PageTree.Root | PageTree.Folder, unlisted?: boolean) {\n if ('root' in node && node.root) {\n const urls = getFolderUrls(node);\n\n if (urls.size > 0) {\n const option: SidebarTab = {\n url: urls.values().next().value ?? '',\n title: node.name,\n icon: node.icon,\n unlisted,\n description: node.description,\n urls,\n };\n\n const mapped = transform ? transform(option, node) : option;\n if (mapped) results.push(mapped);\n }\n }\n\n for (const child of node.children) {\n if (child.type === 'folder') scanOptions(child, unlisted);\n }\n }\n\n scanOptions(tree);\n if (tree.fallback) scanOptions(tree.fallback, true);\n\n return results;\n}\n\nfunction getFolderUrls(folder: PageTree.Folder, output: Set<string> = new Set()): Set<string> {\n if (folder.index) output.add(folder.index.url);\n\n for (const child of folder.children) {\n if (child.type === 'page' && !child.external) output.add(child.url);\n if (child.type === 'folder') getFolderUrls(child, output);\n }\n\n return output;\n}\n"],"mappings":";;;AAwBA,MAAMA,oBAAwD,QAAQ,SAAS;AAC7E,KAAI,CAAC,KAAK,KAAM,QAAO;AAEvB,QAAO;EACL,GAAG;EACH,MACE,oBAAC;GAAI,WAAU;aACZ,KAAK;IACF;EAET;;AAGH,SAAgB,eACd,MACA,EAAE,YAAY,qBAA4C,EAAE,EAC9C;CACd,MAAMC,UAAwB,EAAE;CAEhC,SAAS,YAAY,MAAuC,UAAoB;AAC9E,MAAI,UAAU,QAAQ,KAAK,MAAM;GAC/B,MAAM,OAAO,cAAc,KAAK;AAEhC,OAAI,KAAK,OAAO,GAAG;IACjB,MAAMC,SAAqB;KACzB,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS;KACnC,OAAO,KAAK;KACZ,MAAM,KAAK;KACX;KACA,aAAa,KAAK;KAClB;KACD;IAED,MAAM,SAAS,YAAY,UAAU,QAAQ,KAAK,GAAG;AACrD,QAAI,OAAQ,SAAQ,KAAK,OAAO;;;AAIpC,OAAK,MAAM,SAAS,KAAK,SACvB,KAAI,MAAM,SAAS,SAAU,aAAY,OAAO,SAAS;;AAI7D,aAAY,KAAK;AACjB,KAAI,KAAK,SAAU,aAAY,KAAK,UAAU,KAAK;AAEnD,QAAO;;AAGT,SAAS,cAAc,QAAyB,yBAAsB,IAAI,KAAK,EAAe;AAC5F,KAAI,OAAO,MAAO,QAAO,IAAI,OAAO,MAAM,IAAI;AAE9C,MAAK,MAAM,SAAS,OAAO,UAAU;AACnC,MAAI,MAAM,SAAS,UAAU,CAAC,MAAM,SAAU,QAAO,IAAI,MAAM,IAAI;AACnE,MAAI,MAAM,SAAS,SAAU,eAAc,OAAO,OAAO;;AAG3D,QAAO"}
@@ -1,8 +1,17 @@
1
- import type { ReactNode } from 'react';
2
- export declare function Steps({ children }: {
3
- children: ReactNode;
4
- }): import("react/jsx-runtime").JSX.Element;
5
- export declare function Step({ children }: {
6
- children: ReactNode;
7
- }): import("react/jsx-runtime").JSX.Element;
1
+ import * as react_jsx_runtime35 from "react/jsx-runtime";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/steps.d.ts
5
+ declare function Steps({
6
+ children
7
+ }: {
8
+ children: ReactNode;
9
+ }): react_jsx_runtime35.JSX.Element;
10
+ declare function Step({
11
+ children
12
+ }: {
13
+ children: ReactNode;
14
+ }): react_jsx_runtime35.JSX.Element;
15
+ //#endregion
16
+ export { Step, Steps };
8
17
  //# sourceMappingURL=steps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/components/steps.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAE1D;AAED,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAEzD"}
1
+ {"version":3,"file":"steps.d.ts","names":[],"sources":["../../src/components/steps.tsx"],"sourcesContent":[],"mappings":";;;;iBAEgB,KAAA;;;YAAgC;IAAW,mBAAA,CAAA,GAAA,CAAA;AAA3C,iBAIA,IAAA,CAJK;EAAA;CAAA,EAAA;EAAG,QAAA,EAIuB,SAJvB;CAAwB,CAAA,EAIU,mBAAA,CAAA,GAAA,CAAA,OAJV"}
@@ -1,7 +1,19 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- export function Steps({ children }) {
3
- return _jsx("div", { className: "fd-steps", children: children });
1
+ import { jsx } from "react/jsx-runtime";
2
+
3
+ //#region src/components/steps.tsx
4
+ function Steps({ children }) {
5
+ return /* @__PURE__ */ jsx("div", {
6
+ className: "fd-steps",
7
+ children
8
+ });
4
9
  }
5
- export function Step({ children }) {
6
- return _jsx("div", { className: "fd-step", children: children });
10
+ function Step({ children }) {
11
+ return /* @__PURE__ */ jsx("div", {
12
+ className: "fd-step",
13
+ children
14
+ });
7
15
  }
16
+
17
+ //#endregion
18
+ export { Step, Steps };
19
+ //# sourceMappingURL=steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","names":[],"sources":["../../src/components/steps.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nexport function Steps({ children }: { children: ReactNode }) {\n return <div className=\"fd-steps\">{children}</div>;\n}\n\nexport function Step({ children }: { children: ReactNode }) {\n return <div className=\"fd-step\">{children}</div>;\n}\n"],"mappings":";;;AAEA,SAAgB,MAAM,EAAE,YAAqC;AAC3D,QAAO,oBAAC;EAAI,WAAU;EAAY;GAAe;;AAGnD,SAAgB,KAAK,EAAE,YAAqC;AAC1D,QAAO,oBAAC;EAAI,WAAU;EAAW;GAAe"}