@vuetify/nightly 3.8.0-beta.0-dev.2025-03-31 → 3.8.0-master.2025-04-01

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +5 -104
  2. package/dist/json/attributes.json +3192 -3192
  3. package/dist/json/importMap-labs.json +40 -40
  4. package/dist/json/importMap.json +154 -154
  5. package/dist/json/web-types.json +6142 -6142
  6. package/dist/vuetify-labs.cjs +20 -26
  7. package/dist/vuetify-labs.css +5651 -5651
  8. package/dist/vuetify-labs.d.ts +59 -59
  9. package/dist/vuetify-labs.esm.js +20 -26
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +20 -26
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +15 -17
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3852 -3852
  16. package/dist/vuetify.d.ts +59 -59
  17. package/dist/vuetify.esm.js +15 -17
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +15 -17
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +7 -8
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.js +5 -10
  25. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  26. package/lib/components/VColorPicker/VColorPickerPreview.js +4 -3
  27. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  28. package/lib/components/VEmptyState/VEmptyState.js +3 -1
  29. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  30. package/lib/components/VInput/VInput.css +11 -11
  31. package/lib/components/VInput/VInput.sass +1 -1
  32. package/lib/entry-bundler.js +1 -1
  33. package/lib/entry-bundler.js.map +1 -1
  34. package/lib/framework.d.ts +59 -59
  35. package/lib/framework.js +1 -1
  36. package/lib/framework.js.map +1 -1
  37. package/lib/labs/VDateInput/VDateInput.js +3 -8
  38. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  39. package/lib/labs/VFileUpload/VFileUpload.js +2 -1
  40. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  41. package/lib/util/helpers.d.ts +1 -2
  42. package/lib/util/helpers.js +1 -11
  43. package/lib/util/helpers.js.map +1 -1
  44. package/package.json +1 -1
@@ -2568,40 +2568,46 @@ declare module 'vue' {
2568
2568
  }
