vitepress 2.0.0-alpha.2 → 2.0.0-alpha.21

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 (286) hide show
  1. package/README.md +34 -2
  2. package/THIRD-PARTY-NOTICES.md +1736 -0
  3. package/bin/vitepress.js +14 -0
  4. package/client.d.ts +9 -0
  5. package/dist/client/app/components/ClientOnly.d.ts +5 -0
  6. package/dist/client/app/components/ClientOnly.js +11 -10
  7. package/dist/client/app/components/Content.d.ts +17 -0
  8. package/dist/client/app/components/Content.js +25 -22
  9. package/dist/client/app/composables/codeGroups.d.ts +3 -0
  10. package/dist/client/app/composables/codeGroups.js +36 -39
  11. package/dist/client/app/composables/copyCode.d.ts +3 -0
  12. package/dist/client/app/composables/copyCode.js +59 -70
  13. package/dist/client/app/composables/head.d.ts +5 -0
  14. package/dist/client/app/composables/head.js +56 -74
  15. package/dist/client/app/composables/icon.d.ts +12 -0
  16. package/dist/client/app/composables/icon.js +56 -0
  17. package/dist/client/app/composables/preFetch.d.ts +3 -0
  18. package/dist/client/app/composables/preFetch.js +64 -96
  19. package/dist/client/app/data.d.ts +9 -0
  20. package/dist/client/app/data.js +34 -59
  21. package/dist/client/app/devtools.d.ts +7 -0
  22. package/dist/client/app/devtools.js +29 -28
  23. package/dist/client/app/index.d.ts +11 -0
  24. package/dist/client/app/index.js +106 -131
  25. package/dist/client/app/router.d.ts +49 -0
  26. package/dist/client/app/router.js +198 -239
  27. package/dist/client/app/ssr.d.ts +4 -0
  28. package/dist/client/app/ssr.js +14 -9
  29. package/dist/client/app/theme.d.ts +24 -0
  30. package/dist/client/app/theme.js +0 -1
  31. package/dist/client/app/utils.d.ts +35 -0
  32. package/dist/client/app/utils.js +77 -110
  33. package/dist/client/index.d.ts +21 -137
  34. package/dist/client/index.js +8 -9
  35. package/dist/client/shared.d.ts +88 -0
  36. package/dist/client/shared.js +265 -141
  37. package/dist/client/theme-default/Layout.d.vue.ts +79 -0
  38. package/dist/client/theme-default/Layout.vue +33 -36
  39. package/dist/client/theme-default/NotFound.d.vue.ts +3 -0
  40. package/dist/client/theme-default/NotFound.vue +33 -35
  41. package/dist/client/theme-default/components/VPAlgoliaSearchBox.d.vue.ts +11 -0
  42. package/dist/client/theme-default/components/VPAlgoliaSearchBox.vue +202 -70
  43. package/dist/client/theme-default/components/VPBackdrop.d.vue.ts +6 -0
  44. package/dist/client/theme-default/components/VPBackdrop.vue +8 -12
  45. package/dist/client/theme-default/components/VPBadge.d.vue.ts +19 -0
  46. package/dist/client/theme-default/components/VPBadge.vue +49 -26
  47. package/dist/client/theme-default/components/VPButton.d.vue.ts +25 -0
  48. package/dist/client/theme-default/components/VPButton.vue +53 -36
  49. package/dist/client/theme-default/components/VPCarbonAds.d.vue.ts +7 -0
  50. package/dist/client/theme-default/components/VPCarbonAds.vue +51 -52
  51. package/dist/client/theme-default/components/VPContent.d.vue.ts +59 -0
  52. package/dist/client/theme-default/components/VPContent.vue +27 -26
  53. package/dist/client/theme-default/components/VPDoc.d.vue.ts +33 -0
  54. package/dist/client/theme-default/components/VPDoc.vue +52 -48
  55. package/dist/client/theme-default/components/VPDocAside.d.vue.ts +23 -0
  56. package/dist/client/theme-default/components/VPDocAside.vue +7 -8
  57. package/dist/client/theme-default/components/VPDocAsideCarbonAds.d.vue.ts +7 -0
  58. package/dist/client/theme-default/components/VPDocAsideCarbonAds.vue +7 -11
  59. package/dist/client/theme-default/components/VPDocAsideOutline.d.vue.ts +3 -0
  60. package/dist/client/theme-default/components/VPDocAsideOutline.vue +22 -38
  61. package/dist/client/theme-default/components/VPDocAsideSponsors.d.vue.ts +10 -0
  62. package/dist/client/theme-default/components/VPDocAsideSponsors.vue +17 -11
  63. package/dist/client/theme-default/components/VPDocFooter.d.vue.ts +13 -0
  64. package/dist/client/theme-default/components/VPDocFooter.vue +38 -45
  65. package/dist/client/theme-default/components/VPDocFooterLastUpdated.d.vue.ts +3 -0
  66. package/dist/client/theme-default/components/VPDocFooterLastUpdated.vue +30 -29
  67. package/dist/client/theme-default/components/VPDocOutlineItem.d.vue.ts +8 -0
  68. package/dist/client/theme-default/components/VPDocOutlineItem.vue +20 -19
  69. package/dist/client/theme-default/components/VPFeature.d.vue.ts +13 -0
  70. package/dist/client/theme-default/components/VPFeature.vue +62 -36
  71. package/dist/client/theme-default/components/VPFeatures.d.vue.ts +16 -0
  72. package/dist/client/theme-default/components/VPFeatures.vue +35 -48
  73. package/dist/client/theme-default/components/VPFlyout.d.vue.ts +26 -0
  74. package/dist/client/theme-default/components/VPFlyout.vue +111 -47
  75. package/dist/client/theme-default/components/VPFooter.d.vue.ts +3 -0
  76. package/dist/client/theme-default/components/VPFooter.vue +22 -15
  77. package/dist/client/theme-default/components/VPHero.d.vue.ts +38 -0
  78. package/dist/client/theme-default/components/VPHero.vue +109 -99
  79. package/dist/client/theme-default/components/VPHome.d.vue.ts +31 -0
  80. package/dist/client/theme-default/components/VPHome.vue +15 -15
  81. package/dist/client/theme-default/components/VPHomeContent.d.vue.ts +13 -0
  82. package/dist/client/theme-default/components/VPHomeContent.vue +9 -27
  83. package/dist/client/theme-default/components/VPHomeFeatures.d.vue.ts +3 -0
  84. package/dist/client/theme-default/components/VPHomeFeatures.vue +4 -5
  85. package/dist/client/theme-default/components/VPHomeHero.d.vue.ts +23 -0
  86. package/dist/client/theme-default/components/VPHomeHero.vue +5 -5
  87. package/dist/client/theme-default/components/VPHomeSponsors.d.vue.ts +21 -0
  88. package/dist/client/theme-default/components/VPHomeSponsors.vue +42 -43
  89. package/dist/client/theme-default/components/VPIcon.d.vue.ts +8 -0
  90. package/dist/client/theme-default/components/VPIcon.vue +29 -0
  91. package/dist/client/theme-default/components/VPImage.d.vue.ts +8 -0
  92. package/dist/client/theme-default/components/VPImage.vue +20 -14
  93. package/dist/client/theme-default/components/VPLink.d.vue.ts +23 -0
  94. package/dist/client/theme-default/components/VPLink.vue +42 -23
  95. package/dist/client/theme-default/components/VPLocalNav.d.vue.ts +10 -0
  96. package/dist/client/theme-default/components/VPLocalNav.vue +69 -86
  97. package/dist/client/theme-default/components/VPLocalNavOutlineDropdown.d.vue.ts +8 -0
  98. package/dist/client/theme-default/components/VPLocalNavOutlineDropdown.vue +98 -96
  99. package/dist/client/theme-default/components/VPLocalSearchBox.d.vue.ts +7 -0
  100. package/dist/client/theme-default/components/VPLocalSearchBox.vue +391 -454
  101. package/dist/client/theme-default/components/VPMenu.d.vue.ts +23 -0
  102. package/dist/client/theme-default/components/VPMenu.vue +19 -31
  103. package/dist/client/theme-default/components/VPMenuGroup.d.vue.ts +22 -0
  104. package/dist/client/theme-default/components/VPMenuGroup.vue +72 -18
  105. package/dist/client/theme-default/components/VPMenuLink.d.vue.ts +22 -0
  106. package/dist/client/theme-default/components/VPMenuLink.vue +65 -31
  107. package/dist/client/theme-default/components/VPNav.d.vue.ts +23 -0
  108. package/dist/client/theme-default/components/VPNav.vue +18 -24
  109. package/dist/client/theme-default/components/VPNavAppearance.d.vue.ts +9 -0
  110. package/dist/client/theme-default/components/VPNavAppearance.vue +88 -0
  111. package/dist/client/theme-default/components/VPNavBar.d.vue.ts +26 -0
  112. package/dist/client/theme-default/components/VPNavBar.vue +170 -142
  113. package/dist/client/theme-default/components/VPNavBarAskAiButton.d.vue.ts +3 -0
  114. package/dist/client/theme-default/components/VPNavBarAskAiButton.vue +31 -0
  115. package/dist/client/theme-default/components/VPNavBarExtra.d.vue.ts +3 -0
  116. package/dist/client/theme-default/components/VPNavBarExtra.vue +51 -73
  117. package/dist/client/theme-default/components/VPNavBarHamburger.d.vue.ts +10 -0
  118. package/dist/client/theme-default/components/VPNavBarHamburger.vue +38 -28
  119. package/dist/client/theme-default/components/VPNavBarSearch.d.vue.ts +3 -0
  120. package/dist/client/theme-default/components/VPNavBarSearch.vue +129 -160
  121. package/dist/client/theme-default/components/VPNavBarSearchButton.d.vue.ts +6 -0
  122. package/dist/client/theme-default/components/VPNavBarSearchButton.vue +48 -182
  123. package/dist/client/theme-default/components/VPNavBarTitle.d.vue.ts +15 -0
  124. package/dist/client/theme-default/components/VPNavBarTitle.vue +39 -38
  125. package/dist/client/theme-default/components/VPNavMenu.d.vue.ts +6 -0
  126. package/dist/client/theme-default/components/VPNavMenu.vue +76 -0
  127. package/dist/client/theme-default/components/VPNavMenuGroup.d.vue.ts +11 -0
  128. package/dist/client/theme-default/components/VPNavMenuGroup.vue +140 -0
  129. package/dist/client/theme-default/components/VPNavMenuLink.d.vue.ts +8 -0
  130. package/dist/client/theme-default/components/VPNavMenuLink.vue +69 -0
  131. package/dist/client/theme-default/components/VPNavScreen.d.vue.ts +18 -0
  132. package/dist/client/theme-default/components/VPNavScreen.vue +36 -34
  133. package/dist/client/theme-default/components/VPNavSocialLinks.d.vue.ts +6 -0
  134. package/dist/client/theme-default/components/VPNavSocialLinks.vue +36 -0
  135. package/dist/client/theme-default/components/VPNavTranslations.d.vue.ts +9 -0
  136. package/dist/client/theme-default/components/VPNavTranslations.vue +170 -0
  137. package/dist/client/theme-default/components/VPPage.d.vue.ts +15 -0
  138. package/dist/client/theme-default/components/VPSidebar.d.vue.ts +18 -0
  139. package/dist/client/theme-default/components/VPSidebar.vue +40 -53
  140. package/dist/client/theme-default/components/VPSidebarGroup.d.vue.ts +7 -0
  141. package/dist/client/theme-default/components/VPSidebarGroup.vue +24 -29
  142. package/dist/client/theme-default/components/VPSidebarItem.d.vue.ts +8 -0
  143. package/dist/client/theme-default/components/VPSidebarItem.vue +60 -93
  144. package/dist/client/theme-default/components/VPSkipLink.d.vue.ts +6 -0
  145. package/dist/client/theme-default/components/VPSkipLink.vue +23 -42
  146. package/dist/client/theme-default/components/VPSocialLink.d.vue.ts +11 -0
  147. package/dist/client/theme-default/components/VPSocialLink.vue +42 -49
  148. package/dist/client/theme-default/components/VPSocialLinks.d.vue.ts +10 -0
  149. package/dist/client/theme-default/components/VPSocialLinks.vue +26 -16
  150. package/dist/client/theme-default/components/VPSponsors.d.vue.ts +18 -0
  151. package/dist/client/theme-default/components/VPSponsors.vue +34 -33
  152. package/dist/client/theme-default/components/VPSponsorsGrid.d.vue.ts +15 -0
  153. package/dist/client/theme-default/components/VPSponsorsGrid.vue +23 -26
  154. package/dist/client/theme-default/components/VPSwitch.d.vue.ts +13 -0
  155. package/dist/client/theme-default/components/VPSwitch.vue +12 -13
  156. package/dist/client/theme-default/components/VPSwitchAppearance.d.vue.ts +3 -0
  157. package/dist/client/theme-default/components/VPSwitchAppearance.vue +16 -21
  158. package/dist/client/theme-default/components/VPTeamMembers.d.vue.ts +10 -0
  159. package/dist/client/theme-default/components/VPTeamMembers.vue +59 -32
  160. package/dist/client/theme-default/components/VPTeamMembersItem.d.vue.ts +10 -0
  161. package/dist/client/theme-default/components/VPTeamMembersItem.vue +62 -58
  162. package/dist/client/theme-default/components/VPTeamPage.d.vue.ts +13 -0
  163. package/dist/client/theme-default/components/VPTeamPage.vue +14 -14
  164. package/dist/client/theme-default/components/VPTeamPageSection.d.vue.ts +17 -0
  165. package/dist/client/theme-default/components/VPTeamPageSection.vue +20 -19
  166. package/dist/client/theme-default/components/VPTeamPageTitle.d.vue.ts +15 -0
  167. package/dist/client/theme-default/components/VPTeamPageTitle.vue +22 -22
  168. package/dist/client/theme-default/composables/data.d.ts +5 -0
  169. package/dist/client/theme-default/composables/data.js +5 -2
  170. package/dist/client/theme-default/composables/edit-link.d.ts +6 -0
  171. package/dist/client/theme-default/composables/edit-link.js +17 -15
  172. package/dist/client/theme-default/composables/flyout.d.ts +10 -0
  173. package/dist/client/theme-default/composables/flyout.js +33 -32
  174. package/dist/client/theme-default/composables/langs.d.ts +44 -0
  175. package/dist/client/theme-default/composables/langs.js +48 -24
  176. package/dist/client/theme-default/composables/layout.d.ts +13 -0
  177. package/dist/client/theme-default/composables/layout.js +68 -0
  178. package/dist/client/theme-default/composables/nav-overflow.d.ts +54 -0
  179. package/dist/client/theme-default/composables/nav-overflow.js +179 -0
  180. package/dist/client/theme-default/composables/nav.d.ts +25 -0
  181. package/dist/client/theme-default/composables/nav.js +58 -29
  182. package/dist/client/theme-default/composables/outline.d.ts +8 -0
  183. package/dist/client/theme-default/composables/outline.js +144 -166
  184. package/dist/client/theme-default/composables/prev-next.d.ts +16 -0
  185. package/dist/client/theme-default/composables/prev-next.js +34 -56
  186. package/dist/client/theme-default/composables/scroll-lock.d.ts +4 -0
  187. package/dist/client/theme-default/composables/scroll-lock.js +95 -0
  188. package/dist/client/theme-default/composables/sidebar.d.ts +25 -0
  189. package/dist/client/theme-default/composables/sidebar.js +96 -133
  190. package/dist/client/theme-default/composables/sponsor-grid.d.ts +10 -0
  191. package/dist/client/theme-default/composables/sponsor-grid.js +69 -76
  192. package/dist/client/theme-default/fonts/inter-italic-cyrillic-ext.woff2 +0 -0
  193. package/dist/client/theme-default/fonts/inter-italic-cyrillic.woff2 +0 -0
  194. package/dist/client/theme-default/fonts/inter-italic-greek-ext.woff2 +0 -0
  195. package/dist/client/theme-default/fonts/inter-italic-greek.woff2 +0 -0
  196. package/dist/client/theme-default/fonts/inter-italic-latin-ext.woff2 +0 -0
  197. package/dist/client/theme-default/fonts/inter-italic-latin.woff2 +0 -0
  198. package/dist/client/theme-default/fonts/inter-italic-symbols.woff2 +0 -0
  199. package/dist/client/theme-default/fonts/inter-italic-vietnamese.woff2 +0 -0
  200. package/dist/client/theme-default/fonts/inter-roman-cyrillic-ext.woff2 +0 -0
  201. package/dist/client/theme-default/fonts/inter-roman-cyrillic.woff2 +0 -0
  202. package/dist/client/theme-default/fonts/inter-roman-greek-ext.woff2 +0 -0
  203. package/dist/client/theme-default/fonts/inter-roman-greek.woff2 +0 -0
  204. package/dist/client/theme-default/fonts/inter-roman-latin-ext.woff2 +0 -0
  205. package/dist/client/theme-default/fonts/inter-roman-latin.woff2 +0 -0
  206. package/dist/client/theme-default/fonts/inter-roman-symbols.woff2 +0 -0
  207. package/dist/client/theme-default/fonts/inter-roman-vietnamese.woff2 +0 -0
  208. package/dist/client/theme-default/index.d.ts +3 -0
  209. package/dist/client/theme-default/index.js +4 -3
  210. package/dist/client/theme-default/styles/base.css +279 -211
  211. package/dist/client/theme-default/styles/components/custom-block.css +12 -7
  212. package/dist/client/theme-default/styles/components/vp-code-group.css +13 -16
  213. package/dist/client/theme-default/styles/components/vp-code.css +10 -2
  214. package/dist/client/theme-default/styles/components/vp-doc.css +188 -142
  215. package/dist/client/theme-default/styles/components/vp-sponsor.css +48 -37
  216. package/dist/client/theme-default/styles/docsearch.css +138 -0
  217. package/dist/client/theme-default/styles/fonts.css +216 -55
  218. package/dist/client/theme-default/styles/icons.css +42 -22
  219. package/dist/client/theme-default/styles/vars.css +111 -46
  220. package/dist/client/theme-default/support/docsearch.d.ts +57 -0
  221. package/dist/client/theme-default/support/docsearch.js +145 -0
  222. package/dist/client/theme-default/support/local-search.d.ts +9 -0
  223. package/dist/client/theme-default/support/local-search.js +31 -0
  224. package/dist/client/theme-default/support/lru.d.ts +11 -0
  225. package/dist/client/theme-default/support/lru.js +30 -33
  226. package/dist/client/theme-default/support/reactivity.d.ts +4 -0
  227. package/dist/client/theme-default/support/reactivity.js +10 -0
  228. package/dist/client/theme-default/support/sidebar.d.ts +27 -0
  229. package/dist/client/theme-default/support/sidebar.js +69 -80
  230. package/dist/client/theme-default/support/translation.d.ts +6 -0
  231. package/dist/client/theme-default/support/translation.js +33 -47
  232. package/dist/client/theme-default/support/utils.d.ts +7 -0
  233. package/dist/client/theme-default/support/utils.js +39 -30
  234. package/dist/client/theme-default/without-fonts.d.ts +25 -0
  235. package/dist/client/theme-default/without-fonts.js +37 -36
  236. package/dist/node/chunk-BjrVv9r8.js +28627 -0
  237. package/dist/node/cli.d.ts +1 -0
  238. package/dist/node/cli.js +160 -423
  239. package/dist/node/index.d.ts +1761 -2476
  240. package/dist/node/index.js +1 -121
  241. package/dist/web-types.json +75 -0
  242. package/package.json +89 -98
  243. package/template/.vitepress/config.js +3 -1
  244. package/template/.vitepress/theme/style.css +3 -11
  245. package/theme.d.ts +30 -23
  246. package/types/default-theme.d.ts +109 -113
  247. package/types/docsearch.d.ts +61 -142
  248. package/types/shared.d.ts +469 -50
  249. package/dist/client/theme-default/components/VPNavBarAppearance.vue +0 -32
  250. package/dist/client/theme-default/components/VPNavBarMenu.vue +0 -40
  251. package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +0 -42
  252. package/dist/client/theme-default/components/VPNavBarMenuLink.vue +0 -53
  253. package/dist/client/theme-default/components/VPNavBarSocialLinks.vue +0 -27
  254. package/dist/client/theme-default/components/VPNavBarTranslations.vue +0 -47
  255. package/dist/client/theme-default/components/VPNavScreenAppearance.vue +0 -40
  256. package/dist/client/theme-default/components/VPNavScreenMenu.vue +0 -26
  257. package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +0 -112
  258. package/dist/client/theme-default/components/VPNavScreenMenuGroupLink.vue +0 -40
  259. package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +0 -34
  260. package/dist/client/theme-default/components/VPNavScreenMenuLink.vue +0 -43
  261. package/dist/client/theme-default/components/VPNavScreenSocialLinks.vue +0 -14
  262. package/dist/client/theme-default/components/VPNavScreenTranslations.vue +0 -73
  263. package/dist/client/theme-default/components/icons/VPIconAlignJustify.vue +0 -8
  264. package/dist/client/theme-default/components/icons/VPIconAlignLeft.vue +0 -8
  265. package/dist/client/theme-default/components/icons/VPIconAlignRight.vue +0 -8
  266. package/dist/client/theme-default/components/icons/VPIconArrowLeft.vue +0 -7
  267. package/dist/client/theme-default/components/icons/VPIconArrowRight.vue +0 -7
  268. package/dist/client/theme-default/components/icons/VPIconChevronDown.vue +0 -5
  269. package/dist/client/theme-default/components/icons/VPIconChevronLeft.vue +0 -5
  270. package/dist/client/theme-default/components/icons/VPIconChevronRight.vue +0 -5
  271. package/dist/client/theme-default/components/icons/VPIconChevronUp.vue +0 -5
  272. package/dist/client/theme-default/components/icons/VPIconEdit.vue +0 -6
  273. package/dist/client/theme-default/components/icons/VPIconHeart.vue +0 -5
  274. package/dist/client/theme-default/components/icons/VPIconLanguages.vue +0 -9
  275. package/dist/client/theme-default/components/icons/VPIconMinus.vue +0 -5
  276. package/dist/client/theme-default/components/icons/VPIconMinusSquare.vue +0 -6
  277. package/dist/client/theme-default/components/icons/VPIconMoon.vue +0 -5
  278. package/dist/client/theme-default/components/icons/VPIconMoreHorizontal.vue +0 -7
  279. package/dist/client/theme-default/components/icons/VPIconPlus.vue +0 -5
  280. package/dist/client/theme-default/components/icons/VPIconPlusSquare.vue +0 -6
  281. package/dist/client/theme-default/components/icons/VPIconSun.vue +0 -13
  282. package/dist/client/theme-default/composables/aside.js +0 -17
  283. package/dist/client/theme-default/composables/local-nav.js +0 -18
  284. package/dist/node/chunk-C-d2RJOW.js +0 -470
  285. package/dist/node/chunk-CxQfvv8o.js +0 -49065
  286. package/dist/node/worker_shikiResolveLang.js +0 -13
