@fumadocs/base-ui 16.6.17 → 16.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/css/generated/docs.css +64 -32
  2. package/css/generated/flux.css +36 -32
  3. package/css/generated/home.css +39 -55
  4. package/css/generated/notebook.css +58 -31
  5. package/css/generated/shared.css +41 -24
  6. package/dist/components/accordion.d.ts +1 -2
  7. package/dist/components/accordion.js +0 -2
  8. package/dist/components/banner.d.ts +1 -2
  9. package/dist/components/banner.js +0 -2
  10. package/dist/components/callout.d.ts +1 -2
  11. package/dist/components/callout.js +0 -2
  12. package/dist/components/card.d.ts +1 -2
  13. package/dist/components/card.js +0 -2
  14. package/dist/components/codeblock.d.ts +1 -2
  15. package/dist/components/codeblock.js +0 -2
  16. package/dist/components/codeblock.rsc.d.ts +1 -2
  17. package/dist/components/codeblock.rsc.js +1 -2
  18. package/dist/components/dialog/search-algolia.d.ts +1 -2
  19. package/dist/components/dialog/search-algolia.js +0 -2
  20. package/dist/components/dialog/search-default.d.ts +1 -2
  21. package/dist/components/dialog/search-default.js +0 -2
  22. package/dist/components/dialog/search-orama.d.ts +1 -2
  23. package/dist/components/dialog/search-orama.js +0 -2
  24. package/dist/components/dialog/search.d.ts +1 -2
  25. package/dist/components/dialog/search.js +0 -2
  26. package/dist/components/dynamic-codeblock.core.d.ts +7 -5
  27. package/dist/components/dynamic-codeblock.core.js +16 -29
  28. package/dist/components/dynamic-codeblock.d.ts +5 -3
  29. package/dist/components/dynamic-codeblock.js +7 -10
  30. package/dist/components/files.d.ts +1 -2
  31. package/dist/components/files.js +0 -2
  32. package/dist/components/github-info.d.ts +22 -9
  33. package/dist/components/github-info.js +33 -27
  34. package/dist/components/heading.d.ts +1 -2
  35. package/dist/components/heading.js +0 -2
  36. package/dist/components/image-zoom.d.ts +1 -2
  37. package/dist/components/image-zoom.js +0 -2
  38. package/dist/components/inline-toc.d.ts +1 -2
  39. package/dist/components/inline-toc.js +0 -2
  40. package/dist/components/sidebar/base.d.ts +1 -2
  41. package/dist/components/sidebar/base.js +0 -2
  42. package/dist/components/sidebar/link-item.d.ts +2 -3
  43. package/dist/components/sidebar/link-item.js +3 -4
  44. package/dist/components/sidebar/page-tree.d.ts +1 -2
  45. package/dist/components/sidebar/page-tree.js +0 -2
  46. package/dist/components/sidebar/tabs/dropdown.d.ts +4 -7
  47. package/dist/components/sidebar/tabs/dropdown.js +2 -7
  48. package/dist/components/sidebar/tabs/index.d.ts +3 -17
  49. package/dist/components/sidebar/tabs/index.js +0 -2
  50. package/dist/components/steps.d.ts +1 -2
  51. package/dist/components/steps.js +0 -2
  52. package/dist/components/tabs.d.ts +1 -2
  53. package/dist/components/tabs.js +0 -2
  54. package/dist/components/toc/clerk.d.ts +1 -2
  55. package/dist/components/toc/clerk.js +0 -2
  56. package/dist/components/toc/default.d.ts +1 -2
  57. package/dist/components/toc/default.js +0 -2
  58. package/dist/components/toc/index.d.ts +3 -3
  59. package/dist/components/toc/index.js +0 -2
  60. package/dist/components/type-table.d.ts +1 -2
  61. package/dist/components/type-table.js +0 -2
  62. package/dist/components/ui/accordion.d.ts +1 -2
  63. package/dist/components/ui/accordion.js +0 -2
  64. package/dist/components/ui/button.d.ts +1 -2
  65. package/dist/components/ui/button.js +0 -2
  66. package/dist/components/ui/collapsible.d.ts +1 -2
  67. package/dist/components/ui/collapsible.js +0 -2
  68. package/dist/components/ui/navigation-menu.d.ts +5 -3
  69. package/dist/components/ui/navigation-menu.js +13 -4
  70. package/dist/components/ui/popover.d.ts +1 -2
  71. package/dist/components/ui/popover.js +0 -2
  72. package/dist/components/ui/scroll-area.d.ts +1 -2
  73. package/dist/components/ui/scroll-area.js +0 -2
  74. package/dist/components/ui/tabs.d.ts +1 -2
  75. package/dist/components/ui/tabs.js +0 -2
  76. package/dist/contexts/i18n.d.ts +7 -5
  77. package/dist/contexts/i18n.js +2 -5
  78. package/dist/contexts/search.d.ts +1 -2
  79. package/dist/contexts/search.js +0 -2
  80. package/dist/contexts/tree.d.ts +1 -2
  81. package/dist/contexts/tree.js +0 -2
  82. package/dist/i18n.d.ts +11 -8
  83. package/dist/i18n.js +2 -4
  84. package/dist/layouts/docs/client.d.ts +28 -30
  85. package/dist/layouts/docs/client.js +66 -42
  86. package/dist/layouts/docs/index.d.ts +19 -33
  87. package/dist/layouts/docs/index.js +16 -171
  88. package/dist/layouts/docs/page/client.d.ts +87 -37
  89. package/dist/layouts/docs/page/client.js +76 -191
  90. package/dist/layouts/docs/page/index.d.ts +5 -82
  91. package/dist/layouts/docs/page/index.js +9 -51
  92. package/dist/layouts/docs/page/slots/breadcrumb.d.ts +14 -0
  93. package/dist/layouts/docs/page/slots/breadcrumb.js +42 -0
  94. package/dist/layouts/docs/page/slots/container.d.ts +7 -0
  95. package/dist/layouts/docs/page/slots/container.js +16 -0
  96. package/dist/layouts/docs/page/slots/footer.d.ts +23 -0
  97. package/dist/layouts/docs/page/slots/footer.js +55 -0
  98. package/dist/layouts/docs/page/slots/toc-popover.d.ts +31 -0
  99. package/dist/layouts/docs/page/slots/toc-popover.js +141 -0
  100. package/dist/layouts/docs/page/slots/toc.d.ts +27 -0
  101. package/dist/layouts/docs/page/slots/toc.js +28 -0
  102. package/dist/layouts/docs/slots/container.d.ts +7 -0
  103. package/dist/layouts/docs/slots/container.js +28 -0
  104. package/dist/layouts/docs/slots/header.d.ts +8 -0
  105. package/dist/layouts/docs/slots/header.js +37 -0
  106. package/dist/layouts/docs/slots/sidebar.d.ts +30 -0
  107. package/dist/layouts/docs/slots/sidebar.js +329 -0
  108. package/dist/layouts/flux/index.d.ts +34 -38
  109. package/dist/layouts/flux/index.js +71 -95
  110. package/dist/layouts/flux/page/client.d.ts +72 -35
  111. package/dist/layouts/flux/page/client.js +60 -219
  112. package/dist/layouts/flux/page/index.d.ts +6 -75
  113. package/dist/layouts/flux/page/index.js +5 -30
  114. package/dist/layouts/flux/page/slots/breadcrumb.d.ts +14 -0
  115. package/dist/layouts/flux/page/slots/breadcrumb.js +43 -0
  116. package/dist/layouts/flux/page/slots/container.d.ts +7 -0
  117. package/dist/layouts/flux/page/slots/container.js +16 -0
  118. package/dist/layouts/flux/page/slots/footer.d.ts +23 -0
  119. package/dist/layouts/flux/page/slots/footer.js +55 -0
  120. package/dist/layouts/flux/page/slots/toc.d.ts +31 -0
  121. package/dist/layouts/flux/page/slots/toc.js +169 -0
  122. package/dist/layouts/flux/slots/container.d.ts +7 -0
  123. package/dist/layouts/flux/slots/container.js +12 -0
  124. package/dist/layouts/flux/slots/sidebar.d.ts +23 -0
  125. package/dist/layouts/flux/{sidebar.js → slots/sidebar.js} +68 -25
  126. package/dist/layouts/flux/slots/tab-dropdown.d.ts +17 -0
  127. package/dist/layouts/flux/{tab-dropdown.js → slots/tab-dropdown.js} +11 -20
  128. package/dist/layouts/home/index.d.ts +24 -7
  129. package/dist/layouts/home/index.js +36 -18
  130. package/dist/layouts/home/navbar.d.ts +3 -10
  131. package/dist/layouts/home/navbar.js +17 -14
  132. package/dist/layouts/home/not-found.d.ts +1 -2
  133. package/dist/layouts/home/not-found.js +0 -2
  134. package/dist/layouts/home/slots/container.d.ts +7 -0
  135. package/dist/layouts/home/slots/container.js +12 -0
  136. package/dist/layouts/home/slots/header.d.ts +12 -0
  137. package/dist/layouts/home/slots/header.js +232 -0
  138. package/dist/layouts/notebook/client.d.ts +31 -43
  139. package/dist/layouts/notebook/client.js +54 -144
  140. package/dist/layouts/notebook/index.d.ts +25 -24
  141. package/dist/layouts/notebook/index.js +16 -211
  142. package/dist/layouts/notebook/page/client.d.ts +87 -37
  143. package/dist/layouts/notebook/page/client.js +76 -191
  144. package/dist/layouts/notebook/page/index.d.ts +6 -82
  145. package/dist/layouts/notebook/page/index.js +12 -51
  146. package/dist/layouts/notebook/page/slots/breadcrumb.d.ts +14 -0
  147. package/dist/layouts/notebook/page/slots/breadcrumb.js +43 -0
  148. package/dist/layouts/notebook/page/slots/container.d.ts +7 -0
  149. package/dist/layouts/notebook/page/slots/container.js +16 -0
  150. package/dist/layouts/notebook/page/slots/footer.d.ts +23 -0
  151. package/dist/layouts/notebook/page/slots/footer.js +55 -0
  152. package/dist/layouts/notebook/page/slots/toc-popover.d.ts +31 -0
  153. package/dist/layouts/notebook/page/slots/toc-popover.js +141 -0
  154. package/dist/layouts/notebook/page/slots/toc.d.ts +27 -0
  155. package/dist/layouts/notebook/page/slots/toc.js +28 -0
  156. package/dist/layouts/notebook/slots/container.d.ts +7 -0
  157. package/dist/layouts/notebook/slots/container.js +30 -0
  158. package/dist/layouts/notebook/slots/header.d.ts +8 -0
  159. package/dist/layouts/notebook/slots/header.js +194 -0
  160. package/dist/layouts/notebook/slots/sidebar.d.ts +40 -0
  161. package/dist/layouts/notebook/slots/sidebar.js +307 -0
  162. package/dist/layouts/shared/client.d.ts +45 -0
  163. package/dist/layouts/shared/client.js +84 -0
  164. package/dist/layouts/shared/index.d.ts +134 -32
  165. package/dist/layouts/shared/index.js +49 -16
  166. package/dist/layouts/shared/page-actions.d.ts +1 -2
  167. package/dist/layouts/shared/page-actions.js +10 -6
  168. package/dist/layouts/shared/slots/language-select.d.ts +10 -0
  169. package/dist/layouts/shared/{language-toggle.js → slots/language-select.js} +10 -12
  170. package/dist/layouts/shared/slots/search-trigger.d.ts +23 -0
  171. package/dist/layouts/shared/{search-toggle.js → slots/search-trigger.js} +9 -11
  172. package/dist/layouts/shared/slots/theme-switch.d.ts +14 -0
  173. package/dist/layouts/shared/{theme-toggle.js → slots/theme-switch.js} +4 -6
  174. package/dist/mdx.d.ts +1 -2
  175. package/dist/mdx.js +0 -2
  176. package/dist/mdx.server.d.ts +1 -2
  177. package/dist/mdx.server.js +0 -2
  178. package/dist/og/takumi.d.ts +1 -2
  179. package/dist/og/takumi.js +0 -2
  180. package/dist/og.d.ts +1 -2
  181. package/dist/og.js +0 -2
  182. package/dist/page.d.ts +4 -4
  183. package/dist/page.js +5 -7
  184. package/dist/provider/base.d.ts +1 -2
  185. package/dist/provider/base.js +1 -3
  186. package/dist/provider/next.d.ts +1 -2
  187. package/dist/provider/next.js +0 -2
  188. package/dist/provider/react-router.d.ts +1 -2
  189. package/dist/provider/react-router.js +0 -2
  190. package/dist/provider/tanstack.d.ts +1 -2
  191. package/dist/provider/tanstack.js +0 -2
  192. package/dist/provider/waku.d.ts +1 -2
  193. package/dist/provider/waku.js +0 -2
  194. package/dist/style.css +83 -89
  195. package/dist/utils/merge-refs.js +0 -2
  196. package/dist/utils/urls.js +0 -2
  197. package/dist/utils/use-copy-button.d.ts +1 -2
  198. package/dist/utils/use-copy-button.js +0 -2
  199. package/dist/utils/use-footer-items.d.ts +1 -2
  200. package/dist/utils/use-footer-items.js +0 -2
  201. package/dist/utils/use-is-scroll-top.d.ts +1 -2
  202. package/dist/utils/use-is-scroll-top.js +0 -2
  203. package/package.json +105 -85
  204. package/dist/components/accordion.d.ts.map +0 -1
  205. package/dist/components/accordion.js.map +0 -1
  206. package/dist/components/banner.d.ts.map +0 -1
  207. package/dist/components/banner.js.map +0 -1
  208. package/dist/components/callout.d.ts.map +0 -1
  209. package/dist/components/callout.js.map +0 -1
  210. package/dist/components/card.d.ts.map +0 -1
  211. package/dist/components/card.js.map +0 -1
  212. package/dist/components/codeblock.d.ts.map +0 -1
  213. package/dist/components/codeblock.js.map +0 -1
  214. package/dist/components/codeblock.rsc.d.ts.map +0 -1
  215. package/dist/components/codeblock.rsc.js.map +0 -1
  216. package/dist/components/dialog/search-algolia.d.ts.map +0 -1
  217. package/dist/components/dialog/search-algolia.js.map +0 -1
  218. package/dist/components/dialog/search-default.d.ts.map +0 -1
  219. package/dist/components/dialog/search-default.js.map +0 -1
  220. package/dist/components/dialog/search-orama.d.ts.map +0 -1
  221. package/dist/components/dialog/search-orama.js.map +0 -1
  222. package/dist/components/dialog/search.d.ts.map +0 -1
  223. package/dist/components/dialog/search.js.map +0 -1
  224. package/dist/components/dynamic-codeblock.core.d.ts.map +0 -1
  225. package/dist/components/dynamic-codeblock.core.js.map +0 -1
  226. package/dist/components/dynamic-codeblock.d.ts.map +0 -1
  227. package/dist/components/dynamic-codeblock.js.map +0 -1
  228. package/dist/components/files.d.ts.map +0 -1
  229. package/dist/components/files.js.map +0 -1
  230. package/dist/components/github-info.d.ts.map +0 -1
  231. package/dist/components/github-info.js.map +0 -1
  232. package/dist/components/heading.d.ts.map +0 -1
  233. package/dist/components/heading.js.map +0 -1
  234. package/dist/components/image-zoom.d.ts.map +0 -1
  235. package/dist/components/image-zoom.js.map +0 -1
  236. package/dist/components/inline-toc.d.ts.map +0 -1
  237. package/dist/components/inline-toc.js.map +0 -1
  238. package/dist/components/sidebar/base.d.ts.map +0 -1
  239. package/dist/components/sidebar/base.js.map +0 -1
  240. package/dist/components/sidebar/link-item.d.ts.map +0 -1
  241. package/dist/components/sidebar/link-item.js.map +0 -1
  242. package/dist/components/sidebar/page-tree.d.ts.map +0 -1
  243. package/dist/components/sidebar/page-tree.js.map +0 -1
  244. package/dist/components/sidebar/tabs/dropdown.d.ts.map +0 -1
  245. package/dist/components/sidebar/tabs/dropdown.js.map +0 -1
  246. package/dist/components/sidebar/tabs/index.d.ts.map +0 -1
  247. package/dist/components/sidebar/tabs/index.js.map +0 -1
  248. package/dist/components/steps.d.ts.map +0 -1
  249. package/dist/components/steps.js.map +0 -1
  250. package/dist/components/tabs.d.ts.map +0 -1
  251. package/dist/components/tabs.js.map +0 -1
  252. package/dist/components/toc/clerk.d.ts.map +0 -1
  253. package/dist/components/toc/clerk.js.map +0 -1
  254. package/dist/components/toc/default.d.ts.map +0 -1
  255. package/dist/components/toc/default.js.map +0 -1
  256. package/dist/components/toc/index.d.ts.map +0 -1
  257. package/dist/components/toc/index.js.map +0 -1
  258. package/dist/components/type-table.d.ts.map +0 -1
  259. package/dist/components/type-table.js.map +0 -1
  260. package/dist/components/ui/accordion.d.ts.map +0 -1
  261. package/dist/components/ui/accordion.js.map +0 -1
  262. package/dist/components/ui/button.d.ts.map +0 -1
  263. package/dist/components/ui/button.js.map +0 -1
  264. package/dist/components/ui/collapsible.d.ts.map +0 -1
  265. package/dist/components/ui/collapsible.js.map +0 -1
  266. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  267. package/dist/components/ui/navigation-menu.js.map +0 -1
  268. package/dist/components/ui/popover.d.ts.map +0 -1
  269. package/dist/components/ui/popover.js.map +0 -1
  270. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  271. package/dist/components/ui/scroll-area.js.map +0 -1
  272. package/dist/components/ui/tabs.d.ts.map +0 -1
  273. package/dist/components/ui/tabs.js.map +0 -1
  274. package/dist/contexts/i18n.d.ts.map +0 -1
  275. package/dist/contexts/i18n.js.map +0 -1
  276. package/dist/contexts/search.d.ts.map +0 -1
  277. package/dist/contexts/search.js.map +0 -1
  278. package/dist/contexts/tree.d.ts.map +0 -1
  279. package/dist/contexts/tree.js.map +0 -1
  280. package/dist/i18n.d.ts.map +0 -1
  281. package/dist/i18n.js.map +0 -1
  282. package/dist/layouts/docs/client.d.ts.map +0 -1
  283. package/dist/layouts/docs/client.js.map +0 -1
  284. package/dist/layouts/docs/index.d.ts.map +0 -1
  285. package/dist/layouts/docs/index.js.map +0 -1
  286. package/dist/layouts/docs/page/client.d.ts.map +0 -1
  287. package/dist/layouts/docs/page/client.js.map +0 -1
  288. package/dist/layouts/docs/page/index.d.ts.map +0 -1
  289. package/dist/layouts/docs/page/index.js.map +0 -1
  290. package/dist/layouts/docs/sidebar.d.ts +0 -63
  291. package/dist/layouts/docs/sidebar.d.ts.map +0 -1
  292. package/dist/layouts/docs/sidebar.js +0 -160
  293. package/dist/layouts/docs/sidebar.js.map +0 -1
  294. package/dist/layouts/flux/index.d.ts.map +0 -1
  295. package/dist/layouts/flux/index.js.map +0 -1
  296. package/dist/layouts/flux/page/client.d.ts.map +0 -1
  297. package/dist/layouts/flux/page/client.js.map +0 -1
  298. package/dist/layouts/flux/page/index.d.ts.map +0 -1
  299. package/dist/layouts/flux/page/index.js.map +0 -1
  300. package/dist/layouts/flux/sidebar.d.ts +0 -58
  301. package/dist/layouts/flux/sidebar.d.ts.map +0 -1
  302. package/dist/layouts/flux/sidebar.js.map +0 -1
  303. package/dist/layouts/flux/tab-dropdown.d.ts +0 -21
  304. package/dist/layouts/flux/tab-dropdown.d.ts.map +0 -1
  305. package/dist/layouts/flux/tab-dropdown.js.map +0 -1
  306. package/dist/layouts/home/client.d.ts +0 -19
  307. package/dist/layouts/home/client.d.ts.map +0 -1
  308. package/dist/layouts/home/client.js +0 -262
  309. package/dist/layouts/home/client.js.map +0 -1
  310. package/dist/layouts/home/index.d.ts.map +0 -1
  311. package/dist/layouts/home/index.js.map +0 -1
  312. package/dist/layouts/home/navbar.d.ts.map +0 -1
  313. package/dist/layouts/home/navbar.js.map +0 -1
  314. package/dist/layouts/home/not-found.d.ts.map +0 -1
  315. package/dist/layouts/home/not-found.js.map +0 -1
  316. package/dist/layouts/notebook/client.d.ts.map +0 -1
  317. package/dist/layouts/notebook/client.js.map +0 -1
  318. package/dist/layouts/notebook/index.d.ts.map +0 -1
  319. package/dist/layouts/notebook/index.js.map +0 -1
  320. package/dist/layouts/notebook/page/client.d.ts.map +0 -1
  321. package/dist/layouts/notebook/page/client.js.map +0 -1
  322. package/dist/layouts/notebook/page/index.d.ts.map +0 -1
  323. package/dist/layouts/notebook/page/index.js.map +0 -1
  324. package/dist/layouts/notebook/sidebar.d.ts +0 -59
  325. package/dist/layouts/notebook/sidebar.d.ts.map +0 -1
  326. package/dist/layouts/notebook/sidebar.js +0 -131
  327. package/dist/layouts/notebook/sidebar.js.map +0 -1
  328. package/dist/layouts/shared/index.d.ts.map +0 -1
  329. package/dist/layouts/shared/index.js.map +0 -1
  330. package/dist/layouts/shared/language-toggle.d.ts +0 -10
  331. package/dist/layouts/shared/language-toggle.d.ts.map +0 -1
  332. package/dist/layouts/shared/language-toggle.js.map +0 -1
  333. package/dist/layouts/shared/page-actions.d.ts.map +0 -1
  334. package/dist/layouts/shared/page-actions.js.map +0 -1
  335. package/dist/layouts/shared/search-toggle.d.ts +0 -23
  336. package/dist/layouts/shared/search-toggle.d.ts.map +0 -1
  337. package/dist/layouts/shared/search-toggle.js.map +0 -1
  338. package/dist/layouts/shared/theme-toggle.d.ts +0 -14
  339. package/dist/layouts/shared/theme-toggle.d.ts.map +0 -1
  340. package/dist/layouts/shared/theme-toggle.js.map +0 -1
  341. package/dist/mdx.d.ts.map +0 -1
  342. package/dist/mdx.js.map +0 -1
  343. package/dist/mdx.server.d.ts.map +0 -1
  344. package/dist/mdx.server.js.map +0 -1
  345. package/dist/og/takumi.d.ts.map +0 -1
  346. package/dist/og/takumi.js.map +0 -1
  347. package/dist/og.d.ts.map +0 -1
  348. package/dist/og.js.map +0 -1
  349. package/dist/page.d.ts.map +0 -1
  350. package/dist/page.js.map +0 -1
  351. package/dist/provider/base.d.ts.map +0 -1
  352. package/dist/provider/base.js.map +0 -1
  353. package/dist/provider/next.d.ts.map +0 -1
  354. package/dist/provider/next.js.map +0 -1
  355. package/dist/provider/react-router.d.ts.map +0 -1
  356. package/dist/provider/react-router.js.map +0 -1
  357. package/dist/provider/tanstack.d.ts.map +0 -1
  358. package/dist/provider/tanstack.js.map +0 -1
  359. package/dist/provider/waku.d.ts.map +0 -1
  360. package/dist/provider/waku.js.map +0 -1
  361. package/dist/utils/link-item.d.ts +0 -87
  362. package/dist/utils/link-item.d.ts.map +0 -1
  363. package/dist/utils/link-item.js +0 -27
  364. package/dist/utils/link-item.js.map +0 -1
  365. package/dist/utils/merge-refs.js.map +0 -1
  366. package/dist/utils/urls.js.map +0 -1
  367. package/dist/utils/use-copy-button.d.ts.map +0 -1
  368. package/dist/utils/use-copy-button.js.map +0 -1
  369. package/dist/utils/use-footer-items.d.ts.map +0 -1
  370. package/dist/utils/use-footer-items.js.map +0 -1
  371. package/dist/utils/use-is-scroll-top.d.ts.map +0 -1
  372. package/dist/utils/use-is-scroll-top.js.map +0 -1
