vue 3.5.43 → 3.5.44

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 v3.5.43
2
+ * vue v3.5.44
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -191,7 +191,7 @@ const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
191
191
  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
192
192
  const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);
193
193
 
194
- const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
194
+ const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,playsinline,readonly`;
195
195
  const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
196
196
  const isBooleanAttr = /* @__PURE__ */ makeMap(
197
197
  specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
@@ -1239,19 +1239,41 @@ const arrayInstrumentations = {
1239
1239
  };
1240
1240
  function iterator(self, method, wrapValue) {
1241
1241
  const arr = shallowReadArray(self);
1242
- const iter = arr[method]();
1242
+ const methodFn = arr[method];
1243
+ const iter = methodFn.call(arr);
1243
1244
  if (arr !== self && !isShallow(self)) {
1244
- iter._next = iter.next;
1245
- iter.next = () => {
1246
- const result = iter._next();
1247
- if (!result.done) {
1248
- result.value = wrapValue(result.value);
1245
+ if (iter[Symbol.toStringTag] === "Array Iterator") {
1246
+ const wrapped = Object.create(Object.getPrototypeOf(iter));
1247
+ wrapped.next = () => wrapResult(iter.next(), wrapValue);
1248
+ if (methodFn !== arrayProto[method]) {
1249
+ Object.defineProperties(wrapped, {
1250
+ return: {
1251
+ get() {
1252
+ const fn = iter.return;
1253
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1254
+ }
1255
+ },
1256
+ throw: {
1257
+ get() {
1258
+ const fn = iter.throw;
1259
+ return typeof fn === "function" ? fn.bind(iter) : fn;
1260
+ }
1261
+ }
1262
+ });
1249
1263
  }
1250
- return result;
1251
- };
1264
+ return wrapped;
1265
+ }
1266
+ iter._next = iter.next;
1267
+ iter.next = () => wrapResult(iter._next(), wrapValue);
1252
1268
  }
1253
1269
  return iter;
1254
1270
  }
1271
+ function wrapResult(result, wrapValue) {
1272
+ if (!result.done) {
1273
+ result.value = wrapValue(result.value);
1274
+ }
1275
+ return result;
1276
+ }
1255
1277
  const arrayProto = Array.prototype;
1256
1278
  function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1257
1279
  const arr = shallowReadArray(self);
@@ -1674,6 +1696,8 @@ function createInstrumentationGetter(isReadonly2, shallow) {
1674
1696
  return !isReadonly2;
1675
1697
  } else if (key === "__v_isReadonly") {
1676
1698
  return isReadonly2;
1699
+ } else if (key === "__v_isShallow") {
1700
+ return shallow;
1677
1701
  } else if (key === "__v_raw") {
1678
1702
  return target;
1679
1703
  }
@@ -2219,9 +2243,11 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2219
2243
  if (once && cb) {
2220
2244
  const _cb = cb;
2221
2245
  cb = (...args) => {
2222
- const res = _cb(...args);
2223
- watchHandle();
2224
- return res;
2246
+ try {
2247
+ return _cb(...args);
2248
+ } finally {
2249
+ watchHandle();
2250
+ }
2225
2251
  };
2226
2252
  }
2227
2253
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
@@ -2232,12 +2258,13 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2232
2258
  if (cb) {
2233
2259
  const newValue = effect.run();
2234
2260
  if (immediateFirstRun || deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {
2235
- if (cleanup) {
2236
- cleanup();
2237
- }
2238
2261
  const currentWatcher = activeWatcher;
2239
- activeWatcher = effect;
2262
+ pauseTracking();
2240
2263
  try {
2264
+ if (cleanup) {
2265
+ cleanup();
2266
+ }
2267
+ activeWatcher = effect;
2241
2268
  const args = [
2242
2269
  newValue,
2243
2270
  // pass undefined as the old value when it's changed for the first time
@@ -2251,6 +2278,7 @@ function watch$1(source, cb, options = EMPTY_OBJ) {
2251
2278
  );
2252
2279
  } finally {
2253
2280
  activeWatcher = currentWatcher;
2281
+ resetTracking();
2254
2282
  }
2255
2283
  }
2256
2284
  } else {
@@ -2651,21 +2679,21 @@ function queuePostFlushCb(cb) {
2651
2679
  }
2652
2680
  queueFlush();
2653
2681
  }
2654
- function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2682
+ function flushPreFlushCbs(instance, minUid, seen, i = flushIndex + 1) {
2655
2683
  {
2656
2684
  seen = seen || /* @__PURE__ */ new Map();
2657
2685
  }
2658
2686
  for (; i < queue.length; i++) {
2659
2687
  const cb = queue[i];
2660
2688
  if (cb && cb.flags & 2) {
2661
- if (instance && cb.id !== instance.uid) {
2689
+ if (instance && cb.id !== instance.uid || minUid !== void 0 && !(cb.id >= minUid)) {
2662
2690
  continue;
2663
2691
  }
2664
2692
  if (checkRecursiveUpdates(seen, cb)) {
2665
2693
  continue;
2666
2694
  }
2667
2695
  queue.splice(i, 1);
2668
- i--;
2696
+ i = instance ? i - 1 : flushIndex;
2669
2697
  if (cb.flags & 4) {
2670
2698
  cb.flags &= -2;
2671
2699
  }
@@ -2676,12 +2704,23 @@ function flushPreFlushCbs(instance, seen, i = flushIndex + 1) {
2676
2704
  }
2677
2705
  }
2678
2706
  }
2679
- function flushPostFlushCbs(seen) {
2707
+ function flushPostFlushCbs(seen, skip, minUid = 0) {
2680
2708
  if (pendingPostFlushCbs.length) {
2681
- const deduped = [...new Set(pendingPostFlushCbs)].sort(
2682
- (a, b) => getId(a) - getId(b)
2683
- );
2684
- pendingPostFlushCbs.length = 0;
2709
+ let cbs = pendingPostFlushCbs;
2710
+ let kept = 0;
2711
+ if (skip) {
2712
+ cbs = [];
2713
+ for (let i = 0; i < pendingPostFlushCbs.length; i++) {
2714
+ const cb = pendingPostFlushCbs[i];
2715
+ if (cb.i !== void 0 ? !cb.i || cb.i.uid < minUid : skip.has(cb)) {
2716
+ pendingPostFlushCbs[kept++] = cb;
2717
+ } else {
2718
+ cbs.push(cb);
2719
+ }
2720
+ }
2721
+ }
2722
+ const deduped = [...new Set(cbs)].sort((a, b) => getId(a) - getId(b));
2723
+ pendingPostFlushCbs.length = kept;
2685
2724
  if (activePostFlushCbs) {
2686
2725
  for (let i = 0; i < deduped.length; i++) {
2687
2726
  activePostFlushCbs.push(deduped[i]);
@@ -2707,6 +2746,22 @@ function flushPostFlushCbs(seen) {
2707
2746
  postFlushIndex = 0;
2708
2747
  }
2709
2748
  }
2749
+ let isFlushing = false;
2750
+ function flushOnAppMount(fn, minUid) {
2751
+ if (isFlushing) {
2752
+ fn();
2753
+ return;
2754
+ }
2755
+ const queued = minUid === void 0 ? void 0 : new Set(pendingPostFlushCbs);
2756
+ fn();
2757
+ isFlushing = true;
2758
+ try {
2759
+ flushPreFlushCbs(void 0, minUid);
2760
+ flushPostFlushCbs(void 0, queued, minUid);
2761
+ } finally {
2762
+ isFlushing = false;
2763
+ }
2764
+ }
2710
2765
  const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;
2711
2766
  function flushJobs(seen) {
2712
2767
  {
@@ -3208,6 +3263,7 @@ function doWatch(source, cb, options = EMPTY_OBJ) {
3208
3263
  let isPre = false;
3209
3264
  if (flush === "post") {
3210
3265
  baseWatchOptions.scheduler = (job) => {
3266
+ job.i = instance;
3211
3267
  queuePostRenderEffect(job, instance && instance.suspense);
3212
3268
  };
3213
3269
  } else if (flush !== "sync") {
@@ -3509,7 +3565,11 @@ const TeleportImpl = {
3509
3565
  };
3510
3566
  function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
3511
3567
  if (moveType === 0) {
3568
+ if (vnode.targetStart) {
3569
+ insert(vnode.targetStart, container, parentAnchor);
3570
+ }
3512
3571
  insert(vnode.targetAnchor, container, parentAnchor);
3572
+ parentAnchor = vnode.targetAnchor;
3513
3573
  }
3514
3574
  const { el, anchor, shapeFlag, children, props } = vnode;
3515
3575
  const isReorder = moveType === 2;
@@ -3678,10 +3738,6 @@ const BaseTransitionPropsValidators = {
3678
3738
  onAfterAppear: TransitionHookValidator,
3679
3739
  onAppearCancelled: TransitionHookValidator
3680
3740
  };
3681
- const recursiveGetSubtree = (instance) => {
3682
- const subTree = instance.subTree;
3683
- return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;
3684
- };
3685
3741
  const BaseTransitionImpl = {
3686
3742
  name: `BaseTransition`,
3687
3743
  props: BaseTransitionPropsValidators,
@@ -3722,7 +3778,7 @@ const BaseTransitionImpl = {
3722
3778
  setTransitionHooks(innerChild, enterHooks);
3723
3779
  }
3724
3780
  let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);
3725
- if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {
3781
+ if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && getTransitionRoot(instance.subTree)) {
3726
3782
  let leavingHooks = resolveTransitionHooks(
3727
3783
  oldInnerChild,
3728
3784
  rawProps,
@@ -3855,8 +3911,15 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
3855
3911
  );
3856
3912
  }
3857
3913
  const leavingVNode = leavingVNodesCache[key];
3858
- if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {
3859
- leavingVNode.el[leaveCbKey]();
3914
+ if (leavingVNode && isSameVNodeType(vnode, leavingVNode)) {
3915
+ let leavingCb = leavingVNode.el[leaveCbKey];
3916
+ if (!leavingCb) {
3917
+ const leavingRoot = getTransitionRoot(leavingVNode);
3918
+ leavingCb = leavingRoot && leavingRoot.el[leaveCbKey];
3919
+ }
3920
+ if (leavingCb) {
3921
+ leavingCb();
3922
+ }
3860
3923
  }
3861
3924
  callHook(hook, [el]);
3862
3925
  },
@@ -3984,6 +4047,12 @@ function setTransitionHooks(vnode, hooks) {
3984
4047
  vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
3985
4048
  } else {
3986
4049
  vnode.transition = hooks;
4050
+ if (vnode.type === Fragment && isArray(vnode.children)) {
4051
+ const child = filterSingleRoot(vnode.children, false);
4052
+ if (child) {
4053
+ setTransitionHooks(child, hooks);
4054
+ }
4055
+ }
3987
4056
  }
3988
4057
  }
3989
4058
  function getTransitionRawChildren(children, keepComment = false, parentKey) {
@@ -4008,6 +4077,18 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
4008
4077
  }
4009
4078
  return ret;
4010
4079
  }
4080
+ function getTransitionRoot(vnode) {
4081
+ if (vnode.component) {
4082
+ return getTransitionRoot(vnode.component.subTree);
4083
+ }
4084
+ if (vnode.type === Fragment) {
4085
+ const child = isArray(vnode.children) && filterSingleRoot(vnode.children, false);
4086
+ return child ? getTransitionRoot(child) : void 0;
4087
+ }
4088
+ if (vnode.type !== Comment) {
4089
+ return vnode;
4090
+ }
4091
+ }
4011
4092
 
4012
4093
  // @__NO_SIDE_EFFECTS__
4013
4094
  function defineComponent(options, extraOptions) {
@@ -4913,14 +4994,22 @@ const hydrateOnVisible = (opts) => (hydrate, forEach) => {
4913
4994
  break;
4914
4995
  }
4915
4996
  }, opts);
4916
- forEach((el) => {
4917
- if (!(el instanceof Element)) return;
4997
+ const observe = (el) => {
4918
4998
  if (elementIsVisibleInViewport(el)) {
4919
4999
  hydrate();
4920
5000
  ob.disconnect();
4921
5001
  return false;
4922
5002
  }
5003
+ if (getComputedStyle(el).display === "contents") {
5004
+ for (let i = 0; i < el.children.length; i++) {
5005
+ if (observe(el.children[i]) === false) return false;
5006
+ }
5007
+ }
4923
5008
  ob.observe(el);
5009
+ };
5010
+ forEach((el) => {
5011
+ if (!(el instanceof Element)) return;
5012
+ return observe(el);
4924
5013
  });
4925
5014
  return () => ob.disconnect();
4926
5015
  };
@@ -5277,6 +5366,7 @@ const KeepAliveImpl = {
5277
5366
  unmount(cached);
5278
5367
  } else if (current) {
5279
5368
  resetShapeFlag(current);
5369
+ if (cached) resetShapeFlag(cached);
5280
5370
  }
5281
5371
  cache.delete(key);
5282
5372
  keys.delete(key);
@@ -5568,9 +5658,11 @@ function renderList(source, renderItem, cache, index) {
5568
5658
  }
5569
5659
  } else if (typeof source === "number") {
5570
5660
  if (!Number.isInteger(source) || source < 0) {
5571
- warn$1(
5572
- `The v-for range expects a positive integer value but got ${source}.`
5573
- );
5661
+ {
5662
+ warn$1(
5663
+ `The v-for range expects a positive integer value but got ${source}.`
5664
+ );
5665
+ }
5574
5666
  ret = [];
5575
5667
  } else {
5576
5668
  ret = new Array(source);
@@ -7208,7 +7300,7 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
7208
7300
  }
7209
7301
  for (let i = 0; i < nextKeys.length; i++) {
7210
7302
  const key = nextKeys[i];
7211
- if (hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7303
+ if (!hasOwn(prevProps, key) || hasPropValueChanged(nextProps, prevProps, key) && !isEmitListener(emitsOptions, key)) {
7212
7304
  return true;
7213
7305
  }
7214
7306
  }
@@ -8247,15 +8339,16 @@ function baseCreateRenderer(options, createHydrationFns) {
8247
8339
  for (let i = 0; i < newChildren.length; i++) {
8248
8340
  const oldVNode = oldChildren[i];
8249
8341
  const newVNode = newChildren[i];
8342
+ const oldEl = oldVNode.el || resolveAsyncComponentPlaceholder(oldVNode);
8250
8343
  const container = (
8251
8344
  // oldVNode may be an errored async setup() component inside Suspense
8252
8345
  // which will not have a mounted element
8253
- oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
8346
+ oldEl && // - In the case of a Fragment, we need to provide the actual parent
8254
8347
  // of the Fragment itself so it can move its children.
8255
8348
  (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
8256
8349
  // which also requires the correct parent container
8257
8350
  !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
8258
- oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldVNode.el) : (
8351
+ oldVNode.shapeFlag & (6 | 64 | 128)) ? hostParentNode(oldEl) : (
8259
8352
  // In other cases, the parent container is not actually used so we
8260
8353
  // just pass the block element here to avoid a DOM parentNode call.
8261
8354
  fallbackContainer
@@ -8419,7 +8512,12 @@ function baseCreateRenderer(options, createHydrationFns) {
8419
8512
  }
8420
8513
  if (isHmrUpdating) initialVNode.el = null;
8421
8514
  if (instance.asyncDep) {
8422
- parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);
8515
+ parentSuspense && parentSuspense.registerDep(
8516
+ instance,
8517
+ setupRenderEffect,
8518
+ optimized,
8519
+ namespace
8520
+ );
8423
8521
  if (!initialVNode.el) {
8424
8522
  const placeholder = instance.subTree = createVNode(Comment);
8425
8523
  processCommentNode(null, placeholder, container, anchor);
@@ -8449,6 +8547,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8449
8547
  pushWarningContext(n2);
8450
8548
  }
8451
8549
  n2.el = n1.el;
8550
+ n2.placeholder = n1.placeholder;
8452
8551
  updateComponentPreRender(instance, n2, optimized);
8453
8552
  {
8454
8553
  popWarningContext();
@@ -8460,6 +8559,7 @@ function baseCreateRenderer(options, createHydrationFns) {
8460
8559
  }
8461
8560
  } else {
8462
8561
  n2.el = n1.el;
8562
+ n2.placeholder = n1.placeholder;
8463
8563
  instance.vnode = n2;
8464
8564
  }
8465
8565
  };
@@ -9113,18 +9213,9 @@ function baseCreateRenderer(options, createHydrationFns) {
9113
9213
  };
9114
9214
  const remove = (vnode) => {
9115
9215
  const { type, el, anchor, transition } = vnode;
9116
- if (type === Fragment) {
9117
- if (vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {
9118
- vnode.children.forEach((child) => {
9119
- if (child.type === Comment) {
9120
- hostRemove(child.el);
9121
- } else {
9122
- remove(child);
9123
- }
9124
- });
9125
- } else {
9126
- removeFragment(el, anchor);
9127
- }
9216
+ const isFragment = type === Fragment;
9217
+ if (isFragment && !transition) {
9218
+ removeFragment(el, anchor);
9128
9219
  return;
9129
9220
  }
9130
9221
  if (type === Static) {
@@ -9134,17 +9225,25 @@ function baseCreateRenderer(options, createHydrationFns) {
9134
9225
  }
9135
9226
  return;
9136
9227
  }
9228
+ const leavingNode = isFragment ? getTransitionRoot(vnode) : vnode;
9137
9229
  const performRemove = () => {
9138
- hostRemove(el);
9230
+ if (isFragment) {
9231
+ if (hostParentNode(el)) {
9232
+ removeFragment(el, anchor);
9233
+ }
9234
+ } else {
9235
+ hostRemove(el);
9236
+ }
9139
9237
  if (transition && !transition.persisted && transition.afterLeave) {
9140
9238
  transition.afterLeave();
9141
9239
  }
9142
9240
  };
9143
- if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
9241
+ if (leavingNode && leavingNode.shapeFlag & 1 && transition && !transition.persisted) {
9144
9242
  const { leave, delayLeave } = transition;
9145
- const performLeave = () => leave(el, performRemove);
9243
+ const leavingEl = leavingNode.el;
9244
+ const performLeave = () => leave(leavingEl, performRemove);
9146
9245
  if (delayLeave) {
9147
- delayLeave(vnode.el, performRemove, performLeave);
9246
+ delayLeave(leavingEl, performRemove, performLeave);
9148
9247
  } else {
9149
9248
  performLeave();
9150
9249
  }
@@ -9205,32 +9304,26 @@ function baseCreateRenderer(options, createHydrationFns) {
9205
9304
  const teleportEnd = el && el[TeleportEndKey];
9206
9305
  return teleportEnd ? hostNextSibling(teleportEnd) : el;
9207
9306
  };
9208
- let isFlushing = false;
9209
9307
  const render = (vnode, container, namespace) => {
9210
- let instance;
9211
- if (vnode == null) {
9212
- if (container._vnode) {
9213
- unmount(container._vnode, null, null, true);
9214
- instance = container._vnode.component;
9308
+ const minUid = vnode && container._vnode ? void 0 : vnode && vnode.component ? vnode.component.uid : getNextUid();
9309
+ flushOnAppMount(() => {
9310
+ if (vnode == null) {
9311
+ if (container._vnode) {
9312
+ unmount(container._vnode, null, null, true);
9313
+ }
9314
+ } else {
9315
+ patch(
9316
+ container._vnode || null,
9317
+ vnode,
9318
+ container,
9319
+ null,
9320
+ null,
9321
+ null,
9322
+ namespace
9323
+ );
9215
9324
  }
9216
- } else {
9217
- patch(
9218
- container._vnode || null,
9219
- vnode,
9220
- container,
9221
- null,
9222
- null,
9223
- null,
9224
- namespace
9225
- );
9226
- }
9227
- container._vnode = vnode;
9228
- if (!isFlushing) {
9229
- isFlushing = true;
9230
- flushPreFlushCbs(instance);
9231
- flushPostFlushCbs();
9232
- isFlushing = false;
9233
- }
9325
+ container._vnode = vnode;
9326
+ }, minUid);
9234
9327
  };
9235
9328
  const internals = {
9236
9329
  p: patch,
@@ -9818,7 +9911,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9818
9911
  next() {
9819
9912
  return suspense.activeBranch && next(suspense.activeBranch);
9820
9913
  },
9821
- registerDep(instance, setupRenderEffect, optimized2) {
9914
+ // `namespace` intentionally shadows the boundary's own: the dep must be
9915
+ // mounted with the namespace of the position it was rendered at, which can
9916
+ // differ from the boundary's (e.g. a component nested inside an <svg>).
9917
+ registerDep(instance, setupRenderEffect, optimized2, namespace2) {
9822
9918
  const isInPendingSuspense = !!suspense.pendingBranch;
9823
9919
  if (isInPendingSuspense) {
9824
9920
  suspense.deps++;
@@ -9831,7 +9927,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9831
9927
  return;
9832
9928
  }
9833
9929
  unsetCurrentInstance();
9834
- if (hydratedEl && !instance.scope.active) {
9930
+ if (!instance.scope.active) {
9835
9931
  if (isInPendingSuspense && --suspense.deps === 0) {
9836
9932
  suspense.resolve();
9837
9933
  }
@@ -9858,7 +9954,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9858
9954
  // consider the comment placeholder case.
9859
9955
  hydratedEl ? null : next(instance.subTree),
9860
9956
  suspense,
9861
- namespace,
9957
+ namespace2,
9862
9958
  optimized2
9863
9959
  );
9864
9960
  if (placeholder) {
@@ -10392,6 +10488,9 @@ function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
10392
10488
 
10393
10489
  const emptyAppContext = createAppContext();
10394
10490
  let uid = 0;
10491
+ function getNextUid() {
10492
+ return uid;
10493
+ }
10395
10494
  function createComponentInstance(vnode, parent, suspense) {
10396
10495
  const type = vnode.type;
10397
10496
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
@@ -11064,7 +11163,7 @@ function isMemoSame(cached, memo) {
11064
11163
  return true;
11065
11164
  }
11066
11165
 
11067
- const version = "3.5.43";
11166
+ const version = "3.5.44";
11068
11167
  const warn = warn$1 ;
11069
11168
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11070
11169
  const devtools = devtools$1 ;
@@ -11640,7 +11739,9 @@ function patchStyle(el, prev, next) {
11640
11739
  }
11641
11740
  }
11642
11741
  if (vShowOriginalDisplay in el) {
11643
- el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11742
+ if (!isCssString || prev !== next) {
11743
+ el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : "";
11744
+ }
11644
11745
  if (el[vShowHidden]) {
11645
11746
  style.display = "none";
11646
11747
  }
@@ -12122,7 +12223,9 @@ class VueElement extends BaseClass {
12122
12223
  "Custom element style injection is not supported when using shadowRoot: false"
12123
12224
  );
12124
12225
  }
12125
- this._mount(def);
12226
+ if (this._connected) {
12227
+ this._mount(def);
12228
+ }
12126
12229
  };
12127
12230
  const asyncDef = this._def.__asyncLoader;
12128
12231
  if (asyncDef) {
@@ -12492,6 +12595,7 @@ const positionMap = /* @__PURE__ */ new WeakMap();
12492
12595
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12493
12596
  const moveCbKey = /* @__PURE__ */ Symbol("_moveCb");
12494
12597
  const enterCbKey = /* @__PURE__ */ Symbol("_enterCb");
12598
+ const pendingGroups = /* @__PURE__ */ new WeakMap();
12495
12599
  const decorate = (t) => {
12496
12600
  delete t.props.mode;
12497
12601
  return t;
@@ -12507,21 +12611,30 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
12507
12611
  const state = useTransitionState();
12508
12612
  let prevChildren;
12509
12613
  let children;
12510
- onUpdated(() => {
12511
- if (!prevChildren.length) {
12512
- return;
12614
+ let origins;
12615
+ let moves;
12616
+ const willMove = () => {
12617
+ if (moves === void 0) {
12618
+ moves = prevChildren.length > 0 && hasCSSTransform(
12619
+ prevChildren[0].el,
12620
+ instance.vnode.el,
12621
+ resolveMoveClass(props)
12622
+ );
12513
12623
  }
12514
- const moveClass = props.moveClass || `${props.name || "v"}-move`;
12515
- if (!hasCSSTransform(
12516
- prevChildren[0].el,
12517
- instance.vnode.el,
12518
- moveClass
12519
- )) {
12624
+ return moves;
12625
+ };
12626
+ onUpdated(() => {
12627
+ pendingGroups.delete(instance);
12628
+ if (!willMove()) {
12520
12629
  prevChildren = [];
12630
+ origins = void 0;
12521
12631
  return;
12522
12632
  }
12633
+ const moveClass = resolveMoveClass(props);
12523
12634
  prevChildren.forEach(callPendingCbs);
12524
- prevChildren.forEach(recordPosition);
12635
+ const shift = origins && getOriginShift(origins, instance.vnode.el);
12636
+ origins = void 0;
12637
+ prevChildren.forEach((c) => recordPosition(c, shift));
12525
12638
  const movedChildren = prevChildren.filter(applyTranslation);
12526
12639
  forceReflow(instance.vnode.el);
12527
12640
  movedChildren.forEach((c) => {
@@ -12548,6 +12661,7 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
12548
12661
  const cssTransitionProps = resolveTransitionProps(rawProps);
12549
12662
  let tag = rawProps.tag || Fragment;
12550
12663
  prevChildren = [];
12664
+ moves = void 0;
12551
12665
  if (children) {
12552
12666
  for (let i = 0; i < children.length; i++) {
12553
12667
  const child = children[i];
@@ -12579,6 +12693,10 @@ const TransitionGroupImpl = /* @__PURE__ */ decorate({
12579
12693
  warn(`<TransitionGroup> children must be keyed.`);
12580
12694
  }
12581
12695
  }
12696
+ if (prevChildren.length) {
12697
+ origins = getOrigins(instance);
12698
+ pendingGroups.set(instance, willMove);
12699
+ }
12582
12700
  return createVNode(tag, null, children);
12583
12701
  };
12584
12702
  }
@@ -12593,8 +12711,11 @@ function callPendingCbs(c) {
12593
12711
  el[enterCbKey]();
12594
12712
  }
12595
12713
  }
12596
- function recordPosition(c) {
12597
- newPositionMap.set(c, getPosition(c.el));
12714
+ function resolveMoveClass(props) {
12715
+ return props.moveClass || `${props.name || "v"}-move`;
12716
+ }
12717
+ function recordPosition(c, shift) {
12718
+ newPositionMap.set(c, getPosition(c.el, shift));
12598
12719
  }
12599
12720
  function applyTranslation(c) {
12600
12721
  const oldPos = positionMap.get(c);
@@ -12618,13 +12739,41 @@ function applyTranslation(c) {
12618
12739
  return c;
12619
12740
  }
12620
12741
  }
12621
- function getPosition(el) {
12742
+ function getPosition(el, shift) {
12622
12743
  const rect = el.getBoundingClientRect();
12623
12744
  return {
12624
- left: rect.left,
12625
- top: rect.top
12745
+ left: rect.left - (shift ? shift.left : 0),
12746
+ top: rect.top - (shift ? shift.top : 0)
12626
12747
  };
12627
12748
  }
12749
+ function getOrigins(instance) {
12750
+ let origins;
12751
+ for (let group = instance.parent; group; group = group.parent) {
12752
+ const willMove = pendingGroups.get(group);
12753
+ if (willMove) {
12754
+ const item = findItem(group.vnode.el, instance.vnode.el);
12755
+ if (item) {
12756
+ (origins || (origins = [])).push(
12757
+ extend(getPosition(item), { item, willMove })
12758
+ );
12759
+ }
12760
+ }
12761
+ }
12762
+ return origins;
12763
+ }
12764
+ function findItem(root, node) {
12765
+ const container = root.nodeType === 1 ? root : root.parentNode;
12766
+ while (node && node.parentNode !== container) {
12767
+ node = node.parentNode;
12768
+ }
12769
+ if (node && node.nodeType === 1) {
12770
+ return node;
12771
+ }
12772
+ }
12773
+ function getOriginShift(origins, root) {
12774
+ const origin = origins.find((o) => o.willMove() && o.item.contains(root));
12775
+ return origin && getPosition(origin.item, origin);
12776
+ }
12628
12777
  function hasCSSTransform(el, root, moveClass) {
12629
12778
  const clone = el.cloneNode();
12630
12779
  const _vtc = el[vtcKey];