@hanzo/docs-base-ui 16.5.0 → 16.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +3 -3
  2. package/css/aspen.css +39 -0
  3. package/css/black.css +39 -1
  4. package/css/catppuccin.css +49 -1
  5. package/css/dusk.css +47 -1
  6. package/css/emerald.css +39 -0
  7. package/css/generated/docs.css +490 -0
  8. package/css/generated/flux.css +429 -0
  9. package/css/generated/home.css +285 -0
  10. package/css/generated/notebook.css +526 -0
  11. package/css/generated/shared.css +1173 -0
  12. package/css/lib/base.css +214 -0
  13. package/css/lib/default-colors.css +51 -0
  14. package/css/lib/shiki.css +98 -0
  15. package/css/neutral.css +7 -1
  16. package/css/ocean.css +44 -1
  17. package/css/preset.css +9 -7
  18. package/css/purple.css +39 -1
  19. package/css/ruby.css +39 -0
  20. package/css/shadcn.css +36 -1
  21. package/css/solar.css +75 -1
  22. package/css/vitepress.css +65 -1
  23. package/dist/_virtual/_rolldown/runtime.js +13 -0
  24. package/dist/components/accordion.d.ts +2 -3
  25. package/dist/components/accordion.js +9 -13
  26. package/dist/components/banner.d.ts +3 -4
  27. package/dist/components/banner.js +5 -9
  28. package/dist/components/callout.d.ts +6 -7
  29. package/dist/components/callout.js +1 -4
  30. package/dist/components/card.d.ts +4 -5
  31. package/dist/components/card.js +2 -5
  32. package/dist/components/codeblock.d.ts +8 -9
  33. package/dist/components/codeblock.js +9 -13
  34. package/dist/components/codeblock.rsc.d.ts +21 -0
  35. package/dist/components/codeblock.rsc.js +22 -0
  36. package/dist/components/dialog/search-algolia.d.ts +7 -9
  37. package/dist/components/dialog/search-algolia.js +8 -12
  38. package/dist/components/dialog/search-default.d.ts +7 -9
  39. package/dist/components/dialog/search-default.js +8 -12
  40. package/dist/components/dialog/search-orama.d.ts +7 -9
  41. package/dist/components/dialog/search-orama.js +8 -12
  42. package/dist/components/dialog/search.d.ts +21 -21
  43. package/dist/components/dialog/search.js +137 -60
  44. package/dist/components/dynamic-codeblock.core.d.ts +35 -0
  45. package/dist/components/dynamic-codeblock.core.js +51 -0
  46. package/dist/components/dynamic-codeblock.d.ts +7 -29
  47. package/dist/components/dynamic-codeblock.js +11 -60
  48. package/dist/components/files.d.ts +1 -2
  49. package/dist/components/files.js +6 -10
  50. package/dist/components/github-info.d.ts +23 -10
  51. package/dist/components/github-info.js +34 -29
  52. package/dist/components/heading.d.ts +1 -2
  53. package/dist/components/heading.js +3 -6
  54. package/dist/components/image-zoom.d.ts +4 -5
  55. package/dist/components/image-zoom.js +2 -5
  56. package/dist/components/inline-toc.d.ts +3 -4
  57. package/dist/components/inline-toc.js +2 -6
  58. package/dist/components/sidebar/base.d.ts +29 -23
  59. package/dist/components/sidebar/base.js +16 -22
  60. package/dist/components/sidebar/link-item.d.ts +3 -4
  61. package/dist/components/sidebar/link-item.js +6 -3
  62. package/dist/components/sidebar/page-tree.d.ts +3 -4
  63. package/dist/components/sidebar/page-tree.js +56 -45
  64. package/dist/components/sidebar/tabs/dropdown.d.ts +6 -9
  65. package/dist/components/sidebar/tabs/dropdown.js +22 -29
  66. package/dist/components/sidebar/tabs/index.d.ts +3 -17
  67. package/dist/components/sidebar/tabs/index.js +0 -3
  68. package/dist/components/steps.d.ts +4 -5
  69. package/dist/components/steps.js +0 -3
  70. package/dist/components/tabs.d.ts +15 -11
  71. package/dist/components/tabs.js +15 -20
  72. package/dist/components/toc/clerk.d.ts +19 -1
  73. package/dist/components/toc/clerk.js +165 -10
  74. package/dist/components/toc/default.d.ts +19 -1
  75. package/dist/components/toc/default.js +45 -10
  76. package/dist/components/toc/index.d.ts +29 -1
  77. package/dist/components/toc/index.js +105 -10
  78. package/dist/components/type-table.d.ts +11 -6
  79. package/dist/components/type-table.js +28 -23
  80. package/dist/components/ui/accordion.d.ts +7 -8
  81. package/dist/components/ui/accordion.js +2 -6
  82. package/dist/components/ui/button.d.ts +1 -2
  83. package/dist/components/ui/button.js +0 -3
  84. package/dist/components/ui/collapsible.d.ts +6 -7
  85. package/dist/components/ui/collapsible.js +3 -7
  86. package/dist/components/ui/navigation-menu.d.ts +27 -13
  87. package/dist/components/ui/navigation-menu.js +53 -31
  88. package/dist/components/ui/popover.d.ts +11 -6
  89. package/dist/components/ui/popover.js +15 -19
  90. package/dist/components/ui/scroll-area.d.ts +17 -7
  91. package/dist/components/ui/scroll-area.js +27 -31
  92. package/dist/components/ui/tabs.d.ts +8 -9
  93. package/dist/components/ui/tabs.js +5 -9
  94. package/dist/contexts/i18n.d.ts +62 -1
  95. package/dist/contexts/i18n.js +53 -10
  96. package/dist/contexts/search.d.ts +71 -5
  97. package/dist/contexts/search.js +64 -10
  98. package/dist/contexts/tree.d.ts +21 -1
  99. package/dist/contexts/tree.js +36 -10
  100. package/dist/i18n.d.ts +21 -1
  101. package/dist/i18n.js +20 -3
  102. package/dist/layouts/docs/client.d.ts +30 -29
  103. package/dist/layouts/docs/client.js +76 -52
  104. package/dist/layouts/docs/index.d.ts +21 -35
  105. package/dist/layouts/docs/index.js +16 -172
  106. package/dist/layouts/docs/page/index.d.ts +75 -52
  107. package/dist/layouts/docs/page/index.js +76 -56
  108. package/dist/layouts/docs/page/slots/breadcrumb.d.ts +14 -0
  109. package/dist/layouts/docs/page/slots/breadcrumb.js +44 -0
  110. package/dist/layouts/docs/page/slots/container.d.ts +7 -0
  111. package/dist/layouts/docs/page/slots/container.js +17 -0
  112. package/dist/layouts/docs/page/slots/footer.d.ts +23 -0
  113. package/dist/layouts/docs/page/slots/footer.js +56 -0
  114. package/dist/layouts/docs/page/slots/toc.d.ts +55 -0
  115. package/dist/layouts/docs/page/slots/toc.js +166 -0
  116. package/dist/layouts/docs/slots/container.d.ts +7 -0
  117. package/dist/layouts/docs/slots/container.js +29 -0
  118. package/dist/layouts/docs/slots/header.d.ts +8 -0
  119. package/dist/layouts/docs/slots/header.js +38 -0
  120. package/dist/layouts/docs/slots/sidebar.d.ts +30 -0
  121. package/dist/layouts/docs/slots/sidebar.js +319 -0
  122. package/dist/layouts/flux/index.d.ts +74 -0
  123. package/dist/layouts/flux/index.js +146 -0
  124. package/dist/layouts/flux/page/index.d.ts +105 -0
  125. package/dist/layouts/flux/page/index.js +104 -0
  126. package/dist/layouts/flux/page/slots/breadcrumb.d.ts +14 -0
  127. package/dist/layouts/flux/page/slots/breadcrumb.js +44 -0
  128. package/dist/layouts/flux/page/slots/container.d.ts +7 -0
  129. package/dist/layouts/flux/page/slots/container.js +17 -0
  130. package/dist/layouts/flux/page/slots/footer.d.ts +23 -0
  131. package/dist/layouts/flux/page/slots/footer.js +56 -0
  132. package/dist/layouts/flux/page/slots/toc.d.ts +34 -0
  133. package/dist/layouts/flux/page/slots/toc.js +172 -0
  134. package/dist/layouts/flux/slots/container.d.ts +7 -0
  135. package/dist/layouts/flux/slots/container.js +13 -0
  136. package/dist/layouts/flux/slots/sidebar.d.ts +23 -0
  137. package/dist/layouts/flux/slots/sidebar.js +237 -0
  138. package/dist/layouts/flux/slots/tab-dropdown.d.ts +17 -0
  139. package/dist/layouts/flux/slots/tab-dropdown.js +85 -0
  140. package/dist/layouts/home/index.d.ts +25 -8
  141. package/dist/layouts/home/index.js +39 -19
  142. package/dist/layouts/home/navbar.d.ts +7 -16
  143. package/dist/layouts/home/navbar.js +12 -14
  144. package/dist/layouts/home/not-found.d.ts +9 -0
  145. package/dist/layouts/home/not-found.js +38 -0
  146. package/dist/layouts/home/slots/container.d.ts +7 -0
  147. package/dist/layouts/home/slots/container.js +13 -0
  148. package/dist/layouts/home/slots/header.d.ts +11 -0
  149. package/dist/layouts/home/slots/header.js +242 -0
  150. package/dist/layouts/notebook/client.d.ts +32 -44
  151. package/dist/layouts/notebook/client.js +58 -148
  152. package/dist/layouts/notebook/index.d.ts +26 -25
  153. package/dist/layouts/notebook/index.js +16 -213
  154. package/dist/layouts/notebook/page/index.d.ts +75 -52
  155. package/dist/layouts/notebook/page/index.js +76 -56
  156. package/dist/layouts/notebook/page/slots/breadcrumb.d.ts +14 -0
  157. package/dist/layouts/notebook/page/slots/breadcrumb.js +44 -0
  158. package/dist/layouts/notebook/page/slots/container.d.ts +7 -0
  159. package/dist/layouts/notebook/page/slots/container.js +17 -0
  160. package/dist/layouts/notebook/page/slots/footer.d.ts +23 -0
  161. package/dist/layouts/notebook/page/slots/footer.js +56 -0
  162. package/dist/layouts/notebook/page/slots/toc.d.ts +55 -0
  163. package/dist/layouts/notebook/page/slots/toc.js +165 -0
  164. package/dist/layouts/notebook/slots/container.d.ts +7 -0
  165. package/dist/layouts/notebook/slots/container.js +31 -0
  166. package/dist/layouts/notebook/slots/header.d.ts +8 -0
  167. package/dist/layouts/notebook/slots/header.js +194 -0
  168. package/dist/layouts/notebook/slots/sidebar.d.ts +40 -0
  169. package/dist/layouts/notebook/slots/sidebar.js +297 -0
  170. package/dist/layouts/shared/client.d.ts +45 -0
  171. package/dist/layouts/shared/client.js +84 -0
  172. package/dist/layouts/shared/index.d.ts +144 -35
  173. package/dist/layouts/shared/index.js +74 -15
  174. package/dist/layouts/shared/page-actions.d.ts +36 -0
  175. package/dist/layouts/shared/page-actions.js +190 -0
  176. package/dist/layouts/shared/slots/language-select.d.ts +10 -0
  177. package/dist/layouts/shared/{language-toggle.js → slots/language-select.js} +12 -16
  178. package/dist/layouts/shared/slots/search-trigger.d.ts +23 -0
  179. package/dist/layouts/shared/{search-toggle.js → slots/search-trigger.js} +12 -16
  180. package/dist/layouts/shared/slots/theme-switch.d.ts +14 -0
  181. package/dist/layouts/shared/{theme-toggle.js → slots/theme-switch.js} +11 -15
  182. package/dist/mdx.d.ts +23 -13
  183. package/dist/mdx.js +2 -6
  184. package/dist/mdx.server.d.ts +1 -3
  185. package/dist/mdx.server.js +0 -3
  186. package/dist/og/takumi.d.ts +21 -0
  187. package/dist/og/takumi.js +70 -0
  188. package/dist/og.d.ts +22 -1
  189. package/dist/og.js +70 -3
  190. package/dist/page.d.ts +6 -7
  191. package/dist/page.js +9 -14
  192. package/dist/provider/base.d.ts +5 -6
  193. package/dist/provider/base.js +5 -9
  194. package/dist/provider/next.d.ts +4 -5
  195. package/dist/provider/next.js +1 -5
  196. package/dist/provider/react-router.d.ts +4 -5
  197. package/dist/provider/react-router.js +1 -5
  198. package/dist/provider/tanstack.d.ts +4 -5
  199. package/dist/provider/tanstack.js +1 -5
  200. package/dist/provider/waku.d.ts +4 -5
  201. package/dist/provider/waku.js +1 -5
  202. package/dist/style.css +594 -192
  203. package/dist/tailwind/typography.d.ts +2 -0
  204. package/dist/tailwind/typography.js +2 -0
  205. package/dist/utils/cn.js +2 -0
  206. package/dist/utils/merge-refs.js +11 -0
  207. package/dist/utils/urls.js +15 -0
  208. package/dist/utils/use-copy-button.d.ts +6 -1
  209. package/dist/utils/use-copy-button.js +26 -3
  210. package/dist/utils/use-footer-items.d.ts +9 -1
  211. package/dist/utils/use-footer-items.js +24 -3
  212. package/dist/utils/use-is-scroll-top.d.ts +8 -1
  213. package/dist/utils/use-is-scroll-top.js +20 -3
  214. package/package.json +133 -81
  215. package/css/layouts/docs.css +0 -1
  216. package/css/layouts/home.css +0 -1
  217. package/css/layouts/notebook.css +0 -1
  218. package/dist/_virtual/rolldown_runtime.js +0 -36
  219. package/dist/components/accordion.d.ts.map +0 -1
  220. package/dist/components/accordion.js.map +0 -1
  221. package/dist/components/banner.d.ts.map +0 -1
  222. package/dist/components/banner.js.map +0 -1
  223. package/dist/components/callout.d.ts.map +0 -1
  224. package/dist/components/callout.js.map +0 -1
  225. package/dist/components/card.d.ts.map +0 -1
  226. package/dist/components/card.js.map +0 -1
  227. package/dist/components/codeblock.d.ts.map +0 -1
  228. package/dist/components/codeblock.js.map +0 -1
  229. package/dist/components/dialog/search-algolia.d.ts.map +0 -1
  230. package/dist/components/dialog/search-algolia.js.map +0 -1
  231. package/dist/components/dialog/search-default.d.ts.map +0 -1
  232. package/dist/components/dialog/search-default.js.map +0 -1
  233. package/dist/components/dialog/search-orama.d.ts.map +0 -1
  234. package/dist/components/dialog/search-orama.js.map +0 -1
  235. package/dist/components/dialog/search.d.ts.map +0 -1
  236. package/dist/components/dialog/search.js.map +0 -1
  237. package/dist/components/dynamic-codeblock.d.ts.map +0 -1
  238. package/dist/components/dynamic-codeblock.js.map +0 -1
  239. package/dist/components/files.d.ts.map +0 -1
  240. package/dist/components/files.js.map +0 -1
  241. package/dist/components/github-info.d.ts.map +0 -1
  242. package/dist/components/github-info.js.map +0 -1
  243. package/dist/components/heading.d.ts.map +0 -1
  244. package/dist/components/heading.js.map +0 -1
  245. package/dist/components/image-zoom-CtfZieBH.css +0 -80
  246. package/dist/components/image-zoom-CtfZieBH.css.map +0 -1
  247. package/dist/components/image-zoom.d.ts.map +0 -1
  248. package/dist/components/image-zoom.js.map +0 -1
  249. package/dist/components/image-zoom2.js +0 -1
  250. package/dist/components/inline-toc.d.ts.map +0 -1
  251. package/dist/components/inline-toc.js.map +0 -1
  252. package/dist/components/sidebar/base.d.ts.map +0 -1
  253. package/dist/components/sidebar/base.js.map +0 -1
  254. package/dist/components/sidebar/link-item.d.ts.map +0 -1
  255. package/dist/components/sidebar/link-item.js.map +0 -1
  256. package/dist/components/sidebar/page-tree.d.ts.map +0 -1
  257. package/dist/components/sidebar/page-tree.js.map +0 -1
  258. package/dist/components/sidebar/tabs/dropdown.d.ts.map +0 -1
  259. package/dist/components/sidebar/tabs/dropdown.js.map +0 -1
  260. package/dist/components/sidebar/tabs/index.d.ts.map +0 -1
  261. package/dist/components/sidebar/tabs/index.js.map +0 -1
  262. package/dist/components/steps.d.ts.map +0 -1
  263. package/dist/components/steps.js.map +0 -1
  264. package/dist/components/tabs.d.ts.map +0 -1
  265. package/dist/components/tabs.js.map +0 -1
  266. package/dist/components/toc/clerk.js.map +0 -1
  267. package/dist/components/toc/default.js.map +0 -1
  268. package/dist/components/toc/index.js.map +0 -1
  269. package/dist/components/type-table.d.ts.map +0 -1
  270. package/dist/components/type-table.js.map +0 -1
  271. package/dist/components/ui/accordion.d.ts.map +0 -1
  272. package/dist/components/ui/accordion.js.map +0 -1
  273. package/dist/components/ui/button.d.ts.map +0 -1
  274. package/dist/components/ui/button.js.map +0 -1
  275. package/dist/components/ui/collapsible.d.ts.map +0 -1
  276. package/dist/components/ui/collapsible.js.map +0 -1
  277. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  278. package/dist/components/ui/navigation-menu.js.map +0 -1
  279. package/dist/components/ui/popover.d.ts.map +0 -1
  280. package/dist/components/ui/popover.js.map +0 -1
  281. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  282. package/dist/components/ui/scroll-area.js.map +0 -1
  283. package/dist/components/ui/tabs.d.ts.map +0 -1
  284. package/dist/components/ui/tabs.js.map +0 -1
  285. package/dist/contexts/i18n.js.map +0 -1
  286. package/dist/contexts/search.d.ts.map +0 -1
  287. package/dist/contexts/search.js.map +0 -1
  288. package/dist/contexts/tree.js.map +0 -1
  289. package/dist/layouts/docs/client.d.ts.map +0 -1
  290. package/dist/layouts/docs/client.js.map +0 -1
  291. package/dist/layouts/docs/index.d.ts.map +0 -1
  292. package/dist/layouts/docs/index.js.map +0 -1
  293. package/dist/layouts/docs/page/client.d.ts +0 -46
  294. package/dist/layouts/docs/page/client.d.ts.map +0 -1
  295. package/dist/layouts/docs/page/client.js +0 -227
  296. package/dist/layouts/docs/page/client.js.map +0 -1
  297. package/dist/layouts/docs/page/index.d.ts.map +0 -1
  298. package/dist/layouts/docs/page/index.js.map +0 -1
  299. package/dist/layouts/docs/sidebar.d.ts +0 -63
  300. package/dist/layouts/docs/sidebar.d.ts.map +0 -1
  301. package/dist/layouts/docs/sidebar.js +0 -162
  302. package/dist/layouts/docs/sidebar.js.map +0 -1
  303. package/dist/layouts/home/client.d.ts +0 -19
  304. package/dist/layouts/home/client.d.ts.map +0 -1
  305. package/dist/layouts/home/client.js +0 -285
  306. package/dist/layouts/home/client.js.map +0 -1
  307. package/dist/layouts/home/index.d.ts.map +0 -1
  308. package/dist/layouts/home/index.js.map +0 -1
  309. package/dist/layouts/home/navbar.d.ts.map +0 -1
  310. package/dist/layouts/home/navbar.js.map +0 -1
  311. package/dist/layouts/notebook/client.d.ts.map +0 -1
  312. package/dist/layouts/notebook/client.js.map +0 -1
  313. package/dist/layouts/notebook/index.d.ts.map +0 -1
  314. package/dist/layouts/notebook/index.js.map +0 -1
  315. package/dist/layouts/notebook/page/client.d.ts +0 -46
  316. package/dist/layouts/notebook/page/client.d.ts.map +0 -1
  317. package/dist/layouts/notebook/page/client.js +0 -227
  318. package/dist/layouts/notebook/page/client.js.map +0 -1
  319. package/dist/layouts/notebook/page/index.d.ts.map +0 -1
  320. package/dist/layouts/notebook/page/index.js.map +0 -1
  321. package/dist/layouts/notebook/sidebar.d.ts +0 -59
  322. package/dist/layouts/notebook/sidebar.d.ts.map +0 -1
  323. package/dist/layouts/notebook/sidebar.js +0 -133
  324. package/dist/layouts/notebook/sidebar.js.map +0 -1
  325. package/dist/layouts/shared/index.d.ts.map +0 -1
  326. package/dist/layouts/shared/index.js.map +0 -1
  327. package/dist/layouts/shared/language-toggle.d.ts +0 -10
  328. package/dist/layouts/shared/language-toggle.d.ts.map +0 -1
  329. package/dist/layouts/shared/language-toggle.js.map +0 -1
  330. package/dist/layouts/shared/search-toggle.d.ts +0 -23
  331. package/dist/layouts/shared/search-toggle.d.ts.map +0 -1
  332. package/dist/layouts/shared/search-toggle.js.map +0 -1
  333. package/dist/layouts/shared/theme-toggle.d.ts +0 -14
  334. package/dist/layouts/shared/theme-toggle.d.ts.map +0 -1
  335. package/dist/layouts/shared/theme-toggle.js.map +0 -1
  336. package/dist/mdx.d.ts.map +0 -1
  337. package/dist/mdx.js.map +0 -1
  338. package/dist/mdx.server.d.ts.map +0 -1
  339. package/dist/mdx.server.js.map +0 -1
  340. package/dist/page.d.ts.map +0 -1
  341. package/dist/page.js.map +0 -1
  342. package/dist/provider/base.d.ts.map +0 -1
  343. package/dist/provider/base.js.map +0 -1
  344. package/dist/provider/next.d.ts.map +0 -1
  345. package/dist/provider/next.js.map +0 -1
  346. package/dist/provider/react-router.d.ts.map +0 -1
  347. package/dist/provider/react-router.js.map +0 -1
  348. package/dist/provider/tanstack.d.ts.map +0 -1
  349. package/dist/provider/tanstack.js.map +0 -1
  350. package/dist/provider/waku.d.ts.map +0 -1
  351. package/dist/provider/waku.js.map +0 -1
