@vuetify/nightly 3.8.7-dev.2025-05-27 → 3.8.7-dev.2025-06-03
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 +12 -3
- package/dist/json/attributes.json +3213 -3189
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +6 -0
- package/dist/json/web-types.json +5962 -5902
- package/dist/vuetify-labs.cjs +52 -19
- package/dist/vuetify-labs.css +5727 -5721
- package/dist/vuetify-labs.d.ts +677 -402
- package/dist/vuetify-labs.esm.js +52 -19
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +52 -19
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +52 -19
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4233 -4227
- package/dist/vuetify.d.ts +621 -378
- package/dist/vuetify.esm.js +52 -19
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +52 -19
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +29 -24
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.d.ts +15 -3
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +21 -7
- package/lib/components/VAutocomplete/VAutocomplete.js +2 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +20 -10
- package/lib/components/VCard/VCard.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckbox.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
- package/lib/components/VChip/VChip.d.ts +20 -10
- package/lib/components/VCombobox/VCombobox.d.ts +21 -7
- package/lib/components/VCombobox/VCombobox.js +2 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +42 -0
- package/lib/components/VDataTable/VDataTableServer.d.ts +29 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +29 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
- package/lib/components/VFab/VFab.d.ts +20 -10
- package/lib/components/VList/VList.d.ts +13 -0
- package/lib/components/VList/VList.js +4 -1
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +23 -10
- package/lib/components/VList/VListItem.js +7 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +9 -2
- package/lib/components/VList/list.js +7 -0
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VRadio/VRadio.d.ts +20 -10
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +20 -10
- package/lib/components/VSelect/VSelect.d.ts +33 -11
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
- package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
- package/lib/components/VStepper/VStepperItem.d.ts +28 -14
- package/lib/components/VSwitch/VSwitch.d.ts +20 -10
- package/lib/components/VTable/VTable.css +6 -0
- package/lib/components/VTable/VTable.d.ts +55 -24
- package/lib/components/VTable/VTable.js +9 -2
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +14 -0
- package/lib/components/VTable/_variables.scss +1 -0
- package/lib/components/VTabs/VTab.d.ts +56 -28
- package/lib/components/VToolbar/VToolbar.d.ts +15 -3
- package/lib/components/VToolbar/VToolbar.js +6 -3
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +2 -2
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/string.d.ts +54 -0
- package/lib/composables/date/adapters/string.js +153 -0
- package/lib/composables/date/adapters/string.js.map +1 -0
- package/lib/composables/date/date.d.ts +2 -2
- package/lib/directives/ripple/index.d.ts +2 -1
- package/lib/directives/ripple/index.js +12 -7
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +2 -2
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +75 -65
- package/lib/framework.js +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
- package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
- package/lib/labs/entry-bundler.d.ts +2 -2
- package/package.json +1 -1
package/dist/vuetify-labs.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.7-dev.2025-
|
2
|
+
* Vuetify v3.8.7-dev.2025-06-03
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -3803,7 +3803,10 @@
|
|
3803
3803
|
default: 'default',
|
3804
3804
|
validator: v => allowedDensities$1.includes(v)
|
3805
3805
|
},
|
3806
|
-
extended:
|
3806
|
+
extended: {
|
3807
|
+
type: Boolean,
|
3808
|
+
default: null
|
3809
|
+
},
|
3807
3810
|
extensionHeight: {
|
3808
3811
|
type: [Number, String],
|
3809
3812
|
default: 48
|
@@ -3851,7 +3854,7 @@
|
|
3851
3854
|
const {
|
3852
3855
|
rtlClasses
|
3853
3856
|
} = useRtl();
|
3854
|
-
const isExtended = vue.shallowRef(
|
3857
|
+
const isExtended = vue.shallowRef(props.extended === null ? !!slots.extension?.() : props.extended);
|
3855
3858
|
const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
3856
3859
|
const extensionHeight = vue.computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
|
3857
3860
|
provideDefaults({
|
@@ -3863,7 +3866,7 @@
|
|
3863
3866
|
const hasTitle = !!(props.title || slots.title);
|
3864
3867
|
const hasImage = !!(slots.image || props.image);
|
3865
3868
|
const extension = slots.extension?.();
|
3866
|
-
isExtended.value =
|
3869
|
+
isExtended.value = props.extended === null ? !!extension : props.extended;
|
3867
3870
|
return vue.createVNode(props.tag, {
|
3868
3871
|
"class": vue.normalizeClass(['v-toolbar', {
|
3869
3872
|
'v-toolbar--absolute': props.absolute,
|
@@ -5630,8 +5633,8 @@
|
|
5630
5633
|
window.clearTimeout(element._ripple.showTimer);
|
5631
5634
|
}
|
5632
5635
|
let keyboardRipple = false;
|
5633
|
-
function keyboardRippleShow(e) {
|
5634
|
-
if (!keyboardRipple && (e.keyCode
|
5636
|
+
function keyboardRippleShow(e, keys) {
|
5637
|
+
if (!keyboardRipple && keys.includes(e.keyCode)) {
|
5635
5638
|
keyboardRipple = true;
|
5636
5639
|
rippleShow(e);
|
5637
5640
|
}
|
@@ -5659,9 +5662,12 @@
|
|
5659
5662
|
el._ripple.enabled = enabled;
|
5660
5663
|
el._ripple.centered = modifiers.center;
|
5661
5664
|
el._ripple.circle = modifiers.circle;
|
5662
|
-
|
5663
|
-
|
5665
|
+
const bindingValue = isObject(value) ? value : {};
|
5666
|
+
if (bindingValue.class) {
|
5667
|
+
el._ripple.class = bindingValue.class;
|
5664
5668
|
}
|
5669
|
+
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5670
|
+
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5665
5671
|
if (enabled && !wasEnabled) {
|
5666
5672
|
if (modifiers.stop) {
|
5667
5673
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5683,7 +5689,7 @@
|
|
5683
5689
|
el.addEventListener('mousedown', rippleShow);
|
5684
5690
|
el.addEventListener('mouseup', rippleHide);
|
5685
5691
|
el.addEventListener('mouseleave', rippleHide);
|
5686
|
-
el.addEventListener('keydown', keyboardRippleShow);
|
5692
|
+
el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys));
|
5687
5693
|
el.addEventListener('keyup', keyboardRippleHide);
|
5688
5694
|
el.addEventListener('blur', focusRippleHide);
|
5689
5695
|
|
@@ -5703,7 +5709,9 @@
|
|
5703
5709
|
el.removeEventListener('touchcancel', rippleHide);
|
5704
5710
|
el.removeEventListener('mouseup', rippleHide);
|
5705
5711
|
el.removeEventListener('mouseleave', rippleHide);
|
5706
|
-
el.
|
5712
|
+
if (el._ripple?.keyDownHandler) {
|
5713
|
+
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5714
|
+
}
|
5707
5715
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5708
5716
|
el.removeEventListener('dragstart', rippleHide);
|
5709
5717
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -5712,8 +5720,8 @@
|
|
5712
5720
|
updateRipple(el, binding, false);
|
5713
5721
|
}
|
5714
5722
|
function unmounted$4(el) {
|
5715
|
-
delete el._ripple;
|
5716
5723
|
removeListeners(el);
|
5724
|
+
delete el._ripple;
|
5717
5725
|
}
|
5718
5726
|
function updated$1(el, binding) {
|
5719
5727
|
if (binding.value === binding.oldValue) {
|
@@ -8424,11 +8432,18 @@
|
|
8424
8432
|
// List
|
8425
8433
|
const ListKey = Symbol.for('vuetify:list');
|
8426
8434
|
function createList() {
|
8435
|
+
let {
|
8436
|
+
filterable
|
8437
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8438
|
+
filterable: false
|
8439
|
+
};
|
8427
8440
|
const parent = vue.inject(ListKey, {
|
8441
|
+
filterable: false,
|
8428
8442
|
hasPrepend: vue.shallowRef(false),
|
8429
8443
|
updateHasPrepend: () => null
|
8430
8444
|
});
|
8431
8445
|
const data = {
|
8446
|
+
filterable: parent.filterable || filterable,
|
8432
8447
|
hasPrepend: vue.shallowRef(false),
|
8433
8448
|
updateHasPrepend: value => {
|
8434
8449
|
if (value) data.hasPrepend.value = value;
|
@@ -9380,6 +9395,9 @@
|
|
9380
9395
|
roundedClasses
|
9381
9396
|
} = useRounded(roundedProps);
|
9382
9397
|
const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9398
|
+
const rippleOptions = vue.toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9399
|
+
keys: [keyCodes.enter]
|
9400
|
+
} : props.ripple);
|
9383
9401
|
const slotProps = vue.computed(() => ({
|
9384
9402
|
isActive: isActive.value,
|
9385
9403
|
select,
|
@@ -9404,8 +9422,9 @@
|
|
9404
9422
|
function onKeyDown(e) {
|
9405
9423
|
const target = e.target;
|
9406
9424
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9407
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
9425
|
+
if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
|
9408
9426
|
e.preventDefault();
|
9427
|
+
e.stopPropagation();
|
9409
9428
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9410
9429
|
}
|
9411
9430
|
}
|
@@ -9515,7 +9534,7 @@
|
|
9515
9534
|
}), vue.createElementVNode("div", {
|
9516
9535
|
"class": "v-list-item__spacer"
|
9517
9536
|
}, null)])]
|
9518
|
-
}), [[Ripple, isClickable.value &&
|
9537
|
+
}), [[Ripple, isClickable.value && rippleOptions.value]]);
|
9519
9538
|
});
|
9520
9539
|
return {
|
9521
9540
|
activate,
|
@@ -9838,6 +9857,7 @@
|
|
9838
9857
|
activeClass: String,
|
9839
9858
|
bgColor: String,
|
9840
9859
|
disabled: Boolean,
|
9860
|
+
filterable: Boolean,
|
9841
9861
|
expandIcon: IconValue,
|
9842
9862
|
collapseIcon: IconValue,
|
9843
9863
|
lines: {
|
@@ -9921,7 +9941,9 @@
|
|
9921
9941
|
const activeColor = vue.toRef(() => props.activeColor);
|
9922
9942
|
const baseColor = vue.toRef(() => props.baseColor);
|
9923
9943
|
const color = vue.toRef(() => props.color);
|
9924
|
-
createList(
|
9944
|
+
createList({
|
9945
|
+
filterable: props.filterable
|
9946
|
+
});
|
9925
9947
|
provideDefaults({
|
9926
9948
|
VListGroup: {
|
9927
9949
|
activeColor,
|
@@ -13544,7 +13566,7 @@
|
|
13544
13566
|
menu.value = !menu.value;
|
13545
13567
|
}
|
13546
13568
|
function onListKeydown(e) {
|
13547
|
-
if (e.key
|
13569
|
+
if (checkPrintable(e) || e.key === 'Backspace') {
|
13548
13570
|
vTextFieldRef.value?.focus();
|
13549
13571
|
}
|
13550
13572
|
}
|
@@ -13749,6 +13771,7 @@
|
|
13749
13771
|
}, props.menuProps), {
|
13750
13772
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
13751
13773
|
"ref": listRef,
|
13774
|
+
"filterable": true,
|
13752
13775
|
"selected": selectedValues.value,
|
13753
13776
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
13754
13777
|
"onMousedown": e => e.preventDefault(),
|
@@ -18287,7 +18310,7 @@
|
|
18287
18310
|
menu.value = !menu.value;
|
18288
18311
|
}
|
18289
18312
|
function onListKeydown(e) {
|
18290
|
-
if (e.key
|
18313
|
+
if (checkPrintable(e) || e.key === 'Backspace') {
|
18291
18314
|
vTextFieldRef.value?.focus();
|
18292
18315
|
}
|
18293
18316
|
}
|
@@ -18492,6 +18515,7 @@
|
|
18492
18515
|
}, props.menuProps), {
|
18493
18516
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
18494
18517
|
"ref": listRef,
|
18518
|
+
"filterable": true,
|
18495
18519
|
"selected": selectedValues.value,
|
18496
18520
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18497
18521
|
"onMousedown": e => e.preventDefault(),
|
@@ -20978,11 +21002,18 @@
|
|
20978
21002
|
}
|
20979
21003
|
});
|
20980
21004
|
|
21005
|
+
// Types
|
21006
|
+
|
20981
21007
|
const makeVTableProps = propsFactory({
|
20982
21008
|
fixedHeader: Boolean,
|
20983
21009
|
fixedFooter: Boolean,
|
20984
21010
|
height: [Number, String],
|
20985
21011
|
hover: Boolean,
|
21012
|
+
striped: {
|
21013
|
+
type: String,
|
21014
|
+
default: null,
|
21015
|
+
validator: v => ['even', 'odd'].includes(v)
|
21016
|
+
},
|
20986
21017
|
...makeComponentProps(),
|
20987
21018
|
...makeDensityProps(),
|
20988
21019
|
...makeTagProps(),
|
@@ -21009,7 +21040,9 @@
|
|
21009
21040
|
'v-table--fixed-footer': props.fixedFooter,
|
21010
21041
|
'v-table--has-top': !!slots.top,
|
21011
21042
|
'v-table--has-bottom': !!slots.bottom,
|
21012
|
-
'v-table--hover': props.hover
|
21043
|
+
'v-table--hover': props.hover,
|
21044
|
+
'v-table--striped-even': props.striped === 'even',
|
21045
|
+
'v-table--striped-odd': props.striped === 'odd'
|
21013
21046
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21014
21047
|
"style": vue.normalizeStyle(props.style)
|
21015
21048
|
}, {
|
@@ -32192,7 +32225,7 @@
|
|
32192
32225
|
};
|
32193
32226
|
});
|
32194
32227
|
}
|
32195
|
-
const version$1 = "3.8.7-dev.2025-
|
32228
|
+
const version$1 = "3.8.7-dev.2025-06-03";
|
32196
32229
|
createVuetify$1.version = version$1;
|
32197
32230
|
|
32198
32231
|
// Vue's inject() can only be used in setup
|
@@ -32490,7 +32523,7 @@
|
|
32490
32523
|
|
32491
32524
|
/* eslint-disable local-rules/sort-imports */
|
32492
32525
|
|
32493
|
-
const version = "3.8.7-dev.2025-
|
32526
|
+
const version = "3.8.7-dev.2025-06-03";
|
32494
32527
|
|
32495
32528
|
/* eslint-disable local-rules/sort-imports */
|
32496
32529
|
|