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,28 +1,25 @@
1
- <script setup lang="ts">
2
- import VPButton from './VPButton.vue'
3
- import VPSponsors from './VPSponsors.vue'
4
-
5
- export interface Sponsors {
6
- tier: string
7
- size?: 'medium' | 'big'
8
- items: Sponsor[]
9
- }
10
-
11
- export interface Sponsor {
12
- name: string
13
- img: string
14
- url: string
15
- }
16
- interface Props {
17
- message?: string
18
- actionText?: string
19
- actionLink?: string
20
- data: Sponsors[]
21
- }
22
-
23
- withDefaults(defineProps<Props>(), {
24
- actionText: 'Become a sponsor'
25
- })
1
+ <script setup>
2
+ import VPButton from "./VPButton.vue";
3
+ import VPSponsors from "./VPSponsors.vue";
4
+ defineProps({
5
+ message: {
6
+ type: String,
7
+ required: false
8
+ },
9
+ actionText: {
10
+ type: String,
11
+ required: false,
12
+ default: "Become a sponsor"
13
+ },
14
+ actionLink: {
15
+ type: String,
16
+ required: false
17
+ },
18
+ data: {
19
+ type: Array,
20
+ required: true
21
+ }
22
+ });
26
23
  </script>
27
24
 
28
25
  <template>
