@voidzero-dev/vitepress-theme 2.0.1 → 3.0.0

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 (373) hide show
  1. package/README.md +26 -33
  2. package/package.json +5 -26
  3. package/src/assets/clients/clickup.svg +5 -0
  4. package/src/assets/clients/stripe.svg +3 -0
  5. package/src/{vitepress/components → components}/oss/Footer.vue +4 -21
  6. package/src/{vitepress/components → components}/oss/Header.vue +82 -180
  7. package/src/{vitepress/components → components}/oss/Sponsors.vue +3 -3
  8. package/src/components/oss/TopBanner.vue +111 -0
  9. package/src/{vitepress/components → components}/oss/TrustedBy.vue +1 -1
  10. package/src/{vitepress/components → components}/vite/Community.vue +3 -3
  11. package/src/components/vite/FeatureGrid1.vue +63 -0
  12. package/src/{vitepress/components/vite/FeatureGrid.vue → components/vite/FeatureGrid2.vue} +12 -11
  13. package/src/{vitepress/components → components}/vite/Hero.vue +9 -18
  14. package/src/{vitepress/components → components}/vitepress-default/VPDocOutlineItem.vue +2 -2
  15. package/src/{vitepress/components → components}/vitepress-default/VPFlyout.vue +1 -1
  16. package/src/{vitepress/components → components}/vitepress-default/VPMenuLink.vue +1 -1
  17. package/src/{vitepress/components → components}/vitepress-default/VPNavBarMenuLink.vue +1 -1
  18. package/src/{vitepress/components → components}/vitepress-default/VPSidebarItem.vue +1 -1
  19. package/src/{vitepress/components → components}/vitepress-default/VPSocialLink.vue +1 -2
  20. package/src/fonts/APK-Protocol-Semi-Bold.woff2 +0 -0
  21. package/src/fonts/inter-italic-cyrillic-ext.woff2 +0 -0
  22. package/src/fonts/inter-italic-cyrillic.woff2 +0 -0
  23. package/src/fonts/inter-italic-greek-ext.woff2 +0 -0
  24. package/src/fonts/inter-italic-greek.woff2 +0 -0
  25. package/src/fonts/inter-italic-latin-ext.woff2 +0 -0
  26. package/src/fonts/inter-italic-latin.woff2 +0 -0
  27. package/src/fonts/inter-italic-vietnamese.woff2 +0 -0
  28. package/src/fonts/inter-roman-cyrillic-ext.woff2 +0 -0
  29. package/src/fonts/inter-roman-cyrillic.woff2 +0 -0
  30. package/src/fonts/inter-roman-greek-ext.woff2 +0 -0
  31. package/src/fonts/inter-roman-greek.woff2 +0 -0
  32. package/src/fonts/inter-roman-latin-ext.woff2 +0 -0
  33. package/src/fonts/inter-roman-latin.woff2 +0 -0
  34. package/src/fonts/inter-roman-vietnamese.woff2 +0 -0
  35. package/src/index.ts +103 -2
  36. package/src/{vitepress/layouts → layouts}/VPLayout.vue +2 -17
  37. package/src/styles/tokens.css +321 -0
  38. package/src/{vitepress/styles → styles}/vitepress-default/vars.css +1 -1
  39. package/src/{vitepress/types → types}/theme-config.ts +2 -0
  40. package/src/types/theme-context.ts +33 -0
  41. package/src/vitepress/assets/clients/beehiiv.svg +0 -30
  42. package/src/vitepress/assets/clients/excalidraw.svg +0 -82
  43. package/src/vitepress/assets/clients/get-your-guide.svg +0 -1
  44. package/src/vitepress/assets/clients/posthog.svg +0 -1
  45. package/src/vitepress/assets/clients/ramp.svg +0 -1
  46. package/src/vitepress/assets/clients/shopee.svg +0 -55
  47. package/src/vitepress/components/oss/TopBanner.vue +0 -150
  48. package/src/vitepress/components/vite/FeaturePanel1.vue +0 -41
  49. package/src/vitepress/components/vite/FeaturePanel2.vue +0 -37
  50. package/src/vitepress/components/vite/FeaturePanel3.vue +0 -43
  51. package/src/vitepress/components/vite/FeaturePanel4.vue +0 -46
  52. package/src/vitepress/components/voidzero/Footer.vue +0 -65
  53. package/src/vitepress/components/voidzero/Header.vue +0 -560
  54. package/src/vitepress/components/voidzero/Megamenu.vue +0 -190
  55. package/src/vitepress/components/voidzero/about/CareerCTA.vue +0 -56
  56. package/src/vitepress/components/voidzero/about/Hero.vue +0 -206
  57. package/src/vitepress/components/voidzero/about/Investors.vue +0 -112
  58. package/src/vitepress/components/voidzero/about/TeamGrid.vue +0 -161
  59. package/src/vitepress/components/voidzero/about/TeamSectionHeading.vue +0 -13
  60. package/src/vitepress/components/voidzero/blog/BlogArchive.vue +0 -223
  61. package/src/vitepress/components/voidzero/blog/BlogSingleContent.vue +0 -364
  62. package/src/vitepress/components/voidzero/blog/BlogSingleHero.vue +0 -113
  63. package/src/vitepress/components/voidzero/blog/BlogSingleRelated.vue +0 -92
  64. package/src/vitepress/components/voidzero/blog/FeaturedArticles.vue +0 -146
  65. package/src/vitepress/components/voidzero/blog/types.ts +0 -56
  66. package/src/vitepress/components/voidzero/home/CaseStudySlider.vue +0 -235
  67. package/src/vitepress/components/voidzero/home/CustomersSectionHeading.vue +0 -5
  68. package/src/vitepress/components/voidzero/home/GitHubStats.vue +0 -27
  69. package/src/vitepress/components/voidzero/home/Hero.vue +0 -69
  70. package/src/vitepress/components/voidzero/home/Investors.vue +0 -30
  71. package/src/vitepress/components/voidzero/home/NewsletterCTA.vue +0 -23
  72. package/src/vitepress/components/voidzero/home/OpenSourceSectionHeading.vue +0 -6
  73. package/src/vitepress/components/voidzero/home/OpenSourceSectionProjects.vue +0 -419
  74. package/src/vitepress/components/voidzero/home/Resources.vue +0 -144
  75. package/src/vitepress/components/voidzero/home/Statistics.vue +0 -507
  76. package/src/vitepress/components/voidzero/home/StatisticsSectionHeading.vue +0 -5
  77. package/src/vitepress/components/voidzero/home/TeamCTA.vue +0 -17
  78. package/src/vitepress/components/voidzero/home/TrustedBy.vue +0 -248
  79. package/src/vitepress/components/voidzero/home/VitePlusSectionFeatures.vue +0 -55
  80. package/src/vitepress/components/voidzero/home/VitePlusSectionHeading.vue +0 -17
  81. package/src/vitepress/fonts/KHTeka-Medium.woff2 +0 -0
  82. package/src/vitepress/fonts/KHTeka-Regular.woff2 +0 -0
  83. package/src/vitepress/index.ts +0 -269
  84. package/src/vitepress/layouts/OSSProjectLayout.vue +0 -28
  85. package/src/vitepress/styles/tokens.css +0 -137
  86. /package/src/{vitepress/assets → assets}/checkmark.svg +0 -0
  87. /package/src/{vitepress/assets → assets}/clients/airbnb.svg +0 -0
  88. /package/src/{vitepress/assets → assets}/clients/bolt.svg +0 -0
  89. /package/src/{vitepress/assets → assets}/clients/cloudflare.svg +0 -0
  90. /package/src/{vitepress/assets → assets}/clients/framer.svg +0 -0
  91. /package/src/{vitepress/assets → assets}/clients/hugging-face.svg +0 -0
  92. /package/src/{vitepress/assets → assets}/clients/linear.svg +0 -0
  93. /package/src/{vitepress/assets → assets}/clients/mercedes.svg +0 -0
  94. /package/src/{vitepress/assets → assets}/clients/openai.svg +0 -0
  95. /package/src/{vitepress/assets → assets}/clients/paramount.svg +0 -0
  96. /package/src/{vitepress/assets → assets}/clients/plaid.svg +0 -0
  97. /package/src/{vitepress/assets → assets}/clients/shopify.svg +0 -0
  98. /package/src/{vitepress/assets → assets}/cta-background.jpg +0 -0
  99. /package/src/{vitepress/assets → assets}/icons/oxc-dark.svg +0 -0
  100. /package/src/{vitepress/assets → assets}/icons/oxc-light.svg +0 -0
  101. /package/src/{vitepress/assets → assets}/icons/oxc-mono.svg +0 -0
  102. /package/src/{vitepress/assets → assets}/icons/rolldown-dark.svg +0 -0
  103. /package/src/{vitepress/assets → assets}/icons/rolldown-light.svg +0 -0
  104. /package/src/{vitepress/assets → assets}/icons/rolldown-mono.svg +0 -0
  105. /package/src/{vitepress/assets → assets}/icons/vite-dark.svg +0 -0
  106. /package/src/{vitepress/assets → assets}/icons/vite-light.svg +0 -0
  107. /package/src/{vitepress/assets → assets}/icons/vite-mono.svg +0 -0
  108. /package/src/{vitepress/assets → assets}/icons/viteplus-dark.svg +0 -0
  109. /package/src/{vitepress/assets → assets}/icons/viteplus-light.svg +0 -0
  110. /package/src/{vitepress/assets → assets}/icons/viteplus-mono.svg +0 -0
  111. /package/src/{vitepress/assets → assets}/icons/vitest-dark.svg +0 -0
  112. /package/src/{vitepress/assets → assets}/icons/vitest-light.svg +0 -0
  113. /package/src/{vitepress/assets → assets}/icons/vitest-mono.svg +0 -0
  114. /package/src/{vitepress/assets → assets}/logos/oxc-dark.svg +0 -0
  115. /package/src/{vitepress/assets → assets}/logos/oxc-light.svg +0 -0
  116. /package/src/{vitepress/assets → assets}/logos/rolldown-dark.svg +0 -0
  117. /package/src/{vitepress/assets → assets}/logos/rolldown-light.svg +0 -0
  118. /package/src/{vitepress/assets → assets}/logos/vite-dark.svg +0 -0
  119. /package/src/{vitepress/assets → assets}/logos/vite-light.svg +0 -0
  120. /package/src/{vitepress/assets → assets}/logos/viteplus-dark.svg +0 -0
  121. /package/src/{vitepress/assets → assets}/logos/viteplus-light.svg +0 -0
  122. /package/src/{vitepress/assets → assets}/logos/vitest-dark.svg +0 -0
  123. /package/src/{vitepress/assets → assets}/logos/vitest-light.svg +0 -0
  124. /package/src/{vitepress/assets → assets}/logos/voidzero-dark.svg +0 -0
  125. /package/src/{vitepress/assets → assets}/logos/voidzero-light.svg +0 -0
  126. /package/src/{vitepress/assets → assets}/oxc/animations/560_x_260_minifier.riv +0 -0
  127. /package/src/{vitepress/assets → assets}/oxc/animations/640_x_630_oxc masthead_.riv +0 -0
  128. /package/src/{vitepress/assets → assets}/oxc/footer-background.jpg +0 -0
  129. /package/src/{vitepress/assets → assets}/oxc/oxc-feature-background.jpg +0 -0
  130. /package/src/{vitepress/assets → assets}/oxc/oxc-formatter-terminal.png +0 -0
  131. /package/src/{vitepress/assets → assets}/oxc/oxc-linter-terminal.png +0 -0
  132. /package/src/{vitepress/assets → assets}/oxc/oxc-resolver-terminal.png +0 -0
  133. /package/src/{vitepress/assets → assets}/oxc/oxc-transformer-terminal.png +0 -0
  134. /package/src/{vitepress/assets → assets}/oxc/primary-button-background.jpg +0 -0
  135. /package/src/{vitepress/assets → assets}/primary-button-background.jpg +0 -0
  136. /package/src/{vitepress/assets → assets}/rolldown/animations/640_x_300_design_for_vite.riv +0 -0
  137. /package/src/{vitepress/assets → assets}/rolldown/animations/640_x_300_esbuild.riv +0 -0
  138. /package/src/{vitepress/assets → assets}/rolldown/animations/640_x_520_rolldown_masthead.riv +0 -0
  139. /package/src/{vitepress/assets → assets}/rolldown/footer-background.jpg +0 -0
  140. /package/src/{vitepress/assets → assets}/rolldown/hero-background.jpg +0 -0
  141. /package/src/{vitepress/assets → assets}/rolldown/hero-terminal.svg +0 -0
  142. /package/src/{vitepress/assets → assets}/rolldown/primary-button-background.jpg +0 -0
  143. /package/src/{vitepress/assets → assets}/rolldown/rolldown-esbuild-parity.png +0 -0
  144. /package/src/{vitepress/assets → assets}/rolldown/rolldown-rollup-background.jpg +0 -0
  145. /package/src/{vitepress/assets → assets}/rolldown/rolldown-rollup.png +0 -0
  146. /package/src/{vitepress/assets → assets}/rolldown/rolldown-thumbnail.png +0 -0
  147. /package/src/{vitepress/assets → assets}/social/bluesky-light.svg +0 -0
  148. /package/src/{vitepress/assets → assets}/social/bluesky.svg +0 -0
  149. /package/src/{vitepress/assets → assets}/social/discord-light.svg +0 -0
  150. /package/src/{vitepress/assets → assets}/social/discord.svg +0 -0
  151. /package/src/{vitepress/assets → assets}/social/github-light.svg +0 -0
  152. /package/src/{vitepress/assets → assets}/social/github.svg +0 -0
  153. /package/src/{vitepress/assets → assets}/social/twitter-light.svg +0 -0
  154. /package/src/{vitepress/assets → assets}/social/twitter.svg +0 -0
  155. /package/src/{vitepress/assets → assets}/terminal-background.jpg +0 -0
  156. /package/src/{vitepress/assets → assets}/vite/animations/563_x_420_rich_features.riv +0 -0
  157. /package/src/{vitepress/assets → assets}/vite/animations/640_x_300_flexible_plugin.riv +0 -0
  158. /package/src/{vitepress/assets → assets}/vite/animations/641_x_629_vite_masthead.riv +0 -0
  159. /package/src/{vitepress/assets → assets}/vite/footer-background.jpg +0 -0
  160. /package/src/{vitepress/assets → assets}/vite/primary-button-background.jpg +0 -0
  161. /package/src/{vitepress/assets → assets}/vite/vite-by-voidzero.png +0 -0
  162. /package/src/{vitepress/assets → assets}/vite/vite-ci.svg +0 -0
  163. /package/src/{vitepress/assets → assets}/vite/vite-featurepanel-1-background.jpg +0 -0
  164. /package/src/{vitepress/assets → assets}/vite/vite-featurepanel-1-terminal.svg +0 -0
  165. /package/src/{vitepress/assets → assets}/vite/vite-featurepanel-2-terminal.png +0 -0
  166. /package/src/{vitepress/assets → assets}/vite/vite-featurepanel-4-background.jpg +0 -0
  167. /package/src/{vitepress/assets → assets}/vite/vite-featurepanel-4-terminal.svg +0 -0
  168. /package/src/{vitepress/assets → assets}/vite/vite-frameworks-mobile.png +0 -0
  169. /package/src/{vitepress/assets → assets}/vite/vite-frameworks.png +0 -0
  170. /package/src/{vitepress/assets → assets}/vite/vite-ssr-support.png +0 -0
  171. /package/src/{vitepress/assets → assets}/vite/vite-typed-api.svg +0 -0
  172. /package/src/{vitepress/assets → assets}/viteplus/logo.svg +0 -0
  173. /package/src/{vitepress/assets → assets}/vitest/animations/640_x_300_esm.riv +0 -0
  174. /package/src/{vitepress/assets → assets}/vitest/animations/640_x_560_vitest_masthead.riv +0 -0
  175. /package/src/{vitepress/assets → assets}/vitest/animations/650_x_300_vite_powered.riv +0 -0
  176. /package/src/{vitepress/assets → assets}/vitest/footer-background.jpg +0 -0
  177. /package/src/{vitepress/assets → assets}/vitest/hero-background.jpg +0 -0
  178. /package/src/{vitepress/assets → assets}/vitest/hero-terminal.svg +0 -0
  179. /package/src/{vitepress/assets → assets}/vitest/primary-button-background.jpg +0 -0
  180. /package/src/{vitepress/assets → assets}/vitest/vitest-jest-compatible.png +0 -0
  181. /package/src/{vitepress/assets → assets}/vitest/vitest-watcher-background.jpg +0 -0
  182. /package/src/{vitepress/assets → assets}/vitest/vitest-watcher.png +0 -0
  183. /package/src/{vitepress/assets → assets}/voidzero/animations/1280_x_552_homepage.riv +0 -0
  184. /package/src/{vitepress/assets → assets}/voidzero/animations/343_x_148_homepage_mobile.riv +0 -0
  185. /package/src/{vitepress/assets → assets}/voidzero/animations/480_x_480_build_tool_for_web.riv +0 -0
  186. /package/src/{vitepress/assets → assets}/voidzero/animations/480_x_480_fastest_javascript_bundler.riv +0 -0
  187. /package/src/{vitepress/assets → assets}/voidzero/animations/480_x_480_language_toolchain.riv +0 -0
  188. /package/src/{vitepress/assets → assets}/voidzero/animations/480_x_480_next_generation_runner.riv +0 -0
  189. /package/src/{vitepress/assets → assets}/voidzero/animations/about-mobile.riv +0 -0
  190. /package/src/{vitepress/assets → assets}/voidzero/animations/about.riv +0 -0
  191. /package/src/{vitepress/assets → assets}/voidzero/backgrounds/casestudies.jpg +0 -0
  192. /package/src/{vitepress/assets → assets}/voidzero/backgrounds/oxc.jpg +0 -0
  193. /package/src/{vitepress/assets → assets}/voidzero/backgrounds/rolldown.jpg +0 -0
  194. /package/src/{vitepress/assets → assets}/voidzero/backgrounds/vite.jpg +0 -0
  195. /package/src/{vitepress/assets → assets}/voidzero/backgrounds/vitest.jpg +0 -0
  196. /package/src/{vitepress/assets → assets}/voidzero/career-illustration.jpg +0 -0
  197. /package/src/{vitepress/assets → assets}/voidzero/footer-logo.svg +0 -0
  198. /package/src/{vitepress/assets → assets}/voidzero/footer.jpg +0 -0
  199. /package/src/{vitepress/assets → assets}/voidzero/investors/accel.svg +0 -0
  200. /package/src/{vitepress/assets → assets}/voidzero/investors/amplify.svg +0 -0
  201. /package/src/{vitepress/assets → assets}/voidzero/investors/peakxv.png +0 -0
  202. /package/src/{vitepress/assets → assets}/voidzero/investors/resend.svg +0 -0
  203. /package/src/{vitepress/assets → assets}/voidzero/investors/sentry.svg +0 -0
  204. /package/src/{vitepress/assets → assets}/voidzero/investors/sunflower.png +0 -0
  205. /package/src/{vitepress/assets → assets}/voidzero/logo-light.svg +0 -0
  206. /package/src/{vitepress/assets → assets}/voidzero/logo.svg +0 -0
  207. /package/src/{vitepress/assets → assets}/voidzero/signature.svg +0 -0
  208. /package/src/{vitepress/assets → assets}/voidzero/terminals/rolldown.svg +0 -0
  209. /package/src/{vitepress/assets → assets}/voidzero/terminals/vite.svg +0 -0
  210. /package/src/{vitepress/assets → assets}/voidzero/terminals/vitest.svg +0 -0
  211. /package/src/{vitepress/assets → assets}/voidzero/vite-plus-chip.png +0 -0
  212. /package/src/{vitepress/components → components}/oss/CTAShaderBackground.vue +0 -0
  213. /package/src/{vitepress/components → components}/oss/HeadingSection.vue +0 -0
  214. /package/src/{vitepress/components → components}/oxc/FeatureLinter.vue +0 -0
  215. /package/src/{vitepress/components → components}/oxc/FeatureMinifierFormatter.vue +0 -0
  216. /package/src/{vitepress/components → components}/oxc/FeatureParser.vue +0 -0
  217. /package/src/{vitepress/components → components}/oxc/FeatureResolver.vue +0 -0
  218. /package/src/{vitepress/components → components}/oxc/FeatureToolbar.vue +0 -0
  219. /package/src/{vitepress/components → components}/oxc/FeatureTransformer.vue +0 -0
  220. /package/src/{vitepress/components → components}/oxc/Hero.vue +0 -0
  221. /package/src/{vitepress/components → components}/rolldown/FeatureGrid.vue +0 -0
  222. /package/src/{vitepress/components → components}/rolldown/Hero.vue +0 -0
  223. /package/src/{vitepress/components → components}/shared/CodeGroup.vue +0 -0
  224. /package/src/{vitepress/components → components}/shared/Eyebrow.vue +0 -0
  225. /package/src/{vitepress/components → components}/shared/LogoGrid.vue +0 -0
  226. /package/src/{vitepress/components → components}/shared/NewsletterForm.vue +0 -0
  227. /package/src/{vitepress/components → components}/shared/PerformanceBar.vue +0 -0
  228. /package/src/{vitepress/components → components}/shared/RiveAnimation.vue +0 -0
  229. /package/src/{vitepress/components → components}/shared/ShaderBackground.vue +0 -0
  230. /package/src/{vitepress/components → components}/shared/Spacer.vue +0 -0
  231. /package/src/{vitepress/components → components}/shared/Terminal.vue +0 -0
  232. /package/src/{vitepress/components → components}/shared/icons/VZIconBluesky.vue +0 -0
  233. /package/src/{vitepress/components → components}/shared/icons/VZIconGitHub.vue +0 -0
  234. /package/src/{vitepress/components → components}/shared/icons/VZIconLogo.vue +0 -0
  235. /package/src/{vitepress/components → components}/shared/icons/VZIconTwitter.vue +0 -0
  236. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation1.vue +0 -0
  237. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation2.vue +0 -0
  238. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation3.vue +0 -0
  239. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation4.vue +0 -0
  240. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation5.vue +0 -0
  241. /package/src/{vitepress/components → components}/shared/terminal-animations/TerminalAnimation6.vue +0 -0
  242. /package/src/{vitepress/components → components}/vite/Frameworks.vue +0 -0
  243. /package/src/{vitepress/components → components}/viteplus/Header.vue +0 -0
  244. /package/src/{vitepress/components → components}/vitepress-default/Layout.vue +0 -0
  245. /package/src/{vitepress/components → components}/vitepress-default/NotFound.vue +0 -0
  246. /package/src/{vitepress/components → components}/vitepress-default/VPAlgoliaSearchBox.vue +0 -0
  247. /package/src/{vitepress/components → components}/vitepress-default/VPBackdrop.vue +0 -0
  248. /package/src/{vitepress/components → components}/vitepress-default/VPBadge.vue +0 -0
  249. /package/src/{vitepress/components → components}/vitepress-default/VPButton.vue +0 -0
  250. /package/src/{vitepress/components → components}/vitepress-default/VPCarbonAds.vue +0 -0
  251. /package/src/{vitepress/components → components}/vitepress-default/VPContent.vue +0 -0
  252. /package/src/{vitepress/components → components}/vitepress-default/VPDoc.vue +0 -0
  253. /package/src/{vitepress/components → components}/vitepress-default/VPDocAside.vue +0 -0
  254. /package/src/{vitepress/components → components}/vitepress-default/VPDocAsideCarbonAds.vue +0 -0
  255. /package/src/{vitepress/components → components}/vitepress-default/VPDocAsideOutline.vue +0 -0
  256. /package/src/{vitepress/components → components}/vitepress-default/VPDocAsideSponsors.vue +0 -0
  257. /package/src/{vitepress/components → components}/vitepress-default/VPDocFooter.vue +0 -0
  258. /package/src/{vitepress/components → components}/vitepress-default/VPDocFooterLastUpdated.vue +0 -0
  259. /package/src/{vitepress/components → components}/vitepress-default/VPFeature.vue +0 -0
  260. /package/src/{vitepress/components → components}/vitepress-default/VPFeatures.vue +0 -0
  261. /package/src/{vitepress/components → components}/vitepress-default/VPFooter.vue +0 -0
  262. /package/src/{vitepress/components → components}/vitepress-default/VPHero.vue +0 -0
  263. /package/src/{vitepress/components → components}/vitepress-default/VPHome.vue +0 -0
  264. /package/src/{vitepress/components → components}/vitepress-default/VPHomeContent.vue +0 -0
  265. /package/src/{vitepress/components → components}/vitepress-default/VPHomeFeatures.vue +0 -0
  266. /package/src/{vitepress/components → components}/vitepress-default/VPHomeHero.vue +0 -0
  267. /package/src/{vitepress/components → components}/vitepress-default/VPHomeSponsors.vue +0 -0
  268. /package/src/{vitepress/components → components}/vitepress-default/VPImage.vue +0 -0
  269. /package/src/{vitepress/components → components}/vitepress-default/VPLink.vue +0 -0
  270. /package/src/{vitepress/components → components}/vitepress-default/VPLocalNav.vue +0 -0
  271. /package/src/{vitepress/components → components}/vitepress-default/VPLocalNavOutlineDropdown.vue +0 -0
  272. /package/src/{vitepress/components → components}/vitepress-default/VPLocalSearchBox.vue +0 -0
  273. /package/src/{vitepress/components → components}/vitepress-default/VPMenu.vue +0 -0
  274. /package/src/{vitepress/components → components}/vitepress-default/VPMenuGroup.vue +0 -0
  275. /package/src/{vitepress/components → components}/vitepress-default/VPNav.vue +0 -0
  276. /package/src/{vitepress/components → components}/vitepress-default/VPNavBar.vue +0 -0
  277. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarAppearance.vue +0 -0
  278. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarExtra.vue +0 -0
  279. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarHamburger.vue +0 -0
  280. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarMenu.vue +0 -0
  281. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarMenuGroup.vue +0 -0
  282. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarSearch.vue +0 -0
  283. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarSearchButton.vue +0 -0
  284. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarSocialLinks.vue +0 -0
  285. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarTitle.vue +0 -0
  286. /package/src/{vitepress/components → components}/vitepress-default/VPNavBarTranslations.vue +0 -0
  287. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreen.vue +0 -0
  288. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenAppearance.vue +0 -0
  289. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenMenu.vue +0 -0
  290. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenMenuGroup.vue +0 -0
  291. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenMenuGroupLink.vue +0 -0
  292. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenMenuGroupSection.vue +0 -0
  293. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenMenuLink.vue +0 -0
  294. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenSocialLinks.vue +0 -0
  295. /package/src/{vitepress/components → components}/vitepress-default/VPNavScreenTranslations.vue +0 -0
  296. /package/src/{vitepress/components → components}/vitepress-default/VPPage.vue +0 -0
  297. /package/src/{vitepress/components → components}/vitepress-default/VPSearchError.vue +0 -0
  298. /package/src/{vitepress/components → components}/vitepress-default/VPSidebar.vue +0 -0
  299. /package/src/{vitepress/components → components}/vitepress-default/VPSidebarGroup.vue +0 -0
  300. /package/src/{vitepress/components → components}/vitepress-default/VPSkipLink.vue +0 -0
  301. /package/src/{vitepress/components → components}/vitepress-default/VPSocialLinks.vue +0 -0
  302. /package/src/{vitepress/components → components}/vitepress-default/VPSponsors.vue +0 -0
  303. /package/src/{vitepress/components → components}/vitepress-default/VPSponsorsGrid.vue +0 -0
  304. /package/src/{vitepress/components → components}/vitepress-default/VPSwitch.vue +0 -0
  305. /package/src/{vitepress/components → components}/vitepress-default/VPSwitchAppearance.vue +0 -0
  306. /package/src/{vitepress/components → components}/vitepress-default/VPTeamMembers.vue +0 -0
  307. /package/src/{vitepress/components → components}/vitepress-default/VPTeamMembersItem.vue +0 -0
  308. /package/src/{vitepress/components → components}/vitepress-default/VPTeamPage.vue +0 -0
  309. /package/src/{vitepress/components → components}/vitepress-default/VPTeamPageSection.vue +0 -0
  310. /package/src/{vitepress/components → components}/vitepress-default/VPTeamPageTitle.vue +0 -0
  311. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconAlignJustify.vue +0 -0
  312. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconAlignLeft.vue +0 -0
  313. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconAlignRight.vue +0 -0
  314. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconArrowLeft.vue +0 -0
  315. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconArrowRight.vue +0 -0
  316. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconChevronDown.vue +0 -0
  317. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconChevronLeft.vue +0 -0
  318. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconChevronRight.vue +0 -0
  319. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconChevronUp.vue +0 -0
  320. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconEdit.vue +0 -0
  321. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconHeart.vue +0 -0
  322. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconLanguages.vue +0 -0
  323. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconMinus.vue +0 -0
  324. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconMinusSquare.vue +0 -0
  325. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconMoon.vue +0 -0
  326. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconMoreHorizontal.vue +0 -0
  327. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconPlus.vue +0 -0
  328. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconPlusSquare.vue +0 -0
  329. /package/src/{vitepress/components → components}/vitepress-default/icons/VPIconSun.vue +0 -0
  330. /package/src/{vitepress/components → components}/vitest/FeatureGrid.vue +0 -0
  331. /package/src/{vitepress/components → components}/vitest/Hero.vue +0 -0
  332. /package/src/{vitepress/components → components}/vitest/Intro.vue +0 -0
  333. /package/src/{vitepress/composables → composables}/vitepress-default/aside.ts +0 -0
  334. /package/src/{vitepress/composables → composables}/vitepress-default/data.ts +0 -0
  335. /package/src/{vitepress/composables → composables}/vitepress-default/edit-link.ts +0 -0
  336. /package/src/{vitepress/composables → composables}/vitepress-default/flyout.ts +0 -0
  337. /package/src/{vitepress/composables → composables}/vitepress-default/langs.ts +0 -0
  338. /package/src/{vitepress/composables → composables}/vitepress-default/layout.ts +0 -0
  339. /package/src/{vitepress/composables → composables}/vitepress-default/nav.ts +0 -0
  340. /package/src/{vitepress/composables → composables}/vitepress-default/outline.ts +0 -0
  341. /package/src/{vitepress/composables → composables}/vitepress-default/prev-next.ts +0 -0
  342. /package/src/{vitepress/composables → composables}/vitepress-default/sidebar.ts +0 -0
  343. /package/src/{vitepress/composables → composables}/vitepress-default/sponsor-grid.ts +0 -0
  344. /package/src/{vitepress/env.d.ts → env.d.ts} +0 -0
  345. /package/src/{vitepress/fonts → fonts}/APK-Protocol-Medium.woff2 +0 -0
  346. /package/src/{vitepress/fonts → fonts}/KHTekaMono-Medium.woff2 +0 -0
  347. /package/src/{vitepress/fonts → fonts}/KHTekaMono-Regular.woff2 +0 -0
  348. /package/src/{vitepress/styles → styles}/base.css +0 -0
  349. /package/src/{vitepress/styles → styles}/docs.css +0 -0
  350. /package/src/{vitepress/styles → styles}/index.css +0 -0
  351. /package/src/{vitepress/styles → styles}/marketing.css +0 -0
  352. /package/src/{vitepress/styles → styles}/vitepress-default/base-scoped.css +0 -0
  353. /package/src/{vitepress/styles → styles}/vitepress-default/base.css +0 -0
  354. /package/src/{vitepress/styles → styles}/vitepress-default/components/custom-block.css +0 -0
  355. /package/src/{vitepress/styles → styles}/vitepress-default/components/vp-code-group.css +0 -0
  356. /package/src/{vitepress/styles → styles}/vitepress-default/components/vp-code.css +0 -0
  357. /package/src/{vitepress/styles → styles}/vitepress-default/components/vp-doc.css +0 -0
  358. /package/src/{vitepress/styles → styles}/vitepress-default/components/vp-sponsor.css +0 -0
  359. /package/src/{vitepress/styles → styles}/vitepress-default/fonts.css +0 -0
  360. /package/src/{vitepress/styles → styles}/vitepress-default/icons.css +0 -0
  361. /package/src/{vitepress/styles → styles}/vitepress-default/index-scoped.css +0 -0
  362. /package/src/{vitepress/styles → styles}/vitepress-default/index.css +0 -0
  363. /package/src/{vitepress/styles → styles}/vitepress-default/utils.css +0 -0
  364. /package/src/{vitepress/support → support}/vitepress-default/app-utils.ts +0 -0
  365. /package/src/{vitepress/support → support}/vitepress-default/docsearch-loader.ts +0 -0
  366. /package/src/{vitepress/support → support}/vitepress-default/lru.ts +0 -0
  367. /package/src/{vitepress/support → support}/vitepress-default/search-config.ts +0 -0
  368. /package/src/{vitepress/support → support}/vitepress-default/shared-utils.ts +0 -0
  369. /package/src/{vitepress/support → support}/vitepress-default/sidebar.ts +0 -0
  370. /package/src/{vitepress/support → support}/vitepress-default/translation.ts +0 -0
  371. /package/src/{vitepress/support → support}/vitepress-default/utils.ts +0 -0
  372. /package/src/{vitepress/types → types}/docsearch.d.ts +0 -0
  373. /package/src/{vitepress/types → types}/local-search.d.ts +0 -0
