vuetify 3.10.2 → 3.10.4
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/json/attributes.json +3585 -3581
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +136 -136
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +6506 -6482
- package/dist/vuetify-labs.cjs +124 -92
- package/dist/vuetify-labs.css +4941 -4941
- package/dist/vuetify-labs.d.ts +1375 -1363
- package/dist/vuetify-labs.esm.js +125 -93
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +124 -92
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +116 -87
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +6491 -6491
- package/dist/vuetify.d.ts +1120 -1108
- package/dist/vuetify.esm.js +116 -87
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +116 -87
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1435 -1428
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.d.ts +3 -3
- package/lib/components/VAlert/VAlertTitle.d.ts +3 -3
- package/lib/components/VApp/VApp.d.ts +3 -3
- package/lib/components/VAppBar/VAppBar.d.ts +3 -3
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +6 -6
- package/lib/components/VAppBar/VAppBarTitle.d.ts +3 -3
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +116 -116
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.d.ts +3 -3
- package/lib/components/VBadge/VBadge.d.ts +3 -3
- package/lib/components/VBanner/VBanner.d.ts +3 -3
- package/lib/components/VBanner/VBannerActions.d.ts +3 -3
- package/lib/components/VBanner/VBannerText.d.ts +3 -3
- package/lib/components/VBottomNavigation/VBottomNavigation.d.ts +3 -3
- package/lib/components/VBottomSheet/VBottomSheet.d.ts +3 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbs.d.ts +3 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.d.ts +3 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.d.ts +3 -3
- package/lib/components/VBtn/VBtn.d.ts +6 -6
- package/lib/components/VBtn/VBtn.js +5 -5
- package/lib/components/VBtn/VBtn.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +3 -3
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +3 -3
- package/lib/components/VCard/VCard.d.ts +6 -6
- package/lib/components/VCard/VCard.js +2 -2
- package/lib/components/VCard/VCard.js.map +1 -1
- package/lib/components/VCard/VCardActions.d.ts +3 -3
- package/lib/components/VCard/VCardItem.d.ts +3 -3
- package/lib/components/VCard/VCardSubtitle.d.ts +3 -3
- package/lib/components/VCard/VCardText.d.ts +3 -3
- package/lib/components/VCard/VCardTitle.d.ts +3 -3
- package/lib/components/VCarousel/VCarousel.d.ts +3 -3
- package/lib/components/VCarousel/VCarouselItem.d.ts +3 -3
- package/lib/components/VCheckbox/VCheckbox.d.ts +15 -15
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +6 -6
- package/lib/components/VChip/VChip.d.ts +6 -6
- package/lib/components/VChip/VChip.js +15 -4
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.d.ts +3 -3
- package/lib/components/VCode/index.d.ts +3 -3
- package/lib/components/VCombobox/VCombobox.d.ts +129 -116
- package/lib/components/VCombobox/VCombobox.js +8 -25
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.d.ts +3 -3
- package/lib/components/VDataIterator/VDataIterator.d.ts +9 -9
- package/lib/components/VDataTable/VDataTable.d.ts +3 -3
- package/lib/components/VDataTable/VDataTableServer.d.ts +3 -3
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +6 -6
- package/lib/components/VDataTable/composables/expand.js +8 -8
- package/lib/components/VDataTable/composables/expand.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +3 -3
- package/lib/components/VDialog/VDialog.d.ts +12 -12
- package/lib/components/VDialog/VDialog.js +29 -11
- package/lib/components/VDialog/VDialog.js.map +1 -1
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js +41 -0
- package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
- package/lib/components/VDivider/VDivider.d.ts +3 -3
- package/lib/components/VEmptyState/VEmptyState.d.ts +6 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +6 -6
- package/lib/components/VExpansionPanel/VExpansionPanelText.d.ts +3 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +6 -6
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +6 -6
- package/lib/components/VFab/VFab.d.ts +6 -6
- package/lib/components/VField/VField.d.ts +3 -3
- package/lib/components/VField/VFieldLabel.d.ts +3 -3
- package/lib/components/VFileInput/VFileInput.d.ts +12 -12
- package/lib/components/VFileInput/VFileInput.js +2 -1
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VFooter/VFooter.d.ts +3 -3
- package/lib/components/VForm/VForm.d.ts +6 -6
- package/lib/components/VGrid/VCol.d.ts +3 -3
- package/lib/components/VGrid/VContainer.d.ts +3 -3
- package/lib/components/VGrid/VRow.d.ts +3 -3
- package/lib/components/VGrid/VSpacer.d.ts +3 -3
- package/lib/components/VIcon/VIcon.d.ts +3 -3
- package/lib/components/VImg/VImg.d.ts +3 -3
- package/lib/components/VInput/VInput.d.ts +3 -3
- package/lib/components/VItemGroup/VItemGroup.d.ts +3 -3
- package/lib/components/VKbd/VKbd.d.ts +3 -3
- package/lib/components/VLabel/VLabel.d.ts +3 -3
- package/lib/components/VLayout/VLayout.d.ts +3 -3
- package/lib/components/VLayout/VLayoutItem.d.ts +3 -3
- package/lib/components/VLazy/VLazy.d.ts +3 -3
- package/lib/components/VList/VList.d.ts +11 -11
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListGroup.d.ts +3 -3
- package/lib/components/VList/VListImg.d.ts +3 -3
- package/lib/components/VList/VListItem.d.ts +6 -6
- package/lib/components/VList/VListItem.js +2 -2
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/VListItemAction.d.ts +3 -3
- package/lib/components/VList/VListItemMedia.d.ts +3 -3
- package/lib/components/VList/VListItemSubtitle.d.ts +3 -3
- package/lib/components/VList/VListItemTitle.d.ts +3 -3
- package/lib/components/VList/VListSubheader.d.ts +3 -3
- package/lib/components/VLocaleProvider/VLocaleProvider.d.ts +3 -3
- package/lib/components/VMain/VMain.d.ts +3 -3
- package/lib/components/VMenu/VMenu.d.ts +15 -15
- package/lib/components/VMessages/VMessages.d.ts +3 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.d.ts +3 -3
- package/lib/components/VNumberInput/VNumberInput.d.ts +66 -66
- package/lib/components/VNumberInput/VNumberInput.js +1 -0
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.d.ts +3 -3
- package/lib/components/VOverlay/VOverlay.d.ts +3 -3
- package/lib/components/VPagination/VPagination.d.ts +3 -3
- package/lib/components/VParallax/VParallax.d.ts +3 -3
- package/lib/components/VProgressCircular/VProgressCircular.d.ts +3 -3
- package/lib/components/VProgressLinear/VProgressLinear.d.ts +3 -3
- package/lib/components/VRadio/VRadio.d.ts +6 -6
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +15 -15
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
- package/lib/components/VRating/VRating.d.ts +3 -3
- package/lib/components/VResponsive/VResponsive.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +140 -140
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +6 -6
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +6 -6
- package/lib/components/VSheet/VSheet.d.ts +3 -3
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +3 -3
- package/lib/components/VSlider/VSlider.d.ts +12 -12
- package/lib/components/VSlider/VSliderThumb.d.ts +6 -6
- package/lib/components/VSlider/VSliderTrack.d.ts +3 -3
- package/lib/components/VSnackbar/VSnackbar.d.ts +12 -12
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +3 -3
- package/lib/components/VSpeedDial/VSpeedDial.d.ts +9 -9
- package/lib/components/VStepper/VStepper.d.ts +3 -3
- package/lib/components/VStepper/VStepperHeader.d.ts +3 -3
- package/lib/components/VStepper/VStepperItem.d.ts +3 -3
- package/lib/components/VStepper/VStepperWindow.d.ts +3 -3
- package/lib/components/VStepper/VStepperWindowItem.d.ts +3 -3
- package/lib/components/VSwitch/VSwitch.d.ts +15 -15
- package/lib/components/VSwitch/VSwitch.js +2 -2
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.d.ts +3 -3
- package/lib/components/VTable/VTable.d.ts +3 -3
- package/lib/components/VTabs/VTab.d.ts +24 -24
- package/lib/components/VTabs/VTabs.d.ts +3 -3
- package/lib/components/VTabs/VTabsWindow.d.ts +3 -3
- package/lib/components/VTabs/VTabsWindowItem.d.ts +3 -3
- package/lib/components/VTextField/VTextField.d.ts +21 -21
- package/lib/components/VTextarea/VTextarea.d.ts +12 -12
- package/lib/components/VThemeProvider/VThemeProvider.d.ts +3 -3
- package/lib/components/VTimePicker/VTimePicker.d.ts +3 -3
- package/lib/components/VTimeline/VTimeline.d.ts +3 -3
- package/lib/components/VTimeline/VTimelineDivider.d.ts +3 -3
- package/lib/components/VTimeline/VTimelineItem.d.ts +3 -3
- package/lib/components/VToolbar/VToolbar.d.ts +3 -3
- package/lib/components/VToolbar/VToolbarItems.d.ts +3 -3
- package/lib/components/VToolbar/VToolbarTitle.d.ts +3 -3
- package/lib/components/VTooltip/VTooltip.d.ts +15 -15
- package/lib/components/VTreeview/VTreeview.d.ts +26 -26
- package/lib/components/VTreeview/VTreeviewChildren.js +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewGroup.d.ts +3 -3
- package/lib/components/VTreeview/VTreeviewItem.d.ts +24 -24
- package/lib/components/VVirtualScroll/VVirtualScroll.d.ts +6 -6
- package/lib/components/VVirtualScroll/VVirtualScrollItem.d.ts +3 -3
- package/lib/components/VWindow/VWindow.d.ts +3 -3
- package/lib/components/VWindow/VWindowItem.d.ts +3 -3
- package/lib/components/transitions/createTransition.d.ts +6 -6
- package/lib/components/transitions/index.d.ts +78 -78
- package/lib/composables/goto.js +2 -2
- package/lib/composables/goto.js.map +1 -1
- package/lib/composables/group.d.ts +2 -0
- package/lib/composables/group.js +15 -9
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/router.d.ts +2 -0
- package/lib/composables/router.js +6 -1
- package/lib/composables/router.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +63 -63
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.js +7 -4
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/labs/VCalendar/composables/calendarWithEvents.js +7 -4
- package/lib/labs/VCalendar/composables/calendarWithEvents.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +6 -6
- package/lib/labs/VDateInput/VDateInput.d.ts +66 -66
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUpload.js +2 -1
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +6 -6
- package/lib/labs/VHotkey/VHotkey.d.ts +3 -3
- package/lib/labs/VIconBtn/VIconBtn.d.ts +3 -3
- package/lib/labs/VMaskInput/VMaskInput.d.ts +66 -66
- package/lib/labs/VPicker/VPicker.d.ts +3 -3
- package/lib/labs/VPicker/VPickerTitle.d.ts +3 -3
- package/lib/labs/VPie/VPieTooltip.d.ts +3 -3
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +6 -6
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +6 -6
- package/lib/labs/VVideo/VVideo.d.ts +87 -87
- package/lib/labs/VVideo/VVideoControls.d.ts +40 -40
- package/lib/labs/VVideo/VVideoVolume.d.ts +33 -33
- package/lib/util/animation.js +1 -1
- package/lib/util/animation.js.map +1 -1
- package/lib/util/box.d.ts +1 -1
- package/lib/util/box.js +19 -14
- package/lib/util/box.js.map +1 -1
- package/lib/util/createSimpleFunctional.d.ts +3 -3
- package/lib/util/events.js +2 -2
- package/lib/util/events.js.map +1 -1
- package/package.json +9 -9
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.10.
|
|
2
|
+
* Vuetify v3.10.4
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -588,17 +588,19 @@
|
|
|
588
588
|
}
|
|
589
589
|
|
|
590
590
|
class Box {
|
|
591
|
-
constructor(
|
|
592
|
-
|
|
591
|
+
constructor(args) {
|
|
592
|
+
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
593
|
+
const factor = args instanceof DOMRect ? 1 + (1 - pageScale) / pageScale : 1;
|
|
594
|
+
const {
|
|
593
595
|
x,
|
|
594
596
|
y,
|
|
595
597
|
width,
|
|
596
598
|
height
|
|
597
|
-
} =
|
|
598
|
-
this.x = x;
|
|
599
|
-
this.y = y;
|
|
600
|
-
this.width = width;
|
|
601
|
-
this.height = height;
|
|
599
|
+
} = args;
|
|
600
|
+
this.x = x * factor;
|
|
601
|
+
this.y = y * factor;
|
|
602
|
+
this.width = width * factor;
|
|
603
|
+
this.height = height * factor;
|
|
602
604
|
}
|
|
603
605
|
get top() {
|
|
604
606
|
return this.y;
|
|
@@ -627,14 +629,16 @@
|
|
|
627
629
|
}
|
|
628
630
|
function getTargetBox(target) {
|
|
629
631
|
if (Array.isArray(target)) {
|
|
632
|
+
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
633
|
+
const factor = 1 + (1 - pageScale) / pageScale;
|
|
630
634
|
return new Box({
|
|
631
|
-
x: target[0],
|
|
632
|
-
y: target[1],
|
|
633
|
-
width: 0,
|
|
634
|
-
height: 0
|
|
635
|
+
x: target[0] * factor,
|
|
636
|
+
y: target[1] * factor,
|
|
637
|
+
width: 0 * factor,
|
|
638
|
+
height: 0 * factor
|
|
635
639
|
});
|
|
636
640
|
} else {
|
|
637
|
-
return target.getBoundingClientRect();
|
|
641
|
+
return new Box(target.getBoundingClientRect());
|
|
638
642
|
}
|
|
639
643
|
}
|
|
640
644
|
function getElementBox(el) {
|
|
@@ -647,11 +651,12 @@
|
|
|
647
651
|
height: document.documentElement.clientHeight
|
|
648
652
|
});
|
|
649
653
|
} else {
|
|
654
|
+
const pageScale = document.body.currentCSSZoom ?? 1;
|
|
650
655
|
return new Box({
|
|
651
656
|
x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft,
|
|
652
657
|
y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop,
|
|
653
|
-
width: visualViewport.width * visualViewport.scale,
|
|
654
|
-
height: visualViewport.height * visualViewport.scale
|
|
658
|
+
width: visualViewport.width * visualViewport.scale / pageScale,
|
|
659
|
+
height: visualViewport.height * visualViewport.scale / pageScale
|
|
655
660
|
});
|
|
656
661
|
}
|
|
657
662
|
} else {
|
|
@@ -669,7 +674,7 @@
|
|
|
669
674
|
|
|
670
675
|
/** @see https://stackoverflow.com/a/57876601/2074736 */
|
|
671
676
|
function nullifyTransforms(el) {
|
|
672
|
-
const rect = el.getBoundingClientRect();
|
|
677
|
+
const rect = new Box(el.getBoundingClientRect());
|
|
673
678
|
const style = getComputedStyle(el);
|
|
674
679
|
const tx = style.transform;
|
|
675
680
|
if (tx) {
|
|
@@ -1589,7 +1594,7 @@
|
|
|
1589
1594
|
// Utilities
|
|
1590
1595
|
function getPrefixedEventHandlers(attrs, suffix, getData) {
|
|
1591
1596
|
return Object.keys(attrs).filter(key => isOn(key) && key.endsWith(suffix)).reduce((acc, key) => {
|
|
1592
|
-
acc[key.slice(0, -suffix.length)] = event => attrs[key]
|
|
1597
|
+
acc[key.slice(0, -suffix.length)] = event => callEvent(attrs[key], event, getData(event));
|
|
1593
1598
|
return acc;
|
|
1594
1599
|
}, {});
|
|
1595
1600
|
}
|
|
@@ -5008,14 +5013,18 @@
|
|
|
5008
5013
|
}
|
|
5009
5014
|
const value = vue.toRef(() => props.value);
|
|
5010
5015
|
const disabled = vue.computed(() => !!(group.disabled.value || props.disabled));
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5016
|
+
function register() {
|
|
5017
|
+
group?.register({
|
|
5018
|
+
id,
|
|
5019
|
+
value,
|
|
5020
|
+
disabled
|
|
5021
|
+
}, vm);
|
|
5022
|
+
}
|
|
5023
|
+
function unregister() {
|
|
5024
|
+
group?.unregister(id);
|
|
5025
|
+
}
|
|
5026
|
+
vue.onMounted(() => register());
|
|
5027
|
+
vue.onBeforeUnmount(() => unregister());
|
|
5019
5028
|
const isSelected = vue.computed(() => {
|
|
5020
5029
|
return group.isSelected(id);
|
|
5021
5030
|
});
|
|
@@ -5043,7 +5052,9 @@
|
|
|
5043
5052
|
selectedClass,
|
|
5044
5053
|
value,
|
|
5045
5054
|
disabled,
|
|
5046
|
-
group
|
|
5055
|
+
group,
|
|
5056
|
+
register,
|
|
5057
|
+
unregister
|
|
5047
5058
|
};
|
|
5048
5059
|
}
|
|
5049
5060
|
function useGroup(props, injectKey) {
|
|
@@ -5890,6 +5901,7 @@
|
|
|
5890
5901
|
const href = vue.toRef(() => props.href);
|
|
5891
5902
|
return {
|
|
5892
5903
|
isLink,
|
|
5904
|
+
isRouterLink: vue.toRef(() => false),
|
|
5893
5905
|
isClickable,
|
|
5894
5906
|
href,
|
|
5895
5907
|
linkProps: vue.reactive({
|
|
@@ -5913,8 +5925,10 @@
|
|
|
5913
5925
|
return link.value.isExactActive?.value && deepEqual(link.value.route.value.query, route.value.query);
|
|
5914
5926
|
});
|
|
5915
5927
|
const href = vue.computed(() => props.to ? link.value?.route.value.href : props.href);
|
|
5928
|
+
const isRouterLink = vue.toRef(() => !!props.to);
|
|
5916
5929
|
return {
|
|
5917
5930
|
isLink,
|
|
5931
|
+
isRouterLink,
|
|
5918
5932
|
isClickable,
|
|
5919
5933
|
isActive,
|
|
5920
5934
|
route: link.value?.route,
|
|
@@ -5922,7 +5936,9 @@
|
|
|
5922
5936
|
href,
|
|
5923
5937
|
linkProps: vue.reactive({
|
|
5924
5938
|
href,
|
|
5925
|
-
'aria-current': vue.toRef(() => isActive.value ? 'page' : undefined)
|
|
5939
|
+
'aria-current': vue.toRef(() => isActive.value ? 'page' : undefined),
|
|
5940
|
+
'aria-disabled': vue.toRef(() => props.disabled && isLink.value ? 'true' : undefined),
|
|
5941
|
+
tabindex: vue.toRef(() => props.disabled && isLink.value ? '-1' : undefined)
|
|
5926
5942
|
})
|
|
5927
5943
|
};
|
|
5928
5944
|
}
|
|
@@ -6372,7 +6388,7 @@
|
|
|
6372
6388
|
if (props.active !== undefined) {
|
|
6373
6389
|
return props.active;
|
|
6374
6390
|
}
|
|
6375
|
-
if (link.
|
|
6391
|
+
if (link.isRouterLink.value) {
|
|
6376
6392
|
return link.isActive?.value;
|
|
6377
6393
|
}
|
|
6378
6394
|
return group?.isSelected.value;
|
|
@@ -6400,7 +6416,7 @@
|
|
|
6400
6416
|
});
|
|
6401
6417
|
function onClick(e) {
|
|
6402
6418
|
if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === '_blank')) return;
|
|
6403
|
-
if (link.
|
|
6419
|
+
if (link.isRouterLink.value) {
|
|
6404
6420
|
link.navigate?.(e);
|
|
6405
6421
|
} else {
|
|
6406
6422
|
// Group active state for links is handled by useSelectLink
|
|
@@ -6413,7 +6429,7 @@
|
|
|
6413
6429
|
const hasPrepend = !!(props.prependIcon || slots.prepend);
|
|
6414
6430
|
const hasAppend = !!(props.appendIcon || slots.append);
|
|
6415
6431
|
const hasIcon = !!(props.icon && props.icon !== true);
|
|
6416
|
-
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
|
|
6432
|
+
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps(link.linkProps, {
|
|
6417
6433
|
"type": Tag === 'a' ? undefined : 'button',
|
|
6418
6434
|
"class": ['v-btn', group?.selectedClass.value, {
|
|
6419
6435
|
'v-btn--active': isActive.value,
|
|
@@ -6429,11 +6445,11 @@
|
|
|
6429
6445
|
}, props.spaced ? ['v-btn--spaced', `v-btn--spaced-${props.spaced}`] : [], themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
6430
6446
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
|
|
6431
6447
|
"aria-busy": props.loading ? true : undefined,
|
|
6432
|
-
"disabled": isDisabled.value || undefined,
|
|
6448
|
+
"disabled": isDisabled.value && Tag !== 'a' || undefined,
|
|
6433
6449
|
"tabindex": props.loading || props.readonly ? -1 : undefined,
|
|
6434
6450
|
"onClick": onClick,
|
|
6435
6451
|
"value": valueAttr.value
|
|
6436
|
-
}
|
|
6452
|
+
}), {
|
|
6437
6453
|
default: () => [genOverlays(true, 'v-btn'), !props.icon && hasPrepend && vue.createElementVNode("span", {
|
|
6438
6454
|
"key": "prepend",
|
|
6439
6455
|
"class": "v-btn__prepend"
|
|
@@ -8178,7 +8194,7 @@
|
|
|
8178
8194
|
const rtl = goTo?.rtl.value;
|
|
8179
8195
|
const target = (typeof _target === 'number' ? _target : getTarget$1(_target)) ?? 0;
|
|
8180
8196
|
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
|
8181
|
-
const ease =
|
|
8197
|
+
const ease = PREFERS_REDUCED_MOTION() ? options.patterns.instant : typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];
|
|
8182
8198
|
if (!ease) throw new TypeError(`Easing function "${options.easing}" not found.`);
|
|
8183
8199
|
let targetLocation;
|
|
8184
8200
|
if (typeof target === 'number') {
|
|
@@ -8846,6 +8862,7 @@
|
|
|
8846
8862
|
} = provideTheme(props);
|
|
8847
8863
|
const isActive = useProxiedModel(props, 'modelValue');
|
|
8848
8864
|
const group = useGroupItem(props, VChipGroupSymbol, false);
|
|
8865
|
+
const slideGroup = useGroupItem(props, VSlideGroupSymbol, false);
|
|
8849
8866
|
const link = useLink(props, attrs);
|
|
8850
8867
|
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
|
8851
8868
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
|
|
@@ -8859,6 +8876,15 @@
|
|
|
8859
8876
|
emit('click:close', e);
|
|
8860
8877
|
}
|
|
8861
8878
|
}));
|
|
8879
|
+
vue.watch(isActive, val => {
|
|
8880
|
+
if (val) {
|
|
8881
|
+
group?.register();
|
|
8882
|
+
slideGroup?.register();
|
|
8883
|
+
} else {
|
|
8884
|
+
group?.unregister();
|
|
8885
|
+
slideGroup?.unregister();
|
|
8886
|
+
}
|
|
8887
|
+
});
|
|
8862
8888
|
const {
|
|
8863
8889
|
colorClasses,
|
|
8864
8890
|
colorStyles,
|
|
@@ -8890,7 +8916,7 @@
|
|
|
8890
8916
|
const hasFilter = !!(slots.filter || props.filter) && group;
|
|
8891
8917
|
const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
|
|
8892
8918
|
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
|
8893
|
-
return isActive.value && vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
|
|
8919
|
+
return isActive.value && vue.withDirectives(vue.createVNode(Tag, vue.mergeProps(link.linkProps, {
|
|
8894
8920
|
"class": ['v-chip', {
|
|
8895
8921
|
'v-chip--disabled': props.disabled,
|
|
8896
8922
|
'v-chip--label': props.label,
|
|
@@ -8905,7 +8931,7 @@
|
|
|
8905
8931
|
"tabindex": isClickable.value ? 0 : undefined,
|
|
8906
8932
|
"onClick": onClick,
|
|
8907
8933
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
8908
|
-
}
|
|
8934
|
+
}), {
|
|
8909
8935
|
default: () => [genOverlays(isClickable.value, 'v-chip'), hasFilter && vue.createVNode(VExpandXTransition, {
|
|
8910
8936
|
"key": "filter"
|
|
8911
8937
|
}, {
|
|
@@ -10108,7 +10134,7 @@
|
|
|
10108
10134
|
if (props.activeColor) {
|
|
10109
10135
|
deprecate('active-color', ['color', 'base-color']);
|
|
10110
10136
|
}
|
|
10111
|
-
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
|
|
10137
|
+
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps(link.linkProps, {
|
|
10112
10138
|
"class": ['v-list-item', {
|
|
10113
10139
|
'v-list-item--active': isActive.value,
|
|
10114
10140
|
'v-list-item--disabled': props.disabled,
|
|
@@ -10124,7 +10150,7 @@
|
|
|
10124
10150
|
"role": role.value,
|
|
10125
10151
|
"onClick": onClick,
|
|
10126
10152
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
10127
|
-
}
|
|
10153
|
+
}), {
|
|
10128
10154
|
default: () => [genOverlays(isClickable.value || isActive.value, 'v-list-item'), hasPrepend && vue.createElementVNode("div", {
|
|
10129
10155
|
"key": "prepend",
|
|
10130
10156
|
"class": "v-list-item__prepend"
|
|
@@ -14406,7 +14432,7 @@
|
|
|
14406
14432
|
} else {
|
|
14407
14433
|
if (!props.multiple && search.value == null) model.value = [];
|
|
14408
14434
|
menu.value = false;
|
|
14409
|
-
|
|
14435
|
+
search.value = '';
|
|
14410
14436
|
selectionIndex.value = -1;
|
|
14411
14437
|
}
|
|
14412
14438
|
});
|
|
@@ -15040,10 +15066,11 @@
|
|
|
15040
15066
|
scopeId
|
|
15041
15067
|
} = useScopeId();
|
|
15042
15068
|
const overlay = vue.ref();
|
|
15043
|
-
function onFocusin(e) {
|
|
15069
|
+
async function onFocusin(e) {
|
|
15044
15070
|
const before = e.relatedTarget;
|
|
15045
15071
|
const after = e.target;
|
|
15046
|
-
|
|
15072
|
+
await vue.nextTick();
|
|
15073
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
15047
15074
|
// We're the topmost dialog
|
|
15048
15075
|
overlay.value?.globalTop &&
|
|
15049
15076
|
// It isn't the document or the dialog body
|
|
@@ -15051,22 +15078,39 @@
|
|
|
15051
15078
|
// It isn't inside the dialog body
|
|
15052
15079
|
!overlay.value.contentEl.contains(after)) {
|
|
15053
15080
|
const focusable = focusableChildren(overlay.value.contentEl);
|
|
15054
|
-
|
|
15055
|
-
|
|
15056
|
-
|
|
15057
|
-
|
|
15058
|
-
|
|
15059
|
-
|
|
15060
|
-
|
|
15061
|
-
|
|
15081
|
+
focusable[0]?.focus();
|
|
15082
|
+
}
|
|
15083
|
+
}
|
|
15084
|
+
function onKeydown(e) {
|
|
15085
|
+
if (e.key !== 'Tab' || !overlay.value?.contentEl) return;
|
|
15086
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
15087
|
+
if (!focusable.length) return;
|
|
15088
|
+
const firstElement = focusable[0];
|
|
15089
|
+
const lastElement = focusable[focusable.length - 1];
|
|
15090
|
+
const active = document.activeElement;
|
|
15091
|
+
if (e.shiftKey && active === firstElement) {
|
|
15092
|
+
e.preventDefault();
|
|
15093
|
+
lastElement.focus();
|
|
15094
|
+
} else if (!e.shiftKey && active === lastElement) {
|
|
15095
|
+
e.preventDefault();
|
|
15096
|
+
firstElement.focus();
|
|
15062
15097
|
}
|
|
15063
15098
|
}
|
|
15064
15099
|
vue.onBeforeUnmount(() => {
|
|
15065
15100
|
document.removeEventListener('focusin', onFocusin);
|
|
15101
|
+
document.removeEventListener('keydown', onKeydown);
|
|
15066
15102
|
});
|
|
15067
15103
|
if (IN_BROWSER) {
|
|
15068
15104
|
vue.watch(() => isActive.value && props.retainFocus, val => {
|
|
15069
|
-
|
|
15105
|
+
if (val) {
|
|
15106
|
+
document.addEventListener('focusin', onFocusin, {
|
|
15107
|
+
once: true
|
|
15108
|
+
});
|
|
15109
|
+
document.addEventListener('keydown', onKeydown);
|
|
15110
|
+
} else {
|
|
15111
|
+
document.removeEventListener('focusin', onFocusin);
|
|
15112
|
+
document.removeEventListener('keydown', onKeydown);
|
|
15113
|
+
}
|
|
15070
15114
|
}, {
|
|
15071
15115
|
immediate: true
|
|
15072
15116
|
});
|
|
@@ -15629,7 +15673,7 @@
|
|
|
15629
15673
|
const hasImage = !!(slots.image || props.image);
|
|
15630
15674
|
const hasCardItem = hasHeader || hasPrepend || hasAppend;
|
|
15631
15675
|
const hasText = !!(slots.text || props.text != null);
|
|
15632
|
-
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
|
|
15676
|
+
return vue.withDirectives(vue.createVNode(Tag, vue.mergeProps(link.linkProps, {
|
|
15633
15677
|
"class": ['v-card', {
|
|
15634
15678
|
'v-card--disabled': props.disabled,
|
|
15635
15679
|
'v-card--flat': props.flat,
|
|
@@ -15639,7 +15683,7 @@
|
|
|
15639
15683
|
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
|
|
15640
15684
|
"onClick": isClickable && link.navigate,
|
|
15641
15685
|
"tabindex": props.disabled ? -1 : undefined
|
|
15642
|
-
}
|
|
15686
|
+
}), {
|
|
15643
15687
|
default: () => [hasImage && vue.createElementVNode("div", {
|
|
15644
15688
|
"key": "image",
|
|
15645
15689
|
"class": "v-card__image"
|
|
@@ -19454,6 +19498,7 @@
|
|
|
19454
19498
|
// Types
|
|
19455
19499
|
|
|
19456
19500
|
const makeVComboboxProps = propsFactory({
|
|
19501
|
+
alwaysFilter: Boolean,
|
|
19457
19502
|
autoSelectFirst: {
|
|
19458
19503
|
type: [Boolean, String]
|
|
19459
19504
|
},
|
|
@@ -19498,7 +19543,6 @@
|
|
|
19498
19543
|
const isFocused = vue.shallowRef(false);
|
|
19499
19544
|
const isPristine = vue.shallowRef(true);
|
|
19500
19545
|
const listHasFocus = vue.shallowRef(false);
|
|
19501
|
-
const showAllItemsForNoMatch = vue.shallowRef(false);
|
|
19502
19546
|
const vMenuRef = vue.ref();
|
|
19503
19547
|
const vVirtualScrollRef = vue.ref();
|
|
19504
19548
|
const selectionIndex = vue.shallowRef(-1);
|
|
@@ -19554,22 +19598,14 @@
|
|
|
19554
19598
|
const {
|
|
19555
19599
|
filteredItems,
|
|
19556
19600
|
getMatches
|
|
19557
|
-
} = useFilter(props, items, search);
|
|
19558
|
-
const hasMatchingItems = vue.computed(() => {
|
|
19559
|
-
return props.hideSelected ? filteredItems.value.some(filteredItem => !model.value.some(s => s.value === filteredItem.value)) : filteredItems.value.length > 0;
|
|
19560
|
-
});
|
|
19601
|
+
} = useFilter(props, items, () => props.alwaysFilter || !isPristine.value ? search.value : '');
|
|
19561
19602
|
const displayItems = vue.computed(() => {
|
|
19562
19603
|
if (props.hideSelected) {
|
|
19563
19604
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
19564
19605
|
}
|
|
19565
|
-
if (filteredItems.value.length === 0 && showAllItemsForNoMatch.value) {
|
|
19566
|
-
return items.value;
|
|
19567
|
-
}
|
|
19568
19606
|
return filteredItems.value;
|
|
19569
19607
|
});
|
|
19570
|
-
const menuDisabled = vue.computed(() =>
|
|
19571
|
-
return form.isReadonly.value || form.isDisabled.value;
|
|
19572
|
-
});
|
|
19608
|
+
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
|
19573
19609
|
const _menu = useProxiedModel(props, 'menu');
|
|
19574
19610
|
const menu = vue.computed({
|
|
19575
19611
|
get: () => _menu.value,
|
|
@@ -19586,17 +19622,13 @@
|
|
|
19586
19622
|
ariaLabel
|
|
19587
19623
|
} = useMenuActivator(props, menu);
|
|
19588
19624
|
vue.watch(_search, value => {
|
|
19589
|
-
showAllItemsForNoMatch.value = false;
|
|
19590
19625
|
if (cleared) {
|
|
19591
19626
|
// wait for clear to finish, VTextField sets _search to null
|
|
19592
19627
|
// then search computed triggers and updates _search to ''
|
|
19593
19628
|
vue.nextTick(() => cleared = false);
|
|
19594
19629
|
} else if (isFocused.value && !menu.value) {
|
|
19595
|
-
menu.value =
|
|
19596
|
-
} else if (isFocused.value && menu.value && !hasMatchingItems.value && props.hideNoData) {
|
|
19597
|
-
menu.value = false;
|
|
19630
|
+
menu.value = true;
|
|
19598
19631
|
}
|
|
19599
|
-
isPristine.value = !value;
|
|
19600
19632
|
emit('update:search', value);
|
|
19601
19633
|
});
|
|
19602
19634
|
vue.watch(model, value => {
|
|
@@ -19613,6 +19645,7 @@
|
|
|
19613
19645
|
const listEvents = useScrolling(listRef, vTextFieldRef);
|
|
19614
19646
|
function onClear(e) {
|
|
19615
19647
|
cleared = true;
|
|
19648
|
+
vue.nextTick(() => cleared = false);
|
|
19616
19649
|
if (props.openOnClear) {
|
|
19617
19650
|
menu.value = true;
|
|
19618
19651
|
}
|
|
@@ -19775,19 +19808,13 @@
|
|
|
19775
19808
|
}
|
|
19776
19809
|
}
|
|
19777
19810
|
});
|
|
19778
|
-
vue.watch(menu,
|
|
19779
|
-
if (!props.hideSelected &&
|
|
19811
|
+
vue.watch(menu, () => {
|
|
19812
|
+
if (!props.hideSelected && menu.value && model.value.length) {
|
|
19780
19813
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
19781
19814
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
19782
19815
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
19783
19816
|
});
|
|
19784
19817
|
}
|
|
19785
|
-
if (val && search.value && !hasMatchingItems.value) {
|
|
19786
|
-
showAllItemsForNoMatch.value = true;
|
|
19787
|
-
}
|
|
19788
|
-
isPristine.value = !search.value;
|
|
19789
|
-
}, {
|
|
19790
|
-
immediate: true
|
|
19791
19818
|
});
|
|
19792
19819
|
vue.watch(items, (newVal, oldVal) => {
|
|
19793
19820
|
if (menu.value) return;
|
|
@@ -19984,7 +20011,7 @@
|
|
|
19984
20011
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
19985
20012
|
args[_key] = arguments[_key];
|
|
19986
20013
|
}
|
|
19987
|
-
return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? vue.createVNode(VIcon, {
|
|
20014
|
+
return vue.createElementVNode(vue.Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? vue.createVNode(VIcon, {
|
|
19988
20015
|
"class": "v-combobox__menu-icon",
|
|
19989
20016
|
"color": vTextFieldRef.value?.fieldIconColor,
|
|
19990
20017
|
"icon": props.menuIcon,
|
|
@@ -20127,20 +20154,20 @@
|
|
|
20127
20154
|
}, v => {
|
|
20128
20155
|
return [...v.values()];
|
|
20129
20156
|
});
|
|
20130
|
-
function getItemKey(item) {
|
|
20131
|
-
return isObject(item.value) ? item.key : item.value;
|
|
20132
|
-
}
|
|
20133
20157
|
function expand(item, value) {
|
|
20134
20158
|
const newExpanded = new Set(expanded.value);
|
|
20159
|
+
const rawValue = vue.toRaw(item.value);
|
|
20135
20160
|
if (!value) {
|
|
20136
|
-
|
|
20161
|
+
const item = [...expanded.value].find(x => vue.toRaw(x) === rawValue);
|
|
20162
|
+
newExpanded.delete(item);
|
|
20137
20163
|
} else {
|
|
20138
|
-
newExpanded.add(
|
|
20164
|
+
newExpanded.add(rawValue);
|
|
20139
20165
|
}
|
|
20140
20166
|
expanded.value = newExpanded;
|
|
20141
20167
|
}
|
|
20142
20168
|
function isExpanded(item) {
|
|
20143
|
-
|
|
20169
|
+
const rawValue = vue.toRaw(item.value);
|
|
20170
|
+
return [...expanded.value].some(x => vue.toRaw(x) === rawValue);
|
|
20144
20171
|
}
|
|
20145
20172
|
function toggleExpand(item) {
|
|
20146
20173
|
expand(item, !isExpanded(item));
|
|
@@ -25292,7 +25319,8 @@
|
|
|
25292
25319
|
'onClick:clear': onClear
|
|
25293
25320
|
};
|
|
25294
25321
|
const expectsDirectory = attrs.webkitdirectory !== undefined && attrs.webkitdirectory !== false;
|
|
25295
|
-
const
|
|
25322
|
+
const acceptFallback = attrs.accept ? String(attrs.accept) : undefined;
|
|
25323
|
+
const inputAccept = expectsDirectory ? undefined : props.filterByType ?? acceptFallback;
|
|
25296
25324
|
return vue.createVNode(VInput, vue.mergeProps({
|
|
25297
25325
|
"ref": vInputRef,
|
|
25298
25326
|
"modelValue": props.multiple ? model.value : model.value[0],
|
|
@@ -27003,6 +27031,7 @@
|
|
|
27003
27031
|
useRender(() => {
|
|
27004
27032
|
const {
|
|
27005
27033
|
modelValue: _,
|
|
27034
|
+
type,
|
|
27006
27035
|
...textFieldProps
|
|
27007
27036
|
} = VTextField.filterProps(props);
|
|
27008
27037
|
function incrementControlNode() {
|
|
@@ -29452,7 +29481,7 @@
|
|
|
29452
29481
|
} = useFocus(props);
|
|
29453
29482
|
const control = vue.ref();
|
|
29454
29483
|
const inputRef = vue.ref();
|
|
29455
|
-
const isForcedColorsModeActive =
|
|
29484
|
+
const isForcedColorsModeActive = SUPPORTS_MATCH_MEDIA && window.matchMedia('(forced-colors: active)').matches;
|
|
29456
29485
|
const loaderColor = vue.toRef(() => {
|
|
29457
29486
|
return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
|
|
29458
29487
|
});
|
|
@@ -31546,6 +31575,7 @@
|
|
|
31546
31575
|
...itemProps,
|
|
31547
31576
|
...activatorProps,
|
|
31548
31577
|
value: itemProps?.value,
|
|
31578
|
+
indentLines: indentLines.node,
|
|
31549
31579
|
onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
|
|
31550
31580
|
onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
|
|
31551
31581
|
};
|
|
@@ -31559,7 +31589,6 @@
|
|
|
31559
31589
|
}, listItemProps, {
|
|
31560
31590
|
"hasCustomPrepend": !!slots.prepend,
|
|
31561
31591
|
"hideActions": props.hideActions,
|
|
31562
|
-
"indentLines": indentLines.node,
|
|
31563
31592
|
"value": props.returnObject ? item.raw : itemProps.value,
|
|
31564
31593
|
"loading": loading
|
|
31565
31594
|
}), slotsWithItem));
|
|
@@ -32254,7 +32283,7 @@
|
|
|
32254
32283
|
};
|
|
32255
32284
|
});
|
|
32256
32285
|
}
|
|
32257
|
-
const version$1 = "3.10.
|
|
32286
|
+
const version$1 = "3.10.4";
|
|
32258
32287
|
createVuetify$1.version = version$1;
|
|
32259
32288
|
|
|
32260
32289
|
// Vue's inject() can only be used in setup
|
|
@@ -32279,7 +32308,7 @@
|
|
|
32279
32308
|
...options
|
|
32280
32309
|
});
|
|
32281
32310
|
};
|
|
32282
|
-
const version = "3.10.
|
|
32311
|
+
const version = "3.10.4";
|
|
32283
32312
|
createVuetify.version = version;
|
|
32284
32313
|
|
|
32285
32314
|
exports.blueprints = index;
|