vuetify 3.6.3 → 3.6.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/json/attributes.json +197 -57
  2. package/dist/json/importMap-labs.json +8 -8
  3. package/dist/json/importMap.json +128 -128
  4. package/dist/json/tags.json +36 -1
  5. package/dist/json/web-types.json +527 -117
  6. package/dist/vuetify-labs.css +2640 -2342
  7. package/dist/vuetify-labs.d.ts +1891 -1542
  8. package/dist/vuetify-labs.esm.js +161 -152
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +160 -151
  11. package/dist/vuetify-labs.min.css +3 -3
  12. package/dist/vuetify.css +871 -577
  13. package/dist/vuetify.d.ts +1331 -1338
  14. package/dist/vuetify.esm.js +108 -77
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +107 -76
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +3 -3
  19. package/dist/vuetify.min.js +981 -977
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +3 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VAutocomplete/index.d.mts +187 -158
  25. package/lib/components/VAvatar/VAvatar.css +3 -1
  26. package/lib/components/VBanner/index.d.mts +11 -11
  27. package/lib/components/VBottomSheet/index.d.mts +42 -42
  28. package/lib/components/VBtn/VBtn.css +3 -1
  29. package/lib/components/VCard/VCard.css +3 -1
  30. package/lib/components/VCarousel/index.d.mts +6 -6
  31. package/lib/components/VChip/VChip.css +3 -1
  32. package/lib/components/VChipGroup/index.d.mts +11 -11
  33. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  34. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  35. package/lib/components/VCombobox/index.d.mts +187 -158
  36. package/lib/components/VDataIterator/index.d.mts +1 -1
  37. package/lib/components/VDataTable/VDataTable.css +1 -1
  38. package/lib/components/VDataTable/VDataTable.sass +2 -1
  39. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  40. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  41. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  42. package/lib/components/VDataTable/composables/select.mjs +2 -1
  43. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +76 -71
  45. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  46. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  47. package/lib/components/VDialog/index.d.mts +126 -126
  48. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  49. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  50. package/lib/components/VFileInput/index.d.mts +9 -9
  51. package/lib/components/VImg/index.d.mts +6 -6
  52. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  53. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  54. package/lib/components/VList/VList.mjs.map +1 -1
  55. package/lib/components/VList/VListItem.css +3 -1
  56. package/lib/components/VList/VListItem.mjs +3 -2
  57. package/lib/components/VList/VListItem.mjs.map +1 -1
  58. package/lib/components/VList/index.d.mts +76 -52
  59. package/lib/components/VMenu/index.d.mts +126 -126
  60. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -1
  61. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  62. package/lib/components/VNavigationDrawer/index.d.mts +19 -13
  63. package/lib/components/VOverlay/VOverlay.mjs +2 -5
  64. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  65. package/lib/components/VOverlay/index.d.mts +42 -42
  66. package/lib/components/VOverlay/useActivator.mjs +5 -5
  67. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  68. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  69. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  70. package/lib/components/VResponsive/index.d.mts +6 -6
  71. package/lib/components/VSelect/index.d.mts +187 -158
  72. package/lib/components/VSheet/VSheet.css +1 -1
  73. package/lib/components/VSheet/_variables.scss +1 -1
  74. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  75. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  76. package/lib/components/VSlideGroup/index.d.mts +11 -11
  77. package/lib/components/VSlider/VSliderThumb.css +5 -0
  78. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  79. package/lib/components/VSlider/VSliderTrack.css +15 -0
  80. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  81. package/lib/components/VSnackbar/VSnackbar.css +3 -1
  82. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  83. package/lib/components/VSnackbar/index.d.mts +126 -126
  84. package/lib/components/VSpeedDial/index.d.mts +42 -42
  85. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  86. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  87. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  88. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  89. package/lib/components/VTabs/VTabs.mjs +8 -3
  90. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  91. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  92. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  93. package/lib/components/VTabs/index.d.mts +11 -11
  94. package/lib/components/VToolbar/VToolbar.css +5 -5
  95. package/lib/components/VToolbar/_variables.scss +3 -3
  96. package/lib/components/VTooltip/index.d.mts +126 -126
  97. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  98. package/lib/components/index.d.mts +1291 -1298
  99. package/lib/composables/component.mjs +1 -1
  100. package/lib/composables/component.mjs.map +1 -1
  101. package/lib/composables/display.mjs +1 -1
  102. package/lib/composables/display.mjs.map +1 -1
  103. package/lib/composables/nested/activeStrategies.mjs +16 -10
  104. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  105. package/lib/composables/nested/nested.mjs +7 -5
  106. package/lib/composables/nested/nested.mjs.map +1 -1
  107. package/lib/composables/resizeObserver.mjs +5 -5
  108. package/lib/composables/resizeObserver.mjs.map +1 -1
  109. package/lib/entry-bundler.mjs +1 -1
  110. package/lib/framework.mjs +1 -1
  111. package/lib/index.d.mts +40 -40
  112. package/lib/labs/VCalendar/VCalendar.css +5 -1
  113. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  114. package/lib/labs/VCalendar/_variables.scss +8 -0
  115. package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
  116. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  117. package/lib/labs/VNumberInput/index.d.mts +402 -34
  118. package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
  119. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  120. package/lib/labs/VTreeview/index.d.mts +88 -64
  121. package/lib/labs/components.d.mts +620 -235
  122. package/lib/styles/generic/_colors.scss +1 -0
  123. package/lib/styles/main.css +260 -0
  124. package/lib/styles/tools/_variant.sass +3 -1
  125. package/lib/util/helpers.mjs +16 -0
  126. package/lib/util/helpers.mjs.map +1 -1
  127. package/package.json +3 -3