@@ -1,248 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, computed, onMounted, onUnmounted } from 'vue'
3
-
4
- // Import client logos
5
- import shopifyLogo from '@assets/clients/shopify.svg'
6
- import openaiLogo from '@assets/clients/openai.svg'
7
- import framerLogo from '@assets/clients/framer.svg'
8
- import linearLogo from '@assets/clients/linear.svg'
9
- import huggingfaceLogo from '@assets/clients/hugging-face.svg'
10
- import cloudflareLogo from '@assets/clients/cloudflare.svg'
11
- import mercedesLogo from '@assets/clients/mercedes.svg'
12
- import boltLogo from '@assets/clients/bolt.svg'
13
-
14
- // Logos - will round entries down to odd number to maintain centering
15
- const initialLogos = [
16
- { id: 1, name: 'Shopify', src: shopifyLogo },
17
- { id: 2, name: 'OpenAI', src: openaiLogo },
18
- { id: 3, name: 'Framer', src: framerLogo },
19
- { id: 4, name: 'Linear', src: linearLogo },
20
- { id: 5, name: 'Hugging Face', src: huggingfaceLogo },
21
- { id: 6, name: 'Cloudflare', src: cloudflareLogo },
22
- { id: 7, name: 'Mercedes', src: mercedesLogo },
23
- { id: 8, name: 'Bolt', src: boltLogo },
24
- ]
25
-
26
- // Ensure odd number of logos for center alignment
27
- const normalizedLogos = computed(() => {
28
- const count = initialLogos.length
29
- return count % 2 === 0 ? initialLogos.slice(0, -1) : initialLogos
30
- })
31
-
32
- // Clone all logos to end for seamless infinite loop
33
- const logosWithClones = computed(() => {
34
- const logos = normalizedLogos.value
35
- // Clone entire array to ensure smooth scrolling with 5 visible logos
36
- const clones = logos.map((logo) => ({
37
- ...logo,
38
- id: `${logo.id}-clone`,
39
- isClone: true
40
- }))
41
- return [...logos, ...clones]
42
- })
43
-
44
- // Carousel state
45
- const currentIndex = ref(0)
46
- const isPaused = ref(false)
47
- const isTransitioning = ref(true)
48
-
49
- // Calculate which logo is centered
50
- const centerIndex = computed(() => {
51
- return Math.floor(normalizedLogos.value.length / 2)
52
- })
53
-
54
- // Auto-advance interval
55
- let intervalId: number | null = null
56
-
57
- const advance = () => {
58
- if (isPaused.value) return
59
-
60
- isTransitioning.value = true
61
- currentIndex.value++
62
-
63
- // Reset to beginning when reaching clones (seamless loop)
64
- // We reset to centerIndex to maintain the centered starting position
65
- if (currentIndex.value >= normalizedLogos.value.length + centerIndex.value) {
66
- setTimeout(() => {
67
- isTransitioning.value = false
68
- currentIndex.value = centerIndex.value
69
- // Re-enable transition after instant reset
70
- setTimeout(() => {
71
- isTransitioning.value = true
72
- }, 50)
73
- }, 600) // Match CSS transition duration
74
- }
75
- }
76
-
77
- onMounted(() => {
78
- // Start with the center logo in the middle of the viewport
79
- currentIndex.value = centerIndex.value
80
- intervalId = window.setInterval(advance, 3500)
81
- })
82
-
83
- onUnmounted(() => {
84
- if (intervalId) clearInterval(intervalId)
85
- })
86
-
87
- // Calculate transform position
88
- const transformStyle = computed(() => {
89
- // Each logo is 120px + 32px gap on desktop, 80px + 16px gap on mobile
90
- // We'll use CSS variables and calc for this
91
- const offset = currentIndex.value
92
- return {
93
- transform: `translateX(calc(-${offset} * (var(--logo-width) + var(--logo-gap))))`,
94
- transition: isTransitioning.value ? 'transform 0.6s ease-in-out' : 'none'
95
- }
96
- })
97
-
98
- // Calculate opacity for each logo based on distance from viewport center
99
- const getLogoOpacity = (index: number) => {
100
- // currentIndex directly represents which logo is centered in viewport
101
- const distance = Math.abs(index - currentIndex.value)
102
-
103
- // Center logo: 100%, one away: 60%, two+ away: 30%
104
- if (distance === 0) return 1
105
- if (distance === 1) return 0.5
106
- return 0.2
107
- }
108
- </script>
109
-
110
- <template>
111
- <section class="wrapper wrapper--ticks border-t pt-10 md:pt-14 md:pb-5 flex flex-col items-center justify-center md:gap-2">
112
- <p class="self-stretch text-center text-balance text-nickel max-w-[75vw] mx-auto md:max-w-full">Trusted by the world's best software teams</p>
113
- <div class="carousel-container">
114
- <!-- Left bracket -->
115
- <div class="bracket bracket-left">
116
- <svg width="8" height="30" viewBox="0 0 8 30" fill="none" xmlns="http://www.w3.org/2000/svg" class="bracket-svg">
117
- <path d="M4.65198 30C1.48018 25.4273 0 20.4388 0 15.0346C0 9.59584 1.48018 4.53811 4.65198 0H8C5.42731 4.98845 4.29956 10.0462 4.29956 15.0346C4.29956 20.0231 5.39207 25.0462 8 30H4.65198Z" fill="currentColor"/>
118
- </svg>
119
- </div>
120
-
121
- <!-- Logo carousel -->
122
- <div class="carousel-viewport">
123
- <div class="carousel-track" :style="transformStyle">
124
- <div
125
- v-for="(logo, index) in logosWithClones"
126
- :key="logo.id"
127
- class="logo-item"
128
- :style="{ '--logo-opacity': getLogoOpacity(index) }"
129
- >
130
- <img
131
- :src="logo.src"
132
- :alt="logo.name"
133
- class="logo-image"
134
- />
135
- </div>
136
- </div>
137
- </div>
138
-
139
- <!-- Right bracket -->
140
- <div class="bracket bracket-right">
141
- <svg width="8" height="30" viewBox="0 0 8 30" fill="none" xmlns="http://www.w3.org/2000/svg" class="bracket-svg">
142
- <path d="M3.34802 30C6.51982 25.4273 8 20.4388 8 15.0346C8 9.59584 6.51982 4.53811 3.34802 0H0C2.57269 4.98845 3.70044 10.0462 3.70044 15.0346C3.70044 20.0231 2.60793 25.0462 0 30H3.34802Z" fill="currentColor"/>
143
- </svg>
144
- </div>
145
- </div>
146
- </section>
147
- </template>
148
-
149
- <style scoped>
150
- .carousel-container {
151
- position: relative;
152
- display: flex;
153
- align-items: center;
154
- justify-content: center;
155
- width: 100%;
156
- max-width: 100%;
157
-
158
- /* CSS variables for responsive logo sizing */
159
- --logo-width: 120px;
160
- --logo-height: 120px;
161
- --logo-gap: 30px;
162
- --bracket-offset: 8px; /* Distance from center logo */
163
- }
164
-
165
- @media (min-width: 640px) {
166
- .carousel-container {
167
- --logo-width: 126px;
168
- --logo-height: 126px;
169
- --logo-gap: 48px;
170
- --bracket-offset: 12px;
171
- }
172
- }
173
-
174
- .bracket {
175
- position: absolute;
176
- top: 50%;
177
- transform: translateY(-50%);
178
- display: flex;
179
- align-items: center;
180
- justify-content: center;
181
- color: var(--color-nickel);
182
- z-index: 10;
183
- pointer-events: none;
184
- }
185
-
186
- .bracket-left {
187
- left: calc(50% - var(--logo-width) / 2 - var(--bracket-offset) - 8px);
188
- }
189
-
190
- .bracket-right {
191
- right: calc(50% - var(--logo-width) / 2 - var(--bracket-offset) - 8px);
192
- }
193
-
194
- .bracket-svg {
195
- width: 7.2px;
196
- height: 27px;
197
- }
198
-
199
- @media (min-width: 640px) {
200
- .bracket-svg {
201
- width: 10.8px;
202
- height: 40.5px;
203
- }
204
- }
205
-
206
- .carousel-viewport {
207
- position: relative;
208
- overflow: hidden;
209
- width: 100%;
210
- max-width: calc(3 * (var(--logo-width) + var(--logo-gap)));
211
- display: flex;
212
- align-items: center;
213
- }
214
-
215
- @media (min-width: 640px) {
216
- .carousel-viewport {
217
- max-width: calc(5 * (var(--logo-width) + var(--logo-gap)));
218
- }
219
- }
220
-
221
- .carousel-track {
222
- display: flex;
223
- gap: var(--logo-gap);
224
- will-change: transform;
225
- /* Padding to center the logo at currentIndex */
226
- padding-left: calc(50% - var(--logo-width) / 2);
227
- }
228
-
229
- .logo-item {
230
- flex-shrink: 0;
231
- width: var(--logo-width);
232
- height: var(--logo-height);
233
- display: flex;
234
- align-items: center;
235
- justify-content: center;
236
- padding: 1rem;
237
- }
238
-
239
- .logo-image {
240
- width: 100%;
241
- height: 100%;
242
- object-fit: contain;
243
- filter: grayscale(1);
244
- opacity: var(--logo-opacity, 1);
245
- user-select: none;
246
- pointer-events: none;
247
- }
248
- </style>
@@ -1,55 +0,0 @@
1
- <template>
2
- <section
3
- class="wrapper border-t grid grid-rows-3 lg:grid-rows-1 lg:grid-cols-4 lg:h-80 divide-y lg:divide-y-0 lg:divide-x">
4
- <div class="p-5 lg:p-10 lg:pb-16 lg:col-span-2 flex flex-col justify-between items-start">
5
- <div class="flex flex-col gap-3">
6
- <img src="@assets/voidzero/vite-plus-chip.png" alt="Vite+" class="h-10 mb-3 w-fit object-contain">
7
- <h5>Vite, but more powerful</h5>
8
- <p class="text-pretty max-w-lg">Scaffold, dev, build, lint, test, format & more, all in a single dependency.</p>
9
- </div>
10
- <a href="https://viteplus.dev" target="_blank" class="text-primary font-medium border-b mt-4 md:mt-0">Learn more →</a>
11
- </div>
12
- <div class="p-5 lg:p-10 lg:pb-16 flex flex-col justify-between">
13
- <svg class="size-5" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
14
- <path
15
- d="M16.2501 1.66675H11.2501C10.0995 1.66675 9.16675 2.59949 9.16675 3.75008V8.75008C9.16675 9.90067 10.0995 10.8334 11.2501 10.8334H16.2501C17.4007 10.8334 18.3334 9.90067 18.3334 8.75008V3.75008C18.3334 2.59949 17.4007 1.66675 16.2501 1.66675Z"
16
- stroke="black" stroke-width="1.35" stroke-linecap="round" stroke-linejoin="round"/>
17
- <path
18
- d="M9.16675 5.41699C7.47714 5.42003 6.59237 5.46152 6.02694 6.02694C5.41675 6.63714 5.41675 7.61923 5.41675 9.58342V10.4168C5.41675 12.3809 5.41675 13.363 6.02694 13.9732C6.63714 14.5834 7.61923 14.5834 9.58341 14.5834H10.4167C12.3809 14.5834 13.363 14.5834 13.9732 13.9732C14.5387 13.4078 14.5802 12.523 14.5832 10.8334"
19
- stroke="black" stroke-width="1.35" stroke-linecap="round" stroke-linejoin="round"/>
20
- <path
21
- d="M5.41675 9.16699C3.72714 9.16999 2.84237 9.21149 2.27694 9.77691C1.66675 10.3872 1.66675 11.3692 1.66675 13.3334V14.1667C1.66675 16.1309 1.66675 17.113 2.27694 17.7232C2.88714 18.3334 3.86923 18.3334 5.83341 18.3334H6.66675C8.63091 18.3334 9.613 18.3334 10.2232 17.7232C10.7887 17.1578 10.8302 16.273 10.8332 14.5834"
22
- stroke="black" stroke-width="1.35" stroke-linecap="round" stroke-linejoin="round"/>
23
- </svg>
24
- <div class="flex flex-col gap-2 justify-start md:min-h-24">
25
- <h6>Drop-in superset of Vite</h6>
26
- <p class="text-balance">Smooth, incremental adoption if you are already using Vite.</p>
27
- </div>
28
- </div>
29
- <div class="p-5 lg:p-10 lg:pb-16 flex flex-col justify-between">
30
- <svg class="size-5" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
31
- <path
32
- d="M17.0833 8.75V16.25C17.0833 16.6382 17.0833 16.8324 17.0198 16.9856C16.9353 17.1897 16.773 17.352 16.5688 17.4366C16.4157 17.5 16.2215 17.5 15.8333 17.5C15.445 17.5 15.2508 17.5 15.0977 17.4366C14.8935 17.352 14.7313 17.1897 14.6467 16.9856C14.5833 16.8324 14.5833 16.6382 14.5833 16.25V8.75C14.5833 8.36175 14.5833 8.16758 14.6467 8.01443C14.7313 7.81024 14.8935 7.64801 15.0977 7.56343C15.2508 7.5 15.445 7.5 15.8333 7.5C16.2215 7.5 16.4157 7.5 16.5688 7.56343C16.773 7.64801 16.9353 7.81024 17.0198 8.01443C17.0833 8.16758 17.0833 8.36175 17.0833 8.75Z"
33
- stroke="#08060D" stroke-width="1.35" stroke-linejoin="round"/>
34
- <path d="M13.75 2.5H16.25V5" stroke="#08060D" stroke-width="1.35" stroke-linecap="round"
35
- stroke-linejoin="round"/>
36
- <path d="M15.8333 2.91675C15.8333 2.91675 12.5 7.08341 3.75 10.0001" stroke="#08060D" stroke-width="1.35"
37
- stroke-linecap="round" stroke-linejoin="round"/>
38
- <path
39
- d="M11.25 11.6667V16.2501C11.25 16.6383 11.25 16.8325 11.1866 16.9857C11.102 17.1898 10.9397 17.3521 10.7356 17.4367C10.5824 17.5001 10.3882 17.5001 10 17.5001C9.61175 17.5001 9.41758 17.5001 9.26442 17.4367C9.06025 17.3521 8.898 17.1898 8.81342 16.9857C8.75 16.8325 8.75 16.6383 8.75 16.2501V11.6667C8.75 11.2785 8.75 11.0843 8.81342 10.9312C8.898 10.727 9.06025 10.5647 9.26442 10.4802C9.41758 10.4167 9.61175 10.4167 10 10.4167C10.3882 10.4167 10.5824 10.4167 10.7356 10.4802C10.9397 10.5647 11.102 10.727 11.1866 10.9312C11.25 11.0843 11.25 11.2785 11.25 11.6667Z"
40
- stroke="#08060D" stroke-width="1.35" stroke-linejoin="round"/>
41
- <path
42
- d="M5.41675 13.75V16.25C5.41675 16.6382 5.41675 16.8324 5.35331 16.9856C5.26874 17.1897 5.10651 17.352 4.90231 17.4366C4.74917 17.5 4.55503 17.5 4.16675 17.5C3.77846 17.5 3.58432 17.5 3.43118 17.4366C3.22699 17.352 3.06476 17.1897 2.98018 16.9856C2.91675 16.8324 2.91675 16.6382 2.91675 16.25V13.75C2.91675 13.3617 2.91675 13.1676 2.98018 13.0144C3.06476 12.8103 3.22699 12.648 3.43118 12.5634C3.58432 12.5 3.77846 12.5 4.16675 12.5C4.55503 12.5 4.74917 12.5 4.90231 12.5634C5.10651 12.648 5.26874 12.8103 5.35331 13.0144C5.41675 13.1676 5.41675 13.3617 5.41675 13.75Z"
43
- stroke="#08060D" stroke-width="1.35" stroke-linejoin="round"/>
44
- </svg>
45
- <div class="flex flex-col gap-2 justify-start md:min-h-24">
46
- <h6>Enterprise Scale Productivity</h6>
47
- <p class="text-balance">Performance, reliability & security. Let your team focus on shipping.</p>
48
- </div>
49
- </div>
50
- </section>
51
- </template>
52
-
53
- <style scoped>
54
-
55
- </style>
@@ -1,17 +0,0 @@
1
- <template>
2
- <div class="wrapper wrapper--ticks border-t flex flex-col justify-start items-center gap-6 py-10 md:py-20">
3
- <div class="w-full sm:w-2xl flex flex-col justify-start items-center gap-10 px-5 sm:px-0">
4
- <img src="@assets/logos/viteplus-dark.svg" alt="Vite+ Logo" class="h-3">
5
- <h2 class="text-center text-primary text-balance">
6
- <span class="inline-block">The Unified Toolchain</span>
7
- <span class="inline-block">for the Web</span>
8
- </h2>
9
- <a href="https://viteplus.dev" target="_blank" rel="noopener noreferrer"
10
- class="button button--primary button--white">
11
- <span>Explore Vite+</span>
12
- </a>
13
- </div>
14
- </div>
15
- </template>
16
- <script setup lang="ts">
17
- </script>
@@ -1,269 +0,0 @@
1
- /**
2
- * @voidzerodev/vitepress-theme
3
- *
4
- * Full fork of VitePress default theme with custom variant system.
5
- * Supports both traditional VitePress doc layouts and custom variant layouts.
6
- * Set themeConfig.variant to 'voidzero' or 'viteplus' in your VitePress config.
7
- *
8
- * Layouts:
9
- * - layout: 'doc' | 'home' | 'page' → Uses VitePress default layout
10
- * - No layout or custom → Uses variant-specific custom layout
11
- */
12
-
13
- // NOTE: @docsearch/css is loaded dynamically in VPAlgoliaSearchBox.vue
14
- // This allows local search users to avoid installing docsearch packages
15
-
16
- // Unified design system - single import
17
- // Contains: tokens → base → docs → marketing (in that order)
18
- import './styles/index.css'
19
-
20
- import type {Theme} from 'vitepress'
21
- import {watch} from 'vue'
22
-
23
- // Main layout router
24
- import VPLayout from './layouts/VPLayout.vue'
25
-
26
- // Shared components
27
- import Terminal from '@components/shared/Terminal.vue'
28
- import Eyebrow from '@components/shared/Eyebrow.vue'
29
- import RiveAnimation from '@components/shared/RiveAnimation.vue'
30
- import LogoGrid from '@components/shared/LogoGrid.vue'
31
- import CodeGroup from '@components/shared/CodeGroup.vue'
32
-
33
- // VitePress default theme components (forked)
34
- import VPBadge from '@vp-default/VPBadge.vue'
35
-
36
- // Vite+
37
- import VitePlusHeader from '@components/viteplus/Header.vue'
38
-
39
- // VoidZero
40
- import VoidZeroFooter from '@components/voidzero/Footer.vue'
41
- import VoidZeroHeader from '@components/voidzero/Header.vue'
42
-
43
- // VoidZero (Home)
44
- import VoidZeroHomeHero from '@components/voidzero/home/Hero.vue'
45
- import TrustedBy from "@components/voidzero/home/TrustedBy.vue"
46
- import VitePlusSectionHeading from "@components/voidzero/home/VitePlusSectionHeading.vue"
47
- import VitePlusSectionFeatures from "@components/voidzero/home/VitePlusSectionFeatures.vue"
48
- import OpenSourceSectionHeading from "@components/voidzero/home/OpenSourceSectionHeading.vue"
49
- import OpenSourceSectionProjects from "@components/voidzero/home/OpenSourceSectionProjects.vue"
50
- import CustomersSectionHeading from "@components/voidzero/home/CustomersSectionHeading.vue"
51
- import CaseStudySlider from "@components/voidzero/home/CaseStudySlider.vue"
52
- import StatisticsSectionHeading from "@components/voidzero/home/StatisticsSectionHeading.vue"
53
- import Statistics from "@components/voidzero/home/Statistics.vue"
54
- import TeamCTA from "@components/voidzero/home/TeamCTA.vue"
55
- import Investors from "@components/voidzero/home/Investors.vue"
56
- import Spacer from "@components/shared/Spacer.vue"
57
- import Resources from "@components/voidzero/home/Resources.vue"
58
- import NewsletterCTA from "@components/voidzero/home/NewsletterCTA.vue"
59
-
60
- // VoidZero (About)
61
- import VoidZeroAboutHero from '@components/voidzero/about/Hero.vue'
62
- import TeamSectionHeading from "@components/voidzero/about/TeamSectionHeading.vue"
63
- import TeamGrid from "@components/voidzero/about/TeamGrid.vue"
64
- import CareerCTA from '@components/voidzero/about/CareerCTA.vue'
65
- import VoidZeroAboutInvestors from '@components/voidzero/about/Investors.vue'
66
-
67
- // VoidZero (Articles)
68
- import FeaturedArticles from '@components/voidzero/blog/FeaturedArticles.vue'
69
- import BlogArchive from '@components/voidzero/blog/BlogArchive.vue'
70
- import BlogSingleHero from "@components/voidzero/blog/BlogSingleHero.vue";
71
- import BlogSingleContent from "@components/voidzero/blog/BlogSingleContent.vue";
72
- import BlogSingleRelated from "@components/voidzero/blog/BlogSingleRelated.vue";
73
-
74
- // OSS
75
- import OSSHeader from '@components/oss/Header.vue'
76
- import OSSFooter from '@components/oss/Footer.vue'
77
- import OSSTrustedBy from '@components/oss/TrustedBy.vue'
78
- import OSSHeadingSection from '@components/oss/HeadingSection.vue'
79
- import OSSSponsors from '@components/oss/Sponsors.vue'
80
-
81
- // Vite
82
- import ViteHero from '@components/vite/Hero.vue'
83
- import ViteFeaturePanel1 from '@components/vite/FeaturePanel1.vue'
84
- import ViteFeaturePanel2 from '@components/vite/FeaturePanel2.vue'
85
- import ViteFeaturePanel3 from '@components/vite/FeaturePanel3.vue'
86
- import ViteFeaturePanel4 from '@components/vite/FeaturePanel4.vue'
87
- import ViteFeatureGrid from '@components/vite/FeatureGrid.vue'
88
- import ViteFrameworks from '@components/vite/Frameworks.vue'
89
- import ViteCommunity from '@components/vite/Community.vue'
90
-
91
- // Vitest
92
- import VitestHero from '@components/vitest/Hero.vue'
93
- import VitestIntro from '@components/vitest/Intro.vue'
94
- import VitestFeatureGrid from '@components/vitest/FeatureGrid.vue'
95
-
96
- // Rolldown
97
- import RolldownHero from '@components/rolldown/Hero.vue'
98
- import RolldownFeatureGrid from '@components/rolldown/FeatureGrid.vue'
99
-
100
- // OXC
101
- import OXCHero from '@components/oxc/Hero.vue'
102
- import OXCFeatureToolbar from '@components/oxc/FeatureToolbar.vue'
103
- import OXCFeatureParser from '@components/oxc/FeatureParser.vue'
104
- import OXCFeatureLinter from '@components/oxc/FeatureLinter.vue'
105
- import OXCFeatureResolver from '@components/oxc/FeatureResolver.vue'
106
- import OXCFeatureTransformer from '@components/oxc/FeatureTransformer.vue'
107
- import OXCFeatureMinifierFormatter from '@components/oxc/FeatureMinifierFormatter.vue'
108
-
109
- const VoidZeroTheme = {
110
- Layout: VPLayout, // Smart layout router that switches between VP and custom layouts
111
- enhanceApp({app, router, siteData}) {
112
- const variant = siteData.value.themeConfig?.variant || 'voidzero'
113
- if (typeof document !== 'undefined') {
114
- document.documentElement.setAttribute('data-variant', variant)
115
-
116
- // Watch for frontmatter.theme changes and apply theme logic
117
- watch(
118
- () => router.route.data.frontmatter?.theme,
119
- (theme) => {
120
- if (theme) {
121
- // Forced theme via frontmatter
122
- document.documentElement.setAttribute('data-theme', theme)
123
- } else if (variant === 'voidzero' || variant === 'viteplus') {
124
- // Non-OSS: Always force light mode (ignore user preference)
125
- document.documentElement.setAttribute('data-theme', 'light')
126
- } else {
127
- // OSS: Respect user preference, but default to dark if no preference
128
- document.documentElement.removeAttribute('data-theme')
129
-
130
- const hasUserPreference = localStorage.getItem('vitepress-theme-appearance')
131
- if (!hasUserPreference && !document.documentElement.classList.contains('dark')) {
132
- // No user preference - set dark as default for OSS
133
- document.documentElement.classList.add('dark')
134
- }
135
- }
136
- },
137
- {immediate: true}
138
- )
139
- }
140
-
141
- // VitePress default theme component (for markdown usage)
142
- app.component('Badge', VPBadge)
143
-
144
- // Shared Components
145
- app.component('Terminal', Terminal)
146
- app.component('Eyebrow', Eyebrow)
147
- app.component('RiveAnimation', RiveAnimation)
148
- app.component('LogoGrid', LogoGrid)
149
- app.component('Spacer', Spacer)
150
- app.component('CodeGroup', CodeGroup)
151
- if (variant === 'viteplus') {
152
- // Vite+
153
- app.component('Header', VitePlusHeader)
154
- } else if (variant === 'voidzero') {
155
- // VoidZero
156
- app.component('Header', VoidZeroHeader)
157
- app.component('Footer', VoidZeroFooter)
158
- app.component('Hero', VoidZeroHomeHero)
159
- app.component('TrustedBy', TrustedBy)
160
- app.component('VitePlusSectionHeading', VitePlusSectionHeading)
161
- app.component('VitePlusSectionFeatures', VitePlusSectionFeatures)
162
- app.component('OpenSourceSectionHeading', OpenSourceSectionHeading)
163
- app.component('OpenSourceSectionProjects', OpenSourceSectionProjects)
164
- app.component('CustomersSectionHeading', CustomersSectionHeading)
165
- app.component('CaseStudySlider', CaseStudySlider)
166
- app.component('StatisticsSectionHeading', StatisticsSectionHeading)
167
- app.component('Statistics', Statistics)
168
- app.component('TeamCTA', TeamCTA)
169
- app.component('Investors', Investors)
170
- app.component('Resources', Resources)
171
- app.component('NewsletterCTA', NewsletterCTA)
172
- app.component('AboutHero', VoidZeroAboutHero)
173
- app.component('TeamSectionHeading', TeamSectionHeading)
174
- app.component('TeamGrid', TeamGrid)
175
- app.component('CareerCTA', CareerCTA)
176
- app.component('AboutInvestors', VoidZeroAboutInvestors)
177
- app.component('FeaturedArticles', FeaturedArticles)
178
- app.component('BlogArchive', BlogArchive)
179
- app.component('BlogSingleHero', BlogSingleHero)
180
- app.component('BlogSingleContent', BlogSingleContent)
181
- app.component('BlogSingleRelated', BlogSingleRelated)
182
- } else if (variant === 'vite') {
183
- // Vite
184
- app.component('Header', OSSHeader)
185
- app.component('Footer', OSSFooter)
186
- app.component('Hero', ViteHero)
187
- app.component('TrustedBy', OSSTrustedBy)
188
- app.component('HeadingSection', OSSHeadingSection)
189
- app.component('ViteFeaturePanel1', ViteFeaturePanel1)
190
- app.component('ViteFeaturePanel2', ViteFeaturePanel2)
191
- app.component('ViteFeaturePanel3', ViteFeaturePanel3)
192
- app.component('ViteFeaturePanel4', ViteFeaturePanel4)
193
- app.component('ViteFeatureGrid', ViteFeatureGrid)
194
- app.component('ViteFrameworks', ViteFrameworks)
195
- app.component('ViteCommunity', ViteCommunity)
196
- app.component('ViteSponsors', OSSSponsors)
197
- } else if (variant === 'vitest') {
198
- // Vitest
199
- app.component('Header', OSSHeader)
200
- app.component('Footer', OSSFooter)
201
- app.component('Hero', VitestHero)
202
- app.component('TrustedBy', OSSTrustedBy)
203
- app.component('Intro', VitestIntro)
204
- app.component('HeadingSection', OSSHeadingSection)
205
- app.component('VitestFeatureGrid', VitestFeatureGrid)
206
- app.component('Sponsors', OSSSponsors)
207
- } else if (variant === 'rolldown') {
208
- // Rolldown
209
- app.component('Header', OSSHeader)
210
- app.component('Footer', OSSFooter)
211
- app.component('Hero', RolldownHero)
212
- app.component('TrustedBy', OSSTrustedBy)
213
- app.component('HeadingSection', OSSHeadingSection)
214
- app.component('RolldownFeatureGrid', RolldownFeatureGrid)
215
- app.component('Sponsors', OSSSponsors)
216
- } else if (variant === 'oxc') {
217
- // OXC
218
- app.component('Header', OSSHeader)
219
- app.component('Footer', OSSFooter)
220
- app.component('Hero', OXCHero)
221
- app.component('TrustedBy', OSSTrustedBy)
222
- app.component('HeadingSection', OSSHeadingSection)
223
- app.component('FeatureToolbar', OXCFeatureToolbar)
224
- app.component('FeatureParser', OXCFeatureParser)
225
- app.component('FeatureLinter', OXCFeatureLinter)
226
- app.component('FeatureResolver', OXCFeatureResolver)
227
- app.component('FeatureTransformer', OXCFeatureTransformer)
228
- app.component('FeatureMinifierFormatter', OXCFeatureMinifierFormatter)
229
- app.component('Sponsors', OSSSponsors)
230
- }
231
- },
232
- } satisfies Theme
233
-
234
- // VP components (for use in Markdown and custom components)
235
- export {default as VPBadge} from '@vp-default/VPBadge.vue'
236
- export {default as VPButton} from '@vp-default/VPButton.vue'
237
- export {default as VPDocAsideSponsors} from '@vp-default/VPDocAsideSponsors.vue'
238
- export {default as VPFeatures} from '@vp-default/VPFeatures.vue'
239
- export {default as VPHomeContent} from '@vp-default/VPHomeContent.vue'
240
- export {default as VPHomeFeatures} from '@vp-default/VPHomeFeatures.vue'
241
- export {default as VPHomeHero} from '@vp-default/VPHomeHero.vue'
242
- export {default as VPHomeSponsors} from '@vp-default/VPHomeSponsors.vue'
243
- export {default as VPImage} from '@vp-default/VPImage.vue'
244
- export {default as VPLink} from '@vp-default/VPLink.vue'
245
- export {default as VPSocialLink} from '@vp-default/VPSocialLink.vue'
246
- export {default as VPSocialLinks} from '@vp-default/VPSocialLinks.vue'
247
- export {default as VPSponsors} from '@vp-default/VPSponsors.vue'
248
- export {default as VPTeamMembers} from '@vp-default/VPTeamMembers.vue'
249
- export {default as VPTeamPage} from '@vp-default/VPTeamPage.vue'
250
- export {default as VPTeamPageSection} from '@vp-default/VPTeamPageSection.vue'
251
- export {default as VPTeamPageTitle} from '@vp-default/VPTeamPageTitle.vue'
252
-
253
- // Export custom layouts and components
254
- export {VoidZeroTheme}
255
- export default VoidZeroTheme
256
-
257
- // Export types
258
- export type { Sponsors } from './components/vitepress-default/VPSponsors.vue'
259
- export type {
260
- BannerConfig,
261
- FooterConfig,
262
- FooterColumn,
263
- FooterLink,
264
- FooterSocialLink,
265
- GridSize,
266
- Sponsor,
267
- SponsorTier,
268
- VoidZeroThemeConfig,
269
- } from './types/theme-config'
@@ -1,28 +0,0 @@
1
- <script setup lang="ts">
2
- import { useData, Content } from 'vitepress'
3
-
4
- const { frontmatter } = useData()
5
- </script>
6
-
7
- <template>
8
- <div class="base-layout">
9
- <!-- Header slot - can be overridden by downstream -->
10
- <slot name="header">
11
- <Header v-if="frontmatter.header !== false" />
12
- </slot>
13
-
14
- <!-- Main content area -->
15
- <main class="base-layout-content">
16
- <Content />
17
- </main>
18
-
19
- <!-- Footer slot - can be overridden by downstream -->
20
- <slot name="footer">
21
- <Footer v-if="frontmatter.footer !== false" />
22
- </slot>
23
- </div>
24
- </template>
25
-
26
- <style scoped>
27
-
28
- </style>