tutuca 0.9.114 → 0.9.115

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.
@@ -6236,7 +6236,8 @@ function parseRenderEach(px, value, as, attrs) {
6236
6236
  if (seqVal === null) return null;
6237
6237
  const renderIt = px.addNode(RenderItNode, as);
6238
6238
  const attrParser = getAttrParser(px);
6239
- const eachAttr = attrParser.eachAttr = attrParser.pushWrapper("each", value, seqVal);
6239
+ const eachAttr = attrParser.pushWrapper("each", value, seqVal);
6240
+ attrParser.eachAttr = eachAttr;
6240
6241
  const when = attrs.getNamedItem("@when") ?? attrs.getNamedItem("when");
6241
6242
  if (when) {
6242
6243
  if (when.name.charCodeAt(0) !== 64) maybeDeprecateBareXDirective(px, "render-each", "when");
@@ -6279,17 +6280,25 @@ function condenseChildsWhites(childs) {
6279
6280
  }
6280
6281
  function compileModifiers(eventName, names) {
6281
6282
  if (names.length === 0) return identityModifierWrapper;
6282
- const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? {};
6283
- let w = (that, f, args, _ctx) => f.apply(that, args);
6283
+ const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? NO_WRAPPERS;
6284
+ const effects = [];
6284
6285
  for (const name of names) {
6285
- const wrapper = wrappers[name];
6286
+ const effect = MOD_EFFECTS[name];
6287
+ if (effect !== void 0) effects.push(effect);
6288
+ }
6289
+ let w = effects.length === 0 ? (that, f, args, _ctx) => f.apply(that, args) : (that, f, args, ctx) => {
6290
+ for (const effect of effects) effect(ctx.e);
6291
+ return f.apply(that, args);
6292
+ };
6293
+ for (const name of names) {
6294
+ const wrapper = wrappers[name] ?? MOD_WRAPPERS_FOR_ANY_EVENT[name];
6286
6295
  if (wrapper !== void 0) w = wrapper(w);
6287
6296
  }
6288
6297
  return (f, ctx) => function(...args) {
6289
6298
  return w(this, f, args, ctx);
6290
6299
  };
6291
6300
  }
6292
- var BaseNode, TextNode, CommentNode, ChildsNode, DomNode, FragmentNode, maybeFragment, VALID_NODE_RE, ANode, MacroNode, RenderViewId, RenderNode, RenderItNode, RenderTextNode, RenderOnceNode, WrapperNode, ShowNode, HideNode, PushViewNameNode, SlotNode, ScopeNode, EachNode, IterInfo, X_OPS, WRAPPER_NODES, ParseContext, _htmlBlockTags, HTML_BLOCK_TAGS, isBlockDomNode, isEmptyText, isIgnorableXChild, hasMeaningfulChilds, NodeEvents, NodeEvent, fwdIfCtxPred, fwdIfKey, fwdCtrl, fwdMeta, fwdAlt, metaWraps, MOD_WRAPPERS_BY_EVENT, identityModifierWrapper;
6301
+ var BaseNode, TextNode, CommentNode, ChildsNode, DomNode, FragmentNode, maybeFragment, VALID_NODE_RE, ANode, MacroNode, RenderViewId, RenderNode, RenderItNode, RenderTextNode, RenderOnceNode, WrapperNode, ShowNode, HideNode, PushViewNameNode, SlotNode, ScopeNode, EachNode, IterInfo, X_OPS, WRAPPER_NODES, ParseContext, _htmlBlockTags, HTML_BLOCK_TAGS, isBlockDomNode, isEmptyText, isIgnorableXChild, hasMeaningfulChilds, NodeEvents, NodeEvent, fwdIfCtxPred, fwdIfKey, fwdCtrl, fwdMeta, fwdAlt, MOD_WRAPPERS_FOR_ANY_EVENT, MOD_WRAPPERS_BY_EVENT, MOD_EFFECTS, NO_WRAPPERS, identityModifierWrapper;
6293
6302
  var init_anode = __esm({
6294
6303
  "src/anode.js"() {
6295
6304
  init_attribute();
@@ -6807,15 +6816,23 @@ var init_anode = __esm({
6807
6816
  fwdCtrl = fwdIfCtxPred(({ e }) => isMac && e.metaKey || e.ctrlKey);
6808
6817
  fwdMeta = fwdIfCtxPred(({ e }) => e.metaKey);
6809
6818
  fwdAlt = fwdIfCtxPred(({ e }) => e.altKey);
6810
- metaWraps = { ctrl: fwdCtrl, cmd: fwdCtrl, meta: fwdMeta, alt: fwdAlt };
6819
+ MOD_WRAPPERS_FOR_ANY_EVENT = {
6820
+ ctrl: fwdCtrl,
6821
+ cmd: fwdCtrl,
6822
+ meta: fwdMeta,
6823
+ alt: fwdAlt
6824
+ };
6811
6825
  MOD_WRAPPERS_BY_EVENT = {
6812
6826
  keydown: {
6813
6827
  send: fwdIfKey("Enter"),
6814
- cancel: fwdIfKey("Escape"),
6815
- ...metaWraps
6816
- },
6817
- click: { ...metaWraps }
6828
+ cancel: fwdIfKey("Escape")
6829
+ }
6830
+ };
6831
+ MOD_EFFECTS = {
6832
+ prevent: (e) => e.preventDefault?.(),
6833
+ stop: (e) => e.stopPropagation?.()
6818
6834
  };
6835
+ NO_WRAPPERS = {};
6819
6836
  identityModifierWrapper = (f, _ctx) => f;
6820
6837
  }
6821
6838
  });
@@ -9357,10 +9374,13 @@ function checkEventModifiers(lx, view) {
9357
9374
  for (const event of view.ctx.events) {
9358
9375
  for (const handler of event.handlers) {
9359
9376
  const { name, modifiers } = handler;
9360
- const modWrappers = MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS;
9377
+ const known = [
9378
+ ...Object.keys(MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS2),
9379
+ ...ANY_EVENT_MODIFIERS
9380
+ ];
9361
9381
  for (const modifier of modifiers) {
9362
- if (modWrappers[modifier] === void 0) {
9363
- const close = closestName(modifier, Object.keys(modWrappers));
9382
+ if (!known.includes(modifier)) {
9383
+ const close = closestName(modifier, known);
9364
9384
  lx.error(
9365
9385
  UNKNOWN_EVENT_MODIFIER,
9366
9386
  {
@@ -9774,7 +9794,7 @@ function checkUnreferencedDynamics(lx, Comp, referencedDynamics) {
9774
9794
  }
9775
9795
  }
9776
9796
  }
9777
- var KNOWN_COMPONENT_SPEC_KEYS, EMPTY_SET2, FRAMEWORK_WELL_KNOWN_EXTRAS, KNOWN_DIRECTIVE_NAMES, ALT_HANDLER_NOT_DEFINED, ALT_HANDLER_NOT_REFERENCED, DYN_VAL_NOT_DEFINED, DYN_ALIAS_NOT_REFERENCED, PROVIDE_NOT_ADDRESSABLE, LOOKUP_BAD_SHAPE, LOOKUP_TARGET_MALFORMED, RENDER_IT_OUTSIDE_OF_LOOP, UNKNOWN_EVENT_MODIFIER, UNKNOWN_HANDLER_ARG_NAME, INPUT_HANDLER_NOT_IMPLEMENTED, INPUT_HANDLER_NOT_REFERENCED, INPUT_HANDLER_METHOD_NOT_IMPLEMENTED, INPUT_HANDLER_FOR_INPUT_HANDLER_METHOD, INPUT_HANDLER_METHOD_FOR_INPUT_HANDLER, FIELD_VAL_NOT_DEFINED, FIELD_VAL_IS_METHOD, METHOD_VAL_NOT_DEFINED, METHOD_VAL_IS_FIELD, DUPLICATE_ATTR_DEFINITION, IF_NO_BRANCH_SET, UNKNOWN_COMPONENT_NAME, UNKNOWN_MACRO_ARG, UNKNOWN_DIRECTIVE, UNKNOWN_X_OP, UNKNOWN_X_ATTR, X_OP_IGNORES_CHILDREN, MAYBE_DROP_AT_PREFIX, MAYBE_ADD_AT_PREFIX, DEPRECATED_BARE_X_DIRECTIVE, BAD_VALUE, UNSUPPORTED_EXPR_SYNTAX, BINDING_MEMBER_TOO_DEEP, SUGGEST_BINDING_MEMBER, REDUNDANT_TEMPLATE_STRING, PLACEHOLDERLESS_TEMPLATE_STRING, CONSTANT_CONDITION, UNKNOWN_COMPONENT_SPEC_KEY, COMP_FIELD_BAD_SHAPE, ASYNC_HANDLER, TOP_LEVEL_AT_RULE_IN_SCOPED_STYLE, GLOBAL_SELECTOR_IN_SCOPED_STYLE, FIELD_NAME_RESERVED_BY_RECORD, RECORD_FIELD_NAME_COLLISIONS, X_KNOWN_OP_NAMES, X_KNOWN_ATTR_NAMES, HOST_DIRECTIVE_ONLY_NAMES, LEVEL_WARN2, LEVEL_ERROR2, LEVEL_HINT, PARSE_ISSUES, BINDING_MEMBER_TOO_DEEP_RE, UNSUPPORTED_EXPR_GUIDANCE, HTML_LINT_OPTS, NO_WRAPPERS, KNOWN_HANDLER_NAMES, fixTo, BOOL_CONDITION_ORIGINS, isBoolConditionCtx, ATTR_VAL_CHECKERS, NODE_KIND_TO_CTX, HANDLER_CHANNELS, ASYNC_HANDLER_HELP, NON_NESTABLE_AT_RULE, GLOBAL_LEADING_SELECTOR, IGNORE_DIRECTIVE, blankRun, STYLE_TO_GLOBAL_HELP, KNOWN_LOOKUP_KEYS, LintContext, LintParseContext;
9797
+ var KNOWN_COMPONENT_SPEC_KEYS, EMPTY_SET2, FRAMEWORK_WELL_KNOWN_EXTRAS, KNOWN_DIRECTIVE_NAMES, ALT_HANDLER_NOT_DEFINED, ALT_HANDLER_NOT_REFERENCED, DYN_VAL_NOT_DEFINED, DYN_ALIAS_NOT_REFERENCED, PROVIDE_NOT_ADDRESSABLE, LOOKUP_BAD_SHAPE, LOOKUP_TARGET_MALFORMED, RENDER_IT_OUTSIDE_OF_LOOP, UNKNOWN_EVENT_MODIFIER, UNKNOWN_HANDLER_ARG_NAME, INPUT_HANDLER_NOT_IMPLEMENTED, INPUT_HANDLER_NOT_REFERENCED, INPUT_HANDLER_METHOD_NOT_IMPLEMENTED, INPUT_HANDLER_FOR_INPUT_HANDLER_METHOD, INPUT_HANDLER_METHOD_FOR_INPUT_HANDLER, FIELD_VAL_NOT_DEFINED, FIELD_VAL_IS_METHOD, METHOD_VAL_NOT_DEFINED, METHOD_VAL_IS_FIELD, DUPLICATE_ATTR_DEFINITION, IF_NO_BRANCH_SET, UNKNOWN_COMPONENT_NAME, UNKNOWN_MACRO_ARG, UNKNOWN_DIRECTIVE, UNKNOWN_X_OP, UNKNOWN_X_ATTR, X_OP_IGNORES_CHILDREN, MAYBE_DROP_AT_PREFIX, MAYBE_ADD_AT_PREFIX, DEPRECATED_BARE_X_DIRECTIVE, BAD_VALUE, UNSUPPORTED_EXPR_SYNTAX, BINDING_MEMBER_TOO_DEEP, SUGGEST_BINDING_MEMBER, REDUNDANT_TEMPLATE_STRING, PLACEHOLDERLESS_TEMPLATE_STRING, CONSTANT_CONDITION, UNKNOWN_COMPONENT_SPEC_KEY, COMP_FIELD_BAD_SHAPE, ASYNC_HANDLER, TOP_LEVEL_AT_RULE_IN_SCOPED_STYLE, GLOBAL_SELECTOR_IN_SCOPED_STYLE, FIELD_NAME_RESERVED_BY_RECORD, RECORD_FIELD_NAME_COLLISIONS, X_KNOWN_OP_NAMES, X_KNOWN_ATTR_NAMES, HOST_DIRECTIVE_ONLY_NAMES, LEVEL_WARN2, LEVEL_ERROR2, LEVEL_HINT, PARSE_ISSUES, BINDING_MEMBER_TOO_DEEP_RE, UNSUPPORTED_EXPR_GUIDANCE, HTML_LINT_OPTS, NO_WRAPPERS2, ANY_EVENT_MODIFIERS, KNOWN_HANDLER_NAMES, fixTo, BOOL_CONDITION_ORIGINS, isBoolConditionCtx, ATTR_VAL_CHECKERS, NODE_KIND_TO_CTX, HANDLER_CHANNELS, ASYNC_HANDLER_HELP, NON_NESTABLE_AT_RULE, GLOBAL_LEADING_SELECTOR, IGNORE_DIRECTIVE, blankRun, STYLE_TO_GLOBAL_HELP, KNOWN_LOOKUP_KEYS, LintContext, LintParseContext;
9778
9798
  var init_lint_check = __esm({
9779
9799
  "tools/core/lint-check.js"() {
9780
9800
  init_anode();
@@ -9883,7 +9903,11 @@ var init_lint_check = __esm({
9883
9903
  // phantom — case checks still apply, but don't enforce parent rules.
9884
9904
  transparentTagPrefixes: ["x"]
9885
9905
  };
9886
- NO_WRAPPERS = {};
9906
+ NO_WRAPPERS2 = {};
9907
+ ANY_EVENT_MODIFIERS = [
9908
+ ...Object.keys(MOD_WRAPPERS_FOR_ANY_EVENT),
9909
+ ...Object.keys(MOD_EFFECTS)
9910
+ ];
9887
9911
  KNOWN_HANDLER_NAMES = /* @__PURE__ */ new Set([
9888
9912
  "value",
9889
9913
  "valueAsInt",
@@ -2304,7 +2304,8 @@ function parseRenderEach(px, value, as, attrs) {
2304
2304
  if (seqVal === null) return null;
2305
2305
  const renderIt = px.addNode(RenderItNode, as);
2306
2306
  const attrParser = getAttrParser(px);
2307
- const eachAttr = attrParser.eachAttr = attrParser.pushWrapper("each", value, seqVal);
2307
+ const eachAttr = attrParser.pushWrapper("each", value, seqVal);
2308
+ attrParser.eachAttr = eachAttr;
2308
2309
  const when = attrs.getNamedItem("@when") ?? attrs.getNamedItem("when");
2309
2310
  if (when) {
2310
2311
  if (when.name.charCodeAt(0) !== 64) maybeDeprecateBareXDirective(px, "render-each", "when");
@@ -2647,22 +2648,38 @@ var fwdIfKey = (keyName) => fwdIfCtxPred((ctx) => ctx.e.key === keyName);
2647
2648
  var fwdCtrl = fwdIfCtxPred(({ e }) => isMac && e.metaKey || e.ctrlKey);
2648
2649
  var fwdMeta = fwdIfCtxPred(({ e }) => e.metaKey);
2649
2650
  var fwdAlt = fwdIfCtxPred(({ e }) => e.altKey);
2650
- var metaWraps = { ctrl: fwdCtrl, cmd: fwdCtrl, meta: fwdMeta, alt: fwdAlt };
2651
+ var MOD_WRAPPERS_FOR_ANY_EVENT = {
2652
+ ctrl: fwdCtrl,
2653
+ cmd: fwdCtrl,
2654
+ meta: fwdMeta,
2655
+ alt: fwdAlt
2656
+ };
2651
2657
  var MOD_WRAPPERS_BY_EVENT = {
2652
2658
  keydown: {
2653
2659
  send: fwdIfKey("Enter"),
2654
- cancel: fwdIfKey("Escape"),
2655
- ...metaWraps
2656
- },
2657
- click: { ...metaWraps }
2660
+ cancel: fwdIfKey("Escape")
2661
+ }
2658
2662
  };
2663
+ var MOD_EFFECTS = {
2664
+ prevent: (e) => e.preventDefault?.(),
2665
+ stop: (e) => e.stopPropagation?.()
2666
+ };
2667
+ var NO_WRAPPERS = {};
2659
2668
  var identityModifierWrapper = (f, _ctx) => f;
2660
2669
  function compileModifiers(eventName, names) {
2661
2670
  if (names.length === 0) return identityModifierWrapper;
2662
- const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? {};
2663
- let w = (that, f, args, _ctx) => f.apply(that, args);
2671
+ const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? NO_WRAPPERS;
2672
+ const effects = [];
2664
2673
  for (const name of names) {
2665
- const wrapper = wrappers[name];
2674
+ const effect = MOD_EFFECTS[name];
2675
+ if (effect !== void 0) effects.push(effect);
2676
+ }
2677
+ let w = effects.length === 0 ? (that, f, args, _ctx) => f.apply(that, args) : (that, f, args, ctx) => {
2678
+ for (const effect of effects) effect(ctx.e);
2679
+ return f.apply(that, args);
2680
+ };
2681
+ for (const name of names) {
2682
+ const wrapper = wrappers[name] ?? MOD_WRAPPERS_FOR_ANY_EVENT[name];
2666
2683
  if (wrapper !== void 0) w = wrapper(w);
2667
2684
  }
2668
2685
  return (f, ctx) => function(...args) {
@@ -5363,15 +5380,22 @@ function walkForRenderIt(lx, node, loopDepth) {
5363
5380
  return;
5364
5381
  }
5365
5382
  }
5366
- var NO_WRAPPERS = {};
5383
+ var NO_WRAPPERS2 = {};
5384
+ var ANY_EVENT_MODIFIERS = [
5385
+ ...Object.keys(MOD_WRAPPERS_FOR_ANY_EVENT),
5386
+ ...Object.keys(MOD_EFFECTS)
5387
+ ];
5367
5388
  function checkEventModifiers(lx, view) {
5368
5389
  for (const event of view.ctx.events) {
5369
5390
  for (const handler of event.handlers) {
5370
5391
  const { name, modifiers } = handler;
5371
- const modWrappers = MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS;
5392
+ const known = [
5393
+ ...Object.keys(MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS2),
5394
+ ...ANY_EVENT_MODIFIERS
5395
+ ];
5372
5396
  for (const modifier of modifiers) {
5373
- if (modWrappers[modifier] === void 0) {
5374
- const close = closestName(modifier, Object.keys(modWrappers));
5397
+ if (!known.includes(modifier)) {
5398
+ const close = closestName(modifier, known);
5375
5399
  lx.error(
5376
5400
  UNKNOWN_EVENT_MODIFIER,
5377
5401
  {
@@ -10658,7 +10658,8 @@ function parseRenderEach(px, value, as, attrs) {
10658
10658
  if (seqVal === null) return null;
10659
10659
  const renderIt = px.addNode(RenderItNode, as);
10660
10660
  const attrParser = getAttrParser(px);
10661
- const eachAttr = attrParser.eachAttr = attrParser.pushWrapper("each", value, seqVal);
10661
+ const eachAttr = attrParser.pushWrapper("each", value, seqVal);
10662
+ attrParser.eachAttr = eachAttr;
10662
10663
  const when = attrs.getNamedItem("@when") ?? attrs.getNamedItem("when");
10663
10664
  if (when) {
10664
10665
  if (when.name.charCodeAt(0) !== 64) maybeDeprecateBareXDirective(px, "render-each", "when");
@@ -11001,22 +11002,38 @@ var fwdIfKey = (keyName) => fwdIfCtxPred((ctx) => ctx.e.key === keyName);
11001
11002
  var fwdCtrl = fwdIfCtxPred(({ e }) => isMac && e.metaKey || e.ctrlKey);
11002
11003
  var fwdMeta = fwdIfCtxPred(({ e }) => e.metaKey);
11003
11004
  var fwdAlt = fwdIfCtxPred(({ e }) => e.altKey);
11004
- var metaWraps = { ctrl: fwdCtrl, cmd: fwdCtrl, meta: fwdMeta, alt: fwdAlt };
11005
+ var MOD_WRAPPERS_FOR_ANY_EVENT = {
11006
+ ctrl: fwdCtrl,
11007
+ cmd: fwdCtrl,
11008
+ meta: fwdMeta,
11009
+ alt: fwdAlt
11010
+ };
11005
11011
  var MOD_WRAPPERS_BY_EVENT = {
11006
11012
  keydown: {
11007
11013
  send: fwdIfKey("Enter"),
11008
- cancel: fwdIfKey("Escape"),
11009
- ...metaWraps
11010
- },
11011
- click: { ...metaWraps }
11014
+ cancel: fwdIfKey("Escape")
11015
+ }
11012
11016
  };
11017
+ var MOD_EFFECTS = {
11018
+ prevent: (e) => e.preventDefault?.(),
11019
+ stop: (e) => e.stopPropagation?.()
11020
+ };
11021
+ var NO_WRAPPERS = {};
11013
11022
  var identityModifierWrapper = (f, _ctx) => f;
11014
11023
  function compileModifiers(eventName, names) {
11015
11024
  if (names.length === 0) return identityModifierWrapper;
11016
- const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? {};
11017
- let w = (that, f, args, _ctx) => f.apply(that, args);
11025
+ const wrappers = MOD_WRAPPERS_BY_EVENT[eventName] ?? NO_WRAPPERS;
11026
+ const effects = [];
11018
11027
  for (const name of names) {
11019
- const wrapper = wrappers[name];
11028
+ const effect = MOD_EFFECTS[name];
11029
+ if (effect !== void 0) effects.push(effect);
11030
+ }
11031
+ let w = effects.length === 0 ? (that, f, args, _ctx) => f.apply(that, args) : (that, f, args, ctx) => {
11032
+ for (const effect of effects) effect(ctx.e);
11033
+ return f.apply(that, args);
11034
+ };
11035
+ for (const name of names) {
11036
+ const wrapper = wrappers[name] ?? MOD_WRAPPERS_FOR_ANY_EVENT[name];
11020
11037
  if (wrapper !== void 0) w = wrapper(w);
11021
11038
  }
11022
11039
  return (f, ctx) => function(...args) {
@@ -13717,15 +13734,22 @@ function walkForRenderIt(lx, node, loopDepth) {
13717
13734
  return;
13718
13735
  }
13719
13736
  }
13720
- var NO_WRAPPERS = {};
13737
+ var NO_WRAPPERS2 = {};
13738
+ var ANY_EVENT_MODIFIERS = [
13739
+ ...Object.keys(MOD_WRAPPERS_FOR_ANY_EVENT),
13740
+ ...Object.keys(MOD_EFFECTS)
13741
+ ];
13721
13742
  function checkEventModifiers(lx, view) {
13722
13743
  for (const event of view.ctx.events) {
13723
13744
  for (const handler of event.handlers) {
13724
13745
  const { name, modifiers } = handler;
13725
- const modWrappers = MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS;
13746
+ const known = [
13747
+ ...Object.keys(MOD_WRAPPERS_BY_EVENT[name] ?? NO_WRAPPERS2),
13748
+ ...ANY_EVENT_MODIFIERS
13749
+ ];
13726
13750
  for (const modifier of modifiers) {
13727
- if (modWrappers[modifier] === void 0) {
13728
- const close = closestName(modifier, Object.keys(modWrappers));
13751
+ if (!known.includes(modifier)) {
13752
+ const close = closestName(modifier, known);
13729
13753
  lx.error(
13730
13754
  UNKNOWN_EVENT_MODIFIER,
13731
13755
  {