@@ -36,7 +33,7 @@ withDefaults(defineProps<Props>(), {
36
33
  </div>
37
34
 
38
35
  <div class="sponsors">
39
- <VPSponsors :data="data" />
36
+ <VPSponsors :data />
40
37
  </div>
41
38
 
42
39
  <div v-if="actionLink" class="action">
@@ -49,44 +46,44 @@ withDefaults(defineProps<Props>(), {
49
46
  <style scoped>
50
47
  .VPHomeSponsors {
51
48
  border-top: 1px solid var(--vp-c-gutter);
52
- padding-top: 88px !important;
49
+ padding-top: 5.5rem !important;
53
50
  }
54
51
 
55
52
  .VPHomeSponsors {
56
- margin: 96px 0;
53
+ margin: 6rem 0;
57
54
  }
58
55
 
59
- @media (min-width: 768px) {
56
+ @media (min-width: 48rem) {
60
57
  .VPHomeSponsors {
61
- margin: 128px 0;
58
+ margin: 8rem 0;
62
59
  }
63
60
  }
64
61
 
65
62
  .VPHomeSponsors {
66
- padding: 0 24px;
63
+ padding: 0 1.5rem;
67
64
  }
68
65
 
69
- @media (min-width: 768px) {
66
+ @media (min-width: 48rem) {
70
67
  .VPHomeSponsors {
71
- padding: 0 48px;
68
+ padding: 0 3rem;
72
69
  }
73
70
  }
74
71
 
75
- @media (min-width: 960px) {
72
+ @media (min-width: 60rem) {
76
73
  .VPHomeSponsors {
77
- padding: 0 64px;
74
+ padding: 0 4rem;
78
75
  }
79
76
  }
80
77
 
81
78
  .container {
82
79
  margin: 0 auto;
83
- max-width: 1152px;
80
+ max-width: 72rem;
84
81
  }
85
82
 
86
83
  .love {
87
84
  margin: 0 auto;
88
85
  width: fit-content;
89
- font-size: 28px;
86
+ font-size: 1.75rem;
90
87
  color: var(--vp-c-text-3);
91
88
  }
92
89
 
@@ -96,21 +93,23 @@ withDefaults(defineProps<Props>(), {
96
93
 
97
94
  .message {
98
95
  margin: 0 auto;
99
- padding-top: 10px;
100
- max-width: 320px;
96
+ border-top: none;
97
+ padding-top: 0.625rem;
98
+ max-width: 20rem;
101
99
  text-align: center;
102
- line-height: 24px;
103
- font-size: 16px;
100
+ letter-spacing: normal;
101
+ line-height: 1.5;
102
+ font-size: 1rem;
104
103
  font-weight: 500;
105
104
  color: var(--vp-c-text-2);
106
105
  }
107
106
 
108
107
  .sponsors {
109
- padding-top: 32px;
108
+ padding-top: 2rem;
110
109
  }
111
110
 
112
111
  .action {
113
- padding-top: 40px;
112
+ padding-top: 2.5rem;
114
113
  text-align: center;
115
114
  }
116
115
  </style>
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ icon: string | {
3
+ svg: string;
4
+ };
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,29 @@
1
+ <script setup>
2
+ import { useIcon } from "vitepress";
3
+ import { useTemplateRef } from "vue";
4
+ const props = defineProps({ icon: {
5
+ type: [String, Object],
6
+ required: true
7
+ } });
8
+ const el = useTemplateRef("el");
9
+ const iconClass = useIcon(() => props.icon, el);
10
+ </script>
11
+
12
+ <template>
13
+ <span v-if="typeof icon === 'object'" class="VPIcon" v-html="icon.svg"></span>
14
+ <span v-else ref="el" :class="iconClass"></span>
15
+ </template>
16
+
17
+ <style scoped>
18
+ .VPIcon {
19
+ display: inline-block;
20
+ width: 1em;
21
+ height: 1em;
22
+ }
23
+
24
+ .VPIcon :deep(svg) {
25
+ width: 100%;
26
+ height: 100%;
27
+ fill: currentColor;
28
+ }
29
+ </style>
@@ -0,0 +1,8 @@
1
+ import type { DefaultTheme } from 'vitepress/theme';
2
+ type __VLS_Props = {
3
+ image: DefaultTheme.ThemeableImage;
4
+ alt?: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -1,13 +1,16 @@
1
- <script setup lang="ts">
2
- import type { DefaultTheme } from 'vitepress/theme'
3
- import { withBase } from 'vitepress'
4
-
5
- defineProps<{
6
- image: DefaultTheme.ThemeableImage
7
- alt?: string
8
- }>()
9
-
10
- defineOptions({ inheritAttrs: false })
1
+ <script setup>
2
+ import { withBase } from "vitepress";
3
+ defineProps({
4
+ image: {
5
+ type: [String, Object],
6
+ required: true
7
+ },
8
+ alt: {
9
+ type: String,
10
+ required: false
11
+ }
12
+ });
13
+ defineOptions({ inheritAttrs: false });
11
14
  </script>
12
15
 
13
16
  <template>
@@ -15,7 +18,10 @@ defineOptions({ inheritAttrs: false })
15
18
  <img
16
19
  v-if="typeof image === 'string' || 'src' in image"
17
20
  class="VPImage"
18
- v-bind="typeof image === 'string' ? $attrs : { ...image, ...$attrs }"
21
+ v-bind="typeof image === 'string' ? $attrs : {
22
+ ...image,
23
+ ...$attrs
24
+ }"
19
25
  :src="withBase(typeof image === 'string' ? image : image.src)"
20
26
  :alt="alt ?? (typeof image === 'string' ? '' : image.alt || '')"
21
27
  />
@@ -23,13 +29,13 @@ defineOptions({ inheritAttrs: false })
23
29
  <VPImage
24
30
  class="dark"
25
31
  :image="image.dark"
26
- :alt="image.alt"
32
+ :alt="alt ?? image.alt"
27
33
  v-bind="$attrs"
28
34
  />
29
35
  <VPImage
30
36
  class="light"
31
37
  :image="image.light"
32
- :alt="image.alt"
38
+ :alt="alt ?? image.alt"
33
39
  v-bind="$attrs"
34
40
  />
35
41
  </template>
@@ -40,7 +46,7 @@ defineOptions({ inheritAttrs: false })
40
46
  html:not(.dark) .VPImage.dark {
41
47
  display: none;
42
48
  }
43
- .dark .VPImage.light {
49
+ html.dark .VPImage.light {
44
50
  display: none;
45
51
  }
46
52
  </style>
@@ -0,0 +1,23 @@
1
+ type __VLS_Props = {
2
+ tag?: string;
3
+ href?: string;
4
+ noIcon?: boolean;
5
+ external?: boolean;
6
+ target?: string;
7
+ rel?: string;
8
+ };
9
+ declare var __VLS_7: {};
10
+ type __VLS_Slots = {} & {
11
+ default?: (props: typeof __VLS_7) => any;
12
+ };
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ external: boolean;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -1,22 +1,35 @@
1
- <script lang="ts" setup>
2
- import { computed } from 'vue'
3
- import { normalizeLink } from '../support/utils'
4
- import { EXTERNAL_URL_RE } from '../../shared'
5
-
6
- const props = defineProps<{
7
- tag?: string
8
- href?: string
9
- noIcon?: boolean
10
- target?: string
11
- rel?: string
12
- }>()
13
-
14
- const tag = computed(() => props.tag ?? (props.href ? 'a' : 'span'))
15
- const isExternal = computed(
16
- () =>
17
- (props.href && EXTERNAL_URL_RE.test(props.href)) ||
18
- props.target === '_blank'
19
- )
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { isLinkExternal, normalizeLink } from "../support/utils";
4
+ const props = defineProps({
5
+ tag: {
6
+ type: String,
7
+ required: false
8
+ },
9
+ href: {
10
+ type: String,
11
+ required: false
12
+ },
13
+ noIcon: {
14
+ type: Boolean,
15
+ required: false
16
+ },
17
+ external: {
18
+ type: Boolean,
19
+ required: false,
20
+ default: undefined
21
+ },
22
+ target: {
23
+ type: String,
24
+ required: false
25
+ },
26
+ rel: {
27
+ type: String,
28
+ required: false
29
+ }
30
+ });
31
+ const tag = computed(() => props.tag ?? (props.href ? "a" : "span"));
32
+ const isExternal = computed(() => isLinkExternal(props.href, props.target, props.external));
20
33
  </script>
21
34
 
22
35
  <template>
@@ -24,10 +37,10 @@ const isExternal = computed(
24
37
  :is="tag"
25
38
  class="VPLink"
26
39
  :class="{
27
- link: href,
28
- 'vp-external-link-icon': isExternal,
29
- 'no-icon': noIcon
30
- }"
40
+ link: href,
41
+ 'vp-external-link-icon': isExternal,
42
+ 'no-icon': noIcon
43
+ }"
31
44
  :href="href ? normalizeLink(href) : undefined"
32
45
  :target="target ?? (isExternal ? '_blank' : undefined)"
33
46
  :rel="rel ?? (isExternal ? 'noreferrer' : undefined)"
@@ -35,3 +48,9 @@ const isExternal = computed(
35
48
  <slot />
36
49
  </component>
37
50
  </template>
51
+
52
+ <style scoped>
53
+ .vp-external-link-icon::after {
54
+ color: var(--vp-c-text-3);
55
+ }
56
+ </style>
@@ -0,0 +1,10 @@
1
+ type __VLS_Props = {
2
+ open: boolean;
3
+ };
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
+ "open-menu": () => any;
6
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
7
+ "onOpen-menu"?: (() => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
@@ -1,78 +1,56 @@
1
- <script lang="ts" setup>
2
- import { useWindowScroll } from '@vueuse/core'
3
- import { onContentUpdated } from 'vitepress'
4
- import { computed, onMounted, ref } from 'vue'
5
- import { useData } from '../composables/data'
6
- import { useLocalNav } from '../composables/local-nav'
7
- import { getHeaders } from '../composables/outline'
8
- import { useSidebar } from '../composables/sidebar'
9
- import VPLocalNavOutlineDropdown from './VPLocalNavOutlineDropdown.vue'
10
-
11
- defineProps<{
12
- open: boolean
13
- }>()
14
-
15
- defineEmits<{
16
- (e: 'open-menu'): void
17
- }>()
18
-
19
- const { theme, frontmatter } = useData()
20
- const { hasSidebar } = useSidebar()
21
- const { headers } = useLocalNav()
22
- const { y } = useWindowScroll()
23
-
24
- const navHeight = ref(0)
25
-
1
+ <script setup>
2
+ import { useWindowScroll } from "@vueuse/core";
3
+ import { computed, onMounted, ref } from "vue";
4
+ import { useData } from "../composables/data";
5
+ import { useLayout } from "../composables/layout";
6
+ import VPLocalNavOutlineDropdown from "./VPLocalNavOutlineDropdown.vue";
7
+ defineProps({ open: {
8
+ type: Boolean,
9
+ required: true
10
+ } });
11
+ defineEmits(["open-menu"]);
12
+ const { theme } = useData();
13
+ const { isHome, hasSidebar, headers, hasLocalNav } = useLayout();
14
+ const { y } = useWindowScroll();
15
+ const navHeight = ref(0);
26
16
  onMounted(() => {
27
- navHeight.value = parseInt(
28
- getComputedStyle(document.documentElement).getPropertyValue(
29
- '--vp-nav-height'
30
- )
31
- )
32
- })
33
-
34
- onContentUpdated(() => {
35
- headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline)
36
- })
37
-
38
- const empty = computed(() => {
39
- return headers.value.length === 0
40
- })
41
-
42
- const emptyAndNoSidebar = computed(() => {
43
- return empty.value && !hasSidebar.value
44
- })
45
-
46
- const classes = computed(() => {
47
- return {
48
- VPLocalNav: true,
49
- 'has-sidebar': hasSidebar.value,
50
- empty: empty.value,
51
- fixed: emptyAndNoSidebar.value
52
- }
53
- })
17
+ // getComputedStyle returns custom properties as their raw token ("4rem"),
18
+ // so resolve the height by measuring instead of parsing
19
+ const probe = document.createElement("div");
20
+ probe.style.cssText = "position: absolute; visibility: hidden; height: var(--vp-nav-height)";
21
+ document.body.appendChild(probe);
22
+ navHeight.value = probe.offsetHeight;
23
+ probe.remove();
24
+ });
25
+ const isScrolled = computed(() => y.value >= navHeight.value);
54
26
  </script>
55
27
 
56
28
  <template>
57
29
  <div
58
- v-if="frontmatter.layout !== 'home' && (!emptyAndNoSidebar || y >= navHeight)"
59
- :class="classes"
30
+ v-if="!isHome && (hasLocalNav || hasSidebar || isScrolled)"
31
+ class="VPLocalNav"
32
+ :class="{
33
+ 'has-sidebar': hasSidebar,
34
+ 'empty': !hasLocalNav,
35
+ 'fixed': !hasLocalNav && !hasSidebar
36
+ }"
60
37
  >
61
38
  <div class="container">
62
39
  <button
63
40
  v-if="hasSidebar"
41
+ type="button"
64
42
  class="menu"
65
43
  :aria-expanded="open"
66
44
  aria-controls="VPSidebarNav"
67
45
  @click="$emit('open-menu')"
68
46
  >
69
- <span class="vpi-align-left menu-icon"></span>
47
+ <span class="vpi-text-align-start menu-icon" aria-hidden="true"></span>
70
48
  <span class="menu-text">
71
- {{ theme.sidebarMenuLabel || 'Menu' }}
49
+ {{ theme.sidebarMenuLabel || "Menu" }}
72
50
  </span>
73
51
  </button>
74
52
 
75
- <VPLocalNavOutlineDropdown :headers="headers" :navHeight="navHeight" />
53
+ <VPLocalNavOutlineDropdown :headers :navHeight />
76
54
  </div>
77
55
  </div>
78
56
  </template>
@@ -81,26 +59,42 @@ const classes = computed(() => {
81
59
  .VPLocalNav {
82
60
  position: sticky;
83
61
  top: 0;
84
- /*rtl:ignore*/
85
- left: 0;
62
+ inset-inline-start: 0;
86
63
  z-index: var(--vp-z-index-local-nav);
87
- border-bottom: 1px solid var(--vp-c-gutter);
64
+ border-bottom: 1px solid var(--vp-local-nav-divider-color);
88
65
  padding-top: var(--vp-layout-top-height, 0px);
89
66
  width: 100%;
67
+ }
68
+
69
+ /* the background surface — below 60rem it covers just this bar; from 60rem
70
+ the bar is pinned under the fixed navbar, so the surface extends up
71
+ behind it and one element carries the backdrop filter for both bars
72
+ (two stacked filters would show a seam at their shared edge) */
73
+ .VPLocalNav::before {
74
+ content: '';
75
+ position: absolute;
76
+ inset: 0;
77
+ z-index: -1;
90
78
  background-color: var(--vp-local-nav-bg-color);
79
+ backdrop-filter: var(--vp-nav-backdrop-filter);
80
+ transition: background-color 0.25s;
91
81
  }
92
82
 
93
83
  .VPLocalNav.fixed {
94
84
  position: fixed;
95
85
  }
96
86
 
97
- @media (min-width: 960px) {
87
+ @media (min-width: 60rem) {
98
88
  .VPLocalNav {
99
89
  top: var(--vp-nav-height);
100
90
  }
101
91
 
92
+ .VPLocalNav::before {
93
+ top: calc(-1 * var(--vp-nav-height));
94
+ }
95
+
102
96
  .VPLocalNav.has-sidebar {
103
- padding-left: var(--vp-sidebar-width);
97
+ padding-inline-start: var(--vp-sidebar-width);
104
98
  }
105
99
 
106
100
  .VPLocalNav.empty {
@@ -108,18 +102,12 @@ const classes = computed(() => {
108
102
  }
109
103
  }
110
104
 
111
- @media (min-width: 1280px) {
105
+ @media (min-width: 80rem) {
112
106
  .VPLocalNav {
113
107
  display: none;
114
108
  }
115
109
  }
116
110
 
117
- @media (min-width: 1440px) {
118
- .VPLocalNav.has-sidebar {
119
- padding-left: calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width));
120
- }
121
- }
122
-
123
111
  .container {
124
112
  display: flex;
125
113
  justify-content: space-between;
@@ -129,9 +117,8 @@ const classes = computed(() => {
129
117
  .menu {
130
118
  display: flex;
131
119
  align-items: center;
132
- padding: 12px 24px 11px;
133
- line-height: 24px;
134
- font-size: 12px;
120
+ line-height: 2;
121
+ font-size: 0.75rem;
135
122
  font-weight: 500;
136
123
  color: var(--vp-c-text-2);
137
124
  transition: color 0.5s;
@@ -142,30 +129,26 @@ const classes = computed(() => {
142
129
  transition: color 0.25s;
143
130
  }
144
131
 
145
- @media (min-width: 768px) {
146
- .menu {
147
- padding: 0 32px;
148
- }
149
- }
150
-
151
- @media (min-width: 960px) {
132
+ @media (min-width: 60rem) {
152
133
  .menu {
153
134
  display: none;
154
135
  }
155
136
  }
156
137
 
157
138
  .menu-icon {
158
- margin-right: 8px;
159
- font-size: 14px;
139
+ margin-inline-end: 0.5rem;
140
+ font-size: 0.875rem;
160
141
  }
161
142
 
162
- .VPOutlineDropdown {
163
- padding: 12px 24px 11px;
143
+ .menu,
144
+ :deep(.VPLocalNavOutlineDropdown > button) {
145
+ padding: 0.75rem 1.5rem 0.6875rem;
164
146
  }
165
147
 
166
- @media (min-width: 768px) {
167
- .VPOutlineDropdown {
168
- padding: 12px 32px 11px;
148
+ @media (min-width: 48rem) {
149
+ .menu,
150
+ :deep(.VPLocalNavOutlineDropdown > button) {
151
+ padding: 0.75rem 2rem 0.6875rem;
169
152
  }
170
153
  }
171
154
  </style>
@@ -0,0 +1,8 @@
1
+ import type { DefaultTheme } from 'vitepress/theme';
2
+ type __VLS_Props = {
3
+ headers: DefaultTheme.OutlineItem[];
4
+ navHeight: number;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;