@vue/compat 3.6.0-rc.6 → 3.6.0-rc.8

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.
@@ -1050,15 +1050,13 @@ interface VaporInVdomInterface {
1050
1050
  setTransitionHooks(component: ComponentInternalInstance, transition: TransitionHooks): void;
1051
1051
  }
1052
1052
  /**
1053
- * Options for rendering a VDOM slot inside vapor. The booleans describe the
1054
- * outlet's position in the fallback chain; see renderVDOMSlot.
1053
+ * Options for rendering a VDOM slot inside vapor. `flags` carries the
1054
+ * outlet's VaporSlotFlags describing its position in the fallback chain;
1055
+ * see renderVDOMSlot.
1055
1056
  */
1056
1057
  interface VdomSlotOptions {
1057
1058
  fallback?: (...args: any[]) => any;
1058
- once?: boolean;
1059
- slotRoot?: boolean;
1060
- sharedFallback?: boolean;
1061
- inheritFallback?: boolean;
1059
+ flags?: number;
1062
1060
  adoptAnchor?: Node;
1063
1061
  }
1064
1062
  /**
@@ -1067,7 +1065,7 @@ interface VdomSlotOptions {
1067
1065
  interface VdomInVaporInterface {
1068
1066
  mount: (component: ConcreteComponent, parentComponent: any, props?: any, slots?: any, once?: boolean) => any;
1069
1067
  slot: (slots: any, name: string | (() => string), props: Record<string, any>, parentComponent: any, options?: VdomSlotOptions) => any;
1070
- mountVNode: (vnode: VNode, parentComponent: any, getFallthroughAttrs?: () => Record<string, any>) => any;
1068
+ mountVNode: (vnode: VNode, parentComponent: any, isSingleRoot?: boolean) => any;
1071
1069
  }
1072
1070
  /**
1073
1071
  * Minimal app context shared between vdom and vapor
@@ -1597,11 +1595,6 @@ interface GenericComponentInstance {
1597
1595
  * @internal
1598
1596
  */
1599
1597
  asyncResolved: boolean;
1600
- /**
1601
- * restore renderer-specific async context after `withAsyncContext()`
1602
- * @internal
1603
- */
1604
- restoreAsyncContext?: () => void | (() => void);
1605
1598
  /**
1606
1599
  * `updateTeleportCssVars`
1607
1600
  * For updating css vars on contained teleports
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.6
2
+ * @vue/compat v3.6.0-rc.8
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -584,6 +584,8 @@ function setupFlagsHandler(target) {
584
584
  function warn$2(msg, ...args) {
585
585
  console.warn(`[Vue warn] ${msg}`, ...args);
586
586
  }
587
+ //#endregion
588
+ //#region packages/reactivity/src/system.ts
587
589
  const notifyBuffer = [];
588
590
  let batchDepth = 0;
589
591
  let activeSub = void 0;
@@ -4038,7 +4040,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
4038
4040
  else done();
4039
4041
  },
4040
4042
  clone(node) {
4041
- return cloneHooks(node);
4043
+ return cloneHooks ? cloneHooks(node) : hooks;
4042
4044
  }
4043
4045
  };
4044
4046
  return hooks;
@@ -4876,7 +4878,7 @@ function defineAsyncComponent(source) {
4876
4878
  name: "AsyncComponentWrapper",
4877
4879
  __asyncLoader: load,
4878
4880
  __asyncHydrate(el, instance, hydrate) {
4879
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4881
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4880
4882
  },
4881
4883
  get __asyncResolved() {
4882
4884
  return getResolvedComp();
@@ -4995,10 +4997,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4995
4997
  * shared between core and vapor
4996
4998
  * @internal
4997
4999
  */
4998
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
5000
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4999
5001
  const wasConnected = el.isConnected;
5000
5002
  let patched = false;
