@voidzero-dev/vitepress-theme 0.1.38 → 0.1.43

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 (172) hide show
  1. package/dist/assets/social/bluesky-light.svg +10 -0
  2. package/dist/assets/social/github-light.svg +3 -0
  3. package/dist/assets/social/twitter-light.svg +3 -0
  4. package/dist/assets/voidzero/animations/343_x_148_homepage_mobile.riv +0 -0
  5. package/dist/assets/voidzero/footer-logo.svg +5 -0
  6. package/dist/assets/voidzero/footer.jpg +0 -0
  7. package/dist/assets/voidzero/investors/accel.svg +9 -0
  8. package/dist/assets/voidzero/investors/amplify.svg +3 -0
  9. package/dist/assets/voidzero/investors/resend.svg +3 -0
  10. package/dist/assets/voidzero/investors/sentry.svg +10 -0
  11. package/dist/assets/voidzero/logo-light.svg +3 -0
  12. package/dist/index.css +1 -1
  13. package/dist/index10.js +4 -4
  14. package/dist/index100.js +26 -7
  15. package/dist/index101.js +197 -5
  16. package/dist/index102.js +1014 -4
  17. package/dist/index103.js +34 -7
  18. package/dist/index104.js +2 -33
  19. package/dist/index105.js +2 -57
  20. package/dist/index106.js +2 -9
  21. package/dist/index107.js +2 -14
  22. package/dist/index108.js +2 -58
  23. package/dist/index109.js +2 -6
  24. package/dist/index11.js +5 -11
  25. package/dist/index110.js +2 -39
  26. package/dist/index111.js +5324 -21
  27. package/dist/index112.js +2 -25
  28. package/dist/index113.js +2 -10
  29. package/dist/index114.js +2 -57
  30. package/dist/index115.js +2 -36
  31. package/dist/index116.js +2 -119
  32. package/dist/index117.js +2 -92
  33. package/dist/index118.js +2 -8
  34. package/dist/index119.js +2 -439
  35. package/dist/index12.js +9 -9
  36. package/dist/index120.js +10 -5
  37. package/dist/index121.js +7 -2
  38. package/dist/index122.js +4 -1734
  39. package/dist/index123.js +4 -315
  40. package/dist/index124.js +7 -2
  41. package/dist/index125.js +29 -442
  42. package/dist/index126.js +59 -0
  43. package/dist/index127.js +11 -0
  44. package/dist/index128.js +16 -0
  45. package/dist/index129.js +60 -0
  46. package/dist/index13.js +9 -9
  47. package/dist/index130.js +8 -0
  48. package/dist/index131.js +41 -0
  49. package/dist/index132.js +23 -0
  50. package/dist/index133.js +27 -0
  51. package/dist/index134.js +12 -0
  52. package/dist/index135.js +59 -0
  53. package/dist/index136.js +38 -0
  54. package/dist/index137.js +121 -0
  55. package/dist/index138.js +94 -0
  56. package/dist/index139.js +10 -0
  57. package/dist/index14.js +11 -5
  58. package/dist/index140.js +6 -0
  59. package/dist/index141.js +5 -0
  60. package/dist/index142.js +7209 -0
  61. package/dist/index143.js +1737 -0
  62. package/dist/index144.js +441 -0
  63. package/dist/index145.js +16 -0
  64. package/dist/index146.js +35 -0
  65. package/dist/index147.js +1204 -0
  66. package/dist/index148.js +64841 -0
  67. package/dist/index149.js +7 -0
  68. package/dist/index15.js +5 -10
  69. package/dist/index150.js +4 -0
  70. package/dist/index151.js +448 -0
  71. package/dist/index152.js +317 -0
  72. package/dist/index153.js +4 -0
  73. package/dist/index16.js +10 -5
  74. package/dist/index17.js +4 -9
  75. package/dist/index18.js +10 -5
  76. package/dist/index19.js +5 -20
  77. package/dist/index2.js +15 -10
  78. package/dist/index20.js +22 -0
  79. package/dist/index21.js +28 -2
  80. package/dist/index22.js +7 -1
  81. package/dist/index23.js +114 -2
  82. package/dist/index26.js +1 -1
  83. package/dist/index27.js +2 -21
  84. package/dist/index28.js +4 -0
  85. package/dist/index29.js +115 -7
  86. package/dist/index3.js +155 -68
  87. package/dist/index31.js +9 -0
  88. package/dist/index32.js +2 -2
  89. package/dist/index33.js +2 -2
  90. package/dist/index34.js +2 -295
  91. package/dist/index35.js +24 -0
  92. package/dist/{index30.js → index37.js} +22 -22
  93. package/dist/index39.js +4 -0
  94. package/dist/index4.js +11 -156
  95. package/dist/index40.js +2 -84
  96. package/dist/index41.js +293 -64
  97. package/dist/index43.js +156 -75
  98. package/dist/index45.js +322 -26
  99. package/dist/index47.js +2 -26
  100. package/dist/index48.js +3 -26
  101. package/dist/index49.js +2 -26
  102. package/dist/index5.js +69 -9
  103. package/dist/index50.js +2 -2
  104. package/dist/index51.js +2 -25
  105. package/dist/index52.js +2 -22
  106. package/dist/index53.js +2 -124
  107. package/dist/index54.js +3 -2
  108. package/dist/index55.js +2 -2
  109. package/dist/index56.js +2 -2
  110. package/dist/index57.js +2 -2
  111. package/dist/index59.js +135 -2
  112. package/dist/index6.js +5 -73
  113. package/dist/index61.js +2 -2
  114. package/dist/index62.js +2 -2
  115. package/dist/index63.js +2 -2
  116. package/dist/index64.js +2 -2
  117. package/dist/index65.js +2 -2
  118. package/dist/index66.js +2 -2
  119. package/dist/index67.js +2 -18
  120. package/dist/index68.js +2 -18
  121. package/dist/index69.js +2 -18
  122. package/dist/index7.js +2 -2
  123. package/dist/index70.js +2 -2
  124. package/dist/index71.js +2 -2
  125. package/dist/index72.js +2 -2
  126. package/dist/index73.js +2 -34
  127. package/dist/index74.js +2 -2
  128. package/dist/index75.js +1 -1
  129. package/dist/index76.js +52 -2
  130. package/dist/index77.js +44 -3
  131. package/dist/index78.js +53 -2
  132. package/dist/index79.js +2587 -2
  133. package/dist/index8.js +31 -30
  134. package/dist/index80.js +2 -2
  135. package/dist/index81.js +1 -1
  136. package/dist/index82.js +2 -49
  137. package/dist/index83.js +3 -44
  138. package/dist/index84.js +22 -2587
  139. package/dist/index85.js +124 -51
  140. package/dist/index86.js +2 -7207
  141. package/dist/index87.js +2 -14
  142. package/dist/index88.js +2 -5324
  143. package/dist/index89.js +2 -2
  144. package/dist/index9.js +354 -4
  145. package/dist/index90.js +2 -2
  146. package/dist/index91.js +84 -2
  147. package/dist/index92.js +66 -2
  148. package/dist/index93.js +53 -2
  149. package/dist/index94.js +76 -2
  150. package/dist/index95.js +25 -1
  151. package/dist/index96.js +30 -33
  152. package/dist/index97.js +26 -1202
  153. package/dist/index98.js +26 -4
  154. package/dist/index99.js +26 -10
  155. package/dist/vitepress/components/shared/LogoGrid.vue.d.ts +11 -0
  156. package/dist/vitepress/components/shared/ShaderBackground.vue.d.ts +2 -0
  157. package/dist/vitepress/components/shared/Spacer.vue.d.ts +2 -0
  158. package/dist/vitepress/components/voidzero/Header.vue.d.ts +22 -1
  159. package/dist/vitepress/components/voidzero/Investors.vue.d.ts +2 -0
  160. package/dist/vitepress/components/voidzero/Megamenu.vue.d.ts +16 -0
  161. package/dist/vitepress/components/voidzero/Resources.vue.d.ts +31 -0
  162. package/dist/vitepress/components/voidzero/Statistics.vue.d.ts +10 -1
  163. package/package.json +4 -2
  164. package/dist/index24.js +0 -4
  165. package/dist/index25.js +0 -4
  166. package/dist/index36.js +0 -149
  167. package/dist/index38.js +0 -116
  168. package/dist/index42.js +0 -55
  169. package/dist/index44.js +0 -28
  170. package/dist/index46.js +0 -28
  171. package/dist/index58.js +0 -4
  172. package/dist/index60.js +0 -4
