@vuetify/nightly 3.8.2-master.2025-04-26 → 3.8.2-master.2025-04-28

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.
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.2-master.2025-04-26
2
+ * Vuetify v3.8.2-master.2025-04-28
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -339,6 +339,9 @@
339
339
  _classPrivateFieldInitSpec(this, _pointer, 0);
340
340
  this.size = size;
341
341
  }
342
+ get isFull() {
343
+ return _classPrivateFieldGet(_arr, this).length === this.size;
344
+ }
342
345
  push(val) {
343
346
  _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val;
344
347
  _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size);
@@ -346,6 +349,10 @@
346
349
  values() {
347
350
  return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this)));
348
351
  }
352
+ clear() {
353
+ _classPrivateFieldGet(_arr, this).length = 0;
354
+ _classPrivateFieldSet(_pointer, this, 0);
355
+ }
349
356
  }
350
357
  function getEventCoordinates(e) {
351
358
  if ('touches' in e) {
@@ -1336,7 +1343,7 @@
1336
1343
  return newDefaults;
1337
1344
  }
1338
1345
  function propIsDefined(vnode, prop) {
1339
- return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
1346
+ return vnode.props && (typeof vnode.props[prop] !== 'undefined' || typeof vnode.props[toKebabCase(prop)] !== 'undefined');
1340
1347
  }
1341
1348
  function internalUseDefaults() {
1342
1349
  let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -1353,9 +1360,12 @@
1353
1360
  const propValue = Reflect.get(target, prop);
1354
1361
  if (prop === 'class' || prop === 'style') {
1355
1362
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1356
- } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1357
- return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1358
1363
  }
1364
+ if (propIsDefined(vm.vnode, prop)) return propValue;
1365
+ const _componentDefault = componentDefaults.value?.[prop];
1366
+ if (_componentDefault !== undefined) return _componentDefault;
1367
+ const _globalDefault = defaults.value?.global?.[prop];
1368
+ if (_globalDefault !== undefined) return _globalDefault;
1359
1369
  return propValue;
1360
1370
  }
1361
1371
  });
@@ -10386,8 +10396,27 @@
10386
10396
  return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
10387
10397
  });
10388
10398
  let observe = false;
10399
+ let lastFrame = -1;
10400
+ const flipped = new CircularBuffer(4);
10389
10401
  const observer = new ResizeObserver(() => {
10390
- if (observe) updateLocation();
10402
+ if (!observe) return;
10403
+
10404
+ // Detect consecutive frames
10405
+ requestAnimationFrame(newTime => {
10406
+ if (newTime !== lastFrame) flipped.clear();
10407
+ requestAnimationFrame(newNewTime => {
10408
+ lastFrame = newNewTime;
10409
+ });
10410
+ });
10411
+ if (flipped.isFull) {
10412
+ const values = flipped.values();
10413
+ if (deepEqual(values.at(-1), values.at(-3))) {
10414
+ // Flipping is causing a container resize loop
10415
+ return;
10416
+ }
10417
+ }
10418
+ const result = updateLocation();
10419
+ if (result) flipped.push(result.flipped);
10391
10420
  });
10392
10421
  vue.watch([data.target, data.contentEl], (_ref, _ref2) => {
10393
10422
  let [newTarget, newContentEl] = _ref;
@@ -10602,7 +10631,8 @@
10602
10631
  });
10603
10632
  return {
10604
10633
  available,
10605
- contentBox
10634
+ contentBox,
10635
+ flipped
10606
10636
  };
10607
10637
  }
10608
10638
  vue.watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation());
@@ -29185,7 +29215,7 @@
29185
29215
  };
29186
29216
  });
29187
29217
  }
29188
- const version$1 = "3.8.2-master.2025-04-26";
29218
+ const version$1 = "3.8.2-master.2025-04-28";
29189
29219
  createVuetify$1.version = version$1;
29190
29220
 
29191
29221
  // Vue's inject() can only be used in setup
@@ -29210,7 +29240,7 @@
29210
29240
  ...options
29211
29241
  });
29212
29242
  };
29213
- const version = "3.8.2-master.2025-04-26";
29243
+ const version = "3.8.2-master.2025-04-28";
29214
29244
  createVuetify.version = version;
29215
29245
 
29216
29246
  exports.blueprints = index;