wrec 0.18.0 → 0.18.2

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.
package/dist/wrec.es.js CHANGED
@@ -1,83 +1,89 @@
1
- function M(r, t) {
2
- let e = r;
1
+ function M(n, t) {
2
+ let e = n;
3
3
  for (const s of t.split("."))
4
4
  e = e[s];
5
5
  return e;
6
6
  }
7
- function H(r, t, e) {
7
+ function H(n, t, e) {
8
8
  const s = t.split("."), o = s.length - 1;
9
- let i = r;
10
- s.forEach((n, h) => {
11
- h === o ? i[n] = e : i = i[n];
9
+ let i = n;
10
+ s.forEach((r, h) => {
11
+ h === o ? i[r] = e : i = i[r];
12
12
  });
13
13
  }
14
14
  class m extends Error {
15
15
  }
16
- const O = /([a-zA-Z-]+)\s*:\s*([^;}]+)/g, P = "a-zA-Z_$", F = P + "0-9", b = `[${P}][${F}]*`, j = /<!--\s*(.*?)\s*-->/, V = /<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g, A = new RegExp(`^this\\.${b}$`), E = new RegExp(`this\\.${b}(\\.${b})*`, "g"), N = new RegExp(`this\\.${b}(\\.${b})*`), _ = /* @__PURE__ */ new Set(["class", "style"]), $ = 5;
17
- function I(r) {
18
- return r instanceof HTMLButtonElement || r instanceof HTMLFieldSetElement || r instanceof HTMLInputElement || r instanceof HTMLSelectElement || r instanceof HTMLTextAreaElement || r instanceof u;
16
+ const O = /([a-zA-Z-]+)\s*:\s*([^;}]+)/g, P = "a-zA-Z_$", F = P + "0-9", b = `[${P}][${F}]*`, j = /<!--\s*(.*?)\s*-->/, V = /<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g, A = new RegExp(`^this\\.${b}$`), E = new RegExp(`this\\.${b}(\\.${b})*`, "g"), $ = new RegExp(`this\\.${b}(\\.${b})*`), _ = /* @__PURE__ */ new Set(["class", "style"]), N = 5;
17
+ function I(n) {
18
+ return n instanceof HTMLButtonElement || n instanceof HTMLFieldSetElement || n instanceof HTMLInputElement || n instanceof HTMLSelectElement || n instanceof HTMLTextAreaElement || n instanceof u;
19
19
  }
20
- function q(r, t, e) {
21
- const s = document.createElement(r);
20
+ function D(n) {
21
+ const t = new CSSStyleSheet();
22
+ for (const e of Array.from(n.cssRules))
23
+ t.insertRule(e.cssText);
24
+ return t;
25
+ }
26
+ function z(n, t, e) {
27
+ const s = document.createElement(n);
22
28
  if (t)
23
29
  for (const [o, i] of Object.entries(t))
24
30
  s.setAttribute(o, i);
25
31
  return e && (s.innerHTML = e), s;
26
32
  }
27
- const D = (r) => r === String ? "" : r === Number ? 0 : r === Boolean ? !1 : r === Array ? [] : r === Object ? {} : void 0;
28
- function w(r) {
33
+ const B = (n) => n === String ? "" : n === Number ? 0 : n === Boolean ? !1 : n === Array ? [] : n === Object ? {} : void 0;
34
+ function w(n) {
29
35
  const t = [];
30
- let e = r.firstElementChild;
36
+ let e = n.firstElementChild;
31
37
  for (; e; )
32
38
  t.push(e), e.shadowRoot && t.push(...w(e.shadowRoot)), e.firstElementChild && t.push(...w(e)), e = e.nextElementSibling;
33
39
  return t;
34
40
  }
35
- const g = (r) => r.substring($).split(".")[0];
36
- function x(r, t) {
37
- let e = r[0];
41
+ const g = (n) => n.substring(N).split(".")[0];
42
+ function x(n, t) {
43
+ let e = n[0];
38
44
  return t.forEach((s, o) => {
39
- e += s + r[o + 1];
45
+ e += s + n[o + 1];
40
46
  }), e;
41
47
  }
42
- function T(r) {
43
- const t = typeof r;
48
+ function T(n) {
49
+ const t = typeof n;
44
50
  return t === "string" || t === "number" || t === "boolean";
45
51
  }
46
- function d(r) {
47
- return r.localName === "textarea";
52
+ function d(n) {
53
+ return n.localName === "textarea";
48
54
  }
49
- function R(r) {
50
- const { localName: t } = r;
55
+ function R(n) {
56
+ const { localName: t } = n;
51
57
  return t === "input" || t === "select";
52
58
  }
53
- const B = (r) => r.replace(/<!--[\s\S]*?-->/g, "");
54
- function L(r, t, e, s) {
55
- return r.slice(0, t) + s + r.slice(t + e);
59
+ const q = (n) => n.replace(/<!--[\s\S]*?-->/g, "");
60
+ function L(n, t, e, s) {
61
+ return n.slice(0, t) + s + n.slice(t + e);
56
62
  }
57
- function S(r) {
58
- const t = Number(r);
59
- if (isNaN(t)) throw new m(`can't convert "${r}" to a number`);
63
+ function S(n) {
64
+ const t = Number(n);
65
+ if (isNaN(t)) throw new m(`can't convert "${n}" to a number`);
60
66
  return t;
61
67
  }
62
- function k(r, t, e) {
68
+ function k(n, t, e) {
63
69
  const [s, o] = t.split(":");
64
70
  if (T(e))
65
71
  if (typeof e == "boolean") {
66
- e ? r.setAttribute(s, s) : r.removeAttribute(s);
72
+ e ? n.setAttribute(s, s) : n.removeAttribute(s);
67
73
  const i = u.getPropName(s);
68
- r[i] = e;
74
+ n[i] = e;
69
75
  } else {
70
- const i = r.getAttribute(t), n = String(e);
71
- i !== n && (r.setAttribute(s, n), s === "value" && R(r) && (r.value = n));
76
+ const i = n.getAttribute(t), r = String(e);
77
+ i !== r && (n.setAttribute(s, r), s === "value" && R(n) && (n.value = r));
72
78
  }
73
79
  else {
74
80
  const i = u.getPropName(t);
75
- r[i] = e;
81
+ n[i] = e;
76
82
  }
77
83
  }
78
- function C(r, t, e) {
84
+ function C(n, t, e) {
79
85
  const [s, o] = t.split(":");
80
- r instanceof CSSRule ? r.style.setProperty(s, e) : (k(r, s, e), s === "value" && R(r) && (r.value = e));
86
+ n instanceof CSSStyleRule ? n.style.setProperty(s, e) : (k(n, s, e), s === "value" && R(n) && (n.value = e));
81
87
  }
82
88
  class u extends HTMLElement {
83
89
  // This is used to lookup the camelCase property name
@@ -121,7 +127,7 @@ class u extends HTMLElement {
121
127
  // attribute values, and CSS property values.
122
128
  // Each component instance needs its own map.
123
129
  #s = /* @__PURE__ */ new Map();
124
- #c = {};
130
+ #a = {};
125
131
  #i;
126
132
  // For components that set `formAssociated` to true,
127
133
  // this stores in the initial value of each property
@@ -148,24 +154,29 @@ class u extends HTMLElement {
148
154
  if (this.#r(o)) {
149
155
  const i = this.#E(o, String(s));
150
156
  this[o] = i;
151
- const n = this.#c[o];
152
- n && this.setFormValue(n, String(i)), this.propertyChangedCallback(o, e, s);
157
+ const r = this.#a[o];
158
+ r && this.setFormValue(r, String(i)), this.propertyChangedCallback(o, e, s);
153
159
  }
154
160
  }
155
161
  #w() {
156
162
  if (!this.shadowRoot) return;
157
163
  const t = this.#t;
158
164
  if (t.css) {
159
- let s = t.stylesheet;
165
+ let { stylesheet: s } = t;
160
166
  if (!s) {
161
167
  s = t.stylesheet = new CSSStyleSheet();
162
168
  const o = `:host([hidden]) { display: none; } ${t.css}`;
163
169
  s.replaceSync(o);
164
170
  }
165
- this.shadowRoot.adoptedStyleSheets = [s];
171
+ this.shadowRoot.adoptedStyleSheets = [D(s)];
166
172
  }
167
173
  let e = t.template;
168
- e || (e = t.template = document.createElement("template"), e.innerHTML = t.html), this.shadowRoot.replaceChildren(e.content.cloneNode(!0));
174
+ if (!e) {
175
+ e = t.template = document.createElement("template");
176
+ const s = t.html.trim();
177
+ e.innerHTML = s.startsWith("<") ? s : `<span><!--${s}--></span>`;
178
+ }
179
+ this.shadowRoot.replaceChildren(e.content.cloneNode(!0));
169
180
  }
170
181
  changed(t, e, s) {
171
182
  this[e] = s;
@@ -175,7 +186,7 @@ class u extends HTMLElement {
175
186
  if (this.shadowRoot) {
176
187
  this.#C(this.shadowRoot), this.#b(this.shadowRoot);
177
188
  for (const t of this.shadowRoot.adoptedStyleSheets)
178
- this.#$(t);
189
+ this.#N(t);
179
190
  }
180
191
  this.#T();
181
192
  });
@@ -193,23 +204,23 @@ class u extends HTMLElement {
193
204
  #v(t, e, s) {
194
205
  const o = u.getAttrName(t), i = this.hasAttribute(o);
195
206
  e.required && !i && this.#e(this, t, "is a required attribute");
196
- let n = e.value;
197
- this.hasOwnProperty(t) && (n = this[t], delete this[t]);
198
- const { type: h } = e, a = h === Boolean ? n || i : s.includes(o) && i ? this.#A(t, o) : n || D(h), f = "#" + t;
199
- this[f] = a, e.computed && this.#x(t, e), Object.defineProperty(this, t, {
207
+ let r = e.value;
208
+ this.hasOwnProperty(t) && (r = this[t], delete this[t]);
209
+ const { type: h } = e, c = h === Boolean ? r || i : s.includes(o) && i ? this.#A(t, o) : r || B(h), f = "#" + t;
210
+ this[f] = c, e.computed && this.#x(t, e), Object.defineProperty(this, t, {
200
211
  enumerable: !0,
201
212
  get() {
202
213
  return this[f];
203
214
  },
204
- set(c) {
205
- h === Number && typeof c == "string" && (c = S(c));
215
+ set(a) {
216
+ h === Number && typeof a == "string" && (a = S(a));
206
217
  const l = this[f];
207
- if (c === l) return;
208
- this.#j(t, h, c), this[f] = c;
218
+ if (a === l) return;
219
+ this.#j(t, h, a), this[f] = a;
209
220
  const { state: p, stateProp: y } = this.#t.properties[t];
210
- y && H(p, y, c), this.#k(t), this.#L(t, h, c, o), this.#g(t), this.#H(t, c);
211
- const v = this.#c[t];
212
- v && this.setFormValue(v, String(c)), this.propertyChangedCallback(t, l, c), e.dispatch && this.dispatch("change", { [t]: c });
221
+ y && H(p, y, a), this.#k(t), this.#L(t, h, a, o), this.#g(t), this.#H(t, a);
222
+ const v = this.#a[t];
223
+ v && this.setFormValue(v, String(a)), this.propertyChangedCallback(t, l, a), e.dispatch && this.dispatch("change", { [t]: a });
213
224
  }
214
225
  });
215
226
  }
@@ -245,10 +256,10 @@ class u extends HTMLElement {
245
256
  for (const s of t.getAttributeNames()) {
246
257
  const o = t.getAttribute(s), i = this.#y(t, o);
247
258
  if (i) {
248
- const n = this[i];
249
- n === void 0 && this.#a(t, s, i), t[i] = n;
250
- let [h, a] = s.split(":");
251
- h === "value" && (a ? (t["on" + a] === void 0 && this.#e(t, s, "refers to an unsupported event name"), t.setAttribute(h, this[i])) : a = "change"), e && t.#l.set(
259
+ const r = this[i];
260
+ r === void 0 && this.#c(t, s, i), t[i] = r;
261
+ let [h, c] = s.split(":");
262
+ h === "value" && (c ? (t["on" + c] === void 0 && this.#e(t, s, "refers to an unsupported event name"), t.setAttribute(h, this[i])) : c = "change"), e && t.#l.set(
252
263
  u.getPropName(h),
253
264
  i
254
265
  );
@@ -264,13 +275,13 @@ class u extends HTMLElement {
264
275
  const { localName: e } = t;
265
276
  if (e === "style") {
266
277
  const { sheet: s } = t, o = s?.cssRules ?? [], i = Array.from(o);
267
- for (const n of i)
268
- if (n.constructor === CSSStyleRule) {
269
- const h = Array.from(n.style);
270
- for (const a of h)
271
- if (a.startsWith("--")) {
272
- const f = n.style.getPropertyValue(a);
273
- this.#n(f, n, a);
278
+ for (const r of i)
279
+ if (r.constructor === CSSStyleRule) {
280
+ const h = Array.from(r.style);
281
+ for (const c of h)
282
+ if (c.startsWith("--")) {
283
+ const f = r.style.getPropertyValue(c);
284
+ this.#n(f, r, c);
274
285
  }
275
286
  }
276
287
  } else {
@@ -298,24 +309,24 @@ class u extends HTMLElement {
298
309
  formAssociatedCallback() {
299
310
  let t = this.getAttribute("form-assoc");
300
311
  if (!t) {
301
- const n = this.getAttribute("name");
302
- if (n)
312
+ const r = this.getAttribute("name");
313
+ if (r)
303
314
  if (this.#r("value"))
304
- t = `value:${n}`;
315
+ t = `value:${r}`;
305
316
  else
306
317
  return;
307
318
  else
308
319
  return;
309
320
  }
310
321
  const e = {}, s = t.split(",");
311
- for (const n of s) {
312
- const [h, a] = n.split(":");
313
- e[h.trim()] = a.trim();
322
+ for (const r of s) {
323
+ const [h, c] = r.split(":");
324
+ e[h.trim()] = c.trim();
314
325
  }
315
- this.#c = e, this.#i = new FormData(), this.#h = this.attachInternals(), this.#h.setFormValue(this.#i);
326
+ this.#a = e, this.#i = new FormData(), this.#h = this.attachInternals(), this.#h.setFormValue(this.#i);
316
327
  const o = Object.keys(this.#t.properties), i = this.#f;
317
- for (const n of o)
318
- i[n] = this[n];
328
+ for (const r of o)
329
+ i[r] = this[r];
319
330
  }
320
331
  formResetCallback() {
321
332
  const t = this.#f;
@@ -332,17 +343,17 @@ class u extends HTMLElement {
332
343
  let e = u.#p.get(t);
333
344
  return e || (e = t.replace(/-([a-z])/g, (s, o) => o.toUpperCase()), u.#p.set(t, e)), e;
334
345
  }
335
- #N(t, e, s) {
346
+ #$(t, e, s) {
336
347
  if (s.length !== 1) return;
337
348
  const [o] = s;
338
349
  if (!A.test(o)) return;
339
350
  const i = R(t) || d(t);
340
- let [n, h] = (e ?? "").split(":");
341
- if (!(i && n === "value" || d(t))) return;
351
+ let [r, h] = (e ?? "").split(":");
352
+ if (!(i && r === "value" || d(t))) return;
342
353
  h ? t["on" + h] === void 0 && this.#e(t, e, "refers to an unsupported event name") : h = "change";
343
354
  const f = g(o);
344
- t.addEventListener(h, (c) => {
345
- const { target: l } = c;
355
+ t.addEventListener(h, (a) => {
356
+ const { target: l } = a;
346
357
  if (!l) return;
347
358
  const p = l.value, { type: y } = this.#t.properties[f];
348
359
  this[f] = y === Number ? S(p) : p, this.#g(f);
@@ -356,8 +367,8 @@ class u extends HTMLElement {
356
367
  for (const s of e)
357
368
  this.#M(s), s.firstElementChild || this.#P(s);
358
369
  }
359
- #$(t) {
360
- const e = t.cssRules || t.rules;
370
+ #N(t) {
371
+ const e = t.cssRules;
361
372
  for (const s of Array.from(e))
362
373
  if (s instanceof CSSStyleRule) {
363
374
  for (const o of Array.from(s.style))
@@ -377,19 +388,19 @@ class u extends HTMLElement {
377
388
  #y(t, e) {
378
389
  if (!e || !A.test(e)) return;
379
390
  const s = g(e);
380
- return this[s] === void 0 && this.#a(t, "", s), s;
391
+ return this[s] === void 0 && this.#c(t, "", s), s;
381
392
  }
382
393
  #g(t) {
383
394
  const o = this.#t.propToExprsMap.get(t) || [];
384
395
  for (const i of o) {
385
- let n = this.#o(i);
396
+ let r = this.#o(i);
386
397
  const h = this.#s.get(i) ?? [];
387
- for (const a of h)
388
- if (a instanceof HTMLElement)
389
- this.#S(a, n);
390
- else if (!(a instanceof CSSStyleRule)) {
391
- const { element: f, attrName: c } = a;
392
- f instanceof CSSStyleRule ? f.style.setProperty(c, n) : C(f, c, n);
398
+ for (const c of h)
399
+ if (c instanceof HTMLElement)
400
+ this.#S(c, r);
401
+ else if (!(c instanceof CSSStyleRule)) {
402
+ const { element: f, attrName: a } = c;
403
+ f instanceof CSSStyleRule ? f.style.setProperty(a, r) : C(f, a, r);
393
404
  }
394
405
  }
395
406
  }
@@ -399,18 +410,18 @@ class u extends HTMLElement {
399
410
  }
400
411
  #x(t, e) {
401
412
  const { computed: s, uses: o } = e, i = this.#t.propToComputedMap;
402
- function n(a, f) {
403
- let c = i.get(a);
404
- c || (c = [], i.set(a, c)), c.push([t, f]);
413
+ function r(c, f) {
414
+ let a = i.get(c);
415
+ a || (a = [], i.set(c, a)), a.push([t, f]);
405
416
  }
406
417
  const h = s.match(E) || [];
407
- for (const a of h) {
408
- const f = a.substring($);
409
- this[f] === void 0 && this.#a(null, t, f), typeof this[f] != "function" && n(f, s);
418
+ for (const c of h) {
419
+ const f = c.substring(N);
420
+ this[f] === void 0 && this.#c(null, t, f), typeof this[f] != "function" && r(f, s);
410
421
  }
411
422
  if (o)
412
- for (const a of o.split(","))
413
- n(a, s);
423
+ for (const c of o.split(","))
424
+ r(c, s);
414
425
  }
415
426
  // WARNING: Do not place untrusted JavaScript expressions
416
427
  // in attribute values or the text content of elements!
@@ -418,28 +429,28 @@ class u extends HTMLElement {
418
429
  if (!t) return;
419
430
  const o = this.#u(e, s, t);
420
431
  if (!o) {
421
- const a = t.replaceAll("this..", "this.");
422
- s ? C(e, s, a) : "textContent" in e && (e.textContent = a);
432
+ const c = t.replaceAll("this..", "this.");
433
+ s ? C(e, s, c) : "textContent" in e && (e.textContent = c);
423
434
  return;
424
435
  }
425
436
  const i = this.#t;
426
- o.forEach((a) => {
427
- const f = g(a);
437
+ o.forEach((c) => {
438
+ const f = g(c);
428
439
  if (typeof this[f] == "function") return;
429
- const c = i.propToExprsMap;
430
- let l = c.get(f);
431
- l || (l = [], c.set(f, l)), l.includes(t) || l.push(t);
440
+ const a = i.propToExprsMap;
441
+ let l = a.get(f);
442
+ l || (l = [], a.set(f, l)), l.includes(t) || l.push(t);
432
443
  });
433
- for (const [a, f] of this.#s.entries())
434
- for (const c of f) {
435
- const l = c instanceof HTMLElement || c instanceof CSSStyleRule ? c : c.element;
444
+ for (const [c, f] of this.#s.entries())
445
+ for (const a of f) {
446
+ const l = a instanceof HTMLElement || a instanceof CSSStyleRule ? a : a.element;
436
447
  l instanceof CSSStyleRule || l.isConnected || this.#s.set(
437
- a,
438
- f.filter((p) => p !== c)
448
+ c,
449
+ f.filter((p) => p !== a)
439
450
  );
440
451
  }
441
- let n = this.#s.get(t);
442
- n || (n = [], this.#s.set(t, n)), n.push(s ? { element: e, attrName: s } : e), e instanceof HTMLElement && this.#N(e, s, o);
452
+ let r = this.#s.get(t);
453
+ r || (r = [], this.#s.set(t, r)), r.push(s ? { element: e, attrName: s } : e), e instanceof HTMLElement && this.#$(e, s, o);
443
454
  const h = this.#o(t);
444
455
  s ? C(e, s, h) : this.#S(e, h);
445
456
  }
@@ -457,7 +468,7 @@ class u extends HTMLElement {
457
468
  `component ${o.elementName()}` + (t ? `, element "${i}"` : "") + (e ? `, attribute "${e}"` : "") + ` ${s}`
458
469
  );
459
470
  }
460
- #a(t, e, s) {
471
+ #c(t, e, s) {
461
472
  this.#e(t, e, `refers to missing property "${s}"`);
462
473
  }
463
474
  #A(t, e) {
@@ -508,8 +519,8 @@ class u extends HTMLElement {
508
519
  if (!(o instanceof ShadowRoot)) return;
509
520
  const { host: i } = o;
510
521
  if (!i) return;
511
- const n = i;
512
- n[s] = e;
522
+ const r = i;
523
+ r[s] = e;
513
524
  }
514
525
  /**
515
526
  * @param state - WrecState object
@@ -527,8 +538,8 @@ class u extends HTMLElement {
527
538
  if (this.#r(o)) {
528
539
  const i = M(t, s);
529
540
  i !== void 0 && (this[o] = i);
530
- const n = this.#t.properties[o];
531
- n.state = t, n.stateProp = s;
541
+ const r = this.#t.properties[o];
542
+ r.state = t, r.stateProp = s;
532
543
  }
533
544
  t.addListener(this, e);
534
545
  }
@@ -565,8 +576,8 @@ class u extends HTMLElement {
565
576
  const o = s.match(E);
566
577
  if (o)
567
578
  return o.forEach((i) => {
568
- const n = g(i);
569
- this[n] === void 0 && this.#a(t, e, n);
579
+ const r = g(i);
580
+ this[r] === void 0 && this.#c(t, e, r);
570
581
  }), o;
571
582
  }
572
583
  #F(t, e) {
@@ -604,14 +615,14 @@ class u extends HTMLElement {
604
615
  for (const s of e) {
605
616
  const o = [];
606
617
  for (const i of Array.from(s.attributes)) {
607
- const n = i.name;
608
- if (n.startsWith("on")) {
609
- let h = n.slice(2);
618
+ const r = i.name;
619
+ if (r.startsWith("on")) {
620
+ let h = r.slice(2);
610
621
  h = h[0].toLowerCase() + h.slice(1).toLowerCase();
611
- const a = i.value;
612
- this.#u(s, n, a);
622
+ const c = i.value;
623
+ this.#u(s, r, c);
613
624
  let f;
614
- typeof this[a] == "function" ? f = (c) => this[a](c) : (this.#u(s, n, a), f = () => this.#o(a)), s.addEventListener(h, f), o.push(n);
625
+ typeof this[c] == "function" ? f = (a) => this[c](a) : (this.#u(s, r, c), f = () => this.#o(c)), s.addEventListener(h, f), o.push(r);
615
626
  }
616
627
  }
617
628
  for (const i of o)
@@ -619,39 +630,39 @@ class u extends HTMLElement {
619
630
  }
620
631
  }
621
632
  }
622
- function z(r, ...t) {
623
- let e = x(r, t);
633
+ function Z(n, ...t) {
634
+ let e = x(n, t);
624
635
  for (; ; ) {
625
636
  const s = O.exec(e);
626
637
  if (!s) break;
627
638
  const o = s[2];
628
- if (N.test(o)) {
639
+ if ($.test(o)) {
629
640
  const i = s[1];
630
641
  if (!i.startsWith("--")) {
631
- const n = `--${i}: ${o};
632
- ${i}: var(--${i});`;
633
- e = L(e, s.index, s[0].length, n);
642
+ const r = `--${i}: ${o};
643
+ ${i}: var(--${i})`;
644
+ e = L(e, s.index, s[0].length, r);
634
645
  }
635
646
  }
636
647
  }
637
648
  return e;
638
649
  }
639
- function Z(r, ...t) {
640
- let e = x(r, t);
650
+ function K(n, ...t) {
651
+ let e = x(n, t);
641
652
  for (; ; ) {
642
653
  const s = V.exec(e);
643
654
  if (!s || s[1] === "style") break;
644
- const o = B(s[2]);
645
- if (N.test(o)) {
646
- const i = `<!-- ${o.trim()} -->`, n = s.index + s[0].indexOf(">") + 1;
647
- e = L(e, n, o.length, i);
655
+ const o = q(s[2]);
656
+ if ($.test(o)) {
657
+ const i = `<!-- ${o.trim()} -->`, r = s.index + s[0].indexOf(">") + 1;
658
+ e = L(e, r, o.length, i);
648
659
  }
649
660
  }
650
661
  return e;
651
662
  }
652
663
  export {
653
664
  u as Wrec,
654
- q as createElement,
655
- z as css,
656
- Z as html
665
+ z as createElement,
666
+ Z as css,
667
+ K as html
657
668
  };
package/dist/wrec.js CHANGED
@@ -21,6 +21,13 @@ function canDisable(element) {
21
21
  element instanceof HTMLTextAreaElement ||
22
22
  element instanceof Wrec);
23
23
  }
24
+ function cloneStylesheet(original) {
25
+ const clone = new CSSStyleSheet();
26
+ for (const rule of Array.from(original.cssRules)) {
27
+ clone.insertRule(rule.cssText);
28
+ }
29
+ return clone;
30
+ }
24
31
  export function createElement(name, attributes, innerHTML) {
25
32
  const element = document.createElement(name);
26
33
  if (attributes) {
@@ -61,26 +68,6 @@ function getAllDescendants(root) {
61
68
  }
62
69
  return elements;
63
70
  }
64
- // This differs from document.getElementById
65
- // in that it searches across open shadow DOMs.
66
- function getElementById(root, id) {
67
- if (root.id === id)
68
- return root;
69
- const { shadowRoot } = root;
70
- if (shadowRoot) {
71
- for (const child of Array.from(shadowRoot.children)) {
72
- const el = getElementById(child, id);
73
- if (el)
74
- return el;
75
- }
76
- }
77
- for (const child of Array.from(root.children)) {
78
- const el = getElementById(child, id);
79
- if (el)
80
- return el;
81
- }
82
- return null;
83
- }
84
71
  // This takes a string like "this.foo.bar" and returns "foo".
85
72
  const getPropName = (str) => str.substring(SKIP).split('.')[0];
86
73
  function interpolate(strings, values) {
@@ -149,7 +136,7 @@ function updateAttribute(element, attrName, value) {
149
136
  }
150
137
  function updateValue(element, attrName, value) {
151
138
  const [realAttrName, _eventName] = attrName.split(':');
152
- if (element instanceof CSSRule) {
139
+ if (element instanceof CSSStyleRule) {
153
140
  element.style.setProperty(realAttrName, value); // CSS variable
154
141
  }
155
142
  else {
@@ -249,7 +236,7 @@ export class Wrec extends HTMLElement {
249
236
  return;
250
237
  const ctor = this.#ctor;
251
238
  if (ctor.css) {
252
- let stylesheet = ctor.stylesheet;
239
+ let { stylesheet } = ctor;
253
240
  if (!stylesheet) {
254
241
  stylesheet = ctor.stylesheet = new CSSStyleSheet();
255
242
  // Include a CSS rule that respects the "hidden" attribute.
@@ -257,12 +244,17 @@ export class Wrec extends HTMLElement {
257
244
  const css = `:host([hidden]) { display: none; } ${ctor.css}`;
258
245
  stylesheet.replaceSync(css);
259
246
  }
260
- this.shadowRoot.adoptedStyleSheets = [stylesheet];
247
+ this.shadowRoot.adoptedStyleSheets = [cloneStylesheet(stylesheet)];
261
248
  }
262
249
  let template = ctor.template;
263
250
  if (!template) {
264
251
  template = ctor.template = document.createElement('template');
265
- template.innerHTML = ctor.html;
252
+ const html = ctor.html.trim();
253
+ // If the HTML string does not start with <,
254
+ // assume it is a JavaScript expression.
255
+ template.innerHTML = html.startsWith('<')
256
+ ? html
257
+ : `<span><!--${html}--></span>`;
266
258
  }
267
259
  this.shadowRoot.replaceChildren(template.content.cloneNode(true));
268
260
  }
@@ -603,7 +595,7 @@ export class Wrec extends HTMLElement {
603
595
  this.#evaluateText(element);
604
596
  }
605
597
  /* These lines are useful for debugging.
606
- if (this.constructor.name === 'ColorPicker') {
598
+ if (this.constructor.name === 'ColorDemo') {
607
599
  console.log('=== this.constructor.name =', this.constructor.name);
608
600
  console.log('propToExprsMap =', this.#ctor.propToExprsMap);
609
601
  console.log('#exprToRefsMap =', this.#exprToRefsMap);
@@ -614,7 +606,7 @@ export class Wrec extends HTMLElement {
614
606
  */
615
607
  }
616
608
  #makeReactiveStyleSheet(styleSheet) {
617
- const rules = styleSheet.cssRules || styleSheet.rules;
609
+ const rules = styleSheet.cssRules;
618
610
  for (const rule of Array.from(rules)) {
619
611
  if (rule instanceof CSSStyleRule) {
620
612
  for (const prop of Array.from(rule.style)) {
@@ -1025,7 +1017,7 @@ export function css(strings, ...values) {
1025
1017
  const propName = match[1];
1026
1018
  if (!propName.startsWith('--')) {
1027
1019
  const replacement = `--${propName}: ${propValue};
1028
- ${propName}: var(--${propName});`;
1020
+ ${propName}: var(--${propName})`;
1029
1021
  result = replace(result, match.index, match[0].length, replacement);
1030
1022
  }
1031
1023
  }
package/dist/wrec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wrec.js","sourceRoot":"","sources":["../src/wrec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrec.js","sourceRoot":"","sources":["../src/wrec.ts"],"names":[],"mappings":"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"}
package/dist/wrec.min.js CHANGED
@@ -1 +1 @@
1
- import{getPathValue,setPathValue}from"./paths.js";class WrecError extends Error{}const CSS_PROPERTY_RE=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,FIRST_CHAR="a-zA-Z_$",OTHER_CHAR="a-zA-Z_$0-9",IDENTIFIER=`[a-zA-Z_$][${OTHER_CHAR}]*`,HTML_COMMENT_TEXT_RE=/<!--\s*(.*?)\s*-->/,HTML_ELEMENT_TEXT_RE=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,REF_RE=new RegExp(`^this\\.${IDENTIFIER}$`),REFS_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`,"g"),REFS_TEST_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`),RESERVED_ATTRS=new Set(["class","style"]),SKIP=5;function canDisable(t){return t instanceof HTMLButtonElement||t instanceof HTMLFieldSetElement||t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof Wrec}export function createElement(t,e,s){const r=document.createElement(t);if(e)for(const[t,s]of Object.entries(e))r.setAttribute(t,s);return s&&(r.innerHTML=s),r}const defaultForType=t=>t===String?"":t===Number?0:t!==Boolean&&(t===Array?[]:t===Object?{}:void 0);function getAllDescendants(t){const e=[];let s=t.firstElementChild;for(;s;)e.push(s),s.shadowRoot&&e.push(...getAllDescendants(s.shadowRoot)),s.firstElementChild&&e.push(...getAllDescendants(s)),s=s.nextElementSibling;return e}function getElementById(t,e){if(t.id===e)return t;const{shadowRoot:s}=t;if(s)for(const t of Array.from(s.children)){const s=getElementById(t,e);if(s)return s}for(const s of Array.from(t.children)){const t=getElementById(s,e);if(t)return t}return null}const getPropName=t=>t.substring(5).split(".")[0];function interpolate(t,e){let s=t[0];return e.forEach((e,r)=>{s+=e+t[r+1]}),s}function isPrimitive(t){const e=typeof t;return"string"===e||"number"===e||"boolean"===e}function isTextArea(t){return"textarea"===t.localName}function isValueElement(t){const{localName:e}=t;return"input"===e||"select"===e}const removeHtmlComments=t=>t.replace(/<!--[\s\S]*?-->/g,"");function replace(t,e,s,r){return t.slice(0,e)+r+t.slice(e+s)}function stringToNumber(t){const e=Number(t);if(isNaN(e))throw new WrecError(`can't convert "${t}" to a number`);return e}function updateAttribute(t,e,s){const[r,o]=e.split(":");if(isPrimitive(s))if("boolean"==typeof s){s?t.setAttribute(r,r):t.removeAttribute(r);t[Wrec.getPropName(r)]=s}else{const o=t.getAttribute(e),i=String(s);o!==i&&(t.setAttribute(r,i),"value"===r&&isValueElement(t)&&(t.value=i))}else{t[Wrec.getPropName(e)]=s}}function updateValue(t,e,s){const[r,o]=e.split(":");t instanceof CSSRule?t.style.setProperty(r,s):(updateAttribute(t,r,s),"value"===r&&isValueElement(t)&&(t.value=s))}export class Wrec extends HTMLElement{static#t=new Map;static#e=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#s=this.constructor;#r=new Map;#o={};#i;#n={};#a=null;#c=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#s;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){"disabled"===t&&this.#l();const r=Wrec.getPropName(t);if(this.#p(r)){const t=this.#h(r,String(s));this[r]=t;const o=this.#o[r];o&&this.setFormValue(o,String(t)),this.propertyChangedCallback(r,e,s)}}#u(){if(!this.shadowRoot)return;const t=this.#s;if(t.css){let e=t.stylesheet;if(!e){e=t.stylesheet=new CSSStyleSheet;const s=`:host([hidden]) { display: none; } ${t.css}`;e.replaceSync(s)}this.shadowRoot.adoptedStyleSheets=[e]}let e=t.template;e||(e=t.template=document.createElement("template"),e.innerHTML=t.html),this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#f(),this.#d(),this.#u(),this.hasAttribute("disabled")&&this.#l(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#m(this.shadowRoot),this.#E(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#b(t)}this.#y()})}#y(){const t=this.#s,{properties:e}=t;for(const[t,{computed:s}]of Object.entries(e))s&&(this[t]=this.#g(s))}#d(){const t=this.#s,{observedAttributes:e,properties:s}=t;for(const[t,r]of Object.entries(s))this.#R(t,r,e)}#R(t,e,s){const r=Wrec.getAttrName(t),o=this.hasAttribute(r);e.required&&!o&&this.#T(this,t,"is a required attribute");let i=e.value;this.hasOwnProperty(t)&&(i=this[t],delete this[t]);const{type:n}=e,a=n===Boolean?i||o:s.includes(r)&&o?this.#w(t,r):i||defaultForType(n),c="#"+t;this[c]=a,e.computed&&this.#S(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[c]},set(s){n===Number&&"string"==typeof s&&(s=stringToNumber(s));const o=this[c];if(s===o)return;this.#A(t,n,s),this[c]=s;const{state:i,stateProp:a}=this.#s.properties[t];a&&setPathValue(i,a,s),this.#v(t),this.#M(t,n,s,r),this.#P(t),this.#x(t,s);const l=this.#o[t];l&&this.setFormValue(l,String(s)),this.propertyChangedCallback(t,o,s),e.dispatch&&this.dispatch("change",{[t]:s})}})}#l(){const t=this.hasAttribute("disabled"),e=getAllDescendants(this.shadowRoot);for(const s of e)canDisable(s)&&(s.disabled=t)}disconnectedCallback(){this.#r.clear(),this.#n.clear(),this.#c.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#C(t){const e=t instanceof Wrec;for(const s of t.getAttributeNames()){const r=t.getAttribute(s),o=this.#N(t,r);if(o){const r=this[o];void 0===r&&this.#I(t,s,o),t[o]=r;let[i,n]=s.split(":");if("value"===i)if(n){if(void 0===t["on"+n]){const e="refers to an unsupported event name";this.#T(t,s,e)}t.setAttribute(i,this[o])}else n="change";e&&t.#c.set(Wrec.getPropName(i),o)}this.#_(r,t,s)}}#g(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#$(t){const{localName:e}=t;if("style"===e){const{sheet:e}=t,s=e?.cssRules??[],r=Array.from(s);for(const t of r)if(t.constructor===CSSStyleRule){const e=Array.from(t.style);for(const s of e)if(s.startsWith("--")){const e=t.style.getPropertyValue(s);this.#_(e,t,s)}}}else{let e="";if(isTextArea(t)){this.#_(t.textContent,t);const s=t.textContent?.match(HTML_COMMENT_TEXT_RE);s&&(e=s[1])}else{const s=Array.from(t.childNodes).find(t=>t.nodeType===Node.COMMENT_NODE);s&&(e=s.textContent?.trim()??"")}if(e){const s=this.#N(t,e);s&&isTextArea(t)?t.textContent=this[s]:this.#_(e,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const e=this.getAttribute("name");if(!e)return;if(!this.#p("value"))return;t=`value:${e}`}const e={},s=t.split(",");for(const t of s){const[s,r]=t.split(":");e[s.trim()]=r.trim()}this.#o=e,this.#i=new FormData,this.#a=this.attachInternals(),this.#a.setFormValue(this.#i);const r=Object.keys(this.#s.properties),o=this.#n;for(const t of r)o[t]=this[t]}formResetCallback(){const t=this.#n;for(const e of Object.keys(t)){let s=t[e];REF_RE.test(s)&&(s=this.#g(s)),this[e]=s}}static getAttrName(t){let e=Wrec.#e.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wrec.#e.set(t,e)),e}static getPropName(t){let e=Wrec.#t.get(t);return e||(e=t.replace(/-([a-z])/g,(t,e)=>e.toUpperCase()),Wrec.#t.set(t,e)),e}#O(t,e,s){if(1!==s.length)return;const[r]=s;if(!REF_RE.test(r))return;const o=isValueElement(t)||isTextArea(t);let[i,n]=(e??"").split(":");if(!(o&&"value"===i||isTextArea(t)))return;if(n){if(void 0===t["on"+n]){const s="refers to an unsupported event name";this.#T(t,e,s)}}else n="change";const a=getPropName(r);t.addEventListener(n,t=>{const{target:e}=t;if(!e)return;const s=e.value,{type:r}=this.#s.properties[a];this[a]=r===Number?stringToNumber(s):s,this.#P(a)})}#p(t){return Boolean(this.#s.properties[t])}#E(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e)this.#C(t),t.firstElementChild||this.#$(t)}#b(t){const e=t.cssRules||t.rules;for(const t of Array.from(e))if(t instanceof CSSStyleRule)for(const e of Array.from(t.style))if(e.startsWith("--")){const s=t.style.getPropertyValue(e);this.#_(s,t,e)}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(Wrec.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#N(t,e){if(!e||!REF_RE.test(e))return;const s=getPropName(e);return void 0===this[s]&&this.#I(t,"",s),s}#P(t){const e=this.#s.propToExprsMap.get(t)||[];for(const t of e){let e=this.#g(t);const s=this.#r.get(t)??[];for(const t of s)if(t instanceof HTMLElement)this.#W(t,e);else if(t instanceof CSSStyleRule);else{const{element:s,attrName:r}=t;s instanceof CSSStyleRule?s.style.setProperty(r,e):updateValue(s,r,e)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#S(t,e){const{computed:s,uses:r}=e,o=this.#s.propToComputedMap;function i(e,s){let r=o.get(e);r||(r=[],o.set(e,r)),r.push([t,s])}const n=s.match(REFS_RE)||[];for(const e of n){const r=e.substring(5);void 0===this[r]&&this.#I(null,t,r),"function"!=typeof this[r]&&i(r,s)}if(r)for(const t of r.split(","))i(t,s)}#_(t,e,s=void 0){if(!t)return;const r=this.#H(e,s,t);if(!r){const r=t.replaceAll("this..","this.");return void(s?updateValue(e,s,r):"textContent"in e&&(e.textContent=r))}const o=this.#s;r.forEach(e=>{const s=getPropName(e);if("function"==typeof this[s])return;const r=o.propToExprsMap;let i=r.get(s);i||(i=[],r.set(s,i)),i.includes(t)||i.push(t)});for(const[t,e]of this.#r.entries())for(const s of e){const r=s instanceof HTMLElement||s instanceof CSSStyleRule?s:s.element;r instanceof CSSStyleRule||(r.isConnected||this.#r.set(t,e.filter(t=>t!==s)))}let i=this.#r.get(t);i||(i=[],this.#r.set(t,i)),i.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#O(e,s,r);const n=this.#g(t);s?updateValue(e,s,n):this.#W(e,n)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){this.#i&&isPrimitive(e)&&(this.#i.set(t,e),this.#a?.setFormValue(this.#i))}#T(t,e,s){const r=this.#s,o=t instanceof HTMLElement?t.localName:"CSS rule";throw new WrecError(`component ${r.elementName()}`+(t?`, element "${o}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#I(t,e,s){this.#T(t,e,`refers to missing property "${s}"`)}#w(t,e){return this.#h(t,this.getAttribute(e))}#h(t,e){if(e?.match(REFS_RE))return e;const s=this.#s,{type:r}=s.properties[t];return r||this.#T(null,t,"does not specify its type"),r===String?e:r===Number?stringToNumber(e):r===Boolean?"true"===e||"false"!==e&&"null"!==e&&(e&&e!==t&&this.#T(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t):void 0}#M(t,e,s,r){if(isPrimitive(s)&&this.hasAttribute(r)){s!==(e===Boolean?this.hasAttribute(r):this.#w(t,r))&&updateAttribute(this,t,s)}}#v(t){const e=this.#s.propToComputedMap.get(t)||[];for(const[t,s]of e)this[t]=this.#g(s)}#W(t,e){if(void 0===e)return;const s=t instanceof HTMLElement,r=typeof e;"string"!==r&&"number"!==r&&this.#T(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&isTextArea(t)?t.value=e:s&&"string"===r&&e.trim().startsWith("<")?(t.innerHTML=e,this.#m(t),this.#E(t)):s&&(t.textContent=e)}#x(t,e){const s=this.#c.get(t);if(!s)return;const r=this.getRootNode();if(!(r instanceof ShadowRoot))return;const{host:o}=r;if(!o)return;o[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#L(t,e);for(const[s,r]of Object.entries(e))if(this.#p(r)){const e=getPathValue(t,s);void 0!==e&&(this[r]=e);const o=this.#s.properties[r];o.state=t,o.stateProp=s}t.addListener(this,e)}#f(){const t=this.#s,e=new Set(Object.keys(t.properties));for(const t of e)RESERVED_ATTRS.has(t)&&this.#T(null,"",`property "${t}" is not allowed because it is a reserved attribute`);const s=this.#s.name;for(const r of this.getAttributeNames())if("class"!==r&&"id"!==r&&"disabled"!==r&&!r.startsWith("on"))if("form-assoc"!==r){if(!e.has(Wrec.getPropName(r))){if("name"===r){if(t.formAssociated)continue;throw new WrecError(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#T(null,r,"is not a supported attribute")}}else if(!t.formAssociated)throw new WrecError(`add "static formAssociated = true;" to class ${s}`)}#H(t,e,s){const r=s.match(REFS_RE);if(r)return r.forEach(s=>{const r=getPropName(s);void 0===this[r]&&this.#I(t,e,r)}),r}#L(t,e){for(const[s,r]of Object.entries(e)){let e=getPathValue(t,s);if(void 0===e)throw new WrecError(`invalid state path "${s}"`);e=this[r],this.#p(r)||this.#T(null,r,"refers to missing property in useState map")}}#A(t,e,s){if(s instanceof e)return;let r=typeof s;if("object"===r){const{constructor:o}=s;r=o.name,o!==e&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}r!==e.name.toLowerCase()&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}#m(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e){const e=[];for(const s of Array.from(t.attributes)){const r=s.name;if(r.startsWith("on")){let o=r.slice(2);o=o[0].toLowerCase()+o.slice(1).toLowerCase();const i=s.value;let n;this.#H(t,r,i),"function"==typeof this[i]?n=t=>this[i](t):(this.#H(t,r,i),n=()=>this.#g(i)),t.addEventListener(o,n),e.push(r)}}for(const s of e)t.removeAttribute(s)}}}export function css(t,...e){let s=interpolate(t,e);for(;;){const t=CSS_PROPERTY_RE.exec(s);if(!t)break;const e=t[2];if(REFS_TEST_RE.test(e)){const r=t[1];if(!r.startsWith("--")){const o=`--${r}: ${e};\n ${r}: var(--${r});`;s=replace(s,t.index,t[0].length,o)}}}return s}export function html(t,...e){let s=interpolate(t,e);for(;;){const t=HTML_ELEMENT_TEXT_RE.exec(s);if(!t||"style"===t[1])break;const e=removeHtmlComments(t[2]);if(REFS_TEST_RE.test(e)){const r=`\x3c!-- ${e.trim()} --\x3e`;s=replace(s,t.index+t[0].indexOf(">")+1,e.length,r)}}return s}import{createDeepProxy,proxyToPlainObject}from"./proxies.js";const inBrowser="undefined"!=typeof window&&void 0!==window.document;class WrecError extends Error{}export class WrecState{static#V=new Map;static{inBrowser&&window.addEventListener("beforeunload",()=>{for(const[t,e]of this.#V.entries())if(e.#F){const s=proxyToPlainObject(e);sessionStorage.setItem("wrec-state-"+t,JSON.stringify(s))}})}static get(t){return this.#V.get(t)}#D=Symbol("objectId");#j=[];#k;#F;#B;constructor(t,e,s){if(!t)throw new WrecError("name cannot be empty");if(WrecState.#V.has(t))throw new WrecError(`WrecState with name "${t}" already exists`);if(this.#k=t,this.#F=e,this.#B=createDeepProxy({},this.#z.bind(this)),e&&inBrowser){const e=sessionStorage.getItem("wrec-state-"+t),r=e?JSON.parse(e):void 0;r&&(s=r)}if(s)for(const[t,e]of Object.entries(s))this.addProperty(t,e);WrecState.#V.set(t,this)}addListener(t,e={}){const s=this.#j.find(e=>e.listenerRef.deref()===t);if(s){const{propertyMap:t}=s;for(const[s,r]of Object.entries(e))t[s]=r}else this.#j.push({listenerRef:new WeakRef(t),propertyMap:e})}addProperty(t,e){Object.defineProperty(this,t,{enumerable:!0,get(){return this.#B[t]},set(e){this.#B[t]=e}}),this.#B[t]=e}get id(){return this.#D}log(){console.log("WrecState:",this.#k);for(const[t,e]of Object.entries(this.#B))console.log(` ${t} = ${JSON.stringify(e)}`)}#z(t,e,s){const r=new Set;for(const o of this.#j){const i=o.listenerRef.deref();if(i)if(inBrowser&&i instanceof HTMLElement&&!i.isConnected)r.add(o);else{const{propertyMap:r}=o,n=Object.keys(r);(0===n.length||n.includes(t))&&i.changed(t,r[t],s,e,this)}else r.add(o)}this.#j=this.#j.filter(t=>!r.has(t))}removeListener(t){this.#j=this.#j.filter(e=>e.listenerRef.deref()!==t)}}if(inBrowser){"development"===process.env.NODE_ENV&&(window.WrecState=WrecState)}
1
+ import{getPathValue,setPathValue}from"./paths.js";class WrecError extends Error{}const CSS_PROPERTY_RE=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,FIRST_CHAR="a-zA-Z_$",OTHER_CHAR="a-zA-Z_$0-9",IDENTIFIER=`[a-zA-Z_$][${OTHER_CHAR}]*`,HTML_COMMENT_TEXT_RE=/<!--\s*(.*?)\s*-->/,HTML_ELEMENT_TEXT_RE=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,REF_RE=new RegExp(`^this\\.${IDENTIFIER}$`),REFS_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`,"g"),REFS_TEST_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`),RESERVED_ATTRS=new Set(["class","style"]),SKIP=5;function canDisable(t){return t instanceof HTMLButtonElement||t instanceof HTMLFieldSetElement||t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof Wrec}function cloneStylesheet(t){const e=new CSSStyleSheet;for(const s of Array.from(t.cssRules))e.insertRule(s.cssText);return e}export function createElement(t,e,s){const r=document.createElement(t);if(e)for(const[t,s]of Object.entries(e))r.setAttribute(t,s);return s&&(r.innerHTML=s),r}const defaultForType=t=>t===String?"":t===Number?0:t!==Boolean&&(t===Array?[]:t===Object?{}:void 0);function getAllDescendants(t){const e=[];let s=t.firstElementChild;for(;s;)e.push(s),s.shadowRoot&&e.push(...getAllDescendants(s.shadowRoot)),s.firstElementChild&&e.push(...getAllDescendants(s)),s=s.nextElementSibling;return e}const getPropName=t=>t.substring(5).split(".")[0];function interpolate(t,e){let s=t[0];return e.forEach((e,r)=>{s+=e+t[r+1]}),s}function isPrimitive(t){const e=typeof t;return"string"===e||"number"===e||"boolean"===e}function isTextArea(t){return"textarea"===t.localName}function isValueElement(t){const{localName:e}=t;return"input"===e||"select"===e}const removeHtmlComments=t=>t.replace(/<!--[\s\S]*?-->/g,"");function replace(t,e,s,r){return t.slice(0,e)+r+t.slice(e+s)}function stringToNumber(t){const e=Number(t);if(isNaN(e))throw new WrecError(`can't convert "${t}" to a number`);return e}function updateAttribute(t,e,s){const[r,o]=e.split(":");if(isPrimitive(s))if("boolean"==typeof s){s?t.setAttribute(r,r):t.removeAttribute(r);t[Wrec.getPropName(r)]=s}else{const o=t.getAttribute(e),i=String(s);o!==i&&(t.setAttribute(r,i),"value"===r&&isValueElement(t)&&(t.value=i))}else{t[Wrec.getPropName(e)]=s}}function updateValue(t,e,s){const[r,o]=e.split(":");t instanceof CSSStyleRule?t.style.setProperty(r,s):(updateAttribute(t,r,s),"value"===r&&isValueElement(t)&&(t.value=s))}export class Wrec extends HTMLElement{static#t=new Map;static#e=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#s=this.constructor;#r=new Map;#o={};#i;#n={};#a=null;#c=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#s;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){"disabled"===t&&this.#l();const r=Wrec.getPropName(t);if(this.#p(r)){const t=this.#h(r,String(s));this[r]=t;const o=this.#o[r];o&&this.setFormValue(o,String(t)),this.propertyChangedCallback(r,e,s)}}#u(){if(!this.shadowRoot)return;const t=this.#s;if(t.css){let{stylesheet:e}=t;if(!e){e=t.stylesheet=new CSSStyleSheet;const s=`:host([hidden]) { display: none; } ${t.css}`;e.replaceSync(s)}this.shadowRoot.adoptedStyleSheets=[cloneStylesheet(e)]}let e=t.template;if(!e){e=t.template=document.createElement("template");const s=t.html.trim();e.innerHTML=s.startsWith("<")?s:`<span>\x3c!--${s}--\x3e</span>`}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#f(),this.#d(),this.#u(),this.hasAttribute("disabled")&&this.#l(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#m(this.shadowRoot),this.#E(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#b(t)}this.#y()})}#y(){const t=this.#s,{properties:e}=t;for(const[t,{computed:s}]of Object.entries(e))s&&(this[t]=this.#g(s))}#d(){const t=this.#s,{observedAttributes:e,properties:s}=t;for(const[t,r]of Object.entries(s))this.#R(t,r,e)}#R(t,e,s){const r=Wrec.getAttrName(t),o=this.hasAttribute(r);e.required&&!o&&this.#T(this,t,"is a required attribute");let i=e.value;this.hasOwnProperty(t)&&(i=this[t],delete this[t]);const{type:n}=e,a=n===Boolean?i||o:s.includes(r)&&o?this.#S(t,r):i||defaultForType(n),c="#"+t;this[c]=a,e.computed&&this.#w(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[c]},set(s){n===Number&&"string"==typeof s&&(s=stringToNumber(s));const o=this[c];if(s===o)return;this.#v(t,n,s),this[c]=s;const{state:i,stateProp:a}=this.#s.properties[t];a&&setPathValue(i,a,s),this.#A(t),this.#M(t,n,s,r),this.#P(t),this.#x(t,s);const l=this.#o[t];l&&this.setFormValue(l,String(s)),this.propertyChangedCallback(t,o,s),e.dispatch&&this.dispatch("change",{[t]:s})}})}#l(){const t=this.hasAttribute("disabled"),e=getAllDescendants(this.shadowRoot);for(const s of e)canDisable(s)&&(s.disabled=t)}disconnectedCallback(){this.#r.clear(),this.#n.clear(),this.#c.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#C(t){const e=t instanceof Wrec;for(const s of t.getAttributeNames()){const r=t.getAttribute(s),o=this.#N(t,r);if(o){const r=this[o];void 0===r&&this.#$(t,s,o),t[o]=r;let[i,n]=s.split(":");if("value"===i)if(n){if(void 0===t["on"+n]){const e="refers to an unsupported event name";this.#T(t,s,e)}t.setAttribute(i,this[o])}else n="change";e&&t.#c.set(Wrec.getPropName(i),o)}this.#_(r,t,s)}}#g(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#I(t){const{localName:e}=t;if("style"===e){const{sheet:e}=t,s=e?.cssRules??[],r=Array.from(s);for(const t of r)if(t.constructor===CSSStyleRule){const e=Array.from(t.style);for(const s of e)if(s.startsWith("--")){const e=t.style.getPropertyValue(s);this.#_(e,t,s)}}}else{let e="";if(isTextArea(t)){this.#_(t.textContent,t);const s=t.textContent?.match(HTML_COMMENT_TEXT_RE);s&&(e=s[1])}else{const s=Array.from(t.childNodes).find(t=>t.nodeType===Node.COMMENT_NODE);s&&(e=s.textContent?.trim()??"")}if(e){const s=this.#N(t,e);s&&isTextArea(t)?t.textContent=this[s]:this.#_(e,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const e=this.getAttribute("name");if(!e)return;if(!this.#p("value"))return;t=`value:${e}`}const e={},s=t.split(",");for(const t of s){const[s,r]=t.split(":");e[s.trim()]=r.trim()}this.#o=e,this.#i=new FormData,this.#a=this.attachInternals(),this.#a.setFormValue(this.#i);const r=Object.keys(this.#s.properties),o=this.#n;for(const t of r)o[t]=this[t]}formResetCallback(){const t=this.#n;for(const e of Object.keys(t)){let s=t[e];REF_RE.test(s)&&(s=this.#g(s)),this[e]=s}}static getAttrName(t){let e=Wrec.#e.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wrec.#e.set(t,e)),e}static getPropName(t){let e=Wrec.#t.get(t);return e||(e=t.replace(/-([a-z])/g,(t,e)=>e.toUpperCase()),Wrec.#t.set(t,e)),e}#O(t,e,s){if(1!==s.length)return;const[r]=s;if(!REF_RE.test(r))return;const o=isValueElement(t)||isTextArea(t);let[i,n]=(e??"").split(":");if(!(o&&"value"===i||isTextArea(t)))return;if(n){if(void 0===t["on"+n]){const s="refers to an unsupported event name";this.#T(t,e,s)}}else n="change";const a=getPropName(r);t.addEventListener(n,t=>{const{target:e}=t;if(!e)return;const s=e.value,{type:r}=this.#s.properties[a];this[a]=r===Number?stringToNumber(s):s,this.#P(a)})}#p(t){return Boolean(this.#s.properties[t])}#E(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e)this.#C(t),t.firstElementChild||this.#I(t)}#b(t){const e=t.cssRules;for(const t of Array.from(e))if(t instanceof CSSStyleRule)for(const e of Array.from(t.style))if(e.startsWith("--")){const s=t.style.getPropertyValue(e);this.#_(s,t,e)}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(Wrec.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#N(t,e){if(!e||!REF_RE.test(e))return;const s=getPropName(e);return void 0===this[s]&&this.#$(t,"",s),s}#P(t){const e=this.#s.propToExprsMap.get(t)||[];for(const t of e){let e=this.#g(t);const s=this.#r.get(t)??[];for(const t of s)if(t instanceof HTMLElement)this.#W(t,e);else if(t instanceof CSSStyleRule);else{const{element:s,attrName:r}=t;s instanceof CSSStyleRule?s.style.setProperty(r,e):updateValue(s,r,e)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#w(t,e){const{computed:s,uses:r}=e,o=this.#s.propToComputedMap;function i(e,s){let r=o.get(e);r||(r=[],o.set(e,r)),r.push([t,s])}const n=s.match(REFS_RE)||[];for(const e of n){const r=e.substring(5);void 0===this[r]&&this.#$(null,t,r),"function"!=typeof this[r]&&i(r,s)}if(r)for(const t of r.split(","))i(t,s)}#_(t,e,s=void 0){if(!t)return;const r=this.#H(e,s,t);if(!r){const r=t.replaceAll("this..","this.");return void(s?updateValue(e,s,r):"textContent"in e&&(e.textContent=r))}const o=this.#s;r.forEach(e=>{const s=getPropName(e);if("function"==typeof this[s])return;const r=o.propToExprsMap;let i=r.get(s);i||(i=[],r.set(s,i)),i.includes(t)||i.push(t)});for(const[t,e]of this.#r.entries())for(const s of e){const r=s instanceof HTMLElement||s instanceof CSSStyleRule?s:s.element;r instanceof CSSStyleRule||(r.isConnected||this.#r.set(t,e.filter(t=>t!==s)))}let i=this.#r.get(t);i||(i=[],this.#r.set(t,i)),i.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#O(e,s,r);const n=this.#g(t);s?updateValue(e,s,n):this.#W(e,n)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){this.#i&&isPrimitive(e)&&(this.#i.set(t,e),this.#a?.setFormValue(this.#i))}#T(t,e,s){const r=this.#s,o=t instanceof HTMLElement?t.localName:"CSS rule";throw new WrecError(`component ${r.elementName()}`+(t?`, element "${o}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#$(t,e,s){this.#T(t,e,`refers to missing property "${s}"`)}#S(t,e){return this.#h(t,this.getAttribute(e))}#h(t,e){if(e?.match(REFS_RE))return e;const s=this.#s,{type:r}=s.properties[t];return r||this.#T(null,t,"does not specify its type"),r===String?e:r===Number?stringToNumber(e):r===Boolean?"true"===e||"false"!==e&&"null"!==e&&(e&&e!==t&&this.#T(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t):void 0}#M(t,e,s,r){if(isPrimitive(s)&&this.hasAttribute(r)){s!==(e===Boolean?this.hasAttribute(r):this.#S(t,r))&&updateAttribute(this,t,s)}}#A(t){const e=this.#s.propToComputedMap.get(t)||[];for(const[t,s]of e)this[t]=this.#g(s)}#W(t,e){if(void 0===e)return;const s=t instanceof HTMLElement,r=typeof e;"string"!==r&&"number"!==r&&this.#T(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&isTextArea(t)?t.value=e:s&&"string"===r&&e.trim().startsWith("<")?(t.innerHTML=e,this.#m(t),this.#E(t)):s&&(t.textContent=e)}#x(t,e){const s=this.#c.get(t);if(!s)return;const r=this.getRootNode();if(!(r instanceof ShadowRoot))return;const{host:o}=r;if(!o)return;o[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#L(t,e);for(const[s,r]of Object.entries(e))if(this.#p(r)){const e=getPathValue(t,s);void 0!==e&&(this[r]=e);const o=this.#s.properties[r];o.state=t,o.stateProp=s}t.addListener(this,e)}#f(){const t=this.#s,e=new Set(Object.keys(t.properties));for(const t of e)RESERVED_ATTRS.has(t)&&this.#T(null,"",`property "${t}" is not allowed because it is a reserved attribute`);const s=this.#s.name;for(const r of this.getAttributeNames())if("class"!==r&&"id"!==r&&"disabled"!==r&&!r.startsWith("on"))if("form-assoc"!==r){if(!e.has(Wrec.getPropName(r))){if("name"===r){if(t.formAssociated)continue;throw new WrecError(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#T(null,r,"is not a supported attribute")}}else if(!t.formAssociated)throw new WrecError(`add "static formAssociated = true;" to class ${s}`)}#H(t,e,s){const r=s.match(REFS_RE);if(r)return r.forEach(s=>{const r=getPropName(s);void 0===this[r]&&this.#$(t,e,r)}),r}#L(t,e){for(const[s,r]of Object.entries(e)){let e=getPathValue(t,s);if(void 0===e)throw new WrecError(`invalid state path "${s}"`);e=this[r],this.#p(r)||this.#T(null,r,"refers to missing property in useState map")}}#v(t,e,s){if(s instanceof e)return;let r=typeof s;if("object"===r){const{constructor:o}=s;r=o.name,o!==e&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}r!==e.name.toLowerCase()&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}#m(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e){const e=[];for(const s of Array.from(t.attributes)){const r=s.name;if(r.startsWith("on")){let o=r.slice(2);o=o[0].toLowerCase()+o.slice(1).toLowerCase();const i=s.value;let n;this.#H(t,r,i),"function"==typeof this[i]?n=t=>this[i](t):(this.#H(t,r,i),n=()=>this.#g(i)),t.addEventListener(o,n),e.push(r)}}for(const s of e)t.removeAttribute(s)}}}export function css(t,...e){let s=interpolate(t,e);for(;;){const t=CSS_PROPERTY_RE.exec(s);if(!t)break;const e=t[2];if(REFS_TEST_RE.test(e)){const r=t[1];if(!r.startsWith("--")){const o=`--${r}: ${e};\n ${r}: var(--${r})`;s=replace(s,t.index,t[0].length,o)}}}return s}export function html(t,...e){let s=interpolate(t,e);for(;;){const t=HTML_ELEMENT_TEXT_RE.exec(s);if(!t||"style"===t[1])break;const e=removeHtmlComments(t[2]);if(REFS_TEST_RE.test(e)){const r=`\x3c!-- ${e.trim()} --\x3e`;s=replace(s,t.index+t[0].indexOf(">")+1,e.length,r)}}return s}import{createDeepProxy,proxyToPlainObject}from"./proxies.js";const inBrowser="undefined"!=typeof window&&void 0!==window.document;class WrecError extends Error{}export class WrecState{static#V=new Map;static{inBrowser&&window.addEventListener("beforeunload",()=>{for(const[t,e]of this.#V.entries())if(e.#F){const s=proxyToPlainObject(e);sessionStorage.setItem("wrec-state-"+t,JSON.stringify(s))}})}static get(t){return this.#V.get(t)}#D=Symbol("objectId");#j=[];#k;#F;#B;constructor(t,e,s){if(!t)throw new WrecError("name cannot be empty");if(WrecState.#V.has(t))throw new WrecError(`WrecState with name "${t}" already exists`);if(this.#k=t,this.#F=e,this.#B=createDeepProxy({},this.#z.bind(this)),e&&inBrowser){const e=sessionStorage.getItem("wrec-state-"+t),r=e?JSON.parse(e):void 0;r&&(s=r)}if(s)for(const[t,e]of Object.entries(s))this.addProperty(t,e);WrecState.#V.set(t,this)}addListener(t,e={}){const s=this.#j.find(e=>e.listenerRef.deref()===t);if(s){const{propertyMap:t}=s;for(const[s,r]of Object.entries(e))t[s]=r}else this.#j.push({listenerRef:new WeakRef(t),propertyMap:e})}addProperty(t,e){Object.defineProperty(this,t,{enumerable:!0,get(){return this.#B[t]},set(e){this.#B[t]=e}}),this.#B[t]=e}get id(){return this.#D}log(){console.log("WrecState:",this.#k);for(const[t,e]of Object.entries(this.#B))console.log(` ${t} = ${JSON.stringify(e)}`)}#z(t,e,s){const r=new Set;for(const o of this.#j){const i=o.listenerRef.deref();if(i)if(inBrowser&&i instanceof HTMLElement&&!i.isConnected)r.add(o);else{const{propertyMap:r}=o,n=Object.keys(r);(0===n.length||n.includes(t))&&i.changed(t,r[t],s,e,this)}else r.add(o)}this.#j=this.#j.filter(t=>!r.has(t))}removeListener(t){this.#j=this.#j.filter(e=>e.listenerRef.deref()!==t)}}if(inBrowser){"development"===process.env.NODE_ENV&&(window.WrecState=WrecState)}
package/dist/wrec.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(p,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(p=typeof globalThis<"u"?globalThis:p||self,d(p.wrec={}))})(this,(function(p){"use strict";function d(r,t){let e=r;for(const s of t.split("."))e=e[s];return e}function H(r,t,e){const s=t.split("."),o=s.length-1;let i=r;s.forEach((n,h)=>{h===o?i[n]=e:i=i[n]})}class b extends Error{}const j=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,P="a-zA-Z_$",F=P+"0-9",y=`[${P}][${F}]*`,V=/<!--\s*(.*?)\s*-->/,_=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,S=new RegExp(`^this\\.${y}$`),C=new RegExp(`this\\.${y}(\\.${y})*`,"g"),N=new RegExp(`this\\.${y}(\\.${y})*`),I=new Set(["class","style"]),$=5;function D(r){return r instanceof HTMLButtonElement||r instanceof HTMLFieldSetElement||r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement||r instanceof l}function B(r,t,e){const s=document.createElement(r);if(t)for(const[o,i]of Object.entries(t))s.setAttribute(o,i);return e&&(s.innerHTML=e),s}const q=r=>r===String?"":r===Number?0:r===Boolean?!1:r===Array?[]:r===Object?{}:void 0;function T(r){const t=[];let e=r.firstElementChild;for(;e;)t.push(e),e.shadowRoot&&t.push(...T(e.shadowRoot)),e.firstElementChild&&t.push(...T(e)),e=e.nextElementSibling;return t}const E=r=>r.substring($).split(".")[0];function x(r,t){let e=r[0];return t.forEach((s,o)=>{e+=s+r[o+1]}),e}function w(r){const t=typeof r;return t==="string"||t==="number"||t==="boolean"}function g(r){return r.localName==="textarea"}function R(r){const{localName:t}=r;return t==="input"||t==="select"}const z=r=>r.replace(/<!--[\s\S]*?-->/g,"");function L(r,t,e,s){return r.slice(0,t)+s+r.slice(t+e)}function v(r){const t=Number(r);if(isNaN(t))throw new b(`can't convert "${r}" to a number`);return t}function O(r,t,e){const[s,o]=t.split(":");if(w(e))if(typeof e=="boolean"){e?r.setAttribute(s,s):r.removeAttribute(s);const i=l.getPropName(s);r[i]=e}else{const i=r.getAttribute(t),n=String(e);i!==n&&(r.setAttribute(s,n),s==="value"&&R(r)&&(r.value=n))}else{const i=l.getPropName(t);r[i]=e}}function M(r,t,e){const[s,o]=t.split(":");r instanceof CSSRule?r.style.setProperty(s,e):(O(r,s,e),s==="value"&&R(r)&&(r.value=e))}class l extends HTMLElement{static#p=new Map;static#d=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#t=this.constructor;#s=new Map;#a={};#i;#f={};#h=null;#l=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#t;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){t==="disabled"&&this.#m();const o=l.getPropName(t);if(this.#r(o)){const i=this.#A(o,String(s));this[o]=i;const n=this.#a[o];n&&this.setFormValue(n,String(i)),this.propertyChangedCallback(o,e,s)}}#T(){if(!this.shadowRoot)return;const t=this.#t;if(t.css){let s=t.stylesheet;if(!s){s=t.stylesheet=new CSSStyleSheet;const o=`:host([hidden]) { display: none; } ${t.css}`;s.replaceSync(o)}this.shadowRoot.adoptedStyleSheets=[s]}let e=t.template;e||(e=t.template=document.createElement("template"),e.innerHTML=t.html),this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#H(),this.#R(),this.#T(),this.hasAttribute("disabled")&&this.#m(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#C(this.shadowRoot),this.#b(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#$(t)}this.#w()})}#w(){const t=this.#t,{properties:e}=t;for(const[s,{computed:o}]of Object.entries(e))o&&(this[s]=this.#o(o))}#R(){const t=this.#t,{observedAttributes:e,properties:s}=t;for(const[o,i]of Object.entries(s))this.#v(o,i,e)}#v(t,e,s){const o=l.getAttrName(t),i=this.hasAttribute(o);e.required&&!i&&this.#e(this,t,"is a required attribute");let n=e.value;this.hasOwnProperty(t)&&(n=this[t],delete this[t]);const{type:h}=e,c=h===Boolean?n||i:s.includes(o)&&i?this.#E(t,o):n||q(h),f="#"+t;this[f]=c,e.computed&&this.#x(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[f]},set(a){h===Number&&typeof a=="string"&&(a=v(a));const u=this[f];if(a===u)return;this.#F(t,h,a),this[f]=a;const{state:m,stateProp:A}=this.#t.properties[t];A&&H(m,A,a),this.#O(t),this.#L(t,h,a,o),this.#g(t),this.#k(t,a);const k=this.#a[t];k&&this.setFormValue(k,String(a)),this.propertyChangedCallback(t,u,a),e.dispatch&&this.dispatch("change",{[t]:a})}})}#m(){const t=this.hasAttribute("disabled"),e=T(this.shadowRoot);for(const s of e)D(s)&&(s.disabled=t)}disconnectedCallback(){this.#s.clear(),this.#f.clear(),this.#l.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#M(t){const e=t instanceof l;for(const s of t.getAttributeNames()){const o=t.getAttribute(s),i=this.#y(t,o);if(i){const n=this[i];n===void 0&&this.#c(t,s,i),t[i]=n;let[h,c]=s.split(":");h==="value"&&(c?(t["on"+c]===void 0&&this.#e(t,s,"refers to an unsupported event name"),t.setAttribute(h,this[i])):c="change"),e&&t.#l.set(l.getPropName(h),i)}this.#n(o,t,s)}}#o(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#P(t){const{localName:e}=t;if(e==="style"){const{sheet:s}=t,o=s?.cssRules??[],i=Array.from(o);for(const n of i)if(n.constructor===CSSStyleRule){const h=Array.from(n.style);for(const c of h)if(c.startsWith("--")){const f=n.style.getPropertyValue(c);this.#n(f,n,c)}}}else{let s="";if(g(t)){this.#n(t.textContent,t);const o=t.textContent?.match(V);o&&(s=o[1])}else{const o=Array.from(t.childNodes).find(i=>i.nodeType===Node.COMMENT_NODE);o&&(s=o.textContent?.trim()??"")}if(s){const o=this.#y(t,s);o&&g(t)?t.textContent=this[o]:this.#n(s,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const n=this.getAttribute("name");if(n)if(this.#r("value"))t=`value:${n}`;else return;else return}const e={},s=t.split(",");for(const n of s){const[h,c]=n.split(":");e[h.trim()]=c.trim()}this.#a=e,this.#i=new FormData,this.#h=this.attachInternals(),this.#h.setFormValue(this.#i);const o=Object.keys(this.#t.properties),i=this.#f;for(const n of o)i[n]=this[n]}formResetCallback(){const t=this.#f;for(const e of Object.keys(t)){let s=t[e];S.test(s)&&(s=this.#o(s)),this[e]=s}}static getAttrName(t){let e=l.#d.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l.#d.set(t,e)),e}static getPropName(t){let e=l.#p.get(t);return e||(e=t.replace(/-([a-z])/g,(s,o)=>o.toUpperCase()),l.#p.set(t,e)),e}#N(t,e,s){if(s.length!==1)return;const[o]=s;if(!S.test(o))return;const i=R(t)||g(t);let[n,h]=(e??"").split(":");if(!(i&&n==="value"||g(t)))return;h?t["on"+h]===void 0&&this.#e(t,e,"refers to an unsupported event name"):h="change";const f=E(o);t.addEventListener(h,a=>{const{target:u}=a;if(!u)return;const m=u.value,{type:A}=this.#t.properties[f];this[f]=A===Number?v(m):m,this.#g(f)})}#r(t){return!!this.#t.properties[t]}#b(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e)this.#M(s),s.firstElementChild||this.#P(s)}#$(t){const e=t.cssRules||t.rules;for(const s of Array.from(e))if(s instanceof CSSStyleRule){for(const o of Array.from(s.style))if(o.startsWith("--")){const i=s.style.getPropertyValue(o);this.#n(i,s,o)}}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(l.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#y(t,e){if(!e||!S.test(e))return;const s=E(e);return this[s]===void 0&&this.#c(t,"",s),s}#g(t){const o=this.#t.propToExprsMap.get(t)||[];for(const i of o){let n=this.#o(i);const h=this.#s.get(i)??[];for(const c of h)if(c instanceof HTMLElement)this.#S(c,n);else if(!(c instanceof CSSStyleRule)){const{element:f,attrName:a}=c;f instanceof CSSStyleRule?f.style.setProperty(a,n):M(f,a,n)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#x(t,e){const{computed:s,uses:o}=e,i=this.#t.propToComputedMap;function n(c,f){let a=i.get(c);a||(a=[],i.set(c,a)),a.push([t,f])}const h=s.match(C)||[];for(const c of h){const f=c.substring($);this[f]===void 0&&this.#c(null,t,f),typeof this[f]!="function"&&n(f,s)}if(o)for(const c of o.split(","))n(c,s)}#n(t,e,s=void 0){if(!t)return;const o=this.#u(e,s,t);if(!o){const c=t.replaceAll("this..","this.");s?M(e,s,c):"textContent"in e&&(e.textContent=c);return}const i=this.#t;o.forEach(c=>{const f=E(c);if(typeof this[f]=="function")return;const a=i.propToExprsMap;let u=a.get(f);u||(u=[],a.set(f,u)),u.includes(t)||u.push(t)});for(const[c,f]of this.#s.entries())for(const a of f){const u=a instanceof HTMLElement||a instanceof CSSStyleRule?a:a.element;u instanceof CSSStyleRule||u.isConnected||this.#s.set(c,f.filter(m=>m!==a))}let n=this.#s.get(t);n||(n=[],this.#s.set(t,n)),n.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#N(e,s,o);const h=this.#o(t);s?M(e,s,h):this.#S(e,h)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){!this.#i||!w(e)||(this.#i.set(t,e),this.#h?.setFormValue(this.#i))}#e(t,e,s){const o=this.#t,i=t instanceof HTMLElement?t.localName:"CSS rule";throw new b(`component ${o.elementName()}`+(t?`, element "${i}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#c(t,e,s){this.#e(t,e,`refers to missing property "${s}"`)}#E(t,e){return this.#A(t,this.getAttribute(e))}#A(t,e){if(e?.match(C))return e;const s=this.#t,{type:o}=s.properties[t];if(o||this.#e(null,t,"does not specify its type"),o===String)return e;if(o===Number)return v(e);if(o===Boolean)return e==="true"?!0:e==="false"||e==="null"?!1:(e&&e!==t&&this.#e(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t)}#L(t,e,s,o){if(w(s)&&this.hasAttribute(o)){const i=e===Boolean?this.hasAttribute(o):this.#E(t,o);s!==i&&O(this,t,s)}}#O(t){const s=this.#t.propToComputedMap.get(t)||[];for(const[o,i]of s)this[o]=this.#o(i)}#S(t,e){if(e===void 0)return;const s=t instanceof HTMLElement,o=typeof e;o!=="string"&&o!=="number"&&this.#e(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&g(t)?t.value=e:s&&o==="string"&&e.trim().startsWith("<")?(t.innerHTML=e,this.#C(t),this.#b(t)):s&&(t.textContent=e)}#k(t,e){const s=this.#l.get(t);if(!s)return;const o=this.getRootNode();if(!(o instanceof ShadowRoot))return;const{host:i}=o;if(!i)return;const n=i;n[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#j(t,e);for(const[s,o]of Object.entries(e))if(this.#r(o)){const i=d(t,s);i!==void 0&&(this[o]=i);const n=this.#t.properties[o];n.state=t,n.stateProp=s}t.addListener(this,e)}#H(){const t=this.#t,e=new Set(Object.keys(t.properties));for(const o of e)I.has(o)&&this.#e(null,"",`property "${o}" is not allowed because it is a reserved attribute`);const s=this.#t.name;for(const o of this.getAttributeNames())if(o!=="class"&&o!=="id"&&o!=="disabled"&&!o.startsWith("on")){if(o==="form-assoc"){if(!t.formAssociated)throw new b(`add "static formAssociated = true;" to class ${s}`);continue}if(!e.has(l.getPropName(o))){if(o==="name"){if(t.formAssociated)continue;throw new b(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#e(null,o,"is not a supported attribute")}}}#u(t,e,s){const o=s.match(C);if(o)return o.forEach(i=>{const n=E(i);this[n]===void 0&&this.#c(t,e,n)}),o}#j(t,e){for(const[s,o]of Object.entries(e)){let i=d(t,s);if(i===void 0)throw new b(`invalid state path "${s}"`);i=this[o],this.#r(o)||this.#e(null,o,"refers to missing property in useState map")}}#F(t,e,s){if(s instanceof e)return;let o=typeof s;if(o==="object"){const{constructor:i}=s;o=i.name,i!==e&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}o!==e.name.toLowerCase()&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}#C(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e){const o=[];for(const i of Array.from(s.attributes)){const n=i.name;if(n.startsWith("on")){let h=n.slice(2);h=h[0].toLowerCase()+h.slice(1).toLowerCase();const c=i.value;this.#u(s,n,c);let f;typeof this[c]=="function"?f=a=>this[c](a):(this.#u(s,n,c),f=()=>this.#o(c)),s.addEventListener(h,f),o.push(n)}}for(const i of o)s.removeAttribute(i)}}}function Z(r,...t){let e=x(r,t);for(;;){const s=j.exec(e);if(!s)break;const o=s[2];if(N.test(o)){const i=s[1];if(!i.startsWith("--")){const n=`--${i}: ${o};
2
- ${i}: var(--${i});`;e=L(e,s.index,s[0].length,n)}}}return e}function K(r,...t){let e=x(r,t);for(;;){const s=_.exec(e);if(!s||s[1]==="style")break;const o=z(s[2]);if(N.test(o)){const i=`<!-- ${o.trim()} -->`,n=s.index+s[0].indexOf(">")+1;e=L(e,n,o.length,i)}}return e}p.Wrec=l,p.createElement=B,p.css=Z,p.html=K,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(p,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(p=typeof globalThis<"u"?globalThis:p||self,d(p.wrec={}))})(this,(function(p){"use strict";function d(n,t){let e=n;for(const s of t.split("."))e=e[s];return e}function H(n,t,e){const s=t.split("."),o=s.length-1;let i=n;s.forEach((r,h)=>{h===o?i[r]=e:i=i[r]})}class b extends Error{}const j=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,P="a-zA-Z_$",F=P+"0-9",y=`[${P}][${F}]*`,V=/<!--\s*(.*?)\s*-->/,_=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,E=new RegExp(`^this\\.${y}$`),C=new RegExp(`this\\.${y}(\\.${y})*`,"g"),$=new RegExp(`this\\.${y}(\\.${y})*`),I=new Set(["class","style"]),N=5;function D(n){return n instanceof HTMLButtonElement||n instanceof HTMLFieldSetElement||n instanceof HTMLInputElement||n instanceof HTMLSelectElement||n instanceof HTMLTextAreaElement||n instanceof l}function B(n){const t=new CSSStyleSheet;for(const e of Array.from(n.cssRules))t.insertRule(e.cssText);return t}function q(n,t,e){const s=document.createElement(n);if(t)for(const[o,i]of Object.entries(t))s.setAttribute(o,i);return e&&(s.innerHTML=e),s}const z=n=>n===String?"":n===Number?0:n===Boolean?!1:n===Array?[]:n===Object?{}:void 0;function T(n){const t=[];let e=n.firstElementChild;for(;e;)t.push(e),e.shadowRoot&&t.push(...T(e.shadowRoot)),e.firstElementChild&&t.push(...T(e)),e=e.nextElementSibling;return t}const S=n=>n.substring(N).split(".")[0];function x(n,t){let e=n[0];return t.forEach((s,o)=>{e+=s+n[o+1]}),e}function w(n){const t=typeof n;return t==="string"||t==="number"||t==="boolean"}function g(n){return n.localName==="textarea"}function R(n){const{localName:t}=n;return t==="input"||t==="select"}const Z=n=>n.replace(/<!--[\s\S]*?-->/g,"");function L(n,t,e,s){return n.slice(0,t)+s+n.slice(t+e)}function v(n){const t=Number(n);if(isNaN(t))throw new b(`can't convert "${n}" to a number`);return t}function O(n,t,e){const[s,o]=t.split(":");if(w(e))if(typeof e=="boolean"){e?n.setAttribute(s,s):n.removeAttribute(s);const i=l.getPropName(s);n[i]=e}else{const i=n.getAttribute(t),r=String(e);i!==r&&(n.setAttribute(s,r),s==="value"&&R(n)&&(n.value=r))}else{const i=l.getPropName(t);n[i]=e}}function M(n,t,e){const[s,o]=t.split(":");n instanceof CSSStyleRule?n.style.setProperty(s,e):(O(n,s,e),s==="value"&&R(n)&&(n.value=e))}class l extends HTMLElement{static#p=new Map;static#d=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#t=this.constructor;#s=new Map;#a={};#i;#f={};#h=null;#l=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#t;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){t==="disabled"&&this.#m();const o=l.getPropName(t);if(this.#r(o)){const i=this.#A(o,String(s));this[o]=i;const r=this.#a[o];r&&this.setFormValue(r,String(i)),this.propertyChangedCallback(o,e,s)}}#T(){if(!this.shadowRoot)return;const t=this.#t;if(t.css){let{stylesheet:s}=t;if(!s){s=t.stylesheet=new CSSStyleSheet;const o=`:host([hidden]) { display: none; } ${t.css}`;s.replaceSync(o)}this.shadowRoot.adoptedStyleSheets=[B(s)]}let e=t.template;if(!e){e=t.template=document.createElement("template");const s=t.html.trim();e.innerHTML=s.startsWith("<")?s:`<span><!--${s}--></span>`}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#H(),this.#R(),this.#T(),this.hasAttribute("disabled")&&this.#m(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#C(this.shadowRoot),this.#b(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#N(t)}this.#w()})}#w(){const t=this.#t,{properties:e}=t;for(const[s,{computed:o}]of Object.entries(e))o&&(this[s]=this.#o(o))}#R(){const t=this.#t,{observedAttributes:e,properties:s}=t;for(const[o,i]of Object.entries(s))this.#v(o,i,e)}#v(t,e,s){const o=l.getAttrName(t),i=this.hasAttribute(o);e.required&&!i&&this.#e(this,t,"is a required attribute");let r=e.value;this.hasOwnProperty(t)&&(r=this[t],delete this[t]);const{type:h}=e,c=h===Boolean?r||i:s.includes(o)&&i?this.#S(t,o):r||z(h),f="#"+t;this[f]=c,e.computed&&this.#x(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[f]},set(a){h===Number&&typeof a=="string"&&(a=v(a));const u=this[f];if(a===u)return;this.#F(t,h,a),this[f]=a;const{state:m,stateProp:A}=this.#t.properties[t];A&&H(m,A,a),this.#O(t),this.#L(t,h,a,o),this.#g(t),this.#k(t,a);const k=this.#a[t];k&&this.setFormValue(k,String(a)),this.propertyChangedCallback(t,u,a),e.dispatch&&this.dispatch("change",{[t]:a})}})}#m(){const t=this.hasAttribute("disabled"),e=T(this.shadowRoot);for(const s of e)D(s)&&(s.disabled=t)}disconnectedCallback(){this.#s.clear(),this.#f.clear(),this.#l.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#M(t){const e=t instanceof l;for(const s of t.getAttributeNames()){const o=t.getAttribute(s),i=this.#y(t,o);if(i){const r=this[i];r===void 0&&this.#c(t,s,i),t[i]=r;let[h,c]=s.split(":");h==="value"&&(c?(t["on"+c]===void 0&&this.#e(t,s,"refers to an unsupported event name"),t.setAttribute(h,this[i])):c="change"),e&&t.#l.set(l.getPropName(h),i)}this.#n(o,t,s)}}#o(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#P(t){const{localName:e}=t;if(e==="style"){const{sheet:s}=t,o=s?.cssRules??[],i=Array.from(o);for(const r of i)if(r.constructor===CSSStyleRule){const h=Array.from(r.style);for(const c of h)if(c.startsWith("--")){const f=r.style.getPropertyValue(c);this.#n(f,r,c)}}}else{let s="";if(g(t)){this.#n(t.textContent,t);const o=t.textContent?.match(V);o&&(s=o[1])}else{const o=Array.from(t.childNodes).find(i=>i.nodeType===Node.COMMENT_NODE);o&&(s=o.textContent?.trim()??"")}if(s){const o=this.#y(t,s);o&&g(t)?t.textContent=this[o]:this.#n(s,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const r=this.getAttribute("name");if(r)if(this.#r("value"))t=`value:${r}`;else return;else return}const e={},s=t.split(",");for(const r of s){const[h,c]=r.split(":");e[h.trim()]=c.trim()}this.#a=e,this.#i=new FormData,this.#h=this.attachInternals(),this.#h.setFormValue(this.#i);const o=Object.keys(this.#t.properties),i=this.#f;for(const r of o)i[r]=this[r]}formResetCallback(){const t=this.#f;for(const e of Object.keys(t)){let s=t[e];E.test(s)&&(s=this.#o(s)),this[e]=s}}static getAttrName(t){let e=l.#d.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l.#d.set(t,e)),e}static getPropName(t){let e=l.#p.get(t);return e||(e=t.replace(/-([a-z])/g,(s,o)=>o.toUpperCase()),l.#p.set(t,e)),e}#$(t,e,s){if(s.length!==1)return;const[o]=s;if(!E.test(o))return;const i=R(t)||g(t);let[r,h]=(e??"").split(":");if(!(i&&r==="value"||g(t)))return;h?t["on"+h]===void 0&&this.#e(t,e,"refers to an unsupported event name"):h="change";const f=S(o);t.addEventListener(h,a=>{const{target:u}=a;if(!u)return;const m=u.value,{type:A}=this.#t.properties[f];this[f]=A===Number?v(m):m,this.#g(f)})}#r(t){return!!this.#t.properties[t]}#b(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e)this.#M(s),s.firstElementChild||this.#P(s)}#N(t){const e=t.cssRules;for(const s of Array.from(e))if(s instanceof CSSStyleRule){for(const o of Array.from(s.style))if(o.startsWith("--")){const i=s.style.getPropertyValue(o);this.#n(i,s,o)}}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(l.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#y(t,e){if(!e||!E.test(e))return;const s=S(e);return this[s]===void 0&&this.#c(t,"",s),s}#g(t){const o=this.#t.propToExprsMap.get(t)||[];for(const i of o){let r=this.#o(i);const h=this.#s.get(i)??[];for(const c of h)if(c instanceof HTMLElement)this.#E(c,r);else if(!(c instanceof CSSStyleRule)){const{element:f,attrName:a}=c;f instanceof CSSStyleRule?f.style.setProperty(a,r):M(f,a,r)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#x(t,e){const{computed:s,uses:o}=e,i=this.#t.propToComputedMap;function r(c,f){let a=i.get(c);a||(a=[],i.set(c,a)),a.push([t,f])}const h=s.match(C)||[];for(const c of h){const f=c.substring(N);this[f]===void 0&&this.#c(null,t,f),typeof this[f]!="function"&&r(f,s)}if(o)for(const c of o.split(","))r(c,s)}#n(t,e,s=void 0){if(!t)return;const o=this.#u(e,s,t);if(!o){const c=t.replaceAll("this..","this.");s?M(e,s,c):"textContent"in e&&(e.textContent=c);return}const i=this.#t;o.forEach(c=>{const f=S(c);if(typeof this[f]=="function")return;const a=i.propToExprsMap;let u=a.get(f);u||(u=[],a.set(f,u)),u.includes(t)||u.push(t)});for(const[c,f]of this.#s.entries())for(const a of f){const u=a instanceof HTMLElement||a instanceof CSSStyleRule?a:a.element;u instanceof CSSStyleRule||u.isConnected||this.#s.set(c,f.filter(m=>m!==a))}let r=this.#s.get(t);r||(r=[],this.#s.set(t,r)),r.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#$(e,s,o);const h=this.#o(t);s?M(e,s,h):this.#E(e,h)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){!this.#i||!w(e)||(this.#i.set(t,e),this.#h?.setFormValue(this.#i))}#e(t,e,s){const o=this.#t,i=t instanceof HTMLElement?t.localName:"CSS rule";throw new b(`component ${o.elementName()}`+(t?`, element "${i}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#c(t,e,s){this.#e(t,e,`refers to missing property "${s}"`)}#S(t,e){return this.#A(t,this.getAttribute(e))}#A(t,e){if(e?.match(C))return e;const s=this.#t,{type:o}=s.properties[t];if(o||this.#e(null,t,"does not specify its type"),o===String)return e;if(o===Number)return v(e);if(o===Boolean)return e==="true"?!0:e==="false"||e==="null"?!1:(e&&e!==t&&this.#e(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t)}#L(t,e,s,o){if(w(s)&&this.hasAttribute(o)){const i=e===Boolean?this.hasAttribute(o):this.#S(t,o);s!==i&&O(this,t,s)}}#O(t){const s=this.#t.propToComputedMap.get(t)||[];for(const[o,i]of s)this[o]=this.#o(i)}#E(t,e){if(e===void 0)return;const s=t instanceof HTMLElement,o=typeof e;o!=="string"&&o!=="number"&&this.#e(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&g(t)?t.value=e:s&&o==="string"&&e.trim().startsWith("<")?(t.innerHTML=e,this.#C(t),this.#b(t)):s&&(t.textContent=e)}#k(t,e){const s=this.#l.get(t);if(!s)return;const o=this.getRootNode();if(!(o instanceof ShadowRoot))return;const{host:i}=o;if(!i)return;const r=i;r[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#j(t,e);for(const[s,o]of Object.entries(e))if(this.#r(o)){const i=d(t,s);i!==void 0&&(this[o]=i);const r=this.#t.properties[o];r.state=t,r.stateProp=s}t.addListener(this,e)}#H(){const t=this.#t,e=new Set(Object.keys(t.properties));for(const o of e)I.has(o)&&this.#e(null,"",`property "${o}" is not allowed because it is a reserved attribute`);const s=this.#t.name;for(const o of this.getAttributeNames())if(o!=="class"&&o!=="id"&&o!=="disabled"&&!o.startsWith("on")){if(o==="form-assoc"){if(!t.formAssociated)throw new b(`add "static formAssociated = true;" to class ${s}`);continue}if(!e.has(l.getPropName(o))){if(o==="name"){if(t.formAssociated)continue;throw new b(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#e(null,o,"is not a supported attribute")}}}#u(t,e,s){const o=s.match(C);if(o)return o.forEach(i=>{const r=S(i);this[r]===void 0&&this.#c(t,e,r)}),o}#j(t,e){for(const[s,o]of Object.entries(e)){let i=d(t,s);if(i===void 0)throw new b(`invalid state path "${s}"`);i=this[o],this.#r(o)||this.#e(null,o,"refers to missing property in useState map")}}#F(t,e,s){if(s instanceof e)return;let o=typeof s;if(o==="object"){const{constructor:i}=s;o=i.name,i!==e&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}o!==e.name.toLowerCase()&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}#C(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e){const o=[];for(const i of Array.from(s.attributes)){const r=i.name;if(r.startsWith("on")){let h=r.slice(2);h=h[0].toLowerCase()+h.slice(1).toLowerCase();const c=i.value;this.#u(s,r,c);let f;typeof this[c]=="function"?f=a=>this[c](a):(this.#u(s,r,c),f=()=>this.#o(c)),s.addEventListener(h,f),o.push(r)}}for(const i of o)s.removeAttribute(i)}}}function K(n,...t){let e=x(n,t);for(;;){const s=j.exec(e);if(!s)break;const o=s[2];if($.test(o)){const i=s[1];if(!i.startsWith("--")){const r=`--${i}: ${o};
2
+ ${i}: var(--${i})`;e=L(e,s.index,s[0].length,r)}}}return e}function X(n,...t){let e=x(n,t);for(;;){const s=_.exec(e);if(!s||s[1]==="style")break;const o=Z(s[2]);if($.test(o)){const i=`<!-- ${o.trim()} -->`,r=s.index+s[0].indexOf(">")+1;e=L(e,r,o.length,i)}}return e}p.Wrec=l,p.createElement=q,p.css=K,p.html=X,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "wrec",
3
3
  "description": "a small library that greatly simplifies building web components",
4
4
  "author": "R. Mark Volkmann",
5
- "version": "0.18.0",
5
+ "version": "0.18.2",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",