@gentleduck/docs 0.0.1 → 0.0.12

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 (493) hide show
  1. package/dist/button-Ao0Egplu.js +2 -0
  2. package/dist/button-Ao0Egplu.js.map +1 -0
  3. package/dist/callout-ChU_uu_5.js +2 -0
  4. package/dist/callout-ChU_uu_5.js.map +1 -0
  5. package/dist/callout-DlA6bFl6.d.ts +20 -0
  6. package/dist/callout-DlA6bFl6.d.ts.map +1 -0
  7. package/dist/{charts-DX0UohRi.js → charts-CvYC8d1e.js} +1 -1
  8. package/dist/{charts-DX0UohRi.js.map → charts-CvYC8d1e.js.map} +1 -1
  9. package/dist/{charts-hfCEZEQp.d.ts → charts-Cyick3Tp.d.ts} +1 -1
  10. package/dist/{charts-hfCEZEQp.d.ts.map → charts-Cyick3Tp.d.ts.map} +1 -1
  11. package/dist/chunk-BPpoHddQ-DLGSIJHp.js +2 -0
  12. package/dist/chunk-BPpoHddQ-DLGSIJHp.js.map +1 -0
  13. package/dist/client.d.ts +54 -52
  14. package/dist/client.js +1 -1
  15. package/dist/{code-block-CR2loi-i.d.ts → code-block-XZs_wNL_.d.ts} +3 -3
  16. package/dist/{code-block-CR2loi-i.d.ts.map → code-block-XZs_wNL_.d.ts.map} +1 -1
  17. package/dist/{code-block-DqFdGhI-.js → code-block-uesBcZgM.js} +1 -1
  18. package/dist/{code-block-DqFdGhI-.js.map → code-block-uesBcZgM.js.map} +1 -1
  19. package/dist/{code-block-wrapper-C8I0XMsN.d.ts → code-block-wrapper-I4wS1Zc_.d.ts} +3 -3
  20. package/dist/{code-block-wrapper-C8I0XMsN.d.ts.map → code-block-wrapper-I4wS1Zc_.d.ts.map} +1 -1
  21. package/dist/{code-block-wrapper-CCAw9mie.js → code-block-wrapper-XLG-BrIs.js} +1 -1
  22. package/dist/{code-block-wrapper-CCAw9mie.js.map → code-block-wrapper-XLG-BrIs.js.map} +1 -1
  23. package/dist/{code-preview-CeNXQxYN.d.ts → code-preview-CcHWOM40.d.ts} +3 -3
  24. package/dist/{code-preview-CeNXQxYN.d.ts.map → code-preview-CcHWOM40.d.ts.map} +1 -1
  25. package/dist/code-preview-DTVYDNkK.js +2 -0
  26. package/dist/code-preview-DTVYDNkK.js.map +1 -0
  27. package/dist/{colors-CpJMSMtf.d.ts → colors-BDTM1-gZ.d.ts} +1 -1
  28. package/dist/{colors-CpJMSMtf.d.ts.map → colors-BDTM1-gZ.d.ts.map} +1 -1
  29. package/dist/{colors-Ba_cRR6y.js → colors-BUDdXvJ2.js} +2 -2
  30. package/dist/{colors-Ba_cRR6y.js.map → colors-BUDdXvJ2.js.map} +1 -1
  31. package/dist/command-2PGkRCUM.js +2 -0
  32. package/dist/command-2PGkRCUM.js.map +1 -0
  33. package/dist/command-menu-BYWVu7O7.js +2 -0
  34. package/dist/{command-menu-BVebU1JI.js.map → command-menu-BYWVu7O7.js.map} +1 -1
  35. package/dist/command-menu-CC0hL6Nw.d.ts +7 -0
  36. package/dist/{command-menu-C8RLyuBe.d.ts.map → command-menu-CC0hL6Nw.d.ts.map} +1 -1
  37. package/dist/{component-preview-DknaF8TG.d.ts → component-preview-CFmX_yus.d.ts} +4 -4
  38. package/dist/{component-preview-DknaF8TG.d.ts.map → component-preview-CFmX_yus.d.ts.map} +1 -1
  39. package/dist/component-preview-InhzN4h1.js +2 -0
  40. package/dist/component-preview-InhzN4h1.js.map +1 -0
  41. package/dist/{component-source-IrGlRkUy.d.ts → component-source-B8bxXxtX.d.ts} +3 -3
  42. package/dist/{component-source-IrGlRkUy.d.ts.map → component-source-B8bxXxtX.d.ts.map} +1 -1
  43. package/dist/component-source-DtSz1ZSB.js +5 -0
  44. package/dist/{component-source-BCBDjfEb.js.map → component-source-DtSz1ZSB.js.map} +1 -1
  45. package/dist/components/copy-button/copy-button.d.ts +4 -3
  46. package/dist/components/copy-button/copy-button.js +1 -1
  47. package/dist/components/copy-button/copy-button.types.d.ts +3 -2
  48. package/dist/components/copy-button/index.d.ts +5 -4
  49. package/dist/components/copy-button/index.js +1 -1
  50. package/dist/components/docs/docs-copy-page.d.ts +1 -1
  51. package/dist/components/docs/docs-copy-page.js +1 -1
  52. package/dist/components/docs/docs-pager.d.ts +3 -3
  53. package/dist/components/docs/docs-pager.js +1 -1
  54. package/dist/components/docs/docs-sidebar.d.ts +3 -3
  55. package/dist/components/docs/docs-sidebar.js +1 -1
  56. package/dist/components/docs/docs-toc.d.ts +3 -3
  57. package/dist/components/docs/docs-toc.js +1 -1
  58. package/dist/components/docs/index.d.ts +7 -7
  59. package/dist/components/docs/index.js +1 -1
  60. package/dist/components/icons.d.ts +1 -1
  61. package/dist/components/icons.js +1 -1
  62. package/dist/components/index.d.ts +46 -44
  63. package/dist/components/index.js +1 -1
  64. package/dist/components/layouts/command-menu/command-menu.d.ts +1 -1
  65. package/dist/components/layouts/command-menu/command-menu.js +1 -1
  66. package/dist/components/layouts/command-menu/index.d.ts +2 -2
  67. package/dist/components/layouts/command-menu/index.js +1 -1
  68. package/dist/components/layouts/index.d.ts +7 -7
  69. package/dist/components/layouts/index.js +1 -1
  70. package/dist/components/layouts/site-footer/index.d.ts +1 -1
  71. package/dist/components/layouts/site-footer/index.js +1 -1
  72. package/dist/components/layouts/site-header/header-shell.d.ts +1 -1
  73. package/dist/components/layouts/site-header/header-shell.js +1 -1
  74. package/dist/components/layouts/site-header/index.d.ts +2 -2
  75. package/dist/components/layouts/site-header/index.js +1 -1
  76. package/dist/components/layouts/tailwind-indicator/index.d.ts +1 -1
  77. package/dist/components/layouts/tailwind-indicator/index.js +1 -1
  78. package/dist/components/main-nav.d.ts +1 -1
  79. package/dist/components/main-nav.js +1 -1
  80. package/dist/components/mdx/mdx-components/callout.d.ts +1 -1
  81. package/dist/components/mdx/mdx-components/callout.js +1 -1
  82. package/dist/components/mdx/mdx-components/code/code-block-wrapper.d.ts +1 -1
  83. package/dist/components/mdx/mdx-components/code/code-block-wrapper.js +1 -1
  84. package/dist/components/mdx/mdx-components/code/code-block.d.ts +1 -1
  85. package/dist/components/mdx/mdx-components/code/code-block.js +1 -1
  86. package/dist/components/mdx/mdx-components/code/code-preview.d.ts +1 -1
  87. package/dist/components/mdx/mdx-components/code/code-preview.js +1 -1
  88. package/dist/components/mdx/mdx-components/code/component-preview.d.ts +1 -1
  89. package/dist/components/mdx/mdx-components/code/component-preview.js +1 -1
  90. package/dist/components/mdx/mdx-components/code/component-source.d.ts +1 -1
  91. package/dist/components/mdx/mdx-components/code/component-source.js +1 -1
  92. package/dist/components/mdx/mdx-components/code/figcaption-block.d.ts +1 -1
  93. package/dist/components/mdx/mdx-components/code/figcaption-block.js +1 -1
  94. package/dist/components/mdx/mdx-components/code/index.d.ts +12 -11
  95. package/dist/components/mdx/mdx-components/code/index.js +1 -1
  96. package/dist/components/mdx/mdx-components/code/mermaid-block.d.ts +2 -0
  97. package/dist/components/mdx/mdx-components/code/mermaid-block.js +1 -0
  98. package/dist/components/mdx/mdx-components/code/pre-block.d.ts +3 -3
  99. package/dist/components/mdx/mdx-components/code/pre-block.js +1 -1
  100. package/dist/components/mdx/mdx-components/code/span-block.d.ts +2 -2
  101. package/dist/components/mdx/mdx-components/components-list.d.ts +3 -3
  102. package/dist/components/mdx/mdx-components/components-list.js +1 -1
  103. package/dist/components/mdx/mdx-components/exalidraw.d.ts +2 -2
  104. package/dist/components/mdx/mdx-components/framework-docs.d.ts +1 -1
  105. package/dist/components/mdx/mdx-components/framework-docs.js +1 -1
  106. package/dist/components/mdx/mdx-components/index.d.ts +21 -20
  107. package/dist/components/mdx/mdx-components/index.js +1 -1
  108. package/dist/components/mdx/mdx-components/table.d.ts +1 -1
  109. package/dist/components/mdx/mdx-components/table.js +1 -1
  110. package/dist/components/mdx/mdx-components/tabs.d.ts +1 -1
  111. package/dist/components/mdx/mdx-components/tabs.js +1 -1
  112. package/dist/components/mdx/mdx-components/typepography.d.ts +1 -1
  113. package/dist/components/mdx/mdx-components/typepography.js +1 -1
  114. package/dist/components/mdx/mdx-icons.d.ts +16 -0
  115. package/dist/components/mdx/mdx-icons.d.ts.map +1 -0
  116. package/dist/components/mdx/mdx-icons.js +1 -0
  117. package/dist/components/mdx/mdx.d.ts +1 -1
  118. package/dist/components/mdx/mdx.js +1 -1
  119. package/dist/components/mobile-nav.d.ts +1 -1
  120. package/dist/components/mobile-nav.js +1 -1
  121. package/dist/components/mode-toggle.d.ts +1 -1
  122. package/dist/components/mode-toggle.js +1 -1
  123. package/dist/components/page-header.d.ts +1 -1
  124. package/dist/components/page-header.js +1 -1
  125. package/dist/components/providers.d.ts +1 -1
  126. package/dist/components/providers.js +1 -1
  127. package/dist/components/themes/index.d.ts +3 -2
  128. package/dist/components/themes/index.js +1 -1
  129. package/dist/components/themes/style-switcher.d.ts +2 -1
  130. package/dist/components/themes/style-switcher.js +1 -1
  131. package/dist/components-list-DdQIzOWR.d.ts +12 -0
  132. package/dist/{components-list-ZLlUD-Nr.d.ts.map → components-list-DdQIzOWR.d.ts.map} +1 -1
  133. package/dist/{components-list-BCV3yN6H.js → components-list-DiOUxZd_.js} +2 -2
  134. package/dist/{components-list-BCV3yN6H.js.map → components-list-DiOUxZd_.js.map} +1 -1
  135. package/dist/context/context.d.ts +1 -1
  136. package/dist/context/context.js +1 -1
  137. package/dist/context/context.types.d.ts +1 -1
  138. package/dist/context/index.d.ts +3 -3
  139. package/dist/context/index.js +1 -1
  140. package/dist/{context-tLL-jUw_.d.ts → context-4HPOTFY3.d.ts} +4 -4
  141. package/dist/{context-tLL-jUw_.d.ts.map → context-4HPOTFY3.d.ts.map} +1 -1
  142. package/dist/{context-Bd4Sf8r8.js → context-CibrcgaK.js} +1 -1
  143. package/dist/{context-Bd4Sf8r8.js.map → context-CibrcgaK.js.map} +1 -1
  144. package/dist/{context.types-DgaGu8Ly.d.ts → context.types-KUK2rNdz.d.ts} +2 -2
  145. package/dist/{context.types-DgaGu8Ly.d.ts.map → context.types-KUK2rNdz.d.ts.map} +1 -1
  146. package/dist/{copy-button-Bh7DmVLN.d.ts → copy-button-CFc5QVLy.d.ts} +7 -8
  147. package/dist/copy-button-CFc5QVLy.d.ts.map +1 -0
  148. package/dist/copy-button-DZizVQ8G.js +2 -0
  149. package/dist/copy-button-DZizVQ8G.js.map +1 -0
  150. package/dist/copy-button.types-DDNr7hUc.d.ts +29 -0
  151. package/dist/copy-button.types-DDNr7hUc.d.ts.map +1 -0
  152. package/dist/dialog-BJXRFGlQ.js +31 -0
  153. package/dist/dialog-BJXRFGlQ.js.map +1 -0
  154. package/dist/dist-DfVBUGvk.js +2 -0
  155. package/dist/dist-DfVBUGvk.js.map +1 -0
  156. package/dist/{docs-copy-page-rZ3GkUUQ.d.ts → docs-copy-page-BM3zVUeL.d.ts} +3 -3
  157. package/dist/{docs-copy-page-rZ3GkUUQ.d.ts.map → docs-copy-page-BM3zVUeL.d.ts.map} +1 -1
  158. package/dist/{docs-copy-page-B1HSXqlm.js → docs-copy-page-DZDkcR09.js} +3 -3
  159. package/dist/{docs-copy-page-B1HSXqlm.js.map → docs-copy-page-DZDkcR09.js.map} +1 -1
  160. package/dist/{docs-pager-CLERxm13.d.ts → docs-pager-Doppai9B.d.ts} +6 -6
  161. package/dist/docs-pager-Doppai9B.d.ts.map +1 -0
  162. package/dist/docs-pager-Dr6dooWP.js +2 -0
  163. package/dist/docs-pager-Dr6dooWP.js.map +1 -0
  164. package/dist/{docs-sidebar-C4HMPDIN.d.ts → docs-sidebar-D0TOniBr.d.ts} +3 -3
  165. package/dist/{docs-sidebar-C4HMPDIN.d.ts.map → docs-sidebar-D0TOniBr.d.ts.map} +1 -1
  166. package/dist/{docs-sidebar-Cq7haHti.js → docs-sidebar-MtBCNnEG.js} +2 -2
  167. package/dist/{docs-sidebar-Cq7haHti.js.map → docs-sidebar-MtBCNnEG.js.map} +1 -1
  168. package/dist/docs-toc-BBsdEsY-.d.ts +13 -0
  169. package/dist/{docs-toc-B4_Znnrj.d.ts.map → docs-toc-BBsdEsY-.d.ts.map} +1 -1
  170. package/dist/{docs-toc-DfQz3sNZ.js → docs-toc-Czi8gMJf.js} +2 -2
  171. package/dist/{docs-toc-DfQz3sNZ.js.map → docs-toc-Czi8gMJf.js.map} +1 -1
  172. package/dist/drawer-DVVyDJ2D.js +8 -0
  173. package/dist/drawer-DVVyDJ2D.js.map +1 -0
  174. package/dist/dropdown-menu-Cf4PnvE4.js +2 -0
  175. package/dist/dropdown-menu-Cf4PnvE4.js.map +1 -0
  176. package/dist/{events-BKAEw9TQ.d.ts → events-CFVHB4m8.d.ts} +1 -1
  177. package/dist/{events-BKAEw9TQ.d.ts.map → events-CFVHB4m8.d.ts.map} +1 -1
  178. package/dist/{events-D55YvIRi.js → events-DHlTM_S_.js} +1 -1
  179. package/dist/{events-D55YvIRi.js.map → events-DHlTM_S_.js.map} +1 -1
  180. package/dist/figcaption-block-7FWvsSXj.js +2 -0
  181. package/dist/{figcaption-block-DWZhs-6i.js.map → figcaption-block-7FWvsSXj.js.map} +1 -1
  182. package/dist/{figcaption-block-B7CmTI6d.d.ts → figcaption-block-DAb2yFuu.d.ts} +3 -3
  183. package/dist/{figcaption-block-B7CmTI6d.d.ts.map → figcaption-block-DAb2yFuu.d.ts.map} +1 -1
  184. package/dist/{framework-docs-tYKaeYsi.d.ts → framework-docs-BdW8xpfl.d.ts} +3 -3
  185. package/dist/{framework-docs-tYKaeYsi.d.ts.map → framework-docs-BdW8xpfl.d.ts.map} +1 -1
  186. package/dist/framework-docs-BtCchZOF.js +2 -0
  187. package/dist/{framework-docs-ZYLz3BBy.js.map → framework-docs-BtCchZOF.js.map} +1 -1
  188. package/dist/{header-shell-CWHnv2ot.js → header-shell-BnhiboVH.js} +2 -2
  189. package/dist/{header-shell-CWHnv2ot.js.map → header-shell-BnhiboVH.js.map} +1 -1
  190. package/dist/{header-shell-BusaKA4C.d.ts → header-shell-ClRz98xF.d.ts} +6 -6
  191. package/dist/{header-shell-BusaKA4C.d.ts.map → header-shell-ClRz98xF.d.ts.map} +1 -1
  192. package/dist/hooks/index.d.ts +7 -7
  193. package/dist/hooks/index.js +1 -1
  194. package/dist/hooks/use-colors.d.ts +2 -2
  195. package/dist/hooks/use-colors.js +1 -1
  196. package/dist/hooks/use-config.d.ts +1 -1
  197. package/dist/hooks/use-config.js +1 -1
  198. package/dist/hooks/use-lift-mode.d.ts +1 -1
  199. package/dist/hooks/use-lift-mode.js +1 -1
  200. package/dist/hooks/use-meta-colors.d.ts +1 -1
  201. package/dist/hooks/use-meta-colors.js +1 -1
  202. package/dist/hooks/use-mounted.d.ts +1 -1
  203. package/dist/hooks/use-mounted.js +1 -1
  204. package/dist/hooks/use-themes-config.d.ts +1 -1
  205. package/dist/hooks/use-themes-config.js +1 -1
  206. package/dist/{icons-BqnlXRgx.d.ts → icons-Bp6-jojO.d.ts} +1 -1
  207. package/dist/{icons-BqnlXRgx.d.ts.map → icons-Bp6-jojO.d.ts.map} +1 -1
  208. package/dist/{icons-bFf026bR.js → icons-CiCgiCYy.js} +2 -2
  209. package/dist/{icons-bFf026bR.js.map → icons-CiCgiCYy.js.map} +1 -1
  210. package/dist/index-C3il2ITv.d.ts +62 -0
  211. package/dist/index-C3il2ITv.d.ts.map +1 -0
  212. package/dist/index-C3ohDQzb.d.ts +8 -0
  213. package/dist/{index-BZ1Usw1L.d.ts.map → index-C3ohDQzb.d.ts.map} +1 -1
  214. package/dist/index-CtT0ECmz.d.ts +7 -0
  215. package/dist/{index-2mWOLEIP.d.ts.map → index-CtT0ECmz.d.ts.map} +1 -1
  216. package/dist/index-RKzQMpzp.d.ts +8 -0
  217. package/dist/{index-Bunxo_8h.d.ts.map → index-RKzQMpzp.d.ts.map} +1 -1
  218. package/dist/index.d.ts +9 -9
  219. package/dist/index.js +1 -1
  220. package/dist/lib/charts.d.ts +1 -1
  221. package/dist/lib/charts.js +1 -1
  222. package/dist/lib/colors.d.ts +1 -1
  223. package/dist/lib/colors.js +1 -1
  224. package/dist/lib/events.d.ts +1 -1
  225. package/dist/lib/events.js +1 -1
  226. package/dist/lib/index.d.ts +5 -5
  227. package/dist/lib/index.js +1 -1
  228. package/dist/lib/registry-colors-data.js +1 -1
  229. package/dist/lib/registry-styles.d.ts +1 -1
  230. package/dist/lib/registry-styles.js +1 -1
  231. package/dist/lib/themes.d.ts +1 -1
  232. package/dist/lib/themes.js +1 -1
  233. package/dist/lib/utils.d.ts +1 -1
  234. package/dist/lib/utils.js +1 -1
  235. package/dist/{main-nav-SathVgSN.d.ts → main-nav-Cg6YiDTj.d.ts} +1 -1
  236. package/dist/main-nav-Cg6YiDTj.d.ts.map +1 -0
  237. package/dist/{main-nav-Df2pgQUs.js → main-nav-Ci0i9b05.js} +2 -2
  238. package/dist/{main-nav-Df2pgQUs.js.map → main-nav-Ci0i9b05.js.map} +1 -1
  239. package/dist/mdx-BytZ4deL.js +2 -0
  240. package/dist/mdx-BytZ4deL.js.map +1 -0
  241. package/dist/{mdx-CBnfwESR.d.ts → mdx-CKRU84WS.d.ts} +1 -1
  242. package/dist/mdx-CKRU84WS.d.ts.map +1 -0
  243. package/dist/mdx-icons-BH4zLUw0.js +2 -0
  244. package/dist/mdx-icons-BH4zLUw0.js.map +1 -0
  245. package/dist/mermaid-block-BlCALvQ4.js +13 -0
  246. package/dist/mermaid-block-BlCALvQ4.js.map +1 -0
  247. package/dist/mermaid-block-RZuwdJvz.d.ts +17 -0
  248. package/dist/mermaid-block-RZuwdJvz.d.ts.map +1 -0
  249. package/dist/{metadata-plugin-Ag61IUUu.d.ts → metadata-plugin-OKcE6Xsj.d.ts} +2 -2
  250. package/dist/metadata-plugin-OKcE6Xsj.d.ts.map +1 -0
  251. package/dist/{metadata-plugin-Mc8lCfYT.js → metadata-plugin-tEixstEj.js} +1 -1
  252. package/dist/{metadata-plugin-Mc8lCfYT.js.map → metadata-plugin-tEixstEj.js.map} +1 -1
  253. package/dist/mobile-nav-BAkYO55-.js +2 -0
  254. package/dist/mobile-nav-BAkYO55-.js.map +1 -0
  255. package/dist/{mobile-nav-hEfoD2ld.d.ts → mobile-nav-BcRCNOB4.d.ts} +1 -1
  256. package/dist/mobile-nav-BcRCNOB4.d.ts.map +1 -0
  257. package/dist/mode-toggle-BFNnk0Th.js +2 -0
  258. package/dist/{mode-toggle-CGGAaMUK.js.map → mode-toggle-BFNnk0Th.js.map} +1 -1
  259. package/dist/mode-toggle-DkjhxUcC.d.ts +7 -0
  260. package/dist/mode-toggle-DkjhxUcC.d.ts.map +1 -0
  261. package/dist/mount-CNbhMJe--D9ALOndF.js +2 -0
  262. package/dist/mount-CNbhMJe--D9ALOndF.js.map +1 -0
  263. package/dist/{nav-0JAtUIst.d.ts → nav-B2NAfb21.d.ts} +1 -1
  264. package/dist/{nav-0JAtUIst.d.ts.map → nav-B2NAfb21.d.ts.map} +1 -1
  265. package/dist/{page-header-Brw3423H.d.ts → page-header-BFaGrxuP.d.ts} +6 -6
  266. package/dist/{page-header-Brw3423H.d.ts.map → page-header-BFaGrxuP.d.ts.map} +1 -1
  267. package/dist/{page-header-BGKsl1LK.js → page-header-D8n3yXQF.js} +1 -1
  268. package/dist/{page-header-BGKsl1LK.js.map → page-header-D8n3yXQF.js.map} +1 -1
  269. package/dist/popover-DBuHxfGT.js +2 -0
  270. package/dist/popover-DBuHxfGT.js.map +1 -0
  271. package/dist/{pre-block-CTP3z9eq.d.ts → pre-block-BiGutzz_.d.ts} +6 -6
  272. package/dist/{pre-block-CTP3z9eq.d.ts.map → pre-block-BiGutzz_.d.ts.map} +1 -1
  273. package/dist/pre-block-C2YQ_YU_.js +2 -0
  274. package/dist/{pre-block-BThyCz1h.js.map → pre-block-C2YQ_YU_.js.map} +1 -1
  275. package/dist/presence-DKRzzG6_-DV_YtF92.js +2 -0
  276. package/dist/presence-DKRzzG6_-DV_YtF92.js.map +1 -0
  277. package/dist/{providers-fDpVqSs8.js → providers-CFfgRc3G.js} +1 -1
  278. package/dist/{providers-fDpVqSs8.js.map → providers-CFfgRc3G.js.map} +1 -1
  279. package/dist/{providers-BU3xm7I4.d.ts → providers-Df2oImJ-.d.ts} +3 -3
  280. package/dist/providers-Df2oImJ-.d.ts.map +1 -0
  281. package/dist/{registry-colors-data-FyxAihEQ.js → registry-colors-data-tROJGGvk.js} +1 -1
  282. package/dist/{registry-colors-data-FyxAihEQ.js.map → registry-colors-data-tROJGGvk.js.map} +1 -1
  283. package/dist/{registry-styles-Cm1HpC4C.js → registry-styles-Bby12FIz.js} +1 -1
  284. package/dist/{registry-styles-Cm1HpC4C.js.map → registry-styles-Bby12FIz.js.map} +1 -1
  285. package/dist/{registry-styles-WvCGd0xY.d.ts → registry-styles-DACce7ra.d.ts} +1 -1
  286. package/dist/{registry-styles-WvCGd0xY.d.ts.map → registry-styles-DACce7ra.d.ts.map} +1 -1
  287. package/dist/rehype-mermaid-gkaeJtqn.js +17 -0
  288. package/dist/rehype-mermaid-gkaeJtqn.js.map +1 -0
  289. package/dist/rehype-mermaid-kjf2DmAC.d.ts +7 -0
  290. package/dist/rehype-mermaid-kjf2DmAC.d.ts.map +1 -0
  291. package/dist/rehype-npm-command-C7BP6nqi.d.ts +7 -0
  292. package/dist/rehype-npm-command-C7BP6nqi.d.ts.map +1 -0
  293. package/dist/{velite/rehype-npm-command.js → rehype-npm-command-O7ik2lKv.js} +2 -2
  294. package/dist/rehype-npm-command-O7ik2lKv.js.map +1 -0
  295. package/dist/{rehype-pre-block-source-Bz3-G4tr.js → rehype-pre-block-source-D8t3NCnT.js} +1 -1
  296. package/dist/{rehype-pre-block-source-Bz3-G4tr.js.map → rehype-pre-block-source-D8t3NCnT.js.map} +1 -1
  297. package/dist/{rehype-pre-block-source-Le9z9RN8.d.ts → rehype-pre-block-source-zKoXg4aL.d.ts} +2 -2
  298. package/dist/{rehype-pre-block-source-Le9z9RN8.d.ts.map → rehype-pre-block-source-zKoXg4aL.d.ts.map} +1 -1
  299. package/dist/{rehype-title-C1q6PbyG.js → rehype-title-TRUGszot.js} +1 -1
  300. package/dist/{rehype-title-C1q6PbyG.js.map → rehype-title-TRUGszot.js.map} +1 -1
  301. package/dist/{rehype-title-Dwt_OKnR.d.ts → rehype-title-umwuNb2D.d.ts} +2 -2
  302. package/dist/rehype-title-umwuNb2D.d.ts.map +1 -0
  303. package/dist/scroll-area-Bj8-58Fz.js +2 -0
  304. package/dist/scroll-area-Bj8-58Fz.js.map +1 -0
  305. package/dist/separator-t0JrmyLj.js +2 -0
  306. package/dist/separator-t0JrmyLj.js.map +1 -0
  307. package/dist/site-footer-BZQcOAVy.js +2 -0
  308. package/dist/site-footer-BZQcOAVy.js.map +1 -0
  309. package/dist/site-header-BT02DWt0.js +2 -0
  310. package/dist/site-header-BT02DWt0.js.map +1 -0
  311. package/dist/style-switcher-BvF4n8f4.js +2 -0
  312. package/dist/style-switcher-BvF4n8f4.js.map +1 -0
  313. package/dist/style-switcher-CJ7Z244x.d.ts +25 -0
  314. package/dist/style-switcher-CJ7Z244x.d.ts.map +1 -0
  315. package/dist/styles/base.css +2 -5
  316. package/dist/styles/docs.css +2 -34
  317. package/dist/styles/mdx.css +1 -9
  318. package/dist/{table-Sc60jiil.js → table-Cu1wFi9V.js} +2 -2
  319. package/dist/table-Cu1wFi9V.js.map +1 -0
  320. package/dist/{table-B1hJe5kw.d.ts → table-DAVFXCAf.d.ts} +1 -1
  321. package/dist/table-DAVFXCAf.d.ts.map +1 -0
  322. package/dist/tabs-Cvy3-KIA.js +2 -0
  323. package/dist/{tabs-KvYm5au9.js.map → tabs-Cvy3-KIA.js.map} +1 -1
  324. package/dist/tabs-jsmxQQW0.js +2 -0
  325. package/dist/tabs-jsmxQQW0.js.map +1 -0
  326. package/dist/tabs-qOB1npti.d.ts +68 -0
  327. package/dist/tabs-qOB1npti.d.ts.map +1 -0
  328. package/dist/{tailwind-indicator-CV2jUfip.js → tailwind-indicator-Dt4Bfpta.js} +1 -1
  329. package/dist/{tailwind-indicator-CV2jUfip.js.map → tailwind-indicator-Dt4Bfpta.js.map} +1 -1
  330. package/dist/{themes-dv8YVpXg.d.ts → themes-Ba683LGu.d.ts} +1 -1
  331. package/dist/{themes-dv8YVpXg.d.ts.map → themes-Ba683LGu.d.ts.map} +1 -1
  332. package/dist/{themes-DsvojWlq.js → themes-BzMklu0h.js} +2 -2
  333. package/dist/{themes-DsvojWlq.js.map → themes-BzMklu0h.js.map} +1 -1
  334. package/dist/{typepography-Btk-lJ3O.js → typepography-CLdrb7_b.js} +1 -1
  335. package/dist/{typepography-Btk-lJ3O.js.map → typepography-CLdrb7_b.js.map} +1 -1
  336. package/dist/{typepography-B_jjjv9F.d.ts → typepography-b9NEdPeR.d.ts} +13 -13
  337. package/dist/{typepography-B_jjjv9F.d.ts.map → typepography-b9NEdPeR.d.ts.map} +1 -1
  338. package/dist/types/index.d.ts +3 -3
  339. package/dist/types/nav.d.ts +1 -1
  340. package/dist/types/unist.d.ts +1 -1
  341. package/dist/{unist-Bs-H_R8g.d.ts → unist-DN6buKAy.d.ts} +5 -1
  342. package/dist/unist-DN6buKAy.d.ts.map +1 -0
  343. package/dist/{use-colors-JhoQAYK2.js → use-colors-BSOymnQG.js} +2 -2
  344. package/dist/{use-colors-JhoQAYK2.js.map → use-colors-BSOymnQG.js.map} +1 -1
  345. package/dist/{use-colors-CeiLGCjZ.d.ts → use-colors-tvFBbu3S.d.ts} +2 -2
  346. package/dist/use-colors-tvFBbu3S.d.ts.map +1 -0
  347. package/dist/{use-config-D1zkiIbf.js → use-config-DViAkW1f.js} +1 -1
  348. package/dist/{use-config-D1zkiIbf.js.map → use-config-DViAkW1f.js.map} +1 -1
  349. package/dist/{use-config-CFygUPAg.d.ts → use-config-DlgXRPaN.d.ts} +4 -4
  350. package/dist/{use-config-CFygUPAg.d.ts.map → use-config-DlgXRPaN.d.ts.map} +1 -1
  351. package/dist/{use-lift-mode-Dya2HcpU.js → use-lift-mode-CqcC0vis.js} +1 -1
  352. package/dist/{use-lift-mode-Dya2HcpU.js.map → use-lift-mode-CqcC0vis.js.map} +1 -1
  353. package/dist/{use-lift-mode-IpZRia0D.d.ts → use-lift-mode-DEELjsRA.d.ts} +1 -1
  354. package/dist/use-lift-mode-DEELjsRA.d.ts.map +1 -0
  355. package/dist/{use-meta-colors-BhIhFzvx.js → use-meta-colors-B7HIXaHI.js} +2 -2
  356. package/dist/{use-meta-colors-BhIhFzvx.js.map → use-meta-colors-B7HIXaHI.js.map} +1 -1
  357. package/dist/{use-meta-colors-C8OegAZO.d.ts → use-meta-colors-CkNbJTgD.d.ts} +1 -1
  358. package/dist/use-meta-colors-CkNbJTgD.d.ts.map +1 -0
  359. package/dist/{use-mounted-D25Cx8rc.d.ts → use-mounted-BtOuPtMk.d.ts} +1 -1
  360. package/dist/use-mounted-BtOuPtMk.d.ts.map +1 -0
  361. package/dist/{use-mounted-SpB3P6Vt.js → use-mounted-gdBJPRp0.js} +1 -1
  362. package/dist/{use-mounted-SpB3P6Vt.js.map → use-mounted-gdBJPRp0.js.map} +1 -1
  363. package/dist/{use-themes-config-Bo-JZDNU.js → use-themes-config-BRcxOF-M.js} +2 -2
  364. package/dist/{use-themes-config-Bo-JZDNU.js.map → use-themes-config-BRcxOF-M.js.map} +1 -1
  365. package/dist/use-themes-config-Dtk_egkh.d.ts +14 -0
  366. package/dist/use-themes-config-Dtk_egkh.d.ts.map +1 -0
  367. package/dist/{utils-NjSy-iOL.js → utils-Ck5VSddf.js} +1 -1
  368. package/dist/{utils-NjSy-iOL.js.map → utils-Ck5VSddf.js.map} +1 -1
  369. package/dist/{utils-CMPpWmbv.d.ts → utils-gls3XPIE.d.ts} +1 -1
  370. package/dist/{utils-CMPpWmbv.d.ts.map → utils-gls3XPIE.d.ts.map} +1 -1
  371. package/dist/velite/config.d.ts.map +1 -1
  372. package/dist/velite/config.js +1 -1
  373. package/dist/velite/config.js.map +1 -1
  374. package/dist/velite/index.d.ts +8 -7
  375. package/dist/velite/index.js +1 -1
  376. package/dist/velite/plugins/index.d.ts +8 -6
  377. package/dist/velite/plugins/index.js +1 -1
  378. package/dist/velite/plugins/metadata-plugin.d.ts +3 -3
  379. package/dist/velite/plugins/metadata-plugin.js +1 -1
  380. package/dist/velite/plugins/rehype-mermaid.d.ts +4 -0
  381. package/dist/velite/plugins/rehype-mermaid.js +1 -0
  382. package/dist/velite/plugins/rehype-npm-command.d.ts +4 -0
  383. package/dist/velite/plugins/rehype-npm-command.js +1 -0
  384. package/dist/velite/plugins/rehype-pre-block-source.d.ts +3 -3
  385. package/dist/velite/plugins/rehype-pre-block-source.js +1 -1
  386. package/dist/velite/plugins/rehype-title.d.ts +3 -3
  387. package/dist/velite/plugins/rehype-title.js +1 -1
  388. package/package.json +5 -11
  389. package/src/components/copy-button/copy-button.tsx +2 -2
  390. package/src/components/docs/docs-pager.tsx +8 -4
  391. package/src/components/docs/docs-sidebar.tsx +1 -0
  392. package/src/components/layouts/site-header/index.tsx +4 -1
  393. package/src/components/mdx/mdx-components/callout.tsx +11 -4
  394. package/src/components/mdx/mdx-components/code/component-preview.tsx +1 -10
  395. package/src/components/mdx/mdx-components/code/index.ts +1 -0
  396. package/src/components/mdx/mdx-components/code/mermaid-block.tsx +62 -0
  397. package/src/components/mdx/mdx-components/table.tsx +2 -5
  398. package/src/components/mdx/mdx-icons.ts +11 -0
  399. package/src/components/mdx/mdx.tsx +17 -2
  400. package/src/components/mobile-nav.tsx +1 -3
  401. package/src/styles/base.css +2 -5
  402. package/src/styles/docs.css +2 -34
  403. package/src/styles/mdx.css +1 -9
  404. package/src/types/unist.ts +4 -0
  405. package/src/velite/config.ts +2 -2
  406. package/src/velite/index.ts +0 -1
  407. package/src/velite/plugins/index.ts +2 -0
  408. package/src/velite/plugins/rehype-mermaid.ts +227 -0
  409. package/dist/callout-CFw8zUIz.js +0 -2
  410. package/dist/callout-CFw8zUIz.js.map +0 -1
  411. package/dist/callout-VcT2d48I.d.ts +0 -17
  412. package/dist/callout-VcT2d48I.d.ts.map +0 -1
  413. package/dist/code-preview-cIvw8qyg.js +0 -2
  414. package/dist/code-preview-cIvw8qyg.js.map +0 -1
  415. package/dist/command-menu-BVebU1JI.js +0 -2
  416. package/dist/command-menu-C8RLyuBe.d.ts +0 -7
  417. package/dist/component-preview-CL6guE-v.js +0 -2
  418. package/dist/component-preview-CL6guE-v.js.map +0 -1
  419. package/dist/component-source-BCBDjfEb.js +0 -5
  420. package/dist/components-list-ZLlUD-Nr.d.ts +0 -12
  421. package/dist/copy-button-Bh7DmVLN.d.ts.map +0 -1
  422. package/dist/copy-button-D50DXq56.js +0 -2
  423. package/dist/copy-button-D50DXq56.js.map +0 -1
  424. package/dist/copy-button.types-D6D1XKDN.d.ts +0 -19
  425. package/dist/copy-button.types-D6D1XKDN.d.ts.map +0 -1
  426. package/dist/docs-pager-2p2cKZcg.js +0 -2
  427. package/dist/docs-pager-2p2cKZcg.js.map +0 -1
  428. package/dist/docs-pager-CLERxm13.d.ts.map +0 -1
  429. package/dist/docs-toc-B4_Znnrj.d.ts +0 -13
  430. package/dist/figcaption-block-DWZhs-6i.js +0 -2
  431. package/dist/framework-docs-ZYLz3BBy.js +0 -2
  432. package/dist/index-2mWOLEIP.d.ts +0 -7
  433. package/dist/index-BZ1Usw1L.d.ts +0 -8
  434. package/dist/index-Bunxo_8h.d.ts +0 -8
  435. package/dist/main-nav-SathVgSN.d.ts.map +0 -1
  436. package/dist/mdx-CBnfwESR.d.ts.map +0 -1
  437. package/dist/mdx-cqn1ggXI.js +0 -2
  438. package/dist/mdx-cqn1ggXI.js.map +0 -1
  439. package/dist/metadata-plugin-Ag61IUUu.d.ts.map +0 -1
  440. package/dist/mobile-nav-DRQtHK-O.js +0 -2
  441. package/dist/mobile-nav-DRQtHK-O.js.map +0 -1
  442. package/dist/mobile-nav-hEfoD2ld.d.ts.map +0 -1
  443. package/dist/mode-toggle-BcPx4Vfk.d.ts +0 -7
  444. package/dist/mode-toggle-BcPx4Vfk.d.ts.map +0 -1
  445. package/dist/mode-toggle-CGGAaMUK.js +0 -2
  446. package/dist/pre-block-BThyCz1h.js +0 -2
  447. package/dist/providers-BU3xm7I4.d.ts.map +0 -1
  448. package/dist/rehype-title-Dwt_OKnR.d.ts.map +0 -1
  449. package/dist/site-footer-CsUC-l-l.js +0 -2
  450. package/dist/site-footer-CsUC-l-l.js.map +0 -1
  451. package/dist/site-header-Bi3-9Kl3.js +0 -2
  452. package/dist/site-header-Bi3-9Kl3.js.map +0 -1
  453. package/dist/style-switcher-BXEGTMW2.d.ts +0 -12
  454. package/dist/style-switcher-BXEGTMW2.d.ts.map +0 -1
  455. package/dist/style-switcher-CpcMcuwL.js +0 -2
  456. package/dist/style-switcher-CpcMcuwL.js.map +0 -1
  457. package/dist/table-B1hJe5kw.d.ts.map +0 -1
  458. package/dist/table-Sc60jiil.js.map +0 -1
  459. package/dist/tabs-DWxNPhgN.d.ts +0 -23
  460. package/dist/tabs-DWxNPhgN.d.ts.map +0 -1
  461. package/dist/tabs-KvYm5au9.js +0 -2
  462. package/dist/unist-Bs-H_R8g.d.ts.map +0 -1
  463. package/dist/use-colors-CeiLGCjZ.d.ts.map +0 -1
  464. package/dist/use-lift-mode-IpZRia0D.d.ts.map +0 -1
  465. package/dist/use-meta-colors-C8OegAZO.d.ts.map +0 -1
  466. package/dist/use-mounted-D25Cx8rc.d.ts.map +0 -1
  467. package/dist/use-themes-config-DfQCuhPn.d.ts +0 -14
  468. package/dist/use-themes-config-DfQCuhPn.d.ts.map +0 -1
  469. package/dist/velite/rehype-npm-command.d.ts +0 -8
  470. package/dist/velite/rehype-npm-command.d.ts.map +0 -1
  471. package/dist/velite/rehype-npm-command.js.map +0 -1
  472. /package/dist/{code-Cz75Womb.js → code-CRijMbf8.js} +0 -0
  473. /package/dist/{command-menu-7HTBKVxd.js → command-menu-DJNwkpf0.js} +0 -0
  474. /package/dist/{context-BoqMzqgD.js → context-DAoDXLlH.js} +0 -0
  475. /package/dist/{context.types-8c0sgn5Q.js → context.types-XX-41b7E.js} +0 -0
  476. /package/dist/{copy-button-DpLK4Hc9.js → copy-button-BKOhlef4.js} +0 -0
  477. /package/dist/{copy-button.types-ZXpoKEH1.js → copy-button.types-B9s047di.js} +0 -0
  478. /package/dist/{docs-B9qhW8T2.js → docs-BXWvl6Zg.js} +0 -0
  479. /package/dist/{index-BwEOYyLd.d.ts → index-2DqdDmQN.d.ts} +0 -0
  480. /package/dist/{index-CJOkJMYm.d.ts → index-CGglgRYd.d.ts} +0 -0
  481. /package/dist/{index-Cp46Zvz-.d.ts → index-CX84Uo3j.d.ts} +0 -0
  482. /package/dist/{index-CsVdkYso.d.ts → index-DOo6j0yP.d.ts} +0 -0
  483. /package/dist/{index-DIk3-d3u.d.ts → index-DUfvqU8v.d.ts} +0 -0
  484. /package/dist/{index-LAzYY5Wa.d.ts → index-DlpwrdjG.d.ts} +0 -0
  485. /package/dist/{index-k586z2Y3.d.ts → index-DxmiBoAj.d.ts} +0 -0
  486. /package/dist/{index-mj9Ys67i.d.ts → index-DzZbxTJ5.d.ts} +0 -0
  487. /package/dist/{index-otwxHF3U.d.ts → index-MPFNOj9E.d.ts} +0 -0
  488. /package/dist/{layouts-hVp-aKom.js → layouts-MJSz-Ia5.js} +0 -0
  489. /package/dist/{mdx-components-BoD1jTr7.js → mdx-components-Bvz2OZPf.js} +0 -0
  490. /package/dist/{nav-6wUjcK0K.js → nav-CVNxjtXM.js} +0 -0
  491. /package/dist/{themes-Dg5GgDgK.js → themes-k-j3m6gv.js} +0 -0
  492. /package/dist/{unist-DpNAVhDX.js → unist-C_C48flD.js} +0 -0
  493. /package/src/velite/{rehype-npm-command.ts → plugins/rehype-npm-command.ts} +0 -0