package/dist/index43.js CHANGED
@@ -1,78 +1,159 @@
1
- import { useForwardExpose as p } from "./index104.js";
2
- import { Primitive as b } from "./index112.js";
3
- import { RovingFocusItem_default as m } from "./index117.js";
4
- import { injectTabsRootContext as c } from "./index40.js";
5
- import { makeTriggerId as g, makeContentId as y } from "./index118.js";
6
- import { defineComponent as T, computed as d, createBlock as w, openBlock as C, unref as t, withCtx as s, createVNode as I, withKeys as h, withModifiers as M, renderSlot as V } from "vue";
7
- var k = /* @__PURE__ */ T({
8
- __name: "TabsTrigger",
9
- props: {
10
- value: {
11
- type: [String, Number],
12
- required: !0
13
- },
14
- disabled: {
15
- type: Boolean,
16
- required: !1,
17
- default: !1
18
- },
19
- asChild: {
20
- type: Boolean,
21
- required: !1
22
- },
23
- as: {
24
- type: null,
25
- required: !1,
26
- default: "button"
27
- }
28
- },
29
- setup(u) {
30
- const r = u, { forwardRef: n } = p(), a = c(), f = d(() => g(a.baseId, r.value)), v = d(() => y(a.baseId, r.value)), i = d(() => r.value === a.modelValue.value);
31
- return (e, o) => (C(), w(t(m), {
32
- "as-child": "",
33
- focusable: !e.disabled,
34
- active: i.value
35
- }, {
36
- default: s(() => [I(t(b), {
37
- id: f.value,
38
- ref: t(n),
39
- role: "tab",
40
- type: e.as === "button" ? "button" : void 0,
41
- as: e.as,
42
- "as-child": e.asChild,
43
- "aria-selected": i.value ? "true" : "false",
44
- "aria-controls": v.value,
45
- "data-state": i.value ? "active" : "inactive",
46
- disabled: e.disabled,
47
- "data-disabled": e.disabled ? "" : void 0,
48
- "data-orientation": t(a).orientation.value,
49
- onMousedown: o[0] || (o[0] = M((l) => {
50
- !e.disabled && l.ctrlKey === !1 ? t(a).changeModelValue(e.value) : l.preventDefault();
51
- }, ["left"])),
52
- onKeydown: o[1] || (o[1] = h((l) => t(a).changeModelValue(e.value), ["enter", "space"])),
53
- onFocus: o[2] || (o[2] = () => {
54
- const l = t(a).activationMode !== "manual";
55
- !i.value && !e.disabled && l && t(a).changeModelValue(e.value);
56
- })
57
- }, {
58
- default: s(() => [V(e.$slots, "default")]),
59
- _: 3
60
- }, 8, [
61
- "id",
62
- "type",
63
- "as",
64
- "as-child",
65
- "aria-selected",
66
- "aria-controls",
67
- "data-state",
68
- "disabled",
69
- "data-disabled",
70
- "data-orientation"
71
- ])]),
72
- _: 3
73
- }, 8, ["focusable", "active"]));
1
+ import { defineComponent as I, ref as g, onMounted as M, onUnmounted as A, createElementBlock as o, openBlock as s, createElementVNode as e, Fragment as u, renderList as p, normalizeClass as _, toDisplayString as v, createCommentVNode as V } from "vue";
2
+ import f from "./index84.js";
3
+ import B from "./index85.js";
4
+ import c from "./index86.js";
5
+ import w from "./index87.js";
6
+ import y from "./index88.js";
7
+ import k from "./index89.js";
8
+ import x from "./index90.js";
9
+ const F = { class: "wrapper" }, L = { class: "bg-wine case-study-background" }, D = { class: "flex py-10 md:py-20" }, H = ["src", "alt"], P = {
10
+ href: "#",
11
+ target: "_blank"
12
+ }, j = { class: "text-white text-balance max-w-[20rem] pt-5" }, z = { class: "absolute bottom-0 left-0 right-0 flex gap-4 px-6 md:px-10 py-4 border-t border-slate items-center" }, O = ["href"], $ = { class: "project-icon" }, E = ["src", "alt"], N = {
13
+ key: 0,
14
+ class: "text-grey text-xs font-mono uppercase tracking-wide"
15
+ }, X = { class: "embla-thumbs bg-primary" }, U = { class: "embla-thumbs__wrapper" }, q = { class: "embla-thumbs__container" }, G = ["onClick"], J = ["src", "alt"], se = /* @__PURE__ */ I({
16
+ __name: "CaseStudySlider",
17
+ setup(K) {
18
+ const b = g([
19
+ {
20
+ id: 1,
21
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
22
+ thumbnail: c,
23
+ projects: [
24
+ { name: "Vite", logo: w, url: "https://vite.dev/" },
25
+ { name: "Rolldown", logo: k, url: "https://rolldown.rs/" }
26
+ ]
27
+ },
28
+ {
29
+ id: 2,
30
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
31
+ thumbnail: c,
32
+ projects: [
33
+ { name: "Vitest", logo: y, url: "https://vitest.dev/" },
34
+ { name: "Rolldown", logo: k, url: "https://rolldown.rs/" }
35
+ ]
36
+ },
37
+ {
38
+ id: 3,
39
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
40
+ thumbnail: c,
41
+ projects: [
42
+ { name: "Vite", logo: w, url: "https://vite.dev/" },
43
+ { name: "OXC", logo: x, url: "https://oxc.rs/" }
44
+ ]
45
+ },
46
+ {
47
+ id: 4,
48
+ title: "How PLAID Cut Build Times by 97% Migrating From Rollup To Rolldown",
49
+ thumbnail: c,
50
+ projects: [
51
+ { name: "Vitest", logo: y, url: "https://vitest.dev/" },
52
+ { name: "OXC", logo: x, url: "https://oxc.rs/" }
53
+ ]
54
+ }
55
+ ]), m = g(0), [C, t] = f(
56
+ { loop: !0 },
57
+ [B()]
58
+ ), [R, d] = f({
59
+ containScroll: "keepSnaps",
60
+ dragFree: !0
61
+ }), S = (h) => {
62
+ t.value && t.value.scrollTo(h);
63
+ }, i = () => {
64
+ !t.value || !d.value || (m.value = t.value.selectedScrollSnap(), d.value.scrollTo(t.value.selectedScrollSnap()));
65
+ };
66
+ return M(() => {
67
+ !t.value || !d.value || (i(), t.value.on("select", i), t.value.on("reInit", i));
68
+ }), A(() => {
69
+ t.value && (t.value.off("select", i), t.value.off("reInit", i));
70
+ }), (h, a) => (s(), o("section", F, [
71
+ e("div", L, [
72
+ e("div", {
73
+ class: "overflow-hidden",
74
+ ref_key: "emblaMainRef",
75
+ ref: C
76
+ }, [
77
+ e("div", D, [
78
+ (s(!0), o(u, null, p(b.value, (l, n) => (s(), o("div", {
79
+ key: l.id,
80
+ class: _(["embla__slide p-6 md:p-10 w-[calc(100vw-4rem)] md:w-[55rem] rounded-lg relative", n === m.value ? "bg-primary" : "bg-primary/75"])
81
+ }, [
82
+ e("div", {
83
+ class: _(["embla__slide__content", { "embla__slide__content--active": n === m.value }])
84
+ }, [
85
+ e("img", {
86
+ src: l.thumbnail,
87
+ alt: l.title,
88
+ class: "absolute top-6 md:top-10 right-6 md:right-10 h-4 md:h-5"
89
+ }, null, 8, H),
90
+ a[1] || (a[1] = e("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "Case Study", -1)),
91
+ e("a", P, [
92
+ e("h5", j, v(l.title), 1)
93
+ ]),
94
+ a[2] || (a[2] = e("a", {
95
+ href: "#",
96
+ target: "_blank",
97
+ class: "text-white font-medium border-b inline-block mt-4"
98
+ }, "Read case study →", -1)),
99
+ e("div", z, [
100
+ a[0] || (a[0] = e("span", { class: "text-grey text-xs font-mono uppercase tracking-wide" }, "OSS", -1)),
101
+ (s(!0), o(u, null, p(l.projects, (r, T) => (s(), o(u, {
102
+ key: r.name
103
+ }, [
104
+ e("a", {
105
+ href: r.url,
106
+ target: "_blank"
107
+ }, [
108
+ e("figure", $, [
109
+ e("img", {
110
+ loading: "lazy",
111
+ class: "size-5",
112
+ src: r.logo,
113
+ alt: r.name
114
+ }, null, 8, E),
115
+ e("figcaption", null, v(r.name), 1)
116
+ ])
117
+ ], 8, O),
118
+ T < l.projects.length - 1 ? (s(), o("span", N, "//")) : V("", !0)
119
+ ], 64))), 128))
120
+ ])
121
+ ], 2)
122
+ ], 2))), 128))
123
+ ])
124
+ ], 512)
125
+ ]),
126
+ e("div", X, [
127
+ e("div", U, [
128
+ e("div", {
129
+ class: "overflow-hidden",
130
+ ref_key: "emblaThumbRef",
131
+ ref: R
132
+ }, [
133
+ e("div", q, [
134
+ (s(!0), o(u, null, p(b.value, (l, n) => (s(), o("div", {
135
+ key: `thumb-${l.id}`,
136
+ class: _(["embla-thumbs__slide", { "embla-thumbs__slide--selected": n === m.value }])
137
+ }, [
138
+ e("button", {
139
+ type: "button",
140
+ class: "embla-thumbs__slide__button",
141
+ onClick: (r) => S(n)
142
+ }, [
143
+ e("img", {
144
+ src: l.thumbnail,
145
+ alt: `Slide ${n + 1}`,
146
+ class: "embla-thumbs__slide__img"
147
+ }, null, 8, J)
148
+ ], 8, G)
149
+ ], 2))), 128))
150
+ ])
151
+ ], 512)
152
+ ])
153
+ ])
154
+ ]));
74
155
  }
75
- }), A = k;
156
+ });
76
157
  export {
77
- A as TabsTrigger_default
158
+ se as default
78
159
  };
package/dist/index45.js CHANGED
@@ -1,32 +1,328 @@
1
- import { defineComponent as c, onMounted as m, onUnmounted as d, createElementBlock as u, openBlock as g, createElementVNode as x } from "vue";
2
- import f from "./index120.js";
3
- const v = { class: "font-mono text-sm text-white leading-[1.5rem]" }, h = /* @__PURE__ */ c({
4
- __name: "TerminalAnimation2",
1
+ import { defineComponent as le, ref as r, shallowRef as P, computed as f, onMounted as ae, markRaw as W, onUnmounted as se, watch as ne, createElementBlock as c, openBlock as s, Fragment as X, createElementVNode as o, toDisplayString as w, createBlock as B, resolveDynamicComponent as E, createCommentVNode as $, withModifiers as q, createTextVNode as I, normalizeClass as J, renderList as ie } from "vue";
2
+ import re from "./index79.js";
3
+ import ue from "./index80.js";
4
+ import de from "./index81.js";
5
+ import ce from "./index82.js";
6
+ import ve from "./index83.js";
7
+ const pe = {
8
+ "aria-live": "polite",
9
+ "aria-atomic": "true",
10
+ class: "sr-only"
11
+ }, fe = { class: "wrapper wrapper--ticks border-t grid grid-cols-1 md:grid-cols-2 divide-y md:divide-y-0 md:divide-x divide-ceramic" }, me = { class: "p-6 md:p-10 flex flex-col justify-between" }, ge = { key: 1 }, ye = { class: "relative w-full aspect-[5/3.5]" }, we = { class: "absolute top-4 md:top-6 left-4 md:left-6 z-10 project-dropdown" }, ke = ["aria-expanded", "aria-label"], xe = ["src", "alt"], be = {
12
+ key: 0,
13
+ role: "listbox",
14
+ "aria-label": "Project selection",
15
+ class: "absolute top-full left-0 mt-1 bg-white border border-stroke rounded-lg shadow-lg overflow-hidden min-w-full select-none"
16
+ }, he = ["aria-selected"], De = ["onClick"], Ce = ["src"], Fe = { class: "font-medium" }, _e = {
17
+ key: 0,
18
+ class: "size-4 ml-auto",
19
+ xmlns: "http://www.w3.org/2000/svg",
20
+ viewBox: "0 0 20 20",
21
+ fill: "currentColor",
22
+ "aria-hidden": "true"
23
+ }, Se = { class: "wrapper wrapper--ticks border-t grid grid-cols-1 md:grid-cols-3 divide-y md:divide-y-0 md:divide-x divide-ceramic" }, je = { class: "flex flex-col gap-2 p-6 md:p-10" }, Be = { key: 1 }, Ee = { class: "flex flex-col gap-2 p-6 md:p-10" }, Ie = { key: 1 }, Me = { class: "flex flex-col gap-2 p-6 md:p-10" }, Pe = { key: 1 }, Ge = /* @__PURE__ */ le({
24
+ __name: "Statistics",
5
25
  props: {
6
- onAnimationComplete: { type: Function }
26
+ statsUrl: { default: "/stats.json" },
27
+ githubStats: { default: () => [] }
7
28
  },
8
- setup(a) {
9
- const n = a;
10
- let e;
11
- return m(() => {
12
- const s = /* @__PURE__ */ new Date();
13
- let t = s.getHours();
14
- const o = s.getMinutes().toString().padStart(2, "0"), p = s.getSeconds().toString().padStart(2, "0"), i = t >= 12 ? "pm" : "am";
15
- t = t % 12 || 12;
16
- const l = `${t}:${o}:${p} ${i}`, r = document.getElementById("terminal-code");
17
- e = new f(r, {
18
- loop: !1,
19
- delay: 1
20
- }), e.typeString("<span>$ vite dev</span>").pauseFor(200).pasteString('<span class="block w-full h-[1rem]"></span>').pasteString('<div class="block text-grey"><span class="text-vite">VITE+ v1.0.0</span> ready in <span class="text-white font-medium">65</span> ms</div>').pasteString('<span class="block w-full h-[1rem]"></span>').pauseFor(500).pasteString('<div class="block"><span class="text-vite"> → Local: </span><span class="text-aqua">http://localhost:5173/</span></div>').pasteString('<div class="block text-grey">→ Network: use <span class="text-white font-medium">--host</span> to expose</div>').pasteString('<span class="block w-full h-[1rem]"></span>').pauseFor(1500).pasteString(`<div class="block text-grey">${l} <span class="text-aqua">[vite]</span> (client) <span class="text-vite">hmr update</span> /src/App.tsx</div>`).pasteString('<span class="block w-full h-[1rem]"></span>').callFunction(() => {
21
- n.onAnimationComplete && n.onAnimationComplete();
22
- }).start();
23
- }), d(() => {
24
- e && e.stop();
25
- }), (s, t) => (g(), u("p", v, [...t[0] || (t[0] = [
26
- x("span", { id: "terminal-code" }, null, -1)
27
- ])]));
29
+ setup(Q) {
30
+ const D = Q, n = [
31
+ { key: "vite", name: "Vite", icon: ue, color: "#6C3BFF" },
32
+ { key: "vitest", name: "Vitest", icon: de, color: "#22FF73" },
33
+ { key: "rolldown", name: "Rolldown", icon: ce, color: "#FF5500" },
34
+ { key: "oxlint", name: "OXC", icon: ve, color: "#32F3E9" }
35
+ ], Y = {
36
+ "vitejs/vite": "vite",
37
+ "vitest-dev/vitest": "vitest",
38
+ "rolldown/rolldown": "rolldown",
39
+ "oxc-project/oxc": "oxlint"
40
+ }, a = r("vite"), C = r({
41
+ vite: [],
42
+ vitest: [],
43
+ rolldown: [],
44
+ oxlint: []
45
+ }), z = r({
46
+ vite: 0,
47
+ vitest: 0,
48
+ rolldown: 0,
49
+ oxlint: 0
50
+ }), T = r({
51
+ vite: 0,
52
+ vitest: 0,
53
+ rolldown: 0,
54
+ oxlint: 0
55
+ }), L = r({
56
+ vite: 0,
57
+ vitest: 0,
58
+ rolldown: 0,
59
+ oxlint: 0
60
+ }), R = r([]), K = r({
61
+ datasets: []
62
+ }), p = P(null), v = P(null), k = P(null), G = f(() => z.value[a.value]), N = f(() => C.value[a.value].slice().reverse().find((t) => t.y > 0)?.y || 0), Z = f(() => {
63
+ const e = N.value;
64
+ return e >= 1e6 ? (e / 1e6).toFixed(1) + "M" : e >= 1e3 ? (e / 1e3).toFixed(1) + "K" : e.toString();
65
+ }), V = f(() => T.value[a.value]), ee = f(() => {
66
+ const e = V.value;
67
+ return e >= 1e6 ? (e / 1e6).toFixed(1) + "M" : e >= 1e3 ? (e / 1e3).toFixed(1) + "K" : e.toString();
68
+ }), A = f(() => L.value[a.value]), te = f(() => {
69
+ const e = A.value;
70
+ return e >= 1e6 ? (e / 1e6).toFixed(1) + "M" : e >= 1e3 ? (e / 1e3).toFixed(1) + "K" : e.toString();
71
+ }), x = f(() => n.find((e) => e.key === a.value)), i = r(!1), F = r(null), u = r(0), M = r(""), U = (e, t) => {
72
+ const l = parseInt(e.slice(1, 3), 16), m = parseInt(e.slice(3, 5), 16), g = parseInt(e.slice(5, 7), 16);
73
+ return `rgba(${l}, ${m}, ${g}, ${t})`;
74
+ }, O = (e) => {
75
+ e.target.closest(".project-dropdown") || (i.value = !1);
76
+ }, H = (e) => {
77
+ if (!i.value)
78
+ (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") && (e.preventDefault(), i.value = !0, u.value = n.findIndex((t) => t.key === a.value));
79
+ else
80
+ switch (e.key) {
81
+ case "Escape":
82
+ e.preventDefault(), i.value = !1, F.value?.focus();
83
+ break;
84
+ case "ArrowDown":
85
+ e.preventDefault(), u.value = (u.value + 1) % n.length;
86
+ break;
87
+ case "ArrowUp":
88
+ e.preventDefault(), u.value = u.value === 0 ? n.length - 1 : u.value - 1;
89
+ break;
90
+ case "Enter":
91
+ case " ":
92
+ e.preventDefault(), a.value = n[u.value].key, i.value = !1, F.value?.focus();
93
+ break;
94
+ case "Home":
95
+ e.preventDefault(), u.value = 0;
96
+ break;
97
+ case "End":
98
+ e.preventDefault(), u.value = n.length - 1;
99
+ break;
100
+ }
101
+ }, oe = (e) => {
102
+ const t = n.find((l) => l.key === e);
103
+ a.value = e, i.value = !1, F.value?.focus(), t && (M.value = `${t.name} selected. Showing ${t.name} statistics.`, setTimeout(() => M.value = "", 1e3));
104
+ };
105
+ return ae(async () => {
106
+ document.addEventListener("click", O);
107
+ const { default: e } = await import("./index76.js");
108
+ await import("./index77.js");
109
+ const t = await import("./index78.js");
110
+ v.value = W(t.default), k.value = W(t.continuous);
111
+ const m = await (await fetch(D.statsUrl)).json();
112
+ for (const d of n) {
113
+ let S = (m[d.key] || []).map((j) => ({
114
+ x: re(j.x).valueOf(),
115
+ y: j.y
116
+ })).filter((j) => j.y > 0);
117
+ S.length > 2 && (S = S.slice(0, -2)), C.value[d.key] = S, z.value[d.key] = m.totalDownloads?.[d.key] || 0;
118
+ }
119
+ D.githubStats && D.githubStats.length > 0 && D.githubStats.forEach((d) => {
120
+ const _ = Y[d.repo];
121
+ _ && (T.value[_] = d.stars, L.value[_] = d.contributors);
122
+ }), R.value = C.value[a.value];
123
+ const g = document.getElementById("chart-canvas"), b = g.getContext("2d"), y = n.find((d) => d.key === a.value)?.color || "#6C3BFF", h = b.createLinearGradient(0, 0, -50, 400);
124
+ h.addColorStop(0, y), h.addColorStop(1, y), K.value = {
125
+ datasets: [
126
+ {
127
+ data: R.value,
128
+ fill: {
129
+ target: "origin",
130
+ above: U(y, 0.1)
131
+ },
132
+ pointStyle: !1,
133
+ borderWidth: 3,
134
+ borderColor: h,
135
+ stepped: !1
136
+ }
137
+ ]
138
+ }, p.value = new e(g, {
139
+ type: "line",
140
+ options: {
141
+ scales: {
142
+ x: {
143
+ type: "time",
144
+ time: {
145
+ unit: "week"
146
+ },
147
+ display: !1,
148
+ alignToPixels: !0,
149
+ ticks: { padding: 0 },
150
+ border: {
151
+ display: !1
152
+ }
153
+ },
154
+ y: {
155
+ min: 0,
156
+ display: !1,
157
+ ticks: { padding: 0 },
158
+ alignToPixels: !0,
159
+ border: {
160
+ display: !1
161
+ }
162
+ }
163
+ },
164
+ plugins: {
165
+ legend: {
166
+ display: !1
167
+ },
168
+ tooltip: {
169
+ enabled: !1
170
+ }
171
+ },
172
+ layout: {
173
+ autoPadding: !1,
174
+ padding: {
175
+ left: 0,
176
+ right: 0,
177
+ top: 0,
178
+ bottom: 80
179
+ }
180
+ },
181
+ aspectRatio: 5 / 3.5
182
+ },
183
+ data: {
184
+ datasets: K.value.datasets
185
+ }
186
+ });
187
+ }), se(() => {
188
+ p.value && p.value.destroy(), document.removeEventListener("click", O);
189
+ }), ne(a, (e) => {
190
+ const t = C.value[e];
191
+ if (p.value && p.value.data && p.value.data.datasets[0]) {
192
+ const l = p.value.data.datasets[0];
193
+ l.data = t.slice();
194
+ const g = document.getElementById("chart-canvas").getContext("2d"), b = n.find((h) => h.key === e)?.color || "#6C3BFF", y = g.createLinearGradient(0, 0, -50, 400);
195
+ y.addColorStop(0, b), y.addColorStop(1, b), l.borderColor = y, l.fill && typeof l.fill == "object" && (l.fill.above = U(b, 0.1)), p.value.update();
196
+ }
197
+ }, { flush: "post" }), (e, t) => (s(), c(X, null, [
198
+ o("div", pe, w(M.value), 1),
199
+ o("section", fe, [
200
+ o("div", me, [
201
+ t[1] || (t[1] = o("h6", { class: "flex gap-2 items-center" }, [
202
+ o("span", null, "Total downloads")
203
+ ], -1)),
204
+ o("h1", null, [
205
+ v.value ? (s(), B(E(v.value), {
206
+ key: 0,
207
+ plugins: [k.value],
208
+ value: G.value
209
+ }, null, 8, ["plugins", "value"])) : (s(), c("span", ge, w(G.value), 1))
210
+ ])
211
+ ]),
212
+ o("div", ye, [
213
+ o("div", we, [
214
+ o("button", {
215
+ ref_key: "dropdownButtonRef",
216
+ ref: F,
217
+ onClick: t[0] || (t[0] = q((l) => i.value = !i.value, ["stop"])),
218
+ onKeydown: H,
219
+ "aria-expanded": i.value,
220
+ "aria-label": `Select project: ${x.value?.name}`,
221
+ "aria-haspopup": "listbox",
222
+ class: "button cursor-pointer"
223
+ }, [
224
+ x.value ? (s(), c("img", {
225
+ key: 0,
226
+ src: x.value.icon,
227
+ class: "size-6",
228
+ alt: x.value?.name
229
+ }, null, 8, xe)) : $("", !0),
230
+ o("span", null, [
231
+ I(w(x.value?.name) + " ", 1),
232
+ t[2] || (t[2] = o("span", { class: "hidden md:inline-block" }, "Downloads", -1))
233
+ ]),
234
+ (s(), c("svg", {
235
+ class: J(["size-3 ml-1 fill-primary", { "rotate-180": i.value }]),
236
+ xmlns: "http://www.w3.org/2000/svg",
237
+ viewBox: "0 0 12 7",
238
+ "aria-hidden": "true"
239
+ }, [...t[3] || (t[3] = [
240
+ o("path", { d: "M1.41 0L6 4.58 10.59 0 12 1.42l-6 6-6-6z" }, null, -1)
241
+ ])], 2))
242
+ ], 40, ke),
243
+ i.value ? (s(), c("ul", be, [
244
+ (s(), c(X, null, ie(n, (l, m) => o("li", {
245
+ key: l.key,
246
+ role: "option",
247
+ "aria-selected": a.value === l.key
248
+ }, [
249
+ o("button", {
250
+ onClick: q((g) => oe(l.key), ["stop"]),
251
+ onKeydown: H,
252
+ class: J([{
253
+ "bg-gray-50": a.value === l.key,
254
+ "bg-gray-100": u.value === m
255
+ }, "select-none cursor-pointer flex items-center gap-2 px-3 py-2 w-full text-left text-base hover:bg-stroke/20 focus:outline-none focus:bg-stroke/20 hover:text-primary focus:text-primary"])
256
+ }, [
257
+ o("img", {
258
+ src: l.icon,
259
+ class: "size-5",
260
+ alt: ""
261
+ }, null, 8, Ce),
262
+ o("span", Fe, w(l.name), 1),
263
+ a.value === l.key ? (s(), c("svg", _e, [...t[4] || (t[4] = [
264
+ o("path", {
265
+ "fill-rule": "evenodd",
266
+ d: "M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",
267
+ "clip-rule": "evenodd"
268
+ }, null, -1)
269
+ ])])) : $("", !0)
270
+ ], 42, De)
271
+ ], 8, he)), 64))
272
+ ])) : $("", !0)
273
+ ]),
274
+ t[5] || (t[5] = o("canvas", {
275
+ id: "chart-canvas",
276
+ width: "200",
277
+ height: "200"
278
+ }, null, -1)),
279
+ t[6] || (t[6] = o("div", { class: "flex justify-between absolute bottom-6 md:bottom-10 left-6 md:left-10 right-6 md:right-10" }, [
280
+ o("p", { class: "font-mono text-sm text-nickel" }, "April 2020"),
281
+ o("p", { class: "font-mono text-sm text-nickel" }, "Today")
282
+ ], -1))
283
+ ])
284
+ ]),
285
+ o("section", Se, [
286
+ o("div", je, [
287
+ o("h2", null, [
288
+ v.value ? (s(), B(E(v.value), {
289
+ key: 0,
290
+ plugins: [k.value],
291
+ value: N.value,
292
+ format: { notation: "compact", maximumFractionDigits: 1 }
293
+ }, null, 8, ["plugins", "value"])) : (s(), c("span", Be, w(Z.value), 1)),
294
+ t[7] || (t[7] = I("+ ", -1))
295
+ ]),
296
+ t[8] || (t[8] = o("p", { class: "lead" }, "Weekly NPM downloads", -1))
297
+ ]),
298
+ o("div", Ee, [
299
+ o("h2", null, [
300
+ v.value ? (s(), B(E(v.value), {
301
+ key: 0,
302
+ plugins: [k.value],
303
+ value: V.value,
304
+ format: { notation: "compact", maximumFractionDigits: 1 }
305
+ }, null, 8, ["plugins", "value"])) : (s(), c("span", Ie, w(ee.value), 1)),
306
+ t[9] || (t[9] = I("+ ", -1))
307
+ ]),
308
+ t[10] || (t[10] = o("p", { class: "lead" }, "GitHub Stars", -1))
309
+ ]),
310
+ o("div", Me, [
311
+ o("h2", null, [
312
+ v.value ? (s(), B(E(v.value), {
313
+ key: 0,
314
+ plugins: [k.value],
315
+ value: A.value,
316
+ format: { notation: "compact", maximumFractionDigits: 1 }
317
+ }, null, 8, ["plugins", "value"])) : (s(), c("span", Pe, w(te.value), 1)),
318
+ t[11] || (t[11] = I("+ ", -1))
319
+ ]),
320
+ t[12] || (t[12] = o("p", { class: "lead" }, "Contributors", -1))
321
+ ])
322
+ ])
323
+ ], 64));
28
324
  }
29
325
  });
30
326
  export {
31
- h as default
327
+ Ge as default
32
328
  };
package/dist/index47.js CHANGED
@@ -1,28 +1,4 @@
1
- import { defineComponent as p, onMounted as l, onUnmounted as c, createElementBlock as i, openBlock as o, createElementVNode as r } from "vue";
2
- import m from "./index120.js";
3
- const d = { class: "font-mono text-sm text-white leading-[1.5rem]" }, g = /* @__PURE__ */ p({
4
- __name: "TerminalAnimation4",
5
- props: {
6
- onAnimationComplete: { type: Function }
7
- },
8
- setup(e) {
9
- const t = e;
10
- let s;
11
- return l(() => {
12
- const a = document.getElementById("terminal-code");
13
- s = new m(a, {
14
- loop: !1,
15
- delay: 1
16
- }), s.typeString("<span>$ vite fmt</span>").pauseFor(200).pasteString('<span class="block w-full h-[1rem]"></span>').pasteString('<div class="block text-grey"><span class="text-vite">VITE+ v1.0.0</span> <span class="text-aqua">fmt</span></div>').pauseFor(500).pasteString('<div class="block">src/App.css <span class="text-aqua">0ms</span> <span class="text-grey">(unchanged)</span></div>').pasteString('<div class="block">src/App.tsx <span class="text-aqua">1ms</span></div>').pasteString('<div class="block">src/index.css <span class="text-aqua">0ms</span> <span class="text-grey">(unchanged)</span></div>').pasteString('<div class="block">src/main.tsx <span class="text-aqua">1ms</span></div>').pasteString('<div class="block">src/vite-env.d.ts <span class="text-aqua">0ms</span> <span class="text-grey">(unchanged)</span></div>').pasteString('<div class="block"><span class="text-zest">✓</span> Formatted <span class="text-aqua">2 files</span> in <span class="text-aqua">2ms</span>.</div>').pasteString('<span class="block w-full h-[1rem]"></span>').callFunction(() => {
17
- t.onAnimationComplete && t.onAnimationComplete();
18
- }).start();
19
- }), c(() => {
20
- s && s.stop();
21
- }), (a, n) => (o(), i("p", d, [...n[0] || (n[0] = [
22
- r("span", { id: "terminal-code" }, null, -1)
23
- ])]));
24
- }
25
- });
1
+ import f from "./index21.js";
26
2
  export {
27
- g as default
3
+ f as default
28
4
  };
package/dist/index48.js CHANGED
@@ -1,28 +1,5 @@
1
- import { defineComponent as p, onMounted as l, onUnmounted as o, createElementBlock as i, openBlock as r, createElementVNode as c } from "vue";
2
- import m from "./index120.js";
3
- const d = { class: "font-mono text-sm text-white leading-[1.5rem]" }, x = /* @__PURE__ */ p({
4
- __name: "TerminalAnimation5",
5
- props: {
6
- onAnimationComplete: { type: Function }
7
- },
8
- setup(n) {
9
- const t = n;
10
- let s;
11
- return l(() => {
12
- const e = document.getElementById("terminal-code");
13
- s = new m(e, {
14
- loop: !1,
15
- delay: 1
16
- }), s.typeString("<span>$ vite test</span>").pauseFor(200).pasteString('<span class="block w-full h-[1rem]"></span>').pasteString('<div class="block"><span class="text-vite">VITE+ v1.0.0</span> <span class="text-aqua">test</span> RUN ~/vite-plus-demo</div>').pasteString('<span class="block w-full h-[1rem]"></span>').pauseFor(300).pasteString('<div class="block"><span class="text-zest">✓</span> test/hello.spec.ts <span class="text-grey">(1 test)</span> <span class="text-zest">1ms</span></div>').pasteString('<span class="block w-full h-[1rem]"></span>').pasteString('<div class="block text-grey">Test Files <span class="text-zest">1 passed</span> <span class="text-grey">(1)</span></div>').pasteString('<div class="block text-grey">Tests <span class="text-zest">1 passed</span> <span class="text-grey">(1)</span></div>').pasteString('<div class="block text-grey">Start at <span class="text-white">00:13:44</span></div>').pasteString('<div class="block text-grey">Duration <span class="text-white">199ms</span> <span class="text-grey">(transform 13ms, setup 0ms, collect 8ms, tests 1ms, environment 0ms, prepare 33ms)</span></div>').pasteString('<span class="block w-full h-[1rem]"></span>').callFunction(() => {
17
- t.onAnimationComplete && t.onAnimationComplete();
18
- }).start();
19
- }), o(() => {
20
- s && s.stop();
21
- }), (e, a) => (r(), i("p", d, [...a[0] || (a[0] = [
22
- c("span", { id: "terminal-code" }, null, -1)
23
- ])]));
24
- }
25
- });
1
+ import o from "./index23.js";
2
+ /* empty css */
26
3
  export {
27
- x as default
4
+ o as default
28
5
  };