package/lib/index.d.mts CHANGED
@@ -493,27 +493,25 @@ declare module '@vue/runtime-core' {
493
493
  }
494
494
 
495
495
  export interface GlobalComponents {
496
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
496
497
  VApp: typeof import('vuetify/components')['VApp']
497
498
  VAppBar: typeof import('vuetify/components')['VAppBar']
498
499
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
499
500
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
501
+ VAvatar: typeof import('vuetify/components')['VAvatar']
500
502
  VAlert: typeof import('vuetify/components')['VAlert']
501
503
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
502
- VAvatar: typeof import('vuetify/components')['VAvatar']
503
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
504
504
  VBanner: typeof import('vuetify/components')['VBanner']
505
505
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
506
506
  VBannerText: typeof import('vuetify/components')['VBannerText']
507
- VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
508
507
  VBadge: typeof import('vuetify/components')['VBadge']
508
+ VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
509
509
  VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
510
+ VBtn: typeof import('vuetify/components')['VBtn']
511
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
510
512
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
513
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
514
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
514
- VBtn: typeof import('vuetify/components')['VBtn']
515
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
516
- VChip: typeof import('vuetify/components')['VChip']
517
515
  VCarousel: typeof import('vuetify/components')['VCarousel']
518
516
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
519
517
  VCard: typeof import('vuetify/components')['VCard']
@@ -522,19 +520,15 @@ declare module '@vue/runtime-core' {
522
520
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
523
521
  VCardText: typeof import('vuetify/components')['VCardText']
524
522
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
523
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
525
524
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
526
525
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
527
- VCode: typeof import('vuetify/components')['VCode']
526
+ VChip: typeof import('vuetify/components')['VChip']
528
527
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
529
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
528
+ VCode: typeof import('vuetify/components')['VCode']
530
529
  VCombobox: typeof import('vuetify/components')['VCombobox']
531
530
  VCounter: typeof import('vuetify/components')['VCounter']
532
- VDatePicker: typeof import('vuetify/components')['VDatePicker']
533
- VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
534
- VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
535
- VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
536
- VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
537
- VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
531
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
538
532
  VDataTable: typeof import('vuetify/components')['VDataTable']
539
533
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
540
534
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -542,31 +536,36 @@ declare module '@vue/runtime-core' {
542
536
  VDataTableRow: typeof import('vuetify/components')['VDataTableRow']
543
537
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
544
538
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
539
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
540
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
541
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
542
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
543
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
544
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
545
545
  VDialog: typeof import('vuetify/components')['VDialog']
546
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
546
547
  VDivider: typeof import('vuetify/components')['VDivider']
547
548
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
548
549
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
549
550
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
550
551
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
551
- VFab: typeof import('vuetify/components')['VFab']
552
552
  VField: typeof import('vuetify/components')['VField']
553
553
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
554
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
555
554
  VFooter: typeof import('vuetify/components')['VFooter']
555
+ VFab: typeof import('vuetify/components')['VFab']
556
+ VFileInput: typeof import('vuetify/components')['VFileInput']
556
557
  VIcon: typeof import('vuetify/components')['VIcon']
557
558
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
558
559
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
559
560
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
560
561
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
561
- VFileInput: typeof import('vuetify/components')['VFileInput']
562
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
563
562
  VImg: typeof import('vuetify/components')['VImg']
564
- VKbd: typeof import('vuetify/components')['VKbd']
563
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
565
564
  VInput: typeof import('vuetify/components')['VInput']
566
- VLabel: typeof import('vuetify/components')['VLabel']
565
+ VKbd: typeof import('vuetify/components')['VKbd']
567
566
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
568
567
  VItem: typeof import('vuetify/components')['VItem']
569
- VMain: typeof import('vuetify/components')['VMain']
568
+ VLabel: typeof import('vuetify/components')['VLabel']
570
569
  VList: typeof import('vuetify/components')['VList']
571
570
  VListGroup: typeof import('vuetify/components')['VListGroup']
572
571
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -576,46 +575,47 @@ declare module '@vue/runtime-core' {
576
575
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
577
576
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
578
577
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
579
- VMessages: typeof import('vuetify/components')['VMessages']
578
+ VMain: typeof import('vuetify/components')['VMain']
580
579
  VMenu: typeof import('vuetify/components')['VMenu']
581
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
580
+ VOverlay: typeof import('vuetify/components')['VOverlay']
581
+ VMessages: typeof import('vuetify/components')['VMessages']
582
582
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
583
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
584
+ VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
583
585
  VPagination: typeof import('vuetify/components')['VPagination']
584
- VOverlay: typeof import('vuetify/components')['VOverlay']
585
586
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
586
- VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
587
587
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
588
- VSelect: typeof import('vuetify/components')['VSelect']
589
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
590
588
  VRating: typeof import('vuetify/components')['VRating']
589
+ VSelect: typeof import('vuetify/components')['VSelect']
591
590
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
591
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
592
592
  VSheet: typeof import('vuetify/components')['VSheet']
593
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
594
+ VSlider: typeof import('vuetify/components')['VSlider']
595
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
593
596
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
594
597
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
595
- VSlider: typeof import('vuetify/components')['VSlider']
596
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
598
+ VSwitch: typeof import('vuetify/components')['VSwitch']
597
599
  VStepper: typeof import('vuetify/components')['VStepper']
598
600
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
599
601
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
600
602
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
601
603
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
602
604
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
603
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
604
- VSwitch: typeof import('vuetify/components')['VSwitch']
605
605
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
606
606
  VTable: typeof import('vuetify/components')['VTable']
607
607
  VTab: typeof import('vuetify/components')['VTab']
608
608
  VTabs: typeof import('vuetify/components')['VTabs']
609
609
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
610
610
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
611
- VTimeline: typeof import('vuetify/components')['VTimeline']
612
- VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
613
611
  VTextarea: typeof import('vuetify/components')['VTextarea']
612
+ VTextField: typeof import('vuetify/components')['VTextField']
614
613
  VToolbar: typeof import('vuetify/components')['VToolbar']
615
614
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
616
615
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
616
+ VTimeline: typeof import('vuetify/components')['VTimeline']
617
+ VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
617
618
  VTooltip: typeof import('vuetify/components')['VTooltip']
618
- VTextField: typeof import('vuetify/components')['VTextField']
619
619
  VWindow: typeof import('vuetify/components')['VWindow']
620
620
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
621
621
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
@@ -633,14 +633,14 @@ declare module '@vue/runtime-core' {
633
633
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
634
634
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
635
635
  VParallax: typeof import('vuetify/components')['VParallax']
636
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
637
636
  VRadio: typeof import('vuetify/components')['VRadio']
637
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
638
638
  VResponsive: typeof import('vuetify/components')['VResponsive']
639
639
  VSparkline: typeof import('vuetify/components')['VSparkline']
640
640
  VSpeedDial: typeof import('vuetify/components')['VSpeedDial']
641
641
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
642
- VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
643
642
  VValidation: typeof import('vuetify/components')['VValidation']
643
+ VVirtualScroll: typeof import('vuetify/components')['VVirtualScroll']
644
644
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
645
645
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
646
646
  VDialogTopTransition: typeof import('vuetify/components')['VDialogTopTransition']
@@ -657,6 +657,7 @@ declare module '@vue/runtime-core' {
657
657
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
658
658
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
659
659
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
660
+ VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
660
661
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
661
662
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
662
663
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
@@ -665,15 +666,14 @@ declare module '@vue/runtime-core' {
665
666
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
667
  VPicker: typeof import('vuetify/labs/components')['VPicker']
667
668
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
- VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
669
669
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
670
670
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
671
671
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
672
672
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
673
673
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
674
674
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
675
- VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
676
- VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
677
675
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
676
+ VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
677
+ VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
678
678
  }
679
679
  }
@@ -1,10 +1,14 @@
1
+ .v-calendar {
2
+ background: rgb(var(--v-theme-background));
3
+ color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity));
4
+ }
5
+
1
6
  .v-calendar-weekly {
2
7
  width: 100%;
3
8
  height: 100%;
4
9
  display: flex;
5
10
  flex-direction: column;
6
11
  min-height: 0;
7
- background-color: #fff;
8
12
  }
9
13
 
10
14
  .v-calendar__container {
@@ -2,6 +2,9 @@
2
2
  @use './variables' as *
3
3
 
4
4
  @include tools.layer('components')
5
+ .v-calendar
6
+ @include tools.theme($calendar-theme...)
7
+
5
8
  .v-calendar-weekly
6
9
  width: 100%
7
10
  height: 100%
@@ -9,8 +12,6 @@
9
12
  flex-direction: column
10
13
  // https://github.com/vuetifyjs/vuetify/issues/8319
11
14
  min-height: 0
12
- // Themed
13
- background-color: #fff
14
15
 
15
16
  .v-calendar__container
16
17
  border-top: $calendar-line-width solid $calendar-line-color
@@ -1,3 +1,6 @@
1
+ $calendar-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
2
+ $calendar-background: rgb(var(--v-theme-background)) !default;
3
+
1
4
  $calendar-line-width: thin !default;
2
5
  $calendar-line-color: #e0e0e0 !default;
3
6
 
@@ -45,3 +48,8 @@ $calendar-event-border-width: 1px !default;
45
48
  $calendar-event-font-size: 12px !default;
46
49
  $calendar-event-line-height: 20px !default;
47
50
  $calendar-event-right-empty: 10px !default;
51
+
52
+ $calendar-theme: (
53
+ $calendar-background,
54
+ $calendar-color
55
+ ) !default;
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VNumberInput.css";
4
4
 
@@ -6,12 +6,10 @@ import "./VNumberInput.css";
6
6
  import { VBtn } from "../../components/VBtn/index.mjs";
7
7
  import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
8
8
  import { VDivider } from "../../components/VDivider/index.mjs";
9
- import { filterFieldProps, makeVFieldProps, VField } from "../../components/VField/VField.mjs";
10
- import { makeVInputProps, VInput } from "../../components/VInput/VInput.mjs"; // Composables
11
- import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
9
+ import { makeVTextFieldProps, VTextField } from "../../components/VTextField/VTextField.mjs"; // Composables
12
10
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
13
- import { computed, ref, watchEffect } from 'vue';
14
- import { clamp, filterInputAttrs, genericComponent, getDecimals, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
11
+ import { computed, watchEffect } from 'vue';
12
+ import { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
13
  const makeVNumberInputProps = propsFactory({
16
14
  controlVariant: {
17
15
  type: String,
@@ -31,19 +29,13 @@ const makeVNumberInputProps = propsFactory({
31
29
  type: Number,
32
30
  default: 1
33
31
  },
34
- ...only(makeVInputProps(), ['density', 'disabled', 'focused', 'hideDetails', 'hint', 'label', 'persistentHint', 'readonly']),
35
- ...only(makeVFieldProps(), ['baseColor', 'bgColor', 'class', 'color', 'disabled', 'error', 'loading', 'reverse', 'rounded', 'style', 'theme', 'variant']),
36
- ...makeFocusProps()
32
+ ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon'])
37
33
  }, 'VNumberInput');
38
34
  export const VNumberInput = genericComponent()({
39
35
  name: 'VNumberInput',
40
36
  inheritAttrs: false,
41
37
  props: {
42
- ...makeVNumberInputProps(),
43
- modelValue: {
44
- type: Number,
45
- default: undefined
46
- }
38
+ ...makeVNumberInputProps()
47
39
  },
48
40
  emits: {
49
41
  'update:modelValue': val => true
@@ -55,12 +47,6 @@ export const VNumberInput = genericComponent()({
55
47
  slots
56
48
  } = _ref;
57
49
  const model = useProxiedModel(props, 'modelValue');
58
- const {
59
- isFocused,
60
- focus,
61
- blur
62
- } = useFocus(props);
63
- const inputRef = ref();
64
50
  const stepDecimals = computed(() => getDecimals(props.step));
65
51
  const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
66
52
  const canIncrease = computed(() => {
@@ -76,9 +62,6 @@ export const VNumberInput = genericComponent()({
76
62
  model.value = clamp(model.value, props.min, props.max);
77
63
  }
78
64
  });
79
- function onFocus() {
80
- if (!isFocused.value) focus();
81
- }
82
65
  const controlVariant = computed(() => {
83
66
  return props.hideInput ? 'stacked' : props.controlVariant;
84
67
  });
@@ -108,7 +91,7 @@ export const VNumberInput = genericComponent()({
108
91
  toggleUpDown(false);
109
92
  }
110
93
  function onKeydown(e) {
111
- if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) || e.ctrlKey) return;
94
+ if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) || e.ctrlKey) return;
112
95
  if (['ArrowDown'].includes(e.key)) {
113
96
  e.preventDefault();
114
97
  toggleUpDown(false);
@@ -125,17 +108,14 @@ export const VNumberInput = genericComponent()({
125
108
  e.preventDefault();
126
109
  }
127
110
  }
128
- function onInput(e) {
129
- const el = e.target;
130
- model.value = el.value ? +el.value : undefined;
111
+ function onModelUpdate(v) {
112
+ model.value = v ? +v : undefined;
131
113
  }
132
114
  useRender(() => {
133
- const fieldProps = filterFieldProps(props);
134
- const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
135
115
  const {
136
116
  modelValue: _,
137
- ...inputProps
138
- } = VInput.filterProps(props);
117
+ ...textFieldProps
118
+ } = VTextField.filterProps(props);
139
119
  function controlNode() {
140
120
  const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%';
141
121
  return _createVNode("div", {
@@ -148,6 +128,7 @@ export const VNumberInput = genericComponent()({
148
128
  "name": "decrement-btn",
149
129
  "icon": "$expand",
150
130
  "size": "small",
131
+ "tabindex": "-1",
151
132
  "onClick": onClickDown
152
133
  }, null) : _createVNode(VDefaultsProvider, {
153
134
  "key": "decrement-defaults",
@@ -172,7 +153,8 @@ export const VNumberInput = genericComponent()({
172
153
  "name": "increment-btn",
173
154
  "icon": "$collapse",
174
155
  "onClick": onClickUp,
175
- "size": "small"
156
+ "size": "small",
157
+ "tabindex": "-1"
176
158
  }, null) : _createVNode(VDefaultsProvider, {
177
159
  "key": "increment-defaults",
178
160
  "defaults": {
@@ -193,7 +175,36 @@ export const VNumberInput = genericComponent()({
193
175
  "vertical": true
194
176
  }, null) : undefined;
195
177
  }
196
- return _createVNode(VInput, _mergeProps({
178
+ const appendInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
179
+ "class": "v-number-input__control"
180
+ }, [_createVNode(VDivider, {
181
+ "vertical": true
182
+ }, null), _createVNode(VBtn, {
183
+ "flat": true,
184
+ "height": "100%",
185
+ "icon": "$plus",
186
+ "tile": true,
187
+ "tabindex": "-1",
188
+ "onClick": onClickUp
189
+ }, null)]) : !props.reverse ? _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined;
190
+ const hasAppendInner = slots['append-inner'] || appendInnerControl;
191
+ const prependInnerControl = controlVariant.value === 'split' ? _createVNode("div", {
192
+ "class": "v-number-input__control"
193
+ }, [_createVNode(VBtn, {
194
+ "flat": true,
195
+ "height": "100%",
196
+ "icon": "$minus",
197
+ "tile": true,
198
+ "tabindex": "-1",
199
+ "onClick": onClickDown
200
+ }, null), _createVNode(VDivider, {
201
+ "vertical": true
202
+ }, null)]) : props.reverse ? _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined;
203
+ const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
204
+ return _createVNode(VTextField, _mergeProps({
205
+ "modelValue": model.value,
206
+ "onUpdate:modelValue": onModelUpdate,
207
+ "onKeydown": onKeydown,
197
208
  "class": ['v-number-input', {
198
209
  'v-number-input--default': controlVariant.value === 'default',
199
210
  'v-number-input--hide-input': props.hideInput,
@@ -202,57 +213,22 @@ export const VNumberInput = genericComponent()({
202
213
  'v-number-input--split': controlVariant.value === 'split',
203
214
  'v-number-input--stacked': controlVariant.value === 'stacked'
204
215
  }, props.class]
205
- }, rootAttrs, inputProps, {
206
- "focused": isFocused.value,
216
+ }, textFieldProps, {
207
217
  "style": props.style
208
218
  }), {
209
219
  ...slots,
210
- default: () => _createVNode(VField, _mergeProps(fieldProps, {
211
- "active": true,
212
- "focused": isFocused.value
213
- }), {
214
- ...slots,
215
- default: _ref2 => {
216
- let {
217
- props: {
218
- class: fieldClass,
219
- ...slotProps
220
- }
221
- } = _ref2;
222
- return _createVNode("input", _mergeProps({
223
- "ref": inputRef,
224
- "type": "text",
225
- "value": model.value,
226
- "onInput": onInput,
227
- "onKeydown": onKeydown,
228
- "class": fieldClass,
229
- "onFocus": onFocus,
230
- "onBlur": blur
231
- }, inputAttrs), null);
232
- },
233
- 'append-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
234
- "class": "v-number-input__control"
235
- }, [_createVNode(VDivider, {
236
- "vertical": true
237
- }, null), _createVNode(VBtn, {
238
- "flat": true,
239
- "height": "100%",
240
- "icon": "$plus",
241
- "tile": true,
242
- "onClick": onClickUp
243
- }, null)]) : !props.reverse ? () => _createVNode(_Fragment, null, [dividerNode(), controlNode()]) : undefined,
244
- 'prepend-inner': controlVariant.value === 'split' ? () => _createVNode("div", {
245
- "class": "v-number-input__control"
246
- }, [_createVNode(VBtn, {
247
- "flat": true,
248
- "height": "100%",
249
- "icon": "$minus",
250
- "tile": true,
251
- "onClick": onClickDown
252
- }, null), _createVNode(VDivider, {
253
- "vertical": true
254
- }, null)]) : props.reverse ? () => _createVNode(_Fragment, null, [controlNode(), dividerNode()]) : undefined
255
- })
220
+ 'append-inner': hasAppendInner ? function () {
221
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
222
+ args[_key] = arguments[_key];
223
+ }
224
+ return _createVNode(_Fragment, null, [slots['append-inner']?.(...args), appendInnerControl]);
225
+ } : undefined,
226
+ 'prepend-inner': hasPrependInner ? function () {
227
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
228
+ args[_key2] = arguments[_key2];
229
+ }
230
+ return _createVNode(_Fragment, null, [prependInnerControl, slots['prepend-inner']?.(...args)]);
231
+ } : undefined
256
232
  });
257
233
  });
258
234
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","filterFieldProps","makeVFieldProps","VField","makeVInputProps","VInput","makeFocusProps","useFocus","useProxiedModel","computed","ref","watchEffect","clamp","filterInputAttrs","genericComponent","getDecimals","only","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","modelValue","undefined","emits","val","setup","_ref","attrs","emit","slots","model","isFocused","focus","blur","inputRef","stepDecimals","modelDecimals","value","canIncrease","canDecrease","onFocus","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","decimals","Math","toFixed","onKeydown","e","includes","key","ctrlKey","preventDefault","test","onInput","el","target","fieldProps","rootAttrs","inputAttrs","_","inputProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","_mergeProps","reverse","class","style","_ref2","fieldClass","slotProps","_Fragment"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { makeVInputProps, VInput } from '@/components/VInput/VInput'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, watchEffect } from 'vue'\nimport { clamp, filterInputAttrs, genericComponent, getDecimals, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { VInputSlots } from '@/components/VInput/VInput'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VInputSlots & VFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...only(makeVInputProps(), [\n 'density',\n 'disabled',\n 'focused',\n 'hideDetails',\n 'hint',\n 'label',\n 'persistentHint',\n 'readonly',\n ]),\n ...only(makeVFieldProps(), [\n 'baseColor',\n 'bgColor',\n 'class',\n 'color',\n 'disabled',\n 'error',\n 'loading',\n 'reverse',\n 'rounded',\n 'style',\n 'theme',\n 'variant',\n ]),\n ...makeFocusProps(),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n\n modelValue: {\n type: Number,\n default: undefined,\n },\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { isFocused, focus, blur } = useFocus(props)\n const inputRef = ref<HTMLInputElement>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n function onFocus () {\n if (!isFocused.value) focus()\n }\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onInput (e: Event) {\n const el = e.target as HTMLInputElement\n model.value = el.value ? +(el.value) : undefined\n }\n\n useRender(() => {\n const fieldProps = filterFieldProps(props)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const { modelValue: _, ...inputProps } = VInput.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n return (\n <VInput\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...rootAttrs }\n { ...inputProps }\n focused={ isFocused.value }\n style={ props.style }\n >\n {{\n ...slots,\n default: () => (\n <VField\n { ...fieldProps }\n active\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <input\n ref={ inputRef }\n type=\"text\"\n value={ model.value }\n onInput={ onInput }\n onKeydown={ onKeydown }\n class={ fieldClass }\n onFocus={ onFocus }\n onBlur={ blur }\n { ...inputAttrs }\n />\n ),\n 'append-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? () => <>{ dividerNode() }{ controlNode() }</>\n : undefined),\n 'prepend-inner': controlVariant.value === 'split' ? () => (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? () => <>{ controlNode() }{ dividerNode() }</>\n : undefined),\n }}\n </VField>\n ),\n }}\n </VInput>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useProxiedModel","computed","watchEffect","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","min","Number","Infinity","max","step","VNumberInput","name","inheritAttrs","props","emits","val","setup","_ref","attrs","emit","slots","model","stepDecimals","modelDecimals","value","canIncrease","canDecrease","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","onKeydown","e","includes","key","ctrlKey","preventDefault","test","onModelUpdate","v","modelValue","_","textFieldProps","filterProps","controlNode","defaultHeight","_createVNode","decrement","disabled","flat","height","size","icon","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","class","style","_len","args","Array","_key","_len2","_key2"],"sources":["../../../src/labs/VNumberInput/VNumberInput.tsx"],"sourcesContent":["// Styles\nimport './VNumberInput.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\nimport { VDefaultsProvider } from '../../components/VDefaultsProvider'\nimport { VDivider } from '../../components/VDivider'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { clamp, genericComponent, getDecimals, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\ntype ControlSlot = {\n click: () => void\n}\n\ntype VNumberInputSlots = Omit<VTextFieldSlots, 'default'> & {\n increment: ControlSlot\n decrement: ControlSlot\n}\n\ntype ControlVariant = 'default' | 'stacked' | 'split'\n\nconst makeVNumberInputProps = propsFactory({\n controlVariant: {\n type: String as PropType<ControlVariant>,\n default: 'default',\n },\n inset: Boolean,\n hideInput: Boolean,\n min: {\n type: Number,\n default: -Infinity,\n },\n max: {\n type: Number,\n default: Infinity,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n inheritAttrs: false,\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0)\n\n const canIncrease = computed(() => {\n if (model.value == null) return true\n return model.value + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (model.value == null) return true\n return model.value - props.step >= props.min\n })\n\n watchEffect(() => {\n if (model.value != null && (model.value < props.min || model.value > props.max)) {\n model.value = clamp(model.value, props.min, props.max)\n }\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n function toggleUpDown (increment = true) {\n if (model.value == null) {\n model.value = 0\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +(((model.value + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +(((model.value - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp () {\n toggleUpDown()\n }\n\n function onClickDown () {\n toggleUpDown(false)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown(false)\n return\n }\n if (['ArrowUp'].includes(e.key)) {\n e.preventDefault()\n toggleUpDown()\n return\n }\n\n // Only numbers, +, - & . are allowed\n if (!/^[0-9\\-+.]+$/.test(e.key)) {\n e.preventDefault()\n }\n }\n\n function onModelUpdate (v: string) {\n model.value = v ? +(v) : undefined\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function controlNode () {\n const defaultHeight = controlVariant.value === 'stacked' ? 'auto' : '100%'\n return (\n <div class=\"v-number-input__control\">\n {\n !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ defaultHeight }\n name=\"decrement-btn\"\n icon=\"$expand\"\n size=\"small\"\n tabindex=\"-1\"\n onClick={ onClickDown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$expand',\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n {\n !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ defaultHeight }\n name=\"increment-btn\"\n icon=\"$collapse\"\n onClick={ onClickUp }\n size=\"small\"\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: defaultHeight,\n size: 'small',\n icon: '$collapse',\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n </div>\n )\n }\n\n function dividerNode () {\n return !props.hideInput && !props.inset ? <VDivider vertical /> : undefined\n }\n\n const appendInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VDivider vertical />\n\n <VBtn\n flat\n height=\"100%\"\n icon=\"$plus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickUp }\n />\n </div>\n ) : (!props.reverse\n ? <>{ dividerNode() }{ controlNode() }</>\n : undefined)\n\n const hasAppendInner = slots['append-inner'] || appendInnerControl\n\n const prependInnerControl =\n controlVariant.value === 'split'\n ? (\n <div class=\"v-number-input__control\">\n <VBtn\n flat\n height=\"100%\"\n icon=\"$minus\"\n tile\n tabindex=\"-1\"\n onClick={ onClickDown }\n />\n\n <VDivider vertical />\n </div>\n ) : (props.reverse\n ? <>{ controlNode() }{ dividerNode() }</>\n : undefined)\n\n const hasPrependInner = slots['prepend-inner'] || prependInnerControl\n\n return (\n <VTextField\n modelValue={ model.value }\n onUpdate:modelValue={ onModelUpdate }\n onKeydown={ onKeydown }\n class={[\n 'v-number-input',\n {\n 'v-number-input--default': controlVariant.value === 'default',\n 'v-number-input--hide-input': props.hideInput,\n 'v-number-input--inset': props.inset,\n 'v-number-input--reverse': props.reverse,\n 'v-number-input--split': controlVariant.value === 'split',\n 'v-number-input--stacked': controlVariant.value === 'stacked',\n },\n props.class,\n ]}\n { ...textFieldProps }\n style={ props.style }\n >\n {{\n ...slots,\n 'append-inner': hasAppendInner ? (...args) => (\n <>\n { slots['append-inner']?.(...args) }\n { appendInnerControl }\n </>\n ) : undefined,\n 'prepend-inner': hasPrependInner ? (...args) => (\n <>\n { prependInnerControl }\n { slots['prepend-inner']?.(...args) }\n </>\n ) : undefined,\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}