@hanzo/docs-base-ui 16.5.3 → 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 (371) hide show
  1. package/css/generated/docs.css +68 -33
  2. package/css/generated/flux.css +44 -34
  3. package/css/generated/home.css +88 -4
  4. package/css/generated/notebook.css +65 -31
  5. package/css/generated/shared.css +199 -59
  6. package/css/lib/base.css +1 -4
  7. package/css/lib/shiki.css +49 -41
  8. package/css/preset.css +3 -0
  9. package/dist/_virtual/_rolldown/runtime.js +6 -11
  10. package/dist/components/accordion.d.ts +1 -2
  11. package/dist/components/accordion.js +3 -7
  12. package/dist/components/banner.d.ts +1 -2
  13. package/dist/components/banner.js +1 -5
  14. package/dist/components/callout.d.ts +1 -2
  15. package/dist/components/callout.js +0 -3
  16. package/dist/components/card.d.ts +1 -2
  17. package/dist/components/card.js +0 -3
  18. package/dist/components/codeblock.d.ts +1 -2
  19. package/dist/components/codeblock.js +2 -6
  20. package/dist/components/codeblock.rsc.d.ts +21 -0
  21. package/dist/components/codeblock.rsc.js +22 -0
  22. package/dist/components/dialog/search-algolia.d.ts +1 -3
  23. package/dist/components/dialog/search-algolia.js +1 -5
  24. package/dist/components/dialog/search-default.d.ts +1 -3
  25. package/dist/components/dialog/search-default.js +1 -5
  26. package/dist/components/dialog/search-orama.d.ts +1 -3
  27. package/dist/components/dialog/search-orama.js +1 -5
  28. package/dist/components/dialog/search.d.ts +5 -5
  29. package/dist/components/dialog/search.js +124 -47
  30. package/dist/components/dynamic-codeblock.core.d.ts +7 -5
  31. package/dist/components/dynamic-codeblock.core.js +17 -32
  32. package/dist/components/dynamic-codeblock.d.ts +5 -3
  33. package/dist/components/dynamic-codeblock.js +8 -13
  34. package/dist/components/files.d.ts +1 -2
  35. package/dist/components/files.js +4 -8
  36. package/dist/components/github-info.d.ts +22 -9
  37. package/dist/components/github-info.js +33 -28
  38. package/dist/components/heading.d.ts +1 -2
  39. package/dist/components/heading.js +2 -5
  40. package/dist/components/image-zoom.d.ts +1 -2
  41. package/dist/components/image-zoom.js +2 -5
  42. package/dist/components/inline-toc.d.ts +1 -2
  43. package/dist/components/inline-toc.js +1 -5
  44. package/dist/components/sidebar/base.d.ts +7 -3
  45. package/dist/components/sidebar/base.js +6 -16
  46. package/dist/components/sidebar/link-item.d.ts +2 -3
  47. package/dist/components/sidebar/link-item.js +6 -3
  48. package/dist/components/sidebar/page-tree.d.ts +1 -2
  49. package/dist/components/sidebar/page-tree.js +54 -43
  50. package/dist/components/sidebar/tabs/dropdown.d.ts +4 -7
  51. package/dist/components/sidebar/tabs/dropdown.js +4 -11
  52. package/dist/components/sidebar/tabs/index.d.ts +3 -17
  53. package/dist/components/sidebar/tabs/index.js +0 -3
  54. package/dist/components/steps.d.ts +1 -2
  55. package/dist/components/steps.js +0 -3
  56. package/dist/components/tabs.d.ts +11 -7
  57. package/dist/components/tabs.js +13 -18
  58. package/dist/components/toc/clerk.d.ts +9 -2
  59. package/dist/components/toc/clerk.js +117 -62
  60. package/dist/components/toc/default.d.ts +9 -2
  61. package/dist/components/toc/default.js +28 -21
  62. package/dist/components/toc/index.d.ts +8 -5
  63. package/dist/components/toc/index.js +50 -25
  64. package/dist/components/type-table.d.ts +10 -5
  65. package/dist/components/type-table.js +22 -17
  66. package/dist/components/ui/accordion.d.ts +1 -2
  67. package/dist/components/ui/accordion.js +1 -5
  68. package/dist/components/ui/button.d.ts +2 -3
  69. package/dist/components/ui/button.js +0 -3
  70. package/dist/components/ui/collapsible.d.ts +1 -2
  71. package/dist/components/ui/collapsible.js +2 -6
  72. package/dist/components/ui/navigation-menu.d.ts +26 -12
  73. package/dist/components/ui/navigation-menu.js +52 -30
  74. package/dist/components/ui/popover.d.ts +10 -5
  75. package/dist/components/ui/popover.js +14 -18
  76. package/dist/components/ui/scroll-area.d.ts +17 -7
  77. package/dist/components/ui/scroll-area.js +26 -30
  78. package/dist/components/ui/tabs.d.ts +1 -2
  79. package/dist/components/ui/tabs.js +1 -5
  80. package/dist/contexts/i18n.d.ts +7 -5
  81. package/dist/contexts/i18n.js +3 -8
  82. package/dist/contexts/search.d.ts +2 -2
  83. package/dist/contexts/search.js +4 -6
  84. package/dist/contexts/tree.d.ts +1 -2
  85. package/dist/contexts/tree.js +1 -5
  86. package/dist/i18n.d.ts +16 -9
  87. package/dist/i18n.js +14 -14
  88. package/dist/layouts/docs/client.d.ts +30 -29
  89. package/dist/layouts/docs/client.js +72 -48
  90. package/dist/layouts/docs/index.d.ts +19 -33
  91. package/dist/layouts/docs/index.js +16 -172
  92. package/dist/layouts/docs/page/index.d.ts +67 -55
  93. package/dist/layouts/docs/page/index.js +74 -54
  94. package/dist/layouts/docs/page/slots/breadcrumb.d.ts +14 -0
  95. package/dist/layouts/docs/page/slots/breadcrumb.js +44 -0
  96. package/dist/layouts/docs/page/slots/container.d.ts +7 -0
  97. package/dist/layouts/docs/page/slots/container.js +17 -0
  98. package/dist/layouts/docs/page/slots/footer.d.ts +23 -0
  99. package/dist/layouts/docs/page/slots/footer.js +56 -0
  100. package/dist/layouts/docs/page/slots/toc.d.ts +55 -0
  101. package/dist/layouts/docs/page/slots/toc.js +166 -0
  102. package/dist/layouts/docs/slots/container.d.ts +7 -0
  103. package/dist/layouts/docs/slots/container.js +29 -0
  104. package/dist/layouts/docs/slots/header.d.ts +8 -0
  105. package/dist/layouts/docs/slots/header.js +38 -0
  106. package/dist/layouts/docs/slots/sidebar.d.ts +30 -0
  107. package/dist/layouts/docs/slots/sidebar.js +319 -0
  108. package/dist/layouts/flux/index.d.ts +34 -39
  109. package/dist/layouts/flux/index.js +77 -99
  110. package/dist/layouts/flux/page/index.d.ts +56 -49
  111. package/dist/layouts/flux/page/index.js +63 -35
  112. package/dist/layouts/flux/page/slots/breadcrumb.d.ts +14 -0
  113. package/dist/layouts/flux/page/slots/breadcrumb.js +44 -0
  114. package/dist/layouts/flux/page/slots/container.d.ts +7 -0
  115. package/dist/layouts/flux/page/slots/container.js +17 -0
  116. package/dist/layouts/flux/page/slots/footer.d.ts +23 -0
  117. package/dist/layouts/flux/page/slots/footer.js +56 -0
  118. package/dist/layouts/flux/page/slots/toc.d.ts +34 -0
  119. package/dist/layouts/flux/page/slots/toc.js +172 -0
  120. package/dist/layouts/flux/slots/container.d.ts +7 -0
  121. package/dist/layouts/flux/slots/container.js +13 -0
  122. package/dist/layouts/flux/slots/sidebar.d.ts +23 -0
  123. package/dist/layouts/flux/{sidebar.js → slots/sidebar.js} +74 -34
  124. package/dist/layouts/flux/slots/tab-dropdown.d.ts +17 -0
  125. package/dist/layouts/flux/{tab-dropdown.js → slots/tab-dropdown.js} +13 -24
  126. package/dist/layouts/home/index.d.ts +24 -7
  127. package/dist/layouts/home/index.js +39 -19
  128. package/dist/layouts/home/navbar.d.ts +5 -14
  129. package/dist/layouts/home/navbar.js +10 -12
  130. package/dist/layouts/home/not-found.d.ts +9 -0
  131. package/dist/layouts/home/not-found.js +38 -0
  132. package/dist/layouts/home/slots/container.d.ts +7 -0
  133. package/dist/layouts/home/slots/container.js +13 -0
  134. package/dist/layouts/home/slots/header.d.ts +11 -0
  135. package/dist/layouts/home/slots/header.js +242 -0
  136. package/dist/layouts/notebook/client.d.ts +32 -44
  137. package/dist/layouts/notebook/client.js +57 -147
  138. package/dist/layouts/notebook/index.d.ts +25 -24
  139. package/dist/layouts/notebook/index.js +16 -212
  140. package/dist/layouts/notebook/page/index.d.ts +67 -55
  141. package/dist/layouts/notebook/page/index.js +74 -54
  142. package/dist/layouts/notebook/page/slots/breadcrumb.d.ts +14 -0
  143. package/dist/layouts/notebook/page/slots/breadcrumb.js +44 -0
  144. package/dist/layouts/notebook/page/slots/container.d.ts +7 -0
  145. package/dist/layouts/notebook/page/slots/container.js +17 -0
  146. package/dist/layouts/notebook/page/slots/footer.d.ts +23 -0
  147. package/dist/layouts/notebook/page/slots/footer.js +56 -0
  148. package/dist/layouts/notebook/page/slots/toc.d.ts +55 -0
  149. package/dist/layouts/notebook/page/slots/toc.js +165 -0
  150. package/dist/layouts/notebook/slots/container.d.ts +7 -0
  151. package/dist/layouts/notebook/slots/container.js +31 -0
  152. package/dist/layouts/notebook/slots/header.d.ts +8 -0
  153. package/dist/layouts/notebook/slots/header.js +194 -0
  154. package/dist/layouts/notebook/slots/sidebar.d.ts +40 -0
  155. package/dist/layouts/notebook/slots/sidebar.js +297 -0
  156. package/dist/layouts/shared/client.d.ts +45 -0
  157. package/dist/layouts/shared/client.js +84 -0
  158. package/dist/layouts/shared/index.d.ts +136 -34
  159. package/dist/layouts/shared/index.js +49 -17
  160. package/dist/layouts/shared/page-actions.d.ts +36 -0
  161. package/dist/layouts/shared/page-actions.js +190 -0
  162. package/dist/layouts/shared/slots/language-select.d.ts +10 -0
  163. package/dist/layouts/shared/{language-toggle.js → slots/language-select.js} +11 -15
  164. package/dist/layouts/shared/slots/search-trigger.d.ts +23 -0
  165. package/dist/layouts/shared/{search-toggle.js → slots/search-trigger.js} +9 -13
  166. package/dist/layouts/shared/slots/theme-switch.d.ts +14 -0
  167. package/dist/layouts/shared/{theme-toggle.js → slots/theme-switch.js} +5 -9
  168. package/dist/mdx.d.ts +13 -3
  169. package/dist/mdx.js +0 -4
  170. package/dist/mdx.server.d.ts +1 -2
  171. package/dist/mdx.server.js +0 -3
  172. package/dist/og/takumi.d.ts +21 -0
  173. package/dist/og/takumi.js +70 -0
  174. package/dist/og.d.ts +1 -2
  175. package/dist/og.js +6 -6
  176. package/dist/page.d.ts +3 -4
  177. package/dist/page.js +6 -11
  178. package/dist/provider/base.d.ts +1 -2
  179. package/dist/provider/base.js +2 -6
  180. package/dist/provider/next.d.ts +1 -2
  181. package/dist/provider/next.js +1 -5
  182. package/dist/provider/react-router.d.ts +1 -2
  183. package/dist/provider/react-router.js +1 -5
  184. package/dist/provider/tanstack.d.ts +1 -2
  185. package/dist/provider/tanstack.js +1 -5
  186. package/dist/provider/waku.d.ts +1 -2
  187. package/dist/provider/waku.js +1 -5
  188. package/dist/style.css +433 -166
  189. package/dist/tailwind/typography.d.ts +2 -0
  190. package/dist/tailwind/typography.js +2 -0
  191. package/dist/utils/cn.js +1 -2
  192. package/dist/utils/merge-refs.js +0 -2
  193. package/dist/utils/urls.js +1 -3
  194. package/dist/utils/use-copy-button.d.ts +1 -2
  195. package/dist/utils/use-copy-button.js +1 -5
  196. package/dist/utils/use-footer-items.d.ts +1 -2
  197. package/dist/utils/use-footer-items.js +4 -8
  198. package/dist/utils/use-is-scroll-top.d.ts +1 -2
  199. package/dist/utils/use-is-scroll-top.js +1 -5
  200. package/package.json +139 -103
  201. package/LICENSE +0 -21
  202. package/dist/components/accordion.d.ts.map +0 -1
  203. package/dist/components/accordion.js.map +0 -1
  204. package/dist/components/banner.d.ts.map +0 -1
  205. package/dist/components/banner.js.map +0 -1
  206. package/dist/components/callout.d.ts.map +0 -1
  207. package/dist/components/callout.js.map +0 -1
  208. package/dist/components/card.d.ts.map +0 -1
  209. package/dist/components/card.js.map +0 -1
  210. package/dist/components/codeblock.d.ts.map +0 -1
  211. package/dist/components/codeblock.js.map +0 -1
  212. package/dist/components/dialog/search-algolia.d.ts.map +0 -1
  213. package/dist/components/dialog/search-algolia.js.map +0 -1
  214. package/dist/components/dialog/search-default.d.ts.map +0 -1
  215. package/dist/components/dialog/search-default.js.map +0 -1
  216. package/dist/components/dialog/search-orama.d.ts.map +0 -1
  217. package/dist/components/dialog/search-orama.js.map +0 -1
  218. package/dist/components/dialog/search.d.ts.map +0 -1
  219. package/dist/components/dialog/search.js.map +0 -1
  220. package/dist/components/dynamic-codeblock.core.d.ts.map +0 -1
  221. package/dist/components/dynamic-codeblock.core.js.map +0 -1
  222. package/dist/components/dynamic-codeblock.d.ts.map +0 -1
  223. package/dist/components/dynamic-codeblock.js.map +0 -1
  224. package/dist/components/files.d.ts.map +0 -1
  225. package/dist/components/files.js.map +0 -1
  226. package/dist/components/github-info.d.ts.map +0 -1
  227. package/dist/components/github-info.js.map +0 -1
  228. package/dist/components/heading.d.ts.map +0 -1
  229. package/dist/components/heading.js.map +0 -1
  230. package/dist/components/image-zoom-DGvp66QF.css +0 -80
  231. package/dist/components/image-zoom-DGvp66QF.css.map +0 -1
  232. package/dist/components/image-zoom.d.ts.map +0 -1
  233. package/dist/components/image-zoom.js.map +0 -1
  234. package/dist/components/image-zoom2.js +0 -1
  235. package/dist/components/inline-toc.d.ts.map +0 -1
  236. package/dist/components/inline-toc.js.map +0 -1
  237. package/dist/components/sidebar/base.d.ts.map +0 -1
  238. package/dist/components/sidebar/base.js.map +0 -1
  239. package/dist/components/sidebar/link-item.d.ts.map +0 -1
  240. package/dist/components/sidebar/link-item.js.map +0 -1
  241. package/dist/components/sidebar/page-tree.d.ts.map +0 -1
  242. package/dist/components/sidebar/page-tree.js.map +0 -1
  243. package/dist/components/sidebar/tabs/dropdown.d.ts.map +0 -1
  244. package/dist/components/sidebar/tabs/dropdown.js.map +0 -1
  245. package/dist/components/sidebar/tabs/index.d.ts.map +0 -1
  246. package/dist/components/sidebar/tabs/index.js.map +0 -1
  247. package/dist/components/steps.d.ts.map +0 -1
  248. package/dist/components/steps.js.map +0 -1
  249. package/dist/components/tabs.d.ts.map +0 -1
  250. package/dist/components/tabs.js.map +0 -1
  251. package/dist/components/toc/clerk.d.ts.map +0 -1
  252. package/dist/components/toc/clerk.js.map +0 -1
  253. package/dist/components/toc/default.d.ts.map +0 -1
  254. package/dist/components/toc/default.js.map +0 -1
  255. package/dist/components/toc/index.d.ts.map +0 -1
  256. package/dist/components/toc/index.js.map +0 -1
  257. package/dist/components/type-table.d.ts.map +0 -1
  258. package/dist/components/type-table.js.map +0 -1
  259. package/dist/components/ui/accordion.d.ts.map +0 -1
  260. package/dist/components/ui/accordion.js.map +0 -1
  261. package/dist/components/ui/button.d.ts.map +0 -1
  262. package/dist/components/ui/button.js.map +0 -1
  263. package/dist/components/ui/collapsible.d.ts.map +0 -1
  264. package/dist/components/ui/collapsible.js.map +0 -1
  265. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  266. package/dist/components/ui/navigation-menu.js.map +0 -1
  267. package/dist/components/ui/popover.d.ts.map +0 -1
  268. package/dist/components/ui/popover.js.map +0 -1
  269. package/dist/components/ui/scroll-area.d.ts.map +0 -1
  270. package/dist/components/ui/scroll-area.js.map +0 -1
  271. package/dist/components/ui/tabs.d.ts.map +0 -1
  272. package/dist/components/ui/tabs.js.map +0 -1
  273. package/dist/contexts/i18n.d.ts.map +0 -1
  274. package/dist/contexts/i18n.js.map +0 -1
  275. package/dist/contexts/search.d.ts.map +0 -1
  276. package/dist/contexts/search.js.map +0 -1
  277. package/dist/contexts/tree.d.ts.map +0 -1
  278. package/dist/contexts/tree.js.map +0 -1
  279. package/dist/i18n.d.ts.map +0 -1
  280. package/dist/i18n.js.map +0 -1
  281. package/dist/layouts/docs/client.d.ts.map +0 -1
  282. package/dist/layouts/docs/client.js.map +0 -1
  283. package/dist/layouts/docs/index.d.ts.map +0 -1
  284. package/dist/layouts/docs/index.js.map +0 -1
  285. package/dist/layouts/docs/page/client.d.ts +0 -48
  286. package/dist/layouts/docs/page/client.d.ts.map +0 -1
  287. package/dist/layouts/docs/page/client.js +0 -227
  288. package/dist/layouts/docs/page/client.js.map +0 -1
  289. package/dist/layouts/docs/page/index.d.ts.map +0 -1
  290. package/dist/layouts/docs/page/index.js.map +0 -1
  291. package/dist/layouts/docs/sidebar.d.ts +0 -64
  292. package/dist/layouts/docs/sidebar.d.ts.map +0 -1
  293. package/dist/layouts/docs/sidebar.js +0 -162
  294. package/dist/layouts/docs/sidebar.js.map +0 -1
  295. package/dist/layouts/flux/index.d.ts.map +0 -1
  296. package/dist/layouts/flux/index.js.map +0 -1
  297. package/dist/layouts/flux/page/client.d.ts +0 -45
  298. package/dist/layouts/flux/page/client.d.ts.map +0 -1
  299. package/dist/layouts/flux/page/client.js +0 -255
  300. package/dist/layouts/flux/page/client.js.map +0 -1
  301. package/dist/layouts/flux/page/index.d.ts.map +0 -1
  302. package/dist/layouts/flux/page/index.js.map +0 -1
  303. package/dist/layouts/flux/sidebar.d.ts +0 -59
  304. package/dist/layouts/flux/sidebar.d.ts.map +0 -1
  305. package/dist/layouts/flux/sidebar.js.map +0 -1
  306. package/dist/layouts/flux/tab-dropdown.d.ts +0 -21
  307. package/dist/layouts/flux/tab-dropdown.d.ts.map +0 -1
  308. package/dist/layouts/flux/tab-dropdown.js.map +0 -1
  309. package/dist/layouts/home/client.d.ts +0 -19
  310. package/dist/layouts/home/client.d.ts.map +0 -1
  311. package/dist/layouts/home/client.js +0 -267
  312. package/dist/layouts/home/client.js.map +0 -1
  313. package/dist/layouts/home/index.d.ts.map +0 -1
  314. package/dist/layouts/home/index.js.map +0 -1
  315. package/dist/layouts/home/navbar.d.ts.map +0 -1
  316. package/dist/layouts/home/navbar.js.map +0 -1
  317. package/dist/layouts/notebook/client.d.ts.map +0 -1
  318. package/dist/layouts/notebook/client.js.map +0 -1
  319. package/dist/layouts/notebook/index.d.ts.map +0 -1
  320. package/dist/layouts/notebook/index.js.map +0 -1
  321. package/dist/layouts/notebook/page/client.d.ts +0 -48
  322. package/dist/layouts/notebook/page/client.d.ts.map +0 -1
  323. package/dist/layouts/notebook/page/client.js +0 -227
  324. package/dist/layouts/notebook/page/client.js.map +0 -1
  325. package/dist/layouts/notebook/page/index.d.ts.map +0 -1
  326. package/dist/layouts/notebook/page/index.js.map +0 -1
  327. package/dist/layouts/notebook/sidebar.d.ts +0 -60
  328. package/dist/layouts/notebook/sidebar.d.ts.map +0 -1
  329. package/dist/layouts/notebook/sidebar.js +0 -133
  330. package/dist/layouts/notebook/sidebar.js.map +0 -1
  331. package/dist/layouts/shared/index.d.ts.map +0 -1
  332. package/dist/layouts/shared/index.js.map +0 -1
  333. package/dist/layouts/shared/language-toggle.d.ts +0 -10
  334. package/dist/layouts/shared/language-toggle.d.ts.map +0 -1
  335. package/dist/layouts/shared/language-toggle.js.map +0 -1
  336. package/dist/layouts/shared/search-toggle.d.ts +0 -23
  337. package/dist/layouts/shared/search-toggle.d.ts.map +0 -1
  338. package/dist/layouts/shared/search-toggle.js.map +0 -1
  339. package/dist/layouts/shared/theme-toggle.d.ts +0 -14
  340. package/dist/layouts/shared/theme-toggle.d.ts.map +0 -1
  341. package/dist/layouts/shared/theme-toggle.js.map +0 -1
  342. package/dist/mdx.d.ts.map +0 -1
  343. package/dist/mdx.js.map +0 -1
  344. package/dist/mdx.server.d.ts.map +0 -1
  345. package/dist/mdx.server.js.map +0 -1
  346. package/dist/og.d.ts.map +0 -1
  347. package/dist/og.js.map +0 -1
  348. package/dist/page.d.ts.map +0 -1
  349. package/dist/page.js.map +0 -1
  350. package/dist/provider/base.d.ts.map +0 -1
  351. package/dist/provider/base.js.map +0 -1
  352. package/dist/provider/next.d.ts.map +0 -1
  353. package/dist/provider/next.js.map +0 -1
  354. package/dist/provider/react-router.d.ts.map +0 -1
  355. package/dist/provider/react-router.js.map +0 -1
  356. package/dist/provider/tanstack.d.ts.map +0 -1
  357. package/dist/provider/tanstack.js.map +0 -1
  358. package/dist/provider/waku.d.ts.map +0 -1
  359. package/dist/provider/waku.js.map +0 -1
  360. package/dist/utils/link-item.d.ts +0 -86
  361. package/dist/utils/link-item.d.ts.map +0 -1
  362. package/dist/utils/link-item.js +0 -25
  363. package/dist/utils/link-item.js.map +0 -1
  364. package/dist/utils/merge-refs.js.map +0 -1
  365. package/dist/utils/urls.js.map +0 -1
  366. package/dist/utils/use-copy-button.d.ts.map +0 -1
  367. package/dist/utils/use-copy-button.js.map +0 -1
  368. package/dist/utils/use-footer-items.d.ts.map +0 -1
  369. package/dist/utils/use-footer-items.js.map +0 -1
  370. package/dist/utils/use-is-scroll-top.d.ts.map +0 -1
  371. package/dist/utils/use-is-scroll-top.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import typography_default from "@hanzo/docs-tailwind/typography";
