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.esm.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
|
*/
|
|
@@ -6881,7 +6881,8 @@ const VCheckbox = genericComponent()({
|
|
|
6881
6881
|
id,
|
|
6882
6882
|
messagesId,
|
|
6883
6883
|
isDisabled,
|
|
6884
|
-
isReadonly
|
|
6884
|
+
isReadonly,
|
|
6885
|
+
isValid
|
|
6885
6886
|
} = _ref2;
|
|
6886
6887
|
return createVNode(VCheckboxBtn, mergeProps(checkboxProps, {
|
|
6887
6888
|
"id": id.value,
|
|
@@ -6889,6 +6890,7 @@ const VCheckbox = genericComponent()({
|
|
|
6889
6890
|
"disabled": isDisabled.value,
|
|
6890
6891
|
"readonly": isReadonly.value
|
|
6891
6892
|
}, controlAttrs, {
|
|
6893
|
+
"error": isValid.value === false,
|
|
6892
6894
|
"modelValue": model.value,
|
|
6893
6895
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
6894
6896
|
"onFocus": focus,
|
|
@@ -11838,20 +11840,27 @@ const VSelect = genericComponent()({
|
|
|
11838
11840
|
model.value = [item];
|
|
11839
11841
|
}
|
|
11840
11842
|
}
|
|
11843
|
+
|
|
11844
|
+
/** @param set - null means toggle */
|
|
11841
11845
|
function select(item) {
|
|
11842
|
-
|
|
11843
|
-
|
|
11846
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
11847
|
+
if (item.props.disabled) return;
|
|
11844
11848
|
if (props.multiple) {
|
|
11845
|
-
|
|
11846
|
-
|
|
11847
|
-
|
|
11848
|
-
const value = [...model.value];
|
|
11849
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
11850
|
+
const add = set == null ? !~index : set;
|
|
11851
|
+
if (~index) {
|
|
11852
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
11849
11853
|
value.splice(index, 1);
|
|
11850
11854
|
model.value = value;
|
|
11855
|
+
} else if (add) {
|
|
11856
|
+
model.value = [...model.value, item];
|
|
11851
11857
|
}
|
|
11852
11858
|
} else {
|
|
11859
|
+
const add = set !== false;
|
|
11853
11860
|
model.value = add ? [item] : [];
|
|
11854
|
-
|
|
11861
|
+
nextTick(() => {
|
|
11862
|
+
menu.value = false;
|
|
11863
|
+
});
|
|
11855
11864
|
}
|
|
11856
11865
|
}
|
|
11857
11866
|
function onBlur(e) {
|
|
@@ -11885,14 +11894,9 @@ const VSelect = genericComponent()({
|
|
|
11885
11894
|
});
|
|
11886
11895
|
}
|
|
11887
11896
|
});
|
|
11888
|
-
watch(
|
|
11889
|
-
if (!isFocused.value) return;
|
|
11890
|
-
|
|
11891
|
-
menu.value = false;
|
|
11892
|
-
}
|
|
11893
|
-
if (!oldVal.length && val.length) {
|
|
11894
|
-
menu.value = true;
|
|
11895
|
-
}
|
|
11897
|
+
watch(() => props.items, val => {
|
|
11898
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
11899
|
+
menu.value = true;
|
|
11896
11900
|
});
|
|
11897
11901
|
useRender(() => {
|
|
11898
11902
|
const hasChips = !!(props.chips || slots.chip);
|
|
@@ -11970,7 +11974,7 @@ const VSelect = genericComponent()({
|
|
|
11970
11974
|
const itemProps = mergeProps(item.props, {
|
|
11971
11975
|
ref: itemRef,
|
|
11972
11976
|
key: index,
|
|
11973
|
-
onClick: () => select(item)
|
|
11977
|
+
onClick: () => select(item, null)
|
|
11974
11978
|
});
|
|
11975
11979
|
return slots.item?.({
|
|
11976
11980
|
item,
|
|
@@ -12002,7 +12006,7 @@ const VSelect = genericComponent()({
|
|
|
12002
12006
|
function onChipClose(e) {
|
|
12003
12007
|
e.stopPropagation();
|
|
12004
12008
|
e.preventDefault();
|
|
12005
|
-
select(item);
|
|
12009
|
+
select(item, false);
|
|
12006
12010
|
}
|
|
12007
12011
|
const slotProps = {
|
|
12008
12012
|
'onClick:close': onChipClose,
|
|
@@ -12112,7 +12116,7 @@ function filterItems(items, query, options) {
|
|
|
12112
12116
|
if (typeof item === 'object') {
|
|
12113
12117
|
const filterKeys = keys || Object.keys(transformed);
|
|
12114
12118
|
for (const key of filterKeys) {
|
|
12115
|
-
const value = getPropertyFromItem(transformed, key
|
|
12119
|
+
const value = getPropertyFromItem(transformed, key);
|
|
12116
12120
|
const keyFilter = options?.customKeyFilter?.[key];
|
|
12117
12121
|
match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
|
|
12118
12122
|
if (match !== -1 && match !== false) {
|
|
@@ -12277,6 +12281,8 @@ const VAutocomplete = genericComponent()({
|
|
|
12277
12281
|
}
|
|
12278
12282
|
return filteredItems.value;
|
|
12279
12283
|
});
|
|
12284
|
+
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
12285
|
+
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
12280
12286
|
const selectedValues = computed(() => model.value.map(selection => selection.props.value));
|
|
12281
12287
|
const highlightFirst = computed(() => {
|
|
12282
12288
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
|
@@ -12335,7 +12341,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12335
12341
|
}
|
|
12336
12342
|
const originalSelectionIndex = selectionIndex.value;
|
|
12337
12343
|
const selectedItem = model.value[selectionIndex.value];
|
|
12338
|
-
if (selectedItem && !selectedItem.props.disabled) select(selectedItem);
|
|
12344
|
+
if (selectedItem && !selectedItem.props.disabled) select(selectedItem, false);
|
|
12339
12345
|
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
|
12340
12346
|
}
|
|
12341
12347
|
if (e.key === 'ArrowLeft') {
|
|
@@ -12386,35 +12392,41 @@ const VAutocomplete = genericComponent()({
|
|
|
12386
12392
|
if (v == null || v === '' && !props.multiple) model.value = [];
|
|
12387
12393
|
}
|
|
12388
12394
|
const isSelecting = shallowRef(false);
|
|
12395
|
+
|
|
12396
|
+
/** @param set - null means toggle */
|
|
12389
12397
|
function select(item) {
|
|
12398
|
+
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
12390
12399
|
if (item.props.disabled) return;
|
|
12391
|
-
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12392
|
-
const add = index === -1;
|
|
12393
12400
|
if (props.multiple) {
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12397
|
-
const value = [...model.value];
|
|
12401
|
+
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
12402
|
+
const add = set == null ? !~index : set;
|
|
12403
|
+
if (~index) {
|
|
12404
|
+
const value = add ? [...model.value, item] : [...model.value];
|
|
12398
12405
|
value.splice(index, 1);
|
|
12399
12406
|
model.value = value;
|
|
12407
|
+
} else if (add) {
|
|
12408
|
+
model.value = [...model.value, item];
|
|
12400
12409
|
}
|
|
12401
12410
|
if (props.clearOnSelect) {
|
|
12402
12411
|
search.value = '';
|
|
12403
12412
|
}
|
|
12404
12413
|
} else {
|
|
12414
|
+
const add = set !== false;
|
|
12405
12415
|
model.value = add ? [item] : [];
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
|
|
12410
|
-
|
|
12416
|
+
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
12417
|
+
|
|
12418
|
+
// watch for search watcher to trigger
|
|
12419
|
+
nextTick(() => {
|
|
12420
|
+
menu.value = false;
|
|
12421
|
+
isPristine.value = true;
|
|
12422
|
+
});
|
|
12411
12423
|
}
|
|
12412
12424
|
}
|
|
12413
12425
|
watch(isFocused, (val, oldVal) => {
|
|
12414
12426
|
if (val === oldVal) return;
|
|
12415
12427
|
if (val) {
|
|
12416
12428
|
isSelecting.value = true;
|
|
12417
|
-
search.value = props.multiple ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12429
|
+
search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');
|
|
12418
12430
|
isPristine.value = true;
|
|
12419
12431
|
nextTick(() => isSelecting.value = false);
|
|
12420
12432
|
} else {
|
|
@@ -12444,17 +12456,11 @@ const VAutocomplete = genericComponent()({
|
|
|
12444
12456
|
});
|
|
12445
12457
|
}
|
|
12446
12458
|
});
|
|
12447
|
-
watch(
|
|
12448
|
-
if (!isFocused.value) return;
|
|
12449
|
-
|
|
12450
|
-
menu.value = false;
|
|
12451
|
-
}
|
|
12452
|
-
if (!oldVal.length && val.length) {
|
|
12453
|
-
menu.value = true;
|
|
12454
|
-
}
|
|
12459
|
+
watch(() => props.items, val => {
|
|
12460
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
12461
|
+
menu.value = true;
|
|
12455
12462
|
});
|
|
12456
12463
|
useRender(() => {
|
|
12457
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
12458
12464
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
12459
12465
|
const isDirty = model.value.length > 0;
|
|
12460
12466
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -12472,7 +12478,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12472
12478
|
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
|
12473
12479
|
'v-autocomplete--active-menu': menu.value,
|
|
12474
12480
|
'v-autocomplete--chips': !!props.chips,
|
|
12475
|
-
'v-autocomplete--selection-slot': !!
|
|
12481
|
+
'v-autocomplete--selection-slot': !!hasSelectionSlot.value,
|
|
12476
12482
|
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
12477
12483
|
}, props.class],
|
|
12478
12484
|
"style": props.style,
|
|
@@ -12527,13 +12533,15 @@ const VAutocomplete = genericComponent()({
|
|
|
12527
12533
|
ref: itemRef,
|
|
12528
12534
|
key: index,
|
|
12529
12535
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
|
12530
|
-
onClick: () => select(item)
|
|
12536
|
+
onClick: () => select(item, null)
|
|
12531
12537
|
});
|
|
12532
12538
|
return slots.item?.({
|
|
12533
12539
|
item,
|
|
12534
12540
|
index,
|
|
12535
12541
|
props: itemProps
|
|
12536
|
-
}) ?? createVNode(VListItem, itemProps, {
|
|
12542
|
+
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
|
12543
|
+
"role": "option"
|
|
12544
|
+
}), {
|
|
12537
12545
|
prepend: _ref4 => {
|
|
12538
12546
|
let {
|
|
12539
12547
|
isSelected
|
|
@@ -12560,7 +12568,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12560
12568
|
function onChipClose(e) {
|
|
12561
12569
|
e.stopPropagation();
|
|
12562
12570
|
e.preventDefault();
|
|
12563
|
-
select(item);
|
|
12571
|
+
select(item, false);
|
|
12564
12572
|
}
|
|
12565
12573
|
const slotProps = {
|
|
12566
12574
|
'onClick:close': onChipClose,
|
|
@@ -12571,8 +12579,8 @@ const VAutocomplete = genericComponent()({
|
|
|
12571
12579
|
modelValue: true,
|
|
12572
12580
|
'onUpdate:modelValue': undefined
|
|
12573
12581
|
};
|
|
12574
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
12575
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
12582
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
12583
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
12576
12584
|
item,
|
|
12577
12585
|
index,
|
|
12578
12586
|
props: slotProps
|
|
@@ -12585,7 +12593,7 @@ const VAutocomplete = genericComponent()({
|
|
|
12585
12593
|
"key": item.value,
|
|
12586
12594
|
"class": ['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]],
|
|
12587
12595
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
12588
|
-
}, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
12596
|
+
}, [hasChips.value ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
12589
12597
|
"key": "chip",
|
|
12590
12598
|
"closable": props.closableChips,
|
|
12591
12599
|
"size": "small",
|
|
@@ -16024,14 +16032,16 @@ const VCombobox = genericComponent()({
|
|
|
16024
16032
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16025
16033
|
});
|
|
16026
16034
|
const form = useForm();
|
|
16027
|
-
const
|
|
16035
|
+
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
16036
|
+
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
16037
|
+
const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
16028
16038
|
const search = computed({
|
|
16029
16039
|
get: () => {
|
|
16030
16040
|
return _search.value;
|
|
16031
16041
|
},
|
|
16032
16042
|
set: val => {
|
|
16033
16043
|
_search.value = val ?? '';
|
|
16034
|
-
if (!props.multiple) {
|
|
16044
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16035
16045
|
model.value = [transformItem$3(props, val)];
|
|
16036
16046
|
}
|
|
16037
16047
|
if (val && props.multiple && props.delimiters?.length) {
|
|
@@ -16062,7 +16072,7 @@ const VCombobox = genericComponent()({
|
|
|
16062
16072
|
emit('update:search', value);
|
|
16063
16073
|
});
|
|
16064
16074
|
watch(model, value => {
|
|
16065
|
-
if (!props.multiple) {
|
|
16075
|
+
if (!props.multiple && !hasSelectionSlot.value) {
|
|
16066
16076
|
_search.value = value[0]?.title ?? '';
|
|
16067
16077
|
}
|
|
16068
16078
|
});
|
|
@@ -16127,6 +16137,10 @@ const VCombobox = genericComponent()({
|
|
|
16127
16137
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
16128
16138
|
listRef.value?.focus('next');
|
|
16129
16139
|
}
|
|
16140
|
+
if (e.key === 'Enter' && search.value) {
|
|
16141
|
+
select(transformItem$3(props, search.value));
|
|
16142
|
+
if (hasSelectionSlot.value) search.value = '';
|
|
16143
|
+
}
|
|
16130
16144
|
if (!props.multiple) return;
|
|
16131
16145
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
16132
16146
|
if (selectionIndex.value < 0) {
|
|
@@ -16160,10 +16174,6 @@ const VCombobox = genericComponent()({
|
|
|
16160
16174
|
vTextFieldRef.value.setSelectionRange(0, 0);
|
|
16161
16175
|
}
|
|
16162
16176
|
}
|
|
16163
|
-
if (e.key === 'Enter' && search.value) {
|
|
16164
|
-
select(transformItem$3(props, search.value));
|
|
16165
|
-
search.value = '';
|
|
16166
|
-
}
|
|
16167
16177
|
}
|
|
16168
16178
|
function onAfterLeave() {
|
|
16169
16179
|
if (isFocused.value) {
|
|
@@ -16174,6 +16184,7 @@ const VCombobox = genericComponent()({
|
|
|
16174
16184
|
/** @param set - null means toggle */
|
|
16175
16185
|
function select(item) {
|
|
16176
16186
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
16187
|
+
if (item.props.disabled) return;
|
|
16177
16188
|
if (props.multiple) {
|
|
16178
16189
|
const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
|
|
16179
16190
|
const add = set == null ? !~index : set;
|
|
@@ -16190,7 +16201,7 @@ const VCombobox = genericComponent()({
|
|
|
16190
16201
|
} else {
|
|
16191
16202
|
const add = set !== false;
|
|
16192
16203
|
model.value = add ? [item] : [];
|
|
16193
|
-
_search.value = add ? item.title : '';
|
|
16204
|
+
_search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
16194
16205
|
|
|
16195
16206
|
// watch for search watcher to trigger
|
|
16196
16207
|
nextTick(() => {
|
|
@@ -16222,7 +16233,7 @@ const VCombobox = genericComponent()({
|
|
|
16222
16233
|
return value === displayItems.value[0].value;
|
|
16223
16234
|
})) {
|
|
16224
16235
|
select(displayItems.value[0]);
|
|
16225
|
-
} else if (
|
|
16236
|
+
} else if (search.value) {
|
|
16226
16237
|
select(transformItem$3(props, search.value));
|
|
16227
16238
|
}
|
|
16228
16239
|
});
|
|
@@ -16234,17 +16245,11 @@ const VCombobox = genericComponent()({
|
|
|
16234
16245
|
});
|
|
16235
16246
|
}
|
|
16236
16247
|
});
|
|
16237
|
-
watch(
|
|
16238
|
-
if (!isFocused.value) return;
|
|
16239
|
-
|
|
16240
|
-
menu.value = false;
|
|
16241
|
-
}
|
|
16242
|
-
if (!oldVal.length && val.length) {
|
|
16243
|
-
menu.value = true;
|
|
16244
|
-
}
|
|
16248
|
+
watch(() => props.items, val => {
|
|
16249
|
+
if (!isFocused.value || !val.length || menu.value) return;
|
|
16250
|
+
menu.value = true;
|
|
16245
16251
|
});
|
|
16246
16252
|
useRender(() => {
|
|
16247
|
-
const hasChips = !!(props.chips || slots.chip);
|
|
16248
16253
|
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
|
16249
16254
|
const isDirty = model.value.length > 0;
|
|
16250
16255
|
const textFieldProps = VTextField.filterProps(props);
|
|
@@ -16261,7 +16266,7 @@ const VCombobox = genericComponent()({
|
|
|
16261
16266
|
"class": ['v-combobox', {
|
|
16262
16267
|
'v-combobox--active-menu': menu.value,
|
|
16263
16268
|
'v-combobox--chips': !!props.chips,
|
|
16264
|
-
'v-combobox--selection-slot': !!
|
|
16269
|
+
'v-combobox--selection-slot': !!hasSelectionSlot.value,
|
|
16265
16270
|
'v-combobox--selecting-index': selectionIndex.value > -1,
|
|
16266
16271
|
[`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
|
|
16267
16272
|
}, props.class],
|
|
@@ -16323,7 +16328,9 @@ const VCombobox = genericComponent()({
|
|
|
16323
16328
|
item,
|
|
16324
16329
|
index,
|
|
16325
16330
|
props: itemProps
|
|
16326
|
-
}) ?? createVNode(VListItem, itemProps, {
|
|
16331
|
+
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
|
16332
|
+
"role": "option"
|
|
16333
|
+
}), {
|
|
16327
16334
|
prepend: _ref4 => {
|
|
16328
16335
|
let {
|
|
16329
16336
|
isSelected
|
|
@@ -16361,8 +16368,8 @@ const VCombobox = genericComponent()({
|
|
|
16361
16368
|
modelValue: true,
|
|
16362
16369
|
'onUpdate:modelValue': undefined
|
|
16363
16370
|
};
|
|
16364
|
-
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
|
16365
|
-
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
|
16371
|
+
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
|
16372
|
+
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
|
16366
16373
|
item,
|
|
16367
16374
|
index,
|
|
16368
16375
|
props: slotProps
|
|
@@ -16375,7 +16382,7 @@ const VCombobox = genericComponent()({
|
|
|
16375
16382
|
"key": item.value,
|
|
16376
16383
|
"class": ['v-combobox__selection', index === selectionIndex.value && ['v-combobox__selection--selected', textColorClasses.value]],
|
|
16377
16384
|
"style": index === selectionIndex.value ? textColorStyles.value : {}
|
|
16378
|
-
}, [hasChips ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
16385
|
+
}, [hasChips.value ? !slots.chip ? createVNode(VChip, mergeProps({
|
|
16379
16386
|
"key": "chip",
|
|
16380
16387
|
"closable": props.closableChips,
|
|
16381
16388
|
"size": "small",
|
|
@@ -17666,7 +17673,7 @@ async function scrollTo(_target, _options, horizontal, goTo) {
|
|
|
17666
17673
|
return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
|
|
17667
17674
|
const timeElapsed = currentTime - startTime;
|
|
17668
17675
|
const progress = timeElapsed / options.duration;
|
|
17669
|
-
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(
|
|
17676
|
+
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
|
|
17670
17677
|
container[property] = location;
|
|
17671
17678
|
|
|
17672
17679
|
// Allow for some jitter if target time has elapsed
|
|
@@ -21090,6 +21097,7 @@ const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
|
|
|
21090
21097
|
const makeVExpansionPanelsProps = propsFactory({
|
|
21091
21098
|
color: String,
|
|
21092
21099
|
flat: Boolean,
|
|
21100
|
+
focusable: Boolean,
|
|
21093
21101
|
static: Boolean,
|
|
21094
21102
|
tile: Boolean,
|
|
21095
21103
|
variant: {
|
|
@@ -21124,6 +21132,7 @@ const VExpansionPanels = genericComponent()({
|
|
|
21124
21132
|
readonly: toRef(props, 'readonly')
|
|
21125
21133
|
},
|
|
21126
21134
|
VExpansionPanelTitle: {
|
|
21135
|
+
focusable: toRef(props, 'focusable'),
|
|
21127
21136
|
static: toRef(props, 'static')
|
|
21128
21137
|
}
|
|
21129
21138
|
});
|
|
@@ -21182,6 +21191,7 @@ const makeVExpansionPanelTitleProps = propsFactory({
|
|
|
21182
21191
|
default: '$collapse'
|
|
21183
21192
|
},
|
|
21184
21193
|
hideActions: Boolean,
|
|
21194
|
+
focusable: Boolean,
|
|
21185
21195
|
static: Boolean,
|
|
21186
21196
|
ripple: {
|
|
21187
21197
|
type: [Boolean, Object],
|
|
@@ -21216,6 +21226,7 @@ const VExpansionPanelTitle = genericComponent()({
|
|
|
21216
21226
|
useRender(() => withDirectives(createVNode("button", {
|
|
21217
21227
|
"class": ['v-expansion-panel-title', {
|
|
21218
21228
|
'v-expansion-panel-title--active': expansionPanel.isSelected.value,
|
|
21229
|
+
'v-expansion-panel-title--focusable': props.focusable,
|
|
21219
21230
|
'v-expansion-panel-title--static': props.static
|
|
21220
21231
|
}, backgroundColorClasses.value, props.class],
|
|
21221
21232
|
"style": [backgroundColorStyles.value, props.style],
|
|
@@ -25388,6 +25399,7 @@ var components = /*#__PURE__*/Object.freeze({
|
|
|
25388
25399
|
VDataIterator: VDataIterator,
|
|
25389
25400
|
VDataTable: VDataTable,
|
|
25390
25401
|
VDataTableFooter: VDataTableFooter,
|
|
25402
|
+
VDataTableHeaders: VDataTableHeaders,
|
|
25391
25403
|
VDataTableRow: VDataTableRow,
|
|
25392
25404
|
VDataTableRows: VDataTableRows,
|
|
25393
25405
|
VDataTableServer: VDataTableServer,
|
|
@@ -25723,7 +25735,7 @@ function createVuetify$1() {
|
|
|
25723
25735
|
goTo
|
|
25724
25736
|
};
|
|
25725
25737
|
}
|
|
25726
|
-
const version$1 = "3.5.
|
|
25738
|
+
const version$1 = "3.5.7";
|
|
25727
25739
|
createVuetify$1.version = version$1;
|
|
25728
25740
|
|
|
25729
25741
|
// Vue's inject() can only be used in setup
|
|
@@ -25748,7 +25760,7 @@ const createVuetify = function () {
|
|
|
25748
25760
|
...options
|
|
25749
25761
|
});
|
|
25750
25762
|
};
|
|
25751
|
-
const version = "3.5.
|
|
25763
|
+
const version = "3.5.7";
|
|
25752
25764
|
createVuetify.version = version;
|
|
25753
25765
|
|
|
25754
25766
|
export { components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|