@@ -1,45 +1,82 @@
1
- import * as react from "react";
2
- import { ComponentProps } from "react";
1
+ import { TOCProviderProps } from "../../../components/toc/index.js";
2
+ import { TOCProps } from "./slots/toc.js";
3
+ import { FooterProps } from "./slots/footer.js";
4
+ import { BreadcrumbProps } from "./slots/breadcrumb.js";
5
+ import { ComponentProps, FC, ReactNode } from "react";
3
6
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
- import { BreadcrumbOptions } from "fumadocs-core/breadcrumb";
5
- import * as PageTree from "fumadocs-core/page-tree";
7
+ import { TOCItemType } from "fumadocs-core/toc";
6
8
 
7
9
  //#region src/layouts/flux/page/client.d.ts
8
- declare function PageTOCPopover(props: ComponentProps<'div'>): react.ReactPortal | undefined;
9
- declare function PageTOCPopoverTrigger({
10
- className,
11
- ...props
12
- }: ComponentProps<'button'>): react_jsx_runtime0.JSX.Element;
13
- declare function PageTOCPopoverContent(props: ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
14
- declare function PageLastUpdate({
15
- date: value,
16
- ...props
17
- }: Omit<ComponentProps<'p'>, 'children'> & {
18
- date: Date;
19
- }): react_jsx_runtime0.JSX.Element;
20
- type Item = Pick<PageTree.Item, 'name' | 'description' | 'url'>;
21
- interface FooterProps extends ComponentProps<'div'> {
10
+ interface DocsPageSlots {
11
+ toc?: FC<TOCProps>;
12
+ container?: FC<ComponentProps<'article'>>;
13
+ tocProvider?: FC<TOCProviderProps>;
14
+ footer?: FC<FooterProps>;
15
+ breadcrumb?: FC<BreadcrumbProps>;
16
+ }
17
+ interface DocsPageProps extends ComponentProps<'article'> {
18
+ toc?: TOCItemType[];
19
+ /**
20
+ * Extend the page to fill all available space
21
+ *
22
+ * @defaultValue false
23
+ */
24
+ full?: boolean;
25
+ children?: ReactNode;
26
+ slots?: DocsPageSlots;
27
+ footer?: FooterOptions;
28
+ breadcrumb?: BreadcrumbOptions;
29
+ tableOfContent?: TableOfContentOptions;
30
+ }
31
+ interface TableOfContentOptions extends Pick<TOCProviderProps, 'single'>, TOCProps {
32
+ enabled?: boolean;
33
+ /**
34
+ * @deprecated use `slots.toc` instead.
35
+ */
36
+ component?: ReactNode;
37
+ }
38
+ interface BreadcrumbOptions extends BreadcrumbProps {
39
+ enabled?: boolean;
40
+ /**
41
+ * @deprecated use `slots.breadcrumb` instead.
42
+ */
43
+ component?: ReactNode;
44
+ }
45
+ interface FooterOptions extends FooterProps {
46
+ enabled?: boolean;
22
47
  /**
23
- * Items including information for the next and previous page
48
+ * @deprecated use `slots.footer` instead.
24
49
  */
25
- items?: {
26
- previous?: Item;
27
- next?: Item;
50
+ component?: ReactNode;
51
+ }
52
+ interface PageSlotsProps extends Pick<DocsPageProps, 'full' | 'footer' | 'breadcrumb'> {
53
+ tableOfContent: TOCProps & {
54
+ component?: ReactNode;
28
55
  };
29
56
  }
30
- declare function PageFooter({
31
- items,
57
+ declare function useDocsPage(): {
58
+ props: PageSlotsProps;
59
+ slots: DocsPageSlots;
60
+ };
61
+ declare function DocsPage({
62
+ tableOfContent: {
63
+ enabled: tocEnabled,
64
+ single,
65
+ ...tocProps
66
+ },
67
+ footer,
68
+ breadcrumb,
69
+ full,
70
+ toc,
71
+ slots: defaultSlots,
32
72
  children,
33
- className,
34
- ...props
35
- }: FooterProps): react_jsx_runtime0.JSX.Element;
36
- type BreadcrumbProps = BreadcrumbOptions & ComponentProps<'div'>;
37
- declare function PageBreadcrumb({
38
- includeRoot,
39
- includeSeparator,
40
- includePage,
73
+ ...containerProps
74
+ }: DocsPageProps): react_jsx_runtime0.JSX.Element;
75
+ declare function PageLastUpdate({
76
+ date: value,
41
77
  ...props
42
- }: BreadcrumbProps): react_jsx_runtime0.JSX.Element | null;
78
+ }: Omit<ComponentProps<'p'>, 'children'> & {
79
+ date: Date;
80
+ }): react_jsx_runtime0.JSX.Element;
43
81
  //#endregion
44
- export { BreadcrumbProps, FooterProps, PageBreadcrumb, PageFooter, PageLastUpdate, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger };
45
- //# sourceMappingURL=client.d.ts.map
82
+ export { DocsPage, DocsPageProps, DocsPageSlots, PageLastUpdate, useDocsPage };
@@ -1,158 +1,77 @@
1
1
  "use client";
2
2
  import { useI18n } from "../../../contexts/i18n.js";
3
3
  import { cn } from "../../../utils/cn.js";
4
- import { useTreeContext, useTreePath } from "../../../contexts/tree.js";
5
- import { isActive } from "../../../utils/urls.js";
6
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../../components/ui/collapsible.js";
7
- import { useTOCItems } from "../../../components/toc/index.js";
8
- import { useFooterItems } from "../../../utils/use-footer-items.js";
9
- import { Fragment, createContext, use, useEffect, useEffectEvent, useMemo, useRef, useState } from "react";
10
- import { usePathname } from "fumadocs-core/framework";
4
+ import { TOCProvider } from "../../../components/toc/index.js";
5
+ import { TOC } from "./slots/toc.js";
6
+ import { Footer } from "./slots/footer.js";
7
+ import { Breadcrumb } from "./slots/breadcrumb.js";
8
+ import { Container } from "./slots/container.js";
9
+ import { createContext, use, useEffect, useState } from "react";
11
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
12
- import Link from "fumadocs-core/link";
13
- import { ChevronDown, ChevronLeft, ChevronRight } from "lucide-react";
14
- import { getBreadcrumbItemsFromPath } from "fumadocs-core/breadcrumb";
15
- import { useActiveAnchor } from "fumadocs-core/toc";
16
- import { createPortal } from "react-dom";
17
- import { AnimatePresence, motion } from "motion/react";
18
11
  //#region src/layouts/flux/page/client.tsx
19
- const TocPopoverContext = createContext(null);
20
- function PageTOCPopover(props) {
21
- const [container, setContainer] = useState(null);
22
- useEffect(() => {
23
- const element = document.getElementById("flux-layout-slot");
24
- if (!element) return;
25
- setContainer(element);
26
- }, []);
27
- if (!container) return;
28
- return createPortal(/* @__PURE__ */ jsx(PageTOCPopoverPhysical, { ...props }), container);
29
- }
30
- function PageTOCPopoverPhysical({ className, children, ...rest }) {
31
- const ref = useRef(null);
32
- const [open, setOpen] = useState(false);
33
- const onClick = useEffectEvent((e) => {
34
- if (!open) return;
35
- if (ref.current && !ref.current.contains(e.target)) setOpen(false);
36
- });
37
- useEffect(() => {
38
- window.addEventListener("click", onClick);
39
- return () => {
40
- window.removeEventListener("click", onClick);
41
- };
42
- }, []);
43
- return /* @__PURE__ */ jsx(TocPopoverContext, {
44
- value: useMemo(() => ({
45
- open,
46
- setOpen
47
- }), [setOpen, open]),
48
- children: /* @__PURE__ */ jsx(Collapsible, {
49
- open,
50
- onOpenChange: setOpen,
51
- "data-toc-popover": "",
52
- className: cn("relative h-9 animate-fd-fade-in", className),
53
- ...rest,
54
- children: /* @__PURE__ */ jsx("header", {
55
- ref,
56
- className: cn("absolute w-full bottom-0 border rounded-xl transition-colors bg-fd-secondary text-fd-secondary-foreground backdrop-blur-sm", open && "shadow-lg bg-fd-popover/80 text-fd-popover-foreground"),
57
- children
58
- })
59
- })
60
- });
12
+ const PageContext = createContext(null);
13
+ function useDocsPage() {
14
+ const context = use(PageContext);
15
+ if (!context) throw new Error("Please use page components under <DocsPage /> (`fumadocs-ui/layouts/flux/page`).");
16
+ return context;
61
17
  }
62
- function PageTOCPopoverTrigger({ className, ...props }) {
63
- const { text } = useI18n();
64
- const { open } = use(TocPopoverContext);
65
- const items = useTOCItems();
66
- const active = useActiveAnchor();
67
- const selected = useMemo(() => items.findIndex((item) => active === item.url.slice(1)), [items, active]);
68
- const path = useTreePath().at(-1);
69
- const spanProps = {
70
- transition: { duration: .1 },
71
- initial: {
72
- opacity: 0,
73
- y: 10
74
- },
75
- animate: {
76
- opacity: 1,
77
- y: 0
78
- },
79
- exit: {
80
- opacity: 0,
81
- y: -10
82
- },
83
- className: cn(open && "text-fd-popover-foreground")
18
+ function DocsPage({ tableOfContent: { enabled: tocEnabled, single = false, ...tocProps } = {}, footer = {}, breadcrumb = {}, full = false, toc = [], slots: defaultSlots = {}, children, ...containerProps }) {
19
+ tocEnabled ??= Boolean(toc.length > 0 || tocProps.header || tocProps.footer);
20
+ const slots = {
21
+ breadcrumb: breadcrumb.enabled !== false ? defaultSlots.breadcrumb ?? InlineBreadcrumb : void 0,
22
+ footer: footer.enabled !== false ? defaultSlots.footer ?? InlineFooter : void 0,
23
+ toc: tocEnabled ? defaultSlots.toc ?? InlineTOC : void 0,
24
+ tocProvider: defaultSlots.tocProvider ?? TOCProvider,
25
+ container: defaultSlots.container ?? Container
84
26
  };
85
- return /* @__PURE__ */ jsxs(CollapsibleTrigger, {
86
- className: cn("flex w-full h-8.5 items-center text-sm text-fd-muted-foreground gap-2.5 px-2 text-start focus-visible:outline-none [&_svg]:size-4", className),
87
- "data-toc-popover-trigger": "",
88
- ...props,
27
+ let content = /* @__PURE__ */ jsxs(Fragment$1, { children: [slots.toc && /* @__PURE__ */ jsx(slots.toc, {}), slots.container && /* @__PURE__ */ jsxs(slots.container, {
28
+ ...containerProps,
89
29
  children: [
90
- /* @__PURE__ */ jsx(ProgressCircle, {
91
- value: (selected + 1) / Math.max(1, items.length),
92
- max: 1,
93
- className: cn("shrink-0", open && "text-fd-primary")
94
- }),
95
- /* @__PURE__ */ jsx(AnimatePresence, {
96
- mode: "wait",
97
- children: items[selected] && selected !== -1 && !open ? /* @__PURE__ */ jsx(motion.span, {
98
- ...spanProps,
99
- children: items[selected].title
100
- }, selected) : path ? /* @__PURE__ */ jsx(motion.span, {
101
- ...spanProps,
102
- children: path.name
103
- }, path.$id ?? ":pathId") : /* @__PURE__ */ jsx(motion.span, {
104
- ...spanProps,
105
- children: text.toc
106
- }, ":toc")
107
- }),
108
- /* @__PURE__ */ jsx(ChevronDown, { className: cn("ms-auto shrink-0 transition-transform", open && "rotate-180") })
30
+ slots.breadcrumb && /* @__PURE__ */ jsx(slots.breadcrumb, {}),
31
+ children,
32
+ slots.footer && /* @__PURE__ */ jsx(slots.footer, {})
109
33
  ]
34
+ })] });
35
+ if (slots.tocProvider) content = /* @__PURE__ */ jsx(slots.tocProvider, {
36
+ single,
37
+ toc: tocEnabled ? toc : [],
38
+ children: content
39
+ });
40
+ return /* @__PURE__ */ jsx(PageContext, {
41
+ value: {
42
+ props: {
43
+ full,
44
+ tableOfContent: tocProps,
45
+ footer,
46
+ breadcrumb
47
+ },
48
+ slots
49
+ },
50
+ children: content
110
51
  });
111
52
  }
112
- function clamp(input, min, max) {
113
- if (input < min) return min;
114
- if (input > max) return max;
115
- return input;
53
+ function InlineBreadcrumb(props) {
54
+ const { component, enabled: _, ...rest } = useDocsPage().props.breadcrumb ?? {};
55
+ if (component) return component;
56
+ return /* @__PURE__ */ jsx(Breadcrumb, {
57
+ ...props,
58
+ ...rest
59
+ });
116
60
  }
117
- function ProgressCircle({ value, strokeWidth = 2, size = 24, min = 0, max = 100, ...restSvgProps }) {
118
- const normalizedValue = clamp(value, min, max);
119
- const radius = (size - strokeWidth) / 2;
120
- const circumference = 2 * Math.PI * radius;
121
- const progress = normalizedValue / max * circumference;
122
- const circleProps = {
123
- cx: size / 2,
124
- cy: size / 2,
125
- r: radius,
126
- fill: "none",
127
- strokeWidth
128
- };
129
- return /* @__PURE__ */ jsxs("svg", {
130
- role: "progressbar",
131
- viewBox: `0 0 ${size} ${size}`,
132
- "aria-valuenow": normalizedValue,
133
- "aria-valuemin": min,
134
- "aria-valuemax": max,
135
- ...restSvgProps,
136
- children: [/* @__PURE__ */ jsx("circle", {
137
- ...circleProps,
138
- className: "stroke-current/25"
139
- }), /* @__PURE__ */ jsx("circle", {
140
- ...circleProps,
141
- stroke: "currentColor",
142
- strokeDasharray: circumference,
143
- strokeDashoffset: circumference - progress,
144
- strokeLinecap: "round",
145
- transform: `rotate(-90 ${size / 2} ${size / 2})`,
146
- className: "transition-all"
147
- })]
61
+ function InlineFooter(props) {
62
+ const { component, enabled: _, ...rest } = useDocsPage().props.footer ?? {};
63
+ if (component) return component;
64
+ return /* @__PURE__ */ jsx(Footer, {
65
+ ...props,
66
+ ...rest
148
67
  });
149
68
  }
150
- function PageTOCPopoverContent(props) {
151
- return /* @__PURE__ */ jsx(CollapsibleContent, {
152
- "data-toc-popover-content": "",
69
+ function InlineTOC(props) {
70
+ const { tableOfContent } = useDocsPage().props;
71
+ if (tableOfContent.component) return tableOfContent.component;
72
+ return /* @__PURE__ */ jsx(TOC, {
153
73
  ...props,
154
- className: cn("flex flex-col px-2 max-h-[50vh]", props.className),
155
- children: props.children
74
+ ...tableOfContent
156
75
  });
157
76
  }
158
77
  function PageLastUpdate({ date: value, ...props }) {
@@ -171,83 +90,5 @@ function PageLastUpdate({ date: value, ...props }) {
171
90
  ]
172
91
  });
173
92
  }
174
- function PageFooter({ items, children, className, ...props }) {
175
- const footerList = useFooterItems();
176
- const pathname = usePathname();
177
- const { previous, next } = useMemo(() => {
178
- if (items) return items;
179
- const idx = footerList.findIndex((item) => isActive(item.url, pathname));
180
- if (idx === -1) return {};
181
- return {
182
- previous: footerList[idx - 1],
183
- next: footerList[idx + 1]
184
- };
185
- }, [
186
- footerList,
187
- items,
188
- pathname
189
- ]);
190
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
191
- className: cn("@container grid gap-4", previous && next ? "grid-cols-2" : "grid-cols-1", className),
192
- ...props,
193
- children: [previous && /* @__PURE__ */ jsx(FooterItem, {
194
- item: previous,
195
- index: 0
196
- }), next && /* @__PURE__ */ jsx(FooterItem, {
197
- item: next,
198
- index: 1
199
- })]
200
- }), children] });
201
- }
202
- function FooterItem({ item, index }) {
203
- const { text } = useI18n();
204
- const Icon = index === 0 ? ChevronLeft : ChevronRight;
205
- return /* @__PURE__ */ jsxs(Link, {
206
- href: item.url,
207
- className: cn("flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full", index === 1 && "text-end"),
208
- children: [/* @__PURE__ */ jsxs("div", {
209
- className: cn("inline-flex items-center gap-1.5 font-medium", index === 1 && "flex-row-reverse"),
210
- children: [/* @__PURE__ */ jsx(Icon, { className: "-mx-1 size-4 shrink-0 rtl:rotate-180" }), /* @__PURE__ */ jsx("p", { children: item.name })]
211
- }), /* @__PURE__ */ jsx("p", {
212
- className: "text-fd-muted-foreground truncate",
213
- children: item.description ?? (index === 0 ? text.previousPage : text.nextPage)
214
- })]
215
- });
216
- }
217
- function PageBreadcrumb({ includeRoot, includeSeparator, includePage, ...props }) {
218
- const path = useTreePath();
219
- const { root } = useTreeContext();
220
- const items = useMemo(() => {
221
- return getBreadcrumbItemsFromPath(root, path, {
222
- includePage,
223
- includeSeparator,
224
- includeRoot
225
- });
226
- }, [
227
- includePage,
228
- includeRoot,
229
- includeSeparator,
230
- path,
231
- root
232
- ]);
233
- if (items.length === 0) return null;
234
- return /* @__PURE__ */ jsx("div", {
235
- ...props,
236
- className: cn("flex items-center gap-1.5 text-sm text-fd-muted-foreground", props.className),
237
- children: items.map((item, i) => {
238
- const className = cn("truncate", i === items.length - 1 && "text-fd-primary font-medium");
239
- return /* @__PURE__ */ jsxs(Fragment, { children: [i !== 0 && /* @__PURE__ */ jsx(ChevronRight, { className: "size-3.5 shrink-0" }), item.url ? /* @__PURE__ */ jsx(Link, {
240
- href: item.url,
241
- className: cn(className, "transition-opacity hover:opacity-80"),
242
- children: item.name
243
- }) : /* @__PURE__ */ jsx("span", {
244
- className,
245
- children: item.name
246
- })] }, i);
247
- })
248
- });
249
- }
250
93
  //#endregion
251
- export { PageBreadcrumb, PageFooter, PageLastUpdate, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger };
252
-
253
- //# sourceMappingURL=client.js.map
94
+ export { DocsPage, PageLastUpdate, useDocsPage };
@@ -1,79 +1,11 @@
1
- import { BreadcrumbProps, FooterProps, PageBreadcrumb, PageLastUpdate } from "./client.js";
2
- import { ComponentProps, ReactNode } from "react";
1
+ import { MarkdownCopyButton, ViewOptionsPopover } from "../../shared/page-actions.js";
2
+ import { Footer, FooterProps } from "./slots/footer.js";
3
+ import { Breadcrumb, BreadcrumbProps } from "./slots/breadcrumb.js";
4
+ import { DocsPage, DocsPageProps, DocsPageSlots, PageLastUpdate, useDocsPage } from "./client.js";
5
+ import { ComponentProps } from "react";
3
6
  import * as react_jsx_runtime0 from "react/jsx-runtime";
4
- import { AnchorProviderProps, TOCItemType } from "fumadocs-core/toc";
5
7
 
6
8
  //#region src/layouts/flux/page/index.d.ts
7
- interface BreadcrumbOptions extends BreadcrumbProps {
8
- enabled: boolean;
9
- component: ReactNode;
10
- }
11
- interface FooterOptions extends FooterProps {
12
- enabled: boolean;
13
- component: ReactNode;
14
- }
15
- interface DocsPageProps {
16
- toc?: TOCItemType[];
17
- tableOfContent?: Partial<TableOfContentOptions>;
18
- /**
19
- * Extend the page to fill all available space
20
- *
21
- * @defaultValue false
22
- */
23
- full?: boolean;
24
- /**
25
- * Replace or disable breadcrumb
26
- */
27
- breadcrumb?: Partial<BreadcrumbOptions>;
28
- /**
29
- * Footer navigation, located under the page body.
30
- *
31
- * You can specify `footer.children` to add extra components under the footer.
32
- */
33
- footer?: Partial<FooterOptions>;
34
- children?: ReactNode;
35
- /**
36
- * Apply class names to the `#nd-page` container.
37
- */
38
- className?: string;
39
- }
40
- interface TableOfContentOptions extends Pick<AnchorProviderProps, 'single'> {
41
- /**
42
- * Custom content in TOC container, before the main TOC
43
- */
44
- header?: ReactNode;
45
- /**
46
- * Custom content in TOC container, after the main TOC
47
- */
48
- footer?: ReactNode;
49
- enabled: boolean;
50
- component: ReactNode;
51
- /**
52
- * @defaultValue 'normal'
53
- */
54
- style?: 'normal' | 'clerk';
55
- }
56
- declare function DocsPage({
57
- breadcrumb: {
58
- enabled: breadcrumbEnabled,
59
- component: breadcrumb,
60
- ...breadcrumbProps
61
- },
62
- footer: {
63
- enabled: footerEnabled,
64
- component: footerReplace,
65
- ...footerProps
66
- },
67
- full,
68
- tableOfContent: {
69
- enabled: tocPopoverEnabled,
70
- component: tocPopover,
71
- ...tocOptions
72
- },
73
- toc,
74
- children,
75
- className
76
- }: DocsPageProps): ReactNode;
77
9
  declare function EditOnGitHub(props: ComponentProps<'a'>): react_jsx_runtime0.JSX.Element;
78
10
  /**
79
11
  * Add typography styles
@@ -94,5 +26,4 @@ declare function DocsTitle({
94
26
  ...props
95
27
  }: ComponentProps<'h1'>): react_jsx_runtime0.JSX.Element;
96
28
  //#endregion
97
- export { DocsBody, DocsDescription, DocsPage, DocsPageProps, DocsTitle, EditOnGitHub, PageBreadcrumb, PageLastUpdate };
98
- //# sourceMappingURL=index.d.ts.map
29
+ export { type BreadcrumbProps, DocsBody, DocsDescription, DocsPage, type DocsPageProps, type DocsPageSlots, DocsTitle, EditOnGitHub, type FooterProps, MarkdownCopyButton, Breadcrumb as PageBreadcrumb, Footer as PageFooter, PageLastUpdate, ViewOptionsPopover, useDocsPage };
@@ -1,36 +1,13 @@
1
1
  import { I18nLabel } from "../../../contexts/i18n.js";
2
2
  import { cn } from "../../../utils/cn.js";
3
3
  import { buttonVariants } from "../../../components/ui/button.js";
4
- import { TOCProvider, TOCScrollArea } from "../../../components/toc/index.js";
5
- import { TOCItems } from "../../../components/toc/default.js";
6
- import { TOCItems as TOCItems$1 } from "../../../components/toc/clerk.js";
7
- import { PageBreadcrumb, PageFooter, PageLastUpdate, PageTOCPopover, PageTOCPopoverContent, PageTOCPopoverTrigger } from "./client.js";
4
+ import { MarkdownCopyButton, ViewOptionsPopover } from "../../shared/page-actions.js";
5
+ import { Footer } from "./slots/footer.js";
6
+ import { Breadcrumb } from "./slots/breadcrumb.js";
7
+ import { DocsPage, PageLastUpdate, useDocsPage } from "./client.js";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Edit } from "lucide-react";
10
10
  //#region src/layouts/flux/page/index.tsx
11
- function DocsPage({ breadcrumb: { enabled: breadcrumbEnabled = true, component: breadcrumb, ...breadcrumbProps } = {}, footer: { enabled: footerEnabled, component: footerReplace, ...footerProps } = {}, full = false, tableOfContent: { enabled: tocPopoverEnabled, component: tocPopover, ...tocOptions } = {}, toc = [], children, className }) {
12
- tocPopoverEnabled ??= toc.length > 0 || tocOptions.header !== void 0 || tocOptions.footer !== void 0;
13
- let wrapper = (children) => children;
14
- if (tocPopoverEnabled) wrapper = (children) => /* @__PURE__ */ jsx(TOCProvider, {
15
- single: tocOptions.single,
16
- toc,
17
- children
18
- });
19
- return wrapper(/* @__PURE__ */ jsxs(Fragment, { children: [tocPopoverEnabled && (tocPopover ?? /* @__PURE__ */ jsxs(PageTOCPopover, { children: [/* @__PURE__ */ jsxs(PageTOCPopoverContent, { children: [
20
- tocOptions.header,
21
- /* @__PURE__ */ jsx(TOCScrollArea, { children: tocOptions.style === "clerk" ? /* @__PURE__ */ jsx(TOCItems$1, {}) : /* @__PURE__ */ jsx(TOCItems, {}) }),
22
- tocOptions.footer
23
- ] }), /* @__PURE__ */ jsx(PageTOCPopoverTrigger, {})] })), /* @__PURE__ */ jsxs("article", {
24
- id: "nd-page",
25
- "data-full": full,
26
- 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),
27
- children: [
28
- breadcrumbEnabled && (breadcrumb ?? /* @__PURE__ */ jsx(PageBreadcrumb, { ...breadcrumbProps })),
29
- children,
30
- footerEnabled !== false && (footerReplace ?? /* @__PURE__ */ jsx(PageFooter, { ...footerProps }))
31
- ]
32
- })] }));
33
- }
34
11
  function EditOnGitHub(props) {
35
12
  return /* @__PURE__ */ jsx("a", {
36
13
  target: "_blank",
@@ -70,6 +47,4 @@ function DocsTitle({ children, className, ...props }) {
70
47
  });
71
48
  }
72
49
  //#endregion
73
- export { DocsBody, DocsDescription, DocsPage, DocsTitle, EditOnGitHub, PageBreadcrumb, PageLastUpdate };
74
-
75
- //# sourceMappingURL=index.js.map
50
+ export { DocsBody, DocsDescription, DocsPage, DocsTitle, EditOnGitHub, MarkdownCopyButton, Breadcrumb as PageBreadcrumb, Footer as PageFooter, PageLastUpdate, ViewOptionsPopover, useDocsPage };
@@ -0,0 +1,14 @@
1
+ import { ComponentProps } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import { BreadcrumbOptions } from "fumadocs-core/breadcrumb";
4
+
5
+ //#region src/layouts/flux/page/slots/breadcrumb.d.ts
6
+ type BreadcrumbProps = BreadcrumbOptions & ComponentProps<'div'>;
7
+ declare function Breadcrumb({
8
+ includeRoot,
9
+ includeSeparator,
10
+ includePage,
11
+ ...props
12
+ }: BreadcrumbProps): react_jsx_runtime0.JSX.Element | null;
13
+ //#endregion
14
+ export { Breadcrumb, BreadcrumbProps };
@@ -0,0 +1,43 @@
1
+ import { cn } from "../../../../utils/cn.js";
2
+ import { useTreeContext, useTreePath } from "../../../../contexts/tree.js";
3
+ import { Fragment, useMemo } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import Link from "fumadocs-core/link";
6
+ import { ChevronRight } from "lucide-react";
7
+ import { getBreadcrumbItemsFromPath } from "fumadocs-core/breadcrumb";
8
+ //#region src/layouts/flux/page/slots/breadcrumb.tsx
9
+ function Breadcrumb({ includeRoot, includeSeparator, includePage, ...props }) {
10
+ const path = useTreePath();
11
+ const { root } = useTreeContext();
12
+ const items = useMemo(() => {
13
+ return getBreadcrumbItemsFromPath(root, path, {
14
+ includePage,
15
+ includeSeparator,
16
+ includeRoot
17
+ });
18
+ }, [
19
+ includePage,
20
+ includeRoot,
21
+ includeSeparator,
22
+ path,
23
+ root
24
+ ]);
25
+ if (items.length === 0) return null;
26
+ return /* @__PURE__ */ jsx("div", {
27
+ ...props,
28
+ className: cn("flex items-center gap-1.5 text-sm text-fd-muted-foreground", props.className),
29
+ children: items.map((item, i) => {
30
+ const className = cn("truncate", i === items.length - 1 && "text-fd-primary font-medium");
31
+ return /* @__PURE__ */ jsxs(Fragment, { children: [i !== 0 && /* @__PURE__ */ jsx(ChevronRight, { className: "size-3.5 shrink-0" }), item.url ? /* @__PURE__ */ jsx(Link, {
32
+ href: item.url,
33
+ className: cn(className, "transition-opacity hover:opacity-80"),
34
+ children: item.name
35
+ }) : /* @__PURE__ */ jsx("span", {
36
+ className,
37
+ children: item.name
38
+ })] }, i);
39
+ })
40
+ });
41
+ }
42
+ //#endregion
43
+ export { Breadcrumb };
@@ -0,0 +1,7 @@
1
+ import { ComponentProps } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/layouts/flux/page/slots/container.d.ts
5
+ declare function Container(props: ComponentProps<'article'>): react_jsx_runtime0.JSX.Element;
6
+ //#endregion
7
+ export { Container };
@@ -0,0 +1,16 @@
1
+ import { cn } from "../../../../utils/cn.js";
2
+ import { useDocsPage } from "../client.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/layouts/flux/page/slots/container.tsx
5
+ function Container(props) {
6
+ const { props: { full } } = useDocsPage();
7
+ return /* @__PURE__ */ jsx("article", {
8
+ id: "nd-page",
9
+ "data-full": full,
10
+ ...props,
11
+ 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]", props.className),
12
+ children: props.children
13
+ });
14
+ }
15
+ //#endregion
16
+ export { Container };
@@ -0,0 +1,23 @@
1
+ import { ComponentProps } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import * as PageTree from "fumadocs-core/page-tree";
4
+
5
+ //#region src/layouts/flux/page/slots/footer.d.ts
6
+ type Item = Pick<PageTree.Item, 'name' | 'description' | 'url'>;
7
+ interface FooterProps extends ComponentProps<'div'> {
8
+ /**
9
+ * Items including information for the next and previous page
10
+ */
11
+ items?: {
12
+ previous?: Item;
13
+ next?: Item;
14
+ };
15
+ }
16
+ declare function Footer({
17
+ items,
18
+ children,
19
+ className,
20
+ ...props
21
+ }: FooterProps): react_jsx_runtime0.JSX.Element;
22
+ //#endregion
23
+ export { Footer, FooterProps };