@@ -1,32 +1,33 @@
1
- import { SidebarTab } from "../../components/sidebar/tabs/index.js";
2
- import * as react_jsx_runtime93 from "react/jsx-runtime";
3
- import * as react19 from "react";
4
- import { ComponentProps, ReactNode } from "react";
5
-
1
+ import { BaseSlots, BaseSlotsProps } from "../shared/client.js";
2
+ import { LayoutTab, LinkItemType } from "../shared/index.js";
3
+ import { SidebarProps, SidebarProviderProps } from "./slots/sidebar.js";
4
+ import { DocsLayoutProps } from "./index.js";
5
+ import { ComponentProps, FC } from "react";
6
6
  //#region src/layouts/docs/client.d.ts
7
- declare const LayoutContext: react19.Context<{
7
+ interface DocsSlots extends BaseSlots {
8
+ container: FC<ComponentProps<'div'>>;
9
+ header: FC<ComponentProps<'header'>>;
10
+ sidebar: {
11
+ provider: FC<SidebarProviderProps>;
12
+ root: FC<SidebarProps>;
13
+ trigger: FC<ComponentProps<'button'>>;
14
+ useSidebar: () => {
15
+ collapsed: boolean;
16
+ open: boolean;
17
+ setOpen: (v: boolean) => void;
18
+ };
19
+ };
20
+ }
21
+ interface SlotsProps extends BaseSlotsProps<DocsLayoutProps> {
22
+ tabs: LayoutTab[];
23
+ tabMode: NonNullable<DocsLayoutProps['tabMode']>;
24
+ }
25
+ declare function useDocsLayout(): {
26
+ props: SlotsProps;
8
27
  isNavTransparent: boolean;
9
- } | null>;
10
- declare function LayoutContextProvider({
11
- navTransparentMode,
12
- children
13
- }: {
14
- navTransparentMode?: 'always' | 'top' | 'none';
15
- children: ReactNode;
16
- }): react_jsx_runtime93.JSX.Element;
17
- declare function LayoutHeader(props: ComponentProps<'header'>): react_jsx_runtime93.JSX.Element;
18
- declare function LayoutBody({
19
- className,
20
- style,
21
- children,
22
- ...props
23
- }: ComponentProps<'div'>): react_jsx_runtime93.JSX.Element;
24
- declare function LayoutTabs({
25
- options,
26
- ...props
27
- }: ComponentProps<'div'> & {
28
- options: SidebarTab[];
29
- }): react_jsx_runtime93.JSX.Element;
28
+ navItems: LinkItemType[];
29
+ menuItems: LinkItemType[];
30
+ slots: DocsSlots;
31
+ };
30
32
  //#endregion
