@mhmo91/schmancy 0.9.18 → 0.9.20

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 (78) hide show
  1. package/dist/agent/{flow-CaPi2G8y.js.map → flow-3RrZM-e7.js.map} +1 -1
  2. package/dist/agent/index.es-Dymj8REP.js +489 -0
  3. package/dist/agent/index.es-Dymj8REP.js.map +1 -0
  4. package/dist/agent/{rolldown-runtime-DsMetpgY.js → rolldown-runtime-BIIoCavz.js} +9 -2
  5. package/dist/agent/schmancy.agent.js +3330 -3805
  6. package/dist/agent/schmancy.agent.js.map +1 -1
  7. package/dist/agent/{vendor-highlight-CHJZQQB7.js → vendor-highlight-BmnMldIa.js} +90 -85
  8. package/dist/agent/{vendor-highlight-CHJZQQB7.js.map → vendor-highlight-BmnMldIa.js.map} +1 -1
  9. package/dist/agent/{vendor-jsqr-r7GNh4P3.js → vendor-jsqr-1wQ5xc49.js} +1 -1
  10. package/dist/agent/{vendor-jsqr-r7GNh4P3.js.map → vendor-jsqr-1wQ5xc49.js.map} +1 -1
  11. package/dist/agent/{vendor-material-color-Be96dpGE.js.map → vendor-material-color-33Mj762T.js.map} +1 -1
  12. package/dist/badge.cjs +1 -1
  13. package/dist/badge.js +1 -1
  14. package/dist/{code-highlight-zSYcSfCz.cjs → code-highlight-B_l8vDzn.cjs} +11 -11
  15. package/dist/code-highlight-B_l8vDzn.cjs.map +1 -0
  16. package/dist/{code-highlight-BgExKEto.js → code-highlight-CI_gqXYX.js} +30 -22
  17. package/dist/code-highlight-CI_gqXYX.js.map +1 -0
  18. package/dist/code-highlight.cjs +1 -1
  19. package/dist/code-highlight.js +1 -1
  20. package/dist/content-drawer.cjs +1 -1
  21. package/dist/content-drawer.js +1 -1
  22. package/dist/{flow-BGkHnOnd.js.map → flow-BPDtbhLe.js.map} +1 -1
  23. package/dist/{flow-ClAJ6Qby.cjs.map → flow-Dn9AZktE.cjs.map} +1 -1
  24. package/dist/handover/agent-runtime-followups.md +1 -1
  25. package/dist/handover/agent-runtime-v1.md +3 -3
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.es-BgmFX1JM.cjs +1 -0
  28. package/dist/index.es-BgmFX1JM.cjs.map +1 -0
  29. package/dist/index.es-CLyb_o3Y.js +489 -0
  30. package/dist/index.es-CLyb_o3Y.js.map +1 -0
  31. package/dist/index.js +5 -5
  32. package/dist/nav-drawer.cjs +1 -1
  33. package/dist/nav-drawer.js +1 -1
  34. package/dist/navigation-bar.cjs +1 -1
  35. package/dist/navigation-bar.js +1 -1
  36. package/dist/{splash-screen-COg3Z6n8.js.map → splash-screen-BHgb3c3Q.js.map} +1 -1
  37. package/dist/{splash-screen-C9HqX2nR.cjs.map → splash-screen-DteUfSV3.cjs.map} +1 -1
  38. package/dist/splash-screen.cjs +1 -1
  39. package/dist/splash-screen.js +1 -1
  40. package/dist/{src-C7niWYur.js → src-Dw-PjtMH.js} +5 -5
  41. package/dist/{src-C7niWYur.js.map → src-Dw-PjtMH.js.map} +1 -1
  42. package/dist/{src-I4M33WK2.cjs → src-sG7Ihf0e.cjs} +1 -1
  43. package/dist/{src-I4M33WK2.cjs.map → src-sG7Ihf0e.cjs.map} +1 -1
  44. package/dist/{table-B-DsOqzT.cjs → table-DFlJhG5E.cjs} +1 -1
  45. package/dist/{table-B-DsOqzT.cjs.map → table-DFlJhG5E.cjs.map} +1 -1
  46. package/dist/{table-hBEZRxM_.js → table-Dwt66SR6.js} +1 -1
  47. package/dist/{table-hBEZRxM_.js.map → table-Dwt66SR6.js.map} +1 -1
  48. package/dist/table.cjs +1 -1
  49. package/dist/table.js +1 -1
  50. package/dist/teleport.cjs +1 -1
  51. package/dist/teleport.js +1 -1
  52. package/dist/typewriter.cjs +123 -1
  53. package/dist/typewriter.cjs.map +1 -0
  54. package/dist/typewriter.js +214 -2
  55. package/dist/typewriter.js.map +1 -0
  56. package/dist/{utils-xBXLvebz.js.map → utils-Bp2jhyZc.js.map} +1 -1
  57. package/dist/{utils-2qrmPb78.cjs.map → utils-CBPQvxNW.cjs.map} +1 -1
  58. package/dist/utils.cjs +1 -1
  59. package/dist/utils.js +1 -1
  60. package/package.json +1 -1
  61. package/src/code-highlight/code-highlight.ts +56 -24
  62. package/src/typewriter/typewriter.ts +26 -4
  63. package/types/src/code-highlight/code-highlight.d.ts +8 -1
  64. package/types/src/typewriter/typewriter.d.ts +4 -1
  65. package/dist/code-highlight-BgExKEto.js.map +0 -1
  66. package/dist/code-highlight-zSYcSfCz.cjs.map +0 -1
  67. package/dist/typewriter-DyN7xa0n.js +0 -701
  68. package/dist/typewriter-DyN7xa0n.js.map +0 -1
  69. package/dist/typewriter-LK0S4NEr.cjs +0 -123
  70. package/dist/typewriter-LK0S4NEr.cjs.map +0 -1
  71. /package/dist/agent/{flow-CaPi2G8y.js → flow-3RrZM-e7.js} +0 -0
  72. /package/dist/agent/{vendor-material-color-Be96dpGE.js → vendor-material-color-33Mj762T.js} +0 -0
  73. /package/dist/{flow-BGkHnOnd.js → flow-BPDtbhLe.js} +0 -0
  74. /package/dist/{flow-ClAJ6Qby.cjs → flow-Dn9AZktE.cjs} +0 -0
  75. /package/dist/{splash-screen-COg3Z6n8.js → splash-screen-BHgb3c3Q.js} +0 -0
  76. /package/dist/{splash-screen-C9HqX2nR.cjs → splash-screen-DteUfSV3.cjs} +0 -0
  77. /package/dist/{utils-xBXLvebz.js → utils-Bp2jhyZc.js} +0 -0
  78. /package/dist/{utils-2qrmPb78.cjs → utils-CBPQvxNW.cjs} +0 -0
