@voidzero-dev/vitepress-theme 0.0.18 → 0.1.33

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 (197) hide show
  1. package/README.md +60 -0
  2. package/dist/assets/clients/bolt.svg +5 -0
  3. package/dist/assets/clients/cloudflare.svg +26 -0
  4. package/dist/assets/clients/framer.svg +16 -0
  5. package/dist/assets/clients/hugging-face.svg +9 -0
  6. package/dist/assets/clients/linear.svg +7 -0
  7. package/dist/assets/clients/mercedes.svg +2865 -0
  8. package/dist/assets/clients/openai.svg +1 -0
  9. package/dist/assets/clients/plaid.svg +7 -0
  10. package/dist/assets/clients/ramp.svg +1 -0
  11. package/dist/assets/clients/shopify.svg +30 -0
  12. package/dist/assets/icons/oxc-dark.svg +124 -0
  13. package/dist/assets/icons/oxc-light.svg +124 -0
  14. package/dist/assets/icons/oxc-mono.svg +5 -0
  15. package/dist/assets/icons/rolldown-dark.svg +92 -0
  16. package/dist/assets/icons/rolldown-light.svg +92 -0
  17. package/dist/assets/icons/rolldown-mono.svg +5 -0
  18. package/dist/assets/icons/vite-dark.svg +132 -0
  19. package/dist/assets/icons/vite-light.svg +132 -0
  20. package/dist/assets/icons/vite-mono.svg +5 -0
  21. package/dist/assets/icons/viteplus-dark.svg +133 -0
  22. package/dist/assets/icons/viteplus-light.svg +133 -0
  23. package/dist/assets/icons/viteplus-mono.svg +6 -0
  24. package/dist/assets/icons/vitest-dark.svg +52 -0
  25. package/dist/assets/icons/vitest-light.svg +52 -0
  26. package/dist/assets/icons/vitest-mono.svg +5 -0
  27. package/dist/assets/logos/oxc-dark.svg +125 -0
  28. package/dist/assets/logos/oxc-light.svg +125 -0
  29. package/dist/assets/logos/rolldown-dark.svg +93 -0
  30. package/dist/assets/logos/rolldown-light.svg +93 -0
  31. package/dist/assets/logos/vite-dark.svg +133 -0
  32. package/dist/assets/logos/vite-light.svg +133 -0
  33. package/dist/assets/logos/viteplus-dark.svg +133 -0
  34. package/dist/assets/logos/viteplus-light.svg +133 -0
  35. package/dist/assets/logos/vitest-dark.svg +53 -0
  36. package/dist/assets/logos/vitest-light.svg +53 -0
  37. package/dist/assets/logos/voidzero-dark.svg +3 -0
  38. package/dist/assets/logos/voidzero-light.svg +3 -0
  39. package/dist/assets/social/github.svg +3 -0
  40. package/dist/assets/terminal-background.jpg +0 -0
  41. package/dist/assets/viteplus/logo.svg +1 -0
  42. package/dist/assets/voidzero/animations/1280_x_552_homepage.riv +0 -0
  43. package/dist/assets/voidzero/animations/480_x_480_build_tool_for_web.riv +0 -0
  44. package/dist/assets/voidzero/animations/480_x_480_fastest_javascript_bundler.riv +0 -0
  45. package/dist/assets/voidzero/animations/480_x_480_language_toolchain.riv +0 -0
  46. package/dist/assets/voidzero/animations/480_x_480_next_generation_runner.riv +0 -0
  47. package/dist/assets/voidzero/backgrounds/casestudies.jpg +0 -0
  48. package/dist/assets/voidzero/backgrounds/oxc.jpg +0 -0
  49. package/dist/assets/voidzero/backgrounds/rolldown.jpg +0 -0
  50. package/dist/assets/voidzero/backgrounds/vite.jpg +0 -0
  51. package/dist/assets/voidzero/backgrounds/vitest.jpg +0 -0
  52. package/dist/assets/voidzero/logo.svg +3 -0
  53. package/dist/assets/voidzero/terminals/rolldown.svg +7 -0
  54. package/dist/assets/voidzero/terminals/vite.svg +9 -0
  55. package/dist/assets/voidzero/terminals/vitest.svg +49 -0
  56. package/dist/index.css +1 -346
  57. package/dist/index.d.ts +2 -2
  58. package/dist/index.js +5 -3
  59. package/dist/index10.js +7 -0
  60. package/dist/index11.js +13 -0
  61. package/dist/index12.js +13 -0
  62. package/dist/index13.js +13 -0
  63. package/dist/index14.js +7 -0
  64. package/dist/index15.js +12 -0
  65. package/dist/index16.js +7 -0
  66. package/dist/index17.js +12 -0
  67. package/dist/index18.js +7 -0
  68. package/dist/index19.js +22 -0
  69. package/dist/index2.js +29 -0
  70. package/dist/index21.js +4 -0
  71. package/dist/index22.js +4 -0
  72. package/dist/index23.js +4 -0
  73. package/dist/index24.js +4 -0
  74. package/dist/index25.js +4 -0
  75. package/dist/index26.js +4 -0
  76. package/dist/index27.js +23 -0
  77. package/dist/index29.js +9 -0
  78. package/dist/index3.js +75 -0
  79. package/dist/index30.js +107 -0
  80. package/dist/index32.js +4 -0
  81. package/dist/index33.js +4 -0
  82. package/dist/index34.js +297 -0
  83. package/dist/index36.js +149 -0
  84. package/dist/index38.js +116 -0
  85. package/dist/index4.js +157 -0
  86. package/dist/index40.js +4 -0
  87. package/dist/index41.js +28 -0
  88. package/dist/index42.js +32 -0
  89. package/dist/index43.js +28 -0
  90. package/dist/index44.js +28 -0
  91. package/dist/index45.js +28 -0
  92. package/dist/index46.js +28 -0
  93. package/dist/index47.js +4 -0
  94. package/dist/index48.js +4 -0
  95. package/dist/index49.js +4 -0
  96. package/dist/index5.js +15 -0
  97. package/dist/index50.js +4 -0
  98. package/dist/index51.js +4 -0
  99. package/dist/index52.js +4 -0
  100. package/dist/index53.js +4 -0
  101. package/dist/index54.js +4 -0
  102. package/dist/index55.js +4 -0
  103. package/dist/index56.js +4 -0
  104. package/dist/index57.js +4 -0
  105. package/dist/index58.js +20 -0
  106. package/dist/index59.js +20 -0
  107. package/dist/index6.js +75 -0
  108. package/dist/index60.js +20 -0
  109. package/dist/index61.js +4 -0
  110. package/dist/index62.js +51 -0
  111. package/dist/index63.js +45 -0
  112. package/dist/index64.js +2589 -0
  113. package/dist/index65.js +53 -0
  114. package/dist/index66.js +7209 -0
  115. package/dist/index67.js +16 -0
  116. package/dist/index68.js +36 -0
  117. package/dist/index69.js +4 -0
  118. package/dist/index7.js +36 -0
  119. package/dist/index70.js +4 -0
  120. package/dist/index71.js +4 -0
  121. package/dist/index72.js +4 -0
  122. package/dist/index73.js +4 -0
  123. package/dist/index74.js +4 -0
  124. package/dist/index75.js +4 -0
  125. package/dist/index76.js +4 -0
  126. package/dist/index77.js +4 -0
  127. package/dist/index78.js +4 -0
  128. package/dist/index79.js +4 -0
  129. package/dist/index8.js +35 -0
  130. package/dist/index80.js +24 -0
  131. package/dist/index81.js +126 -0
  132. package/dist/index82.js +4 -0
  133. package/dist/index83.js +441 -0
  134. package/dist/index84.js +1737 -0
  135. package/dist/index85.js +4 -0
  136. package/dist/index86.js +4 -0
  137. package/dist/index87.js +4 -0
  138. package/dist/index88.js +4 -0
  139. package/dist/index89.js +4 -0
  140. package/dist/index9.js +7 -0
  141. package/dist/index90.js +4 -0
  142. package/dist/index91.js +35 -0
  143. package/dist/index92.js +1204 -0
  144. package/dist/index93.js +448 -0
  145. package/dist/index94.js +7 -0
  146. package/dist/index95.js +4 -0
  147. package/dist/index96.js +317 -0
  148. package/dist/index97.js +4 -0
  149. package/dist/index98.js +6 -0
  150. package/dist/vitepress/components/shared/Eyebrow.vue.d.ts +5 -0
  151. package/dist/vitepress/components/shared/Footer.vue.d.ts +2 -0
  152. package/dist/vitepress/components/shared/RiveAnimation.vue.d.ts +20 -0
  153. package/dist/vitepress/components/shared/Terminal.vue.d.ts +4 -0
  154. package/dist/vitepress/components/shared/icons/VZIconBluesky.vue.d.ts +2 -0
  155. package/dist/vitepress/components/shared/icons/VZIconGitHub.vue.d.ts +2 -0
  156. package/dist/vitepress/components/shared/icons/VZIconTwitter.vue.d.ts +2 -0
  157. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation1.vue.d.ts +5 -0
  158. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation2.vue.d.ts +5 -0
  159. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation3.vue.d.ts +5 -0
  160. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation4.vue.d.ts +5 -0
  161. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation5.vue.d.ts +5 -0
  162. package/dist/vitepress/components/shared/terminal-animations/TerminalAnimation6.vue.d.ts +5 -0
  163. package/dist/vitepress/components/viteplus/Header.vue.d.ts +17 -0
  164. package/dist/vitepress/components/voidzero/CaseStudySlider.vue.d.ts +5 -0
  165. package/dist/vitepress/components/voidzero/CustomersSectionHeading.vue.d.ts +2 -0
  166. package/dist/vitepress/components/voidzero/GitHubStats.vue.d.ts +7 -0
  167. package/dist/vitepress/components/voidzero/Header.vue.d.ts +2 -0
  168. package/dist/vitepress/components/voidzero/Hero.vue.d.ts +2 -0
  169. package/dist/vitepress/components/voidzero/OpenSourceSectionHeading.vue.d.ts +2 -0
  170. package/dist/vitepress/components/voidzero/OpenSourceSectionProjects.vue.d.ts +2 -0
  171. package/dist/vitepress/components/voidzero/Statistics.vue.d.ts +7 -0
  172. package/dist/vitepress/components/voidzero/StatisticsSectionHeading.vue.d.ts +2 -0
  173. package/dist/vitepress/components/voidzero/TeamCTA.vue.d.ts +2 -0
  174. package/dist/vitepress/components/voidzero/TrustedBy.vue.d.ts +2 -0
  175. package/dist/vitepress/components/voidzero/VitePlusSectionFeatures.vue.d.ts +2 -0
  176. package/dist/vitepress/components/voidzero/VitePlusSectionHeading.vue.d.ts +2 -0
  177. package/dist/vitepress/index.d.ts +4 -32
  178. package/package.json +13 -3
  179. package/dist/_virtual/_/plugin-vue/export-helper.js +0 -11
  180. package/dist/assets/cta-background-CgYtVhnO.jpg +0 -1
  181. package/dist/vitepress/assets/cta-background.js +0 -5
  182. package/dist/vitepress/components/Eyebrow.js +0 -18
  183. package/dist/vitepress/components/Footer.js +0 -72
  184. package/dist/vitepress/components/Header.js +0 -34
  185. package/dist/vitepress/components/RiveAnimation.js +0 -117
  186. package/dist/vitepress/components/Terminal.js +0 -161
  187. package/dist/vitepress/components/icons/VZIconBluesky.js +0 -21
  188. package/dist/vitepress/components/icons/VZIconGitHub.js +0 -21
  189. package/dist/vitepress/components/icons/VZIconLogo.js +0 -24
  190. package/dist/vitepress/components/icons/VZIconTwitter.js +0 -21
  191. package/dist/vitepress/components/terminal-animations/TerminalAnimation1.js +0 -37
  192. package/dist/vitepress/components/terminal-animations/TerminalAnimation2.js +0 -44
  193. package/dist/vitepress/components/terminal-animations/TerminalAnimation3.js +0 -37
  194. package/dist/vitepress/components/terminal-animations/TerminalAnimation4.js +0 -37
  195. package/dist/vitepress/components/terminal-animations/TerminalAnimation5.js +0 -37
  196. package/dist/vitepress/components/terminal-animations/TerminalAnimation6.js +0 -37
  197. package/dist/vitepress/index.js +0 -21