2
+ export { typography_default as default };
@@ -0,0 +1,2 @@
1
+ import typography_default from "@hanzo/docs-tailwind/typography";
2
+ export { typography_default as default };
package/dist/utils/cn.js CHANGED
@@ -1,3 +1,2 @@
1
1
  import { twMerge as cn } from "tailwind-merge";
2
-
3
- export { cn };
2
+ export { cn };
@@ -7,7 +7,5 @@ function mergeRefs(...refs) {
7
7
  });
8
8
  };
9
9
  }
10
-
11
10
  //#endregion
12
11
  export { mergeRefs };
13
- //# sourceMappingURL=merge-refs.js.map
@@ -6,12 +6,10 @@ function normalize(urlOrPath) {
6
6
  /**
7
7
  * @returns if `href` is matching the given pathname
8
8
  */
9
- function isActive(href, pathname, nested = true) {
9
+ function isActive(href, pathname, nested = false) {
10
10
  href = normalize(href);
11
11
  pathname = normalize(pathname);
12
12
  return href === pathname || nested && pathname.startsWith(`${href}/`);
13
13
  }
14
-
15
14
  //#endregion
16
15
  export { isActive, normalize };
17
- //# sourceMappingURL=urls.js.map
@@ -3,5 +3,4 @@ import { MouseEventHandler } from "react";
3
3
  //#region src/utils/use-copy-button.d.ts
4
4
  declare function useCopyButton(onCopy: () => void | Promise<void>): [checked: boolean, onClick: MouseEventHandler];
5
5
  //#endregion
6
- export { useCopyButton };
7
- //# sourceMappingURL=use-copy-button.d.ts.map
6
+ export { useCopyButton };
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useCallback, useEffect, useRef, useState } from "react";
4
-
5
3
  //#region src/utils/use-copy-button.ts
6
4
  function useCopyButton(onCopy) {
7
5
  const [checked, setChecked] = useState(false);
@@ -24,7 +22,5 @@ function useCopyButton(onCopy) {
24
22
  }, []);
25
23
  return [checked, onClick];
26
24
  }
