@voidzero-dev/vitepress-theme 0.0.17 → 0.1.32

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 (159) 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/cta-background.jpg +1 -0
  13. package/dist/assets/icons/oxc-dark.svg +124 -0
  14. package/dist/assets/icons/oxc-light.svg +124 -0
  15. package/dist/assets/icons/oxc-mono.svg +5 -0
  16. package/dist/assets/icons/rolldown-dark.svg +92 -0
  17. package/dist/assets/icons/rolldown-light.svg +92 -0
  18. package/dist/assets/icons/rolldown-mono.svg +5 -0
  19. package/dist/assets/icons/vite-dark.svg +132 -0
  20. package/dist/assets/icons/vite-light.svg +132 -0
  21. package/dist/assets/icons/vite-mono.svg +5 -0
  22. package/dist/assets/icons/viteplus-dark.svg +133 -0
  23. package/dist/assets/icons/viteplus-light.svg +133 -0
  24. package/dist/assets/icons/viteplus-mono.svg +6 -0
  25. package/dist/assets/icons/vitest-dark.svg +52 -0
  26. package/dist/assets/icons/vitest-light.svg +52 -0
  27. package/dist/assets/icons/vitest-mono.svg +5 -0
  28. package/dist/assets/logos/oxc-dark.svg +125 -0
  29. package/dist/assets/logos/oxc-light.svg +125 -0
  30. package/dist/assets/logos/rolldown-dark.svg +93 -0
  31. package/dist/assets/logos/rolldown-light.svg +93 -0
  32. package/dist/assets/logos/vite-dark.svg +133 -0
  33. package/dist/assets/logos/vite-light.svg +133 -0
  34. package/dist/assets/logos/viteplus-dark.svg +133 -0
  35. package/dist/assets/logos/viteplus-light.svg +133 -0
  36. package/dist/assets/logos/vitest-dark.svg +53 -0
  37. package/dist/assets/logos/vitest-light.svg +53 -0
  38. package/dist/assets/logos/voidzero-dark.svg +3 -0
  39. package/dist/assets/logos/voidzero-light.svg +3 -0
  40. package/dist/assets/social/github.svg +3 -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 -0
  57. package/dist/index.js +3 -6542
  58. package/dist/index10.js +7 -0
  59. package/dist/index11.js +13 -0
  60. package/dist/index12.js +13 -0
  61. package/dist/index13.js +13 -0
  62. package/dist/index14.js +7 -0
  63. package/dist/index15.js +12 -0
  64. package/dist/index16.js +7 -0
  65. package/dist/index17.js +12 -0
  66. package/dist/index19.js +4 -0
  67. package/dist/index2.js +27 -0
  68. package/dist/index20.js +4 -0
  69. package/dist/index21.js +4 -0
  70. package/dist/index22.js +4 -0
  71. package/dist/index23.js +4 -0
  72. package/dist/index24.js +4 -0
  73. package/dist/index25.js +23 -0
  74. package/dist/index27.js +9 -0
  75. package/dist/index28.js +107 -0
  76. package/dist/index3.js +75 -0
  77. package/dist/index30.js +4 -0
  78. package/dist/index31.js +4 -0
  79. package/dist/index32.js +297 -0
  80. package/dist/index34.js +149 -0
  81. package/dist/index36.js +20 -0
  82. package/dist/index37.js +20 -0
  83. package/dist/index38.js +20 -0
  84. package/dist/index39.js +4 -0
  85. package/dist/index4.js +157 -0
  86. package/dist/index40.js +28 -0
  87. package/dist/index41.js +32 -0
  88. package/dist/index42.js +28 -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 +4 -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 +4 -0
  106. package/dist/index59.js +4 -0
  107. package/dist/index6.js +75 -0
  108. package/dist/index60.js +4 -0
  109. package/dist/index61.js +4 -0
  110. package/dist/index62.js +4 -0
  111. package/dist/index63.js +36 -0
  112. package/dist/index64.js +4 -0
  113. package/dist/index65.js +4 -0
  114. package/dist/index66.js +4 -0
  115. package/dist/index67.js +4 -0
  116. package/dist/index68.js +4 -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 +24 -0
  126. package/dist/index77.js +126 -0
  127. package/dist/index78.js +4 -0
  128. package/dist/index79.js +35 -0
  129. package/dist/index8.js +35 -0
  130. package/dist/index80.js +1204 -0
  131. package/dist/index81.js +7 -0
  132. package/dist/index82.js +6 -0
  133. package/dist/index83.js +317 -0
  134. package/dist/index84.js +4 -0
  135. package/dist/index9.js +7 -0
  136. package/package.json +19 -20
  137. package/assets/checkmark.svg +0 -1
  138. package/assets/primary-button-background.jpg +0 -0
  139. package/assets/terminal-background.jpg +0 -0
  140. package/components/Eyebrow.vue +0 -11
  141. package/components/Footer.vue +0 -44
  142. package/components/Header.vue +0 -38
  143. package/components/RiveAnimation.vue +0 -144
  144. package/components/Terminal.vue +0 -165
  145. package/components/terminal-animations/TerminalAnimation1.vue +0 -54
  146. package/components/terminal-animations/TerminalAnimation2.vue +0 -59
  147. package/components/terminal-animations/TerminalAnimation3.vue +0 -46
  148. package/components/terminal-animations/TerminalAnimation4.vue +0 -50
  149. package/components/terminal-animations/TerminalAnimation5.vue +0 -51
  150. package/components/terminal-animations/TerminalAnimation6.vue +0 -55
  151. package/composables/useTypewriter.ts +0 -43
  152. package/dist/index.js.map +0 -1
  153. package/dist/style.css +0 -343
  154. package/fonts/APK-Protocol-Medium.woff2 +0 -0
  155. package/fonts/KHTeka-Medium.woff2 +0 -0
  156. package/fonts/KHTeka-Regular.woff2 +0 -0
  157. package/fonts/KHTekaMono-Medium.woff2 +0 -0
  158. package/fonts/KHTekaMono-Regular.woff2 +0 -0
  159. package/style.css +0 -343
