@vuetify/nightly 3.7.4-next.2024-11-06 → 3.7.5-master.2024-12-03

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 (416) hide show
  1. package/dist/json/attributes.json +1561 -1561
  2. package/dist/json/importMap-labs.json +8 -8
  3. package/dist/json/importMap.json +120 -120
  4. package/dist/json/web-types.json +2945 -2945
  5. package/dist/vuetify-labs.css +25432 -23715
  6. package/dist/vuetify-labs.d.ts +14220 -3389
  7. package/dist/vuetify-labs.esm.js +73 -70
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +73 -70
  10. package/dist/vuetify-labs.min.css +4 -3
  11. package/dist/vuetify.css +23969 -22249
  12. package/dist/vuetify.d.ts +11832 -2652
  13. package/dist/vuetify.esm.js +62 -60
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +62 -60
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +4 -3
  18. package/dist/vuetify.min.js +37 -37
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/VAlert.css +215 -207
  21. package/lib/components/VAlert/VAlert.mjs +1 -1
  22. package/lib/components/VAlert/index.d.mts +86 -8
  23. package/lib/components/VApp/VApp.css +15 -16
  24. package/lib/components/VApp/index.d.mts +20 -4
  25. package/lib/components/VAppBar/VAppBar.css +12 -14
  26. package/lib/components/VAppBar/VAppBar.mjs +1 -1
  27. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  28. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -1
  29. package/lib/components/VAppBar/index.d.mts +148 -12
  30. package/lib/components/VAutocomplete/VAutocomplete.css +85 -86
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
  32. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  33. package/lib/components/VAutocomplete/index.d.mts +1396 -237
  34. package/lib/components/VAvatar/VAvatar.css +106 -108
  35. package/lib/components/VAvatar/index.d.mts +31 -4
  36. package/lib/components/VBadge/VBadge.css +77 -73
  37. package/lib/components/VBadge/VBadge.mjs +1 -1
  38. package/lib/components/VBadge/VBadge.sass +4 -0
  39. package/lib/components/VBadge/index.d.mts +41 -4
  40. package/lib/components/VBanner/VBanner.css +166 -161
  41. package/lib/components/VBanner/VBanner.mjs +1 -1
  42. package/lib/components/VBanner/index.d.mts +88 -12
  43. package/lib/components/VBottomNavigation/VBottomNavigation.css +63 -64
  44. package/lib/components/VBottomNavigation/index.d.mts +32 -4
  45. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  46. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
  47. package/lib/components/VBottomSheet/index.d.mts +88 -4
  48. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  49. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  50. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +1 -1
  51. package/lib/components/VBreadcrumbs/index.d.mts +65 -12
  52. package/lib/components/VBtn/VBtn.css +408 -385
  53. package/lib/components/VBtn/VBtn.mjs +1 -1
  54. package/lib/components/VBtn/VBtn.sass +4 -4
  55. package/lib/components/VBtn/index.d.mts +72 -4
  56. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  57. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -1
  58. package/lib/components/VBtnGroup/index.d.mts +28 -4
  59. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  60. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
  61. package/lib/components/VBtnToggle/index.d.mts +24 -4
  62. package/lib/components/VCard/VCard.css +302 -294
  63. package/lib/components/VCard/VCard.mjs +1 -1
  64. package/lib/components/VCard/VCardItem.mjs +1 -1
  65. package/lib/components/VCard/VCardSubtitle.mjs +1 -1
  66. package/lib/components/VCard/VCardText.mjs +1 -1
  67. package/lib/components/VCard/index.d.mts +190 -24
  68. package/lib/components/VCarousel/VCarousel.css +65 -63
  69. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  70. package/lib/components/VCarousel/VCarousel.sass +1 -1
  71. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  72. package/lib/components/VCarousel/index.d.mts +86 -8
  73. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  74. package/lib/components/VCheckbox/VCheckbox.mjs +1 -1
  75. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  76. package/lib/components/VCheckbox/index.d.mts +90 -8
  77. package/lib/components/VChip/VChip.css +411 -378
  78. package/lib/components/VChip/VChip.mjs +4 -3
  79. package/lib/components/VChip/VChip.mjs.map +1 -1
  80. package/lib/components/VChip/index.d.mts +113 -12
  81. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  82. package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
  83. package/lib/components/VChipGroup/index.d.mts +28 -4
  84. package/lib/components/VCode/VCode.css +8 -10
  85. package/lib/components/VCode/index.d.mts +18 -4
  86. package/lib/components/VColorPicker/VColorPicker.css +22 -22
  87. package/lib/components/VColorPicker/VColorPicker.mjs +1 -1
  88. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  89. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  90. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  91. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  92. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  93. package/lib/components/VColorPicker/index.d.mts +68 -4
  94. package/lib/components/VCombobox/VCombobox.css +85 -86
  95. package/lib/components/VCombobox/VCombobox.mjs +5 -5
  96. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  97. package/lib/components/VCombobox/index.d.mts +1396 -237
  98. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +9 -7
  99. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  100. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +2 -2
  101. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  102. package/lib/components/VConfirmEdit/index.d.mts +16 -13
  103. package/lib/components/VCounter/VCounter.css +5 -7
  104. package/lib/components/VCounter/VCounter.mjs +1 -1
  105. package/lib/components/VCounter/index.d.mts +31 -9
  106. package/lib/components/VDataIterator/index.d.mts +56 -12
  107. package/lib/components/VDataTable/VDataTable.css +186 -189
  108. package/lib/components/VDataTable/VDataTable.mjs +1 -1
  109. package/lib/components/VDataTable/VDataTable.sass +10 -20
  110. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  111. package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
  112. package/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs +1 -1
  113. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  114. package/lib/components/VDataTable/VDataTableRow.mjs +1 -1
  115. package/lib/components/VDataTable/VDataTableRows.mjs +1 -1
  116. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  117. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  118. package/lib/components/VDataTable/index.d.mts +388 -36
  119. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  120. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  121. package/lib/components/VDatePicker/VDatePickerControls.css +56 -54
  122. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  123. package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
  124. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  125. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  126. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  127. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  128. package/lib/components/VDatePicker/VDatePickerMonths.mjs +1 -1
  129. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  130. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  131. package/lib/components/VDatePicker/index.d.mts +281 -29
  132. package/lib/components/VDefaultsProvider/index.d.mts +20 -4
  133. package/lib/components/VDialog/VDialog.css +95 -95
  134. package/lib/components/VDialog/VDialog.mjs +1 -1
  135. package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +1 -1
  136. package/lib/components/VDialog/index.d.mts +389 -143
  137. package/lib/components/VDivider/VDivider.css +52 -52
  138. package/lib/components/VDivider/index.d.mts +24 -4
  139. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  140. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  141. package/lib/components/VEmptyState/index.d.mts +66 -4
  142. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  143. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  144. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  145. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  146. package/lib/components/VExpansionPanel/index.d.mts +152 -16
  147. package/lib/components/VFab/VFab.css +69 -74
  148. package/lib/components/VFab/VFab.mjs +1 -1
  149. package/lib/components/VFab/VFab.sass +4 -5
  150. package/lib/components/VFab/index.d.mts +78 -9
  151. package/lib/components/VField/VField.css +579 -539
  152. package/lib/components/VField/VField.mjs +3 -2
  153. package/lib/components/VField/VField.mjs.map +1 -1
  154. package/lib/components/VField/VFieldLabel.mjs +1 -1
  155. package/lib/components/VField/index.d.mts +59 -11
  156. package/lib/components/VFileInput/VFileInput.css +29 -31
  157. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  158. package/lib/components/VFileInput/index.d.mts +256 -71
  159. package/lib/components/VFooter/VFooter.css +36 -38
  160. package/lib/components/VFooter/VFooter.mjs +1 -1
  161. package/lib/components/VFooter/index.d.mts +29 -4
  162. package/lib/components/VForm/index.d.mts +175 -267
  163. package/lib/components/VGrid/VContainer.mjs +1 -1
  164. package/lib/components/VGrid/VGrid.css +592 -565
  165. package/lib/components/VGrid/index.d.mts +118 -16
  166. package/lib/components/VHover/index.d.mts +33 -4
  167. package/lib/components/VIcon/VIcon.css +52 -51
  168. package/lib/components/VIcon/index.d.mts +75 -17
  169. package/lib/components/VImg/VImg.css +51 -50
  170. package/lib/components/VImg/VImg.mjs +1 -1
  171. package/lib/components/VImg/index.d.mts +74 -19
  172. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  173. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  174. package/lib/components/VInfiniteScroll/index.d.mts +46 -4
  175. package/lib/components/VInput/VInput.css +142 -131
  176. package/lib/components/VInput/VInput.mjs +1 -1
  177. package/lib/components/VInput/index.d.mts +37 -4
  178. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  179. package/lib/components/VItemGroup/index.d.mts +65 -8
  180. package/lib/components/VKbd/VKbd.css +11 -13
  181. package/lib/components/VKbd/index.d.mts +18 -4
  182. package/lib/components/VLabel/VLabel.css +15 -16
  183. package/lib/components/VLabel/index.d.mts +20 -4
  184. package/lib/components/VLayout/VLayout.css +8 -10
  185. package/lib/components/VLayout/VLayoutItem.css +7 -8
  186. package/lib/components/VLayout/index.d.mts +48 -8
  187. package/lib/components/VLazy/VLazy.mjs +1 -1
  188. package/lib/components/VLazy/index.d.mts +31 -4
  189. package/lib/components/VList/VList.css +108 -104
  190. package/lib/components/VList/VList.mjs +4 -3
  191. package/lib/components/VList/VList.mjs.map +1 -1
  192. package/lib/components/VList/VList.sass +1 -1
  193. package/lib/components/VList/VListChildren.mjs +1 -1
  194. package/lib/components/VList/VListGroup.mjs +1 -1
  195. package/lib/components/VList/VListItem.css +452 -440
  196. package/lib/components/VList/VListItem.mjs +4 -3
  197. package/lib/components/VList/VListItem.mjs.map +1 -1
  198. package/lib/components/VList/VListItem.sass +1 -2
  199. package/lib/components/VList/VListItemAction.mjs +1 -1
  200. package/lib/components/VList/VListItemMedia.mjs +1 -1
  201. package/lib/components/VList/VListItemSubtitle.mjs +1 -1
  202. package/lib/components/VList/index.d.mts +301 -58
  203. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  204. package/lib/components/VLocaleProvider/index.d.mts +21 -4
  205. package/lib/components/VMain/VMain.css +30 -32
  206. package/lib/components/VMain/index.d.mts +25 -4
  207. package/lib/components/VMenu/VMenu.css +19 -21
  208. package/lib/components/VMenu/VMenu.mjs +1 -1
  209. package/lib/components/VMenu/index.d.mts +397 -155
  210. package/lib/components/VMessages/VMessages.css +15 -17
  211. package/lib/components/VMessages/index.d.mts +27 -4
  212. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +108 -106
  213. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  214. package/lib/components/VNavigationDrawer/index.d.mts +62 -7
  215. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  216. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  217. package/lib/components/VOtpInput/index.d.mts +52 -7
  218. package/lib/components/VOverlay/VOverlay.css +63 -60
  219. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  220. package/lib/components/VOverlay/VOverlay.sass +13 -14
  221. package/lib/components/VOverlay/index.d.mts +101 -19
  222. package/lib/components/VPagination/VPagination.css +8 -10
  223. package/lib/components/VPagination/VPagination.mjs +1 -1
  224. package/lib/components/VPagination/index.d.mts +64 -4
  225. package/lib/components/VParallax/VParallax.css +6 -8
  226. package/lib/components/VParallax/VParallax.mjs +1 -1
  227. package/lib/components/VParallax/index.d.mts +27 -4
  228. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  229. package/lib/components/VProgressCircular/index.d.mts +34 -4
  230. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  231. package/lib/components/VProgressLinear/index.d.mts +54 -4
  232. package/lib/components/VRadio/VRadio.mjs +1 -1
  233. package/lib/components/VRadio/index.d.mts +68 -4
  234. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  235. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  236. package/lib/components/VRadioGroup/index.d.mts +48 -4
  237. package/lib/components/VRangeSlider/VRangeSlider.mjs +1 -1
  238. package/lib/components/VRangeSlider/index.d.mts +107 -4
  239. package/lib/components/VRating/VRating.css +53 -52
  240. package/lib/components/VRating/VRating.mjs +1 -1
  241. package/lib/components/VRating/index.d.mts +42 -4
  242. package/lib/components/VResponsive/VResponsive.css +26 -25
  243. package/lib/components/VResponsive/index.d.mts +29 -4
  244. package/lib/components/VSelect/VSelect.css +52 -54
  245. package/lib/components/VSelect/VSelect.mjs +4 -4
  246. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  247. package/lib/components/VSelect/index.d.mts +1388 -236
  248. package/lib/components/VSelectionControl/VSelectionControl.css +102 -100
  249. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -1
  250. package/lib/components/VSelectionControl/index.d.mts +37 -10
  251. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  252. package/lib/components/VSelectionControlGroup/index.d.mts +26 -4
  253. package/lib/components/VSheet/VSheet.css +36 -38
  254. package/lib/components/VSheet/VSheet.mjs +1 -1
  255. package/lib/components/VSheet/index.d.mts +32 -4
  256. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  257. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +1 -1
  258. package/lib/components/VSkeletonLoader/index.d.mts +28 -4
  259. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  260. package/lib/components/VSlideGroup/index.d.mts +70 -14
  261. package/lib/components/VSlider/VSlider.css +57 -53
  262. package/lib/components/VSlider/VSlider.mjs +1 -1
  263. package/lib/components/VSlider/VSliderThumb.css +153 -142
  264. package/lib/components/VSlider/VSliderThumb.mjs +1 -1
  265. package/lib/components/VSlider/VSliderTrack.css +174 -155
  266. package/lib/components/VSlider/index.d.mts +106 -4
  267. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  268. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  269. package/lib/components/VSnackbar/index.d.mts +398 -152
  270. package/lib/components/VSparkline/VBarline.mjs +2 -1
  271. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  272. package/lib/components/VSparkline/VSparkline.mjs +1 -1
  273. package/lib/components/VSparkline/VTrendline.mjs +2 -1
  274. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  275. package/lib/components/VSparkline/index.d.mts +49 -4
  276. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  277. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  278. package/lib/components/VSpeedDial/index.d.mts +85 -4
  279. package/lib/components/VStepper/VStepper.css +56 -55
  280. package/lib/components/VStepper/VStepper.mjs +6 -5
  281. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  282. package/lib/components/VStepper/VStepperItem.css +115 -112
  283. package/lib/components/VStepper/VStepperItem.mjs +6 -5
  284. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  285. package/lib/components/VStepper/VStepperWindow.mjs +1 -1
  286. package/lib/components/VStepper/VStepperWindowItem.mjs +1 -1
  287. package/lib/components/VStepper/index.d.mts +301 -69
  288. package/lib/components/VSwitch/VSwitch.css +139 -129
  289. package/lib/components/VSwitch/VSwitch.mjs +1 -1
  290. package/lib/components/VSwitch/index.d.mts +59 -4
  291. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  292. package/lib/components/VSystemBar/VSystemBar.mjs +1 -1
  293. package/lib/components/VSystemBar/index.d.mts +28 -4
  294. package/lib/components/VTable/VTable.css +141 -140
  295. package/lib/components/VTable/VTable.sass +2 -4
  296. package/lib/components/VTable/index.d.mts +33 -4
  297. package/lib/components/VTabs/VTab.css +29 -30
  298. package/lib/components/VTabs/VTab.mjs +1 -1
  299. package/lib/components/VTabs/VTabs.css +65 -59
  300. package/lib/components/VTabs/VTabs.mjs +1 -1
  301. package/lib/components/VTabs/VTabsWindow.mjs +1 -1
  302. package/lib/components/VTabs/VTabsWindowItem.mjs +1 -1
  303. package/lib/components/VTabs/index.d.mts +394 -98
  304. package/lib/components/VTextField/VTextField.css +68 -65
  305. package/lib/components/VTextField/VTextField.mjs +1 -1
  306. package/lib/components/VTextField/index.d.mts +374 -152
  307. package/lib/components/VTextarea/VTextarea.css +39 -47
  308. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  309. package/lib/components/VTextarea/VTextarea.sass +2 -4
  310. package/lib/components/VTextarea/index.d.mts +244 -71
  311. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  312. package/lib/components/VThemeProvider/index.d.mts +20 -4
  313. package/lib/components/VTimeline/VTimeline.css +418 -379
  314. package/lib/components/VTimeline/VTimeline.mjs +1 -1
  315. package/lib/components/VTimeline/VTimelineDivider.mjs +1 -1
  316. package/lib/components/VTimeline/VTimelineItem.mjs +1 -1
  317. package/lib/components/VTimeline/index.d.mts +75 -8
  318. package/lib/components/VToolbar/VToolbar.css +143 -136
  319. package/lib/components/VToolbar/VToolbar.mjs +1 -1
  320. package/lib/components/VToolbar/index.d.mts +90 -12
  321. package/lib/components/VTooltip/VTooltip.css +21 -25
  322. package/lib/components/VTooltip/VTooltip.mjs +1 -1
  323. package/lib/components/VTooltip/VTooltip.sass +6 -8
  324. package/lib/components/VTooltip/index.d.mts +386 -147
  325. package/lib/components/VValidation/index.d.mts +24 -10
  326. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  327. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
  328. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +1 -1
  329. package/lib/components/VVirtualScroll/index.d.mts +15 -4
  330. package/lib/components/VWindow/VWindow.css +70 -73
  331. package/lib/components/VWindow/VWindow.mjs +1 -1
  332. package/lib/components/VWindow/VWindowItem.mjs +1 -1
  333. package/lib/components/VWindow/index.d.mts +47 -8
  334. package/lib/components/index.d.mts +11793 -2613
  335. package/lib/components/transitions/dialog-transition.mjs +2 -1
  336. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  337. package/lib/components/transitions/index.d.mts +309 -64
  338. package/lib/composables/form.mjs +7 -2
  339. package/lib/composables/form.mjs.map +1 -1
  340. package/lib/composables/icons.mjs +1 -1
  341. package/lib/composables/theme.mjs +4 -4
  342. package/lib/composables/theme.mjs.map +1 -1
  343. package/lib/composables/validation.mjs +10 -12
  344. package/lib/composables/validation.mjs.map +1 -1
  345. package/lib/composables/variant.mjs +1 -1
  346. package/lib/composables/virtual.mjs +1 -1
  347. package/lib/composables/virtual.mjs.map +1 -1
  348. package/lib/directives/ripple/VRipple.css +36 -38
  349. package/lib/entry-bundler.mjs +1 -1
  350. package/lib/entry-bundler.mjs.map +1 -1
  351. package/lib/framework.mjs +1 -1
  352. package/lib/framework.mjs.map +1 -1
  353. package/lib/index.d.mts +44 -44
  354. package/lib/labs/VCalendar/VCalendar.css +225 -219
  355. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  356. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  357. package/lib/labs/VCalendar/VCalendarDay.mjs +1 -1
  358. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  359. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  360. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  361. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  362. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  363. package/lib/labs/VCalendar/index.d.mts +211 -24
  364. package/lib/labs/VDateInput/VDateInput.mjs +2 -2
  365. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  366. package/lib/labs/VDateInput/index.d.mts +115 -4
  367. package/lib/labs/VNumberInput/VNumberInput.css +38 -40
  368. package/lib/labs/VNumberInput/VNumberInput.mjs +8 -6
  369. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  370. package/lib/labs/VNumberInput/index.d.mts +1267 -564
  371. package/lib/labs/VPicker/VPicker.css +57 -53
  372. package/lib/labs/VPicker/VPicker.mjs +1 -1
  373. package/lib/labs/VPicker/index.d.mts +63 -8
  374. package/lib/labs/VPullToRefresh/index.d.mts +35 -4
  375. package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +1 -1
  376. package/lib/labs/VSnackbarQueue/index.d.mts +453 -156
  377. package/lib/labs/VStepperVertical/VStepperVertical.mjs +1 -1
  378. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +1 -1
  379. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -1
  380. package/lib/labs/VStepperVertical/index.d.mts +271 -56
  381. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  382. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  383. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  384. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  385. package/lib/labs/VTimePicker/VTimePickerControls.mjs +1 -1
  386. package/lib/labs/VTimePicker/index.d.mts +122 -12
  387. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  388. package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
  389. package/lib/labs/VTreeview/VTreeviewGroup.mjs +1 -1
  390. package/lib/labs/VTreeview/VTreeviewItem.css +15 -17
  391. package/lib/labs/VTreeview/VTreeviewItem.mjs +4 -5
  392. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  393. package/lib/labs/VTreeview/VTreeviewItem.sass +1 -2
  394. package/lib/labs/VTreeview/index.d.mts +225 -38
  395. package/lib/labs/components.d.mts +2940 -1043
  396. package/lib/locale/fr.mjs +1 -1
  397. package/lib/locale/fr.mjs.map +1 -1
  398. package/lib/styles/elements/_global.sass +1 -1
  399. package/lib/styles/generic/_colors.scss +3 -3
  400. package/lib/styles/generic/_layers.scss +1 -13
  401. package/lib/styles/generic/_transitions.scss +32 -32
  402. package/lib/styles/main.css +16139 -14666
  403. package/lib/styles/settings/_utilities.scss +5 -0
  404. package/lib/styles/settings/_variables.scss +2 -1
  405. package/lib/styles/tools/_bootable.sass +3 -0
  406. package/lib/styles/tools/_border.sass +4 -4
  407. package/lib/styles/tools/_display.sass +10 -0
  408. package/lib/styles/tools/_elevation.sass +2 -2
  409. package/lib/styles/tools/_index.sass +2 -0
  410. package/lib/styles/tools/_layer.scss +2 -4
  411. package/lib/styles/tools/_position.sass +2 -2
  412. package/lib/styles/tools/_radius.sass +10 -0
  413. package/lib/styles/tools/_rounded.sass +2 -2
  414. package/lib/styles/tools/_utilities.sass +5 -1
  415. package/lib/styles/utilities/_elevation.scss +1 -1
  416. package/package.json +4 -5