@@ -0,0 +1,297 @@
1
+ import { defineComponent as _, ref as h, onMounted as y, onUnmounted as k, createElementBlock as c, openBlock as d, createElementVNode as t, Fragment as j, renderList as V, normalizeClass as i, createTextVNode as C, toDisplayString as z, createVNode as m, createCommentVNode as x } from "vue";
2
+ import u from "./index68.js";
3
+ import I from "./index6.js";
4
+ import A from "./index69.js";
5
+ import E from "./index70.js";
6
+ import R from "./index71.js";
7
+ import T from "./index72.js";
8
+ import S from "./index73.js";
9
+ import N from "./index74.js";
10
+ import O from "./index75.js";
11
+ import J from "./index76.js";
12
+ import P from "./index77.js";
13
+ import B from "./index78.js";
14
+ import X from "./index79.js";
15
+ const $ = { class: "wrapper wrapper--ticks border-t flex" }, D = { class: "w-72 p-10 sticky top-0 self-start hidden md:flex flex-col" }, H = { class: "flex flex-col gap-4" }, M = ["onClick"], F = ["src", "alt"], L = { class: "w-full md:border-l border-nickel" }, U = { class: "flex flex-col p-10 justify-between gap-20" }, q = { class: "flex flex-col gap-5 max-w-[20rem]" }, G = ["href"], K = { class: "flex flex-col min-h-[22rem] sm:min-h-[30rem]" }, Q = { class: "relative pl-10 h-full flex flex-col justify-center overflow-clip" }, W = ["src"], Y = { class: "flex flex-col p-10 justify-between gap-20" }, Z = { class: "flex flex-col gap-5 max-w-[20rem]" }, tt = ["href"], et = { class: "flex flex-col min-h-[22rem] sm:min-h-[30rem]" }, ot = { class: "relative pl-10 h-full flex flex-col justify-end overflow-clip pt-10 sm:pt-0" }, st = ["src"], lt = { class: "flex flex-col p-10 justify-between gap-20" }, it = { class: "flex flex-col gap-5 max-w-[20rem]" }, rt = ["href"], nt = { class: "flex flex-col min-h-[22rem] sm:min-h-[30rem]" }, at = { class: "relative pl-10 h-full flex flex-col justify-center overflow-clip py-10 sm:py-0" }, ct = ["src"], dt = { class: "flex flex-col p-10 justify-between gap-20" }, mt = { class: "flex flex-col gap-5 max-w-[20rem]" }, ft = ["href"], ut = { class: "flex flex-col min-h-[22rem] sm:min-h-[30rem]" }, pt = { class: "relative pl-10 h-full flex flex-col justify-center overflow-clip" }, Et = /* @__PURE__ */ _({
16
+ __name: "OpenSourceSectionProjects",
17
+ setup(xt) {
18
+ const l = h(0), r = h([]);
19
+ let p = null;
20
+ const s = [
21
+ {
22
+ id: "vite",
23
+ name: "Vite",
24
+ url: "https://vite.dev",
25
+ icon: A,
26
+ terminal: S,
27
+ animation: J
28
+ },
29
+ {
30
+ id: "vitest",
31
+ name: "Vitest",
32
+ url: "https://vitest.dev",
33
+ icon: E,
34
+ terminal: N,
35
+ animation: P
36
+ },
37
+ {
38
+ id: "rolldown",
39
+ name: "Rolldown",
40
+ url: "https://rolldown.rs",
41
+ icon: R,
42
+ terminal: O,
43
+ animation: B
44
+ },
45
+ {
46
+ id: "oxc",
47
+ name: "OXC",
48
+ url: "https://oxc.rs",
49
+ icon: T,
50
+ terminal: null,
51
+ // OXC uses Rive animation instead
52
+ animation: X
53
+ }
54
+ ], w = (n) => {
55
+ const e = r.value[n];
56
+ e && e.scrollIntoView({ behavior: "smooth", block: "center" });
57
+ };
58
+ return y(() => {
59
+ p = new IntersectionObserver(
60
+ () => {
61
+ const n = window.innerHeight / 2;
62
+ let e = 0, o = 1 / 0;
63
+ r.value.forEach((a, v) => {
64
+ if (!a) return;
65
+ const f = a.getBoundingClientRect();
66
+ if (f.bottom < 0 || f.top > window.innerHeight) return;
67
+ const g = f.top + f.height / 2, b = Math.abs(g - n);
68
+ b < o && (o = b, e = v);
69
+ }), l.value = e;
70
+ },
71
+ { threshold: [0, 0.1, 0.5, 1] }
72
+ ), r.value.forEach((n) => {
73
+ n && p?.observe(n);
74
+ });
75
+ }), k(() => {
76
+ p?.disconnect();
77
+ }), (n, e) => (d(), c("section", $, [
78
+ t("div", D, [
79
+ t("ul", H, [
80
+ (d(), c(j, null, V(s, (o, a) => t("li", {
81
+ key: o.id,
82
+ class: i(["transition-all duration-500 ease-out", l.value === a ? "" : "opacity-40 grayscale"])
83
+ }, [
84
+ t("button", {
85
+ type: "button",
86
+ class: "flex gap-4 text-base cursor-pointer bg-transparent border-none p-0",
87
+ onClick: (v) => w(a)
88
+ }, [
89
+ t("img", {
90
+ src: o.icon,
91
+ alt: o.name,
92
+ class: "size-6"
93
+ }, null, 8, F),
94
+ C(" " + z(o.name), 1)
95
+ ], 8, M)
96
+ ], 2)), 64))
97
+ ])
98
+ ]),
99
+ t("div", L, [
100
+ t("div", {
101
+ class: "grid md:grid-cols-2 w-full",
102
+ ref: (o) => r.value[0] = o,
103
+ "data-project": "0"
104
+ }, [
105
+ t("div", U, [
106
+ t("div", q, [
107
+ e[0] || (e[0] = t("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "Vite", -1)),
108
+ e[1] || (e[1] = t("h4", { class: "text-white text-pretty" }, "The build tool for the web", -1)),
109
+ e[2] || (e[2] = t("p", { class: "text-white/70 text-base max-w-[25rem] text-pretty" }, "Vite is a blazing fast frontend build tool powering the next generation of web applications.", -1)),
110
+ t("a", {
111
+ href: s[0].url,
112
+ target: "_blank",
113
+ rel: "noopener noreferrer",
114
+ class: "button button--sm inline-block w-fit mt-5"
115
+ }, "Explore Vite", 8, G)
116
+ ]),
117
+ m(u, {
118
+ href: "https://github.com/vitejs/vite",
119
+ stars: "75.0k",
120
+ contributors: "1,161"
121
+ })
122
+ ]),
123
+ t("div", K, [
124
+ t("div", Q, [
125
+ t("div", {
126
+ class: i([
127
+ "absolute inset-0 bg-vite transition-opacity duration-700 ease-out",
128
+ l.value === 0 ? "opacity-100" : "opacity-0"
129
+ ])
130
+ }, null, 2),
131
+ t("div", {
132
+ class: i([
133
+ "block p-2 relative bg-slate rounded-tl rounded-bl outline-1 outline-offset-[2px] outline-white/20 transition-transform duration-700 ease-out z-10",
134
+ l.value === 0 ? "translate-x-0" : "translate-x-10"
135
+ ])
136
+ }, [
137
+ s[0].terminal ? (d(), c("img", {
138
+ key: 0,
139
+ loading: "lazy",
140
+ src: s[0].terminal,
141
+ alt: "terminal"
142
+ }, null, 8, W)) : x("", !0)
143
+ ], 2)
144
+ ])
145
+ ])
146
+ ], 512),
147
+ t("div", {
148
+ class: "grid md:grid-cols-2 w-full border-t border-nickel",
149
+ ref: (o) => r.value[1] = o,
150
+ "data-project": "1"
151
+ }, [
152
+ t("div", Y, [
153
+ t("div", Z, [
154
+ e[3] || (e[3] = t("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "Vitest", -1)),
155
+ e[4] || (e[4] = t("h4", { class: "text-white text-pretty" }, "Next-generation test runner", -1)),
156
+ e[5] || (e[5] = t("p", { class: "text-white/70 text-base max-w-[25rem] text-pretty" }, "A Vite-native testing framework. It's fast!", -1)),
157
+ t("a", {
158
+ href: s[1].url,
159
+ target: "_blank",
160
+ rel: "noopener noreferrer",
161
+ class: "button button--sm inline-block w-fit mt-5"
162
+ }, "Explore Vitest", 8, tt)
163
+ ]),
164
+ m(u, {
165
+ href: "https://github.com/vitest-dev/vitest",
166
+ stars: "14.9k",
167
+ contributors: "631"
168
+ })
169
+ ]),
170
+ t("div", et, [
171
+ t("div", ot, [
172
+ t("div", {
173
+ class: i([
174
+ "absolute inset-0 bg-vitest transition-opacity duration-700 ease-out",
175
+ l.value === 1 ? "opacity-100" : "opacity-0"
176
+ ])
177
+ }, null, 2),
178
+ t("div", {
179
+ class: i([
180
+ "block p-2 relative bg-slate rounded-tl outline-1 outline-offset-[2px] outline-white/20 transition-transform duration-700 ease-out z-10",
181
+ l.value === 1 ? "translate-x-0" : "translate-x-10"
182
+ ])
183
+ }, [
184
+ s[1].terminal ? (d(), c("img", {
185
+ key: 0,
186
+ loading: "lazy",
187
+ src: s[1].terminal,
188
+ alt: "terminal"
189
+ }, null, 8, st)) : x("", !0)
190
+ ], 2)
191
+ ])
192
+ ])
193
+ ], 512),
194
+ t("div", {
195
+ class: "grid md:grid-cols-2 w-full border-t border-nickel",
196
+ ref: (o) => r.value[2] = o,
197
+ "data-project": "2"
198
+ }, [
199
+ t("div", lt, [
200
+ t("div", it, [
201
+ e[6] || (e[6] = t("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "Rolldown", -1)),
202
+ e[7] || (e[7] = t("h4", { class: "text-white text-pretty" }, "The fastest JavaScript bundler", -1)),
203
+ e[8] || (e[8] = t("p", { class: "text-white/70 text-base max-w-[25rem] text-pretty" }, "A Rust-based bundler for Javascript with Rollup-compatible API", -1)),
204
+ t("a", {
205
+ href: s[2].url,
206
+ target: "_blank",
207
+ rel: "noopener noreferrer",
208
+ class: "button button--sm inline-block w-fit mt-5"
209
+ }, "Explore Rolldown", 8, rt)
210
+ ]),
211
+ m(u, {
212
+ href: "https://github.com/rolldown/rolldown",
213
+ stars: "12.2k",
214
+ contributors: "148"
215
+ })
216
+ ]),
217
+ t("div", nt, [
218
+ t("div", at, [
219
+ t("div", {
220
+ class: i([
221
+ "absolute inset-0 bg-rolldown transition-opacity duration-700 ease-out",
222
+ l.value === 2 ? "opacity-100" : "opacity-0"
223
+ ])
224
+ }, null, 2),
225
+ t("div", {
226
+ class: i([
227
+ "block p-2 relative bg-slate rounded-tl rounded-bl outline-1 outline-offset-[2px] outline-white/20 transition-transform duration-700 ease-out z-10",
228
+ l.value === 2 ? "translate-x-0" : "translate-x-10"
229
+ ])
230
+ }, [
231
+ s[2].terminal ? (d(), c("img", {
232
+ key: 0,
233
+ loading: "lazy",
234
+ src: s[2].terminal,
235
+ alt: "terminal"
236
+ }, null, 8, ct)) : x("", !0)
237
+ ], 2)
238
+ ])
239
+ ])
240
+ ], 512),
241
+ t("div", {
242
+ class: "grid md:grid-cols-2 w-full border-t border-nickel",
243
+ ref: (o) => r.value[3] = o,
244
+ "data-project": "3"
245
+ }, [
246
+ t("div", dt, [
247
+ t("div", mt, [
248
+ e[9] || (e[9] = t("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "OXC", -1)),
249
+ e[10] || (e[10] = t("h4", { class: "text-white text-pretty" }, "The fastest JavaScript language toolchain", -1)),
250
+ e[11] || (e[11] = t("p", { class: "text-white/70 text-base max-w-[25rem] text-pretty" }, "A collection of JavaScript tools written in Rust", -1)),
251
+ t("a", {
252
+ href: s[3].url,
253
+ target: "_blank",
254
+ rel: "noopener noreferrer",
255
+ class: "button button--sm inline-block w-fit mt-5"
256
+ }, "Explore OXC", 8, ft)
257
+ ]),
258
+ m(u, {
259
+ href: "https://github.com/oxc-project/oxc",
260
+ stars: "17.2k",
261
+ contributors: "268"
262
+ })
263
+ ]),
264
+ t("div", ut, [
265
+ t("div", pt, [
266
+ t("div", {
267
+ class: i([
268
+ "absolute inset-0 bg-oxc transition-opacity duration-700 ease-out",
269
+ l.value === 3 ? "opacity-100" : "opacity-0"
270
+ ])
271
+ }, null, 2),
272
+ t("div", {
273
+ class: i([
274
+ "relative transition-transform duration-700 ease-out z-10",
275
+ l.value === 3 ? "translate-x-0" : "translate-x-10"
276
+ ])
277
+ }, [
278
+ m(I, {
279
+ "desktop-src": s[3].animation,
280
+ "mobile-src": s[3].animation,
281
+ "desktop-width": 480,
282
+ "desktop-height": 480,
283
+ "mobile-width": 480,
284
+ "mobile-height": 480,
285
+ "canvas-class": "w-full"
286
+ }, null, 8, ["desktop-src", "mobile-src"])
287
+ ], 2)
288
+ ])
289
+ ])
290
+ ], 512)
291
+ ])
292
+ ]));
293
+ }
294
+ });
295
+ export {
296
+ Et as default
297
+ };
@@ -0,0 +1,149 @@
1
+ import { defineComponent as I, ref as v, onMounted as M, onUnmounted as A, createElementBlock as o, openBlock as s, createElementVNode as e, Fragment as m, renderList as p, normalizeClass as _, toDisplayString as g, createCommentVNode as V } from "vue";
2
+ import f from "./index80.js";
3
+ import B from "./index81.js";
4
+ import c from "./index82.js";
5
+ import y from "./index69.js";
6
+ import w from "./index70.js";
7
+ import x from "./index71.js";
8
+ import k from "./index72.js";
9
+ const F = { class: "wrapper" }, L = { class: "bg-wine case-study-background" }, D = { class: "flex py-20" }, H = ["src", "alt"], P = { class: "text-white text-balance max-w-[20rem] pt-5" }, j = { class: "absolute bottom-0 left-0 right-0 flex gap-4 px-10 py-4 border-t border-slate items-center" }, z = ["href"], O = { class: "project-icon" }, $ = ["src", "alt"], E = {
10
+ key: 0,
11
+ class: "text-grey text-xs font-mono uppercase tracking-wide"
12
+ }, N = { class: "embla-thumbs bg-primary" }, X = { class: "embla-thumbs__wrapper" }, U = { class: "embla-thumbs__container" }, q = ["onClick"], G = ["src", "alt"], oe = /* @__PURE__ */ I({
13
+ __name: "CaseStudySlider",
14
+ setup(J) {
15
+ const b = v([
16
+ {
17
+ id: 1,
18
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
19
+ thumbnail: c,
20
+ projects: [
21
+ { name: "Vite", logo: y, url: "https://vite.dev/" },
22
+ { name: "Rolldown", logo: x, url: "https://rolldown.rs/" }
23
+ ]
24
+ },
25
+ {
26
+ id: 2,
27
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
28
+ thumbnail: c,
29
+ projects: [
30
+ { name: "Vitest", logo: w, url: "https://vitest.dev/" },
31
+ { name: "Rolldown", logo: x, url: "https://rolldown.rs/" }
32
+ ]
33
+ },
34
+ {
35
+ id: 3,
36
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
37
+ thumbnail: c,
38
+ projects: [
39
+ { name: "Vite", logo: y, url: "https://vite.dev/" },
40
+ { name: "OXC", logo: k, url: "https://oxc.rs/" }
41
+ ]
42
+ },
43
+ {
44
+ id: 4,
45
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
46
+ thumbnail: c,
47
+ projects: [
48
+ { name: "Vitest", logo: w, url: "https://vitest.dev/" },
49
+ { name: "OXC", logo: k, url: "https://oxc.rs/" }
50
+ ]
51
+ }
52
+ ]), i = v(0), [C, t] = f(
53
+ { loop: !0 },
54
+ [B()]
55
+ ), [R, d] = f({
56
+ containScroll: "keepSnaps",
57
+ dragFree: !0
58
+ }), S = (h) => {
59
+ t.value && t.value.scrollTo(h);
60
+ }, r = () => {
61
+ !t.value || !d.value || (i.value = t.value.selectedScrollSnap(), d.value.scrollTo(t.value.selectedScrollSnap()));
62
+ };
63
+ return M(() => {
64
+ !t.value || !d.value || (r(), t.value.on("select", r), t.value.on("reInit", r));
65
+ }), A(() => {
66
+ t.value && (t.value.off("select", r), t.value.off("reInit", r));
67
+ }), (h, u) => (s(), o("section", F, [
68
+ e("div", L, [
69
+ e("div", {
70
+ class: "overflow-hidden",
71
+ ref_key: "emblaMainRef",
72
+ ref: C
73
+ }, [
74
+ e("div", D, [
75
+ (s(!0), o(m, null, p(b.value, (l, n) => (s(), o("div", {
76
+ key: l.id,
77
+ class: _(["embla__slide p-10 w-[55rem] rounded-lg relative", n === i.value ? "bg-primary" : "bg-primary/75"])
78
+ }, [
79
+ e("div", {
80
+ class: _(["embla__slide__content", { "embla__slide__content--active": n === i.value }])
81
+ }, [
82
+ e("img", {
83
+ src: l.thumbnail,
84
+ alt: l.title,
85
+ class: "absolute top-10 right-10 h-5"
86
+ }, null, 8, H),
87
+ u[1] || (u[1] = e("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "Case Study", -1)),
88
+ e("h5", P, g(l.title), 1),
89
+ e("div", j, [
90
+ u[0] || (u[0] = e("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "OSS", -1)),
91
+ (s(!0), o(m, null, p(l.projects, (a, T) => (s(), o(m, {
92
+ key: a.name
93
+ }, [
94
+ e("a", {
95
+ href: a.url,
96
+ target: "_blank"
97
+ }, [
98
+ e("figure", O, [
99
+ e("img", {
100
+ loading: "lazy",
101
+ class: "size-5",
102
+ src: a.logo,
103
+ alt: a.name
104
+ }, null, 8, $),
105
+ e("figcaption", null, g(a.name), 1)
106
+ ])
107
+ ], 8, z),
108
+ T < l.projects.length - 1 ? (s(), o("span", E, "//")) : V("", !0)
109
+ ], 64))), 128))
110
+ ])
111
+ ], 2)
112
+ ], 2))), 128))
113
+ ])
114
+ ], 512)
115
+ ]),
116
+ e("div", N, [
117
+ e("div", X, [
118
+ e("div", {
119
+ class: "overflow-hidden",
120
+ ref_key: "emblaThumbRef",
121
+ ref: R
122
+ }, [
123
+ e("div", U, [
124
+ (s(!0), o(m, null, p(b.value, (l, n) => (s(), o("div", {
125
+ key: `thumb-${l.id}`,
126
+ class: _(["embla-thumbs__slide", { "embla-thumbs__slide--selected": n === i.value }])
127
+ }, [
128
+ e("button", {
129
+ type: "button",
130
+ class: "embla-thumbs__slide__button",
131
+ onClick: (a) => S(n)
132
+ }, [
133
+ e("img", {
134
+ src: l.thumbnail,
135
+ alt: `Slide ${n + 1}`,
136
+ class: "embla-thumbs__slide__img"
137
+ }, null, 8, G)
138
+ ], 8, q)
139
+ ], 2))), 128))
140
+ ])
141
+ ], 512)
142
+ ])
143
+ ])
144
+ ]));
145
+ }
146
+ });
147
+ export {
148
+ oe as default
149
+ };
@@ -0,0 +1,116 @@
1
+ import { defineComponent as x, ref as l, computed as g, onMounted as y, onUnmounted as h, createElementBlock as w, openBlock as b, Fragment as k, createElementVNode as t, createStaticVNode as c, createTextVNode as C, createVNode as S, unref as f } from "vue";
2
+ import _ from "./index61.js";
3
+ import "./index62.js";
4
+ import "./index63.js";
5
+ import A from "./index64.js";
6
+ import B from "./index65.js";
7
+ import { Chart as F } from "./index66.js";
8
+ import { continuous as N } from "./index67.js";
9
+ const P = { class: "wrapper wrapper--ticks border-t grid grid-cols-2 divide-x divide-ceramic" }, T = { class: "p-10 flex flex-col justify-between" }, z = /* @__PURE__ */ x({
10
+ __name: "Statistics",
11
+ props: {
12
+ statsUrl: { default: "/stats.json" }
13
+ },
14
+ setup(v) {
15
+ const u = v, a = l([]), i = l({
16
+ datasets: []
17
+ }), s = l(null), m = g(() => a.value.slice().reverse().find((d) => d.y > 0)?.y || 0);
18
+ return y(async () => {
19
+ const n = (await (await fetch(u.statsUrl)).json()).map((p) => ({
20
+ x: A(p.x).valueOf(),
21
+ y: p.y
22
+ }));
23
+ n.pop(), a.value = n;
24
+ const r = document.getElementById("chart-canvas"), o = r.getContext("2d").createLinearGradient(0, 0, -50, 400);
25
+ o.addColorStop(0, "#AA3BFF"), o.addColorStop(1, "#AA3BFF"), i.value = {
26
+ datasets: [
27
+ {
28
+ data: a.value,
29
+ /*fill: {
30
+ target: 'origin',
31
+ above: 'rgba(0, 0, 0, 0.02)'
32
+ },*/
33
+ pointStyle: !1,
34
+ borderWidth: 3,
35
+ borderColor: o,
36
+ stepped: !1
37
+ }
38
+ ]
39
+ }, s.value = new F(r, {
40
+ type: "line",
41
+ options: {
42
+ scales: {
43
+ x: {
44
+ type: "time",
45
+ time: {
46
+ unit: "week"
47
+ },
48
+ display: !1,
49
+ alignToPixels: !0,
50
+ ticks: { padding: 0 },
51
+ border: {
52
+ display: !1
53
+ }
54
+ },
55
+ y: {
56
+ min: 0,
57
+ display: !1,
58
+ ticks: { padding: 0 },
59
+ alignToPixels: !0,
60
+ border: {
61
+ display: !1
62
+ }
63
+ }
64
+ },
65
+ plugins: {
66
+ legend: {
67
+ display: !1
68
+ },
69
+ tooltip: {
70
+ enabled: !1
71
+ }
72
+ },
73
+ layout: {
74
+ autoPadding: !1,
75
+ padding: {
76
+ left: 0,
77
+ right: 0,
78
+ top: 0,
79
+ bottom: 100
80
+ }
81
+ },
82
+ aspectRatio: 5 / 3.5
83
+ },
84
+ data: {
85
+ datasets: i.value.datasets
86
+ }
87
+ });
88
+ }), h(() => {
89
+ s.value && s.value.destroy();
90
+ }), (d, e) => (b(), w(k, null, [
91
+ t("section", P, [
92
+ t("div", T, [
93
+ e[0] || (e[0] = t("h6", { class: "flex gap-2 items-center" }, [
94
+ t("img", {
95
+ src: _,
96
+ class: "size-8",
97
+ alt: "Vite"
98
+ }),
99
+ C(" Weekly downloads")
100
+ ], -1)),
101
+ t("h1", null, [
102
+ S(f(B), {
103
+ plugins: [f(N)],
104
+ value: m.value
105
+ }, null, 8, ["plugins", "value"])
106
+ ])
107
+ ]),
108
+ e[1] || (e[1] = c('<div class="relative aspect-[5/3.5]" data-v-5e416fd5><canvas id="chart-canvas" width="200" height="200" data-v-5e416fd5></canvas><div class="flex justify-between absolute bottom-10 left-10 right-10" data-v-5e416fd5><p class="font-mono text-sm text-nickel" data-v-5e416fd5>April 2020</p><p class="font-mono text-sm text-nickel" data-v-5e416fd5>Today</p></div></div>', 1))
109
+ ]),
110
+ e[2] || (e[2] = c('<section class="wrapper wrapper--ticks border-t grid grid-cols-3 divide-x divide-ceramic" data-v-5e416fd5><div class="flex flex-col gap-2 p-10" data-v-5e416fd5><h2 data-v-5e416fd5>30m+</h2><p class="lead" data-v-5e416fd5>Weekly NPM downloads</p></div><div class="flex flex-col gap-2 p-10" data-v-5e416fd5><h2 data-v-5e416fd5>118k+</h2><p class="lead" data-v-5e416fd5>Total GitHub Stars</p></div><div class="flex flex-col gap-2 p-10" data-v-5e416fd5><h2 data-v-5e416fd5>6.2m+</h2><p class="lead" data-v-5e416fd5>GitHub Dependents</p></div></section>', 1))
111
+ ], 64));
112
+ }
113
+ });
114
+ export {
115
+ z as default
116
+ };