@harmonics/lattice-ui 0.5.0 → 0.5.1

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.
@@ -1,4 +1,4 @@
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";
1
+ import { A as e, N as t, P as n, a as r, f as i, o as a, s as o, y as s } from "./hexes-B4uCADpF.js";
2
2
  //#region ../../node_modules/.bun/solid-js@1.9.17/node_modules/solid-js/dist/solid.js
3
3
  var c = {
4
4
  context: void 0,
@@ -19,7 +19,7 @@ function l(e) {
19
19
  function u(e) {
20
20
  c.context = e;
21
21
  }
22
- var d = (e, t) => e === t, f = Symbol("solid-track"), p = { equals: d }, m = null, h = me, g = 1, _ = 2, v = {
22
+ var d = (e, t) => e === t, f = Symbol("solid-track"), p = { equals: d }, m = null, h = he, g = 1, _ = 2, v = {
23
23
  owned: null,
24
24
  cleanups: null,
25
25
  context: null,
@@ -31,10 +31,10 @@ function w(e, t) {
31
31
  cleanups: null,
32
32
  context: a ? a.context : null,
33
33
  owner: a
34
- }, s = i ? e : () => e(() => O(() => M(o)));
34
+ }, s = i ? e : () => e(() => O(() => j(o)));
35
35
  y = o, x = null;
36
36
  try {
37
- return j(s, !0);
37
+ return A(s, !0);
38
38
  } finally {
39
39
  x = n, y = r;
40
40
  }
@@ -50,17 +50,17 @@ function T(e, t) {
50
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
51
  }
52
52
  function E(e, t, n) {
53
- A(de(e, t, !1, g));
53
+ ue(fe(e, t, !1, g));
54
54
  }
55
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);
56
+ h = ge;
57
+ let r = fe(e, t, !1, g), i = se && ae(se);
58
+ i && (r.suspense = i), (!n || !n.render) && (r.user = !0), C ? C.push(r) : ue(r);
59
59
  }
60
60
  function D(e, t, n) {
61
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);
62
+ let r = fe(e, t, !0, 0);
63
+ return r.observers = null, r.observerSlots = null, r.comparator = n.equals || void 0, ue(r), ce.bind(r);
64
64
  }
