@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.esm.js
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
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
|
*/
|
|
6
6
|
|
|
7
|
-
import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, camelize, isVNode, Comment,
|
|
7
|
+
import { warn, shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, camelize, isVNode, Comment, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, createVNode, mergeProps, createElementVNode, normalizeClass, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, getCurrentScope, normalizeStyle, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
|
|
8
|
+
|
|
9
|
+
/* eslint-disable no-console */
|
|
10
|
+
|
|
11
|
+
function consoleWarn(message) {
|
|
12
|
+
warn(`Vuetify: ${message}`);
|
|
13
|
+
}
|
|
14
|
+
function consoleError(message) {
|
|
15
|
+
warn(`Vuetify error: ${message}`);
|
|
16
|
+
}
|
|
17
|
+
function deprecate(original, replacement) {
|
|
18
|
+
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
|
19
|
+
warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
|
20
|
+
}
|
|
8
21
|
|
|
9
22
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
10
23
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -208,6 +221,39 @@ function debounce(fn, delay) {
|
|
|
208
221
|
wrap.immediate = fn;
|
|
209
222
|
return wrap;
|
|
210
223
|
}
|
|
224
|
+
function throttle(fn, delay) {
|
|
225
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
|
|
226
|
+
leading: true,
|
|
227
|
+
trailing: true
|
|
228
|
+
};
|
|
229
|
+
let timeoutId = 0;
|
|
230
|
+
let lastExec = 0;
|
|
231
|
+
let throttling = false;
|
|
232
|
+
const wrap = function () {
|
|
233
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
234
|
+
args[_key2] = arguments[_key2];
|
|
235
|
+
}
|
|
236
|
+
clearTimeout(timeoutId);
|
|
237
|
+
const now = Date.now();
|
|
238
|
+
const elapsed = now - lastExec;
|
|
239
|
+
if (!throttling || elapsed >= delay) {
|
|
240
|
+
lastExec = now;
|
|
241
|
+
}
|
|
242
|
+
if (!throttling && options.leading || elapsed >= delay) {
|
|
243
|
+
window.setTimeout(() => fn(...args)); // ignore 'fn' executin errors
|
|
244
|
+
}
|
|
245
|
+
throttling = true;
|
|
246
|
+
timeoutId = window.setTimeout(() => {
|
|
247
|
+
throttling = false;
|
|
248
|
+
if (options.trailing) {
|
|
249
|
+
fn(...args);
|
|
250
|
+
}
|
|
251
|
+
}, delay);
|
|
252
|
+
};
|
|
253
|
+
wrap.clear = () => clearTimeout(timeoutId);
|
|
254
|
+
wrap.immediate = fn;
|
|
255
|
+
return wrap;
|
|
256
|
+
}
|
|
211
257
|
function clamp(value) {
|
|
212
258
|
let min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
213
259
|
let max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
@@ -384,8 +430,8 @@ function hasEvent(props, name) {
|
|
|
384
430
|
return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]);
|
|
385
431
|
}
|
|
386
432
|
function callEvent(handler) {
|
|
387
|
-
for (var
|
|
388
|
-
args[
|
|
433
|
+
for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
|
|
434
|
+
args[_key3 - 1] = arguments[_key3];
|
|
389
435
|
}
|
|
390
436
|
if (Array.isArray(handler)) {
|
|
391
437
|
for (const h of handler) {
|
|
@@ -398,7 +444,14 @@ function callEvent(handler) {
|
|
|
398
444
|
function focusableChildren(el) {
|
|
399
445
|
let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
400
446
|
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(', ');
|
|
401
|
-
|
|
447
|
+
let elements;
|
|
448
|
+
try {
|
|
449
|
+
elements = [...el.querySelectorAll(targets)];
|
|
450
|
+
} catch (err) {
|
|
451
|
+
consoleError(String(err));
|
|
452
|
+
return [];
|
|
453
|
+
}
|
|
454
|
+
return elements.filter(x => !x.closest('[inert]')) // does not have inert parent
|
|
402
455
|
.filter(x => !!x.offsetParent || x.getClientRects().length > 0) // is rendered
|
|
403
456
|
.filter(x => !x.parentElement?.closest('details:not([open])') || x.tagName === 'SUMMARY' && x.parentElement?.tagName === 'DETAILS');
|
|
404
457
|
}
|
|
@@ -865,19 +918,6 @@ function APCAcontrast(text, background) {
|
|
|
865
918
|
return outputContrast * 100;
|
|
866
919
|
}
|
|
867
920
|
|
|
868
|
-
/* eslint-disable no-console */
|
|
869
|
-
|
|
870
|
-
function consoleWarn(message) {
|
|
871
|
-
warn(`Vuetify: ${message}`);
|
|
872
|
-
}
|
|
873
|
-
function consoleError(message) {
|
|
874
|
-
warn(`Vuetify error: ${message}`);
|
|
875
|
-
}
|
|
876
|
-
function deprecate(original, replacement) {
|
|
877
|
-
replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map(s => `'${s}'`).join(', ') + ` or '${replacement.at(-1)}'` : `'${replacement}'`;
|
|
878
|
-
warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`);
|
|
879
|
-
}
|
|
880
|
-
|
|
881
921
|
// Types
|
|
882
922
|
|
|
883
923
|
const delta = 0.20689655172413793; // 6÷29
|
|
@@ -9655,6 +9695,10 @@ const useNested = props => {
|
|
|
9655
9695
|
}
|
|
9656
9696
|
const vm = getCurrentInstance('nested');
|
|
9657
9697
|
const nodeIds = new Set();
|
|
9698
|
+
const itemsUpdatePropagation = throttle(() => {
|
|
9699
|
+
children.value = new Map(children.value);
|
|
9700
|
+
parents.value = new Map(parents.value);
|
|
9701
|
+
}, 100);
|
|
9658
9702
|
const nested = {
|
|
9659
9703
|
id: shallowRef(),
|
|
9660
9704
|
root: {
|
|
@@ -9685,6 +9729,7 @@ const useNested = props => {
|
|
|
9685
9729
|
if (parentId != null) {
|
|
9686
9730
|
children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
|
|
9687
9731
|
}
|
|
9732
|
+
itemsUpdatePropagation();
|
|
9688
9733
|
},
|
|
9689
9734
|
unregister: id => {
|
|
9690
9735
|
if (isUnmounted) return;
|
|
@@ -9697,6 +9742,7 @@ const useNested = props => {
|
|
|
9697
9742
|
children.value.set(parent, list.filter(child => child !== id));
|
|
9698
9743
|
}
|
|
9699
9744
|
parents.value.delete(id);
|
|
9745
|
+
itemsUpdatePropagation();
|
|
9700
9746
|
},
|
|
9701
9747
|
open: (id, value, event) => {
|
|
9702
9748
|
vm.emit('click:open', {
|
|
@@ -11084,7 +11130,8 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
11084
11130
|
|
|
11085
11131
|
const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
|
|
11086
11132
|
const scrollParents = getScrollParents(data.contentEl.value);
|
|
11087
|
-
const viewportMargin = 12;
|
|
11133
|
+
const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
|
|
11134
|
+
|
|
11088
11135
|
if (!scrollParents.length) {
|
|
11089
11136
|
scrollParents.push(document.documentElement);
|
|
11090
11137
|
if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
|
|
@@ -11104,10 +11151,17 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
11104
11151
|
}
|
|
11105
11152
|
return scrollBox;
|
|
11106
11153
|
}, undefined);
|
|
11107
|
-
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
|
|
11154
|
+
if (props.stickToTarget) {
|
|
11155
|
+
viewport.x += Math.min(0, targetBox.x);
|
|
11156
|
+
viewport.y += Math.min(0, targetBox.y);
|
|
11157
|
+
viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
|
|
11158
|
+
viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
|
|
11159
|
+
} else {
|
|
11160
|
+
viewport.x += viewportMargin;
|
|
11161
|
+
viewport.y += viewportMargin;
|
|
11162
|
+
viewport.width -= viewportMargin * 2;
|
|
11163
|
+
viewport.height -= viewportMargin * 2;
|
|
11164
|
+
}
|
|
11111
11165
|
let placement = {
|
|
11112
11166
|
anchor: preferredAnchor.value,
|
|
11113
11167
|
origin: preferredOrigin.value
|
|
@@ -11218,19 +11272,19 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
11218
11272
|
|
|
11219
11273
|
// shift
|
|
11220
11274
|
if (overflows.x.before) {
|
|
11221
|
-
|
|
11275
|
+
x += overflows.x.before;
|
|
11222
11276
|
contentBox.x += overflows.x.before;
|
|
11223
11277
|
}
|
|
11224
11278
|
if (overflows.x.after) {
|
|
11225
|
-
|
|
11279
|
+
x -= overflows.x.after;
|
|
11226
11280
|
contentBox.x -= overflows.x.after;
|
|
11227
11281
|
}
|
|
11228
11282
|
if (overflows.y.before) {
|
|
11229
|
-
|
|
11283
|
+
y += overflows.y.before;
|
|
11230
11284
|
contentBox.y += overflows.y.before;
|
|
11231
11285
|
}
|
|
11232
11286
|
if (overflows.y.after) {
|
|
11233
|
-
|
|
11287
|
+
y -= overflows.y.after;
|
|
11234
11288
|
contentBox.y -= overflows.y.after;
|
|
11235
11289
|
}
|
|
11236
11290
|
|
|
@@ -11239,9 +11293,9 @@ function connectedLocationStrategy(data, props, contentStyles) {
|
|
|
11239
11293
|
const overflows = getOverflow(contentBox, viewport);
|
|
11240
11294
|
available.x = viewport.width - overflows.x.before - overflows.x.after;
|
|
11241
11295
|
available.y = viewport.height - overflows.y.before - overflows.y.after;
|
|
11242
|
-
|
|
11296
|
+
x += overflows.x.before;
|
|
11243
11297
|
contentBox.x += overflows.x.before;
|
|
11244
|
-
|
|
11298
|
+
y += overflows.y.before;
|
|
11245
11299
|
contentBox.y += overflows.y.before;
|
|
11246
11300
|
}
|
|
11247
11301
|
break;
|
|
@@ -11551,7 +11605,6 @@ function useActivator(props, _ref) {
|
|
|
11551
11605
|
isActive.value = !isActive.value;
|
|
11552
11606
|
},
|
|
11553
11607
|
onMouseenter: e => {
|
|
11554
|
-
if (e.sourceCapabilities?.firesTouchEvents) return;
|
|
11555
11608
|
isHovered = true;
|
|
11556
11609
|
activatorEl.value = e.currentTarget || e.target;
|
|
11557
11610
|
runOpenDelay();
|
|
@@ -23992,6 +24045,14 @@ const makeVDatePickerMonthProps = propsFactory({
|
|
|
23992
24045
|
type: String,
|
|
23993
24046
|
default: 'picker-reverse-transition'
|
|
23994
24047
|
},
|
|
24048
|
+
events: {
|
|
24049
|
+
type: [Array, Function, Object],
|
|
24050
|
+
default: () => null
|
|
24051
|
+
},
|
|
24052
|
+
eventColor: {
|
|
24053
|
+
type: [Array, Function, Object, String],
|
|
24054
|
+
default: () => null
|
|
24055
|
+
},
|
|
23995
24056
|
...omit(makeCalendarProps(), ['displayValue'])
|
|
23996
24057
|
}, 'VDatePickerMonth');
|
|
23997
24058
|
const VDatePickerMonth = genericComponent()({
|
|
@@ -24091,6 +24152,49 @@ const VDatePickerMonth = genericComponent()({
|
|
|
24091
24152
|
model.value = [value];
|
|
24092
24153
|
}
|
|
24093
24154
|
}
|
|
24155
|
+
function getEventColors(date) {
|
|
24156
|
+
const {
|
|
24157
|
+
events,
|
|
24158
|
+
eventColor
|
|
24159
|
+
} = props;
|
|
24160
|
+
let eventData;
|
|
24161
|
+
let eventColors = [];
|
|
24162
|
+
if (Array.isArray(events)) {
|
|
24163
|
+
eventData = events.includes(date);
|
|
24164
|
+
} else if (events instanceof Function) {
|
|
24165
|
+
eventData = events(date) || false;
|
|
24166
|
+
} else if (events) {
|
|
24167
|
+
eventData = events[date] || false;
|
|
24168
|
+
} else {
|
|
24169
|
+
eventData = false;
|
|
24170
|
+
}
|
|
24171
|
+
if (!eventData) {
|
|
24172
|
+
return [];
|
|
24173
|
+
} else if (eventData !== true) {
|
|
24174
|
+
eventColors = wrapInArray(eventData);
|
|
24175
|
+
} else if (typeof eventColor === 'string') {
|
|
24176
|
+
eventColors = [eventColor];
|
|
24177
|
+
} else if (typeof eventColor === 'function') {
|
|
24178
|
+
eventColors = wrapInArray(eventColor(date));
|
|
24179
|
+
} else if (Array.isArray(eventColor)) {
|
|
24180
|
+
eventColors = eventColor;
|
|
24181
|
+
} else if (typeof eventColor === 'object' && eventColor !== null) {
|
|
24182
|
+
eventColors = wrapInArray(eventColor[date]);
|
|
24183
|
+
}
|
|
24184
|
+
|
|
24185
|
+
// Fallback to default color if no color is found
|
|
24186
|
+
return !eventColors.length ? ['surface-variant'] : eventColors.filter(Boolean).map(color => typeof color === 'string' ? color : 'surface-variant');
|
|
24187
|
+
}
|
|
24188
|
+
function genEvents(date) {
|
|
24189
|
+
const eventColors = getEventColors(date);
|
|
24190
|
+
if (!eventColors.length) return null;
|
|
24191
|
+
return createElementVNode("div", {
|
|
24192
|
+
"class": "v-date-picker-month__events"
|
|
24193
|
+
}, [eventColors.map(color => createVNode(VBadge, {
|
|
24194
|
+
"dot": true,
|
|
24195
|
+
"color": color
|
|
24196
|
+
}, null))]);
|
|
24197
|
+
}
|
|
24094
24198
|
useRender(() => createElementVNode("div", {
|
|
24095
24199
|
"class": "v-date-picker-month",
|
|
24096
24200
|
"style": {
|
|
@@ -24121,7 +24225,6 @@ const VDatePickerMonth = genericComponent()({
|
|
|
24121
24225
|
disabled: item.isDisabled,
|
|
24122
24226
|
icon: true,
|
|
24123
24227
|
ripple: false,
|
|
24124
|
-
text: item.localized,
|
|
24125
24228
|
variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',
|
|
24126
24229
|
'aria-label': getDateAriaLabel(item),
|
|
24127
24230
|
'aria-current': item.isToday ? 'date' : undefined,
|
|
@@ -24142,7 +24245,9 @@ const VDatePickerMonth = genericComponent()({
|
|
|
24142
24245
|
'v-date-picker-month__day--week-start': item.isWeekStart
|
|
24143
24246
|
}]),
|
|
24144
24247
|
"data-v-date": !item.isDisabled ? item.isoDate : undefined
|
|
24145
|
-
}, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props,
|
|
24248
|
+
}, [(props.showAdjacentMonths || !item.isAdjacent) && (slots.day?.(slotProps) ?? createVNode(VBtn, slotProps.props, {
|
|
24249
|
+
default: () => [item.localized, genEvents(item.isoDate)]
|
|
24250
|
+
}))]);
|
|
24146
24251
|
})])]
|
|
24147
24252
|
})]));
|
|
24148
24253
|
}
|
|
@@ -32523,7 +32628,7 @@ function createVuetify$1() {
|
|
|
32523
32628
|
};
|
|
32524
32629
|
});
|
|
32525
32630
|
}
|
|
32526
|
-
const version$1 = "3.10.7-dev.2025-10-
|
|
32631
|
+
const version$1 = "3.10.7-dev.2025-10-25";
|
|
32527
32632
|
createVuetify$1.version = version$1;
|
|
32528
32633
|
|
|
32529
32634
|
// Vue's inject() can only be used in setup
|
|
@@ -32548,7 +32653,7 @@ const createVuetify = function () {
|
|
|
32548
32653
|
...options
|
|
32549
32654
|
});
|
|
32550
32655
|
};
|
|
32551
|
-
const version = "3.10.7-dev.2025-10-
|
|
32656
|
+
const version = "3.10.7-dev.2025-10-25";
|
|
32552
32657
|
createVuetify.version = version;
|
|
32553
32658
|
|
|
32554
32659
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };
|