@gentleduck/docs 0.0.13 → 0.0.14

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 (714) hide show
  1. package/dist/alert-DXO4N8gL.js +2 -0
  2. package/dist/alert-DXO4N8gL.js.map +1 -0
  3. package/dist/arrow-CU5T6t_D-Cs2Ykttv.js +2 -0
  4. package/dist/arrow-CU5T6t_D-Cs2Ykttv.js.map +1 -0
  5. package/dist/badge-BaSJ_om8.js +2 -0
  6. package/dist/badge-BaSJ_om8.js.map +1 -0
  7. package/dist/button-BPQ9zanb.js +2 -0
  8. package/dist/button-BPQ9zanb.js.map +1 -0
  9. package/dist/callout-C_FrO3-r.d.ts +21 -0
  10. package/dist/callout-C_FrO3-r.d.ts.map +1 -0
  11. package/dist/callout-WZt8I4Tj.js +2 -0
  12. package/dist/callout-WZt8I4Tj.js.map +1 -0
  13. package/dist/{charts-CvYC8d1e.js → charts-B7Xy2hnG.js} +1 -1
  14. package/dist/{charts-CvYC8d1e.js.map → charts-B7Xy2hnG.js.map} +1 -1
  15. package/dist/{charts-Cyick3Tp.d.ts → charts-D4Uj_gtE.d.ts} +1 -1
  16. package/dist/charts-D4Uj_gtE.d.ts.map +1 -0
  17. package/dist/client.d.ts +53 -54
  18. package/dist/client.js +1 -1
  19. package/dist/{code-block-BNW0BxR6.d.ts → code-block-B-PLa30f.d.ts} +3 -3
  20. package/dist/code-block-B-PLa30f.d.ts.map +1 -0
  21. package/dist/{code-block-uesBcZgM.js → code-block-DzuzMGMr.js} +1 -1
  22. package/dist/{code-block-uesBcZgM.js.map → code-block-DzuzMGMr.js.map} +1 -1
  23. package/dist/{code-block-wrapper-B0GrI7hb.d.ts → code-block-wrapper-BM4jRJHq.d.ts} +3 -3
  24. package/dist/{code-block-wrapper-B0GrI7hb.d.ts.map → code-block-wrapper-BM4jRJHq.d.ts.map} +1 -1
  25. package/dist/{code-block-wrapper-XLG-BrIs.js → code-block-wrapper-BNMwGoo7.js} +1 -1
  26. package/dist/{code-block-wrapper-XLG-BrIs.js.map → code-block-wrapper-BNMwGoo7.js.map} +1 -1
  27. package/dist/code-preview--lq9QGa0.js +2 -0
  28. package/dist/code-preview--lq9QGa0.js.map +1 -0
  29. package/dist/{code-preview-D5Og4Jk3.d.ts → code-preview-DST_xvt7.d.ts} +3 -3
  30. package/dist/{code-preview-D5Og4Jk3.d.ts.map → code-preview-DST_xvt7.d.ts.map} +1 -1
  31. package/dist/{colors-BDTM1-gZ.d.ts → colors-Cx-Rmxum.d.ts} +1 -1
  32. package/dist/{colors-BDTM1-gZ.d.ts.map → colors-Cx-Rmxum.d.ts.map} +1 -1
  33. package/dist/{colors-BUDdXvJ2.js → colors-IvpyMpg7.js} +2 -2
  34. package/dist/{colors-BUDdXvJ2.js.map → colors-IvpyMpg7.js.map} +1 -1
  35. package/dist/command-menu-BY4dKRHx.js +2 -0
  36. package/dist/command-menu-BY4dKRHx.js.map +1 -0
  37. package/dist/command-menu-D4LwSLnr.d.ts +7 -0
  38. package/dist/command-menu-D4LwSLnr.d.ts.map +1 -0
  39. package/dist/{component-preview-D2UaIsBZ.d.ts → component-preview-K8cndl5t.d.ts} +4 -4
  40. package/dist/component-preview-K8cndl5t.d.ts.map +1 -0
  41. package/dist/component-preview-g-CoGwuu.js +2 -0
  42. package/dist/component-preview-g-CoGwuu.js.map +1 -0
  43. package/dist/component-source-BhZijwev.js +3 -0
  44. package/dist/component-source-BhZijwev.js.map +1 -0
  45. package/dist/component-source-Ch59vA1U.d.ts +16 -0
  46. package/dist/component-source-Ch59vA1U.d.ts.map +1 -0
  47. package/dist/components/copy-button.d.ts +4 -0
  48. package/dist/components/copy-button.js +1 -0
  49. package/dist/components/docs/docs-copy-page.d.ts +1 -1
  50. package/dist/components/docs/docs-copy-page.js +1 -1
  51. package/dist/components/docs/docs-pager.d.ts +3 -3
  52. package/dist/components/docs/docs-pager.js +1 -1
  53. package/dist/components/docs/docs-sidebar.d.ts +3 -3
  54. package/dist/components/docs/docs-sidebar.js +1 -1
  55. package/dist/components/docs/docs-toc.d.ts +3 -3
  56. package/dist/components/docs/docs-toc.js +1 -1
  57. package/dist/components/docs/index.d.ts +7 -7
  58. package/dist/components/docs/index.js +1 -1
  59. package/dist/components/icons.d.ts +1 -1
  60. package/dist/components/icons.js +1 -1
  61. package/dist/components/index.d.ts +45 -46
  62. package/dist/components/index.js +1 -1
  63. package/dist/components/layouts/command-menu.d.ts +2 -0
  64. package/dist/components/layouts/command-menu.js +1 -0
  65. package/dist/components/layouts/{site-header/header-shell.d.ts → header-shell.d.ts} +1 -1
  66. package/dist/components/layouts/header-shell.js +1 -0
  67. package/dist/components/layouts/index.d.ts +6 -7
  68. package/dist/components/layouts/index.js +1 -1
  69. package/dist/components/layouts/site-footer.d.ts +2 -0
  70. package/dist/components/layouts/site-footer.js +1 -0
  71. package/dist/components/layouts/site-header.d.ts +3 -0
  72. package/dist/components/layouts/site-header.js +1 -0
  73. package/dist/components/layouts/tailwind-indicator.d.ts +2 -0
  74. package/dist/components/layouts/tailwind-indicator.js +1 -0
  75. package/dist/components/main-nav.d.ts +1 -1
  76. package/dist/components/main-nav.js +1 -1
  77. package/dist/components/mdx/mdx-component-registry.types.d.ts +8 -0
  78. package/dist/components/mdx/mdx-component-registry.types.d.ts.map +1 -0
  79. package/dist/components/mdx/mdx-components/callout.d.ts +1 -1
  80. package/dist/components/mdx/mdx-components/callout.js +1 -1
  81. package/dist/components/mdx/mdx-components/code/code-block-wrapper.d.ts +1 -1
  82. package/dist/components/mdx/mdx-components/code/code-block-wrapper.js +1 -1
  83. package/dist/components/mdx/mdx-components/code/code-block.d.ts +1 -1
  84. package/dist/components/mdx/mdx-components/code/code-block.js +1 -1
  85. package/dist/components/mdx/mdx-components/code/code-preview.d.ts +1 -1
  86. package/dist/components/mdx/mdx-components/code/code-preview.js +1 -1
  87. package/dist/components/mdx/mdx-components/code/component-preview.d.ts +1 -1
  88. package/dist/components/mdx/mdx-components/code/component-preview.js +1 -1
  89. package/dist/components/mdx/mdx-components/code/component-source.d.ts +1 -1
  90. package/dist/components/mdx/mdx-components/code/component-source.js +1 -1
  91. package/dist/components/mdx/mdx-components/code/figcaption-block.d.ts +1 -1
  92. package/dist/components/mdx/mdx-components/code/figcaption-block.js +1 -1
  93. package/dist/components/mdx/mdx-components/code/index.d.ts +15 -12
  94. package/dist/components/mdx/mdx-components/code/index.js +1 -1
  95. package/dist/components/mdx/mdx-components/code/mermaid-block.d.ts +1 -1
  96. package/dist/components/mdx/mdx-components/code/mermaid-block.js +1 -1
  97. package/dist/components/mdx/mdx-components/code/pre-block/index.d.ts +7 -0
  98. package/dist/components/mdx/mdx-components/code/pre-block/index.js +1 -0
  99. package/dist/components/mdx/mdx-components/code/pre-block/pre-block.d.ts +6 -0
  100. package/dist/components/mdx/mdx-components/code/pre-block/pre-block.js +1 -0
  101. package/dist/components/mdx/mdx-components/code/pre-block/shell-command.d.ts +14 -0
  102. package/dist/components/mdx/mdx-components/code/pre-block/shell-command.d.ts.map +1 -0
  103. package/dist/components/mdx/mdx-components/code/pre-block/shell-command.js +1 -0
  104. package/dist/components/mdx/mdx-components/code/pre-block/types.d.ts +5 -0
  105. package/dist/components/mdx/mdx-components/code/span-block.d.ts +2 -2
  106. package/dist/components/mdx/mdx-components/code/span-block.d.ts.map +1 -1
  107. package/dist/components/mdx/mdx-components/components-list.d.ts +3 -3
  108. package/dist/components/mdx/mdx-components/components-list.js +1 -1
  109. package/dist/components/mdx/mdx-components/exalidraw.d.ts +2 -2
  110. package/dist/components/mdx/mdx-components/index.d.ts +24 -21
  111. package/dist/components/mdx/mdx-components/index.js +1 -1
  112. package/dist/components/mdx/mdx-components/table.d.ts +1 -1
  113. package/dist/components/mdx/mdx-components/table.js +1 -1
  114. package/dist/components/mdx/mdx-components/tabs.d.ts +1 -1
  115. package/dist/components/mdx/mdx-components/tabs.js +1 -1
  116. package/dist/components/mdx/mdx-components/typepography.d.ts +1 -1
  117. package/dist/components/mdx/mdx-components/typepography.js +1 -1
  118. package/dist/components/mdx/mdx-components/typography.d.ts +3 -0
  119. package/dist/components/mdx/mdx-components/typography.js +1 -0
  120. package/dist/components/mdx/mdx-components-base.d.ts +119 -0
  121. package/dist/components/mdx/mdx-components-base.d.ts.map +1 -0
  122. package/dist/components/mdx/mdx-components-base.js +1 -0
  123. package/dist/components/mdx/mdx-components-registry.d.ts +171 -0
  124. package/dist/components/mdx/mdx-components-registry.d.ts.map +1 -0
  125. package/dist/components/mdx/mdx-components-registry.js +1 -0
  126. package/dist/components/mdx/mdx-components-ui.d.ts +50 -0
  127. package/dist/components/mdx/mdx-components-ui.d.ts.map +1 -0
  128. package/dist/components/mdx/mdx-components-ui.js +1 -0
  129. package/dist/components/mdx/mdx-icons.js +1 -1
  130. package/dist/components/mdx/mdx-runtime.d.ts +11 -0
  131. package/dist/components/mdx/mdx-runtime.d.ts.map +1 -0
  132. package/dist/components/mdx/mdx-runtime.js +1 -0
  133. package/dist/components/mdx/mdx.d.ts +1 -1
  134. package/dist/components/mdx/mdx.js +1 -1
  135. package/dist/components/mobile-nav.d.ts +1 -1
  136. package/dist/components/mobile-nav.js +1 -1
  137. package/dist/components/mode-toggle.d.ts +1 -1
  138. package/dist/components/mode-toggle.js +1 -1
  139. package/dist/components/page-header.d.ts +1 -1
  140. package/dist/components/page-header.js +1 -1
  141. package/dist/components/providers.d.ts +1 -1
  142. package/dist/components/providers.js +1 -1
  143. package/dist/components/style-switcher.d.ts +2 -0
  144. package/dist/components/style-switcher.js +1 -0
  145. package/dist/components-list-COrPlZeD.d.ts +12 -0
  146. package/dist/{components-list-VYl4HAYt.d.ts.map → components-list-COrPlZeD.d.ts.map} +1 -1
  147. package/dist/{components-list-DiOUxZd_.js → components-list-Cg9ggVyv.js} +2 -2
  148. package/dist/{components-list-DiOUxZd_.js.map → components-list-Cg9ggVyv.js.map} +1 -1
  149. package/dist/context/context.d.ts +1 -1
  150. package/dist/context/context.js +1 -1
  151. package/dist/context/context.types.d.ts +1 -1
  152. package/dist/context/index.d.ts +3 -3
  153. package/dist/context/index.js +1 -1
  154. package/dist/{context-CibrcgaK.js → context-Bu-bPlyW.js} +1 -1
  155. package/dist/{context-CibrcgaK.js.map → context-Bu-bPlyW.js.map} +1 -1
  156. package/dist/{context-C656KJNk.d.ts → context-jLJ1ef7m.d.ts} +4 -4
  157. package/dist/{context-C656KJNk.d.ts.map → context-jLJ1ef7m.d.ts.map} +1 -1
  158. package/dist/{context.types-KUK2rNdz.d.ts → context.types-pTQ85uw2.d.ts} +6 -2
  159. package/dist/context.types-pTQ85uw2.d.ts.map +1 -0
  160. package/dist/copy-button-CCqEsELt.d.ts +20 -0
  161. package/dist/copy-button-CCqEsELt.d.ts.map +1 -0
  162. package/dist/copy-button-Ccbj3Omt.js +2 -0
  163. package/dist/copy-button-Ccbj3Omt.js.map +1 -0
  164. package/dist/create-collection-S3CvffX1-DA20ZU15.js +2 -0
  165. package/dist/create-collection-S3CvffX1-DA20ZU15.js.map +1 -0
  166. package/dist/dialog-68QLl2rI.js +4 -0
  167. package/dist/dialog-68QLl2rI.js.map +1 -0
  168. package/dist/direction-B-anGbxM-BdqxtlGV.js +2 -0
  169. package/dist/direction-B-anGbxM-BdqxtlGV.js.map +1 -0
  170. package/dist/{dist-DfVBUGvk.js → dist-BEBzXlAF.js} +1 -1
  171. package/dist/{dist-DfVBUGvk.js.map → dist-BEBzXlAF.js.map} +1 -1
  172. package/dist/docs-copy-page-CPk7TsfY.js +2 -0
  173. package/dist/docs-copy-page-CPk7TsfY.js.map +1 -0
  174. package/dist/{docs-copy-page-BEtbT7qX.d.ts → docs-copy-page-Dr_nxgGI.d.ts} +3 -3
  175. package/dist/docs-copy-page-Dr_nxgGI.d.ts.map +1 -0
  176. package/dist/{docs-pager-BFx4yEm-.d.ts → docs-pager-B8tRIKlg.d.ts} +6 -6
  177. package/dist/{docs-pager-BFx4yEm-.d.ts.map → docs-pager-B8tRIKlg.d.ts.map} +1 -1
  178. package/dist/docs-pager-mprD1O3r.js +2 -0
  179. package/dist/docs-pager-mprD1O3r.js.map +1 -0
  180. package/dist/docs-sidebar-DY2ybOuM.js +2 -0
  181. package/dist/docs-sidebar-DY2ybOuM.js.map +1 -0
  182. package/dist/docs-sidebar-DfybXB8i.d.ts +43 -0
  183. package/dist/docs-sidebar-DfybXB8i.d.ts.map +1 -0
  184. package/dist/docs-toc-D-y66YCw.d.ts +13 -0
  185. package/dist/docs-toc-D-y66YCw.d.ts.map +1 -0
  186. package/dist/docs-toc-hcordVHk.js +2 -0
  187. package/dist/docs-toc-hcordVHk.js.map +1 -0
  188. package/dist/drawer-kwSiurIF.js +8 -0
  189. package/dist/drawer-kwSiurIF.js.map +1 -0
  190. package/dist/{events-CFVHB4m8.d.ts → events-CQ5HMYtp.d.ts} +1 -1
  191. package/dist/{events-CFVHB4m8.d.ts.map → events-CQ5HMYtp.d.ts.map} +1 -1
  192. package/dist/{events-DHlTM_S_.js → events-Tn9hD65k.js} +1 -1
  193. package/dist/{events-DHlTM_S_.js.map → events-Tn9hD65k.js.map} +1 -1
  194. package/dist/{figcaption-block-DfyvzBoz.d.ts → figcaption-block-BywypQCe.d.ts} +3 -3
  195. package/dist/figcaption-block-BywypQCe.d.ts.map +1 -0
  196. package/dist/figcaption-block-RFNt1OSv.js +2 -0
  197. package/dist/figcaption-block-RFNt1OSv.js.map +1 -0
  198. package/dist/hast-properties-C103K0PZ.js +2 -0
  199. package/dist/hast-properties-C103K0PZ.js.map +1 -0
  200. package/dist/{header-shell-DG6EtZSb.d.ts → header-shell-DkmS4hnL.d.ts} +7 -7
  201. package/dist/header-shell-DkmS4hnL.d.ts.map +1 -0
  202. package/dist/{header-shell-BnhiboVH.js → header-shell-PLI5ZAwI.js} +2 -2
  203. package/dist/header-shell-PLI5ZAwI.js.map +1 -0
  204. package/dist/hooks/index.d.ts +7 -7
  205. package/dist/hooks/index.js +1 -1
  206. package/dist/hooks/use-colors.d.ts +2 -2
  207. package/dist/hooks/use-colors.js +1 -1
  208. package/dist/hooks/use-config.d.ts +1 -1
  209. package/dist/hooks/use-config.js +1 -1
  210. package/dist/hooks/use-lift-mode.d.ts +1 -1
  211. package/dist/hooks/use-lift-mode.js +1 -1
  212. package/dist/hooks/use-meta-colors.d.ts +1 -1
  213. package/dist/hooks/use-meta-colors.js +1 -1
  214. package/dist/hooks/use-mounted.d.ts +1 -1
  215. package/dist/hooks/use-mounted.js +1 -1
  216. package/dist/hooks/use-themes-config.d.ts +1 -1
  217. package/dist/hooks/use-themes-config.js +1 -1
  218. package/dist/icons-DyZHG9BC.d.ts +33 -0
  219. package/dist/icons-DyZHG9BC.d.ts.map +1 -0
  220. package/dist/icons-dASZ3daW.js +2 -0
  221. package/dist/icons-dASZ3daW.js.map +1 -0
  222. package/dist/index-B94w2qPS.d.ts +17 -0
  223. package/dist/index-B94w2qPS.d.ts.map +1 -0
  224. package/dist/{index-C2_c9Mqo.d.ts → index-CdFFVx85.d.ts} +5 -13
  225. package/dist/index-CdFFVx85.d.ts.map +1 -0
  226. package/dist/index.d.ts +12 -11
  227. package/dist/index.js +1 -1
  228. package/dist/lib/charts.d.ts +1 -1
  229. package/dist/lib/charts.js +1 -1
  230. package/dist/lib/colors.d.ts +1 -1
  231. package/dist/lib/colors.js +1 -1
  232. package/dist/lib/events.d.ts +1 -1
  233. package/dist/lib/events.js +1 -1
  234. package/dist/lib/index.d.ts +6 -5
  235. package/dist/lib/index.js +1 -1
  236. package/dist/lib/registry-colors-data.js +1 -1
  237. package/dist/lib/registry-styles.d.ts +1 -1
  238. package/dist/lib/registry-styles.js +1 -1
  239. package/dist/lib/themes.d.ts +1 -1
  240. package/dist/lib/themes.js +1 -1
  241. package/dist/lib/utils.d.ts +1 -1
  242. package/dist/lib/utils.js +1 -1
  243. package/dist/list-navigation-LJg-1TD2-DsfZPowW.js +2 -0
  244. package/dist/list-navigation-LJg-1TD2-DsfZPowW.js.map +1 -0
  245. package/dist/main-nav-vyEIJEhN.d.ts +7 -0
  246. package/dist/main-nav-vyEIJEhN.d.ts.map +1 -0
  247. package/dist/mdx-Cjg68fQA.d.ts +12 -0
  248. package/dist/mdx-Cjg68fQA.d.ts.map +1 -0
  249. package/dist/mdx-D0Kp6lsv.js +2 -0
  250. package/dist/mdx-D0Kp6lsv.js.map +1 -0
  251. package/dist/mdx-components-base-CXqWNN8M.js +2 -0
  252. package/dist/mdx-components-base-CXqWNN8M.js.map +1 -0
  253. package/dist/mdx-components-registry-C12f6wSV.js +2 -0
  254. package/dist/mdx-components-registry-C12f6wSV.js.map +1 -0
  255. package/dist/mdx-components-ui-Cp73cCYd.js +2 -0
  256. package/dist/mdx-components-ui-Cp73cCYd.js.map +1 -0
  257. package/dist/{mdx-icons-BH4zLUw0.js → mdx-icons-Duo8BbOA.js} +1 -1
  258. package/dist/{mdx-icons-BH4zLUw0.js.map → mdx-icons-Duo8BbOA.js.map} +1 -1
  259. package/dist/mdx-runtime-BeG80qPS.js +2 -0
  260. package/dist/mdx-runtime-BeG80qPS.js.map +1 -0
  261. package/dist/mdx-runtime-DjYaVtmv.d.ts +23 -0
  262. package/dist/mdx-runtime-DjYaVtmv.d.ts.map +1 -0
  263. package/dist/{mermaid-block-DOJ68HFE.d.ts → mermaid-block--sl7UWp2.d.ts} +3 -3
  264. package/dist/{mermaid-block-DOJ68HFE.d.ts.map → mermaid-block--sl7UWp2.d.ts.map} +1 -1
  265. package/dist/mermaid-block-zasLfGio.js +12 -0
  266. package/dist/mermaid-block-zasLfGio.js.map +1 -0
  267. package/dist/metadata-plugin-BL84sQM5.d.ts +8 -0
  268. package/dist/metadata-plugin-BL84sQM5.d.ts.map +1 -0
  269. package/dist/metadata-plugin-DA7OesoA.js +2 -0
  270. package/dist/metadata-plugin-DA7OesoA.js.map +1 -0
  271. package/dist/metadata-utils-C_8CcvsG.js +2 -0
  272. package/dist/metadata-utils-C_8CcvsG.js.map +1 -0
  273. package/dist/mobile-nav-CRH545YU.d.ts +7 -0
  274. package/dist/mobile-nav-CRH545YU.d.ts.map +1 -0
  275. package/dist/mobile-nav-rBOCLILt.js +2 -0
  276. package/dist/mobile-nav-rBOCLILt.js.map +1 -0
  277. package/dist/mode-toggle-CNBqTwkg.d.ts +7 -0
  278. package/dist/mode-toggle-CNBqTwkg.d.ts.map +1 -0
  279. package/dist/mode-toggle-DhgB9p1I.js +2 -0
  280. package/dist/mode-toggle-DhgB9p1I.js.map +1 -0
  281. package/dist/mount-CoAqNcc6.js +2 -0
  282. package/dist/mount-CoAqNcc6.js.map +1 -0
  283. package/dist/{nav-B2NAfb21.d.ts → nav-B0m_RJfC.d.ts} +3 -1
  284. package/dist/nav-B0m_RJfC.d.ts.map +1 -0
  285. package/dist/{page-header-h4wXUkUH.d.ts → page-header-BNqr7gpZ.d.ts} +6 -6
  286. package/dist/{page-header-h4wXUkUH.d.ts.map → page-header-BNqr7gpZ.d.ts.map} +1 -1
  287. package/dist/{page-header-D8n3yXQF.js → page-header-TUu9iNwc.js} +1 -1
  288. package/dist/{page-header-D8n3yXQF.js.map → page-header-TUu9iNwc.js.map} +1 -1
  289. package/dist/portal-BNuCvTAR-DDrsnIMA.js +2 -0
  290. package/dist/portal-BNuCvTAR-DDrsnIMA.js.map +1 -0
  291. package/dist/pre-block-Bt_9UuCv.js +2 -0
  292. package/dist/pre-block-Bt_9UuCv.js.map +1 -0
  293. package/dist/pre-block-DvvPHwIA.d.ts +19 -0
  294. package/dist/pre-block-DvvPHwIA.d.ts.map +1 -0
  295. package/dist/{providers-Do13WJMr.d.ts → providers-BI7hm1su.d.ts} +3 -3
  296. package/dist/providers-BI7hm1su.d.ts.map +1 -0
  297. package/dist/providers-BlEJC-ZF.js +2 -0
  298. package/dist/providers-BlEJC-ZF.js.map +1 -0
  299. package/dist/{registry-colors-data-tROJGGvk.js → registry-colors-data-C5Xv_bOz.js} +1 -1
  300. package/dist/{registry-colors-data-tROJGGvk.js.map → registry-colors-data-C5Xv_bOz.js.map} +1 -1
  301. package/dist/{registry-styles-DACce7ra.d.ts → registry-styles-Boe9P1LO.d.ts} +1 -1
  302. package/dist/{registry-styles-DACce7ra.d.ts.map → registry-styles-Boe9P1LO.d.ts.map} +1 -1
  303. package/dist/{registry-styles-Bby12FIz.js → registry-styles-DwoJ9Qa9.js} +1 -1
  304. package/dist/{registry-styles-Bby12FIz.js.map → registry-styles-DwoJ9Qa9.js.map} +1 -1
  305. package/dist/{rehype-mermaid-gkaeJtqn.js → rehype-mermaid-Ctag2Ywx.js} +1 -1
  306. package/dist/{rehype-mermaid-gkaeJtqn.js.map → rehype-mermaid-Ctag2Ywx.js.map} +1 -1
  307. package/dist/{rehype-mermaid-kjf2DmAC.d.ts → rehype-mermaid-DPZ6UzOu.d.ts} +2 -2
  308. package/dist/rehype-mermaid-DPZ6UzOu.d.ts.map +1 -0
  309. package/dist/rehype-npm-command-0W5WqcQY.js +2 -0
  310. package/dist/rehype-npm-command-0W5WqcQY.js.map +1 -0
  311. package/dist/{rehype-npm-command-C7BP6nqi.d.ts → rehype-npm-command-khRZrj_X.d.ts} +2 -2
  312. package/dist/rehype-npm-command-khRZrj_X.d.ts.map +1 -0
  313. package/dist/{rehype-pre-block-source-zKoXg4aL.d.ts → rehype-pre-block-source-0UyWe2hh.d.ts} +2 -2
  314. package/dist/rehype-pre-block-source-0UyWe2hh.d.ts.map +1 -0
  315. package/dist/rehype-pre-block-source-paX7yPQ4.js +2 -0
  316. package/dist/rehype-pre-block-source-paX7yPQ4.js.map +1 -0
  317. package/dist/{rehype-title-TRUGszot.js → rehype-title-CB9V-h9I.js} +1 -1
  318. package/dist/{rehype-title-TRUGszot.js.map → rehype-title-CB9V-h9I.js.map} +1 -1
  319. package/dist/{rehype-title-umwuNb2D.d.ts → rehype-title-CTj31zR2.d.ts} +2 -2
  320. package/dist/rehype-title-CTj31zR2.d.ts.map +1 -0
  321. package/dist/scroll-area-DwfrxxQ_.js +2 -0
  322. package/dist/scroll-area-DwfrxxQ_.js.map +1 -0
  323. package/dist/separator-BL4VUMvX.js +2 -0
  324. package/dist/separator-BL4VUMvX.js.map +1 -0
  325. package/dist/shared-utils-DqLwMUcj-Cs7um3C7.js +2 -0
  326. package/dist/shared-utils-DqLwMUcj-Cs7um3C7.js.map +1 -0
  327. package/dist/shell-command-BQkaAnLc.js +2 -0
  328. package/dist/shell-command-BQkaAnLc.js.map +1 -0
  329. package/dist/site-footer-By5G_jLv.d.ts +8 -0
  330. package/dist/site-footer-By5G_jLv.d.ts.map +1 -0
  331. package/dist/site-footer-DoVwgNqf.js +2 -0
  332. package/dist/site-footer-DoVwgNqf.js.map +1 -0
  333. package/dist/site-header-BiFOBrXI.js +2 -0
  334. package/dist/site-header-BiFOBrXI.js.map +1 -0
  335. package/dist/site-header-lVtvm8N5.d.ts +8 -0
  336. package/dist/site-header-lVtvm8N5.d.ts.map +1 -0
  337. package/dist/slot-B-X2-pKU-DOhFF3E_.js +2 -0
  338. package/dist/slot-B-X2-pKU-DOhFF3E_.js.map +1 -0
  339. package/dist/style-switcher-B0i_slue.d.ts +15 -0
  340. package/dist/style-switcher-B0i_slue.d.ts.map +1 -0
  341. package/dist/style-switcher-BFkgsXlx.js +2 -0
  342. package/dist/style-switcher-BFkgsXlx.js.map +1 -0
  343. package/dist/styles/base.css +12 -12
  344. package/dist/styles/docs.css +14 -1
  345. package/dist/styles/mdx-base.css +27 -0
  346. package/dist/styles/mdx-code.css +142 -0
  347. package/dist/styles/mdx-extensions.css +3 -0
  348. package/dist/styles/mdx-typography.css +27 -0
  349. package/dist/styles/mdx.css +4 -197
  350. package/dist/table-5xep6A9Y.d.ts +22 -0
  351. package/dist/table-5xep6A9Y.d.ts.map +1 -0
  352. package/dist/table-E1lSNeuD.js +2 -0
  353. package/dist/table-E1lSNeuD.js.map +1 -0
  354. package/dist/tabs-BJcH-Dvh.d.ts +43 -0
  355. package/dist/tabs-BJcH-Dvh.d.ts.map +1 -0
  356. package/dist/{tabs-Cvy3-KIA.js → tabs-BonSZ_0a.js} +2 -2
  357. package/dist/tabs-BonSZ_0a.js.map +1 -0
  358. package/dist/tabs-CrZf6_5d.js +2 -0
  359. package/dist/tabs-CrZf6_5d.js.map +1 -0
  360. package/dist/tailwind-indicator-DoT2AWBN.d.ts +7 -0
  361. package/dist/tailwind-indicator-DoT2AWBN.d.ts.map +1 -0
  362. package/dist/{tailwind-indicator-Dt4Bfpta.js → tailwind-indicator-z53_j-ZR.js} +1 -1
  363. package/dist/tailwind-indicator-z53_j-ZR.js.map +1 -0
  364. package/dist/{themes-BzMklu0h.js → themes-DSmnGG_O.js} +2 -2
  365. package/dist/{themes-BzMklu0h.js.map → themes-DSmnGG_O.js.map} +1 -1
  366. package/dist/{themes-Ba683LGu.d.ts → themes-M1nDuQoV.d.ts} +1 -1
  367. package/dist/{themes-Ba683LGu.d.ts.map → themes-M1nDuQoV.d.ts.map} +1 -1
  368. package/dist/{typepography-CLdrb7_b.js → typepography-Bn-ZmO71.js} +1 -1
  369. package/dist/{typepography-CLdrb7_b.js.map → typepography-Bn-ZmO71.js.map} +1 -1
  370. package/dist/{typepography-BdIMY3Y2.d.ts → typepography-D0UONiAu.d.ts} +13 -13
  371. package/dist/{typepography-BdIMY3Y2.d.ts.map → typepography-D0UONiAu.d.ts.map} +1 -1
  372. package/dist/types/index.d.ts +5 -4
  373. package/dist/types/mdx-runtime.d.ts +2 -0
  374. package/dist/types/nav.d.ts +1 -1
  375. package/dist/types/unist.d.ts +2 -1
  376. package/dist/types-DsWNixhq.d.ts +14 -0
  377. package/dist/types-DsWNixhq.d.ts.map +1 -0
  378. package/dist/typography-BcEByhvR.js +0 -0
  379. package/dist/unist-Dtu3x3-k.js +0 -0
  380. package/dist/unist-q3NIH9ya.d.ts +29 -0
  381. package/dist/unist-q3NIH9ya.d.ts.map +1 -0
  382. package/dist/{use-colors-tvFBbu3S.d.ts → use-colors-BF9FOADD.d.ts} +3 -3
  383. package/dist/use-colors-BF9FOADD.d.ts.map +1 -0
  384. package/dist/{use-colors-BSOymnQG.js → use-colors-BiVXxR31.js} +2 -2
  385. package/dist/{use-colors-BSOymnQG.js.map → use-colors-BiVXxR31.js.map} +1 -1
  386. package/dist/{use-config-DViAkW1f.js → use-config-CkoOe8Fw.js} +1 -1
  387. package/dist/{use-config-DViAkW1f.js.map → use-config-CkoOe8Fw.js.map} +1 -1
  388. package/dist/{use-config-DlgXRPaN.d.ts → use-config-DKOEW76q.d.ts} +4 -4
  389. package/dist/{use-config-DlgXRPaN.d.ts.map → use-config-DKOEW76q.d.ts.map} +1 -1
  390. package/dist/{use-lift-mode-CqcC0vis.js → use-lift-mode-CRK6jO9I.js} +1 -1
  391. package/dist/{use-lift-mode-CqcC0vis.js.map → use-lift-mode-CRK6jO9I.js.map} +1 -1
  392. package/dist/{use-lift-mode-DEELjsRA.d.ts → use-lift-mode-DAQuqoIt.d.ts} +1 -1
  393. package/dist/use-lift-mode-DAQuqoIt.d.ts.map +1 -0
  394. package/dist/{use-meta-colors-CkNbJTgD.d.ts → use-meta-colors-Dlzg21A8.d.ts} +1 -1
  395. package/dist/use-meta-colors-Dlzg21A8.d.ts.map +1 -0
  396. package/dist/{use-meta-colors-B7HIXaHI.js → use-meta-colors-ye3z03RL.js} +2 -2
  397. package/dist/{use-meta-colors-B7HIXaHI.js.map → use-meta-colors-ye3z03RL.js.map} +1 -1
  398. package/dist/{use-mounted-gdBJPRp0.js → use-mounted-Bi7J0dBb.js} +1 -1
  399. package/dist/{use-mounted-gdBJPRp0.js.map → use-mounted-Bi7J0dBb.js.map} +1 -1
  400. package/dist/{use-mounted-BtOuPtMk.d.ts → use-mounted-CqC1Le-n.d.ts} +1 -1
  401. package/dist/use-mounted-CqC1Le-n.d.ts.map +1 -0
  402. package/dist/use-themes-config-I8d5A3YB.d.ts +14 -0
  403. package/dist/use-themes-config-I8d5A3YB.d.ts.map +1 -0
  404. package/dist/{use-themes-config-BRcxOF-M.js → use-themes-config-t4NBMHl1.js} +2 -2
  405. package/dist/{use-themes-config-BRcxOF-M.js.map → use-themes-config-t4NBMHl1.js.map} +1 -1
  406. package/dist/{utils-gls3XPIE.d.ts → utils-BGWVtLBe.d.ts} +1 -1
  407. package/dist/utils-BGWVtLBe.d.ts.map +1 -0
  408. package/dist/utils-CN0aIGfJ.js +2 -0
  409. package/dist/utils-CN0aIGfJ.js.map +1 -0
  410. package/dist/velite/browser.d.ts +2 -1
  411. package/dist/velite/browser.d.ts.map +1 -1
  412. package/dist/velite/browser.js +1 -1
  413. package/dist/velite/browser.js.map +1 -1
  414. package/dist/velite/config.d.ts.map +1 -1
  415. package/dist/velite/config.js +1 -1
  416. package/dist/velite/config.js.map +1 -1
  417. package/dist/velite/index.d.ts +8 -8
  418. package/dist/velite/index.js +1 -1
  419. package/dist/velite/plugins/hast-properties.d.ts +9 -0
  420. package/dist/velite/plugins/hast-properties.d.ts.map +1 -0
  421. package/dist/velite/plugins/hast-properties.js +1 -0
  422. package/dist/velite/plugins/index.d.ts +8 -8
  423. package/dist/velite/plugins/index.js +1 -1
  424. package/dist/velite/plugins/metadata-plugin.d.ts +4 -4
  425. package/dist/velite/plugins/metadata-plugin.js +1 -1
  426. package/dist/velite/plugins/metadata-utils.d.ts +9 -0
  427. package/dist/velite/plugins/metadata-utils.d.ts.map +1 -0
  428. package/dist/velite/plugins/metadata-utils.js +1 -0
  429. package/dist/velite/plugins/rehype-mermaid.d.ts +3 -3
  430. package/dist/velite/plugins/rehype-mermaid.js +1 -1
  431. package/dist/velite/plugins/rehype-npm-command.d.ts +3 -3
  432. package/dist/velite/plugins/rehype-npm-command.js +1 -1
  433. package/dist/velite/plugins/rehype-pre-block-source.d.ts +3 -3
  434. package/dist/velite/plugins/rehype-pre-block-source.js +1 -1
  435. package/dist/velite/plugins/rehype-title.d.ts +3 -3
  436. package/dist/velite/plugins/rehype-title.js +1 -1
  437. package/dist/visibility-hidden-CAHx9RLp-CN32k1Im.js +2 -0
  438. package/dist/visibility-hidden-CAHx9RLp-CN32k1Im.js.map +1 -0
  439. package/package.json +14 -16
  440. package/src/client.ts +0 -0
  441. package/src/components/copy-button.tsx +54 -0
  442. package/src/components/docs/docs-copy-page.tsx +161 -46
  443. package/src/components/docs/docs-pager.tsx +22 -12
  444. package/src/components/docs/docs-sidebar.tsx +194 -29
  445. package/src/components/docs/docs-toc.tsx +229 -54
  446. package/src/components/docs/index.ts +0 -0
  447. package/src/components/icons.tsx +13 -25
  448. package/src/components/index.ts +1 -1
  449. package/src/components/layouts/command-menu.tsx +491 -0
  450. package/src/components/layouts/{site-header/header-shell.tsx → header-shell.tsx} +2 -2
  451. package/src/components/layouts/{site-footer/index.tsx → site-footer.tsx} +10 -7
  452. package/src/components/layouts/site-header.tsx +178 -0
  453. package/src/components/main-nav.tsx +3 -2
  454. package/src/components/mdx/ARCHITECTURE.md +61 -0
  455. package/src/components/mdx/mdx-component-registry.types.ts +5 -0
  456. package/src/components/mdx/mdx-components/callout.tsx +10 -10
  457. package/src/components/mdx/mdx-components/code/code-preview.tsx +7 -4
  458. package/src/components/mdx/mdx-components/code/component-preview.tsx +59 -27
  459. package/src/components/mdx/mdx-components/code/component-source.tsx +49 -21
  460. package/src/components/mdx/mdx-components/code/figcaption-block.tsx +2 -8
  461. package/src/components/mdx/mdx-components/code/mermaid-block.tsx +5 -3
  462. package/src/components/mdx/mdx-components/code/pre-block/index.ts +1 -0
  463. package/src/components/mdx/mdx-components/code/pre-block/pre-block.tsx +52 -0
  464. package/src/components/mdx/mdx-components/code/{pre-block.tsx → pre-block/shell-command.tsx} +4 -58
  465. package/src/components/mdx/mdx-components/code/pre-block/types.ts +10 -0
  466. package/src/components/mdx/mdx-components/components-list.tsx +0 -0
  467. package/src/components/mdx/mdx-components/index.ts +1 -2
  468. package/src/components/mdx/mdx-components/table.tsx +36 -27
  469. package/src/components/mdx/mdx-components/tabs.tsx +5 -2
  470. package/src/components/mdx/mdx-components/typography.tsx +1 -0
  471. package/src/components/mdx/mdx-components-base.tsx +81 -0
  472. package/src/components/mdx/mdx-components-registry.ts +8 -0
  473. package/src/components/mdx/mdx-components-ui.tsx +21 -0
  474. package/src/components/mdx/mdx-icons.ts +0 -0
  475. package/src/components/mdx/mdx-runtime.ts +10 -0
  476. package/src/components/mdx/mdx.tsx +3 -103
  477. package/src/components/mobile-nav.tsx +57 -22
  478. package/src/components/mode-toggle.tsx +4 -4
  479. package/src/components/providers.tsx +0 -1
  480. package/src/components/{themes/style-switcher.tsx → style-switcher.tsx} +5 -2
  481. package/src/context/context.tsx +0 -0
  482. package/src/context/context.types.ts +4 -0
  483. package/src/context/index.ts +0 -0
  484. package/src/hooks/index.ts +0 -0
  485. package/src/lib/index.ts +0 -0
  486. package/src/lib/registry-styles.ts +0 -0
  487. package/src/lib/utils.ts +7 -1
  488. package/src/styles/base.css +12 -12
  489. package/src/styles/docs.css +14 -1
  490. package/src/styles/mdx-base.css +27 -0
  491. package/src/styles/mdx-code.css +142 -0
  492. package/src/styles/mdx-extensions.css +3 -0
  493. package/src/styles/mdx-typography.css +27 -0
  494. package/src/styles/mdx.css +4 -197
  495. package/src/types/index.ts +1 -0
  496. package/src/types/mdx-runtime.ts +21 -0
  497. package/src/types/nav.ts +2 -0
  498. package/src/types/unist.ts +5 -19
  499. package/src/velite/browser.ts +1 -0
  500. package/src/velite/config.ts +56 -38
  501. package/src/velite/index.ts +0 -0
  502. package/src/velite/plugins/hast-properties.ts +12 -0
  503. package/src/velite/plugins/index.ts +0 -0
  504. package/src/velite/plugins/metadata-plugin.ts +14 -11
  505. package/src/velite/plugins/metadata-utils.ts +14 -0
  506. package/src/velite/plugins/rehype-mermaid.ts +0 -0
  507. package/src/velite/plugins/rehype-npm-command.ts +24 -22
  508. package/src/velite/plugins/rehype-pre-block-source.ts +6 -4
  509. package/src/velite/plugins/rehype-title.ts +0 -0
  510. package/src/velite/utils.ts +0 -0
  511. package/dist/button-Ao0Egplu.js +0 -2
  512. package/dist/button-Ao0Egplu.js.map +0 -1
  513. package/dist/callout-C1MveMtC.d.ts +0 -20
  514. package/dist/callout-C1MveMtC.d.ts.map +0 -1
  515. package/dist/callout-ChU_uu_5.js +0 -2
  516. package/dist/callout-ChU_uu_5.js.map +0 -1
  517. package/dist/charts-Cyick3Tp.d.ts.map +0 -1
  518. package/dist/chunk-BPpoHddQ-DLGSIJHp.js +0 -2
  519. package/dist/chunk-BPpoHddQ-DLGSIJHp.js.map +0 -1
  520. package/dist/code-block-BNW0BxR6.d.ts.map +0 -1
  521. package/dist/code-preview-DTVYDNkK.js +0 -2
  522. package/dist/code-preview-DTVYDNkK.js.map +0 -1
  523. package/dist/command-2PGkRCUM.js +0 -2
  524. package/dist/command-2PGkRCUM.js.map +0 -1
  525. package/dist/command-menu-Db8sDulu.js +0 -2
  526. package/dist/command-menu-Db8sDulu.js.map +0 -1
  527. package/dist/command-menu-DtpwoKe8.d.ts +0 -7
  528. package/dist/command-menu-DtpwoKe8.d.ts.map +0 -1
  529. package/dist/component-preview-D2UaIsBZ.d.ts.map +0 -1
  530. package/dist/component-preview-InhzN4h1.js +0 -2
  531. package/dist/component-preview-InhzN4h1.js.map +0 -1
  532. package/dist/component-source-CLa1Z_vJ.d.ts +0 -17
  533. package/dist/component-source-CLa1Z_vJ.d.ts.map +0 -1
  534. package/dist/component-source-DtSz1ZSB.js +0 -5
  535. package/dist/component-source-DtSz1ZSB.js.map +0 -1
  536. package/dist/components/copy-button/copy-button.d.ts +0 -5
  537. package/dist/components/copy-button/copy-button.js +0 -1
  538. package/dist/components/copy-button/copy-button.types.d.ts +0 -4
  539. package/dist/components/copy-button/index.d.ts +0 -6
  540. package/dist/components/copy-button/index.js +0 -1
  541. package/dist/components/layouts/command-menu/command-menu.d.ts +0 -2
  542. package/dist/components/layouts/command-menu/command-menu.js +0 -1
  543. package/dist/components/layouts/command-menu/index.d.ts +0 -3
  544. package/dist/components/layouts/command-menu/index.js +0 -1
  545. package/dist/components/layouts/site-footer/index.d.ts +0 -2
  546. package/dist/components/layouts/site-footer/index.js +0 -1
  547. package/dist/components/layouts/site-header/header-shell.js +0 -1
  548. package/dist/components/layouts/site-header/index.d.ts +0 -3
  549. package/dist/components/layouts/site-header/index.js +0 -1
  550. package/dist/components/layouts/tailwind-indicator/index.d.ts +0 -2
  551. package/dist/components/layouts/tailwind-indicator/index.js +0 -1
  552. package/dist/components/mdx/mdx-components/code/pre-block.d.ts +0 -4
  553. package/dist/components/mdx/mdx-components/code/pre-block.js +0 -1
  554. package/dist/components/mdx/mdx-components/framework-docs.d.ts +0 -2
  555. package/dist/components/mdx/mdx-components/framework-docs.js +0 -1
  556. package/dist/components/themes/index.d.ts +0 -4
  557. package/dist/components/themes/index.js +0 -1
  558. package/dist/components/themes/style-switcher.d.ts +0 -3
  559. package/dist/components/themes/style-switcher.js +0 -1
  560. package/dist/components-list-VYl4HAYt.d.ts +0 -12
  561. package/dist/context.types-KUK2rNdz.d.ts.map +0 -1
  562. package/dist/copy-button-DSpL6XPh.d.ts +0 -21
  563. package/dist/copy-button-DSpL6XPh.d.ts.map +0 -1
  564. package/dist/copy-button-DZizVQ8G.js +0 -2
  565. package/dist/copy-button-DZizVQ8G.js.map +0 -1
  566. package/dist/copy-button.types-CGEbiMXO.d.ts +0 -29
  567. package/dist/copy-button.types-CGEbiMXO.d.ts.map +0 -1
  568. package/dist/dialog-BJXRFGlQ.js +0 -31
  569. package/dist/dialog-BJXRFGlQ.js.map +0 -1
  570. package/dist/docs-copy-page-BEtbT7qX.d.ts.map +0 -1
  571. package/dist/docs-copy-page-DZDkcR09.js +0 -3
  572. package/dist/docs-copy-page-DZDkcR09.js.map +0 -1
  573. package/dist/docs-pager-Dr6dooWP.js +0 -2
  574. package/dist/docs-pager-Dr6dooWP.js.map +0 -1
  575. package/dist/docs-sidebar-CWDyV0Rj.d.ts +0 -30
  576. package/dist/docs-sidebar-CWDyV0Rj.d.ts.map +0 -1
  577. package/dist/docs-sidebar-MtBCNnEG.js +0 -2
  578. package/dist/docs-sidebar-MtBCNnEG.js.map +0 -1
  579. package/dist/docs-toc-B7RS1k0Z.d.ts +0 -13
  580. package/dist/docs-toc-B7RS1k0Z.d.ts.map +0 -1
  581. package/dist/docs-toc-Czi8gMJf.js +0 -2
  582. package/dist/docs-toc-Czi8gMJf.js.map +0 -1
  583. package/dist/drawer-DVVyDJ2D.js +0 -8
  584. package/dist/drawer-DVVyDJ2D.js.map +0 -1
  585. package/dist/dropdown-menu-Cf4PnvE4.js +0 -2
  586. package/dist/dropdown-menu-Cf4PnvE4.js.map +0 -1
  587. package/dist/figcaption-block-7FWvsSXj.js +0 -2
  588. package/dist/figcaption-block-7FWvsSXj.js.map +0 -1
  589. package/dist/figcaption-block-DfyvzBoz.d.ts.map +0 -1
  590. package/dist/framework-docs-BQx_CG7u.js +0 -2
  591. package/dist/framework-docs-BQx_CG7u.js.map +0 -1
  592. package/dist/framework-docs-BuqO4yKf.d.ts +0 -13
  593. package/dist/framework-docs-BuqO4yKf.d.ts.map +0 -1
  594. package/dist/header-shell-BnhiboVH.js.map +0 -1
  595. package/dist/header-shell-DG6EtZSb.d.ts.map +0 -1
  596. package/dist/icons-Bp6-jojO.d.ts +0 -30
  597. package/dist/icons-Bp6-jojO.d.ts.map +0 -1
  598. package/dist/icons-CiCgiCYy.js +0 -2
  599. package/dist/icons-CiCgiCYy.js.map +0 -1
  600. package/dist/index-BgMLDj-T.d.ts +0 -8
  601. package/dist/index-BgMLDj-T.d.ts.map +0 -1
  602. package/dist/index-Bler93Rv.d.ts +0 -7
  603. package/dist/index-Bler93Rv.d.ts.map +0 -1
  604. package/dist/index-C2_c9Mqo.d.ts.map +0 -1
  605. package/dist/index-DWZV2KV9.d.ts +0 -8
  606. package/dist/index-DWZV2KV9.d.ts.map +0 -1
  607. package/dist/main-nav-Ci0i9b05.js +0 -2
  608. package/dist/main-nav-Ci0i9b05.js.map +0 -1
  609. package/dist/main-nav-DdJSFX9R.d.ts +0 -7
  610. package/dist/main-nav-DdJSFX9R.d.ts.map +0 -1
  611. package/dist/mdx-Bc39yJEk.js +0 -2
  612. package/dist/mdx-Bc39yJEk.js.map +0 -1
  613. package/dist/mdx-CKRU84WS.d.ts +0 -12
  614. package/dist/mdx-CKRU84WS.d.ts.map +0 -1
  615. package/dist/mermaid-block-BlCALvQ4.js +0 -13
  616. package/dist/mermaid-block-BlCALvQ4.js.map +0 -1
  617. package/dist/metadata-plugin-OKcE6Xsj.d.ts +0 -7
  618. package/dist/metadata-plugin-OKcE6Xsj.d.ts.map +0 -1
  619. package/dist/metadata-plugin-tEixstEj.js +0 -2
  620. package/dist/metadata-plugin-tEixstEj.js.map +0 -1
  621. package/dist/mobile-nav-BAkYO55-.js +0 -2
  622. package/dist/mobile-nav-BAkYO55-.js.map +0 -1
  623. package/dist/mobile-nav-wLU7upp-.d.ts +0 -7
  624. package/dist/mobile-nav-wLU7upp-.d.ts.map +0 -1
  625. package/dist/mode-toggle-B4gU5bK6.d.ts +0 -7
  626. package/dist/mode-toggle-B4gU5bK6.d.ts.map +0 -1
  627. package/dist/mode-toggle-BFNnk0Th.js +0 -2
  628. package/dist/mode-toggle-BFNnk0Th.js.map +0 -1
  629. package/dist/mount-CNbhMJe--D9ALOndF.js +0 -2
  630. package/dist/mount-CNbhMJe--D9ALOndF.js.map +0 -1
  631. package/dist/nav-B2NAfb21.d.ts.map +0 -1
  632. package/dist/popover-DBuHxfGT.js +0 -2
  633. package/dist/popover-DBuHxfGT.js.map +0 -1
  634. package/dist/pre-block-C2YQ_YU_.js +0 -2
  635. package/dist/pre-block-C2YQ_YU_.js.map +0 -1
  636. package/dist/pre-block-DMxLF2Tm.d.ts +0 -33
  637. package/dist/pre-block-DMxLF2Tm.d.ts.map +0 -1
  638. package/dist/presence-DKRzzG6_-DV_YtF92.js +0 -2
  639. package/dist/presence-DKRzzG6_-DV_YtF92.js.map +0 -1
  640. package/dist/providers-CFfgRc3G.js +0 -2
  641. package/dist/providers-CFfgRc3G.js.map +0 -1
  642. package/dist/providers-Do13WJMr.d.ts.map +0 -1
  643. package/dist/rehype-mermaid-kjf2DmAC.d.ts.map +0 -1
  644. package/dist/rehype-npm-command-C7BP6nqi.d.ts.map +0 -1
  645. package/dist/rehype-npm-command-O7ik2lKv.js +0 -2
  646. package/dist/rehype-npm-command-O7ik2lKv.js.map +0 -1
  647. package/dist/rehype-pre-block-source-D8t3NCnT.js +0 -2
  648. package/dist/rehype-pre-block-source-D8t3NCnT.js.map +0 -1
  649. package/dist/rehype-pre-block-source-zKoXg4aL.d.ts.map +0 -1
  650. package/dist/rehype-title-umwuNb2D.d.ts.map +0 -1
  651. package/dist/scroll-area-Bj8-58Fz.js +0 -2
  652. package/dist/scroll-area-Bj8-58Fz.js.map +0 -1
  653. package/dist/separator-t0JrmyLj.js +0 -2
  654. package/dist/separator-t0JrmyLj.js.map +0 -1
  655. package/dist/site-footer-BZQcOAVy.js +0 -2
  656. package/dist/site-footer-BZQcOAVy.js.map +0 -1
  657. package/dist/site-header-DH4ChrKl.js +0 -2
  658. package/dist/site-header-DH4ChrKl.js.map +0 -1
  659. package/dist/style-switcher-BvF4n8f4.js +0 -2
  660. package/dist/style-switcher-BvF4n8f4.js.map +0 -1
  661. package/dist/style-switcher-gHkRCCrl.d.ts +0 -25
  662. package/dist/style-switcher-gHkRCCrl.d.ts.map +0 -1
  663. package/dist/table-Cu1wFi9V.js +0 -2
  664. package/dist/table-Cu1wFi9V.js.map +0 -1
  665. package/dist/table-DAVFXCAf.d.ts +0 -10
  666. package/dist/table-DAVFXCAf.d.ts.map +0 -1
  667. package/dist/tabs-33zMuIHi.d.ts +0 -68
  668. package/dist/tabs-33zMuIHi.d.ts.map +0 -1
  669. package/dist/tabs-Cvy3-KIA.js.map +0 -1
  670. package/dist/tabs-jsmxQQW0.js +0 -2
  671. package/dist/tabs-jsmxQQW0.js.map +0 -1
  672. package/dist/tailwind-indicator-Dt4Bfpta.js.map +0 -1
  673. package/dist/unist-DN6buKAy.d.ts +0 -44
  674. package/dist/unist-DN6buKAy.d.ts.map +0 -1
  675. package/dist/use-colors-tvFBbu3S.d.ts.map +0 -1
  676. package/dist/use-lift-mode-DEELjsRA.d.ts.map +0 -1
  677. package/dist/use-meta-colors-CkNbJTgD.d.ts.map +0 -1
  678. package/dist/use-mounted-BtOuPtMk.d.ts.map +0 -1
  679. package/dist/use-themes-config-Dtk_egkh.d.ts +0 -14
  680. package/dist/use-themes-config-Dtk_egkh.d.ts.map +0 -1
  681. package/dist/utils-Ck5VSddf.js +0 -2
  682. package/dist/utils-Ck5VSddf.js.map +0 -1
  683. package/dist/utils-gls3XPIE.d.ts.map +0 -1
  684. package/src/components/copy-button/copy-button.tsx +0 -88
  685. package/src/components/copy-button/copy-button.types.ts +0 -17
  686. package/src/components/copy-button/index.ts +0 -2
  687. package/src/components/layouts/command-menu/command-menu.tsx +0 -166
  688. package/src/components/layouts/command-menu/index.ts +0 -1
  689. package/src/components/layouts/site-header/index.tsx +0 -127
  690. package/src/components/mdx/mdx-components/framework-docs.tsx +0 -20
  691. package/src/components/themes/index.ts +0 -1
  692. /package/dist/{code-CRijMbf8.js → code-B8oMaOlf.js} +0 -0
  693. /package/dist/{command-menu-DJNwkpf0.js → components/mdx/mdx-component-registry.types.js} +0 -0
  694. /package/dist/components/{copy-button/copy-button.types.js → mdx/mdx-components/code/pre-block/types.js} +0 -0
  695. /package/dist/{context-DAoDXLlH.js → context-BC4O8IkN.js} +0 -0
  696. /package/dist/{context.types-XX-41b7E.js → context.types-xqn674mu.js} +0 -0
  697. /package/dist/{copy-button-BKOhlef4.js → direction-BgdQqJSh.js} +0 -0
  698. /package/dist/{copy-button.types-B9s047di.js → docs-BxKlMynn.js} +0 -0
  699. /package/dist/{index-2DqdDmQN.d.ts → index-2ODhJ4PF.d.ts} +0 -0
  700. /package/dist/{index-CGglgRYd.d.ts → index-BCvK1fdV.d.ts} +0 -0
  701. /package/dist/{index-CX84Uo3j.d.ts → index-BOXZdgrl.d.ts} +0 -0
  702. /package/dist/{index-DOo6j0yP.d.ts → index-CDXWDYLH.d.ts} +0 -0
  703. /package/dist/{index-DUfvqU8v.d.ts → index-CEmd2iJF.d.ts} +0 -0
  704. /package/dist/{index-DlpwrdjG.d.ts → index-CMgWXPTi.d.ts} +0 -0
  705. /package/dist/{index-DxmiBoAj.d.ts → index-J4eIjbSW.d.ts} +0 -0
  706. /package/dist/{index-DzZbxTJ5.d.ts → index-PiDlmF8F.d.ts} +0 -0
  707. /package/dist/{docs-BXWvl6Zg.js → layouts-CZzkzPUj.js} +0 -0
  708. /package/dist/{layouts-MJSz-Ia5.js → mdx-components-DVXN21iW.js} +0 -0
  709. /package/dist/{mdx-components-Bvz2OZPf.js → mdx-runtime-8ZPauNCe.js} +0 -0
  710. /package/dist/{nav-CVNxjtXM.js → nav-n66GykpT.js} +0 -0
  711. /package/dist/{themes-k-j3m6gv.js → pre-block-B4y5yM69.js} +0 -0
  712. /package/dist/{unist-C_C48flD.js → types/mdx-runtime.js} +0 -0
  713. /package/dist/{index-MPFNOj9E.d.ts → typography-BjwZeImL.d.ts} +0 -0
  714. /package/src/components/layouts/{tailwind-indicator/index.tsx → tailwind-indicator.tsx} +0 -0
