@vuetify/nightly 3.7.19-master.2025-03-27 → 3.7.19-master.2025-03-29

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.19-master.2025-03-27
2
+ * Vuetify v3.7.19-master.2025-03-29
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2123,8 +2123,8 @@ if(d.install(e),e.provide(kt,u),e.provide(hn,c),e.provide(Va,d),e.provide(Ot,v),
2123
2123
  else{const{mount:a}=e
2124
2124
  e.mount=function(){const l=a(...arguments)
2125
2125
  return t.nextTick((()=>c.update())),e.mount=a,l}}St.reset(),("boolean"!=typeof __VUE_OPTIONS_API__||__VUE_OPTIONS_API__)&&e.mixin({computed:{$vuetify(){return t.reactive({defaults:rf.call(this,kt),display:rf.call(this,hn),theme:rf.call(this,Va),icons:rf.call(this,Ot),locale:rf.call(this,ma),date:rf.call(this,fu)})}}})},defaults:u,display:c,theme:d,icons:v,locale:p,date:f,goTo:m}}function rf(e){const t=this.$,a=t.parent?.provides??t.vnode.appContext?.provides
2126
- if(a&&e in a)return a[e]}nf.version="3.7.19-master.2025-03-27"
2127
- const sf=function(){return nf({components:Xp,directives:of,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},uf="3.7.19-master.2025-03-27"
2126
+ if(a&&e in a)return a[e]}nf.version="3.7.19-master.2025-03-29"
2127
+ const sf=function(){return nf({components:Xp,directives:of,...arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}})},uf="3.7.19-master.2025-03-29"
2128
2128
  sf.version=uf,e.blueprints=Zt,e.components=Xp,e.createVuetify=sf,e.directives=of,e.useDate=gu,e.useDefaults=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0
2129
2129
  const{props:a,provideSubDefaults:l}=Ct(e,t)
2130
2130
  return l(),a},e.useDisplay=xn,e.useGoTo=Bn,e.useLayout=la,e.useLocale=ha,e.useRtl=ba,e.useTheme=xa,e.version=uf}))
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.7.19-master.2025-03-27";
19
+ export const version = "3.7.19-master.2025-03-29";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -97,7 +97,7 @@ export function createVuetify() {
97
97
  goTo
98
98
  };
99
99
  }
100
- export const version = "3.7.19-master.2025-03-27";
100
+ export const version = "3.7.19-master.2025-03-29";
101
101
  createVuetify.version = version;
102
102
 
103
103
  // Vue's inject() can only be used in setup
package/lib/index.d.mts CHANGED
@@ -487,41 +487,42 @@ declare module 'vue' {
487
487
  }