@@ -45,7 +45,7 @@ type IconValue = string | (string | [path: string, opacity: number])[] | JSXComp
45
45
  declare const IconValue: PropType<IconValue>;
46
46
 
47
47
  declare const VDateInput: {
48
- new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<{
48
+ new (...args: any[]): vue.CreateComponentPublicInstance<{
49
49
  flat: boolean;
50
50
  reverse: boolean;
51
51
  variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
@@ -158,7 +158,118 @@ declare const VDateInput: {
158
158
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
159
159
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
160
160
  'update:modelValue': (val: string) => true;
161
- }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
161
+ }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
162
+ flat: boolean;
163
+ reverse: boolean;
164
+ variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
165
+ type: string;
166
+ error: boolean;
167
+ active: boolean;
168
+ direction: "horizontal" | "vertical";
169
+ transition: string;
170
+ header: string;
171
+ style: vue.StyleValue;
172
+ title: string;
173
+ autofocus: boolean;
174
+ disabled: boolean;
175
+ readonly: boolean | null;
176
+ tag: string;
177
+ landscape: boolean;
178
+ placeholder: string;
179
+ messages: string | readonly string[];
180
+ focused: boolean;
181
+ errorMessages: string | readonly string[] | null;
182
+ maxErrors: string | number;
183
+ rules: readonly ValidationRule[];
184
+ tile: boolean;
185
+ density: Density;
186
+ prependIcon: IconValue;
187
+ clearIcon: IconValue;
188
+ hideSpinButtons: boolean;
189
+ persistentHint: boolean;
190
+ nextIcon: IconValue;
191
+ prevIcon: IconValue;
192
+ clearable: boolean;
193
+ dirty: boolean;
194
+ persistentClear: boolean;
195
+ singleLine: boolean;
196
+ persistentPlaceholder: boolean;
197
+ persistentCounter: boolean;
198
+ reverseTransition: string;
199
+ cancelText: string;
200
+ okText: string;
201
+ modeIcon: IconValue;
202
+ viewMode: "month" | "year" | "months";
203
+ showAdjacentMonths: boolean;
204
+ weekdays: number[];
205
+ weeksInMonth: "static" | "dynamic";
206
+ hideWeekdays: boolean;
207
+ showWeek: boolean;
208
+ hideHeader: boolean;
209
+ hideActions: boolean;
210
+ } & {
211
+ name?: string | undefined;
212
+ max?: unknown;
213
+ location?: Anchor | null | undefined;
214
+ id?: string | undefined;
215
+ height?: string | number | undefined;
216
+ width?: string | number | undefined;
217
+ min?: unknown;
218
+ border?: string | number | boolean | undefined;
219
+ color?: string | undefined;
220
+ maxHeight?: string | number | undefined;
221
+ maxWidth?: string | number | undefined;
222
+ minHeight?: string | number | undefined;
223
+ minWidth?: string | number | undefined;
224
+ position?: "fixed" | "absolute" | "relative" | "static" | "sticky" | undefined;
225
+ loading?: string | boolean | undefined;
226
+ label?: string | undefined;
227
+ text?: string | undefined;
228
+ prefix?: string | undefined;
229
+ role?: string | undefined;
230
+ multiple?: number | boolean | "range" | (string & {}) | undefined;
231
+ month?: string | number | undefined;
232
+ year?: number | undefined;
233
+ class?: any;
234
+ theme?: string | undefined;
235
+ elevation?: string | number | undefined;
236
+ counter?: string | number | boolean | undefined;
237
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
238
+ modelValue?: any;
239
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
240
+ validationValue?: any;
241
+ rounded?: string | number | boolean | undefined;
242
+ baseColor?: string | undefined;
243
+ bgColor?: string | undefined;
244
+ appendIcon?: IconValue | undefined;
245
+ appendInnerIcon?: IconValue | undefined;
246
+ prependInnerIcon?: IconValue | undefined;
247
+ 'onClick:clear'?: ((args_0: MouseEvent) => void) | undefined;
248
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
249
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
250
+ 'onClick:appendInner'?: ((args_0: MouseEvent) => void) | undefined;
251
+ 'onClick:prependInner'?: ((args_0: MouseEvent) => void) | undefined;
252
+ centerAffix?: boolean | undefined;
253
+ hint?: string | undefined;
254
+ hideDetails?: boolean | "auto" | undefined;
255
+ suffix?: string | undefined;
256
+ counterValue?: number | ((value: any) => number) | undefined;
257
+ modelModifiers?: Record<string, boolean> | undefined;
258
+ firstDayOfWeek?: string | number | undefined;
259
+ allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
260
+ displayValue?: unknown;
261
+ } & {
262
+ $children?: vue.VNodeChild | {
263
+ default?: (() => vue.VNodeChild) | undefined;
264
+ } | (() => vue.VNodeChild);
265
+ 'v-slots'?: {
266
+ default?: false | (() => vue.VNodeChild) | undefined;
267
+ } | undefined;
268
+ } & {
269
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
270
+ } & {
271
+ "onUpdate:modelValue"?: ((val: string) => any) | undefined;
272
+ }, {
162
273
  flat: boolean;
163
274
  reverse: boolean;
164
275
  variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
@@ -211,7 +322,7 @@ declare const VDateInput: {
211
322
  hideActions: boolean;
212
323
  }, true, {}, vue.SlotsType<Partial<{
213
324
  default: () => vue.VNode[];
214
- }>>, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
325
+ }>>, {
215
326
  P: {};
216
327
  B: {};
217
328
  D: {};
@@ -550,7 +661,7 @@ declare const VDateInput: {
550
661
  hideActions: boolean;
551
662
  }, {}, string, vue.SlotsType<Partial<{
552
663
  default: () => vue.VNode[];
553
- }>>, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
664
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
554
665
  max: vue.PropType<unknown>;
555
666
  location: vue.PropType<Anchor | null>;
556
667
  height: (StringConstructor | NumberConstructor)[];
@@ -1,41 +1,39 @@
1
- @layer vuetify.components {
2
- .v-number-input input[type=number] {
3
- -moz-appearance: textfield;
4
- }
5
- .v-number-input input[type=number]::-webkit-outer-spin-button, .v-number-input input[type=number]::-webkit-inner-spin-button {
6
- -webkit-appearance: none;
7
- }
8
- .v-number-input .v-field {
9
- padding-inline-end: 0;
10
- padding-inline-start: 0;
11
- }
12
- .v-number-input--inset .v-divider {
13
- height: 55%;
14
- width: 55%;
15
- align-self: center;
16
- }
17
- .v-number-input--split .v-field__input {
18
- text-align: center;
19
- }
20
- .v-number-input--stacked .v-number-input__control {
21
- flex-direction: column-reverse;
22
- }
23
- .v-number-input--stacked .v-number-input__control .v-btn {
24
- flex: 1;
25
- }
26
- .v-number-input--hide-input .v-field {
27
- flex: none;
28
- }
29
- .v-number-input--hide-input .v-field__input {
30
- width: 0;
31
- padding-inline: 0;
32
- }
33
- .v-number-input__control {
34
- display: flex;
35
- height: 100%;
36
- }
37
- .v-number-input__control .v-btn {
38
- background-color: transparent;
39
- border-radius: 0;
40
- }
1
+ .v-number-input input[type=number] {
2
+ -moz-appearance: textfield;
3
+ }
4
+ .v-number-input input[type=number]::-webkit-outer-spin-button, .v-number-input input[type=number]::-webkit-inner-spin-button {
5
+ -webkit-appearance: none;
6
+ }
7
+ .v-number-input .v-field {
8
+ padding-inline-end: 0;
9
+ padding-inline-start: 0;
10
+ }
11
+ .v-number-input--inset .v-divider {
12
+ height: 55%;
13
+ width: 55%;
14
+ align-self: center;
15
+ }
16
+ .v-number-input--split .v-field__input {
17
+ text-align: center;
18
+ }
19
+ .v-number-input--stacked .v-number-input__control {
20
+ flex-direction: column-reverse;
21
+ }
22
+ .v-number-input--stacked .v-number-input__control .v-btn {
23
+ flex: 1;
24
+ }
25
+ .v-number-input--hide-input .v-field {
26
+ flex: none;
27
+ }
28
+ .v-number-input--hide-input .v-field__input {
29
+ width: 0;
30
+ padding-inline: 0;
31
+ }
32
+ .v-number-input__control {
33
+ display: flex;
34
+ height: 100%;
35
+ }
36
+ .v-number-input__control .v-btn {
37
+ background-color: transparent;
38
+ border-radius: 0;
41
39
  }
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment, mergeProps as _mergeProps } 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
 
@@ -65,8 +65,8 @@ export const VNumberInput = genericComponent()({
65
65
  const vTextFieldRef = ref();
66
66
  const stepDecimals = computed(() => getDecimals(props.step));
67
67
  const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
68
- const form = useForm();
69
- const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
68
+ const form = useForm(props);
69
+ const controlsDisabled = computed(() => form.isDisabled.value || form.isReadonly.value);
70
70
  const canIncrease = computed(() => {
71
71
  if (controlsDisabled.value) return false;
72
72
  return (model.value ?? 0) + props.step <= props.max;
@@ -89,7 +89,7 @@ export const VNumberInput = genericComponent()({
89
89
  click: onClickDown
90
90
  }));
91
91
  onMounted(() => {
92
- if (!props.readonly && !props.disabled) {
92
+ if (!controlsDisabled.value) {
93
93
  clampModel();
94
94
  }
95
95
  });
@@ -165,7 +165,8 @@ export const VNumberInput = genericComponent()({
165
165
  "flat": true,
166
166
  "key": "increment-btn",
167
167
  "height": controlNodeDefaultHeight.value,
168
- "name": "increment-btn",
168
+ "data-testid": "increment",
169
+ "aria-hidden": "true",
169
170
  "icon": incrementIcon.value,
170
171
  "onClick": onClickUp,
171
172
  "onMousedown": onControlMousedown,
@@ -192,7 +193,8 @@ export const VNumberInput = genericComponent()({
192
193
  "flat": true,
193
194
  "key": "decrement-btn",
194
195
  "height": controlNodeDefaultHeight.value,
195
- "name": "decrement-btn",
196
+ "data-testid": "decrement",
197
+ "aria-hidden": "true",
196
198
  "icon": decrementIcon.value,
197
199
  "size": controlNodeSize.value,
198
200
  "tabindex": "-1",
@@ -1 +1 @@
1
- {"version":3,"file":"VNumberInput.mjs","names":["VBtn","VDefaultsProvider","VDivider","makeVTextFieldProps","VTextField","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","VNumberInput","name","props","emits","val","setup","_ref","slots","_model","model","get","value","set","isNaN","vTextFieldRef","stepDecimals","modelDecimals","form","controlsDisabled","disabled","readonly","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","clampModel","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","onKeydown","includes","key","ctrlKey","onControlMousedown","inputText","_","textFieldProps","filterProps","incrementControlNode","_createVNode","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","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 { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref } 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: (e: MouseEvent) => 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 modelValue: {\n type: Number as PropType<Number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get: () => _model.value,\n set (val) {\n if (val === null) {\n _model.value = null\n return\n }\n\n if (!isNaN(+val) && +val <= props.max && +val >= props.min) {\n _model.value = +val\n }\n },\n })\n\n const vTextFieldRef = ref<VTextField | undefined>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0)\n\n const form = useForm()\n const controlsDisabled = computed(() => (\n props.disabled || props.readonly || form?.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n onMounted(() => {\n if (!props.readonly && !props.disabled) {\n clampModel()\n }\n })\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = clamp(0, props.min, props.max)\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +((((model.value as number) + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +((((model.value as number) - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function clampModel () {\n if (!vTextFieldRef.value) return\n const inputText = vTextFieldRef.value.value\n if (inputText && !isNaN(+inputText)) {\n model.value = clamp(+(inputText), props.min, props.max)\n } else {\n model.value = null\n }\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"increment-btn\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n name=\"decrement-btn\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\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 { incrementControlNode() }\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 { decrementControlNode() }\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 ref={ vTextFieldRef }\n v-model={ model.value }\n onBeforeinput={ onBeforeinput }\n onChange={ clampModel }\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 inputmode=\"decimal\"\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 return forwardRefs({}, vTextFieldRef)\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","useForm","forwardRefs","useProxiedModel","computed","nextTick","onMounted","ref","clamp","genericComponent","getDecimals","omit","propsFactory","useRender","makeVNumberInputProps","controlVariant","type","String","default","inset","Boolean","hideInput","modelValue","Number","min","MIN_SAFE_INTEGER","max","MAX_SAFE_INTEGER","step","VNumberInput","name","props","emits","val","setup","_ref","slots","_model","model","get","value","set","isNaN","vTextFieldRef","stepDecimals","modelDecimals","form","controlsDisabled","isDisabled","isReadonly","canIncrease","canDecrease","incrementIcon","decrementIcon","controlNodeSize","controlNodeDefaultHeight","incrementSlotProps","click","onClickUp","decrementSlotProps","onClickDown","clampModel","toggleUpDown","increment","arguments","length","undefined","decimals","Math","toFixed","e","stopPropagation","onBeforeinput","data","existingTxt","target","selectionStart","selectionEnd","potentialNewInputVal","slice","test","preventDefault","onKeydown","includes","key","ctrlKey","onControlMousedown","inputText","_","textFieldProps","filterProps","incrementControlNode","_createVNode","disabled","flat","height","size","icon","decrementControlNode","decrement","controlNode","dividerNode","appendInnerControl","reverse","_Fragment","hasAppendInner","prependInnerControl","hasPrependInner","_mergeProps","$event","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 { useForm } from '@/composables/form'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, onMounted, ref } 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: (e: MouseEvent) => 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 modelValue: {\n type: Number as PropType<Number | null>,\n default: null,\n },\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n step: {\n type: Number,\n default: 1,\n },\n\n ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon']),\n}, 'VNumberInput')\n\nexport const VNumberInput = genericComponent<VNumberInputSlots>()({\n name: 'VNumberInput',\n\n props: {\n ...makeVNumberInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: number) => true,\n },\n\n setup (props, { slots }) {\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get: () => _model.value,\n set (val) {\n if (val === null) {\n _model.value = null\n return\n }\n\n if (!isNaN(+val) && +val <= props.max && +val >= props.min) {\n _model.value = +val\n }\n },\n })\n\n const vTextFieldRef = ref<VTextField | undefined>()\n\n const stepDecimals = computed(() => getDecimals(props.step))\n const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0)\n\n const form = useForm(props)\n const controlsDisabled = computed(() => (\n form.isDisabled.value || form.isReadonly.value\n ))\n\n const canIncrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number + props.step <= props.max\n })\n const canDecrease = computed(() => {\n if (controlsDisabled.value) return false\n return (model.value ?? 0) as number - props.step >= props.min\n })\n\n const controlVariant = computed(() => {\n return props.hideInput ? 'stacked' : props.controlVariant\n })\n\n const incrementIcon = computed(() => controlVariant.value === 'split' ? '$plus' : '$collapse')\n const decrementIcon = computed(() => controlVariant.value === 'split' ? '$minus' : '$expand')\n const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small')\n const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%')\n\n const incrementSlotProps = computed(() => ({ click: onClickUp }))\n\n const decrementSlotProps = computed(() => ({ click: onClickDown }))\n\n onMounted(() => {\n if (!controlsDisabled.value) {\n clampModel()\n }\n })\n\n function toggleUpDown (increment = true) {\n if (controlsDisabled.value) return\n if (model.value == null) {\n model.value = clamp(0, props.min, props.max)\n return\n }\n\n const decimals = Math.max(modelDecimals.value, stepDecimals.value)\n if (increment) {\n if (canIncrease.value) model.value = +((((model.value as number) + props.step).toFixed(decimals)))\n } else {\n if (canDecrease.value) model.value = +((((model.value as number) - props.step).toFixed(decimals)))\n }\n }\n\n function onClickUp (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown()\n }\n\n function onClickDown (e: MouseEvent) {\n e.stopPropagation()\n toggleUpDown(false)\n }\n\n function onBeforeinput (e: InputEvent) {\n if (!e.data) return\n const existingTxt = (e.target as HTMLInputElement)?.value\n const selectionStart = (e.target as HTMLInputElement)?.selectionStart\n const selectionEnd = (e.target as HTMLInputElement)?.selectionEnd\n const potentialNewInputVal =\n existingTxt\n ? existingTxt.slice(0, selectionStart as number | undefined) + e.data + existingTxt.slice(selectionEnd as number | undefined)\n : e.data\n // Only numbers, \"-\", \".\" are allowed\n // AND \"-\", \".\" are allowed only once\n // AND \"-\" is only allowed at the start\n if (!/^-?(\\d+(\\.\\d*)?|(\\.\\d+)|\\d*|\\.)$/.test(potentialNewInputVal)) {\n e.preventDefault()\n }\n }\n\n async function onKeydown (e: KeyboardEvent) {\n if (\n ['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) ||\n e.ctrlKey\n ) return\n\n if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n e.preventDefault()\n clampModel()\n // _model is controlled, so need to wait until props['modelValue'] is updated\n await nextTick()\n if (e.key === 'ArrowDown') {\n toggleUpDown(false)\n } else {\n toggleUpDown()\n }\n }\n }\n\n function onControlMousedown (e: MouseEvent) {\n e.stopPropagation()\n }\n\n function clampModel () {\n if (!vTextFieldRef.value) return\n const inputText = vTextFieldRef.value.value\n if (inputText && !isNaN(+inputText)) {\n model.value = clamp(+(inputText), props.min, props.max)\n } else {\n model.value = null\n }\n }\n\n useRender(() => {\n const { modelValue: _, ...textFieldProps } = VTextField.filterProps(props)\n\n function incrementControlNode () {\n return !slots.increment ? (\n <VBtn\n disabled={ !canIncrease.value }\n flat\n key=\"increment-btn\"\n height={ controlNodeDefaultHeight.value }\n data-testid=\"increment\"\n aria-hidden=\"true\"\n icon={ incrementIcon.value }\n onClick={ onClickUp }\n onMousedown={ onControlMousedown }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n />\n ) : (\n <VDefaultsProvider\n key=\"increment-defaults\"\n defaults={{\n VBtn: {\n disabled: !canIncrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: incrementIcon.value,\n },\n }}\n >\n { slots.increment(incrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function decrementControlNode () {\n return !slots.decrement ? (\n <VBtn\n disabled={ !canDecrease.value }\n flat\n key=\"decrement-btn\"\n height={ controlNodeDefaultHeight.value }\n data-testid=\"decrement\"\n aria-hidden=\"true\"\n icon={ decrementIcon.value }\n size={ controlNodeSize.value }\n tabindex=\"-1\"\n onClick={ onClickDown }\n onMousedown={ onControlMousedown }\n />\n ) : (\n <VDefaultsProvider\n key=\"decrement-defaults\"\n defaults={{\n VBtn: {\n disabled: !canDecrease.value,\n flat: true,\n height: controlNodeDefaultHeight.value,\n size: controlNodeSize.value,\n icon: decrementIcon.value,\n },\n }}\n >\n { slots.decrement(decrementSlotProps.value) }\n </VDefaultsProvider>\n )\n }\n\n function controlNode () {\n return (\n <div class=\"v-number-input__control\">\n { decrementControlNode() }\n\n <VDivider\n vertical={ controlVariant.value !== 'stacked' }\n />\n\n { incrementControlNode() }\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 { incrementControlNode() }\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 { decrementControlNode() }\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 ref={ vTextFieldRef }\n v-model={ model.value }\n onBeforeinput={ onBeforeinput }\n onChange={ clampModel }\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 inputmode=\"decimal\"\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 return forwardRefs({}, vTextFieldRef)\n },\n})\n\nexport type VNumberInput = InstanceType<typeof VNumberInput>\n"],"mappings":"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","ignoreList":[]}