2569
2569
  export interface GlobalComponents {
2570
2570
  VApp: typeof import('vuetify/components')['VApp']
2571
+ VAlert: typeof import('vuetify/components')['VAlert']
2572
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2571
2573
  VAppBar: typeof import('vuetify/components')['VAppBar']
2572
2574
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2573
2575
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2574
- VAvatar: typeof import('vuetify/components')['VAvatar']
2575
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2576
2576
  VBadge: typeof import('vuetify/components')['VBadge']
2577
2577
  VBanner: typeof import('vuetify/components')['VBanner']
2578
2578
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2579
2579
  VBannerText: typeof import('vuetify/components')['VBannerText']
2580
- VAlert: typeof import('vuetify/components')['VAlert']
2581
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2582
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2580
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2583
2581
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2582
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2583
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2584
+ VBtn: typeof import('vuetify/components')['VBtn']
2584
2585
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2585
2586
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2586
2587
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2587
2588
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2589
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2590
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
2591
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2592
+ VCarousel: typeof import('vuetify/components')['VCarousel']
2593
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2588
2594
  VCard: typeof import('vuetify/components')['VCard']
2589
2595
  VCardActions: typeof import('vuetify/components')['VCardActions']
2590
2596
  VCardItem: typeof import('vuetify/components')['VCardItem']
2591
2597
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2592
2598
  VCardText: typeof import('vuetify/components')['VCardText']
2593
2599
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2594
- VBtn: typeof import('vuetify/components')['VBtn']
2595
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
2596
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2597
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2600
+ VChip: typeof import('vuetify/components')['VChip']
2598
2601
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
2599
2602
  VCode: typeof import('vuetify/components')['VCode']
2600
- VChip: typeof import('vuetify/components')['VChip']
2601
- VCarousel: typeof import('vuetify/components')['VCarousel']
2602
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2603
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2604
2603
  VCombobox: typeof import('vuetify/components')['VCombobox']
2604
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2605
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
2606
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2607
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2608
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2609
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2610
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2605
2611
  VCounter: typeof import('vuetify/components')['VCounter']
2606
2612
  VDataTable: typeof import('vuetify/components')['VDataTable']
2607
2613
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
@@ -2610,33 +2616,29 @@ declare module 'vue' {
2610
2616
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
2611
2617
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2612
2618
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2613
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
2614
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2615
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
2616
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
2617
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
2618
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
2619
2619
  VDivider: typeof import('vuetify/components')['VDivider']
2620
- VDialog: typeof import('vuetify/components')['VDialog']
2621
- VFab: typeof import('vuetify/components')['VFab']
2622
2620
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2621
+ VDialog: typeof import('vuetify/components')['VDialog']
2623
2622
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
2624
2623
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
2625
2624
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
2626
2625
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
2626
+ VFileInput: typeof import('vuetify/components')['VFileInput']
2627
2627
  VField: typeof import('vuetify/components')['VField']
2628
2628
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2629
2629
  VFooter: typeof import('vuetify/components')['VFooter']
2630
- VFileInput: typeof import('vuetify/components')['VFileInput']
2630
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2631
+ VImg: typeof import('vuetify/components')['VImg']
2632
+ VFab: typeof import('vuetify/components')['VFab']
2633
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
2634
+ VItem: typeof import('vuetify/components')['VItem']
2631
2635
  VIcon: typeof import('vuetify/components')['VIcon']
2632
2636
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2633
2637
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2634
2638
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2635
2639
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2636
- VImg: typeof import('vuetify/components')['VImg']
2637
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2638
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
2639
- VItem: typeof import('vuetify/components')['VItem']
2640
+ VKbd: typeof import('vuetify/components')['VKbd']
2641
+ VInput: typeof import('vuetify/components')['VInput']
2640
2642
  VList: typeof import('vuetify/components')['VList']
2641
2643
  VListGroup: typeof import('vuetify/components')['VListGroup']
2642
2644
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2646,76 +2648,75 @@ declare module 'vue' {
2646
2648
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
2647
2649
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2648
2650
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2649
- VInput: typeof import('vuetify/components')['VInput']
2650
- VMenu: typeof import('vuetify/components')['VMenu']
2651
- VLabel: typeof import('vuetify/components')['VLabel']
2652
- VKbd: typeof import('vuetify/components')['VKbd']
2653
2651
  VMain: typeof import('vuetify/components')['VMain']
2652
+ VLabel: typeof import('vuetify/components')['VLabel']
2654
2653
  VMessages: typeof import('vuetify/components')['VMessages']
2655
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2654
+ VMenu: typeof import('vuetify/components')['VMenu']
2656
2655
  VOverlay: typeof import('vuetify/components')['VOverlay']
2657
2656
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2658
- VPagination: typeof import('vuetify/components')['VPagination']
2657
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2659
2658
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
2660
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2659
+ VPagination: typeof import('vuetify/components')['VPagination']
2661
2660
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2661
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2662
2662
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2663
2663
  VSelect: typeof import('vuetify/components')['VSelect']
2664
2664
  VRating: typeof import('vuetify/components')['VRating']
2665
- VSheet: typeof import('vuetify/components')['VSheet']
2666
2665
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2666
+ VSheet: typeof import('vuetify/components')['VSheet']
2667
2667
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2668
- VSlider: typeof import('vuetify/components')['VSlider']
2669
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
2670
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2671
2668
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2672
2669
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2670
+ VSlider: typeof import('vuetify/components')['VSlider']
2671
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2673
2672
  VStepper: typeof import('vuetify/components')['VStepper']
2674
2673
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2675
2674
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
2676
2675
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
2677
2676
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
2678
2677
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
2678
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
2679
2679
  VSwitch: typeof import('vuetify/components')['VSwitch']
2680
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2681
2680
  VTab: typeof import('vuetify/components')['VTab']
2682
2681
  VTabs: typeof import('vuetify/components')['VTabs']
2683
2682
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2684
2683
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2684
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2685
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2685
2686
  VTable: typeof import('vuetify/components')['VTable']
2686
- VTimeline: typeof import('vuetify/components')['VTimeline']
2687
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2688
2687
  VTextField: typeof import('vuetify/components')['VTextField']
2689
2688
  VTooltip: typeof import('vuetify/components')['VTooltip']
2690
- VTextarea: typeof import('vuetify/components')['VTextarea']
2691
- VWindow: typeof import('vuetify/components')['VWindow']
2692
- VWindowItem: typeof import('vuetify/components')['VWindowItem']
2693
2689
  VToolbar: typeof import('vuetify/components')['VToolbar']
2694
2690
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2695
2691
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2692
+ VWindow: typeof import('vuetify/components')['VWindow']
2693
+ VWindowItem: typeof import('vuetify/components')['VWindowItem']
2694
+ VTimeline: typeof import('vuetify/components')['VTimeline']
2695
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2696
2696
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2697
2697
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2698
2698
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2699
2699
  VForm: typeof import('vuetify/components')['VForm']
2700
+ VHover: typeof import('vuetify/components')['VHover']
2700
2701
  VContainer: typeof import('vuetify/components')['VContainer']
2701
2702
  VCol: typeof import('vuetify/components')['VCol']
2702
2703
  VRow: typeof import('vuetify/components')['VRow']
2703
2704
  VSpacer: typeof import('vuetify/components')['VSpacer']
2704
- VHover: typeof import('vuetify/components')['VHover']
2705
+ VLazy: typeof import('vuetify/components')['VLazy']
2705
2706
  VLayout: typeof import('vuetify/components')['VLayout']
2706
2707
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2707
- VLazy: typeof import('vuetify/components')['VLazy']
2708
2708
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2709
2709
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2710
2710
  VParallax: typeof import('vuetify/components')['VParallax']
2711
2711
  VRadio: typeof import('vuetify/components')['VRadio']
2712
2712
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2713
- VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2714
2713
  VResponsive: typeof import('vuetify/components')['VResponsive']
2715
- VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2716
2714
  VSparkline: typeof import('vuetify/components')['VSparkline']
2715
+ VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
2716
+ VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
2717
2717
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
2718
2718
  VValidation: typeof import('vuetify/components')['VValidation']
2719
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2719
2720
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
2720
2721
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
2721
2722
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -2732,27 +2733,26 @@ declare module 'vue' {
2732
2733
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2733
2734
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2734
2735
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2735
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
2736
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2737
- VPicker: typeof import('vuetify/labs/components')['VPicker']
2738
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2739
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2740
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2741
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2742
- VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2743
- VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2744
- VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2745
2736
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2746
2737
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2747
2738
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2748
2739
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2749
2740
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2750
2741
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2742
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
2743
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2744
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2745
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2751
2746
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2752
2747
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2753
2748
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2754
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2755
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2749
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2750
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2751
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2752
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2753
+ VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2754
+ VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2755
+ VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2756
2756
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2757
2757
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2758
2758
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.0-beta.0-dev.2025-03-31";
112
+ export const version = "3.8.0-master.2025-04-01";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -1 +1 @@
1
- {"version":3,"file":"framework.js","names":["createDate","DateAdapterSymbol","DateOptionsSymbol","createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createGoTo","GoToSymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","effectScope","nextTick","reactive","defineComponent","IN_BROWSER","mergeDeep","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","scope","run","defaults","display","ssr","theme","icons","locale","date","goTo","install","app","key","directive","component","name","aliasName","appScope","onUnmount","stop","provide","instance","$nuxt","hook","update","mount","vm","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","unmount","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { effectScope, nextTick, reactive } from 'vue'\nimport { defineComponent, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\n// Exports\nexport * from './composables'\nexport * from './types'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n date?: DateOptions\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const scope = effectScope()\n return scope.run(() => {\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n function install (app: App) {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n const appScope = effectScope()\n appScope.run(() => {\n theme.install(app)\n })\n app.onUnmount(() => appScope.stop())\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n function unmount () {\n scope.stop()\n }\n\n return {\n install,\n unmount,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n })!\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"framework.js","names":["createDate","DateAdapterSymbol","DateOptionsSymbol","createDefaults","DefaultsSymbol","createDisplay","DisplaySymbol","createGoTo","GoToSymbol","createIcons","IconSymbol","createLocale","LocaleSymbol","createTheme","ThemeSymbol","effectScope","nextTick","reactive","defineComponent","IN_BROWSER","mergeDeep","createVuetify","vuetify","arguments","length","undefined","blueprint","rest","options","aliases","components","directives","scope","run","defaults","display","ssr","theme","icons","locale","date","goTo","install","app","key","directive","component","name","aliasName","appScope","onUnmount","stop","provide","instance","$nuxt","hook","update","mount","vm","__VUE_OPTIONS_API__","mixin","computed","$vuetify","inject","call","unmount","version","$","provides","parent","vnode","appContext"],"sources":["../src/framework.ts"],"sourcesContent":["// Composables\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from '@/composables/date/date'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createGoTo, GoToSymbol } from '@/composables/goto'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\n\n// Utilities\nimport { effectScope, nextTick, reactive } from 'vue'\nimport { defineComponent, IN_BROWSER, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DateOptions } from '@/composables/date'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions, SSROptions } from '@/composables/display'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleOptions, RtlOptions } from '@/composables/locale'\nimport type { ThemeOptions } from '@/composables/theme'\n\n// Exports\nexport * from './composables'\nexport * from './types'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n blueprint?: Blueprint\n components?: Record<string, any>\n date?: DateOptions\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n goTo?: GoToOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: LocaleOptions & RtlOptions\n ssr?: SSROptions\n}\n\nexport interface Blueprint extends Omit<VuetifyOptions, 'blueprint'> {}\n\nexport function createVuetify (vuetify: VuetifyOptions = {}) {\n const { blueprint, ...rest } = vuetify\n const options: VuetifyOptions = mergeDeep(blueprint, rest)\n const {\n aliases = {},\n components = {},\n directives = {},\n } = options\n\n const scope = effectScope()\n return scope.run(() => {\n const defaults = createDefaults(options.defaults)\n const display = createDisplay(options.display, options.ssr)\n const theme = createTheme(options.theme)\n const icons = createIcons(options.icons)\n const locale = createLocale(options.locale)\n const date = createDate(options.date, locale)\n const goTo = createGoTo(options.goTo, locale)\n\n function install (app: App) {\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name,\n }))\n }\n\n const appScope = effectScope()\n appScope.run(() => {\n theme.install(app)\n })\n app.onUnmount(() => appScope.stop())\n\n app.provide(DefaultsSymbol, defaults)\n app.provide(DisplaySymbol, display)\n app.provide(ThemeSymbol, theme)\n app.provide(IconSymbol, icons)\n app.provide(LocaleSymbol, locale)\n app.provide(DateOptionsSymbol, date.options)\n app.provide(DateAdapterSymbol, date.instance)\n app.provide(GoToSymbol, goTo)\n\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update()\n })\n } else {\n const { mount } = app\n app.mount = (...args) => {\n const vm = mount(...args)\n nextTick(() => display.update())\n app.mount = mount\n return vm\n }\n }\n }\n\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol),\n })\n },\n },\n })\n }\n }\n\n function unmount () {\n scope.stop()\n }\n\n return {\n install,\n unmount,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo,\n }\n })!\n}\n\nexport const version = __VUETIFY_VERSION__\ncreateVuetify.version = version\n\n// Vue's inject() can only be used in setup\nfunction inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -52,7 +52,7 @@ export const VDateInput = genericComponent()({
52
52
  const adapter = useDate();
53
53
  const {
54
54
  mobile
55
- } = useDisplay();
55
+ } = useDisplay(props);
56
56
  const {
57
57
  isFocused,
58
58
  focus,
@@ -102,7 +102,7 @@ export const VDateInput = genericComponent()({
102
102
  return;
103
103
  }
104
104
  const target = e.target;
105
- model.value = target.value === '' ? null : target.value;
105
+ model.value = adapter.isValid(target.value) ? target.value : null;
106
106
  }
107
107
  function onClick(e) {
108
108
  e.preventDefault();
@@ -126,10 +126,6 @@ export const VDateInput = genericComponent()({
126
126
  if (value != null) return;
127
127
  model.value = null;
128
128
  }
129
- function onUpdateMenuModel(isMenuOpen) {
130
- if (isMenuOpen) return;
131
- isEditingInput.value = false;
132
- }
133
129
  function onBlur() {
134
130
  blur();
135
131
 
@@ -162,7 +158,7 @@ export const VDateInput = genericComponent()({
162
158
  ...slots,
163
159
  default: () => _createVNode(_Fragment, null, [_createVNode(VMenu, {
164
160
  "modelValue": menu.value,
165
- "onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
161
+ "onUpdate:modelValue": $event => menu.value = $event,
166
162
  "activator": "parent",
167
163
  "min-width": "0",
168
164
  "eager": isFocused.value,
@@ -195,7 +191,6 @@ export const VDateInput = genericComponent()({
195
191
  }
196
192
  }
197
193
  emit('save', value);
198
- vDateInputRef.value?.blur();
199
194
  disabledActions.value = [];
200
195
  }
201
196
  return _createVNode(VDatePicker, _mergeProps(datePickerProps, {
@@ -1 +1 @@
1
- {"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeDisplayProps","useDisplay","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","Function","String","location","type","default","hideActions","placeholder","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","adapter","mobile","isFocused","focus","blur","model","multiple","Array","isArray","map","item","toJsDate","date","menu","isEditingInput","vDateInputRef","disabledActions","format","display","length","start","end","isValid","inputmode","undefined","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onUpdateMenuModel","isMenuOpen","onBlur","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","_Fragment","$event","_ref2","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> & {\n actions: VDateInputActionsSlot\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: [Function, String],\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n\n ...makeDisplayProps(),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), ['active', 'location', 'rounded']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: string) => true,\n cancel: () => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { mobile } = useDisplay()\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.multiple ? [] : null,\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = shallowRef(false)\n const isEditingInput = shallowRef(false)\n const vDateInputRef = ref()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly)\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n\n return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = target.value === '' ? null : target.value\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = true\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: string) {\n if (value != null) return\n\n model.value = null\n }\n\n function onUpdateMenuModel (isMenuOpen: boolean) {\n if (isMenuOpen) return\n\n isEditingInput.value = false\n }\n\n function onBlur () {\n blur()\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']))\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vDateInputRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ onBlur }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateDisplayModel }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n onUpdate:modelValue={ onUpdateMenuModel }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n vDateInputRef.value?.blur()\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vDateInputRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDateInput.js","names":["makeVConfirmEditProps","VConfirmEdit","makeVDatePickerProps","VDatePicker","VMenu","makeVTextFieldProps","VTextField","useDate","makeDisplayProps","useDisplay","makeFocusProps","useFocus","forwardRefs","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDateInputProps","displayFormat","Function","String","location","type","default","hideActions","placeholder","prependIcon","hideHeader","showAdjacentMonths","VDateInput","name","props","emits","save","value","cancel","val","setup","_ref","emit","slots","t","adapter","mobile","isFocused","focus","blur","model","multiple","Array","isArray","map","item","toJsDate","date","menu","isEditingInput","vDateInputRef","disabledActions","format","display","length","start","end","isValid","inputmode","undefined","isInteractive","disabled","readonly","isReadonly","onKeydown","e","key","target","onClick","preventDefault","stopPropagation","onCancel","onSave","onUpdateDisplayModel","onBlur","confirmEditProps","filterProps","datePickerProps","textFieldProps","_createVNode","_mergeProps","class","style","_Fragment","$event","_ref2","actions","proxyModel","isPristine","onUpdateModel"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Components\nimport { makeVConfirmEditProps, VConfirmEdit } from '@/components/VConfirmEdit/VConfirmEdit'\nimport { makeVDatePickerProps, VDatePicker } from '@/components/VDatePicker/VDatePicker'\nimport { VMenu } from '@/components/VMenu/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { StrategyProps } from '@/components/VOverlay/locationStrategies'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\n// Types\nexport type VDateInputActionsSlot = {\n save: () => void\n cancel: () => void\n isPristine: boolean\n}\n\nexport type VDateInputSlots = Omit<VTextFieldSlots, 'default'> & {\n actions: VDateInputActionsSlot\n default: never\n}\n\nexport const makeVDateInputProps = propsFactory({\n displayFormat: [Function, String],\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n\n ...makeDisplayProps(),\n ...makeFocusProps(),\n ...makeVConfirmEditProps({\n hideActions: true,\n }),\n ...makeVTextFieldProps({\n placeholder: 'mm/dd/yyyy',\n prependIcon: '$calendar',\n }),\n ...omit(makeVDatePickerProps({\n hideHeader: true,\n showAdjacentMonths: true,\n }), ['active', 'location', 'rounded']),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n save: (value: string) => true,\n cancel: () => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { mobile } = useDisplay(props)\n const { isFocused, focus, blur } = useFocus(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.multiple ? [] : null,\n val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val,\n val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val\n )\n\n const menu = shallowRef(false)\n const isEditingInput = shallowRef(false)\n const vDateInputRef = ref()\n const disabledActions = ref<typeof VConfirmEdit['props']['disabled']>(['save'])\n\n function format (date: unknown) {\n if (typeof props.displayFormat === 'function') {\n return props.displayFormat(date)\n }\n\n return adapter.format(date, props.displayFormat ?? 'keyboardDate')\n }\n\n const display = computed(() => {\n const value = wrapInArray(model.value)\n\n if (!value.length) return null\n\n if (props.multiple === true) {\n return t('$vuetify.datePicker.itemsSelected', value.length)\n }\n\n if (props.multiple === 'range') {\n const start = value[0]\n const end = value[value.length - 1]\n\n if (!adapter.isValid(start) || !adapter.isValid(end)) return ''\n\n return `${format(adapter.date(start))} - ${format(adapter.date(end))}`\n }\n\n return adapter.isValid(model.value) ? format(adapter.date(model.value)) : ''\n })\n\n const inputmode = computed(() => {\n if (!mobile.value) return undefined\n if (isEditingInput.value) return 'text'\n\n return 'none'\n })\n\n const isInteractive = computed(() => !props.disabled && !props.readonly)\n const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly)\n\n watch(menu, val => {\n if (val) return\n\n isEditingInput.value = false\n disabledActions.value = ['save']\n })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key !== 'Enter') return\n\n if (!menu.value || !isFocused.value) {\n menu.value = true\n\n return\n }\n\n const target = e.target as HTMLInputElement\n\n model.value = adapter.isValid(target.value) ? target.value : null\n }\n\n function onClick (e: MouseEvent) {\n e.preventDefault()\n e.stopPropagation()\n\n if (menu.value && mobile.value) {\n isEditingInput.value = true\n } else {\n menu.value = true\n }\n }\n\n function onCancel () {\n emit('cancel')\n menu.value = false\n isEditingInput.value = false\n }\n\n function onSave (value: string) {\n emit('save', value)\n menu.value = false\n }\n\n function onUpdateDisplayModel (value: string) {\n if (value != null) return\n\n model.value = null\n }\n\n function onBlur () {\n blur()\n\n // When in mobile mode and editing is done (due to keyboard dismissal), close the menu\n if (mobile.value && isEditingInput.value && !isFocused.value) {\n menu.value = false\n isEditingInput.value = false\n }\n }\n\n useRender(() => {\n const confirmEditProps = VConfirmEdit.filterProps(props)\n const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']))\n const textFieldProps = VTextField.filterProps(props)\n\n return (\n <VTextField\n ref={ vDateInputRef }\n { ...textFieldProps }\n class={ props.class }\n style={ props.style }\n modelValue={ display.value }\n inputmode={ inputmode.value }\n readonly={ isReadonly.value }\n onKeydown={ isInteractive.value ? onKeydown : undefined }\n focused={ menu.value || isFocused.value }\n onFocus={ focus }\n onBlur={ onBlur }\n onClick:control={ isInteractive.value ? onClick : undefined }\n onClick:prepend={ isInteractive.value ? onClick : undefined }\n onUpdate:modelValue={ onUpdateDisplayModel }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n min-width=\"0\"\n eager={ isFocused.value }\n location={ props.location }\n closeOnContentClick={ false }\n openOnClick={ false }\n >\n <VConfirmEdit\n { ...confirmEditProps }\n v-model={ model.value }\n disabled={ disabledActions.value }\n onSave={ onSave }\n onCancel={ onCancel }\n >\n {{\n default: ({ actions, model: proxyModel, save, cancel, isPristine }) => {\n function onUpdateModel (value: string) {\n if (!props.hideActions) {\n proxyModel.value = value\n } else {\n model.value = value\n\n if (!props.multiple) {\n menu.value = false\n }\n }\n\n emit('save', value)\n\n disabledActions.value = []\n }\n\n return (\n <VDatePicker\n { ...datePickerProps }\n modelValue={ props.hideActions ? model.value : proxyModel.value }\n onUpdate:modelValue={ value => onUpdateModel(value) }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n {{\n actions: !props.hideActions ? () => slots.actions?.({ save, cancel, isPristine }) ?? actions() : undefined,\n }}\n </VDatePicker>\n )\n },\n }}\n </VConfirmEdit>\n </VMenu>\n\n { slots.default?.() }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({}, vDateInputRef)\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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","ignoreList":[]}
@@ -151,7 +151,8 @@ export const VFileUpload = genericComponent()({
151
151
  'v-file-upload--clickable': !hasBrowse,
152
152
  'v-file-upload--disabled': props.disabled,
153
153
  'v-file-upload--dragging': dragOver.value
154
- }, densityClasses.value],
154
+ }, densityClasses.value, props.class],
155
+ "style": [props.style],
155
156
  "onDragleave": onDragLeave,
156
157
  "onDragover": onDragOver,
157
158
  "onDrop": onDrop,
@@ -1 +1 @@
1
- {"version":3,"file":"VFileUpload.js","names":["VFileUploadItem","VBtn","VDefaultsProvider","makeVDividerProps","VDivider","VIcon","VOverlay","makeVSheetProps","VSheet","makeDelayProps","makeDensityProps","useDensity","IconValue","useLocale","useProxiedModel","onMounted","onUnmounted","ref","shallowRef","filterInputAttrs","genericComponent","pick","propsFactory","useRender","wrapInArray","makeVFileUploadProps","browseText","type","String","default","dividerText","title","subtitle","icon","modelValue","Array","Object","validator","val","every","v","clearable","Boolean","disabled","hideBrowse","multiple","scrim","showSize","name","length","VFileUpload","inheritAttrs","props","emits","files","setup","_ref","attrs","slots","t","densityClasses","model","isArray","dragOver","vSheetRef","inputRef","value","$el","addEventListener","onDragOver","onDrop","removeEventListener","e","preventDefault","stopImmediatePropagation","onDragLeave","from","dataTransfer","array","slice","file","some","f","push","onClick","click","onClickRemove","index","newValue","filter","_","i","hasTitle","hasIcon","hasBrowse","browse","density","cardProps","filterProps","dividerProps","rootAttrs","inputAttrs","inputNode","_createVNode","_mergeProps","target","_Fragment","undefined","divider","readonly","size","text","variant","input","map","slotProps","onClick:remove","item"],"sources":["../../../src/labs/VFileUpload/VFileUpload.tsx"],"sourcesContent":["// Styles\nimport './VFileUpload.sass'\n\n// Components\nimport { VFileUploadItem } from './VFileUploadItem'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVDividerProps, VDivider } from '@/components/VDivider/VDivider'\nimport { VIcon } from '@/components/VIcon/VIcon'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { makeDelayProps } from '@/composables/delay'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, onUnmounted, ref, shallowRef } from 'vue'\nimport { filterInputAttrs, genericComponent, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\nexport type VFileUploadSlots = {\n browse: {\n props: { onClick: (e: MouseEvent) => void }\n }\n default: never\n icon: never\n input: {\n inputNode: VNode\n }\n item: {\n file: File\n props: { 'onClick:remove': () => void }\n }\n title: never\n divider: never\n}\n\nexport const makeVFileUploadProps = propsFactory({\n browseText: {\n type: String,\n default: '$vuetify.fileUpload.browse',\n },\n dividerText: {\n type: String,\n default: '$vuetify.fileUpload.divider',\n },\n title: {\n type: String,\n default: '$vuetify.fileUpload.title',\n },\n subtitle: String,\n icon: {\n type: IconValue,\n default: '$upload',\n },\n modelValue: {\n type: [Array, Object] as PropType<File[] | File>,\n default: null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n clearable: Boolean,\n disabled: Boolean,\n hideBrowse: Boolean,\n multiple: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n showSize: Boolean,\n name: String,\n\n ...makeDelayProps(),\n ...makeDensityProps(),\n ...pick(makeVDividerProps({\n length: 150,\n }), ['length', 'thickness', 'opacity']),\n ...makeVSheetProps(),\n}, 'VFileUpload')\n\nexport const VFileUpload = genericComponent<VFileUploadSlots>()({\n name: 'VFileUpload',\n\n inheritAttrs: false,\n\n props: makeVFileUploadProps(),\n\n emits: {\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { t } = useLocale()\n const { densityClasses } = useDensity(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (props.multiple || Array.isArray(props.modelValue)) ? val : val[0],\n )\n\n const dragOver = shallowRef(false)\n const vSheetRef = ref<InstanceType<typeof VSheet> | null>(null)\n const inputRef = ref<HTMLInputElement | null>(null)\n\n onMounted(() => {\n vSheetRef.value?.$el.addEventListener('dragover', onDragOver)\n vSheetRef.value?.$el.addEventListener('drop', onDrop)\n })\n\n onUnmounted(() => {\n vSheetRef.value?.$el.removeEventListener('dragover', onDragOver)\n vSheetRef.value?.$el.removeEventListener('drop', onDrop)\n })\n\n function onDragOver (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n dragOver.value = true\n }\n\n function onDragLeave (e: DragEvent) {\n e.preventDefault()\n dragOver.value = false\n }\n\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n dragOver.value = false\n\n const files = Array.from(e.dataTransfer?.files ?? [])\n\n if (!files.length) return\n\n if (!props.multiple) {\n model.value = [files[0]]\n\n return\n }\n\n const array = model.value.slice()\n\n for (const file of files) {\n if (!array.some(f => f.name === file.name)) {\n array.push(file)\n }\n }\n\n model.value = array\n }\n\n function onClick () {\n inputRef.value?.click()\n }\n\n function onClickRemove (index: number) {\n const newValue = model.value.filter((_, i) => i !== index)\n model.value = newValue\n\n if (newValue.length > 0 || !inputRef.value) return\n\n inputRef.value.value = ''\n }\n\n useRender(() => {\n const hasTitle = !!(slots.title || props.title)\n const hasIcon = !!(slots.icon || props.icon)\n const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'))\n const cardProps = VSheet.filterProps(props)\n const dividerProps = VDivider.filterProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n <input\n ref={ inputRef }\n type=\"file\"\n disabled={ props.disabled }\n multiple={ props.multiple }\n name={ props.name }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n <VSheet\n ref={ vSheetRef }\n { ...cardProps }\n class={[\n 'v-file-upload',\n {\n 'v-file-upload--clickable': !hasBrowse,\n 'v-file-upload--disabled': props.disabled,\n 'v-file-upload--dragging': dragOver.value,\n },\n densityClasses.value,\n ]}\n onDragleave={ onDragLeave }\n onDragover={ onDragOver }\n onDrop={ onDrop }\n onClick={ !hasBrowse ? onClick : undefined }\n { ...rootAttrs }\n >\n { hasIcon && (\n <div key=\"icon\" class=\"v-file-upload-icon\">\n { !slots.icon ? (\n <VIcon\n key=\"icon-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"icon-defaults\"\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.icon() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-file-upload-title\">\n { slots.title?.() ?? t(props.title) }\n </div>\n )}\n\n { props.density === 'default' && (\n <>\n <div key=\"upload-divider\" class=\"v-file-upload-divider\">\n { slots.divider?.() ?? (\n <VDivider { ...dividerProps }>\n { t(props.dividerText) }\n </VDivider>\n )}\n </div>\n\n { hasBrowse && (\n <>\n { !slots.browse ? (\n <VBtn\n readonly={ props.disabled }\n size=\"large\"\n text={ t(props.browseText) }\n variant=\"tonal\"\n onClick={ onClick }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n readonly: props.disabled,\n size: 'large',\n text: t(props.browseText),\n variant: 'tonal',\n },\n }}\n >\n { slots.browse({ props: { onClick } }) }\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { props.subtitle && (\n <div class=\"v-file-upload-subtitle\">\n { props.subtitle }\n </div>\n )}\n </>\n )}\n\n <VOverlay\n model-value={ dragOver.value }\n contained\n scrim={ props.scrim }\n />\n\n { slots.input?.({ inputNode }) ?? inputNode }\n </VSheet>\n\n { model.value.length > 0 && (\n <div class=\"v-file-upload-items\">\n { model.value.map((file, i) => {\n const slotProps = {\n file,\n props: {\n 'onClick:remove': () => onClickRemove(i),\n },\n }\n\n return (\n <VDefaultsProvider\n key={ i }\n defaults={{\n VFileUploadItem: {\n file,\n clearable: props.clearable,\n disabled: props.disabled,\n showSize: props.showSize,\n },\n }}\n >\n { slots.item?.(slotProps) ?? (\n <VFileUploadItem\n key={ i }\n onClick:remove={ () => onClickRemove(i) }\n v-slots={ slots }\n />\n )}\n </VDefaultsProvider>\n )\n })}\n </div>\n )}\n </>\n )\n })\n },\n})\n\nexport type VFileUpload = InstanceType<typeof VFileUpload>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VFileUpload.js","names":["VFileUploadItem","VBtn","VDefaultsProvider","makeVDividerProps","VDivider","VIcon","VOverlay","makeVSheetProps","VSheet","makeDelayProps","makeDensityProps","useDensity","IconValue","useLocale","useProxiedModel","onMounted","onUnmounted","ref","shallowRef","filterInputAttrs","genericComponent","pick","propsFactory","useRender","wrapInArray","makeVFileUploadProps","browseText","type","String","default","dividerText","title","subtitle","icon","modelValue","Array","Object","validator","val","every","v","clearable","Boolean","disabled","hideBrowse","multiple","scrim","showSize","name","length","VFileUpload","inheritAttrs","props","emits","files","setup","_ref","attrs","slots","t","densityClasses","model","isArray","dragOver","vSheetRef","inputRef","value","$el","addEventListener","onDragOver","onDrop","removeEventListener","e","preventDefault","stopImmediatePropagation","onDragLeave","from","dataTransfer","array","slice","file","some","f","push","onClick","click","onClickRemove","index","newValue","filter","_","i","hasTitle","hasIcon","hasBrowse","browse","density","cardProps","filterProps","dividerProps","rootAttrs","inputAttrs","inputNode","_createVNode","_mergeProps","target","_Fragment","class","style","undefined","divider","readonly","size","text","variant","input","map","slotProps","onClick:remove","item"],"sources":["../../../src/labs/VFileUpload/VFileUpload.tsx"],"sourcesContent":["// Styles\nimport './VFileUpload.sass'\n\n// Components\nimport { VFileUploadItem } from './VFileUploadItem'\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\nimport { makeVDividerProps, VDivider } from '@/components/VDivider/VDivider'\nimport { VIcon } from '@/components/VIcon/VIcon'\nimport { VOverlay } from '@/components/VOverlay/VOverlay'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { makeDelayProps } from '@/composables/delay'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { onMounted, onUnmounted, ref, shallowRef } from 'vue'\nimport { filterInputAttrs, genericComponent, pick, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\nexport type VFileUploadSlots = {\n browse: {\n props: { onClick: (e: MouseEvent) => void }\n }\n default: never\n icon: never\n input: {\n inputNode: VNode\n }\n item: {\n file: File\n props: { 'onClick:remove': () => void }\n }\n title: never\n divider: never\n}\n\nexport const makeVFileUploadProps = propsFactory({\n browseText: {\n type: String,\n default: '$vuetify.fileUpload.browse',\n },\n dividerText: {\n type: String,\n default: '$vuetify.fileUpload.divider',\n },\n title: {\n type: String,\n default: '$vuetify.fileUpload.title',\n },\n subtitle: String,\n icon: {\n type: IconValue,\n default: '$upload',\n },\n modelValue: {\n type: [Array, Object] as PropType<File[] | File>,\n default: null,\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n clearable: Boolean,\n disabled: Boolean,\n hideBrowse: Boolean,\n multiple: Boolean,\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n showSize: Boolean,\n name: String,\n\n ...makeDelayProps(),\n ...makeDensityProps(),\n ...pick(makeVDividerProps({\n length: 150,\n }), ['length', 'thickness', 'opacity']),\n ...makeVSheetProps(),\n}, 'VFileUpload')\n\nexport const VFileUpload = genericComponent<VFileUploadSlots>()({\n name: 'VFileUpload',\n\n inheritAttrs: false,\n\n props: makeVFileUploadProps(),\n\n emits: {\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { t } = useLocale()\n const { densityClasses } = useDensity(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n props.modelValue,\n val => wrapInArray(val),\n val => (props.multiple || Array.isArray(props.modelValue)) ? val : val[0],\n )\n\n const dragOver = shallowRef(false)\n const vSheetRef = ref<InstanceType<typeof VSheet> | null>(null)\n const inputRef = ref<HTMLInputElement | null>(null)\n\n onMounted(() => {\n vSheetRef.value?.$el.addEventListener('dragover', onDragOver)\n vSheetRef.value?.$el.addEventListener('drop', onDrop)\n })\n\n onUnmounted(() => {\n vSheetRef.value?.$el.removeEventListener('dragover', onDragOver)\n vSheetRef.value?.$el.removeEventListener('drop', onDrop)\n })\n\n function onDragOver (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n dragOver.value = true\n }\n\n function onDragLeave (e: DragEvent) {\n e.preventDefault()\n dragOver.value = false\n }\n\n function onDrop (e: DragEvent) {\n e.preventDefault()\n e.stopImmediatePropagation()\n dragOver.value = false\n\n const files = Array.from(e.dataTransfer?.files ?? [])\n\n if (!files.length) return\n\n if (!props.multiple) {\n model.value = [files[0]]\n\n return\n }\n\n const array = model.value.slice()\n\n for (const file of files) {\n if (!array.some(f => f.name === file.name)) {\n array.push(file)\n }\n }\n\n model.value = array\n }\n\n function onClick () {\n inputRef.value?.click()\n }\n\n function onClickRemove (index: number) {\n const newValue = model.value.filter((_, i) => i !== index)\n model.value = newValue\n\n if (newValue.length > 0 || !inputRef.value) return\n\n inputRef.value.value = ''\n }\n\n useRender(() => {\n const hasTitle = !!(slots.title || props.title)\n const hasIcon = !!(slots.icon || props.icon)\n const hasBrowse = !!(!props.hideBrowse && (slots.browse || props.density === 'default'))\n const cardProps = VSheet.filterProps(props)\n const dividerProps = VDivider.filterProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n const inputNode = (\n <input\n ref={ inputRef }\n type=\"file\"\n disabled={ props.disabled }\n multiple={ props.multiple }\n name={ props.name }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n }}\n { ...inputAttrs }\n />\n )\n\n return (\n <>\n <VSheet\n ref={ vSheetRef }\n { ...cardProps }\n class={[\n 'v-file-upload',\n {\n 'v-file-upload--clickable': !hasBrowse,\n 'v-file-upload--disabled': props.disabled,\n 'v-file-upload--dragging': dragOver.value,\n },\n densityClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n ]}\n onDragleave={ onDragLeave }\n onDragover={ onDragOver }\n onDrop={ onDrop }\n onClick={ !hasBrowse ? onClick : undefined }\n { ...rootAttrs }\n >\n { hasIcon && (\n <div key=\"icon\" class=\"v-file-upload-icon\">\n { !slots.icon ? (\n <VIcon\n key=\"icon-icon\"\n icon={ props.icon }\n />\n ) : (\n <VDefaultsProvider\n key=\"icon-defaults\"\n defaults={{\n VIcon: {\n icon: props.icon,\n },\n }}\n >\n { slots.icon() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-file-upload-title\">\n { slots.title?.() ?? t(props.title) }\n </div>\n )}\n\n { props.density === 'default' && (\n <>\n <div key=\"upload-divider\" class=\"v-file-upload-divider\">\n { slots.divider?.() ?? (\n <VDivider { ...dividerProps }>\n { t(props.dividerText) }\n </VDivider>\n )}\n </div>\n\n { hasBrowse && (\n <>\n { !slots.browse ? (\n <VBtn\n readonly={ props.disabled }\n size=\"large\"\n text={ t(props.browseText) }\n variant=\"tonal\"\n onClick={ onClick }\n />\n ) : (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n readonly: props.disabled,\n size: 'large',\n text: t(props.browseText),\n variant: 'tonal',\n },\n }}\n >\n { slots.browse({ props: { onClick } }) }\n </VDefaultsProvider>\n )}\n </>\n )}\n\n { props.subtitle && (\n <div class=\"v-file-upload-subtitle\">\n { props.subtitle }\n </div>\n )}\n </>\n )}\n\n <VOverlay\n model-value={ dragOver.value }\n contained\n scrim={ props.scrim }\n />\n\n { slots.input?.({ inputNode }) ?? inputNode }\n </VSheet>\n\n { model.value.length > 0 && (\n <div class=\"v-file-upload-items\">\n { model.value.map((file, i) => {\n const slotProps = {\n file,\n props: {\n 'onClick:remove': () => onClickRemove(i),\n },\n }\n\n return (\n <VDefaultsProvider\n key={ i }\n defaults={{\n VFileUploadItem: {\n file,\n clearable: props.clearable,\n disabled: props.disabled,\n showSize: props.showSize,\n },\n }}\n >\n { slots.item?.(slotProps) ?? (\n <VFileUploadItem\n key={ i }\n onClick:remove={ () => onClickRemove(i) }\n v-slots={ slots }\n />\n )}\n </VDefaultsProvider>\n )\n })}\n </div>\n )}\n </>\n )\n })\n },\n})\n\nexport type VFileUpload = InstanceType<typeof VFileUpload>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,eAAe;AAAA,SACfC,IAAI;AAAA,SACJC,iBAAiB;AAAA,SACjBC,iBAAiB,EAAEC,QAAQ;AAAA,SAC3BC,KAAK;AAAA,SACLC,QAAQ;AAAA,SACRC,eAAe,EAAEC,MAAM,6CAEhC;AAAA,SACSC,cAAc;AAAA,SACdC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS;AAAA,SACTC,SAAS;AAAA,SACTC,eAAe,6CAExB;AACA,SAASC,SAAS,EAAEC,WAAW,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACpDC,gBAAgB,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,+BAEvF;AAoBA,OAAO,MAAMC,oBAAoB,GAAGH,YAAY,CAAC;EAC/CI,UAAU,EAAE;IACVC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,WAAW,EAAE;IACXH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDE,KAAK,EAAE;IACLJ,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDG,QAAQ,EAAEJ,MAAM;EAChBK,IAAI,EAAE;IACJN,IAAI,EAAEf,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDK,UAAU,EAAE;IACVP,IAAI,EAAE,CAACQ,KAAK,EAAEC,MAAM,CAA4B;IAChDP,OAAO,EAAE,IAAI;IACbQ,SAAS,EAAGC,GAAQ,IAAK;MACvB,OAAOd,WAAW,CAACc,GAAG,CAAC,CAACC,KAAK,CAACC,CAAC,IAAIA,CAAC,IAAI,IAAI,IAAI,OAAOA,CAAC,KAAK,QAAQ,CAAC;IACxE;EACF,CAAC;EACDC,SAAS,EAAEC,OAAO;EAClBC,QAAQ,EAAED,OAAO;EACjBE,UAAU,EAAEF,OAAO;EACnBG,QAAQ,EAAEH,OAAO;EACjBI,KAAK,EAAE;IACLnB,IAAI,EAAE,CAACe,OAAO,EAAEd,MAAM,CAAC;IACvBC,OAAO,EAAE;EACX,CAAC;EACDkB,QAAQ,EAAEL,OAAO;EACjBM,IAAI,EAAEpB,MAAM;EAEZ,GAAGnB,cAAc,CAAC,CAAC;EACnB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGW,IAAI,CAAClB,iBAAiB,CAAC;IACxB8C,MAAM,EAAE;EACV,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;EACvC,GAAG1C,eAAe,CAAC;AACrB,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAM2C,WAAW,GAAG9B,gBAAgB,CAAmB,CAAC,CAAC;EAC9D4B,IAAI,EAAE,aAAa;EAEnBG,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAE3B,oBAAoB,CAAC,CAAC;EAE7B4B,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAa,IAAK;EAC1C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAM;MAAEG;IAAE,CAAC,GAAG9C,SAAS,CAAC,CAAC;IACzB,MAAM;MAAE+C;IAAe,CAAC,GAAGjD,UAAU,CAACyC,KAAK,CAAC;IAC5C,MAAMS,KAAK,GAAG/C,eAAe,CAC3BsC,KAAK,EACL,YAAY,EACZA,KAAK,CAAClB,UAAU,EAChBI,GAAG,IAAId,WAAW,CAACc,GAAG,CAAC,EACvBA,GAAG,IAAKc,KAAK,CAACP,QAAQ,IAAIV,KAAK,CAAC2B,OAAO,CAACV,KAAK,CAAClB,UAAU,CAAC,GAAII,GAAG,GAAGA,GAAG,CAAC,CAAC,CAC1E,CAAC;IAED,MAAMyB,QAAQ,GAAG7C,UAAU,CAAC,KAAK,CAAC;IAClC,MAAM8C,SAAS,GAAG/C,GAAG,CAAqC,IAAI,CAAC;IAC/D,MAAMgD,QAAQ,GAAGhD,GAAG,CAA0B,IAAI,CAAC;IAEnDF,SAAS,CAAC,MAAM;MACdiD,SAAS,CAACE,KAAK,EAAEC,GAAG,CAACC,gBAAgB,CAAC,UAAU,EAAEC,UAAU,CAAC;MAC7DL,SAAS,CAACE,KAAK,EAAEC,GAAG,CAACC,gBAAgB,CAAC,MAAM,EAAEE,MAAM,CAAC;IACvD,CAAC,CAAC;IAEFtD,WAAW,CAAC,MAAM;MAChBgD,SAAS,CAACE,KAAK,EAAEC,GAAG,CAACI,mBAAmB,CAAC,UAAU,EAAEF,UAAU,CAAC;MAChEL,SAAS,CAACE,KAAK,EAAEC,GAAG,CAACI,mBAAmB,CAAC,MAAM,EAAED,MAAM,CAAC;IAC1D,CAAC,CAAC;IAEF,SAASD,UAAUA,CAAEG,CAAY,EAAE;MACjCA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBD,CAAC,CAACE,wBAAwB,CAAC,CAAC;MAC5BX,QAAQ,CAACG,KAAK,GAAG,IAAI;IACvB;IAEA,SAASS,WAAWA,CAAEH,CAAY,EAAE;MAClCA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBV,QAAQ,CAACG,KAAK,GAAG,KAAK;IACxB;IAEA,SAASI,MAAMA,CAAEE,CAAY,EAAE;MAC7BA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBD,CAAC,CAACE,wBAAwB,CAAC,CAAC;MAC5BX,QAAQ,CAACG,KAAK,GAAG,KAAK;MAEtB,MAAMZ,KAAK,GAAGnB,KAAK,CAACyC,IAAI,CAACJ,CAAC,CAACK,YAAY,EAAEvB,KAAK,IAAI,EAAE,CAAC;MAErD,IAAI,CAACA,KAAK,CAACL,MAAM,EAAE;MAEnB,IAAI,CAACG,KAAK,CAACP,QAAQ,EAAE;QACnBgB,KAAK,CAACK,KAAK,GAAG,CAACZ,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB;MACF;MAEA,MAAMwB,KAAK,GAAGjB,KAAK,CAACK,KAAK,CAACa,KAAK,CAAC,CAAC;MAEjC,KAAK,MAAMC,IAAI,IAAI1B,KAAK,EAAE;QACxB,IAAI,CAACwB,KAAK,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAClC,IAAI,KAAKgC,IAAI,CAAChC,IAAI,CAAC,EAAE;UAC1C8B,KAAK,CAACK,IAAI,CAACH,IAAI,CAAC;QAClB;MACF;MAEAnB,KAAK,CAACK,KAAK,GAAGY,KAAK;IACrB;IAEA,SAASM,OAAOA,CAAA,EAAI;MAClBnB,QAAQ,CAACC,KAAK,EAAEmB,KAAK,CAAC,CAAC;IACzB;IAEA,SAASC,aAAaA,CAAEC,KAAa,EAAE;MACrC,MAAMC,QAAQ,GAAG3B,KAAK,CAACK,KAAK,CAACuB,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,KAAKJ,KAAK,CAAC;MAC1D1B,KAAK,CAACK,KAAK,GAAGsB,QAAQ;MAEtB,IAAIA,QAAQ,CAACvC,MAAM,GAAG,CAAC,IAAI,CAACgB,QAAQ,CAACC,KAAK,EAAE;MAE5CD,QAAQ,CAACC,KAAK,CAACA,KAAK,GAAG,EAAE;IAC3B;IAEA3C,SAAS,CAAC,MAAM;MACd,MAAMqE,QAAQ,GAAG,CAAC,EAAElC,KAAK,CAAC3B,KAAK,IAAIqB,KAAK,CAACrB,KAAK,CAAC;MAC/C,MAAM8D,OAAO,GAAG,CAAC,EAAEnC,KAAK,CAACzB,IAAI,IAAImB,KAAK,CAACnB,IAAI,CAAC;MAC5C,MAAM6D,SAAS,GAAG,CAAC,EAAE,CAAC1C,KAAK,CAACR,UAAU,KAAKc,KAAK,CAACqC,MAAM,IAAI3C,KAAK,CAAC4C,OAAO,KAAK,SAAS,CAAC,CAAC;MACxF,MAAMC,SAAS,GAAGzF,MAAM,CAAC0F,WAAW,CAAC9C,KAAK,CAAC;MAC3C,MAAM+C,YAAY,GAAG/F,QAAQ,CAAC8F,WAAW,CAAC9C,KAAK,CAAC;MAChD,MAAM,CAACgD,SAAS,EAAEC,UAAU,CAAC,GAAGlF,gBAAgB,CAACsC,KAAK,CAAC;MAEvD,MAAM6C,SAAS,GAAAC,YAAA,UAAAC,WAAA;QAAA,OAELvC,QAAQ;QAAA;QAAA,YAEHb,KAAK,CAACT,QAAQ;QAAA,YACdS,KAAK,CAACP,QAAQ;QAAA,QAClBO,KAAK,CAACJ,IAAI;QAAA,YACNwB,CAAC,IAAI;UACd,IAAI,CAACA,CAAC,CAACiC,MAAM,EAAE;UAEf,MAAMA,MAAM,GAAGjC,CAAC,CAACiC,MAA0B;UAC3C5C,KAAK,CAACK,KAAK,GAAG,CAAC,IAAGuC,MAAM,CAACnD,KAAK,IAAI,EAAE,EAAC;QACvC;MAAC,GACI+C,UAAU,QAElB;MAED,OAAAE,YAAA,CAAAG,SAAA,SAAAH,YAAA,CAAA/F,MAAA,EAAAgG,WAAA;QAAA,OAGYxC;MAAS,GACViC,SAAS;QAAA,SACP,CACL,eAAe,EACf;UACE,0BAA0B,EAAE,CAACH,SAAS;UACtC,yBAAyB,EAAE1C,KAAK,CAACT,QAAQ;UACzC,yBAAyB,EAAEoB,QAAQ,CAACG;QACtC,CAAC,EACDN,cAAc,CAACM,KAAK,EACpBd,KAAK,CAACuD,KAAK,CACZ;QAAA,SACM,CACLvD,KAAK,CAACwD,KAAK,CACZ;QAAA,eACajC,WAAW;QAAA,cACZN,UAAU;QAAA,UACdC,MAAM;QAAA,WACL,CAACwB,SAAS,GAAGV,OAAO,GAAGyB;MAAS,GACrCT,SAAS;QAAAvE,OAAA,EAAAA,CAAA,MAEZgE,OAAO,IAAAU,YAAA;UAAA;UAAA;QAAA,IAEH,CAAC7C,KAAK,CAACzB,IAAI,GAAAsE,YAAA,CAAAlG,KAAA;UAAA;UAAA,QAGF+C,KAAK,CAACnB;QAAI,WAAAsE,YAAA,CAAArG,iBAAA;UAAA;UAAA,YAKP;YACRG,KAAK,EAAE;cACL4B,IAAI,EAAEmB,KAAK,CAACnB;YACd;UACF;QAAC;UAAAJ,OAAA,EAAAA,CAAA,MAEC6B,KAAK,CAACzB,IAAI,CAAC,CAAC;QAAA,EAEjB,EAEJ,EAEC2D,QAAQ,IAAAW,YAAA;UAAA;UAAA;QAAA,IAEJ7C,KAAK,CAAC3B,KAAK,GAAG,CAAC,IAAI4B,CAAC,CAACP,KAAK,CAACrB,KAAK,CAAC,EAEtC,EAECqB,KAAK,CAAC4C,OAAO,KAAK,SAAS,IAAAO,YAAA,CAAAG,SAAA,SAAAH,YAAA;UAAA;UAAA;QAAA,IAGrB7C,KAAK,CAACoD,OAAO,GAAG,CAAC,IAAAP,YAAA,CAAAnG,QAAA,EACF+F,YAAY;UAAAtE,OAAA,EAAAA,CAAA,MACvB8B,CAAC,CAACP,KAAK,CAACtB,WAAW,CAAC;QAAA,EAEzB,IAGDgE,SAAS,IAAAS,YAAA,CAAAG,SAAA,SAEL,CAAChD,KAAK,CAACqC,MAAM,GAAAQ,YAAA,CAAAtG,IAAA;UAAA,YAEAmD,KAAK,CAACT,QAAQ;UAAA;UAAA,QAElBgB,CAAC,CAACP,KAAK,CAAC1B,UAAU,CAAC;UAAA;UAAA,WAEhB0D;QAAO,WAAAmB,YAAA,CAAArG,iBAAA;UAAA,YAIP;YACRD,IAAI,EAAE;cACJ8G,QAAQ,EAAE3D,KAAK,CAACT,QAAQ;cACxBqE,IAAI,EAAE,OAAO;cACbC,IAAI,EAAEtD,CAAC,CAACP,KAAK,CAAC1B,UAAU,CAAC;cACzBwF,OAAO,EAAE;YACX;UACF;QAAC;UAAArF,OAAA,EAAAA,CAAA,MAEC6B,KAAK,CAACqC,MAAM,CAAC;YAAE3C,KAAK,EAAE;cAAEgC;YAAQ;UAAE,CAAC,CAAC;QAAA,EAEzC,EAEJ,EAEChC,KAAK,CAACpB,QAAQ,IAAAuE,YAAA;UAAA;QAAA,IAEVnD,KAAK,CAACpB,QAAQ,EAEnB,EAEJ,EAAAuE,YAAA,CAAAjG,QAAA;UAAA,eAGeyD,QAAQ,CAACG,KAAK;UAAA;UAAA,SAEpBd,KAAK,CAACN;QAAK,UAGnBY,KAAK,CAACyD,KAAK,GAAG;UAAEb;QAAU,CAAC,CAAC,IAAIA,SAAS;MAAA,IAG3CzC,KAAK,CAACK,KAAK,CAACjB,MAAM,GAAG,CAAC,IAAAsD,YAAA;QAAA;MAAA,IAElB1C,KAAK,CAACK,KAAK,CAACkD,GAAG,CAAC,CAACpC,IAAI,EAAEW,CAAC,KAAK;QAC7B,MAAM0B,SAAS,GAAG;UAChBrC,IAAI;UACJ5B,KAAK,EAAE;YACL,gBAAgB,EAAEkE,CAAA,KAAMhC,aAAa,CAACK,CAAC;UACzC;QACF,CAAC;QAED,OAAAY,YAAA,CAAArG,iBAAA;UAAA,OAEUyF,CAAC;UAAA,YACG;YACR3F,eAAe,EAAE;cACfgF,IAAI;cACJvC,SAAS,EAAEW,KAAK,CAACX,SAAS;cAC1BE,QAAQ,EAAES,KAAK,CAACT,QAAQ;cACxBI,QAAQ,EAAEK,KAAK,CAACL;YAClB;UACF;QAAC;UAAAlB,OAAA,EAAAA,CAAA,MAEC6B,KAAK,CAAC6D,IAAI,GAAGF,SAAS,CAAC,IAAAd,YAAA,CAAAvG,eAAA;YAAA,OAEf2F,CAAC;YAAA,kBACU2B,CAAA,KAAMhC,aAAa,CAACK,CAAC;UAAC,GAC7BjC,KAAK,CAElB;QAAA;MAGP,CAAC,CAAC,EAEL;IAGP,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ComponentInternalInstance, ComponentPublicInstance, ComputedGetter, InjectionKey, PropType, Ref, ToRefs, VNode, VNodeArrayChildren, VNodeChild, WatchOptions } from 'vue';
1
+ import type { ComponentInternalInstance, ComponentPublicInstance, ComputedGetter, InjectionKey, PropType, Ref, ToRefs, VNode, VNodeArrayChildren, VNodeChild } from 'vue';
2
2
  export declare function getNestedValue(obj: any, path: (string | number)[], fallback?: any): any;
3
3
  export declare function deepEqual(a: any, b: any): boolean;
4
4
  export declare function getObjectValueByPath(obj: any, path?: string | null, fallback?: any): any;
@@ -109,7 +109,6 @@ export declare function noop(): void;
109
109
  export declare function matchesSelector(el: Element | undefined, selector: string): boolean | null;
110
110
  export declare function ensureValidVNode(vnodes: VNodeArrayChildren): VNodeArrayChildren | null;
111
111
  export declare function defer(timeout: number, cb: () => void): () => void;
112
- export declare function eagerComputed<T>(fn: () => T, options?: WatchOptions): Readonly<Ref<T>>;
113
112
  export declare function isClickInsideElement(event: MouseEvent, targetDiv: HTMLElement): boolean;
114
113
  export type TemplateRef = {
115
114
  (target: Element | ComponentPublicInstance | null): void;
@@ -4,7 +4,7 @@ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a),
4
4
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
5
5
  function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
6
6
  // Utilities
7
- import { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue';
7
+ import { capitalize, Comment, computed, Fragment, isVNode, reactive, shallowRef, toRefs, unref, watchEffect } from 'vue';
8
8
  import { IN_BROWSER } from "./globals.js"; // Types
9
9
  export function getNestedValue(obj, path, fallback) {
10
10
  const last = path.length - 1;
@@ -488,16 +488,6 @@ export function defer(timeout, cb) {
488
488
  const timeoutId = window.setTimeout(cb, timeout);
489
489
  return () => window.clearTimeout(timeoutId);
490
490
  }
491
- export function eagerComputed(fn, options) {
492
- const result = shallowRef();
493
- watchEffect(() => {
494
- result.value = fn();
495
- }, {
496
- flush: 'sync',
497
- ...options
498
- });
499
- return readonly(result);
500
- }
501
491
  export function isClickInsideElement(event, targetDiv) {
502
492
  const mouseX = event.clientX;
503
493
  const mouseY = event.clientY;