@@ -0,0 +1,7 @@
1
+ import { getDefaultExportFromCjs as r } from "./index82.js";
2
+ import { __require as e } from "./index83.js";
3
+ var o = e();
4
+ const a = /* @__PURE__ */ r(o);
5
+ export {
6
+ a as default
7
+ };
@@ -0,0 +1,6 @@
1
+ function e(t) {
2
+ return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t;
3
+ }
4
+ export {
5
+ e as getDefaultExportFromCjs
6
+ };
@@ -0,0 +1,317 @@
1
+ import { __module as q } from "./index84.js";
2
+ var fe = q.exports, te;
3
+ function he() {
4
+ return te ? q.exports : (te = 1, (function(ne, ve) {
5
+ (function(z, Q) {
6
+ ne.exports = Q();
7
+ })(typeof self < "u" ? self : fe, (() => (() => {
8
+ var z = { 3146: (s, c, p) => {
9
+ for (var S = p(3491), m = typeof window > "u" ? p.g : window, g = ["moz", "webkit"], h = "AnimationFrame", d = m["request" + h], _ = m["cancel" + h] || m["cancelRequest" + h], O = 0; !d && O < g.length; O++) d = m[g[O] + "Request" + h], _ = m[g[O] + "Cancel" + h] || m[g[O] + "CancelRequest" + h];
10
+ if (!d || !_) {
11
+ var D = 0, x = 0, b = [], R = 1e3 / 60;
12
+ d = function(y) {
13
+ if (b.length === 0) {
14
+ var T = S(), L = Math.max(0, R - (T - D));
15
+ D = L + T, setTimeout((function() {
16
+ var M = b.slice(0);
17
+ b.length = 0;
18
+ for (var C = 0; C < M.length; C++) if (!M[C].cancelled) try {
19
+ M[C].callback(D);
20
+ } catch (N) {
21
+ setTimeout((function() {
22
+ throw N;
23
+ }), 0);
24
+ }
25
+ }), Math.round(L));
26
+ }
27
+ return b.push({ handle: ++x, callback: y, cancelled: !1 }), x;
28
+ }, _ = function(y) {
29
+ for (var T = 0; T < b.length; T++) b[T].handle === y && (b[T].cancelled = !0);
30
+ };
31
+ }
32
+ s.exports = function(y) {
33
+ return d.call(m, y);
34
+ }, s.exports.cancel = function() {
35
+ _.apply(m, arguments);
36
+ }, s.exports.polyfill = function(y) {
37
+ y || (y = m), y.requestAnimationFrame = d, y.cancelAnimationFrame = _;
38
+ };
39
+ }, 3491: function(s) {
40
+ (function() {
41
+ var c, p, S, m, g, h;
42
+ typeof performance < "u" && performance !== null && performance.now ? s.exports = function() {
43
+ return performance.now();
44
+ } : typeof process < "u" && process !== null && process.hrtime ? (s.exports = function() {
45
+ return (c() - g) / 1e6;
46
+ }, p = process.hrtime, m = (c = function() {
47
+ var d;
48
+ return 1e9 * (d = p())[0] + d[1];
49
+ })(), h = 1e9 * process.uptime(), g = m - h) : Date.now ? (s.exports = function() {
50
+ return Date.now() - S;
51
+ }, S = Date.now()) : (s.exports = function() {
52
+ return (/* @__PURE__ */ new Date()).getTime() - S;
53
+ }, S = (/* @__PURE__ */ new Date()).getTime());
54
+ }).call(this);
55
+ } }, Q = {};
56
+ function w(s) {
57
+ var c = Q[s];
58
+ if (c !== void 0) return c.exports;
59
+ var p = Q[s] = { exports: {} };
60
+ return z[s].call(p.exports, p, p.exports, w), p.exports;
61
+ }
62
+ w.n = (s) => {
63
+ var c = s && s.__esModule ? () => s.default : () => s;
64
+ return w.d(c, { a: c }), c;
65
+ }, w.d = (s, c) => {
66
+ for (var p in c) w.o(c, p) && !w.o(s, p) && Object.defineProperty(s, p, { enumerable: !0, get: c[p] });
67
+ }, w.g = (function() {
68
+ if (typeof globalThis == "object") return globalThis;
69
+ try {
70
+ return this || new Function("return this")();
71
+ } catch {
72
+ if (typeof window == "object") return window;
73
+ }
74
+ })(), w.o = (s, c) => Object.prototype.hasOwnProperty.call(s, c);
75
+ var J = {};
76
+ return (() => {
77
+ w.d(J, { default: () => oe });
78
+ var s = w(3146), c = w.n(s);
79
+ const p = function(o) {
80
+ return new RegExp(/<[a-z][\s\S]*>/i).test(o);
81
+ }, S = function(o, t) {
82
+ return Math.floor(Math.random() * (t - o + 1)) + o;
83
+ };
84
+ var m = "TYPE_CHARACTER", g = "REMOVE_CHARACTER", h = "REMOVE_ALL", d = "REMOVE_LAST_VISIBLE_NODE", _ = "PAUSE_FOR", O = "CALL_FUNCTION", D = "ADD_HTML_TAG_ELEMENT", x = "CHANGE_DELETE_SPEED", b = "CHANGE_DELAY", R = "CHANGE_CURSOR", y = "PASTE_STRING", T = "HTML_TAG";
85
+ function L(o) {
86
+ return L = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(t) {
87
+ return typeof t;
88
+ } : function(t) {
89
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
90
+ }, L(o);
91
+ }
92
+ function M(o, t) {
93
+ var a = Object.keys(o);
94
+ if (Object.getOwnPropertySymbols) {
95
+ var r = Object.getOwnPropertySymbols(o);
96
+ t && (r = r.filter((function(A) {
97
+ return Object.getOwnPropertyDescriptor(o, A).enumerable;
98
+ }))), a.push.apply(a, r);
99
+ }
100
+ return a;
101
+ }
102
+ function C(o) {
103
+ for (var t = 1; t < arguments.length; t++) {
104
+ var a = arguments[t] != null ? arguments[t] : {};
105
+ t % 2 ? M(Object(a), !0).forEach((function(r) {
106
+ u(o, r, a[r]);
107
+ })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(o, Object.getOwnPropertyDescriptors(a)) : M(Object(a)).forEach((function(r) {
108
+ Object.defineProperty(o, r, Object.getOwnPropertyDescriptor(a, r));
109
+ }));
110
+ }
111
+ return o;
112
+ }
113
+ function N(o) {
114
+ return (function(t) {
115
+ if (Array.isArray(t)) return U(t);
116
+ })(o) || (function(t) {
117
+ if (typeof Symbol < "u" && t[Symbol.iterator] != null || t["@@iterator"] != null) return Array.from(t);
118
+ })(o) || (function(t, a) {
119
+ if (t) {
120
+ if (typeof t == "string") return U(t, a);
121
+ var r = {}.toString.call(t).slice(8, -1);
122
+ return r === "Object" && t.constructor && (r = t.constructor.name), r === "Map" || r === "Set" ? Array.from(t) : r === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? U(t, a) : void 0;
123
+ }
124
+ })(o) || (function() {
125
+ throw new TypeError(`Invalid attempt to spread non-iterable instance.
126
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
127
+ })();
128
+ }
129
+ function U(o, t) {
130
+ (t == null || t > o.length) && (t = o.length);
131
+ for (var a = 0, r = Array(t); a < t; a++) r[a] = o[a];
132
+ return r;
133
+ }
134
+ function re(o, t) {
135
+ for (var a = 0; a < t.length; a++) {
136
+ var r = t[a];
137
+ r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(o, $(r.key), r);
138
+ }
139
+ }
140
+ function u(o, t, a) {
141
+ return (t = $(t)) in o ? Object.defineProperty(o, t, { value: a, enumerable: !0, configurable: !0, writable: !0 }) : o[t] = a, o;
142
+ }
143
+ function $(o) {
144
+ var t = (function(a) {
145
+ if (L(a) != "object" || !a) return a;
146
+ var r = a[Symbol.toPrimitive];
147
+ if (r !== void 0) {
148
+ var A = r.call(a, "string");
149
+ if (L(A) != "object") return A;
150
+ throw new TypeError("@@toPrimitive must return a primitive value.");
151
+ }
152
+ return String(a);
153
+ })(o);
154
+ return L(t) == "symbol" ? t : t + "";
155
+ }
156
+ const oe = (function() {
157
+ function o(r, A) {
158
+ var e = this;
159
+ if ((function(n, i) {
160
+ if (!(n instanceof i)) throw new TypeError("Cannot call a class as a function");
161
+ })(this, o), u(this, "state", { cursorAnimation: null, lastFrameTime: null, pauseUntil: null, eventQueue: [], eventLoop: null, eventLoopPaused: !1, reverseCalledEvents: [], calledEvents: [], visibleNodes: [], initialOptions: null, elements: { container: null, wrapper: document.createElement("span"), cursor: document.createElement("span") } }), u(this, "options", { strings: null, cursor: "|", delay: "natural", pauseFor: 1500, deleteSpeed: "natural", loop: !1, autoStart: !1, devMode: !1, skipAddStyles: !1, wrapperClassName: "Typewriter__wrapper", cursorClassName: "Typewriter__cursor", stringSplitter: null, onCreateTextNode: null, onRemoveNode: null }), u(this, "setupWrapperElement", (function() {
162
+ e.state.elements.container && (e.state.elements.wrapper.className = e.options.wrapperClassName, e.state.elements.cursor.className = e.options.cursorClassName, e.state.elements.cursor.innerHTML = e.options.cursor, e.state.elements.container.innerHTML = "", e.state.elements.container.appendChild(e.state.elements.wrapper), e.state.elements.container.appendChild(e.state.elements.cursor));
163
+ })), u(this, "start", (function() {
164
+ return e.state.eventLoopPaused = !1, e.runEventLoop(), e;
165
+ })), u(this, "pause", (function() {
166
+ return e.state.eventLoopPaused = !0, e;
167
+ })), u(this, "stop", (function() {
168
+ return e.state.eventLoop && ((0, s.cancel)(e.state.eventLoop), e.state.eventLoop = null), e;
169
+ })), u(this, "pauseFor", (function(n) {
170
+ return e.addEventToQueue(_, { ms: n }), e;
171
+ })), u(this, "typeOutAllStrings", (function() {
172
+ return typeof e.options.strings == "string" ? (e.typeString(e.options.strings).pauseFor(e.options.pauseFor), e) : (e.options.strings.forEach((function(n) {
173
+ e.typeString(n).pauseFor(e.options.pauseFor).deleteAll(e.options.deleteSpeed);
174
+ })), e);
175
+ })), u(this, "typeString", (function(n) {
176
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
177
+ if (p(n)) return e.typeOutHTMLString(n, i);
178
+ if (n) {
179
+ var f = (e.options || {}).stringSplitter, v = typeof f == "function" ? f(n) : n.split("");
180
+ e.typeCharacters(v, i);
181
+ }
182
+ return e;
183
+ })), u(this, "pasteString", (function(n) {
184
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
185
+ return p(n) ? e.typeOutHTMLString(n, i, !0) : (n && e.addEventToQueue(y, { character: n, node: i }), e);
186
+ })), u(this, "typeOutHTMLString", (function(n) {
187
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null, f = arguments.length > 2 ? arguments[2] : void 0, v = (function(k) {
188
+ var j = document.createElement("div");
189
+ return j.innerHTML = k, j.childNodes;
190
+ })(n);
191
+ if (v.length > 0) for (var l = 0; l < v.length; l++) {
192
+ var E = v[l], P = E.innerHTML;
193
+ E && E.nodeType !== 3 ? (E.innerHTML = "", e.addEventToQueue(D, { node: E, parentNode: i }), f ? e.pasteString(P, E) : e.typeString(P, E)) : E.textContent && (f ? e.pasteString(E.textContent, i) : e.typeString(E.textContent, i));
194
+ }
195
+ return e;
196
+ })), u(this, "deleteAll", (function() {
197
+ var n = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "natural";
198
+ return e.addEventToQueue(h, { speed: n }), e;
199
+ })), u(this, "changeDeleteSpeed", (function(n) {
200
+ if (!n) throw new Error("Must provide new delete speed");
201
+ return e.addEventToQueue(x, { speed: n }), e;
202
+ })), u(this, "changeDelay", (function(n) {
203
+ if (!n) throw new Error("Must provide new delay");
204
+ return e.addEventToQueue(b, { delay: n }), e;
205
+ })), u(this, "changeCursor", (function(n) {
206
+ if (!n) throw new Error("Must provide new cursor");
207
+ return e.addEventToQueue(R, { cursor: n }), e;
208
+ })), u(this, "deleteChars", (function(n) {
209
+ if (!n) throw new Error("Must provide amount of characters to delete");
210
+ for (var i = 0; i < n; i++) e.addEventToQueue(g);
211
+ return e;
212
+ })), u(this, "callFunction", (function(n, i) {
213
+ if (!n || typeof n != "function") throw new Error("Callback must be a function");
214
+ return e.addEventToQueue(O, { cb: n, thisArg: i }), e;
215
+ })), u(this, "typeCharacters", (function(n) {
216
+ var i = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
217
+ if (!n || !Array.isArray(n)) throw new Error("Characters must be an array");
218
+ return n.forEach((function(f) {
219
+ e.addEventToQueue(m, { character: f, node: i });
220
+ })), e;
221
+ })), u(this, "removeCharacters", (function(n) {
222
+ if (!n || !Array.isArray(n)) throw new Error("Characters must be an array");
223
+ return n.forEach((function() {
224
+ e.addEventToQueue(g);
225
+ })), e;
226
+ })), u(this, "addEventToQueue", (function(n, i) {
227
+ var f = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
228
+ return e.addEventToStateProperty(n, i, f, "eventQueue");
229
+ })), u(this, "addReverseCalledEvent", (function(n, i) {
230
+ var f = arguments.length > 2 && arguments[2] !== void 0 && arguments[2];
231
+ return e.options.loop ? e.addEventToStateProperty(n, i, f, "reverseCalledEvents") : e;
232
+ })), u(this, "addEventToStateProperty", (function(n, i) {
233
+ var f = arguments.length > 2 && arguments[2] !== void 0 && arguments[2], v = arguments.length > 3 ? arguments[3] : void 0, l = { eventName: n, eventArgs: i || {} };
234
+ return e.state[v] = f ? [l].concat(N(e.state[v])) : [].concat(N(e.state[v]), [l]), e;
235
+ })), u(this, "runEventLoop", (function() {
236
+ e.state.lastFrameTime || (e.state.lastFrameTime = Date.now());
237
+ var n = Date.now(), i = n - e.state.lastFrameTime;
238
+ if (!e.state.eventQueue.length) {
239
+ if (!e.options.loop) return;
240
+ e.state.eventQueue = N(e.state.calledEvents), e.state.calledEvents = [], e.options = C({}, e.state.initialOptions);
241
+ }
242
+ if (e.state.eventLoop = c()(e.runEventLoop), !e.state.eventLoopPaused) {
243
+ if (e.state.pauseUntil) {
244
+ if (n < e.state.pauseUntil) return;
245
+ e.state.pauseUntil = null;
246
+ }
247
+ var f, v = N(e.state.eventQueue), l = v.shift();
248
+ if (!(i <= (f = l.eventName === d || l.eventName === g ? e.options.deleteSpeed === "natural" ? S(40, 80) : e.options.deleteSpeed : e.options.delay === "natural" ? S(120, 160) : e.options.delay))) {
249
+ var E = l.eventName, P = l.eventArgs;
250
+ switch (e.logInDevMode({ currentEvent: l, state: e.state, delay: f }), E) {
251
+ case y:
252
+ case m:
253
+ var k = P.character, j = P.node, X = document.createTextNode(k), F = X;
254
+ e.options.onCreateTextNode && typeof e.options.onCreateTextNode == "function" && (F = e.options.onCreateTextNode(k, X)), F && (j ? j.appendChild(F) : e.state.elements.wrapper.appendChild(F)), e.state.visibleNodes = [].concat(N(e.state.visibleNodes), [{ type: "TEXT_NODE", character: k, node: F }]);
255
+ break;
256
+ case g:
257
+ v.unshift({ eventName: d, eventArgs: { removingCharacterNode: !0 } });
258
+ break;
259
+ case _:
260
+ var ae = l.eventArgs.ms;
261
+ e.state.pauseUntil = Date.now() + parseInt(ae);
262
+ break;
263
+ case O:
264
+ var K = l.eventArgs, se = K.cb, ie = K.thisArg;
265
+ se.call(ie, { elements: e.state.elements });
266
+ break;
267
+ case D:
268
+ var Z = l.eventArgs, Y = Z.node, V = Z.parentNode;
269
+ V ? V.appendChild(Y) : e.state.elements.wrapper.appendChild(Y), e.state.visibleNodes = [].concat(N(e.state.visibleNodes), [{ type: T, node: Y, parentNode: V || e.state.elements.wrapper }]);
270
+ break;
271
+ case h:
272
+ var ue = e.state.visibleNodes, W = P.speed, H = [];
273
+ W && H.push({ eventName: x, eventArgs: { speed: W, temp: !0 } });
274
+ for (var ee = 0, le = ue.length; ee < le; ee++) H.push({ eventName: d, eventArgs: { removingCharacterNode: !1 } });
275
+ W && H.push({ eventName: x, eventArgs: { speed: e.options.deleteSpeed, temp: !0 } }), v.unshift.apply(v, H);
276
+ break;
277
+ case d:
278
+ var ce = l.eventArgs.removingCharacterNode;
279
+ if (e.state.visibleNodes.length) {
280
+ var G = e.state.visibleNodes.pop(), pe = G.type, I = G.node, de = G.character;
281
+ e.options.onRemoveNode && typeof e.options.onRemoveNode == "function" && e.options.onRemoveNode({ node: I, character: de }), I && I.parentNode.removeChild(I), pe === T && ce && v.unshift({ eventName: d, eventArgs: {} });
282
+ }
283
+ break;
284
+ case x:
285
+ e.options.deleteSpeed = l.eventArgs.speed;
286
+ break;
287
+ case b:
288
+ e.options.delay = l.eventArgs.delay;
289
+ break;
290
+ case R:
291
+ e.options.cursor = l.eventArgs.cursor, e.state.elements.cursor.innerHTML = l.eventArgs.cursor;
292
+ }
293
+ e.options.loop && (l.eventName === d || l.eventArgs && l.eventArgs.temp || (e.state.calledEvents = [].concat(N(e.state.calledEvents), [l]))), e.state.eventQueue = v, e.state.lastFrameTime = n;
294
+ }
295
+ }
296
+ })), r) if (typeof r == "string") {
297
+ var B = document.querySelector(r);
298
+ if (!B) throw new Error("Could not find container element");
299
+ this.state.elements.container = B;
300
+ } else this.state.elements.container = r;
301
+ A && (this.options = C(C({}, this.options), A)), this.state.initialOptions = C({}, this.options), this.init();
302
+ }
303
+ var t, a;
304
+ return t = o, (a = [{ key: "init", value: function() {
305
+ var r, A;
306
+ this.setupWrapperElement(), this.addEventToQueue(R, { cursor: this.options.cursor }, !0), this.addEventToQueue(h, null, !0), !window || window.___TYPEWRITER_JS_STYLES_ADDED___ || this.options.skipAddStyles || (r = ".Typewriter__cursor{-webkit-animation:Typewriter-cursor 1s infinite;animation:Typewriter-cursor 1s infinite;margin-left:1px}@-webkit-keyframes Typewriter-cursor{0%{opacity:0}50%{opacity:1}100%{opacity:0}}@keyframes Typewriter-cursor{0%{opacity:0}50%{opacity:1}100%{opacity:0}}", (A = document.createElement("style")).appendChild(document.createTextNode(r)), document.head.appendChild(A), window.___TYPEWRITER_JS_STYLES_ADDED___ = !0), this.options.autoStart === !0 && this.options.strings && this.typeOutAllStrings().start();
307
+ } }, { key: "logInDevMode", value: function(r) {
308
+ this.options.devMode && console.log(r);
309
+ } }]) && re(t.prototype, a), Object.defineProperty(t, "prototype", { writable: !1 }), o;
310
+ })();
311
+ })(), J.default;
312
+ })()));
313
+ })(q), q.exports);
314
+ }
315
+ export {
316
+ he as __require
317
+ };
@@ -0,0 +1,4 @@
1
+ var e = { exports: {} };
2
+ export {
3
+ e as __module
4
+ };
package/dist/index9.js ADDED
@@ -0,0 +1,7 @@
1
+ import o from "./index25.js";
2
+ /* empty css */
3
+ import r from "./index27.js";
4
+ const f = /* @__PURE__ */ r(o, [["__scopeId", "data-v-9fdd31e9"]]);
5
+ export {
6
+ f as default
7
+ };
package/package.json CHANGED
@@ -1,50 +1,49 @@
1
1
  {
2
2
  "name": "@voidzero-dev/vitepress-theme",
3
- "version": "0.0.17",
3
+ "version": "0.1.32",
4
4
  "description": "Shared VitePress theme for VoidZero projects",
5
5
  "type": "module",
6
+ "license": "MIT",
6
7
  "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
9
9
  "exports": {
10
10
  ".": {
11
+ "style": "./dist/index.css",
11
12
  "types": "./dist/index.d.ts",
12
13
  "import": "./dist/index.js"
13
14
  },
14
- "./style.css": "./dist/style.css"
15
+ "./index.css": "./dist/index.css"
15
16
  },
16
17
  "files": [
17
- "dist",
18
- "components",
19
- "composables",
20
- "assets",
21
- "fonts",
22
- "style.css"
18
+ "dist"
23
19
  ],
24
20
  "scripts": {
25
- "build": "vite build"
21
+ "dev": "vite build --watch",
22
+ "build": "vite build",
23
+ "publish": "npm publish"
26
24
  },
27
25
  "peerDependencies": {
28
- "@tailwindcss/typography": "^0.5.19",
29
- "tailwindcss": "^4.0.0",
30
26
  "vitepress": "^2.0.0-alpha.12",
31
27
  "vue": "^3.5.0"
32
28
  },
33
29
  "dependencies": {
34
30
  "@rive-app/canvas": "^2.31.6",
35
- "reka-ui": "^2.5.1"
31
+ "@tailwindcss/typography": "^0.5.19",
32
+ "@tailwindcss/vite": "^4.1.13",
33
+ "reka-ui": "^2.5.1",
34
+ "tailwindcss": "^4.1.13",
35
+ "typewriter-effect": "^2.22.0",
36
+ "embla-carousel-autoplay": "^8.6.0",
37
+ "embla-carousel-vue": "^8.6.0"
36
38
  },
37
- "keywords": [
38
- "vitepress",
39
- "theme",
40
- "voidzero",
41
- "tailwind"
42
- ],
43
- "license": "MIT",
44
39
  "devDependencies": {
45
40
  "@vitejs/plugin-vue": "^6.0.1",
41
+ "tsdown": "^0.15.11",
46
42
  "typescript": "^5.9.3",
43
+ "unplugin-vue": "^7.0.4",
47
44
  "vite": "^7.1.12",
45
+ "vite-plugin-dts": "^4.5.4",
46
+ "vite-plugin-static-copy": "^3.1.4",
48
47
  "vue-tsc": "^3.1.2"
49
48
  }
50
49
  }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" fill="none" viewBox="0 0 20 19"><circle cx="10" cy="9.5" r="9" stroke="#3b3440" stroke-width=".5"/><path stroke="#fff" stroke-width="1.2" d="M17.794 14a9 9 0 0 0 0-9M2.206 14a9 9 0 0 1 0-9"/><path stroke="#fff" stroke-linejoin="bevel" stroke-width="1.2" d="m6.249 9.788 2.308 2.309 5.195-5.195"/></svg>
Binary file
@@ -1,11 +0,0 @@
1
- <script setup lang="ts">
2
- defineProps<{
3
- title: string
4
- }>()
5
- </script>
6
-
7
- <template>
8
- <section class="wrapper wrapper--ticks border-t p-5 pl-10">
9
- <span class="text-nickel dark:text-white text-xs font-medium font-mono uppercase tracking-wide">{{ title }}</span>
10
- </section>
11
- </template>
@@ -1,44 +0,0 @@
1
- <template>
2
- <footer class="bg-primary" data-theme="dark">
3
- <section class="wrapper">
4
- <div class="bg-wine py-16 md:py-30 px-5 md:px-0 overflow-clip flex flex-col items-center justify-center gap-8 md:gap-12">
5
- <h2 class="text-white w-full md:w-2xl text-center text-balance">Take your team's productivity to the next level with Vite+</h2>
6
- <div class="flex items-center gap-5">
7
- <a href="https://tally.so/r/nGWebL" target="_blank" rel="noopener noreferrer" class="button">Register your interest</a>
8
- <a href="https://voidzero.dev/posts/announcing-vite-plus?utm_source=viteplusdev&utm_content=bottom_learn_more" target="_blank" rel="noopener noreferrer" class="button">
9
- Learn more
10
- </a>
11
- </div>
12
- </div>
13
- <div class="px-5 md:px-24 pt-10 md:pt-16 pb-16 md:pb-30 flex flex-col md:flex-row gap-10 md:gap-0 md:justify-between">
14
- <div>
15
- <p class="text-grey text-xs font-mono uppercase tracking-wide mb-8">Company</p>
16
- <ul class="flex flex-col gap-3">
17
- <li><a href="https://voidzero.dev/" target="_blank" rel="noopener noreferrer" class="text-white text-base">VoidZero</a></li>
18
- <li><a href="https://vite.dev/" target="_blank" rel="noopener noreferrer" class="text-white text-base">Vite</a></li>
19
- <li><a href="https://rolldown.rs/" target="_blank" rel="noopener noreferrer" class="text-white text-base">Rolldown</a></li>
20
- <li><a href="https://vitest.dev/" target="_blank" rel="noopener noreferrer" class="text-white text-base">Vitest</a></li>
21
- <li><a href="https://oxc.rs/" target="_blank" rel="noopener noreferrer" class="text-white text-base">Oxc</a></li>
22
- </ul>
23
- </div>
24
- <div>
25
- <p class="text-grey text-xs font-mono uppercase tracking-wide mb-8">Social</p>
26
- <ul class="flex flex-col gap-3">
27
- <li><a href="https://github.com/voidzero-dev" target="_blank" rel="noopener noreferrer" class="text-white text-base">GitHub</a></li>
28
- <li><a href="https://web-cdn.bsky.app/profile/voidzero.dev" target="_blank" rel="noopener noreferrer" class="text-white text-base">Bluesky</a></li>
29
- <li><a href="https://x.com/voidzerodev" target="_blank" rel="noopener noreferrer" class="text-white text-base">X.com</a></li>
30
- </ul>
31
- </div>
32
- </div>
33
- </section>
34
- <section class="wrapper wrapper--ticks border-t py-5 px-5 md:px-24">
35
- <p class="text-sm">© {{ new Date().getFullYear() }} VoidZero Inc. <span class="hidden sm:inline ">All Rights Reserved.</span></p>
36
- </section>
37
- </footer>
38
- </template>
39
-
40
- <style scoped>
41
-
42
- </style>
43
- <script setup lang="ts">
44
- </script>
@@ -1,38 +0,0 @@
1
- <script setup lang="ts">
2
- import {useData, useRoute} from 'vitepress'
3
-
4
- const {site, theme} = useData()
5
- const nav = theme.value.nav
6
-
7
- const route = useRoute()
8
- </script>
9
-
10
- <template>
11
- <header class="wrapper px-6 py-7 flex items-center justify-between">
12
- <div class="flex items-center gap-10">
13
- <a href="/" class="text-primary dark:text-white font-heading text-lg font-medium">
14
- {{ site.title }}
15
- </a>
16
- <ul class="nav">
17
- <li v-for="navItem in nav" :key="navItem.link">
18
- <a
19
- :class="{ active: route.path === navItem.link }"
20
- :href="navItem.link"
21
- >
22
- {{ navItem.text }}
23
- </a>
24
- </li>
25
- </ul>
26
- </div>
27
-
28
- <div class="flex items-center gap-6">
29
- <slot name="right-side">
30
- <!-- Right-aligned links / calls-to-action -->
31
- </slot>
32
- </div>
33
- </header>
34
- </template>
35
-
36
- <style scoped>
37
-
38
- </style>
@@ -1,144 +0,0 @@
1
- <script setup lang="ts">
2
- import * as rive from "@rive-app/canvas"
3
- import { ref, onMounted, onUnmounted, computed } from "vue"
4
-
5
- interface Props {
6
- desktopSrc: string
7
- mobileSrc?: string
8
- breakpoint?: number
9
- stateMachines?: string
10
- canvasClass?: string
11
- desktopWidth?: number
12
- desktopHeight?: number
13
- mobileWidth?: number
14
- mobileHeight?: number
15
- }
16
-
17
- const props = withDefaults(defineProps<Props>(), {
18
- breakpoint: 768, // md breakpoint
19
- stateMachines: "State Machine 1",
20
- canvasClass: "w-full"
21
- })
22
-
23
- const canvasRef = ref<HTMLCanvasElement | null>(null)
24
- const containerRef = ref<HTMLElement | null>(null)
25
- let riveInstance: rive.Rive | null = null
26
- let hasStarted = ref(false)
27
- let observer: IntersectionObserver | null = null
28
-
29
- const isMobile = ref(false)
30
-
31
- const checkMobile = () => {
32
- isMobile.value = window.innerWidth < props.breakpoint
33
- }
34
-
35
- const getCurrentSrc = () => {
36
- return isMobile.value && props.mobileSrc ? props.mobileSrc : props.desktopSrc
37
- }
38
-
39
- const currentWidth = computed(() => {
40
- return isMobile.value && props.mobileWidth ? props.mobileWidth : props.desktopWidth
41
- })
42
-
43
- const currentHeight = computed(() => {
44
- return isMobile.value && props.mobileHeight ? props.mobileHeight : props.desktopHeight
45
- })
46
-
47
- const loadAnimation = () => {
48
- if (!canvasRef.value || riveInstance) return
49
-
50
- const src = getCurrentSrc()
51
-
52
- riveInstance = new rive.Rive({
53
- src,
54
- canvas: canvasRef.value,
55
- autoplay: false,
56
- stateMachines: props.stateMachines,
57
- onLoad: () => {
58
- riveInstance?.resizeDrawingSurfaceToCanvas()
59
- }
60
- })
61
- }
62
-
63
- const playAnimation = () => {
64
- if (riveInstance) {
65
- riveInstance.play()
66
- }
67
- }
68
-
69
- const cleanupAnimation = () => {
70
- if (riveInstance) {
71
- riveInstance.cleanup()
72
- riveInstance = null
73
- }
74
- }
75
-
76
- const handleResize = () => {
77
- const wasMobile = isMobile.value
78
- checkMobile()
79
-
80
- // If mobile state changed, reload with correct source
81
- if (wasMobile !== isMobile.value) {
82
- const wasPlaying = hasStarted.value
83
- cleanupAnimation()
84
- loadAnimation()
85
- if (wasPlaying) {
86
- playAnimation()
87
- }
88
- }
89
- }
90
-
91
- onMounted(() => {
92
- checkMobile()
93
-
94
- // Load animation immediately
95
- loadAnimation()
96
-
97
- // Set up intersection observer to play animation when in viewport
98
- observer = new IntersectionObserver(
99
- (entries) => {
100
- entries.forEach((entry) => {
101
- if (entry.isIntersecting && !hasStarted.value) {
102
- hasStarted.value = true
103
- playAnimation()
104
- }
105
- })
106
- },
107
- {
108
- threshold: 0.1 // Start when 10% visible
109
- }
110
- )
111
-
112
- if (containerRef.value) {
113
- observer.observe(containerRef.value)
114
- }
115
-
116
- // Listen for window resize to handle breakpoint changes
117
- window.addEventListener('resize', handleResize)
118
- })
119
-
120
- onUnmounted(() => {
121
- cleanupAnimation()
122
-
123
- if (observer && containerRef.value) {
124
- observer.unobserve(containerRef.value)
125
- observer.disconnect()
126
- }
127
-
128
- window.removeEventListener('resize', handleResize)
129
- })
130
- </script>
131
-
132
- <template>
133
- <div ref="containerRef" class="pointer-events-none touch-none select-none">
134
- <canvas
135
- ref="canvasRef"
136
- :width="currentWidth"
137
- :height="currentHeight"
138
- :class="canvasClass"
139
- />
140
- </div>
141
- </template>
142
-
143
- <style scoped>
144
- </style>