@@ -0,0 +1,489 @@
1
+ var e = (e) => Array.isArray(e), t = (t) => e(t) ? t : [t], n = "data-typeit-id", r = "ti-cursor", i = {
2
+ started: !1,
3
+ completed: !1,
4
+ frozen: !1,
5
+ destroyed: !1
6
+ }, a = {
7
+ breakLines: !0,
8
+ cursor: {
9
+ autoPause: !0,
10
+ autoPauseDelay: 500,
11
+ animation: {
12
+ frames: [
13
+ 0,
14
+ 0,
15
+ 1
16
+ ].map((e) => ({ opacity: e })),
17
+ options: {
18
+ iterations: Infinity,
19
+ easing: "steps(2, start)",
20
+ fill: "forwards"
21
+ }
22
+ }
23
+ },
24
+ cursorChar: "|",
25
+ cursorSpeed: 1e3,
26
+ deleteSpeed: null,
27
+ html: !0,
28
+ lifeLike: !0,
29
+ loop: !1,
30
+ loopDelay: 750,
31
+ nextStringDelay: 750,
32
+ speed: 100,
33
+ startDelay: 250,
34
+ startDelete: !1,
35
+ strings: [],
36
+ waitUntilVisible: !1,
37
+ beforeString: () => {},
38
+ afterString: () => {},
39
+ beforeStep: () => {},
40
+ afterStep: () => {},
41
+ afterComplete: () => {}
42
+ }, o = `[${n}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`, s = (e) => document.createElement(e), c = (e) => document.createTextNode(e), l = (e, t = "") => {
43
+ let n = s("style");
44
+ n.id = t, n.appendChild(c(e)), document.head.appendChild(n);
45
+ }, u = (t) => (e(t) || (t = [t / 2, t / 2]), t), d = (e, t) => Math.abs(Math.random() * (e + t - (e - t)) + (e - t)), f = (e) => e / 2, p = (e) => Array.from(e), m = (e) => ([...e.childNodes].forEach((e) => {
46
+ if (e.nodeValue) return [...e.nodeValue].forEach((t) => {
47
+ e.parentNode.insertBefore(c(t), e);
48
+ }), void e.remove();
49
+ m(e);
50
+ }), e), h = (e) => {
51
+ let t = document.implementation.createHTMLDocument();
52
+ return t.body.innerHTML = e, m(t.body);
53
+ };
54
+ function g(e, t = !1, n = !1) {
55
+ let i, a = e.querySelector(`.${r}`), o = document.createTreeWalker(e, NodeFilter.SHOW_ALL, { acceptNode: (e) => {
56
+ if (a && n) {
57
+ if (e.classList?.contains(r)) return NodeFilter.FILTER_ACCEPT;
58
+ if (a.contains(e)) return NodeFilter.FILTER_REJECT;
59
+ }
60
+ return e.classList?.contains(r) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
61
+ } }), s = [];
62
+ for (; i = o.nextNode();) i.originalParent ||= i.parentNode, s.push(i);
63
+ return t ? s.reverse() : s;
64
+ }
65
+ function _(e, t = !0) {
66
+ return t ? g(h(e)) : p(e).map(c);
67
+ }
68
+ var v = ({ index: e, newIndex: t, queueItems: n, cleanUp: r }) => {
69
+ for (let i = e + 1; i < t + 1; i++) r(n[i][0]);
70
+ }, y = (e) => Number.isInteger(e), b = ({ queueItems: e, selector: t, cursorPosition: n, to: r }) => {
71
+ if (y(t)) return -1 * t;
72
+ let i = (/* @__PURE__ */ RegExp("END", "i")).test(r), a = t ? [...e].reverse().findIndex(({ char: e }) => {
73
+ let n = e.parentElement, r = n.matches(t);
74
+ return !(!i || !r) || r && n.firstChild.isSameNode(e);
75
+ }) : -1;
76
+ return a < 0 && (a = i ? 0 : e.length - 1), a - n + +!i;
77
+ }, x = (e, t) => Array(t).fill(e), S = (e) => new Promise((t) => {
78
+ requestAnimationFrame(async () => {
79
+ t(await e());
80
+ });
81
+ }), C = (e) => e?.getAnimations().find((t) => t.id === e.dataset.tiAnimationId), w = ({ cursor: e, frames: t, options: n }) => {
82
+ let r = e.animate(t, n);
83
+ return r.pause(), r.id = e.dataset.tiAnimationId, S(() => {
84
+ S(() => {
85
+ r.play();
86
+ });
87
+ }), r;
88
+ }, T = (e) => e.func?.call(null), E = async ({ index: e, queueItems: t, wait: n, cursor: r, cursorOptions: i }) => {
89
+ let a = t[e][1], o = [], s = e, c = a, l = () => c && !c.delay, u = a.shouldPauseCursor() && i.autoPause;
90
+ for (; l();) o.push(c), l() && s++, c = t[s] ? t[s][1] : null;
91
+ if (o.length) return await S(async () => {
92
+ for (let e of o) await T(e);
93
+ }), s - 1;
94
+ let d, f = C(r);
95
+ return f && (d = {
96
+ ...f.effect.getComputedTiming(),
97
+ delay: u ? i.autoPauseDelay : 0
98
+ }), await n(async () => {
99
+ f && u && f.cancel(), await S(() => {
100
+ T(a);
101
+ });
102
+ }, a.delay), await (({ cursor: e, options: t, cursorOptions: n }) => {
103
+ if (!e || !n) return;
104
+ let r, i = C(e);
105
+ i && (t.delay = i.effect.getComputedTiming().delay, r = i.currentTime, i.cancel());
106
+ let a = w({
107
+ cursor: e,
108
+ frames: n.animation.frames,
109
+ options: t
110
+ });
111
+ return r && (a.currentTime = r), a;
112
+ })({
113
+ cursor: r,
114
+ options: d,
115
+ cursorOptions: i
116
+ }), e;
117
+ }, D = (e) => "value" in e, O = (e) => typeof e == "function" ? e() : e, k = (e, t = document, n = !1) => t["querySelector" + (n ? "All" : "")](e), A = (e, t) => Object.assign({}, e, t), j = {
118
+ "font-family": "",
119
+ "font-weight": "",
120
+ "font-size": "",
121
+ "font-style": "",
122
+ "line-height": "",
123
+ color: "",
124
+ transform: "translateX(-.125em)"
125
+ }, M = class {
126
+ element;
127
+ timeouts;
128
+ cursorPosition;
129
+ predictedCursorPosition;
130
+ statuses = {
131
+ started: !1,
132
+ completed: !1,
133
+ frozen: !1,
134
+ destroyed: !1,
135
+ firing: !1
136
+ };
137
+ opts;
138
+ id;
139
+ queue;
140
+ cursor;
141
+ flushCallback = null;
142
+ unfreeze = () => {};
143
+ constructor(e, n = {}) {
144
+ var r;
145
+ this.opts = A(a, n), this.element = typeof (r = e) == "string" ? k(r) : r, this.timeouts = [], this.cursorPosition = 0, this.unfreeze = () => {}, this.predictedCursorPosition = null, this.statuses = A({}, i), this.id = Math.random().toString().substring(2, 9), this.queue = function(e) {
146
+ let n = function(e) {
147
+ return t(e).forEach((e) => o.set(Symbol(e.char?.innerText), r({ ...e }))), this;
148
+ }, r = (e) => (e.shouldPauseCursor = function() {
149
+ return !!(this.typeable || this.cursorable || this.deletable);
150
+ }, e), i = () => o, a = () => Array.from(o.values()), o = /* @__PURE__ */ new Map();
151
+ return n(e), {
152
+ add: n,
153
+ set: function(e, t) {
154
+ let n = [...o.keys()];
155
+ o.set(n[e], r(t));
156
+ },
157
+ wipe: function() {
158
+ o = /* @__PURE__ */ new Map(), n(e);
159
+ },
160
+ done: (e, t = !1) => t ? o.delete(e) : o.get(e).done = !0,
161
+ reset: function() {
162
+ o.forEach((e) => delete e.done);
163
+ },
164
+ destroy: (e) => o.delete(e),
165
+ getItems: (e = !1) => e ? a() : a().filter((e) => !e.done),
166
+ getQueue: i,
167
+ getTypeable: () => a().filter((e) => e.typeable),
168
+ getPendingQueueItems: () => {
169
+ let e = [];
170
+ for (let [, t] of i()) t.done || e.push(t);
171
+ return e;
172
+ }
173
+ };
174
+ }([{ delay: this.opts.startDelay }]), this.#p(n), this.cursor = this.#h(), this.element.dataset.typeitId = this.id, l(o), this.opts.strings.length && this.#f();
175
+ }
176
+ go() {
177
+ return this.statuses.started ? this : (this.#o(), this.opts.waitUntilVisible ? (e = this.element, t = this.#t.bind(this), new IntersectionObserver((n, r) => {
178
+ n.forEach((n) => {
179
+ n.isIntersecting && (t(), r.unobserve(e));
180
+ });
181
+ }, { threshold: 1 }).observe(e), this) : (this.#t(), this));
182
+ var e, t;
183
+ }
184
+ destroy(e = !0) {
185
+ this.timeouts = (this.timeouts.forEach(clearTimeout), []), O(e) && this.cursor && this.#y(this.cursor), this.statuses.destroyed = !0;
186
+ }
187
+ reset(e) {
188
+ !this.is("destroyed") && this.destroy(), e ? (this.queue.wipe(), e(this)) : this.queue.reset(), this.cursorPosition = 0;
189
+ for (let e in this.statuses) this.statuses[e] = !1;
190
+ return this.element[this.#s() ? "value" : "innerHTML"] = "", this;
191
+ }
192
+ is = function(e) {
193
+ return this.statuses[e];
194
+ };
195
+ type(e, t = {}) {
196
+ e = O(e);
197
+ let { instant: n } = t, r = this.#u(t), i = _(e, this.opts.html).map((e) => {
198
+ return {
199
+ func: () => this.#_(e),
200
+ char: e,
201
+ delay: n || (t = e, /<(.+)>(.*?)<\/(.+)>/.test(t.outerHTML)) ? 0 : this.#b(),
202
+ typeable: e.nodeType === Node.TEXT_NODE
203
+ };
204
+ var t;
205
+ }), a = [
206
+ r[0],
207
+ { func: async () => await this.opts.beforeString(e, this) },
208
+ ...i,
209
+ { func: async () => await this.opts.afterString(e, this) },
210
+ r[1]
211
+ ];
212
+ return this.#c(a, t);
213
+ }
214
+ break(e = {}) {
215
+ return this.#c({
216
+ func: () => this.#_(s("BR")),
217
+ typeable: !0
218
+ }, e);
219
+ }
220
+ move(e, t = {}) {
221
+ e = O(e);
222
+ let n = this.#u(t), { instant: r, to: i } = t, a = b({
223
+ queueItems: this.queue.getTypeable(),
224
+ selector: e === null ? "" : e,
225
+ to: i,
226
+ cursorPosition: this.#x
227
+ }), o = a < 0 ? -1 : 1;
228
+ return this.predictedCursorPosition = this.#x + a, this.#c([
229
+ n[0],
230
+ ...x({
231
+ func: () => this.#n(o),
232
+ delay: r ? 0 : this.#b(),
233
+ cursorable: !0
234
+ }, Math.abs(a)),
235
+ n[1]
236
+ ], t);
237
+ }
238
+ exec(e, t = {}) {
239
+ let n = this.#u(t);
240
+ return this.#c([
241
+ n[0],
242
+ { func: () => e(this) },
243
+ n[1]
244
+ ], t);
245
+ }
246
+ options(e, t = {}) {
247
+ return e = O(e), this.#d(e), this.#c({}, t);
248
+ }
249
+ pause(e, t = {}) {
250
+ return this.#c({ delay: O(e) }, t);
251
+ }
252
+ delete(e = null, t = {}) {
253
+ e = O(e);
254
+ let n = this.#u(t), r = e, { instant: i, to: a } = t, o = this.queue.getTypeable(), s = r === null ? o.length : y(r) ? r : b({
255
+ queueItems: o,
256
+ selector: r,
257
+ cursorPosition: this.#x,
258
+ to: a
259
+ });
260
+ return this.#c([
261
+ n[0],
262
+ ...x({
263
+ func: this.#v.bind(this),
264
+ delay: i ? 0 : this.#b(1),
265
+ deletable: !0
266
+ }, s),
267
+ n[1]
268
+ ], t);
269
+ }
270
+ freeze() {
271
+ this.statuses.frozen = !0;
272
+ }
273
+ flush(e = null) {
274
+ return this.flushCallback = e || this.flushCallback, this.statuses.firing || (this.#o(), this.#t(!1).then(() => {
275
+ if (this.queue.getPendingQueueItems().length > 0) return this.flush();
276
+ this.flushCallback(), this.flushCallback = null;
277
+ })), this;
278
+ }
279
+ getQueue() {
280
+ return this.queue;
281
+ }
282
+ getOptions() {
283
+ return this.opts;
284
+ }
285
+ updateOptions(e) {
286
+ return this.#d(e);
287
+ }
288
+ getElement() {
289
+ return this.element;
290
+ }
291
+ empty(e = {}) {
292
+ return this.#c({ func: this.#e.bind(this) }, e);
293
+ }
294
+ async #e() {
295
+ this.#s() ? this.element.value = "" : this.#w.forEach(this.#y.bind(this));
296
+ }
297
+ async #t(e = !0) {
298
+ this.statuses.started = !0, this.statuses.firing = !0;
299
+ let t = (t) => {
300
+ this.queue.done(t, !e);
301
+ };
302
+ try {
303
+ let n = [...this.queue.getQueue()];
304
+ for (let e = 0; e < n.length; e++) {
305
+ let [r, i] = n[e];
306
+ if (!i.done) {
307
+ if (!i.deletable || i.deletable && this.#w.length) {
308
+ let r = await this.#i(e, n);
309
+ v({
310
+ index: e,
311
+ newIndex: r,
312
+ queueItems: n,
313
+ cleanUp: t
314
+ }), e = r;
315
+ }
316
+ t(r);
317
+ }
318
+ }
319
+ if (!e) return this.statuses.firing = !1, this;
320
+ if (this.statuses.completed = !0, this.statuses.firing = !1, await this.opts.afterComplete(this), !this.opts.loop) throw "";
321
+ let r = this.opts.loopDelay;
322
+ this.#a(async () => {
323
+ await this.#r(r[0]), this.#t();
324
+ }, r[1]);
325
+ } catch {}
326
+ return this.statuses.firing = !1, this;
327
+ }
328
+ async #n(e) {
329
+ var t, n, i;
330
+ this.cursorPosition = (t = e, n = this.cursorPosition, i = this.#w, Math.min(Math.max(n + t, 0), i.length)), ((e, t, n) => {
331
+ let i = t[n - 1], a = k(`.${r}`, e);
332
+ (e = i?.parentNode || e).insertBefore(a, i || null);
333
+ })(this.element, this.#w, this.cursorPosition);
334
+ }
335
+ async #r(e) {
336
+ let t = this.#x;
337
+ t && await this.#n({ value: t });
338
+ let n = this.#w.map((e) => [Symbol(), {
339
+ func: this.#v.bind(this),
340
+ delay: this.#b(1),
341
+ deletable: !0,
342
+ shouldPauseCursor: () => !0
343
+ }]);
344
+ for (let e = 0; e < n.length; e++) await this.#i(e, n);
345
+ this.queue.reset(), this.queue.set(0, { delay: e });
346
+ }
347
+ #i(e, t) {
348
+ return E({
349
+ index: e,
350
+ queueItems: t,
351
+ wait: this.#a.bind(this),
352
+ cursor: this.cursor,
353
+ cursorOptions: this.opts.cursor
354
+ });
355
+ }
356
+ async #a(e, t, n = !1) {
357
+ this.statuses.frozen && await new Promise((e) => {
358
+ this.unfreeze = () => {
359
+ this.statuses.frozen = !1, e();
360
+ };
361
+ }), n || await this.opts.beforeStep(this), await ((e, t, n) => new Promise((r) => {
362
+ n.push(setTimeout(async () => {
363
+ await e(), r();
364
+ }, t || 0));
365
+ }))(e, t, this.timeouts), n || await this.opts.afterStep(this);
366
+ }
367
+ async #o() {
368
+ if (!this.#s() && this.cursor && this.element.appendChild(this.cursor), this.#C) {
369
+ ((e, t) => {
370
+ let i = `[${n}='${e}'] .${r}`, a = getComputedStyle(t);
371
+ l(`${i} { display: inline-block; width: 0; ${Object.entries(j).reduce((e, [t, n]) => `${e} ${t}: var(--ti-cursor-${t}, ${n || a[t]});`, "")} }`, e);
372
+ })(this.id, this.element), this.cursor.dataset.tiAnimationId = this.id;
373
+ let { animation: e } = this.opts.cursor, { frames: t, options: i } = e;
374
+ w({
375
+ frames: t,
376
+ cursor: this.cursor,
377
+ options: {
378
+ duration: this.opts.cursorSpeed,
379
+ ...i
380
+ }
381
+ });
382
+ }
383
+ }
384
+ #s() {
385
+ return D(this.element);
386
+ }
387
+ #c(e, t) {
388
+ return this.queue.add(e), this.#l(t), this;
389
+ }
390
+ #l(e = {}) {
391
+ let t = e.delay;
392
+ t && this.queue.add({ delay: t });
393
+ }
394
+ #u(e = {}) {
395
+ return [{ func: () => this.#d(e) }, { func: () => this.#d(this.opts) }];
396
+ }
397
+ async #d(e) {
398
+ this.opts = A(this.opts, e);
399
+ }
400
+ #f() {
401
+ let e = this.opts.strings.filter((e) => !!e);
402
+ e.forEach((t, n) => {
403
+ if (this.type(t), n + 1 === e.length) return;
404
+ let r = this.opts.breakLines ? [{
405
+ func: () => this.#_(s("BR")),
406
+ typeable: !0
407
+ }] : x({
408
+ func: this.#v.bind(this),
409
+ delay: this.#b(1)
410
+ }, this.queue.getTypeable().length);
411
+ this.#g(r);
412
+ });
413
+ }
414
+ #p = (e) => {
415
+ this.opts.cursor = ((e) => {
416
+ if (typeof e == "object") {
417
+ let t = {}, { frames: n, options: r } = a.cursor.animation;
418
+ return t.animation = e.animation || {}, t.animation.frames = e.animation?.frames || n, t.animation.options = A(r, e.animation?.options || {}), t.autoPause = e.autoPause ?? a.cursor.autoPause, t.autoPauseDelay = e.autoPauseDelay || a.cursor.autoPauseDelay, t;
419
+ }
420
+ return !0 === e ? a.cursor : e;
421
+ })(e.cursor ?? a.cursor), this.opts.strings = this.#m(t(this.opts.strings)), this.opts = A(this.opts, {
422
+ html: !this.#S && this.opts.html,
423
+ nextStringDelay: u(this.opts.nextStringDelay),
424
+ loopDelay: u(this.opts.loopDelay)
425
+ });
426
+ };
427
+ #m(e) {
428
+ let t = this.element.innerHTML;
429
+ return t ? (this.element.innerHTML = "", this.opts.startDelete ? (this.element.innerHTML = t, m(this.element), this.#g(x({
430
+ func: this.#v.bind(this),
431
+ delay: this.#b(1),
432
+ deletable: !0
433
+ }, this.#w.length)), e) : (n = t, n.replace(/<!--(.+?)-->/g, "").trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)) : e;
434
+ var n;
435
+ }
436
+ #h() {
437
+ if (this.#S) return null;
438
+ let e = s("span");
439
+ return e.className = r, this.#C ? (e.innerHTML = h(this.opts.cursorChar).innerHTML, e) : (e.style.visibility = "hidden", e);
440
+ }
441
+ #g(e) {
442
+ let t = this.opts.nextStringDelay;
443
+ this.queue.add([
444
+ { delay: t[0] },
445
+ ...e,
446
+ { delay: t[1] }
447
+ ]);
448
+ }
449
+ #_(e) {
450
+ ((e, t) => {
451
+ if (D(e)) return void (e.value = `${e.value}${t.textContent}`);
452
+ t.innerHTML = "";
453
+ let n = (i = t.originalParent, /body/i.test(i?.tagName) ? e : t.originalParent || e);
454
+ var i;
455
+ let a = k("." + r, n) || null;
456
+ a && a.parentElement !== n && (n = a.parentElement), n.insertBefore(t, a);
457
+ })(this.element, e);
458
+ }
459
+ #v() {
460
+ this.#w.length && (this.#S ? this.element.value = this.element.value.slice(0, -1) : this.#y(this.#w[this.cursorPosition]));
461
+ }
462
+ #y(e) {
463
+ ((e, t) => {
464
+ if (!e) return;
465
+ let n = e.parentNode;
466
+ (n.childNodes.length > 1 || n.isSameNode(t) ? e : n).remove();
467
+ })(e, this.element);
468
+ }
469
+ #b(e = 0) {
470
+ return function(e) {
471
+ let { speed: t, deleteSpeed: n, lifeLike: r } = e;
472
+ return n = n === null ? t / 3 : n, r ? [d(t, f(t)), d(n, f(n))] : [t, n];
473
+ }(this.opts)[e];
474
+ }
475
+ get #x() {
476
+ return this.predictedCursorPosition ?? this.cursorPosition;
477
+ }
478
+ get #S() {
479
+ return D(this.element);
480
+ }
481
+ get #C() {
482
+ return !!this.opts.cursor && !this.#S;
483
+ }
484
+ get #w() {
485
+ return e = this.element, D(e) ? p(e.value) : g(e, !0).filter((e) => !(e.childNodes.length > 0));
486
+ var e;
487
+ }
488
+ };
489
+ export { M as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es-Dymj8REP.js","names":["#buildOptions","#setUpCursor","#generateQueue","#attachCursor","#fire","#removeNode","#elementIsInput","#generateTemporaryOptionQueueItems","#type","#getPace","#queueAndReturn","#derivedCursorPosition","#move","#updateOptions","#delete","#empty","#allChars","#fireItemWithContext","#wait","#prepLoop","#shouldRenderCursor","#maybeAppendPause","#addSplitPause","#prependHardcodedStrings","#isInput"],"sources":["../../node_modules/typeit/dist/index.es.js"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -1,4 +1,11 @@
1
- var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (o, s, c) => (c = o == null ? {} : e(i(o)), ((e, i, o, s) => {
1
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, n) => {
2
+ let r = {};
3
+ for (var i in e) t(r, i, {
4
+ get: e[i],
5
+ enumerable: !0
6
+ });
7
+ return n || t(r, Symbol.toStringTag, { value: "Module" }), r;
8
+ }, c = (o, s, c) => (c = o == null ? {} : e(i(o)), ((e, i, o, s) => {
2
9
  if (i && typeof i == "object" || typeof i == "function") for (var c, l = r(i), u = 0, d = l.length; u < d; u++) c = l[u], a.call(e, c) || c === o || t(e, c, {
3
10
  get: ((e) => i[e]).bind(null, c),
4
11
  enumerable: !(s = n(i, c)) || s.enumerable
@@ -8,4 +15,4 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
8
15
  value: o,
9
16
  enumerable: !0
10
17
  }), o));
11
- export { s as n, o as t };
18
+ export { s as n, c as r, o as t };