@@ -1,14 +1,37 @@
1
- import type MarkdownIt from 'markdown-it'
2
- import type { Options as MiniSearchOptions } from 'minisearch'
3
- import type { ComputedRef, Ref, ShallowRef } from 'vue'
1
+ import type { Options as _MiniSearchOptions } from 'minisearch'
2
+ import type { ComputedRef, ShallowRef } from 'vue'
3
+
4
4
  import type { DocSearchProps } from './docsearch.js'
5
- import type {
6
- LocalSearchTranslations,
7
- PageSplitSection
8
- } from './local-search.js'
9
- import type { Awaitable, MarkdownEnv, PageData } from './shared.js'
5
+ import type { LocalSearchTranslations } from './local-search.js'
6
+ import type { Header, PageData, Route, VitePressData } from './shared.js'
10
7
 
11
8
  export namespace DefaultTheme {
9
+ /**
10
+ * The layout state returned by `useLayout` from `vitepress/theme`.
11
+ */
12
+ export interface Layout {
13
+ isHome: ComputedRef<boolean>
14
+
15
+ sidebar: Readonly<ShallowRef<SidebarItem[]>>
16
+ sidebarGroups: ComputedRef<SidebarItem[]>
17
+ hasSidebar: ComputedRef<boolean>
18
+ isSidebarEnabled: ComputedRef<boolean>
19
+
20
+ hasAside: ComputedRef<boolean>
21
+ leftAside: ComputedRef<boolean>
22
+
23
+ /**
24
+ * The outline headers of the current page.
25
+ */
26
+ headers: Readonly<ShallowRef<OutlineItem[]>>
27
+ /**
28
+ * Whether the current page has a local nav. Local nav is shown when the
29
+ * "outline" is present in the page. However, note that the actual
30
+ * local nav visibility depends on the screen width as well.
31
+ */
32
+ hasLocalNav: ComputedRef<boolean>
33
+ }
34
+
12
35
  export interface Config {
13
36
  /**
14
37
  * The logo file of the site.
@@ -35,13 +58,6 @@ export namespace DefaultTheme {
35
58
  */
36
59
  outline?: Outline | Outline['level'] | false
37
60
 
38
- /**
39
- * @deprecated Use `outline.label` instead.
40
- *
41
- * @default 'On this page'
42
- */
43
- outlineTitle?: string
44
-
45
61
  /**
46
62
  * The nav items.
47
63
  */
@@ -67,15 +83,6 @@ export namespace DefaultTheme {
67
83
  */
68
84
  editLink?: EditLink
69
85
 
70
- /**
71
- * @deprecated Use `lastUpdated.text` instead.
72
- *
73
- * Set custom last updated text.
74
- *
75
- * @default 'Last updated'
76
- */
77
- lastUpdatedText?: string
78
-
79
86
  lastUpdated?: LastUpdatedOptions
80
87
 
81
88
  /**
@@ -126,6 +133,29 @@ export namespace DefaultTheme {
126
133
  */
127
134
  langMenuLabel?: string
128
135
 
136
+ /**
137
+ * Accessible label of the main navigation landmarks (navbar menu and
138
+ * the mobile menu).
139
+ *
140
+ * @default 'Main Navigation'
141
+ */
142
+ navMenuLabel?: string
143
+
144
+ /**
145
+ * Set custom `aria-label` for the mobile menu (hamburger) button.
146
+ *
147
+ * @default 'Menu'
148
+ */
149
+ mobileMenuLabel?: string
150
+
151
+ /**
152
+ * Set custom `aria-label` for the `⋯` overflow menu button in the
153
+ * navbar, which collects nav items and controls that don't fit.
154
+ *
155
+ * @default 'More options'
156
+ */
157
+ extraMenuLabel?: string
158
+
129
159
  /**
130
160
  * @default 'Skip to content'
131
161
  */
@@ -135,22 +165,19 @@ export namespace DefaultTheme {
135
165
  | { provider: 'local'; options?: LocalSearchOptions }
136
166
  | { provider: 'algolia'; options: AlgoliaSearchOptions }
137
167
 
138
- /**
139
- * @deprecated Use `search` instead.
140
- */
141
- algolia?: AlgoliaSearchOptions
142
-
143
168
  /**
144
169
  * The carbon ads options. Leave it undefined to disable the ads feature.
145
170
  */
146
171
  carbonAds?: CarbonAdsOptions
147
172
 
148
173
  /**
149
- * Changing locale when current url is `/foo` will redirect to `/locale/foo`.
174
+ * Changing locale when current url is `/foo` redirects to `/locale/foo`.
175
+ * Set to `false` to disable this behavior, or provide a function to
176
+ * customize the target locale link.
150
177
  *
151
178
  * @default true
152
179
  */
153
- i18nRouting?: boolean
180
+ i18nRouting?: boolean | I18nRouting
154
181
 
155
182
  /**
156
183
  * Show external link icon in Markdown links.
@@ -159,12 +186,28 @@ export namespace DefaultTheme {
159
186
  */
160
187
  externalLinkIcon?: boolean
161
188
 
189
+ /**
190
+ * Color custom containers, GitHub-flavored alerts, and badges on a
191
+ * graded severity scale (danger red > warning orange > caution yellow)
192
+ * instead of matching GitHub's alert colors, where caution is red and
193
+ * warning is yellow.
194
+ *
195
+ * @default false
196
+ */
197
+ gradedContainers?: boolean
198
+
162
199
  /**
163
200
  * Customize text of 404 page.
164
201
  */
165
202
  notFound?: NotFoundOptions
166
203
  }
167
204
 
205
+ export type I18nRouting = (
206
+ data: VitePressData<Config>,
207
+ route: Route,
208
+ targetLocale: string
209
+ ) => string
210
+
168
211
  // nav -----------------------------------------------------------------------
169
212
 
170
213
  export type NavItem = NavItemComponent | NavItemWithLink | NavItemWithChildren
@@ -176,7 +219,7 @@ export namespace DefaultTheme {
176
219
 
177
220
  export interface NavItemWithLink {
178
221
  text: string
179
- link: string
222
+ link: string | ((payload: PageData) => string)
180
223
  items?: never
181
224
 
182
225
  /**
@@ -277,22 +320,6 @@ export namespace DefaultTheme {
277
320
  target?: string
278
321
  }
279
322
 
280
- /**
281
- * ReturnType of `useSidebar`
282
- */
283
- export interface DocSidebar {
284
- isOpen: Ref<boolean>
285
- sidebar: ComputedRef<SidebarItem[]>
286
- sidebarGroups: ComputedRef<SidebarItem[]>
287
- hasSidebar: ComputedRef<boolean>
288
- hasAside: ComputedRef<boolean>
289
- leftAside: ComputedRef<boolean>
290
- isSidebarEnabled: ComputedRef<boolean>
291
- open: () => void
292
- close: () => void
293
- toggle: () => void
294
- }
295
-
296
323
  // edit link -----------------------------------------------------------------
297
324
 
298
325
  export interface EditLink {
@@ -336,6 +363,7 @@ export namespace DefaultTheme {
336
363
  icon: SocialLinkIcon
337
364
  link: string
338
365
  ariaLabel?: string
366
+ target?: string
339
367
  }
340
368
 
341
369
  export type SocialLinkIcon = string | { svg: string }
@@ -361,25 +389,6 @@ export namespace DefaultTheme {
361
389
  actionText?: string
362
390
  }
363
391
 
364
- // local nav -----------------------------------------------------------------
365
-
366
- /**
367
- * ReturnType of `useLocalNav`.
368
- */
369
- export interface DocLocalNav {
370
- /**
371
- * The outline headers of the current page.
372
- */
373
- headers: ShallowRef<any>
374
-
375
- /**
376
- * Whether the current page has a local nav. Local nav is shown when the
377
- * "outline" is present in the page. However, note that the actual
378
- * local nav visibility depends on the screen width as well.
379
- */
380
- hasLocalNav: ComputedRef<boolean>
381
- }
382
-
383
392
  // outline -------------------------------------------------------------------
384
393
 
385
394
  export interface Outline {
@@ -387,15 +396,14 @@ export namespace DefaultTheme {
387
396
  label?: string
388
397
  }
389
398
 
399
+ export type OutlineItem = Omit<Header, 'slug' | 'children'> & {
400
+ element: HTMLHeadElement
401
+ children?: OutlineItem[]
402
+ }
403
+
390
404
  // local search --------------------------------------------------------------
391
405
 
392
406
  export interface LocalSearchOptions {
393
- /**
394
- * @default false
395
- * @deprecated Use `detailedView: false` instead.
396
- */
397
- disableDetailedView?: boolean
398
-
399
407
  /**
400
408
  * If `true`, the detailed view will be enabled by default.
401
409
  * If `false`, the detailed view will be disabled.
@@ -413,46 +421,21 @@ export namespace DefaultTheme {
413
421
  translations?: LocalSearchTranslations
414
422
  locales?: Record<string, Partial<Omit<LocalSearchOptions, 'locales'>>>
415
423
 
416
- miniSearch?: {
417
- /**
418
- * @see https://lucaong.github.io/minisearch/types/MiniSearch.Options.html
419
- */
420
- options?: Pick<
421
- MiniSearchOptions,
422
- 'extractField' | 'tokenize' | 'processTerm'
423
- >
424
- /**
425
- * @see https://lucaong.github.io/minisearch/types/MiniSearch.SearchOptions.html
426
- */
427
- searchOptions?: MiniSearchOptions['searchOptions']
428
-
429
- /**
430
- * Overrides the default regex based page splitter.
431
- * Supports async generator, making it possible to run in true parallel
432
- * (when used along with `node:child_process` or `worker_threads`)
433
- * ---
434
- * This should be especially useful for scalability reasons.
435
- * ---
436
- * @param {string} path - absolute path to the markdown source file
437
- * @param {string} html - document page rendered as html
438
- */
439
- _splitIntoSections?: (
440
- path: string,
441
- html: string
442
- ) =>
443
- | AsyncGenerator<PageSplitSection>
444
- | Generator<PageSplitSection>
445
- | Awaitable<PageSplitSection[]>
446
- }
447
- /**
448
- * Allows transformation of content before indexing (node only)
449
- * Return empty string to skip indexing
450
- */
451
- _render?: (
452
- src: string,
453
- env: MarkdownEnv,
454
- md: MarkdownIt
455
- ) => Awaitable<string>
424
+ miniSearch?: MiniSearchOptions
425
+ }
426
+
427
+ interface MiniSearchOptions {
428
+ /**
429
+ * @see https://lucaong.github.io/minisearch/types/MiniSearch.Options.html
430
+ */
431
+ options?: Pick<
432
+ _MiniSearchOptions,
433
+ 'extractField' | 'tokenize' | 'processTerm'
434
+ >
435
+ /**
436
+ * @see https://lucaong.github.io/minisearch/types/MiniSearch.SearchOptions.html
437
+ */
438
+ searchOptions?: _MiniSearchOptions['searchOptions']
456
439
  }
457
440
 
458
441
  // algolia -------------------------------------------------------------------
@@ -462,6 +445,11 @@ export namespace DefaultTheme {
462
445
  * `@docsearch/react/dist/esm/DocSearch.d.ts`
463
446
  */
464
447
  export interface AlgoliaSearchOptions extends DocSearchProps {
448
+ /**
449
+ * Locale-specific overrides for Algolia search options.
450
+ * These options will be deeply merged with the root options,
451
+ * except for `searchParameters`, which is fully replaced.
452
+ */
465
453
  locales?: Record<string, Partial<DocSearchProps>>
466
454
  }
467
455
 
@@ -470,6 +458,7 @@ export namespace DefaultTheme {
470
458
  export interface CarbonAdsOptions {
471
459
  code: string
472
460
  placement: string
461
+ format?: 'classic' | 'responsive' | 'cover'
473
462
  }
474
463
 
475
464
  // last updated --------------------------------------------------------------
@@ -509,6 +498,13 @@ export namespace DefaultTheme {
509
498
  */
510
499
  quote?: string
511
500
 
501
+ /**
502
+ * Target of the home link.
503
+ *
504
+ * @default '/'
505
+ */
506
+ link?: string
507
+
512
508
  /**
513
509
  * Set aria label for home link.
514
510
  *
@@ -1,144 +1,63 @@
1
- export interface DocSearchProps {
2
- appId: string
3
- apiKey: string
4
- indexName: string
5
- placeholder?: string
6
- searchParameters?: SearchOptions
7
- disableUserPersonalization?: boolean
8
- initialQuery?: string
1
+ import { type DocSearchProps as DocSearchPropsJS } from '@docsearch/js'
2
+ import { type SidepanelProps as SidepanelPropsBase } from '@docsearch/sidepanel-js'
3
+
4
+ export type DocSearchProps = Partial<
5
+ Pick<
6
+ DocSearchPropsJS,
7
+ | 'appId'
8
+ | 'apiKey'
9
+ | 'placeholder'
10
+ | 'maxResultsPerGroup'
11
+ | 'disableUserPersonalization'
12
+ | 'initialQuery'
13
+ | 'translations'
14
+ | 'recentSearchesLimit'
15
+ | 'recentSearchesWithFavoritesLimit'
16
+ >
17
+ > & {
18
+ /**
19
+ * Name of the algolia index to query.
20
+ */
21
+ indexName?: string
22
+ /**
23
+ * Additional algolia search parameters to merge into each query.
24
+ */
25
+ searchParameters?: DocSearchPropsJS['searchParameters']
26
+ /**
27
+ * Insights client integration options to send analytics events.
28
+ */
9
29
  insights?: boolean
10
- translations?: DocSearchTranslations
11
- }
12
-
13
- export interface SearchOptions {
14
- query?: string
15
- similarQuery?: string
16
- facetFilters?: string | string[]
17
- optionalFilters?: string | string[]
18
- numericFilters?: string | string[]
19
- tagFilters?: string | string[]
20
- sumOrFiltersScores?: boolean
21
- filters?: string
22
- page?: number
23
- hitsPerPage?: number
24
- offset?: number
25
- length?: number
26
- attributesToHighlight?: string[]
27
- attributesToSnippet?: string[]
28
- attributesToRetrieve?: string[]
29
- highlightPreTag?: string
30
- highlightPostTag?: string
31
- snippetEllipsisText?: string
32
- restrictHighlightAndSnippetArrays?: boolean
33
- facets?: string[]
34
- maxValuesPerFacet?: number
35
- facetingAfterDistinct?: boolean
36
- minWordSizefor1Typo?: number
37
- minWordSizefor2Typos?: number
38
- allowTyposOnNumericTokens?: boolean
39
- disableTypoToleranceOnAttributes?: string[]
40
- queryType?: 'prefixLast' | 'prefixAll' | 'prefixNone'
41
- removeWordsIfNoResults?: 'none' | 'lastWords' | 'firstWords' | 'allOptional'
42
- advancedSyntax?: boolean
43
- advancedSyntaxFeatures?: ('exactPhrase' | 'excludeWords')[]
44
- optionalWords?: string | string[]
45
- disableExactOnAttributes?: string[]
46
- exactOnSingleWordQuery?: 'attribute' | 'none' | 'word'
47
- alternativesAsExact?: (
48
- | 'ignorePlurals'
49
- | 'singleWordSynonym'
50
- | 'multiWordsSynonym'
51
- )[]
52
- enableRules?: boolean
53
- ruleContexts?: string[]
54
- distinct?: boolean | number
55
- analytics?: boolean
56
- analyticsTags?: string[]
57
- synonyms?: boolean
58
- replaceSynonymsInHighlight?: boolean
59
- minProximity?: number
60
- responseFields?: string[]
61
- maxFacetHits?: number
62
- percentileComputation?: boolean
63
- clickAnalytics?: boolean
64
- personalizationImpact?: number
65
- enablePersonalization?: boolean
66
- restrictSearchableAttributes?: string[]
67
- sortFacetValuesBy?: 'count' | 'alpha'
68
- typoTolerance?: boolean | 'min' | 'strict'
69
- aroundLatLng?: string
70
- aroundLatLngViaIP?: boolean
71
- aroundRadius?: number | 'all'
72
- aroundPrecision?: number | { from: number; value: number }[]
73
- minimumAroundRadius?: number
74
- insideBoundingBox?: number[][]
75
- insidePolygon?: number[][]
76
- ignorePlurals?: boolean | string[]
77
- removeStopWords?: boolean | string[]
78
- naturalLanguages?: string[]
79
- getRankingInfo?: boolean
80
- userToken?: string
81
- enableABTest?: boolean
82
- decompoundQuery?: boolean
83
- relevancyStrictness?: number
84
- }
85
-
86
- export interface DocSearchTranslations {
87
- button?: ButtonTranslations
88
- modal?: ModalTranslations
89
- }
90
-
91
- export interface ButtonTranslations {
92
- buttonText?: string
93
- buttonAriaLabel?: string
94
- }
95
-
96
- export interface ModalTranslations extends ScreenStateTranslations {
97
- searchBox?: SearchBoxTranslations
98
- footer?: FooterTranslations
99
- }
100
-
101
- export interface ScreenStateTranslations {
102
- errorScreen?: ErrorScreenTranslations
103
- startScreen?: StartScreenTranslations
104
- noResultsScreen?: NoResultsScreenTranslations
105
- }
106
-
107
- export interface SearchBoxTranslations {
108
- resetButtonTitle?: string
109
- resetButtonAriaLabel?: string
110
- cancelButtonText?: string
111
- cancelButtonAriaLabel?: string
112
- }
113
-
114
- export interface FooterTranslations {
115
- selectText?: string
116
- selectKeyAriaLabel?: string
117
- navigateText?: string
118
- navigateUpKeyAriaLabel?: string
119
- navigateDownKeyAriaLabel?: string
120
- closeText?: string
121
- closeKeyAriaLabel?: string
122
- searchByText?: string
123
- }
124
-
125
- export interface ErrorScreenTranslations {
126
- titleText?: string
127
- helpText?: string
128
- }
129
-
130
- export interface StartScreenTranslations {
131
- recentSearchesTitle?: string
132
- noRecentSearchesText?: string
133
- saveRecentSearchButtonTitle?: string
134
- removeRecentSearchButtonTitle?: string
135
- favoriteSearchesTitle?: string
136
- removeFavoriteSearchButtonTitle?: string
137
- }
138
-
139
- export interface NoResultsScreenTranslations {
140
- noResultsText?: string
141
- suggestedQueryText?: string
142
- reportMissingResultsText?: string
143
- reportMissingResultsLinkText?: string
30
+ /**
31
+ * Configuration or assistant id to enable ask ai mode. Pass a string assistant id or a full config object.
32
+ */
33
+ askAi?: DocSearchAskAi | string
34
+ /**
35
+ * Ask AI side panel integration mode.
36
+ *
37
+ * - 'auto': infer hybrid vs sidePanel-only from provided config
38
+ * - 'sidePanel': force sidePanel-only even if keyword search is configured
39
+ * - 'hybrid': force hybrid (error if keyword search is not configured)
40
+ * - 'modal': force modal even if sidePanel is configured (ask ai in modal stays in modal)
41
+ *
42
+ * @default 'auto'
43
+ */
44
+ mode?: 'auto' | 'sidePanel' | 'hybrid' | 'modal'
45
+ }
46
+
47
+ export type DocSearchAskAi = Partial<
48
+ Exclude<DocSearchPropsJS['askAi'], string | undefined>
49
+ > & {
50
+ /**
51
+ * Ask AI side panel configuration.
52
+ */
53
+ sidePanel?: boolean | SidepanelProps
54
+ }
55
+
56
+ export type SidepanelProps = Partial<
57
+ Pick<SidepanelPropsBase, 'button' | 'keyboardShortcuts'>
58
+ > & {
59
+ /**
60
+ * Props specific to the Sidepanel panel.
61
+ */
62
+ panel?: Omit<NonNullable<SidepanelPropsBase['panel']>, 'portalContainer'>
144
63
  }