@@ -8,8 +8,7 @@ import { codeImport } from 'remark-code-import'
8
8
  import remarkGfm from 'remark-gfm'
9
9
  import type { Pluggable } from 'unified'
10
10
  import { defineConfig, s, type ZodMeta } from 'velite'
11
- import { rehypePreBlockSource, rehypeTitle, rhypeMetadataPlugin } from './plugins'
12
- import { rehypeNpmCommand } from './rehype-npm-command'
11
+ import { rehypeMermaid, rehypeNpmCommand, rehypePreBlockSource, rehypeTitle, rhypeMetadataPlugin } from './plugins'
13
12
  import { cleanTocItems } from './utils'
14
13
 
15
14
  export type DocsVeliteConfigOptions = {
@@ -105,6 +104,7 @@ export function createDocsVeliteConfig({
105
104
  ],
106
105
  rehypeTitle,
107
106
  rehypePreBlockSource,
107
+ rehypeMermaid,
108
108
  rehypeNpmCommand,
109
109
  // @ts-ignore
110
110
  [rehypeAutolinkHeadings, { properties: { ariaLabel: 'Link to section', className: ['subheading-anchor'] } }],
@@ -1,5 +1,4 @@
1
1
  export type { DocsVeliteConfigOptions } from './config'
2
2
  export { createDocsVeliteConfig, docsVeliteConfig } from './config'
3
3
  export * from './plugins'
4
- export { rehypeNpmCommand } from './rehype-npm-command'
5
4
  export { cleanTocItems } from './utils'
@@ -1,3 +1,5 @@
1
1
  export * from './metadata-plugin'
2
+ export * from './rehype-mermaid'
3
+ export * from './rehype-npm-command'
2
4
  export * from './rehype-pre-block-source'
3
5
  export * from './rehype-title'
@@ -0,0 +1,227 @@
1
+ import { execSync } from 'node:child_process'
2
+ import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'
3
+ import { tmpdir } from 'node:os'
4
+ import { join } from 'node:path'
5
+ import type { UnistNode, UnistTree } from '@duck-docs/types'
6
+ import type { Nodes } from 'hast'
7
+ import { toString } from 'hast-util-to-string'
8
+ import { visit } from 'unist-util-visit'
9
+
10
+ // ---------------------------------------------------------------------------
11
+ // Helpers
12
+ // ---------------------------------------------------------------------------
13
+
14
+ function isMermaidCode(node: UnistNode): boolean {
15
+ const codeChild = node.children?.[0]
16
+ if (!codeChild || codeChild.type !== 'element' || codeChild.tagName !== 'code') return false
17
+ const dataLang = codeChild.properties?.['data-language']
18
+ const classes = codeChild.properties?.className
19
+ return dataLang === 'mermaid' || (Array.isArray(classes) && classes.includes('language-mermaid'))
20
+ }
21
+
22
+ /** Safely extract a string value from an mdxJsxAttribute. */
23
+ function extractAttrValue(attr: any): string | null {
24
+ if (!attr?.value) return null
25
+ if (typeof attr.value === 'string') return attr.value
26
+ if (attr.value?.type === 'mdxJsxAttributeValueExpression') {
27
+ try {
28
+ // eslint-disable-next-line no-new-func
29
+ return new Function('return ' + attr.value.value)()
30
+ } catch {
31
+ return null
32
+ }
33
+ }
34
+ return null
35
+ }
36
+
37
+ /** Create an mdxJsxAttribute with an expression value (properly escaped). */
38
+ function makeJsxStringAttr(name: string, value: string) {
39
+ return {
40
+ type: 'mdxJsxAttribute',
41
+ name,
42
+ value: {
43
+ type: 'mdxJsxAttributeValueExpression',
44
+ value: JSON.stringify(value),
45
+ data: {
46
+ estree: {
47
+ type: 'Program',
48
+ sourceType: 'module',
49
+ body: [
50
+ {
51
+ type: 'ExpressionStatement',
52
+ expression: { type: 'Literal', value, raw: JSON.stringify(value) },
53
+ },
54
+ ],
55
+ comments: [],
56
+ },
57
+ },
58
+ },
59
+ }
60
+ }
61
+
62
+ // ---------------------------------------------------------------------------
63
+ // Headless Chromium renderer - produces pixel-perfect SVGs using a real browser
64
+ // ---------------------------------------------------------------------------
65
+
66
+ /** Find the system Chromium / Chrome binary. */
67
+ function findChromium(): string {
68
+ for (const bin of ['chromium', 'google-chrome-stable', 'google-chrome', 'chromium-browser']) {
69
+ try {
70
+ const p = execSync(`which ${bin}`, { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim()
71
+ if (p) return p
72
+ } catch {
73
+ /* next */
74
+ }
75
+ }
76
+ throw new Error('[rehype-mermaid] No Chromium/Chrome binary found. Install chromium or google-chrome.')
77
+ }
78
+
79
+ let chromiumPath: string | null = null
80
+
81
+ function buildRenderHtml(diagrams: { source: string; id: string; theme: 'default' | 'dark' }[]): string {
82
+ return `<!DOCTYPE html><html><head>
83
+ <script type="module">
84
+ import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs';
85
+ const diagrams = ${JSON.stringify(diagrams)};
86
+ const results = {};
87
+ for (const d of diagrams) {
88
+ try {
89
+ mermaid.initialize({ startOnLoad: false, theme: d.theme, fontFamily: 'sans-serif', securityLevel: 'loose' });
90
+ const { svg } = await mermaid.render(d.id, d.source);
91
+ results[d.id] = svg;
92
+ } catch (e) {
93
+ results[d.id] = '';
94
+ }
95
+ }
96
+ document.title = 'DONE:' + btoa(unescape(encodeURIComponent(JSON.stringify(results))));
97
+ </script></head><body></body></html>`
98
+ }
99
+
100
+ async function renderSvgBatch(
101
+ diagrams: { source: string; id: string; theme: 'default' | 'dark' }[],
102
+ ): Promise<Record<string, string>> {
103
+ if (!chromiumPath) chromiumPath = findChromium()
104
+
105
+ const dir = mkdtempSync(join(tmpdir(), 'mermaid-'))
106
+ try {
107
+ const htmlFile = join(dir, 'render.html')
108
+ writeFileSync(htmlFile, buildRenderHtml(diagrams))
109
+
110
+ const output = execSync(
111
+ `"${chromiumPath}" --headless --disable-gpu --no-sandbox --virtual-time-budget=15000 --dump-dom "file://${htmlFile}"`,
112
+ { timeout: 60000, encoding: 'utf-8', maxBuffer: 50 * 1024 * 1024, stdio: ['pipe', 'pipe', 'pipe'] },
113
+ )
114
+
115
+ const titleMatch = output.match(/<title>DONE:([\s\S]*?)<\/title>/)
116
+ if (!titleMatch) throw new Error('Chromium did not produce output')
117
+
118
+ const json = decodeURIComponent(escape(Buffer.from(titleMatch[1]!, 'base64').toString('binary')))
119
+ const results: Record<string, string> = JSON.parse(json)
120
+
121
+ // Make SVGs responsive
122
+ for (const [id, svg] of Object.entries(results)) {
123
+ if (svg) {
124
+ results[id] = svg.replace(/\bwidth="[\d.]+"/, 'width="100%"')
125
+ }
126
+ }
127
+
128
+ return results
129
+ } finally {
130
+ rmSync(dir, { recursive: true, force: true })
131
+ }
132
+ }
133
+
134
+ // ---------------------------------------------------------------------------
135
+ // Plugin
136
+ // ---------------------------------------------------------------------------
137
+
138
+ export function rehypeMermaid() {
139
+ return async (tree: UnistTree) => {
140
+ // Two kinds of entries: code-fence <pre> blocks and <MermaidDiagram> JSX elements
141
+ type CodeFenceEntry = { kind: 'fence'; node: UnistNode; pre: UnistNode; source: string }
142
+ type JsxEntry = { kind: 'jsx'; node: UnistNode; source: string }
143
+ type Entry = CodeFenceEntry | JsxEntry
144
+
145
+ const entries: Entry[] = []
146
+
147
+ visit(tree, (node: UnistNode) => {
148
+ // 1. <MermaidDiagram chart={`...`} /> JSX elements
149
+ if ((node as any).type === 'mdxJsxFlowElement' && (node as any).name === 'MermaidDiagram') {
150
+ const attrs = (node as any).attributes || []
151
+ const chartAttr = attrs.find((a: any) => a.type === 'mdxJsxAttribute' && a.name === 'chart')
152
+ const chart = extractAttrValue(chartAttr)
153
+ if (chart) {
154
+ entries.push({ kind: 'jsx', node, source: chart.trim() })
155
+ }
156
+ return
157
+ }
158
+
159
+ // 2. rehypePrettyCode wrapper div (dual themes, two pre elements)
160
+ if (
161
+ node.type === 'element' &&
162
+ node.tagName === 'div' &&
163
+ node.properties &&
164
+ 'data-rehype-pretty-code-fragment' in node.properties
165
+ ) {
166
+ const pres = (node.children || []).filter((c: UnistNode) => c.type === 'element' && c.tagName === 'pre')
167
+ const mPre = pres.find((c: UnistNode) => isMermaidCode(c))
168
+ if (!mPre) return
169
+ const src = (mPre.properties?.__rawString__ as string) || toString(mPre as Nodes)
170
+ if (src) entries.push({ kind: 'fence', node, pre: mPre, source: src.trim() })
171
+ return
172
+ }
173
+
174
+ // 3. Standalone <pre>
175
+ if (node.type === 'element' && node.tagName === 'pre' && isMermaidCode(node)) {
176
+ const src = (node.properties?.__rawString__ as string) || toString(node as Nodes)
177
+ if (src) entries.push({ kind: 'fence', node, pre: node, source: src.trim() })
178
+ }
179
+ })
180
+
181
+ if (entries.length === 0) return
182
+
183
+ // Build all diagrams in a single Chromium invocation (both themes)
184
+ const diagrams: { source: string; id: string; theme: 'default' | 'dark' }[] = []
185
+ for (let i = 0; i < entries.length; i++) {
186
+ const src = entries[i]!.source
187
+ diagrams.push({ source: src, id: `ml${i}`, theme: 'default' })
188
+ diagrams.push({ source: src, id: `md${i}`, theme: 'dark' })
189
+ }
190
+
191
+ let results: Record<string, string> = {}
192
+ try {
193
+ results = await renderSvgBatch(diagrams)
194
+ } catch (err) {
195
+ console.warn(`[rehype-mermaid] Build-time render failed:`, (err as Error).message)
196
+ return
197
+ }
198
+
199
+ for (let i = 0; i < entries.length; i++) {
200
+ const entry = entries[i]!
201
+ const lightSvg = results[`ml${i}`] || ''
202
+ const darkSvg = results[`md${i}`] || ''
203
+
204
+ if (!lightSvg && !darkSvg) {
205
+ console.warn(`[rehype-mermaid] No SVG produced for diagram ${i}`)
206
+ continue
207
+ }
208
+
209
+ if (entry.kind === 'jsx') {
210
+ const attrs = (entry.node as any).attributes || []
211
+ if (lightSvg) attrs.push(makeJsxStringAttr('lightSvg', lightSvg))
212
+ if (darkSvg) attrs.push(makeJsxStringAttr('darkSvg', darkSvg))
213
+ ;(entry.node as any).attributes = attrs
214
+ } else {
215
+ if (entry.node !== entry.pre) {
216
+ entry.node.children = [entry.pre]
217
+ }
218
+ entry.pre.properties = {
219
+ ...entry.pre.properties,
220
+ __isMermaid__: true,
221
+ __mermaidLightSvg__: lightSvg,
222
+ __mermaidDarkSvg__: darkSvg,
223
+ }
224
+ }
225
+ }
226
+ }
227
+ }
@@ -1,2 +0,0 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{Alert as n,AlertDescription as r,AlertTitle as i}from"@gentleduck/registry-ui-duckui/alert";function a({title:a,children:o,icon:s,...c}){return t(n,{...c,children:[s&&e(`span`,{className:`mr-4 text-2xl`,children:s}),a&&e(i,{children:a}),e(r,{children:o})]})}export{a as t};
2
- //# sourceMappingURL=callout-CFw8zUIz.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callout-CFw8zUIz.js","names":[],"sources":["../src/components/mdx/mdx-components/callout.tsx"],"sourcesContent":["import { Alert, AlertDescription, AlertTitle } from '@gentleduck/registry-ui-duckui/alert'\n\ninterface CalloutProps {\n icon?: string\n title?: string\n children?: React.ReactNode\n}\n\nexport function Callout({ title, children, icon, ...props }: CalloutProps) {\n return (\n <Alert {...props}>\n {icon && <span className=\"mr-4 text-2xl\">{icon}</span>}\n {title && <AlertTitle>{title}</AlertTitle>}\n <AlertDescription>{children}</AlertDescription>\n </Alert>\n )\n}\n"],"mappings":"qJAQA,SAAgB,EAAQ,CAAE,QAAO,WAAU,OAAM,GAAG,GAAuB,CACzE,OACE,EAAC,EAAA,CAAM,GAAI,YACR,GAAQ,EAAC,OAAA,CAAK,UAAU,yBAAiB,GAAY,CACrD,GAAS,EAAC,EAAA,CAAA,SAAY,EAAA,CAAmB,CAC1C,EAAC,EAAA,CAAkB,WAAA,CAA4B,GACzC"}
@@ -1,17 +0,0 @@
1
- import * as react_jsx_runtime42 from "react/jsx-runtime";
2
-
3
- //#region src/components/mdx/mdx-components/callout.d.ts
4
- interface CalloutProps {
5
- icon?: string;
6
- title?: string;
7
- children?: React.ReactNode;
8
- }
9
- declare function Callout({
10
- title,
11
- children,
12
- icon,
13
- ...props
14
- }: CalloutProps): react_jsx_runtime42.JSX.Element;
15
- //#endregion
16
- export { Callout as t };
17
- //# sourceMappingURL=callout-VcT2d48I.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"callout-VcT2d48I.d.ts","names":[],"sources":["../src/components/mdx/mdx-components/callout.tsx"],"sourcesContent":[],"mappings":";;;UAEU,YAAA;;;EAAA,QAAA,CAAA,EAGG,KAAA,CAAM,SAHG;AAMtB;AAA0B,iBAAV,OAAA,CAAU;EAAA,KAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAAmC,YAAnC,CAAA,EAA+C,mBAAA,CAAA,GAAA,CAAA,OAA/C"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./icons-bFf026bR.js";import{t}from"./use-lift-mode-Dya2HcpU.js";import{cn as n}from"@gentleduck/libs/cn";import r from"react";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{ResizableHandle as o,ResizablePanel as s,ResizablePanelGroup as c}from"@gentleduck/registry-ui-duckui/resizable";import{Tabs as l,TabsContent as u}from"@gentleduck/registry-ui-duckui/tabs";function d({block:d}){let{isLiftMode:f}=t(d.name),[p,m]=r.useState(!0),h=r.useRef(null);return a(l,{className:`relative grid w-full scroll-m-20 gap-4`,defaultValue:`preview`,id:d.name,style:{"--container-height":d.container?.height},children:[i(u,{className:`relative after:absolute after:inset-0 after:right-3 after:z-0 after:rounded-lg after:bg-muted`,value:`preview`,children:a(c,{className:`relative z-10`,direction:`horizontal`,children:[a(s,{className:n(`relative rounded-lg border bg-background`,f?`border-border/50`:`border-border`),defaultSize:100,minSize:30,ref:h,children:[p?a(`div`,{className:`absolute inset-0 z-10 flex h-[--container-height] w-full items-center justify-center gap-2 bg-background text-muted-foreground text-sm`,children:[i(e.spinner,{className:`h-4 w-4 animate-spin`}),`Loading...`]}):null,i(`iframe`,{allowTransparency:!0,className:`chunk-mode relative z-20 w-full bg-background`,height:d.container?.height??450,onLoad:()=>{m(!1)},src:`/blocks/${d.name}`})]}),i(o,{className:n(`relative hidden w-3 bg-transparent p-0 after:absolute after:top-1/2 after:right-0 after:h-8 after:w-[6px] after:translate-x-[-1px] after:-translate-y-1/2 after:rounded-full after:bg-border after:transition-all after:hover:h-10 sm:block`,f&&`invisible`)}),i(s,{defaultSize:0,minSize:0})]})}),i(u,{value:`code`,children:i(`div`,{className:`w-full overflow-hidden rounded-md [&_pre]:my-0 [&_pre]:h-[--container-height] [&_pre]:overflow-auto [&_pre]:whitespace-break-spaces [&_pre]:p-6 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed`,dangerouslySetInnerHTML:{__html:d.highlightedCode},"data-rehype-pretty-code-fragment":!0})})]})}export{d as t};
2
- //# sourceMappingURL=code-preview-cIvw8qyg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-preview-cIvw8qyg.js","names":[],"sources":["../src/components/mdx/mdx-components/code/code-preview.tsx"],"sourcesContent":["'use client'\n\nimport { Icons } from '@duck-docs/components/icons'\nimport { useLiftMode } from '@duck-docs/hooks/use-lift-mode'\nimport { cn } from '@gentleduck/libs/cn'\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from '@gentleduck/registry-ui-duckui/resizable'\nimport { Tabs, TabsContent } from '@gentleduck/registry-ui-duckui/tabs'\nimport React from 'react'\nimport type { ImperativePanelHandle } from 'react-resizable-panels'\n\ntype Block = {\n name: string\n container?: {\n height?: number\n }\n highlightedCode: string\n}\n\nexport function CodePreview({ block }: { block: Block & { hasLiftMode: boolean } }) {\n const { isLiftMode } = useLiftMode(block.name)\n const [isLoading, setIsLoading] = React.useState(true)\n const ref = React.useRef<ImperativePanelHandle>(null)\n\n return (\n <Tabs\n className=\"relative grid w-full scroll-m-20 gap-4\"\n defaultValue=\"preview\"\n id={block.name}\n style={\n {\n '--container-height': block.container?.height,\n } as React.CSSProperties\n }>\n <TabsContent\n className=\"relative after:absolute after:inset-0 after:right-3 after:z-0 after:rounded-lg after:bg-muted\"\n value=\"preview\">\n <ResizablePanelGroup className=\"relative z-10\" direction=\"horizontal\">\n <ResizablePanel\n className={cn(\n 'relative rounded-lg border bg-background',\n isLiftMode ? 'border-border/50' : 'border-border',\n )}\n defaultSize={100}\n minSize={30}\n ref={ref}>\n {isLoading ? (\n <div className=\"absolute inset-0 z-10 flex h-[--container-height] w-full items-center justify-center gap-2 bg-background text-muted-foreground text-sm\">\n <Icons.spinner className=\"h-4 w-4 animate-spin\" />\n Loading...\n </div>\n ) : null}\n <iframe\n allowTransparency\n className=\"chunk-mode relative z-20 w-full bg-background\"\n height={block.container?.height ?? 450}\n onLoad={() => {\n setIsLoading(false)\n }}\n src={`/blocks/${block.name}`}\n />\n </ResizablePanel>\n <ResizableHandle\n className={cn(\n 'relative hidden w-3 bg-transparent p-0 after:absolute after:top-1/2 after:right-0 after:h-8 after:w-[6px] after:translate-x-[-1px] after:-translate-y-1/2 after:rounded-full after:bg-border after:transition-all after:hover:h-10 sm:block',\n isLiftMode && 'invisible',\n )}\n />\n <ResizablePanel defaultSize={0} minSize={0} />\n </ResizablePanelGroup>\n </TabsContent>\n <TabsContent value=\"code\">\n <div\n className=\"w-full overflow-hidden rounded-md [&_pre]:my-0 [&_pre]:h-[--container-height] [&_pre]:overflow-auto [&_pre]:whitespace-break-spaces [&_pre]:p-6 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed\"\n dangerouslySetInnerHTML={{ __html: block.highlightedCode }}\n data-rehype-pretty-code-fragment\n />\n </TabsContent>\n </Tabs>\n )\n}\n"],"mappings":"uYAkBA,SAAgB,EAAY,CAAE,SAAsD,CAClF,GAAM,CAAE,cAAe,EAAY,EAAM,KAAK,CACxC,CAAC,EAAW,GAAgB,EAAM,SAAS,GAAK,CAChD,EAAM,EAAM,OAA8B,KAAK,CAErD,OACE,EAAC,EAAA,CACC,UAAU,yCACV,aAAa,UACb,GAAI,EAAM,KACV,MACE,CACE,qBAAsB,EAAM,WAAW,OACxC,WAEH,EAAC,EAAA,CACC,UAAU,gGACV,MAAM,mBACN,EAAC,EAAA,CAAoB,UAAU,gBAAgB,UAAU,uBACvD,EAAC,EAAA,CACC,UAAW,EACT,2CACA,EAAa,mBAAqB,gBACnC,CACD,YAAa,IACb,QAAS,GACJ,gBACJ,EACC,EAAC,MAAA,CAAI,UAAU,mJACb,EAAC,EAAM,QAAA,CAAQ,UAAU,uBAAA,CAAyB,CAAA,aAAA,EAE9C,CACJ,KACJ,EAAC,SAAA,CACC,kBAAA,GACA,UAAU,gDACV,OAAQ,EAAM,WAAW,QAAU,IACnC,WAAc,CACZ,EAAa,GAAM,EAErB,IAAK,WAAW,EAAM,QACtB,CAAA,EACa,CACjB,EAAC,EAAA,CACC,UAAW,EACT,8OACA,GAAc,YACf,CAAA,CACD,CACF,EAAC,EAAA,CAAe,YAAa,EAAG,QAAS,GAAK,GAC1B,EACV,CACd,EAAC,EAAA,CAAY,MAAM,gBACjB,EAAC,MAAA,CACC,UAAU,4MACV,wBAAyB,CAAE,OAAQ,EAAM,gBAAiB,CAC1D,mCAAA,IACA,EACU,CAAA,EACT"}
@@ -1,2 +0,0 @@
1
- import{n as e}from"./context-Bd4Sf8r8.js";import{cn as t}from"@gentleduck/libs/cn";import{Button as n}from"@gentleduck/registry-ui-duckui/button";import{Circle as r,Command as i,CornerDownLeft as a,FileIcon as o,Moon as s,Sun as c}from"lucide-react";import*as l from"react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import{Separator as p}from"@gentleduck/registry-ui-duckui/separator";import{useRouter as m}from"next/navigation";import{CommandDialog as h,CommandEmpty as g,CommandGroup as _,CommandInput as v,CommandItem as y,CommandList as b,CommandSeparator as x,CommandShortcut as S,useCommandRefsContext as C}from"@gentleduck/registry-ui-duckui/command";import{useKeyCommands as w}from"@gentleduck/vim/react";import{useTheme as T}from"next-themes";function E(){let a=m(),[p,C]=l.useState(!1),{setTheme:w}=T(),E=e(),O=l.useRef(null),k=[...E.sidebarNav.map(e=>({items:e.items?.map(e=>({action:()=>a.push(e.href),icon:d(r,{className:`mr-2 h-3 w-3`}),name:e.title})),title:e.title})),{items:[{action:()=>w(`light`),icon:d(c,{className:`mr-2 h-4 w-4`}),name:`Light`},{action:()=>w(`dark`),icon:d(s,{className:`mr-2 h-4 w-4`}),name:`Dark`},{action:()=>w(`system`),icon:d(o,{className:`mr-2 h-4 w-4`}),name:`System`}],title:`Theme`}];return f(u,{children:[f(n,{className:t(`relative h-8 w-full bg-muted/50 text-muted-foreground text-sm shadow-none md:w-40 lg:w-64 ltr:pr-2 rtl:pl-2 [&>div]:w-full [&>div]:justify-between`),onClick:()=>C(!0),size:`sm`,variant:`outline`,children:[d(`span`,{className:`hidden lg:inline-flex`,children:`Search documentation...`}),d(`span`,{className:`inline-flex lg:hidden`,children:`Search...`}),f(S,{className:`bg-secondary`,keys:`ctrl+k`,onKeysPressed:()=>{C(!p),window.event?.preventDefault()},children:[d(i,{className:`!size-3`}),d(`span`,{className:`text-md`,children:`K`})]})]}),f(h,{onOpenChange:C,open:p,children:[d(v,{autoFocus:!0,placeholder:`Search...`}),d(g,{children:`No results found.`}),d(b,{className:`h-[550px] max-h-full w-90 md:w-full`,children:k.map((e,t)=>f(l.Fragment,{children:[d(_,{heading:e.title,children:e.items?.map(e=>f(y,{id:e.name,onClick:()=>{C(!1),e.action(),O.current?.scrollTo(0,0),O.current?.scrollIntoView({behavior:`smooth`,block:`start`,inline:`start`})},children:[e.icon,d(`span`,{children:e.name})]},e.name))}),t!==k.length-1&&d(x,{})]},e.title))}),d(D,{})]})]})}function D(){let{selectedItem:r}=C(),o=e().sidebarNav.flatMap(e=>e.items??[]).find(e=>e.title===r?.innerText);return w({"ctrl+shift+c":{description:`Copy command`,execute:()=>navigator.clipboard.writeText(`pnpm dlx @gentleduck/cli add `+r?.innerText.toLowerCase().replace(/ /g,`-`)),name:`ctrl+shift+c`}}),d(`div`,{className:`hidden w-full items-center justify-between gap-4 border-t px-2 pt-2 lg:flex`,children:f(`div`,{className:`flex w-full items-center justify-between gap-4`,children:[r?.innerText&&f(n,{className:t(`px-2`),size:`sm`,variant:`outline`,children:[d(a,{}),d(p,{className:`m-0 h-4 p-0`,orientation:`vertical`}),r?.innerText]}),r?.innerText&&o?.title?f(n,{className:t(`px-2`),size:`sm`,variant:`outline`,children:[f(`div`,{className:`flex items-center gap-1`,children:[d(i,{className:`!size-3`}),d(`p`,{className:`text-md`,children:`C`})]}),d(p,{className:`m-0 h-4 p-0`,orientation:`vertical`}),f(`div`,{className:`flex items-center gap-1`,children:[d(`span`,{children:`pnpm dlx @gentleduck/cli add`}),d(`span`,{className:`text-blue-400`,children:o.title.toLowerCase()})]})]}):f(`p`,{className:`my-auto h-fit w-full whitespace-nowrap text-right text-muted-foreground text-sm`,children:[d(`span`,{className:`whitespace-nowrap font-medium text-sm`,children:`Command palette`}),` for the documentation content.`]})]})})}export{E as t};
2
- //# sourceMappingURL=command-menu-BVebU1JI.js.map
@@ -1,7 +0,0 @@
1
- import * as react_jsx_runtime58 from "react/jsx-runtime";
2
-
3
- //#region src/components/layouts/command-menu/command-menu.d.ts
4
- declare function CommandMenu(): react_jsx_runtime58.JSX.Element;
5
- //#endregion
6
- export { CommandMenu as t };
7
- //# sourceMappingURL=command-menu-C8RLyuBe.d.ts.map
@@ -1,2 +0,0 @@
1
- import{t as e}from"./copy-button-D50DXq56.js";import{a as t}from"./context-Bd4Sf8r8.js";import{t as n}from"./icons-bFf026bR.js";import{cn as r}from"@gentleduck/libs/cn";import{Button as i}from"@gentleduck/registry-ui-duckui/button";import{Crown as a}from"lucide-react";import*as o from"react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{Tabs as l,TabsContent as u,TabsList as d,TabsTrigger as f}from"@gentleduck/registry-ui-duckui/tabs";function p({name:i,children:a,className:p,extractClassname:g,extractedClassNames:_,align:v=`center`,description:y,hideCode:b=!1,showSettings:x=!1,...S}){let C=o.Children.toArray(a)[0],w=t(),T=o.useMemo(()=>{if(!w)return s(`p`,{className:`text-muted-foreground text-sm`,children:`Registry index is not configured for this docs app.`});let e=w[i]?.component;return e?s(e,{}):c(`p`,{className:`text-muted-foreground text-sm`,children:[`Component `,s(`code`,{className:`relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm`,children:i}),` `,`not found in registry.`]})},[i,w]),E=o.useMemo(()=>{if(C?.props[`data-rehype-pretty-code-fragment`]!==void 0){let e=o.Children.toArray(C.props.children);return e[1]?.props?.value||e[1]?.props?.__rawString__||null}},[C]);return s(`div`,{className:r(`group relative my-4 flex flex-col [&_div[data-slot="placeholder"]]:h-[512px]`,p),...S,children:c(l,{className:`relative mr-auto w-full`,defaultValue:`preview`,children:[s(`div`,{className:`flex items-center justify-between`,children:!b&&s(d,{className:`w-full justify-start overflow-x-auto rounded-none border-b bg-transparent p-0 [&_button]:shadow-none`,children:h.map((e,t)=>s(f,{className:`cursor-pointer rounded-none border-b-[2px] border-b-transparent px-12 py-2 [&[aria-selected='true']]:border-b-primary [&[aria-selected='true']]:shadow-none [&_input]:focus-visible:shadow-none [&_input]:focus-visible:ring-transparent [&_input]:focus-visible:ring-offset-0`,value:e.value,children:e.name},t))})}),c(u,{className:`relative min-w-2/5 rounded-md border`,value:`preview`,children:[c(`div`,{className:`absolute flex w-full items-center justify-between p-4`,children:[s(`span`,{className:`text-muted-foreground text-sm`}),s(`div`,{className:`flex items-center gap-2`,children:s(e,{value:E,variant:`outline`})})]}),s(`div`,{className:r(`preview flex h-[500px] w-full justify-center overflow-auto p-10`,{"items-center":v===`center`,"items-end":v===`end`,"items-start":v===`start`}),"duck-preview":``,children:s(o.Suspense,{fallback:c(`div`,{className:`flex w-full items-center justify-center text-muted-foreground text-sm`,children:[s(n.spinner,{className:`mr-2 h-4 w-4 animate-spin`}),`Loading...`]}),children:T})})]}),s(u,{className:`[&_[data-rehype-pretty-code-fragment]]:!m-0 relative mt-2 [&>div>div>button]:top-3 [&>div>div>button]:right-3 [&>div>div]:mb-0 [&>div]:rounded-lg [&>div]:border [&>div]:bg-muted/40 [&_pre]:h-[502px]`,value:`code`,children:C}),s(m,{})]})})}const m=()=>c(u,{className:`relative overflow-hidden`,value:`build`,children:[s(`div`,{className:`h-[500px] overflow-hidden rounded-lg`,children:s(`img`,{alt:`build`,className:`object-cover`,src:`/builder.png`})}),s(`div`,{className:`absolute inset-0 top-0 left-0 flex h-[500px] flex-col items-center justify-center gap-4 rounded-md bg-zinc-700/10 px-4 py-2 backdrop-blur-sm dark:bg-zinc-700/50`,children:s(`div`,{className:`flex items-center gap-4`,children:c(i,{className:`rounded-sm font-bold`,size:`sm`,children:[s(a,{}),s(`span`,{children:`Coming soon`})]})})})]}),h=[{name:`Preview`,value:`preview`},{name:`Code`,value:`code`}];export{p as n,h as r,m as t};
2
- //# sourceMappingURL=component-preview-CL6guE-v.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component-preview-CL6guE-v.js","names":["React","Button"],"sources":["../src/components/mdx/mdx-components/code/component-preview.tsx"],"sourcesContent":["'use client'\n\nimport { CopyButton } from '@duck-docs/components/copy-button'\nimport { Icons } from '@duck-docs/components/icons'\nimport { useRegistryIndex } from '@duck-docs/context'\nimport { cn } from '@gentleduck/libs/cn'\nimport { Button } from '@gentleduck/registry-ui-duckui/button'\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '@gentleduck/registry-ui-duckui/tabs'\nimport { Crown } from 'lucide-react'\nimport * as React from 'react'\n\ninterface ComponentPreviewProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n extractClassname?: boolean\n extractedClassNames?: string\n align?: 'center' | 'start' | 'end'\n description?: string\n hideCode?: boolean\n showSettings?: boolean\n}\n\nexport function ComponentPreview({\n name,\n children,\n className,\n extractClassname,\n extractedClassNames,\n align = 'center',\n description,\n hideCode = false,\n showSettings = false,\n ...props\n}: ComponentPreviewProps) {\n const Codes = React.Children.toArray(children) as React.ReactElement[]\n const Code = Codes[0]\n const registryIndex = useRegistryIndex()\n\n const Preview = React.useMemo(() => {\n if (!registryIndex) {\n return <p className=\"text-muted-foreground text-sm\">Registry index is not configured for this docs app.</p>\n }\n\n const Component = registryIndex[name]?.component\n\n if (!Component) {\n return (\n <p className=\"text-muted-foreground text-sm\">\n Component <code className=\"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm\">{name}</code>{' '}\n not found in registry.\n </p>\n )\n }\n\n return <Component />\n }, [name, registryIndex])\n\n const codeString = React.useMemo(() => {\n if (\n // ! FIX:\n // @ts-ignore 'Code.props' is of type 'unknown'.ts(18046)\n typeof Code?.props['data-rehype-pretty-code-fragment'] !== 'undefined'\n ) {\n const Button = React.Children.toArray(\n // ! FIX:\n // @ts-expect-error Property 'children' does not exist on type '{}'.ts(2339)\n Code.props.children,\n ) as React.ReactElement[]\n // ! FIX:\n // @ts-expect-error Property '__rawString__' does not exist on type '{}'.ts(2339)\n return Button[1]?.props?.value || Button[1]?.props?.__rawString__ || null\n }\n }, [Code])\n\n return (\n <div\n className={cn('group relative my-4 flex flex-col [&_div[data-slot=\"placeholder\"]]:h-[512px]', className)}\n {...props}>\n <Tabs className=\"relative mr-auto w-full\" defaultValue=\"preview\">\n <div className=\"flex items-center justify-between\">\n {!hideCode && (\n <TabsList className=\"w-full justify-start overflow-x-auto rounded-none border-b bg-transparent p-0 [&_button]:shadow-none\">\n {TABS.map((tab, idx) => (\n <TabsTrigger\n className=\"cursor-pointer rounded-none border-b-[2px] border-b-transparent px-12 py-2 [&[aria-selected='true']]:border-b-primary [&[aria-selected='true']]:shadow-none [&_input]:focus-visible:shadow-none [&_input]:focus-visible:ring-transparent [&_input]:focus-visible:ring-offset-0\"\n key={idx}\n value={tab.value}>\n {tab.name}\n </TabsTrigger>\n ))}\n </TabsList>\n )}\n </div>\n <TabsContent className=\"relative min-w-2/5 rounded-md border\" value=\"preview\">\n <div className=\"absolute flex w-full items-center justify-between p-4\">\n <span className=\"text-muted-foreground text-sm\">{}</span>\n <div className=\"flex items-center gap-2\">\n <CopyButton value={codeString} variant=\"outline\" />\n </div>\n </div>\n <div\n className={cn('preview flex h-[500px] w-full justify-center overflow-auto p-10', {\n 'items-center': align === 'center',\n 'items-end': align === 'end',\n 'items-start': align === 'start',\n })}\n duck-preview=\"\">\n <React.Suspense\n fallback={\n <div className=\"flex w-full items-center justify-center text-muted-foreground text-sm\">\n <Icons.spinner className=\"mr-2 h-4 w-4 animate-spin\" />\n Loading...\n </div>\n }>\n {Preview}\n </React.Suspense>\n </div>\n </TabsContent>\n <TabsContent\n className=\"[&_[data-rehype-pretty-code-fragment]]:!m-0 relative mt-2 [&>div>div>button]:top-3 [&>div>div>button]:right-3 [&>div>div]:mb-0 [&>div]:rounded-lg [&>div]:border [&>div]:bg-muted/40 [&_pre]:h-[502px]\"\n value=\"code\">\n {Code}\n </TabsContent>\n <BuildTab />\n </Tabs>\n </div>\n )\n}\n\nexport const BuildTab = () => {\n return (\n <TabsContent className=\"relative overflow-hidden\" value=\"build\">\n <div className=\"h-[500px] overflow-hidden rounded-lg\">\n <img alt=\"build\" className=\"object-cover\" src=\"/builder.png\" />\n </div>\n\n <div className=\"absolute inset-0 top-0 left-0 flex h-[500px] flex-col items-center justify-center gap-4 rounded-md bg-zinc-700/10 px-4 py-2 backdrop-blur-sm dark:bg-zinc-700/50\">\n <div className=\"flex items-center gap-4\">\n <Button className=\"rounded-sm font-bold\" size={'sm'}>\n <Crown />\n <span>Coming soon</span>\n </Button>\n </div>\n </div>\n </TabsContent>\n )\n}\n\nexport const TABS = [\n {\n name: 'Preview',\n value: 'preview',\n },\n {\n name: 'Code',\n value: 'code',\n },\n // {\n // name: 'Benchmark',\n // value: 'benchmark',\n // },\n]\n"],"mappings":"kcAqBA,SAAgB,EAAiB,CAC/B,OACA,WACA,YACA,mBACA,sBACA,QAAQ,SACR,cACA,WAAW,GACX,eAAe,GACf,GAAG,GACqB,CAExB,IAAM,EADQA,EAAM,SAAS,QAAQ,EAAS,CAC3B,GACb,EAAgB,GAAkB,CAElC,EAAUA,EAAM,YAAc,CAClC,GAAI,CAAC,EACH,OAAO,EAAC,IAAA,CAAE,UAAU,yCAAgC,uDAAuD,CAG7G,IAAM,EAAY,EAAc,IAAO,UAWvC,OATK,EASE,EAAC,EAAA,EAAA,CAAY,CAPhB,EAAC,IAAA,CAAE,UAAU,0CAAgC,aACjC,EAAC,OAAA,CAAK,UAAU,+EAAuE,GAAY,CAAC,IAAI,2BAEhH,EAKP,CAAC,EAAM,EAAc,CAAC,CAEnB,EAAaA,EAAM,YAAc,CACrC,GAGS,GAAM,MAAM,sCAAwC,OAC3D,CACA,IAAMC,EAASD,EAAM,SAAS,QAG5B,EAAK,MAAM,SACZ,CAGD,OAAOC,EAAO,IAAI,OAAO,OAASA,EAAO,IAAI,OAAO,eAAiB,OAEtE,CAAC,EAAK,CAAC,CAEV,OACE,EAAC,MAAA,CACC,UAAW,EAAG,+EAAgF,EAAU,CACxG,GAAI,WACJ,EAAC,EAAA,CAAK,UAAU,0BAA0B,aAAa,oBACrD,EAAC,MAAA,CAAI,UAAU,6CACZ,CAAC,GACA,EAAC,EAAA,CAAS,UAAU,gHACjB,EAAK,KAAK,EAAK,IACd,EAAC,EAAA,CACC,UAAU,iRAEV,MAAO,EAAI,eACV,EAAI,MAFA,EAGO,CACd,EACO,EAET,CACN,EAAC,EAAA,CAAY,UAAU,uCAAuC,MAAM,oBAClE,EAAC,MAAA,CAAI,UAAU,kEACb,EAAC,OAAA,CAAK,UAAU,gCAAA,CAAyC,CACzD,EAAC,MAAA,CAAI,UAAU,mCACb,EAAC,EAAA,CAAW,MAAO,EAAY,QAAQ,WAAY,EAC/C,CAAA,EACF,CACN,EAAC,MAAA,CACC,UAAW,EAAG,kEAAmE,CAC/E,eAAgB,IAAU,SAC1B,YAAa,IAAU,MACvB,cAAe,IAAU,QAC1B,CAAC,CACF,eAAa,YACb,EAACD,EAAM,SAAA,CACL,SACE,EAAC,MAAA,CAAI,UAAU,kFACb,EAAC,EAAM,QAAA,CAAQ,UAAU,4BAAA,CAA8B,CAAA,aAAA,EAEnD,UAEP,GACc,EACb,CAAA,EACM,CACd,EAAC,EAAA,CACC,UAAU,yMACV,MAAM,gBACL,GACW,CACd,EAAC,EAAA,EAAA,CAAW,GACP,EACH,CAIV,MAAa,MAET,EAAC,EAAA,CAAY,UAAU,2BAA2B,MAAM,kBACtD,EAAC,MAAA,CAAI,UAAU,gDACb,EAAC,MAAA,CAAI,IAAI,QAAQ,UAAU,eAAe,IAAI,gBAAiB,EAC3D,CAEN,EAAC,MAAA,CAAI,UAAU,4KACb,EAAC,MAAA,CAAI,UAAU,mCACb,EAAC,EAAA,CAAO,UAAU,uBAAuB,KAAM,eAC7C,EAAC,EAAA,EAAA,CAAQ,CACT,EAAC,OAAA,CAAA,SAAK,cAAA,CAAkB,CAAA,EACjB,EACL,EACF,CAAA,EACM,CAIL,EAAO,CAClB,CACE,KAAM,UACN,MAAO,UACR,CACD,CACE,KAAM,OACN,MAAO,OACR,CAKF"}
@@ -1,5 +0,0 @@
1
- import{t as e}from"./figcaption-block-DWZhs-6i.js";import{jsx as t,jsxs as n}from"react/jsx-runtime";import{Separator as r}from"@gentleduck/registry-ui-duckui/separator";import{Tabs as i,TabsContent as a,TabsList as o,TabsTrigger as s}from"@gentleduck/registry-ui-duckui/tabs";function c({children:c,className:l,...u}){if(!c.length)return c;let d=String(c[0].props.children[0].props.__rawString__).split(`
2
- `)[0]?.replace(`//`,``);return n(i,{className:`rounded-md border border-border bg-muted/40`,defaultValue:d,children:[t(o,{className:`w-[622px] justify-start overflow-x-auto bg-transparent px-2 py-2`,children:c.map((e,n)=>{let r=String(e.props.children[0].props.__rawString__).split(`
3
- `)[0]?.replace(`//`,``);return t(s,{className:`aria-[selected='true']:bg-muted`,value:r,children:r},n)})}),t(r,{}),c.map((r,i)=>{let o=String(r.props.children[0].props.__rawString__).split(`
4
- `)[0]?.replace(`//`,``);return n(a,{className:`relative m-0 bg-transparent focus-visible:shadow-none focus-visible:outline-none focus-visible:ring-0 [&>div>div>button]:top-1 [&>div>div>button]:right-1 [&>div>div]:m-0`,value:o,children:[t(e,{children:o}),r]},i)})]})}export{c as t};
5
- //# sourceMappingURL=component-source-BCBDjfEb.js.map
@@ -1,12 +0,0 @@
1
- import { r as DocsEntry } from "./context.types-DgaGu8Ly.js";
2
- import * as react_jsx_runtime43 from "react/jsx-runtime";
3
-
4
- //#region src/components/mdx/mdx-components/components-list.d.ts
5
- declare function ComponentsList({
6
- components
7
- }: {
8
- components?: DocsEntry[];
9
- }): react_jsx_runtime43.JSX.Element;
10
- //#endregion
11
- export { ComponentsList as t };
12
- //# sourceMappingURL=components-list-ZLlUD-Nr.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-button-Bh7DmVLN.d.ts","names":[],"sources":["../src/components/copy-button/copy-button.tsx"],"sourcesContent":[],"mappings":";;;;;iBAesB,uBAAA,wBAA+C,QAAK;iBAO1D,UAAA;;;;;;GAAqE,kBAAe,mBAAA,CAAA,GAAA,CAAA;iBAmCpF,kBAAA;;;;;GAA+D,0BAAuB,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./events-D55YvIRi.js";import{cn as t}from"@gentleduck/libs/cn";import{Button as n}from"@gentleduck/registry-ui-duckui/button";import{DropdownMenu as r,DropdownMenuContent as i,DropdownMenuItem as a,DropdownMenuTrigger as o}from"@gentleduck/registry-ui-duckui/dropdown-menu";import{CheckIcon as s,ClipboardIcon as c,Copy as l}from"lucide-react";import*as u from"react";import{jsx as d,jsxs as f}from"react/jsx-runtime";async function p(t,n){navigator.clipboard.writeText(t),n&&e(n)}function m({value:e,className:r,variant:i=`ghost`,event:a,...o}){let[c,f]=u.useState(!1);return u.useEffect(()=>{setTimeout(()=>{f(!1)},3e3)},[c]),d(n,{"aria-label":`Copy`,className:t(`[&_svg]:!size-3.5 z-50 size-7 rounded-sm shadow-none`,r),icon:d(c?s:l,{}),onClick:()=>{p(e,a?{name:a,properties:{code:e}}:void 0),f(!0)},size:`icon`,variant:i,...o})}function h({value:e,classNames:l,className:m,...h}){let[g,_]=u.useState(!1);u.useEffect(()=>{setTimeout(()=>{_(!1)},2e3)},[g]);let v=u.useCallback(e=>{p(e),_(!0)},[]);return f(r,{placement:`bottom-end`,children:[d(o,{asChild:!0,children:d(n,{className:t(`!size-6.5 relative z-50 [&_svg]:w-3.5`,m),icon:d(g?s:c,{}),size:`icon`,variant:`outline`,...h})}),f(i,{children:[d(a,{onClick:()=>v(e),children:`Component`}),d(a,{onClick:()=>v(l),children:`Classname`})]})]})}export{h as n,p as r,m as t};
2
- //# sourceMappingURL=copy-button-D50DXq56.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-button-D50DXq56.js","names":["React","value"],"sources":["../src/components/copy-button/copy-button.tsx"],"sourcesContent":["'use client'\n\nimport { type Event, trackEvent } from '@duck-docs/lib/events'\nimport { cn } from '@gentleduck/libs/cn'\nimport { Button } from '@gentleduck/registry-ui-duckui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@gentleduck/registry-ui-duckui/dropdown-menu'\nimport { CheckIcon, ClipboardIcon, Copy } from 'lucide-react'\nimport * as React from 'react'\nimport type { CopyButtonProps, CopyWithClassNamesProps } from './copy-button.types'\n\nexport async function copyToClipboardWithMeta(value: string, event?: Event) {\n navigator.clipboard.writeText(value)\n if (event) {\n trackEvent(event)\n }\n}\n\nexport function CopyButton({ value, className, variant = 'ghost', event, ...props }: CopyButtonProps) {\n const [hasCopied, setHasCopied] = React.useState(false)\n\n React.useEffect(() => {\n setTimeout(() => {\n setHasCopied(false)\n }, 3000)\n }, [hasCopied])\n\n return (\n <Button\n aria-label=\"Copy\"\n className={cn('[&_svg]:!size-3.5 z-50 size-7 rounded-sm shadow-none', className)}\n icon={hasCopied ? <CheckIcon /> : <Copy />}\n onClick={() => {\n copyToClipboardWithMeta(\n value,\n event\n ? {\n name: event,\n properties: {\n code: value,\n },\n }\n : undefined,\n )\n setHasCopied(true)\n }}\n size=\"icon\"\n variant={variant}\n {...props}\n />\n )\n}\n\nexport function CopyWithClassNames({ value, classNames, className, ...props }: CopyWithClassNamesProps) {\n const [hasCopied, setHasCopied] = React.useState(false)\n\n React.useEffect(() => {\n setTimeout(() => {\n setHasCopied(false)\n }, 2000)\n }, [hasCopied])\n\n const copyToClipboard = React.useCallback((value: string) => {\n copyToClipboardWithMeta(value)\n setHasCopied(true)\n }, [])\n\n return (\n <DropdownMenu placement=\"bottom-end\">\n <DropdownMenuTrigger asChild>\n <Button\n className={cn('!size-6.5 relative z-50 [&_svg]:w-3.5', className)}\n icon={hasCopied ? <CheckIcon /> : <ClipboardIcon />}\n size=\"icon\"\n variant=\"outline\"\n {...props}></Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n <DropdownMenuItem onClick={() => copyToClipboard(value)}>Component</DropdownMenuItem>\n <DropdownMenuItem onClick={() => copyToClipboard(classNames)}>Classname</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n"],"mappings":"qbAeA,eAAsB,EAAwB,EAAe,EAAe,CAC1E,UAAU,UAAU,UAAU,EAAM,CAChC,GACF,EAAW,EAAM,CAIrB,SAAgB,EAAW,CAAE,QAAO,YAAW,UAAU,QAAS,QAAO,GAAG,GAA0B,CACpG,GAAM,CAAC,EAAW,GAAgBA,EAAM,SAAS,GAAM,CAQvD,OANA,EAAM,cAAgB,CACpB,eAAiB,CACf,EAAa,GAAM,EAClB,IAAK,EACP,CAAC,EAAU,CAAC,CAGb,EAAC,EAAA,CACC,aAAW,OACX,UAAW,EAAG,uDAAwD,EAAU,CAChF,KAAkB,EAAZ,EAAa,EAAgB,EAAhB,EAAA,CAAuB,CAC1C,YAAe,CACb,EACE,EACA,EACI,CACE,KAAM,EACN,WAAY,CACV,KAAM,EACP,CACF,CACD,IAAA,GACL,CACD,EAAa,GAAK,EAEpB,KAAK,OACI,UACT,GAAI,GACJ,CAIN,SAAgB,EAAmB,CAAE,QAAO,aAAY,YAAW,GAAG,GAAkC,CACtG,GAAM,CAAC,EAAW,GAAgBA,EAAM,SAAS,GAAM,CAEvD,EAAM,cAAgB,CACpB,eAAiB,CACf,EAAa,GAAM,EAClB,IAAK,EACP,CAAC,EAAU,CAAC,CAEf,IAAM,EAAkBA,EAAM,YAAa,GAAkB,CAC3D,EAAwBC,EAAM,CAC9B,EAAa,GAAK,EACjB,EAAE,CAAC,CAEN,OACE,EAAC,EAAA,CAAa,UAAU,uBACtB,EAAC,EAAA,CAAoB,QAAA,YACnB,EAAC,EAAA,CACC,UAAW,EAAG,wCAAyC,EAAU,CACjE,KAAkB,EAAZ,EAAa,EAAgB,EAAhB,EAAA,CAAgC,CACnD,KAAK,OACL,QAAQ,UACR,GAAI,GAAgB,EACF,CACtB,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,CAAiB,YAAe,EAAgB,EAAM,UAAE,aAA4B,CACrF,EAAC,EAAA,CAAiB,YAAe,EAAgB,EAAW,UAAE,aAA4B,CAAA,CAAA,CACtE,CAAA,EACT"}
@@ -1,19 +0,0 @@
1
- import { t as Event } from "./events-BKAEw9TQ.js";
2
- import * as _gentleduck_registry_ui_duckui_button0 from "@gentleduck/registry-ui-duckui/button";
3
- import * as _gentleduck_registry_ui_duckui_dropdown_menu0 from "@gentleduck/registry-ui-duckui/dropdown-menu";
4
- import * as React$1 from "react";
5
-
6
- //#region src/components/copy-button/copy-button.types.d.ts
7
- type DropdownMenuTriggerProps = React$1.ComponentPropsWithoutRef<typeof _gentleduck_registry_ui_duckui_dropdown_menu0.DropdownMenuTrigger>;
8
- type CopyWithClassNamesProps = DropdownMenuTriggerProps & {
9
- value: string;
10
- classNames: string;
11
- className?: string;
12
- };
13
- type CopyButtonProps = _gentleduck_registry_ui_duckui_button0.ButtonProps & {
14
- value: string;
15
- event?: Event['name'];
16
- };
17
- //#endregion
18
- export { CopyWithClassNamesProps as n, DropdownMenuTriggerProps as r, CopyButtonProps as t };
19
- //# sourceMappingURL=copy-button.types-D6D1XKDN.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"copy-button.types-D6D1XKDN.d.ts","names":[],"sources":["../src/components/copy-button/copy-button.types.ts"],"sourcesContent":[],"mappings":";;;;;;KAGY,wBAAA,GAA2B,OAAA,CAAM,gCAAT,6CAAA,CAC4B;KAGpD,uBAAA,GAA0B;;;EAJ1B,SAAA,CAAA,EAAA,MAAA;AAIZ,CAAA;AAMY,KAAA,eAAA,GAAe,sCAAA,CAAmD,WAAA,GAE/D;;UAAL"}
@@ -1,2 +0,0 @@
1
- import{n as e}from"./context-Bd4Sf8r8.js";import{cn as t}from"@gentleduck/libs/cn";import{buttonVariants as n}from"@gentleduck/registry-ui-duckui/button";import{ArrowLeft as r,ArrowRight as i,ChevronLeft as a,ChevronRight as o}from"lucide-react";import{jsx as s,jsxs as c}from"react/jsx-runtime";import l from"next/link";function u({doc:r}){let i=f(r,e());return i?c(`div`,{className:`flex flex-row items-center justify-between`,children:[i?.prev?.href&&c(l,{className:t(n({className:`flex items-center`,variant:`outline`})),href:i.prev.href,children:[s(a,{className:`mr-2 size-4`}),s(`span`,{children:i.prev.title})]}),i?.next?.href&&c(l,{className:t(n({className:`flex items-center`,variant:`outline`})),href:i.next.href,children:[s(`span`,{children:i.next.title}),s(o,{className:`ml-2 size-4`})]})]}):null}function d({doc:a}){let o=f(a,e());return o?c(`div`,{className:`flex flex-row items-center justify-between`,children:[o?.prev?.href&&s(l,{className:t(n({className:`[&>svg]:!size-4 size-8 items-center`,size:`sm`,variant:`secondary`})),href:o.prev.href,children:s(r,{})}),o?.next?.href&&s(l,{className:t(n({className:`[&>svg]:!size-4 ml-2 size-8 items-center`,size:`sm`,variant:`secondary`})),href:o.next.href,children:s(i,{})})]}):null}function f(e,t){let n=[null,...p((e.title.startsWith(`/docs/charts`)?t.chartsNav:t.sidebarNav)??[]),null],r=n.findIndex(t=>t?.href?.includes(e.slug??e.title)),i=r===0?null:n[r-1];return{next:r===n.length-1?null:n[r+1],prev:i}}function p(e){return e.reduce((e,t)=>e.concat(t.items?.length?p(t.items):t),[]).filter(e=>!e?.disabled)}export{f as i,d as n,p as r,u as t};
2
- //# sourceMappingURL=docs-pager-2p2cKZcg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-pager-2p2cKZcg.js","names":[],"sources":["../src/components/docs/docs-pager.tsx"],"sourcesContent":["'use client'\n\nimport { type DocsConfig, useDocsConfig } from '@duck-docs/context'\nimport type { NavItem, NavItemWithChildren } from '@duck-docs/types/nav'\nimport { cn } from '@gentleduck/libs/cn'\nimport { buttonVariants } from '@gentleduck/registry-ui-duckui/button'\nimport { ArrowLeft, ArrowRight, ChevronLeft, ChevronRight } from 'lucide-react'\nimport Link from 'next/link'\n\ninterface DocsPagerProps {\n doc: {\n slug?: string\n title: string\n }\n}\n\nexport function DocsPagerBottom({ doc }: DocsPagerProps) {\n const docsConfig = useDocsConfig()\n const pager = getPagerForDoc(doc, docsConfig)\n\n if (!pager) {\n return null\n }\n\n return (\n <div className=\"flex flex-row items-center justify-between\">\n {pager?.prev?.href && (\n <Link\n className={cn(\n buttonVariants({\n className: 'flex items-center',\n variant: 'outline',\n }),\n )}\n href={pager.prev.href}>\n <ChevronLeft className=\"mr-2 size-4\" />\n <span>{pager.prev.title}</span>\n </Link>\n )}\n {pager?.next?.href && (\n <Link\n className={cn(\n buttonVariants({\n className: 'flex items-center',\n variant: 'outline',\n }),\n )}\n href={pager.next.href}>\n <span>{pager.next.title}</span>\n <ChevronRight className=\"ml-2 size-4\" />\n </Link>\n )}\n </div>\n )\n}\nexport function DocsPagerTop({ doc }: DocsPagerProps) {\n const docsConfig = useDocsConfig()\n const pager = getPagerForDoc(doc, docsConfig)\n\n if (!pager) {\n return null\n }\n\n return (\n <div className=\"flex flex-row items-center justify-between\">\n {pager?.prev?.href && (\n <Link\n className={cn(\n buttonVariants({\n className: '[&>svg]:!size-4 size-8 items-center',\n size: 'sm',\n variant: 'secondary',\n }),\n )}\n href={pager.prev.href}>\n <ArrowLeft />\n </Link>\n )}\n {pager?.next?.href && (\n <Link\n className={cn(\n buttonVariants({\n className: '[&>svg]:!size-4 ml-2 size-8 items-center',\n size: 'sm',\n variant: 'secondary',\n }),\n )}\n href={pager.next.href}>\n <ArrowRight />\n </Link>\n )}\n </div>\n )\n}\n\nexport function getPagerForDoc(doc: DocsPagerProps['doc'], docsConfig: DocsConfig) {\n const nav = doc.title.startsWith('/docs/charts') ? docsConfig.chartsNav : docsConfig.sidebarNav\n const flattenedLinks = [null, ...flatten(nav ?? []), null]\n const activeIndex = flattenedLinks.findIndex((link) => link?.href?.includes(doc.slug ?? doc.title))\n const prev = activeIndex !== 0 ? flattenedLinks[activeIndex - 1] : null\n const next = activeIndex !== flattenedLinks.length - 1 ? flattenedLinks[activeIndex + 1] : null\n return {\n next,\n prev,\n }\n}\n\nexport function flatten(links: NavItemWithChildren[]): NavItem[] {\n return links\n .reduce<NavItem[]>((flat, link) => {\n return flat.concat(link.items?.length ? flatten(link.items) : link)\n }, [])\n .filter((link) => !link?.disabled)\n}\n"],"mappings":"iUAgBA,SAAgB,EAAgB,CAAE,OAAuB,CAEvD,IAAM,EAAQ,EAAe,EADV,GAAe,CACW,CAM7C,OAJK,EAKH,EAAC,MAAA,CAAI,UAAU,uDACZ,GAAO,MAAM,MACZ,EAAC,EAAA,CACC,UAAW,EACT,EAAe,CACb,UAAW,oBACX,QAAS,UACV,CAAC,CACH,CACD,KAAM,EAAM,KAAK,eACjB,EAAC,EAAA,CAAY,UAAU,cAAA,CAAgB,CACvC,EAAC,OAAA,CAAA,SAAM,EAAM,KAAK,MAAA,CAAa,CAAA,EAC1B,CAER,GAAO,MAAM,MACZ,EAAC,EAAA,CACC,UAAW,EACT,EAAe,CACb,UAAW,oBACX,QAAS,UACV,CAAC,CACH,CACD,KAAM,EAAM,KAAK,eACjB,EAAC,OAAA,CAAA,SAAM,EAAM,KAAK,MAAA,CAAa,CAC/B,EAAC,EAAA,CAAa,UAAU,cAAA,CAAgB,CAAA,EACnC,CAAA,EAEL,CA/BC,KAkCX,SAAgB,EAAa,CAAE,OAAuB,CAEpD,IAAM,EAAQ,EAAe,EADV,GAAe,CACW,CAM7C,OAJK,EAKH,EAAC,MAAA,CAAI,UAAU,uDACZ,GAAO,MAAM,MACZ,EAAC,EAAA,CACC,UAAW,EACT,EAAe,CACb,UAAW,sCACX,KAAM,KACN,QAAS,YACV,CAAC,CACH,CACD,KAAM,EAAM,KAAK,cACjB,EAAC,EAAA,EAAA,CAAY,EACR,CAER,GAAO,MAAM,MACZ,EAAC,EAAA,CACC,UAAW,EACT,EAAe,CACb,UAAW,2CACX,KAAM,KACN,QAAS,YACV,CAAC,CACH,CACD,KAAM,EAAM,KAAK,cACjB,EAAC,EAAA,EAAA,CAAa,EACT,CAAA,EAEL,CA/BC,KAmCX,SAAgB,EAAe,EAA4B,EAAwB,CAEjF,IAAM,EAAiB,CAAC,KAAM,GAAG,GADrB,EAAI,MAAM,WAAW,eAAe,CAAG,EAAW,UAAY,EAAW,aACrC,EAAE,CAAC,CAAE,KAAK,CACpD,EAAc,EAAe,UAAW,GAAS,GAAM,MAAM,SAAS,EAAI,MAAQ,EAAI,MAAM,CAAC,CAC7F,EAAO,IAAgB,EAAsC,KAAlC,EAAe,EAAc,GAE9D,MAAO,CACL,KAFW,IAAgB,EAAe,OAAS,EAAsC,KAAlC,EAAe,EAAc,GAGpF,OACD,CAGH,SAAgB,EAAQ,EAAyC,CAC/D,OAAO,EACJ,QAAmB,EAAM,IACjB,EAAK,OAAO,EAAK,OAAO,OAAS,EAAQ,EAAK,MAAM,CAAG,EAAK,CAClE,EAAE,CAAC,CACL,OAAQ,GAAS,CAAC,GAAM,SAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs-pager-CLERxm13.d.ts","names":[],"sources":["../src/components/docs/docs-pager.tsx"],"sourcesContent":[],"mappings":";;;;;UASU,cAAA;;;IAAA,KAAA,EAAA,MAAc;EAOR,CAAA;;AAAyB,iBAAzB,eAAA,CAAyB;EAAA;AAAA,CAAA,EAAA,cAAA,CAAA,EAAc,mBAAA,CAAA,GAAA,CAAA,OAAA,GAAd,IAAA;AAAc,iBAuCvC,YAAA,CAvCuC;EAAA;AAAA,CAAA,EAuCjB,cAvCiB,CAAA,EAuCH,mBAAA,CAAA,GAAA,CAAA,OAAA,GAvCG,IAAA;AAAA,iBA+EvC,cAAA,CA/EuC,GAAA,EA+EnB,cA/EmB,CAAA,KAAA,CAAA,EAAA,UAAA,EA+EgB,UA/EhB,CAAA,EAAA;EAuCvC,IAAA,SAAA,GAAY,IAAA,GAAA,SAAA;EAAG,IAAA,SAAA,GAAA,IAAA,GAAA,SAAA;CAAO;AAAc,iBAoDpC,OAAA,CApDoC,KAAA,EAoDrB,mBApDqB,EAAA,CAAA,EAoDG,OApDH,EAAA"}
@@ -1,13 +0,0 @@
1
- import { o as TocEntry } from "./context.types-DgaGu8Ly.js";
2
- import * as react_jsx_runtime36 from "react/jsx-runtime";
3
-
4
- //#region src/components/docs/docs-toc.d.ts
5
- interface TocProps {
6
- toc: TocEntry[];
7
- }
8
- declare function DashboardTableOfContents({
9
- toc
10
- }: TocProps): react_jsx_runtime36.JSX.Element | null;
11
- //#endregion
12
- export { DashboardTableOfContents as t };
13
- //# sourceMappingURL=docs-toc-B4_Znnrj.d.ts.map
@@ -1,2 +0,0 @@
1
- import{n as e}from"./icons-bFf026bR.js";import{cn as t}from"@gentleduck/libs/cn";import{Fragment as n,jsx as r,jsxs as i}from"react/jsx-runtime";import{Separator as a}from"@gentleduck/registry-ui-duckui/separator";function o({children:o,className:s,...c}){let l=e(o?.toString().split(`.`).pop()??`terminal`);return i(n,{children:[r(`figcaption`,{...c,className:`rounded-lg p-2`,children:i(`div`,{className:t(s,`flex items-center gap-2 font-mono text-muted-foreground text-sm ltr:pl-1.5 rtl:pr-1.5 [&_svg]:h-4 [&_svg]:w-4`),children:[l,o]})}),r(a,{})]})}export{o as t};
2
- //# sourceMappingURL=figcaption-block-DWZhs-6i.js.map
@@ -1,2 +0,0 @@
1
- import{i as e}from"./context-Bd4Sf8r8.js";import{t}from"./mdx-cqn1ggXI.js";import{jsx as n}from"react/jsx-runtime";function r({...r}){let i=(e()??[]).find(e=>e.slug===`/docs/installation/${r.data}`);return i?.content?n(t,{code:i.content}):null}export{r as t};
2
- //# sourceMappingURL=framework-docs-ZYLz3BBy.js.map
@@ -1,7 +0,0 @@
1
- import * as react_jsx_runtime67 from "react/jsx-runtime";
2
-
3
- //#region src/components/layouts/tailwind-indicator/index.d.ts
4
- declare function TailwindIndicator(): react_jsx_runtime67.JSX.Element | null;
5
- //#endregion
6
- export { TailwindIndicator as t };
7
- //# sourceMappingURL=index-2mWOLEIP.d.ts.map
@@ -1,8 +0,0 @@
1
- import * as react_jsx_runtime59 from "react/jsx-runtime";
2
-
3
- //#region src/components/layouts/site-footer/index.d.ts
4
- declare function SiteFooter(): react_jsx_runtime59.JSX.Element;
5
- declare function FooterButtons(): react_jsx_runtime59.JSX.Element;
6
- //#endregion
7
- export { SiteFooter as n, FooterButtons as t };
8
- //# sourceMappingURL=index-BZ1Usw1L.d.ts.map
@@ -1,8 +0,0 @@
1
- import * as react_jsx_runtime65 from "react/jsx-runtime";
2
-
3
- //#region src/components/layouts/site-header/index.d.ts
4
- declare function SiteHeader(): react_jsx_runtime65.JSX.Element;
5
- declare function FontStyleButton(): react_jsx_runtime65.JSX.Element;
6
- //#endregion
7
- export { SiteHeader as n, FontStyleButton as t };
8
- //# sourceMappingURL=index-Bunxo_8h.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main-nav-SathVgSN.d.ts","names":[],"sources":["../src/components/main-nav.tsx"],"sourcesContent":[],"mappings":";;;iBAQgB,OAAA,CAAA,GAAO,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mdx-CBnfwESR.d.ts","names":[],"sources":["../src/components/mdx/mdx.tsx"],"sourcesContent":[],"mappings":";;;UA0FU,QAAA;;AA/E6B;AAmFvB,iBAAA,GAAA,CAAG;EAAA;AAAA,CAAA,EAAW,QAAX,CAAA,EAAmB,OAAA,CAAA,GAAA,CAAA,OAAnB"}
@@ -1,2 +0,0 @@
1
- import{t as e}from"./callout-CFw8zUIz.js";import{t}from"./code-block-DqFdGhI-.js";import{t as n}from"./code-block-wrapper-CCAw9mie.js";import{n as r}from"./component-preview-CL6guE-v.js";import{t as i}from"./figcaption-block-DWZhs-6i.js";import{t as a}from"./component-source-BCBDjfEb.js";import{t as o}from"./pre-block-BThyCz1h.js";import{t as s}from"./components-list-BCV3yN6H.js";import{i as c,n as l,r as u,t as d}from"./table-Sc60jiil.js";import{i as f,n as p,r as m,t as h}from"./tabs-KvYm5au9.js";import{a as g,c as _,d as v,i as y,l as b,n as x,o as S,r as C,s as w,t as T,u as E}from"./typepography-Btk-lJ3O.js";import{cn as D}from"@gentleduck/libs/cn";import{Button as O}from"@gentleduck/registry-ui-duckui/button";import k,{jsx as A}from"react/jsx-runtime";import j from"next/image";import{Accordion as M,AccordionContent as N,AccordionItem as P,AccordionTrigger as F}from"@gentleduck/registry-ui-duckui/accordion";import{Alert as I,AlertDescription as L,AlertTitle as R}from"@gentleduck/registry-ui-duckui/alert";import{AspectRatio as z}from"@gentleduck/registry-ui-duckui/aspect-ratio";import{Badge as B}from"@gentleduck/registry-ui-duckui/badge";import{Kbd as V}from"@gentleduck/registry-ui-duckui/kbd";const H=e=>Function(e)({...k}).default,U={Accordion:M,AccordionContent:N,AccordionItem:P,AccordionTrigger:F,Alert:I,AlertDescription:L,AlertTitle:R,AspectRatio:z,a:T,Badge:B,Button:O,blockquote:({className:e,...t})=>A(`blockquote`,{className:D(`mt-6 border-l-2 pl-6 italic`,e),...t}),Callout:e,CodeBlockWrapper:n,ComponentPreview:r,ComponentSource:a,ComponentsList:s,code:t,figcaption:i,h1:x,h2:C,h3:y,h4:g,h5:S,h6:w,hr:_,Image:j,img:({className:e,alt:t,...n})=>A(`img`,{alt:t,className:D(`rounded-md`,e),...n}),Kbd:V,Link:b,LinkedCard:E,li:({className:e,...t})=>A(`li`,{className:D(`mt-2`,e),...t}),ol:({className:e,...t})=>A(`ol`,{className:D(`my-6 ml-6 list-decimal`,e),...t}),p:v,pre:o,Step:({className:e,...t})=>A(`h3`,{className:D(`step scroll-m-20 font-heading font-semibold text-xl tracking-tight`,e),...t}),Steps:({...e})=>A(`div`,{className:`[&>h3]:step steps mb-12 ml-4 border-l pl-8 [counter-reset:step]`,...e}),Tabs:h,TabsContent:p,TabsList:m,TabsTrigger:f,table:d,td:l,th:u,tr:c,ul:({className:e,...t})=>A(`ul`,{className:D(`my-6 ml-6 list-disc`,e),...t})};function W({code:e}){return A(`div`,{className:`mdx`,children:A(H(e),{components:U})})}export{W as t};
2
- //# sourceMappingURL=mdx-cqn1ggXI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mdx-cqn1ggXI.js","names":[],"sources":["../src/components/mdx/mdx.tsx"],"sourcesContent":["'use client'\n\nimport { cn } from '@gentleduck/libs/cn'\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@gentleduck/registry-ui-duckui/accordion'\nimport { Alert, AlertDescription, AlertTitle } from '@gentleduck/registry-ui-duckui/alert'\nimport { AspectRatio } from '@gentleduck/registry-ui-duckui/aspect-ratio'\nimport { Badge } from '@gentleduck/registry-ui-duckui/badge'\nimport { Button } from '@gentleduck/registry-ui-duckui/button'\nimport { Kbd } from '@gentleduck/registry-ui-duckui/kbd'\nimport Image from 'next/image'\nimport type * as React from 'react'\nimport runtime from 'react/jsx-runtime'\nimport { Callout } from './mdx-components/callout'\nimport { CodeBlock, CodeBlockWrapper, ComponentPreview, ComponentSource, PreBlock } from './mdx-components/code'\nimport { FigcaptionBlock } from './mdx-components/code/figcaption-block'\nimport { ComponentsList } from './mdx-components/components-list'\nimport { Table, TableCell, TableHeader, TableRow } from './mdx-components/table'\nimport { Tab, TabContent, TabList, TabTrigger } from './mdx-components/tabs'\nimport { A, H1, H2, H3, H4, H5, H6, Hr, LinkBlock, LinkedCard, P } from './mdx-components/typepography'\n\nconst useMDXComponent = (code: string) => {\n const fn = new Function(code)\n return fn({ ...runtime }).default\n}\n\nconst components = {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n Alert,\n AlertDescription,\n AlertTitle,\n AspectRatio,\n a: A,\n Badge,\n Button,\n blockquote: ({ className, ...props }: React.HTMLAttributes<HTMLElement>) => (\n <blockquote className={cn('mt-6 border-l-2 pl-6 italic', className)} {...props} />\n ),\n Callout,\n CodeBlockWrapper,\n ComponentPreview,\n ComponentSource,\n ComponentsList,\n code: CodeBlock,\n figcaption: FigcaptionBlock,\n h1: H1,\n h2: H2,\n h3: H3,\n h4: H4,\n h5: H5,\n h6: H6,\n hr: Hr,\n // span: SpanBlock,\n Image,\n img: ({ className, alt, ...props }: React.ImgHTMLAttributes<HTMLImageElement>) => (\n <img alt={alt} className={cn('rounded-md', className)} {...props} />\n ),\n Kbd: Kbd,\n Link: LinkBlock,\n LinkedCard,\n li: ({ className, ...props }: React.HTMLAttributes<HTMLElement>) => (\n <li className={cn('mt-2', className)} {...props} />\n ),\n ol: ({ className, ...props }: React.HTMLAttributes<HTMLOListElement>) => (\n <ol className={cn('my-6 ml-6 list-decimal', className)} {...props} />\n ),\n p: P,\n pre: PreBlock,\n Step: ({ className, ...props }: React.ComponentProps<'h3'>) => (\n <h3 className={cn('step scroll-m-20 font-heading font-semibold text-xl tracking-tight', className)} {...props} />\n ),\n Steps: ({ ...props }) => (\n <div className=\"[&>h3]:step steps mb-12 ml-4 border-l pl-8 [counter-reset:step]\" {...props} />\n ),\n Tabs: Tab,\n TabsContent: TabContent,\n TabsList: TabList,\n TabsTrigger: TabTrigger,\n table: Table,\n td: TableCell,\n th: TableHeader,\n tr: TableRow,\n ul: ({ className, ...props }: React.HTMLAttributes<HTMLUListElement>) => (\n <ul className={cn('my-6 ml-6 list-disc', className)} {...props} />\n ),\n // FrameworkDocs,\n}\n\ninterface MdxProps {\n code: string\n}\n\nexport function Mdx({ code }: MdxProps) {\n const Component = useMDXComponent(code)\n\n return (\n <div className=\"mdx\">\n <Component components={components} />\n </div>\n )\n}\n"],"mappings":"isCAoBA,MAAM,EAAmB,GACR,SAAS,EAAK,CACnB,CAAE,GAAG,EAAS,CAAC,CAAC,QAGtB,EAAa,CACjB,YACA,mBACA,gBACA,mBACA,QACA,mBACA,aACA,cACA,EAAG,EACH,QACA,SACA,YAAa,CAAE,YAAW,GAAG,KAC3B,EAAC,aAAA,CAAW,UAAW,EAAG,8BAA+B,EAAU,CAAE,GAAI,GAAS,CAEpF,UACA,mBACA,mBACA,kBACA,iBACA,KAAM,EACN,WAAY,EACZ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EAEJ,QACA,KAAM,CAAE,YAAW,MAAK,GAAG,KACzB,EAAC,MAAA,CAAS,MAAK,UAAW,EAAG,aAAc,EAAU,CAAE,GAAI,GAAS,CAEjE,MACL,KAAM,EACN,aACA,IAAK,CAAE,YAAW,GAAG,KACnB,EAAC,KAAA,CAAG,UAAW,EAAG,OAAQ,EAAU,CAAE,GAAI,GAAS,CAErD,IAAK,CAAE,YAAW,GAAG,KACnB,EAAC,KAAA,CAAG,UAAW,EAAG,yBAA0B,EAAU,CAAE,GAAI,GAAS,CAEvE,EAAG,EACH,IAAK,EACL,MAAO,CAAE,YAAW,GAAG,KACrB,EAAC,KAAA,CAAG,UAAW,EAAG,qEAAsE,EAAU,CAAE,GAAI,GAAS,CAEnH,OAAQ,CAAE,GAAG,KACX,EAAC,MAAA,CAAI,UAAU,kEAAkE,GAAI,GAAS,CAEhG,KAAM,EACN,YAAa,EACb,SAAU,EACV,YAAa,EACb,MAAO,EACP,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,CAAE,YAAW,GAAG,KACnB,EAAC,KAAA,CAAG,UAAW,EAAG,sBAAuB,EAAU,CAAE,GAAI,GAAS,CAGrE,CAMD,SAAgB,EAAI,CAAE,QAAkB,CAGtC,OACE,EAAC,MAAA,CAAI,UAAU,eACb,EAJc,EAAgB,EAAK,CAAA,CAIZ,aAAA,CAAc,EACjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"metadata-plugin-Ag61IUUu.d.ts","names":[],"sources":["../src/velite/plugins/metadata-plugin.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,mBAAA,CAAA,UACA,cAAY"}
@@ -1,2 +0,0 @@
1
- import{n as e}from"./context-Bd4Sf8r8.js";import{cn as t}from"@gentleduck/libs/cn";import{Button as n}from"@gentleduck/registry-ui-duckui/button";import{PanelsTopLeft as r}from"lucide-react";import*as i from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";import s from"next/link";import{useRouter as c}from"next/navigation";import{Drawer as l,DrawerContent as u,DrawerTrigger as d}from"@gentleduck/registry-ui-duckui/drawer";import{ScrollArea as f}from"@gentleduck/registry-ui-duckui/scroll-area";function p(){let[t,s]=i.useState(!1),c=e();return o(l,{onOpenChange:s,open:t,children:[a(d,{asChild:!0,children:a(n,{className:`mr-2 px-0 text-base hover:bg-transparent focus-visible:bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 md:hidden`,icon:a(r,{}),size:`icon`,variant:`ghost`})}),a(u,{className:`pr-0 pb-4`,children:a(f,{children:o(`div`,{className:`hide-scroll my-4 h-[calc(100vh-8rem)] pb-10 pl-6`,children:[a(`div`,{className:`flex flex-col space-y-3`,children:c.mainNav?.map(e=>e.href&&a(m,{href:e.href,onOpenChange:s,children:e.title},e.href))}),a(`div`,{className:`flex flex-col space-y-2`,children:c.sidebarNav.map((e,t)=>o(`div`,{className:`flex flex-col space-y-3 pt-6`,children:[a(`h4`,{className:`font-medium`,children:e.title}),e?.items?.length&&e.items.map(e=>a(i.Fragment,{children:!e.disabled&&(e.href?o(m,{className:`text-muted-foreground`,href:e.href,onOpenChange:s,children:[e.title,e.label&&a(`span`,{className:`ml-2 rounded-md bg-primary px-1.5 py-0.5 text-accent text-xs leading-none no-underline group-hover:no-underline`,children:e.label})]}):e.title)},e.href))]},t))})]})})})]})}function m({href:e,onOpenChange:n,className:r,children:i,...o}){let l=c();return a(s,{className:t(r),href:e,onClick:()=>{l.push(e.toString()),n?.(!1)},...o,children:i})}export{p as t};
2
- //# sourceMappingURL=mobile-nav-DRQtHK-O.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mobile-nav-DRQtHK-O.js","names":["React","item"],"sources":["../src/components/mobile-nav.tsx"],"sourcesContent":["'use client'\n\nimport { useDocsConfig } from '@duck-docs/context'\nimport { cn } from '@gentleduck/libs/cn'\nimport { Button } from '@gentleduck/registry-ui-duckui/button'\nimport { Drawer, DrawerContent, DrawerTrigger } from '@gentleduck/registry-ui-duckui/drawer'\nimport { ScrollArea } from '@gentleduck/registry-ui-duckui/scroll-area'\nimport { PanelsTopLeft } from 'lucide-react'\nimport Link, { type LinkProps } from 'next/link'\nimport { useRouter } from 'next/navigation'\nimport * as React from 'react'\n\nexport function MobileNav() {\n const [open, setOpen] = React.useState(false)\n const docsConfig = useDocsConfig()\n\n return (\n <Drawer onOpenChange={setOpen} open={open}>\n <DrawerTrigger asChild>\n <Button\n className=\"mr-2 px-0 text-base hover:bg-transparent focus-visible:bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 md:hidden\"\n icon={<PanelsTopLeft />}\n size={'icon'}\n variant=\"ghost\"></Button>\n </DrawerTrigger>\n <DrawerContent className=\"pr-0 pb-4\">\n <ScrollArea>\n <div className=\"hide-scroll my-4 h-[calc(100vh-8rem)] pb-10 pl-6\">\n <div className=\"flex flex-col space-y-3\">\n {docsConfig.mainNav?.map(\n (item) =>\n item.href && (\n <MobileLink href={item.href} key={item.href} onOpenChange={setOpen}>\n {item.title}\n </MobileLink>\n ),\n )}\n </div>\n <div className=\"flex flex-col space-y-2\">\n {docsConfig.sidebarNav.map((item, index) => (\n <div className=\"flex flex-col space-y-3 pt-6\" key={index}>\n <h4 className=\"font-medium\">{item.title}</h4>\n {item?.items?.length &&\n item.items.map((item) => (\n <React.Fragment key={item.href}>\n {!item.disabled &&\n (item.href ? (\n <MobileLink className=\"text-muted-foreground\" href={item.href} onOpenChange={setOpen}>\n {item.title}\n {item.label && (\n <span className=\"ml-2 rounded-md bg-primary px-1.5 py-0.5 text-accent text-xs leading-none no-underline group-hover:no-underline\">\n {item.label}\n </span>\n )}\n </MobileLink>\n ) : (\n item.title\n ))}\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n </div>\n </ScrollArea>\n </DrawerContent>\n </Drawer>\n )\n}\n\ninterface MobileLinkProps extends LinkProps {\n onOpenChange?: (open: boolean) => void\n children: React.ReactNode\n className?: string\n}\n\nfunction MobileLink({ href, onOpenChange, className, children, ...props }: MobileLinkProps) {\n const router = useRouter()\n return (\n <Link\n className={cn(className)}\n href={href}\n onClick={() => {\n router.push(href.toString())\n onOpenChange?.(false)\n }}\n {...props}>\n {children}\n </Link>\n )\n}\n"],"mappings":"2fAYA,SAAgB,GAAY,CAC1B,GAAM,CAAC,EAAM,GAAWA,EAAM,SAAS,GAAM,CACvC,EAAa,GAAe,CAElC,OACE,EAAC,EAAA,CAAO,aAAc,EAAe,iBACnC,EAAC,EAAA,CAAc,QAAA,YACb,EAAC,EAAA,CACC,UAAU,mIACV,KAAM,EAAC,EAAA,EAAA,CAAgB,CACvB,KAAM,OACN,QAAQ,SAAiB,EACb,CAChB,EAAC,EAAA,CAAc,UAAU,qBACvB,EAAC,EAAA,CAAA,SACC,EAAC,MAAA,CAAI,UAAU,6DACb,EAAC,MAAA,CAAI,UAAU,mCACZ,EAAW,SAAS,IAClB,GACC,EAAK,MACH,EAAC,EAAA,CAAW,KAAM,EAAK,KAAsB,aAAc,WACxD,EAAK,OAD0B,EAAK,KAE1B,CAElB,EACG,CACN,EAAC,MAAA,CAAI,UAAU,mCACZ,EAAW,WAAW,KAAK,EAAM,IAChC,EAAC,MAAA,CAAI,UAAU,yCACb,EAAC,KAAA,CAAG,UAAU,uBAAe,EAAK,OAAW,CAC5C,GAAM,OAAO,QACZ,EAAK,MAAM,IAAK,GACd,EAACA,EAAM,SAAA,CAAA,SACJ,CAACC,EAAK,WACJA,EAAK,KACJ,EAAC,EAAA,CAAW,UAAU,wBAAwB,KAAMA,EAAK,KAAM,aAAc,YAC1EA,EAAK,MACLA,EAAK,OACJ,EAAC,OAAA,CAAK,UAAU,2HACbA,EAAK,OACD,CAAA,EAEE,CAEbA,EAAK,OAAA,CAZUA,EAAK,KAcT,CACjB,CAAA,EAnB6C,EAoB7C,CACN,EACE,CAAA,EACF,CAAA,CACK,EACC,CAAA,EACT,CAUb,SAAS,EAAW,CAAE,OAAM,eAAc,YAAW,WAAU,GAAG,GAA0B,CAC1F,IAAM,EAAS,GAAW,CAC1B,OACE,EAAC,EAAA,CACC,UAAW,EAAG,EAAU,CAClB,OACN,YAAe,CACb,EAAO,KAAK,EAAK,UAAU,CAAC,CAC5B,IAAe,GAAM,EAEvB,GAAI,EACH,YACI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mobile-nav-hEfoD2ld.d.ts","names":[],"sources":["../src/components/mobile-nav.tsx"],"sourcesContent":[],"mappings":";;;iBAYgB,SAAA,CAAA,GAAS,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,7 +0,0 @@
1
- import * as react_jsx_runtime73 from "react/jsx-runtime";
2
-
3
- //#region src/components/mode-toggle.d.ts
4
- declare function ModeSwitcher(): react_jsx_runtime73.JSX.Element;
5
- //#endregion
6
- export { ModeSwitcher as t };
7
- //# sourceMappingURL=mode-toggle-BcPx4Vfk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mode-toggle-BcPx4Vfk.d.ts","names":[],"sources":["../src/components/mode-toggle.tsx"],"sourcesContent":[],"mappings":";;;iBAcgB,YAAA,CAAA,GAAY,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,2 +0,0 @@
1
- import{o as e}from"./context-Bd4Sf8r8.js";import{t}from"./use-meta-colors-BhIhFzvx.js";import{Button as n}from"@gentleduck/registry-ui-duckui/button";import{MoonIcon as r,SunIcon as i}from"lucide-react";import*as a from"react";import{Fragment as o,jsx as s,jsxs as c}from"react/jsx-runtime";import{useTheme as l}from"next-themes";const u={dark:`#000000`,light:`#ffffff`};function d(){let{setTheme:d,resolvedTheme:f}=l(),{setMetaColor:p}=t(),m=e().metaThemeColors??u,h=a.useCallback(()=>{d(f===`dark`?`light`:`dark`),p(f===`dark`?m.light:m.dark)},[f,d,p]);return s(n,{"aria-label":`toggle theme`,className:`group/toggle`,icon:c(o,{children:[s(i,{className:`hidden [html.dark_&]:block`}),s(r,{className:`hidden [html.light_&]:block`})]}),onClick:h,size:`icon`,variant:`ghost`})}export{d as t};
2
- //# sourceMappingURL=mode-toggle-CGGAaMUK.js.map
@@ -1,2 +0,0 @@
1
- import{t as e}from"./copy-button-D50DXq56.js";import{cn as t}from"@gentleduck/libs/cn";import{Terminal as n}from"lucide-react";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{Separator as o}from"@gentleduck/registry-ui-duckui/separator";import{Tabs as s,TabsContent as c,TabsList as l,TabsTrigger as u}from"@gentleduck/registry-ui-duckui/tabs";function d({className:n,__rawString__:o,__npmCommand__:s,__yarnCommand__:c,__pnpmCommand__:l,__bunCommand__:u,__withMeta__:d,__event__:p,__title__:m,children:h,...g}){return i(`div`,{"data-theme":g[`data-theme`],children:s&&c&&l&&u?i(f,{__bunCommand__:u,__npmCommand__:s,__pnpmCommand__:l,__yarnCommand__:c,...g}):a(r,{children:[o&&!s&&i(e,{className:t(`absolute top-2 right-2 bg-muted [&_svg]:text-muted-foreground`,d&&`top-16`),event:p,value:o,variant:`outline`}),i(`pre`,{className:t(`max-h-[650px] overflow-auto rounded-lg py-4 focus-visible:shadow-none focus-visible:outline-none`,n),...g,children:h})]})})}function f({__npmCommand__:r,__yarnCommand__:d,__pnpmCommand__:f,__bunCommand__:p}){let m={__bunCommand__:p,__npmCommand__:r,__pnpmCommand__:f,__yarnCommand__:d};return a(s,{className:`rounded-md`,defaultValue:`__npmCommand__`,children:[a(l,{className:`w-fit justify-start bg-transparent py-2`,children:[i(`div`,{className:`flex size-4 flex-col items-center justify-center bg-foreground/65 ltr:mr-2 ltr:ml-3 rtl:mr-3 rtl:ml-2`,children:i(n,{className:`size-4 text-background`})}),Object.keys(m).map((e,t)=>i(u,{className:`aria-[selected='true']:bg-muted`,value:e,children:e.replace(`__`,``).replace(`Command`,``).replace(`__`,``)},t))]}),i(o,{}),Object.entries(m).map(([n,r],o)=>a(c,{className:`[&_pre]:max-w-[620px] [&_pre]:overflow-auto`,value:n,children:[i(e,{className:t(`absolute top-1.5 right-1.5 border-none bg-transparent [&_svg]:size-5 [&_svg]:text-muted-foreground`),value:r,variant:`outline`}),i(`pre`,{className:`p-4 pt-2 text-muted-foreground text-sm focus-visible:shadow-none focus-visible:outline-none`,children:r})]},o))]})}export{f as n,d as t};
2
- //# sourceMappingURL=pre-block-BThyCz1h.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers-BU3xm7I4.d.ts","names":[],"sources":["../src/components/providers.tsx"],"sourcesContent":[],"mappings":";;;;iBAOgB,eAAA;;;GAAsC,qBAAkB,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rehype-title-Dwt_OKnR.d.ts","names":[],"sources":["../src/velite/plugins/rehype-title.ts"],"sourcesContent":[],"mappings":";;;iBAGgB,WAAA,CAAA,UACA"}