@vue/compiler-vapor 3.6.0-beta.14 → 3.6.0-beta.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compiler-vapor v3.6.0-beta.14
2
+ * @vue/compiler-vapor v3.6.0-beta.16
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -152,7 +152,7 @@ const EMPTY_EXPRESSION = (0, _vue_compiler_dom.createSimpleExpression)("", true)
152
152
  //#region packages/compiler-vapor/src/utils.ts
153
153
  const findProp$1 = _vue_compiler_dom.findProp;
154
154
  /** find directive */
155
- const findDir$2 = _vue_compiler_dom.findDir;
155
+ const findDir$3 = _vue_compiler_dom.findDir;
156
156
  function propToExpression(prop) {
157
157
  return prop.type === 6 ? prop.value ? (0, _vue_compiler_dom.createSimpleExpression)(prop.value.content, true, prop.value.loc) : EMPTY_EXPRESSION : prop.exp;
158
158
  }
@@ -193,6 +193,13 @@ function getLiteralExpressionValue(exp, excludeNumber) {
193
193
  }
194
194
  return exp.isStatic ? exp.content : null;
195
195
  }
196
+ function isInTransition(context) {
197
+ const parentNode = context.parent && context.parent.node;
198
+ return !!(parentNode && isTransitionNode(parentNode));
199
+ }
200
+ function isTransitionNode(node) {
201
+ return node.type === 1 && isTransitionTag(node.tag);
202
+ }
196
203
  function isTransitionTag(tag) {
197
204
  tag = tag.toLowerCase();
198
205
  return tag === "transition" || tag === "vaportransition";
@@ -424,6 +431,7 @@ const defaultOptions = {
424
431
  bindingMetadata: _vue_shared.EMPTY_OBJ,
425
432
  inline: false,
426
433
  isTS: false,
434
+ eventDelegation: true,
427
435
  onError: _vue_compiler_dom.defaultOnError,
428
436
  onWarn: _vue_compiler_dom.defaultOnWarn
429
437
  };
@@ -663,6 +671,8 @@ function genPrependNode(oper, { helper }) {
663
671
  function genExpression(node, context, assignment) {
664
672
  node = context.getExpressionReplacement(node);
665
673
  const { content, ast, isStatic, loc } = node;
674
+ const { options } = context;
675
+ const { inline } = options;
666
676
  if (isStatic) return [[
667
677
  JSON.stringify(content),
668
678
  -2,
@@ -684,23 +694,31 @@ function genExpression(node, context, assignment) {
684
694
  let hasMemberExpression = false;
685
695
  if (ids.length) {
686
696
  const [frag, push] = buildCodeFragment();
687
- ids.sort((a, b) => a.start - b.start).forEach((id, i) => {
688
- const start = id.start - 1;
689
- const end = id.end - 1;
690
- const last = ids[i - 1];
691
- const leadingText = content.slice(last ? last.end - 1 : 0, start);
692
- if (leadingText.length) push([leadingText, -3]);
693
- const source = content.slice(start, end);
697
+ let lastEnd = 0;
698
+ ids.sort((a, b) => a.start - b.start).forEach((id) => {
699
+ const idStart = id.start - 1;
700
+ const idEnd = id.end - 1;
701
+ const source = content.slice(idStart, idEnd);
694
702
  const parentStack = parentStackMap.get(id);
695
703
  const parent = parentStack[parentStack.length - 1];
704
+ let start = idStart;
705
+ let end = idEnd;
706
+ if (inline && options.bindingMetadata && options.bindingMetadata[source] === "setup-let" && parent && parent.type === "UpdateExpression" && parent.argument === id) {
707
+ start = parent.start - 1;
708
+ end = parent.end - 1;
709
+ }
710
+ if (start < lastEnd) return;
711
+ const leadingText = content.slice(lastEnd, start);
712
+ if (leadingText.length) push([leadingText, -3]);
696
713
  hasMemberExpression || (hasMemberExpression = parent && (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression"));
697
714
  push(...genIdentifier(source, context, {
698
715
  start: (0, _vue_compiler_dom.advancePositionWithClone)(node.loc.start, source, start),
699
716
  end: (0, _vue_compiler_dom.advancePositionWithClone)(node.loc.start, source, end),
700
717
  source
701
- }, hasMemberExpression ? void 0 : assignment, id, parent, parentStack));
702
- if (i === ids.length - 1 && end < content.length) push([content.slice(end), -3]);
718
+ }, hasMemberExpression ? void 0 : assignment, id, parent, parentStack, node));
719
+ lastEnd = end;
703
720
  });
721
+ if (lastEnd < content.length) push([content.slice(lastEnd), -3]);
704
722
  if (assignment && hasMemberExpression) push(` = ${assignment}`);
705
723
  return frag;
706
724
  } else return [[
@@ -709,7 +727,7 @@ function genExpression(node, context, assignment) {
709
727
  loc
710
728
  ]];
711
729
  }
712
- function genIdentifier(raw, context, loc, assignment, id, parent, parentStack) {
730
+ function genIdentifier(raw, context, loc, assignment, id, parent, parentStack, sourceNode) {
713
731
  const { options, helper, identifiers } = context;
714
732
  const { inline, bindingMetadata } = options;
715
733
  let name = raw;
@@ -729,19 +747,49 @@ function genIdentifier(raw, context, loc, assignment, id, parent, parentStack) {
729
747
  else return genExpression(replacement, context, assignment);
730
748
  }
731
749
  let prefix;
732
- if ((0, _vue_compiler_dom.isStaticProperty)(parent) && parent.shorthand) prefix = `${raw}: `;
733
750
  const type = bindingMetadata && bindingMetadata[raw];
751
+ const isDestructureAssignment = parent && (0, _vue_compiler_dom.isInDestructureAssignment)(parent, parentStack || []);
752
+ const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id;
753
+ const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id;
754
+ if ((0, _vue_compiler_dom.isStaticProperty)(parent) && parent.shorthand && !(inline && type === "setup-let" && isDestructureAssignment)) prefix = `${raw}: `;
734
755
  if (inline) switch (type) {
735
756
  case "setup-let":
736
- name = raw = assignment ? `_isRef(${raw}) ? (${raw}.value = ${assignment}) : (${raw} = ${assignment})` : unref();
757
+ if (isAssignmentLVal) {
758
+ const { right, operator } = parent;
759
+ const source = sourceNode;
760
+ const sourceContent = source.content;
761
+ const rightStart = right.start - 1;
762
+ const rightEnd = right.end - 1;
763
+ const rightContent = sourceContent.slice(rightStart, rightEnd);
764
+ const rightExp = (0, _vue_compiler_dom.createSimpleExpression)(rightContent, false, {
765
+ start: (0, _vue_compiler_dom.advancePositionWithClone)(source.loc.start, sourceContent, rightStart),
766
+ end: (0, _vue_compiler_dom.advancePositionWithClone)(source.loc.start, sourceContent, rightEnd),
767
+ source: rightContent
768
+ });
769
+ rightExp.ast = parseExp(context, rightContent);
770
+ return [
771
+ prefix,
772
+ `${helper("isRef")}(${raw}) ? ${raw}.value ${operator} `,
773
+ ...genExpression(rightExp, context),
774
+ ` : `,
775
+ [
776
+ raw,
777
+ -2,
778
+ loc,
779
+ name
780
+ ]
781
+ ];
782
+ } else if (isUpdateArg) {
783
+ const { prefix: isPrefix, operator } = parent;
784
+ const updatePrefix = isPrefix ? operator : ``;
785
+ const updatePostfix = isPrefix ? `` : operator;
786
+ raw = `${helper("isRef")}(${raw}) ? ${updatePrefix}${raw}.value${updatePostfix} : ${updatePrefix}${raw}${updatePostfix}`;
787
+ } else if (!isDestructureAssignment) name = raw = assignment ? `${helper("isRef")}(${raw}) ? (${raw}.value = ${assignment}) : (${raw} = ${assignment})` : unref();
737
788
  break;
738
789
  case "setup-ref":
739
790
  name = raw = withAssignment(`${raw}.value`);
740
791
  break;
741
792
  case "setup-maybe-ref":
742
- const isDestructureAssignment = parent && (0, _vue_compiler_dom.isInDestructureAssignment)(parent, parentStack || []);
743
- const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id;
744
- const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id;
745
793
  raw = isAssignmentLVal || isUpdateArg || isDestructureAssignment ? name = `${raw}.value` : assignment ? `${helper("isRef")}(${raw}) ? (${raw}.value = ${assignment}) : null` : unref();
746
794
  break;
747
795
  case "props":
@@ -1645,7 +1693,12 @@ function genPropKey({ key: node, modifier, runtimeCamelize, handler, handlerModi
1645
1693
  if (runtimeCamelize) {
1646
1694
  key.push(" || \"\"");
1647
1695
  key = genCall(helper("camelize"), key);
1648
- }
1696
+ } else if (modifier) key = [
1697
+ "(",
1698
+ ...key,
1699
+ " || \"\"",
1700
+ ")"
1701
+ ];
1649
1702
  if (handler) key = genCall(helper("toHandlerKey"), key);
1650
1703
  return [
1651
1704
  "[",
@@ -1737,6 +1790,11 @@ function genVShow(oper, context) {
1737
1790
  ])];
1738
1791
  }
1739
1792
  //#endregion
1793
+ //#region packages/compiler-vapor/src/generators/modifier.ts
1794
+ function genDirectiveModifiers(modifiers) {
1795
+ return modifiers.map((value) => `${(0, _vue_compiler_dom.isSimpleIdentifier)(value) ? value : JSON.stringify(value)}: true`).join(", ");
1796
+ }
1797
+ //#endregion
1740
1798
  //#region packages/compiler-vapor/src/generators/vModel.ts
1741
1799
  const helperMap = {
1742
1800
  text: "applyTextModel",
@@ -1751,7 +1809,7 @@ function genVModel(oper, context) {
1751
1809
  `() => (`,
1752
1810
  ...genExpression(exp, context),
1753
1811
  `)`
1754
- ], genModelHandler(exp, context), modifiers.length ? `{ ${modifiers.map((e) => e.content + ": true").join(",")} }` : void 0)];
1812
+ ], genModelHandler(exp, context), modifiers.length ? `{ ${genDirectiveModifiers(modifiers.map((e) => e.content))} }` : void 0)];
1755
1813
  }
1756
1814
  function genModelHandler(exp, context) {
1757
1815
  return [
@@ -1793,14 +1851,15 @@ function genCustomDirectives(opers, context) {
1793
1851
  return genMulti(DELIMITERS_ARRAY.concat("void 0"), directiveVar, value, argument, modifiers);
1794
1852
  }
1795
1853
  }
1796
- function genDirectiveModifiers(modifiers) {
1797
- return modifiers.map((value) => `${(0, _vue_compiler_dom.isSimpleIdentifier)(value) ? value : JSON.stringify(value)}: true`).join(", ");
1798
- }
1799
1854
  function filterCustomDirectives(id, operations) {
1800
1855
  return operations.filter((oper) => oper.type === 14 && oper.element === id && !oper.builtin);
1801
1856
  }
1802
1857
  //#endregion
1803
1858
  //#region packages/compiler-vapor/src/generators/component.ts
1859
+ function genStaticModifierPropKey(name) {
1860
+ const key = (0, _vue_shared.getModifierPropName)(name);
1861
+ return [(0, _vue_compiler_dom.isSimpleIdentifier)(key) ? key : JSON.stringify(key)];
1862
+ }
1804
1863
  function genCreateComponent(operation, context) {
1805
1864
  const { helper } = context;
1806
1865
  const singleUseAssetComponentNames = context.singleUseAssetComponentNames;
@@ -1942,7 +2001,7 @@ function genStaticProps(props, context, dynamicProps, directStaticLiteralProps =
1942
2001
  }
1943
2002
  const { key, modelModifiers } = prop;
1944
2003
  if (modelModifiers && modelModifiers.length) {
1945
- const modifiersKey = key.isStatic ? [(0, _vue_shared.getModifierPropName)(key.content)] : [
2004
+ const modifiersKey = key.isStatic ? genStaticModifierPropKey(key.content) : [
1946
2005
  "[",
1947
2006
  ...genExpression(key, context),
1948
2007
  " + \"Modifiers\"]"
@@ -1985,7 +2044,7 @@ function genDynamicProps(props, context, directStaticLiteralProps = false) {
1985
2044
  ]);
1986
2045
  const { modelModifiers } = p;
1987
2046
  if (modelModifiers && modelModifiers.length) {
1988
- const modifiersKey = p.key.isStatic ? [(0, _vue_shared.getModifierPropName)(p.key.content)] : [
2047
+ const modifiersKey = p.key.isStatic ? genStaticModifierPropKey(p.key.content) : [
1989
2048
  "[",
1990
2049
  ...genExpression(p.key, context),
1991
2050
  " + \"Modifiers\"]"
@@ -2110,7 +2169,7 @@ function genDynamicSlot(slot, context, withFunction = false) {
2110
2169
  }
2111
2170
  function genBasicDynamicSlot(slot, context) {
2112
2171
  const { name, fn } = slot;
2113
- return genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...genExpression(name, context)], ["fn: ", ...genSlotBlockWithProps(fn, context)]);
2172
+ return genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...genExpression(name, context)], ["fn: ", ...genSlotBlockWithProps(fn, context, false)]);
2114
2173
  }
2115
2174
  function genLoopSlot(slot, context) {
2116
2175
  const { name, fn, loop } = slot;
@@ -2122,7 +2181,7 @@ function genLoopSlot(slot, context) {
2122
2181
  if (rawValue) idMap[rawValue] = rawValue;
2123
2182
  if (rawKey) idMap[rawKey] = rawKey;
2124
2183
  if (rawIndex) idMap[rawIndex] = rawIndex;
2125
- const slotExpr = genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...context.withId(() => genExpression(name, context), idMap)], ["fn: ", ...context.withId(() => genSlotBlockWithProps(fn, context), idMap)]);
2184
+ const slotExpr = genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...context.withId(() => genExpression(name, context), idMap)], ["fn: ", ...context.withId(() => genSlotBlockWithProps(fn, context, false), idMap)]);
2126
2185
  return [...genCall(context.helper("createForSlots"), genExpression(source, context), [
2127
2186
  ...genMulti([
2128
2187
  "(",
@@ -2148,7 +2207,7 @@ function genConditionalSlot(slot, context) {
2148
2207
  INDENT_END
2149
2208
  ];
2150
2209
  }
2151
- function genSlotBlockWithProps(oper, context) {
2210
+ function genSlotBlockWithProps(oper, context, emitNonStableFlag = true) {
2152
2211
  let propsName;
2153
2212
  let exitScope;
2154
2213
  let depth;
@@ -2163,10 +2222,45 @@ function genSlotBlockWithProps(oper, context) {
2163
2222
  const exitSlotBlock = context.enterSlotBlock();
2164
2223
  markSlotRootOperations(oper);
2165
2224
  let blockFn = context.withId(() => genBlock(oper, context, propsName ? [propsName] : []), idMap);
2225
+ if (emitNonStableFlag && !hasStableSlotRoot(oper, context)) blockFn = genCall(context.helper("extend"), blockFn, `{ _: 8 }`);
2166
2226
  exitSlotBlock();
2167
2227
  exitScope && exitScope();
2168
2228
  return blockFn;
2169
2229
  }
2230
+ const commentOnlyTemplateRE = /^(?:<!--[\s\S]*?-->)+$/;
2231
+ function hasStableSlotRoot(block, context) {
2232
+ let hasValidRoot = false;
2233
+ for (let i = 0; i < block.returns.length; i++) {
2234
+ const id = block.returns[i];
2235
+ const child = findReturnedDynamic$1(block, id);
2236
+ const operation = child && child.operation;
2237
+ if (!operation) {
2238
+ if (child && isStableTemplateSlotRoot(child, context)) hasValidRoot = true;
2239
+ continue;
2240
+ }
2241
+ switch (operation.type) {
2242
+ case 12:
2243
+ if (!operation.dynamic || operation.dynamic.isStatic) {
2244
+ hasValidRoot = true;
2245
+ continue;
2246
+ }
2247
+ return false;
2248
+ case 17:
2249
+ if (hasStableSlotRoot(operation.block, context)) {
2250
+ hasValidRoot = true;
2251
+ continue;
2252
+ }
2253
+ return false;
2254
+ default: return false;
2255
+ }
2256
+ }
2257
+ return hasValidRoot;
2258
+ }
2259
+ function isStableTemplateSlotRoot(child, context) {
2260
+ if (child.template == null) return false;
2261
+ const content = context.ir.template.entries[child.template].content;
2262
+ return content !== "" && !commentOnlyTemplateRE.test(content.trim());
2263
+ }
2170
2264
  //#endregion
2171
2265
  //#region packages/compiler-vapor/src/generators/slotOutlet.ts
2172
2266
  function genSlotOutlet(oper, context) {
@@ -2503,7 +2597,7 @@ function genBlockContent(block, context, root, genEffectsExtraFrag) {
2503
2597
  else if (genEffectsExtraFrag) push(...genEffects([], context, genEffectsExtraFrag));
2504
2598
  push(NEWLINE, `return `);
2505
2599
  const returnNodes = returns.map((n) => `n${n}`);
2506
- push(...returnNodes.length > 1 ? genMulti(DELIMITERS_ARRAY, ...returnNodes) : [returnNodes[0] || "null"]);
2600
+ push(...returnNodes.length > 1 ? genMulti(DELIMITERS_ARRAY, ...returnNodes) : [returnNodes[0] || "[]"]);
2507
2601
  resetBlock();
2508
2602
  context.singleUseAssetComponentNames = prevSingleUseAssetComponentNames;
2509
2603
  return frag;
@@ -2842,11 +2936,36 @@ const transformVBind = (dir, node, context) => {
2842
2936
  };
2843
2937
  };
2844
2938
  //#endregion
2939
+ //#region packages/compiler-vapor/src/transforms/vHtml.ts
2940
+ function ignoreVHtmlChildren(node, context, clear) {
2941
+ if (!node.children.length) return;
2942
+ const dir = (0, _vue_compiler_dom.findDir)(node, "html");
2943
+ if (!dir) return;
2944
+ context.options.onError((0, _vue_compiler_dom.createDOMCompilerError)(55, dir.loc));
2945
+ if (clear === "node") node.children.length = 0;
2946
+ else context.childrenTemplate.length = 0;
2947
+ }
2948
+ const transformVHtml = (dir, node, context) => {
2949
+ let { exp, loc } = dir;
2950
+ if (!exp) {
2951
+ context.options.onError((0, _vue_compiler_dom.createDOMCompilerError)(54, loc));
2952
+ exp = EMPTY_EXPRESSION;
2953
+ }
2954
+ ignoreVHtmlChildren(node, context, "template");
2955
+ context.registerEffect([exp], {
2956
+ type: 8,
2957
+ element: context.reference(),
2958
+ value: exp,
2959
+ isComponent: node.tagType === 1
2960
+ });
2961
+ };
2962
+ //#endregion
2845
2963
  //#region packages/compiler-vapor/src/transforms/transformElement.ts
2846
2964
  const isReservedProp = /* @__PURE__ */ (0, _vue_shared.makeMap)(",key,ref,ref_for,ref_key,");
2847
2965
  const transformElement = (node, context) => {
2848
2966
  let effectIndex = context.block.effect.length;
2849
2967
  const getEffectIndex = () => effectIndex++;
2968
+ if (node.type === 1 && node.children.length) ignoreVHtmlChildren(node, context, "node");
2850
2969
  let parentSlots;
2851
2970
  if (node.type === 1 && (node.tagType === 1 || context.options.isCustomElement(node.tag))) {
2852
2971
  parentSlots = context.slots;
@@ -2977,7 +3096,6 @@ function transformNativeElement(node, propsResult, staticKey, singleRoot, contex
2977
3096
  let template = "";
2978
3097
  template += `<${tag}`;
2979
3098
  if (scopeId) template += ` ${scopeId}`;
2980
- const dynamicProps = [];
2981
3099
  if (propsResult[0]) {
2982
3100
  const [, dynamicArgs, expressions] = propsResult;
2983
3101
  context.registerEffect(expressions, {
@@ -2998,54 +3116,25 @@ function transformNativeElement(node, propsResult, staticKey, singleRoot, contex
2998
3116
  };
2999
3117
  for (const prop of propsResult[1]) {
3000
3118
  const { key, values } = prop;
3001
- if (context.imports.some((imported) => values[0].content.includes(imported.exp.content))) {
3119
+ const canStringifyAttrName = key.isStatic && !UNSAFE_ATTR_NAME_RE.test(key.content);
3120
+ let foldedValue;
3121
+ if (canStringifyAttrName && context.imports.some((imported) => values[0].content.includes(imported.exp.content))) {
3002
3122
  if (!prevWasQuoted) template += ` `;
3003
3123
  template += `${key.content}="${IMPORT_EXP_START}${values[0].content}${IMPORT_EXP_END}"`;
3004
3124
  prevWasQuoted = true;
3005
- } else if (key.isStatic && !prop.modifier && (0, _vue_shared.isBooleanAttr)(key.content)) if (values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
3125
+ } else if (canStringifyAttrName && values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
3006
3126
  const value = values[0].content === "''" ? "" : values[0].content;
3007
3127
  appendTemplateProp(key.content, value);
3008
- } else {
3009
- const include = foldBooleanAttrValue(values);
3010
- if (include != null) {
3011
- if (include) appendTemplateProp(key.content);
3012
- } else {
3013
- dynamicProps.push(key.content);
3014
- context.registerEffect(values, {
3015
- type: 3,
3016
- element: context.reference(),
3017
- prop,
3018
- tag
3019
- }, getEffectIndex);
3020
- }
3021
- }
3022
- else if (key.isStatic && !prop.modifier && hasBoundValue(values)) {
3023
- let foldedValue;
3024
- if (key.content === "class") foldedValue = foldClassValues(values);
3025
- else if (key.content === "style") foldedValue = foldStyleValues(values);
3026
- if (foldedValue != null) {
3027
- if (foldedValue) appendTemplateProp(key.content, foldedValue, true);
3028
- } else {
3029
- dynamicProps.push(key.content);
3030
- context.registerEffect(values, {
3031
- type: 3,
3032
- element: context.reference(),
3033
- prop,
3034
- tag
3035
- }, getEffectIndex);
3036
- }
3037
- } else if (key.isStatic && values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
3038
- const value = values[0].content === "''" ? "" : values[0].content;
3039
- appendTemplateProp(key.content, value);
3040
- } else {
3041
- dynamicProps.push(key.content);
3042
- context.registerEffect(values, {
3043
- type: 3,
3044
- element: context.reference(),
3045
- prop,
3046
- tag
3047
- }, getEffectIndex);
3048
- }
3128
+ } else if (canStringifyAttrName && !prop.modifier && (0, _vue_shared.isBooleanAttr)(key.content) && (foldedValue = foldBooleanAttrValue(values)) != null) {
3129
+ if (foldedValue) appendTemplateProp(key.content);
3130
+ } else if (canStringifyAttrName && !prop.modifier && hasBoundValue(values) && (foldedValue = key.content === "class" ? foldClassValues(values) : key.content === "style" ? foldStyleValues(values) : void 0) != null) {
3131
+ if (foldedValue) appendTemplateProp(key.content, foldedValue, true);
3132
+ } else context.registerEffect(values, {
3133
+ type: 3,
3134
+ element: context.reference(),
3135
+ prop,
3136
+ tag
3137
+ }, getEffectIndex);
3049
3138
  }
3050
3139
  }
3051
3140
  template += `>` + context.childrenTemplate.join("");
@@ -3558,25 +3647,6 @@ const transformVOnce = (node, context) => {
3558
3647
  if (node.type === 1 && (0, _vue_compiler_dom.findDir)(node, "once", true)) context.inVOnce = true;
3559
3648
  };
3560
3649
  //#endregion
3561
- //#region packages/compiler-vapor/src/transforms/vHtml.ts
3562
- const transformVHtml = (dir, node, context) => {
3563
- let { exp, loc } = dir;
3564
- if (!exp) {
3565
- context.options.onError((0, _vue_compiler_dom.createDOMCompilerError)(54, loc));
3566
- exp = EMPTY_EXPRESSION;
3567
- }
3568
- if (node.children.length) {
3569
- context.options.onError((0, _vue_compiler_dom.createDOMCompilerError)(55, loc));
3570
- context.childrenTemplate.length = 0;
3571
- }
3572
- context.registerEffect([exp], {
3573
- type: 8,
3574
- element: context.reference(),
3575
- value: exp,
3576
- isComponent: node.tagType === 1
3577
- });
3578
- };
3579
- //#endregion
3580
3650
  //#region packages/shared/src/makeMap.ts
3581
3651
  /**
3582
3652
  * Make a map and return a function for checking if a key
@@ -3794,12 +3864,10 @@ const transformVOn = (dir, node, context) => {
3794
3864
  const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = (0, _vue_compiler_dom.resolveModifiers)(arg.isStatic ? `on${arg.content}` : arg, modifiers, null, loc);
3795
3865
  let keyOverride;
3796
3866
  const isStaticClick = arg.isStatic && arg.content.toLowerCase() === "click";
3797
- if (nonKeyModifiers.includes("middle")) {
3798
- if (keyOverride) {}
3799
- if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "mouseup"];
3800
- }
3801
3867
  if (nonKeyModifiers.includes("right")) {
3802
3868
  if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "contextmenu"];
3869
+ } else if (nonKeyModifiers.includes("middle")) {
3870
+ if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "mouseup"];
3803
3871
  }
3804
3872
  arg = normalizeStaticEventArg(arg, nonKeyModifiers);
3805
3873
  if (keyModifiers.length && (0, _vue_compiler_dom.isStaticExp)(arg) && !(0, _vue_compiler_dom.isKeyboardEvent)(`on${arg.content.toLowerCase()}`)) keyModifiers.length = 0;
@@ -3813,7 +3881,7 @@ const transformVOn = (dir, node, context) => {
3813
3881
  options: eventOptionModifiers
3814
3882
  }
3815
3883
  };
3816
- const delegate = arg.isStatic && !eventOptionModifiers.length && !hasStopHandlerForStaticEvent(node, arg.content) && delegatedEvents(arg.content);
3884
+ const delegate = context.options.eventDelegation && arg.isStatic && !eventOptionModifiers.length && !hasStopHandlerForStaticEvent(node, arg.content) && delegatedEvents(arg.content);
3817
3885
  const operation = {
3818
3886
  type: 6,
3819
3887
  element: context.reference(),
@@ -3834,8 +3902,8 @@ function normalizeStaticEventArg(arg, nonKeyModifiers) {
3834
3902
  if (!arg.isStatic) return arg;
3835
3903
  let normalized = arg;
3836
3904
  const isStaticClick = arg.content.toLowerCase() === "click";
3837
- if (nonKeyModifiers.includes("middle") && isStaticClick) normalized = (0, _vue_shared.extend)({}, normalized, { content: "mouseup" });
3838
3905
  if (nonKeyModifiers.includes("right") && isStaticClick) normalized = (0, _vue_shared.extend)({}, normalized, { content: "contextmenu" });
3906
+ else if (nonKeyModifiers.includes("middle") && isStaticClick) normalized = (0, _vue_shared.extend)({}, normalized, { content: "mouseup" });
3839
3907
  return normalized;
3840
3908
  }
3841
3909
  function hasStopHandlerForStaticEvent(node, eventName) {
@@ -4035,11 +4103,14 @@ function processIf(node, dir, context) {
4035
4103
  }
4036
4104
  while (lastIfNode.negative && lastIfNode.negative.type === 15) lastIfNode = lastIfNode.negative;
4037
4105
  if (dir.name === "else-if" && lastIfNode.negative) context.options.onError((0, _vue_compiler_dom.createCompilerError)(30, node.loc));
4038
- if (context.root.comment.length) {
4039
- node = wrapTemplate(node, ["else-if", "else"]);
4040
- context.node = node = (0, _vue_shared.extend)({}, node, { children: [...context.comment, ...node.children] });
4106
+ const comments = context.comment;
4107
+ if (comments.length) {
4108
+ if (!isInTransition(context)) {
4109
+ node = wrapTemplate(node, ["else-if", "else"]);
4110
+ context.node = node = (0, _vue_shared.extend)({}, node, { children: [...comments, ...node.children] });
4111
+ }
4112
+ comments.length = 0;
4041
4113
  }
4042
- context.root.comment = [];
4043
4114
  const [branch, onExit] = createIfBranch(node, context);
4044
4115
  if (dir.name === "else") lastIfNode.negative = branch;
4045
4116
  else lastIfNode.negative = {
@@ -4217,7 +4288,7 @@ function createFallback(node, context) {
4217
4288
  //#region packages/compiler-vapor/src/transforms/vSlot.ts
4218
4289
  const transformVSlot = (node, context) => {
4219
4290
  if (node.type !== 1) return;
4220
- const dir = findDir$2(node, "slot", true);
4291
+ const dir = findDir$3(node, "slot", true);
4221
4292
  const { tagType, children } = node;
4222
4293
  const { parent } = context;
4223
4294
  const isComponent = tagType === 1;
@@ -4268,9 +4339,9 @@ function transformTemplateSlot(node, dir, context) {
4268
4339
  const resolvedArg = dir.arg && resolveExpression(dir.arg);
4269
4340
  let arg = resolvedArg;
4270
4341
  if (!arg) arg = (0, _vue_compiler_dom.createSimpleExpression)("default", true);
4271
- const vFor = findDir$2(node, "for");
4272
- const vIf = findDir$2(node, "if");
4273
- const vElse = findDir$2(node, /^else(-if)?$/, true);
4342
+ const vFor = findDir$3(node, "for");
4343
+ const vIf = findDir$3(node, "if");
4344
+ const vElse = findDir$3(node, /^else(-if)?$/, true);
4274
4345
  const { slots } = context;
4275
4346
  const [block, onExit] = createSlotBlock(node, dir, context);
4276
4347
  if (!vFor && !vIf && !vElse) {
@@ -4288,7 +4359,7 @@ function transformTemplateSlot(node, dir, context) {
4288
4359
  });
4289
4360
  else if (vElse) {
4290
4361
  const vIfSlot = slots[slots.length - 1];
4291
- if (vIfSlot.slotType === 3) {
4362
+ if (vIfSlot && vIfSlot.slotType === 3) {
4292
4363
  let ifNode = vIfSlot;
4293
4364
  while (ifNode.negative && ifNode.negative.slotType === 3) ifNode = ifNode.negative;
4294
4365
  const negative = vElse.exp ? {
@@ -4351,7 +4422,7 @@ function isNonWhitespaceContent(node) {
4351
4422
  return !!node.content.trim();
4352
4423
  }
4353
4424
  function isSlotTemplateChild(node) {
4354
- return node.type === 1 && (0, _vue_compiler_dom.isTemplateNode)(node) && !!findDir$2(node, "slot", true);
4425
+ return node.type === 1 && (0, _vue_compiler_dom.isTemplateNode)(node) && !!findDir$3(node, "slot", true);
4355
4426
  }
4356
4427
  //#endregion
4357
4428
  //#region packages/compiler-vapor/src/transforms/transformTransition.ts
@@ -4364,17 +4435,17 @@ function hasMultipleChildren(node) {
4364
4435
  const children = node.children = node.children.filter((c) => c.type !== 3 && !(c.type === 2 && !c.content.trim()));
4365
4436
  const first = children[0];
4366
4437
  if (children.length === 1 && first.type === 1) {
4367
- if (findDir$2(first, "for")) return true;
4438
+ if (findDir$3(first, "for")) return true;
4368
4439
  if ((0, _vue_compiler_dom.isTemplateNode)(first)) return hasMultipleChildren(first);
4369
4440
  }
4370
- const hasElse = (node) => findDir$2(node, "else-if") || findDir$2(node, "else", true);
4371
- if (children.length > 0 && children.every((c, index) => c.type === 1 && (!(0, _vue_compiler_dom.isTemplateNode)(c) || !hasMultipleChildren(c)) && !findDir$2(c, "for") && (index === 0 ? findDir$2(c, "if") : hasElse(c)))) return false;
4441
+ const hasElse = (node) => findDir$3(node, "else-if") || findDir$3(node, "else", true);
4442
+ if (children.length > 0 && children.every((c, index) => c.type === 1 && (!(0, _vue_compiler_dom.isTemplateNode)(c) || !hasMultipleChildren(c)) && !findDir$3(c, "for") && (index === 0 ? findDir$3(c, "if") : hasElse(c)))) return false;
4372
4443
  return children.length !== 1;
4373
4444
  }
4374
4445
  //#endregion
4375
4446
  //#region packages/compiler-vapor/src/transforms/transformKey.ts
4376
4447
  const transformKey = (node, context) => {
4377
- if (node.type !== 1 || context.inVOnce || findDir$2(node, "for")) return;
4448
+ if (node.type !== 1 || context.inVOnce || findDir$3(node, "for")) return;
4378
4449
  const dir = findProp$1(node, "key", true, true);
4379
4450
  if (!dir || dir.type === 6) return;
4380
4451
  let value;
@@ -1,5 +1,5 @@
1
1
  import { AllNode, BaseCodegenResult, CodegenOptions as CodegenOptions$1, CodegenSourceMapGenerator, CommentNode, CompilerCompatOptions, CompilerError, CompilerOptions as CompilerOptions$1, CompoundExpressionNode, DirectiveNode, ElementNode, RootNode, SimpleExpressionNode, SourceLocation, TemplateChildNode, TemplateNode, TransformOptions, parse } from "@vue/compiler-dom";
2
- import { IfAny, IsKeyValues, LooseRequired, Namespace, NormalizedStyle, OverloadParameters, PatchFlags, Prettify, SlotFlags, UnionToIntersection, camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from "@vue/shared";
2
+ import { IfAny, IsKeyValues, LooseRequired, Namespace, NormalizedStyle, OverloadParameters, PatchFlags, Prettify, SlotFlags, UnionToIntersection, VaporSlotFlags, camelize, capitalize, extend, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from "@vue/shared";
3
3
  //#endregion
4
4
  //#region packages/reactivity/src/constants.d.ts
5
5
  declare enum TrackOpTypes {
@@ -1410,6 +1410,7 @@ declare let isHydrating: boolean;
1410
1410
  type RootHydrateFunction = (vnode: VNode<Node, Element>, container: (Element | ShadowRoot) & {
1411
1411
  _vnode?: VNode;
1412
1412
  }) => void;
1413
+ declare const logMismatchError: () => void;
1413
1414
  declare function createHydrationFunctions(rendererInternals: RendererInternals<Node, Element>): [RootHydrateFunction, (node: Node, vnode: VNode, parentComponent: ComponentInternalInstance | null, parentSuspense: SuspenseBoundary | null, slotScopeIds: string[] | null, optimized?: boolean) => Node | null];
1414
1415
  declare const isTemplateNode: (node: Node) => node is HTMLTemplateElement;
1415
1416
  declare function getAttributeMismatch(el: Element, key: string, clientValue: any): {
@@ -3072,7 +3073,7 @@ type AsyncComponentContext<T, C = ConcreteComponent> = {
3072
3073
  setPendingRequest: (request: Promise<C> | null) => void;
3073
3074
  };
3074
3075
  declare function createAsyncComponentContext<T, C = ConcreteComponent>(source: AsyncComponentLoader<T> | AsyncComponentOptions<T>): AsyncComponentContext<T, C>;
3075
- declare const useAsyncComponentState: (delay: number | undefined, timeout: number | undefined, onError: (err: Error) => void) => {
3076
+ declare const useAsyncComponentState: (delay: number | undefined, timeout: number | undefined, onError: (err: Error) => void, instance?: GenericComponentInstance | null) => {
3076
3077
  loaded: Ref<boolean>;
3077
3078
  error: Ref<Error | undefined>;
3078
3079
  delayed: Ref<boolean>;
@@ -25232,10 +25233,13 @@ declare function setVarsOnNode(el: Node, vars: Record<string, string>): void;
25232
25233
  type Style = string | null | undefined | Record<string, unknown>;
25233
25234
  declare function patchStyle(el: Element, prev: Style, next: Style): void;
25234
25235
  //#endregion
25236
+ //#region packages/runtime-dom/src/modules/events.d.ts
25237
+ declare function parseEventName(name: string): [string, EventListenerOptions | undefined];
25238
+ //#endregion
25235
25239
  //#region packages/runtime-dom/src/modules/attrs.d.ts
25236
25240
  declare const xlinkNS = "http://www.w3.org/1999/xlink";
25237
25241
  declare namespace index_d_exports$1 {
25238
- export { AllowedAttrs, AllowedComponentProps, AnchorHTMLAttributes, App, AppConfig, AppContext, AppMountFn, AppUnmountFn, AreaHTMLAttributes, AriaAttributes, AsyncComponentInternalOptions, AsyncComponentLoader, AsyncComponentOptions, Attrs, AudioHTMLAttributes, BaseHTMLAttributes, BaseTransition, BaseTransitionProps, BaseTransitionPropsValidators, BlockquoteHTMLAttributes, ButtonHTMLAttributes, CSSProperties, CanvasHTMLAttributes, ClassValue, ColHTMLAttributes, ColgroupHTMLAttributes, Comment$2 as Comment, CompatVue, Component, ComponentCustomElementInterface, ComponentCustomOptions, ComponentCustomProperties, ComponentCustomProps, ComponentInjectOptions, ComponentInstance, ComponentInternalInstance, ComponentInternalOptions, ComponentObjectPropsOptions, ComponentOptions, ComponentOptionsBase, ComponentOptionsMixin, ComponentOptionsWithArrayProps, ComponentOptionsWithObjectProps, ComponentOptionsWithoutProps, ComponentPropsOptions, ComponentProvideOptions, ComponentPublicInstance, ComponentTypeEmits, ComputedGetter, ComputedOptions, ComputedRef, ComputedSetter, ConcreteComponent, CreateAppFunction, CreateComponentPublicInstance, CreateComponentPublicInstanceWithMixins, CustomElementOptions, CustomRefFactory, DataHTMLAttributes, DebuggerEvent, DebuggerEventExtraInfo, DebuggerOptions, DeepReadonly, DefineComponent, DefineProps, DefineSetupFnComponent, DelHTMLAttributes, DeprecationTypes, DetailsHTMLAttributes, DialogHTMLAttributes, Directive$1 as Directive, DirectiveArguments$1 as DirectiveArguments, DirectiveBinding, DirectiveHook, DirectiveModifiers, EffectScheduler, EffectScope, ElementNamespace, ElementWithTransition, EmbedHTMLAttributes, EmitFn, EmitsOptions, EmitsToProps, ErrorCodes, ErrorTypeStrings, Events, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, FieldsetHTMLAttributes, FormHTMLAttributes, Fragment, FunctionDirective, FunctionPlugin, FunctionalComponent, GenericAppContext, GenericComponent, GenericComponentInstance, GlobalComponents, GlobalDirectives, HMRRuntime, HTMLAttributes, HtmlHTMLAttributes, HydrationRenderer, HydrationStrategy, HydrationStrategyFactory, IframeHTMLAttributes, ImgHTMLAttributes, InjectionKey, InputAutoCompleteAttribute, InputHTMLAttributes, InputTypeHTMLAttribute, InsHTMLAttributes, IntrinsicElementAttributes, KeepAlive, KeepAliveContext, KeepAliveProps, KeygenHTMLAttributes, LabelHTMLAttributes, LegacyConfig, LiHTMLAttributes, LifecycleHook, LinkHTMLAttributes, MapHTMLAttributes, MaybeRef, MaybeRefOrGetter, MediaHTMLAttributes, MenuHTMLAttributes, MetaHTMLAttributes, MeterHTMLAttributes, MethodOptions, MismatchTypes, ModelRef, MoveType, MultiWatchSources, NULL_DYNAMIC_COMPONENT, NativeElements, NormalizedPropsOptions, ObjectDirective, ObjectEmitsOptions, ObjectHTMLAttributes, ObjectPlugin, OlHTMLAttributes, OptgroupHTMLAttributes, OptionHTMLAttributes, OptionMergeFunction, OutputHTMLAttributes, ParamHTMLAttributes, Plugin, ProgressHTMLAttributes, Prop, PropType, PublicProps, QuoteHTMLAttributes, Raw, Reactive, ReactiveEffect, ReactiveEffectOptions, ReactiveEffectRunner, ReactiveFlags$1 as ReactiveFlags, Ref, RenderFunction, Renderer, RendererElement, RendererInternals, RendererNode, RendererOptions, ReservedProps, RootHydrateFunction, RootRenderFunction, RuntimeCompilerOptions, SVGAttributes, SchedulerJob, SchedulerJobFlags, ScriptHTMLAttributes, SelectHTMLAttributes, SetupContext, ShallowReactive, ShallowRef, ShallowUnwrapRef, ShortEmitsToObject, Slot, Slots, SlotsType, SourceHTMLAttributes, Static, StyleHTMLAttributes, StyleValue, Suspense, SuspenseBoundary, SuspenseProps, TableHTMLAttributes, TdHTMLAttributes, Teleport, TeleportProps, TeleportTargetElement, TemplateRef, Text$1 as Text, TextareaHTMLAttributes, ThHTMLAttributes, TimeHTMLAttributes, ToRef, ToRefs, TrackHTMLAttributes, TrackOpTypes, Transition, TransitionElement, TransitionGroup, TransitionGroupProps, TransitionHooks, TransitionHooksContext, TransitionProps, TransitionPropsValidators, TransitionState, TriggerOpTypes, TypeEmitsToOptions, UnwrapNestedRefs, UnwrapRef, VNode, VNodeArrayChildren, VNodeChild, VNodeNormalizedChildren, VNodeNormalizedRef, VNodeProps, VNodeRef, VNodeTypes, VShowElement, VaporInteropInterface, VaporSlot$1 as VaporSlot, VideoHTMLAttributes, VueElement, VueElementBase, VueElementConstructor, WatchCallback, WatchEffect, WatchHandle, WatchOptions, WatchEffectOptions as WatchOptionsBase, WatchSource, WatchStopHandle, WebViewHTMLAttributes, WritableComputedOptions, WritableComputedRef, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, baseUseCssVars, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref$1 as ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext$1 as withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };
25242
+ export { AllowedAttrs, AllowedComponentProps, AnchorHTMLAttributes, App, AppConfig, AppContext, AppMountFn, AppUnmountFn, AreaHTMLAttributes, AriaAttributes, AsyncComponentInternalOptions, AsyncComponentLoader, AsyncComponentOptions, Attrs, AudioHTMLAttributes, BaseHTMLAttributes, BaseTransition, BaseTransitionProps, BaseTransitionPropsValidators, BlockquoteHTMLAttributes, ButtonHTMLAttributes, CSSProperties, CanvasHTMLAttributes, ClassValue, ColHTMLAttributes, ColgroupHTMLAttributes, Comment$2 as Comment, CompatVue, Component, ComponentCustomElementInterface, ComponentCustomOptions, ComponentCustomProperties, ComponentCustomProps, ComponentInjectOptions, ComponentInstance, ComponentInternalInstance, ComponentInternalOptions, ComponentObjectPropsOptions, ComponentOptions, ComponentOptionsBase, ComponentOptionsMixin, ComponentOptionsWithArrayProps, ComponentOptionsWithObjectProps, ComponentOptionsWithoutProps, ComponentPropsOptions, ComponentProvideOptions, ComponentPublicInstance, ComponentTypeEmits, ComputedGetter, ComputedOptions, ComputedRef, ComputedSetter, ConcreteComponent, CreateAppFunction, CreateComponentPublicInstance, CreateComponentPublicInstanceWithMixins, CustomElementOptions, CustomRefFactory, DataHTMLAttributes, DebuggerEvent, DebuggerEventExtraInfo, DebuggerOptions, DeepReadonly, DefineComponent, DefineProps, DefineSetupFnComponent, DelHTMLAttributes, DeprecationTypes, DetailsHTMLAttributes, DialogHTMLAttributes, Directive$1 as Directive, DirectiveArguments$1 as DirectiveArguments, DirectiveBinding, DirectiveHook, DirectiveModifiers, EffectScheduler, EffectScope, ElementNamespace, ElementWithTransition, EmbedHTMLAttributes, EmitFn, EmitsOptions, EmitsToProps, ErrorCodes, ErrorTypeStrings, Events, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, FieldsetHTMLAttributes, FormHTMLAttributes, Fragment, FunctionDirective, FunctionPlugin, FunctionalComponent, GenericAppContext, GenericComponent, GenericComponentInstance, GlobalComponents, GlobalDirectives, HMRRuntime, HTMLAttributes, HtmlHTMLAttributes, HydrationRenderer, HydrationStrategy, HydrationStrategyFactory, IframeHTMLAttributes, ImgHTMLAttributes, InjectionKey, InputAutoCompleteAttribute, InputHTMLAttributes, InputTypeHTMLAttribute, InsHTMLAttributes, IntrinsicElementAttributes, KeepAlive, KeepAliveContext, KeepAliveProps, KeygenHTMLAttributes, LabelHTMLAttributes, LegacyConfig, LiHTMLAttributes, LifecycleHook, LinkHTMLAttributes, MapHTMLAttributes, MaybeRef, MaybeRefOrGetter, MediaHTMLAttributes, MenuHTMLAttributes, MetaHTMLAttributes, MeterHTMLAttributes, MethodOptions, MismatchTypes, ModelRef, MoveType, MultiWatchSources, NULL_DYNAMIC_COMPONENT, NativeElements, NormalizedPropsOptions, ObjectDirective, ObjectEmitsOptions, ObjectHTMLAttributes, ObjectPlugin, OlHTMLAttributes, OptgroupHTMLAttributes, OptionHTMLAttributes, OptionMergeFunction, OutputHTMLAttributes, ParamHTMLAttributes, Plugin, ProgressHTMLAttributes, Prop, PropType, PublicProps, QuoteHTMLAttributes, Raw, Reactive, ReactiveEffect, ReactiveEffectOptions, ReactiveEffectRunner, ReactiveFlags$1 as ReactiveFlags, Ref, RenderFunction, Renderer, RendererElement, RendererInternals, RendererNode, RendererOptions, ReservedProps, RootHydrateFunction, RootRenderFunction, RuntimeCompilerOptions, SVGAttributes, SchedulerJob, SchedulerJobFlags, ScriptHTMLAttributes, SelectHTMLAttributes, SetupContext, ShallowReactive, ShallowRef, ShallowUnwrapRef, ShortEmitsToObject, Slot, Slots, SlotsType, SourceHTMLAttributes, Static, StyleHTMLAttributes, StyleValue, Suspense, SuspenseBoundary, SuspenseProps, TableHTMLAttributes, TdHTMLAttributes, Teleport, TeleportProps, TeleportTargetElement, TemplateRef, Text$1 as Text, TextareaHTMLAttributes, ThHTMLAttributes, TimeHTMLAttributes, ToRef, ToRefs, TrackHTMLAttributes, TrackOpTypes, Transition, TransitionElement, TransitionGroup, TransitionGroupProps, TransitionHooks, TransitionHooksContext, TransitionProps, TransitionPropsValidators, TransitionState, TriggerOpTypes, TypeEmitsToOptions, UnwrapNestedRefs, UnwrapRef, VNode, VNodeArrayChildren, VNodeChild, VNodeNormalizedChildren, VNodeNormalizedRef, VNodeProps, VNodeRef, VNodeTypes, VShowElement, VaporInteropInterface, VaporSlot$1 as VaporSlot, VideoHTMLAttributes, VueElement, VueElementBase, VueElementConstructor, WatchCallback, WatchEffect, WatchHandle, WatchOptions, WatchEffectOptions as WatchOptionsBase, WatchSource, WatchStopHandle, WebViewHTMLAttributes, WritableComputedOptions, WritableComputedRef, activate, assertNumber, baseApplyTranslation, baseEmit, baseNormalizePropsOptions, baseResolveTransitionHooks, baseUseCssVars, callPendingCbs, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, checkTransitionMode, cloneVNode, compatUtils, computed, createApp, createAppAPI, createAsyncComponentContext, createBlock, createCanSetSetupRefChecker, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createInternalObject, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, currentInstance, customRef, deactivate, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, devtoolsComponentAdded, effect, effectScope, endMeasure, ensureHydrationRenderer, ensureRenderer, ensureValidVNode, ensureVaporSlotFallback, expose, flushOnAppMount, forceReflow, getAttributeMismatch, getComponentName, getCurrentInstance, getCurrentScope, getCurrentWatcher, getFunctionalFallthrough, getInheritedScopeIds, getTransitionRawChildren, guardReactiveProps, h, handleError, handleMovedChildren, hasCSSTransform, hasInjectionContext, hydrate, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, initDirectivesForSSR, initFeatureFlags, inject, invalidateMount, invokeDirectiveHook, isAsyncWrapper, isEmitListener, isHydrating, isKeepAlive, isMapEqual, isMemoSame, isMismatchAllowed, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isSetEqual, isShallow, isTeleportDeferred, isTeleportDisabled, isTemplateNode, isTemplateRefKey, isVNode, isValidHtmlOrSvgAttribute, knownTemplateRefs, leaveCbKey, logMismatchError, markAsyncBoundary, markRaw, matches, mergeDefaults, mergeModels, mergeProps, nextTick, nextUid, nodeOps, normalizeClass, normalizeContainer, normalizeProps, normalizeRef, normalizeStyle, normalizeVNode, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, onWatcherCleanup, openBlock, parseEventName, patchProp, patchStyle, performAsyncHydrate, performTransitionEnter, performTransitionLeave, popScopeId, popWarningContext, provide, proxyRefs, pushScopeId, pushWarningContext, queueJob, queuePostFlushCb, reactive, readonly, ref$1 as ref, registerHMR, registerRuntimeCompiler, render, renderList, renderSlot, resetShapeFlag, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolvePropValue, resolveTarget as resolveTeleportTarget, resolveTransitionHooks, resolveTransitionProps, setBlockTracking, setCurrentInstance, setCurrentRenderingInstance, setDevtoolsHook, setIsHydratingEnabled, setRef, setTransitionHooks, setVarsOnNode, shallowReactive, shallowReadonly, shallowRef, shouldSetAsProp, shouldSetAsPropForVueCE, shouldUpdateComponent, simpleSetCurrentInstance, ssrContextKey, ssrUtils, startMeasure, stop, svgNS, toClassSet, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toStyleMap, toValue, transformVNodeArgs, triggerRef, unref, unregisterHMR, unsafeToTrustedHTML, useAsyncComponentState, useAttrs, useCssModule, useCssVars, useHost, useId, useInstanceOption, useModel, useSSRContext, useShadowRoot, useSlots, useTemplateRef, useTransitionState, vModelCheckbox, vModelCheckboxInit, vModelCheckboxUpdate, vModelDynamic, getValue as vModelGetValue, vModelRadio, vModelSelect, vModelSelectInit, vModelSetSelected, vModelText, vModelTextInit, vModelTextUpdate, vShow, vShowHidden, vShowOriginalDisplay, validateComponentName, validateProps, version, warn, warnExtraneousAttributes, warnPropMismatch, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext$1 as withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId, xlinkNS };
25239
25243
  }
25240
25244
  /**
25241
25245
  * This is a stub implementation to prevent the need to use dom types.
@@ -25291,22 +25295,36 @@ declare function createTemplateRefSetter(): setRefFn;
25291
25295
  declare function setStaticTemplateRef(el: RefEl, ref: NodeRef, refFor?: boolean, refKey?: string): NodeRef | undefined;
25292
25296
  declare function setTemplateRefBinding(el: RefEl, getter: () => any, setter?: setRefFn, refFor?: boolean, refKey?: string): void;
25293
25297
  //#endregion
25298
+ //#region packages/runtime-vapor/src/slotBoundary.d.ts
25299
+ interface SlotBoundaryContext {
25300
+ parent: SlotBoundaryContext | null;
25301
+ getFallback: () => BlockFn | undefined;
25302
+ run<R>(fn: () => R, scope?: EffectScope): R;
25303
+ markDirty: () => void;
25304
+ redirected?: SlotBoundaryContext;
25305
+ }
25306
+ //#endregion
25294
25307
  //#region packages/runtime-vapor/src/keepAlive.d.ts
25295
25308
  interface VaporKeepAliveContext {
25309
+ acquireBranchScope(key: any): EffectScope | undefined;
25310
+ runBranchRender(frag: DynamicFragment, fn: () => void): void;
25296
25311
  processShapeFlag(block: Block$1): any | false;
25297
25312
  cacheBlock(block?: Block$1): void;
25298
25313
  cacheScope(cacheKey: any, scopeLookupKey: any, scope: EffectScope): void;
25299
- getScope(key: any): EffectScope | undefined;
25300
25314
  }
25301
25315
  //#endregion
25302
25316
  //#region packages/runtime-vapor/src/fragment.d.ts
25303
25317
  declare class VaporFragment<T extends Block$1 = Block$1> implements TransitionOptions {
25318
+ /**
25319
+ * @internal marker for duck typing to avoid direct instanceof check
25320
+ * which prevents tree-shaking of VaporFragment
25321
+ */
25322
+ readonly __vf = true;
25304
25323
  $key?: any;
25305
25324
  $transition?: VaporTransitionHooks | undefined;
25306
25325
  nodes: T;
25307
25326
  vnode?: VNode | null;
25308
25327
  anchor?: Node;
25309
- parentComponent?: GenericComponentInstance | null;
25310
25328
  validityPending?: boolean;
25311
25329
  isBlockValid?: () => boolean;
25312
25330
  insert?: (parent: ParentNode, anchor: Node | null, transitionHooks?: TransitionHooks) => void;
@@ -25317,6 +25335,9 @@ declare class VaporFragment<T extends Block$1 = Block$1> implements TransitionOp
25317
25335
  onBeforeRemove?: ((scope: EffectScope) => boolean)[];
25318
25336
  onBeforeUpdate?: (() => void)[];
25319
25337
  onUpdated?: ((nodes?: Block$1) => void)[];
25338
+ constructor(nodes: T);
25339
+ }
25340
+ declare class RenderContextFragment<T extends Block$1 = Block$1> extends VaporFragment<T> {
25320
25341
  readonly renderInstance: GenericComponentInstance | null;
25321
25342
  readonly slotOwner: VaporComponentInstance | null;
25322
25343
  readonly keepAliveCtx?: VaporKeepAliveContext | null;
@@ -25329,7 +25350,12 @@ declare class ForFragment extends VaporFragment<Block$1[]> {
25329
25350
  constructor(nodes: Block$1[], trackSlotBoundary: boolean);
25330
25351
  onReset(fn: () => void): void;
25331
25352
  }
25332
- declare class DynamicFragment extends VaporFragment {
25353
+ declare class DynamicFragment extends RenderContextFragment {
25354
+ /**
25355
+ * @internal marker for duck typing to avoid direct instanceof check
25356
+ * which prevents tree-shaking of DynamicFragment
25357
+ */
25358
+ readonly __df = true;
25333
25359
  anchor: Node;
25334
25360
  scope: EffectScope | undefined;
25335
25361
  current?: BlockFn;
@@ -25341,21 +25367,16 @@ declare class DynamicFragment extends VaporFragment {
25341
25367
  anchorLabel?: string;
25342
25368
  keyed?: boolean;
25343
25369
  isSlot?: boolean;
25370
+ forwarded?: boolean;
25344
25371
  inTransition?: boolean;
25345
25372
  hasFallthroughAttrs?: true;
25346
- constructor(anchorLabel?: string, keyed?: boolean, locate?: boolean, trackSlotBoundary?: boolean);
25347
- update(render?: BlockFn, key?: any, noScope?: boolean, shouldInsert?: boolean): void;
25373
+ readonly autoHydrate: boolean;
25374
+ constructor(anchorLabel?: string, keyed?: boolean, locate?: boolean, trackSlotBoundary?: boolean, autoHydrate?: boolean);
25375
+ update(render?: BlockFn, key?: any, noScope?: boolean): void;
25376
+ protected getBranchParent(): ParentNode | null;
25348
25377
  renderBranch(render: BlockFn | undefined, transition: VaporTransitionHooks | undefined, parent: ParentNode | null, key: any, noScope?: boolean, notifyUpdated?: boolean): void;
25349
- hydrate(isEmpty?: boolean): void;
25350
25378
  }
25351
- interface SlotBoundaryContext {
25352
- parent: SlotBoundaryContext | null;
25353
- getFallback: () => BlockFn | undefined;
25354
- run<R>(fn: () => R, scope?: EffectScope): R;
25355
- markDirty: () => void;
25356
- redirected?: SlotBoundaryContext;
25357
- }
25358
- declare function isFragment(val: NonNullable<unknown>): val is VaporFragment;
25379
+ declare function isFragment(val: unknown): val is VaporFragment;
25359
25380
  //#endregion
25360
25381
  //#region packages/runtime-vapor/src/block.d.ts
25361
25382
  interface VaporTransitionHooks extends TransitionHooks {
@@ -25408,7 +25429,9 @@ type LooseRawSlots = VaporSlot | (Record<string, VaporSlot | DynamicSlotSource[]
25408
25429
  $?: DynamicSlotSource[];
25409
25430
  });
25410
25431
  type StaticSlots = Record<string, VaporSlot>;
25411
- type VaporSlot = BlockFn;
25432
+ type VaporSlot = BlockFn & {
25433
+ _?: VaporSlotFlags.NON_STABLE;
25434
+ };
25412
25435
  type DynamicSlot = {
25413
25436
  name: string;
25414
25437
  fn: VaporSlot;
@@ -25832,7 +25855,7 @@ declare const VaporTransition: FunctionalVaporComponent<TransitionProps>;
25832
25855
  //#region packages/runtime-vapor/src/components/TransitionGroup.d.ts
25833
25856
  declare const VaporTransitionGroup: DefineVaporComponent<{}, string, TransitionGroupProps>;
25834
25857
  declare namespace index_d_exports {
25835
- export { Block$1 as Block, DefineVaporComponent, DynamicFragment, FunctionalVaporComponent, VaporComponent, VaporComponentInstance, VaporComponentOptions, VaporDirective, VaporElement, VaporElementConstructor, VaporFragment, VaporKeepAlive, VaporKeepAliveContext, VaporPublicProps, VaporRenderResult, VaporSlot, VaporTeleport, VaporTransition, VaporTransitionGroup, VaporTransitionHooks, applyCheckboxModel, applyDynamicModel, applyRadioModel, applySelectModel, applyTextModel, applyVShow, child, createAssetComponent, createComponent, createComponentWithFallback, createDynamicComponent, createFor, createForSlots, createIf, createInvoker, createKeyedFragment, createPlainElement, createSelector, createSlot, createTemplateRefSetter, createTextNode, createVaporApp, createVaporSSRApp, defineVaporAsyncComponent, defineVaporComponent, defineVaporCustomElement, defineVaporSSRCustomElement, delegate, delegateEvents, getDefaultValue, getRestElement, insert$1 as insert, isFragment, isVaporComponent, next, nthChild, on, onBinding, prepend, remove, renderEffect, setAttr, setBlockHtml, setBlockKey, setBlockText, setClass, setClassName, setDOMProp, setDynamicEvents, setDynamicProps, setElementText, setHtml, setInsertionState, setProp, setStaticTemplateRef, setStyle, setTemplateRefBinding, setText, setValue, template, txt, useVaporCssVars, vaporInteropPlugin, withAsyncContext, withVaporDirectives, withVaporKeys, withVaporModifiers };
25858
+ export { Block$1 as Block, DefineVaporComponent, DynamicFragment, FunctionalVaporComponent, VaporComponent, VaporComponentInstance, VaporComponentOptions, VaporDirective, VaporElement, VaporElementConstructor, VaporFragment, VaporKeepAlive, VaporKeepAliveContext, VaporPublicProps, VaporRenderResult, VaporSlot, VaporTeleport, VaporTransition, VaporTransitionGroup, VaporTransitionHooks, applyCheckboxModel, applyDynamicModel, applyRadioModel, applySelectModel, applyTextModel, applyVShow, child, createAssetComponent, createComponent, createComponentWithFallback, createDynamicComponent, createFor, createForSlots, createIf, createInvoker, createKeyedFragment, createPlainElement, createSelector, createSlot, createTemplateRefSetter, createTextNode, createVaporApp, createVaporSSRApp, defineVaporAsyncComponent, defineVaporComponent, defineVaporCustomElement, defineVaporSSRCustomElement, delegate, delegateEvents, extend, getDefaultValue, getRestElement, insert$1 as insert, isFragment, isVaporComponent, next, nthChild, on, onBinding, prepend, remove, renderEffect, setAttr, setBlockHtml, setBlockKey, setBlockText, setClass, setClassName, setDOMProp, setDynamicEvents, setDynamicProps, setElementText, setHtml, setInsertionState, setProp, setStaticTemplateRef, setStyle, setTemplateRefBinding, setText, setValue, template, txt, useVaporCssVars, vaporInteropPlugin, withAsyncContext, withVaporDirectives, withVaporKeys, withVaporModifiers };
25836
25859
  }
25837
25860
  //#endregion
25838
25861
  //#region temp/packages/compiler-vapor/src/ir/component.d.ts
@@ -26166,7 +26189,7 @@ interface ImportItem {
26166
26189
  //#region packages/compiler-core/src/transforms/transformElement.d.ts
26167
26190
  type PropsExpression = ObjectExpression | CallExpression | ExpressionNode;
26168
26191
  //#endregion
26169
- //#region node_modules/.pnpm/@babel+types@7.29.0/node_modules/@babel/types/lib/index-legacy.d.ts
26192
+ //#region node_modules/.pnpm/@babel+types@7.29.7/node_modules/@babel/types/lib/index-legacy.d.ts
26170
26193
  // NOTE: This file is autogenerated. Do not modify.
26171
26194
  // See packages/babel-types/scripts/generators/typescript-legacy.ts for script used.
26172
26195
  interface BaseComment {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compiler-vapor v3.6.0-beta.14
2
+ * @vue/compiler-vapor v3.6.0-beta.16
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -16248,7 +16248,7 @@ const tokenizer = new Tokenizer(stack, {
16248
16248
  }
16249
16249
  },
16250
16250
  oncdata(start, end) {
16251
- if (stack[0].ns !== 0) onText(getSlice(start, end), start, end);
16251
+ if ((stack[0] ? stack[0].ns : currentOptions.ns) !== 0) onText(getSlice(start, end), start, end);
16252
16252
  else emitError(1, start - 9);
16253
16253
  },
16254
16254
  onprocessinginstruction(start) {
@@ -19134,6 +19134,13 @@ function getLiteralExpressionValue(exp, excludeNumber) {
19134
19134
  }
19135
19135
  return exp.isStatic ? exp.content : null;
19136
19136
  }
19137
+ function isInTransition(context) {
19138
+ const parentNode = context.parent && context.parent.node;
19139
+ return !!(parentNode && isTransitionNode(parentNode));
19140
+ }
19141
+ function isTransitionNode(node) {
19142
+ return node.type === 1 && isTransitionTag(node.tag);
19143
+ }
19137
19144
  function isTransitionTag(tag) {
19138
19145
  tag = tag.toLowerCase();
19139
19146
  return tag === "transition" || tag === "vaportransition";
@@ -19365,6 +19372,7 @@ const defaultOptions = {
19365
19372
  bindingMetadata: EMPTY_OBJ,
19366
19373
  inline: false,
19367
19374
  isTS: false,
19375
+ eventDelegation: true,
19368
19376
  onError: defaultOnError,
19369
19377
  onWarn: defaultOnWarn
19370
19378
  };
@@ -19666,6 +19674,8 @@ function _objectSpread2(e) {
19666
19674
  function genExpression(node, context, assignment) {
19667
19675
  node = context.getExpressionReplacement(node);
19668
19676
  const { content, ast, isStatic, loc } = node;
19677
+ const { options } = context;
19678
+ const { inline } = options;
19669
19679
  if (isStatic) return [[
19670
19680
  JSON.stringify(content),
19671
19681
  -2,
@@ -19687,23 +19697,31 @@ function genExpression(node, context, assignment) {
19687
19697
  let hasMemberExpression = false;
19688
19698
  if (ids.length) {
19689
19699
  const [frag, push] = buildCodeFragment();
19690
- ids.sort((a, b) => a.start - b.start).forEach((id, i) => {
19691
- const start = id.start - 1;
19692
- const end = id.end - 1;
19693
- const last = ids[i - 1];
19694
- const leadingText = content.slice(last ? last.end - 1 : 0, start);
19695
- if (leadingText.length) push([leadingText, -3]);
19696
- const source = content.slice(start, end);
19700
+ let lastEnd = 0;
19701
+ ids.sort((a, b) => a.start - b.start).forEach((id) => {
19702
+ const idStart = id.start - 1;
19703
+ const idEnd = id.end - 1;
19704
+ const source = content.slice(idStart, idEnd);
19697
19705
  const parentStack = parentStackMap.get(id);
19698
19706
  const parent = parentStack[parentStack.length - 1];
19707
+ let start = idStart;
19708
+ let end = idEnd;
19709
+ if (inline && options.bindingMetadata && options.bindingMetadata[source] === "setup-let" && parent && parent.type === "UpdateExpression" && parent.argument === id) {
19710
+ start = parent.start - 1;
19711
+ end = parent.end - 1;
19712
+ }
19713
+ if (start < lastEnd) return;
19714
+ const leadingText = content.slice(lastEnd, start);
19715
+ if (leadingText.length) push([leadingText, -3]);
19699
19716
  hasMemberExpression || (hasMemberExpression = parent && (parent.type === "MemberExpression" || parent.type === "OptionalMemberExpression"));
19700
19717
  push(...genIdentifier(source, context, {
19701
19718
  start: advancePositionWithClone(node.loc.start, source, start),
19702
19719
  end: advancePositionWithClone(node.loc.start, source, end),
19703
19720
  source
19704
- }, hasMemberExpression ? void 0 : assignment, id, parent, parentStack));
19705
- if (i === ids.length - 1 && end < content.length) push([content.slice(end), -3]);
19721
+ }, hasMemberExpression ? void 0 : assignment, id, parent, parentStack, node));
19722
+ lastEnd = end;
19706
19723
  });
19724
+ if (lastEnd < content.length) push([content.slice(lastEnd), -3]);
19707
19725
  if (assignment && hasMemberExpression) push(` = ${assignment}`);
19708
19726
  return frag;
19709
19727
  } else return [[
@@ -19712,7 +19730,7 @@ function genExpression(node, context, assignment) {
19712
19730
  loc
19713
19731
  ]];
19714
19732
  }
19715
- function genIdentifier(raw, context, loc, assignment, id, parent, parentStack) {
19733
+ function genIdentifier(raw, context, loc, assignment, id, parent, parentStack, sourceNode) {
19716
19734
  const { options, helper, identifiers } = context;
19717
19735
  const { inline, bindingMetadata } = options;
19718
19736
  let name = raw;
@@ -19732,19 +19750,49 @@ function genIdentifier(raw, context, loc, assignment, id, parent, parentStack) {
19732
19750
  else return genExpression(replacement, context, assignment);
19733
19751
  }
19734
19752
  let prefix;
19735
- if (isStaticProperty(parent) && parent.shorthand) prefix = `${raw}: `;
19736
19753
  const type = bindingMetadata && bindingMetadata[raw];
19754
+ const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack || []);
19755
+ const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id;
19756
+ const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id;
19757
+ if (isStaticProperty(parent) && parent.shorthand && !(inline && type === "setup-let" && isDestructureAssignment)) prefix = `${raw}: `;
19737
19758
  if (inline) switch (type) {
19738
19759
  case "setup-let":
19739
- name = raw = assignment ? `_isRef(${raw}) ? (${raw}.value = ${assignment}) : (${raw} = ${assignment})` : unref();
19760
+ if (isAssignmentLVal) {
19761
+ const { right, operator } = parent;
19762
+ const source = sourceNode;
19763
+ const sourceContent = source.content;
19764
+ const rightStart = right.start - 1;
19765
+ const rightEnd = right.end - 1;
19766
+ const rightContent = sourceContent.slice(rightStart, rightEnd);
19767
+ const rightExp = createSimpleExpression(rightContent, false, {
19768
+ start: advancePositionWithClone(source.loc.start, sourceContent, rightStart),
19769
+ end: advancePositionWithClone(source.loc.start, sourceContent, rightEnd),
19770
+ source: rightContent
19771
+ });
19772
+ rightExp.ast = parseExp(context, rightContent);
19773
+ return [
19774
+ prefix,
19775
+ `${helper("isRef")}(${raw}) ? ${raw}.value ${operator} `,
19776
+ ...genExpression(rightExp, context),
19777
+ ` : `,
19778
+ [
19779
+ raw,
19780
+ -2,
19781
+ loc,
19782
+ name
19783
+ ]
19784
+ ];
19785
+ } else if (isUpdateArg) {
19786
+ const { prefix: isPrefix, operator } = parent;
19787
+ const updatePrefix = isPrefix ? operator : ``;
19788
+ const updatePostfix = isPrefix ? `` : operator;
19789
+ raw = `${helper("isRef")}(${raw}) ? ${updatePrefix}${raw}.value${updatePostfix} : ${updatePrefix}${raw}${updatePostfix}`;
19790
+ } else if (!isDestructureAssignment) name = raw = assignment ? `${helper("isRef")}(${raw}) ? (${raw}.value = ${assignment}) : (${raw} = ${assignment})` : unref();
19740
19791
  break;
19741
19792
  case "setup-ref":
19742
19793
  name = raw = withAssignment(`${raw}.value`);
19743
19794
  break;
19744
19795
  case "setup-maybe-ref":
19745
- const isDestructureAssignment = parent && isInDestructureAssignment(parent, parentStack || []);
19746
- const isAssignmentLVal = parent && parent.type === "AssignmentExpression" && parent.left === id;
19747
- const isUpdateArg = parent && parent.type === "UpdateExpression" && parent.argument === id;
19748
19796
  raw = isAssignmentLVal || isUpdateArg || isDestructureAssignment ? name = `${raw}.value` : assignment ? `${helper("isRef")}(${raw}) ? (${raw}.value = ${assignment}) : null` : unref();
19749
19797
  break;
19750
19798
  case "props":
@@ -20645,7 +20693,12 @@ function genPropKey({ key: node, modifier, runtimeCamelize, handler, handlerModi
20645
20693
  if (runtimeCamelize) {
20646
20694
  key.push(" || \"\"");
20647
20695
  key = genCall(helper("camelize"), key);
20648
- }
20696
+ } else if (modifier) key = [
20697
+ "(",
20698
+ ...key,
20699
+ " || \"\"",
20700
+ ")"
20701
+ ];
20649
20702
  if (handler) key = genCall(helper("toHandlerKey"), key);
20650
20703
  return [
20651
20704
  "[",
@@ -20737,6 +20790,11 @@ function genVShow(oper, context) {
20737
20790
  ])];
20738
20791
  }
20739
20792
  //#endregion
20793
+ //#region packages/compiler-vapor/src/generators/modifier.ts
20794
+ function genDirectiveModifiers(modifiers) {
20795
+ return modifiers.map((value) => `${isSimpleIdentifier(value) ? value : JSON.stringify(value)}: true`).join(", ");
20796
+ }
20797
+ //#endregion
20740
20798
  //#region packages/compiler-vapor/src/generators/vModel.ts
20741
20799
  const helperMap = {
20742
20800
  text: "applyTextModel",
@@ -20751,7 +20809,7 @@ function genVModel(oper, context) {
20751
20809
  `() => (`,
20752
20810
  ...genExpression(exp, context),
20753
20811
  `)`
20754
- ], genModelHandler(exp, context), modifiers.length ? `{ ${modifiers.map((e) => e.content + ": true").join(",")} }` : void 0)];
20812
+ ], genModelHandler(exp, context), modifiers.length ? `{ ${genDirectiveModifiers(modifiers.map((e) => e.content))} }` : void 0)];
20755
20813
  }
20756
20814
  function genModelHandler(exp, context) {
20757
20815
  return [
@@ -20793,14 +20851,15 @@ function genCustomDirectives(opers, context) {
20793
20851
  return genMulti(DELIMITERS_ARRAY.concat("void 0"), directiveVar, value, argument, modifiers);
20794
20852
  }
20795
20853
  }
20796
- function genDirectiveModifiers(modifiers) {
20797
- return modifiers.map((value) => `${isSimpleIdentifier(value) ? value : JSON.stringify(value)}: true`).join(", ");
20798
- }
20799
20854
  function filterCustomDirectives(id, operations) {
20800
20855
  return operations.filter((oper) => oper.type === 14 && oper.element === id && !oper.builtin);
20801
20856
  }
20802
20857
  //#endregion
20803
20858
  //#region packages/compiler-vapor/src/generators/component.ts
20859
+ function genStaticModifierPropKey(name) {
20860
+ const key = getModifierPropName(name);
20861
+ return [isSimpleIdentifier(key) ? key : JSON.stringify(key)];
20862
+ }
20804
20863
  function genCreateComponent(operation, context) {
20805
20864
  const { helper } = context;
20806
20865
  const singleUseAssetComponentNames = context.singleUseAssetComponentNames;
@@ -20942,7 +21001,7 @@ function genStaticProps(props, context, dynamicProps, directStaticLiteralProps =
20942
21001
  }
20943
21002
  const { key, modelModifiers } = prop;
20944
21003
  if (modelModifiers && modelModifiers.length) {
20945
- const modifiersKey = key.isStatic ? [getModifierPropName(key.content)] : [
21004
+ const modifiersKey = key.isStatic ? genStaticModifierPropKey(key.content) : [
20946
21005
  "[",
20947
21006
  ...genExpression(key, context),
20948
21007
  " + \"Modifiers\"]"
@@ -20985,7 +21044,7 @@ function genDynamicProps(props, context, directStaticLiteralProps = false) {
20985
21044
  ]);
20986
21045
  const { modelModifiers } = p;
20987
21046
  if (modelModifiers && modelModifiers.length) {
20988
- const modifiersKey = p.key.isStatic ? [getModifierPropName(p.key.content)] : [
21047
+ const modifiersKey = p.key.isStatic ? genStaticModifierPropKey(p.key.content) : [
20989
21048
  "[",
20990
21049
  ...genExpression(p.key, context),
20991
21050
  " + \"Modifiers\"]"
@@ -21110,7 +21169,7 @@ function genDynamicSlot(slot, context, withFunction = false) {
21110
21169
  }
21111
21170
  function genBasicDynamicSlot(slot, context) {
21112
21171
  const { name, fn } = slot;
21113
- return genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...genExpression(name, context)], ["fn: ", ...genSlotBlockWithProps(fn, context)]);
21172
+ return genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...genExpression(name, context)], ["fn: ", ...genSlotBlockWithProps(fn, context, false)]);
21114
21173
  }
21115
21174
  function genLoopSlot(slot, context) {
21116
21175
  const { name, fn, loop } = slot;
@@ -21122,7 +21181,7 @@ function genLoopSlot(slot, context) {
21122
21181
  if (rawValue) idMap[rawValue] = rawValue;
21123
21182
  if (rawKey) idMap[rawKey] = rawKey;
21124
21183
  if (rawIndex) idMap[rawIndex] = rawIndex;
21125
- const slotExpr = genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...context.withId(() => genExpression(name, context), idMap)], ["fn: ", ...context.withId(() => genSlotBlockWithProps(fn, context), idMap)]);
21184
+ const slotExpr = genMulti(DELIMITERS_OBJECT_NEWLINE, ["name: ", ...context.withId(() => genExpression(name, context), idMap)], ["fn: ", ...context.withId(() => genSlotBlockWithProps(fn, context, false), idMap)]);
21126
21185
  return [...genCall(context.helper("createForSlots"), genExpression(source, context), [
21127
21186
  ...genMulti([
21128
21187
  "(",
@@ -21148,7 +21207,7 @@ function genConditionalSlot(slot, context) {
21148
21207
  INDENT_END
21149
21208
  ];
21150
21209
  }
21151
- function genSlotBlockWithProps(oper, context) {
21210
+ function genSlotBlockWithProps(oper, context, emitNonStableFlag = true) {
21152
21211
  let propsName;
21153
21212
  let exitScope;
21154
21213
  let depth;
@@ -21163,10 +21222,45 @@ function genSlotBlockWithProps(oper, context) {
21163
21222
  const exitSlotBlock = context.enterSlotBlock();
21164
21223
  markSlotRootOperations(oper);
21165
21224
  let blockFn = context.withId(() => genBlock(oper, context, propsName ? [propsName] : []), idMap);
21225
+ if (emitNonStableFlag && !hasStableSlotRoot(oper, context)) blockFn = genCall(context.helper("extend"), blockFn, `{ _: 8 }`);
21166
21226
  exitSlotBlock();
21167
21227
  exitScope && exitScope();
21168
21228
  return blockFn;
21169
21229
  }
21230
+ const commentOnlyTemplateRE = /^(?:<!--[\s\S]*?-->)+$/;
21231
+ function hasStableSlotRoot(block, context) {
21232
+ let hasValidRoot = false;
21233
+ for (let i = 0; i < block.returns.length; i++) {
21234
+ const id = block.returns[i];
21235
+ const child = findReturnedDynamic$1(block, id);
21236
+ const operation = child && child.operation;
21237
+ if (!operation) {
21238
+ if (child && isStableTemplateSlotRoot(child, context)) hasValidRoot = true;
21239
+ continue;
21240
+ }
21241
+ switch (operation.type) {
21242
+ case 12:
21243
+ if (!operation.dynamic || operation.dynamic.isStatic) {
21244
+ hasValidRoot = true;
21245
+ continue;
21246
+ }
21247
+ return false;
21248
+ case 17:
21249
+ if (hasStableSlotRoot(operation.block, context)) {
21250
+ hasValidRoot = true;
21251
+ continue;
21252
+ }
21253
+ return false;
21254
+ default: return false;
21255
+ }
21256
+ }
21257
+ return hasValidRoot;
21258
+ }
21259
+ function isStableTemplateSlotRoot(child, context) {
21260
+ if (child.template == null) return false;
21261
+ const content = context.ir.template.entries[child.template].content;
21262
+ return content !== "" && !commentOnlyTemplateRE.test(content.trim());
21263
+ }
21170
21264
  //#endregion
21171
21265
  //#region packages/compiler-vapor/src/generators/slotOutlet.ts
21172
21266
  function genSlotOutlet(oper, context) {
@@ -21503,7 +21597,7 @@ function genBlockContent(block, context, root, genEffectsExtraFrag) {
21503
21597
  else if (genEffectsExtraFrag) push(...genEffects([], context, genEffectsExtraFrag));
21504
21598
  push(NEWLINE, `return `);
21505
21599
  const returnNodes = returns.map((n) => `n${n}`);
21506
- push(...returnNodes.length > 1 ? genMulti(DELIMITERS_ARRAY, ...returnNodes) : [returnNodes[0] || "null"]);
21600
+ push(...returnNodes.length > 1 ? genMulti(DELIMITERS_ARRAY, ...returnNodes) : [returnNodes[0] || "[]"]);
21507
21601
  resetBlock();
21508
21602
  context.singleUseAssetComponentNames = prevSingleUseAssetComponentNames;
21509
21603
  return frag;
@@ -21842,11 +21936,36 @@ const transformVBind = (dir, node, context) => {
21842
21936
  };
21843
21937
  };
21844
21938
  //#endregion
21939
+ //#region packages/compiler-vapor/src/transforms/vHtml.ts
21940
+ function ignoreVHtmlChildren(node, context, clear) {
21941
+ if (!node.children.length) return;
21942
+ const dir = findDir$1(node, "html");
21943
+ if (!dir) return;
21944
+ context.options.onError(createDOMCompilerError(55, dir.loc));
21945
+ if (clear === "node") node.children.length = 0;
21946
+ else context.childrenTemplate.length = 0;
21947
+ }
21948
+ const transformVHtml = (dir, node, context) => {
21949
+ let { exp, loc } = dir;
21950
+ if (!exp) {
21951
+ context.options.onError(createDOMCompilerError(54, loc));
21952
+ exp = EMPTY_EXPRESSION;
21953
+ }
21954
+ ignoreVHtmlChildren(node, context, "template");
21955
+ context.registerEffect([exp], {
21956
+ type: 8,
21957
+ element: context.reference(),
21958
+ value: exp,
21959
+ isComponent: node.tagType === 1
21960
+ });
21961
+ };
21962
+ //#endregion
21845
21963
  //#region packages/compiler-vapor/src/transforms/transformElement.ts
21846
21964
  const isReservedProp = /* @__PURE__ */ makeMap(",key,ref,ref_for,ref_key,");
21847
21965
  const transformElement = (node, context) => {
21848
21966
  let effectIndex = context.block.effect.length;
21849
21967
  const getEffectIndex = () => effectIndex++;
21968
+ if (node.type === 1 && node.children.length) ignoreVHtmlChildren(node, context, "node");
21850
21969
  let parentSlots;
21851
21970
  if (node.type === 1 && (node.tagType === 1 || context.options.isCustomElement(node.tag))) {
21852
21971
  parentSlots = context.slots;
@@ -21977,7 +22096,6 @@ function transformNativeElement(node, propsResult, staticKey, singleRoot, contex
21977
22096
  let template = "";
21978
22097
  template += `<${tag}`;
21979
22098
  if (scopeId) template += ` ${scopeId}`;
21980
- const dynamicProps = [];
21981
22099
  if (propsResult[0]) {
21982
22100
  const [, dynamicArgs, expressions] = propsResult;
21983
22101
  context.registerEffect(expressions, {
@@ -21998,54 +22116,25 @@ function transformNativeElement(node, propsResult, staticKey, singleRoot, contex
21998
22116
  };
21999
22117
  for (const prop of propsResult[1]) {
22000
22118
  const { key, values } = prop;
22001
- if (context.imports.some((imported) => values[0].content.includes(imported.exp.content))) {
22119
+ const canStringifyAttrName = key.isStatic && !UNSAFE_ATTR_NAME_RE.test(key.content);
22120
+ let foldedValue;
22121
+ if (canStringifyAttrName && context.imports.some((imported) => values[0].content.includes(imported.exp.content))) {
22002
22122
  if (!prevWasQuoted) template += ` `;
22003
22123
  template += `${key.content}="${IMPORT_EXP_START}${values[0].content}${IMPORT_EXP_END}"`;
22004
22124
  prevWasQuoted = true;
22005
- } else if (key.isStatic && !prop.modifier && isBooleanAttr(key.content)) if (values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
22006
- const value = values[0].content === "''" ? "" : values[0].content;
22007
- appendTemplateProp(key.content, value);
22008
- } else {
22009
- const include = foldBooleanAttrValue(values);
22010
- if (include != null) {
22011
- if (include) appendTemplateProp(key.content);
22012
- } else {
22013
- dynamicProps.push(key.content);
22014
- context.registerEffect(values, {
22015
- type: 3,
22016
- element: context.reference(),
22017
- prop,
22018
- tag
22019
- }, getEffectIndex);
22020
- }
22021
- }
22022
- else if (key.isStatic && !prop.modifier && hasBoundValue(values)) {
22023
- let foldedValue;
22024
- if (key.content === "class") foldedValue = foldClassValues(values);
22025
- else if (key.content === "style") foldedValue = foldStyleValues(values);
22026
- if (foldedValue != null) {
22027
- if (foldedValue) appendTemplateProp(key.content, foldedValue, true);
22028
- } else {
22029
- dynamicProps.push(key.content);
22030
- context.registerEffect(values, {
22031
- type: 3,
22032
- element: context.reference(),
22033
- prop,
22034
- tag
22035
- }, getEffectIndex);
22036
- }
22037
- } else if (key.isStatic && values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
22125
+ } else if (canStringifyAttrName && values.length === 1 && (values[0].isStatic || values[0].content === "''") && !dynamicKeys.includes(key.content)) {
22038
22126
  const value = values[0].content === "''" ? "" : values[0].content;
22039
22127
  appendTemplateProp(key.content, value);
22040
- } else {
22041
- dynamicProps.push(key.content);
22042
- context.registerEffect(values, {
22043
- type: 3,
22044
- element: context.reference(),
22045
- prop,
22046
- tag
22047
- }, getEffectIndex);
22048
- }
22128
+ } else if (canStringifyAttrName && !prop.modifier && isBooleanAttr(key.content) && (foldedValue = foldBooleanAttrValue(values)) != null) {
22129
+ if (foldedValue) appendTemplateProp(key.content);
22130
+ } else if (canStringifyAttrName && !prop.modifier && hasBoundValue(values) && (foldedValue = key.content === "class" ? foldClassValues(values) : key.content === "style" ? foldStyleValues(values) : void 0) != null) {
22131
+ if (foldedValue) appendTemplateProp(key.content, foldedValue, true);
22132
+ } else context.registerEffect(values, {
22133
+ type: 3,
22134
+ element: context.reference(),
22135
+ prop,
22136
+ tag
22137
+ }, getEffectIndex);
22049
22138
  }
22050
22139
  }
22051
22140
  template += `>` + context.childrenTemplate.join("");
@@ -22558,25 +22647,6 @@ const transformVOnce = (node, context) => {
22558
22647
  if (node.type === 1 && findDir$1(node, "once", true)) context.inVOnce = true;
22559
22648
  };
22560
22649
  //#endregion
22561
- //#region packages/compiler-vapor/src/transforms/vHtml.ts
22562
- const transformVHtml = (dir, node, context) => {
22563
- let { exp, loc } = dir;
22564
- if (!exp) {
22565
- context.options.onError(createDOMCompilerError(54, loc));
22566
- exp = EMPTY_EXPRESSION;
22567
- }
22568
- if (node.children.length) {
22569
- context.options.onError(createDOMCompilerError(55, loc));
22570
- context.childrenTemplate.length = 0;
22571
- }
22572
- context.registerEffect([exp], {
22573
- type: 8,
22574
- element: context.reference(),
22575
- value: exp,
22576
- isComponent: node.tagType === 1
22577
- });
22578
- };
22579
- //#endregion
22580
22650
  //#region packages/compiler-vapor/src/transforms/transformText.ts
22581
22651
  const seen = /* @__PURE__ */ new WeakMap();
22582
22652
  function markNonTemplate(node, context) {
@@ -22774,12 +22844,10 @@ const transformVOn = (dir, node, context) => {
22774
22844
  const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(arg.isStatic ? `on${arg.content}` : arg, modifiers, null, loc);
22775
22845
  let keyOverride;
22776
22846
  const isStaticClick = arg.isStatic && arg.content.toLowerCase() === "click";
22777
- if (nonKeyModifiers.includes("middle")) {
22778
- if (keyOverride) {}
22779
- if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "mouseup"];
22780
- }
22781
22847
  if (nonKeyModifiers.includes("right")) {
22782
22848
  if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "contextmenu"];
22849
+ } else if (nonKeyModifiers.includes("middle")) {
22850
+ if (!isStaticClick && !arg.isStatic) keyOverride = ["click", "mouseup"];
22783
22851
  }
22784
22852
  arg = normalizeStaticEventArg(arg, nonKeyModifiers);
22785
22853
  if (keyModifiers.length && isStaticExp(arg) && !isKeyboardEvent(`on${arg.content.toLowerCase()}`)) keyModifiers.length = 0;
@@ -22793,7 +22861,7 @@ const transformVOn = (dir, node, context) => {
22793
22861
  options: eventOptionModifiers
22794
22862
  }
22795
22863
  };
22796
- const delegate = arg.isStatic && !eventOptionModifiers.length && !hasStopHandlerForStaticEvent(node, arg.content) && delegatedEvents(arg.content);
22864
+ const delegate = context.options.eventDelegation && arg.isStatic && !eventOptionModifiers.length && !hasStopHandlerForStaticEvent(node, arg.content) && delegatedEvents(arg.content);
22797
22865
  const operation = {
22798
22866
  type: 6,
22799
22867
  element: context.reference(),
@@ -22814,8 +22882,8 @@ function normalizeStaticEventArg(arg, nonKeyModifiers) {
22814
22882
  if (!arg.isStatic) return arg;
22815
22883
  let normalized = arg;
22816
22884
  const isStaticClick = arg.content.toLowerCase() === "click";
22817
- if (nonKeyModifiers.includes("middle") && isStaticClick) normalized = extend({}, normalized, { content: "mouseup" });
22818
22885
  if (nonKeyModifiers.includes("right") && isStaticClick) normalized = extend({}, normalized, { content: "contextmenu" });
22886
+ else if (nonKeyModifiers.includes("middle") && isStaticClick) normalized = extend({}, normalized, { content: "mouseup" });
22819
22887
  return normalized;
22820
22888
  }
22821
22889
  function hasStopHandlerForStaticEvent(node, eventName) {
@@ -23015,11 +23083,14 @@ function processIf(node, dir, context) {
23015
23083
  }
23016
23084
  while (lastIfNode.negative && lastIfNode.negative.type === 15) lastIfNode = lastIfNode.negative;
23017
23085
  if (dir.name === "else-if" && lastIfNode.negative) context.options.onError(createCompilerError(30, node.loc));
23018
- if (context.root.comment.length) {
23019
- node = wrapTemplate(node, ["else-if", "else"]);
23020
- context.node = node = extend({}, node, { children: [...context.comment, ...node.children] });
23086
+ const comments = context.comment;
23087
+ if (comments.length) {
23088
+ if (!isInTransition(context)) {
23089
+ node = wrapTemplate(node, ["else-if", "else"]);
23090
+ context.node = node = extend({}, node, { children: [...comments, ...node.children] });
23091
+ }
23092
+ comments.length = 0;
23021
23093
  }
23022
- context.root.comment = [];
23023
23094
  const [branch, onExit] = createIfBranch(node, context);
23024
23095
  if (dir.name === "else") lastIfNode.negative = branch;
23025
23096
  else lastIfNode.negative = {
@@ -23268,7 +23339,7 @@ function transformTemplateSlot(node, dir, context) {
23268
23339
  });
23269
23340
  else if (vElse) {
23270
23341
  const vIfSlot = slots[slots.length - 1];
23271
- if (vIfSlot.slotType === 3) {
23342
+ if (vIfSlot && vIfSlot.slotType === 3) {
23272
23343
  let ifNode = vIfSlot;
23273
23344
  while (ifNode.negative && ifNode.negative.slotType === 3) ifNode = ifNode.negative;
23274
23345
  const negative = vElse.exp ? {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/compiler-vapor",
3
- "version": "3.6.0-beta.14",
3
+ "version": "3.6.0-beta.16",
4
4
  "description": "@vue/compiler-vapor",
5
5
  "main": "dist/compiler-vapor.cjs.js",
6
6
  "module": "dist/compiler-vapor.esm-browser.js",
@@ -42,10 +42,10 @@
42
42
  },
43
43
  "homepage": "https://github.com/vuejs/core/tree/main/packages/compiler-vapor#readme",
44
44
  "dependencies": {
45
- "@babel/parser": "^7.29.3",
45
+ "@babel/parser": "^7.29.7",
46
46
  "estree-walker": "^2.0.2",
47
47
  "source-map-js": "^1.2.1",
48
- "@vue/compiler-dom": "3.6.0-beta.14",
49
- "@vue/shared": "3.6.0-beta.14"
48
+ "@vue/compiler-dom": "3.6.0-beta.16",
49
+ "@vue/shared": "3.6.0-beta.16"
50
50
  }
51
51
  }