5001
- (instance.bu || (instance.bu = [])).push(() => patched = true);
5003
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
5002
5004
  const performHydrate = () => {
5003
5005
  if (patched) {
5004
5006
  {
@@ -6251,37 +6253,32 @@ function createPropsRestProxy(props, excludedKeys) {
6251
6253
  function withAsyncContext(getAwaitable) {
6252
6254
  const ctx = getCurrentGenericInstance();
6253
6255
  const inSSRSetup = isInSSRComponentSetup;
6254
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6255
6256
  if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6256
6257
  let awaitable = getAwaitable();
6257
6258
  setCurrentInstance(null, void 0);
6258
6259
  if (inSSRSetup) setInSSRSetupState(false);
6259
6260
  const restore = () => {
6260
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6261
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6261
6262
  setCurrentInstance(ctx);
6262
6263
  if (inSSRSetup) setInSSRSetupState(true);
6263
- const reset = restoreAsyncContext && restoreAsyncContext();
6264
- return () => {
6265
- if (reset) reset();
6266
- if (resetStoppedScope) resetStoppedScope.reset();
6267
- };
6264
+ return stoppedScope;
6268
6265
  };
6269
6266
  const cleanup = () => {
6270
6267
  setCurrentInstance(null, void 0);
6271
6268
  if (inSSRSetup) setInSSRSetupState(false);
6272
6269
  };
6273
6270
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6274
- const reset = restore();
6271
+ const stoppedScope = restore();
6275
6272
  Promise.resolve().then(() => Promise.resolve().then(() => {
6276
- if (reset) reset();
6273
+ if (stoppedScope) stoppedScope.reset();
6277
6274
  cleanup();
6278
6275
  }));
6279
6276
  throw e;
6280
6277
  });
6281
6278
  return [awaitable, () => {
6282
- const reset = restore();
6279
+ const stoppedScope = restore();
6283
6280
  Promise.resolve().then(() => {
6284
- if (reset) reset();
6281
+ if (stoppedScope) stoppedScope.reset();
6285
6282
  cleanup();
6286
6283
  });
6287
6284
  }];
@@ -6607,7 +6604,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6607
6604
  if (options.el) return vm.$mount(options.el);
6608
6605
  else return vm;
6609
6606
  }
6610
- Vue.version = `2.6.14-compat:3.6.0-rc.6`;
6607
+ Vue.version = `2.6.14-compat:3.6.0-rc.8`;
6611
6608
  Vue.config = singletonApp.config;
6612
6609
  Vue.use = (plugin, ...options) => {
6613
6610
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8573,24 +8570,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8573
8570
  }
8574
8571
  if (moveType !== 2 && shapeFlag & 1 && transition) {
8575
8572
  if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8576
- else {
8577
- const { leave, delayLeave, afterLeave } = transition;
8578
- const remove = () => {
8579
- if (vnode.ctx.isUnmounted) hostRemove(el);
8580
- else hostInsert(el, container, anchor);
8581
- };
8582
- const performLeave = () => {
8583
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8584
- if (el._isLeaving) el[leaveCbKey](true);
8585
- if (transition.persisted && !wasLeaving) remove();
8586
- else leave(el, () => {
8587
- remove();
8588
- afterLeave && afterLeave();
8589
- });
8590
- };
8591
- if (delayLeave) delayLeave(el, remove, performLeave);
8592
- else performLeave();
8593
- }
8573
+ else performTransitionLeave(el, transition, () => {
8574
+ if (vnode.ctx.isUnmounted) hostRemove(el);
8575
+ else hostInsert(el, container, anchor);
8576
+ }, true, true);
8594
8577
  } else hostInsert(el, container, anchor);
8595
8578
  };
8596
8579
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
@@ -8824,13 +8807,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8824
8807
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8825
8808
  const performRemove = () => {
8826
8809
  remove();
8827
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8810
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8828
8811
  };
8829
8812
  if (force || isElement && transition && !transition.persisted) {
8830
8813
  const { leave, delayLeave } = transition;
8831
8814
  const performLeave = () => {
8815
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8832
8816
  if (el._isLeaving && force) el[leaveCbKey](true);
8833
- leave(el, performRemove);
8817
+ if (force && transition.persisted && !wasLeaving) remove();
8818
+ else leave(el, performRemove);
8834
8819
  };
8835
8820
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8836
8821
  else performLeave();
@@ -10172,7 +10157,7 @@ function isMemoSame(cached, memo) {
10172
10157
  }
10173
10158
  //#endregion
10174
10159
  //#region packages/runtime-core/src/index.ts
10175
- const version = "3.6.0-rc.6";
10160
+ const version = "3.6.0-rc.8";
10176
10161
  const warn = warn$1;
10177
10162
  /**
10178
10163
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -11109,13 +11094,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
11109
11094
  _renderSlots() {
11110
11095
  const outlets = this._getSlots();
11111
11096
  const scopeId = this._instance.type.__scopeId;
11112
- const slotReplacements = /* @__PURE__ */ new Map();
11113
11097
  for (let i = 0; i < outlets.length; i++) {
11114
11098
  const o = outlets[i];
11115
11099
  const slotName = o.getAttribute("name") || "default";
11116
11100
  const content = this._slots[slotName];
11117
11101
  const parent = o.parentNode;
11118
- const replacementNodes = [];
11119
11102
  if (content) for (const n of content) {
11120
11103
  if (scopeId && n.nodeType === 1) {
11121
11104
  const id = scopeId + "-s";
@@ -11125,20 +11108,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
11125
11108
  while (child = walker.nextNode()) child.setAttribute(id, "");
11126
11109
  }
11127
11110
  parent.insertBefore(n, o);
11128
- replacementNodes.push(n);
11129
- }
11130
- else while (o.firstChild) {
11131
- const child = o.firstChild;
11132
- parent.insertBefore(child, o);
11133
- replacementNodes.push(child);
11134
11111
  }
11112
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
11135
11113
  parent.removeChild(o);
11136
- slotReplacements.set(o, {
11137
- nodes: replacementNodes,
11138
- usedFallback: !content
11139
- });
11140
11114
  }
11141
- this._updateSlotNodes(slotReplacements);
11142
11115
  }
11143
11116
  /**
11144
11117
  * @internal
@@ -11177,7 +11150,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11177
11150
  * @internal
11178
11151
  */
11179
11152
  _hasShadowRoot() {
11180
- return this._def.shadowRoot !== false;
11153
+ return this._root !== this;
11181
11154
  }
11182
11155
  /**
11183
11156
  * @internal
@@ -11222,10 +11195,6 @@ var VueElement = class extends VueElementBase {
11222
11195
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
11223
11196
  this._app = this._instance = null;
11224
11197
  }
11225
- /**
11226
- * Only called when shadowRoot is false
11227
- */
11228
- _updateSlotNodes(replacements) {}
11229
11198
  _createVNode() {
11230
11199
  const baseProps = {};
11231
11200
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.6
2
+ * @vue/compat v3.6.0-rc.8
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -450,6 +450,8 @@ function getSequence(arr) {
450
450
  }
451
451
  return result;
452
452
  }
453
+ //#endregion
454
+ //#region packages/reactivity/src/system.ts
453
455
  const notifyBuffer = [];
454
456
  let batchDepth = 0;
455
457
  let activeSub = void 0;
@@ -3245,7 +3247,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3245
3247
  else done();
3246
3248
  },