65
65
  function O(e) {
66
66
  if (x === null) return e();
@@ -94,7 +94,7 @@ function ae(e) {
94
94
  return y && y.context && (t = y.context[e.id]) !== void 0 ? t : e.defaultValue;
95
95
  }
96
96
  function oe(e) {
97
- let t = D(e), n = D(() => Se(t()));
97
+ let t = D(e), n = D(() => Ce(t()));
98
98
  return n.toArray = () => {
99
99
  let e = n();
100
100
  return Array.isArray(e) ? e : e == null ? [] : [e];
@@ -104,10 +104,10 @@ var se;
104
104
  function ce() {
105
105
  let e = b && b.running;
106
106
  if (this.sources && (e ? this.tState : this.state)) {
107
- if ((e ? this.tState : this.state) === g) A(this);
107
+ if ((e ? this.tState : this.state) === g) ue(this);
108
108
  else {
109
109
  let e = S;
110
- S = null, j(() => ge(this), !1), S = e;
110
+ S = null, A(() => _e(this), !1), S = e;
111
111
  }
112
112
  }
113
113
  if (x) {
@@ -126,39 +126,39 @@ function le(e, t, n) {
126
126
  let r = b.running;
127
127
  (r || !n && b.sources.has(e)) && (b.sources.add(e), e.tValue = t), r || (e.value = t);
128
128
  } else e.value = t;
129
- e.observers && e.observers.length && j(() => {
129
+ e.observers && e.observers.length && A(() => {
130
130
  for (let t = 0; t < e.observers.length; t += 1) {
131
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);
132
+ r && b.disposed.has(n) || ((r ? !n.tState : !n.state) && (n.pure ? S.push(n) : C.push(n), n.observers && ve(n)), r ? n.tState = g : n.state = g);
133
133
  }
134
134
  if (S.length > 1e6) throw S = [], Error();
135
135
  }, !1);
136
136
  }
137
137
  return t;
138
138
  }
139
- function A(e) {
139
+ function ue(e) {
140
140
  if (!e.fn) return;
141
- M(e);
141
+ j(e);
142
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;
143
+ de(e, b && b.running && b.sources.has(e) ? e.tValue : e.value, t), b && !b.running && b.sources.has(e) && queueMicrotask(() => {
144
+ A(() => {
145
+ b && (b.running = !0), x = y = e, de(e, e.tValue, t), x = y = null;
146
146
  }, !1);
147
147
  });
148
148
  }
149
- function ue(e, t, n) {
149
+ function de(e, t, n) {
150
150
  let r, i = y, a = x;
151
151
  x = y = e;
152
152
  try {
153
153
  r = e.fn(t);
154
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);
155
+ return e.pure && (b && b.running ? (e.tState = g, e.tOwned && e.tOwned.forEach(j), e.tOwned = void 0) : (e.state = g, e.owned && e.owned.forEach(j), e.owned = null)), e.updatedAt = n + 1, Se(t);
156
156
  } finally {
157
157
  x = a, y = i;
158
158
  }
159
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
160
  }
161
- function de(e, t, n, r = g, i) {
161
+ function fe(e, t, n, r = g, i) {
162
162
  let a = {
163
163
  fn: e,
164
164
  state: r,
@@ -174,10 +174,10 @@ function de(e, t, n, r = g, i) {
174
174
  };
175
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
176
  }
177
- function fe(e) {
177
+ function pe(e) {
178
178
  let t = b && b.running;
179
179
  if ((t ? e.tState : e.state) === 0) return;
180
- if ((t ? e.tState : e.state) === _) return ge(e);
180
+ if ((t ? e.tState : e.state) === _) return _e(e);
181
181
  if (e.suspense && O(e.suspense.inFallback)) return e.suspense.effects.push(e);
182
182
  let n = [e];
183
183
  for (; (e = e.owner) && (!e.updatedAt || e.updatedAt < ee);) {
@@ -189,36 +189,36 @@ function fe(e) {
189
189
  let t = e, i = n[r + 1];
190
190
  for (; (t = t.owner) && t !== i;) if (b.disposed.has(t)) return;
191
191
  }
192
- if ((t ? e.tState : e.state) === g) A(e);
192
+ if ((t ? e.tState : e.state) === g) ue(e);
193
193
  else if ((t ? e.tState : e.state) === _) {
194
194
  let t = S;
195
- S = null, j(() => ge(e, n[0]), !1), S = t;
195
+ S = null, A(() => _e(e, n[0]), !1), S = t;
196
196
  }
197
197
  }
198
198
  }
199
- function j(e, t) {
199
+ function A(e, t) {
200
200
  if (S) return e();
201
201
  let n = !1;
202
202
  t || (S = []), C ? n = !0 : C = [], ee++;
203
203
  try {
204
204
  let t = e();
205
- return pe(n), t;
205
+ return me(n), t;
206
206
  } catch (e) {
207
- n || (C = null), S = null, xe(e);
207
+ n || (C = null), S = null, Se(e);
208
208
  }
209
209
  }
210
- function pe(e) {
211
- if (S &&= (me(S), null), e) return;
210
+ function me(e) {
211
+ if (S &&= (he(S), null), e) return;
212
212
  let t;
213
213
  if (b) {
214
214
  if (!b.promises.size && !b.queue.size) {
215
215
  let e = b.sources, n = b.disposed;
216
216
  C.push.apply(C, b.effects), t = b.resolve;
217
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);
218
+ b = null, A(() => {
219
+ for (let e of n) j(e);
220
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]);
221
+ if (t.value = t.tValue, t.owned) for (let e = 0, n = t.owned.length; e < n; e++) j(t.owned[e]);
222
222
  t.tOwned && (t.owned = t.tOwned), delete t.tValue, delete t.tOwned, t.tState = 0;
223
223
  }
224
224
  ie(!1);
@@ -229,16 +229,16 @@ function pe(e) {
229
229
  }
230
230
  }
231
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]);
232
+ C = null, n.length && A(() => h(n), !1), t && t();
236
233
  }
237
234
  function he(e) {
235
+ for (let t = 0; t < e.length; t++) pe(e[t]);
236
+ }
237
+ function ge(e) {
238
238
  let t, n = 0;
239
239
  for (t = 0; t < e.length; t++) {
240
240
  let r = e[t];
241
- r.user ? e[n++] = r : fe(r);
241
+ r.user ? e[n++] = r : pe(r);
242
242
  }
243
243
  if (c.context) {
244
244
  if (c.count) {
@@ -247,27 +247,27 @@ function he(e) {
247
247
  }
248
248
  u();
249
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]);
250
+ for (c.effects && (c.done || !c.count) && (e = [...c.effects, ...e], n += c.effects.length, delete c.effects), t = 0; t < n; t++) pe(e[t]);
251
251
  }
252
- function ge(e, t) {
252
+ function _e(e, t) {
253
253
  let n = b && b.running;
254
254
  n ? e.tState = 0 : e.state = 0;
255
255
  for (let r = 0; r < e.sources.length; r += 1) {
256
256
  let i = e.sources[r];
257
257
  if (i.sources) {
258
258
  let e = n ? i.tState : i.state;
259
- e === g ? i !== t && (!i.updatedAt || i.updatedAt < ee) && fe(i) : e === _ && ge(i, t);
259
+ e === g ? i !== t && (!i.updatedAt || i.updatedAt < ee) && pe(i) : e === _ && _e(i, t);
260
260
  }
261
261
  }
262
262
  }
263
- function _e(e) {
263
+ function ve(e) {
264
264
  let t = b && b.running;
265
265
  for (let n = 0; n < e.observers.length; n += 1) {
266
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));
267
+ (t ? !r.tState : !r.state) && (t ? r.tState = _ : r.state = _, r.pure ? S.push(r) : C.push(r), r.observers && ve(r));
268
268
  }
269
269
  }
270
- function M(e) {
270
+ function j(e) {
271
271
  let t;
272
272
  if (e.sources) for (; e.sources.length;) {
273
273
  let t = e.sources.pop(), n = e.sourceSlots.pop(), r = t.observers;
@@ -277,12 +277,12 @@ function M(e) {
277
277
  }
278
278
  }
279
279
  if (e.tOwned) {
280
- for (t = e.tOwned.length - 1; t >= 0; t--) M(e.tOwned[t]);
280
+ for (t = e.tOwned.length - 1; t >= 0; t--) j(e.tOwned[t]);
281
281
  delete e.tOwned;
282
282
  }
283
- if (b && b.running && e.pure) ve(e, !0);
283
+ if (b && b.running && e.pure) ye(e, !0);
284
284
  else if (e.owned) {
285
- for (t = e.owned.length - 1; t >= 0; t--) M(e.owned[t]);
285
+ for (t = e.owned.length - 1; t >= 0; t--) j(e.owned[t]);
286
286
  e.owned = null;
287
287
  }
288
288
  if (e.cleanups) {
@@ -291,35 +291,35 @@ function M(e) {
291
291
  }
292
292
  b && b.running ? e.tState = 0 : e.state = 0;
293
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]);
294
+ function ye(e, t) {
295
+ if (t || (e.tState = 0, b.disposed.add(e)), e.owned) for (let t = 0; t < e.owned.length; t++) ye(e.owned[t]);
296
296
  }
297
- function ye(e) {
297
+ function be(e) {
298
298
  return e instanceof Error ? e : Error(typeof e == "string" ? e : "Unknown error", { cause: e });
299
299
  }
300
- function be(e, t, n) {
300
+ function xe(e, t, n) {
301
301
  try {
302
302
  for (let n of t) n(e);
303
303
  } catch (e) {
304
- xe(e, n && n.owner || null);
304
+ Se(e, n && n.owner || null);
305
305
  }
306
306
  }
307
- function xe(e, t = y) {
308
- let n = m && t && t.context && t.context[m], r = ye(e);
307
+ function Se(e, t = y) {
308
+ let n = m && t && t.context && t.context[m], r = be(e);
309
309
  if (!n) throw r;
310
310
  C ? C.push({
311
311
  fn() {
312
- be(r, n, t);
312
+ xe(r, n, t);
313
313
  },
314
314
  state: g
315
- }) : be(r, n, t);
315
+ }) : xe(r, n, t);
316
316
  }
317
- function Se(e) {
318
- if (typeof e == "function" && !e.length) return Se(e());
317
+ function Ce(e) {
318
+ if (typeof e == "function" && !e.length) return Ce(e());
319
319
  if (Array.isArray(e)) {
320
320
  let t = [];
321
321
  for (let n = 0; n < e.length; n++) {
322
- let r = Se(e[n]);
322
+ let r = Ce(e[n]);
323
323
  if (Array.isArray(r)) {
324
324
  if (r.length < 32768) t.push.apply(t, r);
325
325
  else for (let e = 0; e < r.length; e++) t.push(r[e]);
@@ -329,17 +329,17 @@ function Se(e) {
329
329
  }
330
330
  return e;
331
331
  }
332
- var Ce = Symbol("fallback");
333
- function we(e) {
332
+ var we = Symbol("fallback");
333
+ function Te(e) {
334
334
  for (let t = 0; t < e.length; t++) e[t]();
335
335
  }
336
- function Te(e, t, n = {}) {
336
+ function Ee(e, t, n = {}) {
337
337
  let r = [], i = [], a = [], o = 0, s = t.length > 1 ? [] : null;
338
- return k(() => we(a)), () => {
338
+ return k(() => Te(a)), () => {
339
339
  let c = e() || [], l = c.length, u, d;
340
340
  return c[f], O(() => {
341
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);
342
+ if (l === 0) o !== 0 && (Te(a), a = [], r = [], i = [], o = 0, s &&= []), n.fallback && (r = [we], i[0] = w((e) => (a[0] = e, n.fallback())), o = 1);
343
343
  else if (o === 0) {
344
344
  for (i = Array(l), d = 0; d < l; d++) r[d] = c[d], i[d] = w(p);
345
345
  o = l;
@@ -362,13 +362,13 @@ function Te(e, t, n = {}) {
362
362
  }
363
363
  };
364
364
  }
365
- function Ee(e, t, n = {}) {
365
+ function De(e, t, n = {}) {
366
366
  let r = [], i = [], a = [], o = [], s = 0, c;
367
- return k(() => we(a)), () => {
367
+ return k(() => Te(a)), () => {
368
368
  let l = e() || [], u = l.length;
369
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));
370
+ if (u === 0) return s !== 0 && (Te(a), a = [], r = [], i = [], s = 0, o = []), n.fallback && (r = [we], i[0] = w((e) => (a[0] = e, n.fallback())), s = 1), i;
371
+ for (r[0] === we && (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
372
  for (; c < r.length; c++) a[c]();
373
373
  return s = o.length = a.length = u, r = l.slice(0), i = i.slice(0, s);
374
374
  });
@@ -379,33 +379,33 @@ function Ee(e, t, n = {}) {
379
379
  }
380
380
  };
381
381
  }
382
- function N(e, t) {
382
+ function M(e, t) {
383
383
  return O(() => e(t || {}));
384
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
- }
385
+ var Oe = (e) => `Stale read from <${e}>.`;
390
386
  function ke(e) {
391
387
  let t = "fallback" in e && { fallback: () => e.fallback };
392
388
  return D(Ee(() => e.each, e.children, t || void 0));
393
389
  }
394
390
  function Ae(e) {
391
+ let t = "fallback" in e && { fallback: () => e.fallback };
392
+ return D(De(() => e.each, e.children, t || void 0));
393
+ }
394
+ function je(e) {
395
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
396
  return D(() => {
397
397
  let i = r();
398
398
  if (i) {
399
399
  let a = e.children;
400
400
  return typeof a == "function" && a.length > 0 ? O(() => a(t ? i : () => {
401
- if (!O(r)) throw De("Show");
401
+ if (!O(r)) throw Oe("Show");
402
402
  return n();
403
403
  })) : a;
404
404
  }
405
405
  return e.fallback;
406
406
  }, void 0, void 0);
407
407
  }
408
- function je(e) {
408
+ function Me(e) {
409
409
  let t = oe(() => e.children), n = D(() => {
410
410
  let e = t(), n = Array.isArray(e) ? e : [e], r = () => void 0;
411
411
  for (let e = 0; e < n.length; e++) {
@@ -423,17 +423,17 @@ function je(e) {
423
423
  if (!t) return e.fallback;
424
424
  let [r, i, a] = t, o = a.children;
425
425
  return typeof o == "function" && o.length > 0 ? O(() => o(a.keyed ? i() : () => {
426
- if (O(n)()?.[0] !== r) throw De("Match");
426
+ if (O(n)()?.[0] !== r) throw Oe("Match");
427
427
  return i();
428
428
  })) : o;
429
429
  }, void 0, void 0);
430
430
  }
431
- function Me(e) {
431
+ function Ne(e) {
432
432
  return e;
433
433
  }
434
434
  //#endregion
435
435
  //#region ../../node_modules/.bun/solid-js@1.9.17/node_modules/solid-js/web/dist/web.js
436
- function Ne(e, t, n) {
436
+ function Pe(e, t, n) {
437
437
  let r = n.length, i = t.length, a = r, o = 0, s = 0, c = t[i - 1].nextSibling, l = null;
438
438
  for (; o < i || s < a;) if (t[o] === n[s]) o++, s++;
439
439
  else {
@@ -465,33 +465,33 @@ function Ne(e, t, n) {
465
465
  }
466
466
  }
467
467
  }
468
- function Pe(e, t, n, r = {}) {
468
+ function Fe(e, t, n, r = {}) {
469
469
  let i;
470
470
  return w((r) => {
471
- i = r, t === document ? e() : I(t, e(), !n && t.firstChild ? null : void 0, n);
471
+ i = r, t === document ? e() : F(t, e(), !n && t.firstChild ? null : void 0, n);
472
472
  }, r.owner), () => {
473
473
  i(), t.textContent = "";
474
474
  };
475
475
  }
476
- function P(e, t, n, r) {
476
+ function N(e, t, n, r) {
477
477
  let i, a = () => {
478
478
  let t = r ? document.createElementNS("http://www.w3.org/1998/Math/MathML", "template") : document.createElement("template");
479
479
  return t.innerHTML = e, n ? t.content.firstChild.firstChild : r ? t.firstChild : t.content.firstChild;
480
480
  }, o = t ? () => O(() => document.importNode(i ||= a(), !0)) : () => (i ||= a()).cloneNode(!0);
481
481
  return o.cloneNode = o, o;
482
482
  }
483
- function F(e, t, n) {
484
- Fe(e) || (n == null ? e.removeAttribute(t) : e.setAttribute(t, n));
483
+ function P(e, t, n) {
484
+ Ie(e) || (n == null ? e.removeAttribute(t) : e.setAttribute(t, n));
485
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);
486
+ function F(e, t, n, r) {
487
+ if (n !== void 0 && !r && (r = []), typeof t != "function") return Le(e, t, r, n);
488
+ E((r) => Le(e, t(), r, n), r);
489
489
  }
490
- function Fe(e) {
490
+ function Ie(e) {
491
491
  return !!c.context && !c.done && (!e || e.isConnected);
492
492
  }
493
- function Ie(e, t, n, r, i) {
494
- let a = Fe(e);
493
+ function Le(e, t, n, r, i) {
494
+ let a = Ie(e);
495
495
  if (a) {
496
496
  !n && (n = [...e.childNodes]);
497
497
  let t = [];
@@ -508,19 +508,19 @@ function Ie(e, t, n, r, i) {
508
508
  if (a || o === "number" && (t = t.toString(), t === n)) return n;
509
509
  if (s) {
510
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);
511
+ i && i.nodeType === 3 ? i.data !== t && (i.data = t) : i = document.createTextNode(t), n = I(e, n, r, i);
512
512
  } else n = n !== "" && typeof n == "string" ? e.firstChild.data = t : e.textContent = t;
513
513
  } else if (t == null || o === "boolean") {
514
514
  if (a) return n;
515
- n = L(e, n, r);
515
+ n = I(e, n, r);
516
516
  } else if (o === "function") return E(() => {
517
517
  let i = t();
518
518
  for (; typeof i == "function";) i = i();
519
- n = Ie(e, i, n, r);
519
+ n = Le(e, i, n, r);
520
520
  }), () => n;
521
521
  else if (Array.isArray(t)) {
522
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;
523
+ if (Re(o, t, n, i)) return E(() => n = Le(e, o, n, r, !0)), () => n;
524
524
  if (a) {
525
525
  if (!o.length) return n;
526
526
  if (r === void 0) return n = [...e.childNodes];
@@ -531,30 +531,30 @@ function Ie(e, t, n, r, i) {
531
531
  return n = i;
532
532
  }
533
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));
534
+ if (n = I(e, n, r), s) return n;
535
+ } else c ? n.length === 0 ? ze(e, o, r) : Pe(e, n, o) : (n && I(e), ze(e, o));
536
536
  n = o;
537
537
  } else if (t.nodeType) {
538
538
  if (a && t.parentNode) return n = s ? [t] : t;
539
539
  if (Array.isArray(n)) {
540
- if (s) return n = L(e, n, r, t);
541
- L(e, n, null, t);
540
+ if (s) return n = I(e, n, r, t);
541
+ I(e, n, null, t);
542
542
  } else n == null || n === "" || !e.firstChild ? e.appendChild(t) : e.replaceChild(t, e.firstChild);
543
543
  n = t;
544
544
  }
545
545
  return n;
546
546
  }
547
- function Le(e, t, n, r) {
547
+ function Re(e, t, n, r) {
548
548
  let i = !1;
549
549
  for (let a = 0, o = t.length; a < o; a++) {
550
550
  let o = t[a], s = n && n[e.length], c;
551
551
  if (o != null && o !== !0 && o !== !1) {
552
552
  if ((c = typeof o) == "object" && o.nodeType) e.push(o);
553
- else if (Array.isArray(o)) i = Le(e, o, s) || i;
553
+ else if (Array.isArray(o)) i = Re(e, o, s) || i;
554
554
  else if (c === "function") {
555
555
  if (r) {
556
556
  for (; typeof o == "function";) o = o();
557
- i = Le(e, Array.isArray(o) ? o : [o], Array.isArray(s) ? s : [s]) || i;
557
+ i = Re(e, Array.isArray(o) ? o : [o], Array.isArray(s) ? s : [s]) || i;
558
558
  } else e.push(o), i = !0;
559
559
  } else {
560
560
  let t = String(o);
@@ -564,10 +564,10 @@ function Le(e, t, n, r) {
564
564
  }
565
565
  return i;
566
566
  }
567
- function Re(e, t, n = null) {
567
+ function ze(e, t, n = null) {
568
568
  for (let r = 0, i = t.length; r < i; r++) e.insertBefore(t[r], n);
569
569
  }
570
- function L(e, t, n, r) {
570
+ function I(e, t, n, r) {
571
571
  if (n === void 0) return e.textContent = "";
572
572
  let i = r || document.createTextNode("");
573
573
  if (t.length) {
@@ -584,7 +584,7 @@ function L(e, t, n, r) {
584
584
  }
585
585
  //#endregion
586
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`;
587
+ var L = (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
588
  function Ue(e, t = {
589
589
  x: 0,
590
590
  y: 0
@@ -1061,7 +1061,7 @@ function lt(e, t, n) {
1061
1061
  }
1062
1062
  //#endregion
1063
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;
1064
+ var ut = /*#__PURE__*/ N("<svg><path class=facet></svg>", !1, !0, !1), dt = 16, ft = 1400, pt = 300, mt = 100;
1065
1065
  function ht(e, t) {
1066
1066
  let n = (e) => ({
1067
1067
  x: e.x,
@@ -1096,30 +1096,41 @@ function bt(e, t) {
1096
1096
  let n = ct(e.at(t), dt, "raised");
1097
1097
  return lt(Ge(dt), n.inks, n.shades);
1098
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));
1099
+ function xt() {
1100
+ let [e, t] = T(Be());
1101
+ if (typeof window < "u" && typeof window.matchMedia == "function") {
1102
+ let e = window.matchMedia("(prefers-reduced-motion: reduce)"), n = () => t(e.matches);
1103
+ e.addEventListener("change", n), k(() => e.removeEventListener("change", n));
1104
+ }
1105
+ return e;
1106
+ }
1107
+ function St(e) {
1108
+ let t = xt(), n = () => t() || (e.still?.() ?? !1), [r, i] = T(!1), a;
1109
+ te(ne(e.pulse, (e, t) => {
1110
+ t === void 0 || e === t || n() || (i(!0), clearTimeout(a), a = setTimeout(() => i(!1), ft));
1103
1111
  }));
1104
- let [a, o] = T(0);
1112
+ let [o, s] = T(0);
1105
1113
  te(() => {
1106
- if (t()) {
1107
- o(0);
1114
+ if (n()) {
1115
+ s(0);
1108
1116
  return;
1109
1117
  }
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
1118
+ if (!(e.shown?.() ?? !0)) return;
1119
+ let t = performance.now() - O(o) * 1e3, r = performance.now(), i = requestAnimationFrame(function e(n) {
1120
+ n - r >= mt && (r = n, s((n - t) / 1e3)), i = requestAnimationFrame(e);
1121
+ });
1122
+ k(() => cancelAnimationFrame(i));
1123
+ }), k(() => clearTimeout(a));
1124
+ let c = D(() => r() ? yt : e.expression()), l = D(() => bt(c(), o())), [u, d] = T(), f;
1125
+ return te(ne(c, (e, t) => {
1126
+ t && !n() && (d(bt(t, o())), clearTimeout(f), f = setTimeout(() => d(void 0), pt));
1127
+ })), k(() => clearTimeout(f)), {
1128
+ face: l,
1129
+ leaving: u
1119
1130
  };
1120
1131
  }
1121
- function St(e) {
1122
- return N(ke, {
1132
+ function Ct(e) {
1133
+ return M(Ae, {
1123
1134
  get each() {
1124
1135
  return e.drawing;
1125
1136
  },
@@ -1127,7 +1138,7 @@ function St(e) {
1127
1138
  var t = ut();
1128
1139
  return E((n) => {
1129
1140
  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;
1141
+ return r !== n.e && P(t, "data-ink", n.e = r), i !== n.t && P(t, "data-shade", n.t = i), a !== n.a && P(t, "d", n.a = a), n;
1131
1142
  }, {
1132
1143
  e: void 0,
1133
1144
  t: void 0,
@@ -1138,18 +1149,20 @@ function St(e) {
1138
1149
  }
1139
1150
  //#endregion
1140
1151
  //#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) {
1152
+ var wt = ".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}}", Tt = ":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}}", Et = ":host{--sky:var(--color-tree-sky);vertical-align:middle;display:inline-block}:host([hidden]){display:none}svg{display:block;overflow:visible}", Dt = typeof HTMLElement > "u" ? class {} : HTMLElement, Ot = Tt.replaceAll(":root", ":host");
1153
+ function kt(e) {
1143
1154
  let t;
1144
- return () => (t || (t = new CSSStyleSheet(), t.replaceSync(`${Dt}\n${Tt}\n${e}`)), t);
1155
+ return () => (t || (t = new CSSStyleSheet(), t.replaceSync(`${Ot}\n${Et}\n${e}`)), t);
1145
1156
  }
1146
- function kt(e, t) {
1147
- typeof customElements < "u" && (customElements.get(e) || customElements.define(e, t));
1157
+ function At(e, t, n = e) {
1158
+ if (typeof customElements > "u") return;
1159
+ let r = customElements.get(n);
1160
+ r ? r !== t && !(r.prototype instanceof t) && console.warn(`<${n}> is already defined by another element; define ${e} as another name`) : customElements.define(n, n === e ? t : class extends t {});
1148
1161
  }
1149
1162
  var Y = (e, t) => {
1150
1163
  let n = typeof e == "number" ? e : Number.parseFloat(String(e ?? ""));
1151
1164
  return Number.isFinite(n) ? n : t;
1152
- }, At = (e) => typeof e == "boolean" ? e : e != null && e !== "false", jt = class extends Et {
1165
+ }, jt = (e) => typeof e == "boolean" ? e : e != null && e !== "false", Mt = class extends Dt {
1153
1166
  dispose;
1154
1167
  connectedCallback() {
1155
1168
  for (let e of this.inputs) if (Object.hasOwn(this, e)) {
@@ -1158,10 +1171,12 @@ var Y = (e, t) => {
1158
1171
  }
1159
1172
  if (this.dispose) return;
1160
1173
  let e = this.shadowRoot ?? this.attachShadow({ mode: "open" });
1161
- e.adoptedStyleSheets = [this.sheet()], this.dispose = Pe(() => this.draw(), e);
1174
+ e.adoptedStyleSheets = [this.sheet()], this.dispose = Fe(() => this.draw(), e);
1162
1175
  }
1163
1176
  disconnectedCallback() {
1164
- this.dispose?.(), this.dispose = void 0;
1177
+ queueMicrotask(() => {
1178
+ this.isConnected || (this.dispose?.(), this.dispose = void 0);
1179
+ });
1165
1180
  }
1166
1181
  tell(e, t) {
1167
1182
  this.dispatchEvent(new CustomEvent(e, {
@@ -1170,7 +1185,7 @@ var Y = (e, t) => {
1170
1185
  composed: !0
1171
1186
  }));
1172
1187
  }
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([
1188
+ }, Nt = /*#__PURE__*/ N("<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>"), Pt = /*#__PURE__*/ N("<svg><g class=face-leaving></svg>", !1, !0, !1), Ft = "lattice-face", It = Object.keys(gt), Lt = (e) => It.includes(e), Rt = 10, zt = 2, X = 120 * Ve / 2, Bt = ht([
1174
1189
  {
1175
1190
  x: 0,
1176
1191
  y: -120
@@ -1195,12 +1210,12 @@ var Y = (e, t) => {
1195
1210
  x: -X,
1196
1211
  y: -60
1197
1212
  }
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 {
1213
+ ], Rt), Z = {
1214
+ x: -X - zt,
1215
+ y: -120 - Rt - zt,
1216
+ width: 2 * (X + zt),
1217
+ height: 240 + Rt + 4
1218
+ }, Vt = kt(`${wt}\n.plate-top { vector-effect: non-scaling-stroke; }`), Ht = class e extends Mt {
1204
1219
  static observedAttributes = [
1205
1220
  "mood",
1206
1221
  "expression",
@@ -1223,7 +1238,7 @@ var Y = (e, t) => {
1223
1238
  }
1224
1239
  set mood(e) {
1225
1240
  let t = String(e ?? "").toLowerCase();
1226
- this.moodSignal[1](It(t) ? t : "happy");
1241
+ this.moodSignal[1](Lt(t) ? t : "happy");
1227
1242
  }
1228
1243
  get expression() {
1229
1244
  return this.expressionSignal[0]();
@@ -1241,7 +1256,7 @@ var Y = (e, t) => {
1241
1256
  return this.stillSignal[0]();
1242
1257
  }
1243
1258
  set still(e) {
1244
- this.stillSignal[1](At(e));
1259
+ this.stillSignal[1](jt(e));
1245
1260
  }
1246
1261
  get size() {
1247
1262
  return this.sizeSignal[0]();
@@ -1259,37 +1274,46 @@ var Y = (e, t) => {
1259
1274
  return this.decorativeSignal[0]();
1260
1275
  }
1261
1276
  set decorative(e) {
1262
- this.decorativeSignal[1](At(e));
1277
+ this.decorativeSignal[1](jt(e));
1263
1278
  }
1264
1279
  attributeChangedCallback(e, t, n) {
1265
1280
  e === "still" || e === "decorative" ? Reflect.set(this, e, n) : Reflect.set(this, e, n ?? "");
1266
1281
  }
1267
1282
  sheet() {
1268
- return Bt();
1283
+ return Vt();
1269
1284
  }
1270
1285
  draw() {
1271
- let e = D(() => _t(this.expression) ?? vt(this.mood)), { face: t, leaving: n } = xt({
1286
+ let e = D(() => _t(this.expression) ?? vt(this.mood)), [t, n] = T(!0);
1287
+ if (typeof IntersectionObserver < "u") {
1288
+ let e = new IntersectionObserver((e) => {
1289
+ let t = e.at(-1);
1290
+ t && n(t.isIntersecting);
1291
+ });
1292
+ e.observe(this), k(() => e.disconnect());
1293
+ }
1294
+ let { face: r, leaving: i } = St({
1272
1295
  expression: e,
1273
1296
  pulse: () => this.pulse,
1274
- still: () => this.still
1275
- }), r = () => this.label || `A ${e().name.toLowerCase()} face`, i = this;
1297
+ still: () => this.still,
1298
+ shown: t
1299
+ }), a = () => this.label || `A ${e().name.toLowerCase()} face`, o = this;
1276
1300
  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, {
1301
+ var e = Nt(), t = e.firstChild, n = t.nextSibling, s = n.nextSibling, c = s.nextSibling, l = c.firstChild;
1302
+ return F(c, M(je, {
1279
1303
  get when() {
1280
- return n();
1304
+ return i();
1281
1305
  },
1282
1306
  children: (e) => (() => {
1283
- var t = Nt();
1284
- return I(t, N(St, { get drawing() {
1307
+ var t = Pt();
1308
+ return F(t, M(Ct, { get drawing() {
1285
1309
  return e();
1286
1310
  } })), t;
1287
1311
  })()
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;
1312
+ }), l), F(l, M(Ct, { get drawing() {
1313
+ return r();
1314
+ } })), E((r) => {
1315
+ var i = o.size, c = o.size * Z.height / Z.width, l = `${Z.x} ${Z.y} ${Z.width} ${Z.height}`, u = o.decorative ? void 0 : "img", d = o.decorative ? void 0 : a(), f = o.decorative ? "true" : void 0, p = Bt.shade, m = Bt.shadow, h = Bt.top;
1316
+ return i !== r.e && P(e, "width", r.e = i), c !== r.t && P(e, "height", r.t = c), l !== r.a && P(e, "viewBox", r.a = l), u !== r.o && P(e, "role", r.o = u), d !== r.i && P(e, "aria-label", r.i = d), f !== r.n && P(e, "aria-hidden", r.n = f), p !== r.s && P(t, "d", r.s = p), m !== r.h && P(n, "d", r.h = m), h !== r.r && P(s, "d", r.r = h), r;
1293
1317
  }, {
1294
1318
  e: void 0,
1295
1319
  t: void 0,
@@ -1303,7 +1327,7 @@ var Y = (e, t) => {
1303
1327
  }), e;
1304
1328
  })();
1305
1329
  }
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) => {
1330
+ }, Ut = (e) => At(Ft, Ht, e), Wt = /*#__PURE__*/ N("<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>"), Gt = /*#__PURE__*/ N("<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\">"), Kt = (e, t, n) => {
1307
1331
  let r = n * Math.sqrt(3) / 2;
1308
1332
  return [
1309
1333
  {
@@ -1332,7 +1356,7 @@ var Y = (e, t) => {
1332
1356
  }
1333
1357
  ];
1334
1358
  };
1335
- function Kt() {
1359
+ function qt() {
1336
1360
  let e = (e, t) => [
1337
1361
  e,
1338
1362
  {
@@ -1349,16 +1373,16 @@ function Kt() {
1349
1373
  }
1350
1374
  ];
1351
1375
  return (() => {
1352
- var t = Ut(), n = t.firstChild, r = n.nextSibling, i = r.nextSibling, a = i.nextSibling;
1376
+ var t = Wt(), n = t.firstChild, r = n.nextSibling, i = r.nextSibling, a = i.nextSibling;
1353
1377
  return E((t) => {
1354
- var o = ze(e({
1378
+ var o = L(e({
1355
1379
  x: 4.6,
1356
1380
  y: 10
1357
- }, 1)), s = ze(e({
1381
+ }, 1)), s = L(e({
1358
1382
  x: 11.4,
1359
1383
  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;
1384
+ }, -1)), c = L(Kt(4.6, 12.6, 2.6)), l = L(Kt(11.4, 12.6, 2.6));
1385
+ return o !== t.e && P(n, "d", t.e = o), s !== t.t && P(r, "d", t.t = s), c !== t.a && P(i, "d", t.a = c), l !== t.o && P(a, "d", t.o = l), t;
1362
1386
  }, {
1363
1387
  e: void 0,
1364
1388
  t: void 0,
@@ -1367,15 +1391,15 @@ function Kt() {
1367
1391
  }), t;
1368
1392
  })();
1369
1393
  }
1370
- function qt() {
1394
+ function Jt() {
1371
1395
  return (() => {
1372
- var e = Wt(), t = e.firstChild;
1373
- return E(() => F(t, "d", ze(Gt(8, 8, 7)))), e;
1396
+ var e = Gt(), t = e.firstChild;
1397
+ return E(() => P(t, "d", L(Kt(8, 8, 7)))), e;
1374
1398
  })();
1375
1399
  }
1376
1400
  //#endregion
1377
1401
  //#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 {
1402
+ var Yt = ":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}", Xt = /*#__PURE__*/ N("<span part=icon>"), Zt = /*#__PURE__*/ N("<span part=icon role=img>"), Qt = "lattice-icon", $t = ["shears", "done"], en = kt(Yt), tn = class e extends Mt {
1379
1403
  static observedAttributes = ["name", "label"];
1380
1404
  inputs = e.observedAttributes;
1381
1405
  nameSignal = T("shears");
@@ -1396,46 +1420,46 @@ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--
1396
1420
  Reflect.set(this, e, n ?? "");
1397
1421
  }
1398
1422
  sheet() {
1399
- return $t();
1423
+ return en();
1400
1424
  }
1401
1425
  draw() {
1402
1426
  let e = () => {
1403
1427
  let e = this;
1404
- return N(je, { get children() {
1405
- return [N(Me, {
1428
+ return M(Me, { get children() {
1429
+ return [M(Ne, {
1406
1430
  get when() {
1407
1431
  return e.name === "done";
1408
1432
  },
1409
1433
  get children() {
1410
- return N(qt, {});
1434
+ return M(Jt, {});
1411
1435
  }
1412
- }), N(Me, {
1436
+ }), M(Ne, {
1413
1437
  get when() {
1414
1438
  return e.name === "shears";
1415
1439
  },
1416
1440
  get children() {
1417
- return N(Kt, {});
1441
+ return M(qt, {});
1418
1442
  }
1419
1443
  })];
1420
1444
  } });
1421
1445
  }, t = this;
1422
- return N(Ae, {
1446
+ return M(je, {
1423
1447
  get when() {
1424
1448
  return t.label;
1425
1449
  },
1426
1450
  get fallback() {
1427
1451
  return (() => {
1428
- var t = Yt();
1429
- return I(t, e), t;
1452
+ var t = Xt();
1453
+ return F(t, e), t;
1430
1454
  })();
1431
1455
  },
1432
1456
  children: (t) => (() => {
1433
- var n = Xt();
1434
- return I(n, e), E(() => F(n, "aria-label", t())), n;
1457
+ var n = Zt();
1458
+ return F(n, e), E(() => P(n, "aria-label", t())), n;
1435
1459
  })()
1436
1460
  });
1437
1461
  }
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) => ({
1462
+ }, nn = (e) => At(Qt, tn, e), rn = ".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}", an = 8, Q = (e, t, n) => ({
1439
1463
  kind: "cell",
1440
1464
  at: {
1441
1465
  q: e,
@@ -1450,7 +1474,7 @@ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--
1450
1474
  k: n
1451
1475
  },
1452
1476
  tone: r
1453
- }), an = [
1477
+ }), on = [
1454
1478
  {
1455
1479
  q: 1,
1456
1480
  r: 0
@@ -1475,7 +1499,7 @@ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--
1475
1499
  q: 1,
1476
1500
  r: -1
1477
1501
  }
1478
- ], on = {
1502
+ ], sn = {
1479
1503
  cell: (e) => [Q(0, 0, e)],
1480
1504
  pair: (e) => [Q(0, 0, e), Q(1, 0, e)],
1481
1505
  line: (e) => [
@@ -1483,7 +1507,7 @@ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--
1483
1507
  Q(0, 0, e),
1484
1508
  Q(1, 0, e)
1485
1509
  ],
1486
- flower: (e) => [Q(0, 0, e), ...an.map((t) => Q(t.q, t.r, e))],
1510
+ flower: (e) => [Q(0, 0, e), ...on.map((t) => Q(t.q, t.r, e))],
1487
1511
  triangle: (e) => [$(0, 0, 0, e)],
1488
1512
  diamond: (e) => [$(0, 0, 0, e), $(0, 0, 1, e)],
1489
1513
  trapezoid: (e) => [
@@ -1497,25 +1521,27 @@ var Jt = ":host{width:var(--lattice-icon-size,var(--space-tree-4));height:var(--
1497
1521
  $(1, 0, 0, e),
1498
1522
  $(0, 0, 1, e)
1499
1523
  ],
1500
- hexagon: (e) => t({
1524
+ hexagon: (t) => e({
1501
1525
  q: 0,
1502
1526
  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) {
1527
+ }).map((e) => $(e.i, e.j, e.k, t))
1528
+ }, cn = Object.keys(sn), ln = (e) => Math.min(7, Math.max(0, Math.round(Number.isFinite(e) ? e : 0))), un = (e) => typeof e == "number" && Number.isInteger(e), dn = !1, fn = (e) => {
1529
+ dn || (dn = !0, console.warn(`<lattice-shape> parts is not JSON (${e.slice(0, 40)}): set parts as a property, and define the elements before the page first draws them`));
1530
+ };
1531
+ function pn(e, t) {
1506
1532
  let n = e;
1507
1533
  if (typeof n == "string") try {
1508
1534
  n = JSON.parse(n);
1509
1535
  } catch {
1510
- return [];
1536
+ return fn(n), [];
1511
1537
  }
1512
1538
  return Array.isArray(n) ? n.flatMap((e) => {
1513
1539
  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)] : [];
1540
+ let { kind: n, at: r, tone: i } = e, a = ln(typeof i == "number" ? i : t);
1541
+ return n === "cell" && r && un(r.q) && un(r.r) ? [Q(r.q, r.r, a)] : n === "tri" && r && un(r.i) && un(r.j) && (r.k === 0 || r.k === 1) ? [$(r.i, r.j, r.k, a)] : [];
1516
1542
  }) : [];
1517
1543
  }
1518
- function dn(e, t, i = 2) {
1544
+ function mn(e, t, n = 2) {
1519
1545
  if (e.length === 0) return {
1520
1546
  faces: [],
1521
1547
  seams: "",
@@ -1526,20 +1552,20 @@ function dn(e, t, i = 2) {
1526
1552
  height: 0
1527
1553
  }
1528
1554
  };
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 = {
1555
+ let c = s("shape", e), l = o(c).flatMap((e) => a(e).map(r)), u = l.map((e) => e.x), d = l.map((e) => e.y), f = Math.min(...u) - n, p = Math.min(...d) - t - n, m = {
1530
1556
  x: f,
1531
1557
  y: p,
1532
- width: Math.max(...u) + i - f,
1533
- height: Math.max(...d) + i - p
1558
+ width: Math.max(...u) + n - f,
1559
+ height: Math.max(...d) + n - p
1534
1560
  };
1535
1561
  return {
1536
- ...a(c, t),
1562
+ ...i(c, t),
1537
1563
  box: m
1538
1564
  };
1539
1565
  }
1540
1566
  //#endregion
1541
1567
  //#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 {
1568
+ var hn = ".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)}", gn = /*#__PURE__*/ N("<svg class=\"shape woods\"part=shape><path class=seams>"), _n = /*#__PURE__*/ N("<svg><path></svg>", !1, !0, !1), vn = "lattice-shape", yn = (e) => Object.hasOwn(sn, e), bn = kt(`${hn}\n${rn}`), xn = class e extends Mt {
1543
1569
  static observedAttributes = [
1544
1570
  "shape",
1545
1571
  "parts",
@@ -1560,11 +1586,23 @@ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\
1560
1586
  }
1561
1587
  set shape(e) {
1562
1588
  let t = String(e ?? "").toLowerCase();
1563
- this.shapeSignal[1](gn(t) ? t : "cell");
1589
+ this.shapeSignal[1](yn(t) ? t : "cell");
1564
1590
  }
1591
+ made;
1565
1592
  get parts() {
1566
- let e = this.partsSignal[0]();
1567
- return e === void 0 ? on[this.shape](this.tone) : un(e, this.tone);
1593
+ let e = [
1594
+ this.partsSignal[0](),
1595
+ this.shape,
1596
+ this.tone
1597
+ ];
1598
+ if (!this.made || e.some((e, t) => e !== this.made?.from[t])) {
1599
+ let [t, n, r] = e, i = t === void 0 ? sn[n](r) : pn(t, r);
1600
+ this.made = {
1601
+ from: e,
1602
+ parts: i
1603
+ };
1604
+ }
1605
+ return this.made.parts;
1568
1606
  }
1569
1607
  set parts(e) {
1570
1608
  this.partsSignal[1](() => e === null || e === "" ? void 0 : e);
@@ -1573,7 +1611,7 @@ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\
1573
1611
  return this.toneSignal[0]();
1574
1612
  }
1575
1613
  set tone(e) {
1576
- this.toneSignal[1](cn(Y(e, 0)));
1614
+ this.toneSignal[1](ln(Y(e, 0)));
1577
1615
  }
1578
1616
  get lift() {
1579
1617
  return this.liftSignal[0]();
@@ -1598,21 +1636,21 @@ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\
1598
1636
  e === "parts" ? this.parts = n : Reflect.set(this, e, n ?? "");
1599
1637
  }
1600
1638
  sheet() {
1601
- return _n();
1639
+ return bn();
1602
1640
  }
1603
1641
  draw() {
1604
- let e = D(() => dn(this.parts, this.lift)), t = () => e().box, n = this;
1642
+ let e = D(() => mn(this.parts, this.lift)), t = () => e().box, n = this;
1605
1643
  return (() => {
1606
- var r = pn(), i = r.firstChild;
1607
- return I(r, N(Oe, {
1644
+ var r = gn(), i = r.firstChild;
1645
+ return F(r, M(ke, {
1608
1646
  get each() {
1609
1647
  return e().faces;
1610
1648
  },
1611
1649
  children: (e) => (() => {
1612
- var t = mn();
1650
+ var t = _n();
1613
1651
  return E((n) => {
1614
1652
  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;
1653
+ return r !== n.e && P(t, "class", n.e = r), i !== n.t && P(t, "data-tone", n.t = i), a !== n.a && P(t, "d", n.a = a), n;
1616
1654
  }, {
1617
1655
  e: void 0,
1618
1656
  t: void 0,
@@ -1621,7 +1659,7 @@ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\
1621
1659
  })()
1622
1660
  }), i), E((a) => {
1623
1661
  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;
1662
+ return o !== a.e && P(r, "width", a.e = o), s !== a.t && P(r, "height", a.t = s), c !== a.a && P(r, "viewBox", a.a = c), l !== a.o && P(r, "role", a.o = l), u !== a.i && P(r, "aria-label", a.i = u), d !== a.n && P(r, "aria-hidden", a.n = d), f !== a.s && P(i, "d", a.s = f), a;
1625
1663
  }, {
1626
1664
  e: void 0,
1627
1665
  t: void 0,
@@ -1633,11 +1671,11 @@ var fn = ".woods [data-tone]{--wood:var(--color-tree-wood-0)}.woods [data-tone=\
1633
1671
  }), r;
1634
1672
  })();
1635
1673
  }
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() {
1674
+ }, Sn = (e) => At(vn, xn, e), Cn = ":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}", wn = 220;
1675
+ function Tn() {
1638
1676
  let [e, t] = T([]), n, r = () => {
1639
1677
  let i = performance.now();
1640
- t((e) => e.filter((e) => i - e.at < xn)), n = e().length > 0 ? requestAnimationFrame(r) : void 0;
1678
+ t((e) => e.filter((e) => i - e.at < wn)), n = e().length > 0 ? requestAnimationFrame(r) : void 0;
1641
1679
  };
1642
1680
  return k(() => {
1643
1681
  n !== void 0 && cancelAnimationFrame(n);
@@ -1653,7 +1691,7 @@ function Sn() {
1653
1691
  }
1654
1692
  //#endregion
1655
1693
  //#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 {
1694
+ var En = /*#__PURE__*/ N("<svg class=trail part=trail aria-hidden=true><polyline class=blade>"), Dn = "shears-pad", On = kt(Cn), kn = class e extends Mt {
1657
1695
  static observedAttributes = ["disabled"];
1658
1696
  inputs = e.observedAttributes;
1659
1697
  disabledSignal = T(!1);
@@ -1661,52 +1699,64 @@ var Cn = /*#__PURE__*/ P("<svg class=trail part=trail aria-hidden=true><polyline
1661
1699
  return this.disabledSignal[0]();
1662
1700
  }
1663
1701
  set disabled(e) {
1664
- this.disabledSignal[1](At(e));
1702
+ this.disabledSignal[1](jt(e));
1665
1703
  }
1666
1704
  attributeChangedCallback(e, t, n) {
1667
1705
  this.disabled = n;
1668
1706
  }
1669
1707
  sheet() {
1670
- return Tn();
1708
+ return On();
1671
1709
  }
1672
1710
  draw() {
1673
- let e = Sn(), t, n, r = (e) => {
1711
+ let e = Tn(), t, n, r = (e) => {
1674
1712
  let t = this.getBoundingClientRect();
1675
1713
  return {
1676
1714
  x: e.clientX - t.left,
1677
1715
  y: e.clientY - t.top
1678
1716
  };
1679
1717
  }, 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],
1718
+ if (!t || n === void 0) return;
1719
+ let r = t, i = n;
1720
+ t = void 0, n = void 0, this.hasPointerCapture(i) && this.releasePointerCapture(i), this.tell("strokeend", {
1721
+ points: r,
1722
+ cancelled: e
1723
+ });
1724
+ }, a = (e) => {
1725
+ if (this.disabled || e.button !== 0 || t) return;
1726
+ e.preventDefault(), n = e.pointerId, this.setPointerCapture(n);
1727
+ let i = r(e);
1728
+ t = [i], this.tell("stroke", {
1729
+ points: [i],
1730
+ point: i,
1682
1731
  fresh: !0
1683
- }));
1684
- }, a = (i) => {
1732
+ });
1733
+ }, o = (i) => {
1685
1734
  if (!t || i.pointerId !== n) return;
1686
1735
  let a = r(i);
1687
1736
  t.push(a), e.add(a), this.tell("stroke", {
1688
1737
  points: [...t],
1738
+ point: a,
1689
1739
  fresh: !1
1690
1740
  });
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]
1741
+ }, s = (e) => (t) => {
1742
+ t.pointerId === n && i(e);
1743
+ }, c = [
1744
+ ["pointerdown", a],
1745
+ ["pointermove", o],
1746
+ ["pointerup", s(!1)],
1747
+ ["pointercancel", s(!0)],
1748
+ ["lostpointercapture", s(!0)]
1700
1749
  ];
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);
1750
+ for (let [e, t] of c) this.addEventListener(e, t);
1751
+ return te(ne(() => this.disabled, (e) => e && i(!0), { defer: !0 })), k(() => {
1752
+ i(!0);
1753
+ for (let [e, t] of c) this.removeEventListener(e, t);
1704
1754
  }), (() => {
1705
- var t = Cn(), n = t.firstChild;
1706
- return E(() => F(n, "points", e.points())), t;
1755
+ var t = En(), n = t.firstChild;
1756
+ return E(() => P(n, "points", e.points())), t;
1707
1757
  })();
1708
1758
  }
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 {
1759
+ }, An = (e) => At(Dn, kn, e), jn = ":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)}", Mn = /*#__PURE__*/ N("<svg class=sky part=sky aria-hidden=true><defs><pattern patternUnits=userSpaceOnUse><path class=line></path></pattern></defs><rect width=100% height=100%>"), Nn = "hex-sky", Pn = kt(jn), Fn = 0, In = class e extends Mt {
1710
1760
  static observedAttributes = [
1711
1761
  "kind",
1712
1762
  "orient",
@@ -1714,7 +1764,7 @@ var Cn = /*#__PURE__*/ P("<svg class=trail part=trail aria-hidden=true><polyline
1714
1764
  "x",
1715
1765
  "y"
1716
1766
  ];
1717
- inputs = t.observedAttributes;
1767
+ inputs = e.observedAttributes;
1718
1768
  kindSignal = T("sky");
1719
1769
  orientSignal = T("pointy");
1720
1770
  scaleSignal = T(1);
@@ -1755,28 +1805,28 @@ var Cn = /*#__PURE__*/ P("<svg class=trail part=trail aria-hidden=true><polyline
1755
1805
  Reflect.set(this, e, n ?? "");
1756
1806
  }
1757
1807
  sheet() {
1758
- return jn();
1808
+ return Pn();
1759
1809
  }
1760
1810
  draw() {
1761
- let t = `${An}-${++Mn}`, n = this;
1811
+ let e = `${Nn}-${++Fn}`, r = this;
1762
1812
  return (() => {
1763
- var r = kn(), a = r.firstChild, o = a.firstChild, s = o.firstChild, c = a.nextSibling;
1764
- return F(o, "id", t), F(c, "fill", `url(#${t})`), E((t) => {
1765
- var r = e.width, a = e.height, c = `translate(${n.x} ${n.y})${n.orient === "flat" ? " rotate(90)" : ""} scale(${n.scale})`, l = i[n.kind];
1766
- 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;
1813
+ var i = Mn(), a = i.firstChild, o = a.firstChild, s = o.firstChild, c = a.nextSibling;
1814
+ return P(o, "id", e), P(c, "fill", `url(#${e})`), E((e) => {
1815
+ var i = t.width, a = t.height, c = `translate(${r.x} ${r.y})${r.orient === "flat" ? " rotate(90)" : ""} scale(${r.scale})`, l = n[r.kind];
1816
+ return i !== e.e && P(o, "width", e.e = i), a !== e.t && P(o, "height", e.t = a), c !== e.a && P(o, "patternTransform", e.a = c), l !== e.o && P(s, "d", e.o = l), e;
1767
1817
  }, {
1768
1818
  e: void 0,
1769
1819
  t: void 0,
1770
1820
  a: void 0,
1771
1821
  o: void 0
1772
- }), r;
1822
+ }), i;
1773
1823
  })();
1774
1824
  }
1775
- }, Pn = () => kt(An, Nn);
1825
+ }, Ln = (e) => At(Nn, In, e);
1776
1826
  //#endregion
1777
1827
  //#region src/elements/index.ts
1778
- function Fn() {
1779
- Ht(), Pn(), yn(), Dn(), tn();
1828
+ function Rn() {
1829
+ Ut(), Ln(), Sn(), An(), nn();
1780
1830
  }
1781
1831
  //#endregion
1782
- 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 };
1832
+ export { Ft as _, Dn as a, Ut as b, xn as c, cn as d, an as f, nn as g, tn as h, Ln as i, vn as l, Qt as m, In as n, kn as o, $t as p, Nn as r, An as s, Rn as t, Sn as u, Ht as v, at as x, It as y };