27
-
28
25
  //#endregion
29
26
  export { useCopyButton };
30
- //# sourceMappingURL=use-copy-button.js.map
@@ -6,5 +6,4 @@ import * as PageTree from "@hanzo/docs-core/page-tree";
6
6
  */
7
7
  declare function useFooterItems(): PageTree.Item[];
8
8
  //#endregion
9
- export { useFooterItems };
10
- //# sourceMappingURL=use-footer-items.d.ts.map
9
+ export { useFooterItems };
@@ -1,15 +1,13 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useTreeContext } from "../contexts/tree.js";
4
-
5
3
  //#region src/utils/use-footer-items.ts
6
- const footerCache = /* @__PURE__ */ new Map();
4
+ const footerCache = /* @__PURE__ */ new WeakMap();
7
5
  /**
8
6
  * @returns a list of page tree items (linear), that you can obtain footer items
9
7
  */
10
8
  function useFooterItems() {
11
9
  const { root } = useTreeContext();
12
- const cached = footerCache.get(root.$id);
10
+ const cached = footerCache.get(root);
13
11
  if (cached) return cached;
14
12
  const list = [];
15
13
  function onNode(node) {
@@ -19,10 +17,8 @@ function useFooterItems() {
19
17
  } else if (node.type === "page" && !node.external) list.push(node);
20
18
  }
21
19
  for (const child of root.children) onNode(child);
22
- footerCache.set(root.$id, list);
20
+ footerCache.set(root, list);
23
21
  return list;
24
22
  }
25
-
26
23
  //#endregion
27
24
  export { useFooterItems };
28
- //# sourceMappingURL=use-footer-items.js.map
@@ -5,5 +5,4 @@ declare function useIsScrollTop({
5
5
  enabled?: boolean;
6
6
  }): boolean | undefined;
7
7
  //#endregion
8
- export { useIsScrollTop };
9
- //# sourceMappingURL=use-is-scroll-top.d.ts.map
8
+ export { useIsScrollTop };
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useEffect, useState } from "react";
4
-
5
3
  //#region src/utils/use-is-scroll-top.ts
6
4
  function useIsScrollTop({ enabled = true }) {
7
5
  const [isTop, setIsTop] = useState();
@@ -18,7 +16,5 @@ function useIsScrollTop({ enabled = true }) {
18
16
  }, [enabled]);
19
17
  return isTop;
20
18
  }
21
-
22
19
  //#endregion
23
20
  export { useIsScrollTop };