@@ -1,10 +1,10 @@
1
- import { FileIcon } from 'lucide-react'
1
+ import { FileIcon, Loader } from 'lucide-react'
2
2
 
3
3
  type IconProps = React.HTMLAttributes<SVGElement>
4
4
 
5
5
  export const Icons = {
6
6
  apple: (props: IconProps) => (
7
- <svg role="img" viewBox="0 0 24 24" {...props}>
7
+ <svg aria-hidden="true" viewBox="0 0 24 24" {...props}>
8
8
  <path
9
9
  d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"
10
10
  fill="currentColor"
@@ -12,7 +12,7 @@ export const Icons = {
12
12
  </svg>
13
13
  ),
14
14
  aria: (props: IconProps) => (
15
- <svg fill="currentColor" role="img" viewBox="0 0 24 24" {...props}>
15
+ <svg aria-hidden="true" fill="currentColor" viewBox="0 0 24 24" {...props}>
16
16
  <path d="M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z" />
17
17
  </svg>
18
18
  ),
@@ -34,7 +34,7 @@ export const Icons = {
34
34
  </svg>
35
35
  ),
36
36
  google: (props: IconProps) => (
37
- <svg role="img" viewBox="0 0 24 24" {...props}>
37
+ <svg aria-hidden="true" viewBox="0 0 24 24" {...props}>
38
38
  <path
39
39
  d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"
40
40
  fill="currentColor"
@@ -66,7 +66,7 @@ export const Icons = {
66
66
  </svg>
67
67
  ),
68
68
  paypal: (props: IconProps) => (
69
- <svg role="img" viewBox="0 0 24 24" {...props}>
69
+ <svg aria-hidden="true" viewBox="0 0 24 24" {...props}>
70
70
  <path
71
71
  d="M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944.901C5.026.382 5.474 0 5.998 0h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.304 2.42 1.012 4.287-.023.143-.047.288-.077.437-.983 5.05-4.349 6.797-8.647 6.797h-2.19c-.524 0-.968.382-1.05.9l-1.12 7.106zm14.146-14.42a3.35 3.35 0 0 0-.607-.541c-.013.076-.026.175-.041.254-.93 4.778-4.005 7.201-9.138 7.201h-2.19a.563.563 0 0 0-.556.479l-1.187 7.527h-.506l-.24 1.516a.56.56 0 0 0 .554.647h3.882c.46 0 .85-.334.922-.788.06-.26.76-4.852.816-5.09a.932.932 0 0 1 .923-.788h.58c3.76 0 6.705-1.528 7.565-5.946.36-1.847.174-3.388-.777-4.471z"
72
72
  fill="currentColor"
@@ -98,20 +98,8 @@ export const Icons = {
98
98
  />
99
99
  </svg>
100
100
  ),
101
- spinner: (props: IconProps) => (
102
- <svg
103
- fill="none"
104
- height="24"
105
- stroke="currentColor"
106
- strokeLinecap="round"
107
- strokeLinejoin="round"
108
- strokeWidth="2"
109
- viewBox="0 0 24 24"
110
- width="24"
111
- xmlns="http://www.w3.org/2000/svg"
112
- {...props}>
113
- <path d="M21 12a9 9 0 1 1-6.219-8.56" />
114
- </svg>
101
+ spinner: ({ className, ...props }: IconProps) => (
102
+ <Loader className={className ? `animate-spin ${className}` : 'animate-spin'} {...props} />
115
103
  ),
116
104
  tailwind: (props: IconProps) => (
117
105
  <svg viewBox="0 0 24 24" {...props}>
@@ -126,9 +114,9 @@ export const Icons = {
126
114
  <svg
127
115
  data-darkreader-inline-fill=""
128
116
  data-darkreader-inline-stroke=""
117
+ aria-hidden="true"
129
118
  fill="currentColor"
130
119
  height="200px"
131
- role="img"
132
120
  stroke="currentColor"
133
121
  stroke-width="0"
134
122
  style={
@@ -177,18 +165,18 @@ export const Icons = {
177
165
  export function getIconForLanguageExtension(language: string) {
178
166
  switch (language) {
179
167
  case 'json':
180
- return <Icons.json />
168
+ return <Icons.json aria-hidden="true" />
181
169
  case 'css':
182
- return <Icons.css className="fill-foreground" />
170
+ return <Icons.css aria-hidden="true" className="fill-foreground" />
183
171
  case 'js':
184
172
  case 'jsx':
185
173
  case 'ts':
186
174
  case 'tsx':
187
175
  case 'typescript':
188
- return <Icons.ts className="fill-foreground" />
176
+ return <Icons.ts aria-hidden="true" className="fill-foreground" />
189
177
  case 'toml':
190
- return <Icons.toml className="fill-foreground" />
178
+ return <Icons.toml aria-hidden="true" className="fill-foreground" />
191
179
  default:
192
- return <FileIcon />
180
+ return <FileIcon aria-hidden="true" />
193
181
  }
194
182
  }
@@ -10,4 +10,4 @@ export * from './mobile-nav'
10
10
  export * from './mode-toggle'
11
11
  export * from './page-header'
12
12
  export * from './providers'
13
- export * from './themes'
13
+ export * from './style-switcher'
@@ -0,0 +1,491 @@
1
+ 'use client'
2
+
3
+ import { useDocsConfig, useDocsEntries } from '@duck-docs/context'
4
+ import type { DocsEntry, TocEntry } from '@duck-docs/context/context.types'
5
+ import type { SidebarNavItem } from '@duck-docs/types/nav'
6
+ import { cn } from '@gentleduck/libs/cn'
7
+ import { Button } from '@gentleduck/registry-ui/button'
8
+ import {
9
+ CommandDialog,
10
+ CommandEmpty,
11
+ CommandInput,
12
+ CommandItem,
13
+ CommandList,
14
+ CommandShortcut,
15
+ useCommandListContext,
16
+ } from '@gentleduck/registry-ui/command'
17
+ import { Separator } from '@gentleduck/registry-ui/separator'
18
+ import { useKeyCommands } from '@gentleduck/vim/react'
19
+ import { useVirtualizer } from '@tanstack/react-virtual'
20
+ import { Circle, Command, CornerDownLeft, FileIcon, Moon, Sun } from 'lucide-react'
21
+ import lunr from 'lunr'
22
+ import { useRouter } from 'next/navigation'
23
+ import { useTheme } from 'next-themes'
24
+ import * as React from 'react'
25
+
26
+ // -- Types -------------------------------------------------------------------
27
+
28
+ type FlattenedSidebarItem = {
29
+ href: string
30
+ title: string
31
+ }
32
+
33
+ type VirtualRow =
34
+ | { type: 'heading'; title: string }
35
+ | { type: 'item'; name: string; href: string; icon: React.ReactNode; action: () => void }
36
+
37
+ type ItemRow = VirtualRow & { type: 'item' }
38
+
39
+ type SearchableItem = {
40
+ groupTitle: string
41
+ id: string
42
+ leafTitle: string
43
+ name: string
44
+ segments: string
45
+ tocHeadings: string
46
+ }
47
+
48
+ // -- Constants ---------------------------------------------------------------
49
+
50
+ const HEADING_HEIGHT = 32
51
+ const ITEM_HEIGHT = 36
52
+
53
+ // -- Helpers -----------------------------------------------------------------
54
+
55
+ function flattenSidebarItems(items: SidebarNavItem[], parentTitle = ''): FlattenedSidebarItem[] {
56
+ const flattened: FlattenedSidebarItem[] = []
57
+
58
+ for (const item of items) {
59
+ const title = parentTitle ? `${parentTitle} / ${item.title}` : item.title
60
+
61
+ if (item.href && !item.disabled) {
62
+ flattened.push({
63
+ href: item.href,
64
+ title,
65
+ })
66
+ }
67
+
68
+ if (item.items?.length) {
69
+ flattened.push(...flattenSidebarItems(item.items, title))
70
+ }
71
+ }
72
+
73
+ return flattened
74
+ }
75
+
76
+ function flattenTocTitles(entries?: TocEntry[]): string {
77
+ if (!entries || entries.length === 0) return ''
78
+ const titles: string[] = []
79
+ for (const entry of entries) {
80
+ titles.push(entry.title)
81
+ if (entry.items?.length) {
82
+ titles.push(flattenTocTitles(entry.items))
83
+ }
84
+ }
85
+ return titles.join(' ')
86
+ }
87
+
88
+ function findTocHeadings(docs: DocsEntry[] | undefined, href: string): string {
89
+ if (!docs || !href) return ''
90
+ const doc = docs.find((d) => d.permalink === href || d.slug === href)
91
+ return doc?.toc ? flattenTocTitles(doc.toc) : ''
92
+ }
93
+
94
+ function buildSearchIndex(items: SearchableItem[]): lunr.Index {
95
+ return lunr(function () {
96
+ this.ref('id')
97
+ this.field('leafTitle', { boost: 10 })
98
+ this.field('name', { boost: 5 })
99
+ this.field('segments', { boost: 3 })
100
+ this.field('tocHeadings', { boost: 2 })
101
+ this.field('groupTitle', { boost: 1 })
102
+
103
+ this.pipeline.remove(lunr.stemmer)
104
+ this.searchPipeline.remove(lunr.stemmer)
105
+
106
+ for (const item of items) {
107
+ this.add(item)
108
+ }
109
+ })
110
+ }
111
+
112
+ // -- CommandMenu -------------------------------------------------------------
113
+
114
+ export function CommandMenu() {
115
+ const router = useRouter()
116
+ const [open, setOpen] = React.useState(false)
117
+ const { setTheme } = useTheme()
118
+ const docsConfig = useDocsConfig()
119
+ const docsEntries = useDocsEntries()
120
+ const [selectedLabel, setSelectedLabel] = React.useState('')
121
+
122
+ const items = React.useMemo(
123
+ () => [
124
+ ...docsConfig.sidebarNav.map((group) => ({
125
+ items: flattenSidebarItems(group.items ?? []).map((navItem) => ({
126
+ action: () => router.push(navItem.href),
127
+ href: navItem.href,
128
+ icon: <Circle aria-hidden="true" className="mr-2 h-3 w-3" />,
129
+ name: navItem.title,
130
+ })),
131
+ title: group.title,
132
+ })),
133
+ {
134
+ items: [
135
+ {
136
+ action: () => setTheme('light'),
137
+ href: '',
138
+ icon: <Sun aria-hidden="true" className="mr-2 h-4 w-4" />,
139
+ name: 'Light',
140
+ },
141
+ {
142
+ action: () => setTheme('dark'),
143
+ href: '',
144
+ icon: <Moon aria-hidden="true" className="mr-2 h-4 w-4" />,
145
+ name: 'Dark',
146
+ },
147
+ {
148
+ action: () => setTheme('system'),
149
+ href: '',
150
+ icon: <FileIcon aria-hidden="true" className="mr-2 h-4 w-4" />,
151
+ name: 'System',
152
+ },
153
+ ],
154
+ title: 'Theme',
155
+ },
156
+ ],
157
+ [docsConfig.sidebarNav, router, setTheme],
158
+ )
159
+
160
+ const flatRows = React.useMemo<VirtualRow[]>(() => {
161
+ const rows: VirtualRow[] = []
162
+ for (const group of items) {
163
+ rows.push({ type: 'heading', title: group.title })
164
+ for (const item of group.items) {
165
+ rows.push({ type: 'item', name: item.name, href: item.href, icon: item.icon, action: item.action })
166
+ }
167
+ }
168
+ return rows
169
+ }, [items])
170
+
171
+ const searchIndex = React.useMemo(() => {
172
+ const searchable: SearchableItem[] = []
173
+
174
+ for (const group of items) {
175
+ if (group.title === 'Theme') continue
176
+ for (const item of group.items) {
177
+ const segments = item.name.split(' / ')
178
+ const leafTitle = segments[segments.length - 1] ?? item.name
179
+ searchable.push({
180
+ groupTitle: group.title,
181
+ id: item.name,
182
+ leafTitle,
183
+ name: item.name,
184
+ segments: segments.join(' '),
185
+ tocHeadings: findTocHeadings(docsEntries, item.href),
186
+ })
187
+ }
188
+ }
189
+
190
+ return searchable.length > 0 ? buildSearchIndex(searchable) : null
191
+ }, [items, docsEntries])
192
+
193
+ return (
194
+ <>
195
+ <Button
196
+ className={cn(
197
+ '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',
198
+ )}
199
+ onClick={() => setOpen(true)}
200
+ size={'sm'}
201
+ variant="outline">
202
+ <span className="hidden lg:inline-flex">Search documentation...</span>
203
+ <span className="inline-flex lg:hidden">Search...</span>
204
+ <CommandShortcut
205
+ className="bg-secondary"
206
+ keys={'ctrl+k'}
207
+ onKeysPressed={() => {
208
+ setOpen((prev) => !prev)
209
+ }}>
210
+ <Command aria-hidden="true" className="!size-3" />
211
+ <span className="text-md">K</span>
212
+ </CommandShortcut>
213
+ </Button>
214
+ <CommandDialog onOpenChange={setOpen} open={open}>
215
+ <CommandInput autoFocus placeholder="Search..." />
216
+ <VirtualCommandList
217
+ flatRows={flatRows}
218
+ onClose={() => setOpen(false)}
219
+ onSelectedLabelChange={setSelectedLabel}
220
+ searchIndex={searchIndex}
221
+ />
222
+ <CommandFooter selectedLabel={selectedLabel} />
223
+ </CommandDialog>
224
+ </>
225
+ )
226
+ }
227
+
228
+ // -- VirtualCommandList ------------------------------------------------------
229
+
230
+ function VirtualCommandList({
231
+ flatRows,
232
+ onClose,
233
+ onSelectedLabelChange,
234
+ searchIndex,
235
+ }: {
236
+ flatRows: VirtualRow[]
237
+ onClose: () => void
238
+ onSelectedLabelChange: (label: string) => void
239
+ searchIndex: lunr.Index | null
240
+ }) {
241
+ const { search } = useCommandListContext({})
242
+ const scrollRef = React.useRef<HTMLDivElement>(null)
243
+ const [selectedIndex, setSelectedIndex] = React.useState(0)
244
+
245
+ const filteredRows = React.useMemo<VirtualRow[]>(() => {
246
+ if (!search) return flatRows
247
+
248
+ // Build score map from lunr results for doc items
249
+ let scoreMap: Map<string, number>
250
+
251
+ try {
252
+ if (!searchIndex) throw new Error('no index')
253
+ const sanitized = search.replace(/[:\*\~\+\-\^]/g, '\\$&')
254
+ const terms = sanitized.trim().split(/\s+/).filter(Boolean)
255
+ if (terms.length === 0) return flatRows
256
+
257
+ // Try wildcard prefix matching first (natural for incremental typing)
258
+ let results = searchIndex.search(terms.map((t) => `${t}*`).join(' '))
259
+
260
+ // Fuzzy fallback for typos
261
+ if (results.length === 0) {
262
+ results = searchIndex.search(terms.map((t) => `${t}~1`).join(' '))
263
+ }
264
+
265
+ scoreMap = new Map(results.map((r) => [r.ref, r.score]))
266
+ } catch {
267
+ // lunr threw on invalid syntax -- fall back to substring
268
+ const q = search.toLowerCase()
269
+ scoreMap = new Map(
270
+ flatRows
271
+ .filter((r): r is ItemRow => r.type === 'item' && r.name.toLowerCase().includes(q))
272
+ .map((r) => [r.name, 1]),
273
+ )
274
+ }
275
+
276
+ const query = search.toLowerCase()
277
+ const filtered: VirtualRow[] = []
278
+ let currentHeading: (VirtualRow & { type: 'heading' }) | null = null
279
+ let pendingItems: ItemRow[] = []
280
+ let isThemeGroup = false
281
+
282
+ const flushGroup = () => {
283
+ if (pendingItems.length > 0 && currentHeading) {
284
+ // Sort items within group by lunr score (highest first)
285
+ pendingItems.sort((a, b) => (scoreMap.get(b.name) ?? 0) - (scoreMap.get(a.name) ?? 0))
286
+ filtered.push(currentHeading)
287
+ filtered.push(...pendingItems)
288
+ }
289
+ pendingItems = []
290
+ }
291
+
292
+ for (const row of flatRows) {
293
+ if (row.type === 'heading') {
294
+ flushGroup()
295
+ currentHeading = row
296
+ isThemeGroup = row.title === 'Theme'
297
+ } else if (row.type === 'item') {
298
+ // Theme items use substring, doc items use lunr
299
+ const isMatch = isThemeGroup ? row.name.toLowerCase().includes(query) : scoreMap.has(row.name)
300
+ if (isMatch) {
301
+ pendingItems.push(row)
302
+ }
303
+ }
304
+ }
305
+ flushGroup()
306
+
307
+ return filtered
308
+ }, [flatRows, search, searchIndex])
309
+
310
+ // Extract only item rows for index-based navigation
311
+ const itemRows = React.useMemo<ItemRow[]>(
312
+ () => filteredRows.filter((r): r is ItemRow => r.type === 'item'),
313
+ [filteredRows],
314
+ )
315
+
316
+ // Reset selection when search/filter changes
317
+ React.useEffect(() => {
318
+ setSelectedIndex(0)
319
+ }, [search])
320
+
321
+ // Clamp selectedIndex to valid range
322
+ const clampedIndex = itemRows.length > 0 ? Math.min(selectedIndex, itemRows.length - 1) : -1
323
+ const selectedRow = clampedIndex >= 0 ? itemRows[clampedIndex] : null
324
+
325
+ // Sync selected label to parent for footer
326
+ React.useEffect(() => {
327
+ onSelectedLabelChange(selectedRow?.name ?? '')
328
+ }, [selectedRow?.name, onSelectedLabelChange])
329
+
330
+ // Find the index in filteredRows (including headings) for virtualizer scrolling
331
+ const selectedFilteredIndex = selectedRow ? filteredRows.indexOf(selectedRow) : -1
332
+
333
+ const virtualizer = useVirtualizer({
334
+ count: filteredRows.length,
335
+ getScrollElement: () => scrollRef.current,
336
+ estimateSize: (index) => (filteredRows[index]?.type === 'heading' ? HEADING_HEIGHT : ITEM_HEIGHT),
337
+ overscan: 5,
338
+ })
339
+
340
+ // Scroll virtualizer to selected item when it changes
341
+ React.useEffect(() => {
342
+ if (selectedFilteredIndex >= 0) {
343
+ virtualizer.scrollToIndex(selectedFilteredIndex, { align: 'auto' })
344
+ }
345
+ }, [selectedFilteredIndex, virtualizer])
346
+
347
+ // Keyboard navigation via capture-phase listener.
348
+ const stableRef = React.useRef({ itemRows, selectedRow, clampedIndex, onClose })
349
+ stableRef.current = { itemRows, selectedRow, clampedIndex, onClose }
350
+
351
+ React.useEffect(() => {
352
+ const handler = (e: KeyboardEvent) => {
353
+ const { itemRows: rows, selectedRow: selected, clampedIndex: idx, onClose: close } = stableRef.current
354
+ if (rows.length === 0 && e.key !== 'Escape') return
355
+
356
+ switch (e.key) {
357
+ case 'ArrowDown':
358
+ e.preventDefault()
359
+ setSelectedIndex((prev) => Math.min(prev + 1, rows.length - 1))
360
+ break
361
+ case 'ArrowUp':
362
+ e.preventDefault()
363
+ setSelectedIndex((prev) => Math.max(prev - 1, 0))
364
+ break
365
+ case 'Home':
366
+ e.preventDefault()
367
+ setSelectedIndex(0)
368
+ break
369
+ case 'End':
370
+ e.preventDefault()
371
+ setSelectedIndex(rows.length - 1)
372
+ break
373
+ case 'Enter':
374
+ e.preventDefault()
375
+ if (selected) {
376
+ close()
377
+ selected.action()
378
+ }
379
+ break
380
+ }
381
+ }
382
+ document.addEventListener('keydown', handler, true)
383
+ return () => document.removeEventListener('keydown', handler, true)
384
+ }, [])
385
+
386
+ const isEmpty = itemRows.length === 0
387
+
388
+ return (
389
+ <>
390
+ {isEmpty && <CommandEmpty>No results found.</CommandEmpty>}
391
+ <CommandList className="h-[390px] max-h-full w-full md:w-full" scrollRef={scrollRef}>
392
+ <div style={{ height: virtualizer.getTotalSize(), position: 'relative', width: '100%' }}>
393
+ {virtualizer.getVirtualItems().map((virtualRow) => {
394
+ const row = filteredRows[virtualRow.index]
395
+ const isSelected = row === selectedRow
396
+ return (
397
+ <div
398
+ key={virtualRow.key}
399
+ data-index={virtualRow.index}
400
+ ref={virtualizer.measureElement}
401
+ style={{
402
+ position: 'absolute',
403
+ top: 0,
404
+ left: 0,
405
+ width: '100%',
406
+ transform: `translateY(${virtualRow.start}px)`,
407
+ }}>
408
+ {row?.type === 'heading' ? (
409
+ <div
410
+ data-slot="command-group-heading"
411
+ className="px-2 py-1.5 font-medium text-muted-foreground text-sm">
412
+ {row.title}
413
+ </div>
414
+ ) : (
415
+ <CommandItem
416
+ value={row?.name}
417
+ textValue={search ? `${row?.name} ${search}` : row?.name}
418
+ data-highlighted={isSelected ? '' : undefined}
419
+ aria-selected={isSelected}
420
+ onSelect={() => {
421
+ onClose()
422
+ row?.action()
423
+ }}
424
+ onPointerMove={() => {
425
+ const idx = itemRows.indexOf(row as ItemRow)
426
+ if (idx >= 0) setSelectedIndex(idx)
427
+ }}>
428
+ {row?.icon}
429
+ <span>{row?.name}</span>
430
+ </CommandItem>
431
+ )}
432
+ </div>
433
+ )
434
+ })}
435
+ </div>
436
+ </CommandList>
437
+ </>
438
+ )
439
+ }
440
+
441
+ // -- CommandFooter -----------------------------------------------------------
442
+
443
+ function CommandFooter({ selectedLabel }: { selectedLabel: string }) {
444
+ const docsConfig = useDocsConfig()
445
+ const sidebarItems = docsConfig.sidebarNav.flatMap((group) => flattenSidebarItems(group.items ?? []))
446
+ const selectedNavItem = sidebarItems.find((item) => item.title === selectedLabel)
447
+ useKeyCommands(
448
+ {
449
+ 'ctrl+shift+c': {
450
+ description: 'Copy command',
451
+ execute: () => {
452
+ if (!selectedLabel) return
453
+ navigator.clipboard.writeText(`bunx @gentleduck/cli add ${selectedLabel.toLowerCase().replace(/ /g, '-')}`)
454
+ },
455
+ name: 'ctrl+shift+c',
456
+ },
457
+ },
458
+ { preventDefault: true },
459
+ )
460
+ return (
461
+ <div className="hidden h-10 w-full items-center justify-between gap-4 border-t px-2 pt-2 lg:flex">
462
+ <div className="flex h-full w-full items-center justify-between gap-4">
463
+ {selectedLabel && (
464
+ <Button className={cn('px-2')} size={'sm'} variant={'outline'}>
465
+ <CornerDownLeft aria-hidden="true" />
466
+ <Separator className="m-0 h-4 p-0" orientation="vertical" />
467
+ {selectedLabel.split(' ')?.[0]}
468
+ </Button>
469
+ )}
470
+ {selectedLabel && selectedNavItem?.title ? (
471
+ <Button className={cn('px-2')} size={'sm'} variant={'outline'}>
472
+ <div className="flex items-center gap-1">
473
+ <Command aria-hidden="true" className="!size-3" />
474
+ <p className="text-md">C</p>
475
+ </div>
476
+ <Separator className="m-0 h-4 p-0" orientation="vertical" />
477
+ <div className="flex items-center gap-1">
478
+ <span>bunx @gentleduck/cli add</span>
479
+ <span className="text-blue-400">{selectedNavItem.title.split(' ')?.[0]?.toLowerCase()}</span>
480
+ </div>
481
+ </Button>
482
+ ) : (
483
+ <p className="flex h-full w-full items-center justify-center whitespace-nowrap text-right text-muted-foreground text-sm">
484
+ <span className="whitespace-nowrap font-medium text-sm">Command palette</span> for the documentation
485
+ content.
486
+ </p>
487
+ )}
488
+ </div>
489
+ </div>
490
+ )
491
+ }
@@ -52,14 +52,14 @@ export function HeaderBrand({
52
52
  return (
53
53
  <Link className={cn('flex items-center gap-2 text-foreground', className)} href={href}>
54
54
  <Image
55
- alt="Logo"
55
+ alt={`${label} logo`}
56
56
  className={cn('hidden h-6 w-6 dark:block', logoClassName)}
57
57
  height={512}
58
58
  src={logoDark}
59
59
  width={512}
60
60
  />
61
61
  <Image
62
- alt="Logo"
62
+ alt={`${label} logo`}
63
63
  className={cn('block h-6 w-6 dark:hidden', logoClassName)}
64
64
  height={512}
65
65
  src={logoLight}
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
 
3
3
  import { useSiteConfig } from '@duck-docs/context'
4
- import { buttonVariants } from '@gentleduck/registry-ui-duckui/button'
4
+ import { buttonVariants } from '@gentleduck/registry-ui/button'
5
5
  import { HeartIcon, Mail } from 'lucide-react'
6
6
  import Link from 'next/link'
7
7
 
@@ -20,6 +20,7 @@ export function SiteFooter() {
20
20
  {authorUrl ? (
21
21
  <a className="font-medium underline underline-offset-4" href={authorUrl} rel="noreferrer" target="_blank">
22
22
  {authorName}
23
+ <span className="sr-only"> (opens in a new tab)</span>
23
24
  </a>
24
25
  ) : (
25
26
  <span className="font-medium">{authorName}</span>
@@ -33,6 +34,7 @@ export function SiteFooter() {
33
34
  rel="noreferrer"
34
35
  target="_blank">
35
36
  GitHub
37
+ <span className="sr-only"> (opens in a new tab)</span>
36
38
  </a>
37
39
  .
38
40
  </>
@@ -53,17 +55,18 @@ export function FooterButtons() {
53
55
  <>
54
56
  <Link
55
57
  className={buttonVariants({ size: 'sm', variant: 'outline' })}
56
- href="https://github.com/sponsors/wildduck2"
58
+ href={siteConfig.links?.sponsor ?? 'https://opencollective.com/gentelduck'}
59
+ rel="noreferrer"
57
60
  target="_blank">
58
- <HeartIcon className="mr-2 h-4 w-4 fill-current text-red-600" />
61
+ <HeartIcon aria-hidden="true" className="mr-2 h-4 w-4 fill-current text-red-600" />
59
62
  Sponsor
63
+ <span className="sr-only"> (opens in a new tab)</span>
60
64
  </Link>
61
65
  <Link
62
66
  className={buttonVariants({ size: 'sm', variant: 'outline' })}
63
- href={siteConfig.links?.email ? `mailto:${siteConfig.links.email}` : 'mailto:support@gentleduck.org'}
64
- target="_blank">
65
- <Mail />
66
- <span className="">Email</span>
67
+ href={siteConfig.links?.email ? `mailto:${siteConfig.links.email}` : 'mailto:support@gentleduck.org'}>
68
+ <Mail aria-hidden="true" />
69
+ <span>Email</span>
67
70
  </Link>
68
71
  </>
69
72
  )