@vue/compat 3.4.0-beta.2 → 3.4.0-beta.4

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.
@@ -239,7 +239,7 @@ function normalizeProps(props) {
239
239
 
240
240
  const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
241
241
  const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
242
- const MATH_TAGS = "math,maction,annotation,annotation-xml,menclose,merror,mfenced,mfrac,mi,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,semantics,mspace,msqrt,mstyle,msub,msup,msubsup,mtable,mtd,mtext,mtr,munder,munderover";
242
+ const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
243
243
  const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
244
244
  const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
245
245
  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
@@ -1964,8 +1964,10 @@ function checkRecursiveUpdates(seen, fn) {
1964
1964
  if (count > RECURSION_LIMIT) {
1965
1965
  const instance = fn.ownerInstance;
1966
1966
  const componentName = instance && getComponentName(instance.type);
1967
- warn(
1968
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`
1967
+ handleError(
1968
+ `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
1969
+ null,
1970
+ 10
1969
1971
  );
1970
1972
  return true;
1971
1973
  } else {
@@ -3163,6 +3165,8 @@ function hasPropsChanged(prevProps, nextProps, emitsOptions) {
3163
3165
  return false;
3164
3166
  }
3165
3167
  function updateHOCHostEl({ vnode, parent }, el) {
3168
+ if (!el)
3169
+ return;
3166
3170
  while (parent) {
3167
3171
  const root = parent.subTree;
3168
3172
  if (root.suspense && root.suspense.activeBranch === vnode) {
@@ -5916,24 +5920,30 @@ function useModel(props, name) {
5916
5920
  warn(`useModel() called with prop "${name}" which is not declared.`);
5917
5921
  return ref();
5918
5922
  }
5919
- let localValue;
5920
- watchSyncEffect(() => {
5921
- localValue = props[name];
5922
- });
5923
- return customRef((track, trigger) => ({
5924
- get() {
5925
- track();
5926
- return localValue;
5927
- },
5928
- set(value) {
5929
- const rawProps = i.vnode.props;
5930
- if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
5931
- localValue = value;
5923
+ return customRef((track, trigger) => {
5924
+ let localValue;
5925
+ watchSyncEffect(() => {
5926
+ const propValue = props[name];
5927
+ if (hasChanged(localValue, propValue)) {
5928
+ localValue = propValue;
5932
5929
  trigger();
5933
5930
  }
5934
- i.emit(`update:${name}`, value);
5935
- }
5936
- }));
5931
+ });
5932
+ return {
5933
+ get() {
5934
+ track();
5935
+ return localValue;
5936
+ },
5937
+ set(value) {
5938
+ const rawProps = i.vnode.props;
5939
+ if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
5940
+ localValue = value;
5941
+ trigger();
5942
+ }
5943
+ i.emit(`update:${name}`, value);
5944
+ }
5945
+ };
5946
+ });
5937
5947
  }
5938
5948
  function getContext() {
5939
5949
  const i = getCurrentInstance();
@@ -6509,7 +6519,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6509
6519
  return vm;
6510
6520
  }
6511
6521
  }
6512
- Vue.version = `2.6.14-compat:${"3.4.0-beta.2"}`;
6522
+ Vue.version = `2.6.14-compat:${"3.4.0-beta.4"}`;
6513
6523
  Vue.config = singletonApp.config;
6514
6524
  Vue.use = (p, ...options) => {
6515
6525
  if (p && isFunction(p.install)) {
@@ -8250,7 +8260,7 @@ function propHasMismatch(el, key, clientValue) {
8250
8260
  let actual;
8251
8261
  let expected;
8252
8262
  if (key === "class") {
8253
- actual = el.className;
8263
+ actual = el.getAttribute("class");
8254
8264
  expected = normalizeClass(clientValue);
8255
8265
  if (actual !== expected) {
8256
8266
  mismatchType = mismatchKey = `class`;
@@ -11297,7 +11307,7 @@ function isMemoSame(cached, memo) {
11297
11307
  return true;
11298
11308
  }
11299
11309
 
11300
- const version = "3.4.0-beta.2";
11310
+ const version = "3.4.0-beta.4";
11301
11311
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11302
11312
  const _ssrUtils = {
11303
11313
  createComponentInstance,
@@ -11754,6 +11764,69 @@ function initVShowForSSR() {
11754
11764
  };
11755
11765
  }
11756
11766
 
11767
+ const CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== "production") ? "CSS_VAR_TEXT" : "");
11768
+ function useCssVars(getter) {
11769
+ const instance = getCurrentInstance();
11770
+ if (!instance) {
11771
+ !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
11772
+ return;
11773
+ }
11774
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11775
+ Array.from(
11776
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11777
+ ).forEach((node) => setVarsOnNode(node, vars));
11778
+ };
11779
+ const setVars = () => {
11780
+ const vars = getter(instance.proxy);
11781
+ setVarsOnVNode(instance.subTree, vars);
11782
+ updateTeleports(vars);
11783
+ };
11784
+ watchPostEffect(setVars);
11785
+ onMounted(() => {
11786
+ const ob = new MutationObserver(setVars);
11787
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11788
+ onUnmounted(() => ob.disconnect());
11789
+ });
11790
+ }
11791
+ function setVarsOnVNode(vnode, vars) {
11792
+ if (vnode.shapeFlag & 128) {
11793
+ const suspense = vnode.suspense;
11794
+ vnode = suspense.activeBranch;
11795
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11796
+ suspense.effects.push(() => {
11797
+ setVarsOnVNode(suspense.activeBranch, vars);
11798
+ });
11799
+ }
11800
+ }
11801
+ while (vnode.component) {
11802
+ vnode = vnode.component.subTree;
11803
+ }
11804
+ if (vnode.shapeFlag & 1 && vnode.el) {
11805
+ setVarsOnNode(vnode.el, vars);
11806
+ } else if (vnode.type === Fragment) {
11807
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11808
+ } else if (vnode.type === Static) {
11809
+ let { el, anchor } = vnode;
11810
+ while (el) {
11811
+ setVarsOnNode(el, vars);
11812
+ if (el === anchor)
11813
+ break;
11814
+ el = el.nextSibling;
11815
+ }
11816
+ }
11817
+ }
11818
+ function setVarsOnNode(el, vars) {
11819
+ if (el.nodeType === 1) {
11820
+ const style = el.style;
11821
+ let cssText = "";
11822
+ for (const key in vars) {
11823
+ style.setProperty(`--${key}`, vars[key]);
11824
+ cssText += `--${key}: ${vars[key]};`;
11825
+ }
11826
+ style[CSS_VAR_TEXT] = cssText;
11827
+ }
11828
+ }
11829
+
11757
11830
  function patchStyle(el, prev, next) {
11758
11831
  const style = el.style;
11759
11832
  const isCssString = isString(next);
@@ -11772,6 +11845,10 @@ function patchStyle(el, prev, next) {
11772
11845
  const currentDisplay = style.display;
11773
11846
  if (isCssString) {
11774
11847
  if (prev !== next) {
11848
+ const cssVarText = style[CSS_VAR_TEXT];
11849
+ if (cssVarText) {
11850
+ next += ";" + cssVarText;
11851
+ }
11775
11852
  style.cssText = next;
11776
11853
  }
11777
11854
  } else if (prev) {
@@ -12322,65 +12399,6 @@ function useCssModule(name = "$style") {
12322
12399
  }
12323
12400
  }
12324
12401
 
12325
- function useCssVars(getter) {
12326
- const instance = getCurrentInstance();
12327
- if (!instance) {
12328
- !!(process.env.NODE_ENV !== "production") && warn(`useCssVars is called without current active component instance.`);
12329
- return;
12330
- }
12331
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
12332
- Array.from(
12333
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
12334
- ).forEach((node) => setVarsOnNode(node, vars));
12335
- };
12336
- const setVars = () => {
12337
- const vars = getter(instance.proxy);
12338
- setVarsOnVNode(instance.subTree, vars);
12339
- updateTeleports(vars);
12340
- };
12341
- watchPostEffect(setVars);
12342
- onMounted(() => {
12343
- const ob = new MutationObserver(setVars);
12344
- ob.observe(instance.subTree.el.parentNode, { childList: true });
12345
- onUnmounted(() => ob.disconnect());
12346
- });
12347
- }
12348
- function setVarsOnVNode(vnode, vars) {
12349
- if (vnode.shapeFlag & 128) {
12350
- const suspense = vnode.suspense;
12351
- vnode = suspense.activeBranch;
12352
- if (suspense.pendingBranch && !suspense.isHydrating) {
12353
- suspense.effects.push(() => {
12354
- setVarsOnVNode(suspense.activeBranch, vars);
12355
- });
12356
- }
12357
- }
12358
- while (vnode.component) {
12359
- vnode = vnode.component.subTree;
12360
- }
12361
- if (vnode.shapeFlag & 1 && vnode.el) {
12362
- setVarsOnNode(vnode.el, vars);
12363
- } else if (vnode.type === Fragment) {
12364
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
12365
- } else if (vnode.type === Static) {
12366
- let { el, anchor } = vnode;
12367
- while (el) {
12368
- setVarsOnNode(el, vars);
12369
- if (el === anchor)
12370
- break;
12371
- el = el.nextSibling;
12372
- }
12373
- }
12374
- }
12375
- function setVarsOnNode(el, vars) {
12376
- if (el.nodeType === 1) {
12377
- const style = el.style;
12378
- for (const key in vars) {
12379
- style.setProperty(`--${key}`, vars[key]);
12380
- }
12381
- }
12382
- }
12383
-
12384
12402
  const positionMap = /* @__PURE__ */ new WeakMap();
12385
12403
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12386
12404
  const moveCbKey = Symbol("_moveCb");
@@ -12797,7 +12815,9 @@ const modifierGuards = {
12797
12815
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
12798
12816
  };
12799
12817
  const withModifiers = (fn, modifiers) => {
12800
- return fn._withMods || (fn._withMods = (event, ...args) => {
12818
+ const cache = fn._withMods || (fn._withMods = {});
12819
+ const cacheKey = modifiers.join(".");
12820
+ return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {
12801
12821
  for (let i = 0; i < modifiers.length; i++) {
12802
12822
  const guard = modifierGuards[modifiers[i]];
12803
12823
  if (guard && guard(event, modifiers))
@@ -12832,7 +12852,9 @@ const withKeys = (fn, modifiers) => {
12832
12852
  );
12833
12853
  }
12834
12854
  }
12835
- return fn._withKeys || (fn._withKeys = (event) => {
12855
+ const cache = fn._withKeys || (fn._withKeys = {});
12856
+ const cacheKey = modifiers.join(".");
12857
+ return cache[cacheKey] || (cache[cacheKey] = (event) => {
12836
12858
  if (!("key" in event)) {
12837
12859
  return;
12838
12860
  }
@@ -14361,7 +14383,7 @@ const errorMessages = {
14361
14383
  Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
14362
14384
  [45]: `Error parsing JavaScript expression: `,
14363
14385
  [46]: `<KeepAlive> expects exactly one child component.`,
14364
- [51]: `@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support will be removed in 3.4.`,
14386
+ [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,
14365
14387
  // generic errors
14366
14388
  [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
14367
14389
  [48]: `ES module mode is not supported in this build of compiler.`,
@@ -242,7 +242,7 @@ var Vue = (function () {
242
242
 
243
243
  const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
244
244
  const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
245
- const MATH_TAGS = "math,maction,annotation,annotation-xml,menclose,merror,mfenced,mfrac,mi,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,semantics,mspace,msqrt,mstyle,msub,msup,msubsup,mtable,mtd,mtext,mtr,munder,munderover";
245
+ const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics";
246
246
  const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
247
247
  const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
248
248
  const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
@@ -1961,8 +1961,10 @@ var Vue = (function () {
1961
1961
  if (count > RECURSION_LIMIT) {
1962
1962
  const instance = fn.ownerInstance;
1963
1963
  const componentName = instance && getComponentName(instance.type);
1964
- warn(
1965
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`
1964
+ handleError(
1965
+ `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
1966
+ null,
1967
+ 10
1966
1968
  );
1967
1969
  return true;
1968
1970
  } else {
@@ -3157,6 +3159,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
3157
3159
  return false;
3158
3160
  }
3159
3161
  function updateHOCHostEl({ vnode, parent }, el) {
3162
+ if (!el)
3163
+ return;
3160
3164
  while (parent) {
3161
3165
  const root = parent.subTree;
3162
3166
  if (root.suspense && root.suspense.activeBranch === vnode) {
@@ -5881,24 +5885,30 @@ If this is a native custom element, make sure to exclude it from component resol
5881
5885
  warn(`useModel() called with prop "${name}" which is not declared.`);
5882
5886
  return ref();
5883
5887
  }
5884
- let localValue;
5885
- watchSyncEffect(() => {
5886
- localValue = props[name];
5887
- });
5888
- return customRef((track, trigger) => ({
5889
- get() {
5890
- track();
5891
- return localValue;
5892
- },
5893
- set(value) {
5894
- const rawProps = i.vnode.props;
5895
- if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
5896
- localValue = value;
5888
+ return customRef((track, trigger) => {
5889
+ let localValue;
5890
+ watchSyncEffect(() => {
5891
+ const propValue = props[name];
5892
+ if (hasChanged(localValue, propValue)) {
5893
+ localValue = propValue;
5897
5894
  trigger();
5898
5895
  }
5899
- i.emit(`update:${name}`, value);
5900
- }
5901
- }));
5896
+ });
5897
+ return {
5898
+ get() {
5899
+ track();
5900
+ return localValue;
5901
+ },
5902
+ set(value) {
5903
+ const rawProps = i.vnode.props;
5904
+ if (!(rawProps && name in rawProps) && hasChanged(value, localValue)) {
5905
+ localValue = value;
5906
+ trigger();
5907
+ }
5908
+ i.emit(`update:${name}`, value);
5909
+ }
5910
+ };
5911
+ });
5902
5912
  }
5903
5913
  function getContext() {
5904
5914
  const i = getCurrentInstance();
@@ -6472,7 +6482,7 @@ If this is a native custom element, make sure to exclude it from component resol
6472
6482
  return vm;
6473
6483
  }
6474
6484
  }
6475
- Vue.version = `2.6.14-compat:${"3.4.0-beta.2"}`;
6485
+ Vue.version = `2.6.14-compat:${"3.4.0-beta.4"}`;
6476
6486
  Vue.config = singletonApp.config;
6477
6487
  Vue.use = (p, ...options) => {
6478
6488
  if (p && isFunction(p.install)) {
@@ -8200,7 +8210,7 @@ Server rendered element contains fewer child nodes than client vdom.`
8200
8210
  let actual;
8201
8211
  let expected;
8202
8212
  if (key === "class") {
8203
- actual = el.className;
8213
+ actual = el.getAttribute("class");
8204
8214
  expected = normalizeClass(clientValue);
8205
8215
  if (actual !== expected) {
8206
8216
  mismatchType = mismatchKey = `class`;
@@ -11170,7 +11180,7 @@ Component that was made reactive: `,
11170
11180
  return true;
11171
11181
  }
11172
11182
 
11173
- const version = "3.4.0-beta.2";
11183
+ const version = "3.4.0-beta.4";
11174
11184
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11175
11185
  const ssrUtils = null;
11176
11186
  const resolveFilter = resolveFilter$1 ;
@@ -11612,6 +11622,69 @@ Component that was made reactive: `,
11612
11622
  el.style.display = value ? el[vShowOldKey] : "none";
11613
11623
  }
11614
11624
 
11625
+ const CSS_VAR_TEXT = Symbol("CSS_VAR_TEXT" );
11626
+ function useCssVars(getter) {
11627
+ const instance = getCurrentInstance();
11628
+ if (!instance) {
11629
+ warn(`useCssVars is called without current active component instance.`);
11630
+ return;
11631
+ }
11632
+ const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
11633
+ Array.from(
11634
+ document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11635
+ ).forEach((node) => setVarsOnNode(node, vars));
11636
+ };
11637
+ const setVars = () => {
11638
+ const vars = getter(instance.proxy);
11639
+ setVarsOnVNode(instance.subTree, vars);
11640
+ updateTeleports(vars);
11641
+ };
11642
+ watchPostEffect(setVars);
11643
+ onMounted(() => {
11644
+ const ob = new MutationObserver(setVars);
11645
+ ob.observe(instance.subTree.el.parentNode, { childList: true });
11646
+ onUnmounted(() => ob.disconnect());
11647
+ });
11648
+ }
11649
+ function setVarsOnVNode(vnode, vars) {
11650
+ if (vnode.shapeFlag & 128) {
11651
+ const suspense = vnode.suspense;
11652
+ vnode = suspense.activeBranch;
11653
+ if (suspense.pendingBranch && !suspense.isHydrating) {
11654
+ suspense.effects.push(() => {
11655
+ setVarsOnVNode(suspense.activeBranch, vars);
11656
+ });
11657
+ }
11658
+ }
11659
+ while (vnode.component) {
11660
+ vnode = vnode.component.subTree;
11661
+ }
11662
+ if (vnode.shapeFlag & 1 && vnode.el) {
11663
+ setVarsOnNode(vnode.el, vars);
11664
+ } else if (vnode.type === Fragment) {
11665
+ vnode.children.forEach((c) => setVarsOnVNode(c, vars));
11666
+ } else if (vnode.type === Static) {
11667
+ let { el, anchor } = vnode;
11668
+ while (el) {
11669
+ setVarsOnNode(el, vars);
11670
+ if (el === anchor)
11671
+ break;
11672
+ el = el.nextSibling;
11673
+ }
11674
+ }
11675
+ }
11676
+ function setVarsOnNode(el, vars) {
11677
+ if (el.nodeType === 1) {
11678
+ const style = el.style;
11679
+ let cssText = "";
11680
+ for (const key in vars) {
11681
+ style.setProperty(`--${key}`, vars[key]);
11682
+ cssText += `--${key}: ${vars[key]};`;
11683
+ }
11684
+ style[CSS_VAR_TEXT] = cssText;
11685
+ }
11686
+ }
11687
+
11615
11688
  function patchStyle(el, prev, next) {
11616
11689
  const style = el.style;
11617
11690
  const isCssString = isString(next);
@@ -11630,6 +11703,10 @@ Component that was made reactive: `,
11630
11703
  const currentDisplay = style.display;
11631
11704
  if (isCssString) {
11632
11705
  if (prev !== next) {
11706
+ const cssVarText = style[CSS_VAR_TEXT];
11707
+ if (cssVarText) {
11708
+ next += ";" + cssVarText;
11709
+ }
11633
11710
  style.cssText = next;
11634
11711
  }
11635
11712
  } else if (prev) {
@@ -12168,65 +12245,6 @@ Component that was made reactive: `,
12168
12245
  }
12169
12246
  }
12170
12247
 
12171
- function useCssVars(getter) {
12172
- const instance = getCurrentInstance();
12173
- if (!instance) {
12174
- warn(`useCssVars is called without current active component instance.`);
12175
- return;
12176
- }
12177
- const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
12178
- Array.from(
12179
- document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
12180
- ).forEach((node) => setVarsOnNode(node, vars));
12181
- };
12182
- const setVars = () => {
12183
- const vars = getter(instance.proxy);
12184
- setVarsOnVNode(instance.subTree, vars);
12185
- updateTeleports(vars);
12186
- };
12187
- watchPostEffect(setVars);
12188
- onMounted(() => {
12189
- const ob = new MutationObserver(setVars);
12190
- ob.observe(instance.subTree.el.parentNode, { childList: true });
12191
- onUnmounted(() => ob.disconnect());
12192
- });
12193
- }
12194
- function setVarsOnVNode(vnode, vars) {
12195
- if (vnode.shapeFlag & 128) {
12196
- const suspense = vnode.suspense;
12197
- vnode = suspense.activeBranch;
12198
- if (suspense.pendingBranch && !suspense.isHydrating) {
12199
- suspense.effects.push(() => {
12200
- setVarsOnVNode(suspense.activeBranch, vars);
12201
- });
12202
- }
12203
- }
12204
- while (vnode.component) {
12205
- vnode = vnode.component.subTree;
12206
- }
12207
- if (vnode.shapeFlag & 1 && vnode.el) {
12208
- setVarsOnNode(vnode.el, vars);
12209
- } else if (vnode.type === Fragment) {
12210
- vnode.children.forEach((c) => setVarsOnVNode(c, vars));
12211
- } else if (vnode.type === Static) {
12212
- let { el, anchor } = vnode;
12213
- while (el) {
12214
- setVarsOnNode(el, vars);
12215
- if (el === anchor)
12216
- break;
12217
- el = el.nextSibling;
12218
- }
12219
- }
12220
- }
12221
- function setVarsOnNode(el, vars) {
12222
- if (el.nodeType === 1) {
12223
- const style = el.style;
12224
- for (const key in vars) {
12225
- style.setProperty(`--${key}`, vars[key]);
12226
- }
12227
- }
12228
- }
12229
-
12230
12248
  const positionMap = /* @__PURE__ */ new WeakMap();
12231
12249
  const newPositionMap = /* @__PURE__ */ new WeakMap();
12232
12250
  const moveCbKey = Symbol("_moveCb");
@@ -12609,7 +12627,9 @@ Component that was made reactive: `,
12609
12627
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
12610
12628
  };
12611
12629
  const withModifiers = (fn, modifiers) => {
12612
- return fn._withMods || (fn._withMods = (event, ...args) => {
12630
+ const cache = fn._withMods || (fn._withMods = {});
12631
+ const cacheKey = modifiers.join(".");
12632
+ return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {
12613
12633
  for (let i = 0; i < modifiers.length; i++) {
12614
12634
  const guard = modifierGuards[modifiers[i]];
12615
12635
  if (guard && guard(event, modifiers))
@@ -12644,7 +12664,9 @@ Component that was made reactive: `,
12644
12664
  );
12645
12665
  }
12646
12666
  }
12647
- return fn._withKeys || (fn._withKeys = (event) => {
12667
+ const cache = fn._withKeys || (fn._withKeys = {});
12668
+ const cacheKey = modifiers.join(".");
12669
+ return cache[cacheKey] || (cache[cacheKey] = (event) => {
12648
12670
  if (!("key" in event)) {
12649
12671
  return;
12650
12672
  }
@@ -14172,7 +14194,7 @@ Make sure to use the production build (*.prod.js) when deploying for production.
14172
14194
  Use a v-bind binding combined with a v-on listener that emits update:x event instead.`,
14173
14195
  [45]: `Error parsing JavaScript expression: `,
14174
14196
  [46]: `<KeepAlive> expects exactly one child component.`,
14175
- [51]: `@vnode-* hooks in templates are deprecated. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support will be removed in 3.4.`,
14197
+ [51]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,
14176
14198
  // generic errors
14177
14199
  [47]: `"prefixIdentifiers" option is not supported in this build of compiler.`,
14178
14200
  [48]: `ES module mode is not supported in this build of compiler.`,