@vuetify/nightly 3.10.7-dev.2025-10-23 → 3.10.7-dev.2025-10-25
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/CHANGELOG.md +13 -3
- package/dist/json/attributes.json +3162 -3138
- package/dist/json/importMap-labs.json +32 -32
- package/dist/json/importMap.json +162 -162
- package/dist/json/tags.json +6 -0
- package/dist/json/web-types.json +5516 -5456
- package/dist/vuetify-labs.cjs +138 -33
- package/dist/vuetify-labs.css +4436 -4411
- package/dist/vuetify-labs.d.ts +286 -199
- package/dist/vuetify-labs.esm.js +139 -34
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +138 -33
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +138 -33
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4010 -3985
- package/dist/vuetify.d.ts +258 -199
- package/dist/vuetify.esm.js +139 -34
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +138 -33
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +848 -840
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +50 -0
- package/lib/components/VDatePicker/VDatePickerMonth.css +25 -0
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +53 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js +57 -4
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.sass +22 -0
- package/lib/components/VDatePicker/_variables.scss +5 -0
- package/lib/components/VOverlay/locationStrategies.js +19 -11
- package/lib/components/VOverlay/locationStrategies.js.map +1 -1
- package/lib/components/VOverlay/useActivator.js +0 -1
- package/lib/components/VOverlay/useActivator.js.map +1 -1
- package/lib/composables/nested/nested.js +7 -1
- package/lib/composables/nested/nested.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +62 -62
- package/lib/framework.js +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +50 -0
- package/lib/util/helpers.d.ts +8 -1
- package/lib/util/helpers.js +40 -9
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.10.7-dev.2025-10-
|
|
2
|
+
* Vuetify v3.10.7-dev.2025-10-25
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -81,6 +81,19 @@
|
|
|
81
81
|
}
|
|
82
82
|
}, 'component');
|
|
83
83
|
|
|
84
|
+
/* eslint-disable no-console */
|
|
85
|
+
|
|
86
|
+
function consoleWarn(message) {
|
|
87
|
+
vue.warn(`Vuetify: ${message}`);
|
|
88
|
+
}
|
|
89
|
+
function consoleError(message) {
|
|
90
|
+
vue.warn(`Vuetify error: ${message}`);
|
|
91
|
+
}
|
|
92
|
+
function deprecate(original, replacement) {
|
|
93
|
+
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
|
94
|
+
vue.warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
|
95
|
+
}
|
|
96
|
+
|
|
84
97
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
85
98
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
86
99
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
@@ -283,6 +296,39 @@
|
|
|
283
296
|
wrap.immediate = fn;
|
|
284
297
|
return wrap;
|
|
285
298
|
}
|
|
299
|
+
function throttle(fn, delay) {
|
|
300
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
301
|
+
leading: true,
|
|
302
|
+
trailing: true
|
|
303
|
+
};
|
|
304
|
+
let timeoutId = 0;
|
|
305
|
+
let lastExec = 0;
|
|
306
|
+
let throttling = false;
|
|
307
|
+
const wrap = function () {
|
|
308
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
309
|
+
args[_key2] = arguments[_key2];
|
|
310
|
+
}
|
|
311
|
+
clearTimeout(timeoutId);
|
|
312
|
+
const now = Date.now();
|
|
313
|
+
const elapsed = now - lastExec;
|
|
314
|
+
if (!throttling || elapsed >= delay) {
|
|
315
|
+
lastExec = now;
|
|
316
|
+
}
|
|
317
|
+
if (!throttling && options.leading || elapsed >= delay) {
|
|
318
|
+
window.setTimeout(() => fn(...args)); // ignore 'fn' executin errors
|
|
319
|
+
}
|
|
320
|
+
throttling = true;
|
|
321
|
+
timeoutId = window.setTimeout(() => {
|
|
322
|
+
throttling = false;
|
|
323
|
+
if (options.trailing) {
|
|
324
|
+
fn(...args);
|
|
325
|
+
}
|
|
326
|
+
}, delay);
|
|
327
|
+
};
|
|
328
|
+
wrap.clear = () => clearTimeout(timeoutId);
|
|
329
|
+
wrap.immediate = fn;
|
|
330
|
+
return wrap;
|
|
331
|
+
}
|
|
286
332
|
function clamp(value) {
|
|
287
333
|
let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
288
334
|
let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
@@ -459,8 +505,8 @@
|
|
|
459
505
|
return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
|
|
460
506
|
}
|
|
461
507
|
function callEvent(handler) {
|
|
462
|
-
for (var
|
|
463
|
-
args[
|
|
508
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
509
|
+
args[_key3 - 1] = arguments[_key3];
|
|
464
510
|
}
|
|
465
511
|
if (Array.isArray(handler)) {
|
|
466
512
|
for (const h of handler) {
|
|
@@ -473,7 +519,14 @@
|
|
|
473
519
|
function focusableChildren(el) {
|
|
474
520
|
let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
475
521
|
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', 'details:not(:has(> summary))', 'details > summary', '[tabindex]', '[contenteditable]:not([contenteditable="false"])', 'audio[controls]', 'video[controls]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex="-1"])' : ''}:not([disabled], [inert])`).join(', ');
|
|
476
|
-
|
|
522
|
+
let elements;
|
|
523
|
+
try {
|
|
524
|
+
elements = [...el.querySelectorAll(targets)];
|
|
525
|
+
} catch (err) {
|
|
526
|
+
consoleError(String(err));
|
|
527
|
+
return [];
|
|
528
|
+
}
|
|
529
|
+
return elements.filter(x => !x.closest('[inert]')) // does not have inert parent
|
|
477
530
|
.filter(x => !!x.offsetParent || x.getClientRects().length > 0) // is rendered
|
|
478
531
|
.filter(x => !x.parentElement?.closest('details:not([open])') || x.tagName === 'SUMMARY' && x.parentElement?.tagName === 'DETAILS');
|
|
479
532
|
}
|
|
@@ -940,19 +993,6 @@
|
|
|
940
993
|
return outputContrast * 100;
|
|
941
994
|
}
|
|
942
995
|
|
|
943
|
-
/* eslint-disable no-console */
|
|
944
|
-
|
|
945
|
-
function consoleWarn(message) {
|
|
946
|
-
vue.warn(`Vuetify: ${message}`);
|
|
947
|
-
}
|
|
948
|
-
function consoleError(message) {
|
|
949
|
-
vue.warn(`Vuetify error: ${message}`);
|
|
950
|
-
}
|
|
951
|
-
function deprecate(original, replacement) {
|
|
952
|
-
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
|
953
|
-
vue.warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
|
954
|
-
}
|
|
955
|
-
|
|
956
996
|
// Types
|
|
957
997
|
|
|
958
998
|
const delta = 0.20689655172413793; // 6÷29
|
|
@@ -9335,6 +9375,10 @@
|
|
|
9335
9375
|
}
|
|
9336
9376
|
const vm = getCurrentInstance('nested');
|
|
9337
9377
|
const nodeIds = new Set();
|
|
9378
|
+
const itemsUpdatePropagation = throttle(() => {
|
|
9379
|
+
children.value = new Map(children.value);
|
|
9380
|
+
parents.value = new Map(parents.value);
|
|
9381
|
+
}, 100);
|
|
9338
9382
|
const nested = {
|
|
9339
9383
|
id: vue.shallowRef(),
|
|
9340
9384
|
root: {
|
|
@@ -9365,6 +9409,7 @@
|
|
|
9365
9409
|
if (parentId != null) {
|
|
9366
9410
|
children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
|
|
9367
9411
|
}
|
|
9412
|
+
itemsUpdatePropagation();
|
|
9368
9413
|
},
|
|
9369
9414
|
unregister: id => {
|
|
9370
9415
|
if (isUnmounted) return;
|
|
@@ -9377,6 +9422,7 @@
|
|
|
9377
9422
|
children.value.set(parent, list.filter(child => child !== id));
|
|
9378
9423
|
}
|
|
9379
9424
|
parents.value.delete(id);
|
|
9425
|
+
itemsUpdatePropagation();
|
|
9380
9426
|
},
|
|
9381
9427
|
open: (id, value, event) => {
|
|
9382
9428
|
vm.emit('click:open', {
|
|
@@ -10764,7 +10810,8 @@
|
|
|
10764
10810
|
|
|
10765
10811
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
10766
10812
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
10767
|
-
const viewportMargin = 12;
|
|
10813
|
+
const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
|
|
10814
|
+
|
|
10768
10815
|
if (!scrollParents.length) {
|
|
10769
10816
|
scrollParents.push(document.documentElement);
|
|
10770
10817
|
if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
|
|
@@ -10784,10 +10831,17 @@
|
|
|
10784
10831
|
}
|
|
10785
10832
|
return scrollBox;
|
|
10786
10833
|
}, undefined);
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10834
|
+
if (props.stickToTarget) {
|
|
10835
|
+
viewport.x += Math.min(0, targetBox.x);
|
|
10836
|
+
viewport.y += Math.min(0, targetBox.y);
|
|
10837
|
+
viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
|
|
10838
|
+
viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
|
|
10839
|
+
} else {
|
|
10840
|
+
viewport.x += viewportMargin;
|
|
10841
|
+
viewport.y += viewportMargin;
|
|
10842
|
+
viewport.width -= viewportMargin * 2;
|
|
10843
|
+
viewport.height -= viewportMargin * 2;
|
|
10844
|
+
}
|
|
10791
10845
|
let placement = {
|
|
10792
10846
|
anchor: preferredAnchor.value,
|
|
10793
10847
|
origin: preferredOrigin.value
|
|
@@ -10898,19 +10952,19 @@
|
|
|
10898
10952
|
|
|
10899
10953
|
// shift
|
|
10900
10954
|
if (overflows.x.before) {
|
|
10901
|
-
|
|
10955
|
+
x += overflows.x.before;
|
|
10902
10956
|
contentBox.x += overflows.x.before;
|
|
10903
10957
|
}
|
|
10904
10958
|
if (overflows.x.after) {
|
|
10905
|
-
|
|
10959
|
+
x -= overflows.x.after;
|
|
10906
10960
|
contentBox.x -= overflows.x.after;
|
|
10907
10961
|
}
|
|
10908
10962
|
if (overflows.y.before) {
|
|
10909
|
-
|
|
10963
|
+
y += overflows.y.before;
|
|
10910
10964
|
contentBox.y += overflows.y.before;
|
|
10911
10965
|
}
|
|
10912
10966
|
if (overflows.y.after) {
|
|
10913
|
-
|
|
10967
|
+
y -= overflows.y.after;
|
|
10914
10968
|
contentBox.y -= overflows.y.after;
|
|
10915
10969
|
}
|
|
10916
10970
|
|
|
@@ -10919,9 +10973,9 @@
|
|
|
10919
10973
|
const overflows = getOverflow(contentBox, viewport);
|
|
10920
10974
|
available.x = viewport.width - overflows.x.before - overflows.x.after;
|
|
10921
10975
|
available.y = viewport.height - overflows.y.before - overflows.y.after;
|
|
10922
|
-
|
|
10976
|
+
x += overflows.x.before;
|
|
10923
10977
|
contentBox.x += overflows.x.before;
|
|
10924
|
-
|
|
10978
|
+
y += overflows.y.before;
|
|
10925
10979
|
contentBox.y += overflows.y.before;
|
|
10926
10980
|
}
|
|
10927
10981
|
break;
|
|
@@ -11231,7 +11285,6 @@
|
|
|
11231
11285
|
isActive.value = !isActive.value;
|
|
11232
11286
|
},
|
|
11233
11287
|
onMouseenter: e => {
|
|
11234
|
-
if (e.sourceCapabilities?.firesTouchEvents) return;
|
|
11235
11288
|
isHovered = true;
|
|
11236
11289
|
activatorEl.value = e.currentTarget || e.target;
|
|
11237
11290
|
runOpenDelay();
|
|
@@ -23681,6 +23734,14 @@
|
|
|
23681
23734
|
type: String,
|
|
23682
23735
|
default: 'picker-reverse-transition'
|
|
23683
23736
|
},
|
|
23737
|
+
events: {
|
|
23738
|
+
type: [Array, Function, Object],
|
|
23739
|
+
default: () => null
|
|
23740
|
+
},
|
|
23741
|
+
eventColor: {
|
|
23742
|
+
type: [Array, Function, Object, String],
|
|
23743
|
+
default: () => null
|
|
23744
|
+
},
|
|
23684
23745
|
...omit(makeCalendarProps(), ['displayValue'])
|
|
23685
23746
|
}, 'VDatePickerMonth');
|
|
23686
23747
|
const VDatePickerMonth = genericComponent()({
|
|
@@ -23780,6 +23841,49 @@
|
|
|
23780
23841
|
model.value = [value];
|
|
23781
23842
|
}
|
|
23782
23843
|
}
|
|
23844
|
+
function getEventColors(date) {
|
|
23845
|
+
const {
|
|
23846
|
+
events,
|
|
23847
|
+
eventColor
|
|
23848
|
+
} = props;
|
|
23849
|
+
let eventData;
|
|
23850
|
+
let eventColors = [];
|
|
23851
|
+
if (Array.isArray(events)) {
|
|
23852
|
+
eventData = events.includes(date);
|
|
23853
|
+
} else if (events instanceof Function) {
|
|
23854
|
+
eventData = events(date) || false;
|
|
23855
|
+
} else if (events) {
|
|
23856
|
+
eventData = events[date] || false;
|
|
23857
|
+
} else {
|
|
23858
|
+
eventData = false;
|
|
23859
|
+
}
|
|
23860
|
+
if (!eventData) {
|
|
23861
|
+
return [];
|
|
23862
|
+
} else if (eventData !== true) {
|
|
23863
|
+
eventColors = wrapInArray(eventData);
|
|
23864
|
+
} else if (typeof eventColor === 'string') {
|
|
23865
|
+
eventColors = [eventColor];
|
|
23866
|
+
} else if (typeof eventColor === 'function') {
|
|
23867
|
+
eventColors = wrapInArray(eventColor(date));
|
|
23868
|
+
} else if (Array.isArray(eventColor)) {
|
|
23869
|
+
eventColors = eventColor;
|
|
23870
|
+
} else if (typeof eventColor === 'object' && eventColor !== null) {
|
|
23871
|
+
eventColors = wrapInArray(eventColor[date]);
|
|
23872
|
+
}
|
|
23873
|
+
|
|
23874
|
+
// Fallback to default color if no color is found
|
|
23875
|
+
return !eventColors.length ? ['surface-variant'] : eventColors.filter(Boolean).map(color => typeof color === 'string' ? color : 'surface-variant');
|
|
23876
|
+
}
|
|
23877
|
+
function genEvents(date) {
|
|
23878
|
+
const eventColors = getEventColors(date);
|
|
23879
|
+
if (!eventColors.length) return null;
|
|
23880
|
+
return vue.createElementVNode("div", {
|
|
23881
|
+
"class": "v-date-picker-month__events"
|
|
23882
|
+
}, [eventColors.map(color => vue.createVNode(VBadge, {
|
|
23883
|
+
"dot": true,
|
|
23884
|
+
"color": color
|
|
23885
|
+
}, null))]);
|
|
23886
|
+
}
|
|
23783
23887
|
useRender(() => vue.createElementVNode("div", {
|
|
23784
23888
|
"class": "v-date-picker-month",
|
|
23785
23889
|
"style": {
|
|
@@ -23810,7 +23914,6 @@
|
|
|
23810
23914
|
disabled: item.isDisabled,
|
|
23811
23915
|
icon: true,
|
|
23812
23916
|
ripple: false,
|
|
23813
|
-
text: item.localized,
|
|
23814
23917
|
variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',
|
|
23815
23918
|
'aria-label': getDateAriaLabel(item),
|
|
23816
23919
|
'aria-current': item.isToday ? 'date' : undefined,
|
|
@@ -23831,7 +23934,9 @@
|
|
|
23831
23934
|
'v-date-picker-month__day--week-start': item.isWeekStart
|
|
23832
23935
|
}]),
|
|
23833
23936
|
"data-v-date": !item.isDisabled ? item.isoDate : undefined
|
|
23834
|
-
}, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props,
|
|
23937
|
+
}, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? vue.createVNode(VBtn, slotProps.props, {
|
|
23938
|
+
default: () => [item.localized, genEvents(item.isoDate)]
|
|
23939
|
+
}))]);
|
|
23835
23940
|
})])]
|
|
23836
23941
|
})]));
|
|
23837
23942
|
}
|
|
@@ -38162,7 +38267,7 @@
|
|
|
38162
38267
|
};
|
|
38163
38268
|
});
|
|
38164
38269
|
}
|
|
38165
|
-
const version$1 = "3.10.7-dev.2025-10-
|
|
38270
|
+
const version$1 = "3.10.7-dev.2025-10-25";
|
|
38166
38271
|
createVuetify$1.version = version$1;
|
|
38167
38272
|
|
|
38168
38273
|
// Vue's inject() can only be used in setup
|
|
@@ -38460,7 +38565,7 @@
|
|
|
38460
38565
|
|
|
38461
38566
|
/* eslint-disable local-rules/sort-imports */
|
|
38462
38567
|
|
|
38463
|
-
const version = "3.10.7-dev.2025-10-
|
|
38568
|
+
const version = "3.10.7-dev.2025-10-25";
|
|
38464
38569
|
|
|
38465
38570
|
/* eslint-disable local-rules/sort-imports */
|
|
38466
38571
|
|