31
- export { LayoutBody, LayoutContext, LayoutContextProvider, LayoutHeader, LayoutTabs };
32
- //# sourceMappingURL=client.d.ts.map
33
+ export { DocsSlots, useDocsLayout };
@@ -1,68 +1,92 @@
1
- 'use client';
2
-
3
- import { useSidebar } from "../../components/sidebar/base.js";
4
- import { isTabActive } from "../../components/sidebar/tabs/dropdown.js";
5
- import Link from "@hanzo/docs-core/link";
6
- import { usePathname } from "@hanzo/docs-core/framework";
7
- import { cn } from "@hanzo/docs-ui/cn";
8
- import { jsx } from "react/jsx-runtime";
1
+ "use client";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { TreeContextProvider } from "../../contexts/tree.js";
4
+ import { baseSlots } from "../shared/client.js";
5
+ import { isLayoutTabActive, useLinkItems } from "../shared/index.js";
6
+ import { useIsScrollTop } from "../../utils/use-is-scroll-top.js";
7
+ import { Sidebar, SidebarProvider, SidebarTrigger, useSidebar } from "./slots/sidebar.js";
8
+ import { Header } from "./slots/header.js";
9
+ import { Container } from "./slots/container.js";
9
10
  import { createContext, use, useMemo } from "react";
