vuetify 3.5.5 → 3.5.7
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/_component-variables-labs.sass +2 -0
- package/dist/json/attributes.json +352 -40
- package/dist/json/importMap-labs.json +16 -8
- package/dist/json/importMap.json +122 -118
- package/dist/json/tags.json +93 -0
- package/dist/json/web-types.json +1084 -52
- package/dist/vuetify-labs.css +2121 -1996
- package/dist/vuetify-labs.d.ts +1336 -128
- package/dist/vuetify-labs.esm.js +332 -81
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +332 -81
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +838 -839
- package/dist/vuetify.d.ts +320 -145
- package/dist/vuetify.esm.js +87 -75
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +87 -75
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +60 -58
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VApp/index.d.mts +8 -6
- package/lib/components/VAutocomplete/VAutocomplete.css +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -29
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +3 -1
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +4 -4
- package/lib/components/VCombobox/VCombobox.mjs +22 -23
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.d.mts +50 -94
- package/lib/components/VDataTable/index.d.mts +214 -1
- package/lib/components/VDataTable/index.mjs +1 -0
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +4 -7
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +4 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +27 -0
- package/lib/components/VLayout/index.d.mts +8 -6
- package/lib/components/VSelect/VSelect.mjs +20 -18
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +3 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/index.d.mts +279 -106
- package/lib/composables/filter.mjs +1 -1
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/goto.mjs +2 -2
- package/lib/composables/goto.mjs.map +1 -1
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +42 -39
- package/lib/labs/VEmptyState/VEmptyState.css +59 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs +145 -0
- package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -0
- package/lib/labs/VEmptyState/VEmptyState.sass +53 -0
- package/lib/labs/VEmptyState/_variables.scss +22 -0
- package/lib/labs/VEmptyState/index.d.mts +415 -0
- package/lib/labs/VEmptyState/index.mjs +2 -0
- package/lib/labs/VEmptyState/index.mjs.map +1 -0
- package/lib/labs/VFab/VFab.css +69 -0
- package/lib/labs/VFab/VFab.mjs +114 -0
- package/lib/labs/VFab/VFab.mjs.map +1 -0
- package/lib/labs/VFab/VFab.sass +82 -0
- package/lib/labs/VFab/_mixins.scss +22 -0
- package/lib/labs/VFab/_variables.scss +33 -0
- package/lib/labs/VFab/index.d.mts +656 -0
- package/lib/labs/VFab/index.mjs +2 -0
- package/lib/labs/VFab/index.mjs.map +1 -0
- package/lib/labs/VSparkline/VBarline.mjs +4 -4
- package/lib/labs/VSparkline/VBarline.mjs.map +1 -1
- package/lib/labs/VSparkline/VTrendline.mjs +6 -2
- package/lib/labs/VSparkline/VTrendline.mjs.map +1 -1
- package/lib/labs/VSparkline/index.d.mts +12 -0
- package/lib/labs/VSparkline/util/line.mjs +2 -0
- package/lib/labs/VSparkline/util/line.mjs.map +1 -1
- package/lib/labs/components.d.mts +1066 -2
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.
|
|
2
|
+
* Vuetify v3.5.7
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -6885,7 +6885,8 @@
|
|
|
6885
6885
|
id,
|
|
6886
6886
|
messagesId,
|
|
6887
6887
|
isDisabled,
|
|
6888
|
-
isReadonly
|
|
6888
|
+
isReadonly,
|
|
6889
|
+
isValid
|
|
6889
6890
|
} = _ref2;
|
|
6890
6891
|
return vue.createVNode(VCheckboxBtn, vue.mergeProps(checkboxProps, {
|
|
6891
6892
|
"id": id.value,
|
|
@@ -6893,6 +6894,7 @@
|
|
|
6893
6894
|
"disabled": isDisabled.value,
|
|
6894
6895
|
"readonly": isReadonly.value
|
|
6895
6896
|
}, controlAttrs, {
|
|
6897
|
+
"error": isValid.value === false,
|
|
6896
6898
|
"modelValue": model.value,
|
|
6897
6899
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6898
6900
|
"onFocus": focus,
|
|
@@ -11842,20 +11844,27 @@
|
|
|
11842
11844
|
model.value = [item];
|
|
11843
11845
|
}
|
|
11844
11846
|
}
|
|
11847
|
+
|
|
11848
|
+
/** @param set - null means toggle */
|
|
11845
11849
|
function select(item) {
|
|
11846
|
-
|
|
11847
|
-
|
|
11850
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
11851
|
+
if (item.props.disabled) return;
|
|
11848
11852
|
if (props.multiple) {
|
|
11849
|
-
|
|
11850
|
-
|
|
11851
|
-
|
|
11852
|
-
const value = [...model.value];
|
|
11853
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
11854
|
+
const add = set == null ? !~index : set;
|
|
11855
|
+
if (~index) {
|
|
11856
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
11853
11857
|
value.splice(index, 1);
|
|
11854
11858
|
model.value = value;
|
|
11859
|
+
} else if (add) {
|
|
11860
|
+
model.value = [...model.value, item];
|
|
11855
11861
|
}
|
|
11856
11862
|
} else {
|
|
11863
|
+
const add = set !== false;
|
|
11857
11864
|
model.value = add ? [item] : [];
|
|
11858
|
-
|
|
11865
|
+
vue.nextTick(() => {
|
|
11866
|
+
menu.value = false;
|
|
11867
|
+
});
|
|
11859
11868
|
}
|
|
11860
11869
|
}
|
|
11861
11870
|
function onBlur(e) {
|
|
@@ -11889,14 +11898,9 @@
|
|
|
11889
11898
|
});
|
|
11890
11899
|
}
|
|
11891
11900
|
});
|
|
11892
|
-
vue.watch(
|
|
11893
|
-
if (!isFocused.value) return;
|
|
11894
|
-
|
|
11895
|
-
menu.value = false;
|
|
11896
|
-
}
|
|
11897
|
-
if (!oldVal.length && val.length) {
|
|
11898
|
-
menu.value = true;
|
|
11899
|
-
}
|
|
11901
|
+
vue.watch(() => props.items, val => {
|
|
11902
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
11903
|
+
menu.value = true;
|
|
11900
11904
|
});
|
|
11901
11905
|
useRender(() => {
|
|
11902
11906
|
const hasChips = !!(props.chips || slots.chip);
|
|
@@ -11974,7 +11978,7 @@
|
|
|
11974
11978
|
const itemProps = vue.mergeProps(item.props, {
|
|
11975
11979
|
ref: itemRef,
|
|
11976
11980
|
key: index,
|
|
11977
|
-
onClick: () => select(item)
|
|
11981
|
+
onClick: () => select(item, null)
|
|
11978
11982
|
});
|
|
11979
11983
|
return slots.item?.({
|
|
11980
11984
|
item,
|
|
@@ -12006,7 +12010,7 @@
|
|
|
12006
12010
|
function onChipClose(e) {
|
|
12007
12011
|
e.stopPropagation();
|
|
12008
12012
|
e.preventDefault();
|
|
12009
|
-
select(item);
|
|
12013
|
+
select(item, false);
|
|
12010
12014
|
}
|
|
12011
12015
|
const slotProps = {
|
|
12012
12016
|
'onClick:close': onChipClose,
|
|
@@ -12116,7 +12120,7 @@
|
|
|
12116
12120
|
if (typeof item === 'object') {
|
|
12117
12121
|
const filterKeys = keys || Object.keys(transformed);
|
|
12118
12122
|
for (const key of filterKeys) {
|
|
12119
|
-
const value = getPropertyFromItem(transformed, key
|
|
12123
|
+
const value = getPropertyFromItem(transformed, key);
|
|
12120
12124
|
const keyFilter = options?.customKeyFilter?.[key];
|
|
12121
12125
|
match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
|
|
12122
12126
|
if (match !== -1 && match !== false) {
|
|
@@ -12281,6 +12285,8 @@
|
|
|
12281
12285
|
}
|
|
12282
12286
|
return filteredItems.value;
|
|
12283
12287
|
});
|
|
12288
|
+
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
12289
|
+
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
12284
12290
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.props.value));
|
|
12285
12291
|
const highlightFirst = vue.computed(() => {
|
|
12286
12292
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
@@ -12339,7 +12345,7 @@
|
|
|
12339
12345
|
}
|
|
12340
12346
|
const originalSelectionIndex = selectionIndex.value;
|
|
12341
12347
|
const selectedItem = model.value[selectionIndex.value];
|
|
12342
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem);
|
|
12348
|
+
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
12343
12349
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12344
12350
|
}
|
|
12345
12351
|
if (e.key === 'ArrowLeft') {
|
|
@@ -12390,35 +12396,41 @@
|
|
|
12390
12396
|
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
12391
12397
|
}
|
|
12392
12398
|
const isSelecting = vue.shallowRef(false);
|
|
12399
|
+
|
|
12400
|
+
/** @param set - null means toggle */
|
|
12393
12401
|
function select(item) {
|
|
12402
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12394
12403
|
if (item.props.disabled) return;
|
|
12395
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12396
|
-
const add = index === -1;
|
|
12397
12404
|
if (props.multiple) {
|
|
12398
|
-
|
|
12399
|
-
|
|
12400
|
-
|
|
12401
|
-
const value = [...model.value];
|
|
12405
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12406
|
+
const add = set == null ? !~index : set;
|
|
12407
|
+
if (~index) {
|
|
12408
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
12402
12409
|
value.splice(index, 1);
|
|
12403
12410
|
model.value = value;
|
|
12411
|
+
} else if (add) {
|
|
12412
|
+
model.value = [...model.value, item];
|
|
12404
12413
|
}
|
|
12405
12414
|
if (props.clearOnSelect) {
|
|
12406
12415
|
search.value = '';
|
|
12407
12416
|
}
|
|
12408
12417
|
} else {
|
|
12418
|
+
const add = set !== false;
|
|
12409
12419
|
model.value = add ? [item] : [];
|
|
12410
|
-
|
|
12411
|
-
|
|
12412
|
-
|
|
12413
|
-
|
|
12414
|
-
|
|
12420
|
+
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
12421
|
+
|
|
12422
|
+
// watch for search watcher to trigger
|
|
12423
|
+
vue.nextTick(() => {
|
|
12424
|
+
menu.value = false;
|
|
12425
|
+
isPristine.value = true;
|
|
12426
|
+
});
|
|
12415
12427
|
}
|
|
12416
12428
|
}
|
|
12417
12429
|
vue.watch(isFocused, (val, oldVal) => {
|
|
12418
12430
|
if (val === oldVal) return;
|
|
12419
12431
|
if (val) {
|
|
12420
12432
|
isSelecting.value = true;
|
|
12421
|
-
search.value = props.multiple ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12433
|
+
search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12422
12434
|
isPristine.value = true;
|
|
12423
12435
|
vue.nextTick(() => isSelecting.value = false);
|
|
12424
12436
|
} else {
|
|
@@ -12448,17 +12460,11 @@
|
|
|
12448
12460
|
});
|
|
12449
12461
|
}
|
|
12450
12462
|
});
|
|
12451
|
-
vue.watch(
|
|
12452
|
-
if (!isFocused.value) return;
|
|
12453
|
-
|
|
12454
|
-
menu.value = false;
|
|
12455
|
-
}
|
|
12456
|
-
if (!oldVal.length && val.length) {
|
|
12457
|
-
menu.value = true;
|
|
12458
|
-
}
|
|
12463
|
+
vue.watch(() => props.items, val => {
|
|
12464
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
12465
|
+
menu.value = true;
|
|
12459
12466
|
});
|
|
12460
12467
|
useRender(() => {
|
|
12461
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
12462
12468
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
12463
12469
|
const isDirty = model.value.length > 0;
|
|
12464
12470
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -12476,7 +12482,7 @@
|
|
|
12476
12482
|
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
|
12477
12483
|
'v-autocomplete--active-menu': menu.value,
|
|
12478
12484
|
'v-autocomplete--chips': !!props.chips,
|
|
12479
|
-
'v-autocomplete--selection-slot': !!
|
|
12485
|
+
'v-autocomplete--selection-slot': !!hasSelectionSlot.value,
|
|
12480
12486
|
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
12481
12487
|
}, props.class],
|
|
12482
12488
|
"style": props.style,
|
|
@@ -12531,13 +12537,15 @@
|
|
|
12531
12537
|
ref: itemRef,
|
|
12532
12538
|
key: index,
|
|
12533
12539
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
12534
|
-
onClick: () => select(item)
|
|
12540
|
+
onClick: () => select(item, null)
|
|
12535
12541
|
});
|
|
12536
12542
|
return slots.item?.({
|
|
12537
12543
|
item,
|
|
12538
12544
|
index,
|
|
12539
12545
|
props: itemProps
|
|
12540
|
-
}) ?? vue.createVNode(VListItem, itemProps, {
|
|
12546
|
+
}) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
|
|
12547
|
+
"role": "option"
|
|
12548
|
+
}), {
|
|
12541
12549
|
prepend: _ref4 => {
|
|
12542
12550
|
let {
|
|
12543
12551
|
isSelected
|
|
@@ -12564,7 +12572,7 @@
|
|
|
12564
12572
|
function onChipClose(e) {
|
|
12565
12573
|
e.stopPropagation();
|
|
12566
12574
|
e.preventDefault();
|
|
12567
|
-
select(item);
|
|
12575
|
+
select(item, false);
|
|
12568
12576
|
}
|
|
12569
12577
|
const slotProps = {
|
|
12570
12578
|
'onClick:close': onChipClose,
|
|
@@ -12575,8 +12583,8 @@
|
|
|
12575
12583
|
modelValue: true,
|
|
12576
12584
|
'onUpdate:modelValue': undefined
|
|
12577
12585
|
};
|
|
12578
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
12579
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
12586
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
12587
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
12580
12588
|
item,
|
|
12581
12589
|
index,
|
|
12582
12590
|
props: slotProps
|
|
@@ -12589,7 +12597,7 @@
|
|
|
12589
12597
|
"key": item.value,
|
|
12590
12598
|
"class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
|
|
12591
12599
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
12592
|
-
}, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
12600
|
+
}, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
12593
12601
|
"key": "chip",
|
|
12594
12602
|
"closable": props.closableChips,
|
|
12595
12603
|
"size": "small",
|
|
@@ -16028,14 +16036,16 @@
|
|
|
16028
16036
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16029
16037
|
});
|
|
16030
16038
|
const form = useForm();
|
|
16031
|
-
const
|
|
16039
|
+
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
16040
|
+
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
16041
|
+
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
16032
16042
|
const search = vue.computed({
|
|
16033
16043
|
get: () => {
|
|
16034
16044
|
return _search.value;
|
|
16035
16045
|
},
|
|
16036
16046
|
set: val => {
|
|
16037
16047
|
_search.value = val ?? '';
|
|
16038
|
-
if (!props.multiple) {
|
|
16048
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16039
16049
|
model.value = [transformItem$3(props, val)];
|
|
16040
16050
|
}
|
|
16041
16051
|
if (val && props.multiple && props.delimiters?.length) {
|
|
@@ -16066,7 +16076,7 @@
|
|
|
16066
16076
|
emit('update:search', value);
|
|
16067
16077
|
});
|
|
16068
16078
|
vue.watch(model, value => {
|
|
16069
|
-
if (!props.multiple) {
|
|
16079
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16070
16080
|
_search.value = value[0]?.title ?? '';
|
|
16071
16081
|
}
|
|
16072
16082
|
});
|
|
@@ -16131,6 +16141,10 @@
|
|
|
16131
16141
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
16132
16142
|
listRef.value?.focus('next');
|
|
16133
16143
|
}
|
|
16144
|
+
if (e.key === 'Enter' && search.value) {
|
|
16145
|
+
select(transformItem$3(props, search.value));
|
|
16146
|
+
if (hasSelectionSlot.value) search.value = '';
|
|
16147
|
+
}
|
|
16134
16148
|
if (!props.multiple) return;
|
|
16135
16149
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16136
16150
|
if (selectionIndex.value < 0) {
|
|
@@ -16164,10 +16178,6 @@
|
|
|
16164
16178
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
16165
16179
|
}
|
|
16166
16180
|
}
|
|
16167
|
-
if (e.key === 'Enter' && search.value) {
|
|
16168
|
-
select(transformItem$3(props, search.value));
|
|
16169
|
-
search.value = '';
|
|
16170
|
-
}
|
|
16171
16181
|
}
|
|
16172
16182
|
function onAfterLeave() {
|
|
16173
16183
|
if (isFocused.value) {
|
|
@@ -16178,6 +16188,7 @@
|
|
|
16178
16188
|
/** @param set - null means toggle */
|
|
16179
16189
|
function select(item) {
|
|
16180
16190
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
16191
|
+
if (item.props.disabled) return;
|
|
16181
16192
|
if (props.multiple) {
|
|
16182
16193
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
16183
16194
|
const add = set == null ? !~index : set;
|
|
@@ -16194,7 +16205,7 @@
|
|
|
16194
16205
|
} else {
|
|
16195
16206
|
const add = set !== false;
|
|
16196
16207
|
model.value = add ? [item] : [];
|
|
16197
|
-
_search.value = add ? item.title : '';
|
|
16208
|
+
_search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
16198
16209
|
|
|
16199
16210
|
// watch for search watcher to trigger
|
|
16200
16211
|
vue.nextTick(() => {
|
|
@@ -16226,7 +16237,7 @@
|
|
|
16226
16237
|
return value === displayItems.value[0].value;
|
|
16227
16238
|
})) {
|
|
16228
16239
|
select(displayItems.value[0]);
|
|
16229
|
-
} else if (
|
|
16240
|
+
} else if (search.value) {
|
|
16230
16241
|
select(transformItem$3(props, search.value));
|
|
16231
16242
|
}
|
|
16232
16243
|
});
|
|
@@ -16238,17 +16249,11 @@
|
|
|
16238
16249
|
});
|
|
16239
16250
|
}
|
|
16240
16251
|
});
|
|
16241
|
-
vue.watch(
|
|
16242
|
-
if (!isFocused.value) return;
|
|
16243
|
-
|
|
16244
|
-
menu.value = false;
|
|
16245
|
-
}
|
|
16246
|
-
if (!oldVal.length && val.length) {
|
|
16247
|
-
menu.value = true;
|
|
16248
|
-
}
|
|
16252
|
+
vue.watch(() => props.items, val => {
|
|
16253
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
16254
|
+
menu.value = true;
|
|
16249
16255
|
});
|
|
16250
16256
|
useRender(() => {
|
|
16251
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
16252
16257
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
16253
16258
|
const isDirty = model.value.length > 0;
|
|
16254
16259
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -16265,7 +16270,7 @@
|
|
|
16265
16270
|
"class": ['v-combobox', {
|
|
16266
16271
|
'v-combobox--active-menu': menu.value,
|
|
16267
16272
|
'v-combobox--chips': !!props.chips,
|
|
16268
|
-
'v-combobox--selection-slot': !!
|
|
16273
|
+
'v-combobox--selection-slot': !!hasSelectionSlot.value,
|
|
16269
16274
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
16270
16275
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
16271
16276
|
}, props.class],
|
|
@@ -16327,7 +16332,9 @@
|
|
|
16327
16332
|
item,
|
|
16328
16333
|
index,
|
|
16329
16334
|
props: itemProps
|
|
16330
|
-
}) ?? vue.createVNode(VListItem, itemProps, {
|
|
16335
|
+
}) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
|
|
16336
|
+
"role": "option"
|
|
16337
|
+
}), {
|
|
16331
16338
|
prepend: _ref4 => {
|
|
16332
16339
|
let {
|
|
16333
16340
|
isSelected
|
|
@@ -16365,8 +16372,8 @@
|
|
|
16365
16372
|
modelValue: true,
|
|
16366
16373
|
'onUpdate:modelValue': undefined
|
|
16367
16374
|
};
|
|
16368
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
16369
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
16375
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
16376
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
16370
16377
|
item,
|
|
16371
16378
|
index,
|
|
16372
16379
|
props: slotProps
|
|
@@ -16379,7 +16386,7 @@
|
|
|
16379
16386
|
"key": item.value,
|
|
16380
16387
|
"class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
|
|
16381
16388
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
16382
|
-
}, [hasChips ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
16389
|
+
}, [hasChips.value ? !slots.chip ? vue.createVNode(VChip, vue.mergeProps({
|
|
16383
16390
|
"key": "chip",
|
|
16384
16391
|
"closable": props.closableChips,
|
|
16385
16392
|
"size": "small",
|
|
@@ -17670,7 +17677,7 @@
|
|
|
17670
17677
|
return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
|
|
17671
17678
|
const timeElapsed = currentTime - startTime;
|
|
17672
17679
|
const progress = timeElapsed / options.duration;
|
|
17673
|
-
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(
|
|
17680
|
+
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
|
|
17674
17681
|
container[property] = location;
|
|
17675
17682
|
|
|
17676
17683
|
// Allow for some jitter if target time has elapsed
|
|
@@ -21094,6 +21101,7 @@
|
|
|
21094
21101
|
const makeVExpansionPanelsProps = propsFactory({
|
|
21095
21102
|
color: String,
|
|
21096
21103
|
flat: Boolean,
|
|
21104
|
+
focusable: Boolean,
|
|
21097
21105
|
static: Boolean,
|
|
21098
21106
|
tile: Boolean,
|
|
21099
21107
|
variant: {
|
|
@@ -21128,6 +21136,7 @@
|
|
|
21128
21136
|
readonly: vue.toRef(props, 'readonly')
|
|
21129
21137
|
},
|
|
21130
21138
|
VExpansionPanelTitle: {
|
|
21139
|
+
focusable: vue.toRef(props, 'focusable'),
|
|
21131
21140
|
static: vue.toRef(props, 'static')
|
|
21132
21141
|
}
|
|
21133
21142
|
});
|
|
@@ -21186,6 +21195,7 @@
|
|
|
21186
21195
|
default: '$collapse'
|
|
21187
21196
|
},
|
|
21188
21197
|
hideActions: Boolean,
|
|
21198
|
+
focusable: Boolean,
|
|
21189
21199
|
static: Boolean,
|
|
21190
21200
|
ripple: {
|
|
21191
21201
|
type: [Boolean, Object],
|
|
@@ -21220,6 +21230,7 @@
|
|
|
21220
21230
|
useRender(() => vue.withDirectives(vue.createVNode("button", {
|
|
21221
21231
|
"class": ['v-expansion-panel-title', {
|
|
21222
21232
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value,
|
|
21233
|
+
'v-expansion-panel-title--focusable': props.focusable,
|
|
21223
21234
|
'v-expansion-panel-title--static': props.static
|
|
21224
21235
|
}, backgroundColorClasses.value, props.class],
|
|
21225
21236
|
"style": [backgroundColorStyles.value, props.style],
|
|
@@ -25392,6 +25403,7 @@
|
|
|
25392
25403
|
VDataIterator: VDataIterator,
|
|
25393
25404
|
VDataTable: VDataTable,
|
|
25394
25405
|
VDataTableFooter: VDataTableFooter,
|
|
25406
|
+
VDataTableHeaders: VDataTableHeaders,
|
|
25395
25407
|
VDataTableRow: VDataTableRow,
|
|
25396
25408
|
VDataTableRows: VDataTableRows,
|
|
25397
25409
|
VDataTableServer: VDataTableServer,
|
|
@@ -25727,7 +25739,7 @@
|
|
|
25727
25739
|
goTo
|
|
25728
25740
|
};
|
|
25729
25741
|
}
|
|
25730
|
-
const version$1 = "3.5.
|
|
25742
|
+
const version$1 = "3.5.7";
|
|
25731
25743
|
createVuetify$1.version = version$1;
|
|
25732
25744
|
|
|
25733
25745
|
// Vue's inject() can only be used in setup
|
|
@@ -25752,7 +25764,7 @@
|
|
|
25752
25764
|
...options
|
|
25753
25765
|
});
|
|
25754
25766
|
};
|
|
25755
|
-
const version = "3.5.
|
|
25767
|
+
const version = "3.5.7";
|
|
25756
25768
|
createVuetify.version = version;
|
|
25757
25769
|
|
|
25758
25770
|
exports.components = components;
|