vuetify 3.6.3 → 3.6.5

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 (163) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +489 -61
  3. package/dist/json/importMap-labs.json +30 -18
  4. package/dist/json/importMap.json +168 -168
  5. package/dist/json/tags.json +123 -1
  6. package/dist/json/web-types.json +1915 -198
  7. package/dist/vuetify-labs.css +3151 -2738
  8. package/dist/vuetify-labs.d.ts +3424 -1434
  9. package/dist/vuetify-labs.esm.js +483 -173
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +482 -172
  12. package/dist/vuetify-labs.min.css +3 -3
  13. package/dist/vuetify.css +957 -616
  14. package/dist/vuetify.d.ts +1451 -1380
  15. package/dist/vuetify.esm.js +171 -99
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +170 -98
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +3 -3
  20. package/dist/vuetify.min.js +982 -978
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/VAlert.css +3 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.mts +187 -158
  26. package/lib/components/VAvatar/VAvatar.css +3 -1
  27. package/lib/components/VBanner/index.d.mts +11 -11
  28. package/lib/components/VBottomSheet/index.d.mts +42 -42
  29. package/lib/components/VBtn/VBtn.css +3 -1
  30. package/lib/components/VBtn/index.d.mts +2 -0
  31. package/lib/components/VCard/VCard.css +3 -1
  32. package/lib/components/VCarousel/index.d.mts +6 -6
  33. package/lib/components/VChip/VChip.css +3 -1
  34. package/lib/components/VChipGroup/index.d.mts +11 -11
  35. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
  36. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  37. package/lib/components/VCombobox/index.d.mts +187 -158
  38. package/lib/components/VDataIterator/index.d.mts +1 -1
  39. package/lib/components/VDataTable/VDataTable.css +1 -1
  40. package/lib/components/VDataTable/VDataTable.mjs +6 -2
  41. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  42. package/lib/components/VDataTable/VDataTable.sass +2 -1
  43. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  44. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  45. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  46. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  47. package/lib/components/VDataTable/VDataTableVirtual.mjs +3 -1
  48. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  49. package/lib/components/VDataTable/composables/select.mjs +2 -1
  50. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  51. package/lib/components/VDataTable/index.d.mts +130 -71
  52. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
  53. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  54. package/lib/components/VDialog/index.d.mts +126 -126
  55. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
  56. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  57. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
  58. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  59. package/lib/components/VExpansionPanel/index.d.mts +82 -27
  60. package/lib/components/VFileInput/VFileInput.mjs +2 -2
  61. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  62. package/lib/components/VFileInput/index.d.mts +9 -9
  63. package/lib/components/VImg/index.d.mts +6 -6
  64. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  65. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  66. package/lib/components/VList/VList.mjs.map +1 -1
  67. package/lib/components/VList/VListItem.css +3 -1
  68. package/lib/components/VList/VListItem.mjs +3 -2
  69. package/lib/components/VList/VListItem.mjs.map +1 -1
  70. package/lib/components/VList/index.d.mts +76 -52
  71. package/lib/components/VMenu/index.d.mts +126 -126
  72. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -1
  73. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  74. package/lib/components/VNavigationDrawer/index.d.mts +19 -13
  75. package/lib/components/VOverlay/VOverlay.mjs +2 -5
  76. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  77. package/lib/components/VOverlay/index.d.mts +42 -42
  78. package/lib/components/VOverlay/useActivator.mjs +5 -5
  79. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  80. package/lib/components/VResponsive/VResponsive.mjs +1 -1
  81. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  82. package/lib/components/VResponsive/index.d.mts +6 -6
  83. package/lib/components/VSelect/index.d.mts +187 -158
  84. package/lib/components/VSheet/VSheet.css +1 -1
  85. package/lib/components/VSheet/_variables.scss +1 -1
  86. package/lib/components/VSlideGroup/VSlideGroup.mjs +25 -25
  87. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  88. package/lib/components/VSlideGroup/index.d.mts +13 -11
  89. package/lib/components/VSlider/VSliderThumb.css +5 -0
  90. package/lib/components/VSlider/VSliderThumb.sass +3 -0
  91. package/lib/components/VSlider/VSliderTrack.css +15 -0
  92. package/lib/components/VSlider/VSliderTrack.sass +9 -0
  93. package/lib/components/VSnackbar/VSnackbar.css +3 -1
  94. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  95. package/lib/components/VSnackbar/index.d.mts +126 -126
  96. package/lib/components/VSpeedDial/index.d.mts +42 -42
  97. package/lib/components/VStepper/VStepper.mjs +17 -8
  98. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  99. package/lib/components/VStepper/VStepperItem.css +47 -0
  100. package/lib/components/VStepper/VStepperItem.mjs +10 -5
  101. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  102. package/lib/components/VStepper/VStepperItem.sass +18 -0
  103. package/lib/components/VStepper/VStepperWindow.mjs +2 -1
  104. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  105. package/lib/components/VStepper/VStepperWindowItem.mjs +2 -1
  106. package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -1
  107. package/lib/components/VStepper/index.d.mts +1 -1
  108. package/lib/components/VTabs/VTabs.mjs +8 -3
  109. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  110. package/lib/components/VTabs/VTabsWindow.mjs +2 -1
  111. package/lib/components/VTabs/VTabsWindow.mjs.map +1 -1
  112. package/lib/components/VTabs/index.d.mts +13 -11
  113. package/lib/components/VToolbar/VToolbar.css +5 -5
  114. package/lib/components/VToolbar/_variables.scss +3 -3
  115. package/lib/components/VTooltip/index.d.mts +126 -126
  116. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  117. package/lib/components/VWindow/index.d.mts +2 -0
  118. package/lib/components/index.d.mts +1393 -1325
  119. package/lib/composables/component.mjs +1 -1
  120. package/lib/composables/component.mjs.map +1 -1
  121. package/lib/composables/display.mjs +1 -1
  122. package/lib/composables/display.mjs.map +1 -1
  123. package/lib/composables/group.mjs +8 -0
  124. package/lib/composables/group.mjs.map +1 -1
  125. package/lib/composables/nested/activeStrategies.mjs +16 -10
  126. package/lib/composables/nested/activeStrategies.mjs.map +1 -1
  127. package/lib/composables/nested/nested.mjs +7 -5
  128. package/lib/composables/nested/nested.mjs.map +1 -1
  129. package/lib/composables/resizeObserver.mjs +5 -5
  130. package/lib/composables/resizeObserver.mjs.map +1 -1
  131. package/lib/entry-bundler.mjs +1 -1
  132. package/lib/framework.mjs +1 -1
  133. package/lib/index.d.mts +58 -55
  134. package/lib/labs/VCalendar/VCalendar.css +5 -1
  135. package/lib/labs/VCalendar/VCalendar.sass +3 -2
  136. package/lib/labs/VCalendar/_variables.scss +8 -0
  137. package/lib/labs/VNumberInput/VNumberInput.mjs +57 -81
  138. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  139. package/lib/labs/VNumberInput/index.d.mts +402 -34
  140. package/lib/labs/VSnackbarQueue/index.d.mts +138 -138
  141. package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
  142. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
  143. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
  144. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
  145. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
  146. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
  147. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
  148. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
  149. package/lib/labs/VStepperVertical/_variables.scss +3 -0
  150. package/lib/labs/VStepperVertical/index.d.mts +1590 -0
  151. package/lib/labs/VStepperVertical/index.mjs +4 -0
  152. package/lib/labs/VStepperVertical/index.mjs.map +1 -0
  153. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  154. package/lib/labs/VTreeview/index.d.mts +88 -64
  155. package/lib/labs/components.d.mts +2303 -339
  156. package/lib/labs/components.mjs +1 -0
  157. package/lib/labs/components.mjs.map +1 -1
  158. package/lib/styles/generic/_colors.scss +1 -0
  159. package/lib/styles/main.css +260 -0
  160. package/lib/styles/tools/_variant.sass +3 -1
  161. package/lib/util/helpers.mjs +16 -0
  162. package/lib/util/helpers.mjs.map +1 -1
  163. package/package.json +3 -3