3247
3249
  clone(node) {
3248
- return cloneHooks(node);
3250
+ return cloneHooks ? cloneHooks(node) : hooks;
3249
3251
  }
3250
3252
  };
3251
3253
  return hooks;
@@ -3939,7 +3941,7 @@ function defineAsyncComponent(source) {
3939
3941
  name: "AsyncComponentWrapper",
3940
3942
  __asyncLoader: load,
3941
3943
  __asyncHydrate(el, instance, hydrate) {
3942
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
3944
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
3943
3945
  },
3944
3946
  get __asyncResolved() {
3945
3947
  return getResolvedComp();
@@ -4056,10 +4058,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4056
4058
  * shared between core and vapor
4057
4059
  * @internal
4058
4060
  */
4059
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4061
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4060
4062
  const wasConnected = el.isConnected;
4061
4063
  let patched = false;
4062
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4064
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4063
4065
  const performHydrate = () => {
4064
4066
  if (patched) return;
4065
4067
  if (!el.parentNode || wasConnected && !el.isConnected) return;
@@ -5169,36 +5171,31 @@ function createPropsRestProxy(props, excludedKeys) {
5169
5171
  function withAsyncContext(getAwaitable) {
5170
5172
  const ctx = getCurrentGenericInstance();
5171
5173
  const inSSRSetup = isInSSRComponentSetup;
5172
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
5173
5174
  let awaitable = getAwaitable();
5174
5175
  setCurrentInstance(null, void 0);
5175
5176
  if (inSSRSetup) setInSSRSetupState(false);
5176
5177
  const restore = () => {
5177
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5178
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
5178
5179
  setCurrentInstance(ctx);
5179
5180
  if (inSSRSetup) setInSSRSetupState(true);
5180
- const reset = restoreAsyncContext && restoreAsyncContext();
5181
- return () => {
5182
- if (reset) reset();
5183
- if (resetStoppedScope) resetStoppedScope.reset();
5184
- };
5181
+ return stoppedScope;
5185
5182
  };
5186
5183
  const cleanup = () => {
5187
5184
  setCurrentInstance(null, void 0);
5188
5185
  if (inSSRSetup) setInSSRSetupState(false);
5189
5186
  };
5190
5187
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
5191
- const reset = restore();
5188
+ const stoppedScope = restore();
5192
5189
  Promise.resolve().then(() => Promise.resolve().then(() => {
5193
- if (reset) reset();
5190
+ if (stoppedScope) stoppedScope.reset();
5194
5191
  cleanup();
5195
5192
  }));
5196
5193
  throw e;
5197
5194
  });
5198
5195
  return [awaitable, () => {
5199
- const reset = restore();
5196
+ const stoppedScope = restore();
5200
5197
  Promise.resolve().then(() => {
5201
- if (reset) reset();
5198
+ if (stoppedScope) stoppedScope.reset();
5202
5199
  cleanup();
5203
5200
  });
5204
5201
  }];
@@ -5458,7 +5455,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
5458
5455
  if (options.el) return vm.$mount(options.el);
5459
5456
  else return vm;
5460
5457
  }
5461
- Vue.version = `2.6.14-compat:3.6.0-rc.6`;
5458
+ Vue.version = `2.6.14-compat:3.6.0-rc.8`;
5462
5459
  Vue.config = singletonApp.config;
5463
5460
  Vue.use = (plugin, ...options) => {
5464
5461
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -7030,24 +7027,10 @@ function baseCreateRenderer(options, createHydrationFns) {
7030
7027
  }
7031
7028
  if (moveType !== 2 && shapeFlag & 1 && transition) {
7032
7029
  if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
7033
- else {
7034
- const { leave, delayLeave, afterLeave } = transition;
7035
- const remove = () => {
7036
- if (vnode.ctx.isUnmounted) hostRemove(el);
7037
- else hostInsert(el, container, anchor);
7038
- };
7039
- const performLeave = () => {
7040
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7041
- if (el._isLeaving) el[leaveCbKey](true);
7042
- if (transition.persisted && !wasLeaving) remove();
7043
- else leave(el, () => {
7044
- remove();
7045
- afterLeave && afterLeave();
7046
- });
7047
- };
7048
- if (delayLeave) delayLeave(el, remove, performLeave);
7049
- else performLeave();
7050
- }
7030
+ else performTransitionLeave(el, transition, () => {
7031
+ if (vnode.ctx.isUnmounted) hostRemove(el);
7032
+ else hostInsert(el, container, anchor);
7033
+ }, true, true);
7051
7034
  } else hostInsert(el, container, anchor);
7052
7035
  };
7053
7036
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
@@ -7269,13 +7252,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
7269
7252
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
7270
7253
  const performRemove = () => {
7271
7254
  remove();
7272
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
7255
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
7273
7256
  };
7274
7257
  if (force || isElement && transition && !transition.persisted) {
7275
7258
  const { leave, delayLeave } = transition;
7276
7259
  const performLeave = () => {
7260
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
7277
7261
  if (el._isLeaving && force) el[leaveCbKey](true);
7278
- leave(el, performRemove);
7262
+ if (force && transition.persisted && !wasLeaving) remove();
7263
+ else leave(el, performRemove);
7279
7264
  };
7280
7265
  if (delayLeave) delayLeave(el, performRemove, performLeave);
7281
7266
  else performLeave();
@@ -8298,7 +8283,7 @@ function isMemoSame(cached, memo) {
8298
8283
  }
8299
8284
  //#endregion
8300
8285
  //#region packages/runtime-core/src/index.ts
8301
- const version = "3.6.0-rc.6";
8286
+ const version = "3.6.0-rc.8";
8302
8287
  const warn = NOOP;
8303
8288
  /**
8304
8289
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -9197,13 +9182,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
9197
9182
  _renderSlots() {
9198
9183
  const outlets = this._getSlots();
9199
9184
  const scopeId = this._instance.type.__scopeId;
9200
- const slotReplacements = /* @__PURE__ */ new Map();
9201
9185
  for (let i = 0; i < outlets.length; i++) {
9202
9186
  const o = outlets[i];
9203
9187
  const slotName = o.getAttribute("name") || "default";
9204
9188
  const content = this._slots[slotName];
9205
9189
  const parent = o.parentNode;
9206
- const replacementNodes = [];
9207
9190
  if (content) for (const n of content) {
9208
9191
  if (scopeId && n.nodeType === 1) {
9209
9192
  const id = scopeId + "-s";
@@ -9213,20 +9196,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
9213
9196
  while (child = walker.nextNode()) child.setAttribute(id, "");
9214
9197
  }
9215
9198
  parent.insertBefore(n, o);
9216
- replacementNodes.push(n);
9217
- }
9218
- else while (o.firstChild) {
9219
- const child = o.firstChild;
9220
- parent.insertBefore(child, o);
9221
- replacementNodes.push(child);
9222
9199
  }
9200
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
9223
9201
  parent.removeChild(o);
9224
- slotReplacements.set(o, {
9225
- nodes: replacementNodes,
9226
- usedFallback: !content
9227
- });
9228
9202
  }
9229
- this._updateSlotNodes(slotReplacements);
9230
9203
  }
9231
9204
  /**
9232
9205
  * @internal
@@ -9265,7 +9238,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
9265
9238
  * @internal
9266
9239
  */
9267
9240
  _hasShadowRoot() {
9268
- return this._def.shadowRoot !== false;
9241
+ return this._root !== this;
9269
9242
  }
9270
9243
  /**
9271
9244
  * @internal
@@ -9298,10 +9271,6 @@ var VueElement = class extends VueElementBase {
9298
9271
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
9299
9272
  this._app = this._instance = null;
9300
9273
  }
9301
- /**
9302
- * Only called when shadowRoot is false
9303
- */
9304
- _updateSlotNodes(replacements) {}
9305
9274
  _createVNode() {
9306
9275
  const baseProps = {};
9307
9276
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.6.0-rc.6
2
+ * @vue/compat v3.6.0-rc.8
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -539,6 +539,8 @@ function setupFlagsHandler(target) {
539
539
  function warn$2(msg, ...args) {
540
540
  console.warn(`[Vue warn] ${msg}`, ...args);
541
541
  }
542
+ //#endregion
543
+ //#region packages/reactivity/src/system.ts
542
544
  const notifyBuffer = [];
543
545
  let batchDepth = 0;
544
546
  let activeSub = void 0;
@@ -3975,7 +3977,7 @@ function baseResolveTransitionHooks(context, props, state, instance) {
3975
3977
  else done();
3976
3978
  },
3977
3979
  clone(node) {
3978
- return cloneHooks(node);
3980
+ return cloneHooks ? cloneHooks(node) : hooks;
3979
3981
  }
3980
3982
  };
3981
3983
  return hooks;
@@ -4813,7 +4815,7 @@ function defineAsyncComponent(source) {
4813
4815
  name: "AsyncComponentWrapper",
4814
4816
  __asyncLoader: load,
4815
4817
  __asyncHydrate(el, instance, hydrate) {
4816
- performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy);
4818
+ performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, true);
4817
4819
  },
4818
4820
  get __asyncResolved() {
4819
4821
  return getResolvedComp();
@@ -4932,10 +4934,10 @@ const useAsyncComponentState = (delay, timeout, onError, instance = currentInsta
4932
4934
  * shared between core and vapor
4933
4935
  * @internal
4934
4936
  */
4935
- function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy) {
4937
+ function performAsyncHydrate(el, instance, hydrate, getResolvedComp, load, hydrateStrategy, skipIfUpdated) {
4936
4938
  const wasConnected = el.isConnected;
4937
4939
  let patched = false;
4938
- (instance.bu || (instance.bu = [])).push(() => patched = true);
4940
+ if (skipIfUpdated) (instance.bu || (instance.bu = [])).push(() => patched = true);
4939
4941
  const performHydrate = () => {
4940
4942
  if (patched) {
4941
4943
  {
@@ -6184,37 +6186,32 @@ function createPropsRestProxy(props, excludedKeys) {
6184
6186
  function withAsyncContext(getAwaitable) {
6185
6187
  const ctx = getCurrentGenericInstance();
6186
6188
  const inSSRSetup = isInSSRComponentSetup;
6187
- const restoreAsyncContext = ctx && ctx.restoreAsyncContext ? ctx.restoreAsyncContext.bind(ctx) : void 0;
6188
6189
  if (!ctx) warn$1("withAsyncContext called without active current instance. This is likely a bug.");
6189
6190
  let awaitable = getAwaitable();
6190
6191
  setCurrentInstance(null, void 0);
6191
6192
  if (inSSRSetup) setInSSRSetupState(false);
6192
6193
  const restore = () => {
6193
- const resetStoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6194
+ const stoppedScope = ctx && !ctx.scope.active ? ctx.scope : void 0;
6194
6195
  setCurrentInstance(ctx);
6195
6196
  if (inSSRSetup) setInSSRSetupState(true);
6196
- const reset = restoreAsyncContext && restoreAsyncContext();
6197
- return () => {
6198
- if (reset) reset();
6199
- if (resetStoppedScope) resetStoppedScope.reset();
6200
- };
6197
+ return stoppedScope;
6201
6198
  };
6202
6199
  const cleanup = () => {
6203
6200
  setCurrentInstance(null, void 0);
6204
6201
  if (inSSRSetup) setInSSRSetupState(false);
6205
6202
  };
6206
6203
  if (isPromise(awaitable)) awaitable = awaitable.catch((e) => {
6207
- const reset = restore();
6204
+ const stoppedScope = restore();
6208
6205
  Promise.resolve().then(() => Promise.resolve().then(() => {
6209
- if (reset) reset();
6206
+ if (stoppedScope) stoppedScope.reset();
6210
6207
  cleanup();
6211
6208
  }));
6212
6209
  throw e;
6213
6210
  });
6214
6211
  return [awaitable, () => {
6215
- const reset = restore();
6212
+ const stoppedScope = restore();
6216
6213
  Promise.resolve().then(() => {
6217
- if (reset) reset();
6214
+ if (stoppedScope) stoppedScope.reset();
6218
6215
  cleanup();
6219
6216
  });
6220
6217
  }];
@@ -6539,7 +6536,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6539
6536
  if (options.el) return vm.$mount(options.el);
6540
6537
  else return vm;
6541
6538
  }
6542
- Vue.version = `2.6.14-compat:3.6.0-rc.6`;
6539
+ Vue.version = `2.6.14-compat:3.6.0-rc.8`;
6543
6540
  Vue.config = singletonApp.config;
6544
6541
  Vue.use = (plugin, ...options) => {
6545
6542
  if (plugin && isFunction(plugin.install)) plugin.install(Vue, ...options);
@@ -8505,24 +8502,10 @@ function baseCreateRenderer(options, createHydrationFns) {
8505
8502
  }
8506
8503
  if (moveType !== 2 && shapeFlag & 1 && transition) {
8507
8504
  if (moveType === 0) performTransitionEnter(el, transition, () => hostInsert(el, container, anchor), parentSuspense, true);
8508
- else {
8509
- const { leave, delayLeave, afterLeave } = transition;
8510
- const remove = () => {
8511
- if (vnode.ctx.isUnmounted) hostRemove(el);
8512
- else hostInsert(el, container, anchor);
8513
- };
8514
- const performLeave = () => {
8515
- const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8516
- if (el._isLeaving) el[leaveCbKey](true);
8517
- if (transition.persisted && !wasLeaving) remove();
8518
- else leave(el, () => {
8519
- remove();
8520
- afterLeave && afterLeave();
8521
- });
8522
- };
8523
- if (delayLeave) delayLeave(el, remove, performLeave);
8524
- else performLeave();
8525
- }
8505
+ else performTransitionLeave(el, transition, () => {
8506
+ if (vnode.ctx.isUnmounted) hostRemove(el);
8507
+ else hostInsert(el, container, anchor);
8508
+ }, true, true);
8526
8509
  } else hostInsert(el, container, anchor);
8527
8510
  };
8528
8511
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
@@ -8756,13 +8739,15 @@ function performTransitionEnter(el, transition, insert, parentSuspense, force =
8756
8739
  function performTransitionLeave(el, transition, remove, isElement = true, force = false) {
8757
8740
  const performRemove = () => {
8758
8741
  remove();
8759
- if (transition && !transition.persisted && transition.afterLeave) transition.afterLeave();
8742
+ if (transition && (force || !transition.persisted) && transition.afterLeave) transition.afterLeave();
8760
8743
  };
8761
8744
  if (force || isElement && transition && !transition.persisted) {
8762
8745
  const { leave, delayLeave } = transition;
8763
8746
  const performLeave = () => {
8747
+ const wasLeaving = el._isLeaving || !!el[leaveCbKey];
8764
8748
  if (el._isLeaving && force) el[leaveCbKey](true);
8765
- leave(el, performRemove);
8749
+ if (force && transition.persisted && !wasLeaving) remove();
8750
+ else leave(el, performRemove);
8766
8751
  };
8767
8752
  if (delayLeave) delayLeave(el, performRemove, performLeave);
8768
8753
  else performLeave();
@@ -10093,7 +10078,7 @@ function isMemoSame(cached, memo) {
10093
10078
  }
10094
10079
  //#endregion
10095
10080
  //#region packages/runtime-core/src/index.ts
10096
- const version = "3.6.0-rc.6";
10081
+ const version = "3.6.0-rc.8";
10097
10082
  const warn = warn$1;
10098
10083
  /**
10099
10084
  * Runtime error messages. Only exposed in dev or esm builds.
@@ -11090,13 +11075,11 @@ var VueElementBase = class VueElementBase extends BaseClass {
11090
11075
  _renderSlots() {
11091
11076
  const outlets = this._getSlots();
11092
11077
  const scopeId = this._instance.type.__scopeId;
11093
- const slotReplacements = /* @__PURE__ */ new Map();
11094
11078
  for (let i = 0; i < outlets.length; i++) {
11095
11079
  const o = outlets[i];
11096
11080
  const slotName = o.getAttribute("name") || "default";
11097
11081
  const content = this._slots[slotName];
11098
11082
  const parent = o.parentNode;
11099
- const replacementNodes = [];
11100
11083
  if (content) for (const n of content) {
11101
11084
  if (scopeId && n.nodeType === 1) {
11102
11085
  const id = scopeId + "-s";
@@ -11106,20 +11089,10 @@ var VueElementBase = class VueElementBase extends BaseClass {
11106
11089
  while (child = walker.nextNode()) child.setAttribute(id, "");
11107
11090
  }
11108
11091
  parent.insertBefore(n, o);
11109
- replacementNodes.push(n);
11110
- }
11111
- else while (o.firstChild) {
11112
- const child = o.firstChild;
11113
- parent.insertBefore(child, o);
11114
- replacementNodes.push(child);
11115
11092
  }
11093
+ else while (o.firstChild) parent.insertBefore(o.firstChild, o);
11116
11094
  parent.removeChild(o);
11117
- slotReplacements.set(o, {
11118
- nodes: replacementNodes,
11119
- usedFallback: !content
11120
- });
11121
11095
  }
11122
- this._updateSlotNodes(slotReplacements);
11123
11096
  }
11124
11097
  /**
11125
11098
  * @internal
@@ -11158,7 +11131,7 @@ var VueElementBase = class VueElementBase extends BaseClass {
11158
11131
  * @internal
11159
11132
  */
11160
11133
  _hasShadowRoot() {
11161
- return this._def.shadowRoot !== false;
11134
+ return this._root !== this;
11162
11135
  }
11163
11136
  /**
11164
11137
  * @internal
@@ -11203,10 +11176,6 @@ var VueElement = class extends VueElementBase {
11203
11176
  if (this._instance && this._instance.ce) this._instance.ce = void 0;
11204
11177
  this._app = this._instance = null;
11205
11178
  }
11206
- /**
11207
- * Only called when shadowRoot is false
11208
- */
11209
- _updateSlotNodes(replacements) {}
11210
11179
  _createVNode() {
11211
11180
  const baseProps = {};
11212
11181
  if (!this.shadowRoot) baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);