tutuca 0.13.2 → 0.13.3

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.
@@ -656,31 +656,14 @@ function parseBool(s, px) {
656
656
  const val = parseToken(tokens[0], px);
657
657
  return val !== null && kindOf(val) & G_BOOL ? val : null;
658
658
  }
659
- function parseText(s, px) {
660
- return _parseSingle(s, px, G_TEXT);
661
- }
662
- function parseComponent(s, px) {
663
- return _parseSingle(s, px, G_COMPONENT);
664
- }
665
- function parseSequence(s, px) {
666
- return _parseSingle(s, px, G_SEQUENCE);
667
- }
668
- function parseField(s, px) {
669
- return _parseSingle(s, px, G_FIELD);
670
- }
671
- function parseProvide(s, px) {
672
- return _parseSingle(s, px, G_PROVIDE);
673
- }
674
- function parseMacroAttr(s, px) {
675
- return _parseSingle(s, px, G_ALL);
676
- }
677
- function parseReceiveHandler(s, px) {
678
- return _parseHandler(s, px, "receive", true, true, false);
679
- }
680
- function parseAlterHandler(s, px) {
681
- const r = _parseHandler(s, px, "alter", false, false, true);
682
- return r === null ? null : r.handlerVal;
683
- }
659
+ var parseText = (s, px) => _parseSingle(s, px, G_TEXT);
660
+ var parseComponent = (s, px) => _parseSingle(s, px, G_COMPONENT);
661
+ var parseSequence = (s, px) => _parseSingle(s, px, G_SEQUENCE);
662
+ var parseField = (s, px) => _parseSingle(s, px, G_FIELD);
663
+ var parseProvide = (s, px) => _parseSingle(s, px, G_PROVIDE);
664
+ var parseMacroAttr = (s, px) => _parseSingle(s, px, G_ALL);
665
+ var parseReceiveHandler = (s, px) => _parseHandler(s, px, "receive", true, true, false);
666
+ var parseAlterHandler = (s, px) => _parseHandler(s, px, "alter", false, false, true)?.handlerVal ?? null;
684
667
  function _parseHandler(s, px, namespace, allowArgs, report, allowMethod) {
685
668
  const tokens = tokenizeValue(s.trim());
686
669
  const headTok = tokens[0] ?? "";
@@ -1369,19 +1352,9 @@ function childOpts(vnode, ns, opts) {
1369
1352
  const target = ns === SVG_NS && isForeignObject(vnode.tag) ? null : ns;
1370
1353
  return target === (opts.namespace ?? null) ? opts : { ...opts, namespace: target };
1371
1354
  }
1372
- var NEVER_ASSIGN = /* @__PURE__ */ new Set([
1373
- "width",
1374
- "height",
1375
- "href",
1376
- "list",
1377
- "form",
1378
- "tabIndex",
1379
- "download",
1380
- "rowSpan",
1381
- "colSpan",
1382
- "role",
1383
- "popover"
1384
- ]);
1355
+ var NEVER_ASSIGN = new Set(
1356
+ "width height href list form tabIndex download rowSpan colSpan role popover".split(" ")
1357
+ );
1385
1358
  var PROP_ATTR_NAME = { className: "class", htmlFor: "for" };
1386
1359
  function applyProperties(node, props) {
1387
1360
  const namespaced = isNamespaced(node);
@@ -1660,6 +1633,10 @@ function morphChildren(parentDom, oldChilds, newChilds, opts) {
1660
1633
  if (!used[i] && domNodes[i].parentNode === parentDom) parentDom.removeChild(domNodes[i]);
1661
1634
  }
1662
1635
  function render(vnode, container, options, prev) {
1636
+ if (vnode == null) {
1637
+ container.replaceChildren();
1638
+ return { vnode: null, dom: null };
1639
+ }
1663
1640
  const isFragment = vnode instanceof VFragment;
1664
1641
  if (prev && prev.vnode instanceof VFragment === isFragment) {
1665
1642
  const oldDom = isFragment ? container : prev.dom;
@@ -2797,9 +2774,22 @@ var CHECK_TYPE_LIST = Array.isArray;
2797
2774
  var CHECK_TYPE_OBJECT = isPlainObject;
2798
2775
  var CHECK_TYPE_MAP = (v) => v instanceof Map;
2799
2776
  var CHECK_TYPE_SET = (v) => v instanceof Set;
2777
+ var COERCE_NONE = (_v) => null;
2778
+ var COERCE_BOOL = (v) => !!v;
2779
+ var COERCE_STRING = (v) => v?.toString?.() ?? "";
2780
+ var COERCE_INT = (v) => Number.isFinite(v) ? Math.trunc(v) : null;
2781
+ var COERCE_LIST = (v) => Array.isArray(v) ? [...v] : null;
2782
+ var COERCE_OBJECT = (v) => isPlainObject(v) ? { ...v } : null;
2783
+ var COERCE_MAP = (v) => {
2784
+ if (v instanceof Map) return new Map(v);
2785
+ if (Array.isArray(v) || isPlainObject(v))
2786
+ return new Map(Array.isArray(v) ? v : Object.entries(v));
2787
+ return null;
2788
+ };
2789
+ var COERCE_SET = (v) => v instanceof Set || Array.isArray(v) ? new Set(v) : null;
2800
2790
  var FieldBool = class extends Field {
2801
2791
  constructor(name, defaultValue = false) {
2802
- super("bool", name, CHECK_TYPE_BOOL, (v) => !!v, defaultValue);
2792
+ super("bool", name, CHECK_TYPE_BOOL, COERCE_BOOL, defaultValue);
2803
2793
  }
2804
2794
  };
2805
2795
  var FieldAny = class extends Field {
@@ -2809,23 +2799,17 @@ var FieldAny = class extends Field {
2809
2799
  };
2810
2800
  var FieldString = class extends Field {
2811
2801
  constructor(name, defaultValue = "") {
2812
- super("text", name, CHECK_TYPE_STRING, (v) => v?.toString?.() ?? "", defaultValue);
2802
+ super("text", name, CHECK_TYPE_STRING, COERCE_STRING, defaultValue);
2813
2803
  }
2814
2804
  };
2815
2805
  var FieldInt = class extends Field {
2816
2806
  constructor(name, defaultValue = 0) {
2817
- super(
2818
- "int",
2819
- name,
2820
- CHECK_TYPE_INT,
2821
- (v) => Number.isFinite(v) ? Math.trunc(v) : null,
2822
- defaultValue
2823
- );
2807
+ super("int", name, CHECK_TYPE_INT, COERCE_INT, defaultValue);
2824
2808
  }
2825
2809
  };
2826
2810
  var FieldFloat = class extends Field {
2827
2811
  constructor(name, defaultValue = 0) {
2828
- super("float", name, CHECK_TYPE_FLOAT, (_) => null, defaultValue);
2812
+ super("float", name, CHECK_TYPE_FLOAT, COERCE_NONE, defaultValue);
2829
2813
  }
2830
2814
  };
2831
2815
  var metaOf = (v) => v?.constructor?.[COMPONENT] ?? v?.constructor?.getMetaClass?.();
@@ -2838,45 +2822,22 @@ var FieldComp = class extends Field {
2838
2822
  };
2839
2823
  var FieldList = class extends Field {
2840
2824
  constructor(name, defaultValue = []) {
2841
- super("list", name, CHECK_TYPE_LIST, (v) => Array.isArray(v) ? [...v] : null, defaultValue);
2825
+ super("list", name, CHECK_TYPE_LIST, COERCE_LIST, defaultValue);
2842
2826
  }
2843
2827
  };
2844
2828
  var FieldObject = class extends Field {
2845
2829
  constructor(name, defaultValue = {}) {
2846
- super(
2847
- "object",
2848
- name,
2849
- CHECK_TYPE_OBJECT,
2850
- (v) => isPlainObject(v) ? { ...v } : null,
2851
- defaultValue
2852
- );
2830
+ super("object", name, CHECK_TYPE_OBJECT, COERCE_OBJECT, defaultValue);
2853
2831
  }
2854
2832
  };
2855
2833
  var FieldMap = class extends Field {
2856
2834
  constructor(name, defaultValue = /* @__PURE__ */ new Map()) {
2857
- super(
2858
- "map",
2859
- name,
2860
- CHECK_TYPE_MAP,
2861
- (v) => {
2862
- if (v instanceof Map) return new Map(v);
2863
- if (Array.isArray(v) || isPlainObject(v))
2864
- return new Map(Array.isArray(v) ? v : Object.entries(v));
2865
- return null;
2866
- },
2867
- defaultValue
2868
- );
2835
+ super("map", name, CHECK_TYPE_MAP, COERCE_MAP, defaultValue);
2869
2836
  }
2870
2837
  };
2871
2838
  var FieldSet = class extends Field {
2872
2839
  constructor(name, defaultValue = /* @__PURE__ */ new Set()) {
2873
- super(
2874
- "set",
2875
- name,
2876
- CHECK_TYPE_SET,
2877
- (v) => v instanceof Set || Array.isArray(v) ? new Set(v) : null,
2878
- defaultValue
2879
- );
2840
+ super("set", name, CHECK_TYPE_SET, COERCE_SET, defaultValue);
2880
2841
  }
2881
2842
  };
2882
2843
  function mkCompField(field, scope, args) {
@@ -2974,8 +2935,7 @@ function classFromData(name, { fields = {}, methods, statics }) {
2974
2935
  const value = fields[field];
2975
2936
  const type = typeof value;
2976
2937
  if (type === "string") b.addField(field, value, FieldString);
2977
- else if (type === "number")
2978
- b.addField(field, value, Number.isInteger(value) ? FieldInt : FieldFloat);
2938
+ else if (type === "number") b.addField(field, value, FieldFloat);
2979
2939
  else if (type === "boolean") b.addField(field, value, FieldBool);
2980
2940
  else if (Array.isArray(value)) b.addField(field, [...value], FieldList);
2981
2941
  else if (value instanceof Set) b.addField(field, new Set(value), FieldSet);
@@ -1359,31 +1359,14 @@ function parseBool(s, px) {
1359
1359
  const val = parseToken(tokens[0], px);
1360
1360
  return val !== null && kindOf(val) & G_BOOL ? val : null;
1361
1361
  }
1362
- function parseText(s, px) {
1363
- return _parseSingle(s, px, G_TEXT);
1364
- }
1365
- function parseComponent(s, px) {
1366
- return _parseSingle(s, px, G_COMPONENT);
1367
- }
1368
- function parseSequence(s, px) {
1369
- return _parseSingle(s, px, G_SEQUENCE);
1370
- }
1371
- function parseField(s, px) {
1372
- return _parseSingle(s, px, G_FIELD);
1373
- }
1374
- function parseProvide(s, px) {
1375
- return _parseSingle(s, px, G_PROVIDE);
1376
- }
1377
- function parseMacroAttr(s, px) {
1378
- return _parseSingle(s, px, G_ALL);
1379
- }
1380
- function parseReceiveHandler(s, px) {
1381
- return _parseHandler(s, px, "receive", true, true, false);
1382
- }
1383
- function parseAlterHandler(s, px) {
1384
- const r = _parseHandler(s, px, "alter", false, false, true);
1385
- return r === null ? null : r.handlerVal;
1386
- }
1362
+ var parseText = (s, px) => _parseSingle(s, px, G_TEXT);
1363
+ var parseComponent = (s, px) => _parseSingle(s, px, G_COMPONENT);
1364
+ var parseSequence = (s, px) => _parseSingle(s, px, G_SEQUENCE);
1365
+ var parseField = (s, px) => _parseSingle(s, px, G_FIELD);
1366
+ var parseProvide = (s, px) => _parseSingle(s, px, G_PROVIDE);
1367
+ var parseMacroAttr = (s, px) => _parseSingle(s, px, G_ALL);
1368
+ var parseReceiveHandler = (s, px) => _parseHandler(s, px, "receive", true, true, false);
1369
+ var parseAlterHandler = (s, px) => _parseHandler(s, px, "alter", false, false, true)?.handlerVal ?? null;
1387
1370
  function _parseHandler(s, px, namespace, allowArgs, report, allowMethod) {
1388
1371
  const tokens = tokenizeValue(s.trim());
1389
1372
  const headTok = tokens[0] ?? "";
@@ -2072,19 +2055,9 @@ function childOpts(vnode, ns, opts) {
2072
2055
  const target = ns === SVG_NS && isForeignObject(vnode.tag) ? null : ns;
2073
2056
  return target === (opts.namespace ?? null) ? opts : { ...opts, namespace: target };
2074
2057
  }
2075
- var NEVER_ASSIGN = /* @__PURE__ */ new Set([
2076
- "width",
2077
- "height",
2078
- "href",
2079
- "list",
2080
- "form",
2081
- "tabIndex",
2082
- "download",
2083
- "rowSpan",
2084
- "colSpan",
2085
- "role",
2086
- "popover"
2087
- ]);
2058
+ var NEVER_ASSIGN = new Set(
2059
+ "width height href list form tabIndex download rowSpan colSpan role popover".split(" ")
2060
+ );
2088
2061
  var PROP_ATTR_NAME = { className: "class", htmlFor: "for" };
2089
2062
  function applyProperties(node, props) {
2090
2063
  const namespaced = isNamespaced(node);
@@ -2363,6 +2336,10 @@ function morphChildren(parentDom, oldChilds, newChilds, opts) {
2363
2336
  if (!used[i] && domNodes[i].parentNode === parentDom) parentDom.removeChild(domNodes[i]);
2364
2337
  }
2365
2338
  function render(vnode, container, options, prev) {
2339
+ if (vnode == null) {
2340
+ container.replaceChildren();
2341
+ return { vnode: null, dom: null };
2342
+ }
2366
2343
  const isFragment = vnode instanceof VFragment;
2367
2344
  if (prev && prev.vnode instanceof VFragment === isFragment) {
2368
2345
  const oldDom = isFragment ? container : prev.dom;
@@ -3500,9 +3477,22 @@ var CHECK_TYPE_LIST = Array.isArray;
3500
3477
  var CHECK_TYPE_OBJECT = isPlainObject;
3501
3478
  var CHECK_TYPE_MAP = (v) => v instanceof Map;
3502
3479
  var CHECK_TYPE_SET = (v) => v instanceof Set;
3480
+ var COERCE_NONE = (_v) => null;
3481
+ var COERCE_BOOL = (v) => !!v;
3482
+ var COERCE_STRING = (v) => v?.toString?.() ?? "";
3483
+ var COERCE_INT = (v) => Number.isFinite(v) ? Math.trunc(v) : null;
3484
+ var COERCE_LIST = (v) => Array.isArray(v) ? [...v] : null;
3485
+ var COERCE_OBJECT = (v) => isPlainObject(v) ? { ...v } : null;
3486
+ var COERCE_MAP = (v) => {
3487
+ if (v instanceof Map) return new Map(v);
3488
+ if (Array.isArray(v) || isPlainObject(v))
3489
+ return new Map(Array.isArray(v) ? v : Object.entries(v));
3490
+ return null;
3491
+ };
3492
+ var COERCE_SET = (v) => v instanceof Set || Array.isArray(v) ? new Set(v) : null;
3503
3493
  var FieldBool = class extends Field {
3504
3494
  constructor(name, defaultValue = false) {
3505
- super("bool", name, CHECK_TYPE_BOOL, (v) => !!v, defaultValue);
3495
+ super("bool", name, CHECK_TYPE_BOOL, COERCE_BOOL, defaultValue);
3506
3496
  }
3507
3497
  };
3508
3498
  var FieldAny = class extends Field {
@@ -3512,23 +3502,17 @@ var FieldAny = class extends Field {
3512
3502
  };
3513
3503
  var FieldString = class extends Field {
3514
3504
  constructor(name, defaultValue = "") {
3515
- super("text", name, CHECK_TYPE_STRING, (v) => v?.toString?.() ?? "", defaultValue);
3505
+ super("text", name, CHECK_TYPE_STRING, COERCE_STRING, defaultValue);
3516
3506
  }
3517
3507
  };
3518
3508
  var FieldInt = class extends Field {
3519
3509
  constructor(name, defaultValue = 0) {
3520
- super(
3521
- "int",
3522
- name,
3523
- CHECK_TYPE_INT,
3524
- (v) => Number.isFinite(v) ? Math.trunc(v) : null,
3525
- defaultValue
3526
- );
3510
+ super("int", name, CHECK_TYPE_INT, COERCE_INT, defaultValue);
3527
3511
  }
3528
3512
  };
3529
3513
  var FieldFloat = class extends Field {
3530
3514
  constructor(name, defaultValue = 0) {
3531
- super("float", name, CHECK_TYPE_FLOAT, (_) => null, defaultValue);
3515
+ super("float", name, CHECK_TYPE_FLOAT, COERCE_NONE, defaultValue);
3532
3516
  }
3533
3517
  };
3534
3518
  var metaOf = (v) => v?.constructor?.[COMPONENT] ?? v?.constructor?.getMetaClass?.();
@@ -3541,45 +3525,22 @@ var FieldComp = class extends Field {
3541
3525
  };
3542
3526
  var FieldList = class extends Field {
3543
3527
  constructor(name, defaultValue = []) {
3544
- super("list", name, CHECK_TYPE_LIST, (v) => Array.isArray(v) ? [...v] : null, defaultValue);
3528
+ super("list", name, CHECK_TYPE_LIST, COERCE_LIST, defaultValue);
3545
3529
  }
3546
3530
  };
3547
3531
  var FieldObject = class extends Field {
3548
3532
  constructor(name, defaultValue = {}) {
3549
- super(
3550
- "object",
3551
- name,
3552
- CHECK_TYPE_OBJECT,
3553
- (v) => isPlainObject(v) ? { ...v } : null,
3554
- defaultValue
3555
- );
3533
+ super("object", name, CHECK_TYPE_OBJECT, COERCE_OBJECT, defaultValue);
3556
3534
  }
3557
3535
  };
3558
3536
  var FieldMap = class extends Field {
3559
3537
  constructor(name, defaultValue = /* @__PURE__ */ new Map()) {
3560
- super(
3561
- "map",
3562
- name,
3563
- CHECK_TYPE_MAP,
3564
- (v) => {
3565
- if (v instanceof Map) return new Map(v);
3566
- if (Array.isArray(v) || isPlainObject(v))
3567
- return new Map(Array.isArray(v) ? v : Object.entries(v));
3568
- return null;
3569
- },
3570
- defaultValue
3571
- );
3538
+ super("map", name, CHECK_TYPE_MAP, COERCE_MAP, defaultValue);
3572
3539
  }
3573
3540
  };
3574
3541
  var FieldSet = class extends Field {
3575
3542
  constructor(name, defaultValue = /* @__PURE__ */ new Set()) {
3576
- super(
3577
- "set",
3578
- name,
3579
- CHECK_TYPE_SET,
3580
- (v) => v instanceof Set || Array.isArray(v) ? new Set(v) : null,
3581
- defaultValue
3582
- );
3543
+ super("set", name, CHECK_TYPE_SET, COERCE_SET, defaultValue);
3583
3544
  }
3584
3545
  };
3585
3546
  function mkCompField(field, scope, args) {
@@ -3677,8 +3638,7 @@ function classFromData(name, { fields = {}, methods, statics }) {
3677
3638
  const value = fields[field];
3678
3639
  const type = typeof value;
3679
3640
  if (type === "string") b.addField(field, value, FieldString);
3680
- else if (type === "number")
3681
- b.addField(field, value, Number.isInteger(value) ? FieldInt : FieldFloat);
3641
+ else if (type === "number") b.addField(field, value, FieldFloat);
3682
3642
  else if (type === "boolean") b.addField(field, value, FieldBool);
3683
3643
  else if (Array.isArray(value)) b.addField(field, [...value], FieldList);
3684
3644
  else if (value instanceof Set) b.addField(field, new Set(value), FieldSet);