vuetify 3.2.2 → 3.2.3
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 +538 -242
- package/dist/json/importMap.json +8 -8
- package/dist/json/tags.json +77 -2
- package/dist/json/web-types.json +1284 -558
- package/dist/vuetify-labs.css +123 -119
- package/dist/vuetify-labs.d.ts +2222 -11380
- package/dist/vuetify-labs.esm.js +2230 -2144
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +2230 -2144
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +39 -35
- package/dist/vuetify.d.ts +1225 -11178
- package/dist/vuetify.esm.js +1691 -1591
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1691 -1591
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +597 -597
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +1 -3
- package/lib/blueprints/md1.d.ts +1 -3
- package/lib/blueprints/md2.d.ts +1 -3
- package/lib/blueprints/md3.d.ts +1 -3
- package/lib/components/VAlert/VAlert.mjs +47 -46
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +2 -2
- package/lib/components/VApp/VApp.mjs +9 -8
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +21 -20
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +8 -5
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +28 -33
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
- package/lib/components/VAutocomplete/index.d.ts +67 -1174
- package/lib/components/VBadge/VBadge.mjs +33 -32
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.mjs +21 -20
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +7 -6
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +2 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +1 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +38 -37
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +12 -11
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +4 -4
- package/lib/components/VCarousel/VCarousel.mjs +28 -27
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +170 -20
- package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +24 -12
- package/lib/components/VChip/VChip.css +8 -0
- package/lib/components/VChip/VChip.mjs +60 -57
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +10 -0
- package/lib/components/VChip/index.d.ts +8 -8
- package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +21 -20
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +4 -4
- package/lib/components/VColorPicker/util/index.mjs +2 -2
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +32 -36
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +67 -1171
- package/lib/components/VCounter/VCounter.mjs +16 -15
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +25 -1774
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +18 -17
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +130 -1120
- package/lib/components/VDivider/VDivider.mjs +11 -10
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +15 -15
- package/lib/components/VField/VField.mjs +6 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VFieldLabel.mjs +6 -5
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +35 -34
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +3 -3
- package/lib/components/VFooter/VFooter.mjs +19 -18
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +6 -5
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +3 -3
- package/lib/components/VGrid/VCol.mjs +26 -25
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +16 -11
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +26 -25
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs +10 -9
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +29 -28
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +8 -7
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs +6 -5
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +15 -14
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +21 -20
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.mjs +33 -32
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +5 -4
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +2 -4
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +42 -41
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +8 -7
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +8 -7
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +10 -9
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +30 -30
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs +9 -8
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +18 -17
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +40 -1030
- package/lib/components/VMessages/VMessages.mjs +18 -17
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +25 -1774
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +48 -47
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +9 -3
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +5 -3
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +82 -81
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +8 -8
- package/lib/components/VParallax/VParallax.mjs +9 -8
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +8 -8
- package/lib/components/VRadio/VRadio.mjs +8 -7
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +18 -12
- package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +16 -10
- package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +44 -43
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +8 -8
- package/lib/components/VResponsive/VResponsive.mjs +8 -7
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +20 -19
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +64 -2506
- package/lib/components/VSelectionControl/index.d.ts +42 -36
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
- package/lib/components/VSheet/VSheet.mjs +1 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +18 -13
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +26 -25
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +13 -12
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +13 -12
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +18 -12
- package/lib/components/VSystemBar/VSystemBar.mjs +13 -12
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs +12 -11
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs +15 -14
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +28 -27
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +12 -12
- package/lib/components/VTextField/index.d.ts +3 -3
- package/lib/components/VTextarea/VTextarea.mjs +26 -25
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +3 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.mjs +46 -41
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +21 -20
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.mjs +6 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +11 -11
- package/lib/components/VTooltip/VTooltip.mjs +20 -19
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs +1 -3
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +11 -10
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +15 -14
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +9 -9
- package/lib/components/index.d.ts +1301 -11252
- package/lib/components/transitions/createTransition.mjs +16 -15
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +5 -4
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +143 -143
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/theme.mjs +3 -3
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +3 -5
- package/lib/labs/VDataTable/VDataTable.mjs +53 -59
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +53 -64
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +65 -72
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +991 -206
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +1011 -211
- package/lib/labs/date/date.mjs +7 -7
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.ts +1 -3
- package/package.json +2 -2
|
@@ -111,9 +111,7 @@ interface DateInstance extends DateAdapter<Date> {
|
|
|
111
111
|
locale: string;
|
|
112
112
|
}
|
|
113
113
|
type DateOptions = {
|
|
114
|
-
adapter:
|
|
115
|
-
new (locale: string): DateInstance;
|
|
116
|
-
};
|
|
114
|
+
adapter: (new (locale: string) => DateInstance) | DateInstance;
|
|
117
115
|
};
|
|
118
116
|
|
|
119
117
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
package/lib/blueprints/md1.d.ts
CHANGED
|
@@ -111,9 +111,7 @@ interface DateInstance extends DateAdapter<Date> {
|
|
|
111
111
|
locale: string;
|
|
112
112
|
}
|
|
113
113
|
type DateOptions = {
|
|
114
|
-
adapter:
|
|
115
|
-
new (locale: string): DateInstance;
|
|
116
|
-
};
|
|
114
|
+
adapter: (new (locale: string) => DateInstance) | DateInstance;
|
|
117
115
|
};
|
|
118
116
|
|
|
119
117
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
package/lib/blueprints/md2.d.ts
CHANGED
|
@@ -111,9 +111,7 @@ interface DateInstance extends DateAdapter<Date> {
|
|
|
111
111
|
locale: string;
|
|
112
112
|
}
|
|
113
113
|
type DateOptions = {
|
|
114
|
-
adapter:
|
|
115
|
-
new (locale: string): DateInstance;
|
|
116
|
-
};
|
|
114
|
+
adapter: (new (locale: string) => DateInstance) | DateInstance;
|
|
117
115
|
};
|
|
118
116
|
|
|
119
117
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
package/lib/blueprints/md3.d.ts
CHANGED
|
@@ -111,9 +111,7 @@ interface DateInstance extends DateAdapter<Date> {
|
|
|
111
111
|
locale: string;
|
|
112
112
|
}
|
|
113
113
|
type DateOptions = {
|
|
114
|
-
adapter:
|
|
115
|
-
new (locale: string): DateInstance;
|
|
116
|
-
};
|
|
114
|
+
adapter: (new (locale: string) => DateInstance) | DateInstance;
|
|
117
115
|
};
|
|
118
116
|
|
|
119
117
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
|
@@ -22,55 +22,56 @@ import { useLocale } from "../../composables/locale.mjs";
|
|
|
22
22
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
23
23
|
import { useTextColor } from "../../composables/color.mjs"; // Utilities
|
|
24
24
|
import { computed, toRef } from 'vue';
|
|
25
|
-
import { genericComponent } from "../../util/index.mjs"; // Types
|
|
25
|
+
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
|
|
26
26
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
|
27
|
+
export const makeVAlertProps = propsFactory({
|
|
28
|
+
border: {
|
|
29
|
+
type: [Boolean, String],
|
|
30
|
+
validator: val => {
|
|
31
|
+
return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
borderColor: String,
|
|
35
|
+
closable: Boolean,
|
|
36
|
+
closeIcon: {
|
|
37
|
+
type: IconValue,
|
|
38
|
+
default: '$close'
|
|
39
|
+
},
|
|
40
|
+
closeLabel: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: '$vuetify.close'
|
|
43
|
+
},
|
|
44
|
+
icon: {
|
|
45
|
+
type: [Boolean, String, Function, Object],
|
|
46
|
+
default: null
|
|
47
|
+
},
|
|
48
|
+
modelValue: {
|
|
49
|
+
type: Boolean,
|
|
50
|
+
default: true
|
|
51
|
+
},
|
|
52
|
+
prominent: Boolean,
|
|
53
|
+
title: String,
|
|
54
|
+
text: String,
|
|
55
|
+
type: {
|
|
56
|
+
type: String,
|
|
57
|
+
validator: val => allowedTypes.includes(val)
|
|
58
|
+
},
|
|
59
|
+
...makeComponentProps(),
|
|
60
|
+
...makeDensityProps(),
|
|
61
|
+
...makeDimensionProps(),
|
|
62
|
+
...makeElevationProps(),
|
|
63
|
+
...makeLocationProps(),
|
|
64
|
+
...makePositionProps(),
|
|
65
|
+
...makeRoundedProps(),
|
|
66
|
+
...makeTagProps(),
|
|
67
|
+
...makeThemeProps(),
|
|
68
|
+
...makeVariantProps({
|
|
69
|
+
variant: 'flat'
|
|
70
|
+
})
|
|
71
|
+
}, 'v-alert');
|
|
27
72
|
export const VAlert = genericComponent()({
|
|
28
73
|
name: 'VAlert',
|
|
29
|
-
props:
|
|
30
|
-
border: {
|
|
31
|
-
type: [Boolean, String],
|
|
32
|
-
validator: val => {
|
|
33
|
-
return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
borderColor: String,
|
|
37
|
-
closable: Boolean,
|
|
38
|
-
closeIcon: {
|
|
39
|
-
type: IconValue,
|
|
40
|
-
default: '$close'
|
|
41
|
-
},
|
|
42
|
-
closeLabel: {
|
|
43
|
-
type: String,
|
|
44
|
-
default: '$vuetify.close'
|
|
45
|
-
},
|
|
46
|
-
icon: {
|
|
47
|
-
type: [Boolean, String, Function, Object],
|
|
48
|
-
default: null
|
|
49
|
-
},
|
|
50
|
-
modelValue: {
|
|
51
|
-
type: Boolean,
|
|
52
|
-
default: true
|
|
53
|
-
},
|
|
54
|
-
prominent: Boolean,
|
|
55
|
-
title: String,
|
|
56
|
-
text: String,
|
|
57
|
-
type: {
|
|
58
|
-
type: String,
|
|
59
|
-
validator: val => allowedTypes.includes(val)
|
|
60
|
-
},
|
|
61
|
-
...makeComponentProps(),
|
|
62
|
-
...makeDensityProps(),
|
|
63
|
-
...makeDimensionProps(),
|
|
64
|
-
...makeElevationProps(),
|
|
65
|
-
...makeLocationProps(),
|
|
66
|
-
...makePositionProps(),
|
|
67
|
-
...makeRoundedProps(),
|
|
68
|
-
...makeTagProps(),
|
|
69
|
-
...makeThemeProps(),
|
|
70
|
-
...makeVariantProps({
|
|
71
|
-
variant: 'flat'
|
|
72
|
-
})
|
|
73
|
-
},
|
|
74
|
+
props: makeVAlertProps(),
|
|
74
75
|
emits: {
|
|
75
76
|
'click:close': e => true,
|
|
76
77
|
'update:modelValue': value => true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAlert.mjs","names":["VAlertTitle","VBtn","VDefaultsProvider","VIcon","genOverlays","makeVariantProps","useVariant","IconValue","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","useTextColor","computed","toRef","genericComponent","allowedTypes","VAlert","name","props","border","type","Boolean","String","validator","val","includes","borderColor","closable","closeIcon","default","closeLabel","icon","Function","Object","modelValue","prominent","title","text","variant","emits","e","value","setup","_ref","emit","slots","isActive","undefined","variantProps","color","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","textColorClasses","textColorStyles","t","closeProps","onClick","hasPrepend","prepend","hasTitle","hasText","hasClose","close","_createVNode","tag","class","style","density","size","append","_mergeProps"],"sources":["../../../src/components/VAlert/VAlert.tsx"],"sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport type VAlertSlots = {\n default: []\n prepend: []\n title: []\n text: []\n append: []\n close: []\n}\n\nexport const VAlert = genericComponent<VAlertSlots>()({\n name: 'VAlert',\n\n props: {\n border: {\n type: [Boolean, String] as PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n },\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n key=\"border\"\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-alert__prepend\">\n { !slots.prepend ? (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ icon.value }\n size={ props.prominent ? 44 : 28 }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !icon.value }\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle key=\"title\">\n { slots.title?.() ?? props.title }\n </VAlertTitle>\n )}\n\n { hasText && (slots.text?.() ?? props.text) }\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div key=\"append\" class=\"v-alert__append\">\n { slots.append() }\n </div>\n )}\n\n { hasClose && (\n <div key=\"close\" class=\"v-alert__close\">\n { !slots.close ? (\n <VBtn\n key=\"close-btn\"\n icon={ props.closeIcon }\n size=\"x-small\"\n variant=\"text\"\n { ...closeProps.value }\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n >\n { slots.close?.({ props: closeProps.value }) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VAlert.mjs","names":["VAlertTitle","VBtn","VDefaultsProvider","VIcon","genOverlays","makeVariantProps","useVariant","IconValue","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","useTextColor","computed","toRef","genericComponent","propsFactory","allowedTypes","makeVAlertProps","border","type","Boolean","String","validator","val","includes","borderColor","closable","closeIcon","default","closeLabel","icon","Function","Object","modelValue","prominent","title","text","variant","VAlert","name","props","emits","e","value","setup","_ref","emit","slots","isActive","undefined","variantProps","color","themeClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","textColorClasses","textColorStyles","t","closeProps","onClick","hasPrepend","prepend","hasTitle","hasText","hasClose","close","_createVNode","tag","class","style","density","size","append","_mergeProps"],"sources":["../../../src/components/VAlert/VAlert.tsx"],"sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport const makeVAlertProps = propsFactory({\n border: {\n type: [Boolean, String] as PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>,\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'flat' } as const),\n}, 'v-alert')\n\nexport type VAlertSlots = {\n default: []\n prepend: []\n title: []\n text: []\n append: []\n close: []\n}\n\nexport const VAlert = genericComponent<VAlertSlots>()({\n name: 'VAlert',\n\n props: makeVAlertProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n const { t } = useLocale()\n\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n key=\"border\"\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-alert__prepend\">\n { !slots.prepend ? (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ icon.value }\n size={ props.prominent ? 44 : 28 }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !icon.value }\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 28,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle key=\"title\">\n { slots.title?.() ?? props.title }\n </VAlertTitle>\n )}\n\n { hasText && (slots.text?.() ?? props.text) }\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div key=\"append\" class=\"v-alert__append\">\n { slots.append() }\n </div>\n )}\n\n { hasClose && (\n <div key=\"close\" class=\"v-alert__close\">\n { !slots.close ? (\n <VBtn\n key=\"close-btn\"\n icon={ props.closeIcon }\n size=\"x-small\"\n variant=\"text\"\n { ...closeProps.value }\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VBtn: {\n icon: props.closeIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n >\n { slots.close?.({ props: closeProps.value }) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n"],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
2
|
import { ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType } from 'vue';
|
|
3
3
|
|
|
4
|
+
type Density = null | 'default' | 'comfortable' | 'compact';
|
|
5
|
+
|
|
4
6
|
declare const block: readonly ["top", "bottom"];
|
|
5
7
|
declare const inline: readonly ["start", "end", "left", "right"];
|
|
6
8
|
type Tblock = typeof block[number];
|
|
@@ -11,8 +13,6 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
|
|
|
11
13
|
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): [yes: Partial<Pick<T, U>>, no: Omit<T, U>];
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
type Density = null | 'default' | 'comfortable' | 'compact';
|
|
15
|
-
|
|
16
16
|
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
|
17
17
|
declare const IconValue: PropType<IconValue>;
|
|
18
18
|
|
|
@@ -7,16 +7,17 @@ import { createLayout, makeLayoutProps } from "../../composables/layout.mjs";
|
|
|
7
7
|
import { makeComponentProps } from "../../composables/component.mjs";
|
|
8
8
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
9
9
|
import { useRtl } from "../../composables/locale.mjs"; // Utilities
|
|
10
|
-
import { genericComponent, useRender } from "../../util/index.mjs";
|
|
10
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
11
|
+
export const makeVAppProps = propsFactory({
|
|
12
|
+
...makeComponentProps(),
|
|
13
|
+
...makeLayoutProps({
|
|
14
|
+
fullHeight: true
|
|
15
|
+
}),
|
|
16
|
+
...makeThemeProps()
|
|
17
|
+
}, 'v-app');
|
|
11
18
|
export const VApp = genericComponent()({
|
|
12
19
|
name: 'VApp',
|
|
13
|
-
props:
|
|
14
|
-
...makeComponentProps(),
|
|
15
|
-
...makeLayoutProps({
|
|
16
|
-
fullHeight: true
|
|
17
|
-
}),
|
|
18
|
-
...makeThemeProps()
|
|
19
|
-
},
|
|
20
|
+
props: makeVAppProps(),
|
|
20
21
|
setup(props, _ref) {
|
|
21
22
|
let {
|
|
22
23
|
slots
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VApp.mjs","names":["createLayout","makeLayoutProps","makeComponentProps","makeThemeProps","provideTheme","useRtl","genericComponent","useRender","VApp","name","props","
|
|
1
|
+
{"version":3,"file":"VApp.mjs","names":["createLayout","makeLayoutProps","makeComponentProps","makeThemeProps","provideTheme","useRtl","genericComponent","propsFactory","useRender","makeVAppProps","fullHeight","VApp","name","props","setup","_ref","slots","theme","layoutClasses","layoutStyles","getLayoutItem","items","layoutRef","rtlClasses","_createVNode","themeClasses","value","class","style","default"],"sources":["../../../src/components/VApp/VApp.tsx"],"sourcesContent":["// Styles\nimport './VApp.sass'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n}, 'v-app')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n <div\n ref={ layoutRef }\n class={[\n 'v-application',\n theme.themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n layoutStyles.value,\n props.style,\n ]}\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType<typeof VApp>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY,EAAEC,eAAe;AAAA,SAC7BC,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,MAAM,wCAEf;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxC,GAAGL,kBAAkB,EAAE;EACvB,GAAGD,eAAe,CAAC;IAAES,UAAU,EAAE;EAAK,CAAC,CAAC;EACxC,GAAGP,cAAc;AACnB,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,MAAMQ,IAAI,GAAGL,gBAAgB,EAAE,CAAC;EACrCM,IAAI,EAAE,MAAM;EAEZC,KAAK,EAAEJ,aAAa,EAAE;EAEtBK,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGb,YAAY,CAACS,KAAK,CAAC;IACjC,MAAM;MAAEK,aAAa;MAAEC,YAAY;MAAEC,aAAa;MAAEC,KAAK;MAAEC;IAAU,CAAC,GAAGtB,YAAY,CAACa,KAAK,CAAC;IAC5F,MAAM;MAAEU;IAAW,CAAC,GAAGlB,MAAM,EAAE;IAE/BG,SAAS,CAAC,MAAAgB,YAAA;MAAA,OAEAF,SAAS;MAAA,SACR,CACL,eAAe,EACfL,KAAK,CAACQ,YAAY,CAACC,KAAK,EACxBR,aAAa,CAACQ,KAAK,EACnBH,UAAU,CAACG,KAAK,EAChBb,KAAK,CAACc,KAAK,CACZ;MAAA,SACM,CACLR,YAAY,CAACO,KAAK,EAClBb,KAAK,CAACe,KAAK;IACZ,IAAAJ,YAAA;MAAA,SAEU;IAAqB,IAC5BR,KAAK,CAACa,OAAO,IAAI,IAGxB,CAAC;IAEF,OAAO;MACLT,aAAa;MACbC,KAAK;MACLJ;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
@@ -9,28 +9,29 @@ import { makeScrollProps, useScroll } from "../../composables/scroll.mjs";
|
|
|
9
9
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
10
10
|
import { useSsrBoot } from "../../composables/ssrBoot.mjs"; // Utilities
|
|
11
11
|
import { computed, ref, toRef, watch } from 'vue';
|
|
12
|
-
import { genericComponent, useRender } from "../../util/index.mjs"; // Types
|
|
12
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
13
|
+
export const makeVAppBarProps = propsFactory({
|
|
14
|
+
scrollBehavior: String,
|
|
15
|
+
modelValue: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
default: true
|
|
18
|
+
},
|
|
19
|
+
location: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: 'top',
|
|
22
|
+
validator: value => ['top', 'bottom'].includes(value)
|
|
23
|
+
},
|
|
24
|
+
...makeVToolbarProps(),
|
|
25
|
+
...makeLayoutItemProps(),
|
|
26
|
+
...makeScrollProps(),
|
|
27
|
+
height: {
|
|
28
|
+
type: [Number, String],
|
|
29
|
+
default: 64
|
|
30
|
+
}
|
|
31
|
+
}, 'v-app-bar');
|
|
13
32
|
export const VAppBar = genericComponent()({
|
|
14
33
|
name: 'VAppBar',
|
|
15
|
-
props:
|
|
16
|
-
scrollBehavior: String,
|
|
17
|
-
modelValue: {
|
|
18
|
-
type: Boolean,
|
|
19
|
-
default: true
|
|
20
|
-
},
|
|
21
|
-
location: {
|
|
22
|
-
type: String,
|
|
23
|
-
default: 'top',
|
|
24
|
-
validator: value => ['top', 'bottom'].includes(value)
|
|
25
|
-
},
|
|
26
|
-
...makeVToolbarProps(),
|
|
27
|
-
...makeLayoutItemProps(),
|
|
28
|
-
...makeScrollProps(),
|
|
29
|
-
height: {
|
|
30
|
-
type: [Number, String],
|
|
31
|
-
default: 64
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
+
props: makeVAppBarProps(),
|
|
34
35
|
emits: {
|
|
35
36
|
'update:modelValue': value => true
|
|
36
37
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAppBar.mjs","names":["makeVToolbarProps","VToolbar","makeLayoutItemProps","useLayoutItem","makeScrollProps","useScroll","useProxiedModel","useSsrBoot","computed","ref","toRef","watch","genericComponent","useRender","VAppBar","name","props","scrollBehavior","String","modelValue","type","Boolean","default","location","validator","value","includes","height","Number","emits","setup","_ref","slots","vToolbarRef","isActive","behavior","Set","split","hide","has","inverted","collapse","elevate","fadeImage","canScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","isCollapsed","isFlat","flat","opacity","undefined","contentHeight","extensionHeight","setActive","immediate","ssrBootStyles","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","toolbarProps","filterProps","_createVNode","_mergeProps","class","style"],"sources":["../../../src/components/VAppBar/VAppBar.tsx"],"sourcesContent":["// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const VAppBar = genericComponent<VToolbarSlots>()({\n name: 'VAppBar',\n\n props: {\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref<VToolbar>()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n // fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n // behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n function setActive () {\n if (scrollBehavior.value.hide) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n }\n\n watch(currentScroll, setActive, { immediate: true })\n watch(scrollBehavior, setActive)\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: ref(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = VToolbar.filterProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n props.class,\n ]}\n style={[\n {\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value,\n },\n props.style,\n ]}\n { ...toolbarProps }\n collapse={ isCollapsed.value }\n flat={ isFlat.value }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VAppBar.mjs","names":["makeVToolbarProps","VToolbar","makeLayoutItemProps","useLayoutItem","makeScrollProps","useScroll","useProxiedModel","useSsrBoot","computed","ref","toRef","watch","genericComponent","propsFactory","useRender","makeVAppBarProps","scrollBehavior","String","modelValue","type","Boolean","default","location","validator","value","includes","height","Number","VAppBar","name","props","emits","setup","_ref","slots","vToolbarRef","isActive","behavior","Set","split","hide","has","inverted","collapse","elevate","fadeImage","canScroll","currentScroll","scrollThreshold","isScrollingUp","scrollRatio","isCollapsed","isFlat","flat","opacity","undefined","contentHeight","extensionHeight","setActive","immediate","ssrBootStyles","layoutItemStyles","id","order","parseInt","position","layoutSize","elementSize","active","absolute","toolbarProps","filterProps","_createVNode","_mergeProps","class","style"],"sources":["../../../src/components/VAppBar/VAppBar.tsx"],"sourcesContent":["// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeScrollProps, useScroll } from '@/composables/scroll'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VToolbarSlots } from '@/components/VToolbar/VToolbar'\n\nexport const makeVAppBarProps = propsFactory({\n scrollBehavior: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n location: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n ...makeScrollProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n}, 'v-app-bar')\n\nexport const VAppBar = genericComponent<VToolbarSlots>()({\n name: 'VAppBar',\n\n props: makeVAppBarProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref<VToolbar>()\n const isActive = useProxiedModel(props, 'modelValue')\n const scrollBehavior = computed(() => {\n const behavior = new Set(props.scrollBehavior?.split(' ') ?? [])\n return {\n hide: behavior.has('hide'),\n // fullyHide: behavior.has('fully-hide'),\n inverted: behavior.has('inverted'),\n collapse: behavior.has('collapse'),\n elevate: behavior.has('elevate'),\n fadeImage: behavior.has('fade-image'),\n // shrink: behavior.has('shrink'),\n }\n })\n const canScroll = computed(() => {\n const behavior = scrollBehavior.value\n return (\n behavior.hide ||\n // behavior.fullyHide ||\n behavior.inverted ||\n behavior.collapse ||\n behavior.elevate ||\n behavior.fadeImage ||\n // behavior.shrink ||\n !isActive.value\n )\n })\n const {\n currentScroll,\n scrollThreshold,\n isScrollingUp,\n scrollRatio,\n } = useScroll(props, { canScroll })\n\n const isCollapsed = computed(() => props.collapse || (\n scrollBehavior.value.collapse &&\n (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0)\n ))\n const isFlat = computed(() => props.flat || (\n scrollBehavior.value.elevate &&\n (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0)\n ))\n const opacity = computed(() => (\n scrollBehavior.value.fadeImage\n ? (scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value)\n : undefined\n ))\n const height = computed(() => {\n if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0\n\n const height = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n function setActive () {\n if (scrollBehavior.value.hide) {\n if (scrollBehavior.value.inverted) {\n isActive.value = currentScroll.value > scrollThreshold.value\n } else {\n isActive.value = isScrollingUp.value || (currentScroll.value < scrollThreshold.value)\n }\n } else {\n isActive.value = true\n }\n }\n\n watch(currentScroll, setActive, { immediate: true })\n watch(scrollBehavior, setActive)\n\n const { ssrBootStyles } = useSsrBoot()\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize: height,\n elementSize: ref(undefined),\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useRender(() => {\n const [toolbarProps] = VToolbar.filterProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.location === 'bottom',\n },\n props.class,\n ]}\n style={[\n {\n ...layoutItemStyles.value,\n '--v-toolbar-image-opacity': opacity.value,\n height: undefined,\n ...ssrBootStyles.value,\n },\n props.style,\n ]}\n { ...toolbarProps }\n collapse={ isCollapsed.value }\n flat={ isFlat.value }\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n"],"mappings":"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"}
|
|
@@ -2,13 +2,16 @@ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirectiv
|
|
|
2
2
|
// Components
|
|
3
3
|
import { VBtn } from "../VBtn/index.mjs";
|
|
4
4
|
import { makeVBtnProps } from "../VBtn/VBtn.mjs"; // Utilities
|
|
5
|
-
import { genericComponent, useRender } from "../../util/index.mjs"; // Types
|
|
6
|
-
export const
|
|
7
|
-
|
|
8
|
-
props: makeVBtnProps({
|
|
5
|
+
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
6
|
+
export const makeVAppBarNavIconProps = propsFactory({
|
|
7
|
+
...makeVBtnProps({
|
|
9
8
|
icon: '$menu',
|
|
10
9
|
variant: 'text'
|
|
11
|
-
})
|
|
10
|
+
})
|
|
11
|
+
}, 'v-app-bar-nav-icon');
|
|
12
|
+
export const VAppBarNavIcon = genericComponent()({
|
|
13
|
+
name: 'VAppBarNavIcon',
|
|
14
|
+
props: makeVAppBarNavIconProps(),
|
|
12
15
|
setup(props, _ref) {
|
|
13
16
|
let {
|
|
14
17
|
slots
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VAppBarNavIcon.mjs","names":["VBtn","makeVBtnProps","genericComponent","useRender","
|
|
1
|
+
{"version":3,"file":"VAppBarNavIcon.mjs","names":["VBtn","makeVBtnProps","genericComponent","propsFactory","useRender","makeVAppBarNavIconProps","icon","variant","VAppBarNavIcon","name","props","setup","_ref","slots","_createVNode","_mergeProps"],"sources":["../../../src/components/VAppBar/VAppBarNavIcon.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\n\nimport { makeVBtnProps } from '@/components/VBtn/VBtn'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVAppBarNavIconProps = propsFactory({\n ...makeVBtnProps({\n icon: '$menu',\n variant: 'text' as const,\n }),\n}, 'v-app-bar-nav-icon')\n\nexport const VAppBarNavIcon = genericComponent<VBtnSlots>()({\n name: 'VAppBarNavIcon',\n\n props: makeVAppBarNavIconProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <VBtn\n { ...props }\n class={[\n 'v-app-bar-nav-icon',\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VAppBarNavIcon = InstanceType<typeof VAppBarNavIcon>\n"],"mappings":";AAAA;AAAA,SACSA,IAAI;AAAA,SAEJC,aAAa,4BAEtB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAGA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClD,GAAGF,aAAa,CAAC;IACfK,IAAI,EAAE,OAAO;IACbC,OAAO,EAAE;EACX,CAAC;AACH,CAAC,EAAE,oBAAoB,CAAC;AAExB,OAAO,MAAMC,cAAc,GAAGN,gBAAgB,EAAa,CAAC;EAC1DO,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEL,uBAAuB,EAAE;EAEhCM,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBR,SAAS,CAAC,MAAAU,YAAA,CAAAd,IAAA,EAAAe,WAAA,CAEDL,KAAK;MAAA,SACH,CACL,oBAAoB;IACrB,IACSG,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
|
-
import { ComponentPropsOptions, ExtractPropTypes, PropType, ComponentInternalInstance, Ref, ComputedRef
|
|
2
|
+
import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, ComponentInternalInstance, Ref, ComputedRef } from 'vue';
|
|
3
3
|
// @ts-ignore
|
|
4
4
|
import * as vue_router from 'vue-router';
|
|
5
5
|
|
|
@@ -460,6 +460,9 @@ declare const VAppBar: {
|
|
|
460
460
|
}>>;
|
|
461
461
|
type VAppBar = InstanceType<typeof VAppBar>;
|
|
462
462
|
|
|
463
|
+
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
|
464
|
+
declare const IconValue: PropType<IconValue>;
|
|
465
|
+
|
|
463
466
|
interface GroupItem {
|
|
464
467
|
id: number;
|
|
465
468
|
value: Ref<unknown>;
|
|
@@ -485,9 +488,6 @@ interface GroupProvide {
|
|
|
485
488
|
|
|
486
489
|
type Density = null | 'default' | 'comfortable' | 'compact';
|
|
487
490
|
|
|
488
|
-
type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
|
|
489
|
-
declare const IconValue: PropType<IconValue>;
|
|
490
|
-
|
|
491
491
|
declare const VAppBarNavIcon: {
|
|
492
492
|
new (...args: any[]): {
|
|
493
493
|
$: vue.ComponentInternalInstance;
|
|
@@ -7,7 +7,7 @@ import { makeSelectProps } from "../VSelect/VSelect.mjs";
|
|
|
7
7
|
import { VCheckboxBtn } from "../VCheckbox/index.mjs";
|
|
8
8
|
import { VChip } from "../VChip/index.mjs";
|
|
9
9
|
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
|
|
10
|
-
import { VIcon } from "
|
|
10
|
+
import { VIcon } from "../VIcon/index.mjs";
|
|
11
11
|
import { VList, VListItem } from "../VList/index.mjs";
|
|
12
12
|
import { VMenu } from "../VMenu/index.mjs";
|
|
13
13
|
import { VTextField } from "../VTextField/index.mjs"; // Composables
|
|
@@ -20,7 +20,7 @@ import { useLocale } from "../../composables/locale.mjs";
|
|
|
20
20
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
21
21
|
import { useTextColor } from "../../composables/color.mjs"; // Utility
|
|
22
22
|
import { computed, mergeProps, nextTick, ref, watch } from 'vue';
|
|
23
|
-
import { genericComponent, omit, useRender, wrapInArray } from "../../util/index.mjs";
|
|
23
|
+
import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs";
|
|
24
24
|
import { makeVTextFieldProps } from "../VTextField/VTextField.mjs"; // Types
|
|
25
25
|
function highlightResult(text, matches, length) {
|
|
26
26
|
if (matches == null) return text;
|
|
@@ -33,23 +33,24 @@ function highlightResult(text, matches, length) {
|
|
|
33
33
|
"class": "v-autocomplete__unmask"
|
|
34
34
|
}, [text.substr(matches + length)])]) : text;
|
|
35
35
|
}
|
|
36
|
+
export const makeVAutocompleteProps = propsFactory({
|
|
37
|
+
// TODO: implement post keyboard support
|
|
38
|
+
// autoSelectFirst: Boolean,
|
|
39
|
+
search: String,
|
|
40
|
+
...makeFilterProps({
|
|
41
|
+
filterKeys: ['title']
|
|
42
|
+
}),
|
|
43
|
+
...makeSelectProps(),
|
|
44
|
+
...omit(makeVTextFieldProps({
|
|
45
|
+
modelValue: null
|
|
46
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
47
|
+
...makeTransitionProps({
|
|
48
|
+
transition: false
|
|
49
|
+
})
|
|
50
|
+
}, 'v-autocomplete');
|
|
36
51
|
export const VAutocomplete = genericComponent()({
|
|
37
52
|
name: 'VAutocomplete',
|
|
38
|
-
props:
|
|
39
|
-
// TODO: implement post keyboard support
|
|
40
|
-
// autoSelectFirst: Boolean,
|
|
41
|
-
search: String,
|
|
42
|
-
...makeFilterProps({
|
|
43
|
-
filterKeys: ['title']
|
|
44
|
-
}),
|
|
45
|
-
...makeSelectProps(),
|
|
46
|
-
...omit(makeVTextFieldProps({
|
|
47
|
-
modelValue: null
|
|
48
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon']),
|
|
49
|
-
...makeTransitionProps({
|
|
50
|
-
transition: false
|
|
51
|
-
})
|
|
52
|
-
},
|
|
53
|
+
props: makeVAutocompleteProps(),
|
|
53
54
|
emits: {
|
|
54
55
|
'update:focused': focused => true,
|
|
55
56
|
'update:search': val => true,
|
|
@@ -178,16 +179,14 @@ export const VAutocomplete = genericComponent()({
|
|
|
178
179
|
search.value = e.target.value;
|
|
179
180
|
}
|
|
180
181
|
function onAfterLeave() {
|
|
181
|
-
if (isFocused.value)
|
|
182
|
+
if (isFocused.value) {
|
|
183
|
+
isPristine.value = true;
|
|
184
|
+
vTextFieldRef.value?.focus();
|
|
185
|
+
}
|
|
182
186
|
}
|
|
183
187
|
function onFocusin(e) {
|
|
184
188
|
isFocused.value = true;
|
|
185
189
|
}
|
|
186
|
-
function onFocusout(e) {
|
|
187
|
-
if (e.relatedTarget == null) {
|
|
188
|
-
vTextFieldRef.value?.focus();
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
190
|
const isSelecting = ref(false);
|
|
192
191
|
function select(item) {
|
|
193
192
|
if (props.multiple) {
|
|
@@ -202,9 +201,7 @@ export const VAutocomplete = genericComponent()({
|
|
|
202
201
|
} else {
|
|
203
202
|
model.value = [item];
|
|
204
203
|
isSelecting.value = true;
|
|
205
|
-
|
|
206
|
-
search.value = item.title;
|
|
207
|
-
}
|
|
204
|
+
search.value = item.title;
|
|
208
205
|
menu.value = false;
|
|
209
206
|
isPristine.value = true;
|
|
210
207
|
nextTick(() => isSelecting.value = false);
|
|
@@ -213,13 +210,14 @@ export const VAutocomplete = genericComponent()({
|
|
|
213
210
|
watch(isFocused, val => {
|
|
214
211
|
if (val) {
|
|
215
212
|
isSelecting.value = true;
|
|
216
|
-
search.value = props.multiple
|
|
213
|
+
search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '');
|
|
217
214
|
isPristine.value = true;
|
|
218
215
|
nextTick(() => isSelecting.value = false);
|
|
219
216
|
} else {
|
|
220
217
|
if (!props.multiple && !search.value) model.value = [];
|
|
221
218
|
menu.value = false;
|
|
222
219
|
search.value = '';
|
|
220
|
+
selectionIndex.value = -1;
|
|
223
221
|
}
|
|
224
222
|
});
|
|
225
223
|
watch(search, val => {
|
|
@@ -244,12 +242,10 @@ export const VAutocomplete = genericComponent()({
|
|
|
244
242
|
"validationValue": model.externalValue,
|
|
245
243
|
"dirty": isDirty,
|
|
246
244
|
"onInput": onInput,
|
|
247
|
-
"class": ['v-autocomplete', {
|
|
245
|
+
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
|
248
246
|
'v-autocomplete--active-menu': menu.value,
|
|
249
247
|
'v-autocomplete--chips': !!props.chips,
|
|
250
|
-
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
251
|
-
[`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,
|
|
252
|
-
'v-autocomplete--selection-slot': !!slots.selection
|
|
248
|
+
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
|
253
249
|
}, props.class],
|
|
254
250
|
"style": props.style,
|
|
255
251
|
"appendInnerIcon": props.menuIcon,
|
|
@@ -278,8 +274,7 @@ export const VAutocomplete = genericComponent()({
|
|
|
278
274
|
"selected": selected.value,
|
|
279
275
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
|
280
276
|
"onMousedown": e => e.preventDefault(),
|
|
281
|
-
"onFocusin": onFocusin
|
|
282
|
-
"onFocusout": onFocusout
|
|
277
|
+
"onFocusin": onFocusin
|
|
283
278
|
}, {
|
|
284
279
|
default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
|
|
285
280
|
"title": t(props.noDataText)
|