@harmonics/lattice-ui 0.0.0-stage → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1774 @@
1
+ import { A as e, D as t, a as n, g as r, j as i, l as a, o, s } from "./hexes-DN9eyQho.js";
2
+ //#region ../../node_modules/.bun/solid-js@1.9.17/node_modules/solid-js/dist/solid.js
3
+ var c = {
4
+ context: void 0,
5
+ registry: void 0,
6
+ effects: void 0,
7
+ done: !1,
8
+ getContextId() {
9
+ return l(this.context.count);
10
+ },
11
+ getNextContextId() {
12
+ return l(this.context.count++);
13
+ }
14
+ };
15
+ function l(e) {
16
+ let t = String(e), n = t.length - 1;
17
+ return c.context.id + (n ? String.fromCharCode(96 + n) : "") + t;
18
+ }
19
+ function u(e) {
20
+ c.context = e;
21
+ }
22
+ var d = (e, t) => e === t, f = Symbol("solid-track"), p = { equals: d }, m = null, h = me, g = 1, _ = 2, v = {
23
+ owned: null,
24
+ cleanups: null,
25
+ context: null,
26
+ owner: null
27
+ }, y = null, b = null, x = null, S = null, C = null, ee = 0;
28
+ function w(e, t) {
29
+ let n = x, r = y, i = e.length === 0, a = t === void 0 ? r : t, o = i ? v : {
30
+ owned: null,
31
+ cleanups: null,
32
+ context: a ? a.context : null,
33
+ owner: a
34
+ }, s = i ? e : () => e(() => O(() => M(o)));
35
+ y = o, x = null;
36
+ try {
37
+ return j(s, !0);
38
+ } finally {
39
+ x = n, y = r;
40
+ }
41
+ }
42
+ function T(e, t) {
43
+ t = t ? Object.assign({}, p, t) : p;
44
+ let n = {
45
+ value: e,
46
+ observers: null,
47
+ observerSlots: null,
48
+ comparator: t.equals || void 0
49
+ };
50
+ return [ce.bind(n), (e) => (typeof e == "function" && (e = b && b.running && b.sources.has(n) ? e(n.tValue) : e(n.value)), le(n, e))];
51
+ }
52
+ function E(e, t, n) {
53
+ A(de(e, t, !1, g));
54
+ }
55
+ function te(e, t, n) {
56
+ h = he;
57
+ let r = de(e, t, !1, g), i = se && ae(se);
58
+ i && (r.suspense = i), (!n || !n.render) && (r.user = !0), C ? C.push(r) : A(r);
59
+ }
60
+ function D(e, t, n) {
61
+ n = n ? Object.assign({}, p, n) : p;
62
+ let r = de(e, t, !0, 0);
63
+ return r.observers = null, r.observerSlots = null, r.comparator = n.equals || void 0, A(r), ce.bind(r);
64
+ }
65
+ function O(e) {
66
+ if (x === null) return e();
67
+ let t = x;
68
+ x = null;
69
+ try {
70
+ return e();
71
+ } finally {
72
+ x = t;
73
+ }
74
+ }
75
+ function ne(e, t, n) {
76
+ let r = Array.isArray(e), i, a = n && n.defer;
77
+ return (n) => {
78
+ let o;
79
+ if (r) {
80
+ o = Array(e.length);
81
+ for (let t = 0; t < e.length; t++) o[t] = e[t]();
82
+ } else o = e();
83
+ if (a) return a = !1, n;
84
+ let s = O(() => t(o, i, n));
85
+ return i = o, s;
86
+ };
87
+ }
88
+ function k(e) {
89
+ return y === null || (y.cleanups === null ? y.cleanups = [e] : y.cleanups.push(e)), e;
90
+ }
91
+ var [re, ie] = /*@__PURE__*/ T(!1);
92
+ function ae(e) {
93
+ let t;
94
+ return y && y.context && (t = y.context[e.id]) !== void 0 ? t : e.defaultValue;
95
+ }
96
+ function oe(e) {
97
+ let t = D(e), n = D(() => Se(t()));
98
+ return n.toArray = () => {
99
+ let e = n();
100
+ return Array.isArray(e) ? e : e == null ? [] : [e];
101
+ }, n;
102
+ }
103
+ var se;
104
+ function ce() {
105
+ let e = b && b.running;
106
+ if (this.sources && (e ? this.tState : this.state)) {
107
+ if ((e ? this.tState : this.state) === g) A(this);
108
+ else {
109
+ let e = S;
110
+ S = null, j(() => ge(this), !1), S = e;
111
+ }
112
+ }
113
+ if (x) {
114
+ let e = this.observers;
115
+ if (!e || e[e.length - 1] !== x) {
116
+ let t = e ? e.length : 0;
117
+ x.sources ? (x.sources.push(this), x.sourceSlots.push(t)) : (x.sources = [this], x.sourceSlots = [t]), e ? (e.push(x), this.observerSlots.push(x.sources.length - 1)) : (this.observers = [x], this.observerSlots = [x.sources.length - 1]);
118
+ }
119
+ }
120
+ return e && b.sources.has(this) ? this.tValue : this.value;
121
+ }
122
+ function le(e, t, n) {
123
+ let r = b && b.running && b.sources.has(e) ? e.tValue : e.value;
124
+ if (!e.comparator || !e.comparator(r, t)) {
125
+ if (b) {
126
+ let r = b.running;
127
+ (r || !n && b.sources.has(e)) && (b.sources.add(e), e.tValue = t), r || (e.value = t);
128
+ } else e.value = t;
129
+ e.observers && e.observers.length && j(() => {
130
+ for (let t = 0; t < e.observers.length; t += 1) {
131
+ let n = e.observers[t], r = b && b.running;
132
+ r && b.disposed.has(n) || ((r ? !n.tState : !n.state) && (n.pure ? S.push(n) : C.push(n), n.observers && _e(n)), r ? n.tState = g : n.state = g);
133
+ }
134
+ if (S.length > 1e6) throw S = [], Error();
135
+ }, !1);
136
+ }
137
+ return t;
138
+ }
139
+ function A(e) {
140
+ if (!e.fn) return;
141
+ M(e);
142
+ let t = ee;
143
+ ue(e, b && b.running && b.sources.has(e) ? e.tValue : e.value, t), b && !b.running && b.sources.has(e) && queueMicrotask(() => {
144
+ j(() => {
145
+ b && (b.running = !0), x = y = e, ue(e, e.tValue, t), x = y = null;
146
+ }, !1);
147
+ });
148
+ }
149
+ function ue(e, t, n) {
150
+ let r, i = y, a = x;
151
+ x = y = e;
152
+ try {
153
+ r = e.fn(t);
154
+ } catch (t) {
155
+ return e.pure && (b && b.running ? (e.tState = g, e.tOwned && e.tOwned.forEach(M), e.tOwned = void 0) : (e.state = g, e.owned && e.owned.forEach(M), e.owned = null)), e.updatedAt = n + 1, xe(t);
156
+ } finally {
157
+ x = a, y = i;
158
+ }
159
+ (!e.updatedAt || e.updatedAt <= n) && (e.updatedAt != null && "observers" in e ? le(e, r, !0) : b && b.running && e.pure ? (b.sources.has(e) || (e.value = r), b.sources.add(e), e.tValue = r) : e.value = r, e.updatedAt = n);
160
+ }
161
+ function de(e, t, n, r = g, i) {
162
+ let a = {
163
+ fn: e,
164
+ state: r,
165
+ updatedAt: null,
166
+ owned: null,
167
+ sources: null,
168
+ sourceSlots: null,
169
+ cleanups: null,
170
+ value: t,
171
+ owner: y,
172
+ context: y ? y.context : null,
173
+ pure: n
174
+ };
175
+ return b && b.running && (a.state = 0, a.tState = r), y === null || y !== v && (b && b.running && y.pure ? y.tOwned ? y.tOwned.push(a) : y.tOwned = [a] : y.owned ? y.owned.push(a) : y.owned = [a]), a;
176
+ }
177
+ function fe(e) {
178
+ let t = b && b.running;
179
+ if ((t ? e.tState : e.state) === 0) return;
180
+ if ((t ? e.tState : e.state) === _) return ge(e);
181
+ if (e.suspense && O(e.suspense.inFallback)) return e.suspense.effects.push(e);
182
+ let n = [e];
183
+ for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < ee);) {
184
+ if (t && b.disposed.has(e)) return;
185
+ (t ? e.tState : e.state) && n.push(e);
186
+ }
187
+ for (let r = n.length - 1; r >= 0; r--) {
188
+ if (e = n[r], t) {
189
+ let t = e, i = n[r + 1];
190
+ for (; (t = t.owner) && t !== i;) if (b.disposed.has(t)) return;
191
+ }
192
+ if ((t ? e.tState : e.state) === g) A(e);
193
+ else if ((t ? e.tState : e.state) === _) {
194
+ let t = S;
195
+ S = null, j(() => ge(e, n[0]), !1), S = t;
196
+ }
197
+ }
198
+ }
199
+ function j(e, t) {
200
+ if (S) return e();
201
+ let n = !1;
202
+ t || (S = []), C ? n = !0 : C = [], ee++;
203
+ try {
204
+ let t = e();
205
+ return pe(n), t;
206
+ } catch (e) {
207
+ n || (C = null), S = null, xe(e);
208
+ }
209
+ }
210
+ function pe(e) {
211
+ if (S &&= (me(S), null), e) return;
212
+ let t;
213
+ if (b) {
214
+ if (!b.promises.size && !b.queue.size) {
215
+ let e = b.sources, n = b.disposed;
216
+ C.push.apply(C, b.effects), t = b.resolve;
217
+ for (let e of C) "tState" in e && (e.state = e.tState), delete e.tState;
218
+ b = null, j(() => {
219
+ for (let e of n) M(e);
220
+ for (let t of e) {
221
+ if (t.value = t.tValue, t.owned) for (let e = 0, n = t.owned.length; e < n; e++) M(t.owned[e]);
222
+ t.tOwned && (t.owned = t.tOwned), delete t.tValue, delete t.tOwned, t.tState = 0;
223
+ }
224
+ ie(!1);
225
+ }, !1);
226
+ } else if (b.running) {
227
+ b.running = !1, b.effects.push.apply(b.effects, C), C = null, ie(!0);
228
+ return;
229
+ }
230
+ }
231
+ let n = C;
232
+ C = null, n.length && j(() => h(n), !1), t && t();
233
+ }
234
+ function me(e) {
235
+ for (let t = 0; t < e.length; t++) fe(e[t]);
236
+ }
237
+ function he(e) {
238
+ let t, n = 0;
239
+ for (t = 0; t < e.length; t++) {
240
+ let r = e[t];
241
+ r.user ? e[n++] = r : fe(r);
242
+ }
243
+ if (c.context) {
244
+ if (c.count) {
245
+ c.effects ||= [], c.effects.push(...e.slice(0, n));
246
+ return;
247
+ }
248
+ u();
249
+ }
250
+ for (c.effects && (c.done || !c.count) && (e = [...c.effects, ...e], n += c.effects.length, delete c.effects), t = 0; t < n; t++) fe(e[t]);
251
+ }
252
+ function ge(e, t) {
253
+ let n = b && b.running;
254
+ n ? e.tState = 0 : e.state = 0;
255
+ for (let r = 0; r < e.sources.length; r += 1) {
256
+ let i = e.sources[r];
257
+ if (i.sources) {
258
+ let e = n ? i.tState : i.state;
259
+ e === g ? i !== t && (!i.updatedAt || i.updatedAt < ee) && fe(i) : e === _ && ge(i, t);
260
+ }
261
+ }
262
+ }
263
+ function _e(e) {
264
+ let t = b && b.running;
265
+ for (let n = 0; n < e.observers.length; n += 1) {
266
+ let r = e.observers[n];
267
+ (t ? !r.tState : !r.state) && (t ? r.tState = _ : r.state = _, r.pure ? S.push(r) : C.push(r), r.observers && _e(r));
268
+ }
269
+ }
270
+ function M(e) {
271
+ let t;
272
+ if (e.sources) for (; e.sources.length;) {
273
+ let t = e.sources.pop(), n = e.sourceSlots.pop(), r = t.observers;
274
+ if (r && r.length) {
275
+ let e = r.pop(), i = t.observerSlots.pop();
276
+ n < r.length && (e.sourceSlots[i] = n, r[n] = e, t.observerSlots[n] = i);
277
+ }
278
+ }
279
+ if (e.tOwned) {
280
+ for (t = e.tOwned.length - 1; t >= 0; t--) M(e.tOwned[t]);
281
+ delete e.tOwned;
282
+ }
283
+ if (b && b.running && e.pure) ve(e, !0);
284
+ else if (e.owned) {
285
+ for (t = e.owned.length - 1; t >= 0; t--) M(e.owned[t]);
286
+ e.owned = null;
287
+ }
288
+ if (e.cleanups) {
289
+ for (t = e.cleanups.length - 1; t >= 0; t--) e.cleanups[t]();
290
+ e.cleanups = null;
291
+ }
292
+ b && b.running ? e.tState = 0 : e.state = 0;
293
+ }
294
+ function ve(e, t) {
295
+ if (t || (e.tState = 0, b.disposed.add(e)), e.owned) for (let t = 0; t < e.owned.length; t++) ve(e.owned[t]);
296
+ }
297
+ function ye(e) {
298
+ return e instanceof Error ? e : Error(typeof e == "string" ? e : "Unknown error", { cause: e });
299
+ }
300
+ function be(e, t, n) {
301
+ try {
302
+ for (let n of t) n(e);
303
+ } catch (e) {
304
+ xe(e, n && n.owner || null);
305
+ }
306
+ }
307
+ function xe(e, t = y) {
308
+ let n = m && t && t.context && t.context[m], r = ye(e);
309
+ if (!n) throw r;
310
+ C ? C.push({
311
+ fn() {
312
+ be(r, n, t);
313
+ },
314
+ state: g
315
+ }) : be(r, n, t);
316
+ }
317
+ function Se(e) {
318
+ if (typeof e == "function" && !e.length) return Se(e());
319
+ if (Array.isArray(e)) {
320
+ let t = [];
321
+ for (let n = 0; n < e.length; n++) {
322
+ let r = Se(e[n]);
323
+ if (Array.isArray(r)) {
324
+ if (r.length < 32768) t.push.apply(t, r);
325
+ else for (let e = 0; e < r.length; e++) t.push(r[e]);
326
+ } else t.push(r);
327
+ }
328
+ return t;
329
+ }
330
+ return e;
331
+ }
332
+ var Ce = Symbol("fallback");
333
+ function we(e) {
334
+ for (let t = 0; t < e.length; t++) e[t]();
335
+ }
336
+ function Te(e, t, n = {}) {
337
+ let r = [], i = [], a = [], o = 0, s = t.length > 1 ? [] : null;
338
+ return k(() => we(a)), () => {
339
+ let c = e() || [], l = c.length, u, d;
340
+ return c[f], O(() => {
341
+ let e, t, f, m, h, g, _, v, y;
342
+ if (l === 0) o !== 0 && (we(a), a = [], r = [], i = [], o = 0, s &&= []), n.fallback && (r = [Ce], i[0] = w((e) => (a[0] = e, n.fallback())), o = 1);
343
+ else if (o === 0) {
344
+ for (i = Array(l), d = 0; d < l; d++) r[d] = c[d], i[d] = w(p);
345
+ o = l;
346
+ } else {
347
+ for (f = Array(l), m = Array(l), s && (h = Array(l)), g = 0, _ = Math.min(o, l); g < _ && r[g] === c[g]; g++);
348
+ for (_ = o - 1, v = l - 1; _ >= g && v >= g && r[_] === c[v]; _--, v--) f[v] = i[_], m[v] = a[_], s && (h[v] = s[_]);
349
+ for (e = /* @__PURE__ */ new Map(), t = Array(v + 1), d = v; d >= g; d--) y = c[d], u = e.get(y), t[d] = u === void 0 ? -1 : u, e.set(y, d);
350
+ for (u = g; u <= _; u++) y = r[u], d = e.get(y), d !== void 0 && d !== -1 ? (f[d] = i[u], m[d] = a[u], s && (h[d] = s[u]), d = t[d], e.set(y, d)) : a[u]();
351
+ for (d = g; d < l; d++) d in f ? (i[d] = f[d], a[d] = m[d], s && (s[d] = h[d], s[d](d))) : i[d] = w(p);
352
+ i = i.slice(0, o = l), r = c.slice(0);
353
+ }
354
+ return i;
355
+ });
356
+ function p(e) {
357
+ if (a[d] = e, s) {
358
+ let [e, n] = T(d);
359
+ return s[d] = n, t(c[d], e);
360
+ }
361
+ return t(c[d]);
362
+ }
363
+ };
364
+ }
365
+ function Ee(e, t, n = {}) {
366
+ let r = [], i = [], a = [], o = [], s = 0, c;
367
+ return k(() => we(a)), () => {
368
+ let l = e() || [], u = l.length;
369
+ return l[f], O(() => {
370
+ if (u === 0) return s !== 0 && (we(a), a = [], r = [], i = [], s = 0, o = []), n.fallback && (r = [Ce], i[0] = w((e) => (a[0] = e, n.fallback())), s = 1), i;
371
+ for (r[0] === Ce && (a[0](), a = [], r = [], i = [], s = 0), c = 0; c < u; c++) c < r.length && r[c] !== l[c] ? o[c](() => l[c]) : c >= r.length && (i[c] = w(d));
372
+ for (; c < r.length; c++) a[c]();
373
+ return s = o.length = a.length = u, r = l.slice(0), i = i.slice(0, s);
374
+ });
375
+ function d(e) {
376
+ a[c] = e;
377
+ let [n, r] = T(l[c]);
378
+ return o[c] = r, t(n, c);
379
+ }
380
+ };
381
+ }
382
+ function N(e, t) {
383
+ return O(() => e(t || {}));
384
+ }
385
+ var De = (e) => `Stale read from <${e}>.`;
386
+ function Oe(e) {
387
+ let t = "fallback" in e && { fallback: () => e.fallback };
388
+ return D(Te(() => e.each, e.children, t || void 0));
389
+ }
390
+ function ke(e) {
391
+ let t = "fallback" in e && { fallback: () => e.fallback };
392
+ return D(Ee(() => e.each, e.children, t || void 0));
393
+ }
394
+ function Ae(e) {
395
+ let t = e.keyed, n = D(() => e.when, void 0, void 0), r = t ? n : D(n, void 0, { equals: (e, t) => !e == !t });
396
+ return D(() => {
397
+ let i = r();
398
+ if (i) {
399
+ let a = e.children;
400
+ return typeof a == "function" && a.length > 0 ? O(() => a(t ? i : () => {
401
+ if (!O(r)) throw De("Show");
402
+ return n();
403
+ })) : a;
404
+ }
405
+ return e.fallback;
406
+ }, void 0, void 0);
407
+ }
408
+ function je(e) {
409
+ let t = oe(() => e.children), n = D(() => {
410
+ let e = t(), n = Array.isArray(e) ? e : [e], r = () => void 0;
411
+ for (let e = 0; e < n.length; e++) {
412
+ let t = e, i = n[e], a = r, o = D(() => a() ? void 0 : i.when, void 0, void 0), s = i.keyed ? o : D(o, void 0, { equals: (e, t) => !e == !t });
413
+ r = () => a() || (s() ? [
414
+ t,
415
+ o,
416
+ i
417
+ ] : void 0);
418
+ }
419
+ return r;
420
+ });
421
+ return D(() => {
422
+ let t = n()();
423
+ if (!t) return e.fallback;
424
+ let [r, i, a] = t, o = a.children;
425
+ return typeof o == "function" && o.length > 0 ? O(() => o(a.keyed ? i() : () => {
426
+ if (O(n)()?.[0] !== r) throw De("Match");
427
+ return i();
428
+ })) : o;
429
+ }, void 0, void 0);
430
+ }
431
+ function Me(e) {
432
+ return e;
433
+ }
434
+ //#endregion
435
+ //#region ../../node_modules/.bun/solid-js@1.9.17/node_modules/solid-js/web/dist/web.js
436
+ function Ne(e, t, n) {
437
+ let r = n.length, i = t.length, a = r, o = 0, s = 0, c = t[i - 1].nextSibling, l = null;
438
+ for (; o < i || s < a;) if (t[o] === n[s]) o++, s++;
439
+ else {
440
+ for (; t[i - 1] === n[a - 1];) i--, a--;
441
+ if (i === o) {
442
+ let t = a < r ? s ? n[s - 1].nextSibling : n[a - s] : c;
443
+ for (; s < a;) e.insertBefore(n[s++], t);
444
+ } else if (a === s) for (; o < i;) (!l || !l.has(t[o])) && t[o].remove(), o++;
445
+ else if (t[o] === n[a - 1] && n[s] === t[i - 1]) {
446
+ let r = t[--i].nextSibling;
447
+ e.insertBefore(n[s++], t[o++].nextSibling), e.insertBefore(n[--a], r), t[i] = n[a];
448
+ } else {
449
+ if (!l) {
450
+ l = /* @__PURE__ */ new Map();
451
+ let e = s;
452
+ for (; e < a;) l.set(n[e], e++);
453
+ }
454
+ let r = l.get(t[o]);
455
+ if (r != null) {
456
+ if (s < r && r < a) {
457
+ let c = o, u = 1, d;
458
+ for (; ++c < i && c < a && (d = l.get(t[c])) != null && d === r + u;) u++;
459
+ if (u > r - s) {
460
+ let i = t[o];
461
+ for (; s < r;) e.insertBefore(n[s++], i);
462
+ } else e.replaceChild(n[s++], t[o++]);
463
+ } else o++;
464
+ } else t[o++].remove();
465
+ }
466
+ }
467
+ }
468
+ function Pe(e, t, n, r = {}) {
469
+ let i;
470
+ return w((r) => {
471
+ i = r, t === document ? e() : I(t, e(), !n && t.firstChild ? null : void 0, n);
472
+ }, r.owner), () => {
473
+ i(), t.textContent = "";
474
+ };
475
+ }
476
+ function P(e, t, n, r) {
477
+ let i, a = () => {
478
+ let t = r ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template");
479
+ return t.innerHTML = e, n ? t.content.firstChild.firstChild : r ? t.firstChild : t.content.firstChild;
480
+ }, o = t ? () => O(() => document.importNode(i ||= a(), !0)) : () => (i ||= a()).cloneNode(!0);
481
+ return o.cloneNode = o, o;
482
+ }
483
+ function F(e, t, n) {
484
+ Fe(e) || (n == null ? e.removeAttribute(t) : e.setAttribute(t, n));
485
+ }
486
+ function I(e, t, n, r) {
487
+ if (n !== void 0 && !r && (r = []), typeof t != "function") return Ie(e, t, r, n);
488
+ E((r) => Ie(e, t(), r, n), r);
489
+ }
490
+ function Fe(e) {
491
+ return !!c.context && !c.done && (!e || e.isConnected);
492
+ }
493
+ function Ie(e, t, n, r, i) {
494
+ let a = Fe(e);
495
+ if (a) {
496
+ !n && (n = [...e.childNodes]);
497
+ let t = [];
498
+ for (let e = 0; e < n.length; e++) {
499
+ let r = n[e];
500
+ r.nodeType === 8 && r.data.slice(0, 2) === "!$" ? r.remove() : t.push(r);
501
+ }
502
+ n = t;
503
+ }
504
+ for (; typeof n == "function";) n = n();
505
+ if (t === n) return n;
506
+ let o = typeof t, s = r !== void 0;
507
+ if (e = s && n[0] && n[0].parentNode || e, o === "string" || o === "number") {
508
+ if (a || o === "number" && (t = t.toString(), t === n)) return n;
509
+ if (s) {
510
+ let i = n[0];
511
+ i && i.nodeType === 3 ? i.data !== t && (i.data = t) : i = document.createTextNode(t), n = L(e, n, r, i);
512
+ } else n = n !== "" && typeof n == "string" ? e.firstChild.data = t : e.textContent = t;
513
+ } else if (t == null || o === "boolean") {
514
+ if (a) return n;
515
+ n = L(e, n, r);
516
+ } else if (o === "function") return E(() => {
517
+ let i = t();
518
+ for (; typeof i == "function";) i = i();
519
+ n = Ie(e, i, n, r);
520
+ }), () => n;
521
+ else if (Array.isArray(t)) {
522
+ let o = [], c = n && Array.isArray(n);
523
+ if (Le(o, t, n, i)) return E(() => n = Ie(e, o, n, r, !0)), () => n;
524
+ if (a) {
525
+ if (!o.length) return n;
526
+ if (r === void 0) return n = [...e.childNodes];
527
+ let t = o[0];
528
+ if (t.parentNode !== e) return n;
529
+ let i = [t];
530
+ for (; (t = t.nextSibling) !== r;) i.push(t);
531
+ return n = i;
532
+ }
533
+ if (o.length === 0) {
534
+ if (n = L(e, n, r), s) return n;
535
+ } else c ? n.length === 0 ? Re(e, o, r) : Ne(e, n, o) : (n && L(e), Re(e, o));
536
+ n = o;
537
+ } else if (t.nodeType) {
538
+ if (a && t.parentNode) return n = s ? [t] : t;
539
+ if (Array.isArray(n)) {
540
+ if (s) return n = L(e, n, r, t);
541
+ L(e, n, null, t);
542
+ } else n == null || n === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild);
543
+ n = t;
544
+ }
545
+ return n;
546
+ }
547
+ function Le(e, t, n, r) {
548
+ let i = !1;
549
+ for (let a = 0, o = t.length; a < o; a++) {
550
+ let o = t[a], s = n && n[e.length], c;
551
+ if (o != null && o !== !0 && o !== !1) {
552
+ if ((c = typeof o) == "object" && o.nodeType) e.push(o);
553
+ else if (Array.isArray(o)) i = Le(e, o, s) || i;
554
+ else if (c === "function") {
555
+ if (r) {
556
+ for (; typeof o == "function";) o = o();
557
+ i = Le(e, Array.isArray(o) ? o : [o], Array.isArray(s) ? s : [s]) || i;
558
+ } else e.push(o), i = !0;
559
+ } else {
560
+ let t = String(o);
561
+ s && s.nodeType === 3 && s.data === t ? e.push(s) : e.push(document.createTextNode(t));
562
+ }
563
+ }
564
+ }
565
+ return i;
566
+ }
567
+ function Re(e, t, n = null) {
568
+ for (let r = 0, i = t.length; r < i; r++) e.insertBefore(t[r], n);
569
+ }
570
+ function L(e, t, n, r) {
571
+ if (n === void 0) return e.textContent = "";
572
+ let i = r || document.createTextNode("");
573
+ if (t.length) {
574
+ let r = !1;
575
+ for (let a = t.length - 1; a >= 0; a--) {
576
+ let o = t[a];
577
+ if (i !== o) {
578
+ let t = o.parentNode === e;
579
+ !r && !a ? t ? e.replaceChild(i, o) : e.insertBefore(i, n) : t && o.remove();
580
+ } else r = !0;
581
+ }
582
+ } else e.insertBefore(i, n);
583
+ return [i];
584
+ }
585
+ //#endregion
586
+ //#region src/draw.ts
587
+ var ze = (e) => `M ${e.map((e) => `${e.x} ${e.y}`).join(" L ")} Z`, Be = () => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches, Ve = Math.sqrt(3), He = (e) => `M${e.map((e) => `${Math.round(e.x * 100) / 100} ${Math.round(e.y * 100) / 100}`).join("L")}Z`;
588
+ function Ue(e, t = {
589
+ x: 0,
590
+ y: 0
591
+ }) {
592
+ let n = e.x - t.x, r = e.y - t.y, i = [
593
+ 0,
594
+ 60,
595
+ 120
596
+ ].map((e) => {
597
+ let t = e * Math.PI / 180;
598
+ return Math.abs(n * Math.cos(t) + r * Math.sin(t));
599
+ });
600
+ return Math.max(...i) / (Ve / 2);
601
+ }
602
+ var We = /* @__PURE__ */ new Map();
603
+ function Ge(e) {
604
+ let t = We.get(e);
605
+ if (t) return t;
606
+ let n = 120 / e, r = n * Ve / 2, i = (e, t) => ({
607
+ x: r * t,
608
+ y: n * e + n / 2 * t
609
+ }), a = [];
610
+ for (let t = -2 * e; t <= 2 * e; t++) for (let n = -3 * e; n <= 3 * e; n++) for (let e of [0, 1]) {
611
+ let r = e === 0 ? [
612
+ i(n, t),
613
+ i(n, t + 1),
614
+ i(n + 1, t)
615
+ ] : [
616
+ i(n, t + 1),
617
+ i(n + 1, t + 1),
618
+ i(n + 1, t)
619
+ ], o = {
620
+ x: r.reduce((e, t) => e + t.x, 0) / 3 / 120,
621
+ y: r.reduce((e, t) => e + t.y, 0) / 3 / 120
622
+ };
623
+ Ue(o) < .999 && a.push({
624
+ corners: r,
625
+ mid: o,
626
+ i: n,
627
+ j: t,
628
+ k: e
629
+ });
630
+ }
631
+ return We.set(e, a), a;
632
+ }
633
+ var R = 1 / 16, Ke = () => R * Ve / 2, qe = (e) => {
634
+ let t = Math.round(e.x / Ke()), n = Math.round((e.y - R / 2 * t) / R);
635
+ return {
636
+ x: Ke() * t,
637
+ y: R * n + R / 2 * t
638
+ };
639
+ }, z = (e, t) => (n) => Ue(n, qe(e)) < Math.max(1, Math.round(t / R)) * R - 1e-6, Je = (e, t, n) => (r) => ((r.x - e.x) / t) ** 2 + ((r.y - e.y) / n) ** 2 < 1, B = (e, t) => (n) => e.slice(1).some((r, i) => {
640
+ let a = e[i], o = r.x - a.x, s = r.y - a.y, c = Math.max(0, Math.min(1, ((n.x - a.x) * o + (n.y - a.y) * s) / (o * o + s * s)));
641
+ return Math.hypot(n.x - (a.x + c * o), n.y - (a.y + c * s)) < t;
642
+ }), V = (e, t, n, r = 16) => Array.from({ length: r + 1 }, (i, a) => {
643
+ let o = a / r, s = 1 - o;
644
+ return {
645
+ x: s * s * e.x + 2 * s * o * t.x + o * o * n.x,
646
+ y: s * s * e.y + 2 * s * o * t.y + o * o * n.y
647
+ };
648
+ }), H = (...e) => (t) => e.every((e) => e(t)), Ye = (e) => (t) => !e(t), U = (...e) => (t) => e.some((e) => e(t)), Xe = (e) => (t) => {
649
+ let n = e.map(qe);
650
+ return n.slice(1).some((e, r) => {
651
+ let i = n[r], a = e.x - i.x, o = e.y - i.y, s = ((t.x - i.x) * a + (t.y - i.y) * o) / (a * a + o * o);
652
+ if (s < 0 || s > 1) return !1;
653
+ let c = {
654
+ x: t.x - (i.x + s * a),
655
+ y: t.y - (i.y + s * o)
656
+ };
657
+ return (Math.abs(a) < 1e-9 ? c.x * Math.sign(i.x || 1) > 0 : c.y > 0) && Math.hypot(c.x, c.y) < Ke() * .999;
658
+ });
659
+ }, Ze = (e, t) => {
660
+ let n = t * Math.tan(Math.PI / 6);
661
+ return [
662
+ {
663
+ x: e.x - t,
664
+ y: e.y - n
665
+ },
666
+ e,
667
+ {
668
+ x: e.x + t,
669
+ y: e.y - n
670
+ }
671
+ ];
672
+ }, W = (e) => U(e(-1), e(1)), Qe = -.18, G = .34, K = (e) => ({
673
+ x: e * G,
674
+ y: Qe
675
+ }), $e = (e) => (t) => Math.hypot(t.x - e.x, t.y - e.y) < R * .58, q = (e, t, n = 0) => (r) => e({
676
+ x: r.x - n * Ke(),
677
+ y: r.y - t * R - n * R / 2
678
+ }), et = (e, t, n = 0) => e.map(([e, r]) => [e, q(r, t, n)]), tt = (e, t, n = 0) => e > 0 && (e + n) % t < .16, J = (e, t) => e % t / t, nt = (e, t) => Math.floor(e / t) % 2, rt = (e, t = .04) => Xe(Ze({
679
+ x: e * G,
680
+ y: Qe + t
681
+ }, .14)), it = (e, t) => U(z({
682
+ x: e.x - .07 * t,
683
+ y: e.y - .04 * t
684
+ }, .09 * t), z({
685
+ x: e.x + .07 * t,
686
+ y: e.y - .04 * t
687
+ }, .09 * t), (n) => n.y > e.y - .04 * t && n.y < e.y + .2 * t && Math.abs(n.x - e.x) < .16 * t * (1 - (n.y - e.y + .04 * t) / (.24 * t))), at = [
688
+ {
689
+ name: "Happy",
690
+ idle: "Bobs, blinks, cheeks glow",
691
+ at: (e) => {
692
+ let t = tt(e, 3.4, 1), n = e > 0 && J(e, 2.4) < .5 ? .11 : .09;
693
+ return et([
694
+ ["ink", W((e) => t ? rt(e) : z(K(e), .15))],
695
+ ["glint", W((e) => t ? () => !1 : $e({
696
+ x: e * G + .05,
697
+ y: -.22999999999999998
698
+ }))],
699
+ ["ink", B(V({
700
+ x: -.4,
701
+ y: .2
702
+ }, {
703
+ x: 0,
704
+ y: .5
705
+ }, {
706
+ x: .4,
707
+ y: .2
708
+ }), .045)],
709
+ ["blush", W((e) => z({
710
+ x: e * .6,
711
+ y: .1
712
+ }, n))]
713
+ ], e > 0 && J(e, 1.2) < .5 ? -1 : 0);
714
+ }
715
+ },
716
+ {
717
+ name: "Laughing",
718
+ idle: "Shakes with each ha",
719
+ at: (e) => {
720
+ let t = e > 0 && J(e, 1.8) < .6 ? nt(e, .12) : 0, n = t ? .04 : 0;
721
+ return et([
722
+ ["ink", W((e) => B(V({
723
+ x: e * G - .13,
724
+ y: -.12
725
+ }, {
726
+ x: e * G,
727
+ y: -.36
728
+ }, {
729
+ x: e * G + .13,
730
+ y: -.12
731
+ }), .04))],
732
+ ["ink", H(Je({
733
+ x: 0,
734
+ y: .16
735
+ }, .42, .36 + n), (e) => e.y > .16)],
736
+ ["tongue", H(Je({
737
+ x: 0,
738
+ y: .16
739
+ }, .42, .36 + n), Je({
740
+ x: 0,
741
+ y: .5 + n
742
+ }, .22, .12))],
743
+ ["glint", H(Je({
744
+ x: 0,
745
+ y: .16
746
+ }, .42, .36), (e) => e.y > .16 && e.y < .22)],
747
+ ["blush", W((e) => z({
748
+ x: e * .62,
749
+ y: .06
750
+ }, .09))]
751
+ ], -t);
752
+ }
753
+ },
754
+ {
755
+ name: "Sad",
756
+ idle: "A tear runs down; the lip trembles",
757
+ at: (e) => {
758
+ let t = tt(e, 4.2, 2), n = .06 + (e > 0 ? J(e, 2) : 0) * .5, r = e > 0 ? nt(e, .2) : 0;
759
+ return [
760
+ ["ink", W((e) => t ? rt(e) : z(K(e), .13))],
761
+ ["glint", W((e) => t ? () => !1 : $e({
762
+ x: e * G + .04,
763
+ y: -.22
764
+ }))],
765
+ ["ink", W((e) => B([{
766
+ x: e * .52,
767
+ y: -.36
768
+ }, {
769
+ x: e * .2,
770
+ y: -.46
771
+ }], .035))],
772
+ ["ink", q(B(V({
773
+ x: -.3,
774
+ y: .46
775
+ }, {
776
+ x: 0,
777
+ y: .18
778
+ }, {
779
+ x: .3,
780
+ y: .46
781
+ }), .04), r)],
782
+ ["tear", U(z({
783
+ x: -.34,
784
+ y: n
785
+ }, .06), z({
786
+ x: -.34,
787
+ y: n + .12
788
+ }, .08))]
789
+ ];
790
+ }
791
+ },
792
+ {
793
+ name: "Surprised",
794
+ idle: "Eyes dart; brows jump",
795
+ at: (e) => {
796
+ let t = e > 0 ? [
797
+ 0,
798
+ -1,
799
+ 0,
800
+ 1
801
+ ][Math.floor(J(e, 3.2) * 4)] : 0, n = e > 0 && J(e, 1.6) < .18 ? -1 : 0;
802
+ return [
803
+ ["ink", W((e) => H(z(K(e), .19), Ye(z(K(e), .14))))],
804
+ ["ink", W((e) => q(z(K(e), .07), 0, t))],
805
+ ["ink", W((e) => q(B(V({
806
+ x: e * .52,
807
+ y: -.42
808
+ }, {
809
+ x: e * .34,
810
+ y: -.58
811
+ }, {
812
+ x: e * .16,
813
+ y: -.44
814
+ }), .035), n))],
815
+ ["ink", H(z({
816
+ x: 0,
817
+ y: .36
818
+ }, .17), Ye(z({
819
+ x: 0,
820
+ y: .36
821
+ }, .09)))]
822
+ ];
823
+ }
824
+ },
825
+ {
826
+ name: "Angry",
827
+ idle: "Fumes and shakes",
828
+ at: (e) => {
829
+ let t = e > 0 && J(e, 2) < .4 ? nt(e, .07) ? 1 : -1 : 0, n = +(e > 0 && J(e, 2) > .5), r = e > 0 ? J(e, 1) : -1, i = [
830
+ ["ink", W((e) => H(z(K(e), .15), (t) => t.y > -.26 + .4 * (-e * (t.x - e * G))))],
831
+ ["ink", W((e) => q(B([{
832
+ x: e * .58,
833
+ y: -.44
834
+ }, {
835
+ x: e * .12,
836
+ y: -.28
837
+ }], .045), n))],
838
+ ["ink", B(V({
839
+ x: -.32,
840
+ y: .42
841
+ }, {
842
+ x: 0,
843
+ y: .3
844
+ }, {
845
+ x: .32,
846
+ y: .42
847
+ }), .045)]
848
+ ];
849
+ return r >= 0 && i.push(["tear", W((e) => z({
850
+ x: e * (.5 + r * .04),
851
+ y: -.46 - r * .14
852
+ }, .05 + r * .03))]), et(i, 0, t);
853
+ }
854
+ },
855
+ {
856
+ name: "Worried",
857
+ idle: "Sweats; glances about",
858
+ at: (e) => {
859
+ let t = e > 0 ? [
860
+ 0,
861
+ -1,
862
+ -1,
863
+ 0,
864
+ 1,
865
+ 1
866
+ ][Math.floor(J(e, 3) * 6)] : 0, n = e > 0 ? J(e, 2.2) : 0, r = e > 0 && nt(e, .3) ? -1 : 1;
867
+ return [
868
+ ["ink", W((e) => q(z(K(e), .14), 0, t))],
869
+ ["glint", W((e) => q($e({
870
+ x: e * G + .04,
871
+ y: -.22999999999999998
872
+ }), 0, t))],
873
+ ["ink", W((e) => B([{
874
+ x: e * .54,
875
+ y: -.38
876
+ }, {
877
+ x: e * .16,
878
+ y: -.5
879
+ }], .035))],
880
+ ["ink", B(Array.from({ length: 9 }, (e, t) => ({
881
+ x: -.4 + t * .1,
882
+ y: .36 + (t % 2 == 0 ? .04 : -.04) * r
883
+ })), .035)],
884
+ ["tear", U(z({
885
+ x: .66,
886
+ y: -.46 + n * .3
887
+ }, .06), z({
888
+ x: .66,
889
+ y: -.34 + n * .3
890
+ }, .08))]
891
+ ];
892
+ }
893
+ },
894
+ {
895
+ name: "Sleepy",
896
+ idle: "Breathes in its bubble",
897
+ at: (e) => {
898
+ let t = e > 0 ? J(e, 3) : .3, n = t > .92, r = .13 + Math.sin(Math.PI * Math.min(1, t / .92)) * .09, i = e > 0 ? J(e, 2.4) : 0, a = [
899
+ ["ink", W((e) => {
900
+ let t = Ze({
901
+ x: e * G,
902
+ y: -.13
903
+ }, .16), n = Math.tan(Math.PI / 6), r = (t, r) => {
904
+ let i = e * (G + t), a = -.13 - t * n;
905
+ return Xe([{
906
+ x: i,
907
+ y: a + .02
908
+ }, {
909
+ x: i,
910
+ y: a + .02 + r
911
+ }]);
912
+ };
913
+ return U(Xe(t), r(.04, .05), r(.09, .06), r(.14, .05));
914
+ })],
915
+ ["blush", W((e) => z({
916
+ x: e * .56,
917
+ y: .16
918
+ }, .09))],
919
+ ["ink", H(z({
920
+ x: 0,
921
+ y: .42
922
+ }, .12), Ye(z({
923
+ x: 0,
924
+ y: .42
925
+ }, .06)))],
926
+ ["tear", U(z({
927
+ x: .42,
928
+ y: -.44 - i * .1
929
+ }, .04), z({
930
+ x: .5,
931
+ y: -.58 - i * .1
932
+ }, .06))]
933
+ ];
934
+ return n || a.push(["tear", H(z({
935
+ x: .2,
936
+ y: .18
937
+ }, r), Ye(z({
938
+ x: .2,
939
+ y: .18
940
+ }, r - .06)))]), a;
941
+ }
942
+ },
943
+ {
944
+ name: "Wink",
945
+ idle: "Winks again",
946
+ at: (e) => {
947
+ let t = e > 0 && J(e, 2.6) > .7 && J(e, 2.6) < .85, n = e > 0 && J(e, 2.6) < .3 ? .11 : .09;
948
+ return [
949
+ ["ink", z(K(-1), .15)],
950
+ ["glint", $e({
951
+ x: -.34 + .05,
952
+ y: -.22999999999999998
953
+ })],
954
+ t ? ["ink", z(K(1), .15)] : ["ink", B(V({
955
+ x: .19000000000000003,
956
+ y: Qe
957
+ }, {
958
+ x: G,
959
+ y: -.3
960
+ }, {
961
+ x: .49,
962
+ y: Qe
963
+ }), .04)],
964
+ ["ink", B(V({
965
+ x: -.3,
966
+ y: .32
967
+ }, {
968
+ x: .06,
969
+ y: .5
970
+ }, {
971
+ x: .38,
972
+ y: .22
973
+ }), .045)],
974
+ ["blush", z({
975
+ x: .6,
976
+ y: .1
977
+ }, n)]
978
+ ];
979
+ }
980
+ },
981
+ {
982
+ name: "Smitten",
983
+ idle: "Hearts beat",
984
+ at: (e) => {
985
+ let t = e > 0 ? J(e, 1.1) : .9, n = t < .12 || t > .24 && t < .36 ? 1.3 : 1;
986
+ return [["blush", W((e) => it({
987
+ x: e * G,
988
+ y: Qe
989
+ }, n))], ["ink", B(V({
990
+ x: -.34,
991
+ y: .24
992
+ }, {
993
+ x: 0,
994
+ y: .5
995
+ }, {
996
+ x: .34,
997
+ y: .24
998
+ }), .045)]];
999
+ }
1000
+ }
1001
+ ], ot = (e, t) => {
1002
+ let n = "plate";
1003
+ for (let [r, i] of e) i(t) && (n = r);
1004
+ return n;
1005
+ }, st = (e) => e.k === 0 ? "right" : "left";
1006
+ function ct(e, t, n) {
1007
+ let r = Ge(t);
1008
+ R = 1 / t;
1009
+ let i = r.map((t) => ot(e, t.mid)), a = r.map(() => "top"), o = Math.max(1, Math.round(.035 / R)), s = (t, n) => ot(e, {
1010
+ x: t.mid.x,
1011
+ y: t.mid.y - n * R
1012
+ });
1013
+ return r.forEach((e, t) => {
1014
+ let r = i[t];
1015
+ if (n === "raised" && r === "plate") for (let n = 1; n <= o; n++) {
1016
+ let r = s(e, n);
1017
+ if (r !== "plate" && r !== "glint") {
1018
+ i[t] = r, a[t] = st(e);
1019
+ break;
1020
+ }
1021
+ }
1022
+ else if (n === "carved" && r !== "plate" && r !== "glint") {
1023
+ for (let n = 1; n <= o; n++) if (s(e, n) === "plate") {
1024
+ a[t] = st(e);
1025
+ break;
1026
+ }
1027
+ } else if (n === "cubes" && r !== "plate" && r !== "glint") {
1028
+ let n = (e.k === 0 ? [
1029
+ [e.i, e.j],
1030
+ [e.i, e.j + 1],
1031
+ [e.i + 1, e.j]
1032
+ ] : [
1033
+ [e.i, e.j + 1],
1034
+ [e.i + 1, e.j + 1],
1035
+ [e.i + 1, e.j]
1036
+ ]).find(([e, t]) => ((t - e) % 3 + 3) % 3 == 0), r = {
1037
+ x: Ve / 2 * R * n[1],
1038
+ y: R * n[0] + R / 2 * n[1]
1039
+ }, i = (Math.atan2(e.mid.x - r.x, -(e.mid.y - r.y)) * 180 / Math.PI + 360) % 360;
1040
+ a[t] = i < 60 || i >= 300 ? "top" : i < 180 ? "right" : "left";
1041
+ }
1042
+ }), {
1043
+ inks: i,
1044
+ shades: a
1045
+ };
1046
+ }
1047
+ function lt(e, t, n) {
1048
+ let r = /* @__PURE__ */ new Map();
1049
+ return e.forEach((e, i) => {
1050
+ let a = t[i], o = n?.[i] ?? "top", s = `${a}:${o}`, c = r.get(s) ?? {
1051
+ ink: a,
1052
+ shade: o,
1053
+ d: []
1054
+ };
1055
+ c.d.push(He(e.corners)), r.set(s, c);
1056
+ }), [...r.values()].map((e) => ({
1057
+ ink: e.ink,
1058
+ shade: e.shade,
1059
+ d: e.d.join("")
1060
+ }));
1061
+ }
1062
+ //#endregion
1063
+ //#region src/faceDrawing.tsx
1064
+ var ut = /*#__PURE__*/ P("<svg><path class=facet></svg>", !1, !0, !1), dt = 16, ft = 1400, pt = 300, mt = 100;
1065
+ function ht(e, t) {
1066
+ let n = (e) => ({
1067
+ x: e.x,
1068
+ y: e.y - t
1069
+ }), [, , r, i, a] = e;
1070
+ return {
1071
+ shade: He([
1072
+ a,
1073
+ i,
1074
+ n(i),
1075
+ n(a)
1076
+ ]),
1077
+ shadow: He([
1078
+ i,
1079
+ r,
1080
+ n(r),
1081
+ n(i)
1082
+ ]),
1083
+ top: He(e.map(n))
1084
+ };
1085
+ }
1086
+ var gt = {
1087
+ happy: "Happy",
1088
+ content: "Happy",
1089
+ asleep: "Sleepy",
1090
+ sad: "Sad",
1091
+ distressed: "Worried",
1092
+ puzzled: "Surprised",
1093
+ relieved: "Laughing"
1094
+ }, _t = (e) => at.find((t) => t.name.toLowerCase() === e.trim().toLowerCase()), vt = (e) => _t(gt[e]) ?? at[0], yt = _t("Laughing");
1095
+ function bt(e, t) {
1096
+ let n = ct(e.at(t), dt, "raised");
1097
+ return lt(Ge(dt), n.inks, n.shades);
1098
+ }
1099
+ function xt(e) {
1100
+ let t = () => Be() || (e.still?.() ?? !1), [n, r] = T(!1), i;
1101
+ te(ne(e.pulse, (e, n) => {
1102
+ n === void 0 || e === n || t() || (r(!0), clearTimeout(i), i = setTimeout(() => r(!1), ft));
1103
+ }));
1104
+ let [a, o] = T(0);
1105
+ te(() => {
1106
+ if (t()) {
1107
+ o(0);
1108
+ return;
1109
+ }
1110
+ let e = performance.now(), n = setInterval(() => o((performance.now() - e) / 1e3), mt);
1111
+ k(() => clearInterval(n));
1112
+ }), k(() => clearTimeout(i));
1113
+ let s = D(() => n() ? yt : e.expression()), c = D(() => bt(s(), a())), [l, u] = T(), d;
1114
+ return te(ne(s, (e, n) => {
1115
+ n && !t() && (u(bt(n, a())), clearTimeout(d), d = setTimeout(() => u(void 0), pt));
1116
+ })), k(() => clearTimeout(d)), {
1117
+ face: c,
1118
+ leaving: l
1119
+ };
1120
+ }
1121
+ function St(e) {
1122
+ return N(ke, {
1123
+ get each() {
1124
+ return e.drawing;
1125
+ },
1126
+ children: (e) => (() => {
1127
+ var t = ut();
1128
+ return E((n) => {
1129
+ var r = e().ink, i = e().shade, a = e().d;
1130
+ return r !== n.e && F(t, "data-ink", n.e = r), i !== n.t && F(t, "data-shade", n.t = i), a !== n.a && F(t, "d", n.a = a), n;
1131
+ }, {
1132
+ e: void 0,
1133
+ t: void 0,
1134
+ a: void 0
1135
+ }), t;
1136
+ })()
1137
+ });
1138
+ }
1139
+ //#endregion
1140
+ //#region src/elements/face.css?inline
1141
+ var Ct = ".face .plate-top{fill:var(--color-tree-raised);stroke:color-mix(in srgb, var(--color-tree-wood-0) 60%, var(--sky));stroke-width:var(--tree-rule-width);stroke-linejoin:round}.face .plate-shade{fill:color-mix(in srgb, var(--color-tree-wood-0) 45%, var(--sky))}.face .plate-shadow{fill:color-mix(in srgb, var(--color-tree-wood-0) 70%, var(--sky))}.face .facet{--ink:color-mix(in srgb, var(--color-tree-wood-0) 40%, var(--color-tree-ink));fill:var(--ink);stroke:var(--ink);stroke-width:var(--tree-rule-width);stroke-linejoin:round;vector-effect:non-scaling-stroke}.face .facet[data-ink=plate]{fill:none;stroke:color-mix(in srgb, var(--color-tree-wood-0) 14%, var(--color-tree-raised))}.face .facet[data-ink=glint]{--ink:var(--color-tree-raised)}.face .facet[data-ink=blush]{--ink:color-mix(in srgb, var(--color-tree-alert) 55%, var(--color-tree-raised))}.face .facet[data-ink=tear]{--ink:var(--color-tree-wood-2)}.face .facet[data-ink=tongue]{--ink:color-mix(in srgb, var(--color-tree-alert) 75%, var(--color-tree-raised))}.face .facet[data-shade=left]{fill:color-mix(in srgb, var(--ink) 72%, var(--color-tree-ink));stroke:color-mix(in srgb, var(--ink) 72%, var(--color-tree-ink))}.face .facet[data-shade=right]{fill:color-mix(in srgb, var(--ink) 48%, var(--color-tree-ink));stroke:color-mix(in srgb, var(--ink) 48%, var(--color-tree-ink))}.face .facet[data-ink=ink][data-shade=top]{fill:color-mix(in srgb, var(--color-tree-wood-0) 70%, var(--color-tree-ink));stroke:color-mix(in srgb, var(--color-tree-wood-0) 70%, var(--color-tree-ink))}.face .facet[data-ink=ink][data-shade=left]{fill:color-mix(in srgb, var(--color-tree-wood-0) 35%, var(--color-tree-ink));stroke:color-mix(in srgb, var(--color-tree-wood-0) 35%, var(--color-tree-ink))}.face .facet[data-ink=ink][data-shade=right]{fill:var(--color-tree-ink);stroke:var(--color-tree-ink)}.face .face-leaving{animation:.3s ease-in forwards face-sink}@keyframes face-sink{to{opacity:0;transform:translateY(var(--space-tree-2))}}@media (prefers-reduced-motion:reduce){.face .face-leaving{animation:none}}", wt = ":root{--color-primary:#6f9584;--color-secondary:#55524b;--color-neutral:#f7f5f0;--color-surface:var(--color-neutral);--color-on-surface:#2b2a27;--color-on-surface-muted:var(--color-secondary);--color-edge:var(--color-neutral);--color-error:#b3261e;--color-depth-0:#c9d6cf;--color-depth-1:#b7c9c0;--color-depth-2:#a5bcb1;--color-depth-3:#93afa2;--color-depth-4:#81a293;--color-depth-5:var(--color-primary);--color-cell-empty:#e4ebe6;--color-tree-sky:#f4f4f0;--color-tree-earth:#2a302c;--color-tree-topsoil:#1f2522;--color-tree-raised:#fff;--color-tree-ink:#1e2219;--color-tree-ink-soft:#565c50;--color-tree-rule:#cfd1c9;--color-tree-on-ink:#f7f6f0;--color-tree-ink-under:#e8eae2;--color-tree-ink-under-soft:#b4bbae;--color-tree-rule-under:#414945;--color-tree-raised-under:#343b37;--color-tree-alert:#a3441e;--color-tree-wood-0:#705f4a;--color-tree-wood-1:#9a7b3c;--color-tree-wood-2:#566c78;--color-tree-wood-3:#6f5873;--color-tree-wood-4:#5f7a57;--color-tree-wood-under-0:#b5a48e;--color-tree-wood-under-1:#d4b26a;--color-tree-wood-under-2:#97b2c0;--color-tree-wood-under-3:#b79bbe;--color-tree-wood-under-4:#9dbb94;--color-tree-leaf:#546d41;--color-tree-leaf-under:#9dbb94;--color-tree-olive:#3e3348;--color-tree-olive-under:#b7a9cf;--color-tree-shadow:#00000040;--color-tree-lattice-sky:#1e22190d;--color-tree-lattice-earth:#e8eae20f;--font-body:400 15px/1.5 Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-body-family:Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-body-size:15px;--font-body-weight:400;--font-body-leading:1.5;--font-goal:600 15px/1.3 Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-goal-family:Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-goal-size:15px;--font-goal-weight:600;--font-goal-leading:1.3;--font-label:400 14px/1.3 Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-label-family:Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-label-size:14px;--font-label-weight:400;--font-label-leading:1.3;--font-excerpt:400 13px/1.4 Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-excerpt-family:Atkinson Hyperlegible Next Variable, system-ui, sans-serif;--font-excerpt-size:13px;--font-excerpt-weight:400;--font-excerpt-leading:1.4;--font-tree-body:400 .8125rem/1.5 Roboto Mono Variable, Menlo, monospace;--font-tree-body-family:Roboto Mono Variable, Menlo, monospace;--font-tree-body-size:.8125rem;--font-tree-body-weight:400;--font-tree-body-leading:1.5;--font-tree-tight:400 .8125rem/1.1 Roboto Mono Variable, Menlo, monospace;--font-tree-tight-family:Roboto Mono Variable, Menlo, monospace;--font-tree-tight-size:.8125rem;--font-tree-tight-weight:400;--font-tree-tight-leading:1.1;--font-tree-small:400 .75rem Roboto Mono Variable, Menlo, monospace;--font-tree-small-family:Roboto Mono Variable, Menlo, monospace;--font-tree-small-size:.75rem;--font-tree-small-weight:400;--font-tree-lead:400 .875rem Roboto Mono Variable, Menlo, monospace;--font-tree-lead-family:Roboto Mono Variable, Menlo, monospace;--font-tree-lead-size:.875rem;--font-tree-lead-weight:400;--font-tree-title:400 1rem Roboto Mono Variable, Menlo, monospace;--font-tree-title-family:Roboto Mono Variable, Menlo, monospace;--font-tree-title-size:1rem;--font-tree-title-weight:400;--font-tree-italic:400 .8125rem Victor Mono Variable, Menlo, monospace;--font-tree-italic-family:Victor Mono Variable, Menlo, monospace;--font-tree-italic-size:.8125rem;--font-tree-italic-weight:400;--font-tree-voice:600 1.125rem/1.2 Roboto Mono Variable, Menlo, monospace;--font-tree-voice-family:Roboto Mono Variable, Menlo, monospace;--font-tree-voice-size:1.125rem;--font-tree-voice-weight:600;--font-tree-voice-leading:1.2;--font-tree-voice-lead:600 .9375rem Roboto Mono Variable, Menlo, monospace;--font-tree-voice-lead-family:Roboto Mono Variable, Menlo, monospace;--font-tree-voice-lead-size:.9375rem;--font-tree-voice-lead-weight:600;--font-tree-label:400 12px Roboto Mono Variable, Menlo, monospace;--font-tree-label-family:Roboto Mono Variable, Menlo, monospace;--font-tree-label-size:12px;--font-tree-label-weight:400;--font-tree-heading:400 12px Roboto Mono Variable, Menlo, monospace;--font-tree-heading-family:Roboto Mono Variable, Menlo, monospace;--font-tree-heading-size:12px;--font-tree-heading-weight:400;--font-tree-section:400 14px Roboto Mono Variable, Menlo, monospace;--font-tree-section-family:Roboto Mono Variable, Menlo, monospace;--font-tree-section-size:14px;--font-tree-section-weight:400;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-tree-1:.25rem;--space-tree-2:.5rem;--space-tree-3:.75rem;--space-tree-4:1rem;--space-tree-5:1.5rem;--space-tree-6:2.5rem;--space-tree-7:4rem;--radius-tree:.375rem;--canvas-background-color:var(--color-surface);--canvas-text-color:var(--color-on-surface);--canvas-typography:var(--font-body);--canvas-padding:var(--space-md);--goal-background-color:var(--color-surface);--goal-text-color:var(--color-on-surface);--goal-typography:var(--font-goal);--goal-padding:var(--space-sm);--goal-base-edge-width:225px;--corner-text-color:var(--color-on-surface);--corner-typography:var(--font-label);--corner-padding:var(--space-sm);--corner-excerpt-text-color:var(--color-on-surface-muted);--corner-excerpt-typography:var(--font-excerpt);--depth-0-background-color:var(--color-depth-0);--depth-1-background-color:var(--color-depth-1);--depth-2-background-color:var(--color-depth-2);--depth-3-background-color:var(--color-depth-3);--depth-4-background-color:var(--color-depth-4);--depth-5-background-color:var(--color-depth-5);--cell-empty-background-color:var(--color-cell-empty);--triangle-edge-background-color:var(--color-edge);--triangle-edge-width:1.5px;--selection-ring-background-color:var(--color-on-surface-muted);--selection-ring-width:1.5px;--hex-width:320px;--breadcrumb-background-color:var(--color-surface);--breadcrumb-text-color:var(--color-on-surface-muted);--breadcrumb-typography:var(--font-body);--breadcrumb-padding:var(--space-md);--breadcrumb-error-background-color:var(--color-surface);--breadcrumb-error-text-color:var(--color-error);--tree-column-width:26rem;--tree-measure-width:34rem;--tree-drawing-width:790px;--tree-sheet-height:70dvh;--tree-sheet-small-height:9rem;--tree-swatch-width:4rem;--tree-swatch-height:1.5rem;--tree-todo-height:26px;--tree-select-height:2rem;--tree-target-size:2.75rem;--tree-icon-target-size:2.5rem;--tree-row-icon-size:1.5rem;--tree-rootrow-box-size:40px;--tree-marker-size:.4rem;--tree-dot-size:.5rem;--tree-legend-inset-width:240px;--tree-legend-inset-narrow-width:128px;--tree-root-name-width:280px;--tree-count-width:104px;--tree-count-narrow-width:44px;--tree-comb-over-width:26px;--tree-topsoil-height:10px;--tree-rule-width:1px;--tree-rule-thick-width:3px;--tree-rule-thicker-width:6px;--tree-ground-line-width:1.5px;--tree-sprig-width:1.4px;--tree-halo-width:4px;--tree-focus-width:2px;--tree-focus-offset-width:2px;--tree-paper-background-color:var(--color-tree-sky);--tree-paper-text-color:var(--color-tree-ink);--tree-paper-soft-background-color:var(--color-tree-sky);--tree-paper-soft-text-color:var(--color-tree-ink-soft);--tree-box-background-color:var(--color-tree-raised);--tree-box-text-color:var(--color-tree-ink);--tree-toast-background-color:var(--color-tree-ink);--tree-toast-text-color:var(--color-tree-on-ink);--tree-alert-background-color:var(--color-tree-sky);--tree-alert-text-color:var(--color-tree-alert);--tree-ground-background-color:var(--color-tree-earth);--tree-ground-text-color:var(--color-tree-ink-under);--tree-ground-soft-background-color:var(--color-tree-earth);--tree-ground-soft-text-color:var(--color-tree-ink-under-soft);--tree-ground-box-background-color:var(--color-tree-raised-under);--tree-ground-box-text-color:var(--color-tree-ink-under);--tree-ground-topsoil-background-color:var(--color-tree-topsoil);--tree-ground-topsoil-text-color:var(--color-tree-ink-under);--tree-wood-0-background-color:var(--color-tree-sky);--tree-wood-0-text-color:var(--color-tree-wood-0);--tree-wood-1-background-color:var(--color-tree-sky);--tree-wood-1-text-color:var(--color-tree-wood-1);--tree-wood-2-background-color:var(--color-tree-sky);--tree-wood-2-text-color:var(--color-tree-wood-2);--tree-wood-3-background-color:var(--color-tree-sky);--tree-wood-3-text-color:var(--color-tree-wood-3);--tree-wood-4-background-color:var(--color-tree-sky);--tree-wood-4-text-color:var(--color-tree-wood-4);--tree-wood-under-0-background-color:var(--color-tree-earth);--tree-wood-under-0-text-color:var(--color-tree-wood-under-0);--tree-wood-under-1-background-color:var(--color-tree-earth);--tree-wood-under-1-text-color:var(--color-tree-wood-under-1);--tree-wood-under-2-background-color:var(--color-tree-earth);--tree-wood-under-2-text-color:var(--color-tree-wood-under-2);--tree-wood-under-3-background-color:var(--color-tree-earth);--tree-wood-under-3-text-color:var(--color-tree-wood-under-3);--tree-wood-under-4-background-color:var(--color-tree-earth);--tree-wood-under-4-text-color:var(--color-tree-wood-under-4);--tree-leaf-background-color:var(--color-tree-sky);--tree-leaf-text-color:var(--color-tree-leaf);--tree-leaf-under-background-color:var(--color-tree-earth);--tree-leaf-under-text-color:var(--color-tree-leaf-under);--tree-olive-background-color:var(--color-tree-sky);--tree-olive-text-color:var(--color-tree-olive);--tree-olive-under-background-color:var(--color-tree-earth);--tree-olive-under-text-color:var(--color-tree-olive-under);--tree-rule-line-background-color:var(--color-tree-rule);--tree-rule-under-background-color:var(--color-tree-rule-under);--tree-toast-shadow-background-color:var(--color-tree-shadow);--tree-lattice-sky-background-color:var(--color-tree-lattice-sky);--tree-lattice-earth-background-color:var(--color-tree-lattice-earth);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--color-surface:#1b1c1e;--color-on-surface:#e6e4df;--color-on-surface-muted:#aeaba3;--color-edge:#1b1c1e;--color-error:#f2b8b5;--color-depth-0:#2e3a35;--color-depth-1:#34433c;--color-depth-2:#3a4c44;--color-depth-3:#40554b;--color-depth-4:#465e53;--color-depth-5:#4c675a;--color-cell-empty:#232a27;--color-tree-sky:#1a1e21;--color-tree-earth:#0c0f0e;--color-tree-topsoil:#060807;--color-tree-raised:#22272a;--color-tree-ink:#e6e7de;--color-tree-ink-soft:#a6ab9f;--color-tree-rule:#353a38;--color-tree-on-ink:#131513;--color-tree-ink-under:#e6e7de;--color-tree-ink-under-soft:#a6ab9f;--color-tree-rule-under:#2a302d;--color-tree-raised-under:#1e2224;--color-tree-alert:#f09a74;--color-tree-wood-0:#a3907b;--color-tree-wood-1:#c9a65c;--color-tree-wood-2:#8aa5b3;--color-tree-wood-3:#a98db0;--color-tree-wood-4:#8fae86;--color-tree-wood-under-0:#a3907b;--color-tree-wood-under-1:#c9a65c;--color-tree-wood-under-2:#8aa5b3;--color-tree-wood-under-3:#a98db0;--color-tree-wood-under-4:#8fae86;--color-tree-leaf:#8aa373;--color-tree-leaf-under:#8aa373;--color-tree-olive:#9b8db5;--color-tree-olive-under:#9b8db5;--color-tree-shadow:#00000040;--color-tree-lattice-sky:#e6e7de0d;--color-tree-lattice-earth:#e6e7de0d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}", Tt = ":host{--sky:var(--color-tree-sky);vertical-align:middle;display:inline-block}:host([hidden]){display:none}svg{display:block;overflow:visible}", Et = typeof HTMLElement > "u" ? class {} : HTMLElement, Dt = wt.replaceAll(":root", ":host");
1142
+ function Ot(e) {
1143
+ let t;
1144
+ return () => (t || (t = new CSSStyleSheet(), t.replaceSync(`${Dt}\n${Tt}\n${e}`)), t);
1145
+ }
1146
+ function kt(e, t) {
1147
+ typeof customElements < "u" && (customElements.get(e) || customElements.define(e, t));
1148
+ }
1149
+ var Y = (e, t) => {
1150
+ let n = typeof e == "number" ? e : Number.parseFloat(String(e ?? ""));
1151
+ return Number.isFinite(n) ? n : t;
1152
+ }, At = (e) => typeof e == "boolean" ? e : e != null && e !== "false", jt = class extends Et {
1153
+ dispose;
1154
+ connectedCallback() {
1155
+ for (let e of this.inputs) if (Object.hasOwn(this, e)) {
1156
+ let t = Reflect.get(this, e);
1157
+ Reflect.deleteProperty(this, e), Reflect.set(this, e, t);
1158
+ }
1159
+ if (this.dispose) return;
1160
+ let e = this.shadowRoot ?? this.attachShadow({ mode: "open" });
1161
+ e.adoptedStyleSheets = [this.sheet()], this.dispose = Pe(() => this.draw(), e);
1162
+ }
1163
+ disconnectedCallback() {
1164
+ this.dispose?.(), this.dispose = void 0;
1165
+ }
1166
+ tell(e, t) {
1167
+ this.dispatchEvent(new CustomEvent(e, {
1168
+ detail: t,
1169
+ bubbles: !0,
1170
+ composed: !0
1171
+ }));
1172
+ }
1173
+ }, Mt = /*#__PURE__*/ P("<svg class=face part=face><path class=plate-shade></path><path class=plate-shadow></path><path class=plate-top></path><g transform=\"translate(0 -10)\"><g>"), Nt = /*#__PURE__*/ P("<svg><g class=face-leaving></svg>", !1, !0, !1), Pt = "lattice-face", Ft = Object.keys(gt), It = (e) => Ft.includes(e), Lt = 10, Rt = 2, X = 120 * Ve / 2, zt = ht([
1174
+ {
1175
+ x: 0,
1176
+ y: -120
1177
+ },
1178
+ {
1179
+ x: X,
1180
+ y: -60
1181
+ },
1182
+ {
1183
+ x: X,
1184
+ y: 60
1185
+ },
1186
+ {
1187
+ x: 0,
1188
+ y: 120
1189
+ },
1190
+ {
1191
+ x: -X,
1192
+ y: 60
1193
+ },
1194
+ {
1195
+ x: -X,
1196
+ y: -60
1197
+ }
1198
+ ], Lt), Z = {
1199
+ x: -X - Rt,
1200
+ y: -120 - Lt - Rt,
1201
+ width: 2 * (X + Rt),
1202
+ height: 240 + Lt + 4
1203
+ }, Bt = Ot(`${Ct}\n.plate-top { vector-effect: non-scaling-stroke; }`), Vt = class e extends jt {
1204
+ static observedAttributes = [
1205
+ "mood",
1206
+ "expression",
1207
+ "pulse",
1208
+ "still",
1209
+ "size",
1210
+ "label",
1211
+ "decorative"
1212
+ ];
1213
+ inputs = e.observedAttributes;
1214
+ moodSignal = T("happy");
1215
+ expressionSignal = T("");
1216
+ pulseSignal = T(0);
1217
+ stillSignal = T(!1);
1218
+ sizeSignal = T(96);
1219
+ labelSignal = T("");
1220
+ decorativeSignal = T(!1);
1221
+ get mood() {
1222
+ return this.moodSignal[0]();
1223
+ }
1224
+ set mood(e) {
1225
+ let t = String(e ?? "").toLowerCase();
1226
+ this.moodSignal[1](It(t) ? t : "happy");
1227
+ }
1228
+ get expression() {
1229
+ return this.expressionSignal[0]();
1230
+ }
1231
+ set expression(e) {
1232
+ this.expressionSignal[1](String(e ?? ""));
1233
+ }
1234
+ get pulse() {
1235
+ return this.pulseSignal[0]();
1236
+ }
1237
+ set pulse(e) {
1238
+ this.pulseSignal[1](Y(e, 0));
1239
+ }
1240
+ get still() {
1241
+ return this.stillSignal[0]();
1242
+ }
1243
+ set still(e) {
1244
+ this.stillSignal[1](At(e));
1245
+ }
1246
+ get size() {
1247
+ return this.sizeSignal[0]();
1248
+ }
1249
+ set size(e) {
1250
+ this.sizeSignal[1](Math.max(1, Y(e, 96)));
1251
+ }
1252
+ get label() {
1253
+ return this.labelSignal[0]();
1254
+ }
1255
+ set label(e) {
1256
+ this.labelSignal[1](String(e ?? ""));
1257
+ }
1258
+ get decorative() {
1259
+ return this.decorativeSignal[0]();
1260
+ }
1261
+ set decorative(e) {
1262
+ this.decorativeSignal[1](At(e));
1263
+ }
1264
+ attributeChangedCallback(e, t, n) {
1265
+ e === "still" || e === "decorative" ? Reflect.set(this, e, n) : Reflect.set(this, e, n ?? "");
1266
+ }
1267
+ sheet() {
1268
+ return Bt();
1269
+ }
1270
+ draw() {
1271
+ let e = D(() => _t(this.expression) ?? vt(this.mood)), { face: t, leaving: n } = xt({
1272
+ expression: e,
1273
+ pulse: () => this.pulse,
1274
+ still: () => this.still
1275
+ }), r = () => this.label || `A ${e().name.toLowerCase()} face`, i = this;
1276
+ return (() => {
1277
+ var e = Mt(), a = e.firstChild, o = a.nextSibling, s = o.nextSibling, c = s.nextSibling, l = c.firstChild;
1278
+ return I(c, N(Ae, {
1279
+ get when() {
1280
+ return n();
1281
+ },
1282
+ children: (e) => (() => {
1283
+ var t = Nt();
1284
+ return I(t, N(St, { get drawing() {
1285
+ return e();
1286
+ } })), t;
1287
+ })()
1288
+ }), l), I(l, N(St, { get drawing() {
1289
+ return t();
1290
+ } })), E((t) => {
1291
+ var n = i.size, c = i.size * Z.height / Z.width, l = `${Z.x} ${Z.y} ${Z.width} ${Z.height}`, u = i.decorative ? void 0 : "img", d = i.decorative ? void 0 : r(), f = i.decorative ? "true" : void 0, p = zt.shade, m = zt.shadow, h = zt.top;
1292
+ return n !== t.e && F(e, "width", t.e = n), c !== t.t && F(e, "height", t.t = c), l !== t.a && F(e, "viewBox", t.a = l), u !== t.o && F(e, "role", t.o = u), d !== t.i && F(e, "aria-label", t.i = d), f !== t.n && F(e, "aria-hidden", t.n = f), p !== t.s && F(a, "d", t.s = p), m !== t.h && F(o, "d", t.h = m), h !== t.r && F(s, "d", t.r = h), t;
1293
+ }, {
1294
+ e: void 0,
1295
+ t: void 0,
1296
+ a: void 0,
1297
+ o: void 0,
1298
+ i: void 0,
1299
+ n: void 0,
1300
+ s: void 0,
1301
+ h: void 0,
1302
+ r: void 0
1303
+ }), e;
1304
+ })();
1305
+ }
1306
+ }, Ht = () => kt(Pt, Vt), Ut = /*#__PURE__*/ P("<svg class=mark-shears viewBox=\"0 0 16 16\"aria-hidden=true><path class=shears-blade part=shears-blade></path><path class=shears-blade part=shears-blade></path><path class=shears-handle part=shears-handle></path><path class=shears-handle part=shears-handle>"), Wt = /*#__PURE__*/ P("<svg class=mark-done viewBox=\"0 0 16 16\"aria-hidden=true><path class=done-cell part=done-cell></path><path class=done-check part=done-check d=\"M 4.3 8.4 L 7 9.96 L 11.8 7.19\">"), Gt = (e, t, n) => {
1307
+ let r = n * Math.sqrt(3) / 2;
1308
+ return [
1309
+ {
1310
+ x: e,
1311
+ y: t - n
1312
+ },
1313
+ {
1314
+ x: e + r,
1315
+ y: t - n / 2
1316
+ },
1317
+ {
1318
+ x: e + r,
1319
+ y: t + n / 2
1320
+ },
1321
+ {
1322
+ x: e,
1323
+ y: t + n
1324
+ },
1325
+ {
1326
+ x: e - r,
1327
+ y: t + n / 2
1328
+ },
1329
+ {
1330
+ x: e - r,
1331
+ y: t - n / 2
1332
+ }
1333
+ ];
1334
+ };
1335
+ function Kt() {
1336
+ let e = (e, t) => [
1337
+ e,
1338
+ {
1339
+ x: e.x + t * 8.66,
1340
+ y: e.y - 5
1341
+ },
1342
+ {
1343
+ x: e.x + t * 8.66,
1344
+ y: e.y - 6.6
1345
+ },
1346
+ {
1347
+ x: e.x,
1348
+ y: e.y - 1.6
1349
+ }
1350
+ ];
1351
+ return (() => {
1352
+ var t = Ut(), n = t.firstChild, r = n.nextSibling, i = r.nextSibling, a = i.nextSibling;
1353
+ return E((t) => {
1354
+ var o = ze(e({
1355
+ x: 4.6,
1356
+ y: 10
1357
+ }, 1)), s = ze(e({
1358
+ x: 11.4,
1359
+ y: 10
1360
+ }, -1)), c = ze(Gt(4.6, 12.6, 2.6)), l = ze(Gt(11.4, 12.6, 2.6));
1361
+ return o !== t.e && F(n, "d", t.e = o), s !== t.t && F(r, "d", t.t = s), c !== t.a && F(i, "d", t.a = c), l !== t.o && F(a, "d", t.o = l), t;
1362
+ }, {
1363
+ e: void 0,
1364
+ t: void 0,
1365
+ a: void 0,
1366
+ o: void 0
1367
+ }), t;
1368
+ })();
1369
+ }
1370
+ function qt() {
1371
+ return (() => {
1372
+ var e = Wt(), t = e.firstChild;
1373
+ return E(() => F(t, "d", ze(Gt(8, 8, 7)))), e;
1374
+ })();
1375
+ }
1376
+ //#endregion
1377
+ //#region src/elements/icon.css?inline
1378
+ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--lattice-icon-size,var(--space-tree-4))}span{width:100%;height:100%;display:block}svg{width:100%;height:100%}.mark-shears,.mark-done{stroke:currentColor;stroke-width:1.3px;stroke-linejoin:miter}.shears-blade{fill:currentColor}.shears-handle,.done-cell,.done-check{fill:none}.done-check{stroke-width:1.6px}", Yt = /*#__PURE__*/ P("<span part=icon>"), Xt = /*#__PURE__*/ P("<span part=icon role=img>"), Zt = "lattice-icon", Qt = ["shears", "done"], $t = Ot(Jt), en = class e extends jt {
1379
+ static observedAttributes = ["name", "label"];
1380
+ inputs = e.observedAttributes;
1381
+ nameSignal = T("shears");
1382
+ labelSignal = T("");
1383
+ get name() {
1384
+ return this.nameSignal[0]();
1385
+ }
1386
+ set name(e) {
1387
+ this.nameSignal[1](String(e ?? "").toLowerCase() === "done" ? "done" : "shears");
1388
+ }
1389
+ get label() {
1390
+ return this.labelSignal[0]();
1391
+ }
1392
+ set label(e) {
1393
+ this.labelSignal[1](String(e ?? ""));
1394
+ }
1395
+ attributeChangedCallback(e, t, n) {
1396
+ Reflect.set(this, e, n ?? "");
1397
+ }
1398
+ sheet() {
1399
+ return $t();
1400
+ }
1401
+ draw() {
1402
+ let e = () => {
1403
+ let e = this;
1404
+ return N(je, { get children() {
1405
+ return [N(Me, {
1406
+ get when() {
1407
+ return e.name === "done";
1408
+ },
1409
+ get children() {
1410
+ return N(qt, {});
1411
+ }
1412
+ }), N(Me, {
1413
+ get when() {
1414
+ return e.name === "shears";
1415
+ },
1416
+ get children() {
1417
+ return N(Kt, {});
1418
+ }
1419
+ })];
1420
+ } });
1421
+ }, t = this;
1422
+ return N(Ae, {
1423
+ get when() {
1424
+ return t.label;
1425
+ },
1426
+ get fallback() {
1427
+ return (() => {
1428
+ var t = Yt();
1429
+ return I(t, e), t;
1430
+ })();
1431
+ },
1432
+ children: (t) => (() => {
1433
+ var n = Xt();
1434
+ return I(n, e), E(() => F(n, "aria-label", t())), n;
1435
+ })()
1436
+ });
1437
+ }
1438
+ }, tn = () => kt(Zt, en), nn = ".shape .flat-top{fill:color-mix(in srgb, var(--wood) 28%, var(--sky));stroke:color-mix(in srgb, var(--wood) 55%, var(--sky));stroke-width:var(--tree-rule-width);stroke-linejoin:round;vector-effect:non-scaling-stroke}.shape .flat-top[data-tone=\"5\"],.shape .flat-top[data-tone=\"6\"]{fill:var(--wood)}.shape .flat-top[data-tone=\"7\"]{fill:var(--color-tree-raised)}.shape .flat-shade{fill:color-mix(in srgb, var(--wood) 70%, var(--sky))}.shape .flat-shadow{fill:var(--wood)}.shape .seams{fill:none;stroke:color-mix(in srgb, var(--color-tree-ink) 18%, transparent);stroke-width:var(--tree-rule-width);stroke-linecap:round;vector-effect:non-scaling-stroke}", rn = 8, Q = (e, t, n) => ({
1439
+ kind: "cell",
1440
+ at: {
1441
+ q: e,
1442
+ r: t
1443
+ },
1444
+ tone: n
1445
+ }), $ = (e, t, n, r) => ({
1446
+ kind: "tri",
1447
+ at: {
1448
+ i: e,
1449
+ j: t,
1450
+ k: n
1451
+ },
1452
+ tone: r
1453
+ }), an = [
1454
+ {
1455
+ q: 1,
1456
+ r: 0
1457
+ },
1458
+ {
1459
+ q: 0,
1460
+ r: 1
1461
+ },
1462
+ {
1463
+ q: -1,
1464
+ r: 1
1465
+ },
1466
+ {
1467
+ q: -1,
1468
+ r: 0
1469
+ },
1470
+ {
1471
+ q: 0,
1472
+ r: -1
1473
+ },
1474
+ {
1475
+ q: 1,
1476
+ r: -1
1477
+ }
1478
+ ], on = {
1479
+ cell: (e) => [Q(0, 0, e)],
1480
+ pair: (e) => [Q(0, 0, e), Q(1, 0, e)],
1481
+ line: (e) => [
1482
+ Q(-1, 0, e),
1483
+ Q(0, 0, e),
1484
+ Q(1, 0, e)
1485
+ ],
1486
+ flower: (e) => [Q(0, 0, e), ...an.map((t) => Q(t.q, t.r, e))],
1487
+ triangle: (e) => [$(0, 0, 0, e)],
1488
+ diamond: (e) => [$(0, 0, 0, e), $(0, 0, 1, e)],
1489
+ trapezoid: (e) => [
1490
+ $(0, 0, 0, e),
1491
+ $(0, 0, 1, e),
1492
+ $(0, 1, 0, e)
1493
+ ],
1494
+ "big-triangle": (e) => [
1495
+ $(0, 0, 0, e),
1496
+ $(0, 1, 0, e),
1497
+ $(1, 0, 0, e),
1498
+ $(0, 0, 1, e)
1499
+ ],
1500
+ hexagon: (e) => t({
1501
+ q: 0,
1502
+ r: 0
1503
+ }).map((t) => $(t.i, t.j, t.k, e))
1504
+ }, sn = Object.keys(on), cn = (e) => Math.min(7, Math.max(0, Math.round(Number.isFinite(e) ? e : 0))), ln = (e) => typeof e == "number" && Number.isInteger(e);
1505
+ function un(e, t) {
1506
+ let n = e;
1507
+ if (typeof n == "string") try {
1508
+ n = JSON.parse(n);
1509
+ } catch {
1510
+ return [];
1511
+ }
1512
+ return Array.isArray(n) ? n.flatMap((e) => {
1513
+ if (typeof e != "object" || !e) return [];
1514
+ let { kind: n, at: r, tone: i } = e, a = cn(typeof i == "number" ? i : t);
1515
+ return n === "cell" && r && ln(r.q) && ln(r.r) ? [Q(r.q, r.r, a)] : n === "tri" && r && ln(r.i) && ln(r.j) && (r.k === 0 || r.k === 1) ? [$(r.i, r.j, r.k, a)] : [];
1516
+ }) : [];
1517
+ }
1518
+ function dn(e, t, i = 2) {
1519
+ if (e.length === 0) return {
1520
+ faces: [],
1521
+ seams: "",
1522
+ box: {
1523
+ x: 0,
1524
+ y: 0,
1525
+ width: 0,
1526
+ height: 0
1527
+ }
1528
+ };
1529
+ let c = r("shape", e), l = s(c).flatMap((e) => o(e).map(n)), u = l.map((e) => e.x), d = l.map((e) => e.y), f = Math.min(...u) - i, p = Math.min(...d) - t - i, m = {
1530
+ x: f,
1531
+ y: p,
1532
+ width: Math.max(...u) + i - f,
1533
+ height: Math.max(...d) + i - p
1534
+ };
1535
+ return {
1536
+ ...a(c, t),
1537
+ box: m
1538
+ };
1539
+ }
1540
+ //#endregion
1541
+ //#region src/elements/woods.css?inline
1542
+ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\"1\"]{--wood:var(--color-tree-wood-1)}.woods [data-tone=\"2\"]{--wood:var(--color-tree-wood-2)}.woods [data-tone=\"3\"]{--wood:var(--color-tree-wood-3)}.woods [data-tone=\"4\"]{--wood:var(--color-tree-wood-4)}.woods [data-tone=\"5\"],.woods [data-tone=\"7\"]{--wood:var(--color-tree-olive)}", pn = /*#__PURE__*/ P("<svg class=\"shape woods\"part=shape><path class=seams>"), mn = /*#__PURE__*/ P("<svg><path></svg>", !1, !0, !1), hn = "lattice-shape", gn = (e) => Object.hasOwn(on, e), _n = Ot(`${fn}\n${nn}`), vn = class e extends jt {
1543
+ static observedAttributes = [
1544
+ "shape",
1545
+ "parts",
1546
+ "tone",
1547
+ "lift",
1548
+ "scale",
1549
+ "label"
1550
+ ];
1551
+ inputs = e.observedAttributes;
1552
+ shapeSignal = T("cell");
1553
+ partsSignal = T();
1554
+ toneSignal = T(0);
1555
+ liftSignal = T(8);
1556
+ scaleSignal = T(1);
1557
+ labelSignal = T("");
1558
+ get shape() {
1559
+ return this.shapeSignal[0]();
1560
+ }
1561
+ set shape(e) {
1562
+ let t = String(e ?? "").toLowerCase();
1563
+ this.shapeSignal[1](gn(t) ? t : "cell");
1564
+ }
1565
+ get parts() {
1566
+ let e = this.partsSignal[0]();
1567
+ return e === void 0 ? on[this.shape](this.tone) : un(e, this.tone);
1568
+ }
1569
+ set parts(e) {
1570
+ this.partsSignal[1](() => e === null || e === "" ? void 0 : e);
1571
+ }
1572
+ get tone() {
1573
+ return this.toneSignal[0]();
1574
+ }
1575
+ set tone(e) {
1576
+ this.toneSignal[1](cn(Y(e, 0)));
1577
+ }
1578
+ get lift() {
1579
+ return this.liftSignal[0]();
1580
+ }
1581
+ set lift(e) {
1582
+ this.liftSignal[1](Math.max(0, Y(e, 8)));
1583
+ }
1584
+ get scale() {
1585
+ return this.scaleSignal[0]();
1586
+ }
1587
+ set scale(e) {
1588
+ let t = Y(e, 1);
1589
+ this.scaleSignal[1](t > 0 ? t : 1);
1590
+ }
1591
+ get label() {
1592
+ return this.labelSignal[0]();
1593
+ }
1594
+ set label(e) {
1595
+ this.labelSignal[1](String(e ?? ""));
1596
+ }
1597
+ attributeChangedCallback(e, t, n) {
1598
+ e === "parts" ? this.parts = n : Reflect.set(this, e, n ?? "");
1599
+ }
1600
+ sheet() {
1601
+ return _n();
1602
+ }
1603
+ draw() {
1604
+ let e = D(() => dn(this.parts, this.lift)), t = () => e().box, n = this;
1605
+ return (() => {
1606
+ var r = pn(), i = r.firstChild;
1607
+ return I(r, N(Oe, {
1608
+ get each() {
1609
+ return e().faces;
1610
+ },
1611
+ children: (e) => (() => {
1612
+ var t = mn();
1613
+ return E((n) => {
1614
+ var r = `flat-${e.kind}`, i = e.tone, a = e.d;
1615
+ return r !== n.e && F(t, "class", n.e = r), i !== n.t && F(t, "data-tone", n.t = i), a !== n.a && F(t, "d", n.a = a), n;
1616
+ }, {
1617
+ e: void 0,
1618
+ t: void 0,
1619
+ a: void 0
1620
+ }), t;
1621
+ })()
1622
+ }), i), E((a) => {
1623
+ var o = t().width * n.scale, s = t().height * n.scale, c = `${t().x} ${t().y} ${t().width} ${t().height}`, l = n.label ? "img" : void 0, u = n.label || void 0, d = n.label ? void 0 : "true", f = e().seams;
1624
+ return o !== a.e && F(r, "width", a.e = o), s !== a.t && F(r, "height", a.t = s), c !== a.a && F(r, "viewBox", a.a = c), l !== a.o && F(r, "role", a.o = l), u !== a.i && F(r, "aria-label", a.i = u), d !== a.n && F(r, "aria-hidden", a.n = d), f !== a.s && F(i, "d", a.s = f), a;
1625
+ }, {
1626
+ e: void 0,
1627
+ t: void 0,
1628
+ a: void 0,
1629
+ o: void 0,
1630
+ i: void 0,
1631
+ n: void 0,
1632
+ s: void 0
1633
+ }), r;
1634
+ })();
1635
+ }
1636
+ }, yn = () => kt(hn, vn), bn = ":host{touch-action:none;cursor:crosshair;display:block;position:relative}:host([disabled]){cursor:auto;pointer-events:none}.trail{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.blade{fill:none;stroke:var(--color-tree-alert);stroke-width:var(--tree-rule-thick-width);stroke-linecap:round;stroke-linejoin:round}", xn = 220;
1637
+ function Sn() {
1638
+ let [e, t] = T([]), n, r = () => {
1639
+ let i = performance.now();
1640
+ t((e) => e.filter((e) => i - e.at < xn)), n = e().length > 0 ? requestAnimationFrame(r) : void 0;
1641
+ };
1642
+ return k(() => {
1643
+ n !== void 0 && cancelAnimationFrame(n);
1644
+ }), {
1645
+ points: () => e().map((e) => `${e.p.x},${e.p.y}`).join(" "),
1646
+ add: (e) => {
1647
+ t((t) => [...t, {
1648
+ p: e,
1649
+ at: performance.now()
1650
+ }]), n ??= requestAnimationFrame(r);
1651
+ }
1652
+ };
1653
+ }
1654
+ //#endregion
1655
+ //#region src/elements/shears.tsx
1656
+ var Cn = /*#__PURE__*/ P("<svg class=trail part=trail aria-hidden=true><polyline class=blade>"), wn = "shears-pad", Tn = Ot(bn), En = class e extends jt {
1657
+ static observedAttributes = ["disabled"];
1658
+ inputs = e.observedAttributes;
1659
+ disabledSignal = T(!1);
1660
+ get disabled() {
1661
+ return this.disabledSignal[0]();
1662
+ }
1663
+ set disabled(e) {
1664
+ this.disabledSignal[1](At(e));
1665
+ }
1666
+ attributeChangedCallback(e, t, n) {
1667
+ this.disabled = n;
1668
+ }
1669
+ sheet() {
1670
+ return Tn();
1671
+ }
1672
+ draw() {
1673
+ let e = Sn(), t, n, r = (e) => {
1674
+ let t = this.getBoundingClientRect();
1675
+ return {
1676
+ x: e.clientX - t.left,
1677
+ y: e.clientY - t.top
1678
+ };
1679
+ }, i = (e) => {
1680
+ this.disabled || e.button !== 0 || t || (e.preventDefault(), n = e.pointerId, this.setPointerCapture(n), t = [r(e)], this.tell("stroke", {
1681
+ points: [...t],
1682
+ fresh: !0
1683
+ }));
1684
+ }, a = (i) => {
1685
+ if (!t || i.pointerId !== n) return;
1686
+ let a = r(i);
1687
+ t.push(a), e.add(a), this.tell("stroke", {
1688
+ points: [...t],
1689
+ fresh: !1
1690
+ });
1691
+ }, o = (e) => {
1692
+ if (!t || e.pointerId !== n) return;
1693
+ let r = t;
1694
+ t = void 0, this.hasPointerCapture(e.pointerId) && this.releasePointerCapture(e.pointerId), this.tell("strokeend", { points: r });
1695
+ }, s = [
1696
+ ["pointerdown", i],
1697
+ ["pointermove", a],
1698
+ ["pointerup", o],
1699
+ ["pointercancel", o]
1700
+ ];
1701
+ for (let [e, t] of s) this.addEventListener(e, t);
1702
+ return k(() => {
1703
+ for (let [e, t] of s) this.removeEventListener(e, t);
1704
+ }), (() => {
1705
+ var t = Cn(), n = t.firstChild;
1706
+ return E(() => F(n, "points", e.points())), t;
1707
+ })();
1708
+ }
1709
+ }, Dn = () => kt(wn, En), On = ":host{background:var(--color-tree-sky);display:block;position:relative}:host([kind=earth]){background:var(--color-tree-earth)}.sky{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.line{fill:none;stroke:var(--color-tree-lattice-sky);stroke-width:var(--tree-rule-width)}:host([kind=earth]) .line{stroke:var(--color-tree-lattice-earth)}", kn = /*#__PURE__*/ P("<svg class=sky part=sky aria-hidden=true><defs><pattern patternUnits=userSpaceOnUse><path class=line></path></pattern></defs><rect width=100% height=100%>"), An = "hex-sky", jn = Ot(On), Mn = 0, Nn = class t extends jt {
1710
+ static observedAttributes = [
1711
+ "kind",
1712
+ "scale",
1713
+ "x",
1714
+ "y"
1715
+ ];
1716
+ inputs = t.observedAttributes;
1717
+ kindSignal = T("sky");
1718
+ scaleSignal = T(1);
1719
+ xSignal = T(0);
1720
+ ySignal = T(0);
1721
+ get kind() {
1722
+ return this.kindSignal[0]();
1723
+ }
1724
+ set kind(e) {
1725
+ this.kindSignal[1](String(e ?? "").toLowerCase() === "earth" ? "earth" : "sky");
1726
+ }
1727
+ get scale() {
1728
+ return this.scaleSignal[0]();
1729
+ }
1730
+ set scale(e) {
1731
+ let t = Y(e, 1);
1732
+ this.scaleSignal[1](t > 0 ? t : 1);
1733
+ }
1734
+ get x() {
1735
+ return this.xSignal[0]();
1736
+ }
1737
+ set x(e) {
1738
+ this.xSignal[1](Y(e, 0));
1739
+ }
1740
+ get y() {
1741
+ return this.ySignal[0]();
1742
+ }
1743
+ set y(e) {
1744
+ this.ySignal[1](Y(e, 0));
1745
+ }
1746
+ attributeChangedCallback(e, t, n) {
1747
+ Reflect.set(this, e, n ?? "");
1748
+ }
1749
+ sheet() {
1750
+ return jn();
1751
+ }
1752
+ draw() {
1753
+ let t = `${An}-${++Mn}`, n = this;
1754
+ return (() => {
1755
+ var r = kn(), a = r.firstChild, o = a.firstChild, s = o.firstChild, c = a.nextSibling;
1756
+ return F(o, "id", t), F(c, "fill", `url(#${t})`), E((t) => {
1757
+ var r = e.width, a = e.height, c = `translate(${n.x} ${n.y}) scale(${n.scale})`, l = i[n.kind];
1758
+ return r !== t.e && F(o, "width", t.e = r), a !== t.t && F(o, "height", t.t = a), c !== t.a && F(o, "patternTransform", t.a = c), l !== t.o && F(s, "d", t.o = l), t;
1759
+ }, {
1760
+ e: void 0,
1761
+ t: void 0,
1762
+ a: void 0,
1763
+ o: void 0
1764
+ }), r;
1765
+ })();
1766
+ }
1767
+ }, Pn = () => kt(An, Nn);
1768
+ //#endregion
1769
+ //#region src/elements/index.ts
1770
+ function Fn() {
1771
+ Ht(), Pn(), yn(), Dn(), tn();
1772
+ }
1773
+ //#endregion
1774
+ export { Pt as _, wn as a, Ht as b, vn as c, sn as d, rn as f, tn as g, en as h, Pn as i, hn as l, Zt as m, Nn as n, En as o, Qt as p, An as r, Dn as s, Fn as t, yn as u, Vt as v, at as x, Ft as y };