10
- import { useIsScrollTop } from "@hanzo/docs-ui/hooks/use-is-scroll-top";
11
-
11
+ import { usePathname } from "@hanzo/docs-core/framework";
12
+ import { jsx, jsxs } from "react/jsx-runtime";
13
+ import Link from "@hanzo/docs-core/link";
12
14
  //#region src/layouts/docs/client.tsx
15
+ const { useProvider } = baseSlots({ useProps() {
16
+ return useDocsLayout().props;
17
+ } });
13
18
  const LayoutContext = createContext(null);
14
- function LayoutContextProvider({ navTransparentMode = "none", children }) {
15
- const isTop = useIsScrollTop({ enabled: navTransparentMode === "top" }) ?? true;
16
- const isNavTransparent = navTransparentMode === "top" ? isTop : navTransparentMode === "always";
17
- return /* @__PURE__ */ jsx(LayoutContext, {
18
- value: useMemo(() => ({ isNavTransparent }), [isNavTransparent]),
19
- children
20
- });
19
+ function useIsDocsLayout() {
20
+ return use(LayoutContext) !== null;
21
21
  }
22
- function LayoutHeader(props) {
23
- const { isNavTransparent } = use(LayoutContext);
24
- return /* @__PURE__ */ jsx("header", {
25
- "data-transparent": isNavTransparent,
26
- ...props,
27
- children: props.children
28
- });
22
+ function useDocsLayout() {
23
+ const context = use(LayoutContext);
24
+ if (!context) throw new Error("Please use <DocsPage /> (`@hanzo/docs-ui/layouts/docs/page`) under <DocsLayout /> (`@hanzo/docs-ui/layouts/docs`).");
25
+ return context;
29
26
  }
30
- function LayoutBody({ className, style, children, ...props }) {
31
- const { collapsed } = useSidebar();
32
- return /* @__PURE__ */ jsx("div", {
33
- id: "nd-docs-layout",
34
- className: cn("grid transition-[grid-template-columns] overflow-x-clip min-h-(--fd-docs-height) auto-cols-auto auto-rows-auto [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px]", className),
35
- "data-sidebar-collapsed": collapsed,
36
- style: {
37
- gridTemplate: `"sidebar header toc"
38
- "sidebar toc-popover toc"
39
- "sidebar main toc" 1fr / minmax(var(--fd-sidebar-col), 1fr) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) minmax(min-content, 1fr)`,
40
- "--fd-docs-row-1": "var(--fd-banner-height, 0px)",
41
- "--fd-docs-row-2": "calc(var(--fd-docs-row-1) + var(--fd-header-height))",
42
- "--fd-docs-row-3": "calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height))",
43
- "--fd-sidebar-col": collapsed ? "0px" : "var(--fd-sidebar-width)",
44
- ...style
45
- },
46
- ...props,
47
- children
27
+ function LayoutBody(props) {
28
+ const { nav: { enabled: navEnabled = true, transparentMode: navTransparentMode = "none" } = {}, sidebar: { enabled: sidebarEnabled = true, defaultOpenLevel, prefetch, ...sidebarProps } = {}, slots: defaultSlots, tabs, tabMode = "auto", tree, containerProps, children } = props;
29
+ const isTop = useIsScrollTop({ enabled: navTransparentMode === "top" }) ?? true;
30
+ const isNavTransparent = navTransparentMode === "top" ? isTop : navTransparentMode === "always";
31
+ const { baseSlots, baseProps } = useProvider(props);
32
+ const linkItems = useLinkItems(props);
33
+ const slots = {
34
+ ...baseSlots,
35
+ header: defaultSlots?.header ?? Header,
36
+ container: defaultSlots?.container ?? Container,
37
+ sidebar: defaultSlots?.sidebar ?? {
38
+ provider: SidebarProvider,
39
+ root: Sidebar,
40
+ trigger: SidebarTrigger,
41
+ useSidebar
42
+ }
43
+ };
44
+ return /* @__PURE__ */ jsx(TreeContextProvider, {
45
+ tree,
46
+ children: /* @__PURE__ */ jsx(LayoutContext, {
47
+ value: {
48
+ props: {
49
+ tabMode,
50
+ tabs,
51
+ ...baseProps
52
+ },
53
+ isNavTransparent,
54
+ slots,
55
+ ...linkItems
56
+ },
57
+ children: /* @__PURE__ */ jsx(slots.sidebar.provider, {
58
+ defaultOpenLevel,
59
+ prefetch,
60
+ children: /* @__PURE__ */ jsxs(slots.container, {
61
+ ...containerProps,
62
+ children: [
63
+ navEnabled && /* @__PURE__ */ jsx(slots.header, {}),
64
+ sidebarEnabled && /* @__PURE__ */ jsx(slots.sidebar.root, { ...sidebarProps }),
65
+ tabMode === "top" && tabs.length > 0 && /* @__PURE__ */ jsx(LayoutTabs, {
66
+ tabs,
67
+ className: "z-10 bg-fd-background border-b px-6 pt-3 xl:px-8 max-md:hidden"
68
+ }),
69
+ children
70
+ ]
71
+ })
72
+ })
73
+ })
48
74
  });
49
75
  }
50
- function LayoutTabs({ options, ...props }) {
76
+ function LayoutTabs({ tabs, ...props }) {
51
77
  const pathname = usePathname();
52
78
  const selected = useMemo(() => {
53
- return options.findLast((option) => isTabActive(option, pathname));
54
- }, [options, pathname]);
79
+ return tabs.findLast((option) => isLayoutTabActive(option, pathname));
80
+ }, [tabs, pathname]);
55
81
  return /* @__PURE__ */ jsx("div", {
56
82
  ...props,
57
83
  className: cn("flex flex-row items-end gap-6 overflow-auto [grid-area:main]", props.className),
58
- children: options.map((option, i) => /* @__PURE__ */ jsx(Link, {
59
- href: option.url,
60
- className: cn("inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground", option.unlisted && selected !== option && "hidden", selected === option && "border-fd-primary text-fd-primary"),
61
- children: option.title
84
+ children: tabs.map((tab, i) => /* @__PURE__ */ jsx(Link, {
85
+ href: tab.url,
86
+ className: cn("inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground", tab.unlisted && selected !== tab && "hidden", selected === tab && "border-fd-primary text-fd-primary"),
87
+ children: tab.title
62
88
  }, i))
63
89
  });
64
90
  }
65
-
66
91
  //#endregion
67
- export { LayoutBody, LayoutContext, LayoutContextProvider, LayoutHeader, LayoutTabs };
68
- //# sourceMappingURL=client.js.map
92
+ export { LayoutBody, useDocsLayout, useIsDocsLayout };
@@ -1,10 +1,8 @@
1
- import { SidebarPageTreeComponents } from "../../components/sidebar/page-tree.js";
2
- import { GetSidebarTabsOptions } from "../../components/sidebar/tabs/index.js";
3
- import { SidebarTabWithProps } from "../../components/sidebar/tabs/dropdown.js";
4
- import { Sidebar } from "./sidebar.js";
5
- import { BaseLayoutProps } from "../shared/index.js";
6
- import * as react_jsx_runtime141 from "react/jsx-runtime";
7
- import { ComponentProps, HTMLAttributes, ReactNode } from "react";
1
+ import { BaseLayoutProps, GetLayoutTabsOptions, LayoutTab } from "../shared/index.js";
2
+ import { SidebarProps, SidebarProviderProps } from "./slots/sidebar.js";
3
+ import { DocsSlots, useDocsLayout } from "./client.js";
4
+ import { HTMLAttributes, ReactNode } from "react";
5
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
8
6
  import * as PageTree from "@hanzo/docs-core/page-tree";
9
7
 
10
8
  //#region src/layouts/docs/index.d.ts
@@ -12,48 +10,36 @@ interface DocsLayoutProps extends BaseLayoutProps {
12
10
  tree: PageTree.Root;
13
11
  sidebar?: SidebarOptions;
14
12
  tabMode?: 'top' | 'auto';
15
- /**
16
- * Props for the `div` container
17
- */
13
+ tabs?: LayoutTab[] | GetLayoutTabsOptions | false;
18
14
  containerProps?: HTMLAttributes<HTMLDivElement>;
15
+ slots?: Partial<DocsSlots>;
19
16
  }
20
- interface SidebarOptions extends ComponentProps<'aside'>, Pick<ComponentProps<typeof Sidebar>, 'defaultOpenLevel' | 'prefetch'> {
17
+ interface SidebarOptions extends SidebarProps, SidebarProviderProps {
21
18
  enabled?: boolean;
19
+ /**
20
+ * @deprecated use `slots.sidebar` instead.
21
+ */
22
22
  component?: ReactNode;
23
- components?: Partial<SidebarPageTreeComponents>;
24
23
  /**
25
- * Root Toggle options
24
+ * @deprecated use layout-level `tabMode` option instead.
26
25
  */
27
- tabs?: SidebarTabWithProps[] | GetSidebarTabsOptions | false;
28
- banner?: ReactNode;
29
- footer?: ReactNode;
26
+ tabMode?: 'auto' | 'top';
30
27
  /**
31
- * Support collapsing the sidebar on desktop mode
32
- *
33
- * @defaultValue true
28
+ * @deprecated use layout-level `tabs` option instead.
34
29
  */
35
- collapsible?: boolean;
30
+ tabs?: LayoutTab[] | GetLayoutTabsOptions | false;
36
31
  }
37
32
  declare function DocsLayout({
38
- nav: {
39
- transparentMode,
40
- ...nav
41
- },
33
+ tree,
42
34
  sidebar: {
43
- tabs: sidebarTabs,
44
- enabled: sidebarEnabled,
45
- defaultOpenLevel,
46
- prefetch,
35
+ tabs: _tabs,
36
+ tabMode: _tabMode,
47
37
  ...sidebarProps
48
38
  },
49
- searchToggle,
50
- themeSwitch,
39
+ tabs: layoutTabs,
51
40
  tabMode,
52
- i18n,
53
41
  children,
54
- tree,
55
42
  ...props
56
- }: DocsLayoutProps): react_jsx_runtime141.JSX.Element;
43
+ }: DocsLayoutProps): react_jsx_runtime0.JSX.Element;
57
44
  //#endregion
58
- export { DocsLayout, DocsLayoutProps };
59
- //# sourceMappingURL=index.d.ts.map
45
+ export { DocsLayout, DocsLayoutProps, type DocsSlots, useDocsLayout };
@@ -1,178 +1,22 @@
1
- import { buttonVariants } from "../../components/ui/button.js";
2
- import { tree_exports } from "../../contexts/tree.js";
3
- import { SidebarTabsDropdown } from "../../components/sidebar/tabs/dropdown.js";
4
- import { LayoutBody, LayoutContextProvider, LayoutHeader, LayoutTabs } from "./client.js";
5
- import { renderTitleNav, resolveLinkItems } from "../shared/index.js";
6
- import { LargeSearchToggle, SearchToggle } from "../shared/search-toggle.js";
7
- import { ThemeToggle } from "../shared/theme-toggle.js";
8
- import { LanguageToggle, LanguageToggleText } from "../shared/language-toggle.js";
9
- import { getSidebarTabs } from "../../components/sidebar/tabs/index.js";
10
- import { Sidebar as Sidebar$1, SidebarCollapseTrigger, SidebarContent, SidebarDrawer, SidebarLinkItem, SidebarPageTree, SidebarTrigger, SidebarViewport } from "./sidebar.js";
11
- import { cn } from "@hanzo/docs-ui/cn";
12
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- import { Languages, Sidebar } from "lucide-react";
1
+ import { getLayoutTabs } from "../shared/index.js";
2
+ import { LayoutBody, useDocsLayout } from "./client.js";
14
3
  import { useMemo } from "react";
15
- import { LinkItem } from "@hanzo/docs-ui/link-item";
16
-
4
+ import { jsx } from "react/jsx-runtime";
17
5
  //#region src/layouts/docs/index.tsx
18
- function DocsLayout({ nav: { transparentMode, ...nav } = {}, sidebar: { tabs: sidebarTabs, enabled: sidebarEnabled = true, defaultOpenLevel, prefetch, ...sidebarProps } = {}, searchToggle = {}, themeSwitch = {}, tabMode = "auto", i18n = false, children, tree, ...props }) {
19
- const tabs = useMemo(() => {
20
- if (Array.isArray(sidebarTabs)) return sidebarTabs;
21
- if (typeof sidebarTabs === "object") return getSidebarTabs(tree, sidebarTabs);
22
- if (sidebarTabs !== false) return getSidebarTabs(tree);
23
- return [];
24
- }, [tree, sidebarTabs]);
25
- const links = resolveLinkItems(props);
26
- function sidebar() {
27
- const { footer, banner, collapsible = true, component, components, ...rest } = sidebarProps;
28
- if (component) return component;
29
- const iconLinks = links.filter((item) => item.type === "icon");
30
- const viewport = /* @__PURE__ */ jsxs(SidebarViewport, { children: [links.filter((v) => v.type !== "icon").map((item, i, list) => /* @__PURE__ */ jsx(SidebarLinkItem, {
31
- item,
32
- className: cn(i === list.length - 1 && "mb-4")
33
- }, i)), /* @__PURE__ */ jsx(SidebarPageTree, { ...components })] });
34
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(SidebarContent, {
35
- ...rest,
36
- children: [
37
- /* @__PURE__ */ jsxs("div", {
38
- className: "flex flex-col gap-3 p-4 pb-2",
39
- children: [
40
- /* @__PURE__ */ jsxs("div", {
41
- className: "flex",
42
- children: [
43
- renderTitleNav(nav, { className: "inline-flex text-[0.9375rem] items-center gap-2.5 font-medium me-auto" }),
44
- nav.children,
45
- collapsible && /* @__PURE__ */ jsx(SidebarCollapseTrigger, {
46
- className: cn(buttonVariants({
47
- color: "ghost",
48
- size: "icon-sm",
49
- className: "mb-auto text-fd-muted-foreground"
50
- })),
51
- children: /* @__PURE__ */ jsx(Sidebar, {})
52
- })
53
- ]
54
- }),
55
- searchToggle.enabled !== false && (searchToggle.components?.lg ?? /* @__PURE__ */ jsx(LargeSearchToggle, { hideIfDisabled: true })),
56
- tabs.length > 0 && tabMode === "auto" && /* @__PURE__ */ jsx(SidebarTabsDropdown, { options: tabs }),
57
- banner
58
- ]
59
- }),
60
- viewport,
61
- (i18n || iconLinks.length > 0 || themeSwitch?.enabled !== false || footer) && /* @__PURE__ */ jsxs("div", {
62
- className: "flex flex-col border-t p-4 pt-2 empty:hidden",
63
- children: [/* @__PURE__ */ jsxs("div", {
64
- className: "flex text-fd-muted-foreground items-center empty:hidden",
65
- children: [
66
- i18n && /* @__PURE__ */ jsx(LanguageToggle, { children: /* @__PURE__ */ jsx(Languages, { className: "size-4.5" }) }),
67
- iconLinks.map((item, i) => /* @__PURE__ */ jsx(LinkItem, {
68
- item,
69
- className: cn(buttonVariants({
70
- size: "icon-sm",
71
- color: "ghost"
72
- })),
73
- "aria-label": item.label,
74
- children: item.icon
75
- }, i)),
76
- themeSwitch.enabled !== false && (themeSwitch.component ?? /* @__PURE__ */ jsx(ThemeToggle, {
77
- className: "ms-auto p-0",
78
- mode: themeSwitch.mode
79
- }))
80
- ]
81
- }), footer]
82
- })
83
- ]
84
- }), /* @__PURE__ */ jsxs(SidebarDrawer, { children: [
85
- /* @__PURE__ */ jsxs("div", {
86
- className: "flex flex-col gap-3 p-4 pb-2",
87
- children: [
88
- /* @__PURE__ */ jsxs("div", {
89
- className: "flex text-fd-muted-foreground items-center gap-1.5",
90
- children: [
91
- /* @__PURE__ */ jsx("div", {
92
- className: "flex flex-1",
93
- children: iconLinks.map((item, i) => /* @__PURE__ */ jsx(LinkItem, {
94
- item,
95
- className: cn(buttonVariants({
96
- size: "icon-sm",
97
- color: "ghost",
98
- className: "p-2"
99
- })),
100
- "aria-label": item.label,
101
- children: item.icon
102
- }, i))
103
- }),
104
- i18n && /* @__PURE__ */ jsxs(LanguageToggle, { children: [/* @__PURE__ */ jsx(Languages, { className: "size-4.5" }), /* @__PURE__ */ jsx(LanguageToggleText, {})] }),
105
- themeSwitch.enabled !== false && (themeSwitch.component ?? /* @__PURE__ */ jsx(ThemeToggle, {
106
- className: "p-0",
107
- mode: themeSwitch.mode
108
- })),
109
- /* @__PURE__ */ jsx(SidebarTrigger, {
110
- className: cn(buttonVariants({
111
- color: "ghost",
112
- size: "icon-sm",
113
- className: "p-2"
114
- })),
115
- children: /* @__PURE__ */ jsx(Sidebar, {})
116
- })
117
- ]
118
- }),
119
- tabs.length > 0 && /* @__PURE__ */ jsx(SidebarTabsDropdown, { options: tabs }),
120
- banner
121
- ]
122
- }),
123
- viewport,
124
- /* @__PURE__ */ jsx("div", {
125
- className: "flex flex-col border-t p-4 pt-2 empty:hidden",
126
- children: footer
127
- })
128
- ] })] });
129
- }
130
- return /* @__PURE__ */ jsx(tree_exports.TreeContextProvider, {
6
+ function DocsLayout({ tree, sidebar: { tabs: _tabs, tabMode: _tabMode, ...sidebarProps } = {}, tabs: layoutTabs = _tabs, tabMode = _tabMode, children, ...props }) {
7
+ return /* @__PURE__ */ jsx(LayoutBody, {
131
8
  tree,
132
- children: /* @__PURE__ */ jsx(LayoutContextProvider, {
133
- navTransparentMode: transparentMode,
134
- children: /* @__PURE__ */ jsx(Sidebar$1, {
135
- defaultOpenLevel,
136
- prefetch,
137
- children: /* @__PURE__ */ jsxs(LayoutBody, {
138
- ...props.containerProps,
139
- children: [
140
- nav.enabled !== false && (nav.component ?? /* @__PURE__ */ jsxs(LayoutHeader, {
141
- id: "nd-subnav",
142
- className: "[grid-area:header] sticky top-(--fd-docs-row-1) z-30 flex items-center ps-4 pe-2.5 border-b transition-colors backdrop-blur-sm h-(--fd-header-height) md:hidden max-md:layout:[--fd-header-height:--spacing(14)] data-[transparent=false]:bg-fd-background/80",
143
- children: [
144
- renderTitleNav(nav, { className: "inline-flex items-center gap-2.5 font-semibold" }),
145
- /* @__PURE__ */ jsx("div", {
146
- className: "flex-1",
147
- children: nav.children
148
- }),
149
- searchToggle.enabled !== false && (searchToggle.components?.sm ?? /* @__PURE__ */ jsx(SearchToggle, {
150
- className: "p-2",
151
- hideIfDisabled: true
152
- })),
153
- sidebarEnabled && /* @__PURE__ */ jsx(SidebarTrigger, {
154
- className: cn(buttonVariants({
155
- color: "ghost",
156
- size: "icon-sm",
157
- className: "p-2"
158
- })),
159
- children: /* @__PURE__ */ jsx(Sidebar, {})
160
- })
161
- ]
162
- })),
163
- sidebarEnabled && sidebar(),
164
- tabMode === "top" && tabs.length > 0 && /* @__PURE__ */ jsx(LayoutTabs, {
165
- options: tabs,
166
- className: "z-10 bg-fd-background border-b px-6 pt-3 xl:px-8 max-md:hidden"
167
- }),
168
- children
169
- ]
170
- })
171
- })
172
- })
9
+ tabs: useMemo(() => {
10
+ if (Array.isArray(layoutTabs)) return layoutTabs;
11
+ if (typeof layoutTabs === "object") return getLayoutTabs(tree, layoutTabs);
12
+ if (layoutTabs !== false) return getLayoutTabs(tree);
13
+ return [];
14
+ }, [tree, layoutTabs]),
15
+ tabMode,
16
+ sidebar: sidebarProps,
17
+ ...props,
18
+ children
173
19
  });
174
20
  }
175
-
176
21
  //#endregion
177
- export { DocsLayout };
178
- //# sourceMappingURL=index.js.map
22
+ export { DocsLayout, useDocsLayout };
@@ -1,76 +1,94 @@
1
- import { BreadcrumbProps, FooterProps, PageBreadcrumb, PageLastUpdate } from "./client.js";
2
- import * as react_jsx_runtime44 from "react/jsx-runtime";
3
- import { ComponentProps, ReactNode } from "react";
4
- import { AnchorProviderProps, TOCItemType } from "@hanzo/docs-core/toc";
1
+ import { TOCPopoverProps, TOCProps, TOCProviderProps } from "./slots/toc.js";
2
+ import { Footer, FooterProps } from "./slots/footer.js";
3
+ import { Breadcrumb, BreadcrumbProps } from "./slots/breadcrumb.js";
4
+ import { MarkdownCopyButton, ViewOptionsPopover } from "../../shared/page-actions.js";
5
+ import { ComponentProps, FC, ReactNode } from "react";
6
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
7
+ import { TOCItemType } from "@hanzo/docs-core/toc";
5
8
 
6
9
  //#region src/layouts/docs/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 {
10
+ interface DocsPageProps extends ComponentProps<'article'> {
16
11
  toc?: TOCItemType[];
17
- tableOfContent?: Partial<TableOfContentOptions>;
18
- tableOfContentPopover?: Partial<TableOfContentPopoverOptions>;
19
12
  /**
20
13
  * Extend the page to fill all available space
21
14
  *
22
15
  * @defaultValue false
23
16
  */
24
17
  full?: boolean;
18
+ slots?: Partial<DocsPageSlots>;
19
+ footer?: FooterOptions;
20
+ breadcrumb?: BreadcrumbOptions;
21
+ tableOfContent?: TableOfContentOptions;
22
+ tableOfContentPopover?: TableOfContentPopoverOptions;
23
+ }
24
+ interface BreadcrumbOptions extends BreadcrumbProps {
25
+ enabled?: boolean;
25
26
  /**
26
- * Replace or disable breadcrumb
27
- */
28
- breadcrumb?: Partial<BreadcrumbOptions>;
29
- /**
30
- * Footer navigation, you can disable it by passing `false`
27
+ * @deprecated use `slots.breadcrumb` instead.
31
28
  */
32
- footer?: Partial<FooterOptions>;
33
- children?: ReactNode;
29
+ component?: ReactNode;
34
30
  }
35
- type TableOfContentOptions = Pick<AnchorProviderProps, 'single'> & {
31
+ interface FooterOptions extends FooterProps {
32
+ enabled?: boolean;
36
33
  /**
37
- * Custom content in TOC container, before the main TOC
34
+ * @deprecated use `slots.footer` instead.
38
35
  */
39
- header?: ReactNode;
36
+ component?: ReactNode;
37
+ }
38
+ interface TableOfContentOptions extends Pick<TOCProviderProps, 'single'>, TOCProps {
39
+ enabled?: boolean;
40
40
  /**
41
- * Custom content in TOC container, after the main TOC
41
+ * @deprecated use `slots.toc` instead.
42
42
  */
43
- footer?: ReactNode;
44
- enabled: boolean;
45
- component: ReactNode;
43
+ component?: ReactNode;
44
+ }
45
+ interface TableOfContentPopoverOptions extends TOCPopoverProps {
46
+ enabled?: boolean;
46
47
  /**
47
- * @defaultValue 'normal'
48
+ * @deprecated use `slots.tocPopover` instead.
48
49
  */
49
- style?: 'normal' | 'clerk';
50
+ component?: ReactNode;
51
+ }
52
+ interface DocsPageSlots {
53
+ toc: {
54
+ provider: FC<TOCProviderProps>;
55
+ main: FC<TOCProps>;
56
+ popover: FC<TOCPopoverProps>;
57
+ };
58
+ container: FC<ComponentProps<'article'>>;
59
+ footer: FC<FooterProps>;
60
+ breadcrumb: FC<BreadcrumbProps>;
61
+ }
62
+ type PageSlotsProps = Pick<DocsPageProps, 'full'>;
63
+ declare function useDocsPage(): {
64
+ props: PageSlotsProps;
65
+ slots: DocsPageSlots;
50
66
  };
51
- type TableOfContentPopoverOptions = Omit<TableOfContentOptions, 'single'>;
52
67
  declare function DocsPage({
53
- breadcrumb: {
54
- enabled: breadcrumbEnabled,
55
- component: breadcrumb,
56
- ...breadcrumbProps
68
+ tableOfContent: {
69
+ enabled: tocEnabled,
70
+ single,
71
+ ...tocProps
57
72
  },
58
- footer,
59
- full,
60
73
  tableOfContentPopover: {
61
74
  enabled: tocPopoverEnabled,
62
- component: tocPopover,
63
- ...tocPopoverOptions
75
+ ...tocPopoverProps
64
76
  },
65
- tableOfContent: {
66
- enabled: tocEnabled,
67
- component: tocReplace,
68
- ...tocOptions
77
+ breadcrumb: {
78
+ enabled: breadcrumbEnabled,
79
+ ...breadcrumb
80
+ },
81
+ footer: {
82
+ enabled: footerEnabled,
83
+ ...footer
69
84
  },
85
+ full,
70
86
  toc,
71
- children
72
- }: DocsPageProps): ReactNode;
73
- declare function EditOnGitHub(props: ComponentProps<'a'>): react_jsx_runtime44.JSX.Element;
87
+ slots: defaultSlots,
88
+ children,
89
+ ...containerProps
90
+ }: DocsPageProps): react_jsx_runtime0.JSX.Element;
91
+ declare function EditOnGitHub(props: ComponentProps<'a'>): react_jsx_runtime0.JSX.Element;
74
92
  /**
75
93
  * Add typography styles
76
94
  */
@@ -78,17 +96,22 @@ declare function DocsBody({
78
96
  children,
79
97
  className,
80
98
  ...props
81
- }: ComponentProps<'div'>): react_jsx_runtime44.JSX.Element;
99
+ }: ComponentProps<'div'>): react_jsx_runtime0.JSX.Element;
82
100
  declare function DocsDescription({
83
101
  children,
84
102
  className,
85
103
  ...props
86
- }: ComponentProps<'p'>): react_jsx_runtime44.JSX.Element | null;
104
+ }: ComponentProps<'p'>): react_jsx_runtime0.JSX.Element | null;
87
105
  declare function DocsTitle({
88
106
  children,
89
107
  className,
90
108
  ...props
91
- }: ComponentProps<'h1'>): react_jsx_runtime44.JSX.Element;
109
+ }: ComponentProps<'h1'>): react_jsx_runtime0.JSX.Element;
110
+ declare function PageLastUpdate({
111
+ date: value,
112
+ ...props
113
+ }: Omit<ComponentProps<'p'>, 'children'> & {
114
+ date: Date;
115
+ }): react_jsx_runtime0.JSX.Element;
92
116
  //#endregion
93
- export { DocsBody, DocsDescription, DocsPage, DocsPageProps, DocsTitle, EditOnGitHub, PageBreadcrumb, PageLastUpdate };
94
- //# sourceMappingURL=index.d.ts.map
117
+ export { type BreadcrumbProps, DocsBody, DocsDescription, DocsPage, DocsPageProps, DocsTitle, EditOnGitHub, type FooterProps, MarkdownCopyButton, Breadcrumb as PageBreadcrumb, Footer as PageFooter, PageLastUpdate, ViewOptionsPopover, useDocsPage };