@vue/runtime-dom 3.5.20 → 3.5.22

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/runtime-dom v3.5.20
2
+ * @vue/runtime-dom v3.5.22
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -214,11 +214,11 @@ function resolveTransitionProps(rawProps) {
214
214
  const resolve = () => finishLeave(el, done);
215
215
  addTransitionClass(el, leaveFromClass);
216
216
  if (!el._enterCancelled) {
217
- forceReflow();
217
+ forceReflow(el);
218
218
  addTransitionClass(el, leaveActiveClass);
219
219
  } else {
220
220
  addTransitionClass(el, leaveActiveClass);
221
- forceReflow();
221
+ forceReflow(el);
222
222
  }
223
223
  nextFrame(() => {
224
224
  if (!el._isLeaving) {
@@ -344,7 +344,7 @@ function getTransitionInfo(el, expectedType) {
344
344
  type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
345
345
  propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
346
346
  }
347
- const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
347
+ const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(
348
348
  getStyleProperties(`${TRANSITION}Property`).toString()
349
349
  );
350
350
  return {
@@ -364,8 +364,9 @@ function toMs(s) {
364
364
  if (s === "auto") return 0;
365
365
  return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
366
366
  }
367
- function forceReflow() {
368
- return document.body.offsetHeight;
367
+ function forceReflow(el) {
368
+ const targetDocument = el ? el.ownerDocument : document;
369
+ return targetDocument.body.offsetHeight;
369
370
  }
370
371
 
371
372
  function patchClass(el, value, isSVG) {
@@ -505,7 +506,7 @@ function setVarsOnNode(el, vars) {
505
506
  }
506
507
  }
507
508
 
508
- const displayRE = /(^|;)\s*display\s*:/;
509
+ const displayRE = /(?:^|;)\s*display\s*:/;
509
510
  function patchStyle(el, prev, next) {
510
511
  const style = el.style;
511
512
  const isCssString = isString(next);
@@ -828,11 +829,10 @@ function shouldSetAsProp(el, key, value, isSVG) {
828
829
  }
829
830
 
830
831
  const REMOVAL = {};
831
- /*! #__NO_SIDE_EFFECTS__ */
832
832
  // @__NO_SIDE_EFFECTS__
833
833
  function defineCustomElement(options, extraOptions, _createApp) {
834
- const Comp = defineComponent(options, extraOptions);
835
- if (isPlainObject(Comp)) extend(Comp, extraOptions);
834
+ let Comp = defineComponent(options, extraOptions);
835
+ if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
836
836
  class VueCustomElement extends VueElement {
837
837
  constructor(initialProps) {
838
838
  super(Comp, initialProps, _createApp);
@@ -841,7 +841,6 @@ function defineCustomElement(options, extraOptions, _createApp) {
841
841
  VueCustomElement.def = Comp;
842
842
  return VueCustomElement;
843
843
  }
844
-
845
844
  const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
846
845
  return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
847
846
  });
@@ -880,7 +879,11 @@ class VueElement extends BaseClass {
880
879
  );
881
880
  }
882
881
  if (_def.shadowRoot !== false) {
883
- this.attachShadow({ mode: "open" });
882
+ this.attachShadow(
883
+ extend({}, _def.shadowRootOptions, {
884
+ mode: "open"
885
+ })
886
+ );
884
887
  this._root = this.shadowRoot;
885
888
  } else {
886
889
  this._root = this;
@@ -940,9 +943,18 @@ class VueElement extends BaseClass {
940
943
  this._app && this._app.unmount();
941
944
  if (this._instance) this._instance.ce = void 0;
942
945
  this._app = this._instance = null;
946
+ if (this._teleportTargets) {
947
+ this._teleportTargets.clear();
948
+ this._teleportTargets = void 0;
949
+ }
943
950
  }
944
951
  });
945
952
  }
953
+ _processMutations(mutations) {
954
+ for (const m of mutations) {
955
+ this._setAttr(m.attributeName);
956
+ }
957
+ }
946
958
  /**
947
959
  * resolve inner component definition (handle possible async component)
948
960
  */
@@ -953,11 +965,7 @@ class VueElement extends BaseClass {
953
965
  for (let i = 0; i < this.attributes.length; i++) {
954
966
  this._setAttr(this.attributes[i].name);
955
967
  }
956
- this._ob = new MutationObserver((mutations) => {
957
- for (const m of mutations) {
958
- this._setAttr(m.attributeName);
959
- }
960
- });
968
+ this._ob = new MutationObserver(this._processMutations.bind(this));
961
969
  this._ob.observe(this, { attributes: true });
962
970
  const resolve = (def, isAsync = false) => {
963
971
  this._resolved = true;
@@ -1073,7 +1081,10 @@ class VueElement extends BaseClass {
1073
1081
  }
1074
1082
  if (shouldReflect) {
1075
1083
  const ob = this._ob;
1076
- ob && ob.disconnect();
1084
+ if (ob) {
1085
+ this._processMutations(ob.takeRecords());
1086
+ ob.disconnect();
1087
+ }
1077
1088
  if (val === true) {
1078
1089
  this.setAttribute(hyphenate(key), "");
1079
1090
  } else if (typeof val === "string" || typeof val === "number") {
@@ -1177,7 +1188,7 @@ class VueElement extends BaseClass {
1177
1188
  * Only called when shadowRoot is false
1178
1189
  */
1179
1190
  _renderSlots() {
1180
- const outlets = (this._teleportTarget || this).querySelectorAll("slot");
1191
+ const outlets = this._getSlots();
1181
1192
  const scopeId = this._instance.type.__scopeId;
1182
1193
  for (let i = 0; i < outlets.length; i++) {
1183
1194
  const o = outlets[i];
@@ -1203,6 +1214,19 @@ class VueElement extends BaseClass {
1203
1214
  parent.removeChild(o);
1204
1215
  }
1205
1216
  }
1217
+ /**
1218
+ * @internal
1219
+ */
1220
+ _getSlots() {
1221
+ const roots = [this];
1222
+ if (this._teleportTargets) {
1223
+ roots.push(...this._teleportTargets);
1224
+ }
1225
+ return roots.reduce((res, i) => {
1226
+ res.push(...Array.from(i.querySelectorAll("slot")));
1227
+ return res;
1228
+ }, []);
1229
+ }
1206
1230
  /**
1207
1231
  * @internal
1208
1232
  */
@@ -1304,7 +1328,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
1304
1328
  prevChildren.forEach(callPendingCbs);
1305
1329
  prevChildren.forEach(recordPosition);
1306
1330
  const movedChildren = prevChildren.filter(applyTranslation);
1307
- forceReflow();
1331
+ forceReflow(instance.vnode.el);
1308
1332
  movedChildren.forEach((c) => {
1309
1333
  const el = c.el;
1310
1334
  const style = el.style;
@@ -1314,7 +1338,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
1314
1338
  if (e && e.target !== el) {
1315
1339
  return;
1316
1340
  }
1317
- if (!e || /transform$/.test(e.propertyName)) {
1341
+ if (!e || e.propertyName.endsWith("transform")) {
1318
1342
  el.removeEventListener("transitionend", cb);
1319
1343
  el[moveCbKey] = null;
1320
1344
  removeTransitionClass(el, moveClass);
@@ -1,12 +1,11 @@
1
1
  /**
2
- * @vue/runtime-dom v3.5.20
2
+ * @vue/runtime-dom v3.5.22
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
6
  var VueRuntimeDOM = (function (exports) {
7
7
  'use strict';
8
8
 
9
- /*! #__NO_SIDE_EFFECTS__ */
10
9
  // @__NO_SIDE_EFFECTS__
11
10
  function makeMap(str) {
12
11
  const map = /* @__PURE__ */ Object.create(null);
@@ -64,10 +63,10 @@ var VueRuntimeDOM = (function (exports) {
64
63
  return hit || (cache[str] = fn(str));
65
64
  });
66
65
  };
67
- const camelizeRE = /-(\w)/g;
66
+ const camelizeRE = /-\w/g;
68
67
  const camelize = cacheStringFunction(
69
68
  (str) => {
70
- return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
69
+ return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());
71
70
  }
72
71
  );
73
72
  const hyphenateRE = /\B([A-Z])/g;
@@ -1146,7 +1145,7 @@ var VueRuntimeDOM = (function (exports) {
1146
1145
  iter._next = iter.next;
1147
1146
  iter.next = () => {
1148
1147
  const result = iter._next();
1149
- if (result.value) {
1148
+ if (!result.done) {
1150
1149
  result.value = wrapValue(result.value);
1151
1150
  }
1152
1151
  return result;
@@ -1273,7 +1272,8 @@ var VueRuntimeDOM = (function (exports) {
1273
1272
  return res;
1274
1273
  }
1275
1274
  if (isRef(res)) {
1276
- return targetIsArray && isIntegerKey(key) ? res : res.value;
1275
+ const value = targetIsArray && isIntegerKey(key) ? res : res.value;
1276
+ return isReadonly2 && isObject(value) ? readonly(value) : value;
1277
1277
  }
1278
1278
  if (isObject(res)) {
1279
1279
  return isReadonly2 ? readonly(res) : reactive(res);
@@ -2157,11 +2157,11 @@ var VueRuntimeDOM = (function (exports) {
2157
2157
  if (depth <= 0 || !isObject(value) || value["__v_skip"]) {
2158
2158
  return value;
2159
2159
  }
2160
- seen = seen || /* @__PURE__ */ new Set();
2161
- if (seen.has(value)) {
2160
+ seen = seen || /* @__PURE__ */ new Map();
2161
+ if ((seen.get(value) || 0) >= depth) {
2162
2162
  return value;
2163
2163
  }
2164
- seen.add(value);
2164
+ seen.set(value, depth);
2165
2165
  depth--;
2166
2166
  if (isRef(value)) {
2167
2167
  traverse(value.value, depth, seen);
@@ -2700,10 +2700,12 @@ var VueRuntimeDOM = (function (exports) {
2700
2700
  dirtyInstances.delete(instance);
2701
2701
  } else if (instance.parent) {
2702
2702
  queueJob(() => {
2703
- isHmrUpdating = true;
2704
- instance.parent.update();
2705
- isHmrUpdating = false;
2706
- dirtyInstances.delete(instance);
2703
+ if (!(instance.job.flags & 8)) {
2704
+ isHmrUpdating = true;
2705
+ instance.parent.update();
2706
+ isHmrUpdating = false;
2707
+ dirtyInstances.delete(instance);
2708
+ }
2707
2709
  });
2708
2710
  } else if (instance.appContext.reload) {
2709
2711
  instance.appContext.reload();
@@ -2807,7 +2809,6 @@ var VueRuntimeDOM = (function (exports) {
2807
2809
  _devtoolsComponentRemoved(component);
2808
2810
  }
2809
2811
  };
2810
- /*! #__NO_SIDE_EFFECTS__ */
2811
2812
  // @__NO_SIDE_EFFECTS__
2812
2813
  function createDevtoolsComponentHook(hook) {
2813
2814
  return (component) => {
@@ -2993,9 +2994,6 @@ var VueRuntimeDOM = (function (exports) {
2993
2994
  insert(mainAnchor, container, anchor);
2994
2995
  const mount = (container2, anchor2) => {
2995
2996
  if (shapeFlag & 16) {
2996
- if (parentComponent && parentComponent.isCE) {
2997
- parentComponent.ce._teleportTarget = container2;
2998
- }
2999
2997
  mountChildren(
3000
2998
  children,
3001
2999
  container2,
@@ -3017,6 +3015,9 @@ var VueRuntimeDOM = (function (exports) {
3017
3015
  } else if (namespace !== "mathml" && isTargetMathML(target)) {
3018
3016
  namespace = "mathml";
3019
3017
  }
3018
+ if (parentComponent && parentComponent.isCE) {
3019
+ (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);
3020
+ }
3020
3021
  if (!disabled) {
3021
3022
  mount(target, targetAnchor);
3022
3023
  updateCssVars(n2, false);
@@ -3205,26 +3206,34 @@ var VueRuntimeDOM = (function (exports) {
3205
3206
  function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {
3206
3207
  o: { nextSibling, parentNode, querySelector, insert, createText }
3207
3208
  }, hydrateChildren) {
3209
+ function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {
3210
+ vnode2.anchor = hydrateChildren(
3211
+ nextSibling(node2),
3212
+ vnode2,
3213
+ parentNode(node2),
3214
+ parentComponent,
3215
+ parentSuspense,
3216
+ slotScopeIds,
3217
+ optimized
3218
+ );
3219
+ vnode2.targetStart = targetStart;
3220
+ vnode2.targetAnchor = targetAnchor;
3221
+ }
3208
3222
  const target = vnode.target = resolveTarget(
3209
3223
  vnode.props,
3210
3224
  querySelector
3211
3225
  );
3226
+ const disabled = isTeleportDisabled(vnode.props);
3212
3227
  if (target) {
3213
- const disabled = isTeleportDisabled(vnode.props);
3214
3228
  const targetNode = target._lpa || target.firstChild;
3215
3229
  if (vnode.shapeFlag & 16) {
3216
3230
  if (disabled) {
3217
- vnode.anchor = hydrateChildren(
3218
- nextSibling(node),
3231
+ hydrateDisabledTeleport(
3232
+ node,
3219
3233
  vnode,
3220
- parentNode(node),
3221
- parentComponent,
3222
- parentSuspense,
3223
- slotScopeIds,
3224
- optimized
3234
+ targetNode,
3235
+ targetNode && nextSibling(targetNode)
3225
3236
  );
3226
- vnode.targetStart = targetNode;
3227
- vnode.targetAnchor = targetNode && nextSibling(targetNode);
3228
3237
  } else {
3229
3238
  vnode.anchor = nextSibling(node);
3230
3239
  let targetAnchor = targetNode;
@@ -3255,6 +3264,10 @@ var VueRuntimeDOM = (function (exports) {
3255
3264
  }
3256
3265
  }
3257
3266
  updateCssVars(vnode, disabled);
3267
+ } else if (disabled) {
3268
+ if (vnode.shapeFlag & 16) {
3269
+ hydrateDisabledTeleport(node, vnode, node, nextSibling(node));
3270
+ }
3258
3271
  }
3259
3272
  return vnode.anchor && nextSibling(vnode.anchor);
3260
3273
  }
@@ -3366,7 +3379,7 @@ var VueRuntimeDOM = (function (exports) {
3366
3379
  setTransitionHooks(innerChild, enterHooks);
3367
3380
  }
3368
3381
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3369
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {
3382
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3370
3383
  let leavingHooks = resolveTransitionHooks(
3371
3384
  oldInnerChild,
3372
3385
  rawProps,
@@ -3646,7 +3659,6 @@ var VueRuntimeDOM = (function (exports) {
3646
3659
  return ret;
3647
3660
  }
3648
3661
 
3649
- /*! #__NO_SIDE_EFFECTS__ */
3650
3662
  // @__NO_SIDE_EFFECTS__
3651
3663
  function defineComponent(options, extraOptions) {
3652
3664
  return isFunction(options) ? (
@@ -3699,6 +3711,7 @@ var VueRuntimeDOM = (function (exports) {
3699
3711
  return ret;
3700
3712
  }
3701
3713
 
3714
+ const pendingSetRefMap = /* @__PURE__ */ new WeakMap();
3702
3715
  function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3703
3716
  if (isArray(rawRef)) {
3704
3717
  rawRef.forEach(
@@ -3748,6 +3761,7 @@ var VueRuntimeDOM = (function (exports) {
3748
3761
  return !knownTemplateRefs.has(ref2);
3749
3762
  };
3750
3763
  if (oldRef != null && oldRef !== ref) {
3764
+ invalidatePendingSetRef(oldRawRef);
3751
3765
  if (isString(oldRef)) {
3752
3766
  refs[oldRef] = null;
3753
3767
  if (canSetSetupRef(oldRef)) {
@@ -3805,9 +3819,15 @@ var VueRuntimeDOM = (function (exports) {
3805
3819
  }
3806
3820
  };
3807
3821
  if (value) {
3808
- doSet.id = -1;
3809
- queuePostRenderEffect(doSet, parentSuspense);
3822
+ const job = () => {
3823
+ doSet();
3824
+ pendingSetRefMap.delete(rawRef);
3825
+ };
3826
+ job.id = -1;
3827
+ pendingSetRefMap.set(rawRef, job);
3828
+ queuePostRenderEffect(job, parentSuspense);
3810
3829
  } else {
3830
+ invalidatePendingSetRef(rawRef);
3811
3831
  doSet();
3812
3832
  }
3813
3833
  } else {
@@ -3815,6 +3835,13 @@ var VueRuntimeDOM = (function (exports) {
3815
3835
  }
3816
3836
  }
3817
3837
  }
3838
+ function invalidatePendingSetRef(rawRef) {
3839
+ const pendingSetRef = pendingSetRefMap.get(rawRef);
3840
+ if (pendingSetRef) {
3841
+ pendingSetRef.flags |= 8;
3842
+ pendingSetRefMap.delete(rawRef);
3843
+ }
3844
+ }
3818
3845
 
3819
3846
  let hasLoggedMismatchError = false;
3820
3847
  const logMismatchError = () => {
@@ -4547,7 +4574,6 @@ Server rendered element contains fewer child nodes than client vdom.`
4547
4574
  }
4548
4575
 
4549
4576
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
4550
- /*! #__NO_SIDE_EFFECTS__ */
4551
4577
  // @__NO_SIDE_EFFECTS__
4552
4578
  function defineAsyncComponent(source) {
4553
4579
  if (isFunction(source)) {
@@ -5151,12 +5177,13 @@ If this is a native custom element, make sure to exclude it from component resol
5151
5177
 
5152
5178
  function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5153
5179
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
5180
+ const hasProps = Object.keys(props).length > 0;
5154
5181
  if (name !== "default") props.name = name;
5155
5182
  return openBlock(), createBlock(
5156
5183
  Fragment,
5157
5184
  null,
5158
5185
  [createVNode("slot", props, fallback && fallback())],
5159
- 64
5186
+ hasProps ? -2 : 64
5160
5187
  );
5161
5188
  }
5162
5189
  let slot = slots[name];
@@ -8548,8 +8575,9 @@ If you want to remount the same app, move your app creation logic into a factory
8548
8575
  );
8549
8576
  }
8550
8577
  }
8578
+ const mixinEmitsCache = /* @__PURE__ */ new WeakMap();
8551
8579
  function normalizeEmitsOptions(comp, appContext, asMixin = false) {
8552
- const cache = appContext.emitsCache;
8580
+ const cache = asMixin ? mixinEmitsCache : appContext.emitsCache;
8553
8581
  const cached = cache.get(comp);
8554
8582
  if (cached !== void 0) {
8555
8583
  return cached;
@@ -8997,7 +9025,7 @@ If you want to remount the same app, move your app creation logic into a factory
8997
9025
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
8998
9026
  if (pendingBranch) {
8999
9027
  suspense.pendingBranch = newBranch;
9000
- if (isSameVNodeType(newBranch, pendingBranch)) {
9028
+ if (isSameVNodeType(pendingBranch, newBranch)) {
9001
9029
  patch(
9002
9030
  pendingBranch,
9003
9031
  newBranch,
@@ -9068,7 +9096,7 @@ If you want to remount the same app, move your app creation logic into a factory
9068
9096
  );
9069
9097
  setActiveBranch(suspense, newFallback);
9070
9098
  }
9071
- } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
9099
+ } else if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
9072
9100
  patch(
9073
9101
  activeBranch,
9074
9102
  newBranch,
@@ -9099,7 +9127,7 @@ If you want to remount the same app, move your app creation logic into a factory
9099
9127
  }
9100
9128
  }
9101
9129
  } else {
9102
- if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
9130
+ if (activeBranch && isSameVNodeType(activeBranch, newBranch)) {
9103
9131
  patch(
9104
9132
  activeBranch,
9105
9133
  newBranch,
@@ -10242,7 +10270,7 @@ Component that was made reactive: `,
10242
10270
  return instance.proxy;
10243
10271
  }
10244
10272
  }
10245
- const classifyRE = /(?:^|[-_])(\w)/g;
10273
+ const classifyRE = /(?:^|[-_])\w/g;
10246
10274
  const classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, "");
10247
10275
  function getComponentName(Component, includeInferred = true) {
10248
10276
  return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
@@ -10285,23 +10313,28 @@ Component that was made reactive: `,
10285
10313
  };
10286
10314
 
10287
10315
  function h(type, propsOrChildren, children) {
10288
- const l = arguments.length;
10289
- if (l === 2) {
10290
- if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
10291
- if (isVNode(propsOrChildren)) {
10292
- return createVNode(type, null, [propsOrChildren]);
10316
+ try {
10317
+ setBlockTracking(-1);
10318
+ const l = arguments.length;
10319
+ if (l === 2) {
10320
+ if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {
10321
+ if (isVNode(propsOrChildren)) {
10322
+ return createVNode(type, null, [propsOrChildren]);
10323
+ }
10324
+ return createVNode(type, propsOrChildren);
10325
+ } else {
10326
+ return createVNode(type, null, propsOrChildren);
10293
10327
  }
10294
- return createVNode(type, propsOrChildren);
10295
10328
  } else {
10296
- return createVNode(type, null, propsOrChildren);
10297
- }
10298
- } else {
10299
- if (l > 3) {
10300
- children = Array.prototype.slice.call(arguments, 2);
10301
- } else if (l === 3 && isVNode(children)) {
10302
- children = [children];
10329
+ if (l > 3) {
10330
+ children = Array.prototype.slice.call(arguments, 2);
10331
+ } else if (l === 3 && isVNode(children)) {
10332
+ children = [children];
10333
+ }
10334
+ return createVNode(type, propsOrChildren, children);
10303
10335
  }
10304
- return createVNode(type, propsOrChildren, children);
10336
+ } finally {
10337
+ setBlockTracking(1);
10305
10338
  }
10306
10339
  }
10307
10340
 
@@ -10511,7 +10544,7 @@ Component that was made reactive: `,
10511
10544
  return true;
10512
10545
  }
10513
10546
 
10514
- const version = "3.5.20";
10547
+ const version = "3.5.22";
10515
10548
  const warn = warn$1 ;
10516
10549
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10517
10550
  const devtools = devtools$1 ;
@@ -10728,11 +10761,11 @@ Component that was made reactive: `,
10728
10761
  const resolve = () => finishLeave(el, done);
10729
10762
  addTransitionClass(el, leaveFromClass);
10730
10763
  if (!el._enterCancelled) {
10731
- forceReflow();
10764
+ forceReflow(el);
10732
10765
  addTransitionClass(el, leaveActiveClass);
10733
10766
  } else {
10734
10767
  addTransitionClass(el, leaveActiveClass);
10735
- forceReflow();
10768
+ forceReflow(el);
10736
10769
  }
10737
10770
  nextFrame(() => {
10738
10771
  if (!el._isLeaving) {
@@ -10858,7 +10891,7 @@ Component that was made reactive: `,
10858
10891
  type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;
10859
10892
  propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;
10860
10893
  }
10861
- const hasTransform = type === TRANSITION && /\b(transform|all)(,|$)/.test(
10894
+ const hasTransform = type === TRANSITION && /\b(?:transform|all)(?:,|$)/.test(
10862
10895
  getStyleProperties(`${TRANSITION}Property`).toString()
10863
10896
  );
10864
10897
  return {
@@ -10878,8 +10911,9 @@ Component that was made reactive: `,
10878
10911
  if (s === "auto") return 0;
10879
10912
  return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
10880
10913
  }
10881
- function forceReflow() {
10882
- return document.body.offsetHeight;
10914
+ function forceReflow(el) {
10915
+ const targetDocument = el ? el.ownerDocument : document;
10916
+ return targetDocument.body.offsetHeight;
10883
10917
  }
10884
10918
 
10885
10919
  function patchClass(el, value, isSVG) {
@@ -11012,7 +11046,7 @@ Component that was made reactive: `,
11012
11046
  }
11013
11047
  }
11014
11048
 
11015
- const displayRE = /(^|;)\s*display\s*:/;
11049
+ const displayRE = /(?:^|;)\s*display\s*:/;
11016
11050
  function patchStyle(el, prev, next) {
11017
11051
  const style = el.style;
11018
11052
  const isCssString = isString(next);
@@ -11335,11 +11369,10 @@ Expected function or array of functions, received type ${typeof value}.`
11335
11369
  }
11336
11370
 
11337
11371
  const REMOVAL = {};
11338
- /*! #__NO_SIDE_EFFECTS__ */
11339
11372
  // @__NO_SIDE_EFFECTS__
11340
11373
  function defineCustomElement(options, extraOptions, _createApp) {
11341
- const Comp = defineComponent(options, extraOptions);
11342
- if (isPlainObject(Comp)) extend(Comp, extraOptions);
11374
+ let Comp = defineComponent(options, extraOptions);
11375
+ if (isPlainObject(Comp)) Comp = extend({}, Comp, extraOptions);
11343
11376
  class VueCustomElement extends VueElement {
11344
11377
  constructor(initialProps) {
11345
11378
  super(Comp, initialProps, _createApp);
@@ -11348,7 +11381,6 @@ Expected function or array of functions, received type ${typeof value}.`
11348
11381
  VueCustomElement.def = Comp;
11349
11382
  return VueCustomElement;
11350
11383
  }
11351
-
11352
11384
  const defineSSRCustomElement = (/* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {
11353
11385
  return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);
11354
11386
  });
@@ -11387,7 +11419,11 @@ Expected function or array of functions, received type ${typeof value}.`
11387
11419
  );
11388
11420
  }
11389
11421
  if (_def.shadowRoot !== false) {
11390
- this.attachShadow({ mode: "open" });
11422
+ this.attachShadow(
11423
+ extend({}, _def.shadowRootOptions, {
11424
+ mode: "open"
11425
+ })
11426
+ );
11391
11427
  this._root = this.shadowRoot;
11392
11428
  } else {
11393
11429
  this._root = this;
@@ -11447,9 +11483,18 @@ Expected function or array of functions, received type ${typeof value}.`
11447
11483
  this._app && this._app.unmount();
11448
11484
  if (this._instance) this._instance.ce = void 0;
11449
11485
  this._app = this._instance = null;
11486
+ if (this._teleportTargets) {
11487
+ this._teleportTargets.clear();
11488
+ this._teleportTargets = void 0;
11489
+ }
11450
11490
  }
11451
11491
  });
11452
11492
  }
11493
+ _processMutations(mutations) {
11494
+ for (const m of mutations) {
11495
+ this._setAttr(m.attributeName);
11496
+ }
11497
+ }
11453
11498
  /**
11454
11499
  * resolve inner component definition (handle possible async component)
11455
11500
  */
@@ -11460,11 +11505,7 @@ Expected function or array of functions, received type ${typeof value}.`
11460
11505
  for (let i = 0; i < this.attributes.length; i++) {
11461
11506
  this._setAttr(this.attributes[i].name);
11462
11507
  }
11463
- this._ob = new MutationObserver((mutations) => {
11464
- for (const m of mutations) {
11465
- this._setAttr(m.attributeName);
11466
- }
11467
- });
11508
+ this._ob = new MutationObserver(this._processMutations.bind(this));
11468
11509
  this._ob.observe(this, { attributes: true });
11469
11510
  const resolve = (def, isAsync = false) => {
11470
11511
  this._resolved = true;
@@ -11580,7 +11621,10 @@ Expected function or array of functions, received type ${typeof value}.`
11580
11621
  }
11581
11622
  if (shouldReflect) {
11582
11623
  const ob = this._ob;
11583
- ob && ob.disconnect();
11624
+ if (ob) {
11625
+ this._processMutations(ob.takeRecords());
11626
+ ob.disconnect();
11627
+ }
11584
11628
  if (val === true) {
11585
11629
  this.setAttribute(hyphenate(key), "");
11586
11630
  } else if (typeof val === "string" || typeof val === "number") {
@@ -11684,7 +11728,7 @@ Expected function or array of functions, received type ${typeof value}.`
11684
11728
  * Only called when shadowRoot is false
11685
11729
  */
11686
11730
  _renderSlots() {
11687
- const outlets = (this._teleportTarget || this).querySelectorAll("slot");
11731
+ const outlets = this._getSlots();
11688
11732
  const scopeId = this._instance.type.__scopeId;
11689
11733
  for (let i = 0; i < outlets.length; i++) {
11690
11734
  const o = outlets[i];
@@ -11710,6 +11754,19 @@ Expected function or array of functions, received type ${typeof value}.`
11710
11754
  parent.removeChild(o);
11711
11755
  }
11712
11756
  }
11757
+ /**
11758
+ * @internal
11759
+ */
11760
+ _getSlots() {
11761
+ const roots = [this];
11762
+ if (this._teleportTargets) {
11763
+ roots.push(...this._teleportTargets);
11764
+ }
11765
+ return roots.reduce((res, i) => {
11766
+ res.push(...Array.from(i.querySelectorAll("slot")));
11767
+ return res;
11768
+ }, []);
11769
+ }
11713
11770
  /**
11714
11771
  * @internal
11715
11772
  */
@@ -11799,7 +11856,7 @@ Expected function or array of functions, received type ${typeof value}.`
11799
11856
  prevChildren.forEach(callPendingCbs);
11800
11857
  prevChildren.forEach(recordPosition);
11801
11858
  const movedChildren = prevChildren.filter(applyTranslation);
11802
- forceReflow();
11859
+ forceReflow(instance.vnode.el);
11803
11860
  movedChildren.forEach((c) => {
11804
11861
  const el = c.el;
11805
11862
  const style = el.style;
@@ -11809,7 +11866,7 @@ Expected function or array of functions, received type ${typeof value}.`
11809
11866
  if (e && e.target !== el) {
11810
11867
  return;
11811
11868
  }
11812
- if (!e || /transform$/.test(e.propertyName)) {
11869
+ if (!e || e.propertyName.endsWith("transform")) {
11813
11870
  el.removeEventListener("transitionend", cb);
11814
11871
  el[moveCbKey] = null;
11815
11872
  removeTransitionClass(el, moveClass);