488
488
  export interface GlobalComponents {
489
489
  VApp: typeof import('vuetify/components')['VApp']
490
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
490
491
  VAppBar: typeof import('vuetify/components')['VAppBar']
491
492
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
492
493
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
493
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
494
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
494
495
  VAvatar: typeof import('vuetify/components')['VAvatar']
495
496
  VAlert: typeof import('vuetify/components')['VAlert']
496
497
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
497
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
498
- VBadge: typeof import('vuetify/components')['VBadge']
499
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
500
- VBtn: typeof import('vuetify/components')['VBtn']
501
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
502
498
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
503
499
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
504
500
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
505
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
506
- VCarousel: typeof import('vuetify/components')['VCarousel']
507
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
508
- VChipGroup: typeof import('vuetify/components')['VChipGroup']
509
501
  VBanner: typeof import('vuetify/components')['VBanner']
510
502
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
511
503
  VBannerText: typeof import('vuetify/components')['VBannerText']
512
- VChip: typeof import('vuetify/components')['VChip']
513
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
514
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
504
+ VBadge: typeof import('vuetify/components')['VBadge']
505
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
506
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
507
+ VBtn: typeof import('vuetify/components')['VBtn']
515
508
  VCard: typeof import('vuetify/components')['VCard']
516
509
  VCardActions: typeof import('vuetify/components')['VCardActions']
517
510
  VCardItem: typeof import('vuetify/components')['VCardItem']
518
511
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
519
512
  VCardText: typeof import('vuetify/components')['VCardText']
520
513
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
514
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
521
515
  VCode: typeof import('vuetify/components')['VCode']
516
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
517
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
518
+ VCombobox: typeof import('vuetify/components')['VCombobox']
519
+ VChip: typeof import('vuetify/components')['VChip']
520
+ VChipGroup: typeof import('vuetify/components')['VChipGroup']
522
521
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
522
+ VCarousel: typeof import('vuetify/components')['VCarousel']
523
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
523
524
  VCounter: typeof import('vuetify/components')['VCounter']
524
- VCombobox: typeof import('vuetify/components')['VCombobox']
525
+ VDialog: typeof import('vuetify/components')['VDialog']
525
526
  VDataTable: typeof import('vuetify/components')['VDataTable']
526
527
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
527
528
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -529,38 +530,34 @@ declare module 'vue' {
529
530
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
530
531
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
531
532
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
533
+ VDivider: typeof import('vuetify/components')['VDivider']
534
+ VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
535
+ VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
536
+ VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
537
+ VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
538
+ VFab: typeof import('vuetify/components')['VFab']
532
539
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
533
540
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
534
541
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
535
542
  VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
536
543
  VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
537
544
  VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
538
- VDialog: typeof import('vuetify/components')['VDialog']
539
- VField: typeof import('vuetify/components')['VField']
540
- VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
541
545
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
542
- VFab: typeof import('vuetify/components')['VFab']
543
- VDivider: typeof import('vuetify/components')['VDivider']
544
- VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
545
- VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
546
- VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
547
- VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
548
546
  VFileInput: typeof import('vuetify/components')['VFileInput']
549
- VFooter: typeof import('vuetify/components')['VFooter']
550
547
  VImg: typeof import('vuetify/components')['VImg']
548
+ VFooter: typeof import('vuetify/components')['VFooter']
549
+ VField: typeof import('vuetify/components')['VField']
550
+ VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
551
+ VInput: typeof import('vuetify/components')['VInput']
551
552
  VIcon: typeof import('vuetify/components')['VIcon']
552
553
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
553
554
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
554
555
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
555
556
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
556
- VInput: typeof import('vuetify/components')['VInput']
557
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
558
- VItem: typeof import('vuetify/components')['VItem']
559
557
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
560
- VLabel: typeof import('vuetify/components')['VLabel']
561
558
  VKbd: typeof import('vuetify/components')['VKbd']
562
- VMenu: typeof import('vuetify/components')['VMenu']
563
- VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
559
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
560
+ VItem: typeof import('vuetify/components')['VItem']
564
561
  VList: typeof import('vuetify/components')['VList']
565
562
  VListGroup: typeof import('vuetify/components')['VListGroup']
566
563
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -570,69 +567,72 @@ declare module 'vue' {
570
567
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
571
568
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
572
569
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
570
+ VLabel: typeof import('vuetify/components')['VLabel']
571
+ VMessages: typeof import('vuetify/components')['VMessages']
572
+ VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
573
+ VOverlay: typeof import('vuetify/components')['VOverlay']
574
+ VMenu: typeof import('vuetify/components')['VMenu']
573
575
  VMain: typeof import('vuetify/components')['VMain']
574
576
  VOtpInput: typeof import('vuetify/components')['VOtpInput']
575
- VOverlay: typeof import('vuetify/components')['VOverlay']
576
- VMessages: typeof import('vuetify/components')['VMessages']
577
577
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
578
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
579
578
  VPagination: typeof import('vuetify/components')['VPagination']
579
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
580
580
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
581
- VSelect: typeof import('vuetify/components')['VSelect']
581
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
582
582
  VRating: typeof import('vuetify/components')['VRating']
583
583
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
584
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
585
584
  VSheet: typeof import('vuetify/components')['VSheet']
586
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
587
585
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
588
586
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
589
- VStepper: typeof import('vuetify/components')['VStepper']
590
- VStepperActions: typeof import('vuetify/components')['VStepperActions']
591
- VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
592
- VStepperItem: typeof import('vuetify/components')['VStepperItem']
593
- VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
594
- VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
595
587
  VSlider: typeof import('vuetify/components')['VSlider']
588
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
596
589
  VSwitch: typeof import('vuetify/components')['VSwitch']
597
590
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
591
+ VSelect: typeof import('vuetify/components')['VSelect']
592
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
593
+ VTextField: typeof import('vuetify/components')['VTextField']
594
+ VTimeline: typeof import('vuetify/components')['VTimeline']
595
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
598
596
  VTab: typeof import('vuetify/components')['VTab']
599
597
  VTabs: typeof import('vuetify/components')['VTabs']
600
598
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
601
599
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
602
600
  VTable: typeof import('vuetify/components')['VTable']
603
- VTextField: typeof import('vuetify/components')['VTextField']
604
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
601
+ VTextarea: typeof import('vuetify/components')['VTextarea']
602
+ VTooltip: typeof import('vuetify/components')['VTooltip']
605
603
  VToolbar: typeof import('vuetify/components')['VToolbar']
606
604
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
607
605
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
608
- VTextarea: typeof import('vuetify/components')['VTextarea']
609
- VTooltip: typeof import('vuetify/components')['VTooltip']
610
- VTimeline: typeof import('vuetify/components')['VTimeline']
611
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
606
+ VStepper: typeof import('vuetify/components')['VStepper']
607
+ VStepperActions: typeof import('vuetify/components')['VStepperActions']
608
+ VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
609
+ VStepperItem: typeof import('vuetify/components')['VStepperItem']
610
+ VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
611
+ VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
612
612
  VWindow: typeof import('vuetify/components')['VWindow']
613
613
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
614
614
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
615
615
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
616
616
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
617
+ VHover: typeof import('vuetify/components')['VHover']
618
+ VForm: typeof import('vuetify/components')['VForm']
617
619
  VContainer: typeof import('vuetify/components')['VContainer']
618
620
  VCol: typeof import('vuetify/components')['VCol']
619
621
  VRow: typeof import('vuetify/components')['VRow']
620
622
  VSpacer: typeof import('vuetify/components')['VSpacer']
621
- VForm: typeof import('vuetify/components')['VForm']
622
- VHover: typeof import('vuetify/components')['VHover']
623
623
  VLayout: typeof import('vuetify/components')['VLayout']
624
624
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
625
- VLazy: typeof import('vuetify/components')['VLazy']
626
625
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
626
+ VLazy: typeof import('vuetify/components')['VLazy']
627
627
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
628
628
  VParallax: typeof import('vuetify/components')['VParallax']
629
629
  VRadio: typeof import('vuetify/components')['VRadio']
630
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
631
630
  VResponsive: typeof import('vuetify/components')['VResponsive']
632
- VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
631
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
633
632
  VSparkline: typeof import('vuetify/components')['VSparkline']
634
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
633
+ VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
635
634
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
635
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
636
636
  VValidation: typeof import('vuetify/components')['VValidation']
637
637
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
638
638
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -650,28 +650,28 @@ declare module 'vue' {
650
650
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
651
651
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
652
652
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
653
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
654
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
653
655
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
654
656
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
655
657
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
656
658
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
657
659
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
658
660
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
659
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
660
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
661
- VPicker: typeof import('vuetify/labs/components')['VPicker']
662
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
661
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
663
662
  VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
664
663
  VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
665
664
  VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
666
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
667
665
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
668
666
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
669
667
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
668
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
669
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
670
670
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
671
671
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
672
672
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
673
- VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
674
673
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
674
+ VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
675
675
  VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
676
676
  }
677
677
  }
@@ -187,7 +187,6 @@ export const VDateInput = genericComponent()({
187
187
  }
188
188
  }
189
189
  emit('save', value);
190
- vDateInputRef.value?.blur();
191
190
  }
192
191
  return _createVNode(VDatePicker, _mergeProps(datePickerProps, {
193
192
  "modelValue": props.hideActions ? model.value : proxyModel.value,
@@ -1 +1 @@
1
- {"version":3,"file":"VDateInput.mjs","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","hideActions","Boolean","location","type","default","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","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 hideActions: Boolean,\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n\n ...makeDisplayProps(),\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\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\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 })\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 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\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.mjs","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","hideActions","Boolean","location","type","default","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","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 hideActions: Boolean,\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom start',\n },\n\n ...makeDisplayProps(),\n ...makeFocusProps(),\n ...makeVConfirmEditProps(),\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\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 })\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 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\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":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.7.19-master.2025-03-27",
4
+ "version": "3.7.19-master.2025-03-29",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"