24
- //# sourceMappingURL=use-is-scroll-top.js.map
package/package.json CHANGED
@@ -1,148 +1,184 @@
1
1
  {
2
2
  "name": "@hanzo/docs-base-ui",
3
- "version": "16.5.3",
4
- "description": "The Base UI version of Hanzo Docs UI",
3
+ "version": "16.7.5",
4
+ "description": "The Base UI version of Fumadocs UI",
5
5
  "keywords": [
6
6
  "Docs",
7
- "Hanzo Docs"
7
+ "Fumadocs"
8
8
  ],
9
- "homepage": "https://hanzoai.github.io/docs",
9
+ "homepage": "https://fumadocs.dev",
10
10
  "license": "MIT",
11
- "author": "Hanzo AI",
12
- "repository": "github:hanzoai/docs",
11
+ "author": "Fuma Nama",
12
+ "repository": "github:fuma-nama/fumadocs",
13
13
  "files": [
14
14
  "css/*",
15
15
  "dist/*"
16
16
  ],
17
17
  "type": "module",
18
18
  "exports": {
19
- "./style.css": "./dist/style.css",
20
- "./css/*": "./css/*",
21
- "./image-zoom.css": "./dist/image-zoom.css",
22
- "./components/*": {
23
- "types": "./dist/components/*.d.ts",
24
- "import": "./dist/components/*.js",
25
- "default": "./dist/components/*.js"
26
- },
27
- "./i18n": {
28
- "types": "./dist/i18n.d.ts",
29
- "import": "./dist/i18n.js"
30
- },
31
- "./layouts/home": {
32
- "types": "./dist/layouts/home/index.d.ts",
33
- "import": "./dist/layouts/home/index.js"
34
- },
35
- "./layouts/home/navbar": {
36
- "types": "./dist/layouts/home/navbar.d.ts",
37
- "import": "./dist/layouts/home/navbar.js"
38
- },
39
- "./layouts/docs": {
40
- "types": "./dist/layouts/docs/index.d.ts",
41
- "import": "./dist/layouts/docs/index.js"
42
- },
43
- "./layouts/docs/page": {
44
- "types": "./dist/layouts/docs/page/index.d.ts",
45
- "import": "./dist/layouts/docs/page/index.js"
46
- },
47
- "./layouts/flux": {
48
- "types": "./dist/layouts/flux/index.d.ts",
49
- "import": "./dist/layouts/flux/index.js"
50
- },
51
- "./layouts/flux/page": {
52
- "types": "./dist/layouts/flux/page/index.d.ts",
53
- "import": "./dist/layouts/flux/page/index.js"
54
- },
55
- "./layouts/notebook": {
56
- "types": "./dist/layouts/notebook/index.d.ts",
57
- "import": "./dist/layouts/notebook/index.js"
58
- },
59
- "./layouts/notebook/page": {
60
- "types": "./dist/layouts/notebook/page/index.d.ts",
61
- "import": "./dist/layouts/notebook/page/index.js"
62
- },
63
- "./layouts/shared": {
64
- "types": "./dist/layouts/shared/index.d.ts",
65
- "import": "./dist/layouts/shared/index.js"
66
- },
67
- "./page": {
68
- "types": "./dist/page.d.ts",
69
- "import": "./dist/page.js"
70
- },
71
- "./provider/*": {
72
- "types": "./dist/provider/*.d.ts",
73
- "import": "./dist/provider/*.js"
74
- },
75
- "./contexts/*": {
76
- "types": "./dist/contexts/*.d.ts",
77
- "import": "./dist/contexts/*.js"
78
- },
19
+ "./components/accordion": "./dist/components/accordion.js",
20
+ "./components/banner": "./dist/components/banner.js",
21
+ "./components/callout": "./dist/components/callout.js",
22
+ "./components/card": "./dist/components/card.js",
23
+ "./components/codeblock": "./dist/components/codeblock.js",
24
+ "./components/codeblock.rsc": "./dist/components/codeblock.rsc.js",
25
+ "./components/dialog/search": "./dist/components/dialog/search.js",
26
+ "./components/dialog/search-algolia": "./dist/components/dialog/search-algolia.js",
27
+ "./components/dialog/search-default": "./dist/components/dialog/search-default.js",
28
+ "./components/dialog/search-orama": "./dist/components/dialog/search-orama.js",
29
+ "./components/dynamic-codeblock": "./dist/components/dynamic-codeblock.js",
30
+ "./components/dynamic-codeblock.core": "./dist/components/dynamic-codeblock.core.js",
31
+ "./components/files": "./dist/components/files.js",
32
+ "./components/github-info": "./dist/components/github-info.js",
33
+ "./components/heading": "./dist/components/heading.js",
34
+ "./components/image-zoom": "./dist/components/image-zoom.js",
35
+ "./components/inline-toc": "./dist/components/inline-toc.js",
36
+ "./components/sidebar/base": "./dist/components/sidebar/base.js",
37
+ "./components/sidebar/link-item": "./dist/components/sidebar/link-item.js",
38
+ "./components/sidebar/page-tree": "./dist/components/sidebar/page-tree.js",
39
+ "./components/sidebar/tabs": "./dist/components/sidebar/tabs/index.js",
40
+ "./components/sidebar/tabs/dropdown": "./dist/components/sidebar/tabs/dropdown.js",
41
+ "./components/steps": "./dist/components/steps.js",
42
+ "./components/tabs": "./dist/components/tabs.js",
43
+ "./components/toc": "./dist/components/toc/index.js",
44
+ "./components/toc/clerk": "./dist/components/toc/clerk.js",
45
+ "./components/toc/default": "./dist/components/toc/default.js",
46
+ "./components/type-table": "./dist/components/type-table.js",
47
+ "./components/ui/accordion": "./dist/components/ui/accordion.js",
48
+ "./components/ui/button": "./dist/components/ui/button.js",
49
+ "./components/ui/collapsible": "./dist/components/ui/collapsible.js",
50
+ "./components/ui/navigation-menu": "./dist/components/ui/navigation-menu.js",
51
+ "./components/ui/popover": "./dist/components/ui/popover.js",
52
+ "./components/ui/scroll-area": "./dist/components/ui/scroll-area.js",
53
+ "./components/ui/tabs": "./dist/components/ui/tabs.js",
54
+ "./contexts/i18n": "./dist/contexts/i18n.js",
55
+ "./contexts/search": "./dist/contexts/search.js",
56
+ "./contexts/tree": "./dist/contexts/tree.js",
57
+ "./i18n": "./dist/i18n.js",
58
+ "./layouts/docs": "./dist/layouts/docs/index.js",
59
+ "./layouts/docs/page": "./dist/layouts/docs/page/index.js",
60
+ "./layouts/docs/page/slots/breadcrumb": "./dist/layouts/docs/page/slots/breadcrumb.js",
61
+ "./layouts/docs/page/slots/container": "./dist/layouts/docs/page/slots/container.js",
62
+ "./layouts/docs/page/slots/footer": "./dist/layouts/docs/page/slots/footer.js",
63
+ "./layouts/docs/page/slots/toc": "./dist/layouts/docs/page/slots/toc.js",
64
+ "./layouts/docs/slots/container": "./dist/layouts/docs/slots/container.js",
65
+ "./layouts/docs/slots/header": "./dist/layouts/docs/slots/header.js",
66
+ "./layouts/docs/slots/sidebar": "./dist/layouts/docs/slots/sidebar.js",
67
+ "./layouts/flux": "./dist/layouts/flux/index.js",
68
+ "./layouts/flux/page": "./dist/layouts/flux/page/index.js",
69
+ "./layouts/flux/page/slots/breadcrumb": "./dist/layouts/flux/page/slots/breadcrumb.js",
70
+ "./layouts/flux/page/slots/container": "./dist/layouts/flux/page/slots/container.js",
71
+ "./layouts/flux/page/slots/footer": "./dist/layouts/flux/page/slots/footer.js",
72
+ "./layouts/flux/page/slots/toc": "./dist/layouts/flux/page/slots/toc.js",
73
+ "./layouts/flux/slots/container": "./dist/layouts/flux/slots/container.js",
74
+ "./layouts/flux/slots/sidebar": "./dist/layouts/flux/slots/sidebar.js",
75
+ "./layouts/flux/slots/tab-dropdown": "./dist/layouts/flux/slots/tab-dropdown.js",
76
+ "./layouts/home": "./dist/layouts/home/index.js",
77
+ "./layouts/home/navbar": "./dist/layouts/home/navbar.js",
78
+ "./layouts/home/not-found": "./dist/layouts/home/not-found.js",
79
+ "./layouts/home/slots/container": "./dist/layouts/home/slots/container.js",
80
+ "./layouts/home/slots/header": "./dist/layouts/home/slots/header.js",
81
+ "./layouts/notebook": "./dist/layouts/notebook/index.js",
82
+ "./layouts/notebook/page": "./dist/layouts/notebook/page/index.js",
83
+ "./layouts/notebook/page/slots/breadcrumb": "./dist/layouts/notebook/page/slots/breadcrumb.js",
84
+ "./layouts/notebook/page/slots/container": "./dist/layouts/notebook/page/slots/container.js",
85
+ "./layouts/notebook/page/slots/footer": "./dist/layouts/notebook/page/slots/footer.js",
86
+ "./layouts/notebook/page/slots/toc": "./dist/layouts/notebook/page/slots/toc.js",
87
+ "./layouts/notebook/slots/container": "./dist/layouts/notebook/slots/container.js",
88
+ "./layouts/notebook/slots/header": "./dist/layouts/notebook/slots/header.js",
89
+ "./layouts/notebook/slots/sidebar": "./dist/layouts/notebook/slots/sidebar.js",
90
+ "./layouts/shared": "./dist/layouts/shared/index.js",
91
+ "./layouts/shared/slots/language-select": "./dist/layouts/shared/slots/language-select.js",
92
+ "./layouts/shared/slots/search-trigger": "./dist/layouts/shared/slots/search-trigger.js",
93
+ "./layouts/shared/slots/theme-switch": "./dist/layouts/shared/slots/theme-switch.js",
79
94
  "./mdx": {
80
95
  "types": "./dist/mdx.d.ts",
81
96
  "node": "./dist/mdx.server.js",
82
97
  "import": "./dist/mdx.js"
83
98
  },
84
- "./og": {
85
- "types": "./dist/og.d.ts",
86
- "import": "./dist/og.js"
87
- },
88
- "./utils/*": {
89
- "types": "./dist/utils/*.d.ts",
90
- "import": "./dist/utils/*.js"
91
- }
99
+ "./og": "./dist/og.js",
100
+ "./og/takumi": "./dist/og/takumi.js",
101
+ "./page": "./dist/page.js",
102
+ "./provider/base": "./dist/provider/base.js",
103
+ "./provider/next": "./dist/provider/next.js",
104
+ "./provider/react-router": "./dist/provider/react-router.js",
105
+ "./provider/tanstack": "./dist/provider/tanstack.js",
106
+ "./provider/waku": "./dist/provider/waku.js",
107
+ "./utils/use-copy-button": "./dist/utils/use-copy-button.js",
108
+ "./utils/use-footer-items": "./dist/utils/use-footer-items.js",
109
+ "./utils/use-is-scroll-top": "./dist/utils/use-is-scroll-top.js",
110
+ "./package.json": "./package.json",
111
+ "./style.css": "./dist/style.css",
112
+ "./css/*": "./css/*"
92
113
  },
93
114
  "publishConfig": {
94
115
  "access": "public"
95
116
  },
117
+ "scripts": {
118
+ "build": "pnpm build:layout && pnpm build:tailwind",
119
+ "build:layout": "tsdown --config-loader unrun",
120
+ "build:tailwind": "tailwindcss -i css/style.css -o ./dist/style.css && tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css",
121
+ "clean": "rimraf dist",
122
+ "dev": "concurrently \"tsdown --watch --clean false\" \"tailwindcss -i css/style.css -o ./dist/style.css -w\" \"tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css -w\"",
123
+ "lint": "eslint .",
124
+ "types:check": "tsc --noEmit"
125
+ },
96
126
  "dependencies": {
97
- "@base-ui/react": "^1.1.0",
127
+ "@base-ui/react": "^1.3.0",
128
+ "@hanzo/docs-tailwind": "workspace:*",
98
129
  "class-variance-authority": "^0.7.1",
99
- "lucide-react": "^0.563.0",
100
- "motion": "^12.33.0",
130
+ "lucide-react": "^1.0.1",
131
+ "motion": "^12.38.0",
101
132
  "next-themes": "^0.4.6",
102
- "react-medium-image-zoom": "^5.4.0",
133
+ "react-medium-image-zoom": "^5.4.1",
103
134
  "react-remove-scroll": "^2.7.2",
135
+ "rehype-raw": "^7.0.0",
104
136
  "scroll-into-view-if-needed": "^3.1.0",
105
- "tailwind-merge": "^3.4.0",
106
- "@hanzo/docs-tailwind": "0.0.2"
137
+ "tailwind-merge": "^3.5.0",
138
+ "unist-util-visit": "^5.1.0"
107
139
  },
108
140
  "devDependencies": {
109
- "@tailwindcss/cli": "^4.1.18",
110
- "@types/node": "^25.2.1",
111
- "@types/react": "^19.2.13",
141
+ "@hanzo/docs-cli": "workspace:*",
142
+ "@tailwindcss/cli": "^4.2.2",
143
+ "@tsdown/css": "^0.21.4",
144
+ "@types/hast": "^3.0.4",
145
+ "@types/mdx": "^2.0.13",
146
+ "@types/node": "^25.5.0",
147
+ "@types/react": "^19.2.14",
112
148
  "@types/react-dom": "^19.2.3",
113
- "tailwindcss": "^4.1.18",
114
- "tsdown": "^0.20.3",
115
- "@hanzo/docs-cli": "1.2.5",
116
- "eslint-config-custom": "0.0.0",
117
- "@hanzo/docs-core": "16.5.3",
118
- "tsconfig": "0.0.0"
149
+ "eslint-config-custom": "workspace:*",
150
+ "@hanzo/docs-core": "workspace:*",
151
+ "shiki": "^4.0.2",
152
+ "tailwindcss": "^4.2.2",
153
+ "tsconfig": "workspace:*",
154
+ "tsdown": "0.21.4",
155
+ "unified": "^11.0.5"
119
156
  },
120
157
  "peerDependencies": {
158
+ "@takumi-rs/image-response": "*",
159
+ "@types/mdx": "*",
121
160
  "@types/react": "*",
161
+ "@hanzo/docs-core": "workspace:*",
122
162
  "next": "16.x.x",
123
163
  "react": "^19.2.0",
124
164
  "react-dom": "^19.2.0",
125
- "tailwindcss": "^4.0.0",
126
- "@hanzo/docs-core": "16.5.3"
165
+ "shiki": "*"
127
166
  },
128
167
  "peerDependenciesMeta": {
168
+ "shiki": {
169
+ "optional": true
170
+ },
129
171
  "next": {
130
172
  "optional": true
131
173
  },
132
- "@types/react": {
174
+ "@takumi-rs/image-response": {
175
+ "optional": true
176
+ },
177
+ "@types/mdx": {
133
178
  "optional": true
134
179
  },
135
- "tailwindcss": {
180
+ "@types/react": {
136
181
  "optional": true
137
182
  }
138
- },
139
- "scripts": {
140
- "build": "pnpm build:layout && pnpm build:tailwind",
141
- "build:layout": "tsdown --config-loader unrun",
142
- "build:tailwind": "tailwindcss -i css/style.css -o ./dist/style.css && tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css",
143
- "clean": "rimraf dist",
144
- "dev": "concurrently \"tsdown --watch\" \"tailwindcss -i css/style.css -o ./dist/style.css -w\" \"tailwindcss -i src/components/image-zoom.css -o dist/components/image-zoom.css -w\"",
145
- "lint": "eslint .",
146
- "types:check": "tsc --noEmit"
147
183
  }
148
- }
184
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2023 Fuma
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.d.ts","names":[],"sources":["../../src/components/accordion.tsx"],"mappings":";;;;;iBAgBgB,UAAA,CAAA;EACd,GAAA;EACA,SAAA;EACA,YAAA;EAAA,GACG;AAAA,GACF,cAAA,QAAsB,WAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiCd,SAAA,CAAA;EACd,KAAA;EACA,EAAA;EACA,KAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,IAAA,CAAK,cAAA,QAAsB,aAAA;EAC5B,KAAA,WAAgB,SAAA;EAChB,KAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"accordion.js","names":["Root","LinkIcon"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Link as LinkIcon } from 'lucide-react';\nimport { ComponentProps, type ReactNode, useEffect, useRef, useState } from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { mergeRefs } from '@/utils/merge-refs';\nimport {\n Accordion as Root,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n} from '@/components/ui/accordion';\n\nexport function Accordions({\n ref,\n className,\n defaultValue,\n ...props\n}: ComponentProps<typeof Root>) {\n const rootRef = useRef<HTMLDivElement>(null);\n const composedRef = mergeRefs(ref, rootRef);\n const [value, setValue] = useState<string[]>(defaultValue ?? []);\n\n useEffect(() => {\n const id = window.location.hash.substring(1);\n const element = rootRef.current;\n if (!element || id.length === 0) return;\n\n const selected = document.getElementById(id);\n if (!selected || !element.contains(selected)) return;\n const value = selected.getAttribute('data-accordion-value');\n\n if (value) setValue((prev) => [value, ...prev]);\n }, []);\n\n return (\n <Root\n ref={composedRef}\n value={value}\n onValueChange={setValue}\n className={(s) =>\n cn(\n 'divide-y divide-fd-border overflow-hidden rounded-lg border bg-fd-card',\n typeof className === 'function' ? className(s) : className,\n )\n }\n {...props}\n />\n );\n}\n\nexport function Accordion({\n title,\n id,\n value = String(title),\n children,\n ...props\n}: Omit<ComponentProps<typeof AccordionItem>, 'value' | 'title'> & {\n title: string | ReactNode;\n value?: string;\n}) {\n return (\n <AccordionItem value={value} {...props}>\n <AccordionHeader id={id} data-accordion-value={value}>\n <AccordionTrigger>{title}</AccordionTrigger>\n {id ? <CopyButton id={id} /> : null}\n </AccordionHeader>\n <AccordionContent hiddenUntilFound>\n <div className=\"px-4 pb-2 text-[0.9375rem] prose-no-margin [&[hidden]:not([hidden='until-found'])]:hidden\">\n {children}\n </div>\n </AccordionContent>\n </AccordionItem>\n );\n}\n\nfunction CopyButton({ id }: { id: string }) {\n const [checked, onClick] = useCopyButton(() => {\n const url = new URL(window.location.href);\n url.hash = id;\n\n return navigator.clipboard.writeText(url.toString());\n });\n\n return (\n <button\n type=\"button\"\n aria-label=\"Copy Link\"\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'text-fd-muted-foreground me-2',\n }),\n )}\n onClick={onClick}\n >\n {checked ? <Check className=\"size-3.5\" /> : <LinkIcon className=\"size-3.5\" />}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAgB,WAAW,EACzB,KACA,WACA,cACA,GAAG,SAC2B;CAC9B,MAAM,UAAU,OAAuB,KAAK;CAC5C,MAAM,cAAc,UAAU,KAAK,QAAQ;CAC3C,MAAM,CAAC,OAAO,YAAY,SAAmB,gBAAgB,EAAE,CAAC;AAEhE,iBAAgB;EACd,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU,EAAE;EAC5C,MAAM,UAAU,QAAQ;AACxB,MAAI,CAAC,WAAW,GAAG,WAAW,EAAG;EAEjC,MAAM,WAAW,SAAS,eAAe,GAAG;AAC5C,MAAI,CAAC,YAAY,CAAC,QAAQ,SAAS,SAAS,CAAE;EAC9C,MAAM,QAAQ,SAAS,aAAa,uBAAuB;AAE3D,MAAI,MAAO,WAAU,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9C,EAAE,CAAC;AAEN,QACE,oBAACA;EACC,KAAK;EACE;EACP,eAAe;EACf,YAAY,MACV,GACE,0EACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;EAEH,GAAI;GACJ;;AAIN,SAAgB,UAAU,EACxB,OACA,IACA,QAAQ,OAAO,MAAM,EACrB,UACA,GAAG,SAIF;AACD,QACE,qBAAC;EAAqB;EAAO,GAAI;aAC/B,qBAAC;GAAoB;GAAI,wBAAsB;cAC7C,oBAAC,8BAAkB,QAAyB,EAC3C,KAAK,oBAAC,cAAe,KAAM,GAAG;IACf,EAClB,oBAAC;GAAiB;aAChB,oBAAC;IAAI,WAAU;IACZ;KACG;IACW;GACL;;AAIpB,SAAS,WAAW,EAAE,MAAsB;CAC1C,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,IAAI,IAAI,OAAO,SAAS,KAAK;AACzC,MAAI,OAAO;AAEX,SAAO,UAAU,UAAU,UAAU,IAAI,UAAU,CAAC;GACpD;AAEF,QACE,oBAAC;EACC,MAAK;EACL,cAAW;EACX,WAAW,GACT,eAAe;GACb,OAAO;GACP,WAAW;GACZ,CAAC,CACH;EACQ;YAER,UAAU,oBAAC,SAAM,WAAU,aAAa,GAAG,oBAACC,QAAS,WAAU,aAAa;GACtE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.d.ts","names":[],"sources":["../../src/components/banner.tsx"],"mappings":";;;;KAOK,aAAA;AAAA,iBAEW,MAAA,CAAA;EACd,EAAA;EACA,OAAA;EACA,YAAA;EACA,MAAA;EACA,aAAA;EAAA,GAMG;AAAA,GACF,cAAA,CAAe,cAAA;;AAnB+C;;EAuB/D,MAAA;EAlBgB;;AAElB;EAqBE,OAAA,GAAU,aAAA;;;;EAKV,aAAA;EAtBA;;;;;EA6BA,YAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"banner.js","names":[],"sources":["../../src/components/banner.tsx"],"sourcesContent":["'use client';\n\nimport { type HTMLAttributes, useEffect, useState } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '@/utils/cn';\nimport { buttonVariants } from '@/components/ui/button';\n\ntype BannerVariant = 'rainbow' | 'normal';\n\nexport function Banner({\n id,\n variant = 'normal',\n changeLayout = true,\n height = '3rem',\n rainbowColors = [\n 'rgba(0,149,255,0.56)',\n 'rgba(231,77,255,0.77)',\n 'rgba(255,0,0,0.73)',\n 'rgba(131,255,166,0.66)',\n ],\n ...props\n}: HTMLAttributes<HTMLDivElement> & {\n /**\n * @defaultValue 3rem\n */\n height?: string;\n\n /**\n * @defaultValue 'normal'\n */\n variant?: BannerVariant;\n\n /**\n * For rainbow variant only, customise the colors\n */\n rainbowColors?: string[];\n\n /**\n * Change Hanzo Docs layout styles\n *\n * @defaultValue true\n */\n changeLayout?: boolean;\n}) {\n const [open, setOpen] = useState(true);\n const globalKey = id ? `nd-banner-${id}` : null;\n\n useEffect(() => {\n if (globalKey) setOpen(localStorage.getItem(globalKey) !== 'true');\n }, [globalKey]);\n\n if (!open) return null;\n\n return (\n <div\n id={id}\n {...props}\n className={cn(\n 'sticky top-0 z-40 flex flex-row items-center justify-center px-4 text-center text-sm font-medium',\n variant === 'normal' && 'bg-fd-secondary',\n variant === 'rainbow' && 'bg-fd-background',\n !open && 'hidden',\n props.className,\n )}\n style={{\n height,\n }}\n >\n {changeLayout && open ? (\n <style>\n {globalKey\n ? `:root:not(.${globalKey}) { --fd-banner-height: ${height}; }`\n : `:root { --fd-banner-height: ${height}; }`}\n </style>\n ) : null}\n {globalKey ? <style>{`.${globalKey} #${id} { display: none; }`}</style> : null}\n {globalKey ? (\n <script\n dangerouslySetInnerHTML={{\n __html: `if (localStorage.getItem('${globalKey}') === 'true') document.documentElement.classList.add('${globalKey}');`,\n }}\n />\n ) : null}\n\n {variant === 'rainbow'\n ? flow({\n colors: rainbowColors,\n })\n : null}\n {props.children}\n {id ? (\n <button\n type=\"button\"\n aria-label=\"Close Banner\"\n onClick={() => {\n setOpen(false);\n if (globalKey) localStorage.setItem(globalKey, 'true');\n }}\n className={cn(\n buttonVariants({\n color: 'ghost',\n className: 'absolute end-2 top-1/2 -translate-y-1/2 text-fd-muted-foreground/50',\n size: 'icon-sm',\n }),\n )}\n >\n <X />\n </button>\n ) : null}\n </div>\n );\n}\n\nconst maskImage =\n 'linear-gradient(to bottom,white,transparent), radial-gradient(circle at top center, white, transparent)';\n\nfunction flow({ colors }: { colors: string[] }) {\n return (\n <>\n <div\n className=\"absolute inset-0 z-[-1]\"\n style={\n {\n maskImage,\n maskComposite: 'intersect',\n animation: 'fd-moving-banner 20s linear infinite',\n backgroundImage: `repeating-linear-gradient(70deg, ${[...colors, colors[0]].map((color, i) => `${color} ${(i * 50) / colors.length}%`).join(', ')})`,\n backgroundSize: '200% 100%',\n filter: 'saturate(2)',\n } as object\n }\n />\n <style>\n {`@keyframes fd-moving-banner {\n from { background-position: 0% 0; }\n to { background-position: 100% 0; }\n }`}\n </style>\n </>\n );\n}\n"],"mappings":";;;;;;;;;AASA,SAAgB,OAAO,EACrB,IACA,UAAU,UACV,eAAe,MACf,SAAS,QACT,gBAAgB;CACd;CACA;CACA;CACA;CACD,EACD,GAAG,SAuBF;CACD,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CACtC,MAAM,YAAY,KAAK,aAAa,OAAO;AAE3C,iBAAgB;AACd,MAAI,UAAW,SAAQ,aAAa,QAAQ,UAAU,KAAK,OAAO;IACjE,CAAC,UAAU,CAAC;AAEf,KAAI,CAAC,KAAM,QAAO;AAElB,QACE,qBAAC;EACK;EACJ,GAAI;EACJ,WAAW,GACT,oGACA,YAAY,YAAY,mBACxB,YAAY,aAAa,oBACzB,CAAC,QAAQ,UACT,MAAM,UACP;EACD,OAAO,EACL,QACD;;GAEA,gBAAgB,OACf,oBAAC,qBACE,YACG,cAAc,UAAU,0BAA0B,OAAO,OACzD,+BAA+B,OAAO,OACpC,GACN;GACH,YAAY,oBAAC,qBAAO,IAAI,UAAU,IAAI,GAAG,uBAA6B,GAAG;GACzE,YACC,oBAAC,YACC,yBAAyB,EACvB,QAAQ,6BAA6B,UAAU,yDAAyD,UAAU,MACnH,GACD,GACA;GAEH,YAAY,YACT,KAAK,EACH,QAAQ,eACT,CAAC,GACF;GACH,MAAM;GACN,KACC,oBAAC;IACC,MAAK;IACL,cAAW;IACX,eAAe;AACb,aAAQ,MAAM;AACd,SAAI,UAAW,cAAa,QAAQ,WAAW,OAAO;;IAExD,WAAW,GACT,eAAe;KACb,OAAO;KACP,WAAW;KACX,MAAM;KACP,CAAC,CACH;cAED,oBAAC,MAAI;KACE,GACP;;GACA;;AAIV,MAAM,YACJ;AAEF,SAAS,KAAK,EAAE,UAAgC;AAC9C,QACE,8CACE,oBAAC;EACC,WAAU;EACV,OACE;GACE;GACA,eAAe;GACf,WAAW;GACX,iBAAiB,oCAAoC,CAAC,GAAG,QAAQ,OAAO,GAAG,CAAC,KAAK,OAAO,MAAM,GAAG,MAAM,GAAI,IAAI,KAAM,OAAO,OAAO,GAAG,CAAC,KAAK,KAAK,CAAC;GAClJ,gBAAgB;GAChB,QAAQ;GACT;GAEH,EACF,oBAAC,qBACE;;;cAIK,IACP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"callout.d.ts","names":[],"sources":["../../src/components/callout.tsx"],"mappings":";;;;KAIY,WAAA;AAAA,iBAII,OAAA,CAAA;EACd,QAAA;EACA,KAAA;EAAA,GACG;AAAA;EACA,KAAA,GAAQ,SAAA;AAAA,IAAc,IAAA,CAAK,qBAAA,aAA+B,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,UAS9C,qBAAA,SAA8B,cAAA;;;;EAI7C,IAAA,GAAO,WAAA;EAjBc;;;EAsBrB,IAAA,GAAO,SAAA;AAAA;AAAA,iBASO,gBAAA,CAAA;EACd,IAAA,EAAM,SAAA;EACN,IAAA;EACA,QAAA;EACA,SAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,qBAAA,GAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiCR,YAAA,CAAA;EAAe,QAAA;EAAU,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAQnE,kBAAA,CAAA;EAAqB,QAAA;EAAU,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"callout.js","names":[],"sources":["../../src/components/callout.tsx"],"sourcesContent":["import { CircleCheck, CircleX, Info, Lightbulb, TriangleAlert } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type CalloutType = 'info' | 'warn' | 'error' | 'success' | 'warning' | 'idea';\n\nconst iconClass = 'size-5 -me-0.5 fill-(--callout-color) text-fd-card';\n\nexport function Callout({\n children,\n title,\n ...props\n}: { title?: ReactNode } & Omit<CalloutContainerProps, 'title'>) {\n return (\n <CalloutContainer {...props}>\n {title && <CalloutTitle>{title}</CalloutTitle>}\n <CalloutDescription>{children}</CalloutDescription>\n </CalloutContainer>\n );\n}\n\nexport interface CalloutContainerProps extends ComponentProps<'div'> {\n /**\n * @defaultValue info\n */\n type?: CalloutType;\n\n /**\n * Force an icon\n */\n icon?: ReactNode;\n}\n\nfunction resolveAlias(type: CalloutType) {\n if (type === 'warn') return 'warning';\n if ((type as unknown) === 'tip') return 'info';\n return type;\n}\n\nexport function CalloutContainer({\n type: inputType = 'info',\n icon,\n children,\n className,\n style,\n ...props\n}: CalloutContainerProps) {\n const type = resolveAlias(inputType);\n\n return (\n <div\n className={cn(\n 'flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md',\n className,\n )}\n style={\n {\n '--callout-color': `var(--color-fd-${type}, var(--color-fd-muted))`,\n ...style,\n } as object\n }\n {...props}\n >\n <div role=\"none\" className=\"w-0.5 bg-(--callout-color)/50 rounded-sm\" />\n {icon ??\n {\n info: <Info className={iconClass} />,\n warning: <TriangleAlert className={iconClass} />,\n error: <CircleX className={iconClass} />,\n success: <CircleCheck className={iconClass} />,\n idea: (\n <Lightbulb className=\"size-5 -me-0.5 fill-(--callout-color) text-(--callout-color)\" />\n ),\n }[type]}\n <div className=\"flex flex-col gap-2 min-w-0 flex-1\">{children}</div>\n </div>\n );\n}\n\nexport function CalloutTitle({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <p className={cn('font-medium my-0!', className)} {...props}>\n {children}\n </p>\n );\n}\n\nexport function CalloutDescription({ children, className, ...props }: ComponentProps<'p'>) {\n return (\n <div\n className={cn('text-fd-muted-foreground prose-no-margin empty:hidden', className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;AAMA,MAAM,YAAY;AAElB,SAAgB,QAAQ,EACtB,UACA,OACA,GAAG,SAC4D;AAC/D,QACE,qBAAC;EAAiB,GAAI;aACnB,SAAS,oBAAC,0BAAc,QAAqB,EAC9C,oBAAC,sBAAoB,WAA8B;GAClC;;AAgBvB,SAAS,aAAa,MAAmB;AACvC,KAAI,SAAS,OAAQ,QAAO;AAC5B,KAAK,SAAqB,MAAO,QAAO;AACxC,QAAO;;AAGT,SAAgB,iBAAiB,EAC/B,MAAM,YAAY,QAClB,MACA,UACA,WACA,OACA,GAAG,SACqB;CACxB,MAAM,OAAO,aAAa,UAAU;AAEpC,QACE,qBAAC;EACC,WAAW,GACT,mGACA,UACD;EACD,OACE;GACE,mBAAmB,kBAAkB,KAAK;GAC1C,GAAG;GACJ;EAEH,GAAI;;GAEJ,oBAAC;IAAI,MAAK;IAAO,WAAU;KAA6C;GACvE,QACC;IACE,MAAM,oBAAC,QAAK,WAAW,YAAa;IACpC,SAAS,oBAAC,iBAAc,WAAW,YAAa;IAChD,OAAO,oBAAC,WAAQ,WAAW,YAAa;IACxC,SAAS,oBAAC,eAAY,WAAW,YAAa;IAC9C,MACE,oBAAC,aAAU,WAAU,iEAAiE;IAEzF,CAAC;GACJ,oBAAC;IAAI,WAAU;IAAsC;KAAe;;GAChE;;AAIV,SAAgB,aAAa,EAAE,UAAU,WAAW,GAAG,SAA8B;AACnF,QACE,oBAAC;EAAE,WAAW,GAAG,qBAAqB,UAAU;EAAE,GAAI;EACnD;GACC;;AAIR,SAAgB,mBAAmB,EAAE,UAAU,WAAW,GAAG,SAA8B;AACzF,QACE,oBAAC;EACC,WAAW,GAAG,yDAAyD,UAAU;EACjF,GAAI;EAEH;GACG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.d.ts","names":[],"sources":["../../src/components/card.tsx"],"mappings":";;;;iBAIgB,KAAA,CAAM,KAAA,EAAO,cAAA,CAAe,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KAQ/C,SAAA,GAAY,IAAA,CAAK,cAAA,CAAe,WAAA;EAC1C,IAAA,GAAO,SAAA;EACP,KAAA,EAAO,SAAA;EACP,WAAA,GAAc,SAAA;EAEd,IAAA;EACA,QAAA;AAAA;AAAA,iBAGc,IAAA,CAAA;EAAO,IAAA;EAAM,KAAA;EAAO,WAAA;EAAA,GAAgB;AAAA,GAAS,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../src/components/card.tsx"],"sourcesContent":["import Link from '@hanzo/docs-core/link';\nimport type { HTMLAttributes, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport function Cards(props: HTMLAttributes<HTMLDivElement>) {\n return (\n <div {...props} className={cn('grid grid-cols-2 gap-3 @container', props.className)}>\n {props.children}\n </div>\n );\n}\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, 'title'> & {\n icon?: ReactNode;\n title: ReactNode;\n description?: ReactNode;\n\n href?: string;\n external?: boolean;\n};\n\nexport function Card({ icon, title, description, ...props }: CardProps) {\n const E = props.href ? Link : 'div';\n\n return (\n <E\n {...props}\n data-card\n className={cn(\n 'block rounded-xl border bg-fd-card p-4 text-fd-card-foreground transition-colors @max-lg:col-span-full',\n props.href && 'hover:bg-fd-accent/80',\n props.className,\n )}\n >\n {icon ? (\n <div className=\"not-prose mb-2 w-fit shadow-md rounded-lg border bg-fd-muted p-1.5 text-fd-muted-foreground [&_svg]:size-4\">\n {icon}\n </div>\n ) : null}\n <h3 className=\"not-prose mb-1 text-sm font-medium\">{title}</h3>\n {description ? <p className=\"my-0! text-sm text-fd-muted-foreground\">{description}</p> : null}\n <div className=\"text-sm text-fd-muted-foreground prose-no-margin empty:hidden\">\n {props.children}\n </div>\n </E>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,MAAM,OAAuC;AAC3D,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,qCAAqC,MAAM,UAAU;YAChF,MAAM;GACH;;AAaV,SAAgB,KAAK,EAAE,MAAM,OAAO,aAAa,GAAG,SAAoB;AAGtE,QACE,qBAHQ,MAAM,OAAO,OAAO;EAI1B,GAAI;EACJ;EACA,WAAW,GACT,0GACA,MAAM,QAAQ,yBACd,MAAM,UACP;;GAEA,OACC,oBAAC;IAAI,WAAU;cACZ;KACG,GACJ;GACJ,oBAAC;IAAG,WAAU;cAAsC;KAAW;GAC9D,cAAc,oBAAC;IAAE,WAAU;cAA0C;KAAgB,GAAG;GACzF,oBAAC;IAAI,WAAU;cACZ,MAAM;KACH;;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeblock.d.ts","names":[],"sources":["../../src/components/codeblock.tsx"],"mappings":";;;;;UAkBiB,cAAA,SAAuB,cAAA;;;AAAxC;;;EAME,IAAA,GAAO,SAAA;EAgBwB;;;;;EAT/B,SAAA;EAboD;;;;;EAoBpD,cAAA;EAEA,aAAA,GAAgB,cAAA,CAAe,WAAA;EAAf;;;EAKhB,mBAAA;EAOA;;;EAFA,yBAAA;EAEA,OAAA,IAAW,KAAA;IAAS,SAAA;IAAoB,QAAA,GAAW,SAAA;EAAA,MAAgB,SAAA;AAAA;AAAA,iBAQrD,GAAA,CAAI,KAAA,EAAO,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAQhC,SAAA,CAAA;EACd,GAAA;EACA,KAAA;EACA,SAAA;EACA,cAAA;EACA,IAAA;EACA,aAAA;EACA,QAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,cAAA,GAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBA4GD,aAAA,CAAA;EAAgB,GAAA;EAAK,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAsB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBA+BvE,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,cAAA,QAAsB,QAAA,IAAS,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgB1E,oBAAA,CAAA;EACd,QAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,cAAA,QAAsB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkBrB,YAAA,CAAa,KAAA,EAAO,cAAA,QAAsB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeblock.js","names":[],"sources":["../../src/components/codeblock.tsx"],"sourcesContent":["'use client';\nimport { Check, Clipboard } from 'lucide-react';\nimport {\n type ComponentProps,\n createContext,\n type HTMLAttributes,\n type ReactNode,\n type RefObject,\n use,\n useMemo,\n useRef,\n} from 'react';\nimport { cn } from '@/utils/cn';\nimport { useCopyButton } from '@/utils/use-copy-button';\nimport { buttonVariants } from '@/components/ui/button';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';\nimport { mergeRefs } from '@/utils/merge-refs';\n\nexport interface CodeBlockProps extends ComponentProps<'figure'> {\n /**\n * Icon of code block\n *\n * When passed as a string, it assumes the value is the HTML of icon\n */\n icon?: ReactNode;\n\n /**\n * Allow to copy code with copy button\n *\n * @defaultValue true\n */\n allowCopy?: boolean;\n\n /**\n * Keep original background color generated by Shiki or Rehype Code\n *\n * @defaultValue false\n */\n keepBackground?: boolean;\n\n viewportProps?: HTMLAttributes<HTMLElement>;\n\n /**\n * show line numbers\n */\n 'data-line-numbers'?: boolean;\n\n /**\n * @defaultValue 1\n */\n 'data-line-numbers-start'?: number;\n\n Actions?: (props: { className?: string; children?: ReactNode }) => ReactNode;\n}\n\nconst TabsContext = createContext<{\n containerRef: RefObject<HTMLDivElement | null>;\n nested: boolean;\n} | null>(null);\n\nexport function Pre(props: ComponentProps<'pre'>) {\n return (\n <pre {...props} className={cn('min-w-full w-max *:flex *:flex-col', props.className)}>\n {props.children}\n </pre>\n );\n}\n\nexport function CodeBlock({\n ref,\n title,\n allowCopy = true,\n keepBackground = false,\n icon,\n viewportProps = {},\n children,\n Actions = (props) => <div {...props} className={cn('empty:hidden', props.className)} />,\n ...props\n}: CodeBlockProps) {\n const inTab = use(TabsContext) !== null;\n const areaRef = useRef<HTMLDivElement>(null);\n\n return (\n <figure\n ref={ref}\n dir=\"ltr\"\n {...props}\n tabIndex={-1}\n className={cn(\n inTab ? 'bg-fd-secondary -mx-px -mb-px last:rounded-b-xl' : 'my-4 bg-fd-card rounded-xl',\n keepBackground && 'bg-(--shiki-light-bg) dark:bg-(--shiki-dark-bg)',\n\n 'shiki relative border shadow-sm not-prose overflow-hidden text-sm',\n props.className,\n )}\n >\n {title ? (\n <div className=\"flex text-fd-muted-foreground items-center gap-2 h-9.5 border-b px-4\">\n {typeof icon === 'string' ? (\n <div\n className=\"[&_svg]:size-3.5\"\n dangerouslySetInnerHTML={{\n __html: icon,\n }}\n />\n ) : (\n icon\n )}\n <figcaption className=\"flex-1 truncate\">{title}</figcaption>\n {Actions({\n className: '-me-2',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })}\n </div>\n ) : (\n Actions({\n className:\n 'absolute top-2 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground',\n children: allowCopy && <CopyButton containerRef={areaRef} />,\n })\n )}\n <div\n ref={areaRef}\n {...viewportProps}\n role=\"region\"\n tabIndex={0}\n className={cn(\n 'text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring',\n viewportProps.className,\n )}\n style={\n {\n // space for toolbar\n '--padding-right': !title ? 'calc(var(--spacing) * 8)' : undefined,\n counterSet: props['data-line-numbers']\n ? `line ${Number(props['data-line-numbers-start'] ?? 1) - 1}`\n : undefined,\n ...viewportProps.style,\n } as object\n }\n >\n {children}\n </div>\n </figure>\n );\n}\n\nfunction CopyButton({\n className,\n containerRef,\n ...props\n}: ComponentProps<'button'> & {\n containerRef: RefObject<HTMLElement | null>;\n}) {\n const [checked, onClick] = useCopyButton(() => {\n const pre = containerRef.current?.getElementsByTagName('pre').item(0);\n if (!pre) return;\n\n const clone = pre.cloneNode(true) as HTMLElement;\n clone.querySelectorAll('.nd-copy-ignore').forEach((node) => {\n node.replaceWith('\\n');\n });\n\n void navigator.clipboard.writeText(clone.textContent ?? '');\n });\n\n return (\n <button\n type=\"button\"\n data-checked={checked || undefined}\n className={cn(\n buttonVariants({\n className: 'hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground',\n size: 'icon-xs',\n }),\n className,\n )}\n aria-label={checked ? 'Copied Text' : 'Copy Text'}\n onClick={onClick}\n {...props}\n >\n {checked ? <Check /> : <Clipboard />}\n </button>\n );\n}\n\nexport function CodeBlockTabs({ ref, className, ...props }: ComponentProps<typeof Tabs>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const nested = use(TabsContext) !== null;\n\n return (\n <Tabs\n ref={mergeRefs(containerRef, ref)}\n {...props}\n className={(s) =>\n cn(\n 'bg-fd-card rounded-xl border',\n !nested && 'my-4',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <TabsContext\n value={useMemo(\n () => ({\n containerRef,\n nested,\n }),\n [nested],\n )}\n >\n {props.children}\n </TabsContext>\n </Tabs>\n );\n}\n\nexport function CodeBlockTabsList({ className, ...props }: ComponentProps<typeof TabsList>) {\n return (\n <TabsList\n {...props}\n className={(s) =>\n cn(\n 'flex flex-row px-2 overflow-x-auto text-fd-muted-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n {props.children}\n </TabsList>\n );\n}\n\nexport function CodeBlockTabsTrigger({\n children,\n className,\n ...props\n}: ComponentProps<typeof TabsTrigger>) {\n return (\n <TabsTrigger\n {...props}\n className={(s) =>\n cn(\n 'relative group inline-flex text-sm font-medium text-nowrap items-center transition-colors gap-2 px-2 py-1.5 [&_svg]:size-3.5',\n s.active ? 'text-fd-primary' : 'hover:text-fd-accent-foreground',\n typeof className === 'function' ? className(s) : className,\n )\n }\n >\n <div className=\"absolute inset-x-2 bottom-0 h-px group-data-[active]:bg-fd-primary\" />\n {children}\n </TabsTrigger>\n );\n}\n\nexport function CodeBlockTab(props: ComponentProps<typeof TabsContent>) {\n return <TabsContent {...props} />;\n}\n"],"mappings":";;;;;;;;;;;;AAuDA,MAAM,cAAc,cAGV,KAAK;AAEf,SAAgB,IAAI,OAA8B;AAChD,QACE,oBAAC;EAAI,GAAI;EAAO,WAAW,GAAG,sCAAsC,MAAM,UAAU;YACjF,MAAM;GACH;;AAIV,SAAgB,UAAU,EACxB,KACA,OACA,YAAY,MACZ,iBAAiB,OACjB,MACA,gBAAgB,EAAE,EAClB,UACA,WAAW,UAAU,oBAAC;CAAI,GAAI;CAAO,WAAW,GAAG,gBAAgB,MAAM,UAAU;EAAI,EACvF,GAAG,SACc;CACjB,MAAM,QAAQ,IAAI,YAAY,KAAK;CACnC,MAAM,UAAU,OAAuB,KAAK;AAE5C,QACE,qBAAC;EACM;EACL,KAAI;EACJ,GAAI;EACJ,UAAU;EACV,WAAW,GACT,QAAQ,oDAAoD,8BAC5D,kBAAkB,mDAElB,qEACA,MAAM,UACP;aAEA,QACC,qBAAC;GAAI,WAAU;;IACZ,OAAO,SAAS,WACf,oBAAC;KACC,WAAU;KACV,yBAAyB,EACvB,QAAQ,MACT;MACD,GAEF;IAEF,oBAAC;KAAW,WAAU;eAAmB;MAAmB;IAC3D,QAAQ;KACP,WAAW;KACX,UAAU,aAAa,oBAAC,cAAW,cAAc,UAAW;KAC7D,CAAC;;IACE,GAEN,QAAQ;GACN,WACE;GACF,UAAU,aAAa,oBAAC,cAAW,cAAc,UAAW;GAC7D,CAAC,EAEJ,oBAAC;GACC,KAAK;GACL,GAAI;GACJ,MAAK;GACL,UAAU;GACV,WAAW,GACT,+KACA,cAAc,UACf;GACD,OACE;IAEE,mBAAmB,CAAC,QAAQ,6BAA6B;IACzD,YAAY,MAAM,uBACd,QAAQ,OAAO,MAAM,8BAA8B,EAAE,GAAG,MACxD;IACJ,GAAG,cAAc;IAClB;GAGF;IACG;GACC;;AAIb,SAAS,WAAW,EAClB,WACA,cACA,GAAG,SAGF;CACD,MAAM,CAAC,SAAS,WAAW,oBAAoB;EAC7C,MAAM,MAAM,aAAa,SAAS,qBAAqB,MAAM,CAAC,KAAK,EAAE;AACrE,MAAI,CAAC,IAAK;EAEV,MAAM,QAAQ,IAAI,UAAU,KAAK;AACjC,QAAM,iBAAiB,kBAAkB,CAAC,SAAS,SAAS;AAC1D,QAAK,YAAY,KAAK;IACtB;AAEF,EAAK,UAAU,UAAU,UAAU,MAAM,eAAe,GAAG;GAC3D;AAEF,QACE,oBAAC;EACC,MAAK;EACL,gBAAc,WAAW;EACzB,WAAW,GACT,eAAe;GACb,WAAW;GACX,MAAM;GACP,CAAC,EACF,UACD;EACD,cAAY,UAAU,gBAAgB;EAC7B;EACT,GAAI;YAEH,UAAU,oBAAC,UAAQ,GAAG,oBAAC,cAAY;GAC7B;;AAIb,SAAgB,cAAc,EAAE,KAAK,WAAW,GAAG,SAAsC;CACvF,MAAM,eAAe,OAAuB,KAAK;CACjD,MAAM,SAAS,IAAI,YAAY,KAAK;AAEpC,QACE,oBAAC;EACC,KAAK,UAAU,cAAc,IAAI;EACjC,GAAI;EACJ,YAAY,MACV,GACE,gCACA,CAAC,UAAU,QACX,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;YAGH,oBAAC;GACC,OAAO,eACE;IACL;IACA;IACD,GACD,CAAC,OAAO,CACT;aAEA,MAAM;IACK;GACT;;AAIX,SAAgB,kBAAkB,EAAE,WAAW,GAAG,SAA0C;AAC1F,QACE,oBAAC;EACC,GAAI;EACJ,YAAY,MACV,GACE,+DACA,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;YAGF,MAAM;GACE;;AAIf,SAAgB,qBAAqB,EACnC,UACA,WACA,GAAG,SACkC;AACrC,QACE,qBAAC;EACC,GAAI;EACJ,YAAY,MACV,GACE,gIACA,EAAE,SAAS,oBAAoB,mCAC/B,OAAO,cAAc,aAAa,UAAU,EAAE,GAAG,UAClD;aAGH,oBAAC,SAAI,WAAU,uEAAuE,EACrF;GACW;;AAIlB,SAAgB,aAAa,OAA2C;AACtE,QAAO,oBAAC,eAAY,GAAI,QAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-algolia.d.ts","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"mappings":";;;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,aAAA,EAAe,cAAA;EACf,KAAA,GAAQ,UAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANQ;;;;;EAaf,WAAA;EAd2D;;;;;EAqB3D,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,aAAA;EACA,IAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-algolia.js","names":[],"sources":["../../../src/components/dialog/search-algolia.tsx"],"sourcesContent":["'use client';\n\nimport { type AlgoliaOptions, useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface AlgoliaSearchDialogProps extends SharedProps {\n searchOptions: AlgoliaOptions;\n links?: SearchLink[];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Algolia\" label, this is useful for free tier users\n *\n * @defaultValue false\n */\n showAlgolia?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function AlgoliaSearchDialog({\n searchOptions,\n tags = [],\n defaultTag,\n showAlgolia = false,\n allowClear = false,\n links = [],\n footer,\n ...props\n}: AlgoliaSearchDialogProps) {\n const [tag, setTag] = useState(defaultTag);\n const { locale } = useI18n();\n const { search, setSearch, query } = useDocsSearch({\n type: 'algolia',\n tag,\n locale,\n ...searchOptions,\n });\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showAlgolia && <AlgoliaTitle />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n\nfunction AlgoliaTitle() {\n return (\n <a\n href=\"https://algolia.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Algolia\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;AA+CA,SAAwB,oBAAoB,EAC1C,eACA,OAAO,EAAE,EACT,YACA,cAAc,OACd,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,GAAG;EACJ,CAAC;CACF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,eAAe,oBAAC,iBAAe;AAE7C,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,IACb,qBAAC;IAAc;IAAK,aAAa;IAAoB;eAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf,EACD;KACQ,GAEX,OAED,UACkB;;GACR;;AAInB,SAAS,eAAe;AACtB,QACE,oBAAC;EACC,MAAK;EACL,KAAI;EACJ,WAAU;YACX;GAEG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-default.d.ts","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"mappings":";;;;;;UAuBiB,wBAAA,SAAiC,WAAA;EAChD,KAAA,GAAQ,UAAA;;AADV;;EAME,IAAA;EAEA,UAAA;EACA,IAAA,GAAO,OAAA;EAYE;;;EAPT,GAAA;EAdgD;;;EAmBhD,OAAA;EAEA,MAAA,GAAS,SAAA;EAZT;;;;;EAmBA,UAAA;AAAA;AAAA,iBAGsB,mBAAA,CAAA;EACtB,UAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA;EACA,IAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-default.js","names":[],"sources":["../../../src/components/dialog/search-default.tsx"],"sourcesContent":["'use client';\n\nimport { useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport { useI18n } from '@/contexts/i18n';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\n\nexport interface DefaultSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n\n /**\n * @defaultValue 'fetch'\n */\n type?: 'fetch' | 'static';\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Search API URL\n */\n api?: string;\n\n /**\n * The debounced delay for performing a search.\n */\n delayMs?: number;\n\n footer?: ReactNode;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\nexport default function DefaultSearchDialog({\n defaultTag,\n tags = [],\n api,\n delayMs,\n type = 'fetch',\n allowClear = false,\n links = [],\n footer,\n ...props\n}: DefaultSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch(\n type === 'fetch'\n ? {\n type: 'fetch',\n api,\n locale,\n tag,\n delayMs,\n }\n : {\n type: 'static',\n from: api,\n locale,\n tag,\n delayMs,\n },\n );\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n </SearchDialogContent>\n <SearchDialogFooter>\n {tags.length > 0 && (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n </TagsList>\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialog>\n );\n}\n"],"mappings":";;;;;;;;;;AAsDA,SAAwB,oBAAoB,EAC1C,YACA,OAAO,EAAE,EACT,KACA,SACA,OAAO,SACP,aAAa,OACb,QAAQ,EAAE,EACV,QACA,GAAG,SACwB;CAC3B,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cACnC,SAAS,UACL;EACE,MAAM;EACN;EACA;EACA;EACA;EACD,GACD;EACE,MAAM;EACN,MAAM;EACN;EACA;EACA;EACD,CACN;CACD,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;AAEF,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;;GACvF,oBAAC,wBAAsB;GACvB,qBAAC,kCACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF,EACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB,IAC3D;GACtB,qBAAC,iCACE,KAAK,SAAS,KACb,oBAAC;IAAc;IAAK,aAAa;IAAoB;cAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf;KACO,EAEZ,UACkB;;GACR"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-orama.d.ts","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"mappings":";;;;;;;UAuBiB,sBAAA,SAA+B,WAAA;EAC9C,KAAA,GAAQ,UAAA;EACR,MAAA,EAAQ,iBAAA;EACR,aAAA,GAAgB,iBAAA;EAChB,KAAA,GAAQ,iBAAA;EAER,MAAA,GAAS,SAAA;EAET,UAAA;EACA,IAAA,GAAO,OAAA;EANS;;;;;EAahB,SAAA;EAhByD;;;;;EAuBzD,UAAA;AAAA;;;;iBAMsB,iBAAA,CAAA;EACtB,MAAA;EACA,aAAA;EACA,IAAA;EACA,UAAA;EACA,SAAA;EACA,UAAA;EACA,KAAA;EACA,MAAA;EACA,KAAA;EAAA,GACG;AAAA,GACF,sBAAA,GAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-orama.js","names":[],"sources":["../../../src/components/dialog/search-orama.tsx"],"sourcesContent":["'use client';\n\nimport { type OramaCloudOptions, useDocsSearch } from '@hanzo/docs-core/search/client';\nimport { type ReactNode, useMemo, useState } from 'react';\nimport { useOnChange } from '@hanzo/docs-core/utils/use-on-change';\nimport {\n SearchDialog,\n SearchDialogClose,\n SearchDialogContent,\n SearchDialogFooter,\n SearchDialogHeader,\n SearchDialogIcon,\n SearchDialogInput,\n SearchDialogList,\n SearchDialogOverlay,\n type SharedProps,\n TagsList,\n TagsListItem,\n} from './search';\nimport type { SortedResult } from '@hanzo/docs-core/search';\nimport type { SearchLink, TagItem } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\n\nexport interface OramaSearchDialogProps extends SharedProps {\n links?: SearchLink[];\n client: OramaCloudOptions['client'];\n searchOptions?: OramaCloudOptions['params'];\n index?: OramaCloudOptions['index'];\n\n footer?: ReactNode;\n\n defaultTag?: string;\n tags?: TagItem[];\n\n /**\n * Add the \"Powered by Orama\" label\n *\n * @defaultValue true\n */\n showOrama?: boolean;\n\n /**\n * Allow to clear tag filters\n *\n * @defaultValue false\n */\n allowClear?: boolean;\n}\n\n/**\n * Orama Cloud integration\n */\nexport default function OramaSearchDialog({\n client,\n searchOptions,\n tags = [],\n defaultTag,\n showOrama = true,\n allowClear = false,\n index,\n footer,\n links = [],\n ...props\n}: OramaSearchDialogProps) {\n const { locale } = useI18n();\n const [tag, setTag] = useState(defaultTag);\n const { search, setSearch, query } = useDocsSearch({\n type: 'orama-cloud',\n client,\n index,\n params: searchOptions,\n locale,\n tag,\n });\n\n const defaultItems = useMemo<SortedResult[] | null>(() => {\n if (links.length === 0) return null;\n\n return links.map(([name, link]) => ({\n type: 'page',\n id: name,\n content: name,\n url: link,\n }));\n }, [links]);\n\n useOnChange(defaultTag, (v) => {\n setTag(v);\n });\n\n const label = showOrama && <Label />;\n\n return (\n <SearchDialog search={search} onSearchChange={setSearch} isLoading={query.isLoading} {...props}>\n <SearchDialogOverlay />\n <SearchDialogContent>\n <SearchDialogHeader>\n <SearchDialogIcon />\n <SearchDialogInput />\n <SearchDialogClose />\n </SearchDialogHeader>\n <SearchDialogList items={query.data !== 'empty' ? query.data : defaultItems} />\n <SearchDialogFooter>\n {tags.length > 0 ? (\n <TagsList tag={tag} onTagChange={setTag} allowClear={allowClear}>\n {tags.map((tag) => (\n <TagsListItem key={tag.value} value={tag.value}>\n {tag.name}\n </TagsListItem>\n ))}\n {label}\n </TagsList>\n ) : (\n label\n )}\n {footer}\n </SearchDialogFooter>\n </SearchDialogContent>\n </SearchDialog>\n );\n}\n\nfunction Label() {\n return (\n <a\n href=\"https://orama.com\"\n rel=\"noreferrer noopener\"\n className=\"ms-auto text-xs text-fd-muted-foreground\"\n >\n Search powered by Orama\n </a>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAoDA,SAAwB,kBAAkB,EACxC,QACA,eACA,OAAO,EAAE,EACT,YACA,YAAY,MACZ,aAAa,OACb,OACA,QACA,QAAQ,EAAE,EACV,GAAG,SACsB;CACzB,MAAM,EAAE,WAAW,SAAS;CAC5B,MAAM,CAAC,KAAK,UAAU,SAAS,WAAW;CAC1C,MAAM,EAAE,QAAQ,WAAW,UAAU,cAAc;EACjD,MAAM;EACN;EACA;EACA,QAAQ;EACR;EACA;EACD,CAAC;CAEF,MAAM,eAAe,cAAqC;AACxD,MAAI,MAAM,WAAW,EAAG,QAAO;AAE/B,SAAO,MAAM,KAAK,CAAC,MAAM,WAAW;GAClC,MAAM;GACN,IAAI;GACJ,SAAS;GACT,KAAK;GACN,EAAE;IACF,CAAC,MAAM,CAAC;AAEX,aAAY,aAAa,MAAM;AAC7B,SAAO,EAAE;GACT;CAEF,MAAM,QAAQ,aAAa,oBAAC,UAAQ;AAEpC,QACE,qBAAC;EAAqB;EAAQ,gBAAgB;EAAW,WAAW,MAAM;EAAW,GAAI;aACvF,oBAAC,wBAAsB,EACvB,qBAAC;GACC,qBAAC;IACC,oBAAC,qBAAmB;IACpB,oBAAC,sBAAoB;IACrB,oBAAC,sBAAoB;OACF;GACrB,oBAAC,oBAAiB,OAAO,MAAM,SAAS,UAAU,MAAM,OAAO,eAAgB;GAC/E,qBAAC,iCACE,KAAK,SAAS,IACb,qBAAC;IAAc;IAAK,aAAa;IAAoB;eAClD,KAAK,KAAK,QACT,oBAAC;KAA6B,OAAO,IAAI;eACtC,IAAI;OADY,IAAI,MAER,CACf,EACD;KACQ,GAEX,OAED,UACkB;MACD;GACT;;AAInB,SAAS,QAAQ;AACf,QACE,oBAAC;EACC,MAAK;EACL,KAAI;EACJ,WAAU;YACX;GAEG"}