package/lib/index.d.mts CHANGED
@@ -493,48 +493,42 @@ declare module '@vue/runtime-core' {
493
493
  }
494
494
 
495
495
  export interface GlobalComponents {
496
- VApp: typeof import('vuetify/components')['VApp']
497
496
  VAppBar: typeof import('vuetify/components')['VAppBar']
498
497
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
499
498
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
499
+ VApp: typeof import('vuetify/components')['VApp']
500
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
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
+ VBadge: typeof import('vuetify/components')['VBadge']
505
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
504
506
  VBanner: typeof import('vuetify/components')['VBanner']
505
507
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
506
508
  VBannerText: typeof import('vuetify/components')['VBannerText']
507
509
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
508
- VBadge: typeof import('vuetify/components')['VBadge']
509
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
510
- VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
511
- VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
512
- VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
513
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
514
510
  VBtn: typeof import('vuetify/components')['VBtn']
515
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
516
- VChip: typeof import('vuetify/components')['VChip']
517
- VCarousel: typeof import('vuetify/components')['VCarousel']
518
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
519
511
  VCard: typeof import('vuetify/components')['VCard']
520
512
  VCardActions: typeof import('vuetify/components')['VCardActions']
521
513
  VCardItem: typeof import('vuetify/components')['VCardItem']
522
514
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
523
515
  VCardText: typeof import('vuetify/components')['VCardText']
524
516
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
517
+ VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
518
+ VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
519
+ VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
520
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
521
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
525
522
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
526
523
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
527
- VCode: typeof import('vuetify/components')['VCode']
524
+ VCarousel: typeof import('vuetify/components')['VCarousel']
525
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
528
526
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
527
+ VChip: typeof import('vuetify/components')['VChip']
529
528
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
530
- VCombobox: typeof import('vuetify/components')['VCombobox']
529
+ VCode: typeof import('vuetify/components')['VCode']
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
+ VCombobox: typeof import('vuetify/components')['VCombobox']
538
532
  VDataTable: typeof import('vuetify/components')['VDataTable']
539
533
  VDataTableHeaders: typeof import('vuetify/components')['VDataTableHeaders']
540
534
  VDataTableFooter: typeof import('vuetify/components')['VDataTableFooter']
@@ -543,30 +537,33 @@ declare module '@vue/runtime-core' {
543
537
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
544
538
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
545
539
  VDialog: typeof import('vuetify/components')['VDialog']
540
+ VDatePicker: typeof import('vuetify/components')['VDatePicker']
541
+ VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
542
+ VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
543
+ VDatePickerMonth: typeof import('vuetify/components')['VDatePickerMonth']
544
+ VDatePickerMonths: typeof import('vuetify/components')['VDatePickerMonths']
545
+ VDatePickerYears: typeof import('vuetify/components')['VDatePickerYears']
546
546
  VDivider: typeof import('vuetify/components')['VDivider']
547
+ VEmptyState: typeof import('vuetify/components')['VEmptyState']
548
+ VFooter: typeof import('vuetify/components')['VFooter']
549
+ VFab: typeof import('vuetify/components')['VFab']
547
550
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
548
551
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
549
552
  VExpansionPanelText: typeof import('vuetify/components')['VExpansionPanelText']
550
553
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
551
- VFab: typeof import('vuetify/components')['VFab']
554
+ VFileInput: typeof import('vuetify/components')['VFileInput']
552
555
  VField: typeof import('vuetify/components')['VField']
553
556
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
554
- VEmptyState: typeof import('vuetify/components')['VEmptyState']
555
- VFooter: typeof import('vuetify/components')['VFooter']
557
+ VImg: typeof import('vuetify/components')['VImg']
556
558
  VIcon: typeof import('vuetify/components')['VIcon']
557
559
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
558
560
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
559
561
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
560
562
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
561
- VFileInput: typeof import('vuetify/components')['VFileInput']
563
+ VInput: typeof import('vuetify/components')['VInput']
562
564
  VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
563
- VImg: typeof import('vuetify/components')['VImg']
564
565
  VKbd: typeof import('vuetify/components')['VKbd']
565
- VInput: typeof import('vuetify/components')['VInput']
566
566
  VLabel: typeof import('vuetify/components')['VLabel']
567
- VItemGroup: typeof import('vuetify/components')['VItemGroup']
568
- VItem: typeof import('vuetify/components')['VItem']
569
- VMain: typeof import('vuetify/components')['VMain']
570
567
  VList: typeof import('vuetify/components')['VList']
571
568
  VListGroup: typeof import('vuetify/components')['VListGroup']
572
569
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -576,50 +573,53 @@ declare module '@vue/runtime-core' {
576
573
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
577
574
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
578
575
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
579
- VMessages: typeof import('vuetify/components')['VMessages']
576
+ VItemGroup: typeof import('vuetify/components')['VItemGroup']
577
+ VItem: typeof import('vuetify/components')['VItem']
580
578
  VMenu: typeof import('vuetify/components')['VMenu']
581
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
579
+ VMain: typeof import('vuetify/components')['VMain']
582
580
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
581
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
582
+ VMessages: typeof import('vuetify/components')['VMessages']
583
583
  VPagination: typeof import('vuetify/components')['VPagination']
584
584
  VOverlay: typeof import('vuetify/components')['VOverlay']
585
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
586
585
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
587
- VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
586
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
588
587
  VSelect: typeof import('vuetify/components')['VSelect']
589
- VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
590
588
  VRating: typeof import('vuetify/components')['VRating']
589
+ VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
590
+ VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
591
591
  VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
592
+ VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
592
593
  VSheet: typeof import('vuetify/components')['VSheet']
593
594
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
594
595
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
595
596
  VSlider: typeof import('vuetify/components')['VSlider']
596
- VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
597
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
598
+ VTab: typeof import('vuetify/components')['VTab']
599
+ VTabs: typeof import('vuetify/components')['VTabs']
600
+ VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
601
+ VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
602
+ VSwitch: typeof import('vuetify/components')['VSwitch']
603
+ VTable: typeof import('vuetify/components')['VTable']
597
604
  VStepper: typeof import('vuetify/components')['VStepper']
598
605
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
599
606
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
600
607
  VStepperItem: typeof import('vuetify/components')['VStepperItem']
601
608
  VStepperWindow: typeof import('vuetify/components')['VStepperWindow']
602
609
  VStepperWindowItem: typeof import('vuetify/components')['VStepperWindowItem']
603
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
604
- VSwitch: typeof import('vuetify/components')['VSwitch']
605
610
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
606
- VTable: typeof import('vuetify/components')['VTable']
607
- VTab: typeof import('vuetify/components')['VTab']
608
- VTabs: typeof import('vuetify/components')['VTabs']
609
- VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
610
- VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
611
+ VTextarea: typeof import('vuetify/components')['VTextarea']
612
+ VTextField: typeof import('vuetify/components')['VTextField']
611
613
  VTimeline: typeof import('vuetify/components')['VTimeline']
612
614
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
613
- VTextarea: typeof import('vuetify/components')['VTextarea']
614
615
  VToolbar: typeof import('vuetify/components')['VToolbar']
615
616
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
616
617
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
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
- VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
622
621
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
622
+ VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
623
623
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
624
624
  VForm: typeof import('vuetify/components')['VForm']
625
625
  VContainer: typeof import('vuetify/components')['VContainer']
@@ -627,20 +627,20 @@ declare module '@vue/runtime-core' {
627
627
  VRow: typeof import('vuetify/components')['VRow']
628
628
  VSpacer: typeof import('vuetify/components')['VSpacer']
629
629
  VHover: typeof import('vuetify/components')['VHover']
630
+ VLazy: typeof import('vuetify/components')['VLazy']
630
631
  VLayout: typeof import('vuetify/components')['VLayout']
631
632
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
632
- VLazy: typeof import('vuetify/components')['VLazy']
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,23 +657,26 @@ 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
+ VPicker: typeof import('vuetify/labs/components')['VPicker']
661
+ VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
660
662
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
661
663
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
662
664
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
663
665
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
664
666
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
665
667
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
666
- VPicker: typeof import('vuetify/labs/components')['VPicker']
667
- VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
668
668
  VNumberInput: typeof import('vuetify/labs/components')['VNumberInput']
669
- VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
670
- VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
671
- VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
669
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
670
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
671
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
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
+ VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
676
+ VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
677
+ VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
678
+ VDateInput: typeof import('vuetify/labs/components')['VDateInput']
675
679
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
676
680
  VSnackbarQueue: typeof import('vuetify/labs/components')['VSnackbarQueue']
677
- VDateInput: typeof import('vuetify/labs/components')['VDateInput']
678
681
  }
